From 41d84c34c7230ef36788156246e3da2204a4722f5c8e2a32f5425a1d275dc480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 20 Feb 2009 07:46:43 +0000 Subject: [PATCH 001/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=1 --- _constraints | 14 - abort-no-flush.patch | 80 - add-locales.patch | 29 - baselibs.conf | 7 - bindresvport.blacklist | 2 - check-build.sh | 25 + crypt_blowfish-1.0.diff | 1330 +++ crypt_blowfish-1.2-hack_around_arm.diff | 9 - crypt_blowfish-1.2-sha.diff | 174 - crypt_blowfish-1.3.tar.gz | 3 - crypt_blowfish-const.patch | 46 - crypt_blowfish-gensalt.patch | 373 - crypt_blowfish-glibc-2.3.diff | 106 + ctype_b.c | 196 + dl-runtime-resolve-opt-avx512f.patch | 26 - eh-frame-zero-terminator.patch | 31 - fix-locking-in-_IO_cleanup.patch | 236 - fnmatch-collating-elements.patch | 467 - getaddrinfo-ipv6-sanity.diff | 33 + glibc-2.10-dns-fixpack.diff | 169 + glibc-2.10-dns-no-gethostbyname4.diff | 26 + glibc-2.10-locale-tuesday.diff | 26 + glibc-2.10-nis-hosts.diff | 84 + glibc-2.10-nscd-gc-dataofs.diff | 15 + glibc-2.10-nscd-meminflight.diff | 86 + glibc-2.10-nscd-nostack.diff | 16 + glibc-2.10-nscd-prunerace.diff | 88 + glibc-2.10-ppc32-setcontext-fp.diff | 29 + glibc-2.10-unsetenv.diff | 69 + glibc-2.14-crypt.diff | 98 - glibc-2.2-sunrpc.diff | 76 + glibc-2.26.tar.xz | 3 - glibc-2.26.tar.xz.sig | 10 - glibc-2.3-SuSE.diff | 37 + glibc-2.3-regcomp.diff | 11 + glibc-2.3.1.localedef.diff | 68 + glibc-2.3.2-revert_tcsetattr.diff | 53 + glibc-2.3.2.no_archive.diff | 19 +- glibc-2.3.3-amd64-s_ceil.diff | 38 + glibc-2.3.3-amd64-string.diff | 2744 ++++++ glibc-2.3.3-execstack.diff | 45 + glibc-2.3.3-nscd-db-path.diff | 22 +- glibc-2.3.4-gb18030-big5hkscs.diff.bz2 | 3 + glibc-2.3.5-nscd-zeronegtimeout.diff | 111 + ...> glibc-2.3.90-bindresvport.blacklist.diff | 84 +- glibc-2.3.90-fnmatch.diff | 58 + glibc-2.3.90-langpackdir.diff | 34 +- glibc-2.3.90-ld.so-madvise.diff | 76 + glibc-2.3.90-noversion.diff | 41 +- glibc-2.3.locales.diff.bz2 | 3 + glibc-2.4-china.diff | 25 +- glibc-2.4.90-mdns-resolver.diff | 456 + glibc-2.4.90-no_NO.diff | 38 +- glibc-2.4.90-nscd.diff | 141 + glibc-2.4.90-revert-only-euro.diff | 93 + glibc-2.5-ppc-llrintl.diff | 18 + glibc-2.6-configure.diff | 50 + glibc-2.8-clone.diff | 50 + glibc-2.8-dlosinfo.diff | 14 + glibc-2.8-getconf.diff | 14 + glibc-2.8-revert-nscleanup.diff | 824 ++ glibc-2.9-2008111711.tar.bz2 | 3 + glibc-c-utf8-locale.patch | 267 - glibc-compiled-binaries.diff | 129 + glibc-cpusetsize.diff | 26 + glibc-disable-gettext-for-c-utf8.patch | 12 - glibc-fix-double-loopback.diff | 25 - glibc-fix-nscd.diff | 49 + glibc-getgroups-fortify.diff | 14 + glibc-ldscript.diff | 11 + glibc-mtfsf.diff | 159 + glibc-no-unwind-tables.diff | 39 + glibc-nodate.patch | 47 - glibc-nptl-2.4-nofixsyscallnr.diff | 18 + glibc-nptl-2.9-2008111711.tar.bz2 | 3 + glibc-nscd.conf.patch | 19 - glibc-nss-deepbind.diff | 22 + glibc-resolv-mdnshint.diff | 19 - glibc-selinux.diff | 22 + glibc-suse-note.diff | 127 + glibc-testsuite.changes | 8033 ----------------- glibc-testsuite.spec | 1409 --- glibc-testsuite.spec.in | 6 - glibc-utils.changes | 8033 ----------------- glibc-utils.spec | 1409 --- glibc-utils.spec.in | 6 - glibc-version.diff | 27 +- glibc.changes | 3211 ------- glibc.keyring | 883 -- glibc.rpmlintrc | 21 +- glibc.spec | 4049 ++++++--- glibc_post_upgrade.c | 7 +- iconv-reset-input-buffer.patch | 330 - ld-so-hwcap-x86-64.patch | 190 - ldd-system-interp.patch | 41 - libm-x86-64.diff.bz2 | 3 + libpthread-compat-wrappers.patch | 120 - manpages.patch | 21 - manpages.tar.bz2 | 4 +- math-c++-compat.patch | 126 - missing-include-build-fix.diff | 10 + noversion.tar.bz2 | 4 +- nscd-server-user.patch | 13 - nscd.conf | 1 - nscd.init | 123 + nscd.service | 20 - nss-db-path.patch | 41 - nss-files-long-lines-2.patch | 164 - nsswitch.conf | 15 +- powerpc-cpu.tar.bz2 | 3 + powerpc-elision-enable-envvar.patch | 41 - ppc-atomic.diff | 419 + pre_checkin.sh | 8 - ready | 0 reinitialize-dl_load_write_lock.patch | 15 - remove-nss-nis-compat.patch | 207 - resolv-context-leak.patch | 53 - resolv.dynamic.diff | 31 + s390-elision-enable-envvar.patch | 31 - 119 files changed, 11675 insertions(+), 27616 deletions(-) delete mode 100644 _constraints delete mode 100644 abort-no-flush.patch delete mode 100644 add-locales.patch create mode 100644 check-build.sh create mode 100644 crypt_blowfish-1.0.diff delete mode 100644 crypt_blowfish-1.2-hack_around_arm.diff delete mode 100644 crypt_blowfish-1.2-sha.diff delete mode 100644 crypt_blowfish-1.3.tar.gz delete mode 100644 crypt_blowfish-const.patch delete mode 100644 crypt_blowfish-gensalt.patch create mode 100644 crypt_blowfish-glibc-2.3.diff create mode 100644 ctype_b.c delete mode 100644 dl-runtime-resolve-opt-avx512f.patch delete mode 100644 eh-frame-zero-terminator.patch delete mode 100644 fix-locking-in-_IO_cleanup.patch delete mode 100644 fnmatch-collating-elements.patch create mode 100644 getaddrinfo-ipv6-sanity.diff create mode 100644 glibc-2.10-dns-fixpack.diff create mode 100644 glibc-2.10-dns-no-gethostbyname4.diff create mode 100644 glibc-2.10-locale-tuesday.diff create mode 100644 glibc-2.10-nis-hosts.diff create mode 100644 glibc-2.10-nscd-gc-dataofs.diff create mode 100644 glibc-2.10-nscd-meminflight.diff create mode 100644 glibc-2.10-nscd-nostack.diff create mode 100644 glibc-2.10-nscd-prunerace.diff create mode 100644 glibc-2.10-ppc32-setcontext-fp.diff create mode 100644 glibc-2.10-unsetenv.diff delete mode 100644 glibc-2.14-crypt.diff create mode 100644 glibc-2.2-sunrpc.diff delete mode 100644 glibc-2.26.tar.xz delete mode 100644 glibc-2.26.tar.xz.sig create mode 100644 glibc-2.3-SuSE.diff create mode 100644 glibc-2.3-regcomp.diff create mode 100644 glibc-2.3.1.localedef.diff create mode 100644 glibc-2.3.2-revert_tcsetattr.diff create mode 100644 glibc-2.3.3-amd64-s_ceil.diff create mode 100644 glibc-2.3.3-amd64-string.diff create mode 100644 glibc-2.3.3-execstack.diff create mode 100644 glibc-2.3.4-gb18030-big5hkscs.diff.bz2 create mode 100644 glibc-2.3.5-nscd-zeronegtimeout.diff rename glibc-bindresvport-blacklist.diff => glibc-2.3.90-bindresvport.blacklist.diff (60%) create mode 100644 glibc-2.3.90-fnmatch.diff create mode 100644 glibc-2.3.90-ld.so-madvise.diff create mode 100644 glibc-2.3.locales.diff.bz2 create mode 100644 glibc-2.4.90-mdns-resolver.diff create mode 100644 glibc-2.4.90-nscd.diff create mode 100644 glibc-2.4.90-revert-only-euro.diff create mode 100644 glibc-2.5-ppc-llrintl.diff create mode 100644 glibc-2.6-configure.diff create mode 100644 glibc-2.8-clone.diff create mode 100644 glibc-2.8-dlosinfo.diff create mode 100644 glibc-2.8-getconf.diff create mode 100644 glibc-2.8-revert-nscleanup.diff create mode 100644 glibc-2.9-2008111711.tar.bz2 delete mode 100644 glibc-c-utf8-locale.patch create mode 100644 glibc-compiled-binaries.diff create mode 100644 glibc-cpusetsize.diff delete mode 100644 glibc-disable-gettext-for-c-utf8.patch delete mode 100644 glibc-fix-double-loopback.diff create mode 100644 glibc-fix-nscd.diff create mode 100644 glibc-getgroups-fortify.diff create mode 100644 glibc-ldscript.diff create mode 100644 glibc-mtfsf.diff create mode 100644 glibc-no-unwind-tables.diff delete mode 100644 glibc-nodate.patch create mode 100644 glibc-nptl-2.4-nofixsyscallnr.diff create mode 100644 glibc-nptl-2.9-2008111711.tar.bz2 delete mode 100644 glibc-nscd.conf.patch create mode 100644 glibc-nss-deepbind.diff delete mode 100644 glibc-resolv-mdnshint.diff create mode 100644 glibc-selinux.diff create mode 100644 glibc-suse-note.diff delete mode 100644 glibc-testsuite.changes delete mode 100644 glibc-testsuite.spec delete mode 100644 glibc-testsuite.spec.in delete mode 100644 glibc-utils.changes delete mode 100644 glibc-utils.spec delete mode 100644 glibc-utils.spec.in delete mode 100644 glibc.keyring delete mode 100644 iconv-reset-input-buffer.patch delete mode 100644 ld-so-hwcap-x86-64.patch delete mode 100644 ldd-system-interp.patch create mode 100644 libm-x86-64.diff.bz2 delete mode 100644 libpthread-compat-wrappers.patch delete mode 100644 manpages.patch delete mode 100644 math-c++-compat.patch create mode 100644 missing-include-build-fix.diff delete mode 100644 nscd-server-user.patch delete mode 100644 nscd.conf create mode 100644 nscd.init delete mode 100644 nscd.service delete mode 100644 nss-db-path.patch delete mode 100644 nss-files-long-lines-2.patch create mode 100644 powerpc-cpu.tar.bz2 delete mode 100644 powerpc-elision-enable-envvar.patch create mode 100644 ppc-atomic.diff delete mode 100644 pre_checkin.sh create mode 100644 ready delete mode 100644 reinitialize-dl_load_write_lock.patch delete mode 100644 remove-nss-nis-compat.patch delete mode 100644 resolv-context-leak.patch create mode 100644 resolv.dynamic.diff delete mode 100644 s390-elision-enable-envvar.patch diff --git a/_constraints b/_constraints deleted file mode 100644 index 03d38d4..0000000 --- a/_constraints +++ /dev/null @@ -1,14 +0,0 @@ - - - - - glibc-testsuite - - - - 1500 - - - xen - - diff --git a/abort-no-flush.patch b/abort-no-flush.patch deleted file mode 100644 index a32b6fe..0000000 --- a/abort-no-flush.patch +++ /dev/null @@ -1,80 +0,0 @@ -Don't close or flush stdio streams on abort - - [BZ #15436] - * stdlib/abort.c (abort): Don't call fflush and __fcloseall. - -Index: glibc-2.19/stdlib/abort.c -=================================================================== ---- glibc-2.19.orig/stdlib/abort.c -+++ glibc-2.19/stdlib/abort.c -@@ -30,9 +30,6 @@ - # define ABORT_INSTRUCTION - #endif - --#include --#define fflush(s) _IO_flush_all_lockp (0) -- - /* Exported variable to locate abort message in core files etc. */ - struct abort_msg_s *__abort_msg __attribute__ ((nocommon)); - libc_hidden_def (__abort_msg) -@@ -66,16 +63,8 @@ abort (void) - __sigprocmask (SIG_UNBLOCK, &sigs, 0); - } - -- /* Flush all streams. We cannot close them now because the user -- might have registered a handler for SIGABRT. */ -- if (stage == 1) -- { -- ++stage; -- fflush (NULL); -- } -- - /* Send signal which possibly calls a user handler. */ -- if (stage == 2) -+ if (stage == 1) - { - /* This stage is special: we must allow repeated calls of - `abort' when a user defined handler for SIGABRT is installed. -@@ -93,7 +82,7 @@ abort (void) - } - - /* There was a handler installed. Now remove it. */ -- if (stage == 3) -+ if (stage == 2) - { - ++stage; - memset (&act, '\0', sizeof (struct sigaction)); -@@ -103,30 +92,22 @@ abort (void) - __sigaction (SIGABRT, &act, NULL); - } - -- /* Now close the streams which also flushes the output the user -- defined handler might has produced. */ -- if (stage == 4) -- { -- ++stage; -- __fcloseall (); -- } -- - /* Try again. */ -- if (stage == 5) -+ if (stage == 3) - { - ++stage; - raise (SIGABRT); - } - - /* Now try to abort using the system specific command. */ -- if (stage == 6) -+ if (stage == 4) - { - ++stage; - ABORT_INSTRUCTION; - } - - /* If we can't signal ourselves and the abort instruction failed, exit. */ -- if (stage == 7) -+ if (stage == 5) - { - ++stage; - _exit (127); diff --git a/add-locales.patch b/add-locales.patch deleted file mode 100644 index 7a18cd1..0000000 --- a/add-locales.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: glibc-2.25/localedata/SUPPORTED -=================================================================== ---- glibc-2.25.orig/localedata/SUPPORTED -+++ glibc-2.25/localedata/SUPPORTED -@@ -129,6 +129,7 @@ en_CA.UTF-8/UTF-8 \ - en_CA/ISO-8859-1 \ - en_DK.UTF-8/UTF-8 \ - en_DK/ISO-8859-1 \ -+en_GB.ISO-8859-15/ISO-8859-15 \ - en_GB.UTF-8/UTF-8 \ - en_GB/ISO-8859-1 \ - en_HK.UTF-8/UTF-8 \ -@@ -145,6 +146,7 @@ en_PH.UTF-8/UTF-8 \ - en_PH/ISO-8859-1 \ - en_SG.UTF-8/UTF-8 \ - en_SG/ISO-8859-1 \ -+en_US.ISO-8859-15/ISO-8859-15 \ - en_US.UTF-8/UTF-8 \ - en_US/ISO-8859-1 \ - en_ZA.UTF-8/UTF-8 \ -@@ -269,6 +271,8 @@ it_IT/ISO-8859-1 \ - it_IT@euro/ISO-8859-15 \ - iu_CA/UTF-8 \ - ja_JP.EUC-JP/EUC-JP \ -+ja_JP.SHIFT_JISX0213/SHIFT_JISX0213 \ -+ja_JP.SJIS/SHIFT_JIS \ - ja_JP.UTF-8/UTF-8 \ - ka_GE.UTF-8/UTF-8 \ - ka_GE/GEORGIAN-PS \ diff --git a/baselibs.conf b/baselibs.conf index 0af8f27..f37d7ce 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -6,19 +6,12 @@ glibc targettype ia32 +/etc/ld.so.conf targettype ia32 "/lib/ld-linux.so.2 -> /lib/ld-linux.so.2" prereq -glibc-x86 - +/usr/lib/getconf/[^g] - +/usr/sbin/iconvconfig -> /usr/sbin/iconvconfig- glibc-locale arch i586 block! +/usr/lib(64)?/gconv/gconv-modules targettype x86 -/usr/lib(64)?/gconv/gconv-modules glibc-devel - requires "glibc- = %version" arch i586 block! - +^/usr/include/gnu/lib-names-.*\.h$ +^/usr/include/gnu/stubs-.*\.h$ -glibc-devel-static - arch i586 block! glibc-profile arch i586 block! -glibc-utils diff --git a/bindresvport.blacklist b/bindresvport.blacklist index 8b285bd..ae64c70 100644 --- a/bindresvport.blacklist +++ b/bindresvport.blacklist @@ -4,10 +4,8 @@ # called by RPC services. This mostly solves the problem, that a # RPC service uses a well known port of another service. # -623 # ASF, used by IPMI on some cards 631 # cups 636 # ldaps -664 # Secure ASF, used by IPMI on some cards 774 # rpasswd 921 # lwresd 993 # imaps diff --git a/check-build.sh b/check-build.sh new file mode 100644 index 0000000..cc01226 --- /dev/null +++ b/check-build.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Copyright (c) 2003, 2004 SuSE Linux AG, Germany. All rights reserved. +# +# Authors: Thorsten Kukuk +# +# this script use the following variable(s): +# +# - $BUILD_BASENAME +# + +if [ `nice` -gt '9' ] ; then + echo "Don't modify nice for building glibc!" + exit 1 +fi + +# get kernel version +OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" +if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 11 ; then + echo "FATAL: kernel too old, need kernel >= 2.6.11 for this package" 1>&2 + exit 1 +fi + + +exit 0 + diff --git a/crypt_blowfish-1.0.diff b/crypt_blowfish-1.0.diff new file mode 100644 index 0000000..32e5be7 --- /dev/null +++ b/crypt_blowfish-1.0.diff @@ -0,0 +1,1330 @@ +diff -ruN crypt-/crypt_blowfish.c crypt/crypt_blowfish.c +--- crypt-/crypt_blowfish.c 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/crypt_blowfish.c 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,743 @@ ++/* ++ * This code comes from John the Ripper password cracker, with reentrant ++ * and crypt(3) interfaces added, but optimizations specific to password ++ * cracking removed. ++ * ++ * Written by Solar Designer in 1998-2002 and ++ * placed in the public domain. ++ * ++ * There's absolutely no warranty. ++ * ++ * It is my intent that you should be able to use this on your system, ++ * as a part of a software package, or anywhere else to improve security, ++ * ensure compatibility, or for any other purpose. I would appreciate ++ * it if you give credit where it is due and keep your modifications in ++ * the public domain as well, but I don't require that in order to let ++ * you place this code and any modifications you make under a license ++ * of your choice. ++ * ++ * This implementation is compatible with OpenBSD bcrypt.c (version 2a) ++ * by Niels Provos , and uses some of his ++ * ideas. The password hashing algorithm was designed by David Mazieres ++ * . ++ * ++ * There's a paper on the algorithm that explains its design decisions: ++ * ++ * http://www.usenix.org/events/usenix99/provos.html ++ * ++ * Some of the tricks in BF_ROUND might be inspired by Eric Young's ++ * Blowfish library (I can't be sure if I would think of something if I ++ * hadn't seen his code). ++ */ ++ ++#include ++ ++#include ++#ifndef __set_errno ++#define __set_errno(val) errno = (val) ++#endif ++ ++#undef __CONST ++#ifdef __GNUC__ ++#define __CONST __const ++#else ++#define __CONST ++#endif ++ ++#ifdef __i386__ ++#define BF_ASM 1 ++#define BF_SCALE 1 ++#elif defined(__alpha__) || defined(__hppa__) ++#define BF_ASM 0 ++#define BF_SCALE 1 ++#else ++#define BF_ASM 0 ++#define BF_SCALE 0 ++#endif ++ ++typedef unsigned int BF_word; ++ ++/* Number of Blowfish rounds, this is also hardcoded into a few places */ ++#define BF_N 16 ++ ++typedef BF_word BF_key[BF_N + 2]; ++ ++typedef struct { ++ BF_word S[4][0x100]; ++ BF_key P; ++} BF_ctx; ++ ++/* ++ * Magic IV for 64 Blowfish encryptions that we do at the end. ++ * The string is "OrpheanBeholderScryDoubt" on big-endian. ++ */ ++static BF_word BF_magic_w[6] = { ++ 0x4F727068, 0x65616E42, 0x65686F6C, ++ 0x64657253, 0x63727944, 0x6F756274 ++}; ++ ++/* ++ * P-box and S-box tables initialized with digits of Pi. ++ */ ++static BF_ctx BF_init_state = { ++ { ++ { ++ 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, ++ 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, ++ 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, ++ 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, ++ 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, ++ 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, ++ 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, ++ 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, ++ 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, ++ 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, ++ 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, ++ 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, ++ 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, ++ 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, ++ 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, ++ 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, ++ 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, ++ 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, ++ 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, ++ 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, ++ 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, ++ 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, ++ 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, ++ 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, ++ 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, ++ 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, ++ 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, ++ 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, ++ 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, ++ 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, ++ 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, ++ 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, ++ 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, ++ 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, ++ 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, ++ 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, ++ 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, ++ 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, ++ 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, ++ 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, ++ 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, ++ 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, ++ 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, ++ 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, ++ 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, ++ 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, ++ 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, ++ 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, ++ 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, ++ 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, ++ 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, ++ 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, ++ 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, ++ 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, ++ 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, ++ 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, ++ 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, ++ 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, ++ 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, ++ 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, ++ 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, ++ 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, ++ 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, ++ 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a ++ }, { ++ 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, ++ 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, ++ 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, ++ 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, ++ 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, ++ 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, ++ 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, ++ 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, ++ 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, ++ 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, ++ 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, ++ 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, ++ 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, ++ 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, ++ 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, ++ 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, ++ 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, ++ 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, ++ 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, ++ 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, ++ 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, ++ 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, ++ 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, ++ 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, ++ 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, ++ 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, ++ 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, ++ 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, ++ 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, ++ 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, ++ 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, ++ 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, ++ 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, ++ 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, ++ 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, ++ 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, ++ 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, ++ 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, ++ 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, ++ 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, ++ 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, ++ 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, ++ 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, ++ 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, ++ 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, ++ 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, ++ 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, ++ 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, ++ 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, ++ 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, ++ 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, ++ 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, ++ 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, ++ 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, ++ 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, ++ 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, ++ 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, ++ 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, ++ 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, ++ 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, ++ 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, ++ 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, ++ 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, ++ 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7 ++ }, { ++ 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, ++ 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, ++ 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, ++ 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, ++ 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, ++ 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, ++ 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, ++ 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, ++ 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, ++ 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, ++ 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, ++ 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, ++ 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, ++ 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, ++ 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, ++ 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, ++ 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, ++ 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, ++ 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, ++ 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, ++ 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, ++ 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, ++ 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, ++ 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, ++ 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, ++ 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, ++ 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, ++ 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, ++ 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, ++ 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, ++ 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, ++ 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, ++ 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, ++ 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, ++ 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, ++ 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, ++ 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, ++ 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, ++ 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, ++ 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, ++ 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, ++ 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, ++ 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, ++ 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, ++ 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, ++ 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, ++ 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, ++ 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, ++ 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, ++ 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, ++ 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, ++ 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, ++ 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, ++ 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, ++ 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, ++ 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, ++ 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, ++ 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, ++ 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, ++ 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, ++ 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, ++ 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, ++ 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, ++ 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0 ++ }, { ++ 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, ++ 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, ++ 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, ++ 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, ++ 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, ++ 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, ++ 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, ++ 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, ++ 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, ++ 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, ++ 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, ++ 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, ++ 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, ++ 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, ++ 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, ++ 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, ++ 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, ++ 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, ++ 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, ++ 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, ++ 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, ++ 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, ++ 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, ++ 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, ++ 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, ++ 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, ++ 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, ++ 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, ++ 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, ++ 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, ++ 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, ++ 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, ++ 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, ++ 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, ++ 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, ++ 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, ++ 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, ++ 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, ++ 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, ++ 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, ++ 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, ++ 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, ++ 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, ++ 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, ++ 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, ++ 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, ++ 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, ++ 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, ++ 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, ++ 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, ++ 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, ++ 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, ++ 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, ++ 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, ++ 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, ++ 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, ++ 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, ++ 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, ++ 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, ++ 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, ++ 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, ++ 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, ++ 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, ++ 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 ++ } ++ }, { ++ 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, ++ 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, ++ 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, ++ 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, ++ 0x9216d5d9, 0x8979fb1b ++ } ++}; ++ ++static unsigned char BF_itoa64[64 + 1] = ++ "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; ++ ++static unsigned char BF_atoi64[0x60] = { ++ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1, ++ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64, ++ 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ++ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 64, 64, 64, 64, 64, ++ 64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, ++ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 64, 64, 64, 64, 64 ++}; ++ ++/* ++ * This may be optimized out if built with function inlining and no BF_ASM. ++ */ ++static void clean(void *data, int size) ++{ ++#if BF_ASM ++ extern void _BF_clean(void *data); ++#endif ++ memset(data, 0, size); ++#if BF_ASM ++ _BF_clean(data); ++#endif ++} ++ ++#define BF_safe_atoi64(dst, src) \ ++{ \ ++ tmp = (unsigned char)(src); \ ++ if ((unsigned int)(tmp -= 0x20) >= 0x60) return -1; \ ++ tmp = BF_atoi64[tmp]; \ ++ if (tmp > 63) return -1; \ ++ (dst) = tmp; \ ++} ++ ++static int BF_decode(BF_word *dst, __CONST char *src, int size) ++{ ++ unsigned char *dptr = (unsigned char *)dst; ++ unsigned char *end = dptr + size; ++ unsigned char *sptr = (unsigned char *)src; ++ unsigned int tmp, c1, c2, c3, c4; ++ ++ do { ++ BF_safe_atoi64(c1, *sptr++); ++ BF_safe_atoi64(c2, *sptr++); ++ *dptr++ = (c1 << 2) | ((c2 & 0x30) >> 4); ++ if (dptr >= end) break; ++ ++ BF_safe_atoi64(c3, *sptr++); ++ *dptr++ = ((c2 & 0x0F) << 4) | ((c3 & 0x3C) >> 2); ++ if (dptr >= end) break; ++ ++ BF_safe_atoi64(c4, *sptr++); ++ *dptr++ = ((c3 & 0x03) << 6) | c4; ++ } while (dptr < end); ++ ++ return 0; ++} ++ ++static void BF_encode(char *dst, __CONST BF_word *src, int size) ++{ ++ unsigned char *sptr = (unsigned char *)src; ++ unsigned char *end = sptr + size; ++ unsigned char *dptr = (unsigned char *)dst; ++ unsigned int c1, c2; ++ ++ do { ++ c1 = *sptr++; ++ *dptr++ = BF_itoa64[c1 >> 2]; ++ c1 = (c1 & 0x03) << 4; ++ if (sptr >= end) { ++ *dptr++ = BF_itoa64[c1]; ++ break; ++ } ++ ++ c2 = *sptr++; ++ c1 |= c2 >> 4; ++ *dptr++ = BF_itoa64[c1]; ++ c1 = (c2 & 0x0f) << 2; ++ if (sptr >= end) { ++ *dptr++ = BF_itoa64[c1]; ++ break; ++ } ++ ++ c2 = *sptr++; ++ c1 |= c2 >> 6; ++ *dptr++ = BF_itoa64[c1]; ++ *dptr++ = BF_itoa64[c2 & 0x3f]; ++ } while (sptr < end); ++} ++ ++static void BF_swap(BF_word *x, int count) ++{ ++ static int endianness_check = 1; ++ char *is_little_endian = (char *)&endianness_check; ++ BF_word tmp; ++ ++ if (*is_little_endian) ++ do { ++ tmp = *x; ++ tmp = (tmp << 16) | (tmp >> 16); ++ *x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF); ++ } while (--count); ++} ++ ++#if BF_SCALE ++/* Architectures which can shift addresses left by 2 bits with no extra cost */ ++#define BF_ROUND(L, R, N) \ ++ tmp1 = L & 0xFF; \ ++ tmp2 = L >> 8; \ ++ tmp2 &= 0xFF; \ ++ tmp3 = L >> 16; \ ++ tmp3 &= 0xFF; \ ++ tmp4 = L >> 24; \ ++ tmp1 = data.ctx.S[3][tmp1]; \ ++ tmp2 = data.ctx.S[2][tmp2]; \ ++ tmp3 = data.ctx.S[1][tmp3]; \ ++ tmp3 += data.ctx.S[0][tmp4]; \ ++ tmp3 ^= tmp2; \ ++ R ^= data.ctx.P[N + 1]; \ ++ tmp3 += tmp1; \ ++ R ^= tmp3; ++#else ++/* Architectures with no complicated addressing modes supported */ ++#define BF_INDEX(S, i) \ ++ (*((BF_word *)(((unsigned char *)S) + (i)))) ++#define BF_ROUND(L, R, N) \ ++ tmp1 = L & 0xFF; \ ++ tmp1 <<= 2; \ ++ tmp2 = L >> 6; \ ++ tmp2 &= 0x3FC; \ ++ tmp3 = L >> 14; \ ++ tmp3 &= 0x3FC; \ ++ tmp4 = L >> 22; \ ++ tmp4 &= 0x3FC; \ ++ tmp1 = BF_INDEX(data.ctx.S[3], tmp1); \ ++ tmp2 = BF_INDEX(data.ctx.S[2], tmp2); \ ++ tmp3 = BF_INDEX(data.ctx.S[1], tmp3); \ ++ tmp3 += BF_INDEX(data.ctx.S[0], tmp4); \ ++ tmp3 ^= tmp2; \ ++ R ^= data.ctx.P[N + 1]; \ ++ tmp3 += tmp1; \ ++ R ^= tmp3; ++#endif ++ ++/* ++ * Encrypt one block, BF_N is hardcoded here. ++ */ ++#define BF_ENCRYPT \ ++ L ^= data.ctx.P[0]; \ ++ BF_ROUND(L, R, 0); \ ++ BF_ROUND(R, L, 1); \ ++ BF_ROUND(L, R, 2); \ ++ BF_ROUND(R, L, 3); \ ++ BF_ROUND(L, R, 4); \ ++ BF_ROUND(R, L, 5); \ ++ BF_ROUND(L, R, 6); \ ++ BF_ROUND(R, L, 7); \ ++ BF_ROUND(L, R, 8); \ ++ BF_ROUND(R, L, 9); \ ++ BF_ROUND(L, R, 10); \ ++ BF_ROUND(R, L, 11); \ ++ BF_ROUND(L, R, 12); \ ++ BF_ROUND(R, L, 13); \ ++ BF_ROUND(L, R, 14); \ ++ BF_ROUND(R, L, 15); \ ++ tmp4 = R; \ ++ R = L; \ ++ L = tmp4 ^ data.ctx.P[BF_N + 1]; ++ ++#if BF_ASM ++#define BF_body() \ ++ _BF_body_r(&data.ctx); ++#else ++#define BF_body() \ ++ L = R = 0; \ ++ ptr = data.ctx.P; \ ++ do { \ ++ ptr += 2; \ ++ BF_ENCRYPT; \ ++ *(ptr - 2) = L; \ ++ *(ptr - 1) = R; \ ++ } while (ptr < &data.ctx.P[BF_N + 2]); \ ++\ ++ ptr = data.ctx.S[0]; \ ++ do { \ ++ ptr += 2; \ ++ BF_ENCRYPT; \ ++ *(ptr - 2) = L; \ ++ *(ptr - 1) = R; \ ++ } while (ptr < &data.ctx.S[3][0xFF]); ++#endif ++ ++static void BF_set_key(__CONST char *key, BF_key expanded, BF_key initial) ++{ ++ __CONST char *ptr = key; ++ int i, j; ++ BF_word tmp; ++ ++ for (i = 0; i < BF_N + 2; i++) { ++ tmp = 0; ++ for (j = 0; j < 4; j++) { ++ tmp <<= 8; ++ tmp |= *ptr; ++ ++ if (!*ptr) ptr = key; else ptr++; ++ } ++ ++ expanded[i] = tmp; ++ initial[i] = BF_init_state.P[i] ^ tmp; ++ } ++} ++ ++char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting, ++ char *output, int size) ++{ ++#if BF_ASM ++ extern void _BF_body_r(BF_ctx *ctx); ++#endif ++ struct { ++ BF_ctx ctx; ++ BF_key expanded_key; ++ union { ++ BF_word salt[4]; ++ BF_word output[6]; ++ } binary; ++ } data; ++ BF_word L, R; ++ BF_word tmp1, tmp2, tmp3, tmp4; ++ BF_word *ptr; ++ BF_word count; ++ int i; ++ ++ if (size < 7 + 22 + 31 + 1) { ++ __set_errno(ERANGE); ++ return NULL; ++ } ++ ++ if (setting[0] != '$' || ++ setting[1] != '2' || ++ setting[2] != 'a' || ++ setting[3] != '$' || ++ setting[4] < '0' || setting[4] > '3' || ++ setting[5] < '0' || setting[5] > '9' || ++ setting[6] != '$') { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ count = (BF_word)1 << ((setting[4] - '0') * 10 + (setting[5] - '0')); ++ if (count < 16 || BF_decode(data.binary.salt, &setting[7], 16)) { ++ clean(data.binary.salt, sizeof(data.binary.salt)); ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ BF_swap(data.binary.salt, 4); ++ ++ BF_set_key(key, data.expanded_key, data.ctx.P); ++ ++ memcpy(data.ctx.S, BF_init_state.S, sizeof(data.ctx.S)); ++ ++ L = R = 0; ++ for (i = 0; i < BF_N + 2; i += 2) { ++ L ^= data.binary.salt[i & 2]; ++ R ^= data.binary.salt[(i & 2) + 1]; ++ BF_ENCRYPT; ++ data.ctx.P[i] = L; ++ data.ctx.P[i + 1] = R; ++ } ++ ++ ptr = data.ctx.S[0]; ++ do { ++ ptr += 4; ++ L ^= data.binary.salt[(BF_N + 2) & 3]; ++ R ^= data.binary.salt[(BF_N + 3) & 3]; ++ BF_ENCRYPT; ++ *(ptr - 4) = L; ++ *(ptr - 3) = R; ++ ++ L ^= data.binary.salt[(BF_N + 4) & 3]; ++ R ^= data.binary.salt[(BF_N + 5) & 3]; ++ BF_ENCRYPT; ++ *(ptr - 2) = L; ++ *(ptr - 1) = R; ++ } while (ptr < &data.ctx.S[3][0xFF]); ++ ++ do { ++ data.ctx.P[0] ^= data.expanded_key[0]; ++ data.ctx.P[1] ^= data.expanded_key[1]; ++ data.ctx.P[2] ^= data.expanded_key[2]; ++ data.ctx.P[3] ^= data.expanded_key[3]; ++ data.ctx.P[4] ^= data.expanded_key[4]; ++ data.ctx.P[5] ^= data.expanded_key[5]; ++ data.ctx.P[6] ^= data.expanded_key[6]; ++ data.ctx.P[7] ^= data.expanded_key[7]; ++ data.ctx.P[8] ^= data.expanded_key[8]; ++ data.ctx.P[9] ^= data.expanded_key[9]; ++ data.ctx.P[10] ^= data.expanded_key[10]; ++ data.ctx.P[11] ^= data.expanded_key[11]; ++ data.ctx.P[12] ^= data.expanded_key[12]; ++ data.ctx.P[13] ^= data.expanded_key[13]; ++ data.ctx.P[14] ^= data.expanded_key[14]; ++ data.ctx.P[15] ^= data.expanded_key[15]; ++ data.ctx.P[16] ^= data.expanded_key[16]; ++ data.ctx.P[17] ^= data.expanded_key[17]; ++ ++ BF_body(); ++ ++ tmp1 = data.binary.salt[0]; ++ tmp2 = data.binary.salt[1]; ++ tmp3 = data.binary.salt[2]; ++ tmp4 = data.binary.salt[3]; ++ data.ctx.P[0] ^= tmp1; ++ data.ctx.P[1] ^= tmp2; ++ data.ctx.P[2] ^= tmp3; ++ data.ctx.P[3] ^= tmp4; ++ data.ctx.P[4] ^= tmp1; ++ data.ctx.P[5] ^= tmp2; ++ data.ctx.P[6] ^= tmp3; ++ data.ctx.P[7] ^= tmp4; ++ data.ctx.P[8] ^= tmp1; ++ data.ctx.P[9] ^= tmp2; ++ data.ctx.P[10] ^= tmp3; ++ data.ctx.P[11] ^= tmp4; ++ data.ctx.P[12] ^= tmp1; ++ data.ctx.P[13] ^= tmp2; ++ data.ctx.P[14] ^= tmp3; ++ data.ctx.P[15] ^= tmp4; ++ data.ctx.P[16] ^= tmp1; ++ data.ctx.P[17] ^= tmp2; ++ ++ BF_body(); ++ } while (--count); ++ ++ for (i = 0; i < 6; i += 2) { ++ L = BF_magic_w[i]; ++ R = BF_magic_w[i + 1]; ++ ++ count = 64; ++ do { ++ BF_ENCRYPT; ++ } while (--count); ++ ++ data.binary.output[i] = L; ++ data.binary.output[i + 1] = R; ++ } ++ ++ memcpy(output, setting, 7 + 22 - 1); ++ output[7 + 22 - 1] = BF_itoa64[(int) ++ BF_atoi64[(int)setting[7 + 22 - 1] - 0x20] & 0x30]; ++ ++/* This has to be bug-compatible with the original implementation, so ++ * only encode 23 of the 24 bytes. :-) */ ++ BF_swap(data.binary.output, 6); ++ BF_encode(&output[7 + 22], data.binary.output, 23); ++ output[7 + 22 + 31] = '\0'; ++ ++/* Overwrite the most obvious sensitive data we have on the stack. Note ++ * that this does not guarantee there's no sensitive data left on the ++ * stack and/or in registers; I'm not aware of portable code that does. */ ++ clean(&data, sizeof(data)); ++ ++ return output; ++} ++ ++char *_crypt_gensalt_blowfish_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ if (size < 16 || output_size < 7 + 22 + 1 || ++ (count && (count < 4 || count > 31))) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ if (!count) count = 5; ++ ++ output[0] = '$'; ++ output[1] = '2'; ++ output[2] = 'a'; ++ output[3] = '$'; ++ output[4] = '0' + count / 10; ++ output[5] = '0' + count % 10; ++ output[6] = '$'; ++ ++ BF_encode(&output[7], (BF_word *)input, 16); ++ output[7 + 22] = '\0'; ++ ++ return output; ++} +diff -ruN crypt-/crypt_gensalt.c crypt/crypt_gensalt.c +--- crypt-/crypt_gensalt.c 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/crypt_gensalt.c 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,111 @@ ++/* ++ * Written by Solar Designer and placed in the public domain. ++ * See crypt_blowfish.c for more information. ++ * ++ * This file contains salt generation functions for the traditional and ++ * other common crypt(3) algorithms, except for bcrypt which is defined ++ * entirely in crypt_blowfish.c. ++ */ ++ ++#include ++ ++#include ++#ifndef __set_errno ++#define __set_errno(val) errno = (val) ++#endif ++ ++#undef __CONST ++#ifdef __GNUC__ ++#define __CONST __const ++#else ++#define __CONST ++#endif ++ ++unsigned char _crypt_itoa64[64 + 1] = ++ "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; ++ ++char *_crypt_gensalt_traditional_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ if (size < 2 || output_size < 2 + 1 || (count && count != 25)) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 2 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ output[0] = _crypt_itoa64[(unsigned int)input[0] & 0x3f]; ++ output[1] = _crypt_itoa64[(unsigned int)input[1] & 0x3f]; ++ output[2] = '\0'; ++ ++ return output; ++} ++ ++char *_crypt_gensalt_extended_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ unsigned long value; ++ ++/* Even iteration counts make it easier to detect weak DES keys from a look ++ * at the hash, so they should be avoided */ ++ if (size < 3 || output_size < 1 + 4 + 4 + 1 || ++ (count && (count > 0xffffff || !(count & 1)))) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 1 + 4 + 4 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ if (!count) count = 725; ++ ++ output[0] = '_'; ++ output[1] = _crypt_itoa64[count & 0x3f]; ++ output[2] = _crypt_itoa64[(count >> 6) & 0x3f]; ++ output[3] = _crypt_itoa64[(count >> 12) & 0x3f]; ++ output[4] = _crypt_itoa64[(count >> 18) & 0x3f]; ++ value = (unsigned long)(unsigned char)input[0] | ++ ((unsigned long)(unsigned char)input[1] << 8) | ++ ((unsigned long)(unsigned char)input[2] << 16); ++ output[5] = _crypt_itoa64[value & 0x3f]; ++ output[6] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ output[7] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ output[8] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ output[9] = '\0'; ++ ++ return output; ++} ++ ++char *_crypt_gensalt_md5_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ unsigned long value; ++ ++ if (size < 3 || output_size < 3 + 4 + 1 || (count && count != 1000)) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 3 + 4 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ output[0] = '$'; ++ output[1] = '1'; ++ output[2] = '$'; ++ value = (unsigned long)(unsigned char)input[0] | ++ ((unsigned long)(unsigned char)input[1] << 8) | ++ ((unsigned long)(unsigned char)input[2] << 16); ++ output[3] = _crypt_itoa64[value & 0x3f]; ++ output[4] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ output[5] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ output[6] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ output[7] = '\0'; ++ ++ if (size >= 6 && output_size >= 3 + 4 + 4 + 1) { ++ value = (unsigned long)(unsigned char)input[3] | ++ ((unsigned long)(unsigned char)input[4] << 8) | ++ ((unsigned long)(unsigned char)input[5] << 16); ++ output[7] = _crypt_itoa64[value & 0x3f]; ++ output[8] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ output[9] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ output[10] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ output[11] = '\0'; ++ } ++ ++ return output; ++} +diff -ruN crypt-/ow-crypt.h crypt/ow-crypt.h +--- crypt-/ow-crypt.h 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/ow-crypt.h 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,34 @@ ++/* ++ * Written by Solar Designer and placed in the public domain. ++ * See crypt_blowfish.c for more information. ++ */ ++ ++#ifndef _OW_CRYPT_H ++#define _OW_CRYPT_H ++ ++#undef __CONST ++#ifdef __GNUC__ ++#define __CONST __const ++#else ++#define __CONST ++#endif ++ ++#ifndef __SKIP_GNU ++extern char *crypt(__CONST char *key, __CONST char *setting); ++extern char *crypt_r(__CONST char *key, __CONST char *setting, void *data); ++#endif ++ ++#ifndef __SKIP_OW ++extern char *crypt_rn(__CONST char *key, __CONST char *setting, ++ void *data, int size); ++extern char *crypt_ra(__CONST char *key, __CONST char *setting, ++ void **data, int *size); ++extern char *crypt_gensalt(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size); ++extern char *crypt_gensalt_rn(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++extern char *crypt_gensalt_ra(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size); ++#endif ++ ++#endif +diff -ruN crypt-/wrapper.c crypt/wrapper.c +--- crypt-/wrapper.c 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/wrapper.c 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,426 @@ ++/* ++ * Written by Solar Designer and placed in the public domain. ++ * See crypt_blowfish.c for more information. ++ */ ++ ++#include ++#include ++ ++#include ++#ifndef __set_errno ++#define __set_errno(val) errno = (val) ++#endif ++ ++#ifdef TEST ++#include ++#include ++#include ++#include ++#include ++#ifdef TEST_THREADS ++#include ++#endif ++#endif ++ ++#define CRYPT_OUTPUT_SIZE (7 + 22 + 31 + 1) ++#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++#define __SKIP_GNU ++#endif ++#include "ow-crypt.h" ++ ++extern char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting, ++ char *output, int size); ++extern char *_crypt_gensalt_blowfish_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++ ++extern unsigned char _crypt_itoa64[]; ++extern char *_crypt_gensalt_traditional_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++extern char *_crypt_gensalt_extended_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++extern char *_crypt_gensalt_md5_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++/* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ ++#include "crypt.h" ++extern char *__md5_crypt_r(const char *key, const char *salt, ++ char *buffer, int buflen); ++/* crypt-entry.c needs to be patched to define __des_crypt_r rather than ++ * __crypt_r, and not define crypt_r and crypt at all */ ++extern char *__des_crypt_r(const char *key, const char *salt, ++ struct crypt_data *data); ++extern struct crypt_data _ufc_foobar; ++#endif ++ ++static int _crypt_data_alloc(void **data, int *size, int need) ++{ ++ void *updated; ++ ++ if (*data && *size >= need) return 0; ++ ++ updated = realloc(*data, need); ++ ++ if (!updated) { ++#ifndef __GLIBC__ ++ /* realloc(3) on glibc sets errno, so we don't need to bother */ ++ __set_errno(ENOMEM); ++#endif ++ return -1; ++ } ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++ if (need >= sizeof(struct crypt_data)) ++ ((struct crypt_data *)updated)->initialized = 0; ++#endif ++ ++ *data = updated; ++ *size = need; ++ ++ return 0; ++} ++ ++static char *_crypt_retval_magic(char *retval, __CONST char *setting, ++ char *output) ++{ ++ if (retval) return retval; ++ ++ output[0] = '*'; ++ output[1] = '0'; ++ output[2] = '\0'; ++ ++ if (setting[0] == '*' && setting[1] == '0') ++ output[1] = '1'; ++ ++ return output; ++} ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++/* ++ * Applications may re-use the same instance of struct crypt_data without ++ * resetting the initialized field in order to let crypt_r() skip some of ++ * its initialization code. Thus, it is important that our multiple hashing ++ * algorithms either don't conflict with each other in their use of the ++ * data area or reset the initialized field themselves whenever required. ++ * Currently, the hashing algorithms simply have no conflicts: the first ++ * field of struct crypt_data is the 128-byte large DES key schedule which ++ * __des_crypt_r() calculates each time it is called while the two other ++ * hashing algorithms use less than 128 bytes of the data area. ++ */ ++ ++char *__crypt_rn(__const char *key, __const char *setting, ++ void *data, int size) ++{ ++ if (setting[0] == '$' && setting[1] == '2') ++ return _crypt_blowfish_rn(key, setting, (char *)data, size); ++ if (setting[0] == '$' && setting[1] == '1') ++ return __md5_crypt_r(key, setting, (char *)data, size); ++ if (setting[0] == '$' || setting[0] == '_') { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ if (size >= sizeof(struct crypt_data)) ++ return __des_crypt_r(key, setting, (struct crypt_data *)data); ++ __set_errno(ERANGE); ++ return NULL; ++} ++ ++char *__crypt_ra(__const char *key, __const char *setting, ++ void **data, int *size) ++{ ++ if (setting[0] == '$' && setting[1] == '2') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return _crypt_blowfish_rn(key, setting, (char *)*data, *size); ++ } ++ if (setting[0] == '$' && setting[1] == '1') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return __md5_crypt_r(key, setting, (char *)*data, *size); ++ } ++ if (setting[0] == '$' || setting[0] == '_') { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ if (_crypt_data_alloc(data, size, sizeof(struct crypt_data))) ++ return NULL; ++ return __des_crypt_r(key, setting, (struct crypt_data *)*data); ++} ++ ++char *__crypt_r(__const char *key, __const char *setting, ++ struct crypt_data *data) ++{ ++ return _crypt_retval_magic( ++ __crypt_rn(key, setting, data, sizeof(*data)), ++ setting, (char *)data); ++} ++ ++char *__crypt(__const char *key, __const char *setting) ++{ ++ return _crypt_retval_magic( ++ __crypt_rn(key, setting, &_ufc_foobar, sizeof(_ufc_foobar)), ++ setting, (char *)&_ufc_foobar); ++} ++#else ++char *crypt_rn(__CONST char *key, __CONST char *setting, void *data, int size) ++{ ++ return _crypt_blowfish_rn(key, setting, (char *)data, size); ++} ++ ++char *crypt_ra(__CONST char *key, __CONST char *setting, ++ void **data, int *size) ++{ ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return _crypt_blowfish_rn(key, setting, (char *)*data, *size); ++} ++ ++char *crypt_r(__CONST char *key, __CONST char *setting, void *data) ++{ ++ return _crypt_retval_magic( ++ crypt_rn(key, setting, data, CRYPT_OUTPUT_SIZE), ++ setting, (char *)data); ++} ++ ++char *crypt(__CONST char *key, __CONST char *setting) ++{ ++ static char output[CRYPT_OUTPUT_SIZE]; ++ ++ return _crypt_retval_magic( ++ crypt_rn(key, setting, output, sizeof(output)), ++ setting, output); ++} ++ ++#define __crypt_gensalt_rn crypt_gensalt_rn ++#define __crypt_gensalt_ra crypt_gensalt_ra ++#define __crypt_gensalt crypt_gensalt ++#endif ++ ++char *__crypt_gensalt_rn(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ char *(*use)(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++ ++ /* This may be supported on some platforms in the future */ ++ if (!input) { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ if (!strncmp(prefix, "$2a$", 4)) ++ use = _crypt_gensalt_blowfish_rn; ++ else ++ if (!strncmp(prefix, "$1$", 3)) ++ use = _crypt_gensalt_md5_rn; ++ else ++ if (prefix[0] == '_') ++ use = _crypt_gensalt_extended_rn; ++ else ++ if (!prefix[0] || ++ (prefix[0] && prefix[1] && ++ memchr(_crypt_itoa64, prefix[0], 64) && ++ memchr(_crypt_itoa64, prefix[1], 64))) ++ use = _crypt_gensalt_traditional_rn; ++ else { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ return use(count, input, size, output, output_size); ++} ++ ++char *__crypt_gensalt_ra(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size) ++{ ++ char output[CRYPT_GENSALT_OUTPUT_SIZE]; ++ char *retval; ++ ++ retval = __crypt_gensalt_rn(prefix, count, ++ input, size, output, sizeof(output)); ++ ++ if (retval) { ++ retval = strdup(retval); ++#ifndef __GLIBC__ ++ /* strdup(3) on glibc sets errno, so we don't need to bother */ ++ if (!retval) ++ __set_errno(ENOMEM); ++#endif ++ } ++ ++ return retval; ++} ++ ++char *__crypt_gensalt(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size) ++{ ++ static char output[CRYPT_GENSALT_OUTPUT_SIZE]; ++ ++ return __crypt_gensalt_rn(prefix, count, ++ input, size, output, sizeof(output)); ++} ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++weak_alias(__crypt_rn, crypt_rn) ++weak_alias(__crypt_ra, crypt_ra) ++weak_alias(__crypt_r, crypt_r) ++weak_alias(__crypt, crypt) ++weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) ++weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) ++weak_alias(__crypt_gensalt, crypt_gensalt) ++#endif ++ ++#ifdef TEST ++static struct { ++ char *hash; ++ char *pw; ++} tests[] = { ++ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW", ++ "U*U"}, ++ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwK", ++ "U*U*"}, ++ {"$2a$05$XXXXXXXXXXXXXXXXXXXXXOAcXxm9kjPGEMsLznoKqmqw7tc8WCx4a", ++ "U*U*U"}, ++ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy", ++ ""}, ++ {"$2a$05$abcdefghijklmnopqrstuu5s2v8.iXieOjg/.AySBTTZIIVFJeBui", ++ "0123456789abcdefghijklmnopqrstuvwxyz" ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"}, ++ {NULL, NULL} ++}; ++ ++#define which tests[0] ++ ++static volatile sig_atomic_t running; ++ ++static void handle_timer(int signum) ++{ ++ running = 0; ++} ++ ++static void *run(void *arg) ++{ ++ unsigned long count = 0; ++ int i = 0; ++ void *data = NULL; ++ int size = 0x12345678; ++ ++ do { ++ if (strcmp(crypt_ra(tests[i].pw, tests[i].hash, &data, &size), ++ tests[i].hash)) { ++ printf("%d: FAILED (crypt_ra/%d/%lu)\n", ++ (char *)arg - (char *)0, i, count); ++ free(data); ++ return NULL; ++ } ++ if (!tests[++i].hash) i = 0; ++ count++; ++ } while (running); ++ ++ free(data); ++ return count + (char *)0; ++} ++ ++int main(void) ++{ ++ struct itimerval it; ++ struct tms buf; ++ clock_t start_real, start_virtual, end_real, end_virtual; ++ unsigned long count; ++ void *data; ++ int size; ++ char *setting1, *setting2; ++ int i; ++#ifdef TEST_THREADS ++ pthread_t t[TEST_THREADS]; ++ void *t_retval; ++#endif ++ ++ for (i = 0; tests[i].hash; i++) ++ if (strcmp(crypt(tests[i].pw, tests[i].hash), tests[i].hash)) { ++ printf("FAILED (crypt/%d)\n", i); ++ return 1; ++ } ++ ++ data = NULL; ++ size = 0x12345678; ++ for (i = 0; tests[i].hash; i++) ++ if (strcmp(crypt_ra(tests[i].pw, tests[i].hash, &data, &size), ++ tests[i].hash)) { ++ printf("FAILED (crypt_ra/%d)\n", i); ++ return 1; ++ } ++ ++ setting1 = crypt_gensalt(which.hash, 12, data, size); ++ if (!setting1 || strncmp(setting1, "$2a$12$", 7)) { ++ puts("FAILED (crypt_gensalt)\n"); ++ return 1; ++ } ++ ++ setting2 = crypt_gensalt_ra(setting1, 12, data, size); ++ if (strcmp(setting1, setting2)) { ++ puts("FAILED (crypt_gensalt_ra/1)\n"); ++ return 1; ++ } ++ ++ (*(char *)data)++; ++ setting1 = crypt_gensalt_ra(setting2, 12, data, size); ++ if (!strcmp(setting1, setting2)) { ++ puts("FAILED (crypt_gensalt_ra/2)\n"); ++ return 1; ++ } ++ ++ free(setting1); ++ free(setting2); ++ free(data); ++ ++ running = 1; ++ signal(SIGALRM, handle_timer); ++ ++ memset(&it, 0, sizeof(it)); ++ it.it_value.tv_sec = 5; ++ setitimer(ITIMER_REAL, &it, NULL); ++ ++ start_real = times(&buf); ++ start_virtual = buf.tms_utime + buf.tms_stime; ++ ++ count = (char *)run((char *)0) - (char *)0; ++ ++ end_real = times(&buf); ++ end_virtual = buf.tms_utime + buf.tms_stime; ++ if (end_virtual == start_virtual) end_virtual++; ++ ++ printf("%.1f c/s real, %.1f c/s virtual\n", ++ (float)count * CLK_TCK / (end_real - start_real), ++ (float)count * CLK_TCK / (end_virtual - start_virtual)); ++ ++#ifdef TEST_THREADS ++ running = 1; ++ it.it_value.tv_sec = 60; ++ setitimer(ITIMER_REAL, &it, NULL); ++ start_real = times(&buf); ++ ++ for (i = 0; i < TEST_THREADS; i++) ++ if (pthread_create(&t[i], NULL, run, i + (char *)0)) { ++ perror("pthread_create"); ++ return 1; ++ } ++ ++ for (i = 0; i < TEST_THREADS; i++) { ++ if (pthread_join(t[i], &t_retval)) { ++ perror("pthread_join"); ++ continue; ++ } ++ if (!t_retval) continue; ++ count = (char *)t_retval - (char *)0; ++ end_real = times(&buf); ++ printf("%d: %.1f c/s real\n", i, ++ (float)count * CLK_TCK / (end_real - start_real)); ++ } ++#endif ++ ++ return 0; ++} ++#endif diff --git a/crypt_blowfish-1.2-hack_around_arm.diff b/crypt_blowfish-1.2-hack_around_arm.diff deleted file mode 100644 index 3beb8ea..0000000 --- a/crypt_blowfish-1.2-hack_around_arm.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- x86.S -+++ x86.S -@@ -199,5 +199,5 @@ - #endif - - #if defined(__ELF__) && defined(__linux__) --.section .note.GNU-stack,"",@progbits -+.section .note.GNU-stack,"",%progbits - #endif diff --git a/crypt_blowfish-1.2-sha.diff b/crypt_blowfish-1.2-sha.diff deleted file mode 100644 index d7a5ce9..0000000 --- a/crypt_blowfish-1.2-sha.diff +++ /dev/null @@ -1,174 +0,0 @@ -From 1c581a8364ab18a6938f3153d7bea793d06a4652 Mon Sep 17 00:00:00 2001 -From: Ludwig Nussel -Date: Thu, 25 Aug 2011 14:00:38 +0200 -Subject: [PATCH crypt_blowfish] support for sha256 and sha512 - ---- - crypt.3 | 14 +++++++++++++ - crypt_gensalt.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - wrapper.c | 23 +++++++++++++++++++++ - 3 files changed, 95 insertions(+), 0 deletions(-) - -Index: crypt_blowfish-1.3/crypt.3 -=================================================================== ---- crypt_blowfish-1.3.orig/crypt.3 -+++ crypt_blowfish-1.3/crypt.3 -@@ -399,6 +399,20 @@ too low for the currently available hard - .hash "$1$" "\e$1\e$[^$]{1,8}\e$[./0-9A-Za-z]{22}" unlimited 8 "" 128 "6 to 48" 1000 - .PP - .ti -2 -+.B SHA256 based -+.br -+This is Ulrich Drepper's SHA256-based password hashing method originally -+developed for Linux. -+.hash "$5$" "\e$5\e$(rounds=[0-9]{1,9}\e$)?([./0-9A-Za-z]{1,16})?\e$[./0-9A-Za-z]{43}" unlimited 8 "" 256 "0 to 96" "1000 to 999999999 (default 5000)" -+.PP -+.ti -2 -+.B SHA512 based -+.br -+This is Ulrich Drepper's SHA512-based password hashing method originally -+developed for Linux. -+.hash "$6$" "\e$6\e$(rounds=[0-9]{1,9}\e$)?([./0-9A-Za-z]{1,16})?\e$[./0-9A-Za-z]{86}" unlimited 8 "" 512 "0 to 96" "1000 to 999999999 (default 5000)" -+.PP -+.ti -2 - .BR "OpenBSD-style Blowfish-based" " (" bcrypt ) - .br - .B bcrypt -Index: crypt_blowfish-1.3/crypt_gensalt.c -=================================================================== ---- crypt_blowfish-1.3.orig/crypt_gensalt.c -+++ crypt_blowfish-1.3/crypt_gensalt.c -@@ -19,6 +19,7 @@ - */ - - #include -+#include - - #include - #ifndef __set_errno -@@ -122,3 +123,60 @@ char *_crypt_gensalt_md5_rn(const char * - - return output; - } -+ -+#define SHA2_SALT_LEN_MAX 16 -+#define SHA2_ROUNDS_MIN 1000 -+#define SHA2_ROUNDS_MAX 999999999 -+char *_crypt_gensalt_sha2_rn (const char *prefix, unsigned long count, -+ const char *input, int size, char *output, int output_size) -+ -+{ -+ char *o = output; -+ const char *i = input; -+ unsigned needed = 3 + MIN(size/3*4, SHA2_SALT_LEN_MAX) + 1; -+ -+ if (size < 3 || output_size < needed) -+ goto error; -+ -+ size = MIN(size, SHA2_SALT_LEN_MAX/4*3); -+ -+ o[0] = prefix[0]; -+ o[1] = prefix[1]; -+ o[2] = prefix[2]; -+ o += 3; -+ -+ if (count) { -+ count = MAX(SHA2_ROUNDS_MIN, MIN(count, SHA2_ROUNDS_MAX)); -+ int n = snprintf (o, output_size-3, "rounds=%ld$", count); -+ if (n < 0 || n >= output_size-3) -+ goto error; -+ needed += n; -+ o += n; -+ } -+ -+ if (output_size < needed) -+ goto error; -+ -+ while (size >= 3) { -+ unsigned long value = -+ (unsigned long)(unsigned char)i[0] | -+ ((unsigned long)(unsigned char)i[1] << 8) | -+ ((unsigned long)(unsigned char)i[2] << 16); -+ o[0] = _crypt_itoa64[value & 0x3f]; -+ o[1] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ o[2] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ o[3] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ size -= 3; -+ i += 3; -+ o += 3; -+ } -+ o[0] = '\0'; -+ -+ return output; -+ -+error: -+ if (output_size > 0) -+ output[0] = '\0'; -+ errno = ENOMEM; -+ return NULL; -+} -Index: crypt_blowfish-1.3/crypt_gensalt.h -=================================================================== ---- crypt_blowfish-1.3.orig/crypt_gensalt.h -+++ crypt_blowfish-1.3/crypt_gensalt.h -@@ -26,5 +26,7 @@ extern char *_crypt_gensalt_extended_rn( - const char *input, int size, char *output, int output_size); - extern char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size); -+extern char *_crypt_gensalt_sha2_rn(const char *prefix, unsigned long count, -+ const char *input, int size, char *output, int output_size); - - #endif -Index: crypt_blowfish-1.3/wrapper.c -=================================================================== ---- crypt_blowfish-1.3.orig/wrapper.c -+++ crypt_blowfish-1.3/wrapper.c -@@ -50,6 +50,10 @@ - #include "crypt.h" - extern char *__md5_crypt_r(const char *key, const char *salt, - char *buffer, int buflen); -+extern char *__sha256_crypt_r (const char *key, const char *salt, -+ char *buffer, int buflen); -+extern char *__sha512_crypt_r (const char *key, const char *salt, -+ char *buffer, int buflen); - /* crypt-entry.c needs to be patched to define __des_crypt_r rather than - * __crypt_r, and not define crypt_r and crypt at all */ - extern char *__des_crypt_r(const char *key, const char *salt, -@@ -112,6 +116,10 @@ static char *_crypt_retval_magic(char *r - char *__crypt_rn(__const char *key, __const char *setting, - void *data, int size) - { -+ if (setting[0] == '$' && setting[1] == '6') -+ return __sha512_crypt_r(key, setting, (char *)data, size); -+ if (setting[0] == '$' && setting[1] == '5') -+ return __sha256_crypt_r(key, setting, (char *)data, size); - if (setting[0] == '$' && setting[1] == '2') - return _crypt_blowfish_rn(key, setting, (char *)data, size); - if (setting[0] == '$' && setting[1] == '1') -@@ -129,6 +137,16 @@ char *__crypt_rn(__const char *key, __co - char *__crypt_ra(__const char *key, __const char *setting, - void **data, int *size) - { -+ if (setting[0] == '$' && setting[1] == '6') { -+ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) -+ return NULL; -+ return __sha512_crypt_r(key, setting, (char *)*data, *size); -+ } -+ if (setting[0] == '$' && setting[1] == '5') { -+ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) -+ return NULL; -+ return __sha256_crypt_r(key, setting, (char *)*data, *size); -+ } - if (setting[0] == '$' && setting[1] == '2') { - if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) - return NULL; -@@ -210,6 +228,9 @@ char *__crypt_gensalt_rn(const char *pre - return NULL; - } - -+ if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) -+ use = _crypt_gensalt_sha2_rn; -+ else - if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || - !strncmp(prefix, "$2y$", 4)) - use = _crypt_gensalt_blowfish_rn; diff --git a/crypt_blowfish-1.3.tar.gz b/crypt_blowfish-1.3.tar.gz deleted file mode 100644 index fcb0aed..0000000 --- a/crypt_blowfish-1.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:83fa01fca6996fe8d882b7f8e9ba0305a5664936100b01481ea3c6a8ce8d72fd -size 30310 diff --git a/crypt_blowfish-const.patch b/crypt_blowfish-const.patch deleted file mode 100644 index 0d4a8d0..0000000 --- a/crypt_blowfish-const.patch +++ /dev/null @@ -1,46 +0,0 @@ -Index: crypt_blowfish-1.2/crypt_blowfish.c -=================================================================== ---- crypt_blowfish-1.2.orig/crypt_blowfish.c -+++ crypt_blowfish-1.2/crypt_blowfish.c -@@ -81,7 +81,7 @@ typedef struct { - * Magic IV for 64 Blowfish encryptions that we do at the end. - * The string is "OrpheanBeholderScryDoubt" on big-endian. - */ --static BF_word BF_magic_w[6] = { -+static const BF_word BF_magic_w[6] = { - 0x4F727068, 0x65616E42, 0x65686F6C, - 0x64657253, 0x63727944, 0x6F756274 - }; -@@ -89,7 +89,7 @@ static BF_word BF_magic_w[6] = { - /* - * P-box and S-box tables initialized with digits of Pi. - */ --static BF_ctx BF_init_state = { -+static const BF_ctx BF_init_state = { - { - { - 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, -@@ -361,10 +361,10 @@ static BF_ctx BF_init_state = { - } - }; - --static unsigned char BF_itoa64[64 + 1] = -+static const unsigned char BF_itoa64[64 + 1] = - "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - --static unsigned char BF_atoi64[0x60] = { -+static const unsigned char BF_atoi64[0x60] = { - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64, - 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -@@ -440,8 +440,8 @@ static void BF_encode(char *dst, const B - - static void BF_swap(BF_word *x, int count) - { -- static int endianness_check = 1; -- char *is_little_endian = (char *)&endianness_check; -+ static const int endianness_check = 1; -+ const char *is_little_endian = (const char *)&endianness_check; - BF_word tmp; - - if (*is_little_endian) diff --git a/crypt_blowfish-gensalt.patch b/crypt_blowfish-gensalt.patch deleted file mode 100644 index 9d1dd87..0000000 --- a/crypt_blowfish-gensalt.patch +++ /dev/null @@ -1,373 +0,0 @@ -Index: crypt_blowfish-1.3/crypt_blowfish.c -=================================================================== ---- crypt_blowfish-1.3.orig/crypt_blowfish.c -+++ crypt_blowfish-1.3/crypt_blowfish.c -@@ -877,31 +877,3 @@ char *_crypt_blowfish_rn(const char *key - __set_errno(EINVAL); /* pretend we don't support this hash type */ - return NULL; - } -- --char *_crypt_gensalt_blowfish_rn(const char *prefix, unsigned long count, -- const char *input, int size, char *output, int output_size) --{ -- if (size < 16 || output_size < 7 + 22 + 1 || -- (count && (count < 4 || count > 31)) || -- prefix[0] != '$' || prefix[1] != '2' || -- (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { -- if (output_size > 0) output[0] = '\0'; -- __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); -- return NULL; -- } -- -- if (!count) count = 5; -- -- output[0] = '$'; -- output[1] = '2'; -- output[2] = prefix[2]; -- output[3] = '$'; -- output[4] = '0' + count / 10; -- output[5] = '0' + count % 10; -- output[6] = '$'; -- -- BF_encode(&output[7], (const BF_word *)input, 16); -- output[7 + 22] = '\0'; -- -- return output; --} -Index: crypt_blowfish-1.3/crypt_blowfish.h -=================================================================== ---- crypt_blowfish-1.3.orig/crypt_blowfish.h -+++ crypt_blowfish-1.3/crypt_blowfish.h -@@ -20,8 +20,5 @@ - extern int _crypt_output_magic(const char *setting, char *output, int size); - extern char *_crypt_blowfish_rn(const char *key, const char *setting, - char *output, int size); --extern char *_crypt_gensalt_blowfish_rn(const char *prefix, -- unsigned long count, -- const char *input, int size, char *output, int output_size); - - #endif -Index: crypt_blowfish-1.3/crypt_gensalt.c -=================================================================== ---- crypt_blowfish-1.3.orig/crypt_gensalt.c -+++ crypt_blowfish-1.3/crypt_gensalt.c -@@ -20,6 +20,7 @@ - - #include - #include -+#include - - #include - #ifndef __set_errno -@@ -180,3 +181,69 @@ error: - errno = ENOMEM; - return NULL; - } -+ -+ -+typedef unsigned int BF_word; -+ -+static const unsigned char BF_itoa64[64 + 1] = -+ "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; -+ -+static void BF_encode(char *dst, const BF_word *src, int size) -+{ -+ const unsigned char *sptr = (const unsigned char *)src; -+ const unsigned char *end = sptr + size; -+ unsigned char *dptr = (unsigned char *)dst; -+ unsigned int c1, c2; -+ -+ do { -+ c1 = *sptr++; -+ *dptr++ = BF_itoa64[c1 >> 2]; -+ c1 = (c1 & 0x03) << 4; -+ if (sptr >= end) { -+ *dptr++ = BF_itoa64[c1]; -+ break; -+ } -+ -+ c2 = *sptr++; -+ c1 |= c2 >> 4; -+ *dptr++ = BF_itoa64[c1]; -+ c1 = (c2 & 0x0f) << 2; -+ if (sptr >= end) { -+ *dptr++ = BF_itoa64[c1]; -+ break; -+ } -+ -+ c2 = *sptr++; -+ c1 |= c2 >> 6; -+ *dptr++ = BF_itoa64[c1]; -+ *dptr++ = BF_itoa64[c2 & 0x3f]; -+ } while (sptr < end); -+} -+ -+char *_crypt_gensalt_blowfish_rn(const char *prefix, unsigned long count, -+ const char *input, int size, char *output, int output_size) -+{ -+ if (size < 16 || output_size < 7 + 22 + 1 || -+ (count && (count < 4 || count > 31)) || -+ prefix[0] != '$' || prefix[1] != '2' || -+ (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { -+ if (output_size > 0) output[0] = '\0'; -+ __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); -+ return NULL; -+ } -+ -+ if (!count) count = 5; -+ -+ output[0] = '$'; -+ output[1] = '2'; -+ output[2] = prefix[2]; -+ output[3] = '$'; -+ output[4] = '0' + count / 10; -+ output[5] = '0' + count % 10; -+ output[6] = '$'; -+ -+ BF_encode(&output[7], (const BF_word *)input, 16); -+ output[7 + 22] = '\0'; -+ -+ return output; -+} -Index: crypt_blowfish-1.3/crypt_gensalt.h -=================================================================== ---- crypt_blowfish-1.3.orig/crypt_gensalt.h -+++ crypt_blowfish-1.3/crypt_gensalt.h -@@ -28,5 +28,8 @@ extern char *_crypt_gensalt_md5_rn(const - const char *input, int size, char *output, int output_size); - extern char *_crypt_gensalt_sha2_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size); -+extern char *_crypt_gensalt_blowfish_rn(const char *prefix, -+ unsigned long count, -+ const char *input, int size, char *output, int output_size); - - #endif -Index: crypt_blowfish-1.3/wrapper-gensalt.c -=================================================================== ---- /dev/null -+++ crypt_blowfish-1.3/wrapper-gensalt.c -@@ -0,0 +1,114 @@ -+/* -+ * Written by Solar Designer in 2000-2011. -+ * No copyright is claimed, and the software is hereby placed in the public -+ * domain. In case this attempt to disclaim copyright and place the software -+ * in the public domain is deemed null and void, then the software is -+ * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the -+ * general public under the following terms: -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted. -+ * -+ * There's ABSOLUTELY NO WARRANTY, express or implied. -+ * -+ * See crypt_blowfish.c for more information. -+ */ -+ -+#include -+#include -+ -+#include -+#ifndef __set_errno -+#define __set_errno(val) errno = (val) -+#endif -+ -+#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) -+ -+#if defined(__GLIBC__) && defined(_LIBC) -+#define __SKIP_GNU -+#endif -+#include "ow-crypt.h" -+ -+#include "crypt_gensalt.h" -+ -+#if !(defined(__GLIBC__) && defined(_LIBC)) -+#define __crypt_gensalt_rn crypt_gensalt_rn -+#define __crypt_gensalt_ra crypt_gensalt_ra -+#define __crypt_gensalt crypt_gensalt -+#endif -+ -+char *__crypt_gensalt_rn(const char *prefix, unsigned long count, -+ const char *input, int size, char *output, int output_size) -+{ -+ char *(*use)(const char *_prefix, unsigned long _count, -+ const char *_input, int _size, -+ char *_output, int _output_size); -+ -+ /* This may be supported on some platforms in the future */ -+ if (!input) { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ -+ if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) -+ use = _crypt_gensalt_sha2_rn; -+ else -+ if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || -+ !strncmp(prefix, "$2y$", 4)) -+ use = _crypt_gensalt_blowfish_rn; -+ else -+ if (!strncmp(prefix, "$1$", 3)) -+ use = _crypt_gensalt_md5_rn; -+ else -+ if (prefix[0] == '_') -+ use = _crypt_gensalt_extended_rn; -+ else -+ if (!prefix[0] || -+ (prefix[0] && prefix[1] && -+ memchr(_crypt_itoa64, prefix[0], 64) && -+ memchr(_crypt_itoa64, prefix[1], 64))) -+ use = _crypt_gensalt_traditional_rn; -+ else { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ -+ return use(prefix, count, input, size, output, output_size); -+} -+ -+char *__crypt_gensalt_ra(const char *prefix, unsigned long count, -+ const char *input, int size) -+{ -+ char output[CRYPT_GENSALT_OUTPUT_SIZE]; -+ char *retval; -+ -+ retval = __crypt_gensalt_rn(prefix, count, -+ input, size, output, sizeof(output)); -+ -+ if (retval) { -+ retval = strdup(retval); -+#ifndef __GLIBC__ -+ /* strdup(3) on glibc sets errno, so we don't need to bother */ -+ if (!retval) -+ __set_errno(ENOMEM); -+#endif -+ } -+ -+ return retval; -+} -+ -+char *__crypt_gensalt(const char *prefix, unsigned long count, -+ const char *input, int size) -+{ -+ static char output[CRYPT_GENSALT_OUTPUT_SIZE]; -+ -+ return __crypt_gensalt_rn(prefix, count, -+ input, size, output, sizeof(output)); -+} -+ -+#if defined(__GLIBC__) && defined(_LIBC) -+weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) -+weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) -+weak_alias(__crypt_gensalt, crypt_gensalt) -+#endif -+ -Index: crypt_blowfish-1.3/wrapper.c -=================================================================== ---- crypt_blowfish-1.3.orig/wrapper.c -+++ crypt_blowfish-1.3/wrapper.c -@@ -35,7 +35,6 @@ - #endif - - #define CRYPT_OUTPUT_SIZE (7 + 22 + 31 + 1) --#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) - - #if defined(__GLIBC__) && defined(_LIBC) - #define __SKIP_GNU -@@ -43,7 +42,6 @@ - #include "ow-crypt.h" - - #include "crypt_blowfish.h" --#include "crypt_gensalt.h" - - #if defined(__GLIBC__) && defined(_LIBC) - /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ -@@ -209,89 +207,11 @@ char *crypt(const char *key, const char - crypt_rn(key, setting, output, sizeof(output)), - setting, output, sizeof(output)); - } -- --#define __crypt_gensalt_rn crypt_gensalt_rn --#define __crypt_gensalt_ra crypt_gensalt_ra --#define __crypt_gensalt crypt_gensalt --#endif -- --char *__crypt_gensalt_rn(const char *prefix, unsigned long count, -- const char *input, int size, char *output, int output_size) --{ -- char *(*use)(const char *_prefix, unsigned long _count, -- const char *_input, int _size, -- char *_output, int _output_size); -- -- /* This may be supported on some platforms in the future */ -- if (!input) { -- __set_errno(EINVAL); -- return NULL; -- } -- -- if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) -- use = _crypt_gensalt_sha2_rn; -- else -- if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || -- !strncmp(prefix, "$2y$", 4)) -- use = _crypt_gensalt_blowfish_rn; -- else -- if (!strncmp(prefix, "$1$", 3)) -- use = _crypt_gensalt_md5_rn; -- else -- if (prefix[0] == '_') -- use = _crypt_gensalt_extended_rn; -- else -- if (!prefix[0] || -- (prefix[0] && prefix[1] && -- memchr(_crypt_itoa64, prefix[0], 64) && -- memchr(_crypt_itoa64, prefix[1], 64))) -- use = _crypt_gensalt_traditional_rn; -- else { -- __set_errno(EINVAL); -- return NULL; -- } -- -- return use(prefix, count, input, size, output, output_size); --} -- --char *__crypt_gensalt_ra(const char *prefix, unsigned long count, -- const char *input, int size) --{ -- char output[CRYPT_GENSALT_OUTPUT_SIZE]; -- char *retval; -- -- retval = __crypt_gensalt_rn(prefix, count, -- input, size, output, sizeof(output)); -- -- if (retval) { -- retval = strdup(retval); --#ifndef __GLIBC__ -- /* strdup(3) on glibc sets errno, so we don't need to bother */ -- if (!retval) -- __set_errno(ENOMEM); - #endif -- } -- -- return retval; --} -- --char *__crypt_gensalt(const char *prefix, unsigned long count, -- const char *input, int size) --{ -- static char output[CRYPT_GENSALT_OUTPUT_SIZE]; -- -- return __crypt_gensalt_rn(prefix, count, -- input, size, output, sizeof(output)); --} - - #if defined(__GLIBC__) && defined(_LIBC) --weak_alias(__crypt_rn, crypt_rn) --weak_alias(__crypt_ra, crypt_ra) - weak_alias(__crypt_r, crypt_r) - weak_alias(__crypt, crypt) --weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) --weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) --weak_alias(__crypt_gensalt, crypt_gensalt) - weak_alias(crypt, fcrypt) - #endif - diff --git a/crypt_blowfish-glibc-2.3.diff b/crypt_blowfish-glibc-2.3.diff new file mode 100644 index 0000000..a8abbcd --- /dev/null +++ b/crypt_blowfish-glibc-2.3.diff @@ -0,0 +1,106 @@ +--- crypt/crypt-entry.c 2001-07-06 09:37:47.000000000 +0200 ++++ crypt/crypt-entry.c 2003-10-01 11:23:27.000000000 +0200 +@@ -70,7 +70,7 @@ + */ + + char * +-__crypt_r (key, salt, data) ++__des_crypt_r (key, salt, data) + const char *key; + const char *salt; + struct crypt_data * __restrict data; +@@ -115,6 +115,7 @@ + _ufc_output_conversion_r (res[0], res[1], salt, data); + return data->crypt_3_buf; + } ++#if 0 + weak_alias (__crypt_r, crypt_r) + + char * +@@ -147,3 +148,4 @@ + return crypt (key, salt); + } + #endif ++#endif +--- crypt/crypt-private.h 2001-07-06 09:37:47.000000000 +0200 ++++ crypt/crypt-private.h 2003-10-01 11:23:27.000000000 +0200 +@@ -55,6 +55,8 @@ + /* crypt-entry.c */ + extern char *__crypt_r (__const char *__key, __const char *__salt, + struct crypt_data * __restrict __data); ++extern char *__des_crypt_r (__const char *__key, __const char *__salt, ++ struct crypt_data * __restrict __data); + extern char *fcrypt (__const char *key, __const char *salt); + + #endif /* crypt-private.h */ +--- crypt/Makefile~ 2007-11-06 05:27:13.635014000 +0100 ++++ crypt/Makefile 2007-11-06 05:27:27.500142000 +0100 +@@ -27,7 +27,8 @@ + extra-libs-others := $(extra-libs) + + libcrypt-routines := crypt-entry md5-crypt md5 sha256-crypt sha256 \ +- sha512-crypt sha512 crypt crypt_util ++ sha512-crypt sha512 crypt crypt_util \ ++ crypt_blowfish crypt_gensalt wrapper + + tests := cert md5test md5c-test sha256test sha256c-test sha512test sha512c-test + +--- crypt/ow-crypt.h 2001-05-01 13:14:31.000000000 +0200 ++++ crypt/ow-crypt.h 2003-10-01 11:23:27.000000000 +0200 +@@ -13,12 +13,6 @@ + #define __CONST + #endif + +-#ifndef __SKIP_GNU +-extern char *crypt(__CONST char *key, __CONST char *setting); +-extern char *crypt_r(__CONST char *key, __CONST char *setting, void *data); +-#endif +- +-#ifndef __SKIP_OW + extern char *crypt_rn(__CONST char *key, __CONST char *setting, + void *data, int size); + extern char *crypt_ra(__CONST char *key, __CONST char *setting, +@@ -29,6 +23,5 @@ + __CONST char *input, int size, char *output, int output_size); + extern char *crypt_gensalt_ra(__CONST char *prefix, unsigned long count, + __CONST char *input, int size); +-#endif + + #endif +--- crypt/wrapper.c 2002-11-08 01:26:31.000000000 +0100 ++++ crypt/wrapper.c 2003-10-01 11:59:03.000000000 +0200 +@@ -45,12 +45,11 @@ + #if defined(__GLIBC__) && defined(_LIBC) + /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ + #include "crypt.h" ++#include "ufc-crypt.h" ++#include "crypt-private.h" ++ + extern char *__md5_crypt_r(const char *key, const char *salt, + char *buffer, int buflen); +-/* crypt-entry.c needs to be patched to define __des_crypt_r rather than +- * __crypt_r, and not define crypt_r and crypt at all */ +-extern char *__des_crypt_r(const char *key, const char *salt, +- struct crypt_data *data); + extern struct crypt_data _ufc_foobar; + #endif + +@@ -266,6 +264,7 @@ + weak_alias(__crypt_ra, crypt_ra) + weak_alias(__crypt_r, crypt_r) + weak_alias(__crypt, crypt) ++weak_alias(__crypt, fcrypt) + weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) + weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) + weak_alias(__crypt_gensalt, crypt_gensalt) +--- crypt/crypt_blowfish.c ++++ crypt/crypt_blowfish.c 2005/04/28 10:59:24 +@@ -45,7 +45,7 @@ + #endif + + #ifdef __i386__ +-#define BF_ASM 1 ++#define BF_ASM 0 + #define BF_SCALE 1 + #elif defined(__alpha__) || defined(__hppa__) + #define BF_ASM 0 diff --git a/ctype_b.c b/ctype_b.c new file mode 100644 index 0000000..91a5b50 --- /dev/null +++ b/ctype_b.c @@ -0,0 +1,196 @@ +/* + * ctype_b.c + * + * This file has been added to compensate buggy object files + * using __ctype_b, __ctype_tolower and __ctype_toupper. + * + * This file only allows the linking of this buggy object files, + * there is no gurantee, that it will work correct. Linking of + * object files is only possible with the same glibc as they are + * compiled with. + * + * Compile this file with -fPIC and add it to the link stage of + * your application. + * + */ + +#include + +#define CTYPE_EXTERN_INLINE /* Define real functions for accessors. */ +#include + +static const char _nl_C_LC_CTYPE_class[768] = + /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x92 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x98 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x9e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xa4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xaa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xbc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xc2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xc8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xce */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xd4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xda */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xec */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xf2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xf8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xfe */ "\000\000" "\000\000" "\002\000" "\002\000" "\002\000" "\002\000" + /* 0x04 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\003\040" + /* 0x0a */ "\002\040" "\002\040" "\002\040" "\002\040" "\002\000" "\002\000" + /* 0x10 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" + /* 0x16 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" + /* 0x1c */ "\002\000" "\002\000" "\002\000" "\002\000" "\001\140" "\004\300" + /* 0x22 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" + /* 0x28 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" + /* 0x2e */ "\004\300" "\004\300" "\010\330" "\010\330" "\010\330" "\010\330" + /* 0x34 */ "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" + /* 0x3a */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" + /* 0x40 */ "\004\300" "\010\325" "\010\325" "\010\325" "\010\325" "\010\325" + /* 0x46 */ "\010\325" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" + /* 0x4c */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" + /* 0x52 */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" + /* 0x58 */ "\010\305" "\010\305" "\010\305" "\004\300" "\004\300" "\004\300" + /* 0x5e */ "\004\300" "\004\300" "\004\300" "\010\326" "\010\326" "\010\326" + /* 0x64 */ "\010\326" "\010\326" "\010\326" "\010\306" "\010\306" "\010\306" + /* 0x6a */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" + /* 0x70 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" + /* 0x76 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\004\300" + /* 0x7c */ "\004\300" "\004\300" "\004\300" "\002\000" "\000\000" "\000\000" + /* 0x82 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x88 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x8e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x94 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x9a */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xa0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xa6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xac */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xbe */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xc4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xca */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xd0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xd6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xdc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xee */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" +; + +static const uint32_t _nl_C_LC_CTYPE_toupper[384] = +{ + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, + /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + /* 0x40 */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + /* 0x48 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + /* 0x50 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + /* 0x58 */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + /* 0x60 */ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + /* 0x68 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + /* 0x70 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + /* 0x78 */ 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff +}; + +static const uint32_t _nl_C_LC_CTYPE_tolower[384] = +{ + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, + /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + /* 0x40 */ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + /* 0x48 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + /* 0x50 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + /* 0x58 */ 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + /* 0x60 */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + /* 0x68 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + /* 0x70 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + /* 0x78 */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff +}; + +#define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o) +const unsigned short int *__ctype_b = b (unsigned short int, class, 128); +const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128); +const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128); diff --git a/dl-runtime-resolve-opt-avx512f.patch b/dl-runtime-resolve-opt-avx512f.patch deleted file mode 100644 index d3bc303..0000000 --- a/dl-runtime-resolve-opt-avx512f.patch +++ /dev/null @@ -1,26 +0,0 @@ -2017-08-06 H.J. Lu - - [BZ #21871] - * sysdeps/x86/cpu-features.c (init_cpu_features): Set - bit_arch_Use_dl_runtime_resolve_opt only with AVX512F. - -Index: glibc-2.26/sysdeps/x86/cpu-features.c -=================================================================== ---- glibc-2.26.orig/sysdeps/x86/cpu-features.c -+++ glibc-2.26/sysdeps/x86/cpu-features.c -@@ -244,10 +244,13 @@ init_cpu_features (struct cpu_features * - |= bit_arch_Prefer_No_AVX512; - - /* To avoid SSE transition penalty, use _dl_runtime_resolve_slow. -- If XGETBV suports ECX == 1, use _dl_runtime_resolve_opt. */ -+ If XGETBV suports ECX == 1, use _dl_runtime_resolve_opt. -+ Use _dl_runtime_resolve_opt only with AVX512F since it is -+ slower than _dl_runtime_resolve_slow with AVX. */ - cpu_features->feature[index_arch_Use_dl_runtime_resolve_slow] - |= bit_arch_Use_dl_runtime_resolve_slow; -- if (cpu_features->max_cpuid >= 0xd) -+ if (CPU_FEATURES_ARCH_P (cpu_features, AVX512F_Usable) -+ && cpu_features->max_cpuid >= 0xd) - { - unsigned int eax; - diff --git a/eh-frame-zero-terminator.patch b/eh-frame-zero-terminator.patch deleted file mode 100644 index 28a4c16..0000000 --- a/eh-frame-zero-terminator.patch +++ /dev/null @@ -1,31 +0,0 @@ -2017-08-31 H.J. Lu - - [BZ #22051] - * Makerules (build-module-helper-objlist): Filter out - $(elf-objpfx)sofini.os. - (build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is - needed. - -Index: glibc-2.26/Makerules -=================================================================== ---- glibc-2.26.orig/Makerules -+++ glibc-2.26/Makerules -@@ -686,14 +686,17 @@ $(build-module-helper) -o $@ $(shlib-lds - $(call after-link,$@) - endef - -+# sofini.os must be placed last since it terminates .eh_frame section. - build-module-helper-objlist = \ - $(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\ - $(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \ -+ $(elf-objpfx)sofini.os \ - $(link-libc-deps),$^)) - - build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so) - build-shlib-objlist = $(build-module-helper-objlist) \ -- $(LDLIBS-$(@F:lib%.so=%).so) -+ $(LDLIBS-$(@F:lib%.so=%).so) \ -+ $(filter $(elf-objpfx)sofini.os,$^) - - # Don't try to use -lc when making libc.so itself. - # Also omits crti.o and crtn.o, which we do not want diff --git a/fix-locking-in-_IO_cleanup.patch b/fix-locking-in-_IO_cleanup.patch deleted file mode 100644 index b3f591b..0000000 --- a/fix-locking-in-_IO_cleanup.patch +++ /dev/null @@ -1,236 +0,0 @@ -Always do locking when accessing streams - - [BZ #15142] - * libio/genops.c (_IO_list_all_stamp): Delete. All uses removed. - (_IO_flush_all_all_lockp): Delete. - (_IO_flush_all): Replace with body of _IO_flush_all_all_lockp. - Always do locking. - (_IO_unbuffer_all): Always do locking. - (_IO_cleanup): Call _IO_flush_all instead of _IO_flush_all_lockp. - * libio/libioP.h (_IO_flush_all_all_lockp): Remove declaration. - -diff --git a/libio/genops.c b/libio/genops.c -index e0ce8cc..9def1d4 100644 ---- a/libio/genops.c -+++ b/libio/genops.c -@@ -38,10 +38,6 @@ - static _IO_lock_t list_all_lock = _IO_lock_initializer; - #endif - --/* Used to signal modifications to the list of FILE decriptors. */ --static int _IO_list_all_stamp; -- -- - static _IO_FILE *run_fp; - - #ifdef _IO_MTSAFE_IO -@@ -70,16 +66,12 @@ _IO_un_link (fp) - if (_IO_list_all == NULL) - ; - else if (fp == _IO_list_all) -- { -- _IO_list_all = (struct _IO_FILE_plus *) _IO_list_all->file._chain; -- ++_IO_list_all_stamp; -- } -+ _IO_list_all = (struct _IO_FILE_plus *) _IO_list_all->file._chain; - else - for (f = &_IO_list_all->file._chain; *f; f = &(*f)->_chain) - if (*f == (_IO_FILE *) fp) - { - *f = fp->file._chain; -- ++_IO_list_all_stamp; - break; - } - fp->file._flags &= ~_IO_LINKED; -@@ -108,7 +100,6 @@ _IO_link_in (fp) - #endif - fp->file._chain = (_IO_FILE *) _IO_list_all; - _IO_list_all = fp; -- ++_IO_list_all_stamp; - #ifdef _IO_MTSAFE_IO - _IO_funlockfile ((_IO_FILE *) fp); - run_fp = NULL; -@@ -818,25 +809,20 @@ _IO_get_column (fp) - - - int --_IO_flush_all_lockp (int do_lock) -+_IO_flush_all (void) - { - int result = 0; - struct _IO_FILE *fp; -- int last_stamp; - - #ifdef _IO_MTSAFE_IO -- __libc_cleanup_region_start (do_lock, flush_cleanup, NULL); -- if (do_lock) -- _IO_lock_lock (list_all_lock); -+ _IO_cleanup_region_start_noarg (flush_cleanup); -+ _IO_lock_lock (list_all_lock); - #endif - -- last_stamp = _IO_list_all_stamp; -- fp = (_IO_FILE *) _IO_list_all; -- while (fp != NULL) -+ for (fp = (_IO_FILE *) _IO_list_all; fp != NULL; fp = fp->_chain) - { - run_fp = fp; -- if (do_lock) -- _IO_flockfile (fp); -+ _IO_flockfile (fp); - - if (((fp->_mode <= 0 && fp->_IO_write_ptr > fp->_IO_write_base) - #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -@@ -848,52 +834,30 @@ _IO_flush_all_lockp (int do_lock) - && _IO_OVERFLOW (fp, EOF) == EOF) - result = EOF; - -- if (do_lock) -- _IO_funlockfile (fp); -+ _IO_funlockfile (fp); - run_fp = NULL; -- -- if (last_stamp != _IO_list_all_stamp) -- { -- /* Something was added to the list. Start all over again. */ -- fp = (_IO_FILE *) _IO_list_all; -- last_stamp = _IO_list_all_stamp; -- } -- else -- fp = fp->_chain; - } - - #ifdef _IO_MTSAFE_IO -- if (do_lock) -- _IO_lock_unlock (list_all_lock); -- __libc_cleanup_region_end (0); -+ _IO_lock_unlock (list_all_lock); -+ _IO_cleanup_region_end (0); - #endif - - return result; - } -- -- --int --_IO_flush_all (void) --{ -- /* We want locking. */ -- return _IO_flush_all_lockp (1); --} - libc_hidden_def (_IO_flush_all) - - void - _IO_flush_all_linebuffered (void) - { - struct _IO_FILE *fp; -- int last_stamp; - - #ifdef _IO_MTSAFE_IO - _IO_cleanup_region_start_noarg (flush_cleanup); - _IO_lock_lock (list_all_lock); - #endif - -- last_stamp = _IO_list_all_stamp; -- fp = (_IO_FILE *) _IO_list_all; -- while (fp != NULL) -+ for (fp = (_IO_FILE *) _IO_list_all; fp != NULL; fp = fp->_chain) - { - run_fp = fp; - _IO_flockfile (fp); -@@ -903,15 +867,6 @@ _IO_flush_all_linebuffered (void) - - _IO_funlockfile (fp); - run_fp = NULL; -- -- if (last_stamp != _IO_list_all_stamp) -- { -- /* Something was added to the list. Start all over again. */ -- fp = (_IO_FILE *) _IO_list_all; -- last_stamp = _IO_list_all_stamp; -- } -- else -- fp = fp->_chain; - } - - #ifdef _IO_MTSAFE_IO -@@ -947,6 +902,12 @@ static void - _IO_unbuffer_all (void) - { - struct _IO_FILE *fp; -+ -+#ifdef _IO_MTSAFE_IO -+ _IO_cleanup_region_start_noarg (flush_cleanup); -+ _IO_lock_lock (list_all_lock); -+#endif -+ - for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain) - { - if (! (fp->_flags & _IO_UNBUFFERED) -@@ -956,15 +917,8 @@ _IO_unbuffer_write (void) - && fp->_mode != 0) - { - #ifdef _IO_MTSAFE_IO -- int cnt; --#define MAXTRIES 2 -- for (cnt = 0; cnt < MAXTRIES; ++cnt) -- if (fp->_lock == NULL || _IO_lock_trylock (*fp->_lock) == 0) -- break; -- else -- /* Give the other thread time to finish up its use of the -- stream. */ -- __sched_yield (); -+ run_fp = fp; -+ _IO_flockfile (fp); - #endif - - if (! dealloc_buffers && !(fp->_flags & _IO_USER_BUF)) -@@ -980,8 +934,8 @@ _IO_unbuffer_write (void) - _IO_wsetb (fp, NULL, NULL, 0); - - #ifdef _IO_MTSAFE_IO -- if (cnt < MAXTRIES && fp->_lock != NULL) -- _IO_lock_unlock (*fp->_lock); -+ _IO_funlockfile (fp); -+ run_fp = NULL; - #endif - } - -@@ -989,6 +943,11 @@ _IO_unbuffer_write (void) - used. */ - fp->_mode = -1; - } -+ -+#ifdef _IO_MTSAFE_IO -+ _IO_lock_unlock (list_all_lock); -+ _IO_cleanup_region_end (0); -+#endif - } - - -@@ -1008,9 +967,7 @@ libc_freeres_fn (buffer_free) - int - _IO_cleanup (void) - { -- /* We do *not* want locking. Some threads might use streams but -- that is their problem, we flush them underneath them. */ -- int result = _IO_flush_all_lockp (0); -+ int result = _IO_flush_all (); - - /* We currently don't have a reliable mechanism for making sure that - C++ static destructors are executed in the correct order. -diff --git a/libio/libioP.h b/libio/libioP.h -index 8a7b85b..3e3a724 100644 ---- a/libio/libioP.h -+++ b/libio/libioP.h -@@ -488,7 +488,6 @@ extern int _IO_new_do_write (_IO_FILE *, const char *, _IO_size_t); - extern int _IO_old_do_write (_IO_FILE *, const char *, _IO_size_t); - extern int _IO_wdo_write (_IO_FILE *, const wchar_t *, _IO_size_t); - libc_hidden_proto (_IO_wdo_write) --extern int _IO_flush_all_lockp (int); - extern int _IO_flush_all (void); - libc_hidden_proto (_IO_flush_all) - extern int _IO_cleanup (void); --- -1.9.1 - diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch deleted file mode 100644 index f660b31..0000000 --- a/fnmatch-collating-elements.patch +++ /dev/null @@ -1,467 +0,0 @@ -Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) - - [BZ #16976] - [BZ #17396] - * posix/fnmatch_loop.c (internal_fnmatch, internal_fnwmatch): When - looking up collating elements match against (wide) character - sequence instead of name. Correct alignment adjustment. - * posix/fnmatch.c: Don't include "../locale/elem-hash.h". - * posix/Makefile (tests): Add tst-fnmatch4 and tst-fnmatch5. - * posix/tst-fnmatch4.c: New file. - * posix/tst-fnmatch5.c: New file. - -Index: glibc-2.22/posix/Makefile -=================================================================== ---- glibc-2.22.orig/posix/Makefile -+++ glibc-2.22/posix/Makefile -@@ -87,6 +87,7 @@ tests := tstgetopt testfnm runtests run - bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \ - tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ - tst-fnmatch3 bug-regex36 tst-getaddrinfo5 \ -+ tst-fnmatch4 tst-fnmatch5 \ - tst-posix_spawn-fd tst-posix_spawn-setsid \ - tst-posix_fadvise tst-posix_fadvise64 \ - tst-sysconf-empty-chroot -Index: glibc-2.22/posix/fnmatch.c -=================================================================== ---- glibc-2.22.orig/posix/fnmatch.c -+++ glibc-2.22/posix/fnmatch.c -@@ -53,7 +53,6 @@ - we support a correct implementation only in glibc. */ - #ifdef _LIBC - # include "../locale/localeinfo.h" --# include "../locale/elem-hash.h" - # include "../locale/coll-lookup.h" - # include - -Index: glibc-2.22/posix/fnmatch_loop.c -=================================================================== ---- glibc-2.22.orig/posix/fnmatch_loop.c -+++ glibc-2.22/posix/fnmatch_loop.c -@@ -503,26 +503,12 @@ FCT (pattern, string, string_end, no_lea - { - int32_t table_size; - const int32_t *symb_table; --# if WIDE_CHAR_VERSION -- char str[c1]; -- unsigned int strcnt; --# else --# define str (startp + 1) --# endif - const unsigned char *extra; - int32_t idx; - int32_t elem; -- int32_t second; -- int32_t hash; -- - # if WIDE_CHAR_VERSION -- /* We have to convert the name to a single-byte -- string. This is possible since the names -- consist of ASCII characters and the internal -- representation is UCS4. */ -- for (strcnt = 0; strcnt < c1; ++strcnt) -- str[strcnt] = startp[1 + strcnt]; --#endif -+ int32_t *wextra; -+# endif - - table_size = - _NL_CURRENT_WORD (LC_COLLATE, -@@ -534,71 +520,55 @@ FCT (pattern, string, string_end, no_lea - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_EXTRAMB); - -- /* Locate the character in the hashing table. */ -- hash = elem_hash (str, c1); -- -- idx = 0; -- elem = hash % table_size; -- if (symb_table[2 * elem] != 0) -- { -- second = hash % (table_size - 2) + 1; -- -- do -- { -- /* First compare the hashing value. */ -- if (symb_table[2 * elem] == hash -- && (c1 -- == extra[symb_table[2 * elem + 1]]) -- && memcmp (str, -- &extra[symb_table[2 * elem -- + 1] -- + 1], c1) == 0) -- { -- /* Yep, this is the entry. */ -- idx = symb_table[2 * elem + 1]; -- idx += 1 + extra[idx]; -- break; -- } -- -- /* Next entry. */ -- elem += second; -- } -- while (symb_table[2 * elem] != 0); -- } -+ for (elem = 0; elem < table_size; elem++) -+ if (symb_table[2 * elem] != 0) -+ { -+ idx = symb_table[2 * elem + 1]; -+ /* Skip the name of collating element. */ -+ idx += 1 + extra[idx]; -+# if WIDE_CHAR_VERSION -+ /* Skip the byte sequence of the -+ collating element. */ -+ idx += 1 + extra[idx]; -+ /* Adjust for the alignment. */ -+ idx = (idx + 3) & ~3; -+ -+ wextra = (int32_t *) &extra[idx + 4]; -+ -+ if (/* Compare the length of the sequence. */ -+ c1 == wextra[0] -+ /* Compare the wide char sequence. */ -+ && memcmp (startp + 1, &wextra[1], -+ c1 * sizeof (UCHAR)) == 0) -+ /* Yep, this is the entry. */ -+ break; -+# else -+ if (/* Compare the length of the sequence. */ -+ c1 == extra[idx] -+ /* Compare the byte sequence. */ -+ && memcmp (startp + 1, -+ &extra[idx + 1], c1) == 0) -+ /* Yep, this is the entry. */ -+ break; -+# endif -+ } - -- if (symb_table[2 * elem] != 0) -+ if (elem < table_size) - { - /* Compare the byte sequence but only if - this is not part of a range. */ --# if WIDE_CHAR_VERSION -- int32_t *wextra; -+ if (! is_range - -- idx += 1 + extra[idx]; -- /* Adjust for the alignment. */ -- idx = (idx + 3) & ~3; -- -- wextra = (int32_t *) &extra[idx + 4]; --# endif -- -- if (! is_range) -- { - # if WIDE_CHAR_VERSION -- for (c1 = 0; -- (int32_t) c1 < wextra[idx]; -- ++c1) -- if (n[c1] != wextra[1 + c1]) -- break; -- -- if ((int32_t) c1 == wextra[idx]) -- goto matched; -+ && memcmp (n, &wextra[1], -+ c1 * sizeof (UCHAR)) == 0 - # else -- for (c1 = 0; c1 < extra[idx]; ++c1) -- if (n[c1] != extra[1 + c1]) -- break; -- -- if (c1 == extra[idx]) -- goto matched; -+ && memcmp (n, &extra[idx + 1], c1) == 0 - # endif -+ ) -+ { -+ n += c1 - 1; -+ goto matched; - } - - /* Get the collation sequence value. */ -@@ -606,9 +576,9 @@ FCT (pattern, string, string_end, no_lea - # if WIDE_CHAR_VERSION - cold = wextra[1 + wextra[idx]]; - # else -- /* Adjust for the alignment. */ - idx += 1 + extra[idx]; -- idx = (idx + 3) & ~4; -+ /* Adjust for the alignment. */ -+ idx = (idx + 3) & ~3; - cold = *((int32_t *) &extra[idx]); - # endif - -@@ -618,10 +588,10 @@ FCT (pattern, string, string_end, no_lea - { - /* No valid character. Match it as a - single byte. */ -- if (!is_range && *n == str[0]) -+ if (!is_range && *n == startp[1]) - goto matched; - -- cold = str[0]; -+ cold = startp[1]; - c = *p++; - } - else -@@ -629,7 +599,6 @@ FCT (pattern, string, string_end, no_lea - } - } - else --# undef str - #endif - { - c = FOLD (c); -@@ -721,25 +690,11 @@ FCT (pattern, string, string_end, no_lea - { - int32_t table_size; - const int32_t *symb_table; --# if WIDE_CHAR_VERSION -- char str[c1]; -- unsigned int strcnt; --# else --# define str (startp + 1) --# endif - const unsigned char *extra; - int32_t idx; - int32_t elem; -- int32_t second; -- int32_t hash; -- - # if WIDE_CHAR_VERSION -- /* We have to convert the name to a single-byte -- string. This is possible since the names -- consist of ASCII characters and the internal -- representation is UCS4. */ -- for (strcnt = 0; strcnt < c1; ++strcnt) -- str[strcnt] = startp[1 + strcnt]; -+ int32_t *wextra; - # endif - - table_size = -@@ -752,51 +707,44 @@ FCT (pattern, string, string_end, no_lea - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_EXTRAMB); - -- /* Locate the character in the hashing -- table. */ -- hash = elem_hash (str, c1); -- -- idx = 0; -- elem = hash % table_size; -- if (symb_table[2 * elem] != 0) -- { -- second = hash % (table_size - 2) + 1; -- -- do -- { -- /* First compare the hashing value. */ -- if (symb_table[2 * elem] == hash -- && (c1 -- == extra[symb_table[2 * elem + 1]]) -- && memcmp (str, -- &extra[symb_table[2 * elem + 1] -- + 1], c1) == 0) -- { -- /* Yep, this is the entry. */ -- idx = symb_table[2 * elem + 1]; -- idx += 1 + extra[idx]; -- break; -- } -- -- /* Next entry. */ -- elem += second; -- } -- while (symb_table[2 * elem] != 0); -- } -- -- if (symb_table[2 * elem] != 0) -- { -- /* Compare the byte sequence but only if -- this is not part of a range. */ -+ for (elem = 0; elem < table_size; elem++) -+ if (symb_table[2 * elem] != 0) -+ { -+ idx = symb_table[2 * elem + 1]; -+ /* Skip the name of collating -+ element. */ -+ idx += 1 + extra[idx]; - # if WIDE_CHAR_VERSION -- int32_t *wextra; -- -- idx += 1 + extra[idx]; -- /* Adjust for the alignment. */ -- idx = (idx + 3) & ~4; -- -- wextra = (int32_t *) &extra[idx + 4]; -+ /* Skip the byte sequence of the -+ collating element. */ -+ idx += 1 + extra[idx]; -+ /* Adjust for the alignment. */ -+ idx = (idx + 3) & ~3; -+ -+ wextra = (int32_t *) &extra[idx + 4]; -+ -+ if (/* Compare the length of the -+ sequence. */ -+ c1 == wextra[0] -+ /* Compare the wide char sequence. */ -+ && memcmp (startp + 1, &wextra[1], -+ c1 * sizeof (int32_t)) == 0) -+ /* Yep, this is the entry. */ -+ break; -+# else -+ if (/* Compare the length of the -+ sequence. */ -+ c1 == extra[idx] -+ /* Compare the byte sequence. */ -+ && memcmp (startp + 1, -+ &extra[idx + 1], c1) == 0) -+ /* Yep, this is the entry. */ -+ break; - # endif -+ } -+ -+ if (elem < table_size) -+ { - /* Get the collation sequence value. */ - is_seqval = 1; - # if WIDE_CHAR_VERSION -@@ -804,19 +752,18 @@ FCT (pattern, string, string_end, no_lea - # else - /* Adjust for the alignment. */ - idx += 1 + extra[idx]; -- idx = (idx + 3) & ~4; -+ idx = (idx + 3) & ~3; - cend = *((int32_t *) &extra[idx]); - # endif - } -- else if (symb_table[2 * elem] != 0 && c1 == 1) -+ else if (c1 == 1) - { -- cend = str[0]; -+ cend = startp[1]; - c = *p++; - } - else - return FNM_NOMATCH; - } --# undef str - } - else - { -Index: glibc-2.22/posix/tst-fnmatch4.c -=================================================================== ---- /dev/null -+++ glibc-2.22/posix/tst-fnmatch4.c -@@ -0,0 +1,51 @@ -+/* Test for fnmatch handling of collating elements -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+static int -+do_test_locale (const char *locale) -+{ -+ const char *pattern = "[[.ll.]]"; -+ -+ if (setlocale (LC_ALL, locale) == NULL) -+ { -+ printf ("could not set locale %s\n", locale); -+ return 1; -+ } -+ -+ if (fnmatch (pattern, "ll", 0) != 0) -+ { -+ printf ("%s didn't match in locale %s\n", pattern, locale); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+static int -+do_test (void) -+{ -+ return (do_test_locale ("es_US.ISO-8859-1") -+ || do_test_locale ("es_US.UTF-8")); -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.22/posix/tst-fnmatch5.c -=================================================================== ---- /dev/null -+++ glibc-2.22/posix/tst-fnmatch5.c -@@ -0,0 +1,53 @@ -+/* Test for fnmatch handling of collating elements -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+ -+#define LENGTH 20000000 -+ -+char pattern[LENGTH + 7]; -+ -+static int -+do_test (void) -+{ -+ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL) -+ { -+ puts ("could not set locale"); -+ return 1; -+ } -+ pattern[0] = '['; -+ pattern[1] = '['; -+ pattern[2] = '.'; -+ memset (pattern + 3, 'a', LENGTH); -+ pattern[LENGTH + 3] = '.'; -+ pattern[LENGTH + 4] = ']'; -+ pattern[LENGTH + 5] = ']'; -+ int ret = fnmatch (pattern, "a", 0); -+ if (ret == 0) -+ { -+ puts ("fnmatch returned 0 for invalid pattern"); -+ return 1; -+ } -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff new file mode 100644 index 0000000..5b5ad8b --- /dev/null +++ b/getaddrinfo-ipv6-sanity.diff @@ -0,0 +1,33 @@ +References: bnc#361697 + +Index: sysdeps/posix/getaddrinfo.c +=================================================================== +--- sysdeps/posix/getaddrinfo.c.orig ++++ sysdeps/posix/getaddrinfo.c +@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas + static int + gaih_inet (const char *name, const struct gaih_service *service, + const struct addrinfo *req, struct addrinfo **pai, +- unsigned int *naddrs) ++ unsigned int *naddrs, bool usable_ipv6) + { + const struct gaih_typeproto *tp = gaih_inet_typeproto; + struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; +@@ -762,7 +762,7 @@ gaih_inet (const char *name, const struc + if (fct != NULL) + { + if (req->ai_family == AF_INET6 +- || req->ai_family == AF_UNSPEC) ++ || (req->ai_family == AF_UNSPEC && usable_ipv6)) + { + gethosts (AF_INET6, struct in6_addr); + no_inet6_data = no_data; +@@ -2151,7 +2151,7 @@ getaddrinfo (const char *name, const cha + if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET + || hints->ai_family == AF_INET6) + { +- last_i = gaih_inet (name, pservice, hints, end, &naddrs); ++ last_i = gaih_inet (name, pservice, hints, end, &naddrs, seen_ipv6); + if (last_i != 0) + { + freeaddrinfo (p); diff --git a/glibc-2.10-dns-fixpack.diff b/glibc-2.10-dns-fixpack.diff new file mode 100644 index 0000000..88318d6 --- /dev/null +++ b/glibc-2.10-dns-fixpack.diff @@ -0,0 +1,169 @@ +2008-11-26 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Only restrict search + to IPv4 or IPv6 if an interface has been found. + +--- sysdeps/posix/getaddrinfo.c 30 Jul 2008 19:14:22 -0000 1.136 ++++ sysdeps/posix/getaddrinfo.c 3 Dec 2008 07:04:10 -0000 1.139 +@@ -2108,7 +2110,7 @@ getaddrinfo (const char *name, const cha + { + /* If we haven't seen both IPv4 and IPv6 interfaces we can + narrow down the search. */ +- if (! seen_ipv4 || ! seen_ipv6) ++ if ((! seen_ipv4 || ! seen_ipv6) && (seen_ipv4 || seen_ipv6)) + { + local_hints = *hints; + local_hints.ai_family = seen_ipv4 ? PF_INET : PF_INET6; + + +2008-12-02 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use + gethostbyname4_r, we don't have a separate IPv6 status, so copy + the no_data variable. + +--- sysdeps/posix/getaddrinfo.c 30 Jul 2008 19:14:22 -0000 1.136 ++++ sysdeps/posix/getaddrinfo.c 3 Dec 2008 07:04:10 -0000 1.139 +@@ -733,6 +733,8 @@ gaih_inet (const char *name, const struc + tmpbuflen, 2 * tmpbuflen); + } + ++ no_inet6_data = no_data; ++ + if (status == NSS_STATUS_SUCCESS) + { + if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL) + + +2008-12-02 Ulrich Drepper + + * resolv/res_init.c (__res_vinit): Initialize nscount to zero. + + * resolv/res_init.c (__res_vinit): Fill in IPv4 name server + information at the correct index. + +2008-12-07 Ulrich Drepper + + * resolv/res_init.c (__res_vinit): Always assign to statp->nscount + after reading name server list. + +--- resolv/res_init.c 7 Apr 2008 17:20:25 -0000 1.47 ++++ resolv/res_init.c 8 Dec 2008 03:59:05 -0000 1.50 +@@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit + #endif + statp->nsaddr.sin_family = AF_INET; + statp->nsaddr.sin_port = htons(NAMESERVER_PORT); +- statp->nscount = 1; ++ statp->nscount = 0; + statp->ndots = 1; + statp->pfcode = 0; + statp->_vcsock = -1; +@@ -314,9 +314,9 @@ __res_vinit(res_state statp, int preinit + cp++; + if ((*cp != '\0') && (*cp != '\n') + && __inet_aton(cp, &a)) { +- statp->nsaddr_list[nserv].sin_addr = a; +- statp->nsaddr_list[nserv].sin_family = AF_INET; +- statp->nsaddr_list[nserv].sin_port = ++ statp->nsaddr_list[nservall].sin_addr = a; ++ statp->nsaddr_list[nservall].sin_family = AF_INET; ++ statp->nsaddr_list[nservall].sin_port = + htons(NAMESERVER_PORT); + nserv++; + #ifdef _LIBC +@@ -420,8 +420,7 @@ __res_vinit(res_state statp, int preinit + continue; + } + } +- if (nserv > 1) +- statp->nscount = nserv; ++ statp->nscount = nserv; + #ifdef _LIBC + if (nservall - nserv > 0) { + statp->_u._ext.nscount6 = nservall - nserv; + + +2008-12-02 Ulrich Drepper + + * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Recognize + ESRCH return value. + (_nss_dns_gethostbyname4_r): Likewise. + +--- resolv/nss_dns/dns-host.c 12 Nov 2008 07:52:20 -0000 1.54 ++++ resolv/nss_dns/dns-host.c 3 Dec 2008 07:09:26 -0000 1.55 +@@ -198,8 +198,14 @@ _nss_dns_gethostbyname3_r (const char *n + 1024, &host_buffer.ptr, NULL, NULL, NULL); + if (n < 0) + { +- status = (errno == ECONNREFUSED +- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); ++ if (errno == ESRCH) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ h_errno = TRY_AGAIN; ++ } ++ else ++ status = (errno == ECONNREFUSED ++ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); + *h_errnop = h_errno; + if (h_errno == TRY_AGAIN) + *errnop = EAGAIN; +@@ -304,8 +310,14 @@ _nss_dns_gethostbyname4_r (const char *n + &ans2p, &nans2p, &resplen2); + if (n < 0) + { +- status = (errno == ECONNREFUSED +- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); ++ if (errno == ESRCH) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ h_errno = TRY_AGAIN; ++ } ++ else ++ status = (errno == ECONNREFUSED ++ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); + *herrnop = h_errno; + if (h_errno == TRY_AGAIN) + *errnop = EAGAIN; + + +2008-12-29 Ulrich Drepper + + * resolv/res_init.c (__res_vinit): Count all servers in statp->nscount. + +diff -u -r1.50 -r1.51 +--- resolv/res_init.c 2008/12/08 03:59:05 1.50 ++++ resolv/res_init.c 2008/12/29 19:53:31 1.51 +@@ -420,7 +420,7 @@ + continue; + } + } +- statp->nscount = nserv; ++ statp->nscount = nservall; + #ifdef _LIBC + if (nservall - nserv > 0) { + statp->_u._ext.nscount6 = nservall - nserv; + + +2009-01-16 Petr Baudis + + * resolv/res_libc (__res_maybe_init): Call __res_vinit() + even if we currently have zero nscount. + +diff --git a/resolv/res_libc.c b/resolv/res_libc.c +index 8af57f7..810fbc8 100644 +--- resolv/res_libc.c ++++ resolv/res_libc.c +@@ -96,10 +96,9 @@ __res_maybe_init (res_state resp, int preinit) + { + if (resp->options & RES_INIT) { + if (__res_initstamp != resp->_u._ext.initstamp) { +- if (resp->nscount > 0) { ++ if (resp->nscount > 0) + __res_iclose (resp, true); +- return __res_vinit (resp, 1); +- } ++ return __res_vinit (resp, 1); + } + return 0; + } else if (preinit) { diff --git a/glibc-2.10-dns-no-gethostbyname4.diff b/glibc-2.10-dns-no-gethostbyname4.diff new file mode 100644 index 0000000..30f37a6 --- /dev/null +++ b/glibc-2.10-dns-no-gethostbyname4.diff @@ -0,0 +1,26 @@ +The gethostbyname4() lookup method is problematic since it fires out both +the A and AAAA DNS queries in parallel and over the same socket. This +should work in theory, but it turns out that many cheap DSL modems and +similar devices have buggy DNS servers - if the AAAA query arrives too +quickly after the A query, the server will generate only a single reply +with the A query id but returning an error for the AAAA query; we get +stuck waiting for the second reply. + +For gethostbyname4() users affected, disabling IPv6 in the system might +work around the issue, unfortunately it only helps with applications +using AI_ADDRCONFIG (e.g. Firefox); some (notably e.g. Pidgin) neglect +to do that. + +Real fix should be using separate ports for the A and AAAA queries. + +--- resolv/Versions 2008-08-02 10:26:09.000000000 +0200 ++++ resolv/Versions 2008-12-08 12:51:53.000000000 +0100 +@@ -102,7 +102,7 @@ libnss_dns { + _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; + _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; + _nss_dns_gethostbyaddr2_r; +- _nss_dns_gethostbyname4_r; ++# _nss_dns_gethostbyname4_r; + } + } + diff --git a/glibc-2.10-locale-tuesday.diff b/glibc-2.10-locale-tuesday.diff new file mode 100644 index 0000000..4795094 --- /dev/null +++ b/glibc-2.10-locale-tuesday.diff @@ -0,0 +1,26 @@ +diff --git a/localedata/locales/csb_PL b/localedata/locales/csb_PL +index 663fd6c..93c9ae2 100644 +--- localedata/locales/csb_PL ++++ localedata/locales/csb_PL +@@ -184,7 +184,7 @@ t_fmt_ampm "" + date_fmt "/ + / + " +-week 7;19971201;4 ++week 7;19971130;4 + first_weekday 2 + first_workday 2 + END LC_TIME +diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB +index fe58f1f..6a81d6d 100644 +--- localedata/locales/en_GB ++++ localedata/locales/en_GB +@@ -121,7 +121,7 @@ t_fmt_ampm "" + date_fmt "/ + / + " +-week 7;19971201;4 ++week 7;19971130;4 + first_weekday 2 + first_workday 2 + END LC_TIME diff --git a/glibc-2.10-nis-hosts.diff b/glibc-2.10-nis-hosts.diff new file mode 100644 index 0000000..b421637 --- /dev/null +++ b/glibc-2.10-nis-hosts.diff @@ -0,0 +1,84 @@ +=================================================================== +RCS file: /cvs/glibc/libc/nis/nss_nis/nis-hosts.c,v +retrieving revision 1.29 +retrieving revision 1.31 +diff -u -r1.29 -r1.31 +--- nis/nss_nis/nis-hosts.c 2008/05/10 23:23:25 1.29 ++++ nis/nss_nis/nis-hosts.c 2008/12/07 17:06:43 1.31 +@@ -485,24 +485,6 @@ + return retval; + } + +- struct parser_data data; +- struct hostent host; +- int parse_res = parse_line (result, &host, &data, buflen, errnop, AF_UNSPEC, +- 0); +- if (__builtin_expect (parse_res < 1, 0)) +- { +- if (parse_res == -1) +- { +- *herrnop = NETDB_INTERNAL; +- return NSS_STATUS_TRYAGAIN; +- } +- else +- { +- *herrnop = HOST_NOT_FOUND; +- return NSS_STATUS_NOTFOUND; +- } +- } +- + if (*pat == NULL) + { + uintptr_t pad = (-(uintptr_t) buffer +@@ -524,16 +506,47 @@ + buflen -= sizeof (struct gaih_addrtuple); + } + +- (*pat)->next = NULL; +- size_t h_name_len = strlen (host.h_name); +- if (h_name_len >= buflen) ++ uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct parser_data); ++ buffer += pad; ++ ++ struct parser_data *data = (void *) buffer; ++ ++ if (__builtin_expect (buflen < sizeof *data + 1 + pad, 0)) + goto erange; +- (*pat)->name = memcpy (buffer, host.h_name, h_name_len + 1); ++ buflen -= pad; ++ ++ struct hostent host; ++ int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC, ++ 0); ++ if (__builtin_expect (parse_res < 1, 0)) ++ { ++ if (parse_res == -1) ++ { ++ *herrnop = NETDB_INTERNAL; ++ return NSS_STATUS_TRYAGAIN; ++ } ++ else ++ { ++ *herrnop = HOST_NOT_FOUND; ++ return NSS_STATUS_NOTFOUND; ++ } ++ } ++ ++ (*pat)->next = NULL; + (*pat)->family = host.h_addrtype; + memcpy ((*pat)->addr, host.h_addr_list[0], host.h_length); + (*pat)->scopeid = 0; + assert (host.h_addr_list[1] == NULL); + ++ /* Undo the alignment for parser_data. */ ++ buffer -= pad; ++ buflen += pad; ++ ++ size_t h_name_len = strlen (host.h_name) + 1; ++ if (h_name_len >= buflen) ++ goto erange; ++ (*pat)->name = memcpy (buffer, host.h_name, h_name_len); ++ + free (result); + + return NSS_STATUS_SUCCESS; diff --git a/glibc-2.10-nscd-gc-dataofs.diff b/glibc-2.10-nscd-gc-dataofs.diff new file mode 100644 index 0000000..6ac0b70 --- /dev/null +++ b/glibc-2.10-nscd-gc-dataofs.diff @@ -0,0 +1,15 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=9741 + +diff --git a/nscd/mem.c b/nscd/mem.c +index e821729..1f7215e 100644 +--- nscd/mem.c ++++ nscd/mem.c +@@ -163,7 +163,7 @@ gc (struct database_dyn *db) + else + { + he = xmalloc (memory_needed); +- he_data = &he[db->head->nentries * sizeof (struct hashentry *)]; ++ he_data = &he[db->head->nentries]; + he_use_malloc = true; + } + diff --git a/glibc-2.10-nscd-meminflight.diff b/glibc-2.10-nscd-meminflight.diff new file mode 100644 index 0000000..b224e62 --- /dev/null +++ b/glibc-2.10-nscd-meminflight.diff @@ -0,0 +1,86 @@ +--- nscd/mem.c~ 2008-11-23 12:59:15.000000000 +0100 ++++ nscd/mem.c 2008-11-23 13:52:01.000000000 +0100 +@@ -392,6 +392,7 @@ + moves = moves->next = new_move; + } + ++ ref_t off_alloc_start = off_alloc; + /* The following loop will prepare to move this much data. */ + off_free += off_allocend - off_alloc; + +@@ -410,23 +411,60 @@ + else + { +- assert (next_data < &he_data[db->head->nentries]); +- assert ((*next_data)->packet == off_alloc); + +- struct datahead *dh = (struct datahead *) (db->data + off_alloc); +- do +- { +- assert ((*next_data)->key >= (*next_data)->packet); +- assert ((*next_data)->key + (*next_data)->len +- <= (*next_data)->packet + dh->allocsize); +- +- (*next_data)->packet -= disp; +- (*next_data)->key -= disp; +- ++next_data; ++ if (next_data < &he_data[db->head->nentries] && (*next_data)->packet == off_alloc) ++ { ++ struct datahead *dh = (struct datahead *) (db->data + off_alloc); ++ do ++ { ++ assert ((*next_data)->key >= (*next_data)->packet); ++ assert ((*next_data)->key + (*next_data)->len ++ <= (*next_data)->packet + dh->allocsize); ++ ++ (*next_data)->packet -= disp; ++ (*next_data)->key -= disp; ++ ++next_data; ++ } ++ while (next_data < &he_data[db->head->nentries] ++ && (*next_data)->packet == off_alloc); ++ ++ off_alloc += (dh->allocsize + BLOCK_ALIGN_M1) & ~BLOCK_ALIGN_M1; + } +- while (next_data < &he_data[db->head->nentries] +- && (*next_data)->packet == off_alloc); ++ else ++ { ++ /* This is not yet a hashed element but an in-flight ++ * mempool allocation. We cannot displace it, so we ++ * reset the shake-down at this point; typically, ++ * the in-flight allocations will be at the top of ++ * the pool, thus nothing will be above it and we will ++ * shake it down in the next gc run. In theory, we can ++ * grow the pool indefinitely if we always hit gc at ++ * the point we have an in-flight allocation, but ++ * that does not seem to be a realistic scenario. */ ++ nscd_ssize_t blocklen = 0; ++ struct mem_in_flight *mrunp = mem_in_flight_list; ++ ++ /* See the first mem_in_flight_list loop above ++ * for correctness considerations. */ ++ /* Typically, we have only tiny number of in_flight ++ * records so we don't need to bother pre-sorting ++ * the list. */ ++ while (!blocklen && mrunp != NULL) ++ { ++ for (enum in_flight idx = IDX_result_data; ++ idx < IDX_last && mrunp->block[idx].dbidx == db - dbs; ++idx) ++ if (mrunp->block[idx].blockoff == off_alloc) ++ blocklen = mrunp->block[idx].blocklen; ++ ++ mrunp = mrunp->next; ++ } ++ assert(blocklen > 0); ++ ++ moves->size = off_alloc - off_alloc_start; ++ off_free = off_allocend; ++ disp = 0; + +- off_alloc += (dh->allocsize + BLOCK_ALIGN_M1) & ~BLOCK_ALIGN_M1; ++ off_alloc += blocklen; ++ } + } + } + assert (off_alloc == off_allocend); diff --git a/glibc-2.10-nscd-nostack.diff b/glibc-2.10-nscd-nostack.diff new file mode 100644 index 0000000..27fb9aa --- /dev/null +++ b/glibc-2.10-nscd-nostack.diff @@ -0,0 +1,16 @@ +--- nscd/nscd.h~ 2009-01-21 02:14:55.875774000 +0100 ++++ nscd/nscd.h 2009-01-21 02:15:58.519066000 +0100 +@@ -60,7 +60,12 @@ + + /* Maximum size of stack frames we allow the thread to use. We use + 80% of the thread stack size. */ +-#define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) ++// #define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) ++/* alloca() calls use extra space on stack that we cannot reliably ++ account for, the optimization effect is not that big and they are ++ prone to hard-to-debug crashes. In short, they are much more trouble ++ than they are worth. */ ++#define MAX_STACK_USE 0 + + + /* Structure describing dynamic part of one database. */ diff --git a/glibc-2.10-nscd-prunerace.diff b/glibc-2.10-nscd-prunerace.diff new file mode 100644 index 0000000..6df9c79 --- /dev/null +++ b/glibc-2.10-nscd-prunerace.diff @@ -0,0 +1,88 @@ +diff --git a/nscd/connections.c b/nscd/connections.c +index e3a6738..597e1a7 100644 +--- nscd/connections.c ++++ nscd/connections.c +@@ -109,6 +109,7 @@ struct database_dyn dbs[lastdb] = + [pwddb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -129,6 +130,7 @@ struct database_dyn dbs[lastdb] = + [grpdb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -149,6 +151,7 @@ struct database_dyn dbs[lastdb] = + [hstdb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -169,6 +172,7 @@ struct database_dyn dbs[lastdb] = + [servdb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -975,9 +979,9 @@ invalidate_cache (char *key, int fd) + + if (dbs[number].enabled) + { +- pthread_mutex_lock (&dbs[number].prune_lock); ++ pthread_mutex_lock (&dbs[number].prune_run_lock); + prune_cache (&dbs[number], LONG_MAX, fd); +- pthread_mutex_unlock (&dbs[number].prune_lock); ++ pthread_mutex_unlock (&dbs[number].prune_run_lock); + } + else + { +@@ -1492,6 +1496,7 @@ nscd_run_prune (void *p) + dbs[my_number].wakeup_time = now + CACHE_PRUNE_INTERVAL + my_number; + + pthread_mutex_t *prune_lock = &dbs[my_number].prune_lock; ++ pthread_mutex_t *prune_run_lock = &dbs[my_number].prune_run_lock; + pthread_cond_t *prune_cond = &dbs[my_number].prune_cond; + + pthread_mutex_lock (prune_lock); +@@ -1523,7 +1528,10 @@ nscd_run_prune (void *p) + time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now; + dbs[my_number].clear_cache = 0; + ++ /* prune_cache() must be run with prune_lock off since ++ cache_add() needs to take the lock. */ + pthread_mutex_unlock (prune_lock); ++ pthread_mutex_lock (prune_run_lock); + + next_wait = prune_cache (&dbs[my_number], prune_now, -1); + +@@ -1538,6 +1546,7 @@ nscd_run_prune (void *p) + dbs[my_number].head->timestamp = now; + } + ++ pthread_mutex_unlock (prune_run_lock); + pthread_mutex_lock (prune_lock); + + /* Make it known when we will wake up again. */ +diff --git a/nscd/nscd.h b/nscd/nscd.h +index 5c77dd3..a828f3e 100644 +--- nscd/nscd.h ++++ nscd/nscd.h +@@ -68,7 +68,7 @@ struct database_dyn + { + pthread_rwlock_t lock; + pthread_cond_t prune_cond; +- pthread_mutex_t prune_lock; ++ pthread_mutex_t prune_lock, prune_run_lock; + time_t wakeup_time; + + int enabled; diff --git a/glibc-2.10-ppc32-setcontext-fp.diff b/glibc-2.10-ppc32-setcontext-fp.diff new file mode 100644 index 0000000..cbadcff --- /dev/null +++ b/glibc-2.10-ppc32-setcontext-fp.diff @@ -0,0 +1,29 @@ +20090108 Ryan S. Arnold + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S + (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S + (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. + +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-08 10:01:44.000000000 -0600 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-08 16:54:10.000000000 -0600 +@@ -202,7 +202,7 @@ + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ +- mtfsf 0xff,fp0,1,0 ++ mtfsf 0xff,fp31,1,0 + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-08 10:01:44.000000000 -0600 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-08 16:54:17.000000000 -0600 +@@ -428,7 +428,7 @@ + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ +- mtfsf 0xff,fp0,1,0 ++ mtfsf 0xff,fp31,1,0 + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP diff --git a/glibc-2.10-unsetenv.diff b/glibc-2.10-unsetenv.diff new file mode 100644 index 0000000..bede175 --- /dev/null +++ b/glibc-2.10-unsetenv.diff @@ -0,0 +1,69 @@ +2008-12-01 Ulrich Drepper + + * stdlib/setenv.c (unsetenv): Don't search environment if it does + not exist. + * stdlib/Makefile (tests): Add tst-unsetenv1. + * stdlib/tst-unsetenv1.c: New file. + +--- stdlib/Makefile 8 Mar 2008 21:31:19 -0000 1.122 ++++ stdlib/Makefile 2 Dec 2008 02:27:21 -0000 1.123 +@@ -69,7 +69,7 @@ tests := tst-strtol tst-strtod testmb t + test-a64l tst-qsort tst-system testmb2 bug-strtod2 \ + tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ + tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ +- tst-makecontext2 tst-strtod6 ++ tst-makecontext2 tst-strtod6 tst-unsetenv1 + + include ../Makeconfig + +--- stdlib/setenv.c 14 Dec 2005 10:44:05 -0000 1.1 ++++ stdlib/setenv.c 2 Dec 2008 01:39:44 -0000 1.2 +@@ -292,19 +292,20 @@ unsetenv (name) + LOCK; + + ep = __environ; +- while (*ep != NULL) +- if (!strncmp (*ep, name, len) && (*ep)[len] == '=') +- { +- /* Found it. Remove this pointer by moving later ones back. */ +- char **dp = ep; +- +- do +- dp[0] = dp[1]; +- while (*dp++); +- /* Continue the loop in case NAME appears again. */ +- } +- else +- ++ep; ++ if (ep != NULL) ++ while (*ep != NULL) ++ if (!strncmp (*ep, name, len) && (*ep)[len] == '=') ++ { ++ /* Found it. Remove this pointer by moving later ones back. */ ++ char **dp = ep; ++ ++ do ++ dp[0] = dp[1]; ++ while (*dp++); ++ /* Continue the loop in case NAME appears again. */ ++ } ++ else ++ ++ep; + + UNLOCK; + +--- stdlib/tst-unsetenv1.c 1 Jan 1970 00:00:00 -0000 ++++ stdlib/tst-unsetenv1.c 2 Dec 2008 02:27:12 -0000 1.1 +@@ -0,0 +1,12 @@ ++#include ++ ++static int ++do_test (void) ++{ ++ clearenv (); ++ unsetenv ("FOO"); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff deleted file mode 100644 index 5afebd2..0000000 --- a/glibc-2.14-crypt.diff +++ /dev/null @@ -1,98 +0,0 @@ -Index: glibc-2.25/crypt/Makefile -=================================================================== ---- glibc-2.25.orig/crypt/Makefile -+++ glibc-2.25/crypt/Makefile -@@ -23,14 +23,18 @@ subdir := crypt - include ../Makeconfig - - headers := crypt.h -+headers += gnu-crypt.h ow-crypt.h - --extra-libs := libcrypt -+extra-libs := libcrypt libowcrypt - extra-libs-others := $(extra-libs) - - libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ - crypt_util - --tests := cert md5c-test sha256c-test sha512c-test badsalttest -+libcrypt-routines += crypt_blowfish x86 wrapper -+libowcrypt-routines := crypt_gensalt wrapper-gensalt -+ -+tests := cert md5c-test sha256c-test sha512c-test - - ifeq ($(crypt-in-libc),yes) - routines += $(libcrypt-routines) -Index: glibc-2.25/crypt/Versions -=================================================================== ---- glibc-2.25.orig/crypt/Versions -+++ glibc-2.25/crypt/Versions -@@ -3,3 +3,8 @@ libcrypt { - crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; - } - } -+libowcrypt { -+ OW_CRYPT_1.0 { -+ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; -+ } -+} -Index: glibc-2.25/crypt/crypt-entry.c -=================================================================== ---- glibc-2.25.orig/crypt/crypt-entry.c -+++ glibc-2.25/crypt/crypt-entry.c -@@ -71,7 +71,7 @@ extern struct crypt_data _ufc_foobar; - */ - - char * --__crypt_r (const char *key, const char *salt, -+__des_crypt_r (const char *key, const char *salt, - struct crypt_data * __restrict data) - { - ufc_long res[4]; -@@ -152,6 +152,7 @@ __crypt_r (const char *key, const char * - - return data->crypt_3_buf; - } -+#if 0 - weak_alias (__crypt_r, crypt_r) - - char * -@@ -190,3 +191,4 @@ __fcrypt (const char *key, const char *s - return crypt (key, salt); - } - #endif -+#endif -Index: glibc-2.25/crypt/crypt-private.h -=================================================================== ---- glibc-2.25.orig/crypt/crypt-private.h -+++ glibc-2.25/crypt/crypt-private.h -@@ -65,7 +65,7 @@ extern void __encrypt_r (char * __restri - struct crypt_data * __restrict __data); - - /* crypt-entry.c */ --extern char *__crypt_r (const char *__key, const char *__salt, -+extern char *__des_crypt_r (const char *__key, const char *__salt, - struct crypt_data * __restrict __data); - extern char *fcrypt (const char *key, const char *salt); - -Index: glibc-2.25/shlib-versions -=================================================================== ---- glibc-2.25.orig/shlib-versions -+++ glibc-2.25/shlib-versions -@@ -58,6 +58,7 @@ libnsl=1 - - # This defines the shared library version numbers we will install. - libcrypt=1 -+libowcrypt=1 - - # The gross patch for programs assuming broken locale implementations. - libBrokenLocale=1 -Index: glibc-2.25/sysdeps/unix/sysv/linux/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.25/sysdeps/unix/sysv/linux/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff new file mode 100644 index 0000000..523f0b4 --- /dev/null +++ b/glibc-2.2-sunrpc.diff @@ -0,0 +1,76 @@ +diff -urN glibc-2.2.4/sunrpc/clnt_udp.c glibc-2.2.4.new/sunrpc/clnt_udp.c +--- sunrpc/clnt_udp.c Tue Aug 24 11:34:36 2004 ++++ sunrpc/clnt_udp.c Tue Aug 24 11:35:19 2004 +@@ -272,6 +272,7 @@ + XDR *xdrs; + int outlen = 0; + int inlen; ++ int pollresult; + socklen_t fromlen; + struct pollfd fd; + int milliseconds = (cu->cu_wait.tv_sec * 1000) + +@@ -342,37 +343,36 @@ + anyup = 0; + for (;;) + { +- switch (__poll (&fd, 1, milliseconds)) ++ switch (pollresult = __poll (&fd, 1, milliseconds)) + { +- + case 0: +- if (anyup == 0) +- { +- anyup = is_network_up (cu->cu_sock); +- if (!anyup) +- return (cu->cu_error.re_status = RPC_CANTRECV); +- } +- +- time_waited.tv_sec += cu->cu_wait.tv_sec; +- time_waited.tv_usec += cu->cu_wait.tv_usec; +- while (time_waited.tv_usec >= 1000000) +- { +- time_waited.tv_sec++; +- time_waited.tv_usec -= 1000000; +- } +- if ((time_waited.tv_sec < timeout.tv_sec) || +- ((time_waited.tv_sec == timeout.tv_sec) && +- (time_waited.tv_usec < timeout.tv_usec))) +- goto send_again; +- return (cu->cu_error.re_status = RPC_TIMEDOUT); +- +- /* +- * buggy in other cases because time_waited is not being +- * updated. +- */ + case -1: +- if (errno == EINTR) +- continue; ++ if (pollresult == 0 || errno == EINTR) { ++ if (anyup == 0) ++ { ++ anyup = is_network_up (cu->cu_sock); ++ if (!anyup) ++ return (cu->cu_error.re_status = RPC_CANTRECV); ++ } ++ ++ time_waited.tv_sec += cu->cu_wait.tv_sec; ++ time_waited.tv_usec += cu->cu_wait.tv_usec; ++ while (time_waited.tv_usec >= 1000000) ++ { ++ time_waited.tv_sec++; ++ time_waited.tv_usec -= 1000000; ++ } ++ if ((time_waited.tv_sec < timeout.tv_sec) || ++ ((time_waited.tv_sec == timeout.tv_sec) && ++ (time_waited.tv_usec < timeout.tv_usec))) ++ if (pollresult == 0) ++ goto send_again; ++ else ++ continue; ++ return (cu->cu_error.re_status = RPC_TIMEDOUT); ++ } ++ ++ /* errno != EINTR */ + cu->cu_error.re_errno = errno; + return (cu->cu_error.re_status = RPC_CANTRECV); + } diff --git a/glibc-2.26.tar.xz b/glibc-2.26.tar.xz deleted file mode 100644 index 3a2b030..0000000 --- a/glibc-2.26.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd -size 14682748 diff --git a/glibc-2.26.tar.xz.sig b/glibc-2.26.tar.xz.sig deleted file mode 100644 index 21adc1c..0000000 --- a/glibc-2.26.tar.xz.sig +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQEcBAABAgAGBQJZgduLAAoJEHnEPfvxzyGHDesH/itf17ZUWSWNIRp2cC0RK1et -jtR7ufFMpSHfMFJQXkli162s+iFMAxuOus52rma/h3PP8BXVbEKB7M3N0dvqPbmC -AIC6YtAYU/I4M3V+6T1pi4ras19i2VgNY+iag0xw5o0ah4yZmZwB5eFR2xIz10ZD -SGffJyCD/8EFwn/SPx38JS55ENwGj5PT1m2TsEnlLeHg7sCH7ksb5Pqq/ZEwIw0v -E56a4hSliDUhurc0gUQmFxm/FhFSdTzns0vShfgou4D2tNSYaUjrf/17ebj0ehUF -XkNH5jvwHoxiKzEVnD7dS9NLbvOPAG4AlFnWejgqvX0JB/M5TknOcmJYpzZYiGE= -=XObH ------END PGP SIGNATURE----- diff --git a/glibc-2.3-SuSE.diff b/glibc-2.3-SuSE.diff new file mode 100644 index 0000000..01107dc --- /dev/null +++ b/glibc-2.3-SuSE.diff @@ -0,0 +1,37 @@ +--- io/Makefile ++++ io/Makefile 2003/02/24 12:15:52 +@@ -56,7 +56,7 @@ + + others := pwd + test-srcs := ftwtest +-tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ ++tests := test-utime test-stat test-stat2 tst-getcwd \ + tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ + tst-openat tst-unlinkat tst-fstatat tst-futimesat \ + distribute := ftwtest-sh +--- libio/stdio.h 23 Apr 2003 10:13:22 -0000 1.1.1.14 ++++ libio/stdio.h 23 Apr 2003 10:27:07 -0000 1.10 +@@ -142,10 +142,12 @@ typedef _G_fpos64_t fpos64_t; + extern struct _IO_FILE *stdin; /* Standard input stream. */ + extern struct _IO_FILE *stdout; /* Standard output stream. */ + extern struct _IO_FILE *stderr; /* Standard error output stream. */ ++#ifdef __STDC__ + /* C89/C99 say they're macros. Make them happy. */ + #define stdin stdin + #define stdout stdout + #define stderr stderr ++#endif + + __BEGIN_NAMESPACE_STD + /* Remove file FILENAME. */ +--- stdio-common/Makefile ++++ stdio-common/Makefile 2005/12/05 11:13:59 +@@ -48,7 +48,7 @@ + temptest tst-fileno test-fwrite tst-ungetc tst-ferror \ + xbug errnobug \ + bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 bug12 bug13 \ +- tfformat tiformat tllformat tstdiomisc tst-printfsz tst-wc-printf \ ++ tfformat tiformat tllformat tst-printfsz tst-wc-printf \ + scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \ + scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \ + tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \ diff --git a/glibc-2.3-regcomp.diff b/glibc-2.3-regcomp.diff new file mode 100644 index 0000000..eaa62e2 --- /dev/null +++ b/glibc-2.3-regcomp.diff @@ -0,0 +1,11 @@ +--- posix/regcomp.c 2003-11-26 08:54:28.000000000 +0100 ++++ posix/regcomp.c 2003-11-27 11:41:00.000000000 +0100 +@@ -2191,6 +2191,8 @@ + else if (syntax & RE_CONTEXT_INDEP_OPS) + { + fetch_token (token, regexp, syntax); ++ if (token->type == OP_CLOSE_SUBEXP || token->type == OP_ALT) ++ return NULL; + return parse_expression (regexp, preg, token, syntax, nest, err); + } + /* else fall through */ diff --git a/glibc-2.3.1.localedef.diff b/glibc-2.3.1.localedef.diff new file mode 100644 index 0000000..a4dca05 --- /dev/null +++ b/glibc-2.3.1.localedef.diff @@ -0,0 +1,68 @@ +------------------------------------------------------------------- +Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de + +- Fix alignment in locale-archive. + +--- locale/programs/locarchive.c 2002-10-18 11:14:16.000000000 +0200 ++++ locale/programs/locarchive.c 2002-10-21 13:28:27.000000000 +0200 +@@ -72,6 +72,9 @@ static const char *locnames[] = + #define INITIAL_NUM_SUMS 2000 + + ++#define ALIGN(offset, alignment) \ ++ (((offset) + (alignment) - 1) & -(alignment)) ++ + static void + create_archive (const char *archivefname, struct locarhandle *ah) + { +@@ -90,8 +93,9 @@ create_archive (const char *archivefname + + /* Create the initial content of the archive. */ + head.magic = AR_MAGIC; + head.serial = 0; +- head.namehash_offset = sizeof (struct locarhead); ++ head.namehash_offset = ALIGN (sizeof (struct locarhead), ++ __alignof__ (struct namehashent)); + head.namehash_used = 0; + head.namehash_size = next_prime (INITIAL_NUM_NAMES); + +@@ -99,12 +103,15 @@ create_archive (const char *archivefname + head.string_used = 0; + head.string_size = INITIAL_SIZE_STRINGS; + +- head.locrectab_offset = head.string_offset + head.string_size; ++ head.locrectab_offset = ALIGN (head.string_offset + head.string_size, ++ __alignof__ (struct locrecent)); + head.locrectab_used = 0; + head.locrectab_size = INITIAL_NUM_LOCREC; + +- head.sumhash_offset = (head.locrectab_offset +- + head.locrectab_size * sizeof (struct locrecent)); ++ head.sumhash_offset = ALIGN (head.locrectab_offset ++ + (head.locrectab_size ++ * sizeof (struct locrecent)), ++ __alignof__ (struct sumhashent)); + head.sumhash_used = 0; + head.sumhash_size = next_prime (INITIAL_NUM_SUMS); + +@@ -274,13 +281,16 @@ enlarge_archive (struct locarhandle *ah, + * sizeof (struct namehashent))); + newhead.string_size = MAX (2 * newhead.string_used, newhead.string_size); + +- newhead.locrectab_offset = newhead.string_offset + newhead.string_size; ++ newhead.locrectab_offset = ALIGN (newhead.string_offset ++ + newhead.string_size, ++ __alignof__ (struct locrecent)); + newhead.locrectab_size = MAX (2 * newhead.locrectab_used, + newhead.locrectab_size); + +- newhead.sumhash_offset = (newhead.locrectab_offset +- + (newhead.locrectab_size +- * sizeof (struct locrecent))); ++ newhead.sumhash_offset = ALIGN (newhead.locrectab_offset ++ + (newhead.locrectab_size ++ * sizeof (struct locrecent)), ++ __alignof__ (struct sumhashent)); + newhead.sumhash_size = MAX (next_prime (2 * newhead.sumhash_used), + newhead.sumhash_size); + diff --git a/glibc-2.3.2-revert_tcsetattr.diff b/glibc-2.3.2-revert_tcsetattr.diff new file mode 100644 index 0000000..f660306 --- /dev/null +++ b/glibc-2.3.2-revert_tcsetattr.diff @@ -0,0 +1,53 @@ +Index: sysdeps/unix/sysv/linux/tcsetattr.c +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/tcsetattr.c,v +retrieving revision 1.14 +retrieving revision 1.13 +diff -u -r1.14 -r1.13 +--- sysdeps/unix/sysv/linux/tcsetattr.c 21 Feb 2003 00:09:04 -0000 1.14 ++++ sysdeps/unix/sysv/linux/tcsetattr.c 17 Feb 2003 19:48:44 -0000 1.13 +@@ -56,6 +56,7 @@ + { + struct __kernel_termios k_termios; + unsigned long int cmd; ++ int retval; + + switch (optional_actions) + { +@@ -87,6 +88,35 @@ + memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], + __KERNEL_NCCS * sizeof (cc_t)); + +- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ ++ if (retval == 0 && cmd == TCSETS) ++ { ++ /* The Linux kernel has a bug which silently ignore the invalid ++ c_cflag on pty. We have to check it here. */ ++ int save = errno; ++ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); ++ if (retval) ++ { ++ /* We cannot verify if the setting is ok. We don't return ++ an error (?). */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((termios_p->c_cflag & (PARENB | CREAD)) ++ != (k_termios.c_cflag & (PARENB | CREAD)) ++ || ((termios_p->c_cflag & CSIZE) ++ && ((termios_p->c_cflag & CSIZE) ++ != (k_termios.c_cflag & CSIZE)))) ++ { ++ /* It looks like the Linux kernel silently changed the ++ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an ++ error. */ ++ __set_errno (EINVAL); ++ retval = -1; ++ } ++ } ++ ++ return retval; + } + libc_hidden_def (tcsetattr) diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff index ed68c3b..52f4e69 100644 --- a/glibc-2.3.2.no_archive.diff +++ b/glibc-2.3.2.no_archive.diff @@ -1,12 +1,11 @@ +------------------------------------------------------------------- Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - Make --no-archive default for localedef -Index: glibc-2.18.90/locale/programs/localedef.c -=================================================================== ---- glibc-2.18.90.orig/locale/programs/localedef.c -+++ glibc-2.18.90/locale/programs/localedef.c -@@ -81,7 +81,7 @@ const char *alias_file; +--- locale/programs/localedef.c ++++ locale/programs/localedef.c 2003/06/04 11:03:28 +@@ -83,7 +83,7 @@ static struct localedef_t *locales; /* If true don't add locale data to archive. */ @@ -15,15 +14,15 @@ Index: glibc-2.18.90/locale/programs/localedef.c /* If true add named locales to archive. */ static bool add_to_archive; -@@ -112,6 +112,7 @@ void (*argp_program_version_hook) (FILE +@@ -114,6 +114,7 @@ #define OPT_REPLACE 307 #define OPT_DELETE_FROM_ARCHIVE 308 #define OPT_LIST_ARCHIVE 309 +#define OPT_ARCHIVE 310 - #define OPT_LITTLE_ENDIAN 400 - #define OPT_BIG_ENDIAN 401 -@@ -136,6 +137,8 @@ static const struct argp_option options[ + /* Definitions of arguments for argp functions. */ + static const struct argp_option options[] = +@@ -135,6 +136,8 @@ N_("Suppress warnings and information messages") }, { "verbose", 'v', NULL, 0, N_("Print more messages") }, { NULL, 0, NULL, 0, N_("Archive control:") }, @@ -32,7 +31,7 @@ Index: glibc-2.18.90/locale/programs/localedef.c { "no-archive", OPT_NO_ARCHIVE, NULL, 0, N_("Don't add new data to archive") }, { "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0, -@@ -317,6 +320,9 @@ parse_opt (int key, char *arg, struct ar +@@ -315,6 +318,9 @@ case OPT_PREFIX: output_prefix = arg; break; diff --git a/glibc-2.3.3-amd64-s_ceil.diff b/glibc-2.3.3-amd64-s_ceil.diff new file mode 100644 index 0000000..36f8b0d --- /dev/null +++ b/glibc-2.3.3-amd64-s_ceil.diff @@ -0,0 +1,38 @@ + +This fixes ceil (x) for -1.0 < x < 0. + +--- sysdeps/x86_64/fpu/s_ceil.c 2003-11-26 15:25:50.000000000 +0100 ++++ sysdeps/x86_64/fpu/s_ceil.c 2003-11-27 13:57:35.000000000 +0100 +@@ -34,7 +34,11 @@ + /* x is +zero or -zero; return the same zero */ + return x; + else if (xneg) /* x < 0.0 */ +- return 0.0; ++ { ++ /* Return zero with the sign of x */ ++ PUT_BITS_DP64(SIGNBIT_DP64, x); ++ return x; ++ } + else + return 1.0; + } +--- sysdeps/x86_64/fpu/s_ceilf.c 2003-11-26 15:25:50.000000000 +0100 ++++ sysdeps/x86_64/fpu/s_ceilf.c 2003-11-27 13:57:35.000000000 +0100 +@@ -34,7 +34,11 @@ + /* x is +zero or -zero; return the same zero */ + return x; + else if (xneg) /* x < 0.0 */ +- return 0.0F; ++ { ++ /* Return zero with the sign of x */ ++ PUT_BITS_SP32(SIGNBIT_SP32, x); ++ return x; ++ } + else + return 1.0F; + } + +-- + Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj + SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany + GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126 diff --git a/glibc-2.3.3-amd64-string.diff b/glibc-2.3.3-amd64-string.diff new file mode 100644 index 0000000..03b513b --- /dev/null +++ b/glibc-2.3.3-amd64-string.diff @@ -0,0 +1,2744 @@ +============================================================ +Index: sysdeps/x86_64/strlen.S +=================================================================== +--- sysdeps/x86_64/strlen.S.orig ++++ sysdeps/x86_64/strlen.S +@@ -1,139 +1,405 @@ +-/* strlen(str) -- determine the length of the string STR. +- Copyright (C) 2002, 2003 Free Software Foundation, Inc. +- Based on i486 version contributed by Ulrich Drepper . +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#include "asm-syntax.h" +-#include "bp-sym.h" +-#include "bp-asm.h" +- +- +- .text +-ENTRY (strlen) +- movq %rdi, %rcx /* Duplicate source pointer. */ +- andl $7, %ecx /* mask alignment bits */ +- movq %rdi, %rax /* duplicate destination. */ +- jz 1f /* aligned => start loop */ +- +- neg %ecx /* We need to align to 8 bytes. */ +- addl $8,%ecx +- /* Search the first bytes directly. */ +-0: cmpb $0x0,(%rax) /* is byte NUL? */ +- je 2f /* yes => return */ +- incq %rax /* increment pointer */ +- decl %ecx +- jnz 0b +- +-1: movq $0xfefefefefefefeff,%r8 /* Save magic. */ +- +- .p2align 4 /* Align loop. */ +-4: /* Main Loop is unrolled 4 times. */ +- /* First unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jnz 3f /* found NUL => return pointer */ +- +- /* Second unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jnz 3f /* found NUL => return pointer */ +- +- /* Third unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jnz 3f /* found NUL => return pointer */ +- +- /* Fourth unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jz 4b /* no NUL found => continue loop */ +- +- .p2align 4 /* Align, it's a jump target. */ +-3: subq $8,%rax /* correct pointer increment. */ +- +- testb %cl, %cl /* is first byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testb %ch, %ch /* is second byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testl $0x00ff0000, %ecx /* is third byte NUL? */ +- jz 2f /* yes => return pointer */ +- incq %rax /* increment pointer */ +- +- testl $0xff000000, %ecx /* is fourth byte NUL? */ +- jz 2f /* yes => return pointer */ +- incq %rax /* increment pointer */ +- +- shrq $32, %rcx /* look at other half. */ +- +- testb %cl, %cl /* is first byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testb %ch, %ch /* is second byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testl $0xff0000, %ecx /* is third byte NUL? */ +- jz 2f /* yes => return pointer */ +- incq %rax /* increment pointer */ +-2: +- subq %rdi, %rax /* compute difference to string start */ +- ret ++# $Header: /K8_Projects/Glibc/amd64strlen.S 3 10/06/03 11:00 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++#include ++ ++#ifdef PIC ++ .globl _rtld_local_ro ++ .hidden _rtld_local_ro ++ .set _rtld_local_ro,_rtld_global_ro ++#endif ++ .text ++ ++ENTRY (strlen) # (const char *s) ++ ++ mov %rdi, %rsi ++ neg %rdi ++ ++L(strlenaligntry): ++ mov %rsi , %r8 ++ and $7, %r8d ++ jz L(strlenalignafter) ++ ++L(strlenalign): # 8-byte align ++ sub $8, %r8 ++ ++ .p2align 4 ++ ++L(strlenalignloop): ++ cmpb $0, (%rsi) ++ je L(exit) ++ ++ inc %rsi ++ inc %r8 ++ jnz L(strlenalignloop) ++ ++ .p2align 4 ++ ++L(strlenalignafter): ++ ++L(strlen56try): ++ ++L(strlen56): # 56-byte ++ mov (%rsi), %rax ++ mov $0xfefefefefefefeff, %rcx ++ ++L(strlen56loop): ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++L(strlen56after): ++ ++L(strlen32): # 32-byte ++# mov $0xfefefefefefefeff, %rcx ++# mov (%rsi), %rax ++ ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZE(%r8), %r9 ++#else ++ mov _dl_cache1size, %r9 ++#endif ++ ++ .p2align 4 ++ ++L(strlen32loop): ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ sub $32, %r9 ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ jbe L(strlen32loop) ++ ++L(strlen32after): ++ ++L(strlenpretry): ++ ++L(strlenpre): # 64-byte prefetch ++# mov $0xfefefefefefefeff, %rcx ++# mov (%rsi), %rax ++ ++ .p2align 4 ++ ++L(strlenpreloop): ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ prefetcht0 512 (%rsi) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ jmp L(strlenpreloop) ++ ++ .p2align 4 ++ ++L(strlenpreafter): ++ ++L(strlentailtry): ++ ++L(strlentail): # 4-byte tail ++ ++L(strlentailloop): ++ test %al, %al ++ jz L(exit) ++ ++ inc %rsi ++ ++ test %ah, %ah ++ jz L(exit) ++ ++ inc %rsi ++ ++ test $0x00ff0000, %eax ++ jz L(exit) ++ ++ inc %rsi ++ ++ test $0xff000000, %eax ++ jz L(exit) ++ ++ inc %rsi ++ ++ shr $32, %rax ++ jmp L(strlentailloop) ++ ++L(strlentailafter): ++ ++ .p2align 4 ++ ++L(exit): ++ lea (%rdi, %rsi), %rax ++ ret ++ + END (strlen) + libc_hidden_builtin_def (strlen) +Index: sysdeps/x86_64/dl-machine.h +=================================================================== +--- sysdeps/x86_64/dl-machine.h.orig ++++ sysdeps/x86_64/dl-machine.h +@@ -219,6 +219,40 @@ dl_platform_init (void) + if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') + /* Avoid an empty string which would disturb us. */ + GLRO(dl_platform) = NULL; ++ ++ long int t1, t2; ++ t1 = 0; ++ t2 = 0; ++ ++ asm ( ++ "mov $0x80000000, %%eax # get highest level of support\n\t" ++ "cpuid\n\t" ++ "cmp $0x80000006, %%eax # check for support of cache info\n\t" ++ "jb 1f\n\t" ++ "mov $0x80000005, %%eax # get L1 info\n\t" ++ "cpuid\n\t" ++ "shr $24, %%ecx\n\t" ++ "shl $10, %%ecx\n\t" ++ "mov %%rcx, %0\n\t" ++ "mov $0x80000006, %%eax # get L2 info\n\t" ++ "cpuid\n\t" ++ "shr $16, %%ecx\n\t" ++ "shl $10, %%ecx\n\t" ++ "mov %%rcx, %1\n\t" ++ "1:\n\t" ++ :"=r" (t1), "=r" (t2) :: "%rbx", "%rax", "%rcx", "%rdx" ++ ); ++ ++ if (t1) ++ { ++ GLRO(dl_cache1size) = t1; ++ GLRO(dl_cache1sizehalf) = t1 / 2; ++ } ++ if (t2) ++ { ++ GLRO(dl_cache2size) = t2; ++ GLRO(dl_cache2sizehalf) = t2 / 2; ++ } + } + + static inline Elf64_Addr +Index: sysdeps/x86_64/Makefile +=================================================================== +--- sysdeps/x86_64/Makefile.orig ++++ sysdeps/x86_64/Makefile +@@ -4,6 +4,9 @@ long-double-fcts = yes + ifeq ($(subdir),csu) + sysdep_routines += hp-timing + elide-routines.os += hp-timing ++ ++# get offset to rtld_global._dl_* ++gen-as-const-headers += rtld-global-offsets.sym + endif + + ifeq ($(subdir),gmon) +Index: sysdeps/x86_64/strcpy.S +=================================================================== +--- sysdeps/x86_64/strcpy.S.orig ++++ sysdeps/x86_64/strcpy.S +@@ -1,159 +1,833 @@ +-/* strcpy/stpcpy implementation for x86-64. +- Copyright (C) 2002 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Andreas Jaeger , 2002. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#include "asm-syntax.h" +-#include "bp-sym.h" +-#include "bp-asm.h" ++# $Header: /K8_Projects/Glibc/amd64strcpy.S 7 2/12/04 19:06 Emenezes $ + +-#ifndef USE_AS_STPCPY ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++#include ++ ++ /* XXX: strncpy is broken, just use this for strcpy for now. */ ++#ifdef PIC ++ .globl _rtld_local_ro ++ .hidden _rtld_local_ro ++ .set _rtld_local_ro,_rtld_global_ro ++#endif ++#ifndef STRCPY + # define STRCPY strcpy + #endif ++#define LABEL(s) L(strcpy##s) ++ ++ .text ++ ++ENTRY (STRCPY) # (char *, const char *) ++ ++#ifdef USE_AS_STRNCPY // (char *, const char *, size_t) ++ test %rdx, %rdx # (char *, const char *, size_t) ++ mov %rdx, %r11 ++ jz LABEL(exitn) # early exit ++#endif ++ ++ xor %edx, %edx ++ ++LABEL(aligntry): ++ mov %rsi, %r8 # align by source ++ and $7, %r8 ++ jz LABEL(alignafter) ++ ++LABEL(align): # 8-byte align ++ sub $8, %r8 + +- .text +-ENTRY (BP_SYM (STRCPY)) +- movq %rsi, %rcx /* Source register. */ +- andl $7, %ecx /* mask alignment bits */ +- movq %rdi, %rdx /* Duplicate destination pointer. */ +- +- jz 5f /* aligned => start loop */ +- +- neg %ecx /* We need to align to 8 bytes. */ +- addl $8,%ecx +- /* Search the first bytes directly. */ +-0: +- movb (%rsi), %al /* Fetch a byte */ +- testb %al, %al /* Is it NUL? */ +- movb %al, (%rdx) /* Store it */ +- jz 4f /* If it was NUL, done! */ +- incq %rsi +- incq %rdx +- decl %ecx +- jnz 0b +- +-5: +- movq $0xfefefefefefefeff,%r8 +- +- /* Now the sources is aligned. Unfortunatly we cannot force +- to have both source and destination aligned, so ignore the +- alignment of the destination. */ + .p2align 4 +-1: +- /* 1st unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- +- /* 2nd unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- +- /* 3rd unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- +- /* 4th unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- jmp 1b /* Next iteration. */ + +- /* Do the last few bytes. %rax contains the value to write. +- The loop is unrolled twice. */ ++LABEL(alignloop): ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++#endif ++ ++ mov (%rsi, %rdx), %al # check if same character ++ test %al, %al # check if character a NUL ++ mov %al, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %edx ++ inc %r8 ++ jnz LABEL(alignloop) ++ + .p2align 4 ++ ++LABEL(alignafter): ++ ++LABEL(8try): ++ mov $0xfefefefefefefeff, %rcx ++ ++LABEL(8): # 8-byte ++ mov (%rsi, %rdx), %rax ++ ++LABEL(8loop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++LABEL(8after): ++ ++LABEL(64try): ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %r9 ++#else ++ mov _dl_cache1sizehalf, %r9 ++#endif ++ ++ ++LABEL(64): # 64-byte ++ ++ .p2align 4 ++ ++LABEL(64loop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ cmp %r9, %rdx ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ lea 8 (%rdx), %rdx ++ ++ jbe LABEL(64loop) ++ ++LABEL(64after): ++ ++LABEL(pretry): ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE2SIZEHALF(%r8), %r9 ++#else ++ mov _dl_cache2sizehalf, %r9 ++#endif ++ ++LABEL(pre): # 64-byte prefetch ++ ++ .p2align 4 ++ ++LABEL(preloop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ cmp %r9, %rdx ++ ++ mov %rax, (%rdi, %rdx) ++ prefetcht0 512 + 8 (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ prefetcht0 512 + 8 (%rsi, %rdx) ++ lea 8 (%rdx), %rdx ++ ++ jb LABEL(preloop) ++ ++ .p2align 4 ++ ++LABEL(preafter): ++ ++LABEL(NTtry): ++ sfence ++ ++LABEL(NT): # 64-byte NT ++ ++ .p2align 4 ++ ++LABEL(NTloop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ prefetchnta 768 + 8 (%rsi, %rdx) ++ add $8, %rdx ++ ++ jmp LABEL(NTloop) ++ ++ .p2align 4 ++ ++LABEL(NTtail): ++ sfence ++ ++ .p2align 4 ++ ++LABEL(NTafter): ++ ++LABEL(tailtry): ++ ++LABEL(tail): # 1-byte tail ++#ifdef USE_AS_STRNCPY ++ add $8, %r11 ++#endif ++ ++ .p2align 4 ++ ++LABEL(tailloop): ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++#endif ++ ++ test %al, %al ++ mov %al, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %rdx ++ ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++ ++ mov %ah, %al ++#endif ++ ++ test %ah, %ah ++ mov %ah, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %rdx ++ ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++#endif ++ ++ shr $16, %rax ++ ++ test %al, %al ++ mov %al, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %rdx ++ ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++ ++ mov %ah, %al ++#endif ++ ++ test %ah, %ah ++ mov %ah, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ shr $16, %rax ++ inc %rdx ++ ++ jmp LABEL(tailloop) ++ ++ .p2align 4 ++ ++LABEL(tailafter): ++ ++LABEL(exit): ++#ifdef USE_AS_STRNCPY ++ test %r11, %r11 ++ mov %r11, %rcx ++ ++#ifdef USE_AS_STPCPY ++ lea (%rdi, %rdx), %r8 ++#else ++ mov %rdi, %r8 ++#endif ++ ++ jz 2f ++ ++ xor %eax, %eax # bzero () would do too, but usually there are only a handfull of bytes left ++ shr $3, %rcx ++ lea 1 (%rdi, %rdx), %rdi ++ jz 1f ++ ++ rep stosq ++ ++1: ++ mov %r11d, %ecx ++ and $7, %ecx ++ jz 2f ++ ++ .p2align 4,, 3 ++ + 3: +- /* Note that stpcpy needs to return with the value of the NUL +- byte. */ +- movb %al, (%rdx) /* 1st byte. */ +- testb %al, %al /* Is it NUL. */ +- jz 4f /* yes, finish. */ +- incq %rdx /* Increment destination. */ +- movb %ah, (%rdx) /* 2nd byte. */ +- testb %ah, %ah /* Is it NUL?. */ +- jz 4f /* yes, finish. */ +- incq %rdx /* Increment destination. */ +- shrq $16, %rax /* Shift... */ +- jmp 3b /* and look at next two bytes in %rax. */ ++ dec %ecx ++ mov %al, (%rdi, %rcx) ++ jnz 3b ++ ++ .p2align 4,, 3 ++ ++2: ++ mov %r8, %rax ++ ret ++ ++#endif ++ ++ .p2align 4 + +-4: ++LABEL(exitn): + #ifdef USE_AS_STPCPY +- movq %rdx, %rax /* Destination is return value. */ ++ lea (%rdi, %rdx), %rax + #else +- movq %rdi, %rax /* Source is return value. */ ++ mov %rdi, %rax + #endif +- retq +-END (BP_SYM (STRCPY)) +-#ifndef USE_AS_STPCPY +-libc_hidden_builtin_def (strcpy) ++ ++ ret ++ ++END (STRCPY) ++#if !defined USE_AS_STPCPY && !defined USE_AS_STRNCPY ++libc_hidden_builtin_def (STRCPY) + #endif +Index: sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c +=================================================================== +--- sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c.orig ++++ sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c +@@ -1,5 +1,5 @@ + #ifdef IS_IN_ldconfig + # include + #else +-# include ++# include + #endif +Index: sysdeps/x86_64/dl-procinfo.c +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/dl-procinfo.c +@@ -0,0 +1,108 @@ ++/* Data for x86-64 version of processor capability information. ++ Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Jaeger , 2004. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* This information must be kept in sync with the _DL_HWCAP_COUNT and ++ _DL_PLATFORM_COUNT definitions in procinfo.h. ++ ++ If anything should be added here check whether the size of each string ++ is still ok with the given array size. ++ ++ All the #ifdefs in the definitions ar equite irritating but ++ necessary if we want to avoid duplicating the information. There ++ are three different modes: ++ ++ - PROCINFO_DECL is defined. This means we are only interested in ++ declarations. ++ ++ - PROCINFO_DECL is not defined: ++ ++ + if SHARED is defined the file is included in an array ++ initializer. The .element = { ... } syntax is needed. ++ ++ + if SHARED is not defined a normal array initialization is ++ needed. ++ */ ++ ++#ifndef PROCINFO_CLASS ++#define PROCINFO_CLASS ++#endif ++ ++ /* _dl_cache1size: size of L1 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache1size ++#else ++PROCINFO_CLASS long int _dl_cache1size ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 64 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++ /* _dl_cache1sizehalf: 1/2 size of L1 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache1sizehalf ++#else ++PROCINFO_CLASS long int _dl_cache1sizehalf ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 64 / 2 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++ /* _dl_cache2size: size of L2 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache2size ++#else ++PROCINFO_CLASS long int _dl_cache2size ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 1024 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++ /* _dl_cache2size: 1/2 size of L2 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache2sizehalf ++#else ++PROCINFO_CLASS long int _dl_cache2sizehalf ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 1024 / 2 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++#undef PROCINFO_DECL ++#undef PROCINFO_CLASS +Index: sysdeps/x86_64/elf/rtld-global-offsets.sym +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/elf/rtld-global-offsets.sym +@@ -0,0 +1,10 @@ ++#define SHARED 1 ++ ++#include ++ ++#define rtdl_global_offsetof(mem) offsetof (struct rtld_global_ro, mem) ++ ++RTLD_GLOBAL_DL_CACHE1SIZE rtdl_global_offsetof (_dl_cache1size) ++RTLD_GLOBAL_DL_CACHE1SIZEHALF rtdl_global_offsetof (_dl_cache1sizehalf) ++RTLD_GLOBAL_DL_CACHE2SIZE rtdl_global_offsetof (_dl_cache2size) ++RTLD_GLOBAL_DL_CACHE2SIZEHALF rtdl_global_offsetof (_dl_cache2sizehalf) +Index: sysdeps/x86_64/memcmp.S +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/memcmp.S +@@ -0,0 +1,442 @@ ++# $Header: /K8_Projects/Glibc/amd64memcmp.S 4 10/06/03 10:57 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++#include ++ ++#ifdef PIC ++ .globl _rtld_local_ro ++ .hidden _rtld_local_ro ++ .set _rtld_local_ro,_rtld_global_ro ++#endif ++ ++ .text ++ ++ENTRY (memcmp) # (const void *, const void*, size_t) ++ ++L(memcmptry1): ++ cmp $8, %rdx ++ jae L(memcmp1after) ++ ++L(memcmp1): # 1-byte ++ test %rdx, %rdx ++ mov $0, %eax ++ jz L(memcmpexit) ++ ++L(memcmp1loop): ++ movzbl (%rdi), %eax ++ movzbl (%rsi), %ecx ++ sub %ecx, %eax ++ jnz L(memcmpexit) ++ ++ dec %rdx ++ ++ lea 1 (%rdi), %rdi ++ lea 1 (%rsi), %rsi ++ ++ jnz L(memcmp1loop) ++ ++L(memcmpexit): ++ rep ++ ret ++ ++ .p2align 4 ++ ++L(memcmp1after): ++ ++L(memcmp8try): ++ cmp $32, %rdx ++ jae L(memcmp8after) ++ ++L(memcmp8): # 8-byte ++ mov %edx, %ecx ++ shr $3, %ecx ++ jz L(memcmp1) ++ ++ .p2align 4 ++ ++L(memcmp8loop): ++ mov (%rsi), %rax ++ cmp (%rdi), %rax ++ jne L(memcmp1) ++ ++ sub $8, %rdx ++ dec %ecx ++ ++ lea 8 (%rsi), %rsi ++ lea 8 (%rdi), %rdi ++ ++ jnz L(memcmp8loop) ++ ++L(memcmp8skip): ++ and $7, %edx ++ jnz L(memcmp1) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmp8after): ++ ++L(memcmp32try): ++ cmp $2048, %rdx ++ ja L(memcmp32after) ++ ++L(memcmp32): # 32-byte ++ mov %edx, %ecx ++ shr $5, %ecx ++ jz L(memcmp8) ++ ++ .p2align 4 ++ ++L(memcmp32loop): ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r8 ++ mov 16 (%rsi), %r9 ++ mov 24 (%rsi), %r10 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r8 ++ sub 16 (%rdi), %r9 ++ sub 24 (%rdi), %r10 ++ ++ or %rax, %r8 ++ or %r9, %r10 ++ or %r8, %r10 ++ jnz L(memcmp8) ++ ++ sub $32, %rdx ++ dec %ecx ++ ++ lea 32 (%rsi), %rsi ++ lea 32 (%rdi), %rdi ++ ++ jnz L(memcmp32loop) ++ ++L(memcmp32skip): ++ and $31, %edx ++ jnz L(memcmp8) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmp32after): ++ ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %r9 ++#else ++ mov _dl_cache1sizehalf, %r9 ++#endif ++ prefetcht0 (%r9) ++ ++ ++.alignsrctry: ++ mov %esi, %r8d # align by source ++ ++ and $7, %r8d ++ jz .alignsrcafter # not unaligned ++ ++.alignsrc: # align ++ lea -8 (%r8, %rdx), %rdx ++ sub $8, %r8d ++ ++# .p2align 4 ++ ++.alignsrcloop: ++ movzbl (%rdi), %eax ++ movzbl (%rsi), %ecx ++ sub %ecx, %eax ++ jnz L(memcmpexit) ++ ++ inc %r8d ++ ++ lea 1 (%rdi), %rdi ++ lea 1 (%rsi), %rsi ++ ++ jnz .alignsrcloop ++ ++ .p2align 4 ++ ++.alignsrcafter: ++ ++ ++L(memcmp64try): ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %rcx ++#else ++ mov _dl_cache1sizehalf, %rcx ++#endif ++ cmp %rdx, %rcx ++ cmova %rdx, %rcx ++ ++L(memcmp64): # 64-byte ++ shr $6, %rcx ++ jz L(memcmp32) ++ ++ .p2align 4 ++ ++L(memcmp64loop): ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r8 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r8 ++ or %r8, %rax ++ ++ mov 16 (%rsi), %r9 ++ mov 24 (%rsi), %r10 ++ sub 16 (%rdi), %r9 ++ sub 24 (%rdi), %r10 ++ or %r10, %r9 ++ ++ or %r9, %rax ++ jnz L(memcmp32) ++ ++ mov 32 (%rsi), %rax ++ mov 40 (%rsi), %r8 ++ sub 32 (%rdi), %rax ++ sub 40 (%rdi), %r8 ++ or %r8, %rax ++ ++ mov 48 (%rsi), %r9 ++ mov 56 (%rsi), %r10 ++ sub 48 (%rdi), %r9 ++ sub 56 (%rdi), %r10 ++ or %r10, %r9 ++ ++ or %r9, %rax ++ jnz L(memcmp32) ++ ++ lea 64 (%rsi), %rsi ++ lea 64 (%rdi), %rdi ++ ++ sub $64, %rdx ++ dec %rcx ++ jnz L(memcmp64loop) ++ ++# .p2align 4 ++ ++L(memcmp64skip): ++ cmp $2048, %rdx ++ ja L(memcmp64after) ++ ++ test %edx, %edx ++ jnz L(memcmp32) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmp64after): ++ ++L(memcmppretry): ++ ++L(memcmppre): # 64-byte prefetching ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE2SIZEHALF(%r8), %rcx ++#else ++ mov _dl_cache2sizehalf, %rcx ++#endif ++ cmp %rdx, %rcx ++ cmova %rdx, %rcx ++ ++ shr $6, %rcx ++ jz L(memcmppreskip) ++ ++ prefetcht0 512 (%rsi) ++ prefetcht0 512 (%rdi) ++ ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r9 ++ mov 16 (%rsi), %r10 ++ mov 24 (%rsi), %r11 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r9 ++ sub 16 (%rdi), %r10 ++ sub 24 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ mov 32 (%rsi), %rax ++ mov 40 (%rsi), %r9 ++ mov 48 (%rsi), %r10 ++ mov 56 (%rsi), %r11 ++ sub 32 (%rdi), %rax ++ sub 40 (%rdi), %r9 ++ sub 48 (%rdi), %r10 ++ sub 56 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ lea 64 (%rsi), %rsi ++ lea 64 (%rdi), %rdi ++ ++ sub $64, %rdx ++ dec %rcx ++ ++ .p2align 4 ++ ++L(memcmppreloop): ++ prefetcht0 512 (%rsi) ++ prefetcht0 512 (%rdi) ++ ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r9 ++ mov 16 (%rsi), %r10 ++ mov 24 (%rsi), %r11 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r9 ++ sub 16 (%rdi), %r10 ++ sub 24 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ mov 32 (%rsi), %rax ++ mov 40 (%rsi), %r9 ++ mov 48 (%rsi), %r10 ++ mov 56 (%rsi), %r11 ++ sub 32 (%rdi), %rax ++ sub 40 (%rdi), %r9 ++ sub 48 (%rdi), %r10 ++ sub 56 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ lea 64 (%rsi), %rsi ++ lea 64 (%rdi), %rdi ++ ++ sub $64, %rdx ++ dec %rcx ++ jnz L(memcmppreloop) ++ ++# .p2align 4 ++ ++L(memcmppreskip): ++ cmp $2048, %rdx ++ ja L(memcmppreafter) ++ ++ test %edx, %edx ++ jnz L(memcmp32) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmppreafter): ++ ++L(memcmp128try): ++ ++L(memcmp128): # 128-byte ++ mov %rdx, %rcx ++ shr $7, %rcx ++ jz L(memcmp128skip) ++ ++ .p2align 4 ++ ++L(memcmp128loop): ++ prefetcht0 512 (%rsi) ++ prefetcht0 512 (%rdi) ++ ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r8 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r8 ++ mov 16 (%rsi), %r9 ++ mov 24 (%rsi), %r10 ++ sub 16 (%rdi), %r9 ++ sub 24 (%rdi), %r10 ++ ++ or %r8, %rax ++ or %r9, %r10 ++ or %r10, %rax ++ ++ mov 32 (%rsi), %r8 ++ mov 40 (%rsi), %r9 ++ sub 32 (%rdi), %r8 ++ sub 40 (%rdi), %r9 ++ mov 48 (%rsi), %r10 ++ mov 56 (%rsi), %r11 ++ sub 48 (%rdi), %r10 ++ sub 56 (%rdi), %r11 ++ ++ or %r9, %r8 ++ or %r11, %r10 ++ or %r10, %r8 ++ ++ or %r8, %rax ++ jnz L(memcmp32) ++ ++ prefetcht0 576 (%rsi) ++ prefetcht0 576 (%rdi) ++ ++ mov 64 (%rsi), %rax ++ mov 72 (%rsi), %r8 ++ sub 64 (%rdi), %rax ++ sub 72 (%rdi), %r8 ++ mov 80 (%rsi), %r9 ++ mov 88 (%rsi), %r10 ++ sub 80 (%rdi), %r9 ++ sub 88 (%rdi), %r10 ++ ++ or %r8, %rax ++ or %r9, %r10 ++ or %r10, %rax ++ ++ mov 96 (%rsi), %r8 ++ mov 104 (%rsi), %r9 ++ sub 96 (%rdi), %r8 ++ sub 104 (%rdi), %r9 ++ mov 112 (%rsi), %r10 ++ mov 120 (%rsi), %r11 ++ sub 112 (%rdi), %r10 ++ sub 120 (%rdi), %r11 ++ ++ or %r9, %r8 ++ or %r11, %r10 ++ or %r10, %r8 ++ ++ or %r8, %rax ++ jnz L(memcmp32) ++ ++ sub $128, %rdx ++ dec %rcx ++ ++ lea 128 (%rsi), %rsi ++ lea 128 (%rdi), %rdi ++ ++ jnz L(memcmp128loop) ++ ++L(memcmp128skip): ++ and $127, %edx ++ jnz L(memcmp32) ++ ++ xor %eax, %eax ++ ret ++ ++END (memcmp) ++ ++#undef bcmp ++weak_alias (memcmp, bcmp) +Index: sysdeps/x86_64/strncmp.S +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/strncmp.S +@@ -0,0 +1,15 @@ ++# $Header: /K8_Projects/Glibc/amd64strncpy.S 1 8/29/03 16:37 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#define USE_AS_STRNCMP ++#define strcmp strncmp ++ ++#include "strcmp.S" ++ ++weak_alias (strncmp, __strncmp) ++libc_hidden_builtin_def (strncmp) +Index: sysdeps/x86_64/strcmp.S +=================================================================== +--- sysdeps/x86_64/strcmp.S.orig ++++ sysdeps/x86_64/strcmp.S +@@ -1,45 +1,487 @@ +-/* Highly optimized version for x86-64. +- Copyright (C) 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Based on i686 version contributed by Ulrich Drepper +- , 1999. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#include "asm-syntax.h" +-#include "bp-sym.h" +-#include "bp-asm.h" ++# $Header: /K8_Projects/Glibc/amd64strcmp.S 10 2/10/04 11:48 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++ ++#define LABEL(s) L##s + + .text +-ENTRY (BP_SYM (strcmp)) +-L(oop): movb (%rdi), %al +- cmpb (%rsi), %al +- jne L(neq) +- incq %rdi +- incq %rsi +- testb %al, %al +- jnz L(oop) +- +- xorl %eax, %eax +- ret +- +-L(neq): movl $1, %eax +- movl $-1, %ecx +- cmovbl %ecx, %eax +- ret +-END (BP_SYM (strcmp)) ++ ++ENTRY (strcmp) # (const char *, const char *) ++ ++ xor %ecx, %ecx ++ ++#ifdef USE_AS_STRNCMP // (const char *, const char *, size_t) ++ mov %r14, -8 (%rsp) ++ mov %rdx, %r14 ++ ++ test %rdx, %rdx ++ mov %edx, %eax ++ jz .LABEL(exitz) ++#endif ++ ++.LABEL(aligntry): ++ mov %rsi, %r8 # align by "source" ++ and $8 - 1, %r8 # between 0 and 8 characters compared ++ jz .LABEL(alignafter) ++ ++.LABEL(align): ++ sub $8, %r8 ++ ++ .p2align 4 ++ ++.LABEL(alignloop): ++ mov (%rsi, %rcx), %al ++ mov (%rdi, %rcx), %dl ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .LABEL(exitafter) ++#endif ++ ++ cmp %dl, %al # check if same character ++ jne .LABEL(exitafter) ++ test %al, %al # check if character a NUL ++ jz .LABEL(exitafter) ++ ++ inc %ecx ++ ++ inc %r8 ++ jnz .LABEL(alignloop) ++ ++ .p2align 4 ++ ++.LABEL(alignafter): ++ ++ mov %r15, -32 (%rsp) ++ mov %rbp, -24 (%rsp) ++ mov %rbx, -16 (%rsp) ++ ++.LABEL(pagealigntry): # page align by "destination" ++ mov $4096, %r15d # page size is 4096 ++ lea (%rdi, %rcx), %ebp ++ and $4095, %ebp # page mask ++ sub %r15d, %ebp ++ ++.LABEL(64): # 64-byte ++ mov $0xfefefefefefefeff, %rbx # magic number ++ ++ .p2align 4 ++ ++.LABEL(64loop): ++ add $64, %ebp # check if "destination" crosses a page unevenly ++ jle .LABEL(64gobble) ++ ++ sub %r15d, %ebp ++ lea 64 (%rcx), %r8 ++ ++ .p2align 4 ++ ++.LABEL(64nibble): ++ mov (%rsi, %rcx), %al ++ mov (%rdi, %rcx), %dl ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al # check if same character ++ jne .exit ++ test %al, %al # check if character a NUL ++ jz .exit ++ ++ inc %ecx ++ ++ cmp %ecx, %r8d ++ ja .LABEL(64nibble) ++ ++ .p2align 4 ++ ++.LABEL(64gobble): ++ mov (%rsi, %rcx), %rax ++ mov (%rdi, %rcx), %rdx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ add $8, %ecx ++ ++ jmp .LABEL(64loop) ++ ++.LABEL(64after): ++ ++.LABEL(tailtry): ++# mov (%rsi, %rcx), %rax ++# mov (%rdi, %rcx), %rdx ++# add $8, %rcx ++ ++.LABEL(tail): # byte tail ++#ifdef USE_AS_STRNCMP ++ add $7, %r14 ++#endif ++ ++ cmp %dl, %al # check if same character ++ jne .exit ++ test %al, %al # check if character a NUL ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %eax ++ shr $8, %edx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %eax ++ shr $8, %edx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %eax ++ shr $8, %edx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++# test %al, %al ++# jz .exit ++ ++ .p2align 4,, 15 ++ ++.LABEL(tailafter): ++ ++.exit: ++ mov -32 (%rsp), %r15 ++ mov -24 (%rsp), %rbp ++ mov -16 (%rsp), %rbx ++ ++ .p2align 4,, 3 ++ ++.LABEL(exitafter): ++#ifdef USE_AS_STRNCMP ++ test %r14, %r14 ++ cmovl %edx, %eax ++#endif ++ ++ movzx %al, %eax ++ movzx %dl, %edx ++ sub %eax, %edx ++ xchg %edx, %eax ++ ++#ifdef USE_AS_STRNCMP ++.LABEL(exitz): ++ mov -8 (%rsp), %r14 ++#endif ++ ret ++ ++END (strcmp) + libc_hidden_builtin_def (strcmp) +Index: sysdeps/x86_64/memcpy.S +=================================================================== +--- sysdeps/x86_64/memcpy.S.orig ++++ sysdeps/x86_64/memcpy.S +@@ -39,7 +39,7 @@ + + .text + +-#if defined PIC && !defined NOT_IN_libc ++#if defined PIC && !defined NOT_IN_libc && !defined USE_AS_BCOPY + ENTRY (__memcpy_chk) + + cmpq %rdx, %rcx diff --git a/glibc-2.3.3-execstack.diff b/glibc-2.3.3-execstack.diff new file mode 100644 index 0000000..16436db --- /dev/null +++ b/glibc-2.3.3-execstack.diff @@ -0,0 +1,45 @@ +--- locale/programs/3level.h ++++ locale/programs/3level.h 2004/09/26 06:58:48 +@@ -204,6 +204,42 @@ + } + } + } ++ ++/* GCC ATM seems to do a poor job with pointers to nested functions passed ++ to inlined functions. Help it a little bit with this hack. */ ++#define wchead_table_iterate(tp, fn) \ ++do \ ++ { \ ++ struct wchead_table *t = (tp); \ ++ uint32_t index1; \ ++ for (index1 = 0; index1 < t->level1_size; index1++) \ ++ { \ ++ uint32_t lookup1 = t->level1[index1]; \ ++ if (lookup1 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup1_shifted = lookup1 << t->q; \ ++ uint32_t index2; \ ++ for (index2 = 0; index2 < (1 << t->q); index2++) \ ++ { \ ++ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ ++ if (lookup2 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup2_shifted = lookup2 << t->p; \ ++ uint32_t index3; \ ++ for (index3 = 0; index3 < (1 << t->p); index3++) \ ++ { \ ++ struct element_t *lookup3 \ ++ = t->level3[index3 + lookup2_shifted]; \ ++ if (lookup3 != NULL) \ ++ fn ((((index1 << t->q) + index2) << t->p) + index3, \ ++ lookup3); \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } while (0) ++ + #endif + + #ifndef NO_FINALIZE diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index 14242a5..4ce88be 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -1,8 +1,10 @@ -Index: glibc-2.17.90/nscd/nscd.h -=================================================================== ---- glibc-2.17.90.orig/nscd/nscd.h -+++ glibc-2.17.90/nscd/nscd.h -@@ -112,11 +112,11 @@ struct database_dyn +2004-12-09 Thorsten Kukuk + + * nscd/nscd.h: Move persistent storage back to /var/run/nscd + +--- nscd/nscd.h ++++ nscd/nscd.h 2004/12/09 13:17:35 +@@ -87,10 +87,10 @@ /* Paths of the file for the persistent storage. */ @@ -10,12 +12,10 @@ Index: glibc-2.17.90/nscd/nscd.h -#define _PATH_NSCD_GROUP_DB "/var/db/nscd/group" -#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts" -#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services" --#define _PATH_NSCD_NETGROUP_DB "/var/db/nscd/netgroup" -+#define _PATH_NSCD_PASSWD_DB "/var/lib/nscd/passwd" -+#define _PATH_NSCD_GROUP_DB "/var/lib/nscd/group" -+#define _PATH_NSCD_HOSTS_DB "/var/lib/nscd/hosts" -+#define _PATH_NSCD_SERVICES_DB "/var/lib/nscd/services" -+#define _PATH_NSCD_NETGROUP_DB "/var/lib/nscd/netgroup" ++#define _PATH_NSCD_PASSWD_DB "/var/run/nscd/passwd" ++#define _PATH_NSCD_GROUP_DB "/var/run/nscd/group" ++#define _PATH_NSCD_HOSTS_DB "/var/run/nscd/hosts" ++#define _PATH_NSCD_SERVICES_DB "/var/run/nscd/services" /* Path used when not using persistent storage. */ #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" diff --git a/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 b/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 new file mode 100644 index 0000000..818e0b9 --- /dev/null +++ b/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:901fe715360fd55d2d83ceab113bacca58a2b9cba3673d80b184760976236ffd +size 1036487 diff --git a/glibc-2.3.5-nscd-zeronegtimeout.diff b/glibc-2.3.5-nscd-zeronegtimeout.diff new file mode 100644 index 0000000..744c1b7 --- /dev/null +++ b/glibc-2.3.5-nscd-zeronegtimeout.diff @@ -0,0 +1,111 @@ +Index: nscd/aicache.c +=================================================================== +--- nscd/aicache.c.orig ++++ nscd/aicache.c +@@ -515,10 +515,15 @@ next_nip: + if (fd != -1) + TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ dataset = NULL; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/grpcache.c +=================================================================== +--- nscd/grpcache.c.orig ++++ nscd/grpcache.c +@@ -113,10 +113,14 @@ cache_addgr (struct database_dyn *db, in + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/hstcache.c +=================================================================== +--- nscd/hstcache.c.orig ++++ nscd/hstcache.c +@@ -119,10 +119,14 @@ cache_addhst (struct database_dyn *db, i + MSG_NOSIGNAL)) != total) + all_written = false; + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/initgrcache.c +=================================================================== +--- nscd/initgrcache.c.orig ++++ nscd/initgrcache.c +@@ -197,10 +197,14 @@ addinitgroupsX (struct database_dyn *db, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/pwdcache.c +=================================================================== +--- nscd/pwdcache.c.orig ++++ nscd/pwdcache.c +@@ -120,10 +120,14 @@ cache_addpw (struct database_dyn *db, in + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; diff --git a/glibc-bindresvport-blacklist.diff b/glibc-2.3.90-bindresvport.blacklist.diff similarity index 60% rename from glibc-bindresvport-blacklist.diff rename to glibc-2.3.90-bindresvport.blacklist.diff index 3fb3a4f..3e8a581 100644 --- a/glibc-bindresvport-blacklist.diff +++ b/glibc-2.3.90-bindresvport.blacklist.diff @@ -1,28 +1,28 @@ -Index: glibc-2.17.90/sunrpc/bindrsvprt.c -=================================================================== ---- glibc-2.17.90.orig/sunrpc/bindrsvprt.c -+++ glibc-2.17.90/sunrpc/bindrsvprt.c -@@ -29,6 +29,9 @@ - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--- sunrpc/bindrsvprt.c ++++ sunrpc/bindrsvprt.c 2005/11/23 13:36:23 +@@ -30,28 +30,108 @@ + * Copyright (c) 1987 by Sun Microsystems, Inc. */ +#include +#include -+#include #include ++#include #include #include -@@ -42,6 +45,93 @@ - */ - __libc_lock_define_initialized (static, lock); + #include + #include + #include +#define STARTPORT 600 +#define LOWPORT 512 +#define ENDPORT (IPPORT_RESERVED - 1) +#define NPORTS (ENDPORT - STARTPORT + 1) + -+/* Read the file /etc/rpc.blacklisted, so that we don't bind to these -+ ports. */ ++/* ++ * Read the file /etc/rpc.blacklisted, so that we don't bind ++ * to this ports. ++ */ + +static int blacklist_read; +static int *list; @@ -36,16 +36,13 @@ Index: glibc-2.17.90/sunrpc/bindrsvprt.c + size_t buflen = 0; + int size = 0, ptr = 0; + -+ __libc_lock_lock (lock); -+ if (blacklist_read) -+ goto unlock; + blacklist_read = 1; + + fp = fopen ("/etc/bindresvport.blacklist", "r"); -+ if (fp == NULL) -+ goto unlock; ++ if (NULL == fp) ++ return; + -+ while (!feof_unlocked (fp)) ++ while (!feof (fp)) + { + unsigned long port; + char *tmp, *cp; @@ -54,59 +51,56 @@ Index: glibc-2.17.90/sunrpc/bindrsvprt.c + break; + + cp = buf; -+ /* Remove comments. */ -+ tmp = strchr (cp, '#'); ++ tmp = strchr (cp, '#'); /* remove comments */ + if (tmp) + *tmp = '\0'; -+ /* Remove spaces and tabs. */ -+ while (isspace ((unsigned char) *cp)) ++ while (isspace ((int)*cp)) /* remove spaces and tabs */ + ++cp; -+ /* Ignore empty lines. */ -+ if (*cp == '\0') ++ if (*cp == '\0') /* ignore empty lines */ + continue; + if (cp[strlen (cp) - 1] == '\n') + cp[strlen (cp) - 1] = '\0'; + + port = strtoul (cp, &tmp, 0); -+ while (isspace ((unsigned char) *tmp)) ++ while (isspace(*tmp)) + ++tmp; + if (*tmp != '\0' || (port == ULONG_MAX && errno == ERANGE)) + continue; + -+ /* Don't bother with out-of-range ports. */ ++ /* Don't bother with out-of-range ports */ + if (port < LOWPORT || port > ENDPORT) + continue; + + if (ptr >= size) + { + size += 10; -+ int *new_list = realloc (list, size * sizeof (int)); -+ if (new_list == NULL) ++ list = realloc (list, size * sizeof (int)); ++ if (list == NULL) + { -+ free (list); -+ list = NULL; + free (buf); -+ goto unlock; ++ return; + } -+ list = new_list; + } + + list[ptr++] = port; + } + + fclose (fp); -+ free (buf); ++ ++ if (buf) ++ free (buf); ++ + list_size = ptr; -+ -+ unlock: -+ __libc_lock_unlock (lock); +} -+ + /* * Bind a socket to a privileged IP port */ -@@ -52,12 +142,11 @@ bindresvport (int sd, struct sockaddr_in + int + bindresvport (int sd, struct sockaddr_in *sin) + { ++ static short startport = STARTPORT; + static short port; struct sockaddr_in myaddr; int i; @@ -114,15 +108,13 @@ Index: glibc-2.17.90/sunrpc/bindrsvprt.c -#define LOWPORT 512 -#define ENDPORT (IPPORT_RESERVED - 1) -#define NPORTS (ENDPORT - STARTPORT + 1) - static short startport = STARTPORT; - +- static short startport = STARTPORT; + if (!blacklist_read) + load_blacklist (); -+ + if (sin == (struct sockaddr_in *) 0) { - sin = &myaddr; -@@ -75,6 +164,7 @@ bindresvport (int sd, struct sockaddr_in +@@ -70,6 +148,7 @@ port = (__getpid () % NPORTS) + STARTPORT; } @@ -130,7 +122,7 @@ Index: glibc-2.17.90/sunrpc/bindrsvprt.c /* Initialize to make gcc happy. */ int res = -1; -@@ -86,12 +176,22 @@ bindresvport (int sd, struct sockaddr_in +@@ -78,12 +157,22 @@ again: for (i = 0; i < nports; ++i) { @@ -141,7 +133,7 @@ Index: glibc-2.17.90/sunrpc/bindrsvprt.c + + sin->sin_port = htons (port); + -+ /* Check that this port is not blacklisted. */ ++ /* Check, if this port is not blacklisted. */ + for (j = 0; j < list_size; j++) + if (port == list[j]) + goto try_next_port; @@ -150,7 +142,7 @@ Index: glibc-2.17.90/sunrpc/bindrsvprt.c if (res >= 0 || errno != EADDRINUSE) break; + -+ try_next_port: ++try_next_port: + if (++port > endport) + port = startport; } diff --git a/glibc-2.3.90-fnmatch.diff b/glibc-2.3.90-fnmatch.diff new file mode 100644 index 0000000..8ada08b --- /dev/null +++ b/glibc-2.3.90-fnmatch.diff @@ -0,0 +1,58 @@ +When fnmatch detects an invalid multibyte character it should fall back to +single byte matching, so that "*" has a chance to match such a string. + +Andreas. + +2005-04-12 Andreas Schwab + + * posix/fnmatch.c (fnmatch): If conversion to wide character + fails fall back to single byte matching. + +Index: posix/fnmatch.c +=================================================================== +--- posix/fnmatch.c.orig 2007-05-18 10:40:34.000000000 +0200 ++++ posix/fnmatch.c 2007-05-18 13:21:47.199478000 +0200 +@@ -327,6 +327,7 @@ + # if HANDLE_MULTIBYTE + if (__builtin_expect (MB_CUR_MAX, 1) != 1) + { ++ const char *orig_pattern = pattern; + mbstate_t ps; + size_t n; + const char *p; +@@ -378,10 +379,8 @@ + wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); + n = mbsrtowcs (wstring, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong. Fall back to single byte matching. */ ++ goto try_singlebyte; + if (p) + memset (&ps, '\0', sizeof (ps)); + } +@@ -389,10 +388,8 @@ + { + n = mbsrtowcs (NULL, &string, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong. Fall back to single byte matching. */ ++ goto try_singlebyte; + wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); + assert (mbsinit (&ps)); + (void) mbsrtowcs (wstring, &string, n + 1, &ps); +@@ -400,6 +397,9 @@ + + return internal_fnwmatch (wpattern, wstring, wstring + n, + flags & FNM_PERIOD, flags, NULL); ++ ++ try_singlebyte: ++ pattern = orig_pattern; + } + # endif /* mbstate_t and mbsrtowcs or _LIBC. */ + diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index e2da5c0..6231d5a 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -1,33 +1,40 @@ -Index: glibc-2.24/intl/loadmsgcat.c +Index: intl/loadmsgcat.c =================================================================== ---- glibc-2.24.orig/intl/loadmsgcat.c -+++ glibc-2.24/intl/loadmsgcat.c -@@ -829,8 +829,47 @@ _nl_load_domain (struct loaded_l10nfile +RCS file: /cvs/glibc/libc/intl/loadmsgcat.c,v +retrieving revision 1.57 +diff -u -p -r1.57 loadmsgcat.c +--- intl/loadmsgcat.c 28 Jul 2007 20:34:43 -0000 1.57 ++++ intl/loadmsgcat.c 31 Aug 2007 15:36:40 -0000 +@@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind if (domain_file->filename == NULL) goto out; - /* Try to open the addressed file. */ -- fd = open (domain_file->filename, O_RDONLY | O_BINARY); +- fd = open (domain_file->filename, O_RDONLY); + /* Replace /locale/ with /usr/share/locale-langpack/ */ + const char *langpackdir = "/usr/share/locale-langpack/"; + char *filename_langpack = malloc (strlen (domain_file->filename) + -+ strlen (langpackdir)); ++ strlen (langpackdir)); + if (filename_langpack != NULL) + { + char *p = strstr (domain_file->filename, "/locale/"); + if (p != NULL) + { + strcpy (filename_langpack, langpackdir); -+ strcpy (&filename_langpack[strlen (langpackdir)], p + 8); -+ fd = open (filename_langpack, O_RDONLY | O_BINARY); ++ strcpy (&filename_langpack[strlen (langpackdir)], ++ (p+8)); ++ if ((fd = open (filename_langpack, O_RDONLY)) == -1) ++ fd = open (domain_file->filename, O_RDONLY); + } ++ else ++ /* Try to open the addressed file. */ ++ fd = open (domain_file->filename, O_RDONLY); + + free (filename_langpack); + } -+ -+ if (fd == -1) ++ else + /* Try to open the addressed file. */ -+ fd = open (domain_file->filename, O_RDONLY | O_BINARY); ++ fd = open (domain_file->filename, O_RDONLY); + + if (fd == -1) + { @@ -41,8 +48,9 @@ Index: glibc-2.24/intl/loadmsgcat.c + if (p != NULL) + { + strcpy (filename_bundle, bundle_dir); -+ strcpy (&filename_bundle[strlen (bundle_dir)], p + 8); -+ fd = open (filename_bundle, O_RDONLY | O_BINARY); ++ strcpy (&filename_bundle[strlen (bundle_dir)], ++ (p+8)); ++ fd = open (filename_bundle, O_RDONLY); + } + + free (filename_bundle); diff --git a/glibc-2.3.90-ld.so-madvise.diff b/glibc-2.3.90-ld.so-madvise.diff new file mode 100644 index 0000000..9f661e9 --- /dev/null +++ b/glibc-2.3.90-ld.so-madvise.diff @@ -0,0 +1,76 @@ +Index: elf/dl-load.c +=================================================================== +--- elf/dl-load.c.orig ++++ elf/dl-load.c +@@ -1219,6 +1219,9 @@ cannot allocate TLS data structures for + goto call_lose_errno; + } + ++ if (GLRO(dl_madvise)) ++ posix_fadvise (fd, c->mapoff, maplength, POSIX_FADV_WILLNEED); ++ + l->l_map_end = l->l_map_start + maplength; + l->l_addr = l->l_map_start - c->mapstart; + +Index: elf/dl-support.c +=================================================================== +--- elf/dl-support.c.orig ++++ elf/dl-support.c +@@ -41,6 +41,7 @@ size_t _dl_platformlen; + + int _dl_debug_mask; + int _dl_lazy; ++int _dl_madvise; + ElfW(Addr) _dl_use_load_bias = -2; + int _dl_dynamic_weak; + +@@ -240,6 +241,8 @@ _dl_non_dynamic_init (void) + + _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0'; + ++ _dl_madvise = *(getenv ("LD_NOMADVISE") ?: "") == '\0'; ++ + _dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0'; + + _dl_dynamic_weak = *(getenv ("LD_DYNAMIC_WEAK") ?: "") == '\0'; +Index: elf/rtld.c +=================================================================== +--- elf/rtld.c.orig ++++ elf/rtld.c +@@ -152,6 +152,7 @@ struct rtld_global_ro _rtld_global_ro at + ._dl_lazy = 1, + ._dl_fpu_control = _FPU_DEFAULT, + ._dl_pointer_guard = 1, ++ ._dl_madvise = 1, + + /* Function pointers. */ + ._dl_debug_printf = _dl_debug_printf, +@@ -2619,6 +2620,14 @@ process_envvars (enum mode *modep) + break; + + case 9: ++ /* Test whether we should not advise the kernel ++ about memory usage. */ ++ if (memcmp (envline, "NOMADVISE", 9) == 0) ++ { ++ GLRO(dl_madvise) = envline[10] == '\0'; ++ break; ++ } ++ + /* Test whether we want to see the content of the auxiliary + array passed up from the kernel. */ + if (!INTUSE(__libc_enable_secure) +Index: sysdeps/generic/ldsodefs.h +=================================================================== +--- sysdeps/generic/ldsodefs.h.orig ++++ sysdeps/generic/ldsodefs.h +@@ -567,6 +567,9 @@ struct rtld_global_ro + /* Do we do lazy relocations? */ + EXTERN int _dl_lazy; + ++ /* Should we advise kernel about memory usage? */ ++ EXTERN int _dl_madvise; ++ + /* Nonzero if runtime lookups should not update the .got/.plt. */ + EXTERN int _dl_bind_not; + diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index b7102c9..f4cedd4 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,8 +1,6 @@ -Index: glibc-2.20/elf/rtld.c -=================================================================== ---- glibc-2.20.orig/elf/rtld.c -+++ glibc-2.20/elf/rtld.c -@@ -1591,6 +1591,52 @@ ERROR: ld.so: object '%s' cannot be load +--- elf/rtld.c ++++ elf/rtld.c 2005/04/12 10:05:38 +@@ -1672,6 +1672,53 @@ } } @@ -18,31 +16,32 @@ Index: glibc-2.20/elf/rtld.c + */ +#define LIB_NOVERSION "/lib/obsolete/noversion/libNoVersion.so.1" + -+ if (__glibc_unlikely (main_map->l_info[DT_NUM + DT_THISPROCNUM ++ if (__builtin_expect (main_map->l_info[DT_NUM + DT_THISPROCNUM + + DT_VERSIONTAGIDX (DT_VERNEED)] -+ == NULL) -+ && (main_map->l_info[DT_DEBUG] != 0 ++ == NULL, 0) ++ && (main_map->l_info[DT_DEBUG] + || !(GLRO(dl_debug_mask) & DL_DEBUG_PRELINK))) + { -+ struct stat64 test_st; ++ struct stat test_st; + int test_fd; -+ bool can_load; ++ int can_load; + + HP_TIMING_NOW (start); + -+ can_load = true; ++ can_load = 1; + test_fd = __open (LIB_NOVERSION, O_RDONLY); -+ if (test_fd < 0) -+ can_load = false; -+ else -+ { -+ if (__fxstat64 (_STAT_VER, test_fd, &test_st) < 0 -+ || test_st.st_size == 0) -+ can_load = false; -+ __close(test_fd); ++ if (test_fd < 0) { ++ can_load = 0; ++ } else { ++ if (__fxstat (_STAT_VER, test_fd, &test_st) < 0 || test_st.st_size == 0) { ++ can_load = 0; + } ++ } + -+ if (can_load) ++ if (test_fd >= 0) /* open did no fail.. */ ++ __close(test_fd); /* avoid fd leaks */ ++ ++ if (can_load != 0) + npreloads += do_preload (LIB_NOVERSION, main_map, + "nonversioned binary"); + @@ -52,6 +51,6 @@ Index: glibc-2.20/elf/rtld.c + } +#endif + - if (__glibc_unlikely (*first_preload != NULL)) + if (__builtin_expect (*first_preload != NULL, 0)) { /* Set up PRELOADS with a vector of the preloaded libraries. */ diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 new file mode 100644 index 0000000..710a1d4 --- /dev/null +++ b/glibc-2.3.locales.diff.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b02688b3e712aac40c8ef77b2ef2e2996abe86350d1827458571ba2cbeeed08 +size 330830 diff --git a/glibc-2.4-china.diff b/glibc-2.4-china.diff index e6361d3..ef7f0c9 100644 --- a/glibc-2.4-china.diff +++ b/glibc-2.4-china.diff @@ -1,17 +1,15 @@ -Index: glibc-2.17.90/localedata/locales/zh_TW -=================================================================== ---- glibc-2.17.90.orig/localedata/locales/zh_TW -+++ glibc-2.17.90/localedata/locales/zh_TW -@@ -8,7 +8,7 @@ - % exempt you from the conditions of the license if your use would - % otherwise be governed by that license. - +--- localedata/locales/zh_TW ++++ localedata/locales/zh_TW 2006/04/24 09:55:16 +@@ -1,7 +1,7 @@ + comment_char % + escape_char / + % -% Chinese language locale for Taiwan R.O.C. +% Chinese language locale for Taiwan % charmap: BIG5-CP950 % % Original Author: -@@ -24,7 +24,7 @@ escape_char / +@@ -17,7 +17,7 @@ % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf LC_IDENTIFICATION @@ -20,3 +18,12 @@ Index: glibc-2.17.90/localedata/locales/zh_TW source "" address "" contact "" +@@ -25,7 +25,7 @@ + tel "" + fax "" + language "Chinese" +-territory "Taiwan R.O.C." ++territory "Taiwan" + revision "0.2" + date "2000-08-02" + % diff --git a/glibc-2.4.90-mdns-resolver.diff b/glibc-2.4.90-mdns-resolver.diff new file mode 100644 index 0000000..106d9b5 --- /dev/null +++ b/glibc-2.4.90-mdns-resolver.diff @@ -0,0 +1,456 @@ +--- resolv/res_hconf.c ++++ resolv/res_hconf.c 2006/06/06 16:08:34 +@@ -58,6 +58,7 @@ + #define ENV_TRIM_ADD "RESOLV_ADD_TRIM_DOMAINS" + #define ENV_MULTI "RESOLV_MULTI" + #define ENV_REORDER "RESOLV_REORDER" ++#define ENV_MDNS "RESOLV_MDNS" + + enum parse_cbs + { +@@ -80,7 +81,8 @@ + {"multi", CB_arg_bool, HCONF_FLAG_MULTI}, + {"nospoof", CB_arg_bool, HCONF_FLAG_SPOOF}, + {"spoofalert", CB_arg_bool, HCONF_FLAG_SPOOFALERT}, +- {"reorder", CB_arg_bool, HCONF_FLAG_REORDER} ++ {"reorder", CB_arg_bool, HCONF_FLAG_REORDER}, ++ {"mdns", CB_arg_bool, HCONF_FLAG_MDNS} + }; + + /* Structure containing the state. */ +@@ -304,6 +306,9 @@ + + memset (&_res_hconf, '\0', sizeof (_res_hconf)); + ++ /* Default for mdns is "on". */ ++ _res_hconf.flags |= HCONF_FLAG_MDNS; ++ + hconf_name = getenv (ENV_HOSTCONF); + if (hconf_name == NULL) + hconf_name = _PATH_HOSTCONF; +@@ -346,6 +351,10 @@ + arg_trimdomain_list (ENV_TRIM_OVERR, 1, envval); + } + ++ envval = getenv (ENV_MDNS); ++ if (envval) ++ arg_bool (ENV_MDNS, 1, envval, HCONF_FLAG_MDNS); ++ + _res_hconf.initialized = 1; + } + +--- resolv/res_hconf.h ++++ resolv/res_hconf.h 2006/06/06 16:06:46 +@@ -37,6 +37,7 @@ + # define HCONF_FLAG_SPOOFALERT (1 << 2) /* syslog warning of spoofed */ + # define HCONF_FLAG_REORDER (1 << 3) /* list best address first */ + # define HCONF_FLAG_MULTI (1 << 4) /* see comments for gethtbyname() */ ++# define HCONF_FLAG_MDNS (1 << 5) /* Disable MDNS support */ + }; + extern struct hconf _res_hconf; + +--- resolv/res_query.c ++++ resolv/res_query.c 2006/06/06 16:06:46 +@@ -83,6 +83,8 @@ + #include + #include + ++#include "res_hconf.h" ++ + /* Options. Leave them on. */ + /* #undef DEBUG */ + +@@ -286,6 +288,13 @@ + *domain && !done; + domain++) { + ++ if ((_res_hconf.flags & HCONF_FLAG_MDNS) != 0) { ++ /* don't add "local" domain if query contains a dot */ ++ if (dots && (!__strcasecmp(*domain, "local") || ++ !__strcasecmp(*domain, "local."))) ++ continue; ++ } ++ + if (domain[0][0] == '\0' || + (domain[0][0] == '.' && domain[0][1] == '\0')) + root_on_list++; +--- resolv/res_send.c ++++ resolv/res_send.c 2006/06/06 16:06:46 +@@ -85,6 +85,9 @@ + #include + #include + #include ++#if defined(_LIBC) && defined(linux) ++#include ++#endif + + #include + #include +@@ -96,6 +99,8 @@ + #include + #include + ++#include "res_hconf.h" ++ + #if PACKETSZ > 65536 + #define MAXPACKET PACKETSZ + #else +@@ -180,6 +185,9 @@ + static int send_dg(res_state, const u_char *, int, + u_char **, int *, int *, int, + int *, int *, u_char **); ++static int send_dg_mdns(res_state, const u_char *, int, ++ u_char **, int *, int *, struct sockaddr_in6 *, ++ int *, int *, u_char **); + #ifdef DEBUG + static void Aerror(const res_state, FILE *, const char *, int, + const struct sockaddr *); +@@ -337,6 +345,35 @@ + u_char *ans, int anssiz, u_char **ansp) + { + int gotsomewhere, terrno, try, v_circuit, resplen, ns, n; ++ int usemdns; ++ HEADER *qhp = (HEADER *) buf; ++ ++ usemdns = 0; ++ if ((_res_hconf.flags & HCONF_FLAG_MDNS) != 0 && ++ qhp->qr == 0 && qhp->opcode == QUERY && qhp->qdcount == htons(1)) { ++ /* got one simple query */ ++ const u_char *bp, *be; ++ be = buf + buflen; ++ for (bp = buf + NS_HFIXEDSZ; bp < be; ) ++ if ((*bp & NS_CMPRSFLGS) != 0) ++ break; ++ else if (*bp) { ++ if (*bp == 5 && !strncasecmp(bp, "\005local\000", 7)) { ++ usemdns = 1; ++ break; ++ } ++ if (*bp == 3 && !strncasecmp(bp, "\003254\003169\007in-addr\004arpa\000", 22)) { ++ usemdns = 1; ++ break; ++ } ++ if (*bp == 1 && !strncasecmp(bp, "\0010\0018\001e\001f\003ip6\004arpa\000", 18)) { ++ usemdns = 2; ++ break; ++ } ++ bp += *bp + 1; ++ } else ++ break; ++ } + + if (statp->nscount == 0) { + __set_errno (ESRCH); +@@ -470,9 +507,24 @@ + * Send request, RETRY times, or until successful. + */ + for (try = 0; try < statp->retry; try++) { +- for (ns = 0; ns < MAXNS; ns++) ++ for (ns = 0; ns < (usemdns ? 1 : MAXNS); ns++) + { + struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; ++ if (usemdns == 1) { ++ static struct sockaddr_in mdns4; ++ mdns4.sin_family = AF_INET; ++ mdns4.sin_port = htons(5353); ++ mdns4.sin_addr.s_addr = htonl(0xe00000fb); ++ nsap = (struct sockaddr_in6 *)&mdns4; ++ } ++ if (usemdns == 2) { ++ static struct sockaddr_in6 mdns6; ++ mdns6.sin6_family = AF_INET6; ++ mdns6.sin6_port = htons(5353); ++ mdns6.sin6_addr.s6_addr32[0] = htonl(0xff020000); ++ mdns6.sin6_addr.s6_addr32[3] = htonl(0x000000fb); ++ nsap = &mdns6; ++ } + + if (nsap == NULL) + goto next_ns; +@@ -530,8 +582,11 @@ + resplen = n; + } else { + /* Use datagrams. */ +- n = send_dg(statp, buf, buflen, &ans, &anssiz, &terrno, +- ns, &v_circuit, &gotsomewhere, ansp); ++ if (usemdns) ++ n = send_dg_mdns(statp, buf, buflen, &ans, &anssiz, &terrno, nsap, &v_circuit, &gotsomewhere, ansp); ++ else ++ n = send_dg(statp, buf, buflen, &ans, &anssiz, &terrno, ++ ns, &v_circuit, &gotsomewhere, ansp); + if (n < 0) + return (-1); + if (n == 0) +@@ -598,8 +653,15 @@ + if (!v_circuit) { + if (!gotsomewhere) + __set_errno (ECONNREFUSED); /* no nameservers found */ +- else ++ else if (!usemdns) { + __set_errno (ETIMEDOUT); /* no answer obtained */ ++ } else { ++ /* treat timeout as host not found */ ++ HEADER *anhp = (HEADER *) ans; ++ memset(ans, 0, HFIXEDSZ); ++ anhp->rcode = NXDOMAIN; ++ return HFIXEDSZ; ++ } + } else + __set_errno (terrno); + return (-1); +@@ -1045,6 +1107,255 @@ + } + } + ++static int ++send_dg_mdns(res_state statp, ++ const u_char *buf, int buflen, u_char **ansp, int *anssizp, ++ int *terrno, struct sockaddr_in6 *nsap, int *v_circuit, int *gotsomewhere, u_char **anscp) ++{ ++ const HEADER *hp = (HEADER *) buf; ++ u_char *ans = *ansp; ++ int anssiz = *anssizp; ++ HEADER *anhp = (HEADER *) ans; ++ struct timespec now, timeout, finish; ++ struct pollfd pfd[32]; ++ int ptimeout; ++ int fromlen, resplen, seconds, n, s; ++ int on = 1; ++ struct msghdr mhdr; ++ struct iovec iov; ++ u_char cmsgbuf[CMSG_SPACE(sizeof(int))]; ++ struct cmsghdr *cmsg; ++ int ttl; ++ struct ifconf ifconf; ++ struct ifreq ifreq[64]; ++ int ifreqn; ++ int i, j; ++ int ifidx[32], ifidxn; ++ struct ip_mreqn mreqn; ++ ++ s = socket(nsap->sin6_family == AF_INET ? PF_INET : PF_INET6, SOCK_DGRAM, 0); ++ if (s < 0) { ++ *terrno = errno; ++ Perror(statp, stderr, "socket(dg)", errno); ++ return (-1); ++ } ++ ifconf.ifc_len = sizeof(ifreq); ++ ifconf.ifc_req = ifreq; ++ ifidxn = 0; ++ if (ioctl(s, SIOCGIFCONF, &ifconf) == 0) { ++ ifreqn = ifconf.ifc_len / sizeof(*ifreq); ++ for (i = 0 ; i < ifreqn; i++) { ++ if (ioctl(s, SIOCGIFFLAGS, ifreq + i)) ++ continue; ++ if (!(ifreq[i].ifr_flags & IFF_MULTICAST)) ++ continue; ++ if (ioctl(s, SIOCGIFINDEX, ifreq + i)) ++ continue; ++ for (j = 0; j < ifidxn; j++) ++ if (ifidx[j] == ifreq[i].ifr_ifindex) ++ break; ++ if (j < ifidxn) ++ continue; ++ ifidx[ifidxn++] = ifreq[i].ifr_ifindex; ++ if (ifidxn == sizeof(ifidx)/sizeof(*ifidx)) ++ break; ++ } ++ } ++ j = 0; ++ for (i = 0; i < (ifidxn ? ifidxn : 1); i++) { ++ if (i) { ++ s = socket(nsap->sin6_family == AF_INET ? PF_INET : PF_INET6, SOCK_DGRAM, 0); ++ if (!s) ++ continue; ++ } ++ if (setsockopt(s, SOL_IP, IP_RECVTTL, &on, sizeof(on))) { ++ *terrno = errno; ++ Perror(statp, stderr, "IP_RECVTTL(dg)", errno); ++ close(s); ++ continue; ++ } ++ if (ifidxn) { ++ memset(&mreqn, 0, sizeof(mreqn)); ++ mreqn.imr_ifindex = ifidx[i]; ++ if (setsockopt(s, SOL_IP, IP_MULTICAST_IF, &mreqn, sizeof(mreqn))) { ++ *terrno = errno; ++ Perror(statp, stderr, "IP_MULTICAST_IF", errno); ++ close(s); ++ continue; ++ } ++ } ++ if (sendto(s, (char*)buf, buflen, 0, ++ (struct sockaddr *)nsap, sizeof *nsap) != buflen) { ++ Aerror(statp, stderr, "sendto", errno, *(struct sockaddr_in *)nsap); ++ close(s); ++ continue; ++ } ++ pfd[j].fd = s; ++ pfd[j].events = POLLIN; ++ j++; ++ } ++ /* ++ * Wait for reply. ++ */ ++ seconds = statp->retrans; ++ if (seconds <= 0) ++ seconds = 1; ++ evNowTime(&now); ++ evConsTime(&timeout, seconds, 0); ++ evAddTime(&finish, &now, &timeout); ++ wait: ++ if (j == 0) { ++ return (0); ++ } ++ ++ /* Convert struct timespec in milliseconds. */ ++ ptimeout = timeout.tv_sec * 1000 + timeout.tv_nsec / 1000000; ++ n = __poll (pfd, j, ptimeout); ++ if (n == 0) { ++ Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n")); ++ *gotsomewhere = 1; ++ for (i = 0; i < j; i++) ++ close(pfd[i].fd); ++ return (0); ++ } ++ if (n < 0) { ++ if (errno == EINTR) { ++ evNowTime(&now); ++ if (evCmpTime(finish, now) > 0) { ++ evSubTime(&timeout, &finish, &now); ++ goto wait; ++ } ++ } ++ Perror(statp, stderr, "select", errno); ++ for (i = 0; i < j; i++) ++ close(pfd[i].fd); ++ res_nclose(statp); ++ return (0); ++ } ++ for (i = 0; i < j - 1; i++) ++ if (pfd[i].revents == POLLIN) ++ break; ++ s = pfd[i].fd; ++ __set_errno (0); ++ fromlen = sizeof(struct sockaddr_in6); ++ if (anssiz < MAXPACKET ++ && anscp ++ && (ioctl (s, FIONREAD, &resplen) < 0 ++ || anssiz < resplen)) { ++ ans = malloc (MAXPACKET); ++ if (ans == NULL) ++ ans = *ansp; ++ else { ++ anssiz = MAXPACKET; ++ *anssizp = MAXPACKET; ++ *ansp = ans; ++ *anscp = ans; ++ anhp = (HEADER *) ans; ++ } ++ } ++ iov.iov_base = ans; ++ iov.iov_len = anssiz; ++ mhdr.msg_name = 0; ++ mhdr.msg_namelen = 0; ++ mhdr.msg_iov = &iov; ++ mhdr.msg_iovlen = 1; ++ mhdr.msg_control = cmsgbuf; ++ mhdr.msg_controllen = sizeof(cmsgbuf); ++ mhdr.msg_flags = 0; ++ resplen = recvmsg(s, &mhdr, 0); ++ if (resplen <= 0) { ++ if (errno == EAGAIN) ++ goto wait; ++ Perror(statp, stderr, "recvfrom", errno); ++wait2: ++ close(s); ++ if (i < j - 1) ++ memmove(pfd + i, pfd + i + 1, sizeof(*pfd) * (j - i - 1)); ++ j--; ++ goto wait; ++ } ++ cmsg = CMSG_FIRSTHDR(&mhdr); ++ for (cmsg = CMSG_FIRSTHDR(&mhdr); cmsg; CMSG_NXTHDR(&mhdr, cmsg)) ++ if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_TTL) ++ break; ++ if (!cmsg) { ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; no TTL found\n")); ++ goto wait2; ++ } ++ ttl = *(int *)CMSG_DATA(cmsg); ++ if (ttl != 255) { ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; answer with bad TTL: %d \n", ttl)); ++ goto wait; ++ } ++ *gotsomewhere = 1; ++ if (resplen < HFIXEDSZ) { ++ /* ++ * Undersized message. ++ */ ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; undersized: %d\n", ++ resplen)); ++ *terrno = EMSGSIZE; ++ goto wait; ++ } ++ if (hp->id != anhp->id) { ++ /* ++ * response from old query, ignore it. ++ * XXX - potential security hazard could ++ * be detected here. ++ */ ++ DprintQ((statp->options & RES_DEBUG) || ++ (statp->pfcode & RES_PRF_REPLY), ++ (stdout, ";; old answer:\n"), ++ ans, (resplen > anssiz) ? anssiz : resplen); ++ goto wait; ++ } ++ if (!(statp->options & RES_INSECURE2) && ++ !res_queriesmatch(buf, buf + buflen, ++ ans, ans + anssiz)) { ++ /* ++ * response contains wrong query? ignore it. ++ * XXX - potential security hazard could ++ * be detected here. ++ */ ++ DprintQ((statp->options & RES_DEBUG) || ++ (statp->pfcode & RES_PRF_REPLY), ++ (stdout, ";; wrong query name:\n"), ++ ans, (resplen > anssiz) ? anssiz : resplen); ++ goto wait; ++ } ++ if (anhp->rcode == SERVFAIL || ++ anhp->rcode == NOTIMP || ++ anhp->rcode == REFUSED) { ++ DprintQ(statp->options & RES_DEBUG, ++ (stdout, "server rejected query:\n"), ++ ans, (resplen > anssiz) ? anssiz : resplen); ++ goto wait; ++ } ++ for (i = 0; i < j; i++) ++ close(pfd[i].fd); ++#if 0 ++ if (!(statp->options & RES_IGNTC) && anhp->tc) { ++ /* ++ * To get the rest of answer, ++ * use TCP with same server. ++ */ ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; truncated answer\n")); ++ *v_circuit = 1; ++ res_nclose(statp); ++ return (1); ++ } ++#endif ++ /* ++ * All is well, or the error is fatal. Signal that the ++ * next nameserver ought not be tried. ++ */ ++ return (resplen); ++} ++ + #ifdef DEBUG + static void + Aerror(const res_state statp, FILE *file, const char *string, int error, diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff index 64884ea..ddac96a 100644 --- a/glibc-2.4.90-no_NO.diff +++ b/glibc-2.4.90-no_NO.diff @@ -1,8 +1,6 @@ -Index: glibc-2.18.90/intl/locale.alias -=================================================================== ---- glibc-2.18.90.orig/intl/locale.alias -+++ glibc-2.18.90/intl/locale.alias -@@ -56,8 +56,6 @@ korean ko_KR.eucKR +--- intl/locale.alias ++++ intl/locale.alias 2006/06/03 15:26:29 +@@ -58,8 +58,6 @@ korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR lithuanian lt_LT.ISO-8859-13 @@ -11,23 +9,8 @@ Index: glibc-2.18.90/intl/locale.alias norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 -Index: glibc-2.18.90/localedata/SUPPORTED -=================================================================== ---- glibc-2.18.90.orig/localedata/SUPPORTED -+++ glibc-2.18.90/localedata/SUPPORTED -@@ -331,6 +331,8 @@ nl_NL/ISO-8859-1 \ - nl_NL@euro/ISO-8859-15 \ - nn_NO.UTF-8/UTF-8 \ - nn_NO/ISO-8859-1 \ -+no_NO.UTF-8/UTF-8 \ -+no_NO/ISO-8859-1 \ - nr_ZA/UTF-8 \ - nso_ZA/UTF-8 \ - oc_FR.UTF-8/UTF-8 \ -Index: glibc-2.18.90/localedata/locales/no_NO -=================================================================== ---- /dev/null -+++ glibc-2.18.90/localedata/locales/no_NO +--- localedata/locales/no_NO ++++ localedata/locales/no_NO 2006/06/03 15:26:29 @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -98,3 +81,14 @@ Index: glibc-2.18.90/localedata/locales/no_NO +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS +--- localedata/SUPPORTED ++++ localedata/SUPPORTED 2006/06/03 15:27:01 +@@ -274,6 +274,8 @@ + nl_NL@euro/ISO-8859-15 \ + nn_NO.UTF-8/UTF-8 \ + nn_NO/ISO-8859-1 \ ++no_NO.UTF-8/UTF-8 \ ++no_NO/ISO-8859-1 \ + nr_ZA/UTF-8 \ + nso_ZA/UTF-8 \ + oc_FR.UTF-8/UTF-8 \ diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff new file mode 100644 index 0000000..115e684 --- /dev/null +++ b/glibc-2.4.90-nscd.diff @@ -0,0 +1,141 @@ +Index: nscd/cache.c +=================================================================== +--- nscd/cache.c.orig ++++ nscd/cache.c +@@ -277,28 +277,31 @@ prune_cache (struct database_dyn *table, + if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) + { + struct stat64 st; ++ time_t mtime; + +- if (stat64 (table->filename, &st) < 0) ++ mtime = stat64 (table->filename, &st) ? LONG_MAX : st.st_mtime; ++ if (mtime != table->file_mtime) + { +- char buf[128]; +- /* We cannot stat() the file, disable file checking if the +- file does not exist. */ +- dbg_log (_("cannot stat() file `%s': %s"), +- table->filename, strerror_r (errno, buf, sizeof (buf))); +- if (errno == ENOENT) +- table->check_file = 0; ++ /* The file changed. Invalidate all entries. */ ++ now = LONG_MAX; ++ table->file_mtime = mtime; + } +- else ++ if (*table->filename2) + { +- if (st.st_mtime != table->file_mtime) ++ mtime = stat64 (table->filename2, &st) ? LONG_MAX : st.st_mtime; ++ if (mtime != table->file_mtime2) + { + /* The file changed. Invalidate all entries. */ + now = LONG_MAX; +- table->file_mtime = st.st_mtime; ++ table->file_mtime2 = mtime; + } + } + } + ++ /* now == 0 means just check for changed files */ ++ if (now == (time_t)0) ++ return; ++ + /* We run through the table and find values which are not valid anymore. + + Note that for the initial step, finding the entries to be removed, +Index: nscd/connections.c +=================================================================== +--- nscd/connections.c.orig ++++ nscd/connections.c +@@ -118,6 +118,7 @@ struct database_dyn dbs[lastdb] = + .suggested_module = DEFAULT_SUGGESTED_MODULE, + .reset_res = 0, + .filename = "/etc/passwd", ++ .filename2 = "", + .db_filename = _PATH_NSCD_PASSWD_DB, + .disabled_iov = &pwd_iov_disabled, + .postimeout = 3600, +@@ -138,6 +139,7 @@ struct database_dyn dbs[lastdb] = + .suggested_module = DEFAULT_SUGGESTED_MODULE, + .reset_res = 0, + .filename = "/etc/group", ++ .filename2 = "", + .db_filename = _PATH_NSCD_GROUP_DB, + .disabled_iov = &grp_iov_disabled, + .postimeout = 3600, +@@ -158,6 +160,7 @@ struct database_dyn dbs[lastdb] = + .suggested_module = DEFAULT_SUGGESTED_MODULE, + .reset_res = 1, + .filename = "/etc/hosts", ++ .filename2 = "/etc/resolv.conf", + .db_filename = _PATH_NSCD_HOSTS_DB, + .disabled_iov = &hst_iov_disabled, + .postimeout = 3600, +@@ -852,15 +855,9 @@ cannot set socket to close on exec: %s; + /* We need the modification date of the file. */ + struct stat64 st; + +- if (stat64 (dbs[cnt].filename, &st) < 0) +- { +- /* We cannot stat() the file, disable file checking. */ +- dbg_log (_("cannot stat() file `%s': %s"), +- dbs[cnt].filename, strerror (errno)); +- dbs[cnt].check_file = 0; +- } +- else +- dbs[cnt].file_mtime = st.st_mtime; ++ dbs[cnt].file_mtime = stat64 (dbs[cnt].filename, &st) ? LONG_MAX : st.st_mtime; ++ if (*dbs[cnt].filename2) ++ dbs[cnt].file_mtime2 = stat64 (dbs[cnt].filename2, &st) ? LONG_MAX : st.st_mtime; + } + } + +Index: nscd/nscd.conf +=================================================================== +--- nscd/nscd.conf.orig ++++ nscd/nscd.conf +@@ -61,11 +61,11 @@ + auto-propagate group yes + + enable-cache hosts yes +- positive-time-to-live hosts 3600 +- negative-time-to-live hosts 20 ++ positive-time-to-live hosts 600 ++ negative-time-to-live hosts 0 + suggested-size hosts 211 + check-files hosts yes +- persistent hosts yes ++ persistent hosts no + shared hosts yes + max-db-size hosts 33554432 + +Index: nscd/nscd.h +=================================================================== +--- nscd/nscd.h.orig ++++ nscd/nscd.h +@@ -80,8 +80,10 @@ struct database_dyn + int propagate; + int reset_res; + const char filename[16]; ++ const char filename2[17]; + const char *db_filename; + time_t file_mtime; ++ time_t file_mtime2; + size_t suggested_module; + size_t max_db_size; + +Index: nscd/nscd_stat.c +=================================================================== +--- nscd/nscd_stat.c.orig ++++ nscd/nscd_stat.c +@@ -302,7 +302,7 @@ receive_print_stats (void) + data.dbs[i].maxnsearched, + data.dbs[i].rdlockdelayed, + data.dbs[i].wrlockdelayed, +- data.dbs[i].addfailed, check_file, dbnames[i]); ++ data.dbs[i].addfailed, check_file, (strcmp(dbnames[i], "hosts") ? dbnames[i] : "{hosts,resolv.conf}")); + } + + if (selinux_enabled) diff --git a/glibc-2.4.90-revert-only-euro.diff b/glibc-2.4.90-revert-only-euro.diff new file mode 100644 index 0000000..2cddb1a --- /dev/null +++ b/glibc-2.4.90-revert-only-euro.diff @@ -0,0 +1,93 @@ +--- locale/iso-4217.def ++++ locale/iso-4217.def 2006/06/03 15:19:50 +@@ -8,6 +8,7 @@ + * + * !!! The list has to be sorted !!! + */ ++DEFINE_INT_CURR("ADP") /* Andorran Peseta -> EUR */ + DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */ + DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */ + DEFINE_INT_CURR("ALL") /* Albanian Lek */ +@@ -15,12 +16,14 @@ + DEFINE_INT_CURR("ANG") /* Netherlands Antilles */ + DEFINE_INT_CURR("AOA") /* Angolan Kwanza */ + DEFINE_INT_CURR("ARS") /* Argentine Peso */ ++DEFINE_INT_CURR("ATS") /* Austrian Schilling -> EUR */ + DEFINE_INT_CURR("AUD") /* Australian Dollar */ + DEFINE_INT_CURR("AWG") /* Aruba Guilder */ + DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */ + DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */ + DEFINE_INT_CURR("BBD") /* Barbados Dollar */ + DEFINE_INT_CURR("BDT") /* Bangladesh Taka */ ++DEFINE_INT_CURR("BEF") /* Belgian Franc -> EUR */ + DEFINE_INT_CURR("BGN") /* Bulgarian Lev */ + DEFINE_INT_CURR("BHD") /* Bahraini Dinar */ + DEFINE_INT_CURR("BIF") /* Burundi Franc */ +@@ -45,6 +48,7 @@ + DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */ + DEFINE_INT_CURR("CYP") /* Cypriot Pound */ + DEFINE_INT_CURR("CZK") /* Czech Koruna */ ++DEFINE_INT_CURR("DEM") /* German Mark -> EUR */ + DEFINE_INT_CURR("DJF") /* Djibouti Franc */ + DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */ + DEFINE_INT_CURR("DOP") /* Dominican Republic */ +@@ -52,16 +56,20 @@ + DEFINE_INT_CURR("EEK") /* Estonian Kroon */ + DEFINE_INT_CURR("EGP") /* Egyptian Pound */ + DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */ ++DEFINE_INT_CURR("ESP") /* Spanish Peseta -> EUR */ + DEFINE_INT_CURR("ETB") /* Ethiopian Birr */ + DEFINE_INT_CURR("EUR") /* European Union Euro */ ++DEFINE_INT_CURR("FIM") /* Finnish Markka -> EUR */ + DEFINE_INT_CURR("FJD") /* Fiji Dollar */ + DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */ ++DEFINE_INT_CURR("FRF") /* French Franc -> EUR */ + DEFINE_INT_CURR("GBP") /* British Pound */ + DEFINE_INT_CURR("GEL") /* Georgia Lari */ + DEFINE_INT_CURR("GHC") /* Ghana Cedi */ + DEFINE_INT_CURR("GIP") /* Gibraltar Pound */ + DEFINE_INT_CURR("GMD") /* Gambian Dalasi */ + DEFINE_INT_CURR("GNF") /* Guinea Franc */ ++DEFINE_INT_CURR("GRD") /* Greek Drachma -> EUR */ + DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */ + DEFINE_INT_CURR("GYD") /* Guyana Dollar */ + DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */ +@@ -70,12 +78,14 @@ + DEFINE_INT_CURR("HTG") /* Haiti Gourde */ + DEFINE_INT_CURR("HUF") /* Hungarian Forint */ + DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */ ++DEFINE_INT_CURR("IEP") /* Irish Pound -> EUR */ + DEFINE_INT_CURR("ILS") /* Israeli Shekel */ + DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */ + DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */ + DEFINE_INT_CURR("IQD") /* Iraqi Dinar */ + DEFINE_INT_CURR("IRR") /* Iranian Rial */ + DEFINE_INT_CURR("ISK") /* Iceland Krona */ ++DEFINE_INT_CURR("ITL") /* Italian Lira -> EUR */ + DEFINE_INT_CURR("JEP") /* Jersey Pound */ + DEFINE_INT_CURR("JMD") /* Jamaican Dollar */ + DEFINE_INT_CURR("JOD") /* Jordanian Dinar */ +@@ -95,6 +105,7 @@ + DEFINE_INT_CURR("LRD") /* Liberian Dollar */ + DEFINE_INT_CURR("LSL") /* Lesotho Maloti */ + DEFINE_INT_CURR("LTL") /* Lithuanian Litas */ ++DEFINE_INT_CURR("LUF") /* Luxembourg Franc -> EUR */ + DEFINE_INT_CURR("LVL") /* Latvia Lat */ + DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */ + DEFINE_INT_CURR("MAD") /* Moroccan Dirham */ +@@ -115,6 +126,7 @@ + DEFINE_INT_CURR("NAD") /* Namibia Dollar */ + DEFINE_INT_CURR("NGN") /* Nigeria Naira */ + DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */ ++DEFINE_INT_CURR("NLG") /* Netherlands Guilder -> EUR */ + DEFINE_INT_CURR("NOK") /* Norwegian Krone */ + DEFINE_INT_CURR("NPR") /* Nepalese Rupee */ + DEFINE_INT_CURR("NZD") /* New Zealand Dollar */ +@@ -125,6 +137,7 @@ + DEFINE_INT_CURR("PHP") /* Philippines Peso */ + DEFINE_INT_CURR("PKR") /* Pakistan Rupee */ + DEFINE_INT_CURR("PLN") /* Polish Zloty */ ++DEFINE_INT_CURR("PTE") /* Portugese Escudo -> EUR */ + DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ + DEFINE_INT_CURR("QAR") /* Qatar Rial */ + DEFINE_INT_CURR("ROL") /* Romanian Leu */ diff --git a/glibc-2.5-ppc-llrintl.diff b/glibc-2.5-ppc-llrintl.diff new file mode 100644 index 0000000..08fc47f --- /dev/null +++ b/glibc-2.5-ppc-llrintl.diff @@ -0,0 +1,18 @@ +diff -urN dummy-cpu/powerpc-cpu-v0.05/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S libc25/powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S +--- powerpc-cpu-v0.05/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S 2006-04-06 10:50:35.000000000 -0500 ++++ powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S 2007-03-14 14:55:19.113013712 -0500 +@@ -18,6 +18,7 @@ + 02110-1301 USA. */ + + #include ++#include + + /* long long int[r3, r4] __llrint (double x[fp1]) */ + ENTRY (__llrint) +@@ -41,3 +42,6 @@ + strong_alias (__llrint, __llrintl) + weak_alias (__llrint, llrintl) + #endif ++#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) ++compat_symbol (libm, __llrint, llrintl, GLIBC_2_1) ++#endif diff --git a/glibc-2.6-configure.diff b/glibc-2.6-configure.diff new file mode 100644 index 0000000..906b29e --- /dev/null +++ b/glibc-2.6-configure.diff @@ -0,0 +1,50 @@ +Index: configure.in +=================================================================== +RCS file: /cvs/glibc/libc/configure.in,v +retrieving revision 1.469 +diff -u -a -p -u -p -a -r1.469 configure.in +--- configure.in 20 Mar 2007 12:11:23 -0000 1.469 ++++ configure.in 13 Jul 2007 13:40:20 -0000 +@@ -1278,7 +1278,7 @@ EOF + fi + fi + fi +- rm -f conftest.[cs] ++ rm -f conftest* + ]) + if test $libc_cv_visibility_attribute != yes; then + AC_MSG_ERROR(compiler support for visibility attribute is required) +@@ -1294,7 +1294,7 @@ EOF + int bar (int x) { return x; } + EOF + libc_cv_broken_visibility_attribute=yes +- if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then ++ if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s >&AS_MESSAGE_LOG_FD); then + changequote(,)dnl + if grep '\.hidden[ _]foo' conftest.s >/dev/null; then + changequote([,])dnl +Index: configure +=================================================================== +RCS file: /cvs/glibc/libc/configure,v +retrieving revision 1.459 +diff -u -a -p -u -p -a -r1.459 configure +--- configure 20 Mar 2007 12:11:23 -0000 1.459 ++++ configure 13 Jul 2007 13:41:41 -0000 +@@ -5371,7 +5371,7 @@ EOF + fi + fi + fi +- rm -f conftest.cs ++ rm -f conftest* + + fi + echo "$as_me:$LINENO: result: $libc_cv_visibility_attribute" >&5 +@@ -5395,7 +5395,7 @@ else + int bar (int x) { return x; } + EOF + libc_cv_broken_visibility_attribute=yes +- if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s1>&5' ++ if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? diff --git a/glibc-2.8-clone.diff b/glibc-2.8-clone.diff new file mode 100644 index 0000000..ed8f017 --- /dev/null +++ b/glibc-2.8-clone.diff @@ -0,0 +1,50 @@ +Index: sysdeps/unix/sysv/linux/x86_64/clone.S +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/x86_64/clone.S,v +retrieving revision 1.7 +diff -u -r1.7 clone.S +--- sysdeps/unix/sysv/linux/x86_64/clone.S 3 Dec 2006 23:12:36 -0000 1.7 ++++ sysdeps/unix/sysv/linux/x86_64/clone.S 25 Jun 2008 11:26:15 -0000 +@@ -89,9 +89,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (rip); + /* Clear the frame pointer. The ABI suggests this be done, to mark + the outermost frame obviously. */ + xorl %ebp, %ebp +@@ -116,7 +113,6 @@ + /* Call exit with return value from function call. */ + movq %rax, %rdi + call HIDDEN_JUMPTARGET (_exit) +- cfi_endproc; + + cfi_startproc; + PSEUDO_END (BP_SYM (__clone)) +Index: sysdeps/unix/sysv/linux/i386/clone.S +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/clone.S,v +retrieving revision 1.27 +diff -u -r1.27 clone.S +--- sysdeps/unix/sysv/linux/i386/clone.S 3 Dec 2006 23:12:36 -0000 1.27 ++++ sysdeps/unix/sysv/linux/i386/clone.S 25 Jun 2008 11:26:16 -0000 +@@ -120,9 +120,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (eip); + /* Note: %esi is zero. */ + movl %esi,%ebp /* terminate the stack frame */ + #ifdef RESET_PID +@@ -155,7 +152,6 @@ + jmp L(haspid) + .previous + #endif +- cfi_endproc; + + cfi_startproc + PSEUDO_END (BP_SYM (__clone)) diff --git a/glibc-2.8-dlosinfo.diff b/glibc-2.8-dlosinfo.diff new file mode 100644 index 0000000..de6c06b --- /dev/null +++ b/glibc-2.8-dlosinfo.diff @@ -0,0 +1,14 @@ +Compilation fix + +diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h +index b13b6cf..8d22a69 100644 +--- sysdeps/unix/sysv/linux/dl-osinfo.h ++++ sysdeps/unix/sysv/linux/dl-osinfo.h +@@ -17,6 +17,7 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include + #include + #include + #include diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff new file mode 100644 index 0000000..a75a57e --- /dev/null +++ b/glibc-2.8-getconf.diff @@ -0,0 +1,14 @@ +This is required for too noisy rpmlint. + +--- posix/Makefile~ 2007-11-21 05:40:26.234633000 +0100 ++++ posix/Makefile 2007-11-21 05:41:02.043775000 +0100 +@@ -296,8 +296,7 @@ + $(addprefix $(..)./scripts/mkinstalldirs ,\ + $(filter-out $(wildcard $@),$@)) + while read spec; do \ +- ln -f $< $@/$$spec.new || $(INSTALL_PROGRAM) $< $@/$$spec.new; \ +- mv -f $@/$$spec.new $@/$$spec; \ ++ ln -s ../../bin/getconf $@/$$spec; \ + done < $(objpfx)getconf.speclist + + $(objpfx)getconf.speclist: $(objpfx)getconf diff --git a/glibc-2.8-revert-nscleanup.diff b/glibc-2.8-revert-nscleanup.diff new file mode 100644 index 0000000..1f6c319 --- /dev/null +++ b/glibc-2.8-revert-nscleanup.diff @@ -0,0 +1,824 @@ +diff --git a/inet/netinet/in.h b/inet/netinet/in.h +index e3446a9..1366198 100644 +--- inet/netinet/in.h ++++ inet/netinet/in.h +@@ -195,17 +195,13 @@ struct in6_addr + { + union + { +- uint8_t __u6_addr8[16]; +-#if defined __USE_MISC || defined __USE_GNU +- uint16_t __u6_addr16[8]; +- uint32_t __u6_addr32[4]; +-#endif +- } __in6_u; +-#define s6_addr __in6_u.__u6_addr8 +-#if defined __USE_MISC || defined __USE_GNU +-# define s6_addr16 __in6_u.__u6_addr16 +-# define s6_addr32 __in6_u.__u6_addr32 +-#endif ++ uint8_t u6_addr8[16]; ++ uint16_t u6_addr16[8]; ++ uint32_t u6_addr32[4]; ++ } in6_u; ++#define s6_addr in6_u.u6_addr8 ++#define s6_addr16 in6_u.u6_addr16 ++#define s6_addr32 in6_u.u6_addr32 + }; + + extern const struct in6_addr in6addr_any; /* :: */ +@@ -242,7 +238,6 @@ struct sockaddr_in6 + }; + + +-#if defined __USE_MISC || defined __USE_GNU + /* IPv4 multicast request. */ + struct ip_mreq + { +@@ -264,8 +259,6 @@ struct ip_mreq_source + /* IP address of interface. */ + struct in_addr imr_sourceaddr; + }; +-#endif +- + + /* Likewise, for IPv6. */ + struct ipv6_mreq +@@ -278,7 +271,6 @@ struct ipv6_mreq + }; + + +-#if defined __USE_MISC || defined __USE_GNU + /* Multicast group request. */ + struct group_req + { +@@ -345,7 +337,6 @@ struct group_filter + - sizeof (struct sockaddr_storage) \ + + ((numsrc) \ + * sizeof (struct sockaddr_storage))) +-#endif + + + /* Get system-specific definitions. */ +@@ -431,14 +422,12 @@ extern uint16_t htons (uint16_t __hostshort) + && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \ + && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3])) + +-#if defined __USE_MISC || defined __USE_GNU + /* Bind socket to a privileged IP port. */ + extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW; + + /* The IPv6 version of this function. */ + extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) + __THROW; +-#endif + + + #define IN6_IS_ADDR_MC_NODELOCAL(a) \ +@@ -461,8 +450,6 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe)) + +- +-#ifdef __USE_GNU + /* IPv6 packet information. */ + struct in6_pktinfo + { +@@ -478,6 +465,7 @@ struct ip6_mtuinfo + }; + + ++#ifdef __USE_GNU + /* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */ + extern int inet6_option_space (int __nbytes) + __THROW __attribute_deprecated__; +diff --git a/posix/regex.h b/posix/regex.h +index 2132772..a058e3f 100644 +--- posix/regex.h ++++ posix/regex.h +@@ -43,21 +43,20 @@ typedef unsigned long int active_reg_t; + add or remove a bit, only one other definition need change. */ + typedef unsigned long int reg_syntax_t; + +-#ifdef __USE_GNU + /* If this bit is not set, then \ inside a bracket expression is literal. + If set, then such a \ quotes the following character. */ +-# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) ++#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) + + /* If this bit is not set, then + and ? are operators, and \+ and \? are + literals. + If set, then \+ and \? are operators and + and ? are literals. */ +-# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) ++#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) + + /* If this bit is set, then character classes are supported. They are: + [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], + [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. + If not set, then character classes are not supported. */ +-# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) ++#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) + + /* If this bit is set, then ^ and $ are always anchors (outside bracket + expressions, of course). +@@ -71,7 +70,7 @@ typedef unsigned long int reg_syntax_t; + POSIX draft 11.2 says that * etc. in leading positions is undefined. + We already implemented a previous draft which made those constructs + invalid, though, so we haven't changed the code back. */ +-# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) ++#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) + + /* If this bit is set, then special characters are always special + regardless of where they are in the pattern. +@@ -79,71 +78,71 @@ typedef unsigned long int reg_syntax_t; + some contexts; otherwise they are ordinary. Specifically, + * + ? and intervals are only special when not after the beginning, + open-group, or alternation operator. */ +-# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) ++#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) + + /* If this bit is set, then *, +, ?, and { cannot be first in an re or + immediately after an alternation or begin-group operator. */ +-# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) ++#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) + + /* If this bit is set, then . matches newline. + If not set, then it doesn't. */ +-# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) ++#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) + + /* If this bit is set, then . doesn't match NUL. + If not set, then it does. */ +-# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) ++#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) + + /* If this bit is set, nonmatching lists [^...] do not match newline. + If not set, they do. */ +-# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) ++#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) + + /* If this bit is set, either \{...\} or {...} defines an + interval, depending on RE_NO_BK_BRACES. + If not set, \{, \}, {, and } are literals. */ +-# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) ++#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) + + /* If this bit is set, +, ? and | aren't recognized as operators. + If not set, they are. */ +-# define RE_LIMITED_OPS (RE_INTERVALS << 1) ++#define RE_LIMITED_OPS (RE_INTERVALS << 1) + + /* If this bit is set, newline is an alternation operator. + If not set, newline is literal. */ +-# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) ++#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) + + /* If this bit is set, then `{...}' defines an interval, and \{ and \} + are literals. + If not set, then `\{...\}' defines an interval. */ +-# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) ++#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) + + /* If this bit is set, (...) defines a group, and \( and \) are literals. + If not set, \(...\) defines a group, and ( and ) are literals. */ +-# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) ++#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) + + /* If this bit is set, then \ matches . + If not set, then \ is a back-reference. */ +-# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) ++#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) + + /* If this bit is set, then | is an alternation operator, and \| is literal. + If not set, then \| is an alternation operator, and | is literal. */ +-# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) ++#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) + + /* If this bit is set, then an ending range point collating higher + than the starting range point, as in [z-a], is invalid. + If not set, then when ending range point collates higher than the + starting range point, the range is ignored. */ +-# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) ++#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) + + /* If this bit is set, then an unmatched ) is ordinary. + If not set, then an unmatched ) is invalid. */ +-# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) ++#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) + + /* If this bit is set, succeed as soon as we match the whole pattern, + without further backtracking. */ +-# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) ++#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) + + /* If this bit is set, do not process the GNU regex operators. + If not set, then the GNU regex operators are recognized. */ +-# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) ++#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) + + /* If this bit is set, turn on internal regex debugging. + If not set, and debugging was on, turn it off. +@@ -151,30 +150,29 @@ typedef unsigned long int reg_syntax_t; + We define this bit always, so that all that's needed to turn on + debugging is to recompile regex.c; the calling code can always have + this bit set, and it won't affect anything in the normal case. */ +-# define RE_DEBUG (RE_NO_GNU_OPS << 1) ++#define RE_DEBUG (RE_NO_GNU_OPS << 1) + + /* If this bit is set, a syntactically invalid interval is treated as + a string of ordinary characters. For example, the ERE 'a{1' is + treated as 'a\{1'. */ +-# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) ++#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) + + /* If this bit is set, then ignore case when matching. + If not set, then case is significant. */ +-# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) ++#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) + + /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only + for ^, because it is difficult to scan the regex backwards to find + whether ^ should be special. */ +-# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) ++#define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) + + /* If this bit is set, then \{ cannot be first in an bre or + immediately after an alternation or begin-group operator. */ +-# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) ++#define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) + + /* If this bit is set, then no_sub will be set to 1 during + re_compile_pattern. */ +-# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) +-#endif ++#define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) + + /* This global variable defines the particular regexp syntax to use (for + some interfaces). When a regexp is compiled, the syntax used is +@@ -182,7 +180,6 @@ typedef unsigned long int reg_syntax_t; + already-compiled regexps. */ + extern reg_syntax_t re_syntax_options; + +-#ifdef __USE_GNU + /* Define combinations of the above bits for the standard possibilities. + (The [[[ comments delimit what gets put into the Texinfo file, so + don't delete them!) */ +@@ -257,12 +254,11 @@ extern reg_syntax_t re_syntax_options; + /* Maximum number of duplicates an interval can allow. Some systems + (erroneously) define this in other header files, but we want our + value, so remove any previous define. */ +-# ifdef RE_DUP_MAX +-# undef RE_DUP_MAX +-# endif +-/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ +-# define RE_DUP_MAX (0x7fff) ++#ifdef RE_DUP_MAX ++# undef RE_DUP_MAX + #endif ++/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ ++#define RE_DUP_MAX (0x7fff) + + + /* POSIX `cflags' bits (i.e., information for `regcomp'). */ +@@ -341,16 +337,7 @@ typedef enum + private to the regex routines. */ + + #ifndef RE_TRANSLATE_TYPE +-# define __RE_TRANSLATE_TYPE unsigned char * +-# ifdef __USE_GNU +-# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE +-# endif +-#endif +- +-#ifdef __USE_GNU +-# define __REPB_PREFIX(name) name +-#else +-# define __REPB_PREFIX(name) __##name ++# define RE_TRANSLATE_TYPE unsigned char * + #endif + + struct re_pattern_buffer +@@ -358,27 +345,27 @@ struct re_pattern_buffer + /* Space that holds the compiled pattern. It is declared as + `unsigned char *' because its elements are sometimes used as + array indexes. */ +- unsigned char *__REPB_PREFIX(buffer); ++ unsigned char *buffer; + + /* Number of bytes to which `buffer' points. */ +- unsigned long int __REPB_PREFIX(allocated); ++ unsigned long int allocated; + + /* Number of bytes actually used in `buffer'. */ +- unsigned long int __REPB_PREFIX(used); ++ unsigned long int used; + + /* Syntax setting with which the pattern was compiled. */ +- reg_syntax_t __REPB_PREFIX(syntax); ++ reg_syntax_t syntax; + + /* Pointer to a fastmap, if any, otherwise zero. re_search uses the + fastmap, if there is one, to skip over impossible starting points + for matches. */ +- char *__REPB_PREFIX(fastmap); ++ char *fastmap; + + /* Either a translate table to apply to all characters before + comparing them, or zero for no translation. The translation is + applied to a pattern when it is compiled and to a string when it + is matched. */ +- __RE_TRANSLATE_TYPE __REPB_PREFIX(translate); ++ RE_TRANSLATE_TYPE translate; + + /* Number of subexpressions found by the compiler. */ + size_t re_nsub; +@@ -387,36 +374,34 @@ struct re_pattern_buffer + Well, in truth it's used only in `re_search_2', to see whether or + not we should use the fastmap, so we don't set this absolutely + perfectly; see `re_compile_fastmap' (the `duplicate' case). */ +- unsigned __REPB_PREFIX(can_be_null) : 1; ++ unsigned can_be_null : 1; + + /* If REGS_UNALLOCATED, allocate space in the `regs' structure + for `max (RE_NREGS, re_nsub + 1)' groups. + If REGS_REALLOCATE, reallocate space if necessary. + If REGS_FIXED, use what's there. */ +-#ifdef __USE_GNU +-# define REGS_UNALLOCATED 0 +-# define REGS_REALLOCATE 1 +-# define REGS_FIXED 2 +-#endif +- unsigned __REPB_PREFIX(regs_allocated) : 2; ++#define REGS_UNALLOCATED 0 ++#define REGS_REALLOCATE 1 ++#define REGS_FIXED 2 ++ unsigned regs_allocated : 2; + + /* Set to zero when `regex_compile' compiles a pattern; set to one + by `re_compile_fastmap' if it updates the fastmap. */ +- unsigned __REPB_PREFIX(fastmap_accurate) : 1; ++ unsigned fastmap_accurate : 1; + + /* If set, `re_match_2' does not return information about + subexpressions. */ +- unsigned __REPB_PREFIX(no_sub) : 1; ++ unsigned no_sub : 1; + + /* If set, a beginning-of-line anchor doesn't match at the beginning + of the string. */ +- unsigned __REPB_PREFIX(not_bol) : 1; ++ unsigned not_bol : 1; + + /* Similarly for an end-of-line anchor. */ +- unsigned __REPB_PREFIX(not_eol) : 1; ++ unsigned not_eol : 1; + + /* If true, an anchor at a newline matches. */ +- unsigned __REPB_PREFIX(newline_anchor) : 1; ++ unsigned newline_anchor : 1; + }; + + typedef struct re_pattern_buffer regex_t; +@@ -425,7 +410,6 @@ typedef struct re_pattern_buffer regex_t; + typedef int regoff_t; + + +-#ifdef __USE_GNU + /* This is the structure we store register match data in. See + regex.texinfo for a full description of what registers match. */ + struct re_registers +@@ -439,9 +423,8 @@ struct re_registers + /* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, + `re_match_2' returns information about at least this many registers + the first time a `regs' structure is passed. */ +-# ifndef RE_NREGS +-# define RE_NREGS 30 +-# endif ++#ifndef RE_NREGS ++# define RE_NREGS 30 + #endif + + +@@ -456,7 +439,6 @@ typedef struct + + /* Declarations for routines. */ + +-#ifdef __USE_GNU + /* Sets the current default syntax to SYNTAX, and return the old syntax. + You can also simply assign to the `re_syntax_options' variable. */ + extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); +@@ -521,9 +503,8 @@ extern void re_set_registers (struct re_pattern_buffer *__buffer, + struct re_registers *__regs, + unsigned int __num_regs, + regoff_t *__starts, regoff_t *__ends); +-#endif /* Use GNU */ + +-#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD) ++#if defined _REGEX_RE_COMP || defined _LIBC + # ifndef _CRAY + /* 4.2 bsd compatibility. */ + extern char *re_comp (const char *); +diff --git a/resolv/netdb.h b/resolv/netdb.h +index a260c48..7c5c9c9 100644 +--- resolv/netdb.h ++++ resolv/netdb.h +@@ -62,6 +62,8 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); + + + /* Possible values left in `h_errno'. */ ++#define NETDB_INTERNAL -1 /* See errno. */ ++#define NETDB_SUCCESS 0 /* No problem. */ + #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */ + #define TRY_AGAIN 2 /* Non-Authoritative Host not found, + or SERVERFAIL. */ +@@ -69,11 +71,7 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); + NOTIMP. */ + #define NO_DATA 4 /* Valid name, no data record of requested + type. */ +-#if defined __USE_MISC || defined __USE_GNU +-# define NETDB_INTERNAL -1 /* See errno. */ +-# define NETDB_SUCCESS 0 /* No problem. */ +-# define NO_ADDRESS NO_DATA /* No address, look for MX record. */ +-#endif ++#define NO_ADDRESS NO_DATA /* No address, look for MX record. */ + + #ifdef __USE_XOPEN2K + /* Highest reserved Internet port number. */ +@@ -85,14 +83,13 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); + # define SCOPE_DELIMITER '%' + #endif + +-#if defined __USE_MISC || defined __USE_GNU + /* Print error indicated by `h_errno' variable on standard error. STR + if non-null is printed before the error string. */ + extern void herror (__const char *__str) __THROW; + + /* Return string associated with error ERR_NUM. */ + extern __const char *hstrerror (int __err_num) __THROW; +-#endif ++ + + + /* Description of data base entry for a single host. */ +@@ -103,9 +100,7 @@ struct hostent + int h_addrtype; /* Host address type. */ + int h_length; /* Length of address. */ + char **h_addr_list; /* List of addresses from name server. */ +-#if defined __USE_MISC || defined __USE_GNU +-# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/ +-#endif ++#define h_addr h_addr_list[0] /* Address, for backward compatibility. */ + }; + + /* Open host data base files and mark them as staying open even after +@@ -595,15 +590,15 @@ struct gaicb + # define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ + # define EAI_AGAIN -3 /* Temporary failure in name resolution. */ + # define EAI_FAIL -4 /* Non-recoverable failure in name res. */ ++# define EAI_NODATA -5 /* No address associated with NAME. */ + # define EAI_FAMILY -6 /* `ai_family' not supported. */ + # define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */ + # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ ++# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ + # define EAI_MEMORY -10 /* Memory allocation failure. */ + # define EAI_SYSTEM -11 /* System error returned in `errno'. */ + # define EAI_OVERFLOW -12 /* Argument buffer overflow. */ + # ifdef __USE_GNU +-# define EAI_NODATA -5 /* No address associated with NAME. */ +-# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ + # define EAI_INPROGRESS -100 /* Processing request in progress. */ + # define EAI_CANCELED -101 /* Request canceled. */ + # define EAI_NOTCANCELED -102 /* Request not canceled. */ +@@ -612,10 +607,8 @@ struct gaicb + # define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ + # endif + +-# ifdef __USE_MISC +-# define NI_MAXHOST 1025 +-# define NI_MAXSERV 32 +-# endif ++# define NI_MAXHOST 1025 ++# define NI_MAXSERV 32 + + # define NI_NUMERICHOST 1 /* Don't try to look up hostname. */ + # define NI_NUMERICSERV 2 /* Don't convert port number to name. */ +diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h +index 433c033..6880a2e 100644 +--- sysdeps/unix/sysv/linux/bits/in.h ++++ sysdeps/unix/sysv/linux/bits/in.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-1999, 2000, 2004, 2008 Free Software Foundation, Inc. ++/* Copyright (C) 1991-1999, 2000, 2004 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 +@@ -43,18 +43,16 @@ + #define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */ + #define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */ + #define IP_MSFILTER 41 +-#if defined __USE_MISC || defined __USE_GNU +-# define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */ +-# define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */ +-# define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/ +-# define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */ +-# define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */ +-# define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/ +-# define MCAST_MSFILTER 48 +- +-# define MCAST_EXCLUDE 0 +-# define MCAST_INCLUDE 1 +-#endif ++#define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */ ++#define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */ ++#define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/ ++#define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */ ++#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */ ++#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/ ++#define MCAST_MSFILTER 48 ++ ++#define MCAST_EXCLUDE 0 ++#define MCAST_INCLUDE 1 + + #define IP_ROUTER_ALERT 5 /* bool */ + #define IP_PKTINFO 8 /* bool */ +@@ -78,7 +76,6 @@ + #define IP_DEFAULT_MULTICAST_LOOP 1 + #define IP_MAX_MEMBERSHIPS 20 + +-#if defined __USE_MISC || defined __USE_GNU + /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS. + The `ip_dst' field is used for the first-hop gateway when using a + source route (this gets put into the header proper). */ +@@ -103,7 +100,6 @@ struct in_pktinfo + struct in_addr ipi_spec_dst; /* Routing destination address */ + struct in_addr ipi_addr; /* Header destination address */ + }; +-#endif + + /* Options for use with `getsockopt' and `setsockopt' at the IPv6 level. + The first word in the comment at the right is the data type used; +diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h +index ceb6013..11bb607 100644 +--- sysdeps/unix/sysv/linux/bits/socket.h ++++ sysdeps/unix/sysv/linux/bits/socket.h +@@ -26,8 +26,10 @@ + #endif + + #define __need_size_t ++#define __need_NULL + #include + ++#include + #include + + /* Type for length arguments in socket calls. */ +@@ -154,7 +156,11 @@ struct sockaddr + + /* Structure large enough to hold any socket address (with the historical + exception of AF_UNIX). We reserve 128 bytes. */ +-#define __ss_aligntype unsigned long int ++#if ULONG_MAX > 0xffffffff ++# define __ss_aligntype __uint64_t ++#else ++# define __ss_aligntype __uint32_t ++#endif + #define _SS_SIZE 128 + #define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype))) + +@@ -257,7 +263,7 @@ struct cmsghdr + #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) + #define CMSG_FIRSTHDR(mhdr) \ + ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ +- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) ++ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) + #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ + & (size_t) ~(sizeof (size_t) - 1)) + #define CMSG_SPACE(len) (CMSG_ALIGN (len) \ +@@ -301,74 +307,18 @@ enum + #endif + }; + +-#ifdef __USE_GNU + /* User visible structure for SCM_CREDENTIALS message */ ++ + struct ucred + { + pid_t pid; /* PID of sending process. */ + uid_t uid; /* UID of sending process. */ + gid_t gid; /* GID of sending process. */ + }; +-#endif +- +-/* Ugly workaround for unclean kernel headers. */ +-#if !defined __USE_MISC && !defined __USE_GNU +-# ifndef FIOGETOWN +-# define __SYS_SOCKET_H_undef_FIOGETOWN +-# endif +-# ifndef FIOSETOWN +-# define __SYS_SOCKET_H_undef_FIOSETOWN +-# endif +-# ifndef SIOCATMARK +-# define __SYS_SOCKET_H_undef_SIOCATMARK +-# endif +-# ifndef SIOCGPGRP +-# define __SYS_SOCKET_H_undef_SIOCGPGRP +-# endif +-# ifndef SIOCGSTAMP +-# define __SYS_SOCKET_H_undef_SIOCGSTAMP +-# endif +-# ifndef SIOCGSTAMPNS +-# define __SYS_SOCKET_H_undef_SIOCGSTAMPNS +-# endif +-# ifndef SIOCSPGRP +-# define __SYS_SOCKET_H_undef_SIOCSPGRP +-# endif +-#endif + + /* Get socket manipulation related informations from kernel headers. */ + #include + +-#if !defined __USE_MISC && !defined __USE_GNU +-# ifdef __SYS_SOCKET_H_undef_FIOGETOWN +-# undef __SYS_SOCKET_H_undef_FIOGETOWN +-# undef FIOGETOWN +-# endif +-# ifdef __SYS_SOCKET_H_undef_FIOSETOWN +-# undef __SYS_SOCKET_H_undef_FIOSETOWN +-# undef FIOSETOWN +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCATMARK +-# undef __SYS_SOCKET_H_undef_SIOCATMARK +-# undef SIOCATMARK +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP +-# undef __SYS_SOCKET_H_undef_SIOCGPGRP +-# undef SIOCGPGRP +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP +-# undef __SYS_SOCKET_H_undef_SIOCGSTAMP +-# undef SIOCGSTAMP +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS +-# undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS +-# undef SIOCGSTAMPNS +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP +-# undef __SYS_SOCKET_H_undef_SIOCSPGRP +-# undef SIOCSPGRP +-# endif +-#endif + + /* Structure used to manipulate the SO_LINGER option. */ + struct linger +diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h +index 286c1a2..add2c8e 100644 +--- sysdeps/unix/sysv/linux/x86_64/bits/stat.h ++++ sysdeps/unix/sysv/linux/x86_64/bits/stat.h +@@ -61,7 +61,7 @@ struct stat + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + #if __WORDSIZE == 64 +- int __pad0; ++ int pad0; + #endif + __dev_t st_rdev; /* Device number, if device. */ + #if __WORDSIZE == 32 +@@ -129,7 +129,7 @@ struct stat64 + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + #if __WORDSIZE == 64 +- int __pad0; ++ int pad0; + __dev_t st_rdev; /* Device number, if device. */ + __off_t st_size; /* Size of file, in bytes. */ + #else +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index 9a27efd..c911345 100644 +--- sysdeps/posix/getaddrinfo.c ++++ sysdeps/posix/getaddrinfo.c +@@ -1105,22 +1105,22 @@ static const struct prefixentry *labels; + static const struct prefixentry default_labels[] = + { + /* See RFC 3484 for the details. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } +- }, 128, 0 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 16, 2 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 3 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 4 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } }, ++ 128, 0 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 16, 2 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 3 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 4 }, + /* The next two entries differ from RFC 3484. We need to treat + IPv6 site-local addresses special because they are never NATed, + unlike site-locale IPv4 addresses. If this would not happen, on +@@ -1128,23 +1128,23 @@ static const struct prefixentry default_labels[] = + sorting would prefer the IPv6 site-local addresses, causing + unnecessary delays when trying to connect to a global IPv6 address + through a site-local IPv6 address. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 10, 5 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 7, 6 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 10, 5 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 7, 6 }, + /* Additional rule for Teredo tunnels. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 32, 7 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 0, 1 } ++ { { .in6_u ++ = { .u6_addr8 = { 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 32, 7 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 0, 1 } + }; + + +@@ -1155,26 +1155,26 @@ static const struct prefixentry *precedence; + static const struct prefixentry default_precedence[] = + { + /* See RFC 3484 for the details. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } +- }, 128, 50 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 16, 30 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 20 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 10 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 0, 40 } ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } }, ++ 128, 50 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 16, 30 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 20 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 10 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 0, 40 } + }; + + diff --git a/glibc-2.9-2008111711.tar.bz2 b/glibc-2.9-2008111711.tar.bz2 new file mode 100644 index 0000000..4d0f2fc --- /dev/null +++ b/glibc-2.9-2008111711.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adabcdd26bd71d7cb15bfc2fbb3efc29ad9d166a2a3f25bed097e14489264de8 +size 15308055 diff --git a/glibc-c-utf8-locale.patch b/glibc-c-utf8-locale.patch deleted file mode 100644 index 13f6318..0000000 --- a/glibc-c-utf8-locale.patch +++ /dev/null @@ -1,267 +0,0 @@ -From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001 -From: Mike FABIAN -Date: Mon, 10 Aug 2015 15:58:12 +0200 -Subject: [PATCH] Add a C.UTF-8 locale - ---- - localedata/SUPPORTED | 1 + - localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 239 insertions(+) - create mode 100644 localedata/locales/C - -diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED -index 8ca023e..2a78391 100644 ---- a/localedata/SUPPORTED -+++ b/localedata/SUPPORTED -@@ -1,6 +1,7 @@ - # This file names the currently supported and somewhat tested locales. - # If you have any additions please file a glibc bug report. - SUPPORTED-LOCALES=\ -+C.UTF-8/UTF-8 \ - aa_DJ.UTF-8/UTF-8 \ - aa_DJ/ISO-8859-1 \ - aa_ER/UTF-8 \ -diff --git a/localedata/locales/C b/localedata/locales/C -new file mode 100644 -index 0000000..fdf460e ---- /dev/null -+++ b/localedata/locales/C -@@ -0,0 +1,238 @@ -+escape_char / -+comment_char % -+% Locale for C locale in UTF-8 -+ -+LC_IDENTIFICATION -+title "C locale" -+source "" -+address "" -+contact "" -+email "mfabian@redhat.com" -+tel "" -+fax "" -+language "C" -+territory "" -+revision "1.0" -+date "2015-08-10" -+% -+category "i18n:2012";LC_IDENTIFICATION -+category "i18n:2012";LC_CTYPE -+category "i18n:2012";LC_COLLATE -+category "i18n:2012";LC_TIME -+category "i18n:2012";LC_NUMERIC -+category "i18n:2012";LC_MONETARY -+category "i18n:2012";LC_MESSAGES -+category "i18n:2012";LC_PAPER -+category "i18n:2012";LC_NAME -+category "i18n:2012";LC_ADDRESS -+category "i18n:2012";LC_TELEPHONE -+category "i18n:2012";LC_MEASUREMENT -+END LC_IDENTIFICATION -+ -+LC_CTYPE -+copy "i18n" -+ -+translit_start -+include "translit_combining";"" -+translit_end -+ -+END LC_CTYPE -+ -+LC_COLLATE -+order_start forward -+ -+.. -+ -+ -+.. -+ -+ -+.. -+ -+ -+.. -+ -+ -+.. -+ -+ -+.. -+ -+UNDEFINED -+order_end -+END LC_COLLATE -+ -+LC_MONETARY -+% This is the 14652 i18n fdcc-set definition for -+% the LC_MONETARY category -+% (except for the int_curr_symbol and currency_symbol, they are empty in -+% the 14652 i18n fdcc-set definition and also empty in -+% glibc/locale/C-monetary.c. But localedef complains in that case). -+% -+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better? -+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217) -+int_curr_symbol "" -+% Using "$" for currency_symbol. But maybe would be better? -+% U+00A4 is the "generic currency symbol" -+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29) -+currency_symbol "" -+mon_decimal_point "" -+mon_thousands_sep "" -+mon_grouping -1 -+positive_sign "" -+negative_sign "" -+int_frac_digits -1 -+frac_digits -1 -+p_cs_precedes -1 -+int_p_sep_by_space -1 -+p_sep_by_space -1 -+n_cs_precedes -1 -+int_n_sep_by_space -1 -+n_sep_by_space -1 -+p_sign_posn -1 -+n_sign_posn -1 -+% -+END LC_MONETARY -+ -+LC_NUMERIC -+% This is the POSIX Locale definition for -+% the LC_NUMERIC category. -+% -+decimal_point "" -+thousands_sep "" -+grouping -1 -+END LC_NUMERIC -+ -+LC_TIME -+% This is the POSIX Locale definition for -+% the LC_TIME category. -+% -+% Abbreviated weekday names (%a) -+abday "";"";/ -+ "";"";/ -+ "";"";/ -+ "" -+ -+% Full weekday names (%A) -+day "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "" -+ -+% Abbreviated month names (%b) -+abmon "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"" -+ -+% Full month names (%B) -+mon "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "";/ -+ "" -+ -+% Week description, consists of three fields: -+% 1. Number of days in a week. -+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday). -+% 3. The weekday number to be contained in the first week of the year. -+% -+% ISO 8601 conforming applications should use the values 7, 19971201 (a -+% Monday), and 4 (Thursday), respectively. -+week 7;19971201;4 -+first_weekday 1 -+first_workday 1 -+ -+% Appropriate date and time representation (%c) -+% "%a %b %e %H:%M:%S %Y" -+d_t_fmt "" -+ -+% Appropriate date representation (%x) -+% "%m/%d/%y" -+d_fmt "" -+ -+% Appropriate time representation (%X) -+% "%H:%M:%S" -+t_fmt "" -+ -+% Appropriate AM/PM time representation (%r) -+% "%I:%M:%S %p" -+t_fmt_ampm "" -+ -+% Equivalent of AM/PM (%p) "AM"/"PM" -+% -+am_pm "";"" -+ -+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y" -+date_fmt "" -+END LC_TIME -+ -+LC_MESSAGES -+% This is the POSIX Locale definition for -+% the LC_NUMERIC category. -+% -+yesexpr "" -+noexpr "" -+yesstr "" -+nostr "" -+END LC_MESSAGES -+ -+LC_PAPER -+% This is the ISO/IEC 14652 "i18n" definition for -+% the LC_PAPER category. -+% (A4 paper, this is also used in the built in C/POSIX -+% locale in glibc/locale/C-paper.c) -+height 297 -+width 210 -+END LC_PAPER -+ -+LC_NAME -+% This is the ISO/IEC 14652 "i18n" definition for -+% the LC_NAME category. -+% "%p%t%g%t%m%t%f" -+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c) -+name_fmt "/ -+" -+END LC_NAME -+ -+LC_ADDRESS -+% This is the ISO/IEC 14652 "i18n" definition for -+% the LC_ADDRESS category. -+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N" -+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c) -+postal_fmt "/ -+/ -+/ -+/ -+" -+END LC_ADDRESS -+ -+LC_TELEPHONE -+% This is the ISO/IEC 14652 "i18n" definition for -+% the LC_TELEPHONE category. -+% "+%c %a %l" -+tel_int_fmt "/ -+" -+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c) -+END LC_TELEPHONE -+ -+LC_MEASUREMENT -+% This is the ISO/IEC 14652 "i18n" definition for -+% the LC_MEASUREMENT category. -+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c) -+%metric -+measurement 1 -+END LC_MEASUREMENT -+ diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff new file mode 100644 index 0000000..95fee92 --- /dev/null +++ b/glibc-compiled-binaries.diff @@ -0,0 +1,129 @@ +--- + config.make.in | 1 + + configure | 16 +++++++++++++++- + configure.in | 1 + + posix/Makefile | 2 +- + sunrpc/Makefile | 2 +- + timezone/Makefile | 2 +- + 6 files changed, 20 insertions(+), 4 deletions(-) + +--- config.make.in ++++ config.make.in +@@ -90,6 +90,7 @@ add-ons = @add_ons@ + add-on-subdirs = @add_on_subdirs@ + sysdeps-add-ons = @sysdeps_add_ons@ + cross-compiling = @cross_compiling@ ++compiled-binaries-can-run-on-buildhost = @compiled_binaries_can_run_on_buildhost@ + force-install = @force_install@ + + # Build tools. +--- configure ++++ configure +@@ -567,6 +567,7 @@ ac_clean_files= + ac_config_libobj_dir=. + LIBOBJS= + cross_compiling=no ++compiled_binaries_can_run_on_buildhost=yes + subdirs= + MFLAGS= + MAKEFLAGS= +@@ -687,6 +688,7 @@ ac_ct_CC + OBJEXT + BUILD_CC + cross_compiling ++compiled_binaries_can_run_on_buildhost + CPP + CXX + CXXFLAGS +@@ -1180,6 +1182,13 @@ do + { (exit 1); exit 1; }; } + done + ++# Check whether --enable-runbinaries was given. ++if test "${enable_runbinaries+set}" = set; then ++ enableval=$enable_runbinaries; compiled_binaries_can_run_on_buildhost=$enableval ++else ++ compiled_binaries_can_run_on_buildhost=yes ++fi ++ + # There might be people who depend on the old broken behavior: `$host' + # used to hold the argument of --host etc. + # FIXME: To remove some day. +@@ -1195,6 +1204,7 @@ if test "x$host_alias" != x; then + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes ++ compiled_binaries_can_run_on_buildhost=no + fi + fi + +@@ -1381,6 +1391,9 @@ Optional Features: + VERSION + --enable-all-warnings enable all useful warnings gcc can issue + ++ --enable-runbinaries the compiled binaries should run on the buildhost because ++ it happens to have a compatible cpu ++ + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) +@@ -9212,6 +9225,7 @@ ac_ct_CC!$ac_ct_CC$ac_delim + OBJEXT!$OBJEXT$ac_delim + BUILD_CC!$BUILD_CC$ac_delim + cross_compiling!$cross_compiling$ac_delim ++compiled_binaries_can_run_on_buildhost!$compiled_binaries_can_run_on_buildhost$ac_delim + CPP!$CPP$ac_delim + CXX!$CXX$ac_delim + CXXFLAGS!$CXXFLAGS$ac_delim +@@ -9240,7 +9254,7 @@ PERL!$PERL$ac_delim + INSTALL_INFO!$INSTALL_INFO$ac_delim + _ACEOF + +- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then ++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 98; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +--- configure.in ++++ configure.in +@@ -835,6 +835,7 @@ if test $host != $build; then + AC_CHECK_PROGS(BUILD_CC, gcc cc) + fi + AC_SUBST(cross_compiling) ++AC_SUBST(compiled_binaries_can_run_on_buildhost) + AC_PROG_CPP + # We need the C++ compiler only for testing. + AC_PROG_CXX +--- posix/Makefile ++++ posix/Makefile +@@ -301,7 +301,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi + done < $(objpfx)getconf.speclist + + $(objpfx)getconf.speclist: $(objpfx)getconf +-ifeq (no,$(cross-compiling)) ++ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) + LC_ALL=C GETCONF_DIR=/dev/null \ + $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new + else +--- sunrpc/Makefile ++++ sunrpc/Makefile +@@ -98,7 +98,7 @@ otherlibs += $(nssobjdir)/libnss_files.a + $(resolvobjdir)/libresolv.a + endif + +-ifeq (no,$(cross-compiling)) ++ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) + # We can only build this library if we can run the rpcgen we build. + headers += $(rpcsvc:%.x=rpcsvc/%.h) + extra-libs := librpcsvc +--- timezone/Makefile ++++ timezone/Makefile +@@ -69,7 +69,7 @@ installed-posixrules-file := $(firstword + $(addprefix $(inst_zonedir)/, \ + $(posixrules-file))) + +-ifeq ($(cross-compiling),no) ++ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) + # Don't try to install the zoneinfo files since we can't run zic. + install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \ + $(zonenames:%=posix/%) \ diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff new file mode 100644 index 0000000..0829942 --- /dev/null +++ b/glibc-cpusetsize.diff @@ -0,0 +1,26 @@ +Index: glibc-2.4/bits/sched.h +=================================================================== +--- bits/sched.h 2007-08-22 08:02:57.124247019 -0500 ++++ bits/sched.h 2007-08-22 08:03:36.149061686 -0500 +@@ -38,7 +38,7 @@ struct sched_param + #if defined _SCHED_H && !defined __cpu_set_t_defined + # define __cpu_set_t_defined + /* Size definition for CPU sets. */ +-# define __CPU_SETSIZE 1024 ++# define __CPU_SETSIZE 4096 + # define __NCPUBITS (8 * sizeof (__cpu_mask)) + + /* Type for array elements in 'cpu_set'. */ +Index: glibc-2.4/sysdeps/unix/sysv/linux/bits/sched.h +=================================================================== +--- sysdeps/unix/sysv/linux/bits/sched.h 2006-02-08 13:09:06.000000000 -0600 ++++ sysdeps/unix/sysv/linux/bits/sched.h 2007-08-22 08:04:00.988126075 -0500 +@@ -97,7 +97,7 @@ struct __sched_param + #if defined _SCHED_H && !defined __cpu_set_t_defined + # define __cpu_set_t_defined + /* Size definition for CPU sets. */ +-# define __CPU_SETSIZE 1024 ++# define __CPU_SETSIZE 4096 + # define __NCPUBITS (8 * sizeof (__cpu_mask)) + + /* Type for array elements in 'cpu_set_t'. */ diff --git a/glibc-disable-gettext-for-c-utf8.patch b/glibc-disable-gettext-for-c-utf8.patch deleted file mode 100644 index 466df5b..0000000 --- a/glibc-disable-gettext-for-c-utf8.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: glibc-2.23/intl/dcigettext.c -=================================================================== ---- glibc-2.23.orig/intl/dcigettext.c -+++ glibc-2.23/intl/dcigettext.c -@@ -714,6 +714,7 @@ DCIGETTEXT (const char *domainname, cons - /* If the current locale value is C (or POSIX) we don't load a - domain. Return the MSGID. */ - if (strcmp (single_locale, "C") == 0 -+ || strcmp (single_locale, "C.UTF-8") == 0 - || strcmp (single_locale, "POSIX") == 0) - break; - diff --git a/glibc-fix-double-loopback.diff b/glibc-fix-double-loopback.diff deleted file mode 100644 index 8025e0c..0000000 --- a/glibc-fix-double-loopback.diff +++ /dev/null @@ -1,25 +0,0 @@ -This fixes the problem of getent ahosts localhost returning 127.0.0.1 -_twice_ on systems that have no ipv6 interfaces up (hence are regarded -as ipv4 only by the lookup code), but still have localhost entries for -::1 and 127.0.0.1 in /etc/hosts (like most current systems). - -Remapping ::1 to 127.0.0.1 is bogus when /etc/hosts is correct. -bnc #684534, #606980 -http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980 - -Index: glibc-2.17.90/nss/nss_files/files-hosts.c -=================================================================== ---- glibc-2.17.90.orig/nss/nss_files/files-hosts.c -+++ glibc-2.17.90/nss/nss_files/files-hosts.c -@@ -68,11 +68,6 @@ LINE_PARSER - { - if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr)) - memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ); -- else if (IN6_IS_ADDR_LOOPBACK (entdata->host_addr)) -- { -- in_addr_t localhost = htonl (INADDR_LOOPBACK); -- memcpy (entdata->host_addr, &localhost, sizeof (localhost)); -- } - else - /* Illegal address: ignore line. */ - return 0; diff --git a/glibc-fix-nscd.diff b/glibc-fix-nscd.diff new file mode 100644 index 0000000..d639f5a --- /dev/null +++ b/glibc-fix-nscd.diff @@ -0,0 +1,49 @@ +diff -urp nscd.mm/cache.c nscd/cache.c +--- nscd.mm/cache.c 2008-10-13 13:09:35.120009000 +0000 ++++ nscd/cache.c 2008-10-13 15:11:17.629844982 +0000 +@@ -300,7 +300,7 @@ prune_cache (struct database_dyn *table, + + /* now == 0 means just check for changed files */ + if (now == (time_t)0) +- return; ++ return 0; + + /* We run through the table and find values which are not valid anymore. + +diff -urp nscd.mm/connections.c nscd/connections.c +--- nscd.mm/connections.c 2008-10-13 13:09:35.120009000 +0000 ++++ nscd/connections.c 2008-10-13 14:55:22.417018210 +0000 +@@ -1816,22 +1816,5 @@ main_loop_poll (void) + /* We have a new incoming connection. Accept the connection. */ + int fd; + +-#ifndef __ASSUME_PACCEPT +- fd = -1; +- if (have_paccept >= 0) +-#endif +- { +-#if 0 +- fd = TEMP_FAILURE_RETRY (paccept (sock, NULL, NULL, NULL, +- SOCK_NONBLOCK)); +-#ifndef __ASSUME_PACCEPT +- if (have_paccept == 0) +- have_paccept = fd != -1 || errno != ENOSYS ? 1 : -1; +-#endif +-#endif +- } +-#ifndef __ASSUME_PACCEPT +- if (have_paccept < 0) +- fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); +-#endif ++ fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); + + /* Use the descriptor if we have not reached the limit. */ + if (fd >= 0) +--- sysdeps/unix/sysv/linux/kernel-features.h.mm 2008-08-25 13:02:49.000000000 +0000 ++++ sysdeps/unix/sysv/linux/kernel-features.h 2008-10-13 14:27:31.357847116 +0000 +@@ -509,5 +509,4 @@ + # define __ASSUME_SOCK_CLOEXEC 1 + # define __ASSUME_IN_NONBLOCK 1 + # define __ASSUME_PIPE2 1 +-# define __ASSUME_PACCEPT 1 + #endif diff --git a/glibc-getgroups-fortify.diff b/glibc-getgroups-fortify.diff new file mode 100644 index 0000000..554c859 --- /dev/null +++ b/glibc-getgroups-fortify.diff @@ -0,0 +1,14 @@ +Index: glibc/posix/bits/unistd.h +=================================================================== +--- posix/bits/unistd.h 2007-10-16 14:58:46.000000000 +0200 ++++ posix/bits/unistd.h 2008-09-18 11:38:25.000000000 +0200 +@@ -270,7 +270,8 @@ __NTH (getgroups (int __size, __gid_t __ + if (!__builtin_constant_p (__size)) + return __getgroups_chk (__size, __list, __bos (__list)); + +- if (__size * sizeof (__gid_t) > __bos (__list)) ++ if (__size > 0 ++ && __size * sizeof (__gid_t) > __bos (__list)) + return __getgroups_chk_warn (__size, __list, __bos (__list)); + } + return __getgroups_alias (__size, __list); diff --git a/glibc-ldscript.diff b/glibc-ldscript.diff new file mode 100644 index 0000000..2134050 --- /dev/null +++ b/glibc-ldscript.diff @@ -0,0 +1,11 @@ +--- elf/Makefile 03 Nov 2008 15:06:11 +0100 1.330 ++++ elf/Makefile 21 Jan 2009 19:25:29 +0100 +@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld + $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 | \ + LC_ALL=C \ + sed -e '/^=========/,/^=========/!d;/^=========/d' \ +- -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ ++ -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ + > $@.lds + $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ + $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \ diff --git a/glibc-mtfsf.diff b/glibc-mtfsf.diff new file mode 100644 index 0000000..a2cdb1f --- /dev/null +++ b/glibc-mtfsf.diff @@ -0,0 +1,159 @@ +--- sysdeps/powerpc/fpu/fenv_libc.h.~1.5.~ 2008-11-17 10:44:10.000000000 +0100 ++++ sysdeps/powerpc/fpu/fenv_libc.h 2009-01-22 14:23:37.000000000 +0100 +@@ -39,7 +39,7 @@ 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) +@@ -53,7 +53,7 @@ libm_hidden_proto (__fe_nomask_env) + #define relax_fenv_state() \ + do { \ + if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \ +- asm ("mtfsfi 7,0,1"); \ ++ asm (".machine push; .machine power6; mtfsfi 7,0,1; .machine pop"); \ + asm ("mtfsfi 7,0"); \ + } while(0) + +--- sysdeps/powerpc/fpu/tst-setcontext-fpscr.c.~1.1.~ 2008-11-17 02:34:02.000000000 +0100 ++++ sysdeps/powerpc/fpu/tst-setcontext-fpscr.c 2009-01-22 14:24:33.000000000 +0100 +@@ -109,7 +109,7 @@ 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"); \ + } + + # define _GET_SI_FPSCR(__fpscr) ({ \ +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S.~1.4.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-22 15:42:24.000000000 +0100 +@@ -202,13 +202,19 @@ ENTRY(__CONTEXT_FUNC_NAME) + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: mtfsf 0xff,fp31 +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S.~1.3.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-22 15:42:37.000000000 +0100 +@@ -428,13 +428,19 @@ ENTRY(__CONTEXT_FUNC_NAME) + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: mtfsf 0xff,fp31 +--- sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S.~1.14.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S 2009-01-22 15:43:05.000000000 +0100 +@@ -84,13 +84,19 @@ ENTRY(__novec_setcontext) + + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r5,PPC_FEATURE_HAS_DFP + beq 5f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 6f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 5: +@@ -372,13 +378,19 @@ L(has_no_vec): + + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r5,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: +--- sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S.~1.17.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S 2009-01-22 15:43:26.000000000 +0100 +@@ -178,13 +178,19 @@ ENTRY(__novec_swapcontext) + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r8,PPC_FEATURE_HAS_DFP + beq 5f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 6f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 5: +@@ -670,13 +676,19 @@ L(has_no_vec2): + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r8,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: diff --git a/glibc-no-unwind-tables.diff b/glibc-no-unwind-tables.diff new file mode 100644 index 0000000..7962e55 --- /dev/null +++ b/glibc-no-unwind-tables.diff @@ -0,0 +1,39 @@ +initfini.c is compiled to assembly and further processed and split, +we can't have unwind tables therein. + +Index: csu/Makefile +=================================================================== +--- csu/Makefile.orig ++++ csu/Makefile +@@ -93,7 +93,7 @@ omit-deps += $(crtstuff) + $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + +-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables + + vpath initfini.c $(sysdirs) + +Index: nptl/Makefile +=================================================================== +--- nptl/Makefile.orig ++++ nptl/Makefile +@@ -339,7 +339,7 @@ endif + extra-objs += $(crti-objs) $(crtn-objs) + omit-deps += crti crtn + +-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables + endif + + CFLAGS-flockfile.c = -D_IO_MTSAFE_IO +Index: nptl/sysdeps/unix/sysv/linux/x86_64/Makefile +=================================================================== +--- nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.orig ++++ nptl/sysdeps/unix/sysv/linux/x86_64/Makefile +@@ -1,4 +1,4 @@ + ifeq ($(subdir),nptl) + CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions \ +- -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) ++ -fno-unwind-tables -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) + endif diff --git a/glibc-nodate.patch b/glibc-nodate.patch deleted file mode 100644 index d54f631..0000000 --- a/glibc-nodate.patch +++ /dev/null @@ -1,47 +0,0 @@ -Index: glibc-2.21/nscd/nscd_stat.c -=================================================================== ---- glibc-2.21.orig/nscd/nscd_stat.c -+++ glibc-2.21/nscd/nscd_stat.c -@@ -36,8 +36,13 @@ - #endif /* HAVE_SELINUX */ - - --/* We use this to make sure the receiver is the same. */ -+/* We use this to make sure the receiver is the same. Capture mtime -+ of this file if possible. */ -+#ifdef __TIMESTAMP__ -+static const char compilation[21]; -+#else - static const char compilation[21] = __DATE__ " " __TIME__; -+#endif - - /* Statistic data for one database. */ - struct dbstat -@@ -96,7 +101,12 @@ send_stats (int fd, struct database_dyn - - memset (&data, 0, sizeof (data)); - -+#ifdef __TIMESTAMP__ -+ /* Skip day of the week. */ -+ memcpy (data.version, __TIMESTAMP__ + 4, sizeof (compilation)); -+#else - memcpy (data.version, compilation, sizeof (compilation)); -+#endif - data.debug_level = debug_level; - data.runtime = time (NULL) - start_time; - data.client_queued = client_queued; -@@ -196,7 +206,13 @@ receive_print_stats (void) - - /* Read as much data as we expect. */ - if (TEMP_FAILURE_RETRY (read (fd, &data, sizeof (data))) != sizeof (data) -- || (memcmp (data.version, compilation, sizeof (compilation)) != 0 -+ || ( -+#ifdef __TIMESTAMP__ -+ /* Skip day of the week. */ -+ memcmp (data.version, __TIMESTAMP__ + 4, sizeof (compilation)) != 0 -+#else -+ memcmp (data.version, compilation, sizeof (compilation)) != 0 -+#endif - /* Yes, this is an assignment! */ - && (errno = EINVAL))) - { diff --git a/glibc-nptl-2.4-nofixsyscallnr.diff b/glibc-nptl-2.4-nofixsyscallnr.diff new file mode 100644 index 0000000..3b20885 --- /dev/null +++ b/glibc-nptl-2.4-nofixsyscallnr.diff @@ -0,0 +1,18 @@ +--- nptl/pthreadP.h ++++ nptl/pthreadP.h 2006/04/07 09:38:46 +@@ -510,15 +510,4 @@ + # define PTHREAD_STATIC_FN_REQUIRE(name) __asm (".globl " #name); + #endif + +- +-#ifndef __NR_set_robust_list +-/* XXX For the time being... Once we can rely on the kernel headers +- having the definition remove these lines. */ +-# if defined __i386__ +-# define __NR_set_robust_list 311 +-# elif defined __x86_64__ +-# define __NR_set_robust_list 273 +-# endif +-#endif +- + #endif /* pthreadP.h */ diff --git a/glibc-nptl-2.9-2008111711.tar.bz2 b/glibc-nptl-2.9-2008111711.tar.bz2 new file mode 100644 index 0000000..c45a964 --- /dev/null +++ b/glibc-nptl-2.9-2008111711.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfe11b1779ec269e02d4951c7364581ec5113ea3b17eed20341e5cf4cf57ff10 +size 330166 diff --git a/glibc-nscd.conf.patch b/glibc-nscd.conf.patch deleted file mode 100644 index 2b33892..0000000 --- a/glibc-nscd.conf.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: glibc-2.17.90/nscd/nscd.conf -=================================================================== ---- glibc-2.17.90.orig/nscd/nscd.conf -+++ glibc-2.17.90/nscd/nscd.conf -@@ -61,11 +61,11 @@ - auto-propagate group yes - - enable-cache hosts yes -- positive-time-to-live hosts 3600 -- negative-time-to-live hosts 20 -+ positive-time-to-live hosts 600 -+ negative-time-to-live hosts 0 - suggested-size hosts 211 - check-files hosts yes -- persistent hosts yes -+ persistent hosts no - shared hosts yes - max-db-size hosts 33554432 - diff --git a/glibc-nss-deepbind.diff b/glibc-nss-deepbind.diff new file mode 100644 index 0000000..eae0472 --- /dev/null +++ b/glibc-nss-deepbind.diff @@ -0,0 +1,22 @@ +Use DEEPBIND to load the nss modules. Helps thunderbird (linked against its +own version of the ldap libs) when using nss_ldap (linked against system +libldap) leading to crashes due to incompatibilities. + +See https://bugzilla.novell.com/show_bug.cgi?id=157078 and +http://sourceware.org/bugzilla/show_bug.cgi?id=6610 + +Index: nss/nsswitch.c +=================================================================== +--- nss/nsswitch.c.orig ++++ nss/nsswitch.c +@@ -358,7 +358,9 @@ __nss_lookup_function (service_user *ni, + ".so"), + __nss_shlib_revision); + +- ni->library->lib_handle = __libc_dlopen (shlib_name); ++ ni->library->lib_handle ++ = __libc_dlopen_mode (shlib_name, ++ RTLD_LAZY | __RTLD_DLOPEN | RTLD_DEEPBIND); + if (ni->library->lib_handle == NULL) + { + /* Failed to load the library. */ diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff deleted file mode 100644 index 81c11d0..0000000 --- a/glibc-resolv-mdnshint.diff +++ /dev/null @@ -1,19 +0,0 @@ -Index: glibc-2.20/resolv/res_hconf.c -=================================================================== ---- glibc-2.20.orig/resolv/res_hconf.c -+++ glibc-2.20/resolv/res_hconf.c -@@ -240,9 +240,12 @@ parse_line (const char *fname, int line_ - if (c == NULL) - { - char *buf; -+ const 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-selinux.diff b/glibc-selinux.diff new file mode 100644 index 0000000..c7e22b7 --- /dev/null +++ b/glibc-selinux.diff @@ -0,0 +1,22 @@ +--- Makerules ++++ Makerules +@@ -349,7 +349,7 @@ + endif # sysd-sorted-done + + # Generate .dT files as we compile. +-compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@ ++compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@ -I/usr/include + compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags) + compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags) + compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags) +--- nscd/Makefile ++++ nscd/Makefile +@@ -124,6 +124,8 @@ + CFLAGS-getsrvbypt_r.c += $(nscd-cflags) + CFLAGS-res_hconf.c += $(nscd-cflags) + ++LDFLAGS = -lselinux ++ + ifeq (yesyes,$(have-fpie)$(build-shared)) + relro-LDFLAGS += -Wl,-z,now + diff --git a/glibc-suse-note.diff b/glibc-suse-note.diff new file mode 100644 index 0000000..b039ddd --- /dev/null +++ b/glibc-suse-note.diff @@ -0,0 +1,127 @@ + +This patch creates a SuSE .note section with version number 10.2 + +================================================================================ +Index: Makerules +=================================================================== +--- Makerules.orig ++++ Makerules +@@ -489,6 +489,7 @@ $(common-objpfx)shlib.lds: $(common-objp + -e '/^=========/,/^=========/!d;/^=========/d' \ + $(if $(filter yes,$(have-hash-style)), \ + -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ ++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } .note.SuSE : { *(.note.SuSE) } &/' \ + -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \ + -e '/DATA_SEGMENT_ALIGN/{H;g}' \ + , \ +@@ -514,7 +515,7 @@ common-generated += shlib.lds + + define build-shlib + $(build-shlib-helper) -o $@ -T $(common-objpfx)shlib.lds \ +- $(csu-objpfx)abi-note.o $(build-shlib-objlist) ++ $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-shlib-objlist) + endef + else + ifneq (,$(findstring aix,$(config-os))) +@@ -556,7 +557,7 @@ ifeq (yes,$(elf)) + # not for shared objects + define build-module + $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ +- $(csu-objpfx)abi-note.o $(build-module-objlist) ++ $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-module-objlist) + endef + define build-module-asneeded + $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ +Index: csu/Makefile +=================================================================== +--- csu/Makefile.orig ++++ csu/Makefile +@@ -125,7 +125,7 @@ $(objpfx)defs.h: $(objpfx)initfini.s + endif + + ifeq (yes,$(elf)) +-extra-objs += abi-note.o init.o ++extra-objs += abi-note.o suse-note.o init.o + asm-CPPFLAGS += -I$(objpfx). + endif + +@@ -143,12 +143,15 @@ ifeq (yes,$(elf)) + # We link the ELF startfile along with a SHT_NOTE section indicating + # the kernel ABI the binaries linked with this library will require. + $(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \ ++ $(objpfx)suse-note.o \ + $(objpfx)init.o + $(link-relocatable) + $(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \ ++ $(objpfx)suse-note.o \ + $(objpfx)init.o + $(link-relocatable) + $(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \ ++ $(objpfx)suse-note.ob \ + $(objpfx)init.ob + $(link-relocatable) + else +Index: csu/suse-note.S +=================================================================== +--- /dev/null ++++ csu/suse-note.S +@@ -0,0 +1,59 @@ ++/* Special .init and .fini section support. ++ Copyright (C) 1997, 2001, 2002 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Look in abi-note.S for the definition of an ELF note section. */ ++ ++#include ++ ++#define PROD_TYPE_BOX 0 ++#define PROD_TYPE_SLES 1 ++ ++#define NOTE_VERSION 1 ++#define PROD_TYPE PROD_TYPE_BOX ++#define PROD_MAJOR 10 ++#define PROD_MINOR 2 ++ ++/* The linker (GNU ld 2.8 and later) recognizes an allocated section whose ++ name begins with `.note' and creates a PT_NOTE program header entry ++ pointing at it. */ ++ ++ .section ".note.SuSE", "a" ++ .p2align 2 ++ .long 1f - 0f /* name length */ ++ .long 3f - 2f /* data length */ ++ .long 0x45537553 /* note type ("SuSE" in little endian) */ ++0: .asciz "SuSE" /* vendor name */ ++1: ++ .p2align 2 ++2: /* Data */ ++ .byte NOTE_VERSION /* Version of following data */ ++ .byte PROD_TYPE /* product type (box, sles, nld, whatever) */ ++ .byte PROD_MAJOR /* product version */ ++ .byte PROD_MINOR /* product minor version */ ++3: ++ .p2align 2 /* pad out section */ diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes deleted file mode 100644 index aaeae73..0000000 --- a/glibc-testsuite.changes +++ /dev/null @@ -1,8033 +0,0 @@ -------------------------------------------------------------------- -Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de - -- Remove rpcsvc/yppasswd.* from glibc-devel -- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) - -------------------------------------------------------------------- -Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de - -- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) - -------------------------------------------------------------------- -Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de - -- Disable obsolete libnsl and NIS support -- remove-nss-nis-compat.patch: remove nis and compat from default NSS - configs -- nsswitch.conf: Likewise - -------------------------------------------------------------------- -Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de - -- math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ - mode (BZ #21930) - -------------------------------------------------------------------- -Thu Aug 17 12:46:46 UTC 2017 - schwab@suse.de - -- Add iconvconfig to baselibs.conf (bsc#1051042) - -------------------------------------------------------------------- -Thu Aug 10 08:05:15 UTC 2017 - schwab@suse.de - -- resolv-context-leak.patch: Fix leaks of resolver contexts -- dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only - with AVX512F (BZ #21871) -- libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp - or system in libpthread (BZ #21041) - -------------------------------------------------------------------- -Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de - -- Update to glibc 2.26 - * A per-thread cache has been added to malloc - * Unicode 10.0.0 Support - * Improvements to the DNS stub resolver - * New function reallocarray, which resizes an allocated block (like - realloc) to the product of two sizes, with a guaranteed clean failure - upon integer overflow in the multiplication - * New wrappers for the Linux-specific system calls preadv2 and pwritev2 - * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to - create a new session ID for the spawned process - * errno.h is now safe to use from C-preprocessed assembly language on all - supported operating systems - * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements - 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE - 754-2008) and ISO/IEC TS 18661-3:2015 - * The synchronization that pthread_spin_unlock performs has been changed to - now be equivalent to a C11 atomic store with release memory order to the - spin lock's memory location - * The DNS stub resolver no longer performs EDNS fallback - * res_mkquery and res_nmkquery no longer support the IQUERY opcode - * The _res_opcodes variable has been removed from libresolv - * no longer includes inline versions of any string functions, - as this kind of optimization is better done by the compiler - * The nonstandard header has been removed - * The obsolete header has been removed - * The obsolete signal constant SIGUNUSED is no longer defined by - * The obsolete function cfree has been removed - * The stack_t type no longer has the name struct sigaltstack - * The ucontext_t type no longer has the name struct ucontext - * On S/390 GNU/Linux, the constants defined by have been - synced with the kernel - * Linux kernel 3.2 or later is required at runtime, on all architectures - supported by that kernel - * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, - to avoid fragmentation-based spoofing attacks (CVE-2017-12132) - * LD_LIBRARY_PATH is now ignored in binaries running in privileged - AT_SECURE mode to guard against local privilege escalation attacks - (CVE-2017-1000366) - * Avoid printing a backtrace from the __stack_chk_fail function since it - is called on a corrupt stack and a backtrace is unreliable on a - corrupt stack (CVE-2010-3192) - * A use-after-free vulnerability in clntudp_call in the Sun RPC system - has been fixed (CVE-2017-12133) - * fate#322258, fate#321513, fate#322453 -- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, - i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, - sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, - tunables-bigendian.patch: Removed - -------------------------------------------------------------------- -Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de - -- Fix RPM group - -------------------------------------------------------------------- -Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de - -- s390-elision-enable-envvar.patch: enable TLE only if - GLIBC_ELISION_ENABLE=yes is defined (fate#322271) - -------------------------------------------------------------------- -Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de - -- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE - programs (BZ #21209) -- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for - AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) - -------------------------------------------------------------------- -Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de - -- Remove glibc-cpusetsize.diff, no longer useful - -------------------------------------------------------------------- -Wed May 31 10:35:31 UTC 2017 - schwab@suse.de - -- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, - BZ #21289) - -------------------------------------------------------------------- -Mon May 29 18:10:31 UTC 2017 - schwab@suse.de - -- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h - aliasing - -------------------------------------------------------------------- -Mon May 29 10:24:22 UTC 2017 - schwab@suse.de - -- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE - locales (bsc#1039502) - -------------------------------------------------------------------- -Tue May 23 09:54:08 UTC 2017 - schwab@suse.de - -- Remove glibc-testsuite.patch, no longer relevant - -------------------------------------------------------------------- -Mon May 22 10:04:59 UTC 2017 - schwab@suse.de - -- Use multibuild feature -- Remove obsolete check-build.sh -- glibc.rpmlintrc: remove obsolete entries -- Use %tmpfiles_create in nscd postin - -------------------------------------------------------------------- -Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de - -- i686-memchr-sse.patch: Fix i686 memchr overflow calculation - (bsc#1031021, BZ #21182) -- sunrpc-use-after-free.patch: Avoid use-after-free read access in - clntudp_call (BZ #21115) -- Build testsuite with gdb and python-pexpect to enable more tests - -------------------------------------------------------------------- -Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de - -- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ - #21109) - -------------------------------------------------------------------- -Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de - -- Update to glibc 2.25 - * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR - 24731-2:2010, is supported to enable declarations of functions from that - TR. - * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS - 18661-1:2014, is supported to enable declarations of functions and macros - from that TS. - * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS - 18661-4:2015, is supported to enable declarations of functions and macros - from that TS. - * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are - now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. - * The inclusion of by is deprecated. - * New features from TS 18661-1:2014 are added to libm: the - fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the - femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. - * Integer width macros from TS 18661-1:2014 are added to : - CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, - UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to - : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, - INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, - UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, - INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, - UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, - UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, - UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, - UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, - WINT_WIDTH. - * New features are added from TS 18661-1:2014: - - Signaling NaN macros: SNANF, SNAN, SNANL. - - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, - fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, - fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. - - llogb functions: the llogb, llogbf and llogbl functions, and the - FP_LLOGB0 and FP_LLOGBNAN macros. - - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, - fminmagf, fminmagl. - - Comparison macros: iseqsig. - - Classification macros: iscanonical, issubnormal, iszero. - - Total order functions: totalorder, totalorderf, totalorderl, - totalordermag, totalordermagf, totalordermagl. - - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. - - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, - setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. - * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, - are added to libc. - * Most of glibc can now be built with the stack smashing protector enabled. - * The function explicit_bzero, from OpenBSD, has been added to libc. - * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined - to float instead of double. - * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the - float_t and double_t types are now defined to long double instead of float - and double. - * The getentropy and getrandom functions, and the header file - have been added. - * The buffer size for byte-oriented stdio streams is now limited to 8192 - bytes by default. - * The header now includes the header. - * The malloc_get_state and malloc_set_state functions have been removed. - * The “ip6-dotint†and “no-ip6-dotint†resolver options, and the - corresponding RES_NOIP6DOTINT flag from have been removed. - * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING - flag from have been removed. - * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, - RES_BLAST defined in the header file have been deprecated. - * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for - _res.flags are deprecated. - * DNSSEC-related declarations and definitions have been removed from the - header file, and libresolv will no longer attempt to - decode the data part of DNSSEC record types. - * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, - ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the - header file because the distinction between RR types and - meta-RR types is not officially standardized, subject to revision, and - thus not suitable for encoding in a macro. - * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook - and rhook members of the res_state type in have been removed. - * For multi-arch support it is recommended to use a GCC which has - been built with support for GNU indirect functions. - * GDB pretty printers have been added for mutex and condition variable - structures in POSIX Threads. - * Tunables feature added to allow tweaking of the runtime for an application - program. - * A new version of condition variables functions have been implemented in - the NPTL implementation of POSIX Threads to provide stronger ordering - guarantees. - * A new version of pthread_rwlock functions have been implemented to use a more - scalable algorithm primarily through not using a critical section anymore to - make state changes. - * On ARM EABI (32-bit), generating a backtrace for execution contexts which - have been created with makecontext could fail to terminate due to a - missing .cantunwind annotation. (CVE-2016-6323) - * The DNS stub resolver functions would crash due to a NULL pointer - dereference when processing a query with a valid DNS question type which - was used internally in the implementation. (CVE-2015-5180) -- Enable stack protector if part of %optflags -- startcontext-cantunwind.patch: Removed -- cpuid-assertion.patch: Removed - -------------------------------------------------------------------- -Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de - -- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647) - -------------------------------------------------------------------- -Wed Oct 5 15:01:46 UTC 2016 - schwab@suse.de - -- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to - /var/lib/nscd -- glibc-2.3.90-langpackdir.diff: simplify - -------------------------------------------------------------------- -Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de - -- Update to glibc 2.24 - * The minimum Linux kernel version that this version of the GNU C Library - can be used with is 3.2 - * The pap_AN locale has been deleted - * The readdir_r and readdir64_r functions have been deprecated - * The type `union wait' has been removed - * A new NSS action is added to facilitate large distributed system - administration - * The deprecated __malloc_initialize_hook variable has been removed from - the API - * The long unused localedef --old-style option has been removed - * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added - to libm - * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed - (CVE-2016-3075) - * Previously, getaddrinfo copied large amounts of address data to the - stack, even after the fix for CVE-2013-4458 has been applied, - potentially resulting in a stack overflow. getaddrinfo now uses a - heap allocation instead (CVE-2016-3706) - * The glob function suffered from a stack-based buffer overflow when it - was called with the GLOB_ALTDIRFUNC flag and encountered a long file - name (CVE-2016-1234) - * The Sun RPC UDP client could exhaust all available stack space when - flooded with crafted ICMP and UDP messages (CVE-2016-4429) - * The IPv6 name server management code in libresolv could result in a - memory leak for each thread which is created, performs a failing - naming lookup, and exits (CVE-2016-5417) -- startcontext-cantunwind.patch: mark __startcontext as .cantunwind - (bsc#974800, BZ #20435) -- Removed patches: - * 0001-Updated-translations-for-2.23.patch - * 0002-Regenerate-libc.pot-for-2.23.patch - * 0003-Regenerated-configure-scripts.patch - * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch - * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch - * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch - * 0008-Update-NEWS.patch - * 0009-sln-use-stat64.patch - * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch - * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch - * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch - * 0013-Mention-BZ-19762-in-NEWS.patch - * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch - * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch - * 0016-Fix-resource-leak-in-resolver-bug-19257.patch - * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch - * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch - * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch - * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch - * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch - * 0022-configure-fix-test-usage.patch - * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch - * 0025-getnameinfo-Do-not-preserve-errno.patch - * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch - * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch - * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch - * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch - * 0030-hesiod-Remove-RCS-keywords.patch - * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch - * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch - * 0033-malloc-Remove-NO_THREADS.patch - * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch - * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch - * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch - * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch - * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch - * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch - * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch - * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch - * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch - * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch - * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch - * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch - * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch - * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch - * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch - * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch - * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch - * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch - * 0052-Fix-tst-dlsym-error-build.patch - * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch - * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch - * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch - * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch - * clntudp-call-alloca.patch - * glibc-memset-nontemporal.diff - * nis-initgroups-status.patch - * nscd-gc-crash.patch - * robust-mutex-deadlock.patch - * strncat-avoid-array-bounds-warning.patch - -------------------------------------------------------------------- -Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de - -- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for - stncat on i586 (BZ #20260) -- Update glibc.keyring -- Unset MALLOC_CHECK_ during testsuite run - -------------------------------------------------------------------- -Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de - -- nsswitch.conf: Add fallback to files for passwd and group to prepare for - libnsl removal. - -------------------------------------------------------------------- -Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de - -- nis-initgroups-status.patch: Return proper status from - _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) -- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to - check for timeout (bsc#985170, BZ #20263) - -------------------------------------------------------------------- -Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de - -- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ - #19755) - -------------------------------------------------------------------- -Mon May 30 08:23:03 UTC 2016 - schwab@suse.de - -- clntudp-call-alloca.patch: do not use alloca in clntudp_call - (CVE-2016-4429, bsc#980854, BZ #20112) - -------------------------------------------------------------------- -Wed May 11 09:33:47 UTC 2016 - schwab@suse.de - -- Import patches from 2.23 branch - 0001-Updated-translations-for-2.23.patch - 0002-Regenerate-libc.pot-for-2.23.patch - 0003-Regenerated-configure-scripts.patch - 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch - 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch - 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch - 0008-Update-NEWS.patch - 0009-sln-use-stat64.patch - 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch - 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch - 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch - 0013-Mention-BZ-19762-in-NEWS.patch - 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch - 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch - 0016-Fix-resource-leak-in-resolver-bug-19257.patch - 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch - 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch - 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch - 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch - 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch - 0022-configure-fix-test-usage.patch - 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch - 0025-getnameinfo-Do-not-preserve-errno.patch - 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch - 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch - 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch - 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch - 0030-hesiod-Remove-RCS-keywords.patch - 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch - 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch - 0033-malloc-Remove-NO_THREADS.patch - 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch - 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch - 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch - 0037-malloc-Add-missing-internal_function-attributes-on-f.patch - 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch - 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch - 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch - 0041-nss_dns-Check-address-length-before-creating-addrinf.patch - 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch - 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch - 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch - 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch - 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch - 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch - 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch - 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch - 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch - 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch - 0052-Fix-tst-dlsym-error-build.patch - 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch - 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch - 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch - 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch -- CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 -- resolv-mem-leak.patch: renamed to - 0016-Fix-resource-leak-in-resolver-bug-19257.patch -- no-long-double.patch: renamed to - 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch -- glibc-gcc6.patch: renamed to - 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - -------------------------------------------------------------------- -Mon May 9 14:00:41 UTC 2016 - schwab@suse.de - -- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories -- glibc-2.3.locales.diff.bz2: likewise - -------------------------------------------------------------------- -Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com - -- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with - -Wparentheses - -------------------------------------------------------------------- -Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de - -- Add compatibility symlinks for LSB 3.0 (fate#318933) - -------------------------------------------------------------------- -Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de - -- powerpc-elision-enable-envvar.patch: enable TLE only if - GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) - -------------------------------------------------------------------- -Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de - -- ldd-system-interp.patch: Restore warning about execution permission, it - is still needed for noexec mounts (bsc#915985) - -------------------------------------------------------------------- -Tue Mar 8 15:28:16 UTC 2016 - idonmez@suse.com - -- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) - and rh#902094 . Added with glibc-c-utf8-locale.patch. -- Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for - C.UTF-8 same as C locale. - -------------------------------------------------------------------- -Mon Mar 7 14:47:50 UTC 2016 - schwab@suse.de - -- Move %install_info_delete to %preun -- crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer - acceptable - -------------------------------------------------------------------- -Tue Feb 23 16:11:36 UTC 2016 - schwab@suse.de - -- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE - -------------------------------------------------------------------- -Mon Feb 22 11:05:12 UTC 2016 - schwab@suse.de - -- Update to glibc 2.23 release. - * Unicode 8.0.0 Support - * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess - the kernel-internal CPU set size - * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 - * getaddrinfo now detects certain invalid responses on an internal - netlink socket - * A defect in the malloc implementation, present since glibc 2.15 (2012) - or glibc 2.10 via --enable-experimental-malloc (2009), could result in - the unnecessary serialization of memory allocation requests across - threads - * The obsolete header has been removed - * The obsolete functions bdflush, create_module, get_kernel_syms, - query_module and uselib are no longer available to newly linked - binaries - * Optimized string, wcsmbs and memory functions for IBM z13. - * Newly linked programs that define a variable called signgam will no - longer have it set by the lgamma, lgammaf and lgammal functions -- Removed patches: - * dont-remove-nodelete-flag.patch - * openat64-readd-o-largefile.patch - * mntent-blank-line.patch - * opendir-o-directory-check.patch - * strcoll-remove-strdiff-opt.patch - * ld-pointer-guard.patch - * tls-dtor-list-mangling.patch - * powerpc-lock-elision-race.patch - * prelink-elf-rtype-class.patch - * vector-finite-math-aliases.patch - * powerpc-elision-adapt-param.patch - * catopen-unbound-alloca.patch - * strftime-range-check.patch - * hcreate-overflow-check.patch - * errorcheck-mutex-no-elision.patch - * refactor-nan-parsing.patch - * send-dg-buffer-overflow.patch - * isinf-cxx11-conflict.patch - * ibm93x-redundant-shift-si.patch - * iconv-reset-input-buffer.patch - * tzset-tzname.patch - * static-dlopen.patch - -------------------------------------------------------------------- -Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de - -- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with - C++11 (bsc#963700, BZ #19439) - -------------------------------------------------------------------- -Wed Feb 17 09:48:26 UTC 2016 - schwab@suse.de - -- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling - (BZ #19018) -- prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits - for prelink (BZ #19178) -- vector-finite-math-aliases.patch: Better workaround for aliases of - *_finite symbols in vector math library (BZ# 19058) -- powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision - transient failure adapt param (BZ #19174) -- catopen-unbound-alloca.patch: Fix unbound alloca in catopen - (CVE-2015-8779, bsc#962739, BZ #17905) -- strftime-range-check.patch: Add range check on time fields - (CVE-2015-8776, bsc#962736, BZ #18985) -- hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, - bsc#962737, BZ #18240) -- errorcheck-mutex-no-elision.patch: Don't do lock elision on an error - checking mutex (bsc#956716, BZ #17514) -- refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads - (CVE-2014-9761, bsc#962738, BZ #16962) -- send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer - overflow (CVE-2015-7547, bsc#961721, BZ #18665) -- powerpc-lock-elision-race.patch: renamed from - 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch - -------------------------------------------------------------------- -Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de - -- Add audit-devel and libcap-devel to BuildRequires, for use by nscd - -------------------------------------------------------------------- -Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de - -- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock - on fork (bsc#958315, BZ #19282) - -------------------------------------------------------------------- -Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de - -- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) -- tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set - DST rules only (BZ #19253) - -------------------------------------------------------------------- -Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de - -- glibc-2.3.90-noversion.diff: use stat64 - -------------------------------------------------------------------- -Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de - -- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, - bsc#950944, BZ #18928) - -------------------------------------------------------------------- -Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de - -- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based - optimization (BZ #18589) - -------------------------------------------------------------------- -Thu Oct 8 14:26:14 UTC 2015 - schwab@suse.de - -- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE - error handler (BZ #18830) - -------------------------------------------------------------------- -Wed Sep 30 11:48:05 UTC 2015 - normand@linux.vnet.ibm.com - -- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock - 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch - -------------------------------------------------------------------- -Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de - -- nss-files-long-lines-2.patch: Properly reread entry after failure in - nss_files getent function (bsc#945779, BZ #18991) - -------------------------------------------------------------------- -Wed Sep 16 10:21:43 UTC 2015 - schwab@suse.de - -- fnmatch-collating-elements.patch: Fix fnmatch handling of collating - elements (BZ #17396, BZ #16976) - -------------------------------------------------------------------- -Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de - -- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works - test -- static-dlopen.patch: Static dlopen default library search path fix - (bsc#937853) - -------------------------------------------------------------------- -Mon Aug 31 12:21:29 UTC 2015 - schwab@suse.de - -- mntent-blank-line.patch: Fix memory corruption w/blank lines - -------------------------------------------------------------------- -Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de - -- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from - all loaded objects on failed dlopen -- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 - -------------------------------------------------------------------- -Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de - -- Update to glibc 2.22 release. - * Cache information can be queried via sysconf() function on s390 - * A buffer overflow in gethostbyname_r and related functions performing DNS - requests has been fixed. (CVE-2015-1781) - * The time zone file parser has been made more robust against crafted time - zone files - * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors - for LD and GD on x86 and x86-64, has been implemented. - * Character encoding and ctype tables were updated to Unicode 7.0.0 - * Added vector math library named libmvec - * A new fmemopen implementation has been added with the goal of POSIX - compliance. - * The header is deprecated, and will be removed in a future - release. - * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 - bsc#940195 bsc#940332 bsc#944494 bsc#968787 -- Patches from upstream removed - * htm-tabort.patch - * o-tmpfile.patch - * memcpy-chk-non-SSE2.patch - * pthread-mutexattr-gettype-kind.patch - * powerpc-software-sqrt.patch - * static-tls-dtv-limit.patch - * threaded-trim-threshold.patch - * resolv-nameserver-handling.patch - * nss-separate-state-getXXent.patch - * aarch64-sigstksz.patch - * heap-top-corruption.patch - * pthread-join-deadlock.patch - -------------------------------------------------------------------- -Mon Jul 27 09:08:21 UTC 2015 - schwab@suse.de - -- pthread-join-deadlock.patch: Use IE model for static variables in - libc.so, libpthread.so and rtld (bsc#930015, BZ #18457) - -------------------------------------------------------------------- -Wed Jul 22 09:13:48 UTC 2015 - schwab@suse.de - -- glibc-nodate.patch: fix verification of timestamp - -------------------------------------------------------------------- -Tue Jul 21 07:50:22 UTC 2015 - meissner@suse.com - -- also filter out -fstack-protector-strong - -------------------------------------------------------------------- -Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de - -- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start - before IPv6 is up (bsc#931399) -- glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE. - -------------------------------------------------------------------- -Tue Jun 9 08:16:46 UTC 2015 - schwab@suse.de - -- Add /usr/include/gnu/lib-names-.*.h to baselibs -- pthread-join-deadlock.patch: Don't require rtld lock to store static TLS - offset in the DTV (bsc#930015, BZ #18457) -- heap-top-corruption.patch: Do not corrupt the top of a threaded heap if - top chunk is MINSIZE (BZ #18502) - -------------------------------------------------------------------- -Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com - -- threaded-trim-threshold.patch: Fix regression in threaded application - malloc performance (bsc#915955, BZ #17195) - -------------------------------------------------------------------- -Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de - -- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) - -------------------------------------------------------------------- -Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de - -- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ - #17967) -- nss-separate-state-getXXent.patch: Separate internal state between - getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) -- static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS - limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, - BZ #17628) - -------------------------------------------------------------------- -Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de - -- resolv-nameserver-handling.patch: Replace with simpler version with more - compatibility - -------------------------------------------------------------------- -Mon Mar 2 14:27:02 UTC 2015 - schwab@suse.de - -- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs - (bsc#920084) - -------------------------------------------------------------------- -Tue Feb 24 10:11:46 UTC 2015 - schwab@suse.de - -- resolv-nameserver-handling.patch: Rewrite handling of nameserver - configuration in resolver - -------------------------------------------------------------------- -Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de - -- htm-tabort.patch: Fix TABORT encoding for little endian - -------------------------------------------------------------------- -Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de - -- Update to glibc 2.21 release. - * A new semaphore algorithm has been implemented in generic C code for all - machines - * Added support for TSX lock elision of pthread mutexes on powerpc32, - powerpc64 and powerpc64le - * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for - AArch64 - * i386 memcpy functions optimized with SSE2 unaligned load/store - * New locales: tu_IN, bh_IN, raj_IN, ce_RU - * The obsolete sigvec function has been removed - * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 - CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 -- Patches from upstream removed - * ifunc-x86-slow-sse4.patch - * pthread-mutex-trylock-elision.patch -- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with - non-default O_DIRECTORY (BZ #17912) - -------------------------------------------------------------------- -Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de - -- Update to crypt_blowfish 1.3. - * Add support for the $2b$ prefix. -- ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit - (BZ #17501) - -------------------------------------------------------------------- -Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de - -- Update to glibc 2.20 release. - * Reverted change of ABI data structures for s390 and s390x - * Support for file description locks is added to systems running the - Linux kernel - * Optimized strchr implementation for AArch64 - * The minimum Linux kernel version that this version of the GNU C Library - can be used with is 2.6.32 - * Running the testsuite no longer terminates as soon as a test fails - * The am33 port, which had not worked for several years, has been removed - from ports. - * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer - supported; they now act the same as _DEFAULT_SOURCE (but generate a - warning) - * Optimized strcmp implementation for ARMv7 - * Added support for TX lock elision of pthread mutexes on s390 and s390x - * All supported architectures now use the main glibc sysdeps directory - instead of some being in a separate "ports" directory - * The NPTL implementation of POSIX pthreads is no longer an "add-on" - * Locale names, including those obtained from environment variables (LANG - and the LC_* variables), are more tightly checked for proper syntax - * On x86-64, the dynamic linker's lazy-binding support is now compatible - with application code using Intel MPX instructions - * CVE-2013-7423 bsc#915526 bsc#934084 bsc#973010 -- Patches from upstream removed - * nss-dns-memleak.patch - * sin-sign.patch - * pldd-wait-ptrace-stop.patch - * nscd-track-startup-failures.patch - * powerpc-opt-power8.patch - * check-pf-alloca.patch - * getaddrinfo-uninit-result.patch - * ppc64-copysign.patch - * nextafterl-ibm-ldouble.patch - * ibm-long-double-math.patch - * ibm-long-double-frexpl.patch - * aarch64-setcontext.patch - * nss-nis-stack-use.patch - * psfaa.patch - * nss-files-long-lines.patch - * setlocale-directory-traversal.patch - * dt-ppc64-num.patch - * ppc64le-profiling.patch - * s390-revert-abi-change.patch - * disable-gconv-translit-modules.patch - * resolv-dont-ignore-second-answer.patch - * iconv-ibm-sentinel-check.patch -- Remove sprof.1, and mtrace.1, now included in the man-pages package - (bsc#967190) - -------------------------------------------------------------------- -Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de - -- iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM - gconv modules (CVE-2014-6040, bnc#894553, BZ #17325) - -------------------------------------------------------------------- -Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de - -- disable-gconv-translit-modules.patch: Disable gconv transliteration - module loading (CVE-2014-5119, bnc#892073, BZ #17187) - -------------------------------------------------------------------- -Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de - -- pthread-mutexattr-gettype-kind.patch: Filter out - PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype - (bnc#888131, BZ #15790) - -------------------------------------------------------------------- -Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de - -- ppc64le-profiling.patch: fix profiling for ppc64le (bnc#889601, BZ - #17213) -- s390-revert-abi-change.patch: replace with upstream patch, switches - default symbol version back to old version (bnc#887228) - -------------------------------------------------------------------- -Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de - -- ibm93x-redundant-shift-si.patch: Avoid redundant shift character in - iconv output at block boundary (bnc#886416, BZ #17197) - -------------------------------------------------------------------- -Thu Jul 24 15:35:50 UTC 2014 - schwab@suse.de - -- s390-revert-abi-change.patch: revert back to pre-2.19 layout of jmp_buf - and ucontext_t on s390 (bnc#887228) - -------------------------------------------------------------------- -Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de - -- dt-ppc64-num.patch: Correct DT_PPC64_NUM (bnc#887169, BZ #17153) - -------------------------------------------------------------------- -Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de - -- setlocale-directory-traversal.patch: Directory traversal in locale - environment handling (CVE-2014-0475, bnc#887022, BZ #17137) -- Remove the ppc64le check-abi workaround, no longer needed - -------------------------------------------------------------------- -Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de - -- nss-files-long-lines.patch: Don't ignore too long lines in nss_files - (bnc#883217, BZ #17079) -- Remove locale.1, localedef.1 and iconvconfig.8 manpages, now included in - the man-pages package (bnc#880703) -- manpages.patch: update - -------------------------------------------------------------------- -Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de - -- psfaa.patch: copy filename argument in posix_spawn_file_actions_addopen - (CVE-2014-4043, bnc#882600, BZ #17048) - -------------------------------------------------------------------- -Wed May 28 15:11:45 UTC 2014 - matz@suse.de - -- glibc-memset-nontemporal.diff: Speedup memset on x86_64 - (bnc#868622, BZ #16830) - -------------------------------------------------------------------- -Thu May 15 15:45:03 UTC 2014 - schwab@suse.de - -- add non-elision-enabled libpthread - -------------------------------------------------------------------- -Mon May 12 13:22:40 UTC 2014 - schwab@suse.de - -- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ - #16932) - -------------------------------------------------------------------- -Wed May 7 10:13:24 UTC 2014 - schwab@suse.de - -- getaddrinfo-uninit-result.patch: fix parsing of getai result for - IPv6-only request (bnc#876521) - -------------------------------------------------------------------- -Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de - -- ibm-long-double-frexpl.patch: Correct IBM long double frexpl - (bnc#872573, BZ #16740, BZ #16619) - -------------------------------------------------------------------- -Tue Apr 15 14:23:54 UTC 2014 - schwab@suse.de - -- ibm-long-double-math.patch: Remove faulty assembler implementations of - ceil, nearbyintl, roundl for IBM long double (bnc#873457, BZ #16701, BZ - #16706, BZ #16707) - -------------------------------------------------------------------- -Tue Apr 15 11:00:59 UTC 2014 - aj@suse.com - -- Use /run for nscd instead of /var/run. - -------------------------------------------------------------------- -Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de - -- pthread-mutex-destroy.patch: Remove -- pthread-mutex-trylock-elision.patch: Properly handle forced elision in - pthread_mutex_trylock (bnc#865968, BZ #16657) - -------------------------------------------------------------------- -Thu Apr 3 07:32:24 UTC 2014 - schwab@suse.de - -- nextafterl-ibm-ldouble.patch: Correct IBM long double nextafterl - (bnc#871637, BZ #16739) - -------------------------------------------------------------------- -Tue Apr 1 13:33:24 UTC 2014 - schwab@suse.de - -- Readd dependency on sysvinit.target to nscd.service (bnc#868422) -- Make the nscd service part of the nss-lookup and nss-user-lookup targets - (bnc#871386) -- Move _constraints back to main package and update it - -------------------------------------------------------------------- -Tue Apr 1 07:55:19 UTC 2014 - schwab@suse.de - -- ppc64-copysign.patch: Fix ppc64le copysign overwriting parent stack - frame (BZ #16786) -- aarch64-setcontext.patch: Fix aarch64 setcontext clobbering alternate - signal stack (BZ #16629) - -------------------------------------------------------------------- -Mon Mar 31 13:22:56 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: readd POWER8 implementation of isnan, - isinf, finite with fix for little endian (bnc#871353) -- pthread-mutex-destroy.patch: Skip checks in pthread_mutex_destroy when - doing elision (bnc#865968) - -------------------------------------------------------------------- -Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan, - isinf, finite; fix missing static symbols -- glibc-2.14-crypt.diff: update for file renaming - -------------------------------------------------------------------- -Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de - -- check-pf-alloca.patch: remove use of alloca while collecting interface - addresses - -------------------------------------------------------------------- -Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de - -- abort-no-flush.patch: Don't close or flush stdio streams on abort (BZ - #15436) -- fix-locking-in-_IO_cleanup.patch: always do locking when accessing - streams (bnc#796982, BZ #15142) -- resolv-dont-ignore-second-answer.patch: don't ignore second answer from - nameserver if the first one was empty (bnc#767266, BZ #13651) -- ldd-system-interp.patch: Never try to execute the file in ldd - (CVE-2009-5064, bnc#677787, BZ #16750) - -------------------------------------------------------------------- -Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de - -- check-pf-alloca.patch: Account for alloca use when collecting interface - addresses (bnc#785041, BZ #16002) - -------------------------------------------------------------------- -Mon Mar 24 07:59:40 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: two more POWER8 optimisations (bnc#866711, - fate#315443) - -------------------------------------------------------------------- -Thu Mar 20 14:52:47 UTC 2014 - schwab@suse.de - -- getaddrinfo-uninit-result.patch: Fix use of half-initialized result in - getaddrinfo when using nscd (bnc#867636, BZ #16743) - -------------------------------------------------------------------- -Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de - -- Remove dependency on sysinit.target from nscd.service again (bnc#86422) - -------------------------------------------------------------------- -Wed Mar 19 14:39:55 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: GLIBC Optimizations For POWER8 Hardware - (bnc#866711, fate#315443) - -------------------------------------------------------------------- -Tue Mar 18 17:10:43 UTC 2014 - schwab@suse.de - -- Make sure nscd is started after sysinit.target (bnc#868422) -- nscd-track-startup-failures.patch: properly track startup failures in - nscd and mark nscd.service as forking (BZ #16639) - -------------------------------------------------------------------- -Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de - -- Add services and netgroup persistent caches to nscd file list - -------------------------------------------------------------------- -Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de - -- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) -- pldd-wait-ptrace-stop.patch: Update from upstream - -------------------------------------------------------------------- -Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de - -- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499) -- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686 - -------------------------------------------------------------------- -Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de - -- Bump minimum kernel to 3.0 - -------------------------------------------------------------------- -Sun Feb 9 13:52:23 UTC 2014 - schwab@suse.de - -- Update to glibc 2.19 release - -------------------------------------------------------------------- -Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de - -- Update to glibc 2.18.90 ee7cc3853761: - * More bug fixes - * SystemTap probes for slow multiple precision fallback paths of - transcendental functions have been introduced. - * Preliminary documentation about Multi-Thread, Async-Signal and - Async-Cancel Safety has been added. - * Change powerpc64le start ABI to 2.17 -- Add /usr/local/lib64 to ld.so.conf on all lib64 platforms -- Enable profile build for aarch64 -- ppc64le-abilist.patch: Removed - -------------------------------------------------------------------- -Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com - -- make pwdutils a real buildrequire - Requires(pre) are used during builds, but don't trigger rebuilds. - But to create clearly defined bootstrap projects, it's essential - to know what packages are required for others. So move this requires - to build to a buildrequire - -------------------------------------------------------------------- -Tue Jan 7 14:30:50 UTC 2014 - schwab@suse.de - -- Update to glibc 2.18.90 94c8a4bc574c: - * More bug fixes - * Slovenian translations for glibc messages have been contributed by the - Translation Project's Slovenian team of translators. - -------------------------------------------------------------------- -Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 83f5c32d21f7: - * Support for STT_GNU_IFUNC symbols added for ppc64 - * A new feature test macro _DEFAULT_SOURCE is available - * The _BSD_SOURCE feature test macro no longer enables BSD interfaces - that conflict with POSIX. The libbsd-compat library (which was a - dummy library that did nothing) has also been removed. - * Added support for version-3 tz format files -- i686-no-sse42-strstr.patch: Removed - -------------------------------------------------------------------- -Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 aeb95445d128: - * More bug fixes - * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ - * The public headers no longer use __unused nor __block - * Support for PowerPC64 ELFv2 ABI -- ppc64le-abilist.patch: ABI lists for PowerLE - -------------------------------------------------------------------- -Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 bd12ab55c05e: - * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW, - pap_CW, quz_PE, the_NP. - * Substantially revised locales: gd_GB, ht_HT - * The LC_ADDRESS field was updated to support country_car for almost all - supported locales. - * ISO 1427 definitions were updated. - * ISO 3166 definitions were updated. - * The localedef utility now supports --big-endian and --little-endian - command-line options to generate locales for a different system from that - for which the C library was built. - * Binary locale files now only depend on the endianness of the system for - which they are generated and not on other properties of that system. - * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh, - cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue). - * SystemTap probes for malloc have been introduced. - * Support for powerpc64le has been added. - * The soft-float powerpc port now supports e500 processors. -- Remove upstreamed patches: - cbrtl-ldbl-96.patch - fcntl-o-tmpfile.patch - getaddrinfo-overflow.patch - glibc-2.18.tar.xz - glibc-ld-profile.patch - glibc-nscd-hconf.diff - i686-strcasecmp-fallback.patch - m68k-Scrt1.patch - malloc-overflows.patch - nonascii-case.patch - nss-database.patch - printf-overrun.patch - readdir_r-overflow.patch - strcoll-overflow.patch -- Remove obsolete patches: - glibc-2.4.90-revert-only-euro.diff - -------------------------------------------------------------------- -Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de - -- getaddrinfo-overflow.patch: Fix stack overflow due to large AF_INET6 - requests (CVE-2013-4458, bnc#847227) - -------------------------------------------------------------------- -Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de - -- Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) - -------------------------------------------------------------------- -Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de - -- Depend on gcc defaults for base powerpc optimisations (bnc#844824) - -------------------------------------------------------------------- -Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de - -- Enable ports addon for m68k and adapt file list -- m68k-Scrt1.patch: Use PIC for Scrt1.o - -------------------------------------------------------------------- -Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de - -- nscd-server-user.patch: run nscd as user nscd (fate#314673) - -------------------------------------------------------------------- -Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de - -- malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332, - bnc#839870) - -------------------------------------------------------------------- -Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de - -- fcntl-o-tmpfile.patch: Add O_TMPFILE to (bnc#837965) -- strcoll-overflow.patch: Update to latest version - -------------------------------------------------------------------- -Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18 release - * No source change -- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, - bnc#779320) -- readdir_r-overflow.patch: fix readdir_r with long file names - (CVE-2013-4237, bnc#834594) - -------------------------------------------------------------------- -Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de - -- Update to glibc 2.17.90 85891acadf1b: - * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal - has been fixed by disabling the use of pt_chown (Bugzilla #15755). - Distributions can re-enable building and using pt_chown via the new configure - option `--enable-pt_chown'. Enabling the use of pt_chown carries with it - considerable security risks and should only be used if the distribution - understands and accepts the risks. - * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla - #15078). - * CVE-2013-1914 Stack overflow in getaddrinfo with many results has been - fixed (Bugzilla #15330). - * Add support for calling C++11 thread_local object destructors on thread - and program exit. This needs compiler support for offloading C++11 - destructor calls to glibc. - * Improved worst case performance of libm functions with double inputs and - output. - * Support for priority inherited mutexes in pthread condition variables on - non-x86 architectures. - * Optimized string functions for AArch64. Implemented by Marcus Shawcroft. - * Optimized string functions for ARM. Implemented by Will Newton and - Richard Henderson. - * Added a benchmark framework to track performance of functions in glibc. - * New macro named issignaling to check for a signaling NaN (sNaN). - It is based on draft TS 18661 and currently enabled as a GNU extension. - * On Linux, the clock function now uses the clock_gettime system call - for improved precision, rather than old times system call. - * Added new API functions pthread_getattr_default_np and - pthread_setattr_default_np to get and set the default pthread - attributes of a process. - * Added support for TSX lock elision for pthread mutexes on i386 and x86-64. - This may improve lock scaling of existing programs on TSX capable systems. - * Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10 - availability). Implemented by Ryan S. Arnold. - * Support added for POWER8 platform. Implemented by Ryan S. Arnold. -- Remove upstreamed patches: - pthread-cond-timedwait-i486.patch - glibc-aarch64-lib64.patch - arm-ld-so-cache.patch - rtlddir.patch - regexp-overrun.patch - getaddrinfo-overflow.patch - nscd-netgroup.patch - disable-pt-chown.patch - nscd-short-write.patch - big5-hkscs-update.patch.bz2 - digits-dots.patch - strptime-W-week.patch - aarch64-sigsetjmp.patch -- Rediff all remaining patches -- Reenable stackguard randomization on arm -- Recognize ppc64p7 arch to build for power7 -- Remove all ABI extensions from libcrypt -- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96 - -------------------------------------------------------------------- -Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de - -- i686-strcasecmp-fallback.patch: fix fallback in i686 - strcasecmp/strncasecmp -- nonascii-case.patch: also test strncasecmp -- pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after - detaching (bnc#819383) - -------------------------------------------------------------------- -Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de - -- disable-pt-chown.patch: disable use of pt_chown (CVE-2013-2207, - bnc#830257) -- nonascii-case.patch: fix strcasecmp in tr_TR.ISO-8859-9 locale -- glibc-2.14-crypt.diff: fix incomplete dependencies for libowcrypt - -------------------------------------------------------------------- -Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de - -- crypt_blowfish-gensalt.patch: separare crypt_gensalt into its own - library libowcrypt, remove crypt_rn and crypt_ra (fate#314945) -- glibc-2.14-crypt-versioning.diff, glibc-fix-check-abi.patch, - glibc-crypt-badsalttest.patch: folded into glibc-2.14-crypt.diff -- crypt_blowfish-const.patch: constify crypt_blowfish -- crypt_blowfish-1.2-sha.diff: refresh - -------------------------------------------------------------------- -Fri Jun 28 12:26:38 UTC 2013 - dmueller@suse.com - -- add ld-linux.so.3 compat symlink also for armv6hl -- remove deprecated armv7l - -------------------------------------------------------------------- -Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com - -- rely on systemd-rpm-macros instead of the full thing - -------------------------------------------------------------------- -Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de - -- nscd-netgroup.patch: Fix handling of netgroup cache in nscd (bnc#819524) - -------------------------------------------------------------------- -Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de - -- glibc-bindresvport-blacklist.diff: Renamed from - glibc-2.3.90-bindresvport.blacklist.diff; fix resource leaks - (bnc#824046) -- Remove glibc-armhf-compat.patch - -------------------------------------------------------------------- -Mon May 20 08:26:35 UTC 2013 - schwab@suse.de - -- aarch64-sigsetjmp.patch: Fix sigsetjmp on aarch64 - -------------------------------------------------------------------- -Sat May 18 09:34:41 UTC 2013 - schwab@suse.de - -- Fix file list for glibc-utils - -------------------------------------------------------------------- -Thu May 16 12:02:14 UTC 2013 - schwab@suse.de - -- big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 -- digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r -- nss-database.patch: Properly cache the result from looking up the nss - database config -- strptime-W-week.patch: Properly handle %W in strptime -- printf-overrun.patch: Revert problematic fixes for [BZ #11741] -- glibc-aarch64-lib64.patch: Replace with upstream version -- arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache -- rtlddir.patch: Add support for rtld directory different from slib - directory -- regexp-overrun.patch: Fix buffer overrun in regexp matcher - (CVE-2013-0242, bnc#801246) -- getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many - results (CVE-2013-1914, bnc#813121) - -------------------------------------------------------------------- -Thu May 16 10:04:01 UTC 2013 - schwab@suse.de - -- When testsuite run fails make all test output available - -------------------------------------------------------------------- -Tue May 7 10:00:00 UTC 2013 - schwab@suse.de - -- Fix check for XEN build in glibc_post_upgrade - -------------------------------------------------------------------- -Sun Apr 14 02:41:52 UTC 2013 - crrodriguez@opensuse.org - -- Do not order nscd after syslog.target - -------------------------------------------------------------------- -Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de - -- Fix crypt ABI for aarch64 - -------------------------------------------------------------------- -Thu Feb 28 14:30:44 UTC 2013 - schwab@suse.de - -- manpages.patch: - Remove debianisms from manpages (bnc#805054) - -------------------------------------------------------------------- -Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de - -- Update crypt ABI for aarch64 -- glibc-aarch64-lib64.patch: - Use lib64 for aarch64 and add link for /lib/ld-linux-aarch64.so.1 -- Don't build profiling libraries for aarch64 - -------------------------------------------------------------------- -Tue Feb 5 09:28:44 UTC 2013 - schwab@suse.de - -- Move _constraints file to glibc-testsuite only - -------------------------------------------------------------------- -Sun Feb 3 00:08:54 UTC 2013 - dmueller@suse.com - -- build with ports enabled on aarch64 - -------------------------------------------------------------------- -Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de - -- Obsolete unscd to migrate back to nscd. - -------------------------------------------------------------------- -Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com - -- looks like testsuite runs only on kvm, so add _constraint - (actually it does not build on xen, but I can't constraint that) - -------------------------------------------------------------------- -Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de - -- Don't run testsuite in parallel -- Fail if testsuite fails -- Disable crypt/badsalttest test - -------------------------------------------------------------------- -Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com - -- add _constraints file to make sure glibc-testsuite only builds on big - hosts. Otherwise it's running out of memory and stalls - -------------------------------------------------------------------- -Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de - -- Set bugurl to bugs.opensuse.org - -------------------------------------------------------------------- -Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de - -- Update to glibc 2.17 release (git id c758a6861537): - * bump version number - * update translations - -------------------------------------------------------------------- -Tue Dec 18 10:28:01 UTC 2012 - schwab@suse.de - -- Move glibc-utils subpackage to own specfile and enable programs that - require libgd -- Filter GLIBC_PRIVATE symbols -- Don't stop at first error in testsuite run - -------------------------------------------------------------------- -Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de - -- Split off glibc-testsuite package - -------------------------------------------------------------------- -Fri Dec 14 19:31:45 UTC 2012 - aj@suse.de - -- Build profile and locale packages for i686 as well. - -------------------------------------------------------------------- -Wed Dec 12 08:32:53 UTC 2012 - aj@suse.de - -- Update to 4641d57e1e00: - * Updated translations - * bug fixes - -------------------------------------------------------------------- -Mon Dec 10 13:08:01 UTC 2012 - schwab@suse.de - -- pthread-cond-timedwait-i486.patch: - Extend i486 pthread_cond_timedwait to use futex syscall with absolute - timeout -- nscd-short-write.patch: - Properly check for short writes when sending the response in nscd - -------------------------------------------------------------------- -Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de - -- Update to 56e7d3ad5c2f: - * Bugfixes - * Fix warnings building glibc -- Remove upstreamed patch glibc-revert-fseek-on-fclose.diff - -------------------------------------------------------------------- -Mon Dec 3 15:45:08 UTC 2012 - aj@suse.de - -- Remove nosegneg i686 library, it's only used for a 32-bit Xen - hypervisor (not for a 32-bit guest running under 64-bit hypervisor), - and since the 32-bit Xen hypervisor is not part of openSUSE anymore, - it is unneeded (bnc#789607). - -------------------------------------------------------------------- -Mon Dec 3 14:47:22 UTC 2012 - schwab@suse.de - -- Suppress error message from systemctl in %post -n nscd (bnc#792333) - -------------------------------------------------------------------- -Sat Dec 1 08:55:05 UTC 2012 - aj@suse.de - -- Update to f638872ab422: - Fix regression introduced with last update in sunrpc code - Fix assertion failure in resolver - Bug fixes -- Remove upstreamed patch glibc-resolv-assert.diff - -------------------------------------------------------------------- -Fri Nov 30 09:15:15 UTC 2012 - aj@suse.de - -- Update to c93ec1f091ec: - Warn about unsupported DT_FLAGS_1 flags - Add Interlingua locale - Bug fixes - -------------------------------------------------------------------- -Thu Nov 29 14:30:11 UTC 2012 - schwab@suse.de - -- Remove obsolete patches: - glibc-strict-aliasing.diff - nscd-avoid-gcc-warning.diff - -------------------------------------------------------------------- -Wed Nov 28 15:48:32 UTC 2012 - aj@suse.de - -- Update to e3c6aa3a5848: - * Fix powerpc64 make abi check failure - * bugfixes -- Install nscd.socket to new /usr location - -------------------------------------------------------------------- -Wed Nov 28 09:31:11 UTC 2012 - schwab@suse.de - -- Reenable multi-arch on ppc ppc64 - -------------------------------------------------------------------- -Tue Nov 27 21:34:15 UTC 2012 - aj@suse.de - -- Update to de2fd463b1c0: - Various bugfixes including: - * Fix fwrite bug causing grep etc testsuite failure - * sotruss: fix argument parsing - * Check supported DF_1_XXX bits - Add new locales niu_NU and niu_NZ -- Refresh patch glibc-revert-fseek-on-fclose.diff - -------------------------------------------------------------------- -Sat Nov 24 13:48:40 UTC 2012 - aj@suse.de - -- Remove nscd init script, use systemd files. - -------------------------------------------------------------------- -Fri Nov 23 14:33:37 UTC 2012 - matz@suse.com - -- Fix getaddrinfo-ipv6-sanity.diff to apply again. - -------------------------------------------------------------------- -Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de - -- Update to f59cba71d848: - * Various bug fixes - * Add new locales szl_PL, ayc_PE, nhn_MX, doi_IN, mni_IN, sat_IN. - * Remove patch glibc-compiled-binaries.diff since getconf can not be - cross-compiled - * Refresh patch glibc-2.3.90-bindresvport.blacklist.diff - -------------------------------------------------------------------- -Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de - -- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c): - * Upstream changes: - + ports is now part of main tarball - + Add port to ARM AArch64 - + New function secure_getenv - + Systemtap static probes - + The `clock_*' suite of functions (declared in ) is now - available directly in the main C library. - + The `crypt' function now fails if passed salt bytes that violate the - specification for those values. On Linux, the `crypt' function will - consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is - enabled, and fail on encrypted strings using the MD5 or DES algorithm - when the mode is enabled. - + Optimzations and bug fixes - * remove upstream patches malloc-check-size.patch, - glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch, - pthread-cond-wait-revert.patch - * Remove now obsolete patch glibc-gai-private4.diff - * Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff, - glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff, - glibc-revert-fseek-on-fclose.diff - * Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff - and glibc-gai-private4.diff. - * Use git id instead of ChangeLog date in version output (patch glibc-version.diff) - * Enable multi-arch on all architectures that support it. - -------------------------------------------------------------------- -Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de - -- Avoid shell comment leaking into %post. - -------------------------------------------------------------------- -Thu Oct 25 07:30:04 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 c3b96f90c9c1: - - Fix missing _mcount@GLIBC_2.0 on powerpc32 (replaces - patch glibc-2.16-ppc32-mcount.patch) -- Drop patch glibc-elf-localscope.diff, fixed upstream in 2.16 - in a different way. - -------------------------------------------------------------------- -Tue Oct 9 07:15:12 UTC 2012 - aj@suse.de - -- Fix malloc_usable_size (swo#1349, bnc#745247) (patch - malloc-check-size.patch). - -- Update to current glibc 2.16 (git a5cfcf08ffaa): - * fix fma detection - * Don't parse %s format argument as multibyte string - * Use size_t instead of int for internal variables in glob - * Properly handle fencepost with MALLOC_ALIGN_MASK - -------------------------------------------------------------------- -Sat Oct 6 08:51:46 UTC 2012 - meissner@suse.com - -- make glibc-devel- require glibc- just - like glibc-devel - -------------------------------------------------------------------- -Fri Sep 28 07:47:33 UTC 2012 - aj@suse.de - -- Fix crash in relocation on sparc with bind-now (swo#14376) - (patch sparc-bind-now.patch). - -------------------------------------------------------------------- -Thu Sep 27 12:20:11 UTC 2012 - aj@suse.de - -- Fix check-abi on more architectures (bnc#780696), patch by Jan - Engelhardt (updated patch glibc-fix-check-abi.patch). - -------------------------------------------------------------------- -Tue Sep 4 11:08:53 UTC 2012 - schwab@linux-m68k.org - -- Move pt_chown to %{_libexecdir} so that baselibs can find it. -- Do create hardlinks to getconf so that baselibs use the correct binary - and getconf -v works (obsoletes patch glibc-2.8-getconf.diff). - -------------------------------------------------------------------- -Tue Aug 28 07:10:49 UTC 2012 - aj@suse.de - -- Update to da1f43196321, major changes: - * Fix strtod integer/buffer overflow (bso#14459). - * Fix segmentation fault in strncasecmp for i686. - * Translation updates - -------------------------------------------------------------------- -Tue Jul 24 08:39:30 UTC 2012 - aj@suse.de - -- Fix _mcount on PowerPC32. - -------------------------------------------------------------------- -Sat Jul 21 07:31:10 UTC 2012 - aj@suse.de - -- Enable parallel build for some more cases. - -------------------------------------------------------------------- -Fri Jul 20 17:00:00 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 release. - * update version numbers - * Documentation updates -- Update manpages from Debian, includes new man pages for - locale.1, mtrace.1, gencat.1 iconvconfig.8. -- Remove getent.1 man page, use the one from man-pages. - -------------------------------------------------------------------- -Fri Jul 20 16:42:42 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 trunk (git id 416bf844227d): - * Fix check-abi for arm - * Refresh some patches. - * remove merged patches - * mainly lots of bug fixes - * Support for ISO C11 - * full details in NEWS file - -------------------------------------------------------------------- -Fri Jul 20 15:06:49 UTC 2012 - jengelh@inai.de - -- Add commit 10f62770e115d9f (glibc-sparc-fxstatat64.diff) from - upstream to resolve rpmlint-induced packaging abort due to - (previously) "no-return-in-nonvoid" -- Add xz as explicit BuildRequires for openSUSE_12.1 - -------------------------------------------------------------------- -Thu Jul 19 23:42:46 UTC 2012 - jengelh@inai.de - -- Do package ld-linux.so.2 on SPARC as well - -------------------------------------------------------------------- -Tue Jul 17 12:22:29 UTC 2012 - aj@suse.de - -- Add makeinfo as build requires to be able to generate the info - pages. - -------------------------------------------------------------------- -Wed Jul 4 13:36:17 UTC 2012 - aj@suse.de - -- Add glibc-2.16-getaddrinfo-buffer.patch to not use a too small - buffer for dns queries on 64-bit systems (bso#14307,bso#13904). -- Fix getaddrinfo-ipv6-sanity.diff (bnc#767125). - -------------------------------------------------------------------- -Mon Jul 2 16:23:15 UTC 2012 - agraf@suse.com - -- Backport *context patch for ARM from 2.16, so we have a working libpth - -------------------------------------------------------------------- -Thu Jun 28 18:46:30 UTC 2012 - aj@suse.de - -- Remove not anymore existing nscd.socket. - -------------------------------------------------------------------- -Thu Jun 28 12:33:50 UTC 2012 - aj@suse.de - -- Update to glibc 2.15-branch (git id 725b8ee08aff): - * Fix regression in cosh (bso#14273) - -------------------------------------------------------------------- -Wed Jun 27 07:34:15 UTC 2012 - aj@suse.de - -- Testsuite is ok to fail on arm - -------------------------------------------------------------------- -Tue Jun 26 07:11:49 UTC 2012 - aj@suse.de - -- Update to glibc 2.15 branch (git id b640404bd8c9): - * Fix fmod implementation that returned NaN for some values. - * Fix strcase_cmp_l x86 multiarch implementation. - * Remove glibc-2.15-avx2.patch, merged now. - -------------------------------------------------------------------- -Thu Jun 21 11:44:59 UTC 2012 - aj@suse.de - -- Fix Bogus FP exception on underflow for exp(double) (bnc#767956) - -------------------------------------------------------------------- -Mon Jun 18 11:04:37 UTC 2012 - aj@suse.de - -- Remove nscd.socket since nscd does not support socket - activation. - -------------------------------------------------------------------- -Wed Jun 13 11:07:15 UTC 2012 - aj@suse.de - -- Build power3 libs on 32-bit PowerPC (bnc#765165). - -------------------------------------------------------------------- -Wed May 23 20:00:55 UTC 2012 - aj@suse.de - -- Update to current git of glibc 2.15 branch: - * obsoletes glibc-2.16-avx.patch, - glibc-2.16-fix-check-localplt.patch - * Fixes for math functions. - -------------------------------------------------------------------- -Wed May 23 11:51:02 UTC 2012 - aj@suse.de - -- Fix first_weekday for tr_TR locale (tr_TR.patch) - -------------------------------------------------------------------- -Wed May 16 08:37:57 UTC 2012 - schwab@linux-m68k.org - -- Fix confstr use of local buffer outside its extent - -------------------------------------------------------------------- -Wed May 9 07:30:36 UTC 2012 - aj@suse.de - -- Split out glibc-armhf-compat.patch from armhf-ld-so.patch. -- Run nscd in the foreground with systemd (glibc-nscd-foreground-patch) - -------------------------------------------------------------------- -Tue May 8 14:00:52 UTC 2012 - aj@suse.de - -- Refresh glibc-2.16-avx.patch and handle FMA4. - -------------------------------------------------------------------- -Thu May 3 11:05:36 UTC 2012 - aj@suse.de - -- Fix dynamic linker name for ARMv5. - -------------------------------------------------------------------- -Thu Apr 26 14:02:37 UTC 2012 - aj@suse.de - -- Fix mcheck (optimization problem with gcc 4.7) - -------------------------------------------------------------------- -Wed Apr 25 10:40:20 UTC 2012 - aj@suse.de - -- Also check for armv7hl. - -------------------------------------------------------------------- -Wed Apr 25 08:47:22 UTC 2012 - adrian@suse.de - -- provide old ld-linux.so.3 on armv7, not catched by find.provides - -------------------------------------------------------------------- -Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de - -- gcc 4.7 does not build crt files properly on powerpc64, backport - patch from upstream to handle this - (glibc-2.16-powerpc-initfini.patch) - -------------------------------------------------------------------- -Fri Apr 20 18:28:18 UTC 2012 - aj@suse.de - -- Disable patch x86-cpuid-level2.patch, this should be fixed in - valgrind now. - -------------------------------------------------------------------- -Thu Apr 19 11:12:43 UTC 2012 - aj@suse.de - -- Reorder patches, refresh to apply cleanly with -p1. - -------------------------------------------------------------------- -Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de - -- Build profiled libs only for base. -- Cleanup patches. -- Remove glibc-2.14-fix-ctors.patch, we have proper support in - binutils now. - -------------------------------------------------------------------- -Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de - -- The dynamic linker for armv7 hardware float is called - /lib/ld-linux-armhf.so.3. Provide symlink for old location. - -------------------------------------------------------------------- -Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de - -- Build for power4 only, don't support power3 anymore. -- Add option to build glibc a bit more quickly for testing purposes. -- Remove disabled patch glibc-revert-netlink-cache.patch. -- Start renumbering patches. - -------------------------------------------------------------------- -Mon Apr 16 14:31:38 UTC 2012 - aj@suse.de - -- Do not build locales and profile for i686 since we only ship - the base and glibc-devel packages. - -------------------------------------------------------------------- -Fri Apr 13 09:35:49 UTC 2012 - aj@suse.de - -- Fix check-abi to succeed. -- Use feof_unlocked in glibc-2.3.90-bindresvport.blacklist.diff. -- Make x86 to be elf/check-localplt clean again -- Refresh some patches to apply without fuzz. - -------------------------------------------------------------------- -Fri Apr 6 09:19:11 UTC 2012 - aj@suse.de - -- Disable building with as-needed since it breaks glibc - (testsuite will fail, even if testsuite does not use as-needed) - -------------------------------------------------------------------- -Thu Apr 5 18:48:06 UTC 2012 - aj@suse.de - -- Another fix for dynamic linking. - -------------------------------------------------------------------- -Thu Apr 5 18:22:36 UTC 2012 - aj@suse.de - -- Properly fix dl_lookup_x crash (glibc-fix-noload.patch), disable - glibc-fix-lookup-crash.patch. - -------------------------------------------------------------------- -Mon Apr 2 09:30:24 UTC 2012 - aj@suse.de - -- Fix building on Armv5 (glibc-add-arm-dependency-libmemusage.patch) - -------------------------------------------------------------------- -Thu Mar 29 07:51:43 UTC 2012 - aj@suse.de - -- Fix crash when nscd is not running (bnc#741021) properly - and disable patch glibc-revert-netlink-cache.patch - -------------------------------------------------------------------- -Fri Mar 23 11:07:32 UTC 2012 - aj@suse.de - -- Fix path for nss_db (bnc#753657). - -------------------------------------------------------------------- -Thu Mar 22 09:41:48 UTC 2012 - aj@suse.de - -- Fix LD_PROFILE invocation. - -------------------------------------------------------------------- -Wed Mar 21 08:45:12 UTC 2012 - aj@suse.de - -- Fix cycle detection in loading of dynamic objects. - -------------------------------------------------------------------- -Wed Mar 14 08:26:52 UTC 2012 - aj@suse.de - -- Update getaddrinfo-ipv6-sanity.diff (bnc#684534). - -------------------------------------------------------------------- -Fri Mar 2 17:01:55 UTC 2012 - aj@suse.de - -- vfprintf: validate nargs and maybe allocate from heap (bnc#747768) - -------------------------------------------------------------------- -Tue Jan 31 13:20:37 UTC 2012 - aj@suse.de - -- Fix checks for AVX (patch glibc-2.16-avx.patch) - -------------------------------------------------------------------- -Tue Jan 31 09:44:07 UTC 2012 - aj@suse.de - -- Use Linux 2.6.32 on x86_64 as oldest supported kernel - -------------------------------------------------------------------- -Tue Jan 31 08:57:15 UTC 2012 - aj@suse.de - -- Fix relocation ordering to fix ifunc crash (bnc#740109). - -------------------------------------------------------------------- -Sun Jan 29 22:47:18 CET 2012 - dmueller@suse.de - -- set abi back to gnueabi for ARM (regression from Jan 12) - -------------------------------------------------------------------- -Wed Jan 18 09:29:24 UTC 2012 - aj@suse.de - -- Update license strings in spec file. - -------------------------------------------------------------------- -Mon Jan 16 13:19:43 UTC 2012 - aj@suse.de - -- Split up new subpackage glibc-extra and move makedb with its - dependency on libselinux to it. (bnc#741525) -- Use lua script for verifyscript to not have a dependency on bash - -------------------------------------------------------------------- -Thu Jan 12 15:42:36 UTC 2012 - aj@suse.de - -- Disable netlink caching (bnc#741021). - -------------------------------------------------------------------- -Thu Jan 12 11:01:41 UTC 2012 - aj@suse.de - -- Use _target_cpu instead of _build and _host. This makes the - i686 library really build for i686. - -------------------------------------------------------------------- -Tue Jan 10 12:31:14 UTC 2012 - aj@suse.de - -- Remove all math ifuncs on x86-64. - -------------------------------------------------------------------- -Tue Jan 10 09:53:58 UTC 2012 - aj@suse.de - -- Remove math ifuncs that cause crashes in apache2 and - gdk-pixbuf-query-loaders-64 (bnc#740109) for now - (glibc-2.15-math64crash.patch). -- nscd needs the same glibc version, add require. - -------------------------------------------------------------------- -Mon Jan 9 08:17:08 UTC 2012 - aj@suse.de - -- Fix realloc usage in vfscanf (glibc-2.16-scanf.patch) -- Fix getcontext on powerpc 32-bit (glibc-ppc-getcontext.patch) - -------------------------------------------------------------------- -Wed Jan 4 09:34:28 UTC 2012 - aj@suse.de - -- Remove patch glibc-2.3.4-gb18030-big5hkscs.diff.bz2 and - replace it by gb18030.patch.bz2 (synced with Fedora 16) - (bnc#743617). - -------------------------------------------------------------------- -Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de - -- Compile unwind-dw2-fde-glibc.c with -fno-strict-aliasing - (patch glibc-strict-aliasing.diff) -- Build on i686 a separate library for usage under Xen. - -------------------------------------------------------------------- -Tue Jan 3 15:36:12 UTC 2012 - aj@suse.de - -- Only use -mno-tls-direct-seg-refs on 32-bit x86, it's not needed - on x86-64. - -------------------------------------------------------------------- -Tue Jan 3 14:37:48 UTC 2012 - aj@suse.de - -- Cleanup spec file: - - experimental malloc is not experimental anymore and only option - (drop patch glibc-malloc-arena-max.diff) - - remove obsolete configure flags - -------------------------------------------------------------------- -Tue Jan 3 08:40:28 UTC 2012 - aj@suse.de - -- Update to 2ba92745c36e: - - Update copyright years - - Fix miscompilation of posix/regex_internal.c with GCC 4.7. - -------------------------------------------------------------------- -Tue Jan 3 08:23:44 UTC 2012 - aj@suse.de - -- Revert pthread-cond-wait change for now since it causes hangs - (patch pthread-cond-wait-revert.patch). - -------------------------------------------------------------------- -Mon Dec 26 12:53:55 UTC 2011 - aj@suse.de - -- Update to c0da14cdda1f (glibc-ports: 8a70b2dcabbf): - - new locales - - many bugfixes - - glibc 2.15 - - obsoletes tzfile-corruption-fix.patch, - glibc-2.14-32args-printf.patch - -------------------------------------------------------------------- -Thu Dec 21 15:16:42 CET 2011 - meissner@suse.de - -- Do not mention the buildtime anymore to make build-compare work. - -------------------------------------------------------------------- -Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de - -- Fix timezone loader overflow (bnc#735850,CVE-2009-5029) (patch - tzfile-corruption-fix.patch) - -------------------------------------------------------------------- -Mon Dec 5 09:29:32 UTC 2011 - aj@suse.de - -- Update to 52ad36a21973 (glibc-ports: 4a40b38f6355): - * fix many warnings - * bugfixes - * obsolete patches glibc-strict-aliasing.diff and - glibc-arm-clone-unwind-fix.diff - - -------------------------------------------------------------------- -Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com - -- fix printf with many args and printf arg specifiers (bnc#733140) - -------------------------------------------------------------------- -Thu Nov 24 14:02:55 UTC 2011 - aj@suse.de - -- Updated glibc-ports-2.14.1.tar.bz2 from ftp.gnu.org. - -------------------------------------------------------------------- -Thu Nov 24 09:25:14 UTC 2011 - aj@suse.com - -- Create glibc-devel-static baselibs (bnc#732349). - -------------------------------------------------------------------- -Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de - -- Remove duplicated locales from glibc-2.3.locales.diff.bz2 - -------------------------------------------------------------------- -Tue Nov 15 12:49:56 UTC 2011 - aj@suse.de - -- nscd now monitors resolv.conf, so simplify glibc-2.4.90-nscd.diff - patch and re-enable it -- Adjust and re-enable glibc-2.3.3-nscd-db-path.diff - -------------------------------------------------------------------- -Tue Nov 15 12:10:32 UTC 2011 - aj@suse.de - -- Update to 09f93bd3d6b1: - - Clean up internal fopen uses to always use close-on-exec - - Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32 - - bugfixes - -------------------------------------------------------------------- -Mon Nov 14 12:02:06 CET 2011 - ro@suse.de - -- check-build.sh: accept kernel 3.x - -------------------------------------------------------------------- -Tue Nov 8 22:55:40 CET 2011 - dmueller@suse.de - -- make glibc-static provide versioned - -------------------------------------------------------------------- -Tue Nov 8 18:20:39 CET 2011 - dmueller@suse.de - -- fix building with ports again: - * ifuncs tracing backport requires adjustments - -- avoid using asynchronous-unwind-tables only during configure, - but still built the library with unwind tables enabled -- replace arm build hack with a proper solution - ------------------------------------------------------------------- -Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de - -- update glibc-ports to 2.14.1: - * Align the constant pool in start.S to 4 bytes. - * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. -- Fix unwinding crash when using clone() - -------------------------------------------------------------------- -Wed Nov 2 13:52:36 UTC 2011 - aj@suse.de - -- Update to d35dce5213b3: - - caching of network information for getaddrinfo - - bugfixes - -------------------------------------------------------------------- -Sat Oct 29 18:37:46 UTC 2011 - aj@suse.de - -- Update to 21b64b153631: - - various bugfixes - -------------------------------------------------------------------- -Thu Oct 27 08:44:14 UTC 2011 - aj@suse.de - -- Update to 804791474dc1: - - more libm optimizations -- Remove AMD libm routines due to new upstream libm optimizations - and interfaces. -- Fix build on x86. - -------------------------------------------------------------------- -Mon Oct 24 19:02:46 UTC 2011 - aj@suse.de - -- Update to a201fbcf9cc3: - - More libm optimizations - - Optimize wcslen, strnlen - -------------------------------------------------------------------- -Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de - -- Ignore failure of chkstat (bnc#725145). - -------------------------------------------------------------------- -Wed Oct 19 12:07:41 UTC 2011 - aj@suse.de - -- Provide glibc-static from glibc-devel-static to make packaging - easier. glibc-static is the Fedora name. - -------------------------------------------------------------------- -Tue Oct 18 07:42:40 UTC 2011 - aj@suse.de - -- Update to glibc head 99ce7b04edf1: - - Optimize many libm functions - - Optimize access to isXYZ and toXYZ tables - - Optimized memcmp and wmemcmp for x86-64 and x86-32 - - Add parameter annotation to modf - - Support optimized isXXX functions in C++ code - - Optimized memchr, memrchr, rawmemchr for x86-32 - - Add nscd netgroupcache -- Disable libm-x86-64.diff.bz2 since it needs changes following the - libm optimzations. - -------------------------------------------------------------------- -Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de - -- Remove fma, fmaf from libm-x86-64.diff.bz2, they are not accurate - (bso#13304). - -------------------------------------------------------------------- -Tue Oct 11 09:51:46 UTC 2011 - aj@suse.de - -- Update to current git 4f2b767fef50 - * Correctly reparse group line after enlarging the buffer - * 2.14.1 release - -------------------------------------------------------------------- -Mon Oct 10 14:07:44 UTC 2011 - aj@suse.de - -- Fix tracing with ifuncs. - -------------------------------------------------------------------- -Tue Oct 4 14:10:13 UTC 2011 - uli@suse.com - -- cross-build: use %__cc, %__cxx, %_build, %_host -- mipsel: install ports, disable FP - -------------------------------------------------------------------- -Fri Sep 30 17:14:04 CEST 2011 - dmueller@suse.de - -- avoid build failure on %%arm - -------------------------------------------------------------------- -Thu Sep 29 12:58:59 UTC 2011 - aj@suse.de - -- Update to 68577918437e: - * Obsoleted patches: glibc-gconvcache-s390.diff, - glibc-2.3.5-nscd-zeronegtimeout.diff, - glibc-x86-bits-sigcontext.patch, - glibc-2.15-getsysstats-speedup.patch, glibc-2.13-warnings.fix, - glibc-2.13-localedef.patch, - glibc-fix-rwlock-stack-imbalance.patch, glibc-2.15-vsyscall.patch, - glibc-2.15-avoid-vsyscall.patch - -------------------------------------------------------------------- -Thu Sep 29 07:40:25 UTC 2011 - adrian@suse.de - -- just use %arm for right arm architectures - -------------------------------------------------------------------- -Tue Sep 27 11:24:02 UTC 2011 - aj@suse.de - -- Update to 2.14 git version 8bd683657e8a, it contains backports from - glibc trunk: - + Avoid race between {,__de}allocate_stack and __reclaim_stacks - during fork -- Add glibc-2.14-fix-ctors.patch to run ctors (bnc#717671), gcc 4.6 - optimized these away. - -------------------------------------------------------------------- -Mon Sep 26 12:30:09 UTC 2011 - adrian@suse.de - -- don't use -fasynchronous-unwind-tables on arm, it breaks the build - -------------------------------------------------------------------- -Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de - -- fix ports build - -------------------------------------------------------------------- -Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de - -- don't enforce armv5tel for all arm architectures anymore -- armv8l architecture does not exist - -------------------------------------------------------------------- -Tue Sep 20 07:54:21 UTC 2011 - aj@suse.de - -- Cleanup spec file: remove some tags - -------------------------------------------------------------------- -Mon Sep 19 08:09:40 UTC 2011 - opensuse@cboltz.de - -- move usr.sbin.nscd apparmor profile back to apparmor-profiles package - (bnc#647718) - -------------------------------------------------------------------- -Mon Sep 19 07:45:36 UTC 2011 - aj@suse.de - -- Update to 2.14 git version 69c1dfc1a796, it contains backports from - glibc trunk: - + Fix setxid race handling exiting threads - + Fix cfi directives in x86-64 and i386 code - + Fix scope handling during dl_close - + Fix spurious nop at start of __strspn_ia32 - + Correct cycle detection during dependency sorting - + Fix fopen (non-existing-file, "re") errno (Obsoletes patch - fopen-close-exec.patch) - -------------------------------------------------------------------- -Fri Sep 16 11:20:29 UTC 2011 - mmarek@suse.cz - -- Fix assertion error in res_query.c, triggered by Firefox - (bso#13013). - -------------------------------------------------------------------- -Wed Sep 7 07:17:16 UTC 2011 - aj@suse.de - -- Avoid usage of vsyscalls inside glibc. - -------------------------------------------------------------------- -Tue Sep 6 09:53:24 CEST 2011 - aj@suse.de - -- Prefer real syscalls instead of vsyscalls on x86-64 outside - libc.so - -------------------------------------------------------------------- -Mon Sep 5 10:06:23 UTC 2011 - aj@suse.de - -- Do not not trigger an abort when an i586 Intel CPU is running the - i686 library, as valgrind does. [bnc#681398] - -------------------------------------------------------------------- -Mon Sep 5 08:26:24 UTC 2011 - aj@suse.de - -- Readd vdso support. -- Add patch to relocate objects in dependency order, this fixes the - vdso support. - -------------------------------------------------------------------- -Sat Sep 3 19:39:03 UTC 2011 - aj@suse.de - -- Revert last change, it caused some breakage. [bnc#715854] - -------------------------------------------------------------------- -Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de - -- Add support for new vdso (3.1 kernel) and only then - for vsyscall which is not anymore in 3.1 kernel - (patch glibc-2.15-vsyscall.patch) - -------------------------------------------------------------------- -Thu Aug 25 09:44:37 UTC 2011 - lnussel@suse.de - -- use symbol version OW_CRYPT_1.0 for the Owl extensions - (crypt_r[an], crypt_gensalt.*) -- refactor sha2 gensalt patch -- document sha2 hashes in man page - -------------------------------------------------------------------- -Mon Aug 22 13:12:18 UTC 2011 - aj@suse.de - -- Update AppArmor profile of nscd [bnc#647718] - -------------------------------------------------------------------- -Fri Aug 19 13:26:11 UTC 2011 - aj@suse.de - -- Fix fopen("non-existing-file", "re") errno [bnc#713146]. - -------------------------------------------------------------------- -Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de - -- Mark glibc-info, glibc-html and glibc-i18ndata as noarch packages. - -------------------------------------------------------------------- -Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de - -- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] - -------------------------------------------------------------------- -Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de - -- Enhance rpmlintrc to ignore shlib policy violation. -- Remove obsolete patches glibc-fnmatch-multibyte.diff, - glibc-2.3.1.localedef.diff, glibc-2.10-nscd-nostack.diff. - -------------------------------------------------------------------- -Wed Aug 17 14:47:11 UTC 2011 - aj@suse.de - -- Update to current 2.14 branch: Various bugfixes. - Remove upstreamed patches missing-include-build-fix.diff, - glibc-2.14-res_send.patch, glibc-dl-fxstatat64.patch) - -------------------------------------------------------------------- -Wed Aug 17 14:09:50 UTC 2011 - aj@suse.de - -- Revert removal of sunrpc code (patch glibc2.14-revert-sunrpc-removal.patch). - -------------------------------------------------------------------- -Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de - -- Revert seeking on fclose, incomplete implementation of POSIX - behaviour can confuse current users. [bnc #711829] - (patch glibc-revert-fseek-on-fclose.diff) - -------------------------------------------------------------------- -Fri Jul 22 13:47:23 UTC 2011 - lnussel@suse.de - -- fix signature of sha2 functions - -------------------------------------------------------------------- -Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de - -- Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. - (bnc#684534, bnc#706719) - (patch glibc-fix-double-loopback.diff) - -------------------------------------------------------------------- -Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de - -- install crypt_blowfish man pages - -------------------------------------------------------------------- -Tue Jul 19 12:19:22 UTC 2011 - aj@suse.de - -- Back to old glibc-2.2-sunrpc.diff for now. - -------------------------------------------------------------------- -Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de - -- update crypt_blowfish to version 1.2 (bnc#700876) - * due to the signedness bug fix 2a hashes are incompatible with - previous versions if the password contains 8bit chracters! - * libcrypt now exports crypt_gensalt - -------------------------------------------------------------------- -Fri Jul 15 07:54:46 UTC 2011 - aj@suse.de - -- Update to glibc 2.14: - * The RPC implementation in libc is obsoleted. Old programs keep working - but new programs cannot be linked with the routines in libc anymore. - Programs in need of RPC functionality must be linked against TI-RPC. - The TI-RPC implementation is IPv6 enabled and there are other benefits. - * Various bugfixes, new locales, new linux kernel interfaces. - * New program sotruss to traces calls through PLTs - * Removed the following obsoleted patches: glibc-2.6-configure.diff, - glibc-disable-backward-memcpy.diff, glibc-static-memcpy.diff, - glibc-zarch-longlong.diff, glibc-bso-12454.diff, - glibc-vfprintf-positional.diff -- Build without -fno-strict-aliasing. - -------------------------------------------------------------------- -Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de - -- Remove ppc-atomic.diff after discussion with glibc PPC experts - since it does not bring any real benefit. - -------------------------------------------------------------------- -Thu Jul 7 14:50:15 UTC 2011 - aj@suse.de - -- Update glibc-2.2-sunrpc.diff with newer patch from sourceware - bugzilla (bs#bso#5379). - -------------------------------------------------------------------- -Wed Jul 6 08:24:45 UTC 2011 - lnussel@suse.de - -- enable glibc-2.8-getconf.diff again to fix build failure - -------------------------------------------------------------------- -Tue Jul 5 20:22:50 UTC 2011 - aj@suse.de - -- Add systemd configuration for nscd. - -------------------------------------------------------------------- -Tue Jul 5 08:03:26 UTC 2011 - aj@suse.de - -- Remove glibc-statfs64-ia64.diff since current ia32el has the bug - fixed. -- Remove glibc-ppc64-vdso-time.diff (bnc#590216). - -------------------------------------------------------------------- -Mon Jul 4 10:00:46 UTC 2011 - aj@suse.de - -- Further cleanup of ld.so.conf to remove duplicate directories - and allow override of system directories (bnc#671725) -- Fix futex bug (added patch glibc-fix-rwlock-stack-imbalance.patch - from sourceware bug #12403). - -------------------------------------------------------------------- -Fri Jul 1 16:09:14 UTC 2011 - aj@suse.de - -- Remove glibc-2.10.99-ia64-include.diff, it's not needed anymore. -- Disable obsolete patches glibc-fnmatch-multibyte.diff, - glibc-2.10-nscd-nostack.diff, glibc-2.3.1.localedef.diff -- Add glibc-2.13-localedef.patch to fix alignment problem. -- Adjust glibc-version.diff, FLOATING_STACKS variable is obsolete. - -------------------------------------------------------------------- -Thu Jun 30 12:17:33 UTC 2011 - aj@suse.de - -- Remove old ARM patches as it's unclear why those are needed and arm - support is anyhow broken according to comments here and in spec - files. - -------------------------------------------------------------------- -Thu Jun 30 11:22:02 UTC 2011 - aj@suse.de - -- Back to kernel 2.6.16 as minimal kernel version. - -------------------------------------------------------------------- -Tue Jun 28 12:30:34 UTC 2011 - aj@suse.de - -- Only apply glibc-statfs64-ia64.diff on SLE but not on openSUSE. - -------------------------------------------------------------------- -Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de - -- Disable exp_malloc on PPC platforms for now since it caused a - build failure. - -------------------------------------------------------------------- -Mon Jun 27 11:00:33 UTC 2011 - aj@suse.de - -- Update glibc-x86-bits-sigcontext.patch with version accepted - upstream. -- Add glibc-2.15-getsysstats-speedup.patch to "Fix Linux - sysconf(_SC_NPROCESSORS_[CONF|ONLN]) performance problem" -- Fix warning about potential array subscript out of bounds - (glibc-2.13-wranings.fix). -- Fix some rpmlint warnings. - -------------------------------------------------------------------- -Tue Jun 21 10:59:33 UTC 2011 - aj@suse.de - -- Cleanup spec file, change PreReqs. -- Remove obsolete patches: glibc-2.3.90-ld.so-madvise.diff, - glibc-suse-note.diff, glibc-2.3-regcomp.diff. -- Rename glibc-2.3-SuSE.diff to glibc-testsuite.patch, remove obsolete - parts. - -------------------------------------------------------------------- -Mon Jun 20 12:47:46 UTC 2011 - aj@suse.de - -- Enhance rpmlintrc. -- move summary,license and group out of the not-ppc if (by Marcus - Meissner). - -------------------------------------------------------------------- -Mon Jun 20 11:02:01 UTC 2011 - aj@suse.de - -- Remove PreReq on permissions to avoid a cycle that gives leads to - an uninstallable system (bnc#700925). -- Fix on x86 - fixes scpm compilation - (bnc#700784). - -------------------------------------------------------------------- -Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de - -- Cleanup ld.so.conf list, move kde directories to - kdelibs3 (bnc#671725). - -------------------------------------------------------------------- -Fri Jun 17 07:07:37 UTC 2011 - aj@suse.de - -- Do not package memusage and memusagestat since they require - lib-gd and that grows the build cycle. - -------------------------------------------------------------------- -Thu Jun 16 18:37:19 UTC 2011 - aj@suse.de - -- Fix handling of shared library preloading. - -------------------------------------------------------------------- -Thu Jun 16 13:33:23 UTC 2011 - aj@suse.de - -- Fix getaddrinfo IPv6 code (bnc#684534). -- Split up glibc-devel-static subpackage (bnc#655261). - -------------------------------------------------------------------- -Thu Jun 16 12:23:32 UTC 2011 - aj@suse.de - -- Reorder ld.so.conf library list (bnc#671725). - -------------------------------------------------------------------- -Wed Jun 15 07:08:35 UTC 2011 - aj@suse.de - -- Split up package glibc-utils with some debugging tools, add memusage - and memusagestat programs -- Fix compile warnings. -- Silence some rpmlint warnings. -- Remove obsolete patches glibc-2.3.2-revert_tcsetattr.diff, - glibc-2.8-clone.diff, glibc-nptl-2.4-nofixsyscallnr.diff -- Cleanup spec file. -- Use new permission handling for pt_chown. -- Build without -fno-strict-aliasing. - -------------------------------------------------------------------- -Mon Jun 6 14:19:26 UTC 2011 - aj@suse.de - -- Fix typos in /etc/gai.conf (bnc#651912). - -------------------------------------------------------------------- -Fri Jun 3 08:40:55 UTC 2011 - aj@suse.de - -- Use 2.6.5 as oldest supported kernel on all archs besides x86 and - x86-64 (reverting partially a change). - -------------------------------------------------------------------- -Fri May 27 11:55:35 UTC 2011 - aj@suse.de - -- Remove patches that are not needed anymore: - * glibc-selinux.diff - * glibc-check-native-missing-include.diff - * glibc-2.3.3-execstack.diff -- Disable the following patches, they look obsolete by now but leave them - in to easy enable them again: - * glibc-2.3-SuSE.diff - * glibc-2.3-regcomp.diff - * glibc-2.8-clone.diff - * glibc-2.3.2-revert_tcsetattr.diff -- Do not package glibc-obsolete with empty directory on archs that - don't need it. - -------------------------------------------------------------------- -Thu May 26 07:53:51 UTC 2011 - aj@suse.de - -- Add glibc-static-memcpy.diff to fix static compiles. - -------------------------------------------------------------------- -Wed May 25 15:28:37 UTC 2011 - aj@suse.de - -- Run on kernel 2.6.32 or newer only - and optimize thus. -- Enable malloc implementation that is be less memory efficient - but higher performing in multi-threaded programs. -- Use --enable-bind-now to avoid lazy binding in ld.so - and libc.so - -------------------------------------------------------------------- -Wed May 25 14:38:58 UTC 2011 - aj@suse.de - -- Add glibc-bso-12454.diff to not create assert running dynamic linker - in some cases. -- Disable backwards memcpy for x86-64. - -------------------------------------------------------------------- -Wed May 25 07:59:27 UTC 2011 - aj@suse.de - -- Add glibc-dl-signal-error.diff to not crash the dynamic linker - if dependencies are missing. - -------------------------------------------------------------------- -Mon May 23 08:44:47 UTC 2011 - rguenther@novell.com - -- Update longlong.h from GCC sources. Fixes s390 build with -mzarch. - [bnc#695102] - -------------------------------------------------------------------- -Fri May 20 14:45:44 UTC 2011 - aj@suse.de - -- Fix obsoletes and provides. -- Update to glibc 2.13 -- Drop ld-prelink-unique.diff, it is part of 2.13. - -------------------------------------------------------------------- -Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz - -- Fix potential removal of required local scope from shared objects - marked as NODELETE [bnc#657627] - -------------------------------------------------------------------- -Fri Feb 4 00:46:40 CET 2011 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.3-b72646ad0c41 - - Random assortion of bugfixes, some #defines for new kernels -- Retired patches: - - glibc-2.11.3-bnc658509.diff - - glibc-2.11.3-bso12397.diff - - glibc-sparc64-fxstat.diff -- Remove the NSS hack of opening modules using RTLD_DEEPBIND. - This was useful for nss_ldap, since some applications used a different - LDAP library with clashing symbol names. However, it also created - many headaches, especially with the NSS modules not respecting - malloc() overrides. Now, sssd is used by default for LDAP resolutions - and we can therefore safely get rid of the hack. [bnc#477061] -- Remove the currently disabled AMD string function overrides. - Benchmarking did not unearth any differences that would make - convincing case for keeping the functions with all the associated - maintenance headaches; AMD does not recommend keeping their custom - versions of the functions either. -- Introduce MALLOC_ARENA_MAX and M_ARENA_MAX support [bnc#659090] -- Fixed stack unwinding past glibc _fini function (proper showing - of destructor backtraces) [bnc#585879] -- Fix gconv cache generation on s390 [bnc#592944] -- Add missing iconvconfig for refreshing gconv.cache to glibc-locale %post -- Fixed stack corruption in *printf() with large number of positional - specifiers [bnc#666179] - -------------------------------------------------------------------- -Fri Jan 28 14:53:35 UTC 2011 - rguenther@novell.com - -- Fix ENOSYS detection for mkdirat. [bso#12397] - -------------------------------------------------------------------- -Thu Dec 9 12:33:35 UTC 2010 - rguenther@novell.com - -- Drop restrict qualifiers from memmove and bcopy fortify wrappers. - [bnc#658509] - -------------------------------------------------------------------- -Tue Nov 30 01:53:42 CET 2010 - pbaudis@suse.cz - -- Upgrade to glibc-2.11.3 - - Just few more bugfixes since the latest upgrade - -------------------------------------------------------------------- -Tue Nov 16 04:03:01 CET 2010 - pbaudis@suse.cz - -- Remove explicit support for nss SPLIT_GROUPS setting; glibc from - 2.11 on should handle this automagically. - -------------------------------------------------------------------- -Mon Nov 15 18:43:35 CET 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.2-dd2fde461e30 - - Candidate tree for glibc-2.11.3 - - Multitude of various bug fixes - -------------------------------------------------------------------- -Mon Nov 15 18:29:49 CET 2010 - pbaudis@suse.cz - -- Enable multi-arch routines support for ppc, ppc64, i686 and x86_64. - - Temporarily, AMD-optimized string routines are disabled. We will - selectively re-enable them after some more careful benchmarking - in the next few days. - - Note: In this glibc version, multi-arch routines DO NOT include - the controversial backwards-copy memcpy(). - -------------------------------------------------------------------- -Wed Oct 27 03:14:37 CEST 2010 - pbaudis@suse.cz - -- Fix missing hconf setup in nscd - this meant `multi on` in - /etc/host.conf was ignored when nscd was used, breaking e.g. - resolving of multi-AF records in /etc/hosts [bnc#572188] -- Fix two LD_AUDIT security vulnerabilities: spurious $ORIGIN expansion - and missing setuid library check when running as setuid [bnc#646960] - -------------------------------------------------------------------- -Mon Sep 13 14:36:26 UTC 2010 - aj@suse.de - -- Fix build in manual with make 3.82. - -------------------------------------------------------------------- -Sun Sep 12 08:00:57 UTC 2010 - aj@suse.de - -- Work around shortest-stem feature in make 3.82+ (patch - glibc-make-3.82.patch) - -------------------------------------------------------------------- -Wed Jul 7 04:12:05 CEST 2010 - pbaudis@suse.cz - -- Fix NIS-compat initgroups routine to work reliably over multiple - invocations [bnc#607064] - -------------------------------------------------------------------- -Thu Jul 1 19:52:56 UTC 2010 - jengelh@medozas.de - -- SPARC: restore fxstat functionality in sparc64 mode - -------------------------------------------------------------------- -Sat Jun 26 10:26:17 UTC 2010 - jengelh@medozas.de - -- Use %_smp_mflags - -------------------------------------------------------------------- -Fri Jun 11 15:41:07 CEST 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.2-21580967038a - - Fix buggy x86 CPU family and model check - - Fix sunrpc error condition handling - - Fix crash on unresolved weak symbol reference - -------------------------------------------------------------------- -Tue Jun 1 03:38:28 CEST 2010 - pbaudis@suse.cz - -- Fix ldconfig -r failing on aux cache [bnc#609345] - -------------------------------------------------------------------- -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 - -- Handle /var/run on tmpfs - -------------------------------------------------------------------- -Mon Apr 26 22:09:40 CEST 2010 - pbaudis@suse.cz - -- Remove stale resolv.dynamic.diff patch file - -------------------------------------------------------------------- -Thu Apr 22 08:30:50 CEST 2010 - meissner@suse.de - -- for powerpc32 build a generic library and also a power4 library - to allow older 32bit powerpc to work. bnc#596271 - -------------------------------------------------------------------- -Tue Apr 20 13:15:19 CEST 2010 - pbaudis@suse.cz - -- Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] - -------------------------------------------------------------------- -Wed Mar 24 13:04:12 CET 2010 - pbaudis@suse.cz - -- Fix get_nprocs() large CPU count handling [bnc#590665] - -------------------------------------------------------------------- -Tue Mar 23 15:09:09 CET 2010 - pbaudis@suse.cz - -- Fix interference of STB_GNU_UNIQUE and prelink [bnc#586979] -- Make time() use VDSO on PPC64 [bnc#590216] -- Make pthread_cond_timedway() use VDSO on PPC64 [bnc#590517] - -------------------------------------------------------------------- -Thu Mar 18 14:45:34 CET 2010 - pbaudis@suse.cz - -- Add PreReq for cat to glibc-locale [bnc#588997] - -------------------------------------------------------------------- -Thu Mar 18 14:29:42 CET 2010 - pbaudis@suse.cz - -- Fix /etc/resolv.conf change detection for multi-threaded applications - (by Sebastian Kienzl) - -------------------------------------------------------------------- -Fri Mar 5 12:59:44 CET 2010 - pbaudis@suse.cz - -- Fix spurious mapping from lowercase sharp s to uppercase sharp S - which is less standard and causes problems for ISO encodings [bnc#541773] - -------------------------------------------------------------------- -Mon Mar 1 18:55:37 CET 2010 - pbaudis@suse.cz - -- Fix spurious overflow messages on some R_X86_64_PC32 relocations, - patch by Richard Guenther [bnc#583019] - -------------------------------------------------------------------- -Wed Feb 24 11:53:41 CET 2010 - pbaudis@suse.cz - -- Fix assertion failures within valloc(), patch by Michael Matz - [bnc#581391] - -------------------------------------------------------------------- -Wed Feb 17 12:02:24 CET 2010 - pbaudis@suse.cz - -- S/390: Disable two UTF conversion instructions due to the hardware - mishandling some error conditions in the input stream [bnc#579871] - -------------------------------------------------------------------- -Mon Feb 15 22:34:29 CET 2010 - pbaudis@suse.cz - -- Further fix previous power5 fix - -------------------------------------------------------------------- -Sun Feb 14 15:33:33 CET 2010 - rguenther@suse.de - -- avoid spurious differences in nscd on rebuilds. - -------------------------------------------------------------------- -Thu Feb 11 21:36:32 CET 2010 - pbaudis@suse.cz - -- Fix another upgrade problem on power5 and older - correctly remove - the old optimized libraries; found out by matz@suse.de [bnc#563978] - -------------------------------------------------------------------- -Fri Feb 5 21:07:54 CET 2010 - pbaudis@suse.cz - -- Final fix for memchr() overflow on IA64 provided by upstream - [bnc#567516] - -------------------------------------------------------------------- -Thu Jan 28 17:11:59 CET 2010 - pbaudis@suse.cz - -- Fix another memchr() overflow on IA64; another known one still - remains a mystery [bnc#567516] - -------------------------------------------------------------------- -Wed Jan 27 02:49:46 CET 2010 - pbaudis@suse.cz - -- Remove now-obsolete powerpc-cpu addon usage [bnc#572819] -- Fix statfs64() on IA64 in 32-bit mode ia32el [bnc#534828] - -------------------------------------------------------------------- -Tue Jan 26 03:33:38 CET 2010 - pbaudis@suse.cz - -- Fix upgrade from previous distributions on power5 and older [bnc#563978] - -------------------------------------------------------------------- -Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de - -- ignore power6, power7 and cell specific Power CPU optimizations - on openSUSE. - -------------------------------------------------------------------- -Tue Jan 19 02:42:40 CET 2010 - pbaudis@suse.cz - -- Disable AMD-optimized strncmp() on x86_64 that is getting miscompiled - by the assembler [bnc#540647] - -------------------------------------------------------------------- -Mon Jan 18 18:22:32 CET 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.1-11c19d374bd4 - - Just trivial changes - version bump to 2.11.1, NIS-related - resolver fixes, ELF lookup race, .h typo fix and regcomp - out-of-memory handling miss - - Few more bugfixes, weekday updated in three locales -- Retired patches: - glibc-ia64-memchr.diff - -------------------------------------------------------------------- -Mon Dec 14 23:49:33 CET 2009 - jengelh@medozas.de - -- add baselibs.conf as a source - -------------------------------------------------------------------- -Fri Dec 11 13:13:01 CET 2009 - jengelh@medozas.de - -- libnldbl_nonshared is only built for sparc32 - -------------------------------------------------------------------- -Tue Dec 8 20:50:26 CET 2009 - jengelh@medozas.de - -- package libnldbl_nonshared for SPARC - -------------------------------------------------------------------- -Fri Nov 20 01:55:16 CET 2009 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11-1bc1954c7357: - - This snapshot is slated to become 2.11.1 if all goes well - - Mix of fixes for various recently found out issues -- Retired patches: - glibc-ifunc-dlsym-fixup.diff -- [IA64] Fix memchr() on mmap(MAP_SHARED) boundary [fix lighttpd crashes] -- Again use 127.0.0.1 as default nameserver in case of empty - /etc/resolv.conf [bnc#473308] - -------------------------------------------------------------------- -Thu Nov 19 13:15:41 CET 2009 - pbaudis@suse.cz - -- Add 623 and 664 to /etc/bindresvport.blacklist to fix problems with - port conflict on some IPMI network cards [bnc#513961] -- Allow external additions to /usr/share/locale/locale.alias and - /usr/lib/gconv/gconv-modules, required for the SAP-locales package. -- Add delimiter in front of external additions to locale/gconv lists -- Remove AMD-provided strlen(), upstream is faster. - -- Keep .symtab and .strtab for all glibc-related .so libraries [FATE#307090] - [bnc#545721] -- [ppc,ppc64] Enable optimized builds for power7; no separate power4, power5 - builds are generated anymore, instead default glibc is built for power4 - at least, tuned for power5 execution [FATE#307021] -- Large clean-up of the specfile - -------------------------------------------------------------------- -Fri Nov 13 22:47:47 CET 2009 - pbaudis@suse.cz - -- Upgrade to Git HEAD as of 20091105 - glibc-2.11-13f6812ffb5b: - * New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps, - mkostemps64 - Implemented by Ulrich Drepper. - - * Checking version of longjmp added that fails if an uninitialized stack - frame would be created. Implemented by Ulrich Drepper. - - * STT_GNU_IFUNC is now supported in static executables. - Implemented by H.J. Lu. - - * STT_GNU_IFUNC implemented for PPC by Alan Modra. - - * New optimized string functions for x86-64: strstr, strcasestr, memcmp, - strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2), - strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2). - Contributed by H.J. Lu. - - strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3). - Implemented by Ulrich Drepper. - - * New optimized string functions for x86: strlen, strcspn, strspn, strpbrk, - strstr, strcasestr. - Contributed by H.J. Lu. - - * Support for fma instruction in AVX on x86-64. - Implemented by H.J. Lu and Ulrich Drepper. - - * AVX support in x86-64 auditing support in ld.so. - Implemented by H.J. Lu. - - * STB_GNU_UNIQUE support added. - Implemented by Ulrich Drepper. - - * Implement second fallback mode for optimized DNS lookup for even more - broken environments. If two requests from the same port are not - handled correctly close the socket and open a new one before sending - the second request. The 'single-request-reopen' option in /etc/resolv.conf - can be used to select this mode right away, instead of rediscovering the - necessity is every process again. - Implemented by Ulrich Drepper. - - * New resolver flag RES_USE_DNSSEC to enable use of verified lookup. - Implemented by Adam Tkac. - - * Optimized iconv conversions for S390x. - Implemented by Andreas Krebbel. - - * Using condvars with PI mutexes is now more efficient due to kernel - support for requeueing to PI futexes. NPTL support added for x86-64. - Implemented by Ulrich Drepper. - - * New locales: ps_AF, my_MM -- Retired patches: - glibc-utmp-timeout-raise.diff - glibc-nscd-assert.diff - glibc-2.10-mcheck-free-race.diff - glibc-nscd-prune-ret.diff -- Made ifunc compile on IA64 using patch by H.J.Lu -- Fixed compilation on PPC Cell -- Lowered utmp locking timeout from 30s to 10s to be compatible - with upstream -- Allow external additions to /usr/share/locale/locale.alias and - /usr/lib/gconv/gconv-modules, required for the SAP-locales package. -- Remove AMD-provided strlen(), upstream is faster. -- ARM is currently non-functional - -------------------------------------------------------------------- -Fri Nov 13 20:18:27 CET 2009 - pbaudis@suse.cz - -- Rediff patches to apply with fuzz 0 - -------------------------------------------------------------------- -Sat Sep 19 14:13:43 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-44dbdf3777 of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - -------------------------------------------------------------------- -Fri Sep 18 21:40:04 CEST 2009 - coolo@novell.com - -- add /etc/apparmor.d to the nscd file list - -------------------------------------------------------------------- -Mon Sep 14 23:53:20 CEST 2009 - pbaudis@suse.cz - -- define _filter_GLIBC_PRIVATE so that our glibc is not marked to - provide these symbols [bnc#468748] -- Fix exception behaviour of various libm functions by AMD optimized - for x86_64 [bnc#487576] - -------------------------------------------------------------------- -Tue Sep 8 13:15:04 CEST 2009 - pbaudis@suse.cz - -- Provide the /etc/apparmor.d/usr.sbin.nscd file [bnc#535467] -- Blowfish: Enable BF_SCALE even on x86_64 - -------------------------------------------------------------------- -Sat Sep 5 23:19:51 CEST 2009 - pbaudis@suse.cz - -- Raise utmp locking timeout from 1s to 30s to ensure logins get recorded - even on heavily loaded systems [bnc#486631] -- Fix invalid pointer handling in some nscd assertions and the code to send - data to the client [bnc#513617] -- Radically trim down the Blowfish support patch - keeps only crypt_blowfish - from the original OWL patch, but does the rest within the current glibc - crypt infrastructure [bnc#529495] - -------------------------------------------------------------------- -Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de - -- make patch0 usage consistent - -------------------------------------------------------------------- -Thu Aug 20 19:02:31 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-aa152ec6ad of release/2.10/master branch - (Still the same source is used for glibc-ports.) - random minor fixes - * REVERTED invalid fix of broken locking within nscd [bnc#510788] -- Fix nscd handling of zero negative timeout for some databases - [bnc#523154,bnc#510788] - -------------------------------------------------------------------- -Fri Jul 17 01:14:16 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-4253a1e0b2 of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - * Fix broken locking within nscd [bnc#510788] -- Fix compilation with 2.6.30 kernel headers on IA64 - -------------------------------------------------------------------- -Thu Jun 18 00:58:47 CEST 2009 - pbaudis@suse.cz - -- Fix a dead-lock introduced by the bnc#509398 fix -- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - -------------------------------------------------------------------- -Fri Jun 12 12:19:34 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - * Fix 100% CPU usage by Java apps because of bad futex calls [bnc#509096] - -------------------------------------------------------------------- -Mon Jun 8 17:58:50 CEST 2009 - pbaudis@suse.cz - -- Fix race condition in the mcheck free() hook [bnc#509398] - -------------------------------------------------------------------- -Fri Jun 5 00:46:59 CEST 2009 - pbaudis@suse.cz - -- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 - -------------------------------------------------------------------- -Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch - maintained by me at repo.or.cz; contains backports of various bugfixes. - (Still the same source is used for glibc-ports.) -- Stop using separate tarball for nptl. -- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. - -------------------------------------------------------------------- -Fri May 15 22:13:33 CEST 2009 - pbaudis@suse.cz - -- Add support for multiple group records for a single group - when using nss_compat (configurable in /etc/default/nss) [bnc#480991] - -------------------------------------------------------------------- -Sun May 10 21:42:37 CEST 2009 - pbaudis@suse.cz - -- Update to 2009051021, glibc-2.10.1: - * Add missing cacheinfo entry for a recent Intel processor - * Fix ABI issue with the gshadow interface - -------------------------------------------------------------------- -Sun May 10 11:20:12 CEST 2009 - pbaudis@suse.cz - -- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: - * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS - servers (the case e.g. for many ADSL users), you may experience long - timeouts, once for each process (but eventually your request will be - resolved) - the solution is to run nscd (default on SUSE) and/or - put 'options single-request' in /etc/resolv.conf. - - * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info - Implemented by Ulrich Drepper. - - * New Linux interfaces: accept4, fallocate, fallocate64. - Implemented by Ulrich Drepper. - - * Correct declarations of string function when used in C++ code. This - could lead to compile errors for invalid C++ code. - - * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are - now in POSIX. - - * New POSIX 2008 interface: psiginfo - Implemented by Ulrich Drepper. - - * New ISO C++1x interfaces: quick_exit, at_quick_exit - Implemented by Ulrich Drepper. - - * Support for selecting between multiple function definitions at runtime - using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. - - * The libcrypt library can now use the hash function implementations in - NSS. Implemented by Ulrich Drepper. - - * The malloc implementation can be compiled to be less memory efficient - but higher performing in multi-threaded programs. - Implemented by Ulrich Drepper. - - * New locales: nan_TW@latin, ks_IN - - * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. - Implemented by Ulrich Drepper. - - * Extended printf hook support. It is possible to use user-defined types - and extend existing format specifiers. - Implemented by Ulrich Drepper. - - * Handling for group shadow files has been added. - Implemented by Ulrich Drepper. -- Retired: - glibc-2.10-dns-fixpack.diff - glibc-2.10-dns-no-gethostbyname4.diff - glibc-2.10-locale-tuesday.diff - glibc-2.10-nscd-gc-dataofs.diff - glibc-2.10-nscd-prunerace.diff - glibc-2.10-ppc32-setcontext-fp.diff - glibc-2.10-unsetenv.diff - glibc-2.4.90-mdns-resolver.diff - glibc-2.9-fortify.diff - glibc-getgroups-fortify.diff - glibc-ldscript.diff - glibc-mtfsf.diff - glibc-2.10-nscd-meminflight.diff - getaddrinfo-ipv6-sanity.diff - glibc-2.10-nis-hosts.diff -- Several other modified - -------------------------------------------------------------------- -Fri Apr 17 16:49:52 CEST 2009 - pbaudis@suse.cz - -- Fix defaulting to localhost in case of no nameserver entries - in /etc/resolv.conf [bnc#473308] - -------------------------------------------------------------------- -Mon Mar 23 15:32:01 CET 2009 - rguenther@suse.de - -- Add missing libc_hidden_builtin_def (memcmp) to - glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. - -------------------------------------------------------------------- -Fri Feb 27 16:21:17 CET 2009 - rguenther@suse.de - -- Make sure to mark fortified inline routines with - __attribute__((__artificial__)). - -------------------------------------------------------------------- -Wed Feb 18 16:18:19 CET 2009 - adrian@suse.de - -- Build i686 glibc src rpm as nosrc to get both versions on the - media [bnc#474338] - -------------------------------------------------------------------- -Thu Jan 22 14:10:25 CET 2009 - schwab@suse.de - -- Fix use of mtfsf insn. - -------------------------------------------------------------------- -Wed Jan 21 20:26:05 CET 2009 - schwab@suse.de - -- Fix ldscript mangling. - -------------------------------------------------------------------- -Wed Jan 21 01:18:59 CET 2009 - pbaudis@suse.cz - -- Re-enable the DNS fixpack, add real fix for bnc#441947 -- nscd: Fix gc he_data overflow and turn of alloca usage [bnc#387202] -- Normalize the patch queue -- Increate CPU_SETSIZE from 1024 to 4096 - for large SGI machines - and compatibility with SLE10SP2 [bnc#464667] - -------------------------------------------------------------------- -Fri Jan 16 22:33:21 CET 2009 - pbaudis@suse.cz - -- Disable the DNS fixpack from CVS, breaks nscd resolving [bnc#441947] - -------------------------------------------------------------------- -Fri Jan 9 13:12:21 CET 2009 - pbaudis@suse.cz - -- Fix unsetenv() crashing after clearenv() -- Backport various DNS-related fixes from CVS -- Disable parallel A-AAAA queries - revert to the glibc-2.9 behaviour - of sending the queries sequentially [bnc#442572] -- Fix fp register protection on power6 setcontext() [bnc#464738] - -------------------------------------------------------------------- -Mon Dec 8 01:25:57 CET 2008 - pbaudis@suse.cz - -- Fix crash when parsing NIS hosts file [bnc#448702] - -------------------------------------------------------------------- -Thu Dec 4 04:07:11 CET 2008 - pbaudis@suse.cz - -- Fix nscd gc-cacheadd and prune-invalidate races [bnc#446233] -- Remove obsolete and disabled nscd patch -- Fix /etc/bindresvport.blacklist parsing [bnc#439146] -- Fix en_GB and csb_PL locales having weeks start on Tuesdays [bnc#449186] - -------------------------------------------------------------------- -Sun Nov 23 14:55:40 CET 2008 - pbaudis@suse.cz - -- clean up patch filenames - -------------------------------------------------------------------- -Fri Nov 21 14:04:16 CET 2008 - olh@suse.de - -- fix check-build.sh to actually allow building on ppc* again - -------------------------------------------------------------------- -Fri Nov 21 13:36:05 CET 2008 - olh@suse.de - -- do not run compiled binaries with cputuned libraries [bnc#445911] - the buildhost only generates them, but must not execute them - -------------------------------------------------------------------- -Mon Nov 17 14:34:45 CET 2008 - pbaudis@suse.cz - -- Update to glibc-2.9 final - -------------------------------------------------------------------- -Thu Nov 6 18:25:09 CET 2008 - jjolly@suse.de - -- Added patch to fix s390x 64bit stack frame problem - -------------------------------------------------------------------- -Fri Oct 31 19:51:08 CET 2008 - matz@suse.de - -- Fix atomics on s390/s390x, leading to failures in pthread mutexes. - -------------------------------------------------------------------- -Tue Oct 28 18:08:32 CET 2008 - schwab@suse.de - -- Restore alignment patch. - -------------------------------------------------------------------- -Tue Oct 28 09:45:22 CET 2008 - olh@suse.de - -- symlink power5/power5+ to power4 on ppc32 - -------------------------------------------------------------------- -Thu Oct 23 22:20:28 CEST 2008 - ro@suse.de - -- only do obsoletes for XXbit packages on ppc, not on x86 - -------------------------------------------------------------------- -Wed Oct 23 13:46:25 CEST 2008 - matz@suse.de - -- Deactivate unwind tables for initfini.c. - -------------------------------------------------------------------- -Thu Oct 23 10:56:50 CEST 2008 - olh@suse.de - -- obsolete glibc{,-devel,-locale,-profile} -XXbit packages [bnc#437293] -- update last change to handle empty rpmspec defines - -------------------------------------------------------------------- -Tue Oct 21 09:54:06 CEST 2008 - olh@suse.de - -- update glibc_post_upgrade to handle power7 and ppc-cell-be -- remove libs unconditionally on powerpc to handle libs in - subdirectories for which we do not ship optimized versions [bnc#437209] - -------------------------------------------------------------------- -Thu Oct 16 14:42:59 CEST 2008 - olh@suse.de - -- enable cpu-tuned libraries for power4, power6 and ppc-cell-be - on ppc32 [fate#304000,bnc#408808] - -------------------------------------------------------------------- -Mon Oct 13 14:51:11 CEST 2008 - matz@suse.de - -- Update to trunk from 20081013, no longer export paccept, - obsoletes some patches (lowlevellock and res_send). - Fix overflow in nscd patch. - -------------------------------------------------------------------- -Mon Oct 13 00:03:18 CEST 2008 - dmueller@suse.de - -- also strip .comment.SUSE.OPTs from the static libs -- add missing-include-build-fix.diff - -------------------------------------------------------------------- -Tue Oct 7 09:44:20 CEST 2008 - schwab@suse.de - -- Fix alignment in resolver. - -------------------------------------------------------------------- -Tue Sep 30 09:41:01 CEST 2008 - olh@suse.de - -- symlink tuned libs because rpmlint is unable to handle hardlinks - -------------------------------------------------------------------- -Wed Sep 29 11:01:41 CEST 2008 - olh@suse.de - -- enable cpu-tuned libraries for power6 and ppc-cell-be [fate#304000,bnc#408808] -- remove -mtune G4/RS64 from CFLAGS on ppc/ppc64 - -------------------------------------------------------------------- -Thu Sep 18 11:39:53 CEST 2008 - rguenther@suse.de - -- Change .comment.SuSE.OPTs to .comment.SUSE.OPTs. Also strip from - crti.o and crtn.o. -- Adjust getgroups fortify check. [bnc#426958] - -------------------------------------------------------------------- -Thu Sep 18 10:19:51 CEST 2008 - schwab@suse.de - -- Fix alignment in resolver. - -------------------------------------------------------------------- -Mon Sep 15 11:55:18 CEST 2008 - adrian@suse.de - -- do not run glibc_post_upgrade in XEN builds - -------------------------------------------------------------------- -Sat Sep 13 21:49:44 CEST 2008 - rguenther@suse.de - -- strip .note.gnu.build-id from crt1.o. - -------------------------------------------------------------------- -Sat Sep 13 10:20:47 CEST 2008 - dmueller@suse.de - -- only strip comment from crt1.o - -------------------------------------------------------------------- -Fri Sep 12 17:49:39 CEST 2008 - mls@suse.de - -- block baselibs generation for i586 (use i686 instead) - -------------------------------------------------------------------- -Fri Sep 12 17:34:06 CEST 2008 - dmueller@suse.de - -- strip suse opts comments from crt.o (fate #300498) - -------------------------------------------------------------------- -Mon Sep 8 13:38:36 CEST 2008 - rguenther@suse.de - -- Add a patch to fix wrong asm constraints in the i386 lowlevel - futex lock implementation. - -------------------------------------------------------------------- -Thu Sep 4 19:46:22 CEST 2008 - matz@suse.de - -- Update to current trunk snapshot (2008-09-04), makes s390 build. - -------------------------------------------------------------------- -Wed Aug 27 16:12:01 CEST 2008 - matz@suse.de - -- Add a patch to use RTLD_DEEPBIND to load nss modules. [bnc #157078] - -------------------------------------------------------------------- -Mon Aug 25 15:09:37 CEST 2008 - matz@suse.de - -- Update to current trunk snapshot (2008-08-25). - -------------------------------------------------------------------- -Fri Aug 22 17:18:23 CEST 2008 - prusnak@suse.cz - -- enabled SELinux support [Fate#303662] - -------------------------------------------------------------------- -Fri Aug 15 10:37:10 CEST 2008 - aj@suse.de - -- Fix nscd init script for new checks. -- package empty ld.so.cache. - -------------------------------------------------------------------- -Fri Jul 25 08:16:40 CEST 2008 - aj@suse.de - -- Add directory /var/cache/ldconfig to filelist. - -------------------------------------------------------------------- -Wed Jun 25 15:38:25 CEST 2008 - pbaudis@suse.cz - -- Fix strptime() %EY era support [bnc#355887] - -------------------------------------------------------------------- -Wed Jun 25 13:30:42 CEST 2008 - rguenther@suse.de -- Add patch to fix unwinding through clone for x86_64 and i386. - [bnc#290807, bnc#403464] - -------------------------------------------------------------------- -Fri May 30 23:57:54 CEST 2008 - schwab@suse.de - -- Fix ppc atomic ops. - -------------------------------------------------------------------- -Fri Apr 25 13:30:50 CEST 2008 - pbaudis@suse.cz - -- Update to glibc-2.8 CVS branch as of 2008042513 (post-glibc-2.8): - * Faster sqrt and sqrtf implemention for some PPC variants. - -------------------------------------------------------------------- -Thu Apr 10 23:57:44 CEST 2008 - pbaudis@suse.cz - -- Build fix after the revert - -------------------------------------------------------------------- -Thu Apr 10 23:05:17 CEST 2008 - pbaudis@suse.cz - -- Temporarily revert a namespace leakage cleanup in glibc-2.8 since - it causes a lot of build failures - -------------------------------------------------------------------- -Thu Apr 10 16:29:34 CEST 2008 - pbaudis@suse.cz - -- Update to CVS HEAD as of 2008041002 (almost glibc-2.8): - * New locales: bo_CN, bo_IN. - - * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. - - * Sorting rules for some Indian languages (Devanagari and Gujarati). - Implemented by Pravin Satpute. - - * IPV6 addresses in /etc/resolv.conf can now have a scope ID - - * nscd caches now all timeouts for DNS entries - Implemented by Ulrich Drepper. - - * nscd is more efficient and wakes up less often. - Implemented by Ulrich Drepper. - - * More checking functions: asprintf, dprintf, obstack_printf, vasprintf, - vdprintf, and obstack_vprintf. - Implemented by Jakub Jelinek. - - * Faster memset for x86-64. - Implemented by Harsha Jagasia and H.J. Lu. - - * Faster memcpy on x86. - Implemented by Ulrich Drepper. - - * ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX). - Implemented by Ulrich Drepper. - -- memset() implementation from AMD replaced by new upstream - implementation - -- Enable stackguard randomization - -------------------------------------------------------------------- -Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de - -- added baselibs.conf file to build xxbit packages - for multilib support - -------------------------------------------------------------------- -Thu Mar 13 13:48:49 CET 2008 - dmueller@suse.de - -- don't try to use ipv6 in getaddrinfo() unconditionally (bnc#361697) - -------------------------------------------------------------------- -Sat Jan 26 13:19:41 CET 2008 - aj@suse.de - -- Add fixes from 2.8 branch for string.h and headers. The string.h - changes should fix sysvinit compilation. -- Fix some rpmlint warnings: - * Add versioned provides and obsoletes. - * Use %check section. - -------------------------------------------------------------------- -Fri Jan 18 14:03:43 CET 2008 - schwab@suse.de - -- Fix use of fnstsw. - -------------------------------------------------------------------- -Wed Nov 21 05:35:36 CET 2007 - pbaudis@suse.cz - -- Update to CVS branch glibc_2.7 as of today -- Remove the ::1 hack again -- Fix nscd race condition between mempool_alloc() and gc() [#288910] -- Fix nscd stack overflow in gc() when the number of cache entries - gets too large [#288910] -- Fix sunrpc udp client [#257745] -- Fix initgroups() crash in nss_compat [#310544] - -------------------------------------------------------------------- -Thu Sep 27 15:46:30 CEST 2007 - matz@suse.de - -- Remove broken x86_64 bcopy function. [#328486] - -------------------------------------------------------------------- -Sun Sep 16 14:04:30 CEST 2007 - aj@suse.de - -- Install gai.conf on all archs. - -------------------------------------------------------------------- -Thu Sep 13 17:20:58 CEST 2007 - pbaudis@suse.cz - -- Install the default gai.conf to /etc instead of docdir -- Do not return ::1 /etc/hosts records for 127.0.0.1 queries [#288879] - -------------------------------------------------------------------- -Wed Sep 5 03:07:39 CEST 2007 - pbaudis@suse.cz - -- Fix pthread_mutex_unlock() internal lock handling for incorrectly - written applications -- Fix nscd assertion failure when opening persistent db failed [#288910] - -------------------------------------------------------------------- -Mon Sep 3 20:10:39 CEST 2007 - mls@suse.de - -- fix typos in mdns patch [#206247], [#256690] - -------------------------------------------------------------------- -Fri Aug 31 17:38:02 CEST 2007 - aj@suse.de - -- Add /usr/share/locale-bundle/ as fallback directory for usage - with bundle-lang packages (see bug #302270). - -------------------------------------------------------------------- -Tue Aug 21 22:31:54 CEST 2007 - pbaudis@suse.cz - -- Reintroduce errorneously omitted AMD64 optimizations - (and fix them to compile again) - -------------------------------------------------------------------- -Thu Aug 16 09:47:53 CEST 2007 - aj@suse.de - -- Fix static linking (#233835). -- Silence rpmlint for profile package. -- Add Short-Description to nscd init script. - -------------------------------------------------------------------- -Mon Aug 13 19:09:31 CEST 2007 - aj@suse.de - -- Backport: - * Update kernel-features.h. - * Fix sched_getcpu error path on x86-64. - * Use upstreamed version of ldconfig cache speed ups. - -------------------------------------------------------------------- -Fri Aug 3 15:46:35 CEST 2007 - pbaudis@suse.cz - -- Remove the dynamic linker support for direct bindings (-Bdirect); - according to Michael Meeks, the performance improvement is too small -- Split timezone package to a separate physical package -- Update glibc to version 2.6.1 - -------------------------------------------------------------------- -Fri Jul 27 11:32:54 CEST 2007 - aj@suse.de - -- Use fdupes to reduce timezone data size. - -------------------------------------------------------------------- -Fri Jul 13 18:27:49 CEST 2007 - schwab@suse.de - -- Update to head of glibc-2.6 branch. -- Fix update on ppc. - -------------------------------------------------------------------- -Thu Jun 28 14:59:55 CEST 2007 - matz@suse.de - -- Add a provide for "rtld(GNU_HASH)". - -------------------------------------------------------------------- -Sun Jun 17 12:30:26 CEST 2007 - schwab@suse.de - -- Fix section selection in crt objects. - -------------------------------------------------------------------- -Thu Jun 7 02:43:29 CEST 2007 - pbaudis@suse.cz - -- Backport fix for crashing printf() of some invalid ldouble values - -------------------------------------------------------------------- -Wed May 30 04:40:25 CEST 2007 - pbaudis@suse.cz - -- Added few fixes from 2.6 CVS before 2.6.1 gets released - -------------------------------------------------------------------- -Fri May 18 23:14:42 CEST 2007 - pbaudis@suse.cz - -- Update glibc to version 2.6 -- Update tzdata to version 2007f - -------------------------------------------------------------------- -Fri May 4 11:24:53 CEST 2007 - schwab@suse.de - -- Update build checks. - -------------------------------------------------------------------- -Fri Apr 20 13:13:52 CEST 2007 - dmueller@suse.de - -- only keep symtab for libpthread* - -------------------------------------------------------------------- -Thu Apr 19 23:22:35 CEST 2007 - pbaudis@suse.cz - -- Fix strtod() exponent limit calculations [#230909] -- Fix random nscd crashes under very heavy passwd/group queries - load [#192391] -- Add some enums from CVS to sys/personality.h [#253710] -- Fix pthread_atfork()-induced hangs in threaded programs [#256237] -- Fix llrintl() on ppc64 [#241183] -- Fix makecontext() segfault [#249780] -- Fix potential dladdr() breakage [#241464] -- Fix some races in client programs with nscd garbage collection [#252138] - -------------------------------------------------------------------- -Fri Mar 30 02:54:06 CEST 2007 - pbaudis@suse.cz - -- Update localtime during timezone update [#239888] - -------------------------------------------------------------------- -Sun Mar 25 10:00:59 CEST 2007 - olh@suse.de - -- temporary disable powerpc cputuned libs to reduce turnaround time - -------------------------------------------------------------------- -Fri Feb 9 15:03:50 CET 2007 - pbaudis@suse.cz - -- Update to the latest upstream timezone data [#231833] - -------------------------------------------------------------------- -Fri Feb 2 11:42:51 CET 2007 - schwab@suse.de - -- Remove -ffortify. - -------------------------------------------------------------------- -Thu Feb 1 13:43:54 CET 2007 - schwab@suse.de - -- Remove -fstack-protector. - -------------------------------------------------------------------- -Mon Jan 29 16:13:09 CET 2007 - sbrabec@suse.cz - -- Removed references to /opt/gnome. - -------------------------------------------------------------------- -Thu Jan 25 21:14:58 CET 2007 - olh@suse.de - -- link power4 to ppc970, link power6 to power6x -- Update the powerpc cpu-tuned environment to v0.05 - -------------------------------------------------------------------- -Mon Jan 22 14:43:40 CET 2007 - schwab@suse.de - -- Update ppc build check. - -------------------------------------------------------------------- -Fri Nov 24 12:45:26 CET 2006 - pbaudis@suse.cz - -- Fix for Brazilian and Wester Australia timezone DSTs [#213375,#223196] - -------------------------------------------------------------------- -Thu Nov 16 21:59:06 CET 2006 - pbaudis@suse.cz - -- Disable power6 optimization for 10.2, not all pieces are there - [#219962] - -------------------------------------------------------------------- -Wed Oct 25 22:23:48 CEST 2006 - pbaudis@suse.cz - -- Change ld.so madvise() call to posix_fadvise() -- Fix mallopt(M_MXFAST,0) behaviour [#198760] -- Update the powerpc cpu-tuned environment to v0.04 [#215117] - -------------------------------------------------------------------- -Sun Oct 22 21:59:49 CEST 2006 - pbaudis@suse.cz - -- Update the powerpc cpu-tuned environment to v0.03 [#212549] -- Improve glibc powerpc optimization [#212548,#212580,#214282] - -------------------------------------------------------------------- -Tue Oct 17 21:03:54 CEST 2006 - mls@suse.de - -- add ldconfig-old-cache patch to speed up ldconfig - -------------------------------------------------------------------- -Sat Oct 14 12:23:53 CEST 2006 - olh@suse.de - -- dont use uninitialized (and wrong) variable in glibc-2.4.90-bdirect.diff - [#212470] - -------------------------------------------------------------------- -Thu Oct 12 02:33:58 CEST 2006 - pbaudis@suse.cz - -- Update to the latest 2.5 CVS -- More friendly -Bdirect behaviour in case of missing libraries -- Fix 2.4.90-nscd patch wrt. new gcc - -------------------------------------------------------------------- -Mon Oct 2 13:37:26 CEST 2006 - aj@suse.de - -- Fix warnings in testsuite (patch from CVS). - -------------------------------------------------------------------- -Fri Sep 29 22:06:43 CEST 2006 - pbaudis@suse.cz - -- Update to 2.5 CVS - official release (only minimal changes in CVS - since the last update) -- Fix a thinko in the -Bdirect patch - -------------------------------------------------------------------- -Fri Sep 29 19:51:24 CEST 2006 - dmueller@suse.de - -- fix devel requires - -------------------------------------------------------------------- -Fri Sep 29 04:27:40 CEST 2006 - pbaudis@suse.cz - -- Make the dynamic linker support direct bindings (Michael Meeks' - Solaris-like -Bdirect with minor changes by me) -- Split the kernel headers to a new package (linux-kernel-headers) - -------------------------------------------------------------------- -Wed Sep 27 14:59:32 CEST 2006 - schwab@suse.de - -- Fix broken assertion [#208189]. - -------------------------------------------------------------------- -Tue Sep 26 18:10:38 CEST 2006 - pbaudis@suse.cz - -- Fix mistake when removing some patches - -------------------------------------------------------------------- -Mon Sep 25 21:15:15 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS - -------------------------------------------------------------------- -Sat Sep 23 04:36:58 CEST 2006 - pbaudis@suse.cz - -- Fix 64bit-cleanliness gcc warnings - -------------------------------------------------------------------- -Thu Sep 21 23:52:13 CEST 2006 - pbaudis@suse.cz - -- Add /usr/lib{,64}/Xaw3d to /etc/ld.so.conf (by schwab@suse.de, - from original STABLE) [#205169] -- Fix chown() instead of lchown() called in fchownat() emulation - [#201751] -- Fix glob() overflowing stack when producing massive number of - matches [#190458] -- Update to current CVS - -------------------------------------------------------------------- -Wed Sep 20 23:48:20 CEST 2006 - pbaudis@suse.cz - -- Fix cut'n'paste error in a last-minute change - -------------------------------------------------------------------- -Wed Sep 20 22:07:59 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS -- Fix powerpc-cpu tarball extension -- Move crypt-blowfish to a patch so that quilt works on the tree - -------------------------------------------------------------------- -Sat Sep 2 19:01:21 CEST 2006 - schwab@suse.de - -- Use asm-powerpc for ppc and ppc64. -- Fix chroot check in glibc_post_upgrade. - -------------------------------------------------------------------- -Mon Aug 28 01:24:24 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS, should fix false positive heap overflow - trigger from malloc() causing gcc to hang [#201724] - -------------------------------------------------------------------- -Wed Aug 23 23:56:35 CEST 2006 - pbaudis@suse.cz - -- Update the powerpc cpu-tuned environment to v0.02 [#199274] -- Update to current CVS -- Drop pthread_mutexattr_getprioceiling() out of range fix - -------------------------------------------------------------------- -Thu Aug 10 20:10:04 CEST 2006 - pbaudis@suse.cz - -Ported from STABLE: -- Remove libc5 reference from /etc/ld.so.conf, shlibs5 is no longer - supported [#181947] -- Fix name of a dummy ia64 header from offsets.h to asm-offsets.h - [#191394] - -------------------------------------------------------------------- -Sun Jul 30 23:33:04 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS snapshot (highlight: support for .gnu.hash - fast linking support) - -------------------------------------------------------------------- -Wed Jul 12 03:15:08 CEST 2006 - pbaudis@suse.cz - -- pthread_mutexattr_getprioceiling() was returning prioceiling out - of range [#182782] - -------------------------------------------------------------------- -Wed Jul 12 02:39:22 CEST 2006 - pbaudis@suse.cz - -- Fix the HTML documentation missing an index [#190585] - -------------------------------------------------------------------- -Sat Jun 24 18:32:42 CEST 2006 - kukuk@suse.de - -- Update to current CVS snapshot -- Update to kernel-headers 2.6.17 -- Remove HZ define (sysconf(_SC_CLK_TCK) instead) - -------------------------------------------------------------------- -Tue Jun 13 11:49:43 CEST 2006 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Tue May 2 14:10:41 CEST 2006 - pbaudis@suse.cz - -- Fix bad memset() size in NTPL code [#159184] - -------------------------------------------------------------------- -Tue May 2 10:42:55 CEST 2006 - kukuk@suse.de - -- asm-powerpc/page.h: Don't move #ifdef __KERNEL__ [#171010] -- bits/mman.h: Fix value of MADV_REMOVE [#170734] - -------------------------------------------------------------------- -Mon Apr 24 12:04:12 CEST 2006 - kukuk@suse.de - -- Fix china timezone mess [#163674] -- Don't include linux/stddef.h [#167964] - -------------------------------------------------------------------- -Tue Apr 18 14:38:57 CEST 2006 - schwab@suse.de - -- Sanitize . - -------------------------------------------------------------------- -Thu Apr 13 13:34:07 CEST 2006 - kukuk@suse.de - -- Add /usr/include/linux/taskstats.h [#141936] - -------------------------------------------------------------------- -Tue Apr 11 12:20:57 CEST 2006 - kukuk@suse.de - -- nptl/init.c (sigcancel_handler): Compare with correct PID even - if the thread is in the middle of a fork call. - (sighandler_setxid): Likewise. - -------------------------------------------------------------------- -Sun Apr 9 16:27:20 CEST 2006 - ihno@suse.de - -- S390 fix for startupcode. Part of it was not PIC. - -------------------------------------------------------------------- -Fri Apr 7 13:42:20 CEST 2006 - kukuk@suse.de - -- Don't hardcode syscall numbers at our own - -------------------------------------------------------------------- -Tue Apr 4 22:10:47 CEST 2006 - schwab@suse.de - -- Fix readlink declaration. - -------------------------------------------------------------------- -Mon Apr 3 13:40:54 CEST 2006 - kukuk@suse.de - -- Update from CVS: - - nscd bug fixes - - Match return value of readlink to what POSIX says - - Fix NIS+ checks for NULL pointer - -------------------------------------------------------------------- -Sun Apr 2 20:53:17 CEST 2006 - dmueller@suse.de - -- Fix clients crash if nscd is unresponsive (glibc-#2501) -- Fix fd leak in nscd daemon (glibc-#2498) - -------------------------------------------------------------------- -Sat Apr 1 21:48:54 CEST 2006 - schwab@suse.de - -- Fix on ppc64. - -------------------------------------------------------------------- -Fri Mar 31 15:50:25 CEST 2006 - schwab@suse.de - -- Extend last change also to ppc64. - -------------------------------------------------------------------- -Sun Mar 26 21:08:58 CEST 2006 - schwab@suse.de - -- Terminate FDE before clone syscall. - -------------------------------------------------------------------- -Fri Mar 24 14:58:29 CET 2006 - ro@suse.de - -- kernel-headers: asm-powerpc: define PAGE_MASK in page.h - -------------------------------------------------------------------- -Mon Mar 20 13:57:27 CET 2006 - kukuk@suse.de - -- Update to final 2.6.16 kernel headers -- Update to current CVS: - - Don't use TLS before setting it up. - - Fix rounding of long doubles on ppc64. - - Correct usage of cfi_offset on ppc/ppc64. - - Fix memory leak in dlopen. - -------------------------------------------------------------------- -Tue Mar 14 17:08:27 CET 2006 - schwab@suse.de - -- Update fnmatch patch. - -------------------------------------------------------------------- -Fri Mar 10 13:36:38 CET 2006 - kukuk@suse.de - -- Disable unshare() syscall (request of kernel developer) - -------------------------------------------------------------------- -Fri Mar 10 08:30:53 CET 2006 - kukuk@suse.de - -- Don't include linux/interrupt.h from linux/rtc.h -- Revert last change to linux/input.h, disable struct -- Update to current CVS (nptl/ia64 fix) - -------------------------------------------------------------------- -Thu Mar 9 07:58:20 CET 2006 - kukuk@suse.de - -- Fix linux/input.h for userspace inclusion - -------------------------------------------------------------------- -Wed Mar 8 22:06:11 CET 2006 - kukuk@suse.de - -- Update kernel headers to 2.6.16-rc5 - -------------------------------------------------------------------- -Mon Mar 6 13:41:08 CET 2006 - kukuk@suse.de - -- Update to 2.4 CVS - - official release - - Fix free on ppc [#155374] - - Various sysconf() fixes - -------------------------------------------------------------------- -Sat Mar 4 18:12:36 CET 2006 - kukuk@suse.de - -- Update to CVS - - ldconfig/prelink fixes - -------------------------------------------------------------------- -Fri Mar 3 17:32:56 CET 2006 - aj@suse.de - -- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). - -------------------------------------------------------------------- -Fri Mar 3 10:58:02 CET 2006 - kukuk@suse.de - -- Update to CVS - - Fix ftw test suite failures - - Fix alignment of malloc for long double - -------------------------------------------------------------------- -Thu Mar 2 09:56:59 CET 2006 - kukuk@suse.de - -- Update to 2.3.91 CVS - - Fix 6arg syscall on s390x - - memccpy fix on IA64 - -------------------------------------------------------------------- -Wed Mar 1 08:54:53 CET 2006 - kukuk@suse.de - -- Update to CVS - - New linkat interface - - Update from tzdata2006b - - Define MADV_DONTFORK and MADV_DOFORK. - - Add robust mutex to NPTL - -------------------------------------------------------------------- -Thu Feb 23 15:26:29 CET 2006 - kukuk@suse.de - -- Reenable power optimized code again [#142839] - -------------------------------------------------------------------- -Sun Feb 12 09:45:39 CET 2006 - kukuk@suse.de - -- Disable power optimized code - -------------------------------------------------------------------- -Thu Feb 9 10:50:12 CET 2006 - kukuk@suse.de - -- Update to CVS - - Add unshare prototype - - Add memory barrier on i386/NPTL - -------------------------------------------------------------------- -Wed Feb 8 10:50:07 CET 2006 - kukuk@suse.de - -- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] - -------------------------------------------------------------------- -Mon Feb 6 16:58:50 CET 2006 - kukuk@suse.de - -- Update to current CVS -- Fix alternate locale search path patch [#147685] - -------------------------------------------------------------------- -Thu Feb 2 12:13:19 CET 2006 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Mon Jan 30 16:10:35 CET 2006 - schwab@suse.de - -- Fix the fix. - -------------------------------------------------------------------- -Sat Jan 28 18:42:08 CET 2006 - kukuk@suse.de - -- Fix seg.fault in __atfct_seterrno if called from futimesat() -- Apply patches for CPU-Tuned Environment on Power [#142839] - -------------------------------------------------------------------- -Fri Jan 27 12:10:55 CET 2006 - kukuk@suse.de - -- Cleanup ld.so.conf - -------------------------------------------------------------------- -Thu Jan 26 08:53:33 CET 2006 - kukuk@suse.de - -- Add alternate directory for translations [#144073] - -------------------------------------------------------------------- -Thu Jan 26 00:41:37 CET 2006 - mls@suse.de - -- converted neededforbuild to BuildRequires - -------------------------------------------------------------------- -Mon Jan 23 17:44:50 CET 2006 - kukuk@suse.de - -- Update to CVS -- Fix build_locales - -------------------------------------------------------------------- -Sat Jan 21 10:24:02 CET 2006 - kukuk@suse.de - -- Update to CVS -- Fix inclusion of sys/poll.h with _GNU_SOURCE defined - -------------------------------------------------------------------- -Fri Jan 20 15:02:35 CET 2006 - kukuk@suse.de - -- Update to CVS - -------------------------------------------------------------------- -Sun Jan 15 08:28:26 CET 2006 - kukuk@suse.de - -- Update to CVS (fix long double configure check) - -------------------------------------------------------------------- -Sun Jan 15 01:59:54 CET 2006 - schwab@suse.de - -- Readd , , . - -------------------------------------------------------------------- -Sun Jan 15 01:08:22 CET 2006 - schwab@suse.de - -- Readd . - -------------------------------------------------------------------- -Sat Jan 14 22:33:32 CET 2006 - kukuk@suse.de - -- Update to current CVS (long double support) - -------------------------------------------------------------------- -Fri Jan 13 09:17:17 CET 2006 - aj@suse.de - -- Fix x86-64 w_exp to not use extra plt. - -------------------------------------------------------------------- -Thu Jan 12 22:39:01 CET 2006 - kukuk@suse.de - -- Fix asm-s390/setup.h for userspace inclusion -- nsswitch.conf: Add nis to netgroup and automount entry -- Fix sys/procfs.h for ppc64 - -------------------------------------------------------------------- -Mon Jan 9 23:20:14 CET 2006 - kukuk@suse.de - -- Update to current CVS (fix for pthread.h with -std=c99) -- Define PAGE_SIZE on POWER -- Don't include linux/sched.h in asm-power/elf.h - -------------------------------------------------------------------- -Sun Jan 8 17:58:11 CET 2006 - kukuk@suse.de - -- Fix linux/acct.h for userland inclusion - -------------------------------------------------------------------- -Sun Jan 8 11:48:58 CET 2006 - kukuk@suse.de - -- Update to current CVS -- Remove CHILD_MAX from kernel-headers -- Copy subdirectories of asm-power, too. -- Remove da_DK@euro (does not exist) - -------------------------------------------------------------------- -Sat Jan 7 10:02:43 CET 2006 - kukuk@suse.de - -- Fix ext2 kernel headers -- Update to current CVS - -------------------------------------------------------------------- -Fri Jan 6 12:28:10 CET 2006 - kukuk@suse.de - -- Update to kernel headers 2.6.15 - -------------------------------------------------------------------- -Fri Jan 6 00:58:28 CET 2006 - kukuk@suse.de - -- Update crypt_blowfish to version 1.0 -- Update to current CVS -- Adjust nscd patches - -------------------------------------------------------------------- -Tue Jan 3 17:19:36 CET 2006 - aj@suse.de - -- Update to current CVS to fix pthread.h on 64-bit systems for C++. - -------------------------------------------------------------------- -Tue Jan 3 06:04:26 CET 2006 - aj@suse.de - -- Enable string patch again. -- Update to current CVS. - -------------------------------------------------------------------- -Wed Dec 21 15:11:14 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Fix ldconfig - -------------------------------------------------------------------- -Sat Dec 17 09:49:18 CET 2005 - kukuk@suse.de - -- Remove /usr/lib/zoneinfo -- Add /etc/localtime to filelist -- Update to current CVS -- Fix glibc #1978: statvfs does not know about current filesystems -- Fix wrong error return code of time() on x86 -- Remove nscd_nischeck -- Remove audit from nfb -- Remove LinuxThreads - -------------------------------------------------------------------- -Wed Dec 14 18:00:59 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Remove nscd_nischeck -- Remove audit from nfb - -------------------------------------------------------------------- -Mon Dec 5 12:07:05 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Disable SELinux - -------------------------------------------------------------------- -Thu Nov 24 15:54:27 CET 2005 - kukuk@suse.de - -- Remove obsolete patches: - - glibc-2.3.asprintf-error_handling.diff - - glibc-2.3.90-missing-string_h.diff - -------------------------------------------------------------------- -Wed Nov 23 17:20:10 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Don't install in parallel - -------------------------------------------------------------------- -Fri Nov 18 13:42:43 CET 2005 - kukuk@suse.de - -- Update to current CVS to fix compiling with new binutils - -------------------------------------------------------------------- -Wed Nov 16 18:33:57 CET 2005 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Sat Nov 5 14:44:07 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Disable linuxthreads on POWER and Itanium -- Fix kernel-headers for userland inclusion - -------------------------------------------------------------------- -Wed Nov 2 17:12:36 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Update to kernel-headers 2.6.14 - -------------------------------------------------------------------- -Tue Oct 18 17:37:08 CEST 2005 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Sat Oct 1 23:00:04 CEST 2005 - schwab@suse.de - -- Update libm ULPs. -- Fix limit in getcwd. - -------------------------------------------------------------------- -Thu Sep 15 16:13:50 CEST 2005 - kukuk@suse.de - -- Update to current CVS -- Update to final 2.6.13 kernel headers -- Adjust bindresvport.blacklist patch to check already ports >= 512 - -------------------------------------------------------------------- -Fri Aug 26 16:41:56 CEST 2005 - kukuk@suse.de - -- Update to current CVS -- init.d/nscd: Remove -S support (was removed from nscd) - -------------------------------------------------------------------- -Fri Aug 19 18:28:24 CEST 2005 - schwab@suse.de - -- Fix comment. - -------------------------------------------------------------------- -Fri Aug 19 17:36:24 CEST 2005 - matz@suse.de - -- Change .note.SuSE format [#105825]. - -------------------------------------------------------------------- -Fri Aug 19 17:13:21 CEST 2005 - kukuk@suse.de - -- Update to current CVS -- Move all obsolete libraries into own subpackage and document - them as obsolete - -------------------------------------------------------------------- -Fri Aug 5 10:32:38 CEST 2005 - schwab@suse.de - -- -mno-tls-direct-seg-refs is x86-only - -------------------------------------------------------------------- -Tue Aug 2 14:54:01 CEST 2005 - kukuk@suse.de - -- Update to 2.3.x CVS branch -- Compile with -mno-tls-direct-seg-refs - -------------------------------------------------------------------- -Fri Jul 29 11:12:02 CEST 2005 - kukuk@suse.de - -- Update to current CVS head - -------------------------------------------------------------------- -Wed Jul 27 23:13:04 CEST 2005 - schwab@suse.de - -- Update libm ULPs for ia64. -- Add linuxthreads stack guard support for ia64. - -------------------------------------------------------------------- -Sat Jul 23 10:05:16 CEST 2005 - kukuk@suse.de - -- Update to current CVS head (adds bits/wchar2.h) -- Move LinuxThreads version to obsolete/linuxthreads - -------------------------------------------------------------------- -Thu Jul 21 15:04:31 CEST 2005 - kukuk@suse.de - -- Update to current CVS head - -------------------------------------------------------------------- -Fri Jul 15 15:45:35 CEST 2005 - schwab@suse.de - -- Fix file list. - -------------------------------------------------------------------- -Fri Jul 15 12:09:08 CEST 2005 - aj@suse.de - -- Fix amd64 string routines and math routines. - -------------------------------------------------------------------- -Fri Jul 15 08:45:27 CEST 2005 - kukuk@suse.de - -- Use old LinuxThreads only for runtime and remove static version - and headers -- Update to current CVS head -- Remove own texi2html - -------------------------------------------------------------------- -Mon Jul 11 11:00:47 CEST 2005 - kukuk@suse.de - -- Install generic stdio-lock.h header file - -------------------------------------------------------------------- -Sat Jul 9 18:46:46 CEST 2005 - kukuk@suse.de - -- Temporary disable AMD64 string optimization - -------------------------------------------------------------------- -Wed Jul 6 09:58:39 CEST 2005 - kukuk@suse.de - -- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] - -------------------------------------------------------------------- -Mon Jul 4 20:41:47 CEST 2005 - kukuk@suse.de - -- nss_compat: Preserve original return value [Bug #95033] -- Cleanup old Obsoletes/Requires - -------------------------------------------------------------------- -Mon Jun 27 13:49:38 CEST 2005 - kukuk@suse.de - -- Update to current gilbc CVS snapshot - -------------------------------------------------------------------- -Thu Jun 23 23:25:42 CEST 2005 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Adjust nscd patch -- Enable SELinux/audit support for nscd -- Update .note.SuSE version - -------------------------------------------------------------------- -Mon Jun 20 12:35:20 CEST 2005 - kukuk@suse.de - -- Update to final 2.6.12 kernel headers -- Update to current glibc CVS snapshot - -------------------------------------------------------------------- -Thu Jun 16 17:03:43 CEST 2005 - kukuk@suse.de - -- Update linux/audit.h header -- Update to current CVS snapshot - -------------------------------------------------------------------- -Mon Jun 13 14:48:53 CEST 2005 - kukuk@suse.de - -- Don't terminate strings twice in nis/netgroup code. -- netinet/if_tr.h: don't include kernel headers. - -------------------------------------------------------------------- -Wed Jun 8 16:26:21 CEST 2005 - kukuk@suse.de - -- Update to kernel-headers 2.6.12-rc6 -- Fix build on s390 and s390x - -------------------------------------------------------------------- -Wed Jun 8 12:08:49 CEST 2005 - matz@suse.de - -- Don't strip .symtab from libpthread.so.0 (and other libs). - Fixes debugging of threaded programs (#81253). - -------------------------------------------------------------------- -Mon Jun 6 18:47:22 CEST 2005 - kukuk@suse.de - -- Update to current CVS head -- Update to kernel-headers 2.6.12-rc5 - -------------------------------------------------------------------- -Thu May 26 20:07:11 CEST 2005 - schwab@suse.de - -- No longer build loadlocale.c with -fno-unit-at-a-time. - -------------------------------------------------------------------- -Tue May 24 11:09:00 CEST 2005 - kukuk@suse.de - -- Update to current CVS head, obsoletes: - - glibc-2.3.90-libm.diff - - glibc-2.3.90-i386-sysdep.diff - - warn.diff - - dl-osinfo.diff - Adjusted: - - glibc-2.3.90-bindresvport.blacklist.diff - -------------------------------------------------------------------- -Sun May 22 01:53:44 CEST 2005 - schwab@suse.de - -- Fix missing include. - -------------------------------------------------------------------- -Tue May 17 23:46:19 CEST 2005 - schwab@suse.de - -- Fix warning. - -------------------------------------------------------------------- -Fri Apr 29 15:11:22 CEST 2005 - kukuk@suse.de - -- Update to latest CVS snapshost - -------------------------------------------------------------------- -Sat Apr 23 17:05:58 CEST 2005 - kukuk@suse.de - -- Fix all the archs using wrong FLAGS - -------------------------------------------------------------------- -Sat Apr 23 08:02:31 CEST 2005 - kukuk@suse.de - -- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS - -------------------------------------------------------------------- -Fri Apr 22 13:05:40 CEST 2005 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Fri Apr 22 12:45:26 CEST 2005 - kukuk@suse.de - -- Check if nice value does not conflict with test suite - -------------------------------------------------------------------- -Tue Apr 19 13:54:03 CEST 2005 - mls@suse.de - -- resolv: trigger re-read of /etc/resolv.conf for all threads if - a change is detected -- nscd: support a negative timeout of zero, used by hosts cache - -------------------------------------------------------------------- -Mon Apr 18 17:31:23 CEST 2005 - meissner@suse.de - -- Enable fortify possibility even for GCC 4.0, we apply - the necessary patch to the SUSE GCC 4.0. - -------------------------------------------------------------------- -Sat Apr 16 12:16:13 CEST 2005 - aj@suse.de - -- Apply amd64 string diff again. - -------------------------------------------------------------------- -Tue Apr 12 11:35:46 CEST 2005 - kukuk@suse.de - -- Update kernel-headers to 2.6.10 -- Update to current CVS snapshot - -------------------------------------------------------------------- -Wed Apr 6 18:33:32 CEST 2005 - schwab@suse.de - -- Cleanup neededforbuild. - -------------------------------------------------------------------- -Tue Apr 5 22:02:25 CEST 2005 - aj@suse.de - -- Add gettext-devel to neededforbuild. - -------------------------------------------------------------------- -Tue Apr 5 16:45:06 CEST 2005 - aj@suse.de - -- Do not build on xen machines. -- Adjust libm ULPs for PowerPC. - -------------------------------------------------------------------- -Fri Apr 1 14:20:45 CEST 2005 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Tue Mar 29 10:57:40 CEST 2005 - kukuk@suse.de - -- Update to current CVS snapshot -- Fix compiler warnings on ix86 - -------------------------------------------------------------------- -Mon Mar 28 17:27:44 CEST 2005 - kukuk@suse.de - -- Update to current CVS snapshot -- Disable Noversion Patch on i386 temporary - -------------------------------------------------------------------- -Fri Mar 18 14:33:22 CET 2005 - ro@suse.de - -- check-build.sh: require 2.6.11 on x86,x86_64 for build - -------------------------------------------------------------------- -Thu Mar 17 13:57:22 CET 2005 - mls@suse.de - -- nscd: enable hosts cache -- nscd: also watch /etc/resolv.conf -- nscd: check files every 3 seconds -- nscd: deal correctly with missing files - -------------------------------------------------------------------- -Tue Mar 15 15:50:12 CET 2005 - kukuk@suse.de - -- Update to current CVS snapshot. - -------------------------------------------------------------------- -Sat Feb 12 02:49:56 CET 2005 - schwab@suse.de - -- Remove const from __pthread_internal_tsd_address. - -------------------------------------------------------------------- -Fri Feb 11 15:44:31 CET 2005 - schwab@suse.de - -- Update to current CVS. -- Link glibc_post_upgrade against new libc. -- Fix build error with gcc4. - -------------------------------------------------------------------- -Wed Feb 9 10:40:29 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Fix bindresvport blacklist handling. -- Increase buffer in tst-cancel17 to match new kernel buffer size - [#50277] -- Enable LinuxThreads again -- Remove ia64-audit patch (is upstream) - -------------------------------------------------------------------- -Mon Feb 7 13:15:58 CET 2005 - aj@suse.de - -- Add patch to allow compilation with gcc4. - -------------------------------------------------------------------- -Mon Jan 31 16:33:47 CET 2005 - schwab@suse.de - -- Readd support for LD_AUDIT on ia64. - -------------------------------------------------------------------- -Mon Jan 31 14:32:01 CET 2005 - kukuk@suse.de - -- Add memory clobber to string inline assemblies on s390 [#50284]. - -------------------------------------------------------------------- -Mon Jan 31 12:55:59 CET 2005 - kukuk@suse.de - -- Fix filelist on i686 if we build NPTL only version - -------------------------------------------------------------------- -Mon Jan 31 09:17:33 CET 2005 - aj@suse.de - -- Generate new ULPs file for i386 needed by GCC 4. - -------------------------------------------------------------------- -Sun Jan 30 12:43:56 CET 2005 - kukuk@suse.de - -- Include own copy of texi2html -- Add glibc_pst_upgrade program (based on version from FC3) -- Update to current CVS - -------------------------------------------------------------------- -Thu Jan 27 23:28:57 CET 2005 - kukuk@suse.de - -- Re-add patch for timezone/zic.c (got lost with last merge) - -------------------------------------------------------------------- -Wed Jan 26 11:34:36 CET 2005 - kukuk@suse.de - -- Update timezone data to 2005c release (fixes zdump crash on - 64bit architectures) - -------------------------------------------------------------------- -Sat Jan 22 15:45:25 CET 2005 - schwab@suse.de - -- Add basic (incomplete) support for LD_AUDIT on ia64. - -------------------------------------------------------------------- -Fri Jan 21 11:00:08 CET 2005 - kukuk@suse.de - -- Enable patch for [Bug #49833] -- Allow to build NPTL only glibc -- Update to CVS from Jan 16, 2005, containing: -- Fix execlp argument in SunRPC code [glibc #681] -- Fix errno return values for futimes [glibc #633] -- Update FPU function on PPC/PPC64 [Bug #49764] - -------------------------------------------------------------------- -Mon Jan 17 10:40:24 CET 2005 - aj@suse.de - -- Enable amd64 string patch again after fixing failing hunks. -- Handle missing cpuid better for amd64 string functions. [#49803] - -------------------------------------------------------------------- -Sat Jan 15 16:05:36 CET 2005 - aj@suse.de - -- Fix amd64 string patch to use correct datatype. - -------------------------------------------------------------------- -Fri Jan 14 14:06:43 CET 2005 - kukuk@suse.de - -- Fix memory corruption in getgrouplist function [Bug #49833] - -------------------------------------------------------------------- -Tue Jan 11 11:01:26 CET 2005 - kukuk@suse.de - -- Enable all LinuxThreads tests again -- Finalize getconf -a patch (make it compatible with Solaris) -- Rewrite getconf manual page and mention new option -- Merge GB18030 patches into one. - -------------------------------------------------------------------- -Thu Dec 30 10:57:40 CET 2004 - kukuk@suse.de - -- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with - kernel-headers.SuSE.diff -- Revert nscd paths on old SuSE Linux distributions - -------------------------------------------------------------------- -Wed Dec 29 22:33:00 CET 2004 - kukuk@suse.de - -- Update to glibc 2.3.90 CVS branch -- Remove alarm-round.patch (merged upstream) - -------------------------------------------------------------------- -Thu Dec 9 14:19:05 CET 2004 - kukuk@suse.de - -- Update to current CVS -- Move nscd persistent database files back to /var/run/nscd - -------------------------------------------------------------------- -Mon Dec 6 15:43:08 CET 2004 - kukuk@suse.de - -- Update to current CVS -- Fix more kernel headers for userland inclusion - -------------------------------------------------------------------- -Fri Nov 26 14:33:20 CET 2004 - ro@suse.de - -- kernel-headers.diff: define __force in compiler.h - -------------------------------------------------------------------- -Thu Nov 25 17:52:39 CET 2004 - schwab@suse.de - -- Add Intel libm update. - -------------------------------------------------------------------- -Thu Nov 25 12:08:17 CET 2004 - kukuk@suse.de - -- Update to current glibc CVS -- Update kernel headers to 2.6.9 - -------------------------------------------------------------------- -Thu Nov 18 15:11:32 CET 2004 - kukuk@suse.de - -- Update to current glibc CVS - -------------------------------------------------------------------- -Mon Nov 15 14:11:27 CET 2004 - kukuk@suse.de - -- Update to current glibc CVS - -------------------------------------------------------------------- -Mon Nov 8 10:50:27 CET 2004 - kukuk@suse.de - -- Blacklist port 921 (lwresd) for usage by bindresvport() -- Update to current glibc CVS -- Add /var/run/nscd/* files as ghost entries - -------------------------------------------------------------------- -Mon Oct 18 13:54:04 CEST 2004 - aj@suse.de - -- Don't use special fdim functions for x86-64 since those give - wrong results for fdim (inf,inf). -- Fix ppc64 rebuild issue with ppc32 system [#47325]. - -------------------------------------------------------------------- -Wed Oct 13 14:06:55 CEST 2004 - kukuk@suse.de - -- Fix symlink librt.so -> tls/librt.so.1 -- Backout last glob changes -- Disable nptl as default for linking - -------------------------------------------------------------------- -Tue Oct 12 21:12:15 CEST 2004 - kukuk@suse.de - -- Install kernel-headers after merging linuxthreads/NPTL headers - -------------------------------------------------------------------- -Tue Oct 12 09:36:48 CEST 2004 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Mon Oct 11 15:11:03 CEST 2004 - kukuk@suse.de - -- Make NPTL default for linking - -------------------------------------------------------------------- -Fri Oct 1 13:34:49 CEST 2004 - kukuk@suse.de - -- Update to current CVS snapshot -- Add workaround for linuxthreads/without-__threads bug -- Remove KDE/ldconfig workaround -- Set SuSE ABI note to 9.3 - -------------------------------------------------------------------- -Sun Sep 26 16:56:19 CEST 2004 - kukuk@suse.de - -- Add lib/nptl/librt.so symlink to tls/librt.so.1 -- Update to current CVS - -------------------------------------------------------------------- -Sat Sep 25 13:43:09 CEST 2004 - kukuk@suse.de - -- Implement mq support for rtkaio and enable it again - -------------------------------------------------------------------- -Fri Sep 24 15:37:08 CEST 2004 - kukuk@suse.de - -- Add zh_SG.UTF-8 [Bug #46024] - -------------------------------------------------------------------- -Thu Sep 23 16:22:33 CEST 2004 - kukuk@suse.de - -- Sync sys/mount.h and linux/fs.h - -------------------------------------------------------------------- -Wed Sep 22 15:33:10 CEST 2004 - kukuk@suse.de - -- Make mdns support configurable in /etc/host.conf - -------------------------------------------------------------------- -Mon Sep 20 17:58:13 CEST 2004 - kukuk@suse.de - -- Fix invalidating of nscd caches and getaddrinfo() - -------------------------------------------------------------------- -Fri Sep 17 07:13:01 CEST 2004 - kukuk@suse.de - -- Update to current CVS (nscd and glob.h fixes) - -------------------------------------------------------------------- -Thu Sep 16 16:37:45 CEST 2004 - kukuk@suse.de - -- Fix getaddrinfo/nscd support - -------------------------------------------------------------------- -Wed Sep 15 14:11:29 CEST 2004 - kukuk@suse.de - -- Update to current CVS, remove merged patches - -------------------------------------------------------------------- -Sun Sep 12 09:06:31 CEST 2004 - kukuk@suse.de - -- Update to CVS: Fix nscd crash if one service is disabled -- glob.h: Add workaround for invalid prototypes -- nss_compat: Check that buffer is larger than 0 bytes - -------------------------------------------------------------------- -Sat Sep 11 00:50:47 CEST 2004 - kukuk@suse.de - -- Update to CVS: Fix cdefs.h for C++ usage - -------------------------------------------------------------------- -Fri Sep 10 14:31:47 CEST 2004 - kukuk@suse.de - -- Add lwres to hosts search order in nsswitch.conf -- Update to current CVS -- Use new nscd paths for socket/pid file -- Enable NPTL on i586 -- Add --print-all option to getconf - -------------------------------------------------------------------- -Thu Sep 2 11:13:48 CEST 2004 - kukuk@suse.de - -- Fix NPTL header files on x86-64 for 32bit compilation -- Apply various fixes from CVS -- Remove pre-Install for -devel package (no longer necessary) - -------------------------------------------------------------------- -Wed Aug 25 16:16:32 CEST 2004 - kukuk@suse.de - -- Don't compile in eval.c - -------------------------------------------------------------------- -Mon Aug 23 10:20:09 CEST 2004 - kukuk@suse.de - -- Update to current CVS: - - Use CVS version for last fix. - - Add malloc sanity checks for double free. - -------------------------------------------------------------------- -Sat Aug 21 00:06:58 CEST 2004 - schwab@suse.de - -- Fix cancellable syscalls in librt w/ linuxthreads. - -------------------------------------------------------------------- -Fri Aug 20 20:40:38 CEST 2004 - kukuk@suse.de - -- Update to current CVS [#43993] - -------------------------------------------------------------------- -Thu Aug 19 13:56:15 CEST 2004 - schwab@suse.de - -- Better fix for asm-ia64/gcc_intrin.h. - -------------------------------------------------------------------- -Wed Aug 18 14:53:47 CEST 2004 - kukuk@suse.de - -- Update to current CVS -- Workaround linux/ixjuser.h problem not including compiler.h -- Workaround linux/capi.h problem not including compiler.h - -------------------------------------------------------------------- -Tue Aug 17 18:32:29 CEST 2004 - schwab@suse.de - -- Fix asm-ia64/gcc_intrin.h. - -------------------------------------------------------------------- -Tue Aug 17 12:13:41 CEST 2004 - kukuk@suse.de - -- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] - -------------------------------------------------------------------- -Mon Aug 16 11:51:37 CEST 2004 - kukuk@suse.de - -- Update to current CVS version and update to - kernel-headers 2.6.8.1 to fix NPTL deadlock problems -- Disable linuxthreads/tst-clock1, does not work on i586 and lower - -------------------------------------------------------------------- -Fri Aug 13 14:45:31 CEST 2004 - kukuk@suse.de - -- Update to current CVS version -- Cleanup/adjust all patches - -------------------------------------------------------------------- -Thu Jun 17 12:12:31 CEST 2004 - kukuk@suse.de - -- Fix sched_setaffinity return/errno code in error case [#42124] - -------------------------------------------------------------------- -Wed Jun 16 07:45:07 CEST 2004 - meissner@suse.de - -- Updated altivec set/get/swapcontext patch to fix - more problems on altivec capable machines [#42039]. -- glibc is also able to build on -pmac64 kernels. - -------------------------------------------------------------------- -Mon Jun 14 20:12:00 CEST 2004 - kukuk@suse.de - -- Add fixes from CVS: - - sysconf return value fixes - - nscd host caching deadlock - - backtrace for s390/s390x/ia64 static linked binaries - -------------------------------------------------------------------- -Mon Jun 14 18:54:05 CEST 2004 - kukuk@suse.de - -- Increase listen backlog in RPC code [#41955] - -------------------------------------------------------------------- -Wed Jun 9 16:21:30 CEST 2004 - meissner@suse.de - -- Fixed typos in powerpc* *context functions to not destroy the r19 - register and save the v19 register correctly. [#41790] - -------------------------------------------------------------------- -Sat Jun 5 08:40:29 CEST 2004 - aj@suse.de - -- Fix makecontext with more than 6 arguments on x86-64 [#40546]. - -------------------------------------------------------------------- -Mon May 24 18:04:38 CEST 2004 - kukuk@suse.de - -- Update to kernel-headers 2.6.6 -- Update to current glibc CVS -- Disable rtkaio temporary - -------------------------------------------------------------------- -Sun May 23 21:44:19 CEST 2004 - kukuk@suse.de - -- Fix pthread_cond_wait on not ix86 and x86-64 architectures - -------------------------------------------------------------------- -Thu May 20 14:11:47 CEST 2004 - kukuk@suse.de - -- Add PPC64 kernel header file fixes [#40831,#40870] - -------------------------------------------------------------------- -Wed May 19 16:18:37 CEST 2004 - kukuk@suse.de - -- Add additional NPTL fixes from CVS - -------------------------------------------------------------------- -Tue May 18 10:52:27 CEST 2004 - schwab@suse.de - -- Fix mapping of DSOs with holes. - -------------------------------------------------------------------- -Fri May 14 13:50:37 CEST 2004 - schwab@suse.de - -- Fix rounding in alarm [#40552]. - -------------------------------------------------------------------- -Wed May 12 11:43:38 CEST 2004 - schwab@suse.de - -- Fix uninitialized array in regexp compiler [#40009]. - -------------------------------------------------------------------- -Tue May 11 11:45:08 CEST 2004 - kukuk@suse.de - -- Apply lot of fixes from current CVS -- Fix alignment of stack for makecontext on x86-64 [Bug #39413] -- Make XTABS identical to TABDLY on PPC - -------------------------------------------------------------------- -Wed May 5 13:50:51 CEST 2004 - kukuk@suse.de - -- Add some header fixes to match POSIX - -------------------------------------------------------------------- -Tue May 4 11:27:15 CEST 2004 - meissner@suse.de - -- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) - -------------------------------------------------------------------- -Mon May 3 13:42:12 CEST 2004 - kukuk@suse.de - -- Port --mlock option for ld.so from UL1 [Bug #39569] - -------------------------------------------------------------------- -Tue Apr 20 11:23:55 CEST 2004 - kukuk@suse.de - -- Add execstack fix for s390 - -------------------------------------------------------------------- -Mon Apr 19 13:11:27 CEST 2004 - kukuk@suse.de - -- Update to current CVS version (fix problems with new binutils - and gcc) - -------------------------------------------------------------------- -Mon Apr 19 08:29:42 CEST 2004 - kukuk@suse.de - -- Add pthread_getattr_np and syslog fixes from CVS -- Update gb18030 and big5hkscs gconv modules [Bug #39080] - -------------------------------------------------------------------- -Sat Apr 17 17:42:48 CEST 2004 - schwab@suse.de - -- Pacify autobuild. - -------------------------------------------------------------------- -Thu Apr 15 10:07:19 CEST 2004 - kukuk@suse.de - -- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf -- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] - -------------------------------------------------------------------- -Thu Apr 15 00:37:28 CEST 2004 - schwab@suse.de - -- Remove /usr/i386-linux from ld.so.conf, - -------------------------------------------------------------------- -Wed Apr 14 11:49:05 CEST 2004 - kukuk@suse.de - -- Fix linux/compiler.h for glibc inclusion -- Really fix ffsl on s390x - -------------------------------------------------------------------- -Sat Apr 10 00:42:04 CEST 2004 - schwab@suse.de - -- Fix syntax error in memcmp. - -------------------------------------------------------------------- -Fri Apr 9 16:22:31 CEST 2004 - kukuk@suse.de - -- Update from CVS: linuxthread debug fixes -- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) -- Fix ffsl weak alias on s390x -- Update to 2.6.5 kernel headers - -------------------------------------------------------------------- -Thu Apr 8 00:24:46 CEST 2004 - meissner@suse.de - -- forward umount to umount2 on ppc64 because umount syscall - does not exist - -------------------------------------------------------------------- -Mon Apr 5 14:40:18 CEST 2004 - kukuk@suse.de - -- Sync with current CVS (which is nearly identical with most of - our latest patches) - -------------------------------------------------------------------- -Fri Apr 2 14:18:11 CEST 2004 - kukuk@suse.de - -- Make fstatvfs64 working on 32bit architectures -- Add fwrite LFS fix from aj -- Add powerpc fixes from CVS -- Fix wrong errno code for shm_unlink [Bug #38013] - -------------------------------------------------------------------- -Wed Mar 31 09:31:56 CEST 2004 - kukuk@suse.de - -- Add three fixes from CVS: - - Call __nptl_deallocate_tsd for main thread, too - - setgroups: optimizations for huge number of groups - - initgroups: Limit the initial allocation to 64 entries - -------------------------------------------------------------------- -Tue Mar 30 17:36:18 CEST 2004 - kukuk@suse.de - -- Add IUTF8 to bits/termios.h [Bug #34725] -- *affinitiy.c: Prepend GLIBC_ to version names - -------------------------------------------------------------------- -Sat Mar 27 09:52:53 CET 2004 - kukuk@suse.de - -- Fix wrong return value of getXXbyYY_r in case key was not - found [Bug #37181] -- Fix typo in dl-open -- Don't set errno in NSS NIS module if group was not found - -------------------------------------------------------------------- -Fri Mar 26 12:39:27 CET 2004 - aj@suse.de - -- Add pow10/pow10f aliases for AMD64. - -------------------------------------------------------------------- -Thu Mar 25 16:42:57 CET 2004 - kukuk@suse.de - -- Update to latest CVS snapshot - -------------------------------------------------------------------- -Sat Mar 20 07:49:49 CET 2004 - aj@suse.de - -- Fix further problems with sched_[sg]etaffinity calls. - -------------------------------------------------------------------- -Fri Mar 19 19:57:35 CET 2004 - aj@suse.de - -- Fix sched_setaffinity compile problem. - -------------------------------------------------------------------- -Fri Mar 19 19:44:32 CET 2004 - kukuk@suse.de - -- Remove conflict with special aaa_base version (rpm will handle - this with file conflict) - -------------------------------------------------------------------- -Fri Mar 19 15:43:19 CET 2004 - kukuk@suse.de - -- Add SuSE abi note -- Add madvise patch -- Update to current CVS - -------------------------------------------------------------------- -Wed Mar 17 13:59:14 CET 2004 - kukuk@suse.de - -- Use official NPTL version fix -- Add LD_DEBUG=statistic for x86-64 -- Fix two JB_SIZE redefinitions on PPC -- Add two fixes for execstack - -------------------------------------------------------------------- -Mon Mar 15 08:11:33 CET 2004 - kukuk@suse.de - -- Require kernel 2.6.4 for glibc/NPTL -- Remove siginfo_t/si_band patch (needs to be fixed in kernel) -- Update linuxthreads_db and nptl_db -- Add libidn fixes from CVS - -------------------------------------------------------------------- -Sat Mar 13 19:53:58 CET 2004 - kukuk@suse.de - -- Adjust filelist (remove libcidn.a and libcidn_p.a) - -------------------------------------------------------------------- -Sat Mar 13 16:01:42 CET 2004 - kukuk@suse.de - -- Update to current CVS (merge of patches) -- Fix siginfo_t/si_band [Bug #34330] - -------------------------------------------------------------------- -Thu Mar 11 18:35:05 CET 2004 - mls@suse.de - -- Add mdns support to resolver library - -------------------------------------------------------------------- -Thu Mar 11 16:01:43 CET 2004 - kukuk@suse.de - -- Update kernel headers to 2.6.4 -- Update to current glibc CVS - -------------------------------------------------------------------- -Wed Mar 10 15:44:25 CET 2004 - bg@suse.de - -- Update hppa patches. - -------------------------------------------------------------------- -Mon Mar 8 15:19:01 CET 2004 - kukuk@suse.de - -- Fix vDSO on IA64 - -------------------------------------------------------------------- -Mon Mar 8 13:25:48 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Add libidn - - Lot of dynamic loader changes - -------------------------------------------------------------------- -Thu Mar 4 10:50:09 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Fix posix_fadvise vs. posix_fadvise64 - -------------------------------------------------------------------- -Tue Mar 2 16:51:44 CET 2004 - kukuk@suse.de - -- Fix PPC kernel header files -- Update from glibc CVS - - NPTL fixes - - nscd fixes - -------------------------------------------------------------------- -Tue Mar 2 12:11:38 CET 2004 - schwab@suse.de - -- Fix ppc32 to always use stat64 syscall. - -------------------------------------------------------------------- -Sat Feb 28 17:30:17 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Fix compiler warnings - - NPTL: Don't use CLONE_STOPPED - - Revert vDSO changes - -------------------------------------------------------------------- -Fri Feb 27 10:05:48 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Real NGROUP_MAX fix - - Lot of NPTL fixes - - clock_settime fix -- Add no_NO back (required by OpenI18N spec and [Bug #34745]) - -------------------------------------------------------------------- -Thu Feb 26 14:52:07 CET 2004 - kukuk@suse.de - -- Workaround broken NGROUP_MAX function - -------------------------------------------------------------------- -Thu Feb 26 12:10:37 CET 2004 - kukuk@suse.de - -- Add insserv PreRequires for nscd -- Update from CVS: NPTL and getaddrinfo memory leak fixes, - Get NGROUP_MAX from /proc filesystem - -------------------------------------------------------------------- -Sat Feb 21 06:22:23 CET 2004 - kukuk@suse.de - -- Update from CVS: IA64 relo fix, lot of PPC fixes -- Fix linux/mod_devicetable.h for userland inclusion -- Enable NPTL on Alpha - -------------------------------------------------------------------- -Fri Feb 20 01:08:26 CET 2004 - schwab@suse.de - -- Fix pthread_barrier_wait. - -------------------------------------------------------------------- -Thu Feb 19 09:46:46 CET 2004 - kukuk@suse.de - -- Update from CVS: More NPTL fixes -- nscd.init: Cleanups - -------------------------------------------------------------------- -Wed Feb 18 15:49:09 CET 2004 - kukuk@suse.de - -- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and - asm-ppc/bitops.h for userland inclusion. - -------------------------------------------------------------------- -Wed Feb 18 11:24:35 CET 2004 - bg@suse.de - -- Update hppa patches for current glibc -- Add workaround for ICE in hppa - -------------------------------------------------------------------- -Tue Feb 17 13:54:28 CET 2004 - kukuk@suse.de - -- Update from CVS: - - PPC nptl compatiblity fix - - NSCD patches merged - - ld.so.preload: Igreno missing files - - getaddrinfo: Fix problem with IPv6 addresses - -------------------------------------------------------------------- -Tue Feb 17 11:42:59 CET 2004 - aj@suse.de - -- Fix string optimizations init code on AMD64. - -------------------------------------------------------------------- -Sat Feb 14 07:10:42 CET 2004 - kukuk@suse.de - -- Update from CVS (for NPTL fixes and new PPC longjmp) -- Fix nscd deadlock with kernel 2.6 [Bug #34507] - -------------------------------------------------------------------- -Fri Feb 13 14:19:25 CET 2004 - aj@suse.de - -- Add more string/memory optimizations for AMD64. - -------------------------------------------------------------------- -Thu Feb 12 17:07:08 CET 2004 - kukuk@suse.de - -- Fix regex bug with invalid UTF-8 strings - -------------------------------------------------------------------- -Thu Feb 12 16:31:51 CET 2004 - aj@suse.de - -- Add more string optimizations for AMD64. - -------------------------------------------------------------------- -Wed Feb 11 16:14:53 CET 2004 - kukuk@suse.de - -- Update to current CVS snapshot -- Fix _IOC_TYPECHECK on s390/s390x/parisc -- Compile rtkaio only with NPTL -- Remove glibcbug (was dropped since glibc uses bugzilla now) -- Disable parallel build on s390x - -------------------------------------------------------------------- -Tue Feb 10 15:38:37 CET 2004 - schwab@suse.de - -- Work around invalid use of kernel headers in some packages. - -------------------------------------------------------------------- -Fri Feb 6 19:57:04 CET 2004 - kukuk@suse.de - -- Add kernel stat fix for PPC -- Add fix for off-by-one error in regex code - -------------------------------------------------------------------- -Thu Feb 5 18:04:45 CET 2004 - kukuk@suse.de - -- Update kernel header files to 2.6.2 - -------------------------------------------------------------------- -Tue Feb 3 17:14:38 CET 2004 - bg@suse.de - -- Update hppa patch - -------------------------------------------------------------------- -Tue Feb 3 16:24:47 CET 2004 - kukuk@suse.de - -- Fix ypclnt speedup patch -- Update to current CVS snapshot - -------------------------------------------------------------------- -Mon Jan 26 13:44:39 CET 2004 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Wed Jan 21 10:23:42 CET 2004 - aj@suse.de - -- Do not run in parallel on s390. - -------------------------------------------------------------------- -Mon Jan 19 15:49:51 CET 2004 - ro@suse.de - -- really fix linux/percpu.h to compile in userland - -------------------------------------------------------------------- -Fri Jan 16 11:14:49 CET 2004 - kukuk@suse.de - -- Update version.h to 2.6.1 -- Fix linux/percpu.h to compile in userland -- Update to current CVS snapshot -- Revert nscd path changes - -------------------------------------------------------------------- -Wed Jan 14 12:06:13 CET 2004 - kukuk@suse.de - -- Update to Kernel Headers 2.6.1 -- Update to current CVS snapshot -- Don't ignore make check on IA64 any longer - -------------------------------------------------------------------- -Sat Jan 10 01:56:48 CET 2004 - schwab@suse.de - -- Locale no_NO has been renamed to nb_NO. - -------------------------------------------------------------------- -Fri Jan 9 14:09:01 CET 2004 - kukuk@suse.de - -- Temporary ignore make check on IA64 and PPC - (known kernel/compiler bugs) - -------------------------------------------------------------------- -Fri Jan 9 00:36:51 CET 2004 - stepan@suse.de - -- fix v4l2 headers - -------------------------------------------------------------------- -Wed Jan 7 13:09:26 CET 2004 - kukuk@suse.de - -- Update to glibc CVS from 20040107 -- Remove manual pages which are now part of man-pages - -------------------------------------------------------------------- -Thu Dec 18 13:41:37 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031218 -- Update ot final 2.6.0 kernel headers -- Fix syntax error in spec file -- Update HPPA patch - -------------------------------------------------------------------- -Mon Dec 15 19:19:08 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031215 - -------------------------------------------------------------------- -Fri Dec 12 10:19:52 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031212 -- disable rtkaio (does not work with kernel 2.6 yet) - -------------------------------------------------------------------- -Fri Dec 5 10:00:28 CET 2003 - kukuk@suse.de - -- Update to glibc 2.3.3 CVS -- Make an extra sub package for nscd - -------------------------------------------------------------------- -Thu Nov 27 13:08:32 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031127 -- Add nsswitch.conf (moved from aaa_base) -- Add ld.so.conf (moved from aaa_base) [Bug #33277] -- Fix ceil on AMD64 - -------------------------------------------------------------------- -Fri Nov 21 14:40:29 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031121 -- Obsolete epoll (glibc-devel contains now this header files) - -------------------------------------------------------------------- -Wed Nov 19 15:54:58 CET 2003 - kukuk@suse.de - -- Add patch so that ld.so supports linuxthreads and nptl -- PPC64 requires kernel 2.4.21 -- Update to glibc CVS from 20031119 - -------------------------------------------------------------------- -Fri Nov 14 14:05:38 CET 2003 - bg@suse.de - -- Add hppa patches for current glibc. - -------------------------------------------------------------------- -Fri Nov 14 13:32:06 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031114 -- Remove PPC64 symbol version patch - -------------------------------------------------------------------- -Thu Nov 13 12:10:15 CET 2003 - schwab@suse.de - -- Fix last change covering libNoVersion. - -------------------------------------------------------------------- -Mon Nov 10 16:52:09 CET 2003 - schwab@suse.de - -- Specfile cleanup. - -------------------------------------------------------------------- -Thu Nov 6 14:10:17 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031106 - -------------------------------------------------------------------- -Wed Nov 5 15:26:06 CET 2003 - uli@suse.de - -- added a number of ARM fixes (glibc-2.3.2-armformat.patch, - glibc-armisa.patch, glibc-sjlj.patch) - -------------------------------------------------------------------- -Mon Oct 27 21:13:09 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031027 -- kernel headers: update to 2.6.0-test9 -- nptl: Use -fno-unit-at-a-time on AMD64, too - -------------------------------------------------------------------- -Thu Oct 23 13:34:25 CEST 2003 - kukuk@suse.de - -- Update to current CVS version - -------------------------------------------------------------------- -Wed Oct 22 19:01:37 CEST 2003 - kukuk@suse.de - -- nptl: Fix prototype in configure script -- nptl: Use -fno-unit-at-a-time -- locale: Add nb_NO - -------------------------------------------------------------------- -Fri Oct 17 16:56:58 CEST 2003 - kukuk@suse.de - -- Increase timeout for make check on overloaded architectures - -------------------------------------------------------------------- -Thu Oct 16 18:19:13 CEST 2003 - kukuk@suse.de - -- Fix building as normal user - -------------------------------------------------------------------- -Wed Oct 15 16:31:32 CEST 2003 - kukuk@suse.de - -- Fix putpwent/putgrent -- Make build as normal user - -------------------------------------------------------------------- -Tue Oct 14 21:13:25 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031014 - -------------------------------------------------------------------- -Tue Oct 14 13:26:06 CEST 2003 - aj@suse.de - -- Fix w_acosf for AMD64. - -------------------------------------------------------------------- -Tue Oct 14 10:49:36 CEST 2003 - kukuk@suse.de - -- Fix asm-sparc/kbio.h to compile kbdrate/X11 - -------------------------------------------------------------------- -Mon Oct 13 12:11:53 CEST 2003 - kukuk@suse.de - -- Update to kernel header files from 2.6.0-test7 - -------------------------------------------------------------------- -Fri Oct 10 17:11:01 CEST 2003 - schwab@suse.de - -- Fix misnamed syscalls. - -------------------------------------------------------------------- -Tue Oct 7 21:13:09 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031007 - -------------------------------------------------------------------- -Fri Oct 3 09:12:38 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031003 -- Fix kernel ioctl header files for PPC/PPC64 -- Removed dl-reloc.c fix, merged upstream - -------------------------------------------------------------------- -Wed Oct 1 16:49:19 CEST 2003 - kukuk@suse.de - -- Update to glibc cvs from 20031001 -- Remove sysmacros.h fix, merged upstream -- Add dl-reloc.c fix for compiler warnings - -------------------------------------------------------------------- -Mon Sep 29 11:49:19 CEST 2003 - kukuk@suse.de - -- Update kernel-headers to 2.6.0-test6 -- Fix sysmacros.h to compile with -ansi - -------------------------------------------------------------------- -Sat Sep 27 20:58:07 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030927 -- Remove SO_BSDCOMPAT (obsoleted by kernel) -- Make _IOC_TYPECHECK useable for userland programs - -------------------------------------------------------------------- -Fri Sep 26 10:01:15 CEST 2003 - kukuk@suse.de - -- Remove obsolete patches -- Update to crypt_blowfish 0.4.5 - -------------------------------------------------------------------- -Fri Sep 26 08:51:10 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030926 -- Update to nptl 0.60 - -------------------------------------------------------------------- -Sat Sep 20 21:13:04 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030920 -- Update to nptl 0.59 - -------------------------------------------------------------------- -Wed Sep 17 12:13:35 CEST 2003 - kukuk@suse.de - -- Disable TLS for i586 glibc [Bug #31034] - -------------------------------------------------------------------- -Tue Sep 16 15:38:19 CEST 2003 - kukuk@suse.de - -- Remove db1.85 - -------------------------------------------------------------------- -Mon Sep 15 21:30:51 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030915 - -------------------------------------------------------------------- -Mon Sep 15 18:43:19 CEST 2003 - kukuk@suse.de - -- Update to kernel 2.6.0-test5 header files - -------------------------------------------------------------------- -Sat Sep 13 07:01:40 CEST 2003 - kukuk@suse.de - -- Add librtkaio, a librt using kernel aio - -------------------------------------------------------------------- -Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de - -- Update to current CVS -- Remove patches which are merged in CVS -- Update to nptl-0.58 -- Remove _POSIX_VERSION hack - -------------------------------------------------------------------- -Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de - -- version.h: Fix comment how to compile kernel modules - -------------------------------------------------------------------- -Wed Sep 10 19:27:05 CEST 2003 - aj@suse.de - -- Install en_US.ISO-8859-15 under this name [#30373]. - -------------------------------------------------------------------- -Tue Sep 9 14:22:02 CEST 2003 - aj@suse.de - -- Fix last patch. - -------------------------------------------------------------------- -Mon Sep 8 18:20:56 CEST 2003 - aj@suse.de - -- Fix setting up of user signal handler in linuxthreads on x86_64. - -------------------------------------------------------------------- -Fri Sep 5 13:44:13 CEST 2003 - kukuk@suse.de - -- Add dl-tls.c to fix out of memory with static TLS errors - -------------------------------------------------------------------- -Wed Sep 3 21:03:13 CEST 2003 - kukuk@suse.de - -- Update glibc-linuxthreads -- Set _POSIX_VERSION back to 199209 - -------------------------------------------------------------------- -Mon Sep 1 18:23:49 CEST 2003 - kukuk@suse.de - -- Fix typo in nss_compat patch - -------------------------------------------------------------------- -Mon Sep 1 09:13:14 CEST 2003 - kukuk@suse.de - -- Add opendir fix for usage with NPTL -- Fix getspnam/getspent in nss_compat [Bug #29689] -- Set _POSIX2_VERSION back to 199209 - -------------------------------------------------------------------- -Wed Aug 27 15:22:40 CEST 2003 - kukuk@suse.de - -- Update to current CVS version - -------------------------------------------------------------------- -Mon Aug 25 09:35:41 CEST 2003 - kukuk@suse.de - -- Update to current CVS version - -------------------------------------------------------------------- -Mon Aug 18 21:17:25 CEST 2003 - aj@suse.de - -- increase stack size for linuxthreads/set-context. - ------------------------------------------------------------------- -Mon Aug 18 13:23:00 CEST 2003 - aj@suse.de - -- Fix mathinline.h for i386 to compile under C++ without warnings. - -------------------------------------------------------------------- -Sun Aug 17 09:59:25 CEST 2003 - ro@suse.de - -- kernel-headers.dif: don't include device.h from videodev.h - -------------------------------------------------------------------- -Fri Aug 15 10:39:49 CEST 2003 - kukuk@suse.de - -- Update to current cvs (fixes assert usage in C++ source code) - -------------------------------------------------------------------- -Thu Aug 14 10:34:27 CEST 2003 - kukuk@suse.de - -- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] -- On i686, include glibc with and without floating stack enabled -- Update to current cvs -- Update to nptl 0.56 - -------------------------------------------------------------------- -Thu Jul 31 16:57:36 CEST 2003 - kukuk@suse.de - -- Reenable new quota.h - -------------------------------------------------------------------- -Wed Jul 30 09:59:21 CEST 2003 - kukuk@suse.de - -- Update to current cvs -- Update kernel headers to 2.6.0-test2 -- Disable sys/quota.h update -- Enable TLS on AMD64 again - -------------------------------------------------------------------- -Mon Jul 28 17:18:33 CEST 2003 - kukuk@suse.de - -- Update to current cvs -- Disable TLS on AMD64 temporary -- Update sys/quota.h to match new kernel implementation - -------------------------------------------------------------------- -Fri Jul 25 10:14:44 CEST 2003 - kukuk@suse.de - -- Update to current cvs -- Update kernel headers to 2.6.0-test1 -- Update to nptl 0.55 -- Change minimal symbol version on PPC64 back to 2.2.5 - -------------------------------------------------------------------- -Wed Jul 23 18:13:40 CEST 2003 - meissner@suse.de - -- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just - merging over the asm-ppc64 things). - -------------------------------------------------------------------- -Wed Jul 23 12:59:04 CEST 2003 - aj@suse.de - -- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without - rpath. -- Fix bugs exposed by unit-at-a-time option. - -------------------------------------------------------------------- -Fri Jul 18 07:27:47 CEST 2003 - aj@suse.de - -- Fix compilation with unit-at-a-time enabled compiler. -- Enlarge stack for tst-setcontext test. - -------------------------------------------------------------------- -Mon Jun 30 13:09:25 CEST 2003 - kukuk@suse.de - -- Update to current CVS (includes if_arp.h and nss_compat changes) -- Update to nptl 0.50 -- Kernel header fixes for userland inclusion - -------------------------------------------------------------------- -Wed Jun 25 09:34:17 CEST 2003 - kukuk@suse.de - -- Update to current CVS -- Add target host and CVS checkout to glibc version printout -- Adjust fnmatch fix -- Update kernel headers to 2.5.73 - -------------------------------------------------------------------- -Tue Jun 24 23:09:11 CEST 2003 - kukuk@suse.de - -- Fix typos in syscalls.list on Alpha - -------------------------------------------------------------------- -Mon Jun 23 10:53:41 CEST 2003 - kukuk@suse.de - -- fix typo in linuxthreads on SPARC -- Update to current CVS -- Update to nptl 0.48 - -------------------------------------------------------------------- -Thu Jun 19 11:10:55 CEST 2003 - kukuk@suse.de - -- Disable nss_compat patch again - -------------------------------------------------------------------- -Wed Jun 18 10:51:07 CEST 2003 - kukuk@suse.de - -- Fix reading of locale.alias file -- Update to current CVS snapshot -- Update to nptl 0.47 -- Some kernel header file fixes for PPC64/IA64 -- Update nss_compat patch - -------------------------------------------------------------------- -Thu Jun 12 23:42:09 CEST 2003 - kukuk@suse.de - -- Update to current CVS snapshot -- Finish patch for printing linker warning - -------------------------------------------------------------------- -Wed Jun 11 11:45:42 CEST 2003 - kukuk@suse.de - -- Update to nptl 0.45 -- Update to current CVS snapshot -- Add patch to print linker warning, if a static binary calls - functions using NSS - -------------------------------------------------------------------- -Tue Jun 10 16:46:47 CEST 2003 - kukuk@suse.de - -- Use %find_lang macro and cleanup glibc-locale filelist - -------------------------------------------------------------------- -Thu Jun 5 17:28:36 CEST 2003 - kukuk@suse.de - -- Complete mathinline.h fixes - -------------------------------------------------------------------- -Thu Jun 5 10:10:02 CEST 2003 - kukuk@suse.de - -- linux/compiler.h: Define all inline variants to __inline__ - -------------------------------------------------------------------- -Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Update to nptl 0.43 -- More kernel header fixes -- Make --no-archive default for localedef - -------------------------------------------------------------------- -Tue May 27 14:09:31 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Update to nptl 0.40 -- Disable nss_compat patch -- Update to kernel headers from 2.5.70 - -------------------------------------------------------------------- -Fri May 23 10:50:37 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Add patches to make nss_compat work with every service - -------------------------------------------------------------------- -Mon May 19 10:57:13 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Add patch for better binary compatibility (errno, h_errno) - -------------------------------------------------------------------- -Fri May 16 09:32:39 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Update to nptl 0.39 -- Add URL tag -- asm-i386/byteorder.h: fix asm vs. __asm__ - -------------------------------------------------------------------- -Wed May 14 22:31:52 CEST 2003 - schwab@suse.de - -- Fix missing syscall numbers on ia64. - -------------------------------------------------------------------- -Wed May 14 08:59:09 CEST 2003 - kukuk@suse.de - -- More kernel headers fixes for i386, ia64, ppc and s390 - -------------------------------------------------------------------- -Mon May 12 16:49:51 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Fix lot of more kernel headers -- Adjust netinet/igmp.h patch -- Copy linux/version.h in place before compiling glibc - -------------------------------------------------------------------- -Fri May 9 13:25:08 CEST 2003 - kukuk@suse.de - -- Fix bits/stdio.h -- Fix lot of kernel headers to work in userspace -- Fix netinet/igmp.h -- Enable TLS on PPC - -------------------------------------------------------------------- -Wed May 7 10:58:25 CEST 2003 - kukuk@suse.de - -- Update CVS snapshot -- Enable TLS on IA64 -- Update to nptl 0.37 -- Update kernel-headers to 2.5.69 - -------------------------------------------------------------------- -Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de - -- fix install_info --delete call and move from preun to postun - -------------------------------------------------------------------- -Fri Apr 11 06:32:25 CEST 2003 - aj@suse.de - -- Do not build locales in parallel. - -------------------------------------------------------------------- -Tue Apr 8 16:12:36 CEST 2003 - kukuk@suse.de - -- Disable TLS for PPC - -------------------------------------------------------------------- -Mon Apr 7 14:16:03 CEST 2003 - kukuk@suse.de - -- Update CVS snapshot - -------------------------------------------------------------------- -Sat Apr 5 09:55:15 CEST 2003 - kukuk@suse.de - -- Disable TLS for ia64 -- Update to nptl 0.34 -- Update to CVS snapshot - -------------------------------------------------------------------- -Fri Apr 4 16:23:39 CEST 2003 - kukuk@suse.de - -- Remove libNoVersion from filelist on alpha -- Add nptl docu - -------------------------------------------------------------------- -Fri Apr 4 10:23:35 CEST 2003 - kukuk@suse.de - -- Update to nptl 0.33 -- Run ldconfig after installation -- Update to CVS snapshot - -------------------------------------------------------------------- -Sat Mar 29 17:47:56 CET 2003 - kukuk@suse.de - -- Update to CVS snapshot -- Add USAGI patches for kernel-headers -- Add nptl on i686 -- Enable --with-tls -- Implement NI_NUMSERICSCOPE for getnameinfo -- Implement AI_V4MAPPED/AI_ALL for getaddrinfo -- Implement AI_ADDRCONFIG for getaddrinfo -- Add USAGI patch for kernel headers - -------------------------------------------------------------------- -Mon Mar 24 21:46:45 CET 2003 - schwab@suse.de - -- Sanitize . - -------------------------------------------------------------------- -Mon Mar 17 08:45:27 CET 2003 - aj@suse.de - -- Fix tst-aio7 testcase and enable it again. -- Enable %fs for x86-64. -- Install en_US.ISO-8859-15 for libstdc++. -- Fix bits/syscalls.h for x86-64. - -------------------------------------------------------------------- -Thu Mar 13 10:36:24 CET 2003 - kukuk@suse.de - -- Revert tcgetattr change [Bug #25173/#25174] - -------------------------------------------------------------------- -Tue Mar 4 15:15:33 CET 2003 - aj@suse.de - -- Fix lround/lrint functions. - -------------------------------------------------------------------- -Sat Mar 1 07:24:22 CET 2003 - aj@suse.de - -- Update to 2.3.2 release. - -------------------------------------------------------------------- -Wed Feb 26 21:45:36 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot (fixes OOo and mysql problems) - -------------------------------------------------------------------- -Mon Feb 24 17:52:02 CET 2003 - kukuk@suse.de - -- Disable aio7 test on s390(x), too. - -------------------------------------------------------------------- -Mon Feb 24 14:19:20 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot (post 2.3.2-pre1) -- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS -- Remove libc23-ppc64-cvshead20021210.patch - -------------------------------------------------------------------- -Thu Feb 20 16:19:21 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot -- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be - included already. - -------------------------------------------------------------------- -Wed Feb 19 11:45:35 CET 2003 - olh@suse.de - -- add glibc-2.3-ppc32-textrel.patch - glibc-2.3-ppc64-vfork-20030214.patch - -------------------------------------------------------------------- -Fri Feb 14 14:51:11 CET 2003 - kukuk@suse.de - -- Extend getent to print all IP addresses of one host - -------------------------------------------------------------------- -Thu Feb 13 18:34:50 CET 2003 - kukuk@suse.de - -- Update to current snapshot - -------------------------------------------------------------------- -Wed Feb 12 11:50:54 CET 2003 - kukuk@suse.de - -- Update to current snapshot (contains official fix for #23513) - -------------------------------------------------------------------- -Tue Feb 11 15:28:16 CET 2003 - kukuk@suse.de - -- Update to current snapshot -- Fix corruption of internal data in gethostbyname2 [Bug #23513] - -------------------------------------------------------------------- -Sun Feb 9 12:20:55 CET 2003 - aj@suse.de - -- Fix cancellation of system calls on x86-64. - -------------------------------------------------------------------- -Sat Feb 8 10:43:02 CET 2003 - kukuk@suse.de - -- Fix wrong logic in dynamic resolv.conf patch - -------------------------------------------------------------------- -Fri Feb 7 17:35:12 CET 2003 - kukuk@suse.de - -- Fix access of _res symbol in multithreaded programs -- Add "dynamic resolv.conf" patch to libnss_dns, too. -- Remove obsolete db2 manual pages -- Update to current snapshot (fixes [Bug #23363]) - -------------------------------------------------------------------- -Thu Feb 6 18:06:36 CET 2003 - kukuk@suse.de - -- Update to current snapshot -- Use install-info for info pages - -------------------------------------------------------------------- -Tue Feb 4 20:12:51 CET 2003 - schwab@suse.de - -- Fix regexp parsing. - -------------------------------------------------------------------- -Mon Feb 3 14:44:21 CET 2003 - meissner@suse.de - -- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for - ppc and ppc64 kernel headers. - -------------------------------------------------------------------- -Fri Jan 31 22:12:03 CET 2003 - schwab@suse.de - -- Fix building on s390[x]. - -------------------------------------------------------------------- -Fri Jan 31 15:20:00 CET 2003 - kukuk@suse.de - -- Update to current glibc cvs - -------------------------------------------------------------------- -Thu Jan 30 16:05:32 CET 2003 - aj@suse.de - -- Fix one build problem on sparc. -- Fix asm-x86_64/mtrr.h. - -------------------------------------------------------------------- -Wed Jan 29 12:57:23 CET 2003 - kukuk@suse.de - -- Update to current glibc cvs -- Fix libm-ulps for x86-64 and ia64 - -------------------------------------------------------------------- -Thu Jan 23 16:47:33 CET 2003 - schwab@suse.de - -- Fix use of DT_FINI_ARRAY. -- Temporarily disable tst-aio7 test on ia64. - -------------------------------------------------------------------- -Tue Jan 14 22:41:33 CET 2003 - schwab@suse.de - -- Fix ia64 for non-tls build. - -------------------------------------------------------------------- -Tue Jan 14 21:51:24 CET 2003 - aj@suse.de - -- Package libpthread_nonshared.a. - -------------------------------------------------------------------- -Mon Jan 13 10:29:36 CET 2003 - kukuk@suse.de - -- Add fixed version of x86-64-linuxthreads-disable-fs.diff -- Readd parts of libm-x86-64.diff -- Update to current cvs snapshot -- Add fix for errno compatibility -- Add s390(x) vfork fixes - -------------------------------------------------------------------- -Sun Jan 12 19:16:13 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot - -------------------------------------------------------------------- -Fri Jan 3 19:09:36 CET 2003 - bg@suse.de - -- removed obsolete patch for hppa - -------------------------------------------------------------------- -Fri Dec 20 23:15:48 CET 2002 - kukuk@suse.de - -- Update to current cvs snapshot -- Obsoletes glibc-2.3-setjmp-ppc64.diff -- Obsoletes build-alpha.diff -- Obsoletes libm-x86-64.diff -- Disable activate-spinlocks.diff temporary -- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) - -------------------------------------------------------------------- -Tue Dec 17 16:01:13 CET 2002 - olh@suse.de - -- remove glibc-2.2.5-ppc64-bits-socket_h.diff - add glibc-2.3-setjmp-ppc64.diff - add libc23-ppc64-cvshead20021210.patch - dont run configure in subshell, it can fail and rpm cant catch it - -------------------------------------------------------------------- -Fri Dec 13 20:01:30 CET 2002 - schwab@suse.de - -- Add more ia64 syscalls. - -------------------------------------------------------------------- -Fri Dec 6 22:06:41 CET 2002 - olh@suse.de - -- build also the locals parallel - do not fail with parallel calculation on lowmem systems - -------------------------------------------------------------------- -Tue Dec 3 11:16:30 CET 2002 - aj@suse.de - -- Build parallel on x86-64. -- Activate fast spinlocks in malloc for x86 and x86-64. -- Integrate new math library from AMD for x86-64. - -------------------------------------------------------------------- -Fri Nov 29 11:08:03 CET 2002 - bg@suse.de - -- Fix build on hppa. - -------------------------------------------------------------------- -Thu Nov 28 21:31:09 CET 2002 - aj@suse.de - -- Fix build on alpha. - -------------------------------------------------------------------- -Thu Nov 28 15:45:09 CET 2002 - aj@suse.de - -- Update to CVS version from 2002-11-28. -- Do not use %fs for threads for now on x86-64. -- Fix fnmatch bug with multibyte strings. - -------------------------------------------------------------------- -Tue Nov 12 12:41:17 CET 2002 - bg@suse.de - -- Updated hppa patches - -------------------------------------------------------------------- -Thu Nov 7 14:00:04 CET 2002 - kukuk@suse.de - -- getaddrinfo(): get host information for AF_INET and AF_INET6 only - from the same service [Bug #21237] - -------------------------------------------------------------------- -Thu Nov 7 12:11:29 CET 2002 - bg@suse.de - -- Fix build of linuxthreads for hppa - -------------------------------------------------------------------- -Tue Nov 5 16:31:11 CET 2002 - bg@suse.de - -- Use current kernel-headers for parisc -- Add support for hppa - -------------------------------------------------------------------- -Tue Nov 5 15:29:32 CET 2002 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Tue Oct 22 16:21:34 CEST 2002 - schwab@suse.de - -- Fix ia64 syscall numbers. - -------------------------------------------------------------------- -Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de - -- Fix alignment in locale-archive. - -------------------------------------------------------------------- -Mon Oct 21 17:16:51 CEST 2002 - kukuk@suse.de - -- Update to glibc 2.3.1 cvs 20021021 -- Remove nss_dns6 patch - -------------------------------------------------------------------- -Tue Oct 15 14:58:34 CEST 2002 - kukuk@suse.de - -- Update to glibc 2.3.1 cvs 20021015 - -------------------------------------------------------------------- -Wed Oct 2 14:06:31 CEST 2002 - kukuk@suse.de - -- Update to glibc 2.3 cvs 20021002 -- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) - -------------------------------------------------------------------- -Wed Sep 25 11:43:08 CEST 2002 - mls@suse.de - -- build with -finline-limit=2000 on mips/armv4l - -------------------------------------------------------------------- -Tue Sep 17 14:54:26 CEST 2002 - schwab@suse.de - -- Add new ia64 syscall numbers. - -------------------------------------------------------------------- -Mon Sep 16 17:24:01 CEST 2002 - meissner@suse.de - -- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. -- Aligned powerpc bits/sem.h to be the same as the other 64bit - archs, keeping the 32bit layout. -- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. - -------------------------------------------------------------------- -Thu Sep 12 15:56:07 CEST 2002 - meissner@suse.de - -- ppc/ppc64: added more biarch things to the SystemV IPC headers - which are needed to get 64bit ipc / IPC_STAT to work. - -------------------------------------------------------------------- -Mon Sep 9 18:52:53 CEST 2002 - bk@suse.de - -- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) -- s390x: requires 64-bit kernel - -------------------------------------------------------------------- -Mon Sep 9 15:40:23 CEST 2002 - kukuk@suse.de - -- Increase minimum value of MAXPACKET in libnss_dns, too - -------------------------------------------------------------------- -Mon Sep 9 14:31:04 CEST 2002 - uli@suse.de - -- all architectures are created equal, but some are more equal - than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, - ia64, s390x and ppc64 to fit 64 bit __ino_t type - -------------------------------------------------------------------- -Fri Sep 6 17:26:53 MEST 2002 - mls@suse.de - -- fix squeeze bug in db-1.85: set dirty flag after page modification - -------------------------------------------------------------------- -Fri Sep 6 15:44:17 CEST 2002 - kukuk@suse.de - -- Increase minimum value of MAXPACKET - -------------------------------------------------------------------- -Mon Sep 2 10:38:40 CEST 2002 - kukuk@suse.de - -- Fix asm header files for sparc/sparc64 - -------------------------------------------------------------------- -Fri Aug 30 13:18:51 CEST 2002 - aj@suse.de - -- Revert linuxthreads for x86-64 for now. - -------------------------------------------------------------------- -Wed Aug 28 16:15:18 CEST 2002 - aj@suse.de - -- Add optimized math routines for x86-64. - -------------------------------------------------------------------- -Tue Aug 27 15:52:49 CEST 2002 - olh@suse.de - -- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" - -------------------------------------------------------------------- -Mon Aug 26 21:56:22 CEST 2002 - olh@suse.de - -- add ppc64_glibc_2.2.5_sunrpc-fix.patch - * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds - __powerpc64__ specific fields and adjust size/alignment for 64-bit. - -------------------------------------------------------------------- -Fri Aug 23 17:04:38 CEST 2002 - aj@suse.de - -- Use floating stacks for x86-64. -- Add LICENSE file. -- Fix profiling code on x86-64. -- Add strcspn, strpbrk and strspn optimizations for x86-64. -- Fix makecontext for x86-64. - -------------------------------------------------------------------- -Thu Aug 15 08:59:16 CEST 2002 - aj@suse.de - -- Use biarch headers already for building so that bits/syscalls.h is - build correctly. -- Fix bits/syscalls.h for x86-64. -- Remove *xattr patches. - -------------------------------------------------------------------- -Thu Aug 8 16:59:27 CEST 2002 - kukuk@suse.de - -- Update to current cvs (calloc variable overflow fixed) -- Apply fix for calloc fix -- Add *xattr system calls and error number - -------------------------------------------------------------------- -Tue Aug 6 12:45:06 CEST 2002 - kukuk@suse.de - -- Update to current cvs (IPv6 fixes) - -------------------------------------------------------------------- -Mon Aug 5 12:29:59 CEST 2002 - aj@suse.de - -- Implement *context functions for x86-64. - -------------------------------------------------------------------- -Sat Aug 3 16:01:07 CEST 2002 - kukuk@suse.de - -- Update kernel-headers to version 2.4.19 -- Add PreRequires "filesystem". - -------------------------------------------------------------------- -Thu Aug 1 18:23:37 CEST 2002 - bk@suse.de - -- added s390-may2002.diff with some chunks from may2002 drop -- give make check a second chance on s390(x), but fail if not(race) - -------------------------------------------------------------------- -Tue Jul 30 11:40:41 CEST 2002 - kukuk@suse.de - -- sunrpc/xdr_array.c: Check for variable overflow -- Ignore failed make check on s390(x) - -------------------------------------------------------------------- -Tue Jul 30 08:31:24 CEST 2002 - aj@suse.de - -- Add optimisations for x86-64. - -------------------------------------------------------------------- -Mon Jul 29 09:38:04 CEST 2002 - kukuk@suse.de - -- Don't allocate/free category name in setlocale() unnecessarily - (for IBM Java [Bug #17065]). - -------------------------------------------------------------------- -Tue Jul 23 13:36:31 CEST 2002 - kukuk@suse.de - -- Update to current glibc cvs (pread/pwrite fixes) -- Remove extra de.po, is in official tarball now. - -------------------------------------------------------------------- -Sat Jul 20 07:14:26 CEST 2002 - aj@suse.de - -- Fix profiling for x86-64. - -------------------------------------------------------------------- -Fri Jul 19 16:26:26 CEST 2002 - meissner@suse.de - -- Fixed the PPC64 patch, several superflous files removed. -- Reenabled make check for ppc64. - -------------------------------------------------------------------- -Wed Jul 17 14:13:58 CEST 2002 - kukuk@suse.de - -- Update to current glibc cvs -- Fix kernel headers for s390/s390x -- Move some binaries/shell scripts and manual pages to the - correct subpackage - -------------------------------------------------------------------- -Tue Jul 16 14:51:48 CEST 2002 - meissner@suse.de - -- Merged latest PowerPC patch from IBM. - * Lots of ppc64 related fixes. - * Start of biarch support. - * Changed struct stat in 64bit ABI. - -------------------------------------------------------------------- -Fri Jul 12 18:29:17 CEST 2002 - aj@suse.de - -- Add biarch patch for s390 and s390x. - -------------------------------------------------------------------- -Mon Jul 8 10:45:49 CEST 2002 - aj@suse.de - -- Add some optimized x86-64 math routines and a fixed lgammal - implementation. -- Testsuite on x86-64 should pass now. -- Run ldconfig in postinstall. -- Fix memleak in catgets. - -------------------------------------------------------------------- -Sat Jul 6 13:38:48 CEST 2002 - kukuk@suse.de - -- Fix typo in create_biarch_asm.sh (asm-sparc path) - -------------------------------------------------------------------- -Thu Jul 4 21:59:43 CEST 2002 - kukuk@suse.de - -- Fix typo in manpages/Makefile -- Fix filelist (on some archs ld-linux.so.2 was missing) - -------------------------------------------------------------------- -Thu Jul 4 10:02:46 CEST 2002 - kukuk@suse.de - -- Revert mktime patch (check for year < 70) -- Replace ifarch i386 with ix86 -- Add patch for arm -- Include pt_chown again - -------------------------------------------------------------------- -Wed Jul 3 16:05:05 CEST 2002 - kukuk@suse.de - -- Add more new manual pages -- Fix spec file (renaming of ld-*, creating of include/asm header - files) -- Update to current CVS version -- Fix kernel-headers for x86-64 (don't overwrite patched version) -- Rename Equador -> Ecuador [Bug #16648] -- Add hint about security problem of host caching with nscd to - config file. - -------------------------------------------------------------------- -Tue Jun 25 14:29:14 CEST 2002 - aj@suse.de - -- Fix dl-machine.h for x86-64 to compile with new binutils. -- Fix mtrr.h header for x86-64. -- Do not package pt_chown. - -------------------------------------------------------------------- -Tue Jun 18 14:28:40 CEST 2002 - sf@suse.de - -- reverted changes from Tue Jun 11 10:04:55 CEST 2002 - (took the kernel-headers from before, readded patch9) -- add new archive with kernel-headers for x86_64 -- add autofs patch - -------------------------------------------------------------------- -Mon Jun 17 17:12:39 CEST 2002 - bk@suse.de - -- remove s390* from the list of archs that ignore check fail - -------------------------------------------------------------------- -Thu Jun 13 20:38:00 CEST 2002 - uli@suse.de - -- fixed typos in spec - -------------------------------------------------------------------- -Thu Jun 13 13:35:43 CEST 2002 - schwab@suse.de - -- Fix ssize_t and __ipc_pid_t for ppc64. - -------------------------------------------------------------------- -Wed Jun 12 09:47:12 CEST 2002 - uli@suse.de - -- fix errlist.c for ARM as well - -------------------------------------------------------------------- -Tue Jun 11 10:04:55 CEST 2002 - sf@suse.de - -- made new kernel-header archive from kernel-source -- added asm-ppc64 to kernel-headers -- removed patch9 as it is obsoleted by the new kernel-headers - -------------------------------------------------------------------- -Fri Jun 7 14:29:30 CEST 2002 - olh@suse.de - -- update asm-ppc64/ioctls.h, missing TIOCGDEV - -------------------------------------------------------------------- -Thu Jun 6 17:57:41 CEST 2002 - olh@suse.de - -- fix glibc-ppc64 patch - -------------------------------------------------------------------- -Thu Jun 6 15:09:16 CEST 2002 - olh@suse.de - -- update ppc64_glibc_ldconfig.diff - -------------------------------------------------------------------- -Thu Jun 6 10:09:24 CEST 2002 - ke@suse.de - -- Update de.po from - http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. -- Use only translated entries to make the testsuite happy; call - msgattrib on de.po and hu.po [# 16438]. - -------------------------------------------------------------------- -Mon Jun 3 09:58:54 CEST 2002 - aj@suse.de - -- Clean up generation of asm includes for bi-arch systems. -- Enable profiling for x86-64. - -------------------------------------------------------------------- -Mon Jun 3 08:52:38 CEST 2002 - kukuk@suse.de - -- Add fix for weak declaration "_old_sys_nerr" -- Remove already disabled alpha patch -- Update to current CVS - -------------------------------------------------------------------- -Sat Jun 1 10:54:41 CEST 2002 - olh@suse.de - -- fix stat for real, wrong size for st_nlink - -------------------------------------------------------------------- -Wed May 29 18:24:57 CEST 2002 - olh@suse.de - -- add ppc64_glibc_2.2.5-types.diff, fixes stat() - -------------------------------------------------------------------- -Wed May 29 10:38:34 CEST 2002 - olh@suse.de - -- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance - -------------------------------------------------------------------- -Thu May 23 08:32:00 MEST 2002 - aj@suse.de - -- Rename __thread to fix problems with GCC 3.2. - -------------------------------------------------------------------- -Mon May 20 11:37:42 CEST 2002 - olh@suse.de - -- add ppc64 kernel headers - add create_ppc_asm.sh - update ppc64 patch, use /lib64/ld64.so.1 - move generic syscalls.list to ppc64/32 - set/getrlimit GLIBC2.0 is ppc32 only - use parallel make on ppc and ppc64 - do not chroot as user - cleanup nested ifarch for dynamic linker - -------------------------------------------------------------------- -Wed May 15 10:25:45 CEST 2002 - aj@suse.de - -- Fix building of linuxthreads with current GCC. - -------------------------------------------------------------------- -Mon May 13 10:04:37 CEST 2002 - olh@suse.de - -- fix ppc64 RTLDLIST ld64.so rewrite - -------------------------------------------------------------------- -Sat May 11 02:09:06 CEST 2002 - schwab@suse.de - -- Add div/mod compatibility functions for ia64. - -------------------------------------------------------------------- -Fri May 10 13:56:59 CEST 2002 - olh@suse.de - -- add ppc64 support - -------------------------------------------------------------------- -Thu May 9 10:06:19 CEST 2002 - aj@suse.de - -- Add sys/io.h for x86-64. - -------------------------------------------------------------------- -Mon May 6 18:12:51 CEST 2002 - ihno@suse.de - -- corrected memory calculation for parallel build - -------------------------------------------------------------------- -Fri May 3 16:28:23 CEST 2002 - kukuk@suse.de - -- Add fix to compile math.h on SPARC with g++ - -------------------------------------------------------------------- -Thu May 2 11:29:29 CEST 2002 - kukuk@suse.de - -- Update to current CVS 2.2 branch -- Add x86-64 fix for crti.o and /usr/lib64 with libpthread - -------------------------------------------------------------------- -Fri Apr 26 16:51:48 CEST 2002 - kukuk@suse.de - -- define sqrtl alias for PowerPC - -------------------------------------------------------------------- -Mon Apr 22 07:56:00 CEST 2002 - aj@suse.de - -- Fix vfork for x86-64. -- Fix handling of ld.so.cache for x86-64. - -------------------------------------------------------------------- -Thu Apr 18 09:16:58 CEST 2002 - aj@suse.de - -- Allow testsuite to fail for x86-64. -- Add ULPs for x86-64. - -------------------------------------------------------------------- -Wed Apr 17 16:36:51 CEST 2002 - kukuk@suse.de - -- Update to current snapshot (mktime and dl fixes) -- Update hu.po -- Do not build a profiled glibc for x86-64 - -------------------------------------------------------------------- -Fri Apr 12 10:33:31 CEST 2002 - kukuk@suse.de - -- Update to current snapshot (fix SPARC compile) -- Revert do-lookup.h patch on Alpha (does not work here) - -------------------------------------------------------------------- -Wed Apr 10 15:09:33 CEST 2002 - aj@suse.de - -- Fix linuxthreads for x86-64. - -------------------------------------------------------------------- -Wed Apr 10 13:02:48 CEST 2002 - aj@suse.de - -- Add x86-64.diff to fix glob64. - -------------------------------------------------------------------- -Wed Apr 10 10:26:22 CEST 2002 - kukuk@suse.de - -- Update kernel-headers to 2.4.19pre4 (with x86-64 support) -- Update glibc to current cvs snapshot -- Allow old currencies (before EUR) - -------------------------------------------------------------------- -Tue Apr 2 15:58:49 CEST 2002 - aj@suse.de - -- Update ULPs. - -------------------------------------------------------------------- -Thu Mar 21 16:18:58 CET 2002 - kukuk@suse.de - -- Create html pages after installation of info pages [Bug #15283] - -------------------------------------------------------------------- -Tue Mar 12 16:09:51 CET 2002 - kukuk@suse.de - -- Add db1 fix if blocksize is not ^2 - -------------------------------------------------------------------- -Sat Mar 2 18:18:15 CET 2002 - kukuk@suse.de - -- Add fix for format string bug - -------------------------------------------------------------------- -Sat Mar 2 10:44:31 CET 2002 - kukuk@suse.de - -- Fix return value of nice wrapper - -------------------------------------------------------------------- -Fri Mar 1 14:33:09 CET 2002 - kukuk@suse.de - -- Add fix for corrupt ut_line -- Add fix for current gcc 3.1 -- Add patch for nice return values - -------------------------------------------------------------------- -Thu Feb 28 14:53:42 CET 2002 - kukuk@suse.de - -- Add fix for rtime, swscanf and ia64 - -------------------------------------------------------------------- -Mon Feb 18 13:22:05 CET 2002 - kukuk@suse.de - -- When a dlopened module references a weak symbol from another - dlopened module (loaded with RTLD_GLOBAL) no dependency was - generated for this fact, so the second module was unloaded even - if the first one was still around. - -------------------------------------------------------------------- -Sun Feb 17 10:51:53 CET 2002 - kukuk@suse.de - -- Add pthread/signal bugfix [Bug #13280] -- Fix directory file list (don't include /usr/include) - -------------------------------------------------------------------- -Thu Feb 14 19:46:04 CET 2002 - kukuk@suse.de - -- Use defattr in spec file to avoid problems with not existing - UIDs and rpm. - -------------------------------------------------------------------- -Thu Feb 14 13:22:13 CET 2002 - aj@suse.de - -- Update ULPs for GCC 3.1. - -------------------------------------------------------------------- -Wed Feb 13 16:03:20 CET 2002 - kukuk@suse.de - -- Apply db1 patch from mls@suse.de to fix rpm problems - -------------------------------------------------------------------- -Tue Feb 12 02:01:42 CET 2002 - ro@suse.de - -- fix owner/group for kernel headers - -------------------------------------------------------------------- -Mon Feb 11 15:17:18 CET 2002 - kukuk@suse.de - -- Add another solution for the glob problem - -------------------------------------------------------------------- -Thu Feb 7 16:20:49 CET 2002 - kukuk@suse.de - -- Add fix for glob (glob should not call globfree) -- Add fix for innetgr - -------------------------------------------------------------------- -Wed Feb 6 22:01:29 CET 2002 - kukuk@suse.de - -- Use correct BuildRoot - -------------------------------------------------------------------- -Wed Feb 6 16:40:49 CET 2002 - kukuk@suse.de - -- Update hu.po - -------------------------------------------------------------------- -Wed Feb 6 15:36:56 CET 2002 - kukuk@suse.de - -- Set LC_CTYPE for error messages in localedef [Bug #12878] - -------------------------------------------------------------------- -Mon Feb 4 14:26:48 CET 2002 - kukuk@suse.de - -- Add fixes from CVS: dynamic loader, readv and writev seg.fault - and various architecture fixes for alpha and mips -- Don't compile with -g on Alpha -- Add fix for possible endless loop fix - -------------------------------------------------------------------- -Fri Feb 1 15:58:41 CET 2002 - bk@suse.de - -- merged s390x lib64 patch and spec file changes - -------------------------------------------------------------------- -Wed Jan 23 15:39:02 CET 2002 - kukuk@suse.de - -- Split glibc into glibc and glibc-locale -- Create more UTF8 locale - -------------------------------------------------------------------- -Mon Jan 21 10:45:19 CET 2002 - kukuk@suse.de - -- Update to official glibc 2.2.5 - -------------------------------------------------------------------- -Wed Jan 16 18:29:33 CET 2002 - kukuk@suse.de - -- Remove /var/adm/setup/setup.timeconfig - -------------------------------------------------------------------- -Wed Jan 16 17:22:52 CET 2002 - kukuk@suse.de - -- Apply S390 fix - -------------------------------------------------------------------- -Wed Jan 9 15:33:49 CET 2002 - kukuk@suse.de - -- Update to glibc 2.2.5pre1 - -------------------------------------------------------------------- -Tue Jan 8 18:41:29 CET 2002 - egmont@suselinux.hu - -- Added partial Hungarian translation - -------------------------------------------------------------------- -Tue Jan 8 13:52:51 CET 2002 - kukuk@suse.de - -- Add patch to pass math tests with gcc 3.x -- Update to current CVS version - -------------------------------------------------------------------- -Thu Jan 3 18:05:48 CET 2002 - kukuk@suse.de - -- Update kernel header files to 2.4.17 - -------------------------------------------------------------------- -Tue Jan 1 10:55:34 CET 2002 - kukuk@suse.de - -- Update current CVS version, add final fixes for LSB test suite - -------------------------------------------------------------------- -Tue Dec 18 15:27:42 CET 2001 - poeml@suse.de - -- Install ja_JP.SJIS locale. - -------------------------------------------------------------------- -Sat Dec 15 15:27:12 CET 2001 - schwab@suse.de - -- Fix missing declaration of md5_uintptr. - -------------------------------------------------------------------- -Fri Dec 14 10:11:17 CET 2001 - kukuk@suse.de - -- Update to correct CVS branch - -------------------------------------------------------------------- -Thu Dec 13 14:50:25 CET 2001 - kukuk@suse.de - -- Update to current CVS -- Increase PATH_MAX to 4096 (including the leading zero) -- Clear pointer if asprintf fails -- pthread_key_delete should not contact thread manager before it - is created. - -------------------------------------------------------------------- -Tue Dec 11 22:35:07 CET 2001 - kukuk@suse.de - -- Fix prelink patch - -------------------------------------------------------------------- -Tue Dec 11 18:53:12 CET 2001 - kukuk@suse.de - -- Add fixes for LSB.os test suite (ftw, grantpt and ftok) -- Update to current CVS -- Add prelink patch - -------------------------------------------------------------------- -Fri Dec 7 19:16:30 CET 2001 - kukuk@suse.de - -- Merge with current CVS -- Add blowfish crypt - -------------------------------------------------------------------- -Fri Nov 23 11:55:14 CET 2001 - uli@suse.de - -- added armv4l arch to spec -- added arm kernel headers -- added trivial fix for dl-machine.h from CVS (see arm.dif) - -------------------------------------------------------------------- -Thu Nov 15 10:29:33 CET 2001 - adrian@suse.de - -- add mips architecture to spec file -- apply further mips fixes for ld -- activate %clean again - -------------------------------------------------------------------- -Sun Nov 11 12:12:03 CET 2001 - kukuk@suse.de - -- Fix lost permissions of shell script on SPARC - -------------------------------------------------------------------- -Thu Nov 8 18:40:33 CET 2001 - kukuk@suse.de - -- Add 32bit UID fixes - -------------------------------------------------------------------- -Thu Nov 8 11:47:21 CET 2001 - kukuk@suse.de - -- More fixes for asm-ia64 header files - -------------------------------------------------------------------- -Thu Nov 8 10:50:13 CET 2001 - kukuk@suse.de - -- Fix asm-i386/processor.h (don't align struct) -- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) -- Correct version number in version.h - -------------------------------------------------------------------- -Wed Nov 7 14:07:21 CET 2001 - uli@suse.de - -- fixed sys/io.h, sysmacros.h for icc - -------------------------------------------------------------------- -Tue Nov 6 16:53:04 CET 2001 - kukuk@suse.de - -- Update kernel-headers to 2.4.14 - -------------------------------------------------------------------- -Thu Nov 1 11:34:56 CET 2001 - kukuk@suse.de - -- Use again old rules to generate html files - -------------------------------------------------------------------- -Sun Oct 21 22:55:24 CEST 2001 - schwab@suse.de - -- Fix inttypes.h for C++. - -------------------------------------------------------------------- -Fri Oct 19 13:31:53 CEST 2001 - aj@suse.de - -- Fix typo in inttypes.h that presents compilation by non-GCC compilers. - -------------------------------------------------------------------- -Tue Oct 16 10:56:52 CEST 2001 - aj@suse.de - -- Update elf.h to include x86-64 defines since those are needed - by some other tools. - -------------------------------------------------------------------- -Fri Sep 28 15:59:19 CEST 2001 - schwab@suse.de - -- Readd patch from 2001-09-10 with corrections. -- Add compatibility patch for GCC 3. This allows to build glibc - with GCC 3. -- Require that make check succeeds on ia64. - -------------------------------------------------------------------- -Thu Sep 13 15:58:31 CEST 2001 - aj@suse.de - -- Add a better version of the threads-fork patch that fixes some - more places where interrupts can occur and does this a bit cleaner. - -------------------------------------------------------------------- -Tue Sep 11 13:50:37 CEST 2001 - aj@suse.de - -- Remove patch from 2001-09-10 since it breaks the dynamic linker. - -------------------------------------------------------------------- -Tue Sep 11 10:51:11 CEST 2001 - aj@suse.de - -- Fix bug in linuxthreads where manager and threads could - get out of synch due to an interrupted read call. - -------------------------------------------------------------------- -Mon Sep 10 18:20:32 CEST 2001 - schwab@suse.de - -- Fix handling of dependent dynamic objects for dlopen/dlclose. - -------------------------------------------------------------------- -Sat Sep 8 21:02:38 CEST 2001 - kukuk@suse.de - -- Don't create gconv cache (else iconv --list seg.faults) - -------------------------------------------------------------------- -Tue Aug 28 13:39:37 MEST 2001 - aj@suse.de - -- Improve dynamic linker to relocate dynamic objects faster. This - implies a small cache for symbol lookups and handling the ld -z combreloc - feature if binaries are linked this way. - -------------------------------------------------------------------- -Fri Aug 24 14:26:33 CEST 2001 - kukuk@suse.de - -- Add fix for handling of %l[] in vfscanf -- ldconfig removes stale links now -- Remove susehelp config files, now in susehelp itself - -------------------------------------------------------------------- -Wed Aug 22 15:26:06 CEST 2001 - aj@suse.de - -- Update s390 patch from IBM. - -------------------------------------------------------------------- -Fri Aug 17 14:11:16 CEST 2001 - kukuk@suse.de - -- Adjust dns6 patch for 2.2.4 -- Fix spec file (include lost libnss_dns6.so) -- Fix versionnumber in version.h [Bug #9759] -- Update kernel-header to 2.4.9 - -------------------------------------------------------------------- -Thu Aug 16 09:32:39 MEST 2001 - aj@suse.de - -- Update to 2.2.4 final. Add s390-ucontext patch. - -------------------------------------------------------------------- -Fri Aug 10 12:04:14 CEST 2001 - aj@suse.de - -- Update to current glibc version. Do not use the hardlink program - for compatification since localedef will do this itself now. - Create gconv cache. - -------------------------------------------------------------------- -Wed Aug 1 15:31:50 CEST 2001 - aj@suse.de - -- Add patch for zic to create copy of the timezone instead - of a symbolic link so that the file exists even if /usr is not - mounted. - Use i486 instead of i386 as default architecture for i386. - -------------------------------------------------------------------- -Sat Jul 28 08:36:27 CEST 2001 - kukuk@suse.de - -- Fix problem with linux/spinlock.h - -------------------------------------------------------------------- -Fri Jul 27 09:30:01 CEST 2001 - kukuk@suse.de - -- Update kernel-header files to 2.4.7 - -------------------------------------------------------------------- -Thu Jul 26 14:04:15 CEST 2001 - froh@suse.de - -- add fix for failing tst-setcontext on s390 - -------------------------------------------------------------------- -Wed Jul 25 09:29:38 CEST 2001 - aj@suse.de - -- Add patch to fix loading of dynamic libs in static programs for PPC. - -------------------------------------------------------------------- -Fri Jul 20 13:44:30 CEST 2001 - kukuk@suse.de - -- Update to current CVS snapshot -- Disable tst-regex and test-lfs - -------------------------------------------------------------------- -Fri Jul 6 15:26:54 CEST 2001 - kukuk@suse.de - -- Add da_DK@euro and da_DK.UTF-8 - -------------------------------------------------------------------- -Thu Jul 5 14:34:02 CEST 2001 - kukuk@suse.de - -- Update to current CVS snapshot -- Remove obsolete cvs patch -- Fix DNS/IPv6 patch -- Hardlink equal locale files - -------------------------------------------------------------------- -Fri Jun 22 15:59:21 CEST 2001 - olh@suse.de - -- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check - -------------------------------------------------------------------- -Tue Jun 19 06:41:03 EDT 2001 - bk@suse.de - -- added s390x support to spec file - -------------------------------------------------------------------- -Tue Jun 19 10:27:38 CEST 2001 - aj@suse.de - -- Fix profiling on PowerPC. - -------------------------------------------------------------------- -Fri Jun 15 17:58:22 CEST 2001 - schwab@suse.de - -- Fixup asm-ia64/atomic.h for user-space inclusion. - -------------------------------------------------------------------- -Tue Jun 12 11:14:08 CEST 2001 - aj@suse.de - -- Fix testsuite for sparc. - -------------------------------------------------------------------- -Mon Jun 11 13:56:16 CEST 2001 - aj@suse.de - -- Fix testsuite for powerpc and S390, build again on alpha. - -------------------------------------------------------------------- -Tue May 22 15:43:24 CEST 2001 - kukuk@suse.de - -- Update to current CVS snapshot -- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] - -------------------------------------------------------------------- -Sun May 13 15:19:42 CEST 2001 - kukuk@suse.de - -- Don't use absolute paths in pre-install-section - -------------------------------------------------------------------- -Fri May 4 19:20:10 CEST 2001 - kukuk@suse.de - -- Add special version.h which fails on compiling kernel modules - -------------------------------------------------------------------- -Sat Apr 28 18:32:51 CEST 2001 - kukuk@suse.de - -- Update to glibc 2.2.3, kernel-headers-2.4.4 - -------------------------------------------------------------------- -Tue Apr 24 16:04:32 CEST 2001 - schwab@suse.de - -- Fix feenableexcept on ia64. - -------------------------------------------------------------------- -Tue Apr 24 15:48:34 CEST 2001 - aj@suse.de - -- Install some more UTF-8 locales, fix tr_TR locale. - -------------------------------------------------------------------- -Thu Apr 12 17:42:08 CEST 2001 - kukuk@suse.de - -- Include our own texi2html - -------------------------------------------------------------------- -Wed Apr 11 18:50:12 CEST 2001 - kukuk@suse.de - -- Add fixes from SuSE kernel header files -- Add patch to reload /etc/resolv.conf if there was changes -- Add glibc.conf for susehelp (glibc-html pages) - -------------------------------------------------------------------- -Mon Apr 9 17:39:18 CEST 2001 - schwab@suse.de - -- Fix ld.so for kernel 2.4.3 on ia64. - -------------------------------------------------------------------- -Thu Apr 5 17:39:44 CEST 2001 - kukuk@suse.de - -- Add more fixes from CVS - -------------------------------------------------------------------- -Tue Apr 3 15:40:58 CEST 2001 - kukuk@suse.de - -- Fix isdn header files from kernel-headers - -------------------------------------------------------------------- -Fri Mar 30 18:40:09 CEST 2001 - kukuk@suse.de - -- Update kernel header files to 2.4.3 - -------------------------------------------------------------------- -Fri Mar 30 17:22:54 CEST 2001 - kukuk@suse.de - -- Merge s390 patches -- Fix rcmd_af() (allow PF_UNSPEC) - -------------------------------------------------------------------- -Fri Mar 30 08:52:32 CEST 2001 - aj@suse.de - -- Add some small fixes, fix spec file for removal of man-pages. - -------------------------------------------------------------------- -Thu Mar 29 18:16:09 CEST 2001 - kukuk@suse.de - -- Don't provide kernel_headers any longer -- Remove some man-pages which are now official in the man-pages - package - -------------------------------------------------------------------- -Thu Mar 29 08:33:19 CEST 2001 - aj@suse.de - -- Fix shmfs recognition. - -------------------------------------------------------------------- -Thu Mar 29 01:18:52 CEST 2001 - ro@suse.de - -- added db-splitmask fix from mls (hopefully work around bug in db1) - -------------------------------------------------------------------- -Wed Mar 28 09:02:54 CEST 2001 - aj@suse.de - -- Fix s390 to not generate wrong relocations, work around compiler - error. - -------------------------------------------------------------------- -Wed Mar 21 14:46:25 CET 2001 - kukuk@suse.de - -- glibc-devel obsoletes and provides linclude - -------------------------------------------------------------------- -Tue Mar 20 12:38:28 CET 2001 - kukuk@suse.de - -- Add strtok and other fixes from CVS -- Add yp_all fix - -------------------------------------------------------------------- -Tue Mar 13 13:57:16 CET 2001 - kukuk@suse.de - -- Add more s390 string.h fixes - -------------------------------------------------------------------- -Mon Mar 12 10:05:30 CET 2001 - aj@suse.de - -- Add fixes for s390, don't run testsuite on s390 for now. - -------------------------------------------------------------------- -Fri Mar 9 17:05:27 CET 2001 - kukuk@suse.de - -- Fix linux/init.h header file - -------------------------------------------------------------------- -Fri Mar 9 16:01:15 CET 2001 - aj@suse.de - -- Handle new EM_S390 value. - -------------------------------------------------------------------- -Fri Mar 9 15:33:55 CET 2001 - kukuk@suse.de - -- kernel-heaer fixes to build on Alpha - -------------------------------------------------------------------- -Thu Mar 8 16:02:45 CET 2001 - ro@suse.de - -- update kernel-headers to 2.4.2 - -------------------------------------------------------------------- -Thu Mar 8 12:53:56 CET 2001 - ro@suse.de - -- kernel-header fixes to build on s390 - -------------------------------------------------------------------- -Thu Feb 22 11:22:08 CET 2001 - schwab@suse.de - -- More kernel header fixes for IA64. - -------------------------------------------------------------------- -Tue Feb 20 11:18:53 CET 2001 - kukuk@suse.de - -- Remove optimisation not supported on all plattforms - -------------------------------------------------------------------- -Mon Feb 19 09:48:02 CET 2001 - kukuk@suse.de - -- Fix Optimization of glibc build -- Add Optimization for alphaev6 and sparcv9 - -------------------------------------------------------------------- -Sat Feb 17 17:19:40 CET 2001 - kukuk@suse.de - -- Update to glibc 2.2.2 from CVS - -------------------------------------------------------------------- -Thu Feb 15 16:51:12 CET 2001 - kukuk@suse.de - -- kernel header fixes for SPARC and IA64 - -------------------------------------------------------------------- -Tue Feb 13 14:19:43 CET 2001 - kukuk@suse.de - -- Make optimization for i686 work -- Add manual page for ldd - -------------------------------------------------------------------- -Mon Feb 12 16:05:23 CET 2001 - kukuk@suse.de - -- Fix more kernel headers - -------------------------------------------------------------------- -Thu Feb 8 16:34:27 CET 2001 - kukuk@suse.de - -- Fix more kernel-headers - -------------------------------------------------------------------- -Wed Feb 7 17:17:03 CET 2001 - kukuk@suse.de - -- Delete links in pre install section for glibc-devel - -------------------------------------------------------------------- -Wed Feb 7 01:08:26 CET 2001 - kukuk@suse.de - -- Fix kernel-header includes - -------------------------------------------------------------------- -Tue Feb 6 09:29:04 CET 2001 - kukuk@suse.de - -- Fix creating of /usr/include/asm on SPARC -- Add more CVS patches - -------------------------------------------------------------------- -Mon Feb 5 18:58:08 CET 2001 - kukuk@suse.de - -- Add some patches from CVS -- Include our own kernel header files - -------------------------------------------------------------------- -Mon Jan 22 18:47:24 CET 2001 - aj@suse.de - -- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. - -------------------------------------------------------------------- -Mon Jan 22 10:26:42 CET 2001 - aj@suse.de - -- Fix mmap64 on powerpc. - -------------------------------------------------------------------- -Tue Jan 16 08:42:33 CET 2001 - aj@suse.de - -- Fix sunrpc-udp.diff, add mman.h fix for powerpc. - -------------------------------------------------------------------- -Wed Jan 10 14:49:30 CET 2001 - aj@suse.de - -- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. - -------------------------------------------------------------------- -Tue Jan 9 09:01:41 CET 2001 - aj@suse.de - -- Add glibc-2.2.secure.diff to close some security holes. - -------------------------------------------------------------------- -Wed Jan 3 15:26:45 CET 2001 - schwab@suse.de - -- Fix strtol and friends on 64 bit platforms. -- Use 8192 as default pagesize on ia64. -- Scan AUX vector also in statically linked programs. - -------------------------------------------------------------------- -Wed Jan 3 15:20:45 CET 2001 - aj@suse.de - -- Build some UTF-8 locales using a patch from Markus Kuhn. - -------------------------------------------------------------------- -Wed Dec 13 15:52:13 CET 2000 - aj@suse.de - -- Add compatibility patch for IPv6 and Linux 2.2. - -------------------------------------------------------------------- -Wed Dec 13 15:48:56 CET 2000 - schwab@suse.de - -- Update ia64 patch. - -------------------------------------------------------------------- -Sat Dec 9 13:30:23 CET 2000 - kukuk@suse.de - -- Fix resolver bug - -------------------------------------------------------------------- -Fri Dec 1 13:16:07 CET 2000 - kukuk@suse.de - -- Add bug fixes for setlocale and strncat -- strip gconv modules - -------------------------------------------------------------------- -Fri Nov 24 07:43:08 CET 2000 - kukuk@suse.de - -- Fix typo in spec file - -------------------------------------------------------------------- -Thu Nov 23 23:22:36 CET 2000 - kukuk@suse.de - -- Add hack for POWER3 - -------------------------------------------------------------------- -Wed Nov 22 13:03:19 CET 2000 - kukuk@suse.de - -- Add strncat bugfix for S/390 - -------------------------------------------------------------------- -Tue Nov 21 10:53:31 CET 2000 - kukuk@suse.de - -- Don't bulid 32bit compat packages - -------------------------------------------------------------------- -Mon Nov 20 15:46:44 CET 2000 - schwab@suse.de - -- Remove use of getpagesize syscall on ia64. -- Follow DT_INIT/DT_FINI change in compiler. - -------------------------------------------------------------------- -Sun Nov 19 22:43:40 CET 2000 - kukuk@suse.de - -- Minor specfile fixes - -------------------------------------------------------------------- -Thu Nov 16 17:38:47 CET 2000 - kukuk@suse.de - -- Add lot of more bug fixes - -------------------------------------------------------------------- -Tue Nov 14 16:52:59 CET 2000 - kukuk@suse.de - -- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de - -------------------------------------------------------------------- -Mon Nov 13 14:52:05 CET 2000 - aj@suse.de - -- Fix noversion.diff and spec file. - -------------------------------------------------------------------- -Sat Nov 11 08:40:42 CET 2000 - kukuk@suse.de - -- Fix nssv1 on PowerPC -- no libNoVersion on SPARC - -------------------------------------------------------------------- -Fri Nov 10 21:47:16 CET 2000 - kukuk@suse.de - -- Disable make check on PowerPC and Alpha - -------------------------------------------------------------------- -Fri Nov 10 17:09:57 CET 2000 - kukuk@suse.de - -- Update to final glibc 2.2 - -------------------------------------------------------------------- -Fri Nov 3 10:44:46 CET 2000 - kukuk@suse.de - -- Update to glibc-2.2-20001103 (glibc-2.1.97) -- Don't install libNoVersion on PowerPC -- Rename nssv1 -> glibc-nssv1 -- Rename libd -> glibc-profile, move libg.a to libc -- Rename libcinfo -> glibc-info -- Rename libchtml -> glibc-html -- Rename localedb -> glibc-i18ndata -- Rename libc -> glibc-devel -- Rename shlibs -> glibc - -------------------------------------------------------------------- -Sat Oct 28 09:10:07 CEST 2000 - kukuk@suse.de - -- Update to glibc-2.2-20001028 -- Enable more checks - -------------------------------------------------------------------- -Fri Oct 27 15:39:17 CEST 2000 - aj@suse.de - -- Fix NoVersion patch - -------------------------------------------------------------------- -Wed Oct 25 16:47:22 CEST 2000 - kukuk@suse.de - -- Update to glibc-2.2-20001025 - -------------------------------------------------------------------- -Sun Oct 22 16:31:32 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20001021 -- Update glibc-db to 2.1.95 -- Update ia64 patch - -------------------------------------------------------------------- -Fri Oct 20 15:54:24 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20001020 -- Add s390 spec file changes - -------------------------------------------------------------------- -Tue Oct 10 13:46:03 CEST 2000 - schwab@suse.de - -- Update to glibc 2.2-20001009. -- Fix TRAMPOLINE_TEMPLATE for ia64. - -------------------------------------------------------------------- -Sun Oct 1 17:08:32 CEST 2000 - schwab@suse.de - -- Export more ia64 specific symbols. - -------------------------------------------------------------------- -Tue Sep 26 12:14:37 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20000926 - -------------------------------------------------------------------- -Mon Sep 25 14:02:07 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20000925 snapshot - -------------------------------------------------------------------- -Thu Sep 14 11:43:51 CEST 2000 - schwab@suse.de - -- Update ia64 patch. - -------------------------------------------------------------------- -Fri Sep 8 19:44:17 CEST 2000 - bk@suse.de - -- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) - -------------------------------------------------------------------- -Wed Sep 6 09:44:36 CEST 2000 - fober@suse.de - -- merge s390-7.0 with STABLE: - - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 - - added new changes from IBM s390 codedrop - - removed glibc-dlopen-2.1.3-s390.diff which is - incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now - -------------------------------------------------------------------- -Tue Sep 5 18:19:46 CEST 2000 - kukuk@suse.de - -- Add glibc-2.1.security.dif - -------------------------------------------------------------------- -Fri Sep 1 11:14:25 CEST 2000 - olh@suse.de - -- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc - -------------------------------------------------------------------- -Wed Aug 30 16:16:04 CEST 2000 - olh@suse.de - -- remove sysdeps/powerpc/memset.S on ppc for POWER3 - -------------------------------------------------------------------- -Mon Aug 28 17:12:41 CEST 2000 - olh@suse.de - -- add glibc-2.1.sgi_fam.dif -- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 - -------------------------------------------------------------------- -Mon Aug 21 19:56:06 CEST 2000 - garloff@suse.de - -- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) - -------------------------------------------------------------------- -Tue Jul 25 08:41:48 CEST 2000 - kukuk@suse.de - -- Add mmap fix for PowerPC - -------------------------------------------------------------------- -Tue Jul 11 10:02:41 CEST 2000 - kukuk@suse.de - -- Remove "mutex is owned by current thread" bugfix for IBMs jdk - -------------------------------------------------------------------- -Mon Jun 26 16:47:54 CEST 2000 - schwab@suse.de - -- Update ia64 patch. - -------------------------------------------------------------------- -Tue Jun 20 15:33:43 CEST 2000 - kukuk@suse.de - -- Move html docu in extra package -- Update ia64 patch - -------------------------------------------------------------------- -Wed May 31 14:35:00 CEST 2000 - kukuk@suse.de - -- Remove LICENSE file, it's the same as COPYING.LIB -- Add libc docu as html - -------------------------------------------------------------------- -Sun May 28 14:44:42 CEST 2000 - kukuk@suse.de - -- Fix ldconfig on PPC and IA64 - -------------------------------------------------------------------- -Sat May 27 15:25:13 CEST 2000 - kukuk@suse.de - -- Merge new ldconfig fixes - -------------------------------------------------------------------- -Fri May 26 18:16:52 CEST 2000 - kukuk@suse.de - -- Update ia64 patch - -------------------------------------------------------------------- -Fri May 26 11:07:39 CEST 2000 - kukuk@suse.de - -- Fix (f)truncate64 and xdr_uint8_t - -------------------------------------------------------------------- -Wed May 24 22:23:12 CEST 2000 - kukuk@suse.de - -- Fix ldconfig.8 manual page - -------------------------------------------------------------------- -Thu May 18 17:53:09 CEST 2000 - bk@suse.de - -- added s390 dlopen fix - -------------------------------------------------------------------- -Tue May 16 16:48:13 CEST 2000 - bk@suse.de - -- updated s390 patches to match IBM_codedrop_2000_05_15 - -------------------------------------------------------------------- -Fri May 12 15:47:08 CEST 2000 - kukuk@suse.de - -- Fix netinet/in.h IPv6 compare - -------------------------------------------------------------------- -Fri May 12 14:47:15 CEST 2000 - schwab@suse.de - -- Update ia64 patches. - -------------------------------------------------------------------- -Fri May 12 14:22:11 CEST 2000 - kukuk@suse.de - -- Don't apply LFS patch - -------------------------------------------------------------------- -Tue May 9 22:21:23 CEST 2000 - kukuk@suse.de - -- Add LFS patches - -------------------------------------------------------------------- -Mon May 8 11:59:48 CEST 2000 - kukuk@suse.de - -- Add lot of bug fixes from CVS - -------------------------------------------------------------------- -Tue Apr 25 14:20:43 CEST 2000 - kukuk@suse.de - -- Fix nscd/getgrnam bug - -------------------------------------------------------------------- -Thu Apr 20 16:38:26 CEST 2000 - kukuk@suse.de - -- Remove /var/mail -> /var/spool/mail patch -- Update nscd.conf.5 manual page - -------------------------------------------------------------------- -Wed Apr 12 16:18:55 CEST 2000 - kukuk@suse.de - -- Add nscd patch from Chris Wing - -------------------------------------------------------------------- -Wed Apr 12 15:52:55 CEST 2000 - kukuk@suse.de - -- Add ldconfig fix from aj@suse.de - -------------------------------------------------------------------- -Wed Apr 12 11:33:02 CEST 2000 - schwab@suse.de - -- More ia64 patches. -- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. - -------------------------------------------------------------------- -Mon Apr 10 17:55:46 CEST 2000 - kukuk@suse.de - -- Support asm-sparc64 and asm-sparc on SPARC - -------------------------------------------------------------------- -Mon Apr 10 15:46:35 CEST 2000 - kukuk@suse.de - -- Create /etc/ld.so.cache always with permissions 0644 -- Update ia64 patches - -------------------------------------------------------------------- -Thu Apr 6 11:27:20 CEST 2000 - schwab@suse.de - -- Fix dynamic linker bug in ia64. -- Add ia64 spinlocks for db2. - -------------------------------------------------------------------- -Tue Apr 4 16:16:21 CEST 2000 - schwab@suse.de - -- New IA64 patches. -- Fix ldconfig -p. - -------------------------------------------------------------------- -Mon Apr 3 14:42:03 MEST 2000 - bk@suse.de - -- s390 team added s390 patches - -------------------------------------------------------------------- -Wed Mar 22 12:10:02 CET 2000 - kukuk@suse.de - -- Fix last SPARC patch - -------------------------------------------------------------------- -Tue Mar 21 17:48:01 CET 2000 - kukuk@suse.de - -- Add SPARC patches -- Add IA64 patches - -------------------------------------------------------------------- -Wed Mar 15 14:35:47 CET 2000 - kukuk@suse.de - -- Remove personality call (problematic on Alpha) -- Fix typo in localeconv -- alpha/ioperm.c> Add entry for "Nautilus". - -------------------------------------------------------------------- -Tue Mar 7 18:17:07 CET 2000 - kukuk@suse.de - -- Add locale SIGSEGV fix -- Fix getdate bug - -------------------------------------------------------------------- -Fri Feb 25 10:53:47 CET 2000 - kukuk@suse.de - -- Update to final glibc 2.1.3 + fix for bigendian machines - -------------------------------------------------------------------- -Thu Feb 24 16:12:39 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot -- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. - Old libnss_dns.so.2 will only make IPv4 lookups. - -------------------------------------------------------------------- -Tue Feb 22 16:40:35 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot (2.1.3pre4) - -------------------------------------------------------------------- -Sat Feb 5 14:40:33 CET 2000 - kukuk@suse.de - -- Add missing defines for SPARC bits/termios.h - -------------------------------------------------------------------- -Thu Feb 3 18:25:12 CET 2000 - kukuk@suse.de - -- Add regex patch from Andreas Schwab - -------------------------------------------------------------------- -Wed Feb 2 11:37:52 CET 2000 - kukuk@suse.de - -- Add ldconfig fix -- Update to current glibc cvs snapshot -- Fix sys/io.h on Intel (C++) - -------------------------------------------------------------------- -Mon Jan 24 17:01:13 CET 2000 - kukuk@suse.de - -- Fix duplicate setrlimit - -------------------------------------------------------------------- -Mon Jan 24 12:01:27 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot - -------------------------------------------------------------------- -Wed Jan 19 15:53:18 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot - -------------------------------------------------------------------- -Sat Jan 15 01:31:16 CET 2000 - ro@suse.de - --fixed ppc db2-patch - -------------------------------------------------------------------- -Fri Jan 14 16:54:26 CET 2000 - kukuk@suse.de - -- Add patches for Intel and PPC - -------------------------------------------------------------------- -Fri Jan 14 00:27:03 CET 2000 - kukuk@suse.de - -- Add patch for SPARC - -------------------------------------------------------------------- -Thu Jan 13 15:23:54 CET 2000 - kukuk@suse.de - -- Move info pages to /usr/share/info - -------------------------------------------------------------------- -Mon Jan 10 14:49:14 CET 2000 - kukuk@suse.de - -- Add ipv6 patches for getent - -------------------------------------------------------------------- -Mon Jan 10 11:23:57 CET 2000 - kukuk@suse.de - -- Move manual pages for applications and config files into - shlibs package -- Update to current glibc 2.1.3 snapshot - -------------------------------------------------------------------- -Fri Dec 17 17:06:45 MET 1999 - kukuk@suse.de - -- Add new ldconfig patches -- Add aio patch -- Add fix for bits/string2.h - -------------------------------------------------------------------- -Wed Dec 15 16:37:02 MET 1999 - kukuk@suse.de - -- add ldconfig.8 - -------------------------------------------------------------------- -Wed Dec 15 10:00:53 MET 1999 - kukuk@suse.de - -- Update to current glibc 2.1.3 snapshot -- Fix get/setrlimit problems - -------------------------------------------------------------------- -Thu Dec 9 20:00:16 MET 1999 - kukuk@suse.de - -- Update to current glibc 2.1.3 snapshot -- Add new ldconfig - -------------------------------------------------------------------- -Sun Dec 5 11:50:42 MET 1999 - kukuk@suse.de - -- Disable make check for SPARC (kernel bug) -- Add setrlimit patches -- Update to current glibc 2.1.3 snapshot - -------------------------------------------------------------------- -Fri Nov 26 12:09:07 MET 1999 - kukuk@suse.de - -- Update to current glibc 2.1.3 snapshot. - -------------------------------------------------------------------- -Tue Oct 26 13:54:55 MEST 1999 - kukuk@suse.de - -- Add fix for correct accounting of needed bytes (gethnamaddr.c) -- Remove not exported, public names from internal md5 functions - -------------------------------------------------------------------- -Mon Oct 25 19:03:56 MEST 1999 - kukuk@suse.de - -- Add fix for missing nexttowardl aliase - -------------------------------------------------------------------- -Tue Oct 19 09:56:47 MEST 1999 - kukuk@suse.de - -- Add security fix for iruserok - -------------------------------------------------------------------- -Sat Oct 16 16:29:44 MEST 1999 - kukuk@suse.de - -- Build libNoVersion.so.1 on every platform - -------------------------------------------------------------------- -Mon Oct 11 19:19:00 MEST 1999 - kukuk@suse.de - -- Add linuxthreads/signals.c fix from Andreas Schwab -- Remove dangling symlink (Bug #544) -- Add more bug fixes - -------------------------------------------------------------------- -Fri Oct 8 22:07:24 MEST 1999 - kukuk@suse.de - -- Add timezone update - -------------------------------------------------------------------- -Fri Oct 8 17:42:22 MEST 1999 - kukuk@suse.de - -- Add NIS+ shadow parser fix - -------------------------------------------------------------------- -Thu Oct 7 11:46:27 MEST 1999 - kukuk@suse.de - -- Update to official glibc 2.1.2, add important fixes -- Update nscd, add manual pages for it - -------------------------------------------------------------------- -Mon Sep 20 18:14:13 CEST 1999 - ro@suse.de - -- libc: added requires kernel_headers - -------------------------------------------------------------------- -Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de - -- ran old prepare_spec on spec file to switch to new prepare_spec. - -------------------------------------------------------------------- -Mon Sep 6 10:25:03 MEST 1999 - kukuk@suse.de - -- Update to current glibc 2.1.2 cvs snapshot -- Remove use auf automake in spec file - -------------------------------------------------------------------- -Fri Sep 3 14:35:42 MEST 1999 - kukuk@suse.de - -- Update to current glibc 2.1.2 cvs snapshot -- Use RPM macros for configure - -------------------------------------------------------------------- -Wed Aug 25 17:07:09 MEST 1999 - kukuk@suse.de - -- Update to current glibc 2.1.2 cvs snapshot - -------------------------------------------------------------------- -Thu Aug 19 15:20:26 MEST 1999 - kukuk@suse.de - -- Add PowerPC patches from Uli Hecht -- Cleanup of SPEC file -- Create a profiling version - -------------------------------------------------------------------- -Sat Aug 14 19:58:45 MEST 1999 - kukuk@suse.de - -- disable nscd hosts caching by default -- Apply patch from HJL for broken gethostbyname_r in libnss_dns - -------------------------------------------------------------------- -Fri Jul 16 17:01:51 MEST 1999 - kukuk@suse.de - -- Add header fix for autoconf/g++ -- Move pt_chown and gconv modules from libc to shlibs - -------------------------------------------------------------------- -Wed Jul 14 16:05:14 MEST 1999 - kukuk@suse.de - -- Remove /etc/localtime from filelist - -------------------------------------------------------------------- -Mon Jul 12 09:54:43 MEST 1999 - kukuk@suse.de - -- Add more bug fixes from cvs -- Add ld.so bug fix from Andreas Schwab - -------------------------------------------------------------------- -Thu Jul 8 17:25:43 MEST 1999 - kukuk@suse.de - -- configure for i386-unknown-linux - -------------------------------------------------------------------- -Wed Jul 7 12:28:43 MEST 1999 - kukuk@suse.de - -- Remove alpha patch, it's now in glibc 2.1.2 cvs -- Add more bug fixes from cvs -- Remove malloc patch (breaks StarOffice) - -------------------------------------------------------------------- -Tue Jul 6 18:08:26 MEST 1999 - kukuk@suse.de - -- Add openpty patch from Andreas Schwab - (openpty now works if /dev/pts is not mounted) - -------------------------------------------------------------------- -Fri Jul 2 12:04:47 MEST 1999 - kukuk@suse.de - -- Remove warning von zic about symlinks. - -------------------------------------------------------------------- -Mon Jun 28 19:49:44 MEST 1999 - kukuk@suse.de - -- Remove ndbm links, now in gdbm - -------------------------------------------------------------------- -Fri Jun 25 16:16:20 MEST 1999 - kukuk@suse.de - -- Add a lot of more fixes -- Add nscd fixes and enable nscd on alpha - -------------------------------------------------------------------- -Mon Jun 14 09:17:26 MEST 1999 - kukuk@suse.de - -- Add nss_dns and fget* fixes. -- Add nscd patches for NIS+ - -------------------------------------------------------------------- -Thu Jun 10 10:04:11 MEST 1999 - kukuk@suse.de - -- Fix daemon() for MT programs -- Add libio fixes - -------------------------------------------------------------------- -Fri May 28 08:53:20 MEST 1999 - kukuk@suse.de - -- Add fix for docu -- Disable nscd for alpha again - -------------------------------------------------------------------- -Wed May 26 09:42:54 MEST 1999 - kukuk@suse.de - -- Update to version 2.1.1 - -------------------------------------------------------------------- -Mon May 17 16:49:35 MEST 1999 - kukuk@suse.de - -- Update to snapshot from 16.5.1999 -- Add manpages -- Add __setfpucw to libNoVersion (intel) -- Add COPYING and COPYING.LIB - -------------------------------------------------------------------- -Fri May 7 18:57:20 MEST 1999 - kukuk@suse.de - -- Update to snapshot from 6.5.1999 -- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps -- Add patch for Alpha RX164 -- Add workaround for nscd on Alpha - -------------------------------------------------------------------- -Wed Apr 28 17:48:51 MEST 1999 - kukuk@suse.de - -- Remove latest fnmatch patches from Uli Drepper - -------------------------------------------------------------------- -Tue Apr 27 11:48:46 MEST 1999 - kukuk@suse.de - -- update to cvs version of Apr 26 1999 -- fix pmap_set/pmap_unset for DHCP clients -- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create - the symbolic links. - -------------------------------------------------------------------- -Tue Apr 20 13:57:07 MEST 1999 - kukuk@suse.de - -- update to cvs version of Apr 20 1999 -- remove sunrpc.diff -- fix nssv1 package -- only include nscd on intel -- install /etc/nscd.conf - -------------------------------------------------------------------- -Mon Apr 12 09:52:58 MEST 1999 - kukuk@suse.de - -- update to cvs version of Apr 11 1999 -- Fix paths in paths.h -- install linuxthreads man pages and documentation -- Add sunrpc patch for Alpha and security fixes -- added links for el_GR and ru_RU.KOI8-R in usr/share/locale - -------------------------------------------------------------------- -Wed Mar 31 13:21:02 MEST 1999 - bs@suse.de - -- don't use lx_hack for build - -------------------------------------------------------------------- -Tue Mar 16 08:33:57 MET 1999 - ro@suse.de - -- libc.texinfo: changed to build with stable texinfo version - -------------------------------------------------------------------- -Mon Mar 15 23:49:51 MET 1999 - ro@suse.de - -- update to 2.1.1 (cvs of Mar 15 1999) -- update nssv1 to 2.0.2 - -------------------------------------------------------------------- -Sat Feb 20 19:29:32 MET 1999 - ro@suse.de - -- fixed specfile (lddlibc4 not built on alpha) - -------------------------------------------------------------------- -Sat Feb 20 18:41:22 MET 1999 - ro@suse.de - -- fixed specfile ... - -------------------------------------------------------------------- -Sat Feb 20 18:31:30 MET 1999 - ro@suse.de - -- added automake to neededforbuild - -------------------------------------------------------------------- -Sat Feb 20 18:15:44 MET 1999 - ro@suse.de - -- added nss-v1 modules (to keep old rpm happy with file owners) - -------------------------------------------------------------------- -Fri Feb 19 14:35:38 MET 1999 - ro@suse.de - -- update to cvs-version of 1999/02/18 - -------------------------------------------------------------------- -Fri Sep 25 18:58:28 MEST 1998 - ro@suse.de - -- fixed specfile - -------------------------------------------------------------------- -Fri Sep 25 12:15:13 MEST 1998 - ro@suse.de - -- update: use cvs-version of 980925 - edited db/Makefile to ignore messed up target-dependency - -------------------------------------------------------------------- -Mon Sep 21 19:43:16 MEST 1998 - ro@suse.de - -- update: use cvs-version of 980921 - -------------------------------------------------------------------- -Mon Sep 14 14:28:21 MEST 1998 - ro@suse.de - -- update: use today's cvs-version - -------------------------------------------------------------------- -Wed Sep 2 16:56:04 MEST 1998 - ro@suse.de - -- build for 586 since egcs generates code for 686 that does NOT run - on 586 !!! (eg strtok) - -------------------------------------------------------------------- -Sat Aug 22 00:43:48 MEST 1998 - ro@suse.de - -- updated to cvs-version 20.8.98 - added gettext as neededforbuild (so configure shuts up) - glibc-linuxthreads is contained in main archive now - -------------------------------------------------------------------- -Tue Jun 16 18:41:51 MEST 1998 - ro@suse.de - -- added symlink usr/include/X11 - -------------------------------------------------------------------- -Thu May 28 11:36:49 MEST 1998 - ro@suse.de - -- added symlinks to linux include files - -------------------------------------------------------------------- -Thu May 28 10:58:09 MEST 1998 - bs@suse.de - -- moved ".so" Links to package libc. - -------------------------------------------------------------------- -Wed May 27 16:26:15 MEST 1998 - bs@suse.de - -- changed version do `date` - -------------------------------------------------------------------- -Wed May 27 12:16:14 MEST 1998 - ro@suse.de - -- created specfile to build libc, shlibs, libd, libcinfo - localedb, timezone, - -- former libc renamed to libc5. diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec deleted file mode 100644 index 8bf4b0d..0000000 --- a/glibc-testsuite.spec +++ /dev/null @@ -1,1409 +0,0 @@ -# -# spec file for package glibc-testsuite -# -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -# - - -# Run with osc --with=fast_build to have a shorter turnaround -# It will avoid building some parts of glibc -%bcond_with fast_build - -%define crypt_bf_version 1.3 -%define build_snapshot 0 - -%define flavor testsuite - -Name: glibc-testsuite -Summary: Testsuite results from the GNU C Library -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ - -%bcond_with all -%define build_main 1 -%define build_utils %{with all} -%define build_testsuite %{with all} -%if "%flavor" == "utils" -%define build_main 0 -%define build_utils 1 -%define build_testsuite 0 -%endif -%if "%flavor" == "testsuite" -%define build_main 0 -%define build_utils 0 -%define build_testsuite 1 -%endif - -BuildRequires: audit-devel -BuildRequires: fdupes -BuildRequires: libcap-devel -BuildRequires: libselinux-devel -BuildRequires: makeinfo -BuildRequires: pwdutils -BuildRequires: systemd-rpm-macros -BuildRequires: xz -%if %{build_testsuite} -BuildRequires: gcc-c++ -BuildRequires: gdb -BuildRequires: glibc-devel-static -BuildRequires: libstdc++-devel -BuildRequires: python-pexpect -%endif -%if %{build_utils} -BuildRequires: gd-devel -%endif -%if "%flavor" == "i686" -ExclusiveArch: i586 i686 -BuildArch: i686 -%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -%endif - -%define __filter_GLIBC_PRIVATE 1 -%ifarch i686 -# For i686 let's only build what's different from i586, so -# no need to build documentation -%define build_profile 1 -%define build_locales 1 -%define build_html 0 -%else -%if %{with fast_build} || %{build_utils} && %{without all} -%define build_profile 0 -%define build_locales 0 -%define build_html 0 -%else -# Default: -%define build_profile 1 -%define build_locales 1 -%define build_html 1 -%endif -%endif - -%define build_variants %{build_main} - -%define disable_assert 0 -%define enable_stackguard_randomization 1 -%ifarch ppc ppc64 - %define optimize_power 1 - %ifarch ppc - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 1 - %else - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_tune power5 - %define powerpc_optimize_cpu_power4 0 - %endif - # We are not building Power CPU specific optimizations for openSUSE. - %define powerpc_optimize_cpu_power6 0 - %define powerpc_optimize_cpu_power7 0 - %define powerpc_optimize_cpu_cell 0 -%else - %define optimize_power 0 - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_cpu_power4 0 - %define powerpc_optimize_cpu_power6 0 - %define powerpc_optimize_cpu_power7 0 - %define powerpc_optimize_cpu_cell 0 -%endif # ppc, ppc64 -# glibc requires at least kernel 3.2 -%define enablekernel 3.2 -# some architectures need a newer kernel -%ifarch ppc64le -%define enablekernel 3.10 -%endif -%ifarch aarch64 -%define enablekernel 3.7 -%endif -%ifarch ia64 -%define enablekernel 3.2.18 -%endif - -Version: 2.26 -Release: 0 -%if !%{build_snapshot} -%define git_id 1c9a5c270d8b -%define libversion %version -%else -%define git_id %(echo %version | sed 's/.*\.g//') -%define libversion %(echo %version | sed 's/\.[^.]*\.g.*//') -%endif -Url: http://www.gnu.org/software/libc/libc.html -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if !%{build_snapshot} -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz -Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig -%else -Source: glibc-%{version}.tar.xz -%endif -Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring -Source3: noversion.tar.bz2 -Source4: manpages.tar.bz2 -Source5: nsswitch.conf -Source7: bindresvport.blacklist -Source8: glibc_post_upgrade.c -Source9: glibc.rpmlintrc -Source10: baselibs.conf -# For systemd -Source20: nscd.conf -Source21: nscd.service -# crypt_blowfish -Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -# The sign key uses MD5 which is no longer accepted by gpg -#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign - -%if %{build_main} -# ngpt was used in 8.1 and SLES8 -Obsoletes: ngpt < 2.2.2 -Obsoletes: ngpt-devel < 2.2.2 -Provides: ngpt = 2.2.2 -Provides: ngpt-devel = 2.2.2 -Conflicts: kernel < %{enablekernel} -# bug437293 - handle update from SLES10 on PowerPC -%ifarch ppc64 -Obsoletes: glibc-64bit -%endif -%ifarch ppc -Obsoletes: glibc-32bit -%endif -%ifarch armv6hl armv7hl -# The old runtime linker link gets not provided by rpm find.provides, but it exists -Provides: ld-linux.so.3 -Provides: ld-linux.so.3(GLIBC_2.4) -%endif -Requires(pre): filesystem -Recommends: glibc-extra -Provides: rtld(GNU_HASH) -%endif -%if %{build_utils} -Requires: glibc = %{version} -%endif -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%ifarch i686 -# We need to avoid to have only the src rpm from i686 on the media, -# since it does not work on other architectures. -NoSource: 0 -%endif -# - -### -# Patches are ordered in the following groups: -# Patches that we will never upstream or which have not been looked at: 0-999 -# Patches taken from upstream: 1000-2000 -# Patches that are going upstream, waiting approval: 2000-3000 -### - -### -# Patches that upstream will not accept -### - -### -# openSUSE specific patches - won't go upstream -### -### openSUSE extensions, configuration -# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 -Patch1: glibc-2.14-crypt.diff -# PATCH-FEATURE-OPENSUSE constify crypt_blowfish -Patch2: crypt_blowfish-const.patch -# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de -Patch3: crypt_blowfish-1.2-sha.diff -# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library -Patch4: crypt_blowfish-gensalt.patch -# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de -Patch5: crypt_blowfish-1.2-hack_around_arm.diff -# PATCH-FIX-OPENSUSE Fix path for nscd databases -Patch6: glibc-2.3.3-nscd-db-path.diff -# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de -Patch7: nss-db-path.patch -# PATCH-FIX-OPENSUSE adjust nscd.conf -Patch8: glibc-nscd.conf.patch -# PATCH-FIX-OPENSUSE do not use compile time in binaries -Patch9: glibc-nodate.patch -# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de -Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE handle old glibc binaries -Patch12: glibc-2.3.90-noversion.diff -# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de -Patch13: glibc-2.3.2.no_archive.diff -# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport -Patch14: glibc-bindresvport-blacklist.diff -# PATCH-FIX-OPENSUSE prefer -lang rpm packages -Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE Use nscd user for nscd -Patch19: nscd-server-user.patch -# PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined -Patch21: powerpc-elision-enable-envvar.patch -# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined -Patch22: s390-elision-enable-envvar.patch - -### Locale related patches -# PATCH-FIX-OPENSUSE Add additional locales -Patch100: add-locales.patch -# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) -Patch102: glibc-2.4.90-no_NO.diff -# PATCH-FIX-OPENSUSE -- Renames for China -Patch103: glibc-2.4-china.diff -# PATCH-FIX-OPENSUSE -- Add C.UTF-8 locale -Patch104: glibc-c-utf8-locale.patch -# PATCH-FIX-OPENSUSE -- Disable gettext for C.UTF-8 locale -Patch105: glibc-disable-gettext-for-c-utf8.patch - -### Broken patches in glibc that we revert for now: - -### Network related patches -# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv -Patch304: glibc-resolv-mdnshint.diff -# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 -Patch306: glibc-fix-double-loopback.diff - -### -# Patches from upstream -### -# PATCH-FIX-UPSTREAM Fix leaks of resolver contexts -Patch1000: resolv-context-leak.patch -# PATCH-FIX-UPSTREAM Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) -Patch1001: dl-runtime-resolve-opt-avx512f.patch -# PATCH-FIX-UPSTREAM Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041) -Patch1002: libpthread-compat-wrappers.patch -# PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) -Patch1003: math-c++-compat.patch -# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs -Patch1004: remove-nss-nis-compat.patch -# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) -Patch1005: eh-frame-zero-terminator.patch -# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) -Patch1006: ld-so-hwcap-x86-64.patch - -### -# Patches awaiting upstream approval -### -# PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) -Patch2000: fix-locking-in-_IO_cleanup.patch -# PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) -Patch2001: ldd-system-interp.patch -# PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) -Patch2002: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) -Patch2004: fnmatch-collating-elements.patch -# PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) -Patch2005: nss-files-long-lines-2.patch -# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2006: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2008: reinitialize-dl_load_write_lock.patch - -# Non-glibc patches -# PATCH-FIX-OPENSUSE Remove debianisms from manpages -Patch3000: manpages.patch - -%description -%if %build_main -The GNU C Library provides the most important standard libraries used -by nearly all programs: the standard C library, the standard math -library, and the POSIX thread library. A system is not functional -without these libraries. -%endif -%if %build_utils -The glibc-utils package contains mtrace, a memory leak tracer and -xtrace, a function call tracer which can be helpful during program -debugging. - -If you are unsure if you need this, do not install this package. -%endif -%if %build_testsuite -This package contains the testsuite results from the GNU C Library. -%endif - -%package info -Summary: Info Files for the GNU C Library -License: GFDL-1.1 -Group: Documentation/Other -Requires(post): %{install_info_prereq} -Requires(preun): %{install_info_prereq} -BuildArch: noarch - -%description info -This package contains the documentation for the GNU C library stored as -info files. Due to a lack of resources, this documentation is not -complete and is partially out of date. - -%package html -Summary: HTML Documentation for the GNU C Library -License: GFDL-1.1 -Group: Documentation/HTML -BuildArch: noarch - -%description html -This package contains the HTML documentation for the GNU C library. Due -to a lack of resources, this documentation is not complete and is -partially out of date. - -%package i18ndata -Summary: Database Sources for 'locale' -License: GPL-2.0+ and MIT -Group: System/Libraries -BuildArch: noarch - -%description i18ndata -This package contains the data needed to build the locale data files to -use the internationalization features of the GNU libc. It is normally -not necessary to install this packages, the data files are already -created. - -%package locale -Summary: Locale Data for Localized Programs -License: GPL-2.0+ and MIT and LGPL-2.1+ -Group: System/Libraries -Requires(post): /bin/cat -Requires: glibc = %{version} -# bug437293 -%ifarch ppc64 -Obsoletes: glibc-locale-64bit -%endif -%ifarch ppc -Obsoletes: glibc-locale-32bit -%endif - -%description locale -Locale data for the internationalisation features of the GNU C library. - -%package -n nscd -Summary: Name Service Caching Daemon -License: GPL-2.0+ -Group: System/Daemons -Provides: glibc:/usr/sbin/nscd -Requires: glibc = %{version} -Obsoletes: unscd <= 0.48 -Requires(pre): pwdutils -%{?systemd_requires} - -%description -n nscd -Nscd caches name service lookups and can dramatically improve -performance with NIS, NIS+, and LDAP. - -%package profile -Summary: Libc Profiling and Debugging Versions -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: Development/Libraries/C and C++ -Requires: glibc = %{version} -# bug437293 -%ifarch ppc64 -Obsoletes: glibc-profile-64bit -%endif -%ifarch ppc -Obsoletes: glibc-profile-32bit -%endif - -%description profile -This package contains special versions of the GNU C library which are -necessary for profiling and debugging. - -%package devel -Summary: Include Files and Libraries Mandatory for Development -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: Development/Libraries/C and C++ -Obsoletes: epoll = 1.0 -Provides: epoll < 1.0 -# bug437293 -%ifarch ppc64 -Obsoletes: glibc-devel-64bit -%endif -%ifarch ppc -Obsoletes: glibc-devel-32bit -%endif -Requires: glibc = %{version} -Requires: linux-kernel-headers - -%description devel -These libraries are needed to develop programs which use the standard C -library. - -%package devel-static -Summary: C library static libraries for -static linking -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: Development/Libraries/C and C++ -Requires: %{name}-devel = %{version} -# Provide Fedora name for package to make packaging easier -Provides: %{name}-static = %{version} - -%description devel-static -The glibc-devel-static package contains the C library static libraries -for -static linking. You don't need these, unless you link statically, -which is highly discouraged. - -# makedb requires libselinux. We add this program in a separate -# package so that glibc does not require libselinux. -%package extra -Summary: Extra binaries from GNU C Library -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ -Requires: glibc = %{version} - -%description extra -The glibc-extra package contains some extra binaries for glibc that -are not essential but recommend to use. - -makedb: A program to create a database for nss - -%package obsolete -Summary: Obsolete Shared Libraries from the GNU C Library -License: LGPL-2.0+ -Group: System/Libraries -Requires: glibc = %{version} - -%description obsolete -This package provides some old libraries from the GNU C Library which -are no longer supported. Additional it provides a compatibility library -for old binaries linked against glibc 2.0. - -Install this package if you need one of this libraries to get old -binaries working, but since this libraries are not supported and there -is no gurantee that they work for you, you should try to get newer -versions of your software. - -%prep -%setup -n glibc-%{version} -q -a 3 -a 4 -# Owl crypt_blowfish -tar -xzf %SOURCE50 -pushd crypt_blowfish-%{crypt_bf_version} -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -popd -mv crypt/{crypt.h,gnu-crypt.h} -mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ -# -%patch1 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -# avoid changing nscd_stat.c mtime to avoid code generation -# differences on each rebuild -touch -r nscd/nscd_stat.c nscd/s-stamp -%patch9 -p1 -touch -r nscd/s-stamp nscd/nscd_stat.c -rm nscd/s-stamp -%patch10 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch19 -p1 -%patch21 -p1 -%patch22 -p1 - -%patch100 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 - -%patch304 -p1 -%patch306 -p1 - -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 - -%patch2000 -p1 -%patch2001 -p1 -%patch2002 -p1 -%patch2004 -p1 -%patch2005 -p1 -%patch2006 -p1 -%patch2008 -p1 - -%patch3000 - -# -# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! -# -# Glibc 2.8 introduced the HP_TIMING element to the rtld_global_ro struct # definition. -# If the base is built without power4 the loader won't have this element in -# the struct whereas the power4/5/6/... libc will, so there will be a disconnect -# between the size of the rtld_global_ro struct between the two and dl_close -# ends up getting called incorrectly when it's actually attempting to call a -# resolver function. This is because the GLRO() macro simply attempts to -# compute an offset and gets the wrong one. -# Building the base glibc with --with-cpu=power4 solves this problem. -# But: ppc32 can not default to -mcpu=power4 because it would emit instructions -# which are not available on G3, G4 etc. -# -# We simply remove the power4 files, and build the base glibc for a generic powerpc cpu -# Additional cputuned libs can now be used on powerpc32 -# -rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h -find . -name configure | xargs touch - -%build -if [ -x /bin/uname.bin ]; then - /bin/uname.bin -a -else - uname -a -fi -uptime || : -ulimit -a -nice -# We do not want configure to figure out the system its building one -# to support a common ground and thus set build and host to the -# target_cpu. -%ifarch %arm -%define target %{_target_cpu}-suse-linux-gnueabi -%else -%define target %{_target_cpu}-suse-linux -%endif -# Don't use as-needed, it breaks glibc assumptions -# Before enabling it, run the testsuite and verify that it -# passes completely -export SUSE_ASNEEDED=0 -# Adjust glibc version.h -echo "#define CONFHOST \"%{target}\"" >> version.h -echo "#define GITID \"%{git_id}\"" >> version.h -# -# Default CFLAGS and Compiler -# -BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -enable_stack_protector= -for opt in $BuildFlags; do - case $opt in - -fstack-protector-strong) enable_stack_protector=strong ;; - -fstack-protector-all) enable_stack_protector=all ;; - -fstack-protector) enable_stack_protector=yes ;; - esac -done -BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') -BuildCC="%__cc" -BuildCCplus="%__cxx" -add_ons=libidn -# -#now overwrite for some architectures -# -%ifarch sparc64 - BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" - BuildCC="gcc -m64" - BuildCCplus="$BuildCCplus -m64" -%endif -%ifarch sparc - BuildFlags="$BuildFlags -fcall-used-g6" - BuildCC="gcc -m32" - BuildCCplus="$BuildCCplus -m32" -%endif -%ifarch sparcv9 - BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" - BuildCC="gcc -m32" - BuildCCplus="$BuildCCplus -m32" -%endif -%ifarch alphaev6 - BuildFlags="-mcpu=ev6" -%endif -%ifarch ppc ppc64 - BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" -%endif -%ifarch ppc64 - BuildCC="$BuildCC -m64" - BuildCCplus="$BuildCCplus -m64" -%endif -%ifarch hppa - BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" -%endif -# Add flags for all plattforms except AXP -%ifnarch alpha - BuildFlags="$BuildFlags -g" -%endif -%if %{disable_assert} - BuildFlags="$BuildFlags -DNDEBUG=1" -%endif -%ifarch %ix86 - add_ons=$add_ons,noversion -%endif -%ifarch mipsel - # fails to build otherwise - need to recheck and fix - %define enable_stackguard_randomization 0 -%endif - -configure_and_build_glibc() { - local dirname="$1"; shift - local cflags="$1"; shift - mkdir "cc-$dirname" - cd "cc-$dirname" -%ifarch %arm aarch64 - # remove asynchronous-unwind-tables during configure as it causes - # some checks to fail spuriously on arm - conf_cflags="${cflags/-fasynchronous-unwind-tables/}" - conf_cflags="${conf_cflags/-funwind-tables/}" -%else - conf_cflags="$cflags" -%endif - - profile="--disable-profile" -%if %{build_profile} - if [ "$dirname" = "base" ] ; then - profile="--enable-profile" - fi -%endif - elision=--enable-lock-elision - if [ "$dirname" = "noelision" ]; then - elision=--disable-lock-elision - fi - ../configure \ - CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" \ - --prefix=%{_prefix} \ - --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ - --enable-add-ons=$add_ons \ - $profile $elision \ - "$@" \ - --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x - --enable-multi-arch \ -%endif -%ifarch mipsel - --without-fp \ -%endif -%ifarch ppc64p7 - --with-cpu=power7 \ -%endif -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif - ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ - --enable-tunables \ - --enable-kernel=%{enablekernel} \ - --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now \ - --enable-obsolete-rpc \ - --disable-timezone-tools -# Should we enable --enable-systemtap? -# Should we enable --enable-nss-crypt to build use freebl3 hash functions? - # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) - make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags" - cd .. -} - -%if !%{optimize_power} - # - # Build base glibc - # - configure_and_build_glibc base "$BuildFlags" -%else - # - # Build POWER-optimized glibc - # - # First, base build: - pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}" - %if "%{powerpc_optimize_base}" != "" - pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" - %endif - %if "%{powerpc_optimize_base}" != "" - configure_and_build_glibc base "$pBuildFlags" --with-cpu=%{powerpc_optimize_base} - %else - # Use no default CPU - configure_and_build_glibc base "$pBuildFlags" - %endif - %if %{build_variants} - # Then other power variants: - for pcpu in \ - %if %{powerpc_optimize_cpu_power4} - power4 \ - %endif - %if %{powerpc_optimize_cpu_power6} - power6 \ - %endif - %if %{powerpc_optimize_cpu_power7} - power7 \ - %endif - ; do - configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" \ - --with-cpu=$pcpu - done - # Eventually, special Cell variant: - %if %{powerpc_optimize_cpu_cell} - configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" - %endif - %endif # %{build_variants} -%endif # optimize_power - -%if %{build_variants} -%ifarch i686 x86_64 -configure_and_build_glibc noelision "$BuildFlags" -%endif -%endif - -# -# Build html documentation -# -%if %{build_html} -make -C cc-base html -%endif - -# -# Build glibc_post_upgrade binary -# -$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ - -Lcc-base -Bcc-base/csu \ - '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ -%ifarch ppc ppc64 - %if !%{powerpc_optimize_cpu_power4} - '-DREMOVE_PPC_OPTIMIZE_POWER4' \ - %endif - %if !%{powerpc_optimize_cpu_power6} - '-DREMOVE_PPC_OPTIMIZE_POWER6' \ - %endif - %if !%{powerpc_optimize_cpu_power7} - '-DREMOVE_PPC_OPTIMIZE_POWER7' \ - %endif - %if !%{powerpc_optimize_cpu_cell} - '-DREMOVE_PPC_OPTIMIZE_CELL' \ - %endif -%endif - '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' - -# crypt_blowfish man pages -pushd crypt_blowfish-%{crypt_bf_version} -make man -popd - -%check -%if %{build_testsuite} -# The testsuite will fail if asneeded is used -export SUSE_ASNEEDED=0 -# Increase timeout -export TIMEOUTFACTOR=16 -# The testsuite does its own malloc checking -unset MALLOC_CHECK_ -make -C cc-base -k check || { - cd cc-base - o=$- - set +x - for sum in subdir-tests.sum */subdir-tests.sum; do - while read s t; do - case $s in - XPASS:|PASS:) - echo ++++++ $s $t ++++++ - ;; - *) # X?FAIL: - echo ------ $s $t ------ - test ! -f $t.out || cat $t.out - ;; - esac - done < $sum - done - set -$o - # Fail build if there where compilation errors during testsuite run - test -f tests.sum -} -%else -# This has to pass on all platforms! -# Exceptions: -# None! -make %{?_smp_mflags} -C cc-base check-abi -%endif - -%install -%if %{build_main} -# We don't want to strip the .symtab from our libraries in find-debuginfo.sh, -# certainly not from libpthread.so.* because it is used by libthread_db to find -# some non-exported symbols in order to detect if threading support -# should be enabled. These symbols are _not_ exported, and we can't easily -# export them retroactively without changing the ABI. So we have to -# continue to "export" them via .symtab, instead of .dynsym :-( -# But we also want to keep .symtab and .strtab of other libraries since some -# debugging tools currently require these sections directly inside the main -# files - specifically valgrind and PurifyPlus. -export STRIP_KEEP_SYMTAB=*.so* - -# Make sure we will create the gconv-modules.cache -mkdir -p %{buildroot}%{_libdir}/gconv -touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache - -# Install base glibc -make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base - -install_optimized_variant() { - local dirname="$1"; shift - local subdir="$1"; shift - local subdir_up="$1"; shift - -cd "cc-$dirname" -destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir -mkdir -p $destdir -# Don't run a complete make install, we know which libraries -# we want -for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db -do - libbase=${lib#*/} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Only install if different from base lib - if cmp -s ${lib}.so ../cc-base/${lib}.so; then - ln -sf $subdir_up/$libbaseso $destdir/$libbaseso - else - cp -a ${lib}.so $destdir/$libbaseso - fi -done -cd .. -cc-base/elf/ldconfig -vn $destdir -} - -# Install power-optimized glibc -%if %{optimize_power} - %if %{powerpc_optimize_cpu_power4} - install_optimized_variant power4 power4 ".." - %endif - %if %{powerpc_optimize_cpu_power6} - install_optimized_variant power6 power6 ".." - %endif - %if %{powerpc_optimize_cpu_power7} - install_optimized_variant power7 power7 ".." - %endif - %if %{powerpc_optimize_cpu_cell} - install_optimized_variant ppc-cell-be ppc-cell-be ".." - %endif - %if %{powerpc_optimize_cpu_power6} - # power6 is compatible with power6x - # doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir - if test -d %{buildroot}/%{_lib}/power6; then - mkdir -p %{buildroot}/%{_lib}/power6x - for i in %{buildroot}/%{_lib}/power6/*.so; do - b=$(basename $i) - ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - done - cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x - fi - %endif -%endif # optimize_power - -%ifarch i686 x86_64 -cd cc-noelision -destdir=$RPM_BUILD_ROOT/%{_lib}/noelision -mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{libversion}.so -cd .. -cc-base/elf/ldconfig -vn $destdir -%endif - -# Install locales -%if %{build_locales} - # XXX Do not install locales in parallel! - cd cc-base - # localedef creates hardlinks to other locales if possible - # this will not work if we generate them in parallel. - # thus we need to run fdupes on /usr/lib/locale/ - # Still, on my system this is a speed advantage: - # non-parallel build for install-locales: 9:34mins - # parallel build with fdupes: 7:08mins - make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales - %fdupes %{buildroot}/usr/lib/locale - cd .. -%endif -# Create file list for glibc-locale package -%{find_lang} libc - -# Prepare obsolete/, used only on some architectures: -export RPM_BUILD_ROOT -%ifarch i586 -mkdir -p %{buildroot}/%{_lib}/obsolete -%endif - -# remove nsl compat library -rm -f %{buildroot}%{_libdir}/libnsl* -# part of libnsl-devel -rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* - -# Miscelanna: - -install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} - -install -m 644 %{SOURCE7} %{buildroot}/etc -install -m 644 %{SOURCE5} %{buildroot}/etc -install -m 644 posix/gai.conf %{buildroot}/etc - -mkdir -p %{buildroot}/etc/default -install -m 644 nis/nss %{buildroot}/etc/default/ - -mkdir -p %{buildroot}%{_includedir}/resolv -install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ -install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ - -%if %{build_html} -mkdir -p %{buildroot}%{_datadir}/doc/glibc -cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc -%endif - -cd manpages; make install_root=%{buildroot} install; cd .. - -# crypt_blowfish man pages -pushd crypt_blowfish-%{crypt_bf_version} -install -m755 -d %{buildroot}%{_mandir}/man3 -install -m644 *.3 %{buildroot}%{_mandir}/man3 -popd - -# nscd tools: - -%ifnarch i686 -cp nscd/nscd.conf %{buildroot}/etc -mkdir -p %{buildroot}/etc/init.d -ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd -mkdir -p %{buildroot}/run/nscd -mkdir -p %{buildroot}/var/lib/nscd -%endif - -# -# Create ld.so.conf -# -cat > %{buildroot}/etc/ld.so.conf <>"$l" - cat "$l.d"/* >>"$l" -done -/usr/sbin/iconvconfig - -%post info -%install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - -%preun info -%install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - -%pre -n nscd -getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd -getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /run/nscd nscd -%service_add_pre nscd.service - -%preun -n nscd -%service_del_preun nscd.service - -%post -n nscd -%service_add_post nscd.service -%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf -# Previously we had nscd.socket, remove it -test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : -test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : -# Hard removal in case the above did not work -rm -f /etc/systemd/system/sockets.target.wants/nscd.socket -exit 0 - -%postun -n nscd -%service_del_postun nscd.service -exit 0 - -%if %{build_main} -%files -# glibc -%defattr(-,root,root) -%doc LICENSES -%config(noreplace) /etc/bindresvport.blacklist -%config /etc/ld.so.conf -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache -%config(noreplace) /etc/rpc -%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf -%verify(not md5 size mtime) %config(noreplace) /etc/gai.conf -%config(noreplace) /etc/default/nss -%doc %{_mandir}/man1/gencat.1.gz -%doc %{_mandir}/man1/getconf.1.gz -%doc %{_mandir}/man5/* -/%{_lib}/ld-%{libversion}.so - -# Each architecture has a different name for the dynamic linker: -%ifarch %arm -%ifarch armv6hl armv7hl -/%{_lib}/ld-linux-armhf.so.3 -# Keep compatibility link -/%{_lib}/ld-linux.so.3 -%else -/%{_lib}/ld-linux.so.3 -%endif -%endif -%ifarch ia64 -/%{_lib}/ld-linux-ia64.so.2 -%endif -%ifarch ppc s390 mips hppa m68k -/%{_lib}/ld.so.1 -%endif -%ifarch ppc64 -/%{_lib}/ld64.so.1 -%endif -%ifarch ppc64le -/%{_lib}/ld64.so.2 -%endif -%ifarch s390x -/lib/ld64.so.1 -/%{_lib}/ld64.so.1 -%endif -%ifarch x86_64 -/%{_lib}/ld-linux-x86-64.so.2 -%endif -%ifarch %ix86 %sparc -/%{_lib}/ld-linux.so.2 -%endif -%ifarch aarch64 -/lib/ld-linux-aarch64.so.1 -/%{_lib}/ld-linux-aarch64.so.1 -%endif -%ifarch %ix86 x86_64 ppc ppc64 s390 s390x -# LSB -/%{_lib}/*-lsb*.so.3 -%endif - -/%{_lib}/libBrokenLocale-%{libversion}.so -/%{_lib}/libBrokenLocale.so.1 -/%{_lib}/libSegFault.so -/%{_lib}/libanl-%{libversion}.so -/%{_lib}/libanl.so.1 -/%{_lib}/libc-%{libversion}.so -/%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{libversion}.so -/%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{libversion}.so -/%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{libversion}.so -/%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{libversion}.so -/%{_lib}/libdl.so.2* -/%{_lib}/libm-%{libversion}.so -/%{_lib}/libm.so.6* -%ifarch x86_64 -/%{_lib}/libmvec-%{libversion}.so -/%{_lib}/libmvec.so.1 -%endif -/%{_lib}/libnsl-%{libversion}.so -/%{_lib}/libnsl.so.1 -/%{_lib}/libnss_db-%{libversion}.so -/%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{libversion}.so -/%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{libversion}.so -/%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{libversion}.so -/%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libpthread-%{libversion}.so -/%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{libversion}.so -/%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{libversion}.so -/%{_lib}/librt.so.1 -/%{_lib}/libthread_db-1.0.so -/%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{libversion}.so -/%{_lib}/libutil.so.1 -%define optimized_libs() \ - %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{libversion}.so\ - /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{libversion}.so\ - /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{libversion}.so\ - /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{libversion}.so\ - /%{_lib}/%1/librt.so.1\ - /%{_lib}/%1/libthread_db-1.0.so\ - /%{_lib}/%1/libthread_db.so.1 - -%if %{optimize_power} - %if %{powerpc_optimize_cpu_power4} - %{optimized_libs power4} - %endif - %if %{powerpc_optimize_cpu_power6} - %{optimized_libs power6} - %{optimized_libs power6x} - %endif - %if %{powerpc_optimize_cpu_power7} - %{optimized_libs power7} - %endif - %if %{powerpc_optimize_cpu_cell} - %{optimized_libs ppc-cell-be} - %endif -%endif # optimize_power -%ifarch i686 x86_64 -/%{_lib}/noelision -%endif -%dir %attr(0700,root,root) /var/cache/ldconfig -/sbin/ldconfig -%{_bindir}/gencat -%{_bindir}/getconf -%{_bindir}/getent -%{_bindir}/iconv -%attr(755,root,root) %{_bindir}/ldd -%ifarch %ix86 sparc sparcv9 m68k - %{_bindir}/lddlibc4 -%endif -%{_bindir}/locale -%{_bindir}/localedef -%dir %attr(0755,root,root) %{_libexecdir}/getconf -%{_libexecdir}/getconf/* -%{_sbindir}/glibc_post_upgrade -%{_sbindir}/iconvconfig - -%ifarch i586 -%files obsolete -%defattr (755,root,root,755) -/%{_lib}/obsolete -%endif - -%files locale -f libc.lang -%defattr(-,root,root) -%{_datadir}/locale/locale.alias -%if %{build_locales} - /usr/lib/locale -%endif -%{_libdir}/gconv - -%files devel -%defattr(-,root,root) -%doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE -%doc %{_mandir}/man1/catchsegv.1.gz -%doc %{_mandir}/man1/rpcgen.1.gz -%doc %{_mandir}/man3/* -%{_bindir}/catchsegv -%{_bindir}/rpcgen -%{_bindir}/sprof -%{_includedir}/* -%{_libdir}/*.o -%{_libdir}/*.so -# These static libraries are needed even for shared builds -%{_libdir}/libc_nonshared.a -%{_libdir}/libg.a -%{_libdir}/libieee.a -%ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v -# This is not built on sparc64. - %{_libdir}/libnldbl_nonshared.a -%endif -%{_libdir}/libmcheck.a -%ifarch x86_64 -%{_libdir}/libmvec_nonshared.a -%endif -%{_libdir}/libpthread_nonshared.a -%{_libdir}/librpcsvc.a - -%files devel-static -%defattr(-,root,root) -%{_libdir}/libBrokenLocale.a -%{_libdir}/libanl.a -%{_libdir}/libc.a -%{_libdir}/libcrypt.a -%{_libdir}/libowcrypt.a -%{_libdir}/libdl.a -%{_libdir}/libm.a -%ifarch x86_64 -%{_libdir}/libm-%{libversion}.a -%{_libdir}/libmvec.a -%endif -%{_libdir}/libpthread.a -%{_libdir}/libresolv.a -%{_libdir}/librt.a -%{_libdir}/libutil.a - -%ifnarch i686 -%files info -%defattr(-,root,root) -%doc %{_infodir}/libc.info.gz -%doc %{_infodir}/libc.info-?.gz -%doc %{_infodir}/libc.info-??.gz - -%if %{build_html} -%files html -%defattr(-,root,root) -%doc %{_prefix}/share/doc/glibc -%endif - -%files i18ndata -%defattr(-,root,root) -%{_prefix}/share/i18n - -%files -n nscd -%defattr(-,root,root) -%config(noreplace) /etc/nscd.conf -%{_sbindir}/nscd -%{_sbindir}/rcnscd -/usr/lib/systemd/system/nscd.service -%dir /usr/lib/tmpfiles.d -/usr/lib/tmpfiles.d/nscd.conf -%dir %attr(0755,root,root) %ghost /run/nscd -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid -%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket -%dir %attr(0755,root,root) /var/lib/nscd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/netgroup -%endif # !i686 - -%if %{build_profile} -%files profile -%defattr(-,root,root) -%{_libdir}/libc_p.a -%{_libdir}/libBrokenLocale_p.a -%{_libdir}/libanl_p.a -%{_libdir}/libm_p.a -%ifarch x86_64 -%{_libdir}/libmvec_p.a -%endif -%{_libdir}/libcrypt_p.a -%{_libdir}/libowcrypt_p.a -%{_libdir}/libpthread_p.a -%{_libdir}/libresolv_p.a -%{_libdir}/librt_p.a -%{_libdir}/librpcsvc_p.a -%{_libdir}/libutil_p.a -%{_libdir}/libdl_p.a -%endif - -%ifnarch i686 -%files extra -%defattr(-,root,root) -%{_bindir}/makedb -/var/lib/misc/Makefile -%endif # !i686 - -%endif # main - -%if %{build_utils} -%files -%defattr(-,root,root) -/%{_lib}/libmemusage.so -/%{_lib}/libpcprofile.so -%dir %{_libdir}/audit -%{_libdir}/audit/sotruss-lib.so -%{_bindir}/memusage -%{_bindir}/memusagestat -%{_bindir}/mtrace -%{_bindir}/pcprofiledump -%{_bindir}/sotruss -%{_bindir}/xtrace -%{_bindir}/pldd -%endif # utils - -%changelog diff --git a/glibc-testsuite.spec.in b/glibc-testsuite.spec.in deleted file mode 100644 index c43f8d5..0000000 --- a/glibc-testsuite.spec.in +++ /dev/null @@ -1,6 +0,0 @@ -%define flavor testsuite - -Name: glibc-testsuite -Summary: Testsuite results from the GNU C Library -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ diff --git a/glibc-utils.changes b/glibc-utils.changes deleted file mode 100644 index aaeae73..0000000 --- a/glibc-utils.changes +++ /dev/null @@ -1,8033 +0,0 @@ -------------------------------------------------------------------- -Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de - -- Remove rpcsvc/yppasswd.* from glibc-devel -- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) - -------------------------------------------------------------------- -Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de - -- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) - -------------------------------------------------------------------- -Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de - -- Disable obsolete libnsl and NIS support -- remove-nss-nis-compat.patch: remove nis and compat from default NSS - configs -- nsswitch.conf: Likewise - -------------------------------------------------------------------- -Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de - -- math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ - mode (BZ #21930) - -------------------------------------------------------------------- -Thu Aug 17 12:46:46 UTC 2017 - schwab@suse.de - -- Add iconvconfig to baselibs.conf (bsc#1051042) - -------------------------------------------------------------------- -Thu Aug 10 08:05:15 UTC 2017 - schwab@suse.de - -- resolv-context-leak.patch: Fix leaks of resolver contexts -- dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only - with AVX512F (BZ #21871) -- libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp - or system in libpthread (BZ #21041) - -------------------------------------------------------------------- -Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de - -- Update to glibc 2.26 - * A per-thread cache has been added to malloc - * Unicode 10.0.0 Support - * Improvements to the DNS stub resolver - * New function reallocarray, which resizes an allocated block (like - realloc) to the product of two sizes, with a guaranteed clean failure - upon integer overflow in the multiplication - * New wrappers for the Linux-specific system calls preadv2 and pwritev2 - * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to - create a new session ID for the spawned process - * errno.h is now safe to use from C-preprocessed assembly language on all - supported operating systems - * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements - 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE - 754-2008) and ISO/IEC TS 18661-3:2015 - * The synchronization that pthread_spin_unlock performs has been changed to - now be equivalent to a C11 atomic store with release memory order to the - spin lock's memory location - * The DNS stub resolver no longer performs EDNS fallback - * res_mkquery and res_nmkquery no longer support the IQUERY opcode - * The _res_opcodes variable has been removed from libresolv - * no longer includes inline versions of any string functions, - as this kind of optimization is better done by the compiler - * The nonstandard header has been removed - * The obsolete header has been removed - * The obsolete signal constant SIGUNUSED is no longer defined by - * The obsolete function cfree has been removed - * The stack_t type no longer has the name struct sigaltstack - * The ucontext_t type no longer has the name struct ucontext - * On S/390 GNU/Linux, the constants defined by have been - synced with the kernel - * Linux kernel 3.2 or later is required at runtime, on all architectures - supported by that kernel - * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, - to avoid fragmentation-based spoofing attacks (CVE-2017-12132) - * LD_LIBRARY_PATH is now ignored in binaries running in privileged - AT_SECURE mode to guard against local privilege escalation attacks - (CVE-2017-1000366) - * Avoid printing a backtrace from the __stack_chk_fail function since it - is called on a corrupt stack and a backtrace is unreliable on a - corrupt stack (CVE-2010-3192) - * A use-after-free vulnerability in clntudp_call in the Sun RPC system - has been fixed (CVE-2017-12133) - * fate#322258, fate#321513, fate#322453 -- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, - i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, - sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, - tunables-bigendian.patch: Removed - -------------------------------------------------------------------- -Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de - -- Fix RPM group - -------------------------------------------------------------------- -Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de - -- s390-elision-enable-envvar.patch: enable TLE only if - GLIBC_ELISION_ENABLE=yes is defined (fate#322271) - -------------------------------------------------------------------- -Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de - -- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE - programs (BZ #21209) -- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for - AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) - -------------------------------------------------------------------- -Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de - -- Remove glibc-cpusetsize.diff, no longer useful - -------------------------------------------------------------------- -Wed May 31 10:35:31 UTC 2017 - schwab@suse.de - -- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, - BZ #21289) - -------------------------------------------------------------------- -Mon May 29 18:10:31 UTC 2017 - schwab@suse.de - -- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h - aliasing - -------------------------------------------------------------------- -Mon May 29 10:24:22 UTC 2017 - schwab@suse.de - -- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE - locales (bsc#1039502) - -------------------------------------------------------------------- -Tue May 23 09:54:08 UTC 2017 - schwab@suse.de - -- Remove glibc-testsuite.patch, no longer relevant - -------------------------------------------------------------------- -Mon May 22 10:04:59 UTC 2017 - schwab@suse.de - -- Use multibuild feature -- Remove obsolete check-build.sh -- glibc.rpmlintrc: remove obsolete entries -- Use %tmpfiles_create in nscd postin - -------------------------------------------------------------------- -Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de - -- i686-memchr-sse.patch: Fix i686 memchr overflow calculation - (bsc#1031021, BZ #21182) -- sunrpc-use-after-free.patch: Avoid use-after-free read access in - clntudp_call (BZ #21115) -- Build testsuite with gdb and python-pexpect to enable more tests - -------------------------------------------------------------------- -Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de - -- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ - #21109) - -------------------------------------------------------------------- -Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de - -- Update to glibc 2.25 - * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR - 24731-2:2010, is supported to enable declarations of functions from that - TR. - * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS - 18661-1:2014, is supported to enable declarations of functions and macros - from that TS. - * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS - 18661-4:2015, is supported to enable declarations of functions and macros - from that TS. - * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are - now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. - * The inclusion of by is deprecated. - * New features from TS 18661-1:2014 are added to libm: the - fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the - femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. - * Integer width macros from TS 18661-1:2014 are added to : - CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, - UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to - : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, - INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, - UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, - INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, - UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, - UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, - UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, - UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, - WINT_WIDTH. - * New features are added from TS 18661-1:2014: - - Signaling NaN macros: SNANF, SNAN, SNANL. - - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, - fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, - fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. - - llogb functions: the llogb, llogbf and llogbl functions, and the - FP_LLOGB0 and FP_LLOGBNAN macros. - - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, - fminmagf, fminmagl. - - Comparison macros: iseqsig. - - Classification macros: iscanonical, issubnormal, iszero. - - Total order functions: totalorder, totalorderf, totalorderl, - totalordermag, totalordermagf, totalordermagl. - - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. - - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, - setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. - * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, - are added to libc. - * Most of glibc can now be built with the stack smashing protector enabled. - * The function explicit_bzero, from OpenBSD, has been added to libc. - * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined - to float instead of double. - * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the - float_t and double_t types are now defined to long double instead of float - and double. - * The getentropy and getrandom functions, and the header file - have been added. - * The buffer size for byte-oriented stdio streams is now limited to 8192 - bytes by default. - * The header now includes the header. - * The malloc_get_state and malloc_set_state functions have been removed. - * The “ip6-dotint†and “no-ip6-dotint†resolver options, and the - corresponding RES_NOIP6DOTINT flag from have been removed. - * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING - flag from have been removed. - * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, - RES_BLAST defined in the header file have been deprecated. - * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for - _res.flags are deprecated. - * DNSSEC-related declarations and definitions have been removed from the - header file, and libresolv will no longer attempt to - decode the data part of DNSSEC record types. - * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, - ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the - header file because the distinction between RR types and - meta-RR types is not officially standardized, subject to revision, and - thus not suitable for encoding in a macro. - * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook - and rhook members of the res_state type in have been removed. - * For multi-arch support it is recommended to use a GCC which has - been built with support for GNU indirect functions. - * GDB pretty printers have been added for mutex and condition variable - structures in POSIX Threads. - * Tunables feature added to allow tweaking of the runtime for an application - program. - * A new version of condition variables functions have been implemented in - the NPTL implementation of POSIX Threads to provide stronger ordering - guarantees. - * A new version of pthread_rwlock functions have been implemented to use a more - scalable algorithm primarily through not using a critical section anymore to - make state changes. - * On ARM EABI (32-bit), generating a backtrace for execution contexts which - have been created with makecontext could fail to terminate due to a - missing .cantunwind annotation. (CVE-2016-6323) - * The DNS stub resolver functions would crash due to a NULL pointer - dereference when processing a query with a valid DNS question type which - was used internally in the implementation. (CVE-2015-5180) -- Enable stack protector if part of %optflags -- startcontext-cantunwind.patch: Removed -- cpuid-assertion.patch: Removed - -------------------------------------------------------------------- -Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de - -- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647) - -------------------------------------------------------------------- -Wed Oct 5 15:01:46 UTC 2016 - schwab@suse.de - -- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to - /var/lib/nscd -- glibc-2.3.90-langpackdir.diff: simplify - -------------------------------------------------------------------- -Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de - -- Update to glibc 2.24 - * The minimum Linux kernel version that this version of the GNU C Library - can be used with is 3.2 - * The pap_AN locale has been deleted - * The readdir_r and readdir64_r functions have been deprecated - * The type `union wait' has been removed - * A new NSS action is added to facilitate large distributed system - administration - * The deprecated __malloc_initialize_hook variable has been removed from - the API - * The long unused localedef --old-style option has been removed - * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added - to libm - * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed - (CVE-2016-3075) - * Previously, getaddrinfo copied large amounts of address data to the - stack, even after the fix for CVE-2013-4458 has been applied, - potentially resulting in a stack overflow. getaddrinfo now uses a - heap allocation instead (CVE-2016-3706) - * The glob function suffered from a stack-based buffer overflow when it - was called with the GLOB_ALTDIRFUNC flag and encountered a long file - name (CVE-2016-1234) - * The Sun RPC UDP client could exhaust all available stack space when - flooded with crafted ICMP and UDP messages (CVE-2016-4429) - * The IPv6 name server management code in libresolv could result in a - memory leak for each thread which is created, performs a failing - naming lookup, and exits (CVE-2016-5417) -- startcontext-cantunwind.patch: mark __startcontext as .cantunwind - (bsc#974800, BZ #20435) -- Removed patches: - * 0001-Updated-translations-for-2.23.patch - * 0002-Regenerate-libc.pot-for-2.23.patch - * 0003-Regenerated-configure-scripts.patch - * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch - * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch - * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch - * 0008-Update-NEWS.patch - * 0009-sln-use-stat64.patch - * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch - * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch - * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch - * 0013-Mention-BZ-19762-in-NEWS.patch - * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch - * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch - * 0016-Fix-resource-leak-in-resolver-bug-19257.patch - * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch - * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch - * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch - * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch - * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch - * 0022-configure-fix-test-usage.patch - * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch - * 0025-getnameinfo-Do-not-preserve-errno.patch - * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch - * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch - * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch - * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch - * 0030-hesiod-Remove-RCS-keywords.patch - * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch - * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch - * 0033-malloc-Remove-NO_THREADS.patch - * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch - * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch - * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch - * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch - * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch - * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch - * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch - * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch - * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch - * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch - * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch - * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch - * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch - * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch - * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch - * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch - * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch - * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch - * 0052-Fix-tst-dlsym-error-build.patch - * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch - * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch - * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch - * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch - * clntudp-call-alloca.patch - * glibc-memset-nontemporal.diff - * nis-initgroups-status.patch - * nscd-gc-crash.patch - * robust-mutex-deadlock.patch - * strncat-avoid-array-bounds-warning.patch - -------------------------------------------------------------------- -Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de - -- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for - stncat on i586 (BZ #20260) -- Update glibc.keyring -- Unset MALLOC_CHECK_ during testsuite run - -------------------------------------------------------------------- -Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de - -- nsswitch.conf: Add fallback to files for passwd and group to prepare for - libnsl removal. - -------------------------------------------------------------------- -Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de - -- nis-initgroups-status.patch: Return proper status from - _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) -- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to - check for timeout (bsc#985170, BZ #20263) - -------------------------------------------------------------------- -Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de - -- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ - #19755) - -------------------------------------------------------------------- -Mon May 30 08:23:03 UTC 2016 - schwab@suse.de - -- clntudp-call-alloca.patch: do not use alloca in clntudp_call - (CVE-2016-4429, bsc#980854, BZ #20112) - -------------------------------------------------------------------- -Wed May 11 09:33:47 UTC 2016 - schwab@suse.de - -- Import patches from 2.23 branch - 0001-Updated-translations-for-2.23.patch - 0002-Regenerate-libc.pot-for-2.23.patch - 0003-Regenerated-configure-scripts.patch - 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch - 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch - 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch - 0008-Update-NEWS.patch - 0009-sln-use-stat64.patch - 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch - 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch - 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch - 0013-Mention-BZ-19762-in-NEWS.patch - 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch - 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch - 0016-Fix-resource-leak-in-resolver-bug-19257.patch - 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch - 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch - 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch - 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch - 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch - 0022-configure-fix-test-usage.patch - 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch - 0025-getnameinfo-Do-not-preserve-errno.patch - 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch - 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch - 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch - 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch - 0030-hesiod-Remove-RCS-keywords.patch - 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch - 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch - 0033-malloc-Remove-NO_THREADS.patch - 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch - 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch - 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch - 0037-malloc-Add-missing-internal_function-attributes-on-f.patch - 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch - 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch - 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch - 0041-nss_dns-Check-address-length-before-creating-addrinf.patch - 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch - 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch - 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch - 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch - 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch - 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch - 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch - 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch - 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch - 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch - 0052-Fix-tst-dlsym-error-build.patch - 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch - 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch - 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch - 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch -- CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 -- resolv-mem-leak.patch: renamed to - 0016-Fix-resource-leak-in-resolver-bug-19257.patch -- no-long-double.patch: renamed to - 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch -- glibc-gcc6.patch: renamed to - 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - -------------------------------------------------------------------- -Mon May 9 14:00:41 UTC 2016 - schwab@suse.de - -- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories -- glibc-2.3.locales.diff.bz2: likewise - -------------------------------------------------------------------- -Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com - -- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with - -Wparentheses - -------------------------------------------------------------------- -Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de - -- Add compatibility symlinks for LSB 3.0 (fate#318933) - -------------------------------------------------------------------- -Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de - -- powerpc-elision-enable-envvar.patch: enable TLE only if - GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) - -------------------------------------------------------------------- -Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de - -- ldd-system-interp.patch: Restore warning about execution permission, it - is still needed for noexec mounts (bsc#915985) - -------------------------------------------------------------------- -Tue Mar 8 15:28:16 UTC 2016 - idonmez@suse.com - -- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) - and rh#902094 . Added with glibc-c-utf8-locale.patch. -- Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for - C.UTF-8 same as C locale. - -------------------------------------------------------------------- -Mon Mar 7 14:47:50 UTC 2016 - schwab@suse.de - -- Move %install_info_delete to %preun -- crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer - acceptable - -------------------------------------------------------------------- -Tue Feb 23 16:11:36 UTC 2016 - schwab@suse.de - -- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE - -------------------------------------------------------------------- -Mon Feb 22 11:05:12 UTC 2016 - schwab@suse.de - -- Update to glibc 2.23 release. - * Unicode 8.0.0 Support - * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess - the kernel-internal CPU set size - * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 - * getaddrinfo now detects certain invalid responses on an internal - netlink socket - * A defect in the malloc implementation, present since glibc 2.15 (2012) - or glibc 2.10 via --enable-experimental-malloc (2009), could result in - the unnecessary serialization of memory allocation requests across - threads - * The obsolete header has been removed - * The obsolete functions bdflush, create_module, get_kernel_syms, - query_module and uselib are no longer available to newly linked - binaries - * Optimized string, wcsmbs and memory functions for IBM z13. - * Newly linked programs that define a variable called signgam will no - longer have it set by the lgamma, lgammaf and lgammal functions -- Removed patches: - * dont-remove-nodelete-flag.patch - * openat64-readd-o-largefile.patch - * mntent-blank-line.patch - * opendir-o-directory-check.patch - * strcoll-remove-strdiff-opt.patch - * ld-pointer-guard.patch - * tls-dtor-list-mangling.patch - * powerpc-lock-elision-race.patch - * prelink-elf-rtype-class.patch - * vector-finite-math-aliases.patch - * powerpc-elision-adapt-param.patch - * catopen-unbound-alloca.patch - * strftime-range-check.patch - * hcreate-overflow-check.patch - * errorcheck-mutex-no-elision.patch - * refactor-nan-parsing.patch - * send-dg-buffer-overflow.patch - * isinf-cxx11-conflict.patch - * ibm93x-redundant-shift-si.patch - * iconv-reset-input-buffer.patch - * tzset-tzname.patch - * static-dlopen.patch - -------------------------------------------------------------------- -Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de - -- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with - C++11 (bsc#963700, BZ #19439) - -------------------------------------------------------------------- -Wed Feb 17 09:48:26 UTC 2016 - schwab@suse.de - -- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling - (BZ #19018) -- prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits - for prelink (BZ #19178) -- vector-finite-math-aliases.patch: Better workaround for aliases of - *_finite symbols in vector math library (BZ# 19058) -- powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision - transient failure adapt param (BZ #19174) -- catopen-unbound-alloca.patch: Fix unbound alloca in catopen - (CVE-2015-8779, bsc#962739, BZ #17905) -- strftime-range-check.patch: Add range check on time fields - (CVE-2015-8776, bsc#962736, BZ #18985) -- hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, - bsc#962737, BZ #18240) -- errorcheck-mutex-no-elision.patch: Don't do lock elision on an error - checking mutex (bsc#956716, BZ #17514) -- refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads - (CVE-2014-9761, bsc#962738, BZ #16962) -- send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer - overflow (CVE-2015-7547, bsc#961721, BZ #18665) -- powerpc-lock-elision-race.patch: renamed from - 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch - -------------------------------------------------------------------- -Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de - -- Add audit-devel and libcap-devel to BuildRequires, for use by nscd - -------------------------------------------------------------------- -Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de - -- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock - on fork (bsc#958315, BZ #19282) - -------------------------------------------------------------------- -Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de - -- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) -- tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set - DST rules only (BZ #19253) - -------------------------------------------------------------------- -Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de - -- glibc-2.3.90-noversion.diff: use stat64 - -------------------------------------------------------------------- -Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de - -- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, - bsc#950944, BZ #18928) - -------------------------------------------------------------------- -Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de - -- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based - optimization (BZ #18589) - -------------------------------------------------------------------- -Thu Oct 8 14:26:14 UTC 2015 - schwab@suse.de - -- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE - error handler (BZ #18830) - -------------------------------------------------------------------- -Wed Sep 30 11:48:05 UTC 2015 - normand@linux.vnet.ibm.com - -- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock - 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch - -------------------------------------------------------------------- -Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de - -- nss-files-long-lines-2.patch: Properly reread entry after failure in - nss_files getent function (bsc#945779, BZ #18991) - -------------------------------------------------------------------- -Wed Sep 16 10:21:43 UTC 2015 - schwab@suse.de - -- fnmatch-collating-elements.patch: Fix fnmatch handling of collating - elements (BZ #17396, BZ #16976) - -------------------------------------------------------------------- -Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de - -- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works - test -- static-dlopen.patch: Static dlopen default library search path fix - (bsc#937853) - -------------------------------------------------------------------- -Mon Aug 31 12:21:29 UTC 2015 - schwab@suse.de - -- mntent-blank-line.patch: Fix memory corruption w/blank lines - -------------------------------------------------------------------- -Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de - -- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from - all loaded objects on failed dlopen -- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 - -------------------------------------------------------------------- -Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de - -- Update to glibc 2.22 release. - * Cache information can be queried via sysconf() function on s390 - * A buffer overflow in gethostbyname_r and related functions performing DNS - requests has been fixed. (CVE-2015-1781) - * The time zone file parser has been made more robust against crafted time - zone files - * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors - for LD and GD on x86 and x86-64, has been implemented. - * Character encoding and ctype tables were updated to Unicode 7.0.0 - * Added vector math library named libmvec - * A new fmemopen implementation has been added with the goal of POSIX - compliance. - * The header is deprecated, and will be removed in a future - release. - * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 - bsc#940195 bsc#940332 bsc#944494 bsc#968787 -- Patches from upstream removed - * htm-tabort.patch - * o-tmpfile.patch - * memcpy-chk-non-SSE2.patch - * pthread-mutexattr-gettype-kind.patch - * powerpc-software-sqrt.patch - * static-tls-dtv-limit.patch - * threaded-trim-threshold.patch - * resolv-nameserver-handling.patch - * nss-separate-state-getXXent.patch - * aarch64-sigstksz.patch - * heap-top-corruption.patch - * pthread-join-deadlock.patch - -------------------------------------------------------------------- -Mon Jul 27 09:08:21 UTC 2015 - schwab@suse.de - -- pthread-join-deadlock.patch: Use IE model for static variables in - libc.so, libpthread.so and rtld (bsc#930015, BZ #18457) - -------------------------------------------------------------------- -Wed Jul 22 09:13:48 UTC 2015 - schwab@suse.de - -- glibc-nodate.patch: fix verification of timestamp - -------------------------------------------------------------------- -Tue Jul 21 07:50:22 UTC 2015 - meissner@suse.com - -- also filter out -fstack-protector-strong - -------------------------------------------------------------------- -Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de - -- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start - before IPv6 is up (bsc#931399) -- glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE. - -------------------------------------------------------------------- -Tue Jun 9 08:16:46 UTC 2015 - schwab@suse.de - -- Add /usr/include/gnu/lib-names-.*.h to baselibs -- pthread-join-deadlock.patch: Don't require rtld lock to store static TLS - offset in the DTV (bsc#930015, BZ #18457) -- heap-top-corruption.patch: Do not corrupt the top of a threaded heap if - top chunk is MINSIZE (BZ #18502) - -------------------------------------------------------------------- -Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com - -- threaded-trim-threshold.patch: Fix regression in threaded application - malloc performance (bsc#915955, BZ #17195) - -------------------------------------------------------------------- -Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de - -- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) - -------------------------------------------------------------------- -Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de - -- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ - #17967) -- nss-separate-state-getXXent.patch: Separate internal state between - getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) -- static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS - limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, - BZ #17628) - -------------------------------------------------------------------- -Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de - -- resolv-nameserver-handling.patch: Replace with simpler version with more - compatibility - -------------------------------------------------------------------- -Mon Mar 2 14:27:02 UTC 2015 - schwab@suse.de - -- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs - (bsc#920084) - -------------------------------------------------------------------- -Tue Feb 24 10:11:46 UTC 2015 - schwab@suse.de - -- resolv-nameserver-handling.patch: Rewrite handling of nameserver - configuration in resolver - -------------------------------------------------------------------- -Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de - -- htm-tabort.patch: Fix TABORT encoding for little endian - -------------------------------------------------------------------- -Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de - -- Update to glibc 2.21 release. - * A new semaphore algorithm has been implemented in generic C code for all - machines - * Added support for TSX lock elision of pthread mutexes on powerpc32, - powerpc64 and powerpc64le - * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for - AArch64 - * i386 memcpy functions optimized with SSE2 unaligned load/store - * New locales: tu_IN, bh_IN, raj_IN, ce_RU - * The obsolete sigvec function has been removed - * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 - CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 -- Patches from upstream removed - * ifunc-x86-slow-sse4.patch - * pthread-mutex-trylock-elision.patch -- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with - non-default O_DIRECTORY (BZ #17912) - -------------------------------------------------------------------- -Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de - -- Update to crypt_blowfish 1.3. - * Add support for the $2b$ prefix. -- ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit - (BZ #17501) - -------------------------------------------------------------------- -Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de - -- Update to glibc 2.20 release. - * Reverted change of ABI data structures for s390 and s390x - * Support for file description locks is added to systems running the - Linux kernel - * Optimized strchr implementation for AArch64 - * The minimum Linux kernel version that this version of the GNU C Library - can be used with is 2.6.32 - * Running the testsuite no longer terminates as soon as a test fails - * The am33 port, which had not worked for several years, has been removed - from ports. - * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer - supported; they now act the same as _DEFAULT_SOURCE (but generate a - warning) - * Optimized strcmp implementation for ARMv7 - * Added support for TX lock elision of pthread mutexes on s390 and s390x - * All supported architectures now use the main glibc sysdeps directory - instead of some being in a separate "ports" directory - * The NPTL implementation of POSIX pthreads is no longer an "add-on" - * Locale names, including those obtained from environment variables (LANG - and the LC_* variables), are more tightly checked for proper syntax - * On x86-64, the dynamic linker's lazy-binding support is now compatible - with application code using Intel MPX instructions - * CVE-2013-7423 bsc#915526 bsc#934084 bsc#973010 -- Patches from upstream removed - * nss-dns-memleak.patch - * sin-sign.patch - * pldd-wait-ptrace-stop.patch - * nscd-track-startup-failures.patch - * powerpc-opt-power8.patch - * check-pf-alloca.patch - * getaddrinfo-uninit-result.patch - * ppc64-copysign.patch - * nextafterl-ibm-ldouble.patch - * ibm-long-double-math.patch - * ibm-long-double-frexpl.patch - * aarch64-setcontext.patch - * nss-nis-stack-use.patch - * psfaa.patch - * nss-files-long-lines.patch - * setlocale-directory-traversal.patch - * dt-ppc64-num.patch - * ppc64le-profiling.patch - * s390-revert-abi-change.patch - * disable-gconv-translit-modules.patch - * resolv-dont-ignore-second-answer.patch - * iconv-ibm-sentinel-check.patch -- Remove sprof.1, and mtrace.1, now included in the man-pages package - (bsc#967190) - -------------------------------------------------------------------- -Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de - -- iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM - gconv modules (CVE-2014-6040, bnc#894553, BZ #17325) - -------------------------------------------------------------------- -Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de - -- disable-gconv-translit-modules.patch: Disable gconv transliteration - module loading (CVE-2014-5119, bnc#892073, BZ #17187) - -------------------------------------------------------------------- -Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de - -- pthread-mutexattr-gettype-kind.patch: Filter out - PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype - (bnc#888131, BZ #15790) - -------------------------------------------------------------------- -Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de - -- ppc64le-profiling.patch: fix profiling for ppc64le (bnc#889601, BZ - #17213) -- s390-revert-abi-change.patch: replace with upstream patch, switches - default symbol version back to old version (bnc#887228) - -------------------------------------------------------------------- -Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de - -- ibm93x-redundant-shift-si.patch: Avoid redundant shift character in - iconv output at block boundary (bnc#886416, BZ #17197) - -------------------------------------------------------------------- -Thu Jul 24 15:35:50 UTC 2014 - schwab@suse.de - -- s390-revert-abi-change.patch: revert back to pre-2.19 layout of jmp_buf - and ucontext_t on s390 (bnc#887228) - -------------------------------------------------------------------- -Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de - -- dt-ppc64-num.patch: Correct DT_PPC64_NUM (bnc#887169, BZ #17153) - -------------------------------------------------------------------- -Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de - -- setlocale-directory-traversal.patch: Directory traversal in locale - environment handling (CVE-2014-0475, bnc#887022, BZ #17137) -- Remove the ppc64le check-abi workaround, no longer needed - -------------------------------------------------------------------- -Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de - -- nss-files-long-lines.patch: Don't ignore too long lines in nss_files - (bnc#883217, BZ #17079) -- Remove locale.1, localedef.1 and iconvconfig.8 manpages, now included in - the man-pages package (bnc#880703) -- manpages.patch: update - -------------------------------------------------------------------- -Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de - -- psfaa.patch: copy filename argument in posix_spawn_file_actions_addopen - (CVE-2014-4043, bnc#882600, BZ #17048) - -------------------------------------------------------------------- -Wed May 28 15:11:45 UTC 2014 - matz@suse.de - -- glibc-memset-nontemporal.diff: Speedup memset on x86_64 - (bnc#868622, BZ #16830) - -------------------------------------------------------------------- -Thu May 15 15:45:03 UTC 2014 - schwab@suse.de - -- add non-elision-enabled libpthread - -------------------------------------------------------------------- -Mon May 12 13:22:40 UTC 2014 - schwab@suse.de - -- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ - #16932) - -------------------------------------------------------------------- -Wed May 7 10:13:24 UTC 2014 - schwab@suse.de - -- getaddrinfo-uninit-result.patch: fix parsing of getai result for - IPv6-only request (bnc#876521) - -------------------------------------------------------------------- -Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de - -- ibm-long-double-frexpl.patch: Correct IBM long double frexpl - (bnc#872573, BZ #16740, BZ #16619) - -------------------------------------------------------------------- -Tue Apr 15 14:23:54 UTC 2014 - schwab@suse.de - -- ibm-long-double-math.patch: Remove faulty assembler implementations of - ceil, nearbyintl, roundl for IBM long double (bnc#873457, BZ #16701, BZ - #16706, BZ #16707) - -------------------------------------------------------------------- -Tue Apr 15 11:00:59 UTC 2014 - aj@suse.com - -- Use /run for nscd instead of /var/run. - -------------------------------------------------------------------- -Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de - -- pthread-mutex-destroy.patch: Remove -- pthread-mutex-trylock-elision.patch: Properly handle forced elision in - pthread_mutex_trylock (bnc#865968, BZ #16657) - -------------------------------------------------------------------- -Thu Apr 3 07:32:24 UTC 2014 - schwab@suse.de - -- nextafterl-ibm-ldouble.patch: Correct IBM long double nextafterl - (bnc#871637, BZ #16739) - -------------------------------------------------------------------- -Tue Apr 1 13:33:24 UTC 2014 - schwab@suse.de - -- Readd dependency on sysvinit.target to nscd.service (bnc#868422) -- Make the nscd service part of the nss-lookup and nss-user-lookup targets - (bnc#871386) -- Move _constraints back to main package and update it - -------------------------------------------------------------------- -Tue Apr 1 07:55:19 UTC 2014 - schwab@suse.de - -- ppc64-copysign.patch: Fix ppc64le copysign overwriting parent stack - frame (BZ #16786) -- aarch64-setcontext.patch: Fix aarch64 setcontext clobbering alternate - signal stack (BZ #16629) - -------------------------------------------------------------------- -Mon Mar 31 13:22:56 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: readd POWER8 implementation of isnan, - isinf, finite with fix for little endian (bnc#871353) -- pthread-mutex-destroy.patch: Skip checks in pthread_mutex_destroy when - doing elision (bnc#865968) - -------------------------------------------------------------------- -Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan, - isinf, finite; fix missing static symbols -- glibc-2.14-crypt.diff: update for file renaming - -------------------------------------------------------------------- -Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de - -- check-pf-alloca.patch: remove use of alloca while collecting interface - addresses - -------------------------------------------------------------------- -Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de - -- abort-no-flush.patch: Don't close or flush stdio streams on abort (BZ - #15436) -- fix-locking-in-_IO_cleanup.patch: always do locking when accessing - streams (bnc#796982, BZ #15142) -- resolv-dont-ignore-second-answer.patch: don't ignore second answer from - nameserver if the first one was empty (bnc#767266, BZ #13651) -- ldd-system-interp.patch: Never try to execute the file in ldd - (CVE-2009-5064, bnc#677787, BZ #16750) - -------------------------------------------------------------------- -Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de - -- check-pf-alloca.patch: Account for alloca use when collecting interface - addresses (bnc#785041, BZ #16002) - -------------------------------------------------------------------- -Mon Mar 24 07:59:40 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: two more POWER8 optimisations (bnc#866711, - fate#315443) - -------------------------------------------------------------------- -Thu Mar 20 14:52:47 UTC 2014 - schwab@suse.de - -- getaddrinfo-uninit-result.patch: Fix use of half-initialized result in - getaddrinfo when using nscd (bnc#867636, BZ #16743) - -------------------------------------------------------------------- -Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de - -- Remove dependency on sysinit.target from nscd.service again (bnc#86422) - -------------------------------------------------------------------- -Wed Mar 19 14:39:55 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: GLIBC Optimizations For POWER8 Hardware - (bnc#866711, fate#315443) - -------------------------------------------------------------------- -Tue Mar 18 17:10:43 UTC 2014 - schwab@suse.de - -- Make sure nscd is started after sysinit.target (bnc#868422) -- nscd-track-startup-failures.patch: properly track startup failures in - nscd and mark nscd.service as forking (BZ #16639) - -------------------------------------------------------------------- -Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de - -- Add services and netgroup persistent caches to nscd file list - -------------------------------------------------------------------- -Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de - -- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) -- pldd-wait-ptrace-stop.patch: Update from upstream - -------------------------------------------------------------------- -Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de - -- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499) -- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686 - -------------------------------------------------------------------- -Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de - -- Bump minimum kernel to 3.0 - -------------------------------------------------------------------- -Sun Feb 9 13:52:23 UTC 2014 - schwab@suse.de - -- Update to glibc 2.19 release - -------------------------------------------------------------------- -Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de - -- Update to glibc 2.18.90 ee7cc3853761: - * More bug fixes - * SystemTap probes for slow multiple precision fallback paths of - transcendental functions have been introduced. - * Preliminary documentation about Multi-Thread, Async-Signal and - Async-Cancel Safety has been added. - * Change powerpc64le start ABI to 2.17 -- Add /usr/local/lib64 to ld.so.conf on all lib64 platforms -- Enable profile build for aarch64 -- ppc64le-abilist.patch: Removed - -------------------------------------------------------------------- -Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com - -- make pwdutils a real buildrequire - Requires(pre) are used during builds, but don't trigger rebuilds. - But to create clearly defined bootstrap projects, it's essential - to know what packages are required for others. So move this requires - to build to a buildrequire - -------------------------------------------------------------------- -Tue Jan 7 14:30:50 UTC 2014 - schwab@suse.de - -- Update to glibc 2.18.90 94c8a4bc574c: - * More bug fixes - * Slovenian translations for glibc messages have been contributed by the - Translation Project's Slovenian team of translators. - -------------------------------------------------------------------- -Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 83f5c32d21f7: - * Support for STT_GNU_IFUNC symbols added for ppc64 - * A new feature test macro _DEFAULT_SOURCE is available - * The _BSD_SOURCE feature test macro no longer enables BSD interfaces - that conflict with POSIX. The libbsd-compat library (which was a - dummy library that did nothing) has also been removed. - * Added support for version-3 tz format files -- i686-no-sse42-strstr.patch: Removed - -------------------------------------------------------------------- -Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 aeb95445d128: - * More bug fixes - * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ - * The public headers no longer use __unused nor __block - * Support for PowerPC64 ELFv2 ABI -- ppc64le-abilist.patch: ABI lists for PowerLE - -------------------------------------------------------------------- -Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 bd12ab55c05e: - * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW, - pap_CW, quz_PE, the_NP. - * Substantially revised locales: gd_GB, ht_HT - * The LC_ADDRESS field was updated to support country_car for almost all - supported locales. - * ISO 1427 definitions were updated. - * ISO 3166 definitions were updated. - * The localedef utility now supports --big-endian and --little-endian - command-line options to generate locales for a different system from that - for which the C library was built. - * Binary locale files now only depend on the endianness of the system for - which they are generated and not on other properties of that system. - * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh, - cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue). - * SystemTap probes for malloc have been introduced. - * Support for powerpc64le has been added. - * The soft-float powerpc port now supports e500 processors. -- Remove upstreamed patches: - cbrtl-ldbl-96.patch - fcntl-o-tmpfile.patch - getaddrinfo-overflow.patch - glibc-2.18.tar.xz - glibc-ld-profile.patch - glibc-nscd-hconf.diff - i686-strcasecmp-fallback.patch - m68k-Scrt1.patch - malloc-overflows.patch - nonascii-case.patch - nss-database.patch - printf-overrun.patch - readdir_r-overflow.patch - strcoll-overflow.patch -- Remove obsolete patches: - glibc-2.4.90-revert-only-euro.diff - -------------------------------------------------------------------- -Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de - -- getaddrinfo-overflow.patch: Fix stack overflow due to large AF_INET6 - requests (CVE-2013-4458, bnc#847227) - -------------------------------------------------------------------- -Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de - -- Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) - -------------------------------------------------------------------- -Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de - -- Depend on gcc defaults for base powerpc optimisations (bnc#844824) - -------------------------------------------------------------------- -Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de - -- Enable ports addon for m68k and adapt file list -- m68k-Scrt1.patch: Use PIC for Scrt1.o - -------------------------------------------------------------------- -Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de - -- nscd-server-user.patch: run nscd as user nscd (fate#314673) - -------------------------------------------------------------------- -Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de - -- malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332, - bnc#839870) - -------------------------------------------------------------------- -Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de - -- fcntl-o-tmpfile.patch: Add O_TMPFILE to (bnc#837965) -- strcoll-overflow.patch: Update to latest version - -------------------------------------------------------------------- -Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18 release - * No source change -- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, - bnc#779320) -- readdir_r-overflow.patch: fix readdir_r with long file names - (CVE-2013-4237, bnc#834594) - -------------------------------------------------------------------- -Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de - -- Update to glibc 2.17.90 85891acadf1b: - * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal - has been fixed by disabling the use of pt_chown (Bugzilla #15755). - Distributions can re-enable building and using pt_chown via the new configure - option `--enable-pt_chown'. Enabling the use of pt_chown carries with it - considerable security risks and should only be used if the distribution - understands and accepts the risks. - * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla - #15078). - * CVE-2013-1914 Stack overflow in getaddrinfo with many results has been - fixed (Bugzilla #15330). - * Add support for calling C++11 thread_local object destructors on thread - and program exit. This needs compiler support for offloading C++11 - destructor calls to glibc. - * Improved worst case performance of libm functions with double inputs and - output. - * Support for priority inherited mutexes in pthread condition variables on - non-x86 architectures. - * Optimized string functions for AArch64. Implemented by Marcus Shawcroft. - * Optimized string functions for ARM. Implemented by Will Newton and - Richard Henderson. - * Added a benchmark framework to track performance of functions in glibc. - * New macro named issignaling to check for a signaling NaN (sNaN). - It is based on draft TS 18661 and currently enabled as a GNU extension. - * On Linux, the clock function now uses the clock_gettime system call - for improved precision, rather than old times system call. - * Added new API functions pthread_getattr_default_np and - pthread_setattr_default_np to get and set the default pthread - attributes of a process. - * Added support for TSX lock elision for pthread mutexes on i386 and x86-64. - This may improve lock scaling of existing programs on TSX capable systems. - * Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10 - availability). Implemented by Ryan S. Arnold. - * Support added for POWER8 platform. Implemented by Ryan S. Arnold. -- Remove upstreamed patches: - pthread-cond-timedwait-i486.patch - glibc-aarch64-lib64.patch - arm-ld-so-cache.patch - rtlddir.patch - regexp-overrun.patch - getaddrinfo-overflow.patch - nscd-netgroup.patch - disable-pt-chown.patch - nscd-short-write.patch - big5-hkscs-update.patch.bz2 - digits-dots.patch - strptime-W-week.patch - aarch64-sigsetjmp.patch -- Rediff all remaining patches -- Reenable stackguard randomization on arm -- Recognize ppc64p7 arch to build for power7 -- Remove all ABI extensions from libcrypt -- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96 - -------------------------------------------------------------------- -Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de - -- i686-strcasecmp-fallback.patch: fix fallback in i686 - strcasecmp/strncasecmp -- nonascii-case.patch: also test strncasecmp -- pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after - detaching (bnc#819383) - -------------------------------------------------------------------- -Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de - -- disable-pt-chown.patch: disable use of pt_chown (CVE-2013-2207, - bnc#830257) -- nonascii-case.patch: fix strcasecmp in tr_TR.ISO-8859-9 locale -- glibc-2.14-crypt.diff: fix incomplete dependencies for libowcrypt - -------------------------------------------------------------------- -Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de - -- crypt_blowfish-gensalt.patch: separare crypt_gensalt into its own - library libowcrypt, remove crypt_rn and crypt_ra (fate#314945) -- glibc-2.14-crypt-versioning.diff, glibc-fix-check-abi.patch, - glibc-crypt-badsalttest.patch: folded into glibc-2.14-crypt.diff -- crypt_blowfish-const.patch: constify crypt_blowfish -- crypt_blowfish-1.2-sha.diff: refresh - -------------------------------------------------------------------- -Fri Jun 28 12:26:38 UTC 2013 - dmueller@suse.com - -- add ld-linux.so.3 compat symlink also for armv6hl -- remove deprecated armv7l - -------------------------------------------------------------------- -Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com - -- rely on systemd-rpm-macros instead of the full thing - -------------------------------------------------------------------- -Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de - -- nscd-netgroup.patch: Fix handling of netgroup cache in nscd (bnc#819524) - -------------------------------------------------------------------- -Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de - -- glibc-bindresvport-blacklist.diff: Renamed from - glibc-2.3.90-bindresvport.blacklist.diff; fix resource leaks - (bnc#824046) -- Remove glibc-armhf-compat.patch - -------------------------------------------------------------------- -Mon May 20 08:26:35 UTC 2013 - schwab@suse.de - -- aarch64-sigsetjmp.patch: Fix sigsetjmp on aarch64 - -------------------------------------------------------------------- -Sat May 18 09:34:41 UTC 2013 - schwab@suse.de - -- Fix file list for glibc-utils - -------------------------------------------------------------------- -Thu May 16 12:02:14 UTC 2013 - schwab@suse.de - -- big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 -- digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r -- nss-database.patch: Properly cache the result from looking up the nss - database config -- strptime-W-week.patch: Properly handle %W in strptime -- printf-overrun.patch: Revert problematic fixes for [BZ #11741] -- glibc-aarch64-lib64.patch: Replace with upstream version -- arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache -- rtlddir.patch: Add support for rtld directory different from slib - directory -- regexp-overrun.patch: Fix buffer overrun in regexp matcher - (CVE-2013-0242, bnc#801246) -- getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many - results (CVE-2013-1914, bnc#813121) - -------------------------------------------------------------------- -Thu May 16 10:04:01 UTC 2013 - schwab@suse.de - -- When testsuite run fails make all test output available - -------------------------------------------------------------------- -Tue May 7 10:00:00 UTC 2013 - schwab@suse.de - -- Fix check for XEN build in glibc_post_upgrade - -------------------------------------------------------------------- -Sun Apr 14 02:41:52 UTC 2013 - crrodriguez@opensuse.org - -- Do not order nscd after syslog.target - -------------------------------------------------------------------- -Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de - -- Fix crypt ABI for aarch64 - -------------------------------------------------------------------- -Thu Feb 28 14:30:44 UTC 2013 - schwab@suse.de - -- manpages.patch: - Remove debianisms from manpages (bnc#805054) - -------------------------------------------------------------------- -Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de - -- Update crypt ABI for aarch64 -- glibc-aarch64-lib64.patch: - Use lib64 for aarch64 and add link for /lib/ld-linux-aarch64.so.1 -- Don't build profiling libraries for aarch64 - -------------------------------------------------------------------- -Tue Feb 5 09:28:44 UTC 2013 - schwab@suse.de - -- Move _constraints file to glibc-testsuite only - -------------------------------------------------------------------- -Sun Feb 3 00:08:54 UTC 2013 - dmueller@suse.com - -- build with ports enabled on aarch64 - -------------------------------------------------------------------- -Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de - -- Obsolete unscd to migrate back to nscd. - -------------------------------------------------------------------- -Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com - -- looks like testsuite runs only on kvm, so add _constraint - (actually it does not build on xen, but I can't constraint that) - -------------------------------------------------------------------- -Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de - -- Don't run testsuite in parallel -- Fail if testsuite fails -- Disable crypt/badsalttest test - -------------------------------------------------------------------- -Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com - -- add _constraints file to make sure glibc-testsuite only builds on big - hosts. Otherwise it's running out of memory and stalls - -------------------------------------------------------------------- -Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de - -- Set bugurl to bugs.opensuse.org - -------------------------------------------------------------------- -Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de - -- Update to glibc 2.17 release (git id c758a6861537): - * bump version number - * update translations - -------------------------------------------------------------------- -Tue Dec 18 10:28:01 UTC 2012 - schwab@suse.de - -- Move glibc-utils subpackage to own specfile and enable programs that - require libgd -- Filter GLIBC_PRIVATE symbols -- Don't stop at first error in testsuite run - -------------------------------------------------------------------- -Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de - -- Split off glibc-testsuite package - -------------------------------------------------------------------- -Fri Dec 14 19:31:45 UTC 2012 - aj@suse.de - -- Build profile and locale packages for i686 as well. - -------------------------------------------------------------------- -Wed Dec 12 08:32:53 UTC 2012 - aj@suse.de - -- Update to 4641d57e1e00: - * Updated translations - * bug fixes - -------------------------------------------------------------------- -Mon Dec 10 13:08:01 UTC 2012 - schwab@suse.de - -- pthread-cond-timedwait-i486.patch: - Extend i486 pthread_cond_timedwait to use futex syscall with absolute - timeout -- nscd-short-write.patch: - Properly check for short writes when sending the response in nscd - -------------------------------------------------------------------- -Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de - -- Update to 56e7d3ad5c2f: - * Bugfixes - * Fix warnings building glibc -- Remove upstreamed patch glibc-revert-fseek-on-fclose.diff - -------------------------------------------------------------------- -Mon Dec 3 15:45:08 UTC 2012 - aj@suse.de - -- Remove nosegneg i686 library, it's only used for a 32-bit Xen - hypervisor (not for a 32-bit guest running under 64-bit hypervisor), - and since the 32-bit Xen hypervisor is not part of openSUSE anymore, - it is unneeded (bnc#789607). - -------------------------------------------------------------------- -Mon Dec 3 14:47:22 UTC 2012 - schwab@suse.de - -- Suppress error message from systemctl in %post -n nscd (bnc#792333) - -------------------------------------------------------------------- -Sat Dec 1 08:55:05 UTC 2012 - aj@suse.de - -- Update to f638872ab422: - Fix regression introduced with last update in sunrpc code - Fix assertion failure in resolver - Bug fixes -- Remove upstreamed patch glibc-resolv-assert.diff - -------------------------------------------------------------------- -Fri Nov 30 09:15:15 UTC 2012 - aj@suse.de - -- Update to c93ec1f091ec: - Warn about unsupported DT_FLAGS_1 flags - Add Interlingua locale - Bug fixes - -------------------------------------------------------------------- -Thu Nov 29 14:30:11 UTC 2012 - schwab@suse.de - -- Remove obsolete patches: - glibc-strict-aliasing.diff - nscd-avoid-gcc-warning.diff - -------------------------------------------------------------------- -Wed Nov 28 15:48:32 UTC 2012 - aj@suse.de - -- Update to e3c6aa3a5848: - * Fix powerpc64 make abi check failure - * bugfixes -- Install nscd.socket to new /usr location - -------------------------------------------------------------------- -Wed Nov 28 09:31:11 UTC 2012 - schwab@suse.de - -- Reenable multi-arch on ppc ppc64 - -------------------------------------------------------------------- -Tue Nov 27 21:34:15 UTC 2012 - aj@suse.de - -- Update to de2fd463b1c0: - Various bugfixes including: - * Fix fwrite bug causing grep etc testsuite failure - * sotruss: fix argument parsing - * Check supported DF_1_XXX bits - Add new locales niu_NU and niu_NZ -- Refresh patch glibc-revert-fseek-on-fclose.diff - -------------------------------------------------------------------- -Sat Nov 24 13:48:40 UTC 2012 - aj@suse.de - -- Remove nscd init script, use systemd files. - -------------------------------------------------------------------- -Fri Nov 23 14:33:37 UTC 2012 - matz@suse.com - -- Fix getaddrinfo-ipv6-sanity.diff to apply again. - -------------------------------------------------------------------- -Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de - -- Update to f59cba71d848: - * Various bug fixes - * Add new locales szl_PL, ayc_PE, nhn_MX, doi_IN, mni_IN, sat_IN. - * Remove patch glibc-compiled-binaries.diff since getconf can not be - cross-compiled - * Refresh patch glibc-2.3.90-bindresvport.blacklist.diff - -------------------------------------------------------------------- -Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de - -- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c): - * Upstream changes: - + ports is now part of main tarball - + Add port to ARM AArch64 - + New function secure_getenv - + Systemtap static probes - + The `clock_*' suite of functions (declared in ) is now - available directly in the main C library. - + The `crypt' function now fails if passed salt bytes that violate the - specification for those values. On Linux, the `crypt' function will - consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is - enabled, and fail on encrypted strings using the MD5 or DES algorithm - when the mode is enabled. - + Optimzations and bug fixes - * remove upstream patches malloc-check-size.patch, - glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch, - pthread-cond-wait-revert.patch - * Remove now obsolete patch glibc-gai-private4.diff - * Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff, - glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff, - glibc-revert-fseek-on-fclose.diff - * Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff - and glibc-gai-private4.diff. - * Use git id instead of ChangeLog date in version output (patch glibc-version.diff) - * Enable multi-arch on all architectures that support it. - -------------------------------------------------------------------- -Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de - -- Avoid shell comment leaking into %post. - -------------------------------------------------------------------- -Thu Oct 25 07:30:04 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 c3b96f90c9c1: - - Fix missing _mcount@GLIBC_2.0 on powerpc32 (replaces - patch glibc-2.16-ppc32-mcount.patch) -- Drop patch glibc-elf-localscope.diff, fixed upstream in 2.16 - in a different way. - -------------------------------------------------------------------- -Tue Oct 9 07:15:12 UTC 2012 - aj@suse.de - -- Fix malloc_usable_size (swo#1349, bnc#745247) (patch - malloc-check-size.patch). - -- Update to current glibc 2.16 (git a5cfcf08ffaa): - * fix fma detection - * Don't parse %s format argument as multibyte string - * Use size_t instead of int for internal variables in glob - * Properly handle fencepost with MALLOC_ALIGN_MASK - -------------------------------------------------------------------- -Sat Oct 6 08:51:46 UTC 2012 - meissner@suse.com - -- make glibc-devel- require glibc- just - like glibc-devel - -------------------------------------------------------------------- -Fri Sep 28 07:47:33 UTC 2012 - aj@suse.de - -- Fix crash in relocation on sparc with bind-now (swo#14376) - (patch sparc-bind-now.patch). - -------------------------------------------------------------------- -Thu Sep 27 12:20:11 UTC 2012 - aj@suse.de - -- Fix check-abi on more architectures (bnc#780696), patch by Jan - Engelhardt (updated patch glibc-fix-check-abi.patch). - -------------------------------------------------------------------- -Tue Sep 4 11:08:53 UTC 2012 - schwab@linux-m68k.org - -- Move pt_chown to %{_libexecdir} so that baselibs can find it. -- Do create hardlinks to getconf so that baselibs use the correct binary - and getconf -v works (obsoletes patch glibc-2.8-getconf.diff). - -------------------------------------------------------------------- -Tue Aug 28 07:10:49 UTC 2012 - aj@suse.de - -- Update to da1f43196321, major changes: - * Fix strtod integer/buffer overflow (bso#14459). - * Fix segmentation fault in strncasecmp for i686. - * Translation updates - -------------------------------------------------------------------- -Tue Jul 24 08:39:30 UTC 2012 - aj@suse.de - -- Fix _mcount on PowerPC32. - -------------------------------------------------------------------- -Sat Jul 21 07:31:10 UTC 2012 - aj@suse.de - -- Enable parallel build for some more cases. - -------------------------------------------------------------------- -Fri Jul 20 17:00:00 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 release. - * update version numbers - * Documentation updates -- Update manpages from Debian, includes new man pages for - locale.1, mtrace.1, gencat.1 iconvconfig.8. -- Remove getent.1 man page, use the one from man-pages. - -------------------------------------------------------------------- -Fri Jul 20 16:42:42 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 trunk (git id 416bf844227d): - * Fix check-abi for arm - * Refresh some patches. - * remove merged patches - * mainly lots of bug fixes - * Support for ISO C11 - * full details in NEWS file - -------------------------------------------------------------------- -Fri Jul 20 15:06:49 UTC 2012 - jengelh@inai.de - -- Add commit 10f62770e115d9f (glibc-sparc-fxstatat64.diff) from - upstream to resolve rpmlint-induced packaging abort due to - (previously) "no-return-in-nonvoid" -- Add xz as explicit BuildRequires for openSUSE_12.1 - -------------------------------------------------------------------- -Thu Jul 19 23:42:46 UTC 2012 - jengelh@inai.de - -- Do package ld-linux.so.2 on SPARC as well - -------------------------------------------------------------------- -Tue Jul 17 12:22:29 UTC 2012 - aj@suse.de - -- Add makeinfo as build requires to be able to generate the info - pages. - -------------------------------------------------------------------- -Wed Jul 4 13:36:17 UTC 2012 - aj@suse.de - -- Add glibc-2.16-getaddrinfo-buffer.patch to not use a too small - buffer for dns queries on 64-bit systems (bso#14307,bso#13904). -- Fix getaddrinfo-ipv6-sanity.diff (bnc#767125). - -------------------------------------------------------------------- -Mon Jul 2 16:23:15 UTC 2012 - agraf@suse.com - -- Backport *context patch for ARM from 2.16, so we have a working libpth - -------------------------------------------------------------------- -Thu Jun 28 18:46:30 UTC 2012 - aj@suse.de - -- Remove not anymore existing nscd.socket. - -------------------------------------------------------------------- -Thu Jun 28 12:33:50 UTC 2012 - aj@suse.de - -- Update to glibc 2.15-branch (git id 725b8ee08aff): - * Fix regression in cosh (bso#14273) - -------------------------------------------------------------------- -Wed Jun 27 07:34:15 UTC 2012 - aj@suse.de - -- Testsuite is ok to fail on arm - -------------------------------------------------------------------- -Tue Jun 26 07:11:49 UTC 2012 - aj@suse.de - -- Update to glibc 2.15 branch (git id b640404bd8c9): - * Fix fmod implementation that returned NaN for some values. - * Fix strcase_cmp_l x86 multiarch implementation. - * Remove glibc-2.15-avx2.patch, merged now. - -------------------------------------------------------------------- -Thu Jun 21 11:44:59 UTC 2012 - aj@suse.de - -- Fix Bogus FP exception on underflow for exp(double) (bnc#767956) - -------------------------------------------------------------------- -Mon Jun 18 11:04:37 UTC 2012 - aj@suse.de - -- Remove nscd.socket since nscd does not support socket - activation. - -------------------------------------------------------------------- -Wed Jun 13 11:07:15 UTC 2012 - aj@suse.de - -- Build power3 libs on 32-bit PowerPC (bnc#765165). - -------------------------------------------------------------------- -Wed May 23 20:00:55 UTC 2012 - aj@suse.de - -- Update to current git of glibc 2.15 branch: - * obsoletes glibc-2.16-avx.patch, - glibc-2.16-fix-check-localplt.patch - * Fixes for math functions. - -------------------------------------------------------------------- -Wed May 23 11:51:02 UTC 2012 - aj@suse.de - -- Fix first_weekday for tr_TR locale (tr_TR.patch) - -------------------------------------------------------------------- -Wed May 16 08:37:57 UTC 2012 - schwab@linux-m68k.org - -- Fix confstr use of local buffer outside its extent - -------------------------------------------------------------------- -Wed May 9 07:30:36 UTC 2012 - aj@suse.de - -- Split out glibc-armhf-compat.patch from armhf-ld-so.patch. -- Run nscd in the foreground with systemd (glibc-nscd-foreground-patch) - -------------------------------------------------------------------- -Tue May 8 14:00:52 UTC 2012 - aj@suse.de - -- Refresh glibc-2.16-avx.patch and handle FMA4. - -------------------------------------------------------------------- -Thu May 3 11:05:36 UTC 2012 - aj@suse.de - -- Fix dynamic linker name for ARMv5. - -------------------------------------------------------------------- -Thu Apr 26 14:02:37 UTC 2012 - aj@suse.de - -- Fix mcheck (optimization problem with gcc 4.7) - -------------------------------------------------------------------- -Wed Apr 25 10:40:20 UTC 2012 - aj@suse.de - -- Also check for armv7hl. - -------------------------------------------------------------------- -Wed Apr 25 08:47:22 UTC 2012 - adrian@suse.de - -- provide old ld-linux.so.3 on armv7, not catched by find.provides - -------------------------------------------------------------------- -Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de - -- gcc 4.7 does not build crt files properly on powerpc64, backport - patch from upstream to handle this - (glibc-2.16-powerpc-initfini.patch) - -------------------------------------------------------------------- -Fri Apr 20 18:28:18 UTC 2012 - aj@suse.de - -- Disable patch x86-cpuid-level2.patch, this should be fixed in - valgrind now. - -------------------------------------------------------------------- -Thu Apr 19 11:12:43 UTC 2012 - aj@suse.de - -- Reorder patches, refresh to apply cleanly with -p1. - -------------------------------------------------------------------- -Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de - -- Build profiled libs only for base. -- Cleanup patches. -- Remove glibc-2.14-fix-ctors.patch, we have proper support in - binutils now. - -------------------------------------------------------------------- -Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de - -- The dynamic linker for armv7 hardware float is called - /lib/ld-linux-armhf.so.3. Provide symlink for old location. - -------------------------------------------------------------------- -Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de - -- Build for power4 only, don't support power3 anymore. -- Add option to build glibc a bit more quickly for testing purposes. -- Remove disabled patch glibc-revert-netlink-cache.patch. -- Start renumbering patches. - -------------------------------------------------------------------- -Mon Apr 16 14:31:38 UTC 2012 - aj@suse.de - -- Do not build locales and profile for i686 since we only ship - the base and glibc-devel packages. - -------------------------------------------------------------------- -Fri Apr 13 09:35:49 UTC 2012 - aj@suse.de - -- Fix check-abi to succeed. -- Use feof_unlocked in glibc-2.3.90-bindresvport.blacklist.diff. -- Make x86 to be elf/check-localplt clean again -- Refresh some patches to apply without fuzz. - -------------------------------------------------------------------- -Fri Apr 6 09:19:11 UTC 2012 - aj@suse.de - -- Disable building with as-needed since it breaks glibc - (testsuite will fail, even if testsuite does not use as-needed) - -------------------------------------------------------------------- -Thu Apr 5 18:48:06 UTC 2012 - aj@suse.de - -- Another fix for dynamic linking. - -------------------------------------------------------------------- -Thu Apr 5 18:22:36 UTC 2012 - aj@suse.de - -- Properly fix dl_lookup_x crash (glibc-fix-noload.patch), disable - glibc-fix-lookup-crash.patch. - -------------------------------------------------------------------- -Mon Apr 2 09:30:24 UTC 2012 - aj@suse.de - -- Fix building on Armv5 (glibc-add-arm-dependency-libmemusage.patch) - -------------------------------------------------------------------- -Thu Mar 29 07:51:43 UTC 2012 - aj@suse.de - -- Fix crash when nscd is not running (bnc#741021) properly - and disable patch glibc-revert-netlink-cache.patch - -------------------------------------------------------------------- -Fri Mar 23 11:07:32 UTC 2012 - aj@suse.de - -- Fix path for nss_db (bnc#753657). - -------------------------------------------------------------------- -Thu Mar 22 09:41:48 UTC 2012 - aj@suse.de - -- Fix LD_PROFILE invocation. - -------------------------------------------------------------------- -Wed Mar 21 08:45:12 UTC 2012 - aj@suse.de - -- Fix cycle detection in loading of dynamic objects. - -------------------------------------------------------------------- -Wed Mar 14 08:26:52 UTC 2012 - aj@suse.de - -- Update getaddrinfo-ipv6-sanity.diff (bnc#684534). - -------------------------------------------------------------------- -Fri Mar 2 17:01:55 UTC 2012 - aj@suse.de - -- vfprintf: validate nargs and maybe allocate from heap (bnc#747768) - -------------------------------------------------------------------- -Tue Jan 31 13:20:37 UTC 2012 - aj@suse.de - -- Fix checks for AVX (patch glibc-2.16-avx.patch) - -------------------------------------------------------------------- -Tue Jan 31 09:44:07 UTC 2012 - aj@suse.de - -- Use Linux 2.6.32 on x86_64 as oldest supported kernel - -------------------------------------------------------------------- -Tue Jan 31 08:57:15 UTC 2012 - aj@suse.de - -- Fix relocation ordering to fix ifunc crash (bnc#740109). - -------------------------------------------------------------------- -Sun Jan 29 22:47:18 CET 2012 - dmueller@suse.de - -- set abi back to gnueabi for ARM (regression from Jan 12) - -------------------------------------------------------------------- -Wed Jan 18 09:29:24 UTC 2012 - aj@suse.de - -- Update license strings in spec file. - -------------------------------------------------------------------- -Mon Jan 16 13:19:43 UTC 2012 - aj@suse.de - -- Split up new subpackage glibc-extra and move makedb with its - dependency on libselinux to it. (bnc#741525) -- Use lua script for verifyscript to not have a dependency on bash - -------------------------------------------------------------------- -Thu Jan 12 15:42:36 UTC 2012 - aj@suse.de - -- Disable netlink caching (bnc#741021). - -------------------------------------------------------------------- -Thu Jan 12 11:01:41 UTC 2012 - aj@suse.de - -- Use _target_cpu instead of _build and _host. This makes the - i686 library really build for i686. - -------------------------------------------------------------------- -Tue Jan 10 12:31:14 UTC 2012 - aj@suse.de - -- Remove all math ifuncs on x86-64. - -------------------------------------------------------------------- -Tue Jan 10 09:53:58 UTC 2012 - aj@suse.de - -- Remove math ifuncs that cause crashes in apache2 and - gdk-pixbuf-query-loaders-64 (bnc#740109) for now - (glibc-2.15-math64crash.patch). -- nscd needs the same glibc version, add require. - -------------------------------------------------------------------- -Mon Jan 9 08:17:08 UTC 2012 - aj@suse.de - -- Fix realloc usage in vfscanf (glibc-2.16-scanf.patch) -- Fix getcontext on powerpc 32-bit (glibc-ppc-getcontext.patch) - -------------------------------------------------------------------- -Wed Jan 4 09:34:28 UTC 2012 - aj@suse.de - -- Remove patch glibc-2.3.4-gb18030-big5hkscs.diff.bz2 and - replace it by gb18030.patch.bz2 (synced with Fedora 16) - (bnc#743617). - -------------------------------------------------------------------- -Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de - -- Compile unwind-dw2-fde-glibc.c with -fno-strict-aliasing - (patch glibc-strict-aliasing.diff) -- Build on i686 a separate library for usage under Xen. - -------------------------------------------------------------------- -Tue Jan 3 15:36:12 UTC 2012 - aj@suse.de - -- Only use -mno-tls-direct-seg-refs on 32-bit x86, it's not needed - on x86-64. - -------------------------------------------------------------------- -Tue Jan 3 14:37:48 UTC 2012 - aj@suse.de - -- Cleanup spec file: - - experimental malloc is not experimental anymore and only option - (drop patch glibc-malloc-arena-max.diff) - - remove obsolete configure flags - -------------------------------------------------------------------- -Tue Jan 3 08:40:28 UTC 2012 - aj@suse.de - -- Update to 2ba92745c36e: - - Update copyright years - - Fix miscompilation of posix/regex_internal.c with GCC 4.7. - -------------------------------------------------------------------- -Tue Jan 3 08:23:44 UTC 2012 - aj@suse.de - -- Revert pthread-cond-wait change for now since it causes hangs - (patch pthread-cond-wait-revert.patch). - -------------------------------------------------------------------- -Mon Dec 26 12:53:55 UTC 2011 - aj@suse.de - -- Update to c0da14cdda1f (glibc-ports: 8a70b2dcabbf): - - new locales - - many bugfixes - - glibc 2.15 - - obsoletes tzfile-corruption-fix.patch, - glibc-2.14-32args-printf.patch - -------------------------------------------------------------------- -Thu Dec 21 15:16:42 CET 2011 - meissner@suse.de - -- Do not mention the buildtime anymore to make build-compare work. - -------------------------------------------------------------------- -Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de - -- Fix timezone loader overflow (bnc#735850,CVE-2009-5029) (patch - tzfile-corruption-fix.patch) - -------------------------------------------------------------------- -Mon Dec 5 09:29:32 UTC 2011 - aj@suse.de - -- Update to 52ad36a21973 (glibc-ports: 4a40b38f6355): - * fix many warnings - * bugfixes - * obsolete patches glibc-strict-aliasing.diff and - glibc-arm-clone-unwind-fix.diff - - -------------------------------------------------------------------- -Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com - -- fix printf with many args and printf arg specifiers (bnc#733140) - -------------------------------------------------------------------- -Thu Nov 24 14:02:55 UTC 2011 - aj@suse.de - -- Updated glibc-ports-2.14.1.tar.bz2 from ftp.gnu.org. - -------------------------------------------------------------------- -Thu Nov 24 09:25:14 UTC 2011 - aj@suse.com - -- Create glibc-devel-static baselibs (bnc#732349). - -------------------------------------------------------------------- -Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de - -- Remove duplicated locales from glibc-2.3.locales.diff.bz2 - -------------------------------------------------------------------- -Tue Nov 15 12:49:56 UTC 2011 - aj@suse.de - -- nscd now monitors resolv.conf, so simplify glibc-2.4.90-nscd.diff - patch and re-enable it -- Adjust and re-enable glibc-2.3.3-nscd-db-path.diff - -------------------------------------------------------------------- -Tue Nov 15 12:10:32 UTC 2011 - aj@suse.de - -- Update to 09f93bd3d6b1: - - Clean up internal fopen uses to always use close-on-exec - - Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32 - - bugfixes - -------------------------------------------------------------------- -Mon Nov 14 12:02:06 CET 2011 - ro@suse.de - -- check-build.sh: accept kernel 3.x - -------------------------------------------------------------------- -Tue Nov 8 22:55:40 CET 2011 - dmueller@suse.de - -- make glibc-static provide versioned - -------------------------------------------------------------------- -Tue Nov 8 18:20:39 CET 2011 - dmueller@suse.de - -- fix building with ports again: - * ifuncs tracing backport requires adjustments - -- avoid using asynchronous-unwind-tables only during configure, - but still built the library with unwind tables enabled -- replace arm build hack with a proper solution - ------------------------------------------------------------------- -Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de - -- update glibc-ports to 2.14.1: - * Align the constant pool in start.S to 4 bytes. - * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. -- Fix unwinding crash when using clone() - -------------------------------------------------------------------- -Wed Nov 2 13:52:36 UTC 2011 - aj@suse.de - -- Update to d35dce5213b3: - - caching of network information for getaddrinfo - - bugfixes - -------------------------------------------------------------------- -Sat Oct 29 18:37:46 UTC 2011 - aj@suse.de - -- Update to 21b64b153631: - - various bugfixes - -------------------------------------------------------------------- -Thu Oct 27 08:44:14 UTC 2011 - aj@suse.de - -- Update to 804791474dc1: - - more libm optimizations -- Remove AMD libm routines due to new upstream libm optimizations - and interfaces. -- Fix build on x86. - -------------------------------------------------------------------- -Mon Oct 24 19:02:46 UTC 2011 - aj@suse.de - -- Update to a201fbcf9cc3: - - More libm optimizations - - Optimize wcslen, strnlen - -------------------------------------------------------------------- -Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de - -- Ignore failure of chkstat (bnc#725145). - -------------------------------------------------------------------- -Wed Oct 19 12:07:41 UTC 2011 - aj@suse.de - -- Provide glibc-static from glibc-devel-static to make packaging - easier. glibc-static is the Fedora name. - -------------------------------------------------------------------- -Tue Oct 18 07:42:40 UTC 2011 - aj@suse.de - -- Update to glibc head 99ce7b04edf1: - - Optimize many libm functions - - Optimize access to isXYZ and toXYZ tables - - Optimized memcmp and wmemcmp for x86-64 and x86-32 - - Add parameter annotation to modf - - Support optimized isXXX functions in C++ code - - Optimized memchr, memrchr, rawmemchr for x86-32 - - Add nscd netgroupcache -- Disable libm-x86-64.diff.bz2 since it needs changes following the - libm optimzations. - -------------------------------------------------------------------- -Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de - -- Remove fma, fmaf from libm-x86-64.diff.bz2, they are not accurate - (bso#13304). - -------------------------------------------------------------------- -Tue Oct 11 09:51:46 UTC 2011 - aj@suse.de - -- Update to current git 4f2b767fef50 - * Correctly reparse group line after enlarging the buffer - * 2.14.1 release - -------------------------------------------------------------------- -Mon Oct 10 14:07:44 UTC 2011 - aj@suse.de - -- Fix tracing with ifuncs. - -------------------------------------------------------------------- -Tue Oct 4 14:10:13 UTC 2011 - uli@suse.com - -- cross-build: use %__cc, %__cxx, %_build, %_host -- mipsel: install ports, disable FP - -------------------------------------------------------------------- -Fri Sep 30 17:14:04 CEST 2011 - dmueller@suse.de - -- avoid build failure on %%arm - -------------------------------------------------------------------- -Thu Sep 29 12:58:59 UTC 2011 - aj@suse.de - -- Update to 68577918437e: - * Obsoleted patches: glibc-gconvcache-s390.diff, - glibc-2.3.5-nscd-zeronegtimeout.diff, - glibc-x86-bits-sigcontext.patch, - glibc-2.15-getsysstats-speedup.patch, glibc-2.13-warnings.fix, - glibc-2.13-localedef.patch, - glibc-fix-rwlock-stack-imbalance.patch, glibc-2.15-vsyscall.patch, - glibc-2.15-avoid-vsyscall.patch - -------------------------------------------------------------------- -Thu Sep 29 07:40:25 UTC 2011 - adrian@suse.de - -- just use %arm for right arm architectures - -------------------------------------------------------------------- -Tue Sep 27 11:24:02 UTC 2011 - aj@suse.de - -- Update to 2.14 git version 8bd683657e8a, it contains backports from - glibc trunk: - + Avoid race between {,__de}allocate_stack and __reclaim_stacks - during fork -- Add glibc-2.14-fix-ctors.patch to run ctors (bnc#717671), gcc 4.6 - optimized these away. - -------------------------------------------------------------------- -Mon Sep 26 12:30:09 UTC 2011 - adrian@suse.de - -- don't use -fasynchronous-unwind-tables on arm, it breaks the build - -------------------------------------------------------------------- -Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de - -- fix ports build - -------------------------------------------------------------------- -Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de - -- don't enforce armv5tel for all arm architectures anymore -- armv8l architecture does not exist - -------------------------------------------------------------------- -Tue Sep 20 07:54:21 UTC 2011 - aj@suse.de - -- Cleanup spec file: remove some tags - -------------------------------------------------------------------- -Mon Sep 19 08:09:40 UTC 2011 - opensuse@cboltz.de - -- move usr.sbin.nscd apparmor profile back to apparmor-profiles package - (bnc#647718) - -------------------------------------------------------------------- -Mon Sep 19 07:45:36 UTC 2011 - aj@suse.de - -- Update to 2.14 git version 69c1dfc1a796, it contains backports from - glibc trunk: - + Fix setxid race handling exiting threads - + Fix cfi directives in x86-64 and i386 code - + Fix scope handling during dl_close - + Fix spurious nop at start of __strspn_ia32 - + Correct cycle detection during dependency sorting - + Fix fopen (non-existing-file, "re") errno (Obsoletes patch - fopen-close-exec.patch) - -------------------------------------------------------------------- -Fri Sep 16 11:20:29 UTC 2011 - mmarek@suse.cz - -- Fix assertion error in res_query.c, triggered by Firefox - (bso#13013). - -------------------------------------------------------------------- -Wed Sep 7 07:17:16 UTC 2011 - aj@suse.de - -- Avoid usage of vsyscalls inside glibc. - -------------------------------------------------------------------- -Tue Sep 6 09:53:24 CEST 2011 - aj@suse.de - -- Prefer real syscalls instead of vsyscalls on x86-64 outside - libc.so - -------------------------------------------------------------------- -Mon Sep 5 10:06:23 UTC 2011 - aj@suse.de - -- Do not not trigger an abort when an i586 Intel CPU is running the - i686 library, as valgrind does. [bnc#681398] - -------------------------------------------------------------------- -Mon Sep 5 08:26:24 UTC 2011 - aj@suse.de - -- Readd vdso support. -- Add patch to relocate objects in dependency order, this fixes the - vdso support. - -------------------------------------------------------------------- -Sat Sep 3 19:39:03 UTC 2011 - aj@suse.de - -- Revert last change, it caused some breakage. [bnc#715854] - -------------------------------------------------------------------- -Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de - -- Add support for new vdso (3.1 kernel) and only then - for vsyscall which is not anymore in 3.1 kernel - (patch glibc-2.15-vsyscall.patch) - -------------------------------------------------------------------- -Thu Aug 25 09:44:37 UTC 2011 - lnussel@suse.de - -- use symbol version OW_CRYPT_1.0 for the Owl extensions - (crypt_r[an], crypt_gensalt.*) -- refactor sha2 gensalt patch -- document sha2 hashes in man page - -------------------------------------------------------------------- -Mon Aug 22 13:12:18 UTC 2011 - aj@suse.de - -- Update AppArmor profile of nscd [bnc#647718] - -------------------------------------------------------------------- -Fri Aug 19 13:26:11 UTC 2011 - aj@suse.de - -- Fix fopen("non-existing-file", "re") errno [bnc#713146]. - -------------------------------------------------------------------- -Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de - -- Mark glibc-info, glibc-html and glibc-i18ndata as noarch packages. - -------------------------------------------------------------------- -Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de - -- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] - -------------------------------------------------------------------- -Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de - -- Enhance rpmlintrc to ignore shlib policy violation. -- Remove obsolete patches glibc-fnmatch-multibyte.diff, - glibc-2.3.1.localedef.diff, glibc-2.10-nscd-nostack.diff. - -------------------------------------------------------------------- -Wed Aug 17 14:47:11 UTC 2011 - aj@suse.de - -- Update to current 2.14 branch: Various bugfixes. - Remove upstreamed patches missing-include-build-fix.diff, - glibc-2.14-res_send.patch, glibc-dl-fxstatat64.patch) - -------------------------------------------------------------------- -Wed Aug 17 14:09:50 UTC 2011 - aj@suse.de - -- Revert removal of sunrpc code (patch glibc2.14-revert-sunrpc-removal.patch). - -------------------------------------------------------------------- -Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de - -- Revert seeking on fclose, incomplete implementation of POSIX - behaviour can confuse current users. [bnc #711829] - (patch glibc-revert-fseek-on-fclose.diff) - -------------------------------------------------------------------- -Fri Jul 22 13:47:23 UTC 2011 - lnussel@suse.de - -- fix signature of sha2 functions - -------------------------------------------------------------------- -Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de - -- Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. - (bnc#684534, bnc#706719) - (patch glibc-fix-double-loopback.diff) - -------------------------------------------------------------------- -Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de - -- install crypt_blowfish man pages - -------------------------------------------------------------------- -Tue Jul 19 12:19:22 UTC 2011 - aj@suse.de - -- Back to old glibc-2.2-sunrpc.diff for now. - -------------------------------------------------------------------- -Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de - -- update crypt_blowfish to version 1.2 (bnc#700876) - * due to the signedness bug fix 2a hashes are incompatible with - previous versions if the password contains 8bit chracters! - * libcrypt now exports crypt_gensalt - -------------------------------------------------------------------- -Fri Jul 15 07:54:46 UTC 2011 - aj@suse.de - -- Update to glibc 2.14: - * The RPC implementation in libc is obsoleted. Old programs keep working - but new programs cannot be linked with the routines in libc anymore. - Programs in need of RPC functionality must be linked against TI-RPC. - The TI-RPC implementation is IPv6 enabled and there are other benefits. - * Various bugfixes, new locales, new linux kernel interfaces. - * New program sotruss to traces calls through PLTs - * Removed the following obsoleted patches: glibc-2.6-configure.diff, - glibc-disable-backward-memcpy.diff, glibc-static-memcpy.diff, - glibc-zarch-longlong.diff, glibc-bso-12454.diff, - glibc-vfprintf-positional.diff -- Build without -fno-strict-aliasing. - -------------------------------------------------------------------- -Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de - -- Remove ppc-atomic.diff after discussion with glibc PPC experts - since it does not bring any real benefit. - -------------------------------------------------------------------- -Thu Jul 7 14:50:15 UTC 2011 - aj@suse.de - -- Update glibc-2.2-sunrpc.diff with newer patch from sourceware - bugzilla (bs#bso#5379). - -------------------------------------------------------------------- -Wed Jul 6 08:24:45 UTC 2011 - lnussel@suse.de - -- enable glibc-2.8-getconf.diff again to fix build failure - -------------------------------------------------------------------- -Tue Jul 5 20:22:50 UTC 2011 - aj@suse.de - -- Add systemd configuration for nscd. - -------------------------------------------------------------------- -Tue Jul 5 08:03:26 UTC 2011 - aj@suse.de - -- Remove glibc-statfs64-ia64.diff since current ia32el has the bug - fixed. -- Remove glibc-ppc64-vdso-time.diff (bnc#590216). - -------------------------------------------------------------------- -Mon Jul 4 10:00:46 UTC 2011 - aj@suse.de - -- Further cleanup of ld.so.conf to remove duplicate directories - and allow override of system directories (bnc#671725) -- Fix futex bug (added patch glibc-fix-rwlock-stack-imbalance.patch - from sourceware bug #12403). - -------------------------------------------------------------------- -Fri Jul 1 16:09:14 UTC 2011 - aj@suse.de - -- Remove glibc-2.10.99-ia64-include.diff, it's not needed anymore. -- Disable obsolete patches glibc-fnmatch-multibyte.diff, - glibc-2.10-nscd-nostack.diff, glibc-2.3.1.localedef.diff -- Add glibc-2.13-localedef.patch to fix alignment problem. -- Adjust glibc-version.diff, FLOATING_STACKS variable is obsolete. - -------------------------------------------------------------------- -Thu Jun 30 12:17:33 UTC 2011 - aj@suse.de - -- Remove old ARM patches as it's unclear why those are needed and arm - support is anyhow broken according to comments here and in spec - files. - -------------------------------------------------------------------- -Thu Jun 30 11:22:02 UTC 2011 - aj@suse.de - -- Back to kernel 2.6.16 as minimal kernel version. - -------------------------------------------------------------------- -Tue Jun 28 12:30:34 UTC 2011 - aj@suse.de - -- Only apply glibc-statfs64-ia64.diff on SLE but not on openSUSE. - -------------------------------------------------------------------- -Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de - -- Disable exp_malloc on PPC platforms for now since it caused a - build failure. - -------------------------------------------------------------------- -Mon Jun 27 11:00:33 UTC 2011 - aj@suse.de - -- Update glibc-x86-bits-sigcontext.patch with version accepted - upstream. -- Add glibc-2.15-getsysstats-speedup.patch to "Fix Linux - sysconf(_SC_NPROCESSORS_[CONF|ONLN]) performance problem" -- Fix warning about potential array subscript out of bounds - (glibc-2.13-wranings.fix). -- Fix some rpmlint warnings. - -------------------------------------------------------------------- -Tue Jun 21 10:59:33 UTC 2011 - aj@suse.de - -- Cleanup spec file, change PreReqs. -- Remove obsolete patches: glibc-2.3.90-ld.so-madvise.diff, - glibc-suse-note.diff, glibc-2.3-regcomp.diff. -- Rename glibc-2.3-SuSE.diff to glibc-testsuite.patch, remove obsolete - parts. - -------------------------------------------------------------------- -Mon Jun 20 12:47:46 UTC 2011 - aj@suse.de - -- Enhance rpmlintrc. -- move summary,license and group out of the not-ppc if (by Marcus - Meissner). - -------------------------------------------------------------------- -Mon Jun 20 11:02:01 UTC 2011 - aj@suse.de - -- Remove PreReq on permissions to avoid a cycle that gives leads to - an uninstallable system (bnc#700925). -- Fix on x86 - fixes scpm compilation - (bnc#700784). - -------------------------------------------------------------------- -Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de - -- Cleanup ld.so.conf list, move kde directories to - kdelibs3 (bnc#671725). - -------------------------------------------------------------------- -Fri Jun 17 07:07:37 UTC 2011 - aj@suse.de - -- Do not package memusage and memusagestat since they require - lib-gd and that grows the build cycle. - -------------------------------------------------------------------- -Thu Jun 16 18:37:19 UTC 2011 - aj@suse.de - -- Fix handling of shared library preloading. - -------------------------------------------------------------------- -Thu Jun 16 13:33:23 UTC 2011 - aj@suse.de - -- Fix getaddrinfo IPv6 code (bnc#684534). -- Split up glibc-devel-static subpackage (bnc#655261). - -------------------------------------------------------------------- -Thu Jun 16 12:23:32 UTC 2011 - aj@suse.de - -- Reorder ld.so.conf library list (bnc#671725). - -------------------------------------------------------------------- -Wed Jun 15 07:08:35 UTC 2011 - aj@suse.de - -- Split up package glibc-utils with some debugging tools, add memusage - and memusagestat programs -- Fix compile warnings. -- Silence some rpmlint warnings. -- Remove obsolete patches glibc-2.3.2-revert_tcsetattr.diff, - glibc-2.8-clone.diff, glibc-nptl-2.4-nofixsyscallnr.diff -- Cleanup spec file. -- Use new permission handling for pt_chown. -- Build without -fno-strict-aliasing. - -------------------------------------------------------------------- -Mon Jun 6 14:19:26 UTC 2011 - aj@suse.de - -- Fix typos in /etc/gai.conf (bnc#651912). - -------------------------------------------------------------------- -Fri Jun 3 08:40:55 UTC 2011 - aj@suse.de - -- Use 2.6.5 as oldest supported kernel on all archs besides x86 and - x86-64 (reverting partially a change). - -------------------------------------------------------------------- -Fri May 27 11:55:35 UTC 2011 - aj@suse.de - -- Remove patches that are not needed anymore: - * glibc-selinux.diff - * glibc-check-native-missing-include.diff - * glibc-2.3.3-execstack.diff -- Disable the following patches, they look obsolete by now but leave them - in to easy enable them again: - * glibc-2.3-SuSE.diff - * glibc-2.3-regcomp.diff - * glibc-2.8-clone.diff - * glibc-2.3.2-revert_tcsetattr.diff -- Do not package glibc-obsolete with empty directory on archs that - don't need it. - -------------------------------------------------------------------- -Thu May 26 07:53:51 UTC 2011 - aj@suse.de - -- Add glibc-static-memcpy.diff to fix static compiles. - -------------------------------------------------------------------- -Wed May 25 15:28:37 UTC 2011 - aj@suse.de - -- Run on kernel 2.6.32 or newer only - and optimize thus. -- Enable malloc implementation that is be less memory efficient - but higher performing in multi-threaded programs. -- Use --enable-bind-now to avoid lazy binding in ld.so - and libc.so - -------------------------------------------------------------------- -Wed May 25 14:38:58 UTC 2011 - aj@suse.de - -- Add glibc-bso-12454.diff to not create assert running dynamic linker - in some cases. -- Disable backwards memcpy for x86-64. - -------------------------------------------------------------------- -Wed May 25 07:59:27 UTC 2011 - aj@suse.de - -- Add glibc-dl-signal-error.diff to not crash the dynamic linker - if dependencies are missing. - -------------------------------------------------------------------- -Mon May 23 08:44:47 UTC 2011 - rguenther@novell.com - -- Update longlong.h from GCC sources. Fixes s390 build with -mzarch. - [bnc#695102] - -------------------------------------------------------------------- -Fri May 20 14:45:44 UTC 2011 - aj@suse.de - -- Fix obsoletes and provides. -- Update to glibc 2.13 -- Drop ld-prelink-unique.diff, it is part of 2.13. - -------------------------------------------------------------------- -Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz - -- Fix potential removal of required local scope from shared objects - marked as NODELETE [bnc#657627] - -------------------------------------------------------------------- -Fri Feb 4 00:46:40 CET 2011 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.3-b72646ad0c41 - - Random assortion of bugfixes, some #defines for new kernels -- Retired patches: - - glibc-2.11.3-bnc658509.diff - - glibc-2.11.3-bso12397.diff - - glibc-sparc64-fxstat.diff -- Remove the NSS hack of opening modules using RTLD_DEEPBIND. - This was useful for nss_ldap, since some applications used a different - LDAP library with clashing symbol names. However, it also created - many headaches, especially with the NSS modules not respecting - malloc() overrides. Now, sssd is used by default for LDAP resolutions - and we can therefore safely get rid of the hack. [bnc#477061] -- Remove the currently disabled AMD string function overrides. - Benchmarking did not unearth any differences that would make - convincing case for keeping the functions with all the associated - maintenance headaches; AMD does not recommend keeping their custom - versions of the functions either. -- Introduce MALLOC_ARENA_MAX and M_ARENA_MAX support [bnc#659090] -- Fixed stack unwinding past glibc _fini function (proper showing - of destructor backtraces) [bnc#585879] -- Fix gconv cache generation on s390 [bnc#592944] -- Add missing iconvconfig for refreshing gconv.cache to glibc-locale %post -- Fixed stack corruption in *printf() with large number of positional - specifiers [bnc#666179] - -------------------------------------------------------------------- -Fri Jan 28 14:53:35 UTC 2011 - rguenther@novell.com - -- Fix ENOSYS detection for mkdirat. [bso#12397] - -------------------------------------------------------------------- -Thu Dec 9 12:33:35 UTC 2010 - rguenther@novell.com - -- Drop restrict qualifiers from memmove and bcopy fortify wrappers. - [bnc#658509] - -------------------------------------------------------------------- -Tue Nov 30 01:53:42 CET 2010 - pbaudis@suse.cz - -- Upgrade to glibc-2.11.3 - - Just few more bugfixes since the latest upgrade - -------------------------------------------------------------------- -Tue Nov 16 04:03:01 CET 2010 - pbaudis@suse.cz - -- Remove explicit support for nss SPLIT_GROUPS setting; glibc from - 2.11 on should handle this automagically. - -------------------------------------------------------------------- -Mon Nov 15 18:43:35 CET 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.2-dd2fde461e30 - - Candidate tree for glibc-2.11.3 - - Multitude of various bug fixes - -------------------------------------------------------------------- -Mon Nov 15 18:29:49 CET 2010 - pbaudis@suse.cz - -- Enable multi-arch routines support for ppc, ppc64, i686 and x86_64. - - Temporarily, AMD-optimized string routines are disabled. We will - selectively re-enable them after some more careful benchmarking - in the next few days. - - Note: In this glibc version, multi-arch routines DO NOT include - the controversial backwards-copy memcpy(). - -------------------------------------------------------------------- -Wed Oct 27 03:14:37 CEST 2010 - pbaudis@suse.cz - -- Fix missing hconf setup in nscd - this meant `multi on` in - /etc/host.conf was ignored when nscd was used, breaking e.g. - resolving of multi-AF records in /etc/hosts [bnc#572188] -- Fix two LD_AUDIT security vulnerabilities: spurious $ORIGIN expansion - and missing setuid library check when running as setuid [bnc#646960] - -------------------------------------------------------------------- -Mon Sep 13 14:36:26 UTC 2010 - aj@suse.de - -- Fix build in manual with make 3.82. - -------------------------------------------------------------------- -Sun Sep 12 08:00:57 UTC 2010 - aj@suse.de - -- Work around shortest-stem feature in make 3.82+ (patch - glibc-make-3.82.patch) - -------------------------------------------------------------------- -Wed Jul 7 04:12:05 CEST 2010 - pbaudis@suse.cz - -- Fix NIS-compat initgroups routine to work reliably over multiple - invocations [bnc#607064] - -------------------------------------------------------------------- -Thu Jul 1 19:52:56 UTC 2010 - jengelh@medozas.de - -- SPARC: restore fxstat functionality in sparc64 mode - -------------------------------------------------------------------- -Sat Jun 26 10:26:17 UTC 2010 - jengelh@medozas.de - -- Use %_smp_mflags - -------------------------------------------------------------------- -Fri Jun 11 15:41:07 CEST 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.2-21580967038a - - Fix buggy x86 CPU family and model check - - Fix sunrpc error condition handling - - Fix crash on unresolved weak symbol reference - -------------------------------------------------------------------- -Tue Jun 1 03:38:28 CEST 2010 - pbaudis@suse.cz - -- Fix ldconfig -r failing on aux cache [bnc#609345] - -------------------------------------------------------------------- -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 - -- Handle /var/run on tmpfs - -------------------------------------------------------------------- -Mon Apr 26 22:09:40 CEST 2010 - pbaudis@suse.cz - -- Remove stale resolv.dynamic.diff patch file - -------------------------------------------------------------------- -Thu Apr 22 08:30:50 CEST 2010 - meissner@suse.de - -- for powerpc32 build a generic library and also a power4 library - to allow older 32bit powerpc to work. bnc#596271 - -------------------------------------------------------------------- -Tue Apr 20 13:15:19 CEST 2010 - pbaudis@suse.cz - -- Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] - -------------------------------------------------------------------- -Wed Mar 24 13:04:12 CET 2010 - pbaudis@suse.cz - -- Fix get_nprocs() large CPU count handling [bnc#590665] - -------------------------------------------------------------------- -Tue Mar 23 15:09:09 CET 2010 - pbaudis@suse.cz - -- Fix interference of STB_GNU_UNIQUE and prelink [bnc#586979] -- Make time() use VDSO on PPC64 [bnc#590216] -- Make pthread_cond_timedway() use VDSO on PPC64 [bnc#590517] - -------------------------------------------------------------------- -Thu Mar 18 14:45:34 CET 2010 - pbaudis@suse.cz - -- Add PreReq for cat to glibc-locale [bnc#588997] - -------------------------------------------------------------------- -Thu Mar 18 14:29:42 CET 2010 - pbaudis@suse.cz - -- Fix /etc/resolv.conf change detection for multi-threaded applications - (by Sebastian Kienzl) - -------------------------------------------------------------------- -Fri Mar 5 12:59:44 CET 2010 - pbaudis@suse.cz - -- Fix spurious mapping from lowercase sharp s to uppercase sharp S - which is less standard and causes problems for ISO encodings [bnc#541773] - -------------------------------------------------------------------- -Mon Mar 1 18:55:37 CET 2010 - pbaudis@suse.cz - -- Fix spurious overflow messages on some R_X86_64_PC32 relocations, - patch by Richard Guenther [bnc#583019] - -------------------------------------------------------------------- -Wed Feb 24 11:53:41 CET 2010 - pbaudis@suse.cz - -- Fix assertion failures within valloc(), patch by Michael Matz - [bnc#581391] - -------------------------------------------------------------------- -Wed Feb 17 12:02:24 CET 2010 - pbaudis@suse.cz - -- S/390: Disable two UTF conversion instructions due to the hardware - mishandling some error conditions in the input stream [bnc#579871] - -------------------------------------------------------------------- -Mon Feb 15 22:34:29 CET 2010 - pbaudis@suse.cz - -- Further fix previous power5 fix - -------------------------------------------------------------------- -Sun Feb 14 15:33:33 CET 2010 - rguenther@suse.de - -- avoid spurious differences in nscd on rebuilds. - -------------------------------------------------------------------- -Thu Feb 11 21:36:32 CET 2010 - pbaudis@suse.cz - -- Fix another upgrade problem on power5 and older - correctly remove - the old optimized libraries; found out by matz@suse.de [bnc#563978] - -------------------------------------------------------------------- -Fri Feb 5 21:07:54 CET 2010 - pbaudis@suse.cz - -- Final fix for memchr() overflow on IA64 provided by upstream - [bnc#567516] - -------------------------------------------------------------------- -Thu Jan 28 17:11:59 CET 2010 - pbaudis@suse.cz - -- Fix another memchr() overflow on IA64; another known one still - remains a mystery [bnc#567516] - -------------------------------------------------------------------- -Wed Jan 27 02:49:46 CET 2010 - pbaudis@suse.cz - -- Remove now-obsolete powerpc-cpu addon usage [bnc#572819] -- Fix statfs64() on IA64 in 32-bit mode ia32el [bnc#534828] - -------------------------------------------------------------------- -Tue Jan 26 03:33:38 CET 2010 - pbaudis@suse.cz - -- Fix upgrade from previous distributions on power5 and older [bnc#563978] - -------------------------------------------------------------------- -Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de - -- ignore power6, power7 and cell specific Power CPU optimizations - on openSUSE. - -------------------------------------------------------------------- -Tue Jan 19 02:42:40 CET 2010 - pbaudis@suse.cz - -- Disable AMD-optimized strncmp() on x86_64 that is getting miscompiled - by the assembler [bnc#540647] - -------------------------------------------------------------------- -Mon Jan 18 18:22:32 CET 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.1-11c19d374bd4 - - Just trivial changes - version bump to 2.11.1, NIS-related - resolver fixes, ELF lookup race, .h typo fix and regcomp - out-of-memory handling miss - - Few more bugfixes, weekday updated in three locales -- Retired patches: - glibc-ia64-memchr.diff - -------------------------------------------------------------------- -Mon Dec 14 23:49:33 CET 2009 - jengelh@medozas.de - -- add baselibs.conf as a source - -------------------------------------------------------------------- -Fri Dec 11 13:13:01 CET 2009 - jengelh@medozas.de - -- libnldbl_nonshared is only built for sparc32 - -------------------------------------------------------------------- -Tue Dec 8 20:50:26 CET 2009 - jengelh@medozas.de - -- package libnldbl_nonshared for SPARC - -------------------------------------------------------------------- -Fri Nov 20 01:55:16 CET 2009 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11-1bc1954c7357: - - This snapshot is slated to become 2.11.1 if all goes well - - Mix of fixes for various recently found out issues -- Retired patches: - glibc-ifunc-dlsym-fixup.diff -- [IA64] Fix memchr() on mmap(MAP_SHARED) boundary [fix lighttpd crashes] -- Again use 127.0.0.1 as default nameserver in case of empty - /etc/resolv.conf [bnc#473308] - -------------------------------------------------------------------- -Thu Nov 19 13:15:41 CET 2009 - pbaudis@suse.cz - -- Add 623 and 664 to /etc/bindresvport.blacklist to fix problems with - port conflict on some IPMI network cards [bnc#513961] -- Allow external additions to /usr/share/locale/locale.alias and - /usr/lib/gconv/gconv-modules, required for the SAP-locales package. -- Add delimiter in front of external additions to locale/gconv lists -- Remove AMD-provided strlen(), upstream is faster. - -- Keep .symtab and .strtab for all glibc-related .so libraries [FATE#307090] - [bnc#545721] -- [ppc,ppc64] Enable optimized builds for power7; no separate power4, power5 - builds are generated anymore, instead default glibc is built for power4 - at least, tuned for power5 execution [FATE#307021] -- Large clean-up of the specfile - -------------------------------------------------------------------- -Fri Nov 13 22:47:47 CET 2009 - pbaudis@suse.cz - -- Upgrade to Git HEAD as of 20091105 - glibc-2.11-13f6812ffb5b: - * New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps, - mkostemps64 - Implemented by Ulrich Drepper. - - * Checking version of longjmp added that fails if an uninitialized stack - frame would be created. Implemented by Ulrich Drepper. - - * STT_GNU_IFUNC is now supported in static executables. - Implemented by H.J. Lu. - - * STT_GNU_IFUNC implemented for PPC by Alan Modra. - - * New optimized string functions for x86-64: strstr, strcasestr, memcmp, - strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2), - strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2). - Contributed by H.J. Lu. - - strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3). - Implemented by Ulrich Drepper. - - * New optimized string functions for x86: strlen, strcspn, strspn, strpbrk, - strstr, strcasestr. - Contributed by H.J. Lu. - - * Support for fma instruction in AVX on x86-64. - Implemented by H.J. Lu and Ulrich Drepper. - - * AVX support in x86-64 auditing support in ld.so. - Implemented by H.J. Lu. - - * STB_GNU_UNIQUE support added. - Implemented by Ulrich Drepper. - - * Implement second fallback mode for optimized DNS lookup for even more - broken environments. If two requests from the same port are not - handled correctly close the socket and open a new one before sending - the second request. The 'single-request-reopen' option in /etc/resolv.conf - can be used to select this mode right away, instead of rediscovering the - necessity is every process again. - Implemented by Ulrich Drepper. - - * New resolver flag RES_USE_DNSSEC to enable use of verified lookup. - Implemented by Adam Tkac. - - * Optimized iconv conversions for S390x. - Implemented by Andreas Krebbel. - - * Using condvars with PI mutexes is now more efficient due to kernel - support for requeueing to PI futexes. NPTL support added for x86-64. - Implemented by Ulrich Drepper. - - * New locales: ps_AF, my_MM -- Retired patches: - glibc-utmp-timeout-raise.diff - glibc-nscd-assert.diff - glibc-2.10-mcheck-free-race.diff - glibc-nscd-prune-ret.diff -- Made ifunc compile on IA64 using patch by H.J.Lu -- Fixed compilation on PPC Cell -- Lowered utmp locking timeout from 30s to 10s to be compatible - with upstream -- Allow external additions to /usr/share/locale/locale.alias and - /usr/lib/gconv/gconv-modules, required for the SAP-locales package. -- Remove AMD-provided strlen(), upstream is faster. -- ARM is currently non-functional - -------------------------------------------------------------------- -Fri Nov 13 20:18:27 CET 2009 - pbaudis@suse.cz - -- Rediff patches to apply with fuzz 0 - -------------------------------------------------------------------- -Sat Sep 19 14:13:43 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-44dbdf3777 of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - -------------------------------------------------------------------- -Fri Sep 18 21:40:04 CEST 2009 - coolo@novell.com - -- add /etc/apparmor.d to the nscd file list - -------------------------------------------------------------------- -Mon Sep 14 23:53:20 CEST 2009 - pbaudis@suse.cz - -- define _filter_GLIBC_PRIVATE so that our glibc is not marked to - provide these symbols [bnc#468748] -- Fix exception behaviour of various libm functions by AMD optimized - for x86_64 [bnc#487576] - -------------------------------------------------------------------- -Tue Sep 8 13:15:04 CEST 2009 - pbaudis@suse.cz - -- Provide the /etc/apparmor.d/usr.sbin.nscd file [bnc#535467] -- Blowfish: Enable BF_SCALE even on x86_64 - -------------------------------------------------------------------- -Sat Sep 5 23:19:51 CEST 2009 - pbaudis@suse.cz - -- Raise utmp locking timeout from 1s to 30s to ensure logins get recorded - even on heavily loaded systems [bnc#486631] -- Fix invalid pointer handling in some nscd assertions and the code to send - data to the client [bnc#513617] -- Radically trim down the Blowfish support patch - keeps only crypt_blowfish - from the original OWL patch, but does the rest within the current glibc - crypt infrastructure [bnc#529495] - -------------------------------------------------------------------- -Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de - -- make patch0 usage consistent - -------------------------------------------------------------------- -Thu Aug 20 19:02:31 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-aa152ec6ad of release/2.10/master branch - (Still the same source is used for glibc-ports.) - random minor fixes - * REVERTED invalid fix of broken locking within nscd [bnc#510788] -- Fix nscd handling of zero negative timeout for some databases - [bnc#523154,bnc#510788] - -------------------------------------------------------------------- -Fri Jul 17 01:14:16 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-4253a1e0b2 of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - * Fix broken locking within nscd [bnc#510788] -- Fix compilation with 2.6.30 kernel headers on IA64 - -------------------------------------------------------------------- -Thu Jun 18 00:58:47 CEST 2009 - pbaudis@suse.cz - -- Fix a dead-lock introduced by the bnc#509398 fix -- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - -------------------------------------------------------------------- -Fri Jun 12 12:19:34 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - * Fix 100% CPU usage by Java apps because of bad futex calls [bnc#509096] - -------------------------------------------------------------------- -Mon Jun 8 17:58:50 CEST 2009 - pbaudis@suse.cz - -- Fix race condition in the mcheck free() hook [bnc#509398] - -------------------------------------------------------------------- -Fri Jun 5 00:46:59 CEST 2009 - pbaudis@suse.cz - -- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 - -------------------------------------------------------------------- -Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch - maintained by me at repo.or.cz; contains backports of various bugfixes. - (Still the same source is used for glibc-ports.) -- Stop using separate tarball for nptl. -- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. - -------------------------------------------------------------------- -Fri May 15 22:13:33 CEST 2009 - pbaudis@suse.cz - -- Add support for multiple group records for a single group - when using nss_compat (configurable in /etc/default/nss) [bnc#480991] - -------------------------------------------------------------------- -Sun May 10 21:42:37 CEST 2009 - pbaudis@suse.cz - -- Update to 2009051021, glibc-2.10.1: - * Add missing cacheinfo entry for a recent Intel processor - * Fix ABI issue with the gshadow interface - -------------------------------------------------------------------- -Sun May 10 11:20:12 CEST 2009 - pbaudis@suse.cz - -- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: - * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS - servers (the case e.g. for many ADSL users), you may experience long - timeouts, once for each process (but eventually your request will be - resolved) - the solution is to run nscd (default on SUSE) and/or - put 'options single-request' in /etc/resolv.conf. - - * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info - Implemented by Ulrich Drepper. - - * New Linux interfaces: accept4, fallocate, fallocate64. - Implemented by Ulrich Drepper. - - * Correct declarations of string function when used in C++ code. This - could lead to compile errors for invalid C++ code. - - * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are - now in POSIX. - - * New POSIX 2008 interface: psiginfo - Implemented by Ulrich Drepper. - - * New ISO C++1x interfaces: quick_exit, at_quick_exit - Implemented by Ulrich Drepper. - - * Support for selecting between multiple function definitions at runtime - using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. - - * The libcrypt library can now use the hash function implementations in - NSS. Implemented by Ulrich Drepper. - - * The malloc implementation can be compiled to be less memory efficient - but higher performing in multi-threaded programs. - Implemented by Ulrich Drepper. - - * New locales: nan_TW@latin, ks_IN - - * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. - Implemented by Ulrich Drepper. - - * Extended printf hook support. It is possible to use user-defined types - and extend existing format specifiers. - Implemented by Ulrich Drepper. - - * Handling for group shadow files has been added. - Implemented by Ulrich Drepper. -- Retired: - glibc-2.10-dns-fixpack.diff - glibc-2.10-dns-no-gethostbyname4.diff - glibc-2.10-locale-tuesday.diff - glibc-2.10-nscd-gc-dataofs.diff - glibc-2.10-nscd-prunerace.diff - glibc-2.10-ppc32-setcontext-fp.diff - glibc-2.10-unsetenv.diff - glibc-2.4.90-mdns-resolver.diff - glibc-2.9-fortify.diff - glibc-getgroups-fortify.diff - glibc-ldscript.diff - glibc-mtfsf.diff - glibc-2.10-nscd-meminflight.diff - getaddrinfo-ipv6-sanity.diff - glibc-2.10-nis-hosts.diff -- Several other modified - -------------------------------------------------------------------- -Fri Apr 17 16:49:52 CEST 2009 - pbaudis@suse.cz - -- Fix defaulting to localhost in case of no nameserver entries - in /etc/resolv.conf [bnc#473308] - -------------------------------------------------------------------- -Mon Mar 23 15:32:01 CET 2009 - rguenther@suse.de - -- Add missing libc_hidden_builtin_def (memcmp) to - glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. - -------------------------------------------------------------------- -Fri Feb 27 16:21:17 CET 2009 - rguenther@suse.de - -- Make sure to mark fortified inline routines with - __attribute__((__artificial__)). - -------------------------------------------------------------------- -Wed Feb 18 16:18:19 CET 2009 - adrian@suse.de - -- Build i686 glibc src rpm as nosrc to get both versions on the - media [bnc#474338] - -------------------------------------------------------------------- -Thu Jan 22 14:10:25 CET 2009 - schwab@suse.de - -- Fix use of mtfsf insn. - -------------------------------------------------------------------- -Wed Jan 21 20:26:05 CET 2009 - schwab@suse.de - -- Fix ldscript mangling. - -------------------------------------------------------------------- -Wed Jan 21 01:18:59 CET 2009 - pbaudis@suse.cz - -- Re-enable the DNS fixpack, add real fix for bnc#441947 -- nscd: Fix gc he_data overflow and turn of alloca usage [bnc#387202] -- Normalize the patch queue -- Increate CPU_SETSIZE from 1024 to 4096 - for large SGI machines - and compatibility with SLE10SP2 [bnc#464667] - -------------------------------------------------------------------- -Fri Jan 16 22:33:21 CET 2009 - pbaudis@suse.cz - -- Disable the DNS fixpack from CVS, breaks nscd resolving [bnc#441947] - -------------------------------------------------------------------- -Fri Jan 9 13:12:21 CET 2009 - pbaudis@suse.cz - -- Fix unsetenv() crashing after clearenv() -- Backport various DNS-related fixes from CVS -- Disable parallel A-AAAA queries - revert to the glibc-2.9 behaviour - of sending the queries sequentially [bnc#442572] -- Fix fp register protection on power6 setcontext() [bnc#464738] - -------------------------------------------------------------------- -Mon Dec 8 01:25:57 CET 2008 - pbaudis@suse.cz - -- Fix crash when parsing NIS hosts file [bnc#448702] - -------------------------------------------------------------------- -Thu Dec 4 04:07:11 CET 2008 - pbaudis@suse.cz - -- Fix nscd gc-cacheadd and prune-invalidate races [bnc#446233] -- Remove obsolete and disabled nscd patch -- Fix /etc/bindresvport.blacklist parsing [bnc#439146] -- Fix en_GB and csb_PL locales having weeks start on Tuesdays [bnc#449186] - -------------------------------------------------------------------- -Sun Nov 23 14:55:40 CET 2008 - pbaudis@suse.cz - -- clean up patch filenames - -------------------------------------------------------------------- -Fri Nov 21 14:04:16 CET 2008 - olh@suse.de - -- fix check-build.sh to actually allow building on ppc* again - -------------------------------------------------------------------- -Fri Nov 21 13:36:05 CET 2008 - olh@suse.de - -- do not run compiled binaries with cputuned libraries [bnc#445911] - the buildhost only generates them, but must not execute them - -------------------------------------------------------------------- -Mon Nov 17 14:34:45 CET 2008 - pbaudis@suse.cz - -- Update to glibc-2.9 final - -------------------------------------------------------------------- -Thu Nov 6 18:25:09 CET 2008 - jjolly@suse.de - -- Added patch to fix s390x 64bit stack frame problem - -------------------------------------------------------------------- -Fri Oct 31 19:51:08 CET 2008 - matz@suse.de - -- Fix atomics on s390/s390x, leading to failures in pthread mutexes. - -------------------------------------------------------------------- -Tue Oct 28 18:08:32 CET 2008 - schwab@suse.de - -- Restore alignment patch. - -------------------------------------------------------------------- -Tue Oct 28 09:45:22 CET 2008 - olh@suse.de - -- symlink power5/power5+ to power4 on ppc32 - -------------------------------------------------------------------- -Thu Oct 23 22:20:28 CEST 2008 - ro@suse.de - -- only do obsoletes for XXbit packages on ppc, not on x86 - -------------------------------------------------------------------- -Wed Oct 23 13:46:25 CEST 2008 - matz@suse.de - -- Deactivate unwind tables for initfini.c. - -------------------------------------------------------------------- -Thu Oct 23 10:56:50 CEST 2008 - olh@suse.de - -- obsolete glibc{,-devel,-locale,-profile} -XXbit packages [bnc#437293] -- update last change to handle empty rpmspec defines - -------------------------------------------------------------------- -Tue Oct 21 09:54:06 CEST 2008 - olh@suse.de - -- update glibc_post_upgrade to handle power7 and ppc-cell-be -- remove libs unconditionally on powerpc to handle libs in - subdirectories for which we do not ship optimized versions [bnc#437209] - -------------------------------------------------------------------- -Thu Oct 16 14:42:59 CEST 2008 - olh@suse.de - -- enable cpu-tuned libraries for power4, power6 and ppc-cell-be - on ppc32 [fate#304000,bnc#408808] - -------------------------------------------------------------------- -Mon Oct 13 14:51:11 CEST 2008 - matz@suse.de - -- Update to trunk from 20081013, no longer export paccept, - obsoletes some patches (lowlevellock and res_send). - Fix overflow in nscd patch. - -------------------------------------------------------------------- -Mon Oct 13 00:03:18 CEST 2008 - dmueller@suse.de - -- also strip .comment.SUSE.OPTs from the static libs -- add missing-include-build-fix.diff - -------------------------------------------------------------------- -Tue Oct 7 09:44:20 CEST 2008 - schwab@suse.de - -- Fix alignment in resolver. - -------------------------------------------------------------------- -Tue Sep 30 09:41:01 CEST 2008 - olh@suse.de - -- symlink tuned libs because rpmlint is unable to handle hardlinks - -------------------------------------------------------------------- -Wed Sep 29 11:01:41 CEST 2008 - olh@suse.de - -- enable cpu-tuned libraries for power6 and ppc-cell-be [fate#304000,bnc#408808] -- remove -mtune G4/RS64 from CFLAGS on ppc/ppc64 - -------------------------------------------------------------------- -Thu Sep 18 11:39:53 CEST 2008 - rguenther@suse.de - -- Change .comment.SuSE.OPTs to .comment.SUSE.OPTs. Also strip from - crti.o and crtn.o. -- Adjust getgroups fortify check. [bnc#426958] - -------------------------------------------------------------------- -Thu Sep 18 10:19:51 CEST 2008 - schwab@suse.de - -- Fix alignment in resolver. - -------------------------------------------------------------------- -Mon Sep 15 11:55:18 CEST 2008 - adrian@suse.de - -- do not run glibc_post_upgrade in XEN builds - -------------------------------------------------------------------- -Sat Sep 13 21:49:44 CEST 2008 - rguenther@suse.de - -- strip .note.gnu.build-id from crt1.o. - -------------------------------------------------------------------- -Sat Sep 13 10:20:47 CEST 2008 - dmueller@suse.de - -- only strip comment from crt1.o - -------------------------------------------------------------------- -Fri Sep 12 17:49:39 CEST 2008 - mls@suse.de - -- block baselibs generation for i586 (use i686 instead) - -------------------------------------------------------------------- -Fri Sep 12 17:34:06 CEST 2008 - dmueller@suse.de - -- strip suse opts comments from crt.o (fate #300498) - -------------------------------------------------------------------- -Mon Sep 8 13:38:36 CEST 2008 - rguenther@suse.de - -- Add a patch to fix wrong asm constraints in the i386 lowlevel - futex lock implementation. - -------------------------------------------------------------------- -Thu Sep 4 19:46:22 CEST 2008 - matz@suse.de - -- Update to current trunk snapshot (2008-09-04), makes s390 build. - -------------------------------------------------------------------- -Wed Aug 27 16:12:01 CEST 2008 - matz@suse.de - -- Add a patch to use RTLD_DEEPBIND to load nss modules. [bnc #157078] - -------------------------------------------------------------------- -Mon Aug 25 15:09:37 CEST 2008 - matz@suse.de - -- Update to current trunk snapshot (2008-08-25). - -------------------------------------------------------------------- -Fri Aug 22 17:18:23 CEST 2008 - prusnak@suse.cz - -- enabled SELinux support [Fate#303662] - -------------------------------------------------------------------- -Fri Aug 15 10:37:10 CEST 2008 - aj@suse.de - -- Fix nscd init script for new checks. -- package empty ld.so.cache. - -------------------------------------------------------------------- -Fri Jul 25 08:16:40 CEST 2008 - aj@suse.de - -- Add directory /var/cache/ldconfig to filelist. - -------------------------------------------------------------------- -Wed Jun 25 15:38:25 CEST 2008 - pbaudis@suse.cz - -- Fix strptime() %EY era support [bnc#355887] - -------------------------------------------------------------------- -Wed Jun 25 13:30:42 CEST 2008 - rguenther@suse.de -- Add patch to fix unwinding through clone for x86_64 and i386. - [bnc#290807, bnc#403464] - -------------------------------------------------------------------- -Fri May 30 23:57:54 CEST 2008 - schwab@suse.de - -- Fix ppc atomic ops. - -------------------------------------------------------------------- -Fri Apr 25 13:30:50 CEST 2008 - pbaudis@suse.cz - -- Update to glibc-2.8 CVS branch as of 2008042513 (post-glibc-2.8): - * Faster sqrt and sqrtf implemention for some PPC variants. - -------------------------------------------------------------------- -Thu Apr 10 23:57:44 CEST 2008 - pbaudis@suse.cz - -- Build fix after the revert - -------------------------------------------------------------------- -Thu Apr 10 23:05:17 CEST 2008 - pbaudis@suse.cz - -- Temporarily revert a namespace leakage cleanup in glibc-2.8 since - it causes a lot of build failures - -------------------------------------------------------------------- -Thu Apr 10 16:29:34 CEST 2008 - pbaudis@suse.cz - -- Update to CVS HEAD as of 2008041002 (almost glibc-2.8): - * New locales: bo_CN, bo_IN. - - * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. - - * Sorting rules for some Indian languages (Devanagari and Gujarati). - Implemented by Pravin Satpute. - - * IPV6 addresses in /etc/resolv.conf can now have a scope ID - - * nscd caches now all timeouts for DNS entries - Implemented by Ulrich Drepper. - - * nscd is more efficient and wakes up less often. - Implemented by Ulrich Drepper. - - * More checking functions: asprintf, dprintf, obstack_printf, vasprintf, - vdprintf, and obstack_vprintf. - Implemented by Jakub Jelinek. - - * Faster memset for x86-64. - Implemented by Harsha Jagasia and H.J. Lu. - - * Faster memcpy on x86. - Implemented by Ulrich Drepper. - - * ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX). - Implemented by Ulrich Drepper. - -- memset() implementation from AMD replaced by new upstream - implementation - -- Enable stackguard randomization - -------------------------------------------------------------------- -Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de - -- added baselibs.conf file to build xxbit packages - for multilib support - -------------------------------------------------------------------- -Thu Mar 13 13:48:49 CET 2008 - dmueller@suse.de - -- don't try to use ipv6 in getaddrinfo() unconditionally (bnc#361697) - -------------------------------------------------------------------- -Sat Jan 26 13:19:41 CET 2008 - aj@suse.de - -- Add fixes from 2.8 branch for string.h and headers. The string.h - changes should fix sysvinit compilation. -- Fix some rpmlint warnings: - * Add versioned provides and obsoletes. - * Use %check section. - -------------------------------------------------------------------- -Fri Jan 18 14:03:43 CET 2008 - schwab@suse.de - -- Fix use of fnstsw. - -------------------------------------------------------------------- -Wed Nov 21 05:35:36 CET 2007 - pbaudis@suse.cz - -- Update to CVS branch glibc_2.7 as of today -- Remove the ::1 hack again -- Fix nscd race condition between mempool_alloc() and gc() [#288910] -- Fix nscd stack overflow in gc() when the number of cache entries - gets too large [#288910] -- Fix sunrpc udp client [#257745] -- Fix initgroups() crash in nss_compat [#310544] - -------------------------------------------------------------------- -Thu Sep 27 15:46:30 CEST 2007 - matz@suse.de - -- Remove broken x86_64 bcopy function. [#328486] - -------------------------------------------------------------------- -Sun Sep 16 14:04:30 CEST 2007 - aj@suse.de - -- Install gai.conf on all archs. - -------------------------------------------------------------------- -Thu Sep 13 17:20:58 CEST 2007 - pbaudis@suse.cz - -- Install the default gai.conf to /etc instead of docdir -- Do not return ::1 /etc/hosts records for 127.0.0.1 queries [#288879] - -------------------------------------------------------------------- -Wed Sep 5 03:07:39 CEST 2007 - pbaudis@suse.cz - -- Fix pthread_mutex_unlock() internal lock handling for incorrectly - written applications -- Fix nscd assertion failure when opening persistent db failed [#288910] - -------------------------------------------------------------------- -Mon Sep 3 20:10:39 CEST 2007 - mls@suse.de - -- fix typos in mdns patch [#206247], [#256690] - -------------------------------------------------------------------- -Fri Aug 31 17:38:02 CEST 2007 - aj@suse.de - -- Add /usr/share/locale-bundle/ as fallback directory for usage - with bundle-lang packages (see bug #302270). - -------------------------------------------------------------------- -Tue Aug 21 22:31:54 CEST 2007 - pbaudis@suse.cz - -- Reintroduce errorneously omitted AMD64 optimizations - (and fix them to compile again) - -------------------------------------------------------------------- -Thu Aug 16 09:47:53 CEST 2007 - aj@suse.de - -- Fix static linking (#233835). -- Silence rpmlint for profile package. -- Add Short-Description to nscd init script. - -------------------------------------------------------------------- -Mon Aug 13 19:09:31 CEST 2007 - aj@suse.de - -- Backport: - * Update kernel-features.h. - * Fix sched_getcpu error path on x86-64. - * Use upstreamed version of ldconfig cache speed ups. - -------------------------------------------------------------------- -Fri Aug 3 15:46:35 CEST 2007 - pbaudis@suse.cz - -- Remove the dynamic linker support for direct bindings (-Bdirect); - according to Michael Meeks, the performance improvement is too small -- Split timezone package to a separate physical package -- Update glibc to version 2.6.1 - -------------------------------------------------------------------- -Fri Jul 27 11:32:54 CEST 2007 - aj@suse.de - -- Use fdupes to reduce timezone data size. - -------------------------------------------------------------------- -Fri Jul 13 18:27:49 CEST 2007 - schwab@suse.de - -- Update to head of glibc-2.6 branch. -- Fix update on ppc. - -------------------------------------------------------------------- -Thu Jun 28 14:59:55 CEST 2007 - matz@suse.de - -- Add a provide for "rtld(GNU_HASH)". - -------------------------------------------------------------------- -Sun Jun 17 12:30:26 CEST 2007 - schwab@suse.de - -- Fix section selection in crt objects. - -------------------------------------------------------------------- -Thu Jun 7 02:43:29 CEST 2007 - pbaudis@suse.cz - -- Backport fix for crashing printf() of some invalid ldouble values - -------------------------------------------------------------------- -Wed May 30 04:40:25 CEST 2007 - pbaudis@suse.cz - -- Added few fixes from 2.6 CVS before 2.6.1 gets released - -------------------------------------------------------------------- -Fri May 18 23:14:42 CEST 2007 - pbaudis@suse.cz - -- Update glibc to version 2.6 -- Update tzdata to version 2007f - -------------------------------------------------------------------- -Fri May 4 11:24:53 CEST 2007 - schwab@suse.de - -- Update build checks. - -------------------------------------------------------------------- -Fri Apr 20 13:13:52 CEST 2007 - dmueller@suse.de - -- only keep symtab for libpthread* - -------------------------------------------------------------------- -Thu Apr 19 23:22:35 CEST 2007 - pbaudis@suse.cz - -- Fix strtod() exponent limit calculations [#230909] -- Fix random nscd crashes under very heavy passwd/group queries - load [#192391] -- Add some enums from CVS to sys/personality.h [#253710] -- Fix pthread_atfork()-induced hangs in threaded programs [#256237] -- Fix llrintl() on ppc64 [#241183] -- Fix makecontext() segfault [#249780] -- Fix potential dladdr() breakage [#241464] -- Fix some races in client programs with nscd garbage collection [#252138] - -------------------------------------------------------------------- -Fri Mar 30 02:54:06 CEST 2007 - pbaudis@suse.cz - -- Update localtime during timezone update [#239888] - -------------------------------------------------------------------- -Sun Mar 25 10:00:59 CEST 2007 - olh@suse.de - -- temporary disable powerpc cputuned libs to reduce turnaround time - -------------------------------------------------------------------- -Fri Feb 9 15:03:50 CET 2007 - pbaudis@suse.cz - -- Update to the latest upstream timezone data [#231833] - -------------------------------------------------------------------- -Fri Feb 2 11:42:51 CET 2007 - schwab@suse.de - -- Remove -ffortify. - -------------------------------------------------------------------- -Thu Feb 1 13:43:54 CET 2007 - schwab@suse.de - -- Remove -fstack-protector. - -------------------------------------------------------------------- -Mon Jan 29 16:13:09 CET 2007 - sbrabec@suse.cz - -- Removed references to /opt/gnome. - -------------------------------------------------------------------- -Thu Jan 25 21:14:58 CET 2007 - olh@suse.de - -- link power4 to ppc970, link power6 to power6x -- Update the powerpc cpu-tuned environment to v0.05 - -------------------------------------------------------------------- -Mon Jan 22 14:43:40 CET 2007 - schwab@suse.de - -- Update ppc build check. - -------------------------------------------------------------------- -Fri Nov 24 12:45:26 CET 2006 - pbaudis@suse.cz - -- Fix for Brazilian and Wester Australia timezone DSTs [#213375,#223196] - -------------------------------------------------------------------- -Thu Nov 16 21:59:06 CET 2006 - pbaudis@suse.cz - -- Disable power6 optimization for 10.2, not all pieces are there - [#219962] - -------------------------------------------------------------------- -Wed Oct 25 22:23:48 CEST 2006 - pbaudis@suse.cz - -- Change ld.so madvise() call to posix_fadvise() -- Fix mallopt(M_MXFAST,0) behaviour [#198760] -- Update the powerpc cpu-tuned environment to v0.04 [#215117] - -------------------------------------------------------------------- -Sun Oct 22 21:59:49 CEST 2006 - pbaudis@suse.cz - -- Update the powerpc cpu-tuned environment to v0.03 [#212549] -- Improve glibc powerpc optimization [#212548,#212580,#214282] - -------------------------------------------------------------------- -Tue Oct 17 21:03:54 CEST 2006 - mls@suse.de - -- add ldconfig-old-cache patch to speed up ldconfig - -------------------------------------------------------------------- -Sat Oct 14 12:23:53 CEST 2006 - olh@suse.de - -- dont use uninitialized (and wrong) variable in glibc-2.4.90-bdirect.diff - [#212470] - -------------------------------------------------------------------- -Thu Oct 12 02:33:58 CEST 2006 - pbaudis@suse.cz - -- Update to the latest 2.5 CVS -- More friendly -Bdirect behaviour in case of missing libraries -- Fix 2.4.90-nscd patch wrt. new gcc - -------------------------------------------------------------------- -Mon Oct 2 13:37:26 CEST 2006 - aj@suse.de - -- Fix warnings in testsuite (patch from CVS). - -------------------------------------------------------------------- -Fri Sep 29 22:06:43 CEST 2006 - pbaudis@suse.cz - -- Update to 2.5 CVS - official release (only minimal changes in CVS - since the last update) -- Fix a thinko in the -Bdirect patch - -------------------------------------------------------------------- -Fri Sep 29 19:51:24 CEST 2006 - dmueller@suse.de - -- fix devel requires - -------------------------------------------------------------------- -Fri Sep 29 04:27:40 CEST 2006 - pbaudis@suse.cz - -- Make the dynamic linker support direct bindings (Michael Meeks' - Solaris-like -Bdirect with minor changes by me) -- Split the kernel headers to a new package (linux-kernel-headers) - -------------------------------------------------------------------- -Wed Sep 27 14:59:32 CEST 2006 - schwab@suse.de - -- Fix broken assertion [#208189]. - -------------------------------------------------------------------- -Tue Sep 26 18:10:38 CEST 2006 - pbaudis@suse.cz - -- Fix mistake when removing some patches - -------------------------------------------------------------------- -Mon Sep 25 21:15:15 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS - -------------------------------------------------------------------- -Sat Sep 23 04:36:58 CEST 2006 - pbaudis@suse.cz - -- Fix 64bit-cleanliness gcc warnings - -------------------------------------------------------------------- -Thu Sep 21 23:52:13 CEST 2006 - pbaudis@suse.cz - -- Add /usr/lib{,64}/Xaw3d to /etc/ld.so.conf (by schwab@suse.de, - from original STABLE) [#205169] -- Fix chown() instead of lchown() called in fchownat() emulation - [#201751] -- Fix glob() overflowing stack when producing massive number of - matches [#190458] -- Update to current CVS - -------------------------------------------------------------------- -Wed Sep 20 23:48:20 CEST 2006 - pbaudis@suse.cz - -- Fix cut'n'paste error in a last-minute change - -------------------------------------------------------------------- -Wed Sep 20 22:07:59 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS -- Fix powerpc-cpu tarball extension -- Move crypt-blowfish to a patch so that quilt works on the tree - -------------------------------------------------------------------- -Sat Sep 2 19:01:21 CEST 2006 - schwab@suse.de - -- Use asm-powerpc for ppc and ppc64. -- Fix chroot check in glibc_post_upgrade. - -------------------------------------------------------------------- -Mon Aug 28 01:24:24 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS, should fix false positive heap overflow - trigger from malloc() causing gcc to hang [#201724] - -------------------------------------------------------------------- -Wed Aug 23 23:56:35 CEST 2006 - pbaudis@suse.cz - -- Update the powerpc cpu-tuned environment to v0.02 [#199274] -- Update to current CVS -- Drop pthread_mutexattr_getprioceiling() out of range fix - -------------------------------------------------------------------- -Thu Aug 10 20:10:04 CEST 2006 - pbaudis@suse.cz - -Ported from STABLE: -- Remove libc5 reference from /etc/ld.so.conf, shlibs5 is no longer - supported [#181947] -- Fix name of a dummy ia64 header from offsets.h to asm-offsets.h - [#191394] - -------------------------------------------------------------------- -Sun Jul 30 23:33:04 CEST 2006 - pbaudis@suse.cz - -- Update to current CVS snapshot (highlight: support for .gnu.hash - fast linking support) - -------------------------------------------------------------------- -Wed Jul 12 03:15:08 CEST 2006 - pbaudis@suse.cz - -- pthread_mutexattr_getprioceiling() was returning prioceiling out - of range [#182782] - -------------------------------------------------------------------- -Wed Jul 12 02:39:22 CEST 2006 - pbaudis@suse.cz - -- Fix the HTML documentation missing an index [#190585] - -------------------------------------------------------------------- -Sat Jun 24 18:32:42 CEST 2006 - kukuk@suse.de - -- Update to current CVS snapshot -- Update to kernel-headers 2.6.17 -- Remove HZ define (sysconf(_SC_CLK_TCK) instead) - -------------------------------------------------------------------- -Tue Jun 13 11:49:43 CEST 2006 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Tue May 2 14:10:41 CEST 2006 - pbaudis@suse.cz - -- Fix bad memset() size in NTPL code [#159184] - -------------------------------------------------------------------- -Tue May 2 10:42:55 CEST 2006 - kukuk@suse.de - -- asm-powerpc/page.h: Don't move #ifdef __KERNEL__ [#171010] -- bits/mman.h: Fix value of MADV_REMOVE [#170734] - -------------------------------------------------------------------- -Mon Apr 24 12:04:12 CEST 2006 - kukuk@suse.de - -- Fix china timezone mess [#163674] -- Don't include linux/stddef.h [#167964] - -------------------------------------------------------------------- -Tue Apr 18 14:38:57 CEST 2006 - schwab@suse.de - -- Sanitize . - -------------------------------------------------------------------- -Thu Apr 13 13:34:07 CEST 2006 - kukuk@suse.de - -- Add /usr/include/linux/taskstats.h [#141936] - -------------------------------------------------------------------- -Tue Apr 11 12:20:57 CEST 2006 - kukuk@suse.de - -- nptl/init.c (sigcancel_handler): Compare with correct PID even - if the thread is in the middle of a fork call. - (sighandler_setxid): Likewise. - -------------------------------------------------------------------- -Sun Apr 9 16:27:20 CEST 2006 - ihno@suse.de - -- S390 fix for startupcode. Part of it was not PIC. - -------------------------------------------------------------------- -Fri Apr 7 13:42:20 CEST 2006 - kukuk@suse.de - -- Don't hardcode syscall numbers at our own - -------------------------------------------------------------------- -Tue Apr 4 22:10:47 CEST 2006 - schwab@suse.de - -- Fix readlink declaration. - -------------------------------------------------------------------- -Mon Apr 3 13:40:54 CEST 2006 - kukuk@suse.de - -- Update from CVS: - - nscd bug fixes - - Match return value of readlink to what POSIX says - - Fix NIS+ checks for NULL pointer - -------------------------------------------------------------------- -Sun Apr 2 20:53:17 CEST 2006 - dmueller@suse.de - -- Fix clients crash if nscd is unresponsive (glibc-#2501) -- Fix fd leak in nscd daemon (glibc-#2498) - -------------------------------------------------------------------- -Sat Apr 1 21:48:54 CEST 2006 - schwab@suse.de - -- Fix on ppc64. - -------------------------------------------------------------------- -Fri Mar 31 15:50:25 CEST 2006 - schwab@suse.de - -- Extend last change also to ppc64. - -------------------------------------------------------------------- -Sun Mar 26 21:08:58 CEST 2006 - schwab@suse.de - -- Terminate FDE before clone syscall. - -------------------------------------------------------------------- -Fri Mar 24 14:58:29 CET 2006 - ro@suse.de - -- kernel-headers: asm-powerpc: define PAGE_MASK in page.h - -------------------------------------------------------------------- -Mon Mar 20 13:57:27 CET 2006 - kukuk@suse.de - -- Update to final 2.6.16 kernel headers -- Update to current CVS: - - Don't use TLS before setting it up. - - Fix rounding of long doubles on ppc64. - - Correct usage of cfi_offset on ppc/ppc64. - - Fix memory leak in dlopen. - -------------------------------------------------------------------- -Tue Mar 14 17:08:27 CET 2006 - schwab@suse.de - -- Update fnmatch patch. - -------------------------------------------------------------------- -Fri Mar 10 13:36:38 CET 2006 - kukuk@suse.de - -- Disable unshare() syscall (request of kernel developer) - -------------------------------------------------------------------- -Fri Mar 10 08:30:53 CET 2006 - kukuk@suse.de - -- Don't include linux/interrupt.h from linux/rtc.h -- Revert last change to linux/input.h, disable struct -- Update to current CVS (nptl/ia64 fix) - -------------------------------------------------------------------- -Thu Mar 9 07:58:20 CET 2006 - kukuk@suse.de - -- Fix linux/input.h for userspace inclusion - -------------------------------------------------------------------- -Wed Mar 8 22:06:11 CET 2006 - kukuk@suse.de - -- Update kernel headers to 2.6.16-rc5 - -------------------------------------------------------------------- -Mon Mar 6 13:41:08 CET 2006 - kukuk@suse.de - -- Update to 2.4 CVS - - official release - - Fix free on ppc [#155374] - - Various sysconf() fixes - -------------------------------------------------------------------- -Sat Mar 4 18:12:36 CET 2006 - kukuk@suse.de - -- Update to CVS - - ldconfig/prelink fixes - -------------------------------------------------------------------- -Fri Mar 3 17:32:56 CET 2006 - aj@suse.de - -- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). - -------------------------------------------------------------------- -Fri Mar 3 10:58:02 CET 2006 - kukuk@suse.de - -- Update to CVS - - Fix ftw test suite failures - - Fix alignment of malloc for long double - -------------------------------------------------------------------- -Thu Mar 2 09:56:59 CET 2006 - kukuk@suse.de - -- Update to 2.3.91 CVS - - Fix 6arg syscall on s390x - - memccpy fix on IA64 - -------------------------------------------------------------------- -Wed Mar 1 08:54:53 CET 2006 - kukuk@suse.de - -- Update to CVS - - New linkat interface - - Update from tzdata2006b - - Define MADV_DONTFORK and MADV_DOFORK. - - Add robust mutex to NPTL - -------------------------------------------------------------------- -Thu Feb 23 15:26:29 CET 2006 - kukuk@suse.de - -- Reenable power optimized code again [#142839] - -------------------------------------------------------------------- -Sun Feb 12 09:45:39 CET 2006 - kukuk@suse.de - -- Disable power optimized code - -------------------------------------------------------------------- -Thu Feb 9 10:50:12 CET 2006 - kukuk@suse.de - -- Update to CVS - - Add unshare prototype - - Add memory barrier on i386/NPTL - -------------------------------------------------------------------- -Wed Feb 8 10:50:07 CET 2006 - kukuk@suse.de - -- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] - -------------------------------------------------------------------- -Mon Feb 6 16:58:50 CET 2006 - kukuk@suse.de - -- Update to current CVS -- Fix alternate locale search path patch [#147685] - -------------------------------------------------------------------- -Thu Feb 2 12:13:19 CET 2006 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Mon Jan 30 16:10:35 CET 2006 - schwab@suse.de - -- Fix the fix. - -------------------------------------------------------------------- -Sat Jan 28 18:42:08 CET 2006 - kukuk@suse.de - -- Fix seg.fault in __atfct_seterrno if called from futimesat() -- Apply patches for CPU-Tuned Environment on Power [#142839] - -------------------------------------------------------------------- -Fri Jan 27 12:10:55 CET 2006 - kukuk@suse.de - -- Cleanup ld.so.conf - -------------------------------------------------------------------- -Thu Jan 26 08:53:33 CET 2006 - kukuk@suse.de - -- Add alternate directory for translations [#144073] - -------------------------------------------------------------------- -Thu Jan 26 00:41:37 CET 2006 - mls@suse.de - -- converted neededforbuild to BuildRequires - -------------------------------------------------------------------- -Mon Jan 23 17:44:50 CET 2006 - kukuk@suse.de - -- Update to CVS -- Fix build_locales - -------------------------------------------------------------------- -Sat Jan 21 10:24:02 CET 2006 - kukuk@suse.de - -- Update to CVS -- Fix inclusion of sys/poll.h with _GNU_SOURCE defined - -------------------------------------------------------------------- -Fri Jan 20 15:02:35 CET 2006 - kukuk@suse.de - -- Update to CVS - -------------------------------------------------------------------- -Sun Jan 15 08:28:26 CET 2006 - kukuk@suse.de - -- Update to CVS (fix long double configure check) - -------------------------------------------------------------------- -Sun Jan 15 01:59:54 CET 2006 - schwab@suse.de - -- Readd , , . - -------------------------------------------------------------------- -Sun Jan 15 01:08:22 CET 2006 - schwab@suse.de - -- Readd . - -------------------------------------------------------------------- -Sat Jan 14 22:33:32 CET 2006 - kukuk@suse.de - -- Update to current CVS (long double support) - -------------------------------------------------------------------- -Fri Jan 13 09:17:17 CET 2006 - aj@suse.de - -- Fix x86-64 w_exp to not use extra plt. - -------------------------------------------------------------------- -Thu Jan 12 22:39:01 CET 2006 - kukuk@suse.de - -- Fix asm-s390/setup.h for userspace inclusion -- nsswitch.conf: Add nis to netgroup and automount entry -- Fix sys/procfs.h for ppc64 - -------------------------------------------------------------------- -Mon Jan 9 23:20:14 CET 2006 - kukuk@suse.de - -- Update to current CVS (fix for pthread.h with -std=c99) -- Define PAGE_SIZE on POWER -- Don't include linux/sched.h in asm-power/elf.h - -------------------------------------------------------------------- -Sun Jan 8 17:58:11 CET 2006 - kukuk@suse.de - -- Fix linux/acct.h for userland inclusion - -------------------------------------------------------------------- -Sun Jan 8 11:48:58 CET 2006 - kukuk@suse.de - -- Update to current CVS -- Remove CHILD_MAX from kernel-headers -- Copy subdirectories of asm-power, too. -- Remove da_DK@euro (does not exist) - -------------------------------------------------------------------- -Sat Jan 7 10:02:43 CET 2006 - kukuk@suse.de - -- Fix ext2 kernel headers -- Update to current CVS - -------------------------------------------------------------------- -Fri Jan 6 12:28:10 CET 2006 - kukuk@suse.de - -- Update to kernel headers 2.6.15 - -------------------------------------------------------------------- -Fri Jan 6 00:58:28 CET 2006 - kukuk@suse.de - -- Update crypt_blowfish to version 1.0 -- Update to current CVS -- Adjust nscd patches - -------------------------------------------------------------------- -Tue Jan 3 17:19:36 CET 2006 - aj@suse.de - -- Update to current CVS to fix pthread.h on 64-bit systems for C++. - -------------------------------------------------------------------- -Tue Jan 3 06:04:26 CET 2006 - aj@suse.de - -- Enable string patch again. -- Update to current CVS. - -------------------------------------------------------------------- -Wed Dec 21 15:11:14 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Fix ldconfig - -------------------------------------------------------------------- -Sat Dec 17 09:49:18 CET 2005 - kukuk@suse.de - -- Remove /usr/lib/zoneinfo -- Add /etc/localtime to filelist -- Update to current CVS -- Fix glibc #1978: statvfs does not know about current filesystems -- Fix wrong error return code of time() on x86 -- Remove nscd_nischeck -- Remove audit from nfb -- Remove LinuxThreads - -------------------------------------------------------------------- -Wed Dec 14 18:00:59 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Remove nscd_nischeck -- Remove audit from nfb - -------------------------------------------------------------------- -Mon Dec 5 12:07:05 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Disable SELinux - -------------------------------------------------------------------- -Thu Nov 24 15:54:27 CET 2005 - kukuk@suse.de - -- Remove obsolete patches: - - glibc-2.3.asprintf-error_handling.diff - - glibc-2.3.90-missing-string_h.diff - -------------------------------------------------------------------- -Wed Nov 23 17:20:10 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Don't install in parallel - -------------------------------------------------------------------- -Fri Nov 18 13:42:43 CET 2005 - kukuk@suse.de - -- Update to current CVS to fix compiling with new binutils - -------------------------------------------------------------------- -Wed Nov 16 18:33:57 CET 2005 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Sat Nov 5 14:44:07 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Disable linuxthreads on POWER and Itanium -- Fix kernel-headers for userland inclusion - -------------------------------------------------------------------- -Wed Nov 2 17:12:36 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Update to kernel-headers 2.6.14 - -------------------------------------------------------------------- -Tue Oct 18 17:37:08 CEST 2005 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Sat Oct 1 23:00:04 CEST 2005 - schwab@suse.de - -- Update libm ULPs. -- Fix limit in getcwd. - -------------------------------------------------------------------- -Thu Sep 15 16:13:50 CEST 2005 - kukuk@suse.de - -- Update to current CVS -- Update to final 2.6.13 kernel headers -- Adjust bindresvport.blacklist patch to check already ports >= 512 - -------------------------------------------------------------------- -Fri Aug 26 16:41:56 CEST 2005 - kukuk@suse.de - -- Update to current CVS -- init.d/nscd: Remove -S support (was removed from nscd) - -------------------------------------------------------------------- -Fri Aug 19 18:28:24 CEST 2005 - schwab@suse.de - -- Fix comment. - -------------------------------------------------------------------- -Fri Aug 19 17:36:24 CEST 2005 - matz@suse.de - -- Change .note.SuSE format [#105825]. - -------------------------------------------------------------------- -Fri Aug 19 17:13:21 CEST 2005 - kukuk@suse.de - -- Update to current CVS -- Move all obsolete libraries into own subpackage and document - them as obsolete - -------------------------------------------------------------------- -Fri Aug 5 10:32:38 CEST 2005 - schwab@suse.de - -- -mno-tls-direct-seg-refs is x86-only - -------------------------------------------------------------------- -Tue Aug 2 14:54:01 CEST 2005 - kukuk@suse.de - -- Update to 2.3.x CVS branch -- Compile with -mno-tls-direct-seg-refs - -------------------------------------------------------------------- -Fri Jul 29 11:12:02 CEST 2005 - kukuk@suse.de - -- Update to current CVS head - -------------------------------------------------------------------- -Wed Jul 27 23:13:04 CEST 2005 - schwab@suse.de - -- Update libm ULPs for ia64. -- Add linuxthreads stack guard support for ia64. - -------------------------------------------------------------------- -Sat Jul 23 10:05:16 CEST 2005 - kukuk@suse.de - -- Update to current CVS head (adds bits/wchar2.h) -- Move LinuxThreads version to obsolete/linuxthreads - -------------------------------------------------------------------- -Thu Jul 21 15:04:31 CEST 2005 - kukuk@suse.de - -- Update to current CVS head - -------------------------------------------------------------------- -Fri Jul 15 15:45:35 CEST 2005 - schwab@suse.de - -- Fix file list. - -------------------------------------------------------------------- -Fri Jul 15 12:09:08 CEST 2005 - aj@suse.de - -- Fix amd64 string routines and math routines. - -------------------------------------------------------------------- -Fri Jul 15 08:45:27 CEST 2005 - kukuk@suse.de - -- Use old LinuxThreads only for runtime and remove static version - and headers -- Update to current CVS head -- Remove own texi2html - -------------------------------------------------------------------- -Mon Jul 11 11:00:47 CEST 2005 - kukuk@suse.de - -- Install generic stdio-lock.h header file - -------------------------------------------------------------------- -Sat Jul 9 18:46:46 CEST 2005 - kukuk@suse.de - -- Temporary disable AMD64 string optimization - -------------------------------------------------------------------- -Wed Jul 6 09:58:39 CEST 2005 - kukuk@suse.de - -- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] - -------------------------------------------------------------------- -Mon Jul 4 20:41:47 CEST 2005 - kukuk@suse.de - -- nss_compat: Preserve original return value [Bug #95033] -- Cleanup old Obsoletes/Requires - -------------------------------------------------------------------- -Mon Jun 27 13:49:38 CEST 2005 - kukuk@suse.de - -- Update to current gilbc CVS snapshot - -------------------------------------------------------------------- -Thu Jun 23 23:25:42 CEST 2005 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Adjust nscd patch -- Enable SELinux/audit support for nscd -- Update .note.SuSE version - -------------------------------------------------------------------- -Mon Jun 20 12:35:20 CEST 2005 - kukuk@suse.de - -- Update to final 2.6.12 kernel headers -- Update to current glibc CVS snapshot - -------------------------------------------------------------------- -Thu Jun 16 17:03:43 CEST 2005 - kukuk@suse.de - -- Update linux/audit.h header -- Update to current CVS snapshot - -------------------------------------------------------------------- -Mon Jun 13 14:48:53 CEST 2005 - kukuk@suse.de - -- Don't terminate strings twice in nis/netgroup code. -- netinet/if_tr.h: don't include kernel headers. - -------------------------------------------------------------------- -Wed Jun 8 16:26:21 CEST 2005 - kukuk@suse.de - -- Update to kernel-headers 2.6.12-rc6 -- Fix build on s390 and s390x - -------------------------------------------------------------------- -Wed Jun 8 12:08:49 CEST 2005 - matz@suse.de - -- Don't strip .symtab from libpthread.so.0 (and other libs). - Fixes debugging of threaded programs (#81253). - -------------------------------------------------------------------- -Mon Jun 6 18:47:22 CEST 2005 - kukuk@suse.de - -- Update to current CVS head -- Update to kernel-headers 2.6.12-rc5 - -------------------------------------------------------------------- -Thu May 26 20:07:11 CEST 2005 - schwab@suse.de - -- No longer build loadlocale.c with -fno-unit-at-a-time. - -------------------------------------------------------------------- -Tue May 24 11:09:00 CEST 2005 - kukuk@suse.de - -- Update to current CVS head, obsoletes: - - glibc-2.3.90-libm.diff - - glibc-2.3.90-i386-sysdep.diff - - warn.diff - - dl-osinfo.diff - Adjusted: - - glibc-2.3.90-bindresvport.blacklist.diff - -------------------------------------------------------------------- -Sun May 22 01:53:44 CEST 2005 - schwab@suse.de - -- Fix missing include. - -------------------------------------------------------------------- -Tue May 17 23:46:19 CEST 2005 - schwab@suse.de - -- Fix warning. - -------------------------------------------------------------------- -Fri Apr 29 15:11:22 CEST 2005 - kukuk@suse.de - -- Update to latest CVS snapshost - -------------------------------------------------------------------- -Sat Apr 23 17:05:58 CEST 2005 - kukuk@suse.de - -- Fix all the archs using wrong FLAGS - -------------------------------------------------------------------- -Sat Apr 23 08:02:31 CEST 2005 - kukuk@suse.de - -- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS - -------------------------------------------------------------------- -Fri Apr 22 13:05:40 CEST 2005 - kukuk@suse.de - -- Update to current CVS - -------------------------------------------------------------------- -Fri Apr 22 12:45:26 CEST 2005 - kukuk@suse.de - -- Check if nice value does not conflict with test suite - -------------------------------------------------------------------- -Tue Apr 19 13:54:03 CEST 2005 - mls@suse.de - -- resolv: trigger re-read of /etc/resolv.conf for all threads if - a change is detected -- nscd: support a negative timeout of zero, used by hosts cache - -------------------------------------------------------------------- -Mon Apr 18 17:31:23 CEST 2005 - meissner@suse.de - -- Enable fortify possibility even for GCC 4.0, we apply - the necessary patch to the SUSE GCC 4.0. - -------------------------------------------------------------------- -Sat Apr 16 12:16:13 CEST 2005 - aj@suse.de - -- Apply amd64 string diff again. - -------------------------------------------------------------------- -Tue Apr 12 11:35:46 CEST 2005 - kukuk@suse.de - -- Update kernel-headers to 2.6.10 -- Update to current CVS snapshot - -------------------------------------------------------------------- -Wed Apr 6 18:33:32 CEST 2005 - schwab@suse.de - -- Cleanup neededforbuild. - -------------------------------------------------------------------- -Tue Apr 5 22:02:25 CEST 2005 - aj@suse.de - -- Add gettext-devel to neededforbuild. - -------------------------------------------------------------------- -Tue Apr 5 16:45:06 CEST 2005 - aj@suse.de - -- Do not build on xen machines. -- Adjust libm ULPs for PowerPC. - -------------------------------------------------------------------- -Fri Apr 1 14:20:45 CEST 2005 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Tue Mar 29 10:57:40 CEST 2005 - kukuk@suse.de - -- Update to current CVS snapshot -- Fix compiler warnings on ix86 - -------------------------------------------------------------------- -Mon Mar 28 17:27:44 CEST 2005 - kukuk@suse.de - -- Update to current CVS snapshot -- Disable Noversion Patch on i386 temporary - -------------------------------------------------------------------- -Fri Mar 18 14:33:22 CET 2005 - ro@suse.de - -- check-build.sh: require 2.6.11 on x86,x86_64 for build - -------------------------------------------------------------------- -Thu Mar 17 13:57:22 CET 2005 - mls@suse.de - -- nscd: enable hosts cache -- nscd: also watch /etc/resolv.conf -- nscd: check files every 3 seconds -- nscd: deal correctly with missing files - -------------------------------------------------------------------- -Tue Mar 15 15:50:12 CET 2005 - kukuk@suse.de - -- Update to current CVS snapshot. - -------------------------------------------------------------------- -Sat Feb 12 02:49:56 CET 2005 - schwab@suse.de - -- Remove const from __pthread_internal_tsd_address. - -------------------------------------------------------------------- -Fri Feb 11 15:44:31 CET 2005 - schwab@suse.de - -- Update to current CVS. -- Link glibc_post_upgrade against new libc. -- Fix build error with gcc4. - -------------------------------------------------------------------- -Wed Feb 9 10:40:29 CET 2005 - kukuk@suse.de - -- Update to current CVS -- Fix bindresvport blacklist handling. -- Increase buffer in tst-cancel17 to match new kernel buffer size - [#50277] -- Enable LinuxThreads again -- Remove ia64-audit patch (is upstream) - -------------------------------------------------------------------- -Mon Feb 7 13:15:58 CET 2005 - aj@suse.de - -- Add patch to allow compilation with gcc4. - -------------------------------------------------------------------- -Mon Jan 31 16:33:47 CET 2005 - schwab@suse.de - -- Readd support for LD_AUDIT on ia64. - -------------------------------------------------------------------- -Mon Jan 31 14:32:01 CET 2005 - kukuk@suse.de - -- Add memory clobber to string inline assemblies on s390 [#50284]. - -------------------------------------------------------------------- -Mon Jan 31 12:55:59 CET 2005 - kukuk@suse.de - -- Fix filelist on i686 if we build NPTL only version - -------------------------------------------------------------------- -Mon Jan 31 09:17:33 CET 2005 - aj@suse.de - -- Generate new ULPs file for i386 needed by GCC 4. - -------------------------------------------------------------------- -Sun Jan 30 12:43:56 CET 2005 - kukuk@suse.de - -- Include own copy of texi2html -- Add glibc_pst_upgrade program (based on version from FC3) -- Update to current CVS - -------------------------------------------------------------------- -Thu Jan 27 23:28:57 CET 2005 - kukuk@suse.de - -- Re-add patch for timezone/zic.c (got lost with last merge) - -------------------------------------------------------------------- -Wed Jan 26 11:34:36 CET 2005 - kukuk@suse.de - -- Update timezone data to 2005c release (fixes zdump crash on - 64bit architectures) - -------------------------------------------------------------------- -Sat Jan 22 15:45:25 CET 2005 - schwab@suse.de - -- Add basic (incomplete) support for LD_AUDIT on ia64. - -------------------------------------------------------------------- -Fri Jan 21 11:00:08 CET 2005 - kukuk@suse.de - -- Enable patch for [Bug #49833] -- Allow to build NPTL only glibc -- Update to CVS from Jan 16, 2005, containing: -- Fix execlp argument in SunRPC code [glibc #681] -- Fix errno return values for futimes [glibc #633] -- Update FPU function on PPC/PPC64 [Bug #49764] - -------------------------------------------------------------------- -Mon Jan 17 10:40:24 CET 2005 - aj@suse.de - -- Enable amd64 string patch again after fixing failing hunks. -- Handle missing cpuid better for amd64 string functions. [#49803] - -------------------------------------------------------------------- -Sat Jan 15 16:05:36 CET 2005 - aj@suse.de - -- Fix amd64 string patch to use correct datatype. - -------------------------------------------------------------------- -Fri Jan 14 14:06:43 CET 2005 - kukuk@suse.de - -- Fix memory corruption in getgrouplist function [Bug #49833] - -------------------------------------------------------------------- -Tue Jan 11 11:01:26 CET 2005 - kukuk@suse.de - -- Enable all LinuxThreads tests again -- Finalize getconf -a patch (make it compatible with Solaris) -- Rewrite getconf manual page and mention new option -- Merge GB18030 patches into one. - -------------------------------------------------------------------- -Thu Dec 30 10:57:40 CET 2004 - kukuk@suse.de - -- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with - kernel-headers.SuSE.diff -- Revert nscd paths on old SuSE Linux distributions - -------------------------------------------------------------------- -Wed Dec 29 22:33:00 CET 2004 - kukuk@suse.de - -- Update to glibc 2.3.90 CVS branch -- Remove alarm-round.patch (merged upstream) - -------------------------------------------------------------------- -Thu Dec 9 14:19:05 CET 2004 - kukuk@suse.de - -- Update to current CVS -- Move nscd persistent database files back to /var/run/nscd - -------------------------------------------------------------------- -Mon Dec 6 15:43:08 CET 2004 - kukuk@suse.de - -- Update to current CVS -- Fix more kernel headers for userland inclusion - -------------------------------------------------------------------- -Fri Nov 26 14:33:20 CET 2004 - ro@suse.de - -- kernel-headers.diff: define __force in compiler.h - -------------------------------------------------------------------- -Thu Nov 25 17:52:39 CET 2004 - schwab@suse.de - -- Add Intel libm update. - -------------------------------------------------------------------- -Thu Nov 25 12:08:17 CET 2004 - kukuk@suse.de - -- Update to current glibc CVS -- Update kernel headers to 2.6.9 - -------------------------------------------------------------------- -Thu Nov 18 15:11:32 CET 2004 - kukuk@suse.de - -- Update to current glibc CVS - -------------------------------------------------------------------- -Mon Nov 15 14:11:27 CET 2004 - kukuk@suse.de - -- Update to current glibc CVS - -------------------------------------------------------------------- -Mon Nov 8 10:50:27 CET 2004 - kukuk@suse.de - -- Blacklist port 921 (lwresd) for usage by bindresvport() -- Update to current glibc CVS -- Add /var/run/nscd/* files as ghost entries - -------------------------------------------------------------------- -Mon Oct 18 13:54:04 CEST 2004 - aj@suse.de - -- Don't use special fdim functions for x86-64 since those give - wrong results for fdim (inf,inf). -- Fix ppc64 rebuild issue with ppc32 system [#47325]. - -------------------------------------------------------------------- -Wed Oct 13 14:06:55 CEST 2004 - kukuk@suse.de - -- Fix symlink librt.so -> tls/librt.so.1 -- Backout last glob changes -- Disable nptl as default for linking - -------------------------------------------------------------------- -Tue Oct 12 21:12:15 CEST 2004 - kukuk@suse.de - -- Install kernel-headers after merging linuxthreads/NPTL headers - -------------------------------------------------------------------- -Tue Oct 12 09:36:48 CEST 2004 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Mon Oct 11 15:11:03 CEST 2004 - kukuk@suse.de - -- Make NPTL default for linking - -------------------------------------------------------------------- -Fri Oct 1 13:34:49 CEST 2004 - kukuk@suse.de - -- Update to current CVS snapshot -- Add workaround for linuxthreads/without-__threads bug -- Remove KDE/ldconfig workaround -- Set SuSE ABI note to 9.3 - -------------------------------------------------------------------- -Sun Sep 26 16:56:19 CEST 2004 - kukuk@suse.de - -- Add lib/nptl/librt.so symlink to tls/librt.so.1 -- Update to current CVS - -------------------------------------------------------------------- -Sat Sep 25 13:43:09 CEST 2004 - kukuk@suse.de - -- Implement mq support for rtkaio and enable it again - -------------------------------------------------------------------- -Fri Sep 24 15:37:08 CEST 2004 - kukuk@suse.de - -- Add zh_SG.UTF-8 [Bug #46024] - -------------------------------------------------------------------- -Thu Sep 23 16:22:33 CEST 2004 - kukuk@suse.de - -- Sync sys/mount.h and linux/fs.h - -------------------------------------------------------------------- -Wed Sep 22 15:33:10 CEST 2004 - kukuk@suse.de - -- Make mdns support configurable in /etc/host.conf - -------------------------------------------------------------------- -Mon Sep 20 17:58:13 CEST 2004 - kukuk@suse.de - -- Fix invalidating of nscd caches and getaddrinfo() - -------------------------------------------------------------------- -Fri Sep 17 07:13:01 CEST 2004 - kukuk@suse.de - -- Update to current CVS (nscd and glob.h fixes) - -------------------------------------------------------------------- -Thu Sep 16 16:37:45 CEST 2004 - kukuk@suse.de - -- Fix getaddrinfo/nscd support - -------------------------------------------------------------------- -Wed Sep 15 14:11:29 CEST 2004 - kukuk@suse.de - -- Update to current CVS, remove merged patches - -------------------------------------------------------------------- -Sun Sep 12 09:06:31 CEST 2004 - kukuk@suse.de - -- Update to CVS: Fix nscd crash if one service is disabled -- glob.h: Add workaround for invalid prototypes -- nss_compat: Check that buffer is larger than 0 bytes - -------------------------------------------------------------------- -Sat Sep 11 00:50:47 CEST 2004 - kukuk@suse.de - -- Update to CVS: Fix cdefs.h for C++ usage - -------------------------------------------------------------------- -Fri Sep 10 14:31:47 CEST 2004 - kukuk@suse.de - -- Add lwres to hosts search order in nsswitch.conf -- Update to current CVS -- Use new nscd paths for socket/pid file -- Enable NPTL on i586 -- Add --print-all option to getconf - -------------------------------------------------------------------- -Thu Sep 2 11:13:48 CEST 2004 - kukuk@suse.de - -- Fix NPTL header files on x86-64 for 32bit compilation -- Apply various fixes from CVS -- Remove pre-Install for -devel package (no longer necessary) - -------------------------------------------------------------------- -Wed Aug 25 16:16:32 CEST 2004 - kukuk@suse.de - -- Don't compile in eval.c - -------------------------------------------------------------------- -Mon Aug 23 10:20:09 CEST 2004 - kukuk@suse.de - -- Update to current CVS: - - Use CVS version for last fix. - - Add malloc sanity checks for double free. - -------------------------------------------------------------------- -Sat Aug 21 00:06:58 CEST 2004 - schwab@suse.de - -- Fix cancellable syscalls in librt w/ linuxthreads. - -------------------------------------------------------------------- -Fri Aug 20 20:40:38 CEST 2004 - kukuk@suse.de - -- Update to current CVS [#43993] - -------------------------------------------------------------------- -Thu Aug 19 13:56:15 CEST 2004 - schwab@suse.de - -- Better fix for asm-ia64/gcc_intrin.h. - -------------------------------------------------------------------- -Wed Aug 18 14:53:47 CEST 2004 - kukuk@suse.de - -- Update to current CVS -- Workaround linux/ixjuser.h problem not including compiler.h -- Workaround linux/capi.h problem not including compiler.h - -------------------------------------------------------------------- -Tue Aug 17 18:32:29 CEST 2004 - schwab@suse.de - -- Fix asm-ia64/gcc_intrin.h. - -------------------------------------------------------------------- -Tue Aug 17 12:13:41 CEST 2004 - kukuk@suse.de - -- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] - -------------------------------------------------------------------- -Mon Aug 16 11:51:37 CEST 2004 - kukuk@suse.de - -- Update to current CVS version and update to - kernel-headers 2.6.8.1 to fix NPTL deadlock problems -- Disable linuxthreads/tst-clock1, does not work on i586 and lower - -------------------------------------------------------------------- -Fri Aug 13 14:45:31 CEST 2004 - kukuk@suse.de - -- Update to current CVS version -- Cleanup/adjust all patches - -------------------------------------------------------------------- -Thu Jun 17 12:12:31 CEST 2004 - kukuk@suse.de - -- Fix sched_setaffinity return/errno code in error case [#42124] - -------------------------------------------------------------------- -Wed Jun 16 07:45:07 CEST 2004 - meissner@suse.de - -- Updated altivec set/get/swapcontext patch to fix - more problems on altivec capable machines [#42039]. -- glibc is also able to build on -pmac64 kernels. - -------------------------------------------------------------------- -Mon Jun 14 20:12:00 CEST 2004 - kukuk@suse.de - -- Add fixes from CVS: - - sysconf return value fixes - - nscd host caching deadlock - - backtrace for s390/s390x/ia64 static linked binaries - -------------------------------------------------------------------- -Mon Jun 14 18:54:05 CEST 2004 - kukuk@suse.de - -- Increase listen backlog in RPC code [#41955] - -------------------------------------------------------------------- -Wed Jun 9 16:21:30 CEST 2004 - meissner@suse.de - -- Fixed typos in powerpc* *context functions to not destroy the r19 - register and save the v19 register correctly. [#41790] - -------------------------------------------------------------------- -Sat Jun 5 08:40:29 CEST 2004 - aj@suse.de - -- Fix makecontext with more than 6 arguments on x86-64 [#40546]. - -------------------------------------------------------------------- -Mon May 24 18:04:38 CEST 2004 - kukuk@suse.de - -- Update to kernel-headers 2.6.6 -- Update to current glibc CVS -- Disable rtkaio temporary - -------------------------------------------------------------------- -Sun May 23 21:44:19 CEST 2004 - kukuk@suse.de - -- Fix pthread_cond_wait on not ix86 and x86-64 architectures - -------------------------------------------------------------------- -Thu May 20 14:11:47 CEST 2004 - kukuk@suse.de - -- Add PPC64 kernel header file fixes [#40831,#40870] - -------------------------------------------------------------------- -Wed May 19 16:18:37 CEST 2004 - kukuk@suse.de - -- Add additional NPTL fixes from CVS - -------------------------------------------------------------------- -Tue May 18 10:52:27 CEST 2004 - schwab@suse.de - -- Fix mapping of DSOs with holes. - -------------------------------------------------------------------- -Fri May 14 13:50:37 CEST 2004 - schwab@suse.de - -- Fix rounding in alarm [#40552]. - -------------------------------------------------------------------- -Wed May 12 11:43:38 CEST 2004 - schwab@suse.de - -- Fix uninitialized array in regexp compiler [#40009]. - -------------------------------------------------------------------- -Tue May 11 11:45:08 CEST 2004 - kukuk@suse.de - -- Apply lot of fixes from current CVS -- Fix alignment of stack for makecontext on x86-64 [Bug #39413] -- Make XTABS identical to TABDLY on PPC - -------------------------------------------------------------------- -Wed May 5 13:50:51 CEST 2004 - kukuk@suse.de - -- Add some header fixes to match POSIX - -------------------------------------------------------------------- -Tue May 4 11:27:15 CEST 2004 - meissner@suse.de - -- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) - -------------------------------------------------------------------- -Mon May 3 13:42:12 CEST 2004 - kukuk@suse.de - -- Port --mlock option for ld.so from UL1 [Bug #39569] - -------------------------------------------------------------------- -Tue Apr 20 11:23:55 CEST 2004 - kukuk@suse.de - -- Add execstack fix for s390 - -------------------------------------------------------------------- -Mon Apr 19 13:11:27 CEST 2004 - kukuk@suse.de - -- Update to current CVS version (fix problems with new binutils - and gcc) - -------------------------------------------------------------------- -Mon Apr 19 08:29:42 CEST 2004 - kukuk@suse.de - -- Add pthread_getattr_np and syslog fixes from CVS -- Update gb18030 and big5hkscs gconv modules [Bug #39080] - -------------------------------------------------------------------- -Sat Apr 17 17:42:48 CEST 2004 - schwab@suse.de - -- Pacify autobuild. - -------------------------------------------------------------------- -Thu Apr 15 10:07:19 CEST 2004 - kukuk@suse.de - -- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf -- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] - -------------------------------------------------------------------- -Thu Apr 15 00:37:28 CEST 2004 - schwab@suse.de - -- Remove /usr/i386-linux from ld.so.conf, - -------------------------------------------------------------------- -Wed Apr 14 11:49:05 CEST 2004 - kukuk@suse.de - -- Fix linux/compiler.h for glibc inclusion -- Really fix ffsl on s390x - -------------------------------------------------------------------- -Sat Apr 10 00:42:04 CEST 2004 - schwab@suse.de - -- Fix syntax error in memcmp. - -------------------------------------------------------------------- -Fri Apr 9 16:22:31 CEST 2004 - kukuk@suse.de - -- Update from CVS: linuxthread debug fixes -- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) -- Fix ffsl weak alias on s390x -- Update to 2.6.5 kernel headers - -------------------------------------------------------------------- -Thu Apr 8 00:24:46 CEST 2004 - meissner@suse.de - -- forward umount to umount2 on ppc64 because umount syscall - does not exist - -------------------------------------------------------------------- -Mon Apr 5 14:40:18 CEST 2004 - kukuk@suse.de - -- Sync with current CVS (which is nearly identical with most of - our latest patches) - -------------------------------------------------------------------- -Fri Apr 2 14:18:11 CEST 2004 - kukuk@suse.de - -- Make fstatvfs64 working on 32bit architectures -- Add fwrite LFS fix from aj -- Add powerpc fixes from CVS -- Fix wrong errno code for shm_unlink [Bug #38013] - -------------------------------------------------------------------- -Wed Mar 31 09:31:56 CEST 2004 - kukuk@suse.de - -- Add three fixes from CVS: - - Call __nptl_deallocate_tsd for main thread, too - - setgroups: optimizations for huge number of groups - - initgroups: Limit the initial allocation to 64 entries - -------------------------------------------------------------------- -Tue Mar 30 17:36:18 CEST 2004 - kukuk@suse.de - -- Add IUTF8 to bits/termios.h [Bug #34725] -- *affinitiy.c: Prepend GLIBC_ to version names - -------------------------------------------------------------------- -Sat Mar 27 09:52:53 CET 2004 - kukuk@suse.de - -- Fix wrong return value of getXXbyYY_r in case key was not - found [Bug #37181] -- Fix typo in dl-open -- Don't set errno in NSS NIS module if group was not found - -------------------------------------------------------------------- -Fri Mar 26 12:39:27 CET 2004 - aj@suse.de - -- Add pow10/pow10f aliases for AMD64. - -------------------------------------------------------------------- -Thu Mar 25 16:42:57 CET 2004 - kukuk@suse.de - -- Update to latest CVS snapshot - -------------------------------------------------------------------- -Sat Mar 20 07:49:49 CET 2004 - aj@suse.de - -- Fix further problems with sched_[sg]etaffinity calls. - -------------------------------------------------------------------- -Fri Mar 19 19:57:35 CET 2004 - aj@suse.de - -- Fix sched_setaffinity compile problem. - -------------------------------------------------------------------- -Fri Mar 19 19:44:32 CET 2004 - kukuk@suse.de - -- Remove conflict with special aaa_base version (rpm will handle - this with file conflict) - -------------------------------------------------------------------- -Fri Mar 19 15:43:19 CET 2004 - kukuk@suse.de - -- Add SuSE abi note -- Add madvise patch -- Update to current CVS - -------------------------------------------------------------------- -Wed Mar 17 13:59:14 CET 2004 - kukuk@suse.de - -- Use official NPTL version fix -- Add LD_DEBUG=statistic for x86-64 -- Fix two JB_SIZE redefinitions on PPC -- Add two fixes for execstack - -------------------------------------------------------------------- -Mon Mar 15 08:11:33 CET 2004 - kukuk@suse.de - -- Require kernel 2.6.4 for glibc/NPTL -- Remove siginfo_t/si_band patch (needs to be fixed in kernel) -- Update linuxthreads_db and nptl_db -- Add libidn fixes from CVS - -------------------------------------------------------------------- -Sat Mar 13 19:53:58 CET 2004 - kukuk@suse.de - -- Adjust filelist (remove libcidn.a and libcidn_p.a) - -------------------------------------------------------------------- -Sat Mar 13 16:01:42 CET 2004 - kukuk@suse.de - -- Update to current CVS (merge of patches) -- Fix siginfo_t/si_band [Bug #34330] - -------------------------------------------------------------------- -Thu Mar 11 18:35:05 CET 2004 - mls@suse.de - -- Add mdns support to resolver library - -------------------------------------------------------------------- -Thu Mar 11 16:01:43 CET 2004 - kukuk@suse.de - -- Update kernel headers to 2.6.4 -- Update to current glibc CVS - -------------------------------------------------------------------- -Wed Mar 10 15:44:25 CET 2004 - bg@suse.de - -- Update hppa patches. - -------------------------------------------------------------------- -Mon Mar 8 15:19:01 CET 2004 - kukuk@suse.de - -- Fix vDSO on IA64 - -------------------------------------------------------------------- -Mon Mar 8 13:25:48 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Add libidn - - Lot of dynamic loader changes - -------------------------------------------------------------------- -Thu Mar 4 10:50:09 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Fix posix_fadvise vs. posix_fadvise64 - -------------------------------------------------------------------- -Tue Mar 2 16:51:44 CET 2004 - kukuk@suse.de - -- Fix PPC kernel header files -- Update from glibc CVS - - NPTL fixes - - nscd fixes - -------------------------------------------------------------------- -Tue Mar 2 12:11:38 CET 2004 - schwab@suse.de - -- Fix ppc32 to always use stat64 syscall. - -------------------------------------------------------------------- -Sat Feb 28 17:30:17 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Fix compiler warnings - - NPTL: Don't use CLONE_STOPPED - - Revert vDSO changes - -------------------------------------------------------------------- -Fri Feb 27 10:05:48 CET 2004 - kukuk@suse.de - -- Update from glibc CVS: - - Real NGROUP_MAX fix - - Lot of NPTL fixes - - clock_settime fix -- Add no_NO back (required by OpenI18N spec and [Bug #34745]) - -------------------------------------------------------------------- -Thu Feb 26 14:52:07 CET 2004 - kukuk@suse.de - -- Workaround broken NGROUP_MAX function - -------------------------------------------------------------------- -Thu Feb 26 12:10:37 CET 2004 - kukuk@suse.de - -- Add insserv PreRequires for nscd -- Update from CVS: NPTL and getaddrinfo memory leak fixes, - Get NGROUP_MAX from /proc filesystem - -------------------------------------------------------------------- -Sat Feb 21 06:22:23 CET 2004 - kukuk@suse.de - -- Update from CVS: IA64 relo fix, lot of PPC fixes -- Fix linux/mod_devicetable.h for userland inclusion -- Enable NPTL on Alpha - -------------------------------------------------------------------- -Fri Feb 20 01:08:26 CET 2004 - schwab@suse.de - -- Fix pthread_barrier_wait. - -------------------------------------------------------------------- -Thu Feb 19 09:46:46 CET 2004 - kukuk@suse.de - -- Update from CVS: More NPTL fixes -- nscd.init: Cleanups - -------------------------------------------------------------------- -Wed Feb 18 15:49:09 CET 2004 - kukuk@suse.de - -- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and - asm-ppc/bitops.h for userland inclusion. - -------------------------------------------------------------------- -Wed Feb 18 11:24:35 CET 2004 - bg@suse.de - -- Update hppa patches for current glibc -- Add workaround for ICE in hppa - -------------------------------------------------------------------- -Tue Feb 17 13:54:28 CET 2004 - kukuk@suse.de - -- Update from CVS: - - PPC nptl compatiblity fix - - NSCD patches merged - - ld.so.preload: Igreno missing files - - getaddrinfo: Fix problem with IPv6 addresses - -------------------------------------------------------------------- -Tue Feb 17 11:42:59 CET 2004 - aj@suse.de - -- Fix string optimizations init code on AMD64. - -------------------------------------------------------------------- -Sat Feb 14 07:10:42 CET 2004 - kukuk@suse.de - -- Update from CVS (for NPTL fixes and new PPC longjmp) -- Fix nscd deadlock with kernel 2.6 [Bug #34507] - -------------------------------------------------------------------- -Fri Feb 13 14:19:25 CET 2004 - aj@suse.de - -- Add more string/memory optimizations for AMD64. - -------------------------------------------------------------------- -Thu Feb 12 17:07:08 CET 2004 - kukuk@suse.de - -- Fix regex bug with invalid UTF-8 strings - -------------------------------------------------------------------- -Thu Feb 12 16:31:51 CET 2004 - aj@suse.de - -- Add more string optimizations for AMD64. - -------------------------------------------------------------------- -Wed Feb 11 16:14:53 CET 2004 - kukuk@suse.de - -- Update to current CVS snapshot -- Fix _IOC_TYPECHECK on s390/s390x/parisc -- Compile rtkaio only with NPTL -- Remove glibcbug (was dropped since glibc uses bugzilla now) -- Disable parallel build on s390x - -------------------------------------------------------------------- -Tue Feb 10 15:38:37 CET 2004 - schwab@suse.de - -- Work around invalid use of kernel headers in some packages. - -------------------------------------------------------------------- -Fri Feb 6 19:57:04 CET 2004 - kukuk@suse.de - -- Add kernel stat fix for PPC -- Add fix for off-by-one error in regex code - -------------------------------------------------------------------- -Thu Feb 5 18:04:45 CET 2004 - kukuk@suse.de - -- Update kernel header files to 2.6.2 - -------------------------------------------------------------------- -Tue Feb 3 17:14:38 CET 2004 - bg@suse.de - -- Update hppa patch - -------------------------------------------------------------------- -Tue Feb 3 16:24:47 CET 2004 - kukuk@suse.de - -- Fix ypclnt speedup patch -- Update to current CVS snapshot - -------------------------------------------------------------------- -Mon Jan 26 13:44:39 CET 2004 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Wed Jan 21 10:23:42 CET 2004 - aj@suse.de - -- Do not run in parallel on s390. - -------------------------------------------------------------------- -Mon Jan 19 15:49:51 CET 2004 - ro@suse.de - -- really fix linux/percpu.h to compile in userland - -------------------------------------------------------------------- -Fri Jan 16 11:14:49 CET 2004 - kukuk@suse.de - -- Update version.h to 2.6.1 -- Fix linux/percpu.h to compile in userland -- Update to current CVS snapshot -- Revert nscd path changes - -------------------------------------------------------------------- -Wed Jan 14 12:06:13 CET 2004 - kukuk@suse.de - -- Update to Kernel Headers 2.6.1 -- Update to current CVS snapshot -- Don't ignore make check on IA64 any longer - -------------------------------------------------------------------- -Sat Jan 10 01:56:48 CET 2004 - schwab@suse.de - -- Locale no_NO has been renamed to nb_NO. - -------------------------------------------------------------------- -Fri Jan 9 14:09:01 CET 2004 - kukuk@suse.de - -- Temporary ignore make check on IA64 and PPC - (known kernel/compiler bugs) - -------------------------------------------------------------------- -Fri Jan 9 00:36:51 CET 2004 - stepan@suse.de - -- fix v4l2 headers - -------------------------------------------------------------------- -Wed Jan 7 13:09:26 CET 2004 - kukuk@suse.de - -- Update to glibc CVS from 20040107 -- Remove manual pages which are now part of man-pages - -------------------------------------------------------------------- -Thu Dec 18 13:41:37 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031218 -- Update ot final 2.6.0 kernel headers -- Fix syntax error in spec file -- Update HPPA patch - -------------------------------------------------------------------- -Mon Dec 15 19:19:08 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031215 - -------------------------------------------------------------------- -Fri Dec 12 10:19:52 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031212 -- disable rtkaio (does not work with kernel 2.6 yet) - -------------------------------------------------------------------- -Fri Dec 5 10:00:28 CET 2003 - kukuk@suse.de - -- Update to glibc 2.3.3 CVS -- Make an extra sub package for nscd - -------------------------------------------------------------------- -Thu Nov 27 13:08:32 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031127 -- Add nsswitch.conf (moved from aaa_base) -- Add ld.so.conf (moved from aaa_base) [Bug #33277] -- Fix ceil on AMD64 - -------------------------------------------------------------------- -Fri Nov 21 14:40:29 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031121 -- Obsolete epoll (glibc-devel contains now this header files) - -------------------------------------------------------------------- -Wed Nov 19 15:54:58 CET 2003 - kukuk@suse.de - -- Add patch so that ld.so supports linuxthreads and nptl -- PPC64 requires kernel 2.4.21 -- Update to glibc CVS from 20031119 - -------------------------------------------------------------------- -Fri Nov 14 14:05:38 CET 2003 - bg@suse.de - -- Add hppa patches for current glibc. - -------------------------------------------------------------------- -Fri Nov 14 13:32:06 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031114 -- Remove PPC64 symbol version patch - -------------------------------------------------------------------- -Thu Nov 13 12:10:15 CET 2003 - schwab@suse.de - -- Fix last change covering libNoVersion. - -------------------------------------------------------------------- -Mon Nov 10 16:52:09 CET 2003 - schwab@suse.de - -- Specfile cleanup. - -------------------------------------------------------------------- -Thu Nov 6 14:10:17 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031106 - -------------------------------------------------------------------- -Wed Nov 5 15:26:06 CET 2003 - uli@suse.de - -- added a number of ARM fixes (glibc-2.3.2-armformat.patch, - glibc-armisa.patch, glibc-sjlj.patch) - -------------------------------------------------------------------- -Mon Oct 27 21:13:09 CET 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031027 -- kernel headers: update to 2.6.0-test9 -- nptl: Use -fno-unit-at-a-time on AMD64, too - -------------------------------------------------------------------- -Thu Oct 23 13:34:25 CEST 2003 - kukuk@suse.de - -- Update to current CVS version - -------------------------------------------------------------------- -Wed Oct 22 19:01:37 CEST 2003 - kukuk@suse.de - -- nptl: Fix prototype in configure script -- nptl: Use -fno-unit-at-a-time -- locale: Add nb_NO - -------------------------------------------------------------------- -Fri Oct 17 16:56:58 CEST 2003 - kukuk@suse.de - -- Increase timeout for make check on overloaded architectures - -------------------------------------------------------------------- -Thu Oct 16 18:19:13 CEST 2003 - kukuk@suse.de - -- Fix building as normal user - -------------------------------------------------------------------- -Wed Oct 15 16:31:32 CEST 2003 - kukuk@suse.de - -- Fix putpwent/putgrent -- Make build as normal user - -------------------------------------------------------------------- -Tue Oct 14 21:13:25 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031014 - -------------------------------------------------------------------- -Tue Oct 14 13:26:06 CEST 2003 - aj@suse.de - -- Fix w_acosf for AMD64. - -------------------------------------------------------------------- -Tue Oct 14 10:49:36 CEST 2003 - kukuk@suse.de - -- Fix asm-sparc/kbio.h to compile kbdrate/X11 - -------------------------------------------------------------------- -Mon Oct 13 12:11:53 CEST 2003 - kukuk@suse.de - -- Update to kernel header files from 2.6.0-test7 - -------------------------------------------------------------------- -Fri Oct 10 17:11:01 CEST 2003 - schwab@suse.de - -- Fix misnamed syscalls. - -------------------------------------------------------------------- -Tue Oct 7 21:13:09 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031007 - -------------------------------------------------------------------- -Fri Oct 3 09:12:38 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20031003 -- Fix kernel ioctl header files for PPC/PPC64 -- Removed dl-reloc.c fix, merged upstream - -------------------------------------------------------------------- -Wed Oct 1 16:49:19 CEST 2003 - kukuk@suse.de - -- Update to glibc cvs from 20031001 -- Remove sysmacros.h fix, merged upstream -- Add dl-reloc.c fix for compiler warnings - -------------------------------------------------------------------- -Mon Sep 29 11:49:19 CEST 2003 - kukuk@suse.de - -- Update kernel-headers to 2.6.0-test6 -- Fix sysmacros.h to compile with -ansi - -------------------------------------------------------------------- -Sat Sep 27 20:58:07 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030927 -- Remove SO_BSDCOMPAT (obsoleted by kernel) -- Make _IOC_TYPECHECK useable for userland programs - -------------------------------------------------------------------- -Fri Sep 26 10:01:15 CEST 2003 - kukuk@suse.de - -- Remove obsolete patches -- Update to crypt_blowfish 0.4.5 - -------------------------------------------------------------------- -Fri Sep 26 08:51:10 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030926 -- Update to nptl 0.60 - -------------------------------------------------------------------- -Sat Sep 20 21:13:04 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030920 -- Update to nptl 0.59 - -------------------------------------------------------------------- -Wed Sep 17 12:13:35 CEST 2003 - kukuk@suse.de - -- Disable TLS for i586 glibc [Bug #31034] - -------------------------------------------------------------------- -Tue Sep 16 15:38:19 CEST 2003 - kukuk@suse.de - -- Remove db1.85 - -------------------------------------------------------------------- -Mon Sep 15 21:30:51 CEST 2003 - kukuk@suse.de - -- Update to glibc CVS from 20030915 - -------------------------------------------------------------------- -Mon Sep 15 18:43:19 CEST 2003 - kukuk@suse.de - -- Update to kernel 2.6.0-test5 header files - -------------------------------------------------------------------- -Sat Sep 13 07:01:40 CEST 2003 - kukuk@suse.de - -- Add librtkaio, a librt using kernel aio - -------------------------------------------------------------------- -Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de - -- Update to current CVS -- Remove patches which are merged in CVS -- Update to nptl-0.58 -- Remove _POSIX_VERSION hack - -------------------------------------------------------------------- -Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de - -- version.h: Fix comment how to compile kernel modules - -------------------------------------------------------------------- -Wed Sep 10 19:27:05 CEST 2003 - aj@suse.de - -- Install en_US.ISO-8859-15 under this name [#30373]. - -------------------------------------------------------------------- -Tue Sep 9 14:22:02 CEST 2003 - aj@suse.de - -- Fix last patch. - -------------------------------------------------------------------- -Mon Sep 8 18:20:56 CEST 2003 - aj@suse.de - -- Fix setting up of user signal handler in linuxthreads on x86_64. - -------------------------------------------------------------------- -Fri Sep 5 13:44:13 CEST 2003 - kukuk@suse.de - -- Add dl-tls.c to fix out of memory with static TLS errors - -------------------------------------------------------------------- -Wed Sep 3 21:03:13 CEST 2003 - kukuk@suse.de - -- Update glibc-linuxthreads -- Set _POSIX_VERSION back to 199209 - -------------------------------------------------------------------- -Mon Sep 1 18:23:49 CEST 2003 - kukuk@suse.de - -- Fix typo in nss_compat patch - -------------------------------------------------------------------- -Mon Sep 1 09:13:14 CEST 2003 - kukuk@suse.de - -- Add opendir fix for usage with NPTL -- Fix getspnam/getspent in nss_compat [Bug #29689] -- Set _POSIX2_VERSION back to 199209 - -------------------------------------------------------------------- -Wed Aug 27 15:22:40 CEST 2003 - kukuk@suse.de - -- Update to current CVS version - -------------------------------------------------------------------- -Mon Aug 25 09:35:41 CEST 2003 - kukuk@suse.de - -- Update to current CVS version - -------------------------------------------------------------------- -Mon Aug 18 21:17:25 CEST 2003 - aj@suse.de - -- increase stack size for linuxthreads/set-context. - ------------------------------------------------------------------- -Mon Aug 18 13:23:00 CEST 2003 - aj@suse.de - -- Fix mathinline.h for i386 to compile under C++ without warnings. - -------------------------------------------------------------------- -Sun Aug 17 09:59:25 CEST 2003 - ro@suse.de - -- kernel-headers.dif: don't include device.h from videodev.h - -------------------------------------------------------------------- -Fri Aug 15 10:39:49 CEST 2003 - kukuk@suse.de - -- Update to current cvs (fixes assert usage in C++ source code) - -------------------------------------------------------------------- -Thu Aug 14 10:34:27 CEST 2003 - kukuk@suse.de - -- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] -- On i686, include glibc with and without floating stack enabled -- Update to current cvs -- Update to nptl 0.56 - -------------------------------------------------------------------- -Thu Jul 31 16:57:36 CEST 2003 - kukuk@suse.de - -- Reenable new quota.h - -------------------------------------------------------------------- -Wed Jul 30 09:59:21 CEST 2003 - kukuk@suse.de - -- Update to current cvs -- Update kernel headers to 2.6.0-test2 -- Disable sys/quota.h update -- Enable TLS on AMD64 again - -------------------------------------------------------------------- -Mon Jul 28 17:18:33 CEST 2003 - kukuk@suse.de - -- Update to current cvs -- Disable TLS on AMD64 temporary -- Update sys/quota.h to match new kernel implementation - -------------------------------------------------------------------- -Fri Jul 25 10:14:44 CEST 2003 - kukuk@suse.de - -- Update to current cvs -- Update kernel headers to 2.6.0-test1 -- Update to nptl 0.55 -- Change minimal symbol version on PPC64 back to 2.2.5 - -------------------------------------------------------------------- -Wed Jul 23 18:13:40 CEST 2003 - meissner@suse.de - -- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just - merging over the asm-ppc64 things). - -------------------------------------------------------------------- -Wed Jul 23 12:59:04 CEST 2003 - aj@suse.de - -- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without - rpath. -- Fix bugs exposed by unit-at-a-time option. - -------------------------------------------------------------------- -Fri Jul 18 07:27:47 CEST 2003 - aj@suse.de - -- Fix compilation with unit-at-a-time enabled compiler. -- Enlarge stack for tst-setcontext test. - -------------------------------------------------------------------- -Mon Jun 30 13:09:25 CEST 2003 - kukuk@suse.de - -- Update to current CVS (includes if_arp.h and nss_compat changes) -- Update to nptl 0.50 -- Kernel header fixes for userland inclusion - -------------------------------------------------------------------- -Wed Jun 25 09:34:17 CEST 2003 - kukuk@suse.de - -- Update to current CVS -- Add target host and CVS checkout to glibc version printout -- Adjust fnmatch fix -- Update kernel headers to 2.5.73 - -------------------------------------------------------------------- -Tue Jun 24 23:09:11 CEST 2003 - kukuk@suse.de - -- Fix typos in syscalls.list on Alpha - -------------------------------------------------------------------- -Mon Jun 23 10:53:41 CEST 2003 - kukuk@suse.de - -- fix typo in linuxthreads on SPARC -- Update to current CVS -- Update to nptl 0.48 - -------------------------------------------------------------------- -Thu Jun 19 11:10:55 CEST 2003 - kukuk@suse.de - -- Disable nss_compat patch again - -------------------------------------------------------------------- -Wed Jun 18 10:51:07 CEST 2003 - kukuk@suse.de - -- Fix reading of locale.alias file -- Update to current CVS snapshot -- Update to nptl 0.47 -- Some kernel header file fixes for PPC64/IA64 -- Update nss_compat patch - -------------------------------------------------------------------- -Thu Jun 12 23:42:09 CEST 2003 - kukuk@suse.de - -- Update to current CVS snapshot -- Finish patch for printing linker warning - -------------------------------------------------------------------- -Wed Jun 11 11:45:42 CEST 2003 - kukuk@suse.de - -- Update to nptl 0.45 -- Update to current CVS snapshot -- Add patch to print linker warning, if a static binary calls - functions using NSS - -------------------------------------------------------------------- -Tue Jun 10 16:46:47 CEST 2003 - kukuk@suse.de - -- Use %find_lang macro and cleanup glibc-locale filelist - -------------------------------------------------------------------- -Thu Jun 5 17:28:36 CEST 2003 - kukuk@suse.de - -- Complete mathinline.h fixes - -------------------------------------------------------------------- -Thu Jun 5 10:10:02 CEST 2003 - kukuk@suse.de - -- linux/compiler.h: Define all inline variants to __inline__ - -------------------------------------------------------------------- -Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Update to nptl 0.43 -- More kernel header fixes -- Make --no-archive default for localedef - -------------------------------------------------------------------- -Tue May 27 14:09:31 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Update to nptl 0.40 -- Disable nss_compat patch -- Update to kernel headers from 2.5.70 - -------------------------------------------------------------------- -Fri May 23 10:50:37 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Add patches to make nss_compat work with every service - -------------------------------------------------------------------- -Mon May 19 10:57:13 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Add patch for better binary compatibility (errno, h_errno) - -------------------------------------------------------------------- -Fri May 16 09:32:39 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Update to nptl 0.39 -- Add URL tag -- asm-i386/byteorder.h: fix asm vs. __asm__ - -------------------------------------------------------------------- -Wed May 14 22:31:52 CEST 2003 - schwab@suse.de - -- Fix missing syscall numbers on ia64. - -------------------------------------------------------------------- -Wed May 14 08:59:09 CEST 2003 - kukuk@suse.de - -- More kernel headers fixes for i386, ia64, ppc and s390 - -------------------------------------------------------------------- -Mon May 12 16:49:51 CEST 2003 - kukuk@suse.de - -- Update to current glibc CVS snapshot -- Fix lot of more kernel headers -- Adjust netinet/igmp.h patch -- Copy linux/version.h in place before compiling glibc - -------------------------------------------------------------------- -Fri May 9 13:25:08 CEST 2003 - kukuk@suse.de - -- Fix bits/stdio.h -- Fix lot of kernel headers to work in userspace -- Fix netinet/igmp.h -- Enable TLS on PPC - -------------------------------------------------------------------- -Wed May 7 10:58:25 CEST 2003 - kukuk@suse.de - -- Update CVS snapshot -- Enable TLS on IA64 -- Update to nptl 0.37 -- Update kernel-headers to 2.5.69 - -------------------------------------------------------------------- -Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de - -- fix install_info --delete call and move from preun to postun - -------------------------------------------------------------------- -Fri Apr 11 06:32:25 CEST 2003 - aj@suse.de - -- Do not build locales in parallel. - -------------------------------------------------------------------- -Tue Apr 8 16:12:36 CEST 2003 - kukuk@suse.de - -- Disable TLS for PPC - -------------------------------------------------------------------- -Mon Apr 7 14:16:03 CEST 2003 - kukuk@suse.de - -- Update CVS snapshot - -------------------------------------------------------------------- -Sat Apr 5 09:55:15 CEST 2003 - kukuk@suse.de - -- Disable TLS for ia64 -- Update to nptl 0.34 -- Update to CVS snapshot - -------------------------------------------------------------------- -Fri Apr 4 16:23:39 CEST 2003 - kukuk@suse.de - -- Remove libNoVersion from filelist on alpha -- Add nptl docu - -------------------------------------------------------------------- -Fri Apr 4 10:23:35 CEST 2003 - kukuk@suse.de - -- Update to nptl 0.33 -- Run ldconfig after installation -- Update to CVS snapshot - -------------------------------------------------------------------- -Sat Mar 29 17:47:56 CET 2003 - kukuk@suse.de - -- Update to CVS snapshot -- Add USAGI patches for kernel-headers -- Add nptl on i686 -- Enable --with-tls -- Implement NI_NUMSERICSCOPE for getnameinfo -- Implement AI_V4MAPPED/AI_ALL for getaddrinfo -- Implement AI_ADDRCONFIG for getaddrinfo -- Add USAGI patch for kernel headers - -------------------------------------------------------------------- -Mon Mar 24 21:46:45 CET 2003 - schwab@suse.de - -- Sanitize . - -------------------------------------------------------------------- -Mon Mar 17 08:45:27 CET 2003 - aj@suse.de - -- Fix tst-aio7 testcase and enable it again. -- Enable %fs for x86-64. -- Install en_US.ISO-8859-15 for libstdc++. -- Fix bits/syscalls.h for x86-64. - -------------------------------------------------------------------- -Thu Mar 13 10:36:24 CET 2003 - kukuk@suse.de - -- Revert tcgetattr change [Bug #25173/#25174] - -------------------------------------------------------------------- -Tue Mar 4 15:15:33 CET 2003 - aj@suse.de - -- Fix lround/lrint functions. - -------------------------------------------------------------------- -Sat Mar 1 07:24:22 CET 2003 - aj@suse.de - -- Update to 2.3.2 release. - -------------------------------------------------------------------- -Wed Feb 26 21:45:36 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot (fixes OOo and mysql problems) - -------------------------------------------------------------------- -Mon Feb 24 17:52:02 CET 2003 - kukuk@suse.de - -- Disable aio7 test on s390(x), too. - -------------------------------------------------------------------- -Mon Feb 24 14:19:20 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot (post 2.3.2-pre1) -- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS -- Remove libc23-ppc64-cvshead20021210.patch - -------------------------------------------------------------------- -Thu Feb 20 16:19:21 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot -- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be - included already. - -------------------------------------------------------------------- -Wed Feb 19 11:45:35 CET 2003 - olh@suse.de - -- add glibc-2.3-ppc32-textrel.patch - glibc-2.3-ppc64-vfork-20030214.patch - -------------------------------------------------------------------- -Fri Feb 14 14:51:11 CET 2003 - kukuk@suse.de - -- Extend getent to print all IP addresses of one host - -------------------------------------------------------------------- -Thu Feb 13 18:34:50 CET 2003 - kukuk@suse.de - -- Update to current snapshot - -------------------------------------------------------------------- -Wed Feb 12 11:50:54 CET 2003 - kukuk@suse.de - -- Update to current snapshot (contains official fix for #23513) - -------------------------------------------------------------------- -Tue Feb 11 15:28:16 CET 2003 - kukuk@suse.de - -- Update to current snapshot -- Fix corruption of internal data in gethostbyname2 [Bug #23513] - -------------------------------------------------------------------- -Sun Feb 9 12:20:55 CET 2003 - aj@suse.de - -- Fix cancellation of system calls on x86-64. - -------------------------------------------------------------------- -Sat Feb 8 10:43:02 CET 2003 - kukuk@suse.de - -- Fix wrong logic in dynamic resolv.conf patch - -------------------------------------------------------------------- -Fri Feb 7 17:35:12 CET 2003 - kukuk@suse.de - -- Fix access of _res symbol in multithreaded programs -- Add "dynamic resolv.conf" patch to libnss_dns, too. -- Remove obsolete db2 manual pages -- Update to current snapshot (fixes [Bug #23363]) - -------------------------------------------------------------------- -Thu Feb 6 18:06:36 CET 2003 - kukuk@suse.de - -- Update to current snapshot -- Use install-info for info pages - -------------------------------------------------------------------- -Tue Feb 4 20:12:51 CET 2003 - schwab@suse.de - -- Fix regexp parsing. - -------------------------------------------------------------------- -Mon Feb 3 14:44:21 CET 2003 - meissner@suse.de - -- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for - ppc and ppc64 kernel headers. - -------------------------------------------------------------------- -Fri Jan 31 22:12:03 CET 2003 - schwab@suse.de - -- Fix building on s390[x]. - -------------------------------------------------------------------- -Fri Jan 31 15:20:00 CET 2003 - kukuk@suse.de - -- Update to current glibc cvs - -------------------------------------------------------------------- -Thu Jan 30 16:05:32 CET 2003 - aj@suse.de - -- Fix one build problem on sparc. -- Fix asm-x86_64/mtrr.h. - -------------------------------------------------------------------- -Wed Jan 29 12:57:23 CET 2003 - kukuk@suse.de - -- Update to current glibc cvs -- Fix libm-ulps for x86-64 and ia64 - -------------------------------------------------------------------- -Thu Jan 23 16:47:33 CET 2003 - schwab@suse.de - -- Fix use of DT_FINI_ARRAY. -- Temporarily disable tst-aio7 test on ia64. - -------------------------------------------------------------------- -Tue Jan 14 22:41:33 CET 2003 - schwab@suse.de - -- Fix ia64 for non-tls build. - -------------------------------------------------------------------- -Tue Jan 14 21:51:24 CET 2003 - aj@suse.de - -- Package libpthread_nonshared.a. - -------------------------------------------------------------------- -Mon Jan 13 10:29:36 CET 2003 - kukuk@suse.de - -- Add fixed version of x86-64-linuxthreads-disable-fs.diff -- Readd parts of libm-x86-64.diff -- Update to current cvs snapshot -- Add fix for errno compatibility -- Add s390(x) vfork fixes - -------------------------------------------------------------------- -Sun Jan 12 19:16:13 CET 2003 - kukuk@suse.de - -- Update to current cvs snapshot - -------------------------------------------------------------------- -Fri Jan 3 19:09:36 CET 2003 - bg@suse.de - -- removed obsolete patch for hppa - -------------------------------------------------------------------- -Fri Dec 20 23:15:48 CET 2002 - kukuk@suse.de - -- Update to current cvs snapshot -- Obsoletes glibc-2.3-setjmp-ppc64.diff -- Obsoletes build-alpha.diff -- Obsoletes libm-x86-64.diff -- Disable activate-spinlocks.diff temporary -- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) - -------------------------------------------------------------------- -Tue Dec 17 16:01:13 CET 2002 - olh@suse.de - -- remove glibc-2.2.5-ppc64-bits-socket_h.diff - add glibc-2.3-setjmp-ppc64.diff - add libc23-ppc64-cvshead20021210.patch - dont run configure in subshell, it can fail and rpm cant catch it - -------------------------------------------------------------------- -Fri Dec 13 20:01:30 CET 2002 - schwab@suse.de - -- Add more ia64 syscalls. - -------------------------------------------------------------------- -Fri Dec 6 22:06:41 CET 2002 - olh@suse.de - -- build also the locals parallel - do not fail with parallel calculation on lowmem systems - -------------------------------------------------------------------- -Tue Dec 3 11:16:30 CET 2002 - aj@suse.de - -- Build parallel on x86-64. -- Activate fast spinlocks in malloc for x86 and x86-64. -- Integrate new math library from AMD for x86-64. - -------------------------------------------------------------------- -Fri Nov 29 11:08:03 CET 2002 - bg@suse.de - -- Fix build on hppa. - -------------------------------------------------------------------- -Thu Nov 28 21:31:09 CET 2002 - aj@suse.de - -- Fix build on alpha. - -------------------------------------------------------------------- -Thu Nov 28 15:45:09 CET 2002 - aj@suse.de - -- Update to CVS version from 2002-11-28. -- Do not use %fs for threads for now on x86-64. -- Fix fnmatch bug with multibyte strings. - -------------------------------------------------------------------- -Tue Nov 12 12:41:17 CET 2002 - bg@suse.de - -- Updated hppa patches - -------------------------------------------------------------------- -Thu Nov 7 14:00:04 CET 2002 - kukuk@suse.de - -- getaddrinfo(): get host information for AF_INET and AF_INET6 only - from the same service [Bug #21237] - -------------------------------------------------------------------- -Thu Nov 7 12:11:29 CET 2002 - bg@suse.de - -- Fix build of linuxthreads for hppa - -------------------------------------------------------------------- -Tue Nov 5 16:31:11 CET 2002 - bg@suse.de - -- Use current kernel-headers for parisc -- Add support for hppa - -------------------------------------------------------------------- -Tue Nov 5 15:29:32 CET 2002 - kukuk@suse.de - -- Update to current CVS snapshot - -------------------------------------------------------------------- -Tue Oct 22 16:21:34 CEST 2002 - schwab@suse.de - -- Fix ia64 syscall numbers. - -------------------------------------------------------------------- -Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de - -- Fix alignment in locale-archive. - -------------------------------------------------------------------- -Mon Oct 21 17:16:51 CEST 2002 - kukuk@suse.de - -- Update to glibc 2.3.1 cvs 20021021 -- Remove nss_dns6 patch - -------------------------------------------------------------------- -Tue Oct 15 14:58:34 CEST 2002 - kukuk@suse.de - -- Update to glibc 2.3.1 cvs 20021015 - -------------------------------------------------------------------- -Wed Oct 2 14:06:31 CEST 2002 - kukuk@suse.de - -- Update to glibc 2.3 cvs 20021002 -- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) - -------------------------------------------------------------------- -Wed Sep 25 11:43:08 CEST 2002 - mls@suse.de - -- build with -finline-limit=2000 on mips/armv4l - -------------------------------------------------------------------- -Tue Sep 17 14:54:26 CEST 2002 - schwab@suse.de - -- Add new ia64 syscall numbers. - -------------------------------------------------------------------- -Mon Sep 16 17:24:01 CEST 2002 - meissner@suse.de - -- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. -- Aligned powerpc bits/sem.h to be the same as the other 64bit - archs, keeping the 32bit layout. -- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. - -------------------------------------------------------------------- -Thu Sep 12 15:56:07 CEST 2002 - meissner@suse.de - -- ppc/ppc64: added more biarch things to the SystemV IPC headers - which are needed to get 64bit ipc / IPC_STAT to work. - -------------------------------------------------------------------- -Mon Sep 9 18:52:53 CEST 2002 - bk@suse.de - -- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) -- s390x: requires 64-bit kernel - -------------------------------------------------------------------- -Mon Sep 9 15:40:23 CEST 2002 - kukuk@suse.de - -- Increase minimum value of MAXPACKET in libnss_dns, too - -------------------------------------------------------------------- -Mon Sep 9 14:31:04 CEST 2002 - uli@suse.de - -- all architectures are created equal, but some are more equal - than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, - ia64, s390x and ppc64 to fit 64 bit __ino_t type - -------------------------------------------------------------------- -Fri Sep 6 17:26:53 MEST 2002 - mls@suse.de - -- fix squeeze bug in db-1.85: set dirty flag after page modification - -------------------------------------------------------------------- -Fri Sep 6 15:44:17 CEST 2002 - kukuk@suse.de - -- Increase minimum value of MAXPACKET - -------------------------------------------------------------------- -Mon Sep 2 10:38:40 CEST 2002 - kukuk@suse.de - -- Fix asm header files for sparc/sparc64 - -------------------------------------------------------------------- -Fri Aug 30 13:18:51 CEST 2002 - aj@suse.de - -- Revert linuxthreads for x86-64 for now. - -------------------------------------------------------------------- -Wed Aug 28 16:15:18 CEST 2002 - aj@suse.de - -- Add optimized math routines for x86-64. - -------------------------------------------------------------------- -Tue Aug 27 15:52:49 CEST 2002 - olh@suse.de - -- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" - -------------------------------------------------------------------- -Mon Aug 26 21:56:22 CEST 2002 - olh@suse.de - -- add ppc64_glibc_2.2.5_sunrpc-fix.patch - * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds - __powerpc64__ specific fields and adjust size/alignment for 64-bit. - -------------------------------------------------------------------- -Fri Aug 23 17:04:38 CEST 2002 - aj@suse.de - -- Use floating stacks for x86-64. -- Add LICENSE file. -- Fix profiling code on x86-64. -- Add strcspn, strpbrk and strspn optimizations for x86-64. -- Fix makecontext for x86-64. - -------------------------------------------------------------------- -Thu Aug 15 08:59:16 CEST 2002 - aj@suse.de - -- Use biarch headers already for building so that bits/syscalls.h is - build correctly. -- Fix bits/syscalls.h for x86-64. -- Remove *xattr patches. - -------------------------------------------------------------------- -Thu Aug 8 16:59:27 CEST 2002 - kukuk@suse.de - -- Update to current cvs (calloc variable overflow fixed) -- Apply fix for calloc fix -- Add *xattr system calls and error number - -------------------------------------------------------------------- -Tue Aug 6 12:45:06 CEST 2002 - kukuk@suse.de - -- Update to current cvs (IPv6 fixes) - -------------------------------------------------------------------- -Mon Aug 5 12:29:59 CEST 2002 - aj@suse.de - -- Implement *context functions for x86-64. - -------------------------------------------------------------------- -Sat Aug 3 16:01:07 CEST 2002 - kukuk@suse.de - -- Update kernel-headers to version 2.4.19 -- Add PreRequires "filesystem". - -------------------------------------------------------------------- -Thu Aug 1 18:23:37 CEST 2002 - bk@suse.de - -- added s390-may2002.diff with some chunks from may2002 drop -- give make check a second chance on s390(x), but fail if not(race) - -------------------------------------------------------------------- -Tue Jul 30 11:40:41 CEST 2002 - kukuk@suse.de - -- sunrpc/xdr_array.c: Check for variable overflow -- Ignore failed make check on s390(x) - -------------------------------------------------------------------- -Tue Jul 30 08:31:24 CEST 2002 - aj@suse.de - -- Add optimisations for x86-64. - -------------------------------------------------------------------- -Mon Jul 29 09:38:04 CEST 2002 - kukuk@suse.de - -- Don't allocate/free category name in setlocale() unnecessarily - (for IBM Java [Bug #17065]). - -------------------------------------------------------------------- -Tue Jul 23 13:36:31 CEST 2002 - kukuk@suse.de - -- Update to current glibc cvs (pread/pwrite fixes) -- Remove extra de.po, is in official tarball now. - -------------------------------------------------------------------- -Sat Jul 20 07:14:26 CEST 2002 - aj@suse.de - -- Fix profiling for x86-64. - -------------------------------------------------------------------- -Fri Jul 19 16:26:26 CEST 2002 - meissner@suse.de - -- Fixed the PPC64 patch, several superflous files removed. -- Reenabled make check for ppc64. - -------------------------------------------------------------------- -Wed Jul 17 14:13:58 CEST 2002 - kukuk@suse.de - -- Update to current glibc cvs -- Fix kernel headers for s390/s390x -- Move some binaries/shell scripts and manual pages to the - correct subpackage - -------------------------------------------------------------------- -Tue Jul 16 14:51:48 CEST 2002 - meissner@suse.de - -- Merged latest PowerPC patch from IBM. - * Lots of ppc64 related fixes. - * Start of biarch support. - * Changed struct stat in 64bit ABI. - -------------------------------------------------------------------- -Fri Jul 12 18:29:17 CEST 2002 - aj@suse.de - -- Add biarch patch for s390 and s390x. - -------------------------------------------------------------------- -Mon Jul 8 10:45:49 CEST 2002 - aj@suse.de - -- Add some optimized x86-64 math routines and a fixed lgammal - implementation. -- Testsuite on x86-64 should pass now. -- Run ldconfig in postinstall. -- Fix memleak in catgets. - -------------------------------------------------------------------- -Sat Jul 6 13:38:48 CEST 2002 - kukuk@suse.de - -- Fix typo in create_biarch_asm.sh (asm-sparc path) - -------------------------------------------------------------------- -Thu Jul 4 21:59:43 CEST 2002 - kukuk@suse.de - -- Fix typo in manpages/Makefile -- Fix filelist (on some archs ld-linux.so.2 was missing) - -------------------------------------------------------------------- -Thu Jul 4 10:02:46 CEST 2002 - kukuk@suse.de - -- Revert mktime patch (check for year < 70) -- Replace ifarch i386 with ix86 -- Add patch for arm -- Include pt_chown again - -------------------------------------------------------------------- -Wed Jul 3 16:05:05 CEST 2002 - kukuk@suse.de - -- Add more new manual pages -- Fix spec file (renaming of ld-*, creating of include/asm header - files) -- Update to current CVS version -- Fix kernel-headers for x86-64 (don't overwrite patched version) -- Rename Equador -> Ecuador [Bug #16648] -- Add hint about security problem of host caching with nscd to - config file. - -------------------------------------------------------------------- -Tue Jun 25 14:29:14 CEST 2002 - aj@suse.de - -- Fix dl-machine.h for x86-64 to compile with new binutils. -- Fix mtrr.h header for x86-64. -- Do not package pt_chown. - -------------------------------------------------------------------- -Tue Jun 18 14:28:40 CEST 2002 - sf@suse.de - -- reverted changes from Tue Jun 11 10:04:55 CEST 2002 - (took the kernel-headers from before, readded patch9) -- add new archive with kernel-headers for x86_64 -- add autofs patch - -------------------------------------------------------------------- -Mon Jun 17 17:12:39 CEST 2002 - bk@suse.de - -- remove s390* from the list of archs that ignore check fail - -------------------------------------------------------------------- -Thu Jun 13 20:38:00 CEST 2002 - uli@suse.de - -- fixed typos in spec - -------------------------------------------------------------------- -Thu Jun 13 13:35:43 CEST 2002 - schwab@suse.de - -- Fix ssize_t and __ipc_pid_t for ppc64. - -------------------------------------------------------------------- -Wed Jun 12 09:47:12 CEST 2002 - uli@suse.de - -- fix errlist.c for ARM as well - -------------------------------------------------------------------- -Tue Jun 11 10:04:55 CEST 2002 - sf@suse.de - -- made new kernel-header archive from kernel-source -- added asm-ppc64 to kernel-headers -- removed patch9 as it is obsoleted by the new kernel-headers - -------------------------------------------------------------------- -Fri Jun 7 14:29:30 CEST 2002 - olh@suse.de - -- update asm-ppc64/ioctls.h, missing TIOCGDEV - -------------------------------------------------------------------- -Thu Jun 6 17:57:41 CEST 2002 - olh@suse.de - -- fix glibc-ppc64 patch - -------------------------------------------------------------------- -Thu Jun 6 15:09:16 CEST 2002 - olh@suse.de - -- update ppc64_glibc_ldconfig.diff - -------------------------------------------------------------------- -Thu Jun 6 10:09:24 CEST 2002 - ke@suse.de - -- Update de.po from - http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. -- Use only translated entries to make the testsuite happy; call - msgattrib on de.po and hu.po [# 16438]. - -------------------------------------------------------------------- -Mon Jun 3 09:58:54 CEST 2002 - aj@suse.de - -- Clean up generation of asm includes for bi-arch systems. -- Enable profiling for x86-64. - -------------------------------------------------------------------- -Mon Jun 3 08:52:38 CEST 2002 - kukuk@suse.de - -- Add fix for weak declaration "_old_sys_nerr" -- Remove already disabled alpha patch -- Update to current CVS - -------------------------------------------------------------------- -Sat Jun 1 10:54:41 CEST 2002 - olh@suse.de - -- fix stat for real, wrong size for st_nlink - -------------------------------------------------------------------- -Wed May 29 18:24:57 CEST 2002 - olh@suse.de - -- add ppc64_glibc_2.2.5-types.diff, fixes stat() - -------------------------------------------------------------------- -Wed May 29 10:38:34 CEST 2002 - olh@suse.de - -- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance - -------------------------------------------------------------------- -Thu May 23 08:32:00 MEST 2002 - aj@suse.de - -- Rename __thread to fix problems with GCC 3.2. - -------------------------------------------------------------------- -Mon May 20 11:37:42 CEST 2002 - olh@suse.de - -- add ppc64 kernel headers - add create_ppc_asm.sh - update ppc64 patch, use /lib64/ld64.so.1 - move generic syscalls.list to ppc64/32 - set/getrlimit GLIBC2.0 is ppc32 only - use parallel make on ppc and ppc64 - do not chroot as user - cleanup nested ifarch for dynamic linker - -------------------------------------------------------------------- -Wed May 15 10:25:45 CEST 2002 - aj@suse.de - -- Fix building of linuxthreads with current GCC. - -------------------------------------------------------------------- -Mon May 13 10:04:37 CEST 2002 - olh@suse.de - -- fix ppc64 RTLDLIST ld64.so rewrite - -------------------------------------------------------------------- -Sat May 11 02:09:06 CEST 2002 - schwab@suse.de - -- Add div/mod compatibility functions for ia64. - -------------------------------------------------------------------- -Fri May 10 13:56:59 CEST 2002 - olh@suse.de - -- add ppc64 support - -------------------------------------------------------------------- -Thu May 9 10:06:19 CEST 2002 - aj@suse.de - -- Add sys/io.h for x86-64. - -------------------------------------------------------------------- -Mon May 6 18:12:51 CEST 2002 - ihno@suse.de - -- corrected memory calculation for parallel build - -------------------------------------------------------------------- -Fri May 3 16:28:23 CEST 2002 - kukuk@suse.de - -- Add fix to compile math.h on SPARC with g++ - -------------------------------------------------------------------- -Thu May 2 11:29:29 CEST 2002 - kukuk@suse.de - -- Update to current CVS 2.2 branch -- Add x86-64 fix for crti.o and /usr/lib64 with libpthread - -------------------------------------------------------------------- -Fri Apr 26 16:51:48 CEST 2002 - kukuk@suse.de - -- define sqrtl alias for PowerPC - -------------------------------------------------------------------- -Mon Apr 22 07:56:00 CEST 2002 - aj@suse.de - -- Fix vfork for x86-64. -- Fix handling of ld.so.cache for x86-64. - -------------------------------------------------------------------- -Thu Apr 18 09:16:58 CEST 2002 - aj@suse.de - -- Allow testsuite to fail for x86-64. -- Add ULPs for x86-64. - -------------------------------------------------------------------- -Wed Apr 17 16:36:51 CEST 2002 - kukuk@suse.de - -- Update to current snapshot (mktime and dl fixes) -- Update hu.po -- Do not build a profiled glibc for x86-64 - -------------------------------------------------------------------- -Fri Apr 12 10:33:31 CEST 2002 - kukuk@suse.de - -- Update to current snapshot (fix SPARC compile) -- Revert do-lookup.h patch on Alpha (does not work here) - -------------------------------------------------------------------- -Wed Apr 10 15:09:33 CEST 2002 - aj@suse.de - -- Fix linuxthreads for x86-64. - -------------------------------------------------------------------- -Wed Apr 10 13:02:48 CEST 2002 - aj@suse.de - -- Add x86-64.diff to fix glob64. - -------------------------------------------------------------------- -Wed Apr 10 10:26:22 CEST 2002 - kukuk@suse.de - -- Update kernel-headers to 2.4.19pre4 (with x86-64 support) -- Update glibc to current cvs snapshot -- Allow old currencies (before EUR) - -------------------------------------------------------------------- -Tue Apr 2 15:58:49 CEST 2002 - aj@suse.de - -- Update ULPs. - -------------------------------------------------------------------- -Thu Mar 21 16:18:58 CET 2002 - kukuk@suse.de - -- Create html pages after installation of info pages [Bug #15283] - -------------------------------------------------------------------- -Tue Mar 12 16:09:51 CET 2002 - kukuk@suse.de - -- Add db1 fix if blocksize is not ^2 - -------------------------------------------------------------------- -Sat Mar 2 18:18:15 CET 2002 - kukuk@suse.de - -- Add fix for format string bug - -------------------------------------------------------------------- -Sat Mar 2 10:44:31 CET 2002 - kukuk@suse.de - -- Fix return value of nice wrapper - -------------------------------------------------------------------- -Fri Mar 1 14:33:09 CET 2002 - kukuk@suse.de - -- Add fix for corrupt ut_line -- Add fix for current gcc 3.1 -- Add patch for nice return values - -------------------------------------------------------------------- -Thu Feb 28 14:53:42 CET 2002 - kukuk@suse.de - -- Add fix for rtime, swscanf and ia64 - -------------------------------------------------------------------- -Mon Feb 18 13:22:05 CET 2002 - kukuk@suse.de - -- When a dlopened module references a weak symbol from another - dlopened module (loaded with RTLD_GLOBAL) no dependency was - generated for this fact, so the second module was unloaded even - if the first one was still around. - -------------------------------------------------------------------- -Sun Feb 17 10:51:53 CET 2002 - kukuk@suse.de - -- Add pthread/signal bugfix [Bug #13280] -- Fix directory file list (don't include /usr/include) - -------------------------------------------------------------------- -Thu Feb 14 19:46:04 CET 2002 - kukuk@suse.de - -- Use defattr in spec file to avoid problems with not existing - UIDs and rpm. - -------------------------------------------------------------------- -Thu Feb 14 13:22:13 CET 2002 - aj@suse.de - -- Update ULPs for GCC 3.1. - -------------------------------------------------------------------- -Wed Feb 13 16:03:20 CET 2002 - kukuk@suse.de - -- Apply db1 patch from mls@suse.de to fix rpm problems - -------------------------------------------------------------------- -Tue Feb 12 02:01:42 CET 2002 - ro@suse.de - -- fix owner/group for kernel headers - -------------------------------------------------------------------- -Mon Feb 11 15:17:18 CET 2002 - kukuk@suse.de - -- Add another solution for the glob problem - -------------------------------------------------------------------- -Thu Feb 7 16:20:49 CET 2002 - kukuk@suse.de - -- Add fix for glob (glob should not call globfree) -- Add fix for innetgr - -------------------------------------------------------------------- -Wed Feb 6 22:01:29 CET 2002 - kukuk@suse.de - -- Use correct BuildRoot - -------------------------------------------------------------------- -Wed Feb 6 16:40:49 CET 2002 - kukuk@suse.de - -- Update hu.po - -------------------------------------------------------------------- -Wed Feb 6 15:36:56 CET 2002 - kukuk@suse.de - -- Set LC_CTYPE for error messages in localedef [Bug #12878] - -------------------------------------------------------------------- -Mon Feb 4 14:26:48 CET 2002 - kukuk@suse.de - -- Add fixes from CVS: dynamic loader, readv and writev seg.fault - and various architecture fixes for alpha and mips -- Don't compile with -g on Alpha -- Add fix for possible endless loop fix - -------------------------------------------------------------------- -Fri Feb 1 15:58:41 CET 2002 - bk@suse.de - -- merged s390x lib64 patch and spec file changes - -------------------------------------------------------------------- -Wed Jan 23 15:39:02 CET 2002 - kukuk@suse.de - -- Split glibc into glibc and glibc-locale -- Create more UTF8 locale - -------------------------------------------------------------------- -Mon Jan 21 10:45:19 CET 2002 - kukuk@suse.de - -- Update to official glibc 2.2.5 - -------------------------------------------------------------------- -Wed Jan 16 18:29:33 CET 2002 - kukuk@suse.de - -- Remove /var/adm/setup/setup.timeconfig - -------------------------------------------------------------------- -Wed Jan 16 17:22:52 CET 2002 - kukuk@suse.de - -- Apply S390 fix - -------------------------------------------------------------------- -Wed Jan 9 15:33:49 CET 2002 - kukuk@suse.de - -- Update to glibc 2.2.5pre1 - -------------------------------------------------------------------- -Tue Jan 8 18:41:29 CET 2002 - egmont@suselinux.hu - -- Added partial Hungarian translation - -------------------------------------------------------------------- -Tue Jan 8 13:52:51 CET 2002 - kukuk@suse.de - -- Add patch to pass math tests with gcc 3.x -- Update to current CVS version - -------------------------------------------------------------------- -Thu Jan 3 18:05:48 CET 2002 - kukuk@suse.de - -- Update kernel header files to 2.4.17 - -------------------------------------------------------------------- -Tue Jan 1 10:55:34 CET 2002 - kukuk@suse.de - -- Update current CVS version, add final fixes for LSB test suite - -------------------------------------------------------------------- -Tue Dec 18 15:27:42 CET 2001 - poeml@suse.de - -- Install ja_JP.SJIS locale. - -------------------------------------------------------------------- -Sat Dec 15 15:27:12 CET 2001 - schwab@suse.de - -- Fix missing declaration of md5_uintptr. - -------------------------------------------------------------------- -Fri Dec 14 10:11:17 CET 2001 - kukuk@suse.de - -- Update to correct CVS branch - -------------------------------------------------------------------- -Thu Dec 13 14:50:25 CET 2001 - kukuk@suse.de - -- Update to current CVS -- Increase PATH_MAX to 4096 (including the leading zero) -- Clear pointer if asprintf fails -- pthread_key_delete should not contact thread manager before it - is created. - -------------------------------------------------------------------- -Tue Dec 11 22:35:07 CET 2001 - kukuk@suse.de - -- Fix prelink patch - -------------------------------------------------------------------- -Tue Dec 11 18:53:12 CET 2001 - kukuk@suse.de - -- Add fixes for LSB.os test suite (ftw, grantpt and ftok) -- Update to current CVS -- Add prelink patch - -------------------------------------------------------------------- -Fri Dec 7 19:16:30 CET 2001 - kukuk@suse.de - -- Merge with current CVS -- Add blowfish crypt - -------------------------------------------------------------------- -Fri Nov 23 11:55:14 CET 2001 - uli@suse.de - -- added armv4l arch to spec -- added arm kernel headers -- added trivial fix for dl-machine.h from CVS (see arm.dif) - -------------------------------------------------------------------- -Thu Nov 15 10:29:33 CET 2001 - adrian@suse.de - -- add mips architecture to spec file -- apply further mips fixes for ld -- activate %clean again - -------------------------------------------------------------------- -Sun Nov 11 12:12:03 CET 2001 - kukuk@suse.de - -- Fix lost permissions of shell script on SPARC - -------------------------------------------------------------------- -Thu Nov 8 18:40:33 CET 2001 - kukuk@suse.de - -- Add 32bit UID fixes - -------------------------------------------------------------------- -Thu Nov 8 11:47:21 CET 2001 - kukuk@suse.de - -- More fixes for asm-ia64 header files - -------------------------------------------------------------------- -Thu Nov 8 10:50:13 CET 2001 - kukuk@suse.de - -- Fix asm-i386/processor.h (don't align struct) -- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) -- Correct version number in version.h - -------------------------------------------------------------------- -Wed Nov 7 14:07:21 CET 2001 - uli@suse.de - -- fixed sys/io.h, sysmacros.h for icc - -------------------------------------------------------------------- -Tue Nov 6 16:53:04 CET 2001 - kukuk@suse.de - -- Update kernel-headers to 2.4.14 - -------------------------------------------------------------------- -Thu Nov 1 11:34:56 CET 2001 - kukuk@suse.de - -- Use again old rules to generate html files - -------------------------------------------------------------------- -Sun Oct 21 22:55:24 CEST 2001 - schwab@suse.de - -- Fix inttypes.h for C++. - -------------------------------------------------------------------- -Fri Oct 19 13:31:53 CEST 2001 - aj@suse.de - -- Fix typo in inttypes.h that presents compilation by non-GCC compilers. - -------------------------------------------------------------------- -Tue Oct 16 10:56:52 CEST 2001 - aj@suse.de - -- Update elf.h to include x86-64 defines since those are needed - by some other tools. - -------------------------------------------------------------------- -Fri Sep 28 15:59:19 CEST 2001 - schwab@suse.de - -- Readd patch from 2001-09-10 with corrections. -- Add compatibility patch for GCC 3. This allows to build glibc - with GCC 3. -- Require that make check succeeds on ia64. - -------------------------------------------------------------------- -Thu Sep 13 15:58:31 CEST 2001 - aj@suse.de - -- Add a better version of the threads-fork patch that fixes some - more places where interrupts can occur and does this a bit cleaner. - -------------------------------------------------------------------- -Tue Sep 11 13:50:37 CEST 2001 - aj@suse.de - -- Remove patch from 2001-09-10 since it breaks the dynamic linker. - -------------------------------------------------------------------- -Tue Sep 11 10:51:11 CEST 2001 - aj@suse.de - -- Fix bug in linuxthreads where manager and threads could - get out of synch due to an interrupted read call. - -------------------------------------------------------------------- -Mon Sep 10 18:20:32 CEST 2001 - schwab@suse.de - -- Fix handling of dependent dynamic objects for dlopen/dlclose. - -------------------------------------------------------------------- -Sat Sep 8 21:02:38 CEST 2001 - kukuk@suse.de - -- Don't create gconv cache (else iconv --list seg.faults) - -------------------------------------------------------------------- -Tue Aug 28 13:39:37 MEST 2001 - aj@suse.de - -- Improve dynamic linker to relocate dynamic objects faster. This - implies a small cache for symbol lookups and handling the ld -z combreloc - feature if binaries are linked this way. - -------------------------------------------------------------------- -Fri Aug 24 14:26:33 CEST 2001 - kukuk@suse.de - -- Add fix for handling of %l[] in vfscanf -- ldconfig removes stale links now -- Remove susehelp config files, now in susehelp itself - -------------------------------------------------------------------- -Wed Aug 22 15:26:06 CEST 2001 - aj@suse.de - -- Update s390 patch from IBM. - -------------------------------------------------------------------- -Fri Aug 17 14:11:16 CEST 2001 - kukuk@suse.de - -- Adjust dns6 patch for 2.2.4 -- Fix spec file (include lost libnss_dns6.so) -- Fix versionnumber in version.h [Bug #9759] -- Update kernel-header to 2.4.9 - -------------------------------------------------------------------- -Thu Aug 16 09:32:39 MEST 2001 - aj@suse.de - -- Update to 2.2.4 final. Add s390-ucontext patch. - -------------------------------------------------------------------- -Fri Aug 10 12:04:14 CEST 2001 - aj@suse.de - -- Update to current glibc version. Do not use the hardlink program - for compatification since localedef will do this itself now. - Create gconv cache. - -------------------------------------------------------------------- -Wed Aug 1 15:31:50 CEST 2001 - aj@suse.de - -- Add patch for zic to create copy of the timezone instead - of a symbolic link so that the file exists even if /usr is not - mounted. - Use i486 instead of i386 as default architecture for i386. - -------------------------------------------------------------------- -Sat Jul 28 08:36:27 CEST 2001 - kukuk@suse.de - -- Fix problem with linux/spinlock.h - -------------------------------------------------------------------- -Fri Jul 27 09:30:01 CEST 2001 - kukuk@suse.de - -- Update kernel-header files to 2.4.7 - -------------------------------------------------------------------- -Thu Jul 26 14:04:15 CEST 2001 - froh@suse.de - -- add fix for failing tst-setcontext on s390 - -------------------------------------------------------------------- -Wed Jul 25 09:29:38 CEST 2001 - aj@suse.de - -- Add patch to fix loading of dynamic libs in static programs for PPC. - -------------------------------------------------------------------- -Fri Jul 20 13:44:30 CEST 2001 - kukuk@suse.de - -- Update to current CVS snapshot -- Disable tst-regex and test-lfs - -------------------------------------------------------------------- -Fri Jul 6 15:26:54 CEST 2001 - kukuk@suse.de - -- Add da_DK@euro and da_DK.UTF-8 - -------------------------------------------------------------------- -Thu Jul 5 14:34:02 CEST 2001 - kukuk@suse.de - -- Update to current CVS snapshot -- Remove obsolete cvs patch -- Fix DNS/IPv6 patch -- Hardlink equal locale files - -------------------------------------------------------------------- -Fri Jun 22 15:59:21 CEST 2001 - olh@suse.de - -- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check - -------------------------------------------------------------------- -Tue Jun 19 06:41:03 EDT 2001 - bk@suse.de - -- added s390x support to spec file - -------------------------------------------------------------------- -Tue Jun 19 10:27:38 CEST 2001 - aj@suse.de - -- Fix profiling on PowerPC. - -------------------------------------------------------------------- -Fri Jun 15 17:58:22 CEST 2001 - schwab@suse.de - -- Fixup asm-ia64/atomic.h for user-space inclusion. - -------------------------------------------------------------------- -Tue Jun 12 11:14:08 CEST 2001 - aj@suse.de - -- Fix testsuite for sparc. - -------------------------------------------------------------------- -Mon Jun 11 13:56:16 CEST 2001 - aj@suse.de - -- Fix testsuite for powerpc and S390, build again on alpha. - -------------------------------------------------------------------- -Tue May 22 15:43:24 CEST 2001 - kukuk@suse.de - -- Update to current CVS snapshot -- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] - -------------------------------------------------------------------- -Sun May 13 15:19:42 CEST 2001 - kukuk@suse.de - -- Don't use absolute paths in pre-install-section - -------------------------------------------------------------------- -Fri May 4 19:20:10 CEST 2001 - kukuk@suse.de - -- Add special version.h which fails on compiling kernel modules - -------------------------------------------------------------------- -Sat Apr 28 18:32:51 CEST 2001 - kukuk@suse.de - -- Update to glibc 2.2.3, kernel-headers-2.4.4 - -------------------------------------------------------------------- -Tue Apr 24 16:04:32 CEST 2001 - schwab@suse.de - -- Fix feenableexcept on ia64. - -------------------------------------------------------------------- -Tue Apr 24 15:48:34 CEST 2001 - aj@suse.de - -- Install some more UTF-8 locales, fix tr_TR locale. - -------------------------------------------------------------------- -Thu Apr 12 17:42:08 CEST 2001 - kukuk@suse.de - -- Include our own texi2html - -------------------------------------------------------------------- -Wed Apr 11 18:50:12 CEST 2001 - kukuk@suse.de - -- Add fixes from SuSE kernel header files -- Add patch to reload /etc/resolv.conf if there was changes -- Add glibc.conf for susehelp (glibc-html pages) - -------------------------------------------------------------------- -Mon Apr 9 17:39:18 CEST 2001 - schwab@suse.de - -- Fix ld.so for kernel 2.4.3 on ia64. - -------------------------------------------------------------------- -Thu Apr 5 17:39:44 CEST 2001 - kukuk@suse.de - -- Add more fixes from CVS - -------------------------------------------------------------------- -Tue Apr 3 15:40:58 CEST 2001 - kukuk@suse.de - -- Fix isdn header files from kernel-headers - -------------------------------------------------------------------- -Fri Mar 30 18:40:09 CEST 2001 - kukuk@suse.de - -- Update kernel header files to 2.4.3 - -------------------------------------------------------------------- -Fri Mar 30 17:22:54 CEST 2001 - kukuk@suse.de - -- Merge s390 patches -- Fix rcmd_af() (allow PF_UNSPEC) - -------------------------------------------------------------------- -Fri Mar 30 08:52:32 CEST 2001 - aj@suse.de - -- Add some small fixes, fix spec file for removal of man-pages. - -------------------------------------------------------------------- -Thu Mar 29 18:16:09 CEST 2001 - kukuk@suse.de - -- Don't provide kernel_headers any longer -- Remove some man-pages which are now official in the man-pages - package - -------------------------------------------------------------------- -Thu Mar 29 08:33:19 CEST 2001 - aj@suse.de - -- Fix shmfs recognition. - -------------------------------------------------------------------- -Thu Mar 29 01:18:52 CEST 2001 - ro@suse.de - -- added db-splitmask fix from mls (hopefully work around bug in db1) - -------------------------------------------------------------------- -Wed Mar 28 09:02:54 CEST 2001 - aj@suse.de - -- Fix s390 to not generate wrong relocations, work around compiler - error. - -------------------------------------------------------------------- -Wed Mar 21 14:46:25 CET 2001 - kukuk@suse.de - -- glibc-devel obsoletes and provides linclude - -------------------------------------------------------------------- -Tue Mar 20 12:38:28 CET 2001 - kukuk@suse.de - -- Add strtok and other fixes from CVS -- Add yp_all fix - -------------------------------------------------------------------- -Tue Mar 13 13:57:16 CET 2001 - kukuk@suse.de - -- Add more s390 string.h fixes - -------------------------------------------------------------------- -Mon Mar 12 10:05:30 CET 2001 - aj@suse.de - -- Add fixes for s390, don't run testsuite on s390 for now. - -------------------------------------------------------------------- -Fri Mar 9 17:05:27 CET 2001 - kukuk@suse.de - -- Fix linux/init.h header file - -------------------------------------------------------------------- -Fri Mar 9 16:01:15 CET 2001 - aj@suse.de - -- Handle new EM_S390 value. - -------------------------------------------------------------------- -Fri Mar 9 15:33:55 CET 2001 - kukuk@suse.de - -- kernel-heaer fixes to build on Alpha - -------------------------------------------------------------------- -Thu Mar 8 16:02:45 CET 2001 - ro@suse.de - -- update kernel-headers to 2.4.2 - -------------------------------------------------------------------- -Thu Mar 8 12:53:56 CET 2001 - ro@suse.de - -- kernel-header fixes to build on s390 - -------------------------------------------------------------------- -Thu Feb 22 11:22:08 CET 2001 - schwab@suse.de - -- More kernel header fixes for IA64. - -------------------------------------------------------------------- -Tue Feb 20 11:18:53 CET 2001 - kukuk@suse.de - -- Remove optimisation not supported on all plattforms - -------------------------------------------------------------------- -Mon Feb 19 09:48:02 CET 2001 - kukuk@suse.de - -- Fix Optimization of glibc build -- Add Optimization for alphaev6 and sparcv9 - -------------------------------------------------------------------- -Sat Feb 17 17:19:40 CET 2001 - kukuk@suse.de - -- Update to glibc 2.2.2 from CVS - -------------------------------------------------------------------- -Thu Feb 15 16:51:12 CET 2001 - kukuk@suse.de - -- kernel header fixes for SPARC and IA64 - -------------------------------------------------------------------- -Tue Feb 13 14:19:43 CET 2001 - kukuk@suse.de - -- Make optimization for i686 work -- Add manual page for ldd - -------------------------------------------------------------------- -Mon Feb 12 16:05:23 CET 2001 - kukuk@suse.de - -- Fix more kernel headers - -------------------------------------------------------------------- -Thu Feb 8 16:34:27 CET 2001 - kukuk@suse.de - -- Fix more kernel-headers - -------------------------------------------------------------------- -Wed Feb 7 17:17:03 CET 2001 - kukuk@suse.de - -- Delete links in pre install section for glibc-devel - -------------------------------------------------------------------- -Wed Feb 7 01:08:26 CET 2001 - kukuk@suse.de - -- Fix kernel-header includes - -------------------------------------------------------------------- -Tue Feb 6 09:29:04 CET 2001 - kukuk@suse.de - -- Fix creating of /usr/include/asm on SPARC -- Add more CVS patches - -------------------------------------------------------------------- -Mon Feb 5 18:58:08 CET 2001 - kukuk@suse.de - -- Add some patches from CVS -- Include our own kernel header files - -------------------------------------------------------------------- -Mon Jan 22 18:47:24 CET 2001 - aj@suse.de - -- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. - -------------------------------------------------------------------- -Mon Jan 22 10:26:42 CET 2001 - aj@suse.de - -- Fix mmap64 on powerpc. - -------------------------------------------------------------------- -Tue Jan 16 08:42:33 CET 2001 - aj@suse.de - -- Fix sunrpc-udp.diff, add mman.h fix for powerpc. - -------------------------------------------------------------------- -Wed Jan 10 14:49:30 CET 2001 - aj@suse.de - -- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. - -------------------------------------------------------------------- -Tue Jan 9 09:01:41 CET 2001 - aj@suse.de - -- Add glibc-2.2.secure.diff to close some security holes. - -------------------------------------------------------------------- -Wed Jan 3 15:26:45 CET 2001 - schwab@suse.de - -- Fix strtol and friends on 64 bit platforms. -- Use 8192 as default pagesize on ia64. -- Scan AUX vector also in statically linked programs. - -------------------------------------------------------------------- -Wed Jan 3 15:20:45 CET 2001 - aj@suse.de - -- Build some UTF-8 locales using a patch from Markus Kuhn. - -------------------------------------------------------------------- -Wed Dec 13 15:52:13 CET 2000 - aj@suse.de - -- Add compatibility patch for IPv6 and Linux 2.2. - -------------------------------------------------------------------- -Wed Dec 13 15:48:56 CET 2000 - schwab@suse.de - -- Update ia64 patch. - -------------------------------------------------------------------- -Sat Dec 9 13:30:23 CET 2000 - kukuk@suse.de - -- Fix resolver bug - -------------------------------------------------------------------- -Fri Dec 1 13:16:07 CET 2000 - kukuk@suse.de - -- Add bug fixes for setlocale and strncat -- strip gconv modules - -------------------------------------------------------------------- -Fri Nov 24 07:43:08 CET 2000 - kukuk@suse.de - -- Fix typo in spec file - -------------------------------------------------------------------- -Thu Nov 23 23:22:36 CET 2000 - kukuk@suse.de - -- Add hack for POWER3 - -------------------------------------------------------------------- -Wed Nov 22 13:03:19 CET 2000 - kukuk@suse.de - -- Add strncat bugfix for S/390 - -------------------------------------------------------------------- -Tue Nov 21 10:53:31 CET 2000 - kukuk@suse.de - -- Don't bulid 32bit compat packages - -------------------------------------------------------------------- -Mon Nov 20 15:46:44 CET 2000 - schwab@suse.de - -- Remove use of getpagesize syscall on ia64. -- Follow DT_INIT/DT_FINI change in compiler. - -------------------------------------------------------------------- -Sun Nov 19 22:43:40 CET 2000 - kukuk@suse.de - -- Minor specfile fixes - -------------------------------------------------------------------- -Thu Nov 16 17:38:47 CET 2000 - kukuk@suse.de - -- Add lot of more bug fixes - -------------------------------------------------------------------- -Tue Nov 14 16:52:59 CET 2000 - kukuk@suse.de - -- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de - -------------------------------------------------------------------- -Mon Nov 13 14:52:05 CET 2000 - aj@suse.de - -- Fix noversion.diff and spec file. - -------------------------------------------------------------------- -Sat Nov 11 08:40:42 CET 2000 - kukuk@suse.de - -- Fix nssv1 on PowerPC -- no libNoVersion on SPARC - -------------------------------------------------------------------- -Fri Nov 10 21:47:16 CET 2000 - kukuk@suse.de - -- Disable make check on PowerPC and Alpha - -------------------------------------------------------------------- -Fri Nov 10 17:09:57 CET 2000 - kukuk@suse.de - -- Update to final glibc 2.2 - -------------------------------------------------------------------- -Fri Nov 3 10:44:46 CET 2000 - kukuk@suse.de - -- Update to glibc-2.2-20001103 (glibc-2.1.97) -- Don't install libNoVersion on PowerPC -- Rename nssv1 -> glibc-nssv1 -- Rename libd -> glibc-profile, move libg.a to libc -- Rename libcinfo -> glibc-info -- Rename libchtml -> glibc-html -- Rename localedb -> glibc-i18ndata -- Rename libc -> glibc-devel -- Rename shlibs -> glibc - -------------------------------------------------------------------- -Sat Oct 28 09:10:07 CEST 2000 - kukuk@suse.de - -- Update to glibc-2.2-20001028 -- Enable more checks - -------------------------------------------------------------------- -Fri Oct 27 15:39:17 CEST 2000 - aj@suse.de - -- Fix NoVersion patch - -------------------------------------------------------------------- -Wed Oct 25 16:47:22 CEST 2000 - kukuk@suse.de - -- Update to glibc-2.2-20001025 - -------------------------------------------------------------------- -Sun Oct 22 16:31:32 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20001021 -- Update glibc-db to 2.1.95 -- Update ia64 patch - -------------------------------------------------------------------- -Fri Oct 20 15:54:24 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20001020 -- Add s390 spec file changes - -------------------------------------------------------------------- -Tue Oct 10 13:46:03 CEST 2000 - schwab@suse.de - -- Update to glibc 2.2-20001009. -- Fix TRAMPOLINE_TEMPLATE for ia64. - -------------------------------------------------------------------- -Sun Oct 1 17:08:32 CEST 2000 - schwab@suse.de - -- Export more ia64 specific symbols. - -------------------------------------------------------------------- -Tue Sep 26 12:14:37 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20000926 - -------------------------------------------------------------------- -Mon Sep 25 14:02:07 CEST 2000 - kukuk@suse.de - -- Update to glibc 2.2-20000925 snapshot - -------------------------------------------------------------------- -Thu Sep 14 11:43:51 CEST 2000 - schwab@suse.de - -- Update ia64 patch. - -------------------------------------------------------------------- -Fri Sep 8 19:44:17 CEST 2000 - bk@suse.de - -- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) - -------------------------------------------------------------------- -Wed Sep 6 09:44:36 CEST 2000 - fober@suse.de - -- merge s390-7.0 with STABLE: - - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 - - added new changes from IBM s390 codedrop - - removed glibc-dlopen-2.1.3-s390.diff which is - incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now - -------------------------------------------------------------------- -Tue Sep 5 18:19:46 CEST 2000 - kukuk@suse.de - -- Add glibc-2.1.security.dif - -------------------------------------------------------------------- -Fri Sep 1 11:14:25 CEST 2000 - olh@suse.de - -- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc - -------------------------------------------------------------------- -Wed Aug 30 16:16:04 CEST 2000 - olh@suse.de - -- remove sysdeps/powerpc/memset.S on ppc for POWER3 - -------------------------------------------------------------------- -Mon Aug 28 17:12:41 CEST 2000 - olh@suse.de - -- add glibc-2.1.sgi_fam.dif -- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 - -------------------------------------------------------------------- -Mon Aug 21 19:56:06 CEST 2000 - garloff@suse.de - -- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) - -------------------------------------------------------------------- -Tue Jul 25 08:41:48 CEST 2000 - kukuk@suse.de - -- Add mmap fix for PowerPC - -------------------------------------------------------------------- -Tue Jul 11 10:02:41 CEST 2000 - kukuk@suse.de - -- Remove "mutex is owned by current thread" bugfix for IBMs jdk - -------------------------------------------------------------------- -Mon Jun 26 16:47:54 CEST 2000 - schwab@suse.de - -- Update ia64 patch. - -------------------------------------------------------------------- -Tue Jun 20 15:33:43 CEST 2000 - kukuk@suse.de - -- Move html docu in extra package -- Update ia64 patch - -------------------------------------------------------------------- -Wed May 31 14:35:00 CEST 2000 - kukuk@suse.de - -- Remove LICENSE file, it's the same as COPYING.LIB -- Add libc docu as html - -------------------------------------------------------------------- -Sun May 28 14:44:42 CEST 2000 - kukuk@suse.de - -- Fix ldconfig on PPC and IA64 - -------------------------------------------------------------------- -Sat May 27 15:25:13 CEST 2000 - kukuk@suse.de - -- Merge new ldconfig fixes - -------------------------------------------------------------------- -Fri May 26 18:16:52 CEST 2000 - kukuk@suse.de - -- Update ia64 patch - -------------------------------------------------------------------- -Fri May 26 11:07:39 CEST 2000 - kukuk@suse.de - -- Fix (f)truncate64 and xdr_uint8_t - -------------------------------------------------------------------- -Wed May 24 22:23:12 CEST 2000 - kukuk@suse.de - -- Fix ldconfig.8 manual page - -------------------------------------------------------------------- -Thu May 18 17:53:09 CEST 2000 - bk@suse.de - -- added s390 dlopen fix - -------------------------------------------------------------------- -Tue May 16 16:48:13 CEST 2000 - bk@suse.de - -- updated s390 patches to match IBM_codedrop_2000_05_15 - -------------------------------------------------------------------- -Fri May 12 15:47:08 CEST 2000 - kukuk@suse.de - -- Fix netinet/in.h IPv6 compare - -------------------------------------------------------------------- -Fri May 12 14:47:15 CEST 2000 - schwab@suse.de - -- Update ia64 patches. - -------------------------------------------------------------------- -Fri May 12 14:22:11 CEST 2000 - kukuk@suse.de - -- Don't apply LFS patch - -------------------------------------------------------------------- -Tue May 9 22:21:23 CEST 2000 - kukuk@suse.de - -- Add LFS patches - -------------------------------------------------------------------- -Mon May 8 11:59:48 CEST 2000 - kukuk@suse.de - -- Add lot of bug fixes from CVS - -------------------------------------------------------------------- -Tue Apr 25 14:20:43 CEST 2000 - kukuk@suse.de - -- Fix nscd/getgrnam bug - -------------------------------------------------------------------- -Thu Apr 20 16:38:26 CEST 2000 - kukuk@suse.de - -- Remove /var/mail -> /var/spool/mail patch -- Update nscd.conf.5 manual page - -------------------------------------------------------------------- -Wed Apr 12 16:18:55 CEST 2000 - kukuk@suse.de - -- Add nscd patch from Chris Wing - -------------------------------------------------------------------- -Wed Apr 12 15:52:55 CEST 2000 - kukuk@suse.de - -- Add ldconfig fix from aj@suse.de - -------------------------------------------------------------------- -Wed Apr 12 11:33:02 CEST 2000 - schwab@suse.de - -- More ia64 patches. -- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. - -------------------------------------------------------------------- -Mon Apr 10 17:55:46 CEST 2000 - kukuk@suse.de - -- Support asm-sparc64 and asm-sparc on SPARC - -------------------------------------------------------------------- -Mon Apr 10 15:46:35 CEST 2000 - kukuk@suse.de - -- Create /etc/ld.so.cache always with permissions 0644 -- Update ia64 patches - -------------------------------------------------------------------- -Thu Apr 6 11:27:20 CEST 2000 - schwab@suse.de - -- Fix dynamic linker bug in ia64. -- Add ia64 spinlocks for db2. - -------------------------------------------------------------------- -Tue Apr 4 16:16:21 CEST 2000 - schwab@suse.de - -- New IA64 patches. -- Fix ldconfig -p. - -------------------------------------------------------------------- -Mon Apr 3 14:42:03 MEST 2000 - bk@suse.de - -- s390 team added s390 patches - -------------------------------------------------------------------- -Wed Mar 22 12:10:02 CET 2000 - kukuk@suse.de - -- Fix last SPARC patch - -------------------------------------------------------------------- -Tue Mar 21 17:48:01 CET 2000 - kukuk@suse.de - -- Add SPARC patches -- Add IA64 patches - -------------------------------------------------------------------- -Wed Mar 15 14:35:47 CET 2000 - kukuk@suse.de - -- Remove personality call (problematic on Alpha) -- Fix typo in localeconv -- alpha/ioperm.c> Add entry for "Nautilus". - -------------------------------------------------------------------- -Tue Mar 7 18:17:07 CET 2000 - kukuk@suse.de - -- Add locale SIGSEGV fix -- Fix getdate bug - -------------------------------------------------------------------- -Fri Feb 25 10:53:47 CET 2000 - kukuk@suse.de - -- Update to final glibc 2.1.3 + fix for bigendian machines - -------------------------------------------------------------------- -Thu Feb 24 16:12:39 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot -- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. - Old libnss_dns.so.2 will only make IPv4 lookups. - -------------------------------------------------------------------- -Tue Feb 22 16:40:35 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot (2.1.3pre4) - -------------------------------------------------------------------- -Sat Feb 5 14:40:33 CET 2000 - kukuk@suse.de - -- Add missing defines for SPARC bits/termios.h - -------------------------------------------------------------------- -Thu Feb 3 18:25:12 CET 2000 - kukuk@suse.de - -- Add regex patch from Andreas Schwab - -------------------------------------------------------------------- -Wed Feb 2 11:37:52 CET 2000 - kukuk@suse.de - -- Add ldconfig fix -- Update to current glibc cvs snapshot -- Fix sys/io.h on Intel (C++) - -------------------------------------------------------------------- -Mon Jan 24 17:01:13 CET 2000 - kukuk@suse.de - -- Fix duplicate setrlimit - -------------------------------------------------------------------- -Mon Jan 24 12:01:27 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot - -------------------------------------------------------------------- -Wed Jan 19 15:53:18 CET 2000 - kukuk@suse.de - -- Update to current glibc cvs snapshot - -------------------------------------------------------------------- -Sat Jan 15 01:31:16 CET 2000 - ro@suse.de - --fixed ppc db2-patch - -------------------------------------------------------------------- -Fri Jan 14 16:54:26 CET 2000 - kukuk@suse.de - -- Add patches for Intel and PPC - -------------------------------------------------------------------- -Fri Jan 14 00:27:03 CET 2000 - kukuk@suse.de - -- Add patch for SPARC - -------------------------------------------------------------------- -Thu Jan 13 15:23:54 CET 2000 - kukuk@suse.de - -- Move info pages to /usr/share/info - -------------------------------------------------------------------- -Mon Jan 10 14:49:14 CET 2000 - kukuk@suse.de - -- Add ipv6 patches for getent - -------------------------------------------------------------------- -Mon Jan 10 11:23:57 CET 2000 - kukuk@suse.de - -- Move manual pages for applications and config files into - shlibs package -- Update to current glibc 2.1.3 snapshot - -------------------------------------------------------------------- -Fri Dec 17 17:06:45 MET 1999 - kukuk@suse.de - -- Add new ldconfig patches -- Add aio patch -- Add fix for bits/string2.h - -------------------------------------------------------------------- -Wed Dec 15 16:37:02 MET 1999 - kukuk@suse.de - -- add ldconfig.8 - -------------------------------------------------------------------- -Wed Dec 15 10:00:53 MET 1999 - kukuk@suse.de - -- Update to current glibc 2.1.3 snapshot -- Fix get/setrlimit problems - -------------------------------------------------------------------- -Thu Dec 9 20:00:16 MET 1999 - kukuk@suse.de - -- Update to current glibc 2.1.3 snapshot -- Add new ldconfig - -------------------------------------------------------------------- -Sun Dec 5 11:50:42 MET 1999 - kukuk@suse.de - -- Disable make check for SPARC (kernel bug) -- Add setrlimit patches -- Update to current glibc 2.1.3 snapshot - -------------------------------------------------------------------- -Fri Nov 26 12:09:07 MET 1999 - kukuk@suse.de - -- Update to current glibc 2.1.3 snapshot. - -------------------------------------------------------------------- -Tue Oct 26 13:54:55 MEST 1999 - kukuk@suse.de - -- Add fix for correct accounting of needed bytes (gethnamaddr.c) -- Remove not exported, public names from internal md5 functions - -------------------------------------------------------------------- -Mon Oct 25 19:03:56 MEST 1999 - kukuk@suse.de - -- Add fix for missing nexttowardl aliase - -------------------------------------------------------------------- -Tue Oct 19 09:56:47 MEST 1999 - kukuk@suse.de - -- Add security fix for iruserok - -------------------------------------------------------------------- -Sat Oct 16 16:29:44 MEST 1999 - kukuk@suse.de - -- Build libNoVersion.so.1 on every platform - -------------------------------------------------------------------- -Mon Oct 11 19:19:00 MEST 1999 - kukuk@suse.de - -- Add linuxthreads/signals.c fix from Andreas Schwab -- Remove dangling symlink (Bug #544) -- Add more bug fixes - -------------------------------------------------------------------- -Fri Oct 8 22:07:24 MEST 1999 - kukuk@suse.de - -- Add timezone update - -------------------------------------------------------------------- -Fri Oct 8 17:42:22 MEST 1999 - kukuk@suse.de - -- Add NIS+ shadow parser fix - -------------------------------------------------------------------- -Thu Oct 7 11:46:27 MEST 1999 - kukuk@suse.de - -- Update to official glibc 2.1.2, add important fixes -- Update nscd, add manual pages for it - -------------------------------------------------------------------- -Mon Sep 20 18:14:13 CEST 1999 - ro@suse.de - -- libc: added requires kernel_headers - -------------------------------------------------------------------- -Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de - -- ran old prepare_spec on spec file to switch to new prepare_spec. - -------------------------------------------------------------------- -Mon Sep 6 10:25:03 MEST 1999 - kukuk@suse.de - -- Update to current glibc 2.1.2 cvs snapshot -- Remove use auf automake in spec file - -------------------------------------------------------------------- -Fri Sep 3 14:35:42 MEST 1999 - kukuk@suse.de - -- Update to current glibc 2.1.2 cvs snapshot -- Use RPM macros for configure - -------------------------------------------------------------------- -Wed Aug 25 17:07:09 MEST 1999 - kukuk@suse.de - -- Update to current glibc 2.1.2 cvs snapshot - -------------------------------------------------------------------- -Thu Aug 19 15:20:26 MEST 1999 - kukuk@suse.de - -- Add PowerPC patches from Uli Hecht -- Cleanup of SPEC file -- Create a profiling version - -------------------------------------------------------------------- -Sat Aug 14 19:58:45 MEST 1999 - kukuk@suse.de - -- disable nscd hosts caching by default -- Apply patch from HJL for broken gethostbyname_r in libnss_dns - -------------------------------------------------------------------- -Fri Jul 16 17:01:51 MEST 1999 - kukuk@suse.de - -- Add header fix for autoconf/g++ -- Move pt_chown and gconv modules from libc to shlibs - -------------------------------------------------------------------- -Wed Jul 14 16:05:14 MEST 1999 - kukuk@suse.de - -- Remove /etc/localtime from filelist - -------------------------------------------------------------------- -Mon Jul 12 09:54:43 MEST 1999 - kukuk@suse.de - -- Add more bug fixes from cvs -- Add ld.so bug fix from Andreas Schwab - -------------------------------------------------------------------- -Thu Jul 8 17:25:43 MEST 1999 - kukuk@suse.de - -- configure for i386-unknown-linux - -------------------------------------------------------------------- -Wed Jul 7 12:28:43 MEST 1999 - kukuk@suse.de - -- Remove alpha patch, it's now in glibc 2.1.2 cvs -- Add more bug fixes from cvs -- Remove malloc patch (breaks StarOffice) - -------------------------------------------------------------------- -Tue Jul 6 18:08:26 MEST 1999 - kukuk@suse.de - -- Add openpty patch from Andreas Schwab - (openpty now works if /dev/pts is not mounted) - -------------------------------------------------------------------- -Fri Jul 2 12:04:47 MEST 1999 - kukuk@suse.de - -- Remove warning von zic about symlinks. - -------------------------------------------------------------------- -Mon Jun 28 19:49:44 MEST 1999 - kukuk@suse.de - -- Remove ndbm links, now in gdbm - -------------------------------------------------------------------- -Fri Jun 25 16:16:20 MEST 1999 - kukuk@suse.de - -- Add a lot of more fixes -- Add nscd fixes and enable nscd on alpha - -------------------------------------------------------------------- -Mon Jun 14 09:17:26 MEST 1999 - kukuk@suse.de - -- Add nss_dns and fget* fixes. -- Add nscd patches for NIS+ - -------------------------------------------------------------------- -Thu Jun 10 10:04:11 MEST 1999 - kukuk@suse.de - -- Fix daemon() for MT programs -- Add libio fixes - -------------------------------------------------------------------- -Fri May 28 08:53:20 MEST 1999 - kukuk@suse.de - -- Add fix for docu -- Disable nscd for alpha again - -------------------------------------------------------------------- -Wed May 26 09:42:54 MEST 1999 - kukuk@suse.de - -- Update to version 2.1.1 - -------------------------------------------------------------------- -Mon May 17 16:49:35 MEST 1999 - kukuk@suse.de - -- Update to snapshot from 16.5.1999 -- Add manpages -- Add __setfpucw to libNoVersion (intel) -- Add COPYING and COPYING.LIB - -------------------------------------------------------------------- -Fri May 7 18:57:20 MEST 1999 - kukuk@suse.de - -- Update to snapshot from 6.5.1999 -- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps -- Add patch for Alpha RX164 -- Add workaround for nscd on Alpha - -------------------------------------------------------------------- -Wed Apr 28 17:48:51 MEST 1999 - kukuk@suse.de - -- Remove latest fnmatch patches from Uli Drepper - -------------------------------------------------------------------- -Tue Apr 27 11:48:46 MEST 1999 - kukuk@suse.de - -- update to cvs version of Apr 26 1999 -- fix pmap_set/pmap_unset for DHCP clients -- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create - the symbolic links. - -------------------------------------------------------------------- -Tue Apr 20 13:57:07 MEST 1999 - kukuk@suse.de - -- update to cvs version of Apr 20 1999 -- remove sunrpc.diff -- fix nssv1 package -- only include nscd on intel -- install /etc/nscd.conf - -------------------------------------------------------------------- -Mon Apr 12 09:52:58 MEST 1999 - kukuk@suse.de - -- update to cvs version of Apr 11 1999 -- Fix paths in paths.h -- install linuxthreads man pages and documentation -- Add sunrpc patch for Alpha and security fixes -- added links for el_GR and ru_RU.KOI8-R in usr/share/locale - -------------------------------------------------------------------- -Wed Mar 31 13:21:02 MEST 1999 - bs@suse.de - -- don't use lx_hack for build - -------------------------------------------------------------------- -Tue Mar 16 08:33:57 MET 1999 - ro@suse.de - -- libc.texinfo: changed to build with stable texinfo version - -------------------------------------------------------------------- -Mon Mar 15 23:49:51 MET 1999 - ro@suse.de - -- update to 2.1.1 (cvs of Mar 15 1999) -- update nssv1 to 2.0.2 - -------------------------------------------------------------------- -Sat Feb 20 19:29:32 MET 1999 - ro@suse.de - -- fixed specfile (lddlibc4 not built on alpha) - -------------------------------------------------------------------- -Sat Feb 20 18:41:22 MET 1999 - ro@suse.de - -- fixed specfile ... - -------------------------------------------------------------------- -Sat Feb 20 18:31:30 MET 1999 - ro@suse.de - -- added automake to neededforbuild - -------------------------------------------------------------------- -Sat Feb 20 18:15:44 MET 1999 - ro@suse.de - -- added nss-v1 modules (to keep old rpm happy with file owners) - -------------------------------------------------------------------- -Fri Feb 19 14:35:38 MET 1999 - ro@suse.de - -- update to cvs-version of 1999/02/18 - -------------------------------------------------------------------- -Fri Sep 25 18:58:28 MEST 1998 - ro@suse.de - -- fixed specfile - -------------------------------------------------------------------- -Fri Sep 25 12:15:13 MEST 1998 - ro@suse.de - -- update: use cvs-version of 980925 - edited db/Makefile to ignore messed up target-dependency - -------------------------------------------------------------------- -Mon Sep 21 19:43:16 MEST 1998 - ro@suse.de - -- update: use cvs-version of 980921 - -------------------------------------------------------------------- -Mon Sep 14 14:28:21 MEST 1998 - ro@suse.de - -- update: use today's cvs-version - -------------------------------------------------------------------- -Wed Sep 2 16:56:04 MEST 1998 - ro@suse.de - -- build for 586 since egcs generates code for 686 that does NOT run - on 586 !!! (eg strtok) - -------------------------------------------------------------------- -Sat Aug 22 00:43:48 MEST 1998 - ro@suse.de - -- updated to cvs-version 20.8.98 - added gettext as neededforbuild (so configure shuts up) - glibc-linuxthreads is contained in main archive now - -------------------------------------------------------------------- -Tue Jun 16 18:41:51 MEST 1998 - ro@suse.de - -- added symlink usr/include/X11 - -------------------------------------------------------------------- -Thu May 28 11:36:49 MEST 1998 - ro@suse.de - -- added symlinks to linux include files - -------------------------------------------------------------------- -Thu May 28 10:58:09 MEST 1998 - bs@suse.de - -- moved ".so" Links to package libc. - -------------------------------------------------------------------- -Wed May 27 16:26:15 MEST 1998 - bs@suse.de - -- changed version do `date` - -------------------------------------------------------------------- -Wed May 27 12:16:14 MEST 1998 - ro@suse.de - -- created specfile to build libc, shlibs, libd, libcinfo - localedb, timezone, - -- former libc renamed to libc5. diff --git a/glibc-utils.spec b/glibc-utils.spec deleted file mode 100644 index 865f2a1..0000000 --- a/glibc-utils.spec +++ /dev/null @@ -1,1409 +0,0 @@ -# -# spec file for package glibc-utils -# -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -# - - -# Run with osc --with=fast_build to have a shorter turnaround -# It will avoid building some parts of glibc -%bcond_with fast_build - -%define crypt_bf_version 1.3 -%define build_snapshot 0 - -%define flavor utils - -Name: glibc-utils -Summary: Development utilities from the GNU C Library -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ - -%bcond_with all -%define build_main 1 -%define build_utils %{with all} -%define build_testsuite %{with all} -%if "%flavor" == "utils" -%define build_main 0 -%define build_utils 1 -%define build_testsuite 0 -%endif -%if "%flavor" == "testsuite" -%define build_main 0 -%define build_utils 0 -%define build_testsuite 1 -%endif - -BuildRequires: audit-devel -BuildRequires: fdupes -BuildRequires: libcap-devel -BuildRequires: libselinux-devel -BuildRequires: makeinfo -BuildRequires: pwdutils -BuildRequires: systemd-rpm-macros -BuildRequires: xz -%if %{build_testsuite} -BuildRequires: gcc-c++ -BuildRequires: gdb -BuildRequires: glibc-devel-static -BuildRequires: libstdc++-devel -BuildRequires: python-pexpect -%endif -%if %{build_utils} -BuildRequires: gd-devel -%endif -%if "%flavor" == "i686" -ExclusiveArch: i586 i686 -BuildArch: i686 -%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -%endif - -%define __filter_GLIBC_PRIVATE 1 -%ifarch i686 -# For i686 let's only build what's different from i586, so -# no need to build documentation -%define build_profile 1 -%define build_locales 1 -%define build_html 0 -%else -%if %{with fast_build} || %{build_utils} && %{without all} -%define build_profile 0 -%define build_locales 0 -%define build_html 0 -%else -# Default: -%define build_profile 1 -%define build_locales 1 -%define build_html 1 -%endif -%endif - -%define build_variants %{build_main} - -%define disable_assert 0 -%define enable_stackguard_randomization 1 -%ifarch ppc ppc64 - %define optimize_power 1 - %ifarch ppc - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 1 - %else - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_tune power5 - %define powerpc_optimize_cpu_power4 0 - %endif - # We are not building Power CPU specific optimizations for openSUSE. - %define powerpc_optimize_cpu_power6 0 - %define powerpc_optimize_cpu_power7 0 - %define powerpc_optimize_cpu_cell 0 -%else - %define optimize_power 0 - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_cpu_power4 0 - %define powerpc_optimize_cpu_power6 0 - %define powerpc_optimize_cpu_power7 0 - %define powerpc_optimize_cpu_cell 0 -%endif # ppc, ppc64 -# glibc requires at least kernel 3.2 -%define enablekernel 3.2 -# some architectures need a newer kernel -%ifarch ppc64le -%define enablekernel 3.10 -%endif -%ifarch aarch64 -%define enablekernel 3.7 -%endif -%ifarch ia64 -%define enablekernel 3.2.18 -%endif - -Version: 2.26 -Release: 0 -%if !%{build_snapshot} -%define git_id 1c9a5c270d8b -%define libversion %version -%else -%define git_id %(echo %version | sed 's/.*\.g//') -%define libversion %(echo %version | sed 's/\.[^.]*\.g.*//') -%endif -Url: http://www.gnu.org/software/libc/libc.html -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if !%{build_snapshot} -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz -Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig -%else -Source: glibc-%{version}.tar.xz -%endif -Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring -Source3: noversion.tar.bz2 -Source4: manpages.tar.bz2 -Source5: nsswitch.conf -Source7: bindresvport.blacklist -Source8: glibc_post_upgrade.c -Source9: glibc.rpmlintrc -Source10: baselibs.conf -# For systemd -Source20: nscd.conf -Source21: nscd.service -# crypt_blowfish -Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -# The sign key uses MD5 which is no longer accepted by gpg -#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign - -%if %{build_main} -# ngpt was used in 8.1 and SLES8 -Obsoletes: ngpt < 2.2.2 -Obsoletes: ngpt-devel < 2.2.2 -Provides: ngpt = 2.2.2 -Provides: ngpt-devel = 2.2.2 -Conflicts: kernel < %{enablekernel} -# bug437293 - handle update from SLES10 on PowerPC -%ifarch ppc64 -Obsoletes: glibc-64bit -%endif -%ifarch ppc -Obsoletes: glibc-32bit -%endif -%ifarch armv6hl armv7hl -# The old runtime linker link gets not provided by rpm find.provides, but it exists -Provides: ld-linux.so.3 -Provides: ld-linux.so.3(GLIBC_2.4) -%endif -Requires(pre): filesystem -Recommends: glibc-extra -Provides: rtld(GNU_HASH) -%endif -%if %{build_utils} -Requires: glibc = %{version} -%endif -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%ifarch i686 -# We need to avoid to have only the src rpm from i686 on the media, -# since it does not work on other architectures. -NoSource: 0 -%endif -# - -### -# Patches are ordered in the following groups: -# Patches that we will never upstream or which have not been looked at: 0-999 -# Patches taken from upstream: 1000-2000 -# Patches that are going upstream, waiting approval: 2000-3000 -### - -### -# Patches that upstream will not accept -### - -### -# openSUSE specific patches - won't go upstream -### -### openSUSE extensions, configuration -# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 -Patch1: glibc-2.14-crypt.diff -# PATCH-FEATURE-OPENSUSE constify crypt_blowfish -Patch2: crypt_blowfish-const.patch -# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de -Patch3: crypt_blowfish-1.2-sha.diff -# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library -Patch4: crypt_blowfish-gensalt.patch -# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de -Patch5: crypt_blowfish-1.2-hack_around_arm.diff -# PATCH-FIX-OPENSUSE Fix path for nscd databases -Patch6: glibc-2.3.3-nscd-db-path.diff -# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de -Patch7: nss-db-path.patch -# PATCH-FIX-OPENSUSE adjust nscd.conf -Patch8: glibc-nscd.conf.patch -# PATCH-FIX-OPENSUSE do not use compile time in binaries -Patch9: glibc-nodate.patch -# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de -Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE handle old glibc binaries -Patch12: glibc-2.3.90-noversion.diff -# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de -Patch13: glibc-2.3.2.no_archive.diff -# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport -Patch14: glibc-bindresvport-blacklist.diff -# PATCH-FIX-OPENSUSE prefer -lang rpm packages -Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE Use nscd user for nscd -Patch19: nscd-server-user.patch -# PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined -Patch21: powerpc-elision-enable-envvar.patch -# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined -Patch22: s390-elision-enable-envvar.patch - -### Locale related patches -# PATCH-FIX-OPENSUSE Add additional locales -Patch100: add-locales.patch -# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) -Patch102: glibc-2.4.90-no_NO.diff -# PATCH-FIX-OPENSUSE -- Renames for China -Patch103: glibc-2.4-china.diff -# PATCH-FIX-OPENSUSE -- Add C.UTF-8 locale -Patch104: glibc-c-utf8-locale.patch -# PATCH-FIX-OPENSUSE -- Disable gettext for C.UTF-8 locale -Patch105: glibc-disable-gettext-for-c-utf8.patch - -### Broken patches in glibc that we revert for now: - -### Network related patches -# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv -Patch304: glibc-resolv-mdnshint.diff -# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 -Patch306: glibc-fix-double-loopback.diff - -### -# Patches from upstream -### -# PATCH-FIX-UPSTREAM Fix leaks of resolver contexts -Patch1000: resolv-context-leak.patch -# PATCH-FIX-UPSTREAM Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) -Patch1001: dl-runtime-resolve-opt-avx512f.patch -# PATCH-FIX-UPSTREAM Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041) -Patch1002: libpthread-compat-wrappers.patch -# PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) -Patch1003: math-c++-compat.patch -# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs -Patch1004: remove-nss-nis-compat.patch -# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) -Patch1005: eh-frame-zero-terminator.patch -# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) -Patch1006: ld-so-hwcap-x86-64.patch - -### -# Patches awaiting upstream approval -### -# PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) -Patch2000: fix-locking-in-_IO_cleanup.patch -# PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) -Patch2001: ldd-system-interp.patch -# PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) -Patch2002: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) -Patch2004: fnmatch-collating-elements.patch -# PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) -Patch2005: nss-files-long-lines-2.patch -# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2006: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2008: reinitialize-dl_load_write_lock.patch - -# Non-glibc patches -# PATCH-FIX-OPENSUSE Remove debianisms from manpages -Patch3000: manpages.patch - -%description -%if %build_main -The GNU C Library provides the most important standard libraries used -by nearly all programs: the standard C library, the standard math -library, and the POSIX thread library. A system is not functional -without these libraries. -%endif -%if %build_utils -The glibc-utils package contains mtrace, a memory leak tracer and -xtrace, a function call tracer which can be helpful during program -debugging. - -If you are unsure if you need this, do not install this package. -%endif -%if %build_testsuite -This package contains the testsuite results from the GNU C Library. -%endif - -%package info -Summary: Info Files for the GNU C Library -License: GFDL-1.1 -Group: Documentation/Other -Requires(post): %{install_info_prereq} -Requires(preun): %{install_info_prereq} -BuildArch: noarch - -%description info -This package contains the documentation for the GNU C library stored as -info files. Due to a lack of resources, this documentation is not -complete and is partially out of date. - -%package html -Summary: HTML Documentation for the GNU C Library -License: GFDL-1.1 -Group: Documentation/HTML -BuildArch: noarch - -%description html -This package contains the HTML documentation for the GNU C library. Due -to a lack of resources, this documentation is not complete and is -partially out of date. - -%package i18ndata -Summary: Database Sources for 'locale' -License: GPL-2.0+ and MIT -Group: System/Libraries -BuildArch: noarch - -%description i18ndata -This package contains the data needed to build the locale data files to -use the internationalization features of the GNU libc. It is normally -not necessary to install this packages, the data files are already -created. - -%package locale -Summary: Locale Data for Localized Programs -License: GPL-2.0+ and MIT and LGPL-2.1+ -Group: System/Libraries -Requires(post): /bin/cat -Requires: glibc = %{version} -# bug437293 -%ifarch ppc64 -Obsoletes: glibc-locale-64bit -%endif -%ifarch ppc -Obsoletes: glibc-locale-32bit -%endif - -%description locale -Locale data for the internationalisation features of the GNU C library. - -%package -n nscd -Summary: Name Service Caching Daemon -License: GPL-2.0+ -Group: System/Daemons -Provides: glibc:/usr/sbin/nscd -Requires: glibc = %{version} -Obsoletes: unscd <= 0.48 -Requires(pre): pwdutils -%{?systemd_requires} - -%description -n nscd -Nscd caches name service lookups and can dramatically improve -performance with NIS, NIS+, and LDAP. - -%package profile -Summary: Libc Profiling and Debugging Versions -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: Development/Libraries/C and C++ -Requires: glibc = %{version} -# bug437293 -%ifarch ppc64 -Obsoletes: glibc-profile-64bit -%endif -%ifarch ppc -Obsoletes: glibc-profile-32bit -%endif - -%description profile -This package contains special versions of the GNU C library which are -necessary for profiling and debugging. - -%package devel -Summary: Include Files and Libraries Mandatory for Development -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: Development/Libraries/C and C++ -Obsoletes: epoll = 1.0 -Provides: epoll < 1.0 -# bug437293 -%ifarch ppc64 -Obsoletes: glibc-devel-64bit -%endif -%ifarch ppc -Obsoletes: glibc-devel-32bit -%endif -Requires: glibc = %{version} -Requires: linux-kernel-headers - -%description devel -These libraries are needed to develop programs which use the standard C -library. - -%package devel-static -Summary: C library static libraries for -static linking -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: Development/Libraries/C and C++ -Requires: %{name}-devel = %{version} -# Provide Fedora name for package to make packaging easier -Provides: %{name}-static = %{version} - -%description devel-static -The glibc-devel-static package contains the C library static libraries -for -static linking. You don't need these, unless you link statically, -which is highly discouraged. - -# makedb requires libselinux. We add this program in a separate -# package so that glibc does not require libselinux. -%package extra -Summary: Extra binaries from GNU C Library -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ -Requires: glibc = %{version} - -%description extra -The glibc-extra package contains some extra binaries for glibc that -are not essential but recommend to use. - -makedb: A program to create a database for nss - -%package obsolete -Summary: Obsolete Shared Libraries from the GNU C Library -License: LGPL-2.0+ -Group: System/Libraries -Requires: glibc = %{version} - -%description obsolete -This package provides some old libraries from the GNU C Library which -are no longer supported. Additional it provides a compatibility library -for old binaries linked against glibc 2.0. - -Install this package if you need one of this libraries to get old -binaries working, but since this libraries are not supported and there -is no gurantee that they work for you, you should try to get newer -versions of your software. - -%prep -%setup -n glibc-%{version} -q -a 3 -a 4 -# Owl crypt_blowfish -tar -xzf %SOURCE50 -pushd crypt_blowfish-%{crypt_bf_version} -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -popd -mv crypt/{crypt.h,gnu-crypt.h} -mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ -# -%patch1 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -# avoid changing nscd_stat.c mtime to avoid code generation -# differences on each rebuild -touch -r nscd/nscd_stat.c nscd/s-stamp -%patch9 -p1 -touch -r nscd/s-stamp nscd/nscd_stat.c -rm nscd/s-stamp -%patch10 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch19 -p1 -%patch21 -p1 -%patch22 -p1 - -%patch100 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 - -%patch304 -p1 -%patch306 -p1 - -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 - -%patch2000 -p1 -%patch2001 -p1 -%patch2002 -p1 -%patch2004 -p1 -%patch2005 -p1 -%patch2006 -p1 -%patch2008 -p1 - -%patch3000 - -# -# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! -# -# Glibc 2.8 introduced the HP_TIMING element to the rtld_global_ro struct # definition. -# If the base is built without power4 the loader won't have this element in -# the struct whereas the power4/5/6/... libc will, so there will be a disconnect -# between the size of the rtld_global_ro struct between the two and dl_close -# ends up getting called incorrectly when it's actually attempting to call a -# resolver function. This is because the GLRO() macro simply attempts to -# compute an offset and gets the wrong one. -# Building the base glibc with --with-cpu=power4 solves this problem. -# But: ppc32 can not default to -mcpu=power4 because it would emit instructions -# which are not available on G3, G4 etc. -# -# We simply remove the power4 files, and build the base glibc for a generic powerpc cpu -# Additional cputuned libs can now be used on powerpc32 -# -rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h -find . -name configure | xargs touch - -%build -if [ -x /bin/uname.bin ]; then - /bin/uname.bin -a -else - uname -a -fi -uptime || : -ulimit -a -nice -# We do not want configure to figure out the system its building one -# to support a common ground and thus set build and host to the -# target_cpu. -%ifarch %arm -%define target %{_target_cpu}-suse-linux-gnueabi -%else -%define target %{_target_cpu}-suse-linux -%endif -# Don't use as-needed, it breaks glibc assumptions -# Before enabling it, run the testsuite and verify that it -# passes completely -export SUSE_ASNEEDED=0 -# Adjust glibc version.h -echo "#define CONFHOST \"%{target}\"" >> version.h -echo "#define GITID \"%{git_id}\"" >> version.h -# -# Default CFLAGS and Compiler -# -BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -enable_stack_protector= -for opt in $BuildFlags; do - case $opt in - -fstack-protector-strong) enable_stack_protector=strong ;; - -fstack-protector-all) enable_stack_protector=all ;; - -fstack-protector) enable_stack_protector=yes ;; - esac -done -BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') -BuildCC="%__cc" -BuildCCplus="%__cxx" -add_ons=libidn -# -#now overwrite for some architectures -# -%ifarch sparc64 - BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" - BuildCC="gcc -m64" - BuildCCplus="$BuildCCplus -m64" -%endif -%ifarch sparc - BuildFlags="$BuildFlags -fcall-used-g6" - BuildCC="gcc -m32" - BuildCCplus="$BuildCCplus -m32" -%endif -%ifarch sparcv9 - BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" - BuildCC="gcc -m32" - BuildCCplus="$BuildCCplus -m32" -%endif -%ifarch alphaev6 - BuildFlags="-mcpu=ev6" -%endif -%ifarch ppc ppc64 - BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" -%endif -%ifarch ppc64 - BuildCC="$BuildCC -m64" - BuildCCplus="$BuildCCplus -m64" -%endif -%ifarch hppa - BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" -%endif -# Add flags for all plattforms except AXP -%ifnarch alpha - BuildFlags="$BuildFlags -g" -%endif -%if %{disable_assert} - BuildFlags="$BuildFlags -DNDEBUG=1" -%endif -%ifarch %ix86 - add_ons=$add_ons,noversion -%endif -%ifarch mipsel - # fails to build otherwise - need to recheck and fix - %define enable_stackguard_randomization 0 -%endif - -configure_and_build_glibc() { - local dirname="$1"; shift - local cflags="$1"; shift - mkdir "cc-$dirname" - cd "cc-$dirname" -%ifarch %arm aarch64 - # remove asynchronous-unwind-tables during configure as it causes - # some checks to fail spuriously on arm - conf_cflags="${cflags/-fasynchronous-unwind-tables/}" - conf_cflags="${conf_cflags/-funwind-tables/}" -%else - conf_cflags="$cflags" -%endif - - profile="--disable-profile" -%if %{build_profile} - if [ "$dirname" = "base" ] ; then - profile="--enable-profile" - fi -%endif - elision=--enable-lock-elision - if [ "$dirname" = "noelision" ]; then - elision=--disable-lock-elision - fi - ../configure \ - CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" \ - --prefix=%{_prefix} \ - --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ - --enable-add-ons=$add_ons \ - $profile $elision \ - "$@" \ - --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x - --enable-multi-arch \ -%endif -%ifarch mipsel - --without-fp \ -%endif -%ifarch ppc64p7 - --with-cpu=power7 \ -%endif -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif - ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ - --enable-tunables \ - --enable-kernel=%{enablekernel} \ - --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now \ - --enable-obsolete-rpc \ - --disable-timezone-tools -# Should we enable --enable-systemtap? -# Should we enable --enable-nss-crypt to build use freebl3 hash functions? - # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) - make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags" - cd .. -} - -%if !%{optimize_power} - # - # Build base glibc - # - configure_and_build_glibc base "$BuildFlags" -%else - # - # Build POWER-optimized glibc - # - # First, base build: - pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}" - %if "%{powerpc_optimize_base}" != "" - pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" - %endif - %if "%{powerpc_optimize_base}" != "" - configure_and_build_glibc base "$pBuildFlags" --with-cpu=%{powerpc_optimize_base} - %else - # Use no default CPU - configure_and_build_glibc base "$pBuildFlags" - %endif - %if %{build_variants} - # Then other power variants: - for pcpu in \ - %if %{powerpc_optimize_cpu_power4} - power4 \ - %endif - %if %{powerpc_optimize_cpu_power6} - power6 \ - %endif - %if %{powerpc_optimize_cpu_power7} - power7 \ - %endif - ; do - configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" \ - --with-cpu=$pcpu - done - # Eventually, special Cell variant: - %if %{powerpc_optimize_cpu_cell} - configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" - %endif - %endif # %{build_variants} -%endif # optimize_power - -%if %{build_variants} -%ifarch i686 x86_64 -configure_and_build_glibc noelision "$BuildFlags" -%endif -%endif - -# -# Build html documentation -# -%if %{build_html} -make -C cc-base html -%endif - -# -# Build glibc_post_upgrade binary -# -$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ - -Lcc-base -Bcc-base/csu \ - '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ -%ifarch ppc ppc64 - %if !%{powerpc_optimize_cpu_power4} - '-DREMOVE_PPC_OPTIMIZE_POWER4' \ - %endif - %if !%{powerpc_optimize_cpu_power6} - '-DREMOVE_PPC_OPTIMIZE_POWER6' \ - %endif - %if !%{powerpc_optimize_cpu_power7} - '-DREMOVE_PPC_OPTIMIZE_POWER7' \ - %endif - %if !%{powerpc_optimize_cpu_cell} - '-DREMOVE_PPC_OPTIMIZE_CELL' \ - %endif -%endif - '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' - -# crypt_blowfish man pages -pushd crypt_blowfish-%{crypt_bf_version} -make man -popd - -%check -%if %{build_testsuite} -# The testsuite will fail if asneeded is used -export SUSE_ASNEEDED=0 -# Increase timeout -export TIMEOUTFACTOR=16 -# The testsuite does its own malloc checking -unset MALLOC_CHECK_ -make -C cc-base -k check || { - cd cc-base - o=$- - set +x - for sum in subdir-tests.sum */subdir-tests.sum; do - while read s t; do - case $s in - XPASS:|PASS:) - echo ++++++ $s $t ++++++ - ;; - *) # X?FAIL: - echo ------ $s $t ------ - test ! -f $t.out || cat $t.out - ;; - esac - done < $sum - done - set -$o - # Fail build if there where compilation errors during testsuite run - test -f tests.sum -} -%else -# This has to pass on all platforms! -# Exceptions: -# None! -make %{?_smp_mflags} -C cc-base check-abi -%endif - -%install -%if %{build_main} -# We don't want to strip the .symtab from our libraries in find-debuginfo.sh, -# certainly not from libpthread.so.* because it is used by libthread_db to find -# some non-exported symbols in order to detect if threading support -# should be enabled. These symbols are _not_ exported, and we can't easily -# export them retroactively without changing the ABI. So we have to -# continue to "export" them via .symtab, instead of .dynsym :-( -# But we also want to keep .symtab and .strtab of other libraries since some -# debugging tools currently require these sections directly inside the main -# files - specifically valgrind and PurifyPlus. -export STRIP_KEEP_SYMTAB=*.so* - -# Make sure we will create the gconv-modules.cache -mkdir -p %{buildroot}%{_libdir}/gconv -touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache - -# Install base glibc -make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base - -install_optimized_variant() { - local dirname="$1"; shift - local subdir="$1"; shift - local subdir_up="$1"; shift - -cd "cc-$dirname" -destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir -mkdir -p $destdir -# Don't run a complete make install, we know which libraries -# we want -for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db -do - libbase=${lib#*/} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Only install if different from base lib - if cmp -s ${lib}.so ../cc-base/${lib}.so; then - ln -sf $subdir_up/$libbaseso $destdir/$libbaseso - else - cp -a ${lib}.so $destdir/$libbaseso - fi -done -cd .. -cc-base/elf/ldconfig -vn $destdir -} - -# Install power-optimized glibc -%if %{optimize_power} - %if %{powerpc_optimize_cpu_power4} - install_optimized_variant power4 power4 ".." - %endif - %if %{powerpc_optimize_cpu_power6} - install_optimized_variant power6 power6 ".." - %endif - %if %{powerpc_optimize_cpu_power7} - install_optimized_variant power7 power7 ".." - %endif - %if %{powerpc_optimize_cpu_cell} - install_optimized_variant ppc-cell-be ppc-cell-be ".." - %endif - %if %{powerpc_optimize_cpu_power6} - # power6 is compatible with power6x - # doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir - if test -d %{buildroot}/%{_lib}/power6; then - mkdir -p %{buildroot}/%{_lib}/power6x - for i in %{buildroot}/%{_lib}/power6/*.so; do - b=$(basename $i) - ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - done - cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x - fi - %endif -%endif # optimize_power - -%ifarch i686 x86_64 -cd cc-noelision -destdir=$RPM_BUILD_ROOT/%{_lib}/noelision -mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{libversion}.so -cd .. -cc-base/elf/ldconfig -vn $destdir -%endif - -# Install locales -%if %{build_locales} - # XXX Do not install locales in parallel! - cd cc-base - # localedef creates hardlinks to other locales if possible - # this will not work if we generate them in parallel. - # thus we need to run fdupes on /usr/lib/locale/ - # Still, on my system this is a speed advantage: - # non-parallel build for install-locales: 9:34mins - # parallel build with fdupes: 7:08mins - make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales - %fdupes %{buildroot}/usr/lib/locale - cd .. -%endif -# Create file list for glibc-locale package -%{find_lang} libc - -# Prepare obsolete/, used only on some architectures: -export RPM_BUILD_ROOT -%ifarch i586 -mkdir -p %{buildroot}/%{_lib}/obsolete -%endif - -# remove nsl compat library -rm -f %{buildroot}%{_libdir}/libnsl* -# part of libnsl-devel -rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* - -# Miscelanna: - -install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} - -install -m 644 %{SOURCE7} %{buildroot}/etc -install -m 644 %{SOURCE5} %{buildroot}/etc -install -m 644 posix/gai.conf %{buildroot}/etc - -mkdir -p %{buildroot}/etc/default -install -m 644 nis/nss %{buildroot}/etc/default/ - -mkdir -p %{buildroot}%{_includedir}/resolv -install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ -install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ - -%if %{build_html} -mkdir -p %{buildroot}%{_datadir}/doc/glibc -cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc -%endif - -cd manpages; make install_root=%{buildroot} install; cd .. - -# crypt_blowfish man pages -pushd crypt_blowfish-%{crypt_bf_version} -install -m755 -d %{buildroot}%{_mandir}/man3 -install -m644 *.3 %{buildroot}%{_mandir}/man3 -popd - -# nscd tools: - -%ifnarch i686 -cp nscd/nscd.conf %{buildroot}/etc -mkdir -p %{buildroot}/etc/init.d -ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd -mkdir -p %{buildroot}/run/nscd -mkdir -p %{buildroot}/var/lib/nscd -%endif - -# -# Create ld.so.conf -# -cat > %{buildroot}/etc/ld.so.conf <>"$l" - cat "$l.d"/* >>"$l" -done -/usr/sbin/iconvconfig - -%post info -%install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - -%preun info -%install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - -%pre -n nscd -getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd -getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /run/nscd nscd -%service_add_pre nscd.service - -%preun -n nscd -%service_del_preun nscd.service - -%post -n nscd -%service_add_post nscd.service -%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf -# Previously we had nscd.socket, remove it -test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : -test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : -# Hard removal in case the above did not work -rm -f /etc/systemd/system/sockets.target.wants/nscd.socket -exit 0 - -%postun -n nscd -%service_del_postun nscd.service -exit 0 - -%if %{build_main} -%files -# glibc -%defattr(-,root,root) -%doc LICENSES -%config(noreplace) /etc/bindresvport.blacklist -%config /etc/ld.so.conf -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache -%config(noreplace) /etc/rpc -%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf -%verify(not md5 size mtime) %config(noreplace) /etc/gai.conf -%config(noreplace) /etc/default/nss -%doc %{_mandir}/man1/gencat.1.gz -%doc %{_mandir}/man1/getconf.1.gz -%doc %{_mandir}/man5/* -/%{_lib}/ld-%{libversion}.so - -# Each architecture has a different name for the dynamic linker: -%ifarch %arm -%ifarch armv6hl armv7hl -/%{_lib}/ld-linux-armhf.so.3 -# Keep compatibility link -/%{_lib}/ld-linux.so.3 -%else -/%{_lib}/ld-linux.so.3 -%endif -%endif -%ifarch ia64 -/%{_lib}/ld-linux-ia64.so.2 -%endif -%ifarch ppc s390 mips hppa m68k -/%{_lib}/ld.so.1 -%endif -%ifarch ppc64 -/%{_lib}/ld64.so.1 -%endif -%ifarch ppc64le -/%{_lib}/ld64.so.2 -%endif -%ifarch s390x -/lib/ld64.so.1 -/%{_lib}/ld64.so.1 -%endif -%ifarch x86_64 -/%{_lib}/ld-linux-x86-64.so.2 -%endif -%ifarch %ix86 %sparc -/%{_lib}/ld-linux.so.2 -%endif -%ifarch aarch64 -/lib/ld-linux-aarch64.so.1 -/%{_lib}/ld-linux-aarch64.so.1 -%endif -%ifarch %ix86 x86_64 ppc ppc64 s390 s390x -# LSB -/%{_lib}/*-lsb*.so.3 -%endif - -/%{_lib}/libBrokenLocale-%{libversion}.so -/%{_lib}/libBrokenLocale.so.1 -/%{_lib}/libSegFault.so -/%{_lib}/libanl-%{libversion}.so -/%{_lib}/libanl.so.1 -/%{_lib}/libc-%{libversion}.so -/%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{libversion}.so -/%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{libversion}.so -/%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{libversion}.so -/%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{libversion}.so -/%{_lib}/libdl.so.2* -/%{_lib}/libm-%{libversion}.so -/%{_lib}/libm.so.6* -%ifarch x86_64 -/%{_lib}/libmvec-%{libversion}.so -/%{_lib}/libmvec.so.1 -%endif -/%{_lib}/libnsl-%{libversion}.so -/%{_lib}/libnsl.so.1 -/%{_lib}/libnss_db-%{libversion}.so -/%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{libversion}.so -/%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{libversion}.so -/%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{libversion}.so -/%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libpthread-%{libversion}.so -/%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{libversion}.so -/%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{libversion}.so -/%{_lib}/librt.so.1 -/%{_lib}/libthread_db-1.0.so -/%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{libversion}.so -/%{_lib}/libutil.so.1 -%define optimized_libs() \ - %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{libversion}.so\ - /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{libversion}.so\ - /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{libversion}.so\ - /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{libversion}.so\ - /%{_lib}/%1/librt.so.1\ - /%{_lib}/%1/libthread_db-1.0.so\ - /%{_lib}/%1/libthread_db.so.1 - -%if %{optimize_power} - %if %{powerpc_optimize_cpu_power4} - %{optimized_libs power4} - %endif - %if %{powerpc_optimize_cpu_power6} - %{optimized_libs power6} - %{optimized_libs power6x} - %endif - %if %{powerpc_optimize_cpu_power7} - %{optimized_libs power7} - %endif - %if %{powerpc_optimize_cpu_cell} - %{optimized_libs ppc-cell-be} - %endif -%endif # optimize_power -%ifarch i686 x86_64 -/%{_lib}/noelision -%endif -%dir %attr(0700,root,root) /var/cache/ldconfig -/sbin/ldconfig -%{_bindir}/gencat -%{_bindir}/getconf -%{_bindir}/getent -%{_bindir}/iconv -%attr(755,root,root) %{_bindir}/ldd -%ifarch %ix86 sparc sparcv9 m68k - %{_bindir}/lddlibc4 -%endif -%{_bindir}/locale -%{_bindir}/localedef -%dir %attr(0755,root,root) %{_libexecdir}/getconf -%{_libexecdir}/getconf/* -%{_sbindir}/glibc_post_upgrade -%{_sbindir}/iconvconfig - -%ifarch i586 -%files obsolete -%defattr (755,root,root,755) -/%{_lib}/obsolete -%endif - -%files locale -f libc.lang -%defattr(-,root,root) -%{_datadir}/locale/locale.alias -%if %{build_locales} - /usr/lib/locale -%endif -%{_libdir}/gconv - -%files devel -%defattr(-,root,root) -%doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE -%doc %{_mandir}/man1/catchsegv.1.gz -%doc %{_mandir}/man1/rpcgen.1.gz -%doc %{_mandir}/man3/* -%{_bindir}/catchsegv -%{_bindir}/rpcgen -%{_bindir}/sprof -%{_includedir}/* -%{_libdir}/*.o -%{_libdir}/*.so -# These static libraries are needed even for shared builds -%{_libdir}/libc_nonshared.a -%{_libdir}/libg.a -%{_libdir}/libieee.a -%ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v -# This is not built on sparc64. - %{_libdir}/libnldbl_nonshared.a -%endif -%{_libdir}/libmcheck.a -%ifarch x86_64 -%{_libdir}/libmvec_nonshared.a -%endif -%{_libdir}/libpthread_nonshared.a -%{_libdir}/librpcsvc.a - -%files devel-static -%defattr(-,root,root) -%{_libdir}/libBrokenLocale.a -%{_libdir}/libanl.a -%{_libdir}/libc.a -%{_libdir}/libcrypt.a -%{_libdir}/libowcrypt.a -%{_libdir}/libdl.a -%{_libdir}/libm.a -%ifarch x86_64 -%{_libdir}/libm-%{libversion}.a -%{_libdir}/libmvec.a -%endif -%{_libdir}/libpthread.a -%{_libdir}/libresolv.a -%{_libdir}/librt.a -%{_libdir}/libutil.a - -%ifnarch i686 -%files info -%defattr(-,root,root) -%doc %{_infodir}/libc.info.gz -%doc %{_infodir}/libc.info-?.gz -%doc %{_infodir}/libc.info-??.gz - -%if %{build_html} -%files html -%defattr(-,root,root) -%doc %{_prefix}/share/doc/glibc -%endif - -%files i18ndata -%defattr(-,root,root) -%{_prefix}/share/i18n - -%files -n nscd -%defattr(-,root,root) -%config(noreplace) /etc/nscd.conf -%{_sbindir}/nscd -%{_sbindir}/rcnscd -/usr/lib/systemd/system/nscd.service -%dir /usr/lib/tmpfiles.d -/usr/lib/tmpfiles.d/nscd.conf -%dir %attr(0755,root,root) %ghost /run/nscd -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid -%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket -%dir %attr(0755,root,root) /var/lib/nscd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/netgroup -%endif # !i686 - -%if %{build_profile} -%files profile -%defattr(-,root,root) -%{_libdir}/libc_p.a -%{_libdir}/libBrokenLocale_p.a -%{_libdir}/libanl_p.a -%{_libdir}/libm_p.a -%ifarch x86_64 -%{_libdir}/libmvec_p.a -%endif -%{_libdir}/libcrypt_p.a -%{_libdir}/libowcrypt_p.a -%{_libdir}/libpthread_p.a -%{_libdir}/libresolv_p.a -%{_libdir}/librt_p.a -%{_libdir}/librpcsvc_p.a -%{_libdir}/libutil_p.a -%{_libdir}/libdl_p.a -%endif - -%ifnarch i686 -%files extra -%defattr(-,root,root) -%{_bindir}/makedb -/var/lib/misc/Makefile -%endif # !i686 - -%endif # main - -%if %{build_utils} -%files -%defattr(-,root,root) -/%{_lib}/libmemusage.so -/%{_lib}/libpcprofile.so -%dir %{_libdir}/audit -%{_libdir}/audit/sotruss-lib.so -%{_bindir}/memusage -%{_bindir}/memusagestat -%{_bindir}/mtrace -%{_bindir}/pcprofiledump -%{_bindir}/sotruss -%{_bindir}/xtrace -%{_bindir}/pldd -%endif # utils - -%changelog diff --git a/glibc-utils.spec.in b/glibc-utils.spec.in deleted file mode 100644 index 7dd5b57..0000000 --- a/glibc-utils.spec.in +++ /dev/null @@ -1,6 +0,0 @@ -%define flavor utils - -Name: glibc-utils -Summary: Development utilities from the GNU C Library -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ diff --git a/glibc-version.diff b/glibc-version.diff index 8381c25..6f9945f 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -1,18 +1,27 @@ -Index: glibc-2.17.90/csu/version.c -=================================================================== ---- glibc-2.17.90.orig/csu/version.c -+++ glibc-2.17.90/csu/version.c -@@ -24,11 +24,12 @@ static const char __libc_release[] = REL +--- csu/version.c ++++ csu/version.c 2003/06/25 07:01:44 +@@ -24,11 +24,12 @@ static const char __libc_version[] = VERSION; static const char banner[] = --"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ -+"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2017 Free Software Foundation, Inc.\n\ +-"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ ++"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\ + Copyright (C) 2008 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ +Configured for "CONFHOST".\n\ Compiled by GNU CC version "__VERSION__".\n" #include "version-info.h" - #ifdef LIBC_ABIS_STRING + #ifdef GLIBC_OLDEST_ABI +@@ -37,6 +38,9 @@ + #ifdef USE_TLS + "Thread-local storage support included.\n" + #endif ++#ifdef FLOATING_STACKS ++"pthread library is compiled with floating stack support enabled.\n" ++#endif + "For bug reporting instructions, please see:\n\ + .\n"; + + diff --git a/glibc.changes b/glibc.changes index aaeae73..a80652d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3214 +1,3 @@ -------------------------------------------------------------------- -Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de - -- Remove rpcsvc/yppasswd.* from glibc-devel -- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) - -------------------------------------------------------------------- -Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de - -- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) - -------------------------------------------------------------------- -Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de - -- Disable obsolete libnsl and NIS support -- remove-nss-nis-compat.patch: remove nis and compat from default NSS - configs -- nsswitch.conf: Likewise - -------------------------------------------------------------------- -Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de - -- math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ - mode (BZ #21930) - -------------------------------------------------------------------- -Thu Aug 17 12:46:46 UTC 2017 - schwab@suse.de - -- Add iconvconfig to baselibs.conf (bsc#1051042) - -------------------------------------------------------------------- -Thu Aug 10 08:05:15 UTC 2017 - schwab@suse.de - -- resolv-context-leak.patch: Fix leaks of resolver contexts -- dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only - with AVX512F (BZ #21871) -- libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp - or system in libpthread (BZ #21041) - -------------------------------------------------------------------- -Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de - -- Update to glibc 2.26 - * A per-thread cache has been added to malloc - * Unicode 10.0.0 Support - * Improvements to the DNS stub resolver - * New function reallocarray, which resizes an allocated block (like - realloc) to the product of two sizes, with a guaranteed clean failure - upon integer overflow in the multiplication - * New wrappers for the Linux-specific system calls preadv2 and pwritev2 - * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to - create a new session ID for the spawned process - * errno.h is now safe to use from C-preprocessed assembly language on all - supported operating systems - * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements - 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE - 754-2008) and ISO/IEC TS 18661-3:2015 - * The synchronization that pthread_spin_unlock performs has been changed to - now be equivalent to a C11 atomic store with release memory order to the - spin lock's memory location - * The DNS stub resolver no longer performs EDNS fallback - * res_mkquery and res_nmkquery no longer support the IQUERY opcode - * The _res_opcodes variable has been removed from libresolv - * no longer includes inline versions of any string functions, - as this kind of optimization is better done by the compiler - * The nonstandard header has been removed - * The obsolete header has been removed - * The obsolete signal constant SIGUNUSED is no longer defined by - * The obsolete function cfree has been removed - * The stack_t type no longer has the name struct sigaltstack - * The ucontext_t type no longer has the name struct ucontext - * On S/390 GNU/Linux, the constants defined by have been - synced with the kernel - * Linux kernel 3.2 or later is required at runtime, on all architectures - supported by that kernel - * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, - to avoid fragmentation-based spoofing attacks (CVE-2017-12132) - * LD_LIBRARY_PATH is now ignored in binaries running in privileged - AT_SECURE mode to guard against local privilege escalation attacks - (CVE-2017-1000366) - * Avoid printing a backtrace from the __stack_chk_fail function since it - is called on a corrupt stack and a backtrace is unreliable on a - corrupt stack (CVE-2010-3192) - * A use-after-free vulnerability in clntudp_call in the Sun RPC system - has been fixed (CVE-2017-12133) - * fate#322258, fate#321513, fate#322453 -- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, - i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, - sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, - tunables-bigendian.patch: Removed - -------------------------------------------------------------------- -Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de - -- Fix RPM group - -------------------------------------------------------------------- -Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de - -- s390-elision-enable-envvar.patch: enable TLE only if - GLIBC_ELISION_ENABLE=yes is defined (fate#322271) - -------------------------------------------------------------------- -Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de - -- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE - programs (BZ #21209) -- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for - AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) - -------------------------------------------------------------------- -Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de - -- Remove glibc-cpusetsize.diff, no longer useful - -------------------------------------------------------------------- -Wed May 31 10:35:31 UTC 2017 - schwab@suse.de - -- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, - BZ #21289) - -------------------------------------------------------------------- -Mon May 29 18:10:31 UTC 2017 - schwab@suse.de - -- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h - aliasing - -------------------------------------------------------------------- -Mon May 29 10:24:22 UTC 2017 - schwab@suse.de - -- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE - locales (bsc#1039502) - -------------------------------------------------------------------- -Tue May 23 09:54:08 UTC 2017 - schwab@suse.de - -- Remove glibc-testsuite.patch, no longer relevant - -------------------------------------------------------------------- -Mon May 22 10:04:59 UTC 2017 - schwab@suse.de - -- Use multibuild feature -- Remove obsolete check-build.sh -- glibc.rpmlintrc: remove obsolete entries -- Use %tmpfiles_create in nscd postin - -------------------------------------------------------------------- -Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de - -- i686-memchr-sse.patch: Fix i686 memchr overflow calculation - (bsc#1031021, BZ #21182) -- sunrpc-use-after-free.patch: Avoid use-after-free read access in - clntudp_call (BZ #21115) -- Build testsuite with gdb and python-pexpect to enable more tests - -------------------------------------------------------------------- -Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de - -- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ - #21109) - -------------------------------------------------------------------- -Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de - -- Update to glibc 2.25 - * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR - 24731-2:2010, is supported to enable declarations of functions from that - TR. - * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS - 18661-1:2014, is supported to enable declarations of functions and macros - from that TS. - * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS - 18661-4:2015, is supported to enable declarations of functions and macros - from that TS. - * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are - now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. - * The inclusion of by is deprecated. - * New features from TS 18661-1:2014 are added to libm: the - fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the - femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. - * Integer width macros from TS 18661-1:2014 are added to : - CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, - UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to - : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, - INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, - UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, - INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, - UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, - UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, - UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, - UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, - WINT_WIDTH. - * New features are added from TS 18661-1:2014: - - Signaling NaN macros: SNANF, SNAN, SNANL. - - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, - fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, - fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. - - llogb functions: the llogb, llogbf and llogbl functions, and the - FP_LLOGB0 and FP_LLOGBNAN macros. - - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, - fminmagf, fminmagl. - - Comparison macros: iseqsig. - - Classification macros: iscanonical, issubnormal, iszero. - - Total order functions: totalorder, totalorderf, totalorderl, - totalordermag, totalordermagf, totalordermagl. - - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. - - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, - setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. - * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, - are added to libc. - * Most of glibc can now be built with the stack smashing protector enabled. - * The function explicit_bzero, from OpenBSD, has been added to libc. - * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined - to float instead of double. - * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the - float_t and double_t types are now defined to long double instead of float - and double. - * The getentropy and getrandom functions, and the header file - have been added. - * The buffer size for byte-oriented stdio streams is now limited to 8192 - bytes by default. - * The header now includes the header. - * The malloc_get_state and malloc_set_state functions have been removed. - * The “ip6-dotint†and “no-ip6-dotint†resolver options, and the - corresponding RES_NOIP6DOTINT flag from have been removed. - * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING - flag from have been removed. - * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, - RES_BLAST defined in the header file have been deprecated. - * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for - _res.flags are deprecated. - * DNSSEC-related declarations and definitions have been removed from the - header file, and libresolv will no longer attempt to - decode the data part of DNSSEC record types. - * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, - ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the - header file because the distinction between RR types and - meta-RR types is not officially standardized, subject to revision, and - thus not suitable for encoding in a macro. - * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook - and rhook members of the res_state type in have been removed. - * For multi-arch support it is recommended to use a GCC which has - been built with support for GNU indirect functions. - * GDB pretty printers have been added for mutex and condition variable - structures in POSIX Threads. - * Tunables feature added to allow tweaking of the runtime for an application - program. - * A new version of condition variables functions have been implemented in - the NPTL implementation of POSIX Threads to provide stronger ordering - guarantees. - * A new version of pthread_rwlock functions have been implemented to use a more - scalable algorithm primarily through not using a critical section anymore to - make state changes. - * On ARM EABI (32-bit), generating a backtrace for execution contexts which - have been created with makecontext could fail to terminate due to a - missing .cantunwind annotation. (CVE-2016-6323) - * The DNS stub resolver functions would crash due to a NULL pointer - dereference when processing a query with a valid DNS question type which - was used internally in the implementation. (CVE-2015-5180) -- Enable stack protector if part of %optflags -- startcontext-cantunwind.patch: Removed -- cpuid-assertion.patch: Removed - -------------------------------------------------------------------- -Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de - -- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647) - -------------------------------------------------------------------- -Wed Oct 5 15:01:46 UTC 2016 - schwab@suse.de - -- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to - /var/lib/nscd -- glibc-2.3.90-langpackdir.diff: simplify - -------------------------------------------------------------------- -Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de - -- Update to glibc 2.24 - * The minimum Linux kernel version that this version of the GNU C Library - can be used with is 3.2 - * The pap_AN locale has been deleted - * The readdir_r and readdir64_r functions have been deprecated - * The type `union wait' has been removed - * A new NSS action is added to facilitate large distributed system - administration - * The deprecated __malloc_initialize_hook variable has been removed from - the API - * The long unused localedef --old-style option has been removed - * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added - to libm - * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed - (CVE-2016-3075) - * Previously, getaddrinfo copied large amounts of address data to the - stack, even after the fix for CVE-2013-4458 has been applied, - potentially resulting in a stack overflow. getaddrinfo now uses a - heap allocation instead (CVE-2016-3706) - * The glob function suffered from a stack-based buffer overflow when it - was called with the GLOB_ALTDIRFUNC flag and encountered a long file - name (CVE-2016-1234) - * The Sun RPC UDP client could exhaust all available stack space when - flooded with crafted ICMP and UDP messages (CVE-2016-4429) - * The IPv6 name server management code in libresolv could result in a - memory leak for each thread which is created, performs a failing - naming lookup, and exits (CVE-2016-5417) -- startcontext-cantunwind.patch: mark __startcontext as .cantunwind - (bsc#974800, BZ #20435) -- Removed patches: - * 0001-Updated-translations-for-2.23.patch - * 0002-Regenerate-libc.pot-for-2.23.patch - * 0003-Regenerated-configure-scripts.patch - * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch - * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch - * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch - * 0008-Update-NEWS.patch - * 0009-sln-use-stat64.patch - * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch - * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch - * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch - * 0013-Mention-BZ-19762-in-NEWS.patch - * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch - * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch - * 0016-Fix-resource-leak-in-resolver-bug-19257.patch - * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch - * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch - * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch - * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch - * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch - * 0022-configure-fix-test-usage.patch - * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch - * 0025-getnameinfo-Do-not-preserve-errno.patch - * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch - * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch - * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch - * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch - * 0030-hesiod-Remove-RCS-keywords.patch - * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch - * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch - * 0033-malloc-Remove-NO_THREADS.patch - * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch - * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch - * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch - * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch - * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch - * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch - * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch - * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch - * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch - * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch - * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch - * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch - * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch - * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch - * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch - * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch - * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch - * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch - * 0052-Fix-tst-dlsym-error-build.patch - * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch - * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch - * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch - * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch - * clntudp-call-alloca.patch - * glibc-memset-nontemporal.diff - * nis-initgroups-status.patch - * nscd-gc-crash.patch - * robust-mutex-deadlock.patch - * strncat-avoid-array-bounds-warning.patch - -------------------------------------------------------------------- -Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de - -- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for - stncat on i586 (BZ #20260) -- Update glibc.keyring -- Unset MALLOC_CHECK_ during testsuite run - -------------------------------------------------------------------- -Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de - -- nsswitch.conf: Add fallback to files for passwd and group to prepare for - libnsl removal. - -------------------------------------------------------------------- -Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de - -- nis-initgroups-status.patch: Return proper status from - _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) -- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to - check for timeout (bsc#985170, BZ #20263) - -------------------------------------------------------------------- -Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de - -- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ - #19755) - -------------------------------------------------------------------- -Mon May 30 08:23:03 UTC 2016 - schwab@suse.de - -- clntudp-call-alloca.patch: do not use alloca in clntudp_call - (CVE-2016-4429, bsc#980854, BZ #20112) - -------------------------------------------------------------------- -Wed May 11 09:33:47 UTC 2016 - schwab@suse.de - -- Import patches from 2.23 branch - 0001-Updated-translations-for-2.23.patch - 0002-Regenerate-libc.pot-for-2.23.patch - 0003-Regenerated-configure-scripts.patch - 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch - 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch - 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch - 0008-Update-NEWS.patch - 0009-sln-use-stat64.patch - 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch - 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch - 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch - 0013-Mention-BZ-19762-in-NEWS.patch - 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch - 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch - 0016-Fix-resource-leak-in-resolver-bug-19257.patch - 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch - 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch - 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch - 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch - 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch - 0022-configure-fix-test-usage.patch - 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch - 0025-getnameinfo-Do-not-preserve-errno.patch - 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch - 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch - 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch - 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch - 0030-hesiod-Remove-RCS-keywords.patch - 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch - 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch - 0033-malloc-Remove-NO_THREADS.patch - 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch - 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch - 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch - 0037-malloc-Add-missing-internal_function-attributes-on-f.patch - 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch - 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch - 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch - 0041-nss_dns-Check-address-length-before-creating-addrinf.patch - 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch - 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch - 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch - 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch - 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch - 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch - 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch - 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch - 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch - 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch - 0052-Fix-tst-dlsym-error-build.patch - 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch - 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch - 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch - 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch -- CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 -- resolv-mem-leak.patch: renamed to - 0016-Fix-resource-leak-in-resolver-bug-19257.patch -- no-long-double.patch: renamed to - 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch -- glibc-gcc6.patch: renamed to - 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch - -------------------------------------------------------------------- -Mon May 9 14:00:41 UTC 2016 - schwab@suse.de - -- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories -- glibc-2.3.locales.diff.bz2: likewise - -------------------------------------------------------------------- -Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com - -- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with - -Wparentheses - -------------------------------------------------------------------- -Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de - -- Add compatibility symlinks for LSB 3.0 (fate#318933) - -------------------------------------------------------------------- -Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de - -- powerpc-elision-enable-envvar.patch: enable TLE only if - GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) - -------------------------------------------------------------------- -Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de - -- ldd-system-interp.patch: Restore warning about execution permission, it - is still needed for noexec mounts (bsc#915985) - -------------------------------------------------------------------- -Tue Mar 8 15:28:16 UTC 2016 - idonmez@suse.com - -- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) - and rh#902094 . Added with glibc-c-utf8-locale.patch. -- Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for - C.UTF-8 same as C locale. - -------------------------------------------------------------------- -Mon Mar 7 14:47:50 UTC 2016 - schwab@suse.de - -- Move %install_info_delete to %preun -- crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer - acceptable - -------------------------------------------------------------------- -Tue Feb 23 16:11:36 UTC 2016 - schwab@suse.de - -- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE - -------------------------------------------------------------------- -Mon Feb 22 11:05:12 UTC 2016 - schwab@suse.de - -- Update to glibc 2.23 release. - * Unicode 8.0.0 Support - * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess - the kernel-internal CPU set size - * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 - * getaddrinfo now detects certain invalid responses on an internal - netlink socket - * A defect in the malloc implementation, present since glibc 2.15 (2012) - or glibc 2.10 via --enable-experimental-malloc (2009), could result in - the unnecessary serialization of memory allocation requests across - threads - * The obsolete header has been removed - * The obsolete functions bdflush, create_module, get_kernel_syms, - query_module and uselib are no longer available to newly linked - binaries - * Optimized string, wcsmbs and memory functions for IBM z13. - * Newly linked programs that define a variable called signgam will no - longer have it set by the lgamma, lgammaf and lgammal functions -- Removed patches: - * dont-remove-nodelete-flag.patch - * openat64-readd-o-largefile.patch - * mntent-blank-line.patch - * opendir-o-directory-check.patch - * strcoll-remove-strdiff-opt.patch - * ld-pointer-guard.patch - * tls-dtor-list-mangling.patch - * powerpc-lock-elision-race.patch - * prelink-elf-rtype-class.patch - * vector-finite-math-aliases.patch - * powerpc-elision-adapt-param.patch - * catopen-unbound-alloca.patch - * strftime-range-check.patch - * hcreate-overflow-check.patch - * errorcheck-mutex-no-elision.patch - * refactor-nan-parsing.patch - * send-dg-buffer-overflow.patch - * isinf-cxx11-conflict.patch - * ibm93x-redundant-shift-si.patch - * iconv-reset-input-buffer.patch - * tzset-tzname.patch - * static-dlopen.patch - -------------------------------------------------------------------- -Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de - -- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with - C++11 (bsc#963700, BZ #19439) - -------------------------------------------------------------------- -Wed Feb 17 09:48:26 UTC 2016 - schwab@suse.de - -- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling - (BZ #19018) -- prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits - for prelink (BZ #19178) -- vector-finite-math-aliases.patch: Better workaround for aliases of - *_finite symbols in vector math library (BZ# 19058) -- powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision - transient failure adapt param (BZ #19174) -- catopen-unbound-alloca.patch: Fix unbound alloca in catopen - (CVE-2015-8779, bsc#962739, BZ #17905) -- strftime-range-check.patch: Add range check on time fields - (CVE-2015-8776, bsc#962736, BZ #18985) -- hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, - bsc#962737, BZ #18240) -- errorcheck-mutex-no-elision.patch: Don't do lock elision on an error - checking mutex (bsc#956716, BZ #17514) -- refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads - (CVE-2014-9761, bsc#962738, BZ #16962) -- send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer - overflow (CVE-2015-7547, bsc#961721, BZ #18665) -- powerpc-lock-elision-race.patch: renamed from - 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch - -------------------------------------------------------------------- -Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de - -- Add audit-devel and libcap-devel to BuildRequires, for use by nscd - -------------------------------------------------------------------- -Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de - -- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock - on fork (bsc#958315, BZ #19282) - -------------------------------------------------------------------- -Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de - -- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) -- tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set - DST rules only (BZ #19253) - -------------------------------------------------------------------- -Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de - -- glibc-2.3.90-noversion.diff: use stat64 - -------------------------------------------------------------------- -Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de - -- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, - bsc#950944, BZ #18928) - -------------------------------------------------------------------- -Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de - -- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based - optimization (BZ #18589) - -------------------------------------------------------------------- -Thu Oct 8 14:26:14 UTC 2015 - schwab@suse.de - -- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE - error handler (BZ #18830) - -------------------------------------------------------------------- -Wed Sep 30 11:48:05 UTC 2015 - normand@linux.vnet.ibm.com - -- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock - 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch - -------------------------------------------------------------------- -Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de - -- nss-files-long-lines-2.patch: Properly reread entry after failure in - nss_files getent function (bsc#945779, BZ #18991) - -------------------------------------------------------------------- -Wed Sep 16 10:21:43 UTC 2015 - schwab@suse.de - -- fnmatch-collating-elements.patch: Fix fnmatch handling of collating - elements (BZ #17396, BZ #16976) - -------------------------------------------------------------------- -Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de - -- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works - test -- static-dlopen.patch: Static dlopen default library search path fix - (bsc#937853) - -------------------------------------------------------------------- -Mon Aug 31 12:21:29 UTC 2015 - schwab@suse.de - -- mntent-blank-line.patch: Fix memory corruption w/blank lines - -------------------------------------------------------------------- -Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de - -- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from - all loaded objects on failed dlopen -- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 - -------------------------------------------------------------------- -Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de - -- Update to glibc 2.22 release. - * Cache information can be queried via sysconf() function on s390 - * A buffer overflow in gethostbyname_r and related functions performing DNS - requests has been fixed. (CVE-2015-1781) - * The time zone file parser has been made more robust against crafted time - zone files - * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors - for LD and GD on x86 and x86-64, has been implemented. - * Character encoding and ctype tables were updated to Unicode 7.0.0 - * Added vector math library named libmvec - * A new fmemopen implementation has been added with the goal of POSIX - compliance. - * The header is deprecated, and will be removed in a future - release. - * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 - bsc#940195 bsc#940332 bsc#944494 bsc#968787 -- Patches from upstream removed - * htm-tabort.patch - * o-tmpfile.patch - * memcpy-chk-non-SSE2.patch - * pthread-mutexattr-gettype-kind.patch - * powerpc-software-sqrt.patch - * static-tls-dtv-limit.patch - * threaded-trim-threshold.patch - * resolv-nameserver-handling.patch - * nss-separate-state-getXXent.patch - * aarch64-sigstksz.patch - * heap-top-corruption.patch - * pthread-join-deadlock.patch - -------------------------------------------------------------------- -Mon Jul 27 09:08:21 UTC 2015 - schwab@suse.de - -- pthread-join-deadlock.patch: Use IE model for static variables in - libc.so, libpthread.so and rtld (bsc#930015, BZ #18457) - -------------------------------------------------------------------- -Wed Jul 22 09:13:48 UTC 2015 - schwab@suse.de - -- glibc-nodate.patch: fix verification of timestamp - -------------------------------------------------------------------- -Tue Jul 21 07:50:22 UTC 2015 - meissner@suse.com - -- also filter out -fstack-protector-strong - -------------------------------------------------------------------- -Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de - -- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start - before IPv6 is up (bsc#931399) -- glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE. - -------------------------------------------------------------------- -Tue Jun 9 08:16:46 UTC 2015 - schwab@suse.de - -- Add /usr/include/gnu/lib-names-.*.h to baselibs -- pthread-join-deadlock.patch: Don't require rtld lock to store static TLS - offset in the DTV (bsc#930015, BZ #18457) -- heap-top-corruption.patch: Do not corrupt the top of a threaded heap if - top chunk is MINSIZE (BZ #18502) - -------------------------------------------------------------------- -Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com - -- threaded-trim-threshold.patch: Fix regression in threaded application - malloc performance (bsc#915955, BZ #17195) - -------------------------------------------------------------------- -Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de - -- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) - -------------------------------------------------------------------- -Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de - -- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ - #17967) -- nss-separate-state-getXXent.patch: Separate internal state between - getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) -- static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS - limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, - BZ #17628) - -------------------------------------------------------------------- -Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de - -- resolv-nameserver-handling.patch: Replace with simpler version with more - compatibility - -------------------------------------------------------------------- -Mon Mar 2 14:27:02 UTC 2015 - schwab@suse.de - -- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs - (bsc#920084) - -------------------------------------------------------------------- -Tue Feb 24 10:11:46 UTC 2015 - schwab@suse.de - -- resolv-nameserver-handling.patch: Rewrite handling of nameserver - configuration in resolver - -------------------------------------------------------------------- -Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de - -- htm-tabort.patch: Fix TABORT encoding for little endian - -------------------------------------------------------------------- -Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de - -- Update to glibc 2.21 release. - * A new semaphore algorithm has been implemented in generic C code for all - machines - * Added support for TSX lock elision of pthread mutexes on powerpc32, - powerpc64 and powerpc64le - * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for - AArch64 - * i386 memcpy functions optimized with SSE2 unaligned load/store - * New locales: tu_IN, bh_IN, raj_IN, ce_RU - * The obsolete sigvec function has been removed - * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 - CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 -- Patches from upstream removed - * ifunc-x86-slow-sse4.patch - * pthread-mutex-trylock-elision.patch -- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with - non-default O_DIRECTORY (BZ #17912) - -------------------------------------------------------------------- -Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de - -- Update to crypt_blowfish 1.3. - * Add support for the $2b$ prefix. -- ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit - (BZ #17501) - -------------------------------------------------------------------- -Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de - -- Update to glibc 2.20 release. - * Reverted change of ABI data structures for s390 and s390x - * Support for file description locks is added to systems running the - Linux kernel - * Optimized strchr implementation for AArch64 - * The minimum Linux kernel version that this version of the GNU C Library - can be used with is 2.6.32 - * Running the testsuite no longer terminates as soon as a test fails - * The am33 port, which had not worked for several years, has been removed - from ports. - * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer - supported; they now act the same as _DEFAULT_SOURCE (but generate a - warning) - * Optimized strcmp implementation for ARMv7 - * Added support for TX lock elision of pthread mutexes on s390 and s390x - * All supported architectures now use the main glibc sysdeps directory - instead of some being in a separate "ports" directory - * The NPTL implementation of POSIX pthreads is no longer an "add-on" - * Locale names, including those obtained from environment variables (LANG - and the LC_* variables), are more tightly checked for proper syntax - * On x86-64, the dynamic linker's lazy-binding support is now compatible - with application code using Intel MPX instructions - * CVE-2013-7423 bsc#915526 bsc#934084 bsc#973010 -- Patches from upstream removed - * nss-dns-memleak.patch - * sin-sign.patch - * pldd-wait-ptrace-stop.patch - * nscd-track-startup-failures.patch - * powerpc-opt-power8.patch - * check-pf-alloca.patch - * getaddrinfo-uninit-result.patch - * ppc64-copysign.patch - * nextafterl-ibm-ldouble.patch - * ibm-long-double-math.patch - * ibm-long-double-frexpl.patch - * aarch64-setcontext.patch - * nss-nis-stack-use.patch - * psfaa.patch - * nss-files-long-lines.patch - * setlocale-directory-traversal.patch - * dt-ppc64-num.patch - * ppc64le-profiling.patch - * s390-revert-abi-change.patch - * disable-gconv-translit-modules.patch - * resolv-dont-ignore-second-answer.patch - * iconv-ibm-sentinel-check.patch -- Remove sprof.1, and mtrace.1, now included in the man-pages package - (bsc#967190) - -------------------------------------------------------------------- -Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de - -- iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM - gconv modules (CVE-2014-6040, bnc#894553, BZ #17325) - -------------------------------------------------------------------- -Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de - -- disable-gconv-translit-modules.patch: Disable gconv transliteration - module loading (CVE-2014-5119, bnc#892073, BZ #17187) - -------------------------------------------------------------------- -Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de - -- pthread-mutexattr-gettype-kind.patch: Filter out - PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype - (bnc#888131, BZ #15790) - -------------------------------------------------------------------- -Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de - -- ppc64le-profiling.patch: fix profiling for ppc64le (bnc#889601, BZ - #17213) -- s390-revert-abi-change.patch: replace with upstream patch, switches - default symbol version back to old version (bnc#887228) - -------------------------------------------------------------------- -Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de - -- ibm93x-redundant-shift-si.patch: Avoid redundant shift character in - iconv output at block boundary (bnc#886416, BZ #17197) - -------------------------------------------------------------------- -Thu Jul 24 15:35:50 UTC 2014 - schwab@suse.de - -- s390-revert-abi-change.patch: revert back to pre-2.19 layout of jmp_buf - and ucontext_t on s390 (bnc#887228) - -------------------------------------------------------------------- -Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de - -- dt-ppc64-num.patch: Correct DT_PPC64_NUM (bnc#887169, BZ #17153) - -------------------------------------------------------------------- -Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de - -- setlocale-directory-traversal.patch: Directory traversal in locale - environment handling (CVE-2014-0475, bnc#887022, BZ #17137) -- Remove the ppc64le check-abi workaround, no longer needed - -------------------------------------------------------------------- -Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de - -- nss-files-long-lines.patch: Don't ignore too long lines in nss_files - (bnc#883217, BZ #17079) -- Remove locale.1, localedef.1 and iconvconfig.8 manpages, now included in - the man-pages package (bnc#880703) -- manpages.patch: update - -------------------------------------------------------------------- -Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de - -- psfaa.patch: copy filename argument in posix_spawn_file_actions_addopen - (CVE-2014-4043, bnc#882600, BZ #17048) - -------------------------------------------------------------------- -Wed May 28 15:11:45 UTC 2014 - matz@suse.de - -- glibc-memset-nontemporal.diff: Speedup memset on x86_64 - (bnc#868622, BZ #16830) - -------------------------------------------------------------------- -Thu May 15 15:45:03 UTC 2014 - schwab@suse.de - -- add non-elision-enabled libpthread - -------------------------------------------------------------------- -Mon May 12 13:22:40 UTC 2014 - schwab@suse.de - -- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ - #16932) - -------------------------------------------------------------------- -Wed May 7 10:13:24 UTC 2014 - schwab@suse.de - -- getaddrinfo-uninit-result.patch: fix parsing of getai result for - IPv6-only request (bnc#876521) - -------------------------------------------------------------------- -Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de - -- ibm-long-double-frexpl.patch: Correct IBM long double frexpl - (bnc#872573, BZ #16740, BZ #16619) - -------------------------------------------------------------------- -Tue Apr 15 14:23:54 UTC 2014 - schwab@suse.de - -- ibm-long-double-math.patch: Remove faulty assembler implementations of - ceil, nearbyintl, roundl for IBM long double (bnc#873457, BZ #16701, BZ - #16706, BZ #16707) - -------------------------------------------------------------------- -Tue Apr 15 11:00:59 UTC 2014 - aj@suse.com - -- Use /run for nscd instead of /var/run. - -------------------------------------------------------------------- -Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de - -- pthread-mutex-destroy.patch: Remove -- pthread-mutex-trylock-elision.patch: Properly handle forced elision in - pthread_mutex_trylock (bnc#865968, BZ #16657) - -------------------------------------------------------------------- -Thu Apr 3 07:32:24 UTC 2014 - schwab@suse.de - -- nextafterl-ibm-ldouble.patch: Correct IBM long double nextafterl - (bnc#871637, BZ #16739) - -------------------------------------------------------------------- -Tue Apr 1 13:33:24 UTC 2014 - schwab@suse.de - -- Readd dependency on sysvinit.target to nscd.service (bnc#868422) -- Make the nscd service part of the nss-lookup and nss-user-lookup targets - (bnc#871386) -- Move _constraints back to main package and update it - -------------------------------------------------------------------- -Tue Apr 1 07:55:19 UTC 2014 - schwab@suse.de - -- ppc64-copysign.patch: Fix ppc64le copysign overwriting parent stack - frame (BZ #16786) -- aarch64-setcontext.patch: Fix aarch64 setcontext clobbering alternate - signal stack (BZ #16629) - -------------------------------------------------------------------- -Mon Mar 31 13:22:56 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: readd POWER8 implementation of isnan, - isinf, finite with fix for little endian (bnc#871353) -- pthread-mutex-destroy.patch: Skip checks in pthread_mutex_destroy when - doing elision (bnc#865968) - -------------------------------------------------------------------- -Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan, - isinf, finite; fix missing static symbols -- glibc-2.14-crypt.diff: update for file renaming - -------------------------------------------------------------------- -Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de - -- check-pf-alloca.patch: remove use of alloca while collecting interface - addresses - -------------------------------------------------------------------- -Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de - -- abort-no-flush.patch: Don't close or flush stdio streams on abort (BZ - #15436) -- fix-locking-in-_IO_cleanup.patch: always do locking when accessing - streams (bnc#796982, BZ #15142) -- resolv-dont-ignore-second-answer.patch: don't ignore second answer from - nameserver if the first one was empty (bnc#767266, BZ #13651) -- ldd-system-interp.patch: Never try to execute the file in ldd - (CVE-2009-5064, bnc#677787, BZ #16750) - -------------------------------------------------------------------- -Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de - -- check-pf-alloca.patch: Account for alloca use when collecting interface - addresses (bnc#785041, BZ #16002) - -------------------------------------------------------------------- -Mon Mar 24 07:59:40 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: two more POWER8 optimisations (bnc#866711, - fate#315443) - -------------------------------------------------------------------- -Thu Mar 20 14:52:47 UTC 2014 - schwab@suse.de - -- getaddrinfo-uninit-result.patch: Fix use of half-initialized result in - getaddrinfo when using nscd (bnc#867636, BZ #16743) - -------------------------------------------------------------------- -Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de - -- Remove dependency on sysinit.target from nscd.service again (bnc#86422) - -------------------------------------------------------------------- -Wed Mar 19 14:39:55 UTC 2014 - schwab@suse.de - -- powerpc-opt-power8.patch: GLIBC Optimizations For POWER8 Hardware - (bnc#866711, fate#315443) - -------------------------------------------------------------------- -Tue Mar 18 17:10:43 UTC 2014 - schwab@suse.de - -- Make sure nscd is started after sysinit.target (bnc#868422) -- nscd-track-startup-failures.patch: properly track startup failures in - nscd and mark nscd.service as forking (BZ #16639) - -------------------------------------------------------------------- -Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de - -- Add services and netgroup persistent caches to nscd file list - -------------------------------------------------------------------- -Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de - -- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) -- pldd-wait-ptrace-stop.patch: Update from upstream - -------------------------------------------------------------------- -Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de - -- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499) -- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686 - -------------------------------------------------------------------- -Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de - -- Bump minimum kernel to 3.0 - -------------------------------------------------------------------- -Sun Feb 9 13:52:23 UTC 2014 - schwab@suse.de - -- Update to glibc 2.19 release - -------------------------------------------------------------------- -Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de - -- Update to glibc 2.18.90 ee7cc3853761: - * More bug fixes - * SystemTap probes for slow multiple precision fallback paths of - transcendental functions have been introduced. - * Preliminary documentation about Multi-Thread, Async-Signal and - Async-Cancel Safety has been added. - * Change powerpc64le start ABI to 2.17 -- Add /usr/local/lib64 to ld.so.conf on all lib64 platforms -- Enable profile build for aarch64 -- ppc64le-abilist.patch: Removed - -------------------------------------------------------------------- -Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com - -- make pwdutils a real buildrequire - Requires(pre) are used during builds, but don't trigger rebuilds. - But to create clearly defined bootstrap projects, it's essential - to know what packages are required for others. So move this requires - to build to a buildrequire - -------------------------------------------------------------------- -Tue Jan 7 14:30:50 UTC 2014 - schwab@suse.de - -- Update to glibc 2.18.90 94c8a4bc574c: - * More bug fixes - * Slovenian translations for glibc messages have been contributed by the - Translation Project's Slovenian team of translators. - -------------------------------------------------------------------- -Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 83f5c32d21f7: - * Support for STT_GNU_IFUNC symbols added for ppc64 - * A new feature test macro _DEFAULT_SOURCE is available - * The _BSD_SOURCE feature test macro no longer enables BSD interfaces - that conflict with POSIX. The libbsd-compat library (which was a - dummy library that did nothing) has also been removed. - * Added support for version-3 tz format files -- i686-no-sse42-strstr.patch: Removed - -------------------------------------------------------------------- -Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 aeb95445d128: - * More bug fixes - * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ - * The public headers no longer use __unused nor __block - * Support for PowerPC64 ELFv2 ABI -- ppc64le-abilist.patch: ABI lists for PowerLE - -------------------------------------------------------------------- -Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18.90 bd12ab55c05e: - * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW, - pap_CW, quz_PE, the_NP. - * Substantially revised locales: gd_GB, ht_HT - * The LC_ADDRESS field was updated to support country_car for almost all - supported locales. - * ISO 1427 definitions were updated. - * ISO 3166 definitions were updated. - * The localedef utility now supports --big-endian and --little-endian - command-line options to generate locales for a different system from that - for which the C library was built. - * Binary locale files now only depend on the endianness of the system for - which they are generated and not on other properties of that system. - * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh, - cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue). - * SystemTap probes for malloc have been introduced. - * Support for powerpc64le has been added. - * The soft-float powerpc port now supports e500 processors. -- Remove upstreamed patches: - cbrtl-ldbl-96.patch - fcntl-o-tmpfile.patch - getaddrinfo-overflow.patch - glibc-2.18.tar.xz - glibc-ld-profile.patch - glibc-nscd-hconf.diff - i686-strcasecmp-fallback.patch - m68k-Scrt1.patch - malloc-overflows.patch - nonascii-case.patch - nss-database.patch - printf-overrun.patch - readdir_r-overflow.patch - strcoll-overflow.patch -- Remove obsolete patches: - glibc-2.4.90-revert-only-euro.diff - -------------------------------------------------------------------- -Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de - -- getaddrinfo-overflow.patch: Fix stack overflow due to large AF_INET6 - requests (CVE-2013-4458, bnc#847227) - -------------------------------------------------------------------- -Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de - -- Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) - -------------------------------------------------------------------- -Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de - -- Depend on gcc defaults for base powerpc optimisations (bnc#844824) - -------------------------------------------------------------------- -Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de - -- Enable ports addon for m68k and adapt file list -- m68k-Scrt1.patch: Use PIC for Scrt1.o - -------------------------------------------------------------------- -Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de - -- nscd-server-user.patch: run nscd as user nscd (fate#314673) - -------------------------------------------------------------------- -Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de - -- malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332, - bnc#839870) - -------------------------------------------------------------------- -Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de - -- fcntl-o-tmpfile.patch: Add O_TMPFILE to (bnc#837965) -- strcoll-overflow.patch: Update to latest version - -------------------------------------------------------------------- -Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de - -- Update to glibc 2.18 release - * No source change -- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, - bnc#779320) -- readdir_r-overflow.patch: fix readdir_r with long file names - (CVE-2013-4237, bnc#834594) - -------------------------------------------------------------------- -Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de - -- Update to glibc 2.17.90 85891acadf1b: - * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal - has been fixed by disabling the use of pt_chown (Bugzilla #15755). - Distributions can re-enable building and using pt_chown via the new configure - option `--enable-pt_chown'. Enabling the use of pt_chown carries with it - considerable security risks and should only be used if the distribution - understands and accepts the risks. - * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla - #15078). - * CVE-2013-1914 Stack overflow in getaddrinfo with many results has been - fixed (Bugzilla #15330). - * Add support for calling C++11 thread_local object destructors on thread - and program exit. This needs compiler support for offloading C++11 - destructor calls to glibc. - * Improved worst case performance of libm functions with double inputs and - output. - * Support for priority inherited mutexes in pthread condition variables on - non-x86 architectures. - * Optimized string functions for AArch64. Implemented by Marcus Shawcroft. - * Optimized string functions for ARM. Implemented by Will Newton and - Richard Henderson. - * Added a benchmark framework to track performance of functions in glibc. - * New macro named issignaling to check for a signaling NaN (sNaN). - It is based on draft TS 18661 and currently enabled as a GNU extension. - * On Linux, the clock function now uses the clock_gettime system call - for improved precision, rather than old times system call. - * Added new API functions pthread_getattr_default_np and - pthread_setattr_default_np to get and set the default pthread - attributes of a process. - * Added support for TSX lock elision for pthread mutexes on i386 and x86-64. - This may improve lock scaling of existing programs on TSX capable systems. - * Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10 - availability). Implemented by Ryan S. Arnold. - * Support added for POWER8 platform. Implemented by Ryan S. Arnold. -- Remove upstreamed patches: - pthread-cond-timedwait-i486.patch - glibc-aarch64-lib64.patch - arm-ld-so-cache.patch - rtlddir.patch - regexp-overrun.patch - getaddrinfo-overflow.patch - nscd-netgroup.patch - disable-pt-chown.patch - nscd-short-write.patch - big5-hkscs-update.patch.bz2 - digits-dots.patch - strptime-W-week.patch - aarch64-sigsetjmp.patch -- Rediff all remaining patches -- Reenable stackguard randomization on arm -- Recognize ppc64p7 arch to build for power7 -- Remove all ABI extensions from libcrypt -- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96 - -------------------------------------------------------------------- -Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de - -- i686-strcasecmp-fallback.patch: fix fallback in i686 - strcasecmp/strncasecmp -- nonascii-case.patch: also test strncasecmp -- pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after - detaching (bnc#819383) - -------------------------------------------------------------------- -Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de - -- disable-pt-chown.patch: disable use of pt_chown (CVE-2013-2207, - bnc#830257) -- nonascii-case.patch: fix strcasecmp in tr_TR.ISO-8859-9 locale -- glibc-2.14-crypt.diff: fix incomplete dependencies for libowcrypt - -------------------------------------------------------------------- -Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de - -- crypt_blowfish-gensalt.patch: separare crypt_gensalt into its own - library libowcrypt, remove crypt_rn and crypt_ra (fate#314945) -- glibc-2.14-crypt-versioning.diff, glibc-fix-check-abi.patch, - glibc-crypt-badsalttest.patch: folded into glibc-2.14-crypt.diff -- crypt_blowfish-const.patch: constify crypt_blowfish -- crypt_blowfish-1.2-sha.diff: refresh - -------------------------------------------------------------------- -Fri Jun 28 12:26:38 UTC 2013 - dmueller@suse.com - -- add ld-linux.so.3 compat symlink also for armv6hl -- remove deprecated armv7l - -------------------------------------------------------------------- -Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com - -- rely on systemd-rpm-macros instead of the full thing - -------------------------------------------------------------------- -Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de - -- nscd-netgroup.patch: Fix handling of netgroup cache in nscd (bnc#819524) - -------------------------------------------------------------------- -Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de - -- glibc-bindresvport-blacklist.diff: Renamed from - glibc-2.3.90-bindresvport.blacklist.diff; fix resource leaks - (bnc#824046) -- Remove glibc-armhf-compat.patch - -------------------------------------------------------------------- -Mon May 20 08:26:35 UTC 2013 - schwab@suse.de - -- aarch64-sigsetjmp.patch: Fix sigsetjmp on aarch64 - -------------------------------------------------------------------- -Sat May 18 09:34:41 UTC 2013 - schwab@suse.de - -- Fix file list for glibc-utils - -------------------------------------------------------------------- -Thu May 16 12:02:14 UTC 2013 - schwab@suse.de - -- big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 -- digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r -- nss-database.patch: Properly cache the result from looking up the nss - database config -- strptime-W-week.patch: Properly handle %W in strptime -- printf-overrun.patch: Revert problematic fixes for [BZ #11741] -- glibc-aarch64-lib64.patch: Replace with upstream version -- arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache -- rtlddir.patch: Add support for rtld directory different from slib - directory -- regexp-overrun.patch: Fix buffer overrun in regexp matcher - (CVE-2013-0242, bnc#801246) -- getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many - results (CVE-2013-1914, bnc#813121) - -------------------------------------------------------------------- -Thu May 16 10:04:01 UTC 2013 - schwab@suse.de - -- When testsuite run fails make all test output available - -------------------------------------------------------------------- -Tue May 7 10:00:00 UTC 2013 - schwab@suse.de - -- Fix check for XEN build in glibc_post_upgrade - -------------------------------------------------------------------- -Sun Apr 14 02:41:52 UTC 2013 - crrodriguez@opensuse.org - -- Do not order nscd after syslog.target - -------------------------------------------------------------------- -Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de - -- Fix crypt ABI for aarch64 - -------------------------------------------------------------------- -Thu Feb 28 14:30:44 UTC 2013 - schwab@suse.de - -- manpages.patch: - Remove debianisms from manpages (bnc#805054) - -------------------------------------------------------------------- -Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de - -- Update crypt ABI for aarch64 -- glibc-aarch64-lib64.patch: - Use lib64 for aarch64 and add link for /lib/ld-linux-aarch64.so.1 -- Don't build profiling libraries for aarch64 - -------------------------------------------------------------------- -Tue Feb 5 09:28:44 UTC 2013 - schwab@suse.de - -- Move _constraints file to glibc-testsuite only - -------------------------------------------------------------------- -Sun Feb 3 00:08:54 UTC 2013 - dmueller@suse.com - -- build with ports enabled on aarch64 - -------------------------------------------------------------------- -Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de - -- Obsolete unscd to migrate back to nscd. - -------------------------------------------------------------------- -Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com - -- looks like testsuite runs only on kvm, so add _constraint - (actually it does not build on xen, but I can't constraint that) - -------------------------------------------------------------------- -Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de - -- Don't run testsuite in parallel -- Fail if testsuite fails -- Disable crypt/badsalttest test - -------------------------------------------------------------------- -Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com - -- add _constraints file to make sure glibc-testsuite only builds on big - hosts. Otherwise it's running out of memory and stalls - -------------------------------------------------------------------- -Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de - -- Set bugurl to bugs.opensuse.org - -------------------------------------------------------------------- -Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de - -- Update to glibc 2.17 release (git id c758a6861537): - * bump version number - * update translations - -------------------------------------------------------------------- -Tue Dec 18 10:28:01 UTC 2012 - schwab@suse.de - -- Move glibc-utils subpackage to own specfile and enable programs that - require libgd -- Filter GLIBC_PRIVATE symbols -- Don't stop at first error in testsuite run - -------------------------------------------------------------------- -Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de - -- Split off glibc-testsuite package - -------------------------------------------------------------------- -Fri Dec 14 19:31:45 UTC 2012 - aj@suse.de - -- Build profile and locale packages for i686 as well. - -------------------------------------------------------------------- -Wed Dec 12 08:32:53 UTC 2012 - aj@suse.de - -- Update to 4641d57e1e00: - * Updated translations - * bug fixes - -------------------------------------------------------------------- -Mon Dec 10 13:08:01 UTC 2012 - schwab@suse.de - -- pthread-cond-timedwait-i486.patch: - Extend i486 pthread_cond_timedwait to use futex syscall with absolute - timeout -- nscd-short-write.patch: - Properly check for short writes when sending the response in nscd - -------------------------------------------------------------------- -Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de - -- Update to 56e7d3ad5c2f: - * Bugfixes - * Fix warnings building glibc -- Remove upstreamed patch glibc-revert-fseek-on-fclose.diff - -------------------------------------------------------------------- -Mon Dec 3 15:45:08 UTC 2012 - aj@suse.de - -- Remove nosegneg i686 library, it's only used for a 32-bit Xen - hypervisor (not for a 32-bit guest running under 64-bit hypervisor), - and since the 32-bit Xen hypervisor is not part of openSUSE anymore, - it is unneeded (bnc#789607). - -------------------------------------------------------------------- -Mon Dec 3 14:47:22 UTC 2012 - schwab@suse.de - -- Suppress error message from systemctl in %post -n nscd (bnc#792333) - -------------------------------------------------------------------- -Sat Dec 1 08:55:05 UTC 2012 - aj@suse.de - -- Update to f638872ab422: - Fix regression introduced with last update in sunrpc code - Fix assertion failure in resolver - Bug fixes -- Remove upstreamed patch glibc-resolv-assert.diff - -------------------------------------------------------------------- -Fri Nov 30 09:15:15 UTC 2012 - aj@suse.de - -- Update to c93ec1f091ec: - Warn about unsupported DT_FLAGS_1 flags - Add Interlingua locale - Bug fixes - -------------------------------------------------------------------- -Thu Nov 29 14:30:11 UTC 2012 - schwab@suse.de - -- Remove obsolete patches: - glibc-strict-aliasing.diff - nscd-avoid-gcc-warning.diff - -------------------------------------------------------------------- -Wed Nov 28 15:48:32 UTC 2012 - aj@suse.de - -- Update to e3c6aa3a5848: - * Fix powerpc64 make abi check failure - * bugfixes -- Install nscd.socket to new /usr location - -------------------------------------------------------------------- -Wed Nov 28 09:31:11 UTC 2012 - schwab@suse.de - -- Reenable multi-arch on ppc ppc64 - -------------------------------------------------------------------- -Tue Nov 27 21:34:15 UTC 2012 - aj@suse.de - -- Update to de2fd463b1c0: - Various bugfixes including: - * Fix fwrite bug causing grep etc testsuite failure - * sotruss: fix argument parsing - * Check supported DF_1_XXX bits - Add new locales niu_NU and niu_NZ -- Refresh patch glibc-revert-fseek-on-fclose.diff - -------------------------------------------------------------------- -Sat Nov 24 13:48:40 UTC 2012 - aj@suse.de - -- Remove nscd init script, use systemd files. - -------------------------------------------------------------------- -Fri Nov 23 14:33:37 UTC 2012 - matz@suse.com - -- Fix getaddrinfo-ipv6-sanity.diff to apply again. - -------------------------------------------------------------------- -Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de - -- Update to f59cba71d848: - * Various bug fixes - * Add new locales szl_PL, ayc_PE, nhn_MX, doi_IN, mni_IN, sat_IN. - * Remove patch glibc-compiled-binaries.diff since getconf can not be - cross-compiled - * Refresh patch glibc-2.3.90-bindresvport.blacklist.diff - -------------------------------------------------------------------- -Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de - -- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c): - * Upstream changes: - + ports is now part of main tarball - + Add port to ARM AArch64 - + New function secure_getenv - + Systemtap static probes - + The `clock_*' suite of functions (declared in ) is now - available directly in the main C library. - + The `crypt' function now fails if passed salt bytes that violate the - specification for those values. On Linux, the `crypt' function will - consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is - enabled, and fail on encrypted strings using the MD5 or DES algorithm - when the mode is enabled. - + Optimzations and bug fixes - * remove upstream patches malloc-check-size.patch, - glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch, - pthread-cond-wait-revert.patch - * Remove now obsolete patch glibc-gai-private4.diff - * Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff, - glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff, - glibc-revert-fseek-on-fclose.diff - * Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff - and glibc-gai-private4.diff. - * Use git id instead of ChangeLog date in version output (patch glibc-version.diff) - * Enable multi-arch on all architectures that support it. - -------------------------------------------------------------------- -Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de - -- Avoid shell comment leaking into %post. - -------------------------------------------------------------------- -Thu Oct 25 07:30:04 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 c3b96f90c9c1: - - Fix missing _mcount@GLIBC_2.0 on powerpc32 (replaces - patch glibc-2.16-ppc32-mcount.patch) -- Drop patch glibc-elf-localscope.diff, fixed upstream in 2.16 - in a different way. - -------------------------------------------------------------------- -Tue Oct 9 07:15:12 UTC 2012 - aj@suse.de - -- Fix malloc_usable_size (swo#1349, bnc#745247) (patch - malloc-check-size.patch). - -- Update to current glibc 2.16 (git a5cfcf08ffaa): - * fix fma detection - * Don't parse %s format argument as multibyte string - * Use size_t instead of int for internal variables in glob - * Properly handle fencepost with MALLOC_ALIGN_MASK - -------------------------------------------------------------------- -Sat Oct 6 08:51:46 UTC 2012 - meissner@suse.com - -- make glibc-devel- require glibc- just - like glibc-devel - -------------------------------------------------------------------- -Fri Sep 28 07:47:33 UTC 2012 - aj@suse.de - -- Fix crash in relocation on sparc with bind-now (swo#14376) - (patch sparc-bind-now.patch). - -------------------------------------------------------------------- -Thu Sep 27 12:20:11 UTC 2012 - aj@suse.de - -- Fix check-abi on more architectures (bnc#780696), patch by Jan - Engelhardt (updated patch glibc-fix-check-abi.patch). - -------------------------------------------------------------------- -Tue Sep 4 11:08:53 UTC 2012 - schwab@linux-m68k.org - -- Move pt_chown to %{_libexecdir} so that baselibs can find it. -- Do create hardlinks to getconf so that baselibs use the correct binary - and getconf -v works (obsoletes patch glibc-2.8-getconf.diff). - -------------------------------------------------------------------- -Tue Aug 28 07:10:49 UTC 2012 - aj@suse.de - -- Update to da1f43196321, major changes: - * Fix strtod integer/buffer overflow (bso#14459). - * Fix segmentation fault in strncasecmp for i686. - * Translation updates - -------------------------------------------------------------------- -Tue Jul 24 08:39:30 UTC 2012 - aj@suse.de - -- Fix _mcount on PowerPC32. - -------------------------------------------------------------------- -Sat Jul 21 07:31:10 UTC 2012 - aj@suse.de - -- Enable parallel build for some more cases. - -------------------------------------------------------------------- -Fri Jul 20 17:00:00 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 release. - * update version numbers - * Documentation updates -- Update manpages from Debian, includes new man pages for - locale.1, mtrace.1, gencat.1 iconvconfig.8. -- Remove getent.1 man page, use the one from man-pages. - -------------------------------------------------------------------- -Fri Jul 20 16:42:42 UTC 2012 - aj@suse.de - -- Update to glibc 2.16 trunk (git id 416bf844227d): - * Fix check-abi for arm - * Refresh some patches. - * remove merged patches - * mainly lots of bug fixes - * Support for ISO C11 - * full details in NEWS file - -------------------------------------------------------------------- -Fri Jul 20 15:06:49 UTC 2012 - jengelh@inai.de - -- Add commit 10f62770e115d9f (glibc-sparc-fxstatat64.diff) from - upstream to resolve rpmlint-induced packaging abort due to - (previously) "no-return-in-nonvoid" -- Add xz as explicit BuildRequires for openSUSE_12.1 - -------------------------------------------------------------------- -Thu Jul 19 23:42:46 UTC 2012 - jengelh@inai.de - -- Do package ld-linux.so.2 on SPARC as well - -------------------------------------------------------------------- -Tue Jul 17 12:22:29 UTC 2012 - aj@suse.de - -- Add makeinfo as build requires to be able to generate the info - pages. - -------------------------------------------------------------------- -Wed Jul 4 13:36:17 UTC 2012 - aj@suse.de - -- Add glibc-2.16-getaddrinfo-buffer.patch to not use a too small - buffer for dns queries on 64-bit systems (bso#14307,bso#13904). -- Fix getaddrinfo-ipv6-sanity.diff (bnc#767125). - -------------------------------------------------------------------- -Mon Jul 2 16:23:15 UTC 2012 - agraf@suse.com - -- Backport *context patch for ARM from 2.16, so we have a working libpth - -------------------------------------------------------------------- -Thu Jun 28 18:46:30 UTC 2012 - aj@suse.de - -- Remove not anymore existing nscd.socket. - -------------------------------------------------------------------- -Thu Jun 28 12:33:50 UTC 2012 - aj@suse.de - -- Update to glibc 2.15-branch (git id 725b8ee08aff): - * Fix regression in cosh (bso#14273) - -------------------------------------------------------------------- -Wed Jun 27 07:34:15 UTC 2012 - aj@suse.de - -- Testsuite is ok to fail on arm - -------------------------------------------------------------------- -Tue Jun 26 07:11:49 UTC 2012 - aj@suse.de - -- Update to glibc 2.15 branch (git id b640404bd8c9): - * Fix fmod implementation that returned NaN for some values. - * Fix strcase_cmp_l x86 multiarch implementation. - * Remove glibc-2.15-avx2.patch, merged now. - -------------------------------------------------------------------- -Thu Jun 21 11:44:59 UTC 2012 - aj@suse.de - -- Fix Bogus FP exception on underflow for exp(double) (bnc#767956) - -------------------------------------------------------------------- -Mon Jun 18 11:04:37 UTC 2012 - aj@suse.de - -- Remove nscd.socket since nscd does not support socket - activation. - -------------------------------------------------------------------- -Wed Jun 13 11:07:15 UTC 2012 - aj@suse.de - -- Build power3 libs on 32-bit PowerPC (bnc#765165). - -------------------------------------------------------------------- -Wed May 23 20:00:55 UTC 2012 - aj@suse.de - -- Update to current git of glibc 2.15 branch: - * obsoletes glibc-2.16-avx.patch, - glibc-2.16-fix-check-localplt.patch - * Fixes for math functions. - -------------------------------------------------------------------- -Wed May 23 11:51:02 UTC 2012 - aj@suse.de - -- Fix first_weekday for tr_TR locale (tr_TR.patch) - -------------------------------------------------------------------- -Wed May 16 08:37:57 UTC 2012 - schwab@linux-m68k.org - -- Fix confstr use of local buffer outside its extent - -------------------------------------------------------------------- -Wed May 9 07:30:36 UTC 2012 - aj@suse.de - -- Split out glibc-armhf-compat.patch from armhf-ld-so.patch. -- Run nscd in the foreground with systemd (glibc-nscd-foreground-patch) - -------------------------------------------------------------------- -Tue May 8 14:00:52 UTC 2012 - aj@suse.de - -- Refresh glibc-2.16-avx.patch and handle FMA4. - -------------------------------------------------------------------- -Thu May 3 11:05:36 UTC 2012 - aj@suse.de - -- Fix dynamic linker name for ARMv5. - -------------------------------------------------------------------- -Thu Apr 26 14:02:37 UTC 2012 - aj@suse.de - -- Fix mcheck (optimization problem with gcc 4.7) - -------------------------------------------------------------------- -Wed Apr 25 10:40:20 UTC 2012 - aj@suse.de - -- Also check for armv7hl. - -------------------------------------------------------------------- -Wed Apr 25 08:47:22 UTC 2012 - adrian@suse.de - -- provide old ld-linux.so.3 on armv7, not catched by find.provides - -------------------------------------------------------------------- -Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de - -- gcc 4.7 does not build crt files properly on powerpc64, backport - patch from upstream to handle this - (glibc-2.16-powerpc-initfini.patch) - -------------------------------------------------------------------- -Fri Apr 20 18:28:18 UTC 2012 - aj@suse.de - -- Disable patch x86-cpuid-level2.patch, this should be fixed in - valgrind now. - -------------------------------------------------------------------- -Thu Apr 19 11:12:43 UTC 2012 - aj@suse.de - -- Reorder patches, refresh to apply cleanly with -p1. - -------------------------------------------------------------------- -Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de - -- Build profiled libs only for base. -- Cleanup patches. -- Remove glibc-2.14-fix-ctors.patch, we have proper support in - binutils now. - -------------------------------------------------------------------- -Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de - -- The dynamic linker for armv7 hardware float is called - /lib/ld-linux-armhf.so.3. Provide symlink for old location. - -------------------------------------------------------------------- -Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de - -- Build for power4 only, don't support power3 anymore. -- Add option to build glibc a bit more quickly for testing purposes. -- Remove disabled patch glibc-revert-netlink-cache.patch. -- Start renumbering patches. - -------------------------------------------------------------------- -Mon Apr 16 14:31:38 UTC 2012 - aj@suse.de - -- Do not build locales and profile for i686 since we only ship - the base and glibc-devel packages. - -------------------------------------------------------------------- -Fri Apr 13 09:35:49 UTC 2012 - aj@suse.de - -- Fix check-abi to succeed. -- Use feof_unlocked in glibc-2.3.90-bindresvport.blacklist.diff. -- Make x86 to be elf/check-localplt clean again -- Refresh some patches to apply without fuzz. - -------------------------------------------------------------------- -Fri Apr 6 09:19:11 UTC 2012 - aj@suse.de - -- Disable building with as-needed since it breaks glibc - (testsuite will fail, even if testsuite does not use as-needed) - -------------------------------------------------------------------- -Thu Apr 5 18:48:06 UTC 2012 - aj@suse.de - -- Another fix for dynamic linking. - -------------------------------------------------------------------- -Thu Apr 5 18:22:36 UTC 2012 - aj@suse.de - -- Properly fix dl_lookup_x crash (glibc-fix-noload.patch), disable - glibc-fix-lookup-crash.patch. - -------------------------------------------------------------------- -Mon Apr 2 09:30:24 UTC 2012 - aj@suse.de - -- Fix building on Armv5 (glibc-add-arm-dependency-libmemusage.patch) - -------------------------------------------------------------------- -Thu Mar 29 07:51:43 UTC 2012 - aj@suse.de - -- Fix crash when nscd is not running (bnc#741021) properly - and disable patch glibc-revert-netlink-cache.patch - -------------------------------------------------------------------- -Fri Mar 23 11:07:32 UTC 2012 - aj@suse.de - -- Fix path for nss_db (bnc#753657). - -------------------------------------------------------------------- -Thu Mar 22 09:41:48 UTC 2012 - aj@suse.de - -- Fix LD_PROFILE invocation. - -------------------------------------------------------------------- -Wed Mar 21 08:45:12 UTC 2012 - aj@suse.de - -- Fix cycle detection in loading of dynamic objects. - -------------------------------------------------------------------- -Wed Mar 14 08:26:52 UTC 2012 - aj@suse.de - -- Update getaddrinfo-ipv6-sanity.diff (bnc#684534). - -------------------------------------------------------------------- -Fri Mar 2 17:01:55 UTC 2012 - aj@suse.de - -- vfprintf: validate nargs and maybe allocate from heap (bnc#747768) - -------------------------------------------------------------------- -Tue Jan 31 13:20:37 UTC 2012 - aj@suse.de - -- Fix checks for AVX (patch glibc-2.16-avx.patch) - -------------------------------------------------------------------- -Tue Jan 31 09:44:07 UTC 2012 - aj@suse.de - -- Use Linux 2.6.32 on x86_64 as oldest supported kernel - -------------------------------------------------------------------- -Tue Jan 31 08:57:15 UTC 2012 - aj@suse.de - -- Fix relocation ordering to fix ifunc crash (bnc#740109). - -------------------------------------------------------------------- -Sun Jan 29 22:47:18 CET 2012 - dmueller@suse.de - -- set abi back to gnueabi for ARM (regression from Jan 12) - -------------------------------------------------------------------- -Wed Jan 18 09:29:24 UTC 2012 - aj@suse.de - -- Update license strings in spec file. - -------------------------------------------------------------------- -Mon Jan 16 13:19:43 UTC 2012 - aj@suse.de - -- Split up new subpackage glibc-extra and move makedb with its - dependency on libselinux to it. (bnc#741525) -- Use lua script for verifyscript to not have a dependency on bash - -------------------------------------------------------------------- -Thu Jan 12 15:42:36 UTC 2012 - aj@suse.de - -- Disable netlink caching (bnc#741021). - -------------------------------------------------------------------- -Thu Jan 12 11:01:41 UTC 2012 - aj@suse.de - -- Use _target_cpu instead of _build and _host. This makes the - i686 library really build for i686. - -------------------------------------------------------------------- -Tue Jan 10 12:31:14 UTC 2012 - aj@suse.de - -- Remove all math ifuncs on x86-64. - -------------------------------------------------------------------- -Tue Jan 10 09:53:58 UTC 2012 - aj@suse.de - -- Remove math ifuncs that cause crashes in apache2 and - gdk-pixbuf-query-loaders-64 (bnc#740109) for now - (glibc-2.15-math64crash.patch). -- nscd needs the same glibc version, add require. - -------------------------------------------------------------------- -Mon Jan 9 08:17:08 UTC 2012 - aj@suse.de - -- Fix realloc usage in vfscanf (glibc-2.16-scanf.patch) -- Fix getcontext on powerpc 32-bit (glibc-ppc-getcontext.patch) - -------------------------------------------------------------------- -Wed Jan 4 09:34:28 UTC 2012 - aj@suse.de - -- Remove patch glibc-2.3.4-gb18030-big5hkscs.diff.bz2 and - replace it by gb18030.patch.bz2 (synced with Fedora 16) - (bnc#743617). - -------------------------------------------------------------------- -Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de - -- Compile unwind-dw2-fde-glibc.c with -fno-strict-aliasing - (patch glibc-strict-aliasing.diff) -- Build on i686 a separate library for usage under Xen. - -------------------------------------------------------------------- -Tue Jan 3 15:36:12 UTC 2012 - aj@suse.de - -- Only use -mno-tls-direct-seg-refs on 32-bit x86, it's not needed - on x86-64. - -------------------------------------------------------------------- -Tue Jan 3 14:37:48 UTC 2012 - aj@suse.de - -- Cleanup spec file: - - experimental malloc is not experimental anymore and only option - (drop patch glibc-malloc-arena-max.diff) - - remove obsolete configure flags - -------------------------------------------------------------------- -Tue Jan 3 08:40:28 UTC 2012 - aj@suse.de - -- Update to 2ba92745c36e: - - Update copyright years - - Fix miscompilation of posix/regex_internal.c with GCC 4.7. - -------------------------------------------------------------------- -Tue Jan 3 08:23:44 UTC 2012 - aj@suse.de - -- Revert pthread-cond-wait change for now since it causes hangs - (patch pthread-cond-wait-revert.patch). - -------------------------------------------------------------------- -Mon Dec 26 12:53:55 UTC 2011 - aj@suse.de - -- Update to c0da14cdda1f (glibc-ports: 8a70b2dcabbf): - - new locales - - many bugfixes - - glibc 2.15 - - obsoletes tzfile-corruption-fix.patch, - glibc-2.14-32args-printf.patch - -------------------------------------------------------------------- -Thu Dec 21 15:16:42 CET 2011 - meissner@suse.de - -- Do not mention the buildtime anymore to make build-compare work. - -------------------------------------------------------------------- -Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de - -- Fix timezone loader overflow (bnc#735850,CVE-2009-5029) (patch - tzfile-corruption-fix.patch) - -------------------------------------------------------------------- -Mon Dec 5 09:29:32 UTC 2011 - aj@suse.de - -- Update to 52ad36a21973 (glibc-ports: 4a40b38f6355): - * fix many warnings - * bugfixes - * obsolete patches glibc-strict-aliasing.diff and - glibc-arm-clone-unwind-fix.diff - - -------------------------------------------------------------------- -Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com - -- fix printf with many args and printf arg specifiers (bnc#733140) - -------------------------------------------------------------------- -Thu Nov 24 14:02:55 UTC 2011 - aj@suse.de - -- Updated glibc-ports-2.14.1.tar.bz2 from ftp.gnu.org. - -------------------------------------------------------------------- -Thu Nov 24 09:25:14 UTC 2011 - aj@suse.com - -- Create glibc-devel-static baselibs (bnc#732349). - -------------------------------------------------------------------- -Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de - -- Remove duplicated locales from glibc-2.3.locales.diff.bz2 - -------------------------------------------------------------------- -Tue Nov 15 12:49:56 UTC 2011 - aj@suse.de - -- nscd now monitors resolv.conf, so simplify glibc-2.4.90-nscd.diff - patch and re-enable it -- Adjust and re-enable glibc-2.3.3-nscd-db-path.diff - -------------------------------------------------------------------- -Tue Nov 15 12:10:32 UTC 2011 - aj@suse.de - -- Update to 09f93bd3d6b1: - - Clean up internal fopen uses to always use close-on-exec - - Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32 - - bugfixes - -------------------------------------------------------------------- -Mon Nov 14 12:02:06 CET 2011 - ro@suse.de - -- check-build.sh: accept kernel 3.x - -------------------------------------------------------------------- -Tue Nov 8 22:55:40 CET 2011 - dmueller@suse.de - -- make glibc-static provide versioned - -------------------------------------------------------------------- -Tue Nov 8 18:20:39 CET 2011 - dmueller@suse.de - -- fix building with ports again: - * ifuncs tracing backport requires adjustments - -- avoid using asynchronous-unwind-tables only during configure, - but still built the library with unwind tables enabled -- replace arm build hack with a proper solution - ------------------------------------------------------------------- -Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de - -- update glibc-ports to 2.14.1: - * Align the constant pool in start.S to 4 bytes. - * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. -- Fix unwinding crash when using clone() - -------------------------------------------------------------------- -Wed Nov 2 13:52:36 UTC 2011 - aj@suse.de - -- Update to d35dce5213b3: - - caching of network information for getaddrinfo - - bugfixes - -------------------------------------------------------------------- -Sat Oct 29 18:37:46 UTC 2011 - aj@suse.de - -- Update to 21b64b153631: - - various bugfixes - -------------------------------------------------------------------- -Thu Oct 27 08:44:14 UTC 2011 - aj@suse.de - -- Update to 804791474dc1: - - more libm optimizations -- Remove AMD libm routines due to new upstream libm optimizations - and interfaces. -- Fix build on x86. - -------------------------------------------------------------------- -Mon Oct 24 19:02:46 UTC 2011 - aj@suse.de - -- Update to a201fbcf9cc3: - - More libm optimizations - - Optimize wcslen, strnlen - -------------------------------------------------------------------- -Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de - -- Ignore failure of chkstat (bnc#725145). - -------------------------------------------------------------------- -Wed Oct 19 12:07:41 UTC 2011 - aj@suse.de - -- Provide glibc-static from glibc-devel-static to make packaging - easier. glibc-static is the Fedora name. - -------------------------------------------------------------------- -Tue Oct 18 07:42:40 UTC 2011 - aj@suse.de - -- Update to glibc head 99ce7b04edf1: - - Optimize many libm functions - - Optimize access to isXYZ and toXYZ tables - - Optimized memcmp and wmemcmp for x86-64 and x86-32 - - Add parameter annotation to modf - - Support optimized isXXX functions in C++ code - - Optimized memchr, memrchr, rawmemchr for x86-32 - - Add nscd netgroupcache -- Disable libm-x86-64.diff.bz2 since it needs changes following the - libm optimzations. - -------------------------------------------------------------------- -Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de - -- Remove fma, fmaf from libm-x86-64.diff.bz2, they are not accurate - (bso#13304). - -------------------------------------------------------------------- -Tue Oct 11 09:51:46 UTC 2011 - aj@suse.de - -- Update to current git 4f2b767fef50 - * Correctly reparse group line after enlarging the buffer - * 2.14.1 release - -------------------------------------------------------------------- -Mon Oct 10 14:07:44 UTC 2011 - aj@suse.de - -- Fix tracing with ifuncs. - -------------------------------------------------------------------- -Tue Oct 4 14:10:13 UTC 2011 - uli@suse.com - -- cross-build: use %__cc, %__cxx, %_build, %_host -- mipsel: install ports, disable FP - -------------------------------------------------------------------- -Fri Sep 30 17:14:04 CEST 2011 - dmueller@suse.de - -- avoid build failure on %%arm - -------------------------------------------------------------------- -Thu Sep 29 12:58:59 UTC 2011 - aj@suse.de - -- Update to 68577918437e: - * Obsoleted patches: glibc-gconvcache-s390.diff, - glibc-2.3.5-nscd-zeronegtimeout.diff, - glibc-x86-bits-sigcontext.patch, - glibc-2.15-getsysstats-speedup.patch, glibc-2.13-warnings.fix, - glibc-2.13-localedef.patch, - glibc-fix-rwlock-stack-imbalance.patch, glibc-2.15-vsyscall.patch, - glibc-2.15-avoid-vsyscall.patch - -------------------------------------------------------------------- -Thu Sep 29 07:40:25 UTC 2011 - adrian@suse.de - -- just use %arm for right arm architectures - -------------------------------------------------------------------- -Tue Sep 27 11:24:02 UTC 2011 - aj@suse.de - -- Update to 2.14 git version 8bd683657e8a, it contains backports from - glibc trunk: - + Avoid race between {,__de}allocate_stack and __reclaim_stacks - during fork -- Add glibc-2.14-fix-ctors.patch to run ctors (bnc#717671), gcc 4.6 - optimized these away. - -------------------------------------------------------------------- -Mon Sep 26 12:30:09 UTC 2011 - adrian@suse.de - -- don't use -fasynchronous-unwind-tables on arm, it breaks the build - -------------------------------------------------------------------- -Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de - -- fix ports build - -------------------------------------------------------------------- -Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de - -- don't enforce armv5tel for all arm architectures anymore -- armv8l architecture does not exist - -------------------------------------------------------------------- -Tue Sep 20 07:54:21 UTC 2011 - aj@suse.de - -- Cleanup spec file: remove some tags - -------------------------------------------------------------------- -Mon Sep 19 08:09:40 UTC 2011 - opensuse@cboltz.de - -- move usr.sbin.nscd apparmor profile back to apparmor-profiles package - (bnc#647718) - -------------------------------------------------------------------- -Mon Sep 19 07:45:36 UTC 2011 - aj@suse.de - -- Update to 2.14 git version 69c1dfc1a796, it contains backports from - glibc trunk: - + Fix setxid race handling exiting threads - + Fix cfi directives in x86-64 and i386 code - + Fix scope handling during dl_close - + Fix spurious nop at start of __strspn_ia32 - + Correct cycle detection during dependency sorting - + Fix fopen (non-existing-file, "re") errno (Obsoletes patch - fopen-close-exec.patch) - -------------------------------------------------------------------- -Fri Sep 16 11:20:29 UTC 2011 - mmarek@suse.cz - -- Fix assertion error in res_query.c, triggered by Firefox - (bso#13013). - -------------------------------------------------------------------- -Wed Sep 7 07:17:16 UTC 2011 - aj@suse.de - -- Avoid usage of vsyscalls inside glibc. - -------------------------------------------------------------------- -Tue Sep 6 09:53:24 CEST 2011 - aj@suse.de - -- Prefer real syscalls instead of vsyscalls on x86-64 outside - libc.so - -------------------------------------------------------------------- -Mon Sep 5 10:06:23 UTC 2011 - aj@suse.de - -- Do not not trigger an abort when an i586 Intel CPU is running the - i686 library, as valgrind does. [bnc#681398] - -------------------------------------------------------------------- -Mon Sep 5 08:26:24 UTC 2011 - aj@suse.de - -- Readd vdso support. -- Add patch to relocate objects in dependency order, this fixes the - vdso support. - -------------------------------------------------------------------- -Sat Sep 3 19:39:03 UTC 2011 - aj@suse.de - -- Revert last change, it caused some breakage. [bnc#715854] - -------------------------------------------------------------------- -Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de - -- Add support for new vdso (3.1 kernel) and only then - for vsyscall which is not anymore in 3.1 kernel - (patch glibc-2.15-vsyscall.patch) - -------------------------------------------------------------------- -Thu Aug 25 09:44:37 UTC 2011 - lnussel@suse.de - -- use symbol version OW_CRYPT_1.0 for the Owl extensions - (crypt_r[an], crypt_gensalt.*) -- refactor sha2 gensalt patch -- document sha2 hashes in man page - -------------------------------------------------------------------- -Mon Aug 22 13:12:18 UTC 2011 - aj@suse.de - -- Update AppArmor profile of nscd [bnc#647718] - -------------------------------------------------------------------- -Fri Aug 19 13:26:11 UTC 2011 - aj@suse.de - -- Fix fopen("non-existing-file", "re") errno [bnc#713146]. - -------------------------------------------------------------------- -Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de - -- Mark glibc-info, glibc-html and glibc-i18ndata as noarch packages. - -------------------------------------------------------------------- -Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de - -- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] - -------------------------------------------------------------------- -Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de - -- Enhance rpmlintrc to ignore shlib policy violation. -- Remove obsolete patches glibc-fnmatch-multibyte.diff, - glibc-2.3.1.localedef.diff, glibc-2.10-nscd-nostack.diff. - -------------------------------------------------------------------- -Wed Aug 17 14:47:11 UTC 2011 - aj@suse.de - -- Update to current 2.14 branch: Various bugfixes. - Remove upstreamed patches missing-include-build-fix.diff, - glibc-2.14-res_send.patch, glibc-dl-fxstatat64.patch) - -------------------------------------------------------------------- -Wed Aug 17 14:09:50 UTC 2011 - aj@suse.de - -- Revert removal of sunrpc code (patch glibc2.14-revert-sunrpc-removal.patch). - -------------------------------------------------------------------- -Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de - -- Revert seeking on fclose, incomplete implementation of POSIX - behaviour can confuse current users. [bnc #711829] - (patch glibc-revert-fseek-on-fclose.diff) - -------------------------------------------------------------------- -Fri Jul 22 13:47:23 UTC 2011 - lnussel@suse.de - -- fix signature of sha2 functions - -------------------------------------------------------------------- -Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de - -- Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. - (bnc#684534, bnc#706719) - (patch glibc-fix-double-loopback.diff) - -------------------------------------------------------------------- -Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de - -- install crypt_blowfish man pages - -------------------------------------------------------------------- -Tue Jul 19 12:19:22 UTC 2011 - aj@suse.de - -- Back to old glibc-2.2-sunrpc.diff for now. - -------------------------------------------------------------------- -Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de - -- update crypt_blowfish to version 1.2 (bnc#700876) - * due to the signedness bug fix 2a hashes are incompatible with - previous versions if the password contains 8bit chracters! - * libcrypt now exports crypt_gensalt - -------------------------------------------------------------------- -Fri Jul 15 07:54:46 UTC 2011 - aj@suse.de - -- Update to glibc 2.14: - * The RPC implementation in libc is obsoleted. Old programs keep working - but new programs cannot be linked with the routines in libc anymore. - Programs in need of RPC functionality must be linked against TI-RPC. - The TI-RPC implementation is IPv6 enabled and there are other benefits. - * Various bugfixes, new locales, new linux kernel interfaces. - * New program sotruss to traces calls through PLTs - * Removed the following obsoleted patches: glibc-2.6-configure.diff, - glibc-disable-backward-memcpy.diff, glibc-static-memcpy.diff, - glibc-zarch-longlong.diff, glibc-bso-12454.diff, - glibc-vfprintf-positional.diff -- Build without -fno-strict-aliasing. - -------------------------------------------------------------------- -Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de - -- Remove ppc-atomic.diff after discussion with glibc PPC experts - since it does not bring any real benefit. - -------------------------------------------------------------------- -Thu Jul 7 14:50:15 UTC 2011 - aj@suse.de - -- Update glibc-2.2-sunrpc.diff with newer patch from sourceware - bugzilla (bs#bso#5379). - -------------------------------------------------------------------- -Wed Jul 6 08:24:45 UTC 2011 - lnussel@suse.de - -- enable glibc-2.8-getconf.diff again to fix build failure - -------------------------------------------------------------------- -Tue Jul 5 20:22:50 UTC 2011 - aj@suse.de - -- Add systemd configuration for nscd. - -------------------------------------------------------------------- -Tue Jul 5 08:03:26 UTC 2011 - aj@suse.de - -- Remove glibc-statfs64-ia64.diff since current ia32el has the bug - fixed. -- Remove glibc-ppc64-vdso-time.diff (bnc#590216). - -------------------------------------------------------------------- -Mon Jul 4 10:00:46 UTC 2011 - aj@suse.de - -- Further cleanup of ld.so.conf to remove duplicate directories - and allow override of system directories (bnc#671725) -- Fix futex bug (added patch glibc-fix-rwlock-stack-imbalance.patch - from sourceware bug #12403). - -------------------------------------------------------------------- -Fri Jul 1 16:09:14 UTC 2011 - aj@suse.de - -- Remove glibc-2.10.99-ia64-include.diff, it's not needed anymore. -- Disable obsolete patches glibc-fnmatch-multibyte.diff, - glibc-2.10-nscd-nostack.diff, glibc-2.3.1.localedef.diff -- Add glibc-2.13-localedef.patch to fix alignment problem. -- Adjust glibc-version.diff, FLOATING_STACKS variable is obsolete. - -------------------------------------------------------------------- -Thu Jun 30 12:17:33 UTC 2011 - aj@suse.de - -- Remove old ARM patches as it's unclear why those are needed and arm - support is anyhow broken according to comments here and in spec - files. - -------------------------------------------------------------------- -Thu Jun 30 11:22:02 UTC 2011 - aj@suse.de - -- Back to kernel 2.6.16 as minimal kernel version. - -------------------------------------------------------------------- -Tue Jun 28 12:30:34 UTC 2011 - aj@suse.de - -- Only apply glibc-statfs64-ia64.diff on SLE but not on openSUSE. - -------------------------------------------------------------------- -Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de - -- Disable exp_malloc on PPC platforms for now since it caused a - build failure. - -------------------------------------------------------------------- -Mon Jun 27 11:00:33 UTC 2011 - aj@suse.de - -- Update glibc-x86-bits-sigcontext.patch with version accepted - upstream. -- Add glibc-2.15-getsysstats-speedup.patch to "Fix Linux - sysconf(_SC_NPROCESSORS_[CONF|ONLN]) performance problem" -- Fix warning about potential array subscript out of bounds - (glibc-2.13-wranings.fix). -- Fix some rpmlint warnings. - -------------------------------------------------------------------- -Tue Jun 21 10:59:33 UTC 2011 - aj@suse.de - -- Cleanup spec file, change PreReqs. -- Remove obsolete patches: glibc-2.3.90-ld.so-madvise.diff, - glibc-suse-note.diff, glibc-2.3-regcomp.diff. -- Rename glibc-2.3-SuSE.diff to glibc-testsuite.patch, remove obsolete - parts. - -------------------------------------------------------------------- -Mon Jun 20 12:47:46 UTC 2011 - aj@suse.de - -- Enhance rpmlintrc. -- move summary,license and group out of the not-ppc if (by Marcus - Meissner). - -------------------------------------------------------------------- -Mon Jun 20 11:02:01 UTC 2011 - aj@suse.de - -- Remove PreReq on permissions to avoid a cycle that gives leads to - an uninstallable system (bnc#700925). -- Fix on x86 - fixes scpm compilation - (bnc#700784). - -------------------------------------------------------------------- -Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de - -- Cleanup ld.so.conf list, move kde directories to - kdelibs3 (bnc#671725). - -------------------------------------------------------------------- -Fri Jun 17 07:07:37 UTC 2011 - aj@suse.de - -- Do not package memusage and memusagestat since they require - lib-gd and that grows the build cycle. - -------------------------------------------------------------------- -Thu Jun 16 18:37:19 UTC 2011 - aj@suse.de - -- Fix handling of shared library preloading. - -------------------------------------------------------------------- -Thu Jun 16 13:33:23 UTC 2011 - aj@suse.de - -- Fix getaddrinfo IPv6 code (bnc#684534). -- Split up glibc-devel-static subpackage (bnc#655261). - -------------------------------------------------------------------- -Thu Jun 16 12:23:32 UTC 2011 - aj@suse.de - -- Reorder ld.so.conf library list (bnc#671725). - -------------------------------------------------------------------- -Wed Jun 15 07:08:35 UTC 2011 - aj@suse.de - -- Split up package glibc-utils with some debugging tools, add memusage - and memusagestat programs -- Fix compile warnings. -- Silence some rpmlint warnings. -- Remove obsolete patches glibc-2.3.2-revert_tcsetattr.diff, - glibc-2.8-clone.diff, glibc-nptl-2.4-nofixsyscallnr.diff -- Cleanup spec file. -- Use new permission handling for pt_chown. -- Build without -fno-strict-aliasing. - -------------------------------------------------------------------- -Mon Jun 6 14:19:26 UTC 2011 - aj@suse.de - -- Fix typos in /etc/gai.conf (bnc#651912). - -------------------------------------------------------------------- -Fri Jun 3 08:40:55 UTC 2011 - aj@suse.de - -- Use 2.6.5 as oldest supported kernel on all archs besides x86 and - x86-64 (reverting partially a change). - -------------------------------------------------------------------- -Fri May 27 11:55:35 UTC 2011 - aj@suse.de - -- Remove patches that are not needed anymore: - * glibc-selinux.diff - * glibc-check-native-missing-include.diff - * glibc-2.3.3-execstack.diff -- Disable the following patches, they look obsolete by now but leave them - in to easy enable them again: - * glibc-2.3-SuSE.diff - * glibc-2.3-regcomp.diff - * glibc-2.8-clone.diff - * glibc-2.3.2-revert_tcsetattr.diff -- Do not package glibc-obsolete with empty directory on archs that - don't need it. - -------------------------------------------------------------------- -Thu May 26 07:53:51 UTC 2011 - aj@suse.de - -- Add glibc-static-memcpy.diff to fix static compiles. - -------------------------------------------------------------------- -Wed May 25 15:28:37 UTC 2011 - aj@suse.de - -- Run on kernel 2.6.32 or newer only - and optimize thus. -- Enable malloc implementation that is be less memory efficient - but higher performing in multi-threaded programs. -- Use --enable-bind-now to avoid lazy binding in ld.so - and libc.so - -------------------------------------------------------------------- -Wed May 25 14:38:58 UTC 2011 - aj@suse.de - -- Add glibc-bso-12454.diff to not create assert running dynamic linker - in some cases. -- Disable backwards memcpy for x86-64. - -------------------------------------------------------------------- -Wed May 25 07:59:27 UTC 2011 - aj@suse.de - -- Add glibc-dl-signal-error.diff to not crash the dynamic linker - if dependencies are missing. - -------------------------------------------------------------------- -Mon May 23 08:44:47 UTC 2011 - rguenther@novell.com - -- Update longlong.h from GCC sources. Fixes s390 build with -mzarch. - [bnc#695102] - -------------------------------------------------------------------- -Fri May 20 14:45:44 UTC 2011 - aj@suse.de - -- Fix obsoletes and provides. -- Update to glibc 2.13 -- Drop ld-prelink-unique.diff, it is part of 2.13. - -------------------------------------------------------------------- -Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz - -- Fix potential removal of required local scope from shared objects - marked as NODELETE [bnc#657627] - -------------------------------------------------------------------- -Fri Feb 4 00:46:40 CET 2011 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.3-b72646ad0c41 - - Random assortion of bugfixes, some #defines for new kernels -- Retired patches: - - glibc-2.11.3-bnc658509.diff - - glibc-2.11.3-bso12397.diff - - glibc-sparc64-fxstat.diff -- Remove the NSS hack of opening modules using RTLD_DEEPBIND. - This was useful for nss_ldap, since some applications used a different - LDAP library with clashing symbol names. However, it also created - many headaches, especially with the NSS modules not respecting - malloc() overrides. Now, sssd is used by default for LDAP resolutions - and we can therefore safely get rid of the hack. [bnc#477061] -- Remove the currently disabled AMD string function overrides. - Benchmarking did not unearth any differences that would make - convincing case for keeping the functions with all the associated - maintenance headaches; AMD does not recommend keeping their custom - versions of the functions either. -- Introduce MALLOC_ARENA_MAX and M_ARENA_MAX support [bnc#659090] -- Fixed stack unwinding past glibc _fini function (proper showing - of destructor backtraces) [bnc#585879] -- Fix gconv cache generation on s390 [bnc#592944] -- Add missing iconvconfig for refreshing gconv.cache to glibc-locale %post -- Fixed stack corruption in *printf() with large number of positional - specifiers [bnc#666179] - -------------------------------------------------------------------- -Fri Jan 28 14:53:35 UTC 2011 - rguenther@novell.com - -- Fix ENOSYS detection for mkdirat. [bso#12397] - -------------------------------------------------------------------- -Thu Dec 9 12:33:35 UTC 2010 - rguenther@novell.com - -- Drop restrict qualifiers from memmove and bcopy fortify wrappers. - [bnc#658509] - -------------------------------------------------------------------- -Tue Nov 30 01:53:42 CET 2010 - pbaudis@suse.cz - -- Upgrade to glibc-2.11.3 - - Just few more bugfixes since the latest upgrade - -------------------------------------------------------------------- -Tue Nov 16 04:03:01 CET 2010 - pbaudis@suse.cz - -- Remove explicit support for nss SPLIT_GROUPS setting; glibc from - 2.11 on should handle this automagically. - -------------------------------------------------------------------- -Mon Nov 15 18:43:35 CET 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.2-dd2fde461e30 - - Candidate tree for glibc-2.11.3 - - Multitude of various bug fixes - -------------------------------------------------------------------- -Mon Nov 15 18:29:49 CET 2010 - pbaudis@suse.cz - -- Enable multi-arch routines support for ppc, ppc64, i686 and x86_64. - - Temporarily, AMD-optimized string routines are disabled. We will - selectively re-enable them after some more careful benchmarking - in the next few days. - - Note: In this glibc version, multi-arch routines DO NOT include - the controversial backwards-copy memcpy(). - -------------------------------------------------------------------- -Wed Oct 27 03:14:37 CEST 2010 - pbaudis@suse.cz - -- Fix missing hconf setup in nscd - this meant `multi on` in - /etc/host.conf was ignored when nscd was used, breaking e.g. - resolving of multi-AF records in /etc/hosts [bnc#572188] -- Fix two LD_AUDIT security vulnerabilities: spurious $ORIGIN expansion - and missing setuid library check when running as setuid [bnc#646960] - -------------------------------------------------------------------- -Mon Sep 13 14:36:26 UTC 2010 - aj@suse.de - -- Fix build in manual with make 3.82. - -------------------------------------------------------------------- -Sun Sep 12 08:00:57 UTC 2010 - aj@suse.de - -- Work around shortest-stem feature in make 3.82+ (patch - glibc-make-3.82.patch) - -------------------------------------------------------------------- -Wed Jul 7 04:12:05 CEST 2010 - pbaudis@suse.cz - -- Fix NIS-compat initgroups routine to work reliably over multiple - invocations [bnc#607064] - -------------------------------------------------------------------- -Thu Jul 1 19:52:56 UTC 2010 - jengelh@medozas.de - -- SPARC: restore fxstat functionality in sparc64 mode - -------------------------------------------------------------------- -Sat Jun 26 10:26:17 UTC 2010 - jengelh@medozas.de - -- Use %_smp_mflags - -------------------------------------------------------------------- -Fri Jun 11 15:41:07 CEST 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.2-21580967038a - - Fix buggy x86 CPU family and model check - - Fix sunrpc error condition handling - - Fix crash on unresolved weak symbol reference - -------------------------------------------------------------------- -Tue Jun 1 03:38:28 CEST 2010 - pbaudis@suse.cz - -- Fix ldconfig -r failing on aux cache [bnc#609345] - -------------------------------------------------------------------- -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 - -- Handle /var/run on tmpfs - -------------------------------------------------------------------- -Mon Apr 26 22:09:40 CEST 2010 - pbaudis@suse.cz - -- Remove stale resolv.dynamic.diff patch file - -------------------------------------------------------------------- -Thu Apr 22 08:30:50 CEST 2010 - meissner@suse.de - -- for powerpc32 build a generic library and also a power4 library - to allow older 32bit powerpc to work. bnc#596271 - -------------------------------------------------------------------- -Tue Apr 20 13:15:19 CEST 2010 - pbaudis@suse.cz - -- Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] - -------------------------------------------------------------------- -Wed Mar 24 13:04:12 CET 2010 - pbaudis@suse.cz - -- Fix get_nprocs() large CPU count handling [bnc#590665] - -------------------------------------------------------------------- -Tue Mar 23 15:09:09 CET 2010 - pbaudis@suse.cz - -- Fix interference of STB_GNU_UNIQUE and prelink [bnc#586979] -- Make time() use VDSO on PPC64 [bnc#590216] -- Make pthread_cond_timedway() use VDSO on PPC64 [bnc#590517] - -------------------------------------------------------------------- -Thu Mar 18 14:45:34 CET 2010 - pbaudis@suse.cz - -- Add PreReq for cat to glibc-locale [bnc#588997] - -------------------------------------------------------------------- -Thu Mar 18 14:29:42 CET 2010 - pbaudis@suse.cz - -- Fix /etc/resolv.conf change detection for multi-threaded applications - (by Sebastian Kienzl) - -------------------------------------------------------------------- -Fri Mar 5 12:59:44 CET 2010 - pbaudis@suse.cz - -- Fix spurious mapping from lowercase sharp s to uppercase sharp S - which is less standard and causes problems for ISO encodings [bnc#541773] - -------------------------------------------------------------------- -Mon Mar 1 18:55:37 CET 2010 - pbaudis@suse.cz - -- Fix spurious overflow messages on some R_X86_64_PC32 relocations, - patch by Richard Guenther [bnc#583019] - -------------------------------------------------------------------- -Wed Feb 24 11:53:41 CET 2010 - pbaudis@suse.cz - -- Fix assertion failures within valloc(), patch by Michael Matz - [bnc#581391] - -------------------------------------------------------------------- -Wed Feb 17 12:02:24 CET 2010 - pbaudis@suse.cz - -- S/390: Disable two UTF conversion instructions due to the hardware - mishandling some error conditions in the input stream [bnc#579871] - -------------------------------------------------------------------- -Mon Feb 15 22:34:29 CET 2010 - pbaudis@suse.cz - -- Further fix previous power5 fix - -------------------------------------------------------------------- -Sun Feb 14 15:33:33 CET 2010 - rguenther@suse.de - -- avoid spurious differences in nscd on rebuilds. - -------------------------------------------------------------------- -Thu Feb 11 21:36:32 CET 2010 - pbaudis@suse.cz - -- Fix another upgrade problem on power5 and older - correctly remove - the old optimized libraries; found out by matz@suse.de [bnc#563978] - -------------------------------------------------------------------- -Fri Feb 5 21:07:54 CET 2010 - pbaudis@suse.cz - -- Final fix for memchr() overflow on IA64 provided by upstream - [bnc#567516] - -------------------------------------------------------------------- -Thu Jan 28 17:11:59 CET 2010 - pbaudis@suse.cz - -- Fix another memchr() overflow on IA64; another known one still - remains a mystery [bnc#567516] - -------------------------------------------------------------------- -Wed Jan 27 02:49:46 CET 2010 - pbaudis@suse.cz - -- Remove now-obsolete powerpc-cpu addon usage [bnc#572819] -- Fix statfs64() on IA64 in 32-bit mode ia32el [bnc#534828] - -------------------------------------------------------------------- -Tue Jan 26 03:33:38 CET 2010 - pbaudis@suse.cz - -- Fix upgrade from previous distributions on power5 and older [bnc#563978] - -------------------------------------------------------------------- -Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de - -- ignore power6, power7 and cell specific Power CPU optimizations - on openSUSE. - -------------------------------------------------------------------- -Tue Jan 19 02:42:40 CET 2010 - pbaudis@suse.cz - -- Disable AMD-optimized strncmp() on x86_64 that is getting miscompiled - by the assembler [bnc#540647] - -------------------------------------------------------------------- -Mon Jan 18 18:22:32 CET 2010 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11.1-11c19d374bd4 - - Just trivial changes - version bump to 2.11.1, NIS-related - resolver fixes, ELF lookup race, .h typo fix and regcomp - out-of-memory handling miss - - Few more bugfixes, weekday updated in three locales -- Retired patches: - glibc-ia64-memchr.diff - -------------------------------------------------------------------- -Mon Dec 14 23:49:33 CET 2009 - jengelh@medozas.de - -- add baselibs.conf as a source - -------------------------------------------------------------------- -Fri Dec 11 13:13:01 CET 2009 - jengelh@medozas.de - -- libnldbl_nonshared is only built for sparc32 - -------------------------------------------------------------------- -Tue Dec 8 20:50:26 CET 2009 - jengelh@medozas.de - -- package libnldbl_nonshared for SPARC - -------------------------------------------------------------------- -Fri Nov 20 01:55:16 CET 2009 - pbaudis@suse.cz - -- Upgrade to latest release/2.11/master - glibc-2.11-1bc1954c7357: - - This snapshot is slated to become 2.11.1 if all goes well - - Mix of fixes for various recently found out issues -- Retired patches: - glibc-ifunc-dlsym-fixup.diff -- [IA64] Fix memchr() on mmap(MAP_SHARED) boundary [fix lighttpd crashes] -- Again use 127.0.0.1 as default nameserver in case of empty - /etc/resolv.conf [bnc#473308] - -------------------------------------------------------------------- -Thu Nov 19 13:15:41 CET 2009 - pbaudis@suse.cz - -- Add 623 and 664 to /etc/bindresvport.blacklist to fix problems with - port conflict on some IPMI network cards [bnc#513961] -- Allow external additions to /usr/share/locale/locale.alias and - /usr/lib/gconv/gconv-modules, required for the SAP-locales package. -- Add delimiter in front of external additions to locale/gconv lists -- Remove AMD-provided strlen(), upstream is faster. - -- Keep .symtab and .strtab for all glibc-related .so libraries [FATE#307090] - [bnc#545721] -- [ppc,ppc64] Enable optimized builds for power7; no separate power4, power5 - builds are generated anymore, instead default glibc is built for power4 - at least, tuned for power5 execution [FATE#307021] -- Large clean-up of the specfile - -------------------------------------------------------------------- -Fri Nov 13 22:47:47 CET 2009 - pbaudis@suse.cz - -- Upgrade to Git HEAD as of 20091105 - glibc-2.11-13f6812ffb5b: - * New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps, - mkostemps64 - Implemented by Ulrich Drepper. - - * Checking version of longjmp added that fails if an uninitialized stack - frame would be created. Implemented by Ulrich Drepper. - - * STT_GNU_IFUNC is now supported in static executables. - Implemented by H.J. Lu. - - * STT_GNU_IFUNC implemented for PPC by Alan Modra. - - * New optimized string functions for x86-64: strstr, strcasestr, memcmp, - strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2), - strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2). - Contributed by H.J. Lu. - - strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3). - Implemented by Ulrich Drepper. - - * New optimized string functions for x86: strlen, strcspn, strspn, strpbrk, - strstr, strcasestr. - Contributed by H.J. Lu. - - * Support for fma instruction in AVX on x86-64. - Implemented by H.J. Lu and Ulrich Drepper. - - * AVX support in x86-64 auditing support in ld.so. - Implemented by H.J. Lu. - - * STB_GNU_UNIQUE support added. - Implemented by Ulrich Drepper. - - * Implement second fallback mode for optimized DNS lookup for even more - broken environments. If two requests from the same port are not - handled correctly close the socket and open a new one before sending - the second request. The 'single-request-reopen' option in /etc/resolv.conf - can be used to select this mode right away, instead of rediscovering the - necessity is every process again. - Implemented by Ulrich Drepper. - - * New resolver flag RES_USE_DNSSEC to enable use of verified lookup. - Implemented by Adam Tkac. - - * Optimized iconv conversions for S390x. - Implemented by Andreas Krebbel. - - * Using condvars with PI mutexes is now more efficient due to kernel - support for requeueing to PI futexes. NPTL support added for x86-64. - Implemented by Ulrich Drepper. - - * New locales: ps_AF, my_MM -- Retired patches: - glibc-utmp-timeout-raise.diff - glibc-nscd-assert.diff - glibc-2.10-mcheck-free-race.diff - glibc-nscd-prune-ret.diff -- Made ifunc compile on IA64 using patch by H.J.Lu -- Fixed compilation on PPC Cell -- Lowered utmp locking timeout from 30s to 10s to be compatible - with upstream -- Allow external additions to /usr/share/locale/locale.alias and - /usr/lib/gconv/gconv-modules, required for the SAP-locales package. -- Remove AMD-provided strlen(), upstream is faster. -- ARM is currently non-functional - -------------------------------------------------------------------- -Fri Nov 13 20:18:27 CET 2009 - pbaudis@suse.cz - -- Rediff patches to apply with fuzz 0 - -------------------------------------------------------------------- -Sat Sep 19 14:13:43 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-44dbdf3777 of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - -------------------------------------------------------------------- -Fri Sep 18 21:40:04 CEST 2009 - coolo@novell.com - -- add /etc/apparmor.d to the nscd file list - -------------------------------------------------------------------- -Mon Sep 14 23:53:20 CEST 2009 - pbaudis@suse.cz - -- define _filter_GLIBC_PRIVATE so that our glibc is not marked to - provide these symbols [bnc#468748] -- Fix exception behaviour of various libm functions by AMD optimized - for x86_64 [bnc#487576] - -------------------------------------------------------------------- -Tue Sep 8 13:15:04 CEST 2009 - pbaudis@suse.cz - -- Provide the /etc/apparmor.d/usr.sbin.nscd file [bnc#535467] -- Blowfish: Enable BF_SCALE even on x86_64 - -------------------------------------------------------------------- -Sat Sep 5 23:19:51 CEST 2009 - pbaudis@suse.cz - -- Raise utmp locking timeout from 1s to 30s to ensure logins get recorded - even on heavily loaded systems [bnc#486631] -- Fix invalid pointer handling in some nscd assertions and the code to send - data to the client [bnc#513617] -- Radically trim down the Blowfish support patch - keeps only crypt_blowfish - from the original OWL patch, but does the rest within the current glibc - crypt infrastructure [bnc#529495] - -------------------------------------------------------------------- -Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de - -- make patch0 usage consistent - -------------------------------------------------------------------- -Thu Aug 20 19:02:31 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-aa152ec6ad of release/2.10/master branch - (Still the same source is used for glibc-ports.) - random minor fixes - * REVERTED invalid fix of broken locking within nscd [bnc#510788] -- Fix nscd handling of zero negative timeout for some databases - [bnc#523154,bnc#510788] - -------------------------------------------------------------------- -Fri Jul 17 01:14:16 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-4253a1e0b2 of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - * Fix broken locking within nscd [bnc#510788] -- Fix compilation with 2.6.30 kernel headers on IA64 - -------------------------------------------------------------------- -Thu Jun 18 00:58:47 CEST 2009 - pbaudis@suse.cz - -- Fix a dead-lock introduced by the bnc#509398 fix -- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes - -------------------------------------------------------------------- -Fri Jun 12 12:19:34 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - * Fix 100% CPU usage by Java apps because of bad futex calls [bnc#509096] - -------------------------------------------------------------------- -Mon Jun 8 17:58:50 CEST 2009 - pbaudis@suse.cz - -- Fix race condition in the mcheck free() hook [bnc#509398] - -------------------------------------------------------------------- -Fri Jun 5 00:46:59 CEST 2009 - pbaudis@suse.cz - -- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 - -------------------------------------------------------------------- -Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz - -- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch - maintained by me at repo.or.cz; contains backports of various bugfixes. - (Still the same source is used for glibc-ports.) -- Stop using separate tarball for nptl. -- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. - -------------------------------------------------------------------- -Fri May 15 22:13:33 CEST 2009 - pbaudis@suse.cz - -- Add support for multiple group records for a single group - when using nss_compat (configurable in /etc/default/nss) [bnc#480991] - -------------------------------------------------------------------- -Sun May 10 21:42:37 CEST 2009 - pbaudis@suse.cz - -- Update to 2009051021, glibc-2.10.1: - * Add missing cacheinfo entry for a recent Intel processor - * Fix ABI issue with the gshadow interface - -------------------------------------------------------------------- -Sun May 10 11:20:12 CEST 2009 - pbaudis@suse.cz - -- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: - * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS - servers (the case e.g. for many ADSL users), you may experience long - timeouts, once for each process (but eventually your request will be - resolved) - the solution is to run nscd (default on SUSE) and/or - put 'options single-request' in /etc/resolv.conf. - - * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info - Implemented by Ulrich Drepper. - - * New Linux interfaces: accept4, fallocate, fallocate64. - Implemented by Ulrich Drepper. - - * Correct declarations of string function when used in C++ code. This - could lead to compile errors for invalid C++ code. - - * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are - now in POSIX. - - * New POSIX 2008 interface: psiginfo - Implemented by Ulrich Drepper. - - * New ISO C++1x interfaces: quick_exit, at_quick_exit - Implemented by Ulrich Drepper. - - * Support for selecting between multiple function definitions at runtime - using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. - - * The libcrypt library can now use the hash function implementations in - NSS. Implemented by Ulrich Drepper. - - * The malloc implementation can be compiled to be less memory efficient - but higher performing in multi-threaded programs. - Implemented by Ulrich Drepper. - - * New locales: nan_TW@latin, ks_IN - - * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. - Implemented by Ulrich Drepper. - - * Extended printf hook support. It is possible to use user-defined types - and extend existing format specifiers. - Implemented by Ulrich Drepper. - - * Handling for group shadow files has been added. - Implemented by Ulrich Drepper. -- Retired: - glibc-2.10-dns-fixpack.diff - glibc-2.10-dns-no-gethostbyname4.diff - glibc-2.10-locale-tuesday.diff - glibc-2.10-nscd-gc-dataofs.diff - glibc-2.10-nscd-prunerace.diff - glibc-2.10-ppc32-setcontext-fp.diff - glibc-2.10-unsetenv.diff - glibc-2.4.90-mdns-resolver.diff - glibc-2.9-fortify.diff - glibc-getgroups-fortify.diff - glibc-ldscript.diff - glibc-mtfsf.diff - glibc-2.10-nscd-meminflight.diff - getaddrinfo-ipv6-sanity.diff - glibc-2.10-nis-hosts.diff -- Several other modified - -------------------------------------------------------------------- -Fri Apr 17 16:49:52 CEST 2009 - pbaudis@suse.cz - -- Fix defaulting to localhost in case of no nameserver entries - in /etc/resolv.conf [bnc#473308] - -------------------------------------------------------------------- -Mon Mar 23 15:32:01 CET 2009 - rguenther@suse.de - -- Add missing libc_hidden_builtin_def (memcmp) to - glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. - -------------------------------------------------------------------- -Fri Feb 27 16:21:17 CET 2009 - rguenther@suse.de - -- Make sure to mark fortified inline routines with - __attribute__((__artificial__)). - ------------------------------------------------------------------- Wed Feb 18 16:18:19 CET 2009 - adrian@suse.de diff --git a/glibc.keyring b/glibc.keyring deleted file mode 100644 index f1e08d5..0000000 --- a/glibc.keyring +++ /dev/null @@ -1,883 +0,0 @@ - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 - -mQENBFCXuxIBCADgJiKEjU7kGGjKp8KeNua07OOVadKTK6d7uGqDOiummMNjsK5n -ZhAXri335gWeV19H5azMoDo2TondWO0Tr0thodgWjAkcdrAQP2ESeHYCBLMDb8Hp -HupmJYx+vjQ1GXRc9BbouV3mweWqioRZt7zfWoNPSRBgx6N1R6Sq6KiLcehst5iH -BMf6pu2bufhWSWZ0SWKd337WkM0A46H7KdnYxVQYUUfMtHVpmFnvG2unho5hMuxN -zxqNCiVAIBOuVdOYEaHg6lqt9YAKr7UffG3iMqRiMrRhT+FhBkA3yISjJQpu+bgQ -ydSQp4nzttAB9qXQ7YIftiVAQNei+5Had94dABEBAAG0IEFuZHJlYXMgU2Nod2Fi -IDxzY2h3YWJAc3VzZS5jb20+iQE5BBMBAgAjBQJQl7sSAhsDBwsJCAcDAgEGFQgC -CQoLBBYCAwECHgECF4AACgkQ5NSI4w7qudfRHAgAlpSGfn6XHHUFm+qKiNjmJS70 -3v4rTUEdHLmr+P31baVhyMc26CQLR0tlxsRB9vo4MDTWGEIWe6nINViJRuRPq81a -IW97hHASLX4csWV1GVQNQvwuFhD2P72WuTViNPDYOO3jrQDqskQFDPEOlqqxVo8o -KheBGX6lOiKR+dIgexGj0Vwo3l1njXmG1SbhoUEqNGu4+tJTS9+SiCZFwBZqd8Cu -tzqlxdrNH5+hQ649KpuN9+3Fwx7DSD7y2A4euzV5UW3EUn3BWKtiEvsMs3p3v1d7 -Rx+svv50xbaRqhAO/Aw/V4h/4U0E3LZ6d7xIskSThBkqIarJfbelkT/xYwp5PYhG -BBARAgAGBQJQl7+LAAoJEETVIUuCdk7V5fsAoMdSsxx/ASIw/ogYkBAwJPz4HFlc -AKDvRDCAkcxCkAfmoXnE3KNeHIeaprQfQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBz -dXNlLmRlPokBOQQTAQIAIwUCUJkmPAIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4B -AheAAAoJEOTUiOMO6rnXvI0IAMi/DlNWqyXRrnz75J+vzW2TLvjtuyikXcjH2Nlh -2/rm5zGqI0mLIKavkvuJtci3fs9ZP77OU9VR5kUH5awfMijZ/M8Bz/qNIXyhsksa -SQFadSf4UmZkGt3ezafdqEuWnemiEhqYtMEl2Nn8LqqMF8GXA1SnFPzrBpmKj6zy -Z7YF6pSDx01WsAAGIjIeGgcdklSV2siOsRB3erAbSp2GD/oedtyjdQQ18FzH0ggV -OQWjdCYdLa8crtltlYrV0Rm5LrRPVXGUPLjV7Amx57pnFdX7JYseLkLxN62gfoxm -1EQUEhutPd9hk3NdhxfHYOGwLeOxP5Gi7drWOQBa2agKUDqIRgQTEQIABgUCUJqa -SQAKCRBE1SFLgnZO1cHeAJ9s53mHgd8vtoUh5M7Sp3IErkwuvwCgjeJbWYQgmFmF -KTILRfMELiIKr225AQ0EUJe7EgEIAOSOnvcw4snABArge0sGYSF3Yp+UYbwi4nEB -8edhmQKZ/586oNhKyVBE6tE9S+Z/ika4+b0CE82TD4ImOQQxpS8Z5tk2NVfvrhmC -2AoeW7p+hq4+BW/I3CrOXb2Daba0ogLSCfinrjnbLbNjMcCtLqzF42qluQOCH4n3 -XZE/fNHuXEN85qHTeGtQZxKs4daz/9ag9Iu/8r0u8lVlu7KI951Kf3jDHyUEf3QJ -h7k+hV0fNF7FOsyPW48I/KoKGEOEGXd6SqQC2PsB1JtL1WrUfGJ57tEO9EULUH/x -0IryIzhj0h0SZzL5Zwjwmr6Vg+ZvtOrAkiBHnJP8dSLVPg9IRe0AEQEAAYkBHwQY -AQIACQUCUJe7EgIbDAAKCRDk1IjjDuq519rWB/sHh0rGVh3uriMGSKzPDcyznVL0 -azKMd3by3Yv//qP4m2XIHGSQok/hJf1EsoDltjWQ99RC6mTjhsP9e7BJpLZ4zwe/ -ZnX5IaVWccJhMgCLXYOhBi0B6eEyhwsbrPmVZOYkVJlEMA/4rhMQ7ZGgjk/ysIvQ -NdOTS9MbkzQ8zaWBF/7h4yT9aFFgYAAQ+gmxFJ4G7XSszPRw/bHHDdnxq3gRRndD -Bt+EFTOm0nK7CxRwwvrAbUInkU56HSwMgNlMVzFBrxJlVehrcyOJWjJLG5M5YOWZ -h7J3UPL0JriHbmA3gbutataR5wnv9HmXtepz3rNglnjZFpMumTIaOKS86TjJ -=oOhV ------END PGP PUBLIC KEY BLOCK----- - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.0.7 (NetBSD) - -mQGiBD4ejvcRBADNwfo3ALnr8qMQQARgBzHM5HsGaBGnGWPIFO18IhVhjqeOTBjd -w0N9R6FAj/i3ObeTPwJABNGj92m2qnd49puBAtirJRd8Ul6shvLR8oNMZcCJEmGW -6Ud7D+uS/WxIoQHXWKl2VtvJBLIEdZ8n/Z6SxcHuMEfTD+2pc7cqOxZPGwCglqP6 -Bt6BF5aUMbN0b/jj93ZHHSMD/iQxEiH7MmvVPHDZYN9CGepzlwcD+BKhYbq6wxsq -pxxrtK5OrakwNd6cBb8nOVK2DjyOVRHBdWH6MVx+DCDSp0FWDEftQpCR0N0iItP4 -h+8lTP/7NdZj5+tfi99TUNMMaOcTdgWQ+s8/WUEZoJErDy/yXNHbK6xhD5mBm4pF -bgQnBACmWQfAFDhFm1uKsNS8vPqcJ6Be+bbh+5uTOm30zXiAHEdi56v5tvn4mJSy -yXakNGBHKkmdVQDTb4mLrnhpUnEHFegioOoBrwR6ZUsnsT7zaLz7r+p56HPKRkkn -8284/NlZigncvPPcOK/9m6N9OLX8uerLy5TjuOPwjITxHmNgBbQgUm9sYW5kIE1j -R3JhdGggPHJvbGFuZEBmcm9iLmNvbT6IXAQTEQIAHAQLBwMCAxUCAwMWAgECHgEC -F4ACGQEFAj4ejvgACgkQ2vc1Cn671iU4OwCcC3y0ZCz5gxT/rzeRjogiMdOMMMcA -nRPShRs5wsaJUeGOxAqRwu++hbrPiD8DBRA+HpK6Z/R4eOAIGpcRApUPAKDtBRDr -ijwEwnyN8JF5jKzFqnlaZwCbBK6J7CLs8HonLtkjBFBy5JKblgKJAJUDBRA+HpOD -pkJ+bR8IKbEBAWlBA/91cNYotVnrh4hjc06UHxySasqtxK2gd2h5A96Ez5FY0l0s -KixJ7Rtvt490qhHqo6LiHFjKtmeiWNIO5H1MMGxXuJfBD2uDc6mfurwyt8j0v29n -CeBFqrckR5NTbXWiepIbCe00Ux5+WbbJTdWpLFOxo8YiwqzfF/XbPdghPyY1YLQg -Um9sYW5kIE1jR3JhdGggPGZyb2JAZGViaWFuLm9yZz6IWwQTEQIAHAUCPh6PXQIb -AwQLBwMCAxUCAwMWAgECHgECF4AACgkQ2vc1Cn671iV7RACdHM6BWdolx88UOBhk -L0XjMAAzF+IAmMyGjKKdDyNXmoMU1/SX/KFuPVOIPwMFED4eksNn9Hh44AgalxEC -4G0AoIxbFjdAJImO7kOV5rFoW/+B9dxeAKDOIWg/gcAAOYFKggTBl8YO7uEYKokA -lQMFED4ek8KmQn5tHwgpsQEBZD4D/3NBTjA3j5rj2mN7HDbSlIpttllC6B+jmzi0 -ynOgEzkhvae3ZY3mm334+/l3L9C3ZNJMQNvRdWVq2DjQq94xc9waI/Z4mNDeVQQB -6fHC/0cmqj2n/ymS4NWxBx75W+wQKoBOXW2/bdd3cMOOwIhnC4H00FblFYR0Avth -sxw9hDUztB9Sb2xhbmQgTWNHcmF0aCA8cm9sYW5kQGdudS5vcmc+iFwEExECABwF -Aj4ej3UCGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJENr3NQp+u9Yl6jUAnA7DcQVj -kWoPngzvzWHB7EIYInaXAJwLZP3Nk6jPifu1J4vJ2F768hQyoYg/AwUQPh6SzGf0 -eHjgCBqXEQLPqwCgm6h1Z6xwyduXw6ZYpbRYdyBqwGcAoKIrMkypgDXci//FI5Kc -iYBRF3ajiQCVAwUQPh6T0KZCfm0fCCmxAQFrYQP9Hh1v7DrIkT370pMo7qICLhdf -B7r7ofSkcqSGPcAq+gwNa2aNoDx11U9hk2Vo5HWJm2psSzikUN83i7uzMZi8dW5D -e0uI3TeHgUOFPCxXLG5KSMwGdjxKwe/Ks95gNnlDzYTe6mjJdP89D4NhSc/cP78B -tRpc3pK+KJYd/O/xUgy5Ag0EPh6PKRAIAIU6PeE1k+YYKYtZhFzb2EhVid/eUe8Q -sEYLJrJUYTAyzssb1wnWx90iFHRxyLOAyTc7YXKWz3lkbCW+TqYCSc9rbTCQy1dE -8dK4ojdizZempapeP+7kuk+zGWquabqQ71/294m2Sffasdz97yr3Eo6uSSN38ct7 -fxEBHhFgEGx/jDVV1/o1vrUcrrYyI39mOTp4yjcLwbS7JqFsNKxTGEUULpL3GYRJ -C+JtcaH9766E8Si+caxKqNLND4PHIPQ7UQCmDu2Rn84mM7Oy1whR7Pkjw6S9kQxZ -P+Xfykq6NAHWfFyp9g/5DTGVYCLxCM1Ska6KF8lnAYB1cr84OMvZ3J8AAwUH/j1r -knj9KRrsgfE9CyFVWNUWpH79PTBQG+uoU4qyO9OPuJqcz9bBgyj9zo1DM4mxJ/eu -ZH1X/35PTe8O1YQRVxzhnS5CzHoTq33qROi9/6m8HAkhp6c0s6uBplWargmomJz8 -gtVi+av5KbUjSxVsyxKWSWkX46EEjItYxmQTv9TA8X6yMM7SkQJUEIz3UXtYSLb+ -pVXPJfScr945kXK8180MGQLBhq9wEcR5ypUN1HqyO1J+TJQdsqtXAVe57RMIPY/X -oFnS73B9aQmTwYRk5fDo9wTnHEDW4dxN+zphONOjLbGaJt5o4ytbqrQ54JHwNt4x -XavWgG39OPlPqENUx7GIRgQYEQIABgUCPh6PKQAKCRDa9zUKfrvWJYxEAJ9FFDtc -48oBtVQISX80/a2dsmT+qwCeLgHE6iheS8L2cbygDxDnsLx32wQ= -=SLj7 ------END PGP PUBLIC KEY BLOCK----- - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.10 (GNU/Linux) - -mQINBEyAcmQBEADAAyH2xoTu7ppG5D3a8FMZEon74dCvc4+q1XA2J2tBy2pwaTqf -hpxxdGA9Jj50UJ3PD4bSUEgN8tLZ0san47l5XTAFLi2456ciSl5m8sKaHlGdt9Xm -AAtmXqeZVIYX/UFS96fDzf4xhEmm/y7LbYEPQdUdxu47xA5KhTYp5bltF3WYDz1Y -gd7gx07Auwp7iw7eNvnoDTAlKAl8KYDZzbDNCQGEbpY3efZIvPdeI+FWQN4W+kgh -y+P6au6PrIIhYraeua7XDdb2LS1en3SsmE3QjqfRqI/A2ue8JMwsvXe/WK38Ezs6 -x74iTaqI3AFH6ilAhDqpMnd/msSESNFt76DiO1ZKQMr9amVPknjfPmJISqdhgB1D -lEdw34sROf6V8mZw0xfqT6PKE46LcFefzs0kbg4GORf8vjG2Sf1tk5eU8MBiyN/b -Z03bKNjNYMpODDQQwuP84kYLkX2wBxxMAhBxwbDVZudzxDZJ1C2VXujCOJVxq2kl -jBM9ETYuUGqd75AW2LXrLw6+MuIsHFAYAgRr7+KcwDgBAfwhPBYX34nSSiHlmLC+ -KaHLeCLF5ZI2vKm3HEeCTtlOg7xZEONgwzL+fdKo+D6SoC8RRxJKs8a3sVfI4t6C -nrQzvJbBn6gxdgCu5i29J1QCYrCYvql2UyFPAK+do99/1jOXT4m2836j1wARAQAB -tCBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PokCPgQTAQIAKAUCTIBy -ZAIbAwUJEswDAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ7ZfpDmKqfjRR -Gw/+Ij03dhYfYl/gXVRiuzV1gGrbHk+tnfrI/C7fAeoFzQ5tVgVinShaPkZo0HTP -f18x6IDEdAiO8Mqo1yp0CtHmzGMCJ50o4Grgfjlr6g/+vtEOKbhleszN2XpJvpwM -2QgGvn/laTLUu8PH9aRWTs7qJJZKKKAb4sxYc92FehPu6FOD0dDiyhlDAq4lOV2m -dBpzQbiojoZzQLMQwjpgCTK2572eK9EOEQySUThXrSIz6ASenp4NYTFHs9tuJQvX -k9gZDdPSl3bp+47dGxlxEWLpBIM7zIONw4ks4azgT8nvDZxA5IZHtvqBlJLBObYY -0Le61Wp0y3TlBDh2qdK8eYL426W4scEMSuig5gb8OAtQiBW6k2sGUxxeiv8ovWu8 -YAZgKJfuoWI+uRnMEddruY8JsoM54KaKvZikkKs2bg1ndtLVzHpJ6qFZC7QVjeHU -h6/BmgvdjWPZYFTtN+KA9CWX3GQKKgN3uu988yznD7LnB98T4EUH1HA/GnfBqMV1 -gpzTvPc4qVQinCmIkEFp83zl+G5fCjJJ3W7ivzCnYo4KhKLpFUm97okTKR2LW3xZ -zEW4cLSWO387MTK3CzDOx5qe6s4a91ZuZM/j/TQdTLDaqNn83kA4Hq48UHXYxcIh -+Nd8k/3w6lFuoK0wrOFiywjLx+0ur5jmmbecBGHc1xdhAFG5Ag0ETIByZAEQAKaF -678T9wyH4wjTrV1Pz3cDEoSnV/0ZUrOT37p1dcGyj/IXq1x670HRVahAmk0sZpYc -25PF9D5GPYHFWlNjuPU96rDndXB3hedmBRhLdC4bAXjI4DV+bmdVe+q/IMnlZRaV -lm9EiMCVAR6w13sReu7qXkW9r3RwY2AzXskp/tAe4BRKr1Zmbvi2nbnQ6epEC42r -Rbx0B1EhjbIQZ5JHGk24iPT7LdBgnNmos5wYjzwNlkMQD5T0Ydzhk7J+UxwA5m46 -mOhRDC2rFV/A0gm5TLy8DXjv/Esc4gYnYai6SQqnUEVh5LuV8YCJBnijs+Tiw71x -1icmn6xGI45EugJOgec+rLypYgpVp4x0HI5T88qBRYCkxH3Kg8Qo+EWNA9A4LRQ9 -DX8njona0gf0s03tocK8kBN66UoqqPtHBnc4eMgBymCflK12eKfd2YYxnyg9cZaz -WA5VslvTxpm76hbg5oiAEH/Vg/8MxHyAnPhfrgwyPrmJEcVBafdspJnYQxBYNco2 -LFPIhlOvWh8r4at+s+M3Lb26oUTczlgdW1Sf3SDA77BMRnF0FQyE+7AzV79MBN4y -kiqaezQxtaF1Fy/tvkhffSo8u+dwG0EgJh+te38gTcISVr0GIPplLz6YhjrbHrPR -F1CN5UuL9DBGjxuN35RLNVEfta6RUFlR6NctTjvrABEBAAGJAiUEGAECAA8FAkyA -cmQCGwwFCRLMAwAACgkQ7ZfpDmKqfjSrHA/+KzAKvTxRhA9MWNLxIyJ7S5uJ16gs -T3oCjZrBKGEhKMOGX4O0GA6VOEryO7QRCCYah3oxSG38IAnNeiwJXgU9Bzkk85UG -bPEd7HGF/VSeHCQwWou6jqUDTSDvn9YhNTdG0KXPM74aC+xr2Zow1O2mhXihgWKD -0Dw+0LYPnUOsQ0KOFxHXXYHmRrS1OZPU59BLvc+TRhIhafSHKLwbXK+6ckkxBx6h -8z5ccpG0Qs4bFhdFYnFrEieDLoGmnE2YLhdV6swJ9VNCS6pLiEohT3fm7aXm15tZ -OIyzMZhHRSAPblXxQ0ZSWjq8oRrcYNFxc4W1URpAkBCOYJoXvQfD5L3lqAl8TCqD -UzYxhH/tJhbDdHrqHH767jaDaTB1+Talp/2AMKwcXNOdiklGxbmHVG6YGl6g8Lrb -su9NZEI4yLlHzuikthJWgz+3vZhVGyNlt+HNIoF6CjDL2omu5cEq4RDHM44QqPk6 -l7O0pUvN1mT4B+S1b08RKpqm/ff015E37HNV/piIvJlxGAYz8PSfuGCB1thMYqlm -gdhd9/BabGFbGGYHA6U4/T5zqU+f6xHy1SsAQZ1MSKlLwekBIT+4/cLRGqCHjnV0 -q5H/T6a7t5mPkbzSrOLSo4puj+IToNjYyYIDBWzhlA19avOa+rvUjmHtD3sFN7cX -WtkGoi8buNcby4U= -=AL6o ------END PGP PUBLIC KEY BLOCK----- - - - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: PGP Key Server 0.9.6 - -mQGiBD0n9DgRBAClGLChFufOs6wsKPwYvbjFzS1LNNZeF/sf+d2KUcf+iq4xGa0q -Zxn7Yx1ecETcJqLdDm3vUUO/TaN8jHr9EDOsYCWT3Bmaac+x1GsXFi43ENeEhoOQ -zLagOW16ABsFi1RUQv5v1SxZcKQWbE9ub/0dBNKGEf01FxDgGYQE6sDWIwCg6cRL -2XfP1QpHdPNN/vB/ZT61pG8EAJr/ajaWDYjkB6Ie1kmO85HQbMQBg5EktByfurWK -t03KlKUD98r/ZzpEXhkQxbu3/1AuIHS9mp4I5btkntw+sKooO9V5ZlZyGuxN+PD0 -m/q7m/FSKzZwSblPJlSVMAPFh2G1PEmJg9gEgm3lb+EMqUKBtsfptX9X5CvRVtov -c82UA/wO8x+18SyTefCEjhc+ndAvdSSZo4sX99mxNeFn9OYMPIWP3hpM9N17mykF -Ap9vGC5aO3+5kB89hPLX2Hh5GnKIz4CWSHSTXVP/cABoQxMWXwX1LI/NFmMgMHrT -zrIznZTH/1c240AO7seZviGM0YTJgPDDv5xTzNAtX6SRc6GpQ7QbSWFuIFdpZW5h -bmQgPGlhbndAaWVlZS5vcmc+iFkEExECABkFAj0n9DgECwcDAgMVAgMDFgIBAh4B -AheAAAoJEFg5UlP4KennSocAn1BKjQiZmQyuqW9pN6QdTuukz7tnAJ9yVVTvvIZn -KmtftSybWcQjuDC9krRFSWFuIFdpZW5hbmQgKGh0dHA6Ly93d3cuZ2VsYXRvLnVu -c3cuZWR1LmF1KSA8aWFud0BnZWxhdG8udW5zdy5lZHUuYXU+iFwEExECABwFAkAa -ZUMCGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJEFg5UlP4Kenn4uEAnRt3Uc55MPKU -0QyIQQ4cAy0Uo/DuAJ9c/58/Nis1DkYxksgNn9mDe6c1H7kBDQQ9J/Q8EAQAyINd -4ejyhHU3H5j30/BbWSIkMrjPzNMoqZH3lqAI2D/h8XFgxPZYqWrGjUqi/ioOUkTG -Wh0HdlJbqFAfukpZOpKNOaJL/dBrjmmPv41eIpWehJrasQqtA6HVs3fDhc5oPusg -X94AGs1uhKG42rcCIQm/eOa0FS33eXpVM3BOvucABA0EAL41mcOetCk1Ii3NwNTS -qGKOyHLLyDTB2NdelSdOsNphoVvdzf1FALlvLwEAMWRAQdY2wdzo0I/3NChmPn/u -6ohRBOpLZn5AHYn/AkthQI6YRx+WZu6BvMVJOqcFZh1ePmWrX7S2TQacyhbUOQFM -ZthBvjkZUZCOl+wjwbn3k4bpiEYEGBECAAYFAj0n9DwACgkQWDlSU/gp6efSHgCc -DxXIOrZyOO3jtbtsTYR/VrsdK9sAn0lrUm/jZKWyvK6V1CCA3TwXyvLQ -=dSXY ------END PGP PUBLIC KEY BLOCK----- - ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQENBFMAZNMBCACeatEKl6YY9iEVxzS64bPbvJsA1mLE2XFWmKXyYzm58dFqPMa0 -OQQTKCxjFCOrc+LD2KtmypttcahKnk5Lk1lNU/lV2hCuR7jJ37sL+/TFQuMMgsLP -ED6XU4/AYK3VUJvgGYLBnMVfpAGYLB5rnPvhFNx0r2KItO/CfiSEyD4g1Wu26SUA -XGOp5hbSyBRGhju+8YJlhHBBjn3vZfw7IpwAWDVjK0crqMhGDXoZwK+ADUFY5NER -AkT3Lb7d11F6+W4558WQZCYIWa3rZ62d986OE7+7xKmJUcLLWvlv5spgUmvotZ4D -MzaKba+waY5ygXdGIpm5seVIEUCTaBIe6QVLABEBAAG0KFNpZGRoZXNoIFBveWFy -ZWthciA8c3BveWFyZWtAcmVkaGF0LmNvbT6JAT4EEwECACgFAlMAbfUCGwMFCQIP -WAAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHnEPfvxzyGHk74H/jwerQPx -3JBKCzvXYpdBLWEfgqnzrYMODf+KI8AspjjL+c8/BgIzBldtv3QvSmmgt4Oim/2o -+UMbfSwoRSqHmI4V4KWXOkBlnM1PkHeEn2bJSsqATuXTI5gNRvM9B6NZj5FQgEzP -zTxM9LjXSnRzExAr7SICUS1b+zOckTlvRystsoOJc5A/1/Ntj8sEKM+T7tNgeK9X -VmAjsblwqls3DgbARLXmki+9XjClsWrmUFU+v81YtZ9N+4S7SC/hXXJ/6pHYmk9t -udQd++OoN+KArHOVW/mHJO1wnamD5pauLU9UCX8LUN+k4SCOWBDu9bBKV1pr7WF1 -OSKZL5ODP0DVT66IRgQQEQgABgUCUwH/1gAKCRBVlt0M6b9lPZiaAJ9MxtvRwQNE -RsGtkSkhdgkLIXxjcwCdHsZoh2lEa8SilHYkNRn4xm1XZOuJATgEEwECACICGwMG -CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJU6rJ6AAoJEHnEPfvxzyGHC34H/0uJ -CxjFHEMVrgYB4EULbi5g/T0EkzKqpZT9tet4oewKxxa0D0IkT3LKzglVRFQdm1Hs -Jt1ICBxNeVIRhcGS94084UlhKQJBu7xT4aO9WLHFnd8lSTzcgMgFU+9Gs0E7YPZ3 -UKHIg+o0J4sfsa4kWFKksqBOWAgouHkdvF0+8qy9EbODQ/s8bfxlMYeCdYJZgT/U -yaFgOeVVnN1ip2sH34UQZvfQGfDH5JLd5DEkDS8QGX/t8XsHrMJtBwGkDoZDD+Kc -EdVrrURDlr49LjSsgNuHK+hEZIAUMXruVqbAT1Q9DmU4baCWlrJ1Tk84pkGbDVQR -6ig6gcQXeGc7XHdLOQqJAhwEEgECAAYFAlQlMiQACgkQHpo7X4VAg7aBXA/+IG4K -lFdp5YkTyBm9cLEZ5Wo3q8mel9LPdBh0YPvJj61F8B2CwhmJOxGyXh0zFF0ixmXG -fxuN9J4CiLT769qlB751P7J89Iu2M60TWd+hg5E3bCxAe48JOlUbeXZs9Vu43PkN -zZRmCo5MPV7UgxZ7j+vNaAHa5152fofg9JRq0BjhNOf8/CX5lQ1PJPHS4ufZr7vH -wq5KpnhxqKPjn4PfpAyXCVqvnXJUnLL5wJ6XKVpiWO/d2uL9IRNFFS0P6I73/tie -ZHZMvLU0DjfN0dVX01Zzx+8jAzpK6x+rG0iLBtqvabRg57izZaOUeUPBox1rQ/f+ -n9DqSGdfQ8wlNT5sCToFiWFiIkLIbK4pA/2+uxDf92KvWJevsAx6J4XspJvnGles -WSlRP0+rQyjZpdoHItTd/izB09LEFy1aAyjtbkyjWahV5FQYL9D85F3J0FnC4C+/ -SSv5AFNXkLxMXfPDUpMtIhbQgCBS6E/ooVH6/acC3B6clnYU4wUQh1rdidkb2oAg -b2pYyxAoqXsDi28ULY0PhdFtnF4JWRPSlFBU0gHbqAkFx6WodJTV08Jgrf7VmgCM -C+DLJYJktF5wMG5Xmp+rFpUn+wE3+rF7MTehbmSZ6jJwRk4QaAU6S57wjy9Mq7qy -v3uOJuY05wL02NhBeVMfKloERB4ekwWxB19j+J20KFNpZGRoZXNoIFBveWFyZWth -ciA8c2lkZGhlc2hAcmVkaGF0LmNvbT6JAT8EEwECACkFAlMAZNMCGwMFCQIPWAAH -CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRB5xD378c8hh8z3B/427wTdRBE4 -tHCm5BNgsfjQStPfp9qPR8v1P77IO9Tgeh3RrnsWUzQ450PZaQt7HCKqRQe9MqiG -8iShfGG3fw3rrGb1XvLKj9e8xM4gb0Pd76Zvym5zH4QEJakSLdxFGS8OzjdLbAb8 -siDBqWuEf/ziPqNrVwBdfLFu7fhOC1IjGzwQMNBsSZEJFAg+biMamyjraqnmINQ1 -Tj9yhY/CVgxoc1UvEOfFijrOx0n+sgdcm7mPCm30IxAcbj2IPwr2BXh2+PyrrI+G -MsMpsdlml7lkQAySDEBjm0N00iCYohcmryJUL0b/rcdN5zt4uNBs47VKUsyMpLjk -PsjbSNvalgkYiEYEEBEIAAYFAlMB/9gACgkQVZbdDOm/ZT2XFgCfXNlWZPmlyxPD -K0AI1tXtW9MajV4AnAmU6BxcJEZfJcQAfBIrn5BfG7mEiQE5BBMBAgAjAhsDBwsJ -CAcDAgEGFQgCCQoLBBYCAwECHgECF4AFAlTqsnoACgkQecQ9+/HPIYdf6QgAi2oy -elHbszp21Zeck9GQrwSHCt88FJj70TyANRw9CcvS7NLZM3Q8tsh68+I7zjVaZWpM -7RnQJ2+G/L0G2/LScRg4cMzN4PUpCLqms4OpbrBNU/N9R6QJClBlEP/2in1hVilp -ncsmgbzXFP6naLn+8NSPyX5WRjI1D5OIVa5CnpU4CZwzy5PKpzWwEiecd5DAwmDP -Eh+JRxkkhk76Wy9BIf9mdp3fgDD5CmLFzhNCHjSt7NF1gt8lkbcFKAJ1zbEdbmu7 -C4R81WDEnPw436Co0wAwUNnqDgE1XpijS9E4S3DXYt9oO8nZc/6UhYrkQo1Q8glD -srAGe5aToccOPVj4OokCHAQSAQIABgUCVCUyIQAKCRAemjtfhUCDtvW8D/4yaPTC -hUVhvIQZIkE4Vp09XRpwaVw1PpnAVmB2/ZX9LoniNYL6Zo2o1syG8IHJHp1hj50C -iRVdxkdIqI/STqdSlnIHOF/AhX8iB5o8BCgdtE+hg7X4k6RhcnCdqk8N2YrIoZrH -oh5VDamzU5cAvOBFhHRSkHznPcm5uoPWFaVwh38pBlAEu8yqIGPZwXaBrsYWtt5Y -n1wqF1bPqxPNioDv6pFb6fY9hHXmjXhdQ2Co3x4Cs6cC8/xTUP/GhVnKJaN9mbQL -iO0SfWtQa0jXNZRQYI5U8ziLnth7Vkrtpu9Sy2i3eQ47DW92j3JRRGoUrAwTG2Vv -E/4MWcxpptNzcEfucKpEtXz+wQx+pD6YCfmG+63m9RZIR0iiakq2YsSMPFpZnDzC -IO4M+Kr61zO4wPeA8yVQaSw6DdunwSq4PDlPGjOH0d2h19gMRG6bf6hZEk4izXf7 -ysrA87w1oSBkxVp4q0C3casfA+PqTwdaz9OEFX/DjDtpxz+DHvxU69seAnE+etxf -z9O/m/RrcoCYRIaYBEA1xkD6RpFF/0L6b1xzjUsGafGEzVDP2AF96D22NrqfAMsv -Pdg1jf3C7XcKszUinKBD4T183gNPyiDC4I+e6oAQZlGZ+osG+vheeJagqxf5E6ju -2IO7uYnaBc8tzzElhvWrCiwRFiBAvyqtFMwuFbQ8U2lkZGhlc2ggUG95YXJla2Fy -IChQZXJzb25hbCkgPHNpZGRoZXNoLnBveWFyZWthckBnbWFpbC5jb20+iQE4BBMB -AgAiAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUCVOqydwAKCRB5xD378c8h -h3bxB/0Z84r5WAPFpPPKLFsYdZVamTWeJ7rsF0+9qitNvWM5RWwjnzaMo75YMgqY -jY9MWT1HCw3juriz9DI3ygKOBgJia6P5yx7xmHlpwQnHYQ0lGY/RAslTd4ohAzEo -ntIbhQfJUGWp1yFavJmrkoMZsAp/da0yGAHOvzblSfJsialnuo98kzy7vzKMc9C8 -EqQpoDOFXALrku34RJAD34Rmq9h4TCVikCrmCYopoP9CJqXIj/wUSyyEGrAN0vMU -wwNKMXFW6SOILm3dYm8XPna/63MRcTQdmxXbqn8us9ID5x6L+zvkUGbD2rPgAzRg -M6sRp4Qb4JJI8saBBgVgynURf4u+iQE+BBMBAgAoBQJUIjzaAhsDBQkCD1gABgsJ -CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRB5xD378c8hh1TCCACchAW5lgBUJHBC -lh72oWEwpf/uFRCzu0UMOvbSmeYBagidRBQLhVrINxrRvWDHoo+EIU+xiKGWSNrK -IIBXW8mcla2iPhN8T6ull6F7+nGfA8f41EROh3ljYNVzFfQEOHQukIYVtXNSxszj -Gggv1yqWG/GBFmwWflOwSiKTM2ZoLi7qNtitPn1eNfXrNLyqyNcdGuzriM2xkV1h -cd7ynhSv5WHgOIHFfqHodfTzavx4g/qmwlgERF7YjjJq4nzEDXFZzNREDd9WEVOe -FEfxEaMIRi80FtQescBslpiQqQV0M5+CfJgMnp0pHvvBpG0blMt3k/qIsXMZTA8B -/UlLH7xciQIcBBIBAgAGBQJUJTIdAAoJEB6aO1+FQIO2o+sP/3oFHLzXDQpzJp8L -OQfybB1/4XYkHz4fAN8Gym6MsU7/mFrQJVaZQ92DxUhcnCXtpwTn6NwSSN0CZDgq -vIBZNx34DJZ4gTVokMoqbRmPMcK2HsE541eWxz8jl6T0OjTeZ/fVtc/7tSvl2RK/ -6dZEq9ofkcJ6SeIi+Cr9QJ2XsHi2KBL3mjCoG4TTS8mT/FXlPiKsiN3bKSHQHjYg -4SOhvXvzi+tBuLb6IMgx3GPukKCi63Pp6Xh8krWs7qvOjOkBs85JS/2ZDPpQv6ku -PEylVyPcIyNwAx5cJAcVKwxJQmJPUYSJN8XqammZRx71i5NbX2+JPTC5YUUCrSaw -w/4rvEgt5xLUp7y5U0ZP9e6jHHgNJ4adTwgrKRfS0i3q6KB4252ysAqmvqA40Cwv -NGHdWhbTVV6lE07q3LnJhH6Vt4KMWNlZUb1HjSIRLmoqyRKbhreeCZSmn5YEwhtb -7DCaoKxibfyge06DDYBEv3pXAJj8xE2gf5DFxzqi0l5f2PJxIQzKxiOL2RIlxI5F -//Q/YZxeFw/SofKEUlSNyszWHb+Zk3bMDF07BdjnNrrT3IBGj48kiYwahOAWS0pd -8Ajk6uUE4rD9xW9jsRJ6KNDrhZ8xuG8HnzzDZv2oOxRe6vr+j1uUHA0lG9R3xONE -cZAZ3jr/ZI142iJFlfXNTH6dvFPetClTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZEBy -ZXNlcnZlZC1iaXQuY29tPokBNwQTAQgAIQUCVcBkdgIbAwULCQgHAgYVCAkKCwIE -FgIDAQIeAQIXgAAKCRB5xD378c8hhz7PB/9wcwmw4VyNbcX42AglAycAzLWNoqnB -yDWW+yzxiRg28b7gMBICXG66SukJWwKgVwIOIcATszPgi2UT0UNIOIQbDUL9ZvtV -iCXW1H0vWS+DvVz1kh2HSmNFPvN1z8mlWpRjjzL0m9oJTstkUUQvghAjfQmkDW3y -aPdWX5jJN8GjWxKWek3tOL2fc3aER89w+6oa9lNh2s5b7+j/UxqihUWxGzIDMQST -Oy+loogYRSCMgQ+DdDWgdMZ3NSQdX8KX60X0U/Qj1nqpnl757dGxiQJc6Ru7XN3d -Hr72tpjFU6KMqgvL14gkbLM3KxuTWDj2JIJ7dGoaor1Rl3f+Ree7TLRqtChTaWRk -aGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQGdvdHBsdC5vcmc+iQE4BBMBAgAiBQJX -tMtMAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRB5xD378c8hh1IICACb -SzL8x40UIvw4OqEjFDD7R+6BJoJ5OPNnQuDBjZf2wrVFe1VSALRDeUxrx8ZNRCgT -ao+PUPpmY3n/NopbltUW10WOvu9smd/NMlAuNUmPtoVTrqyf/4d57xPmB3zu0I1f -e8oSHoHNZHcAK1bYDTQKS8Y+TXNnqU/NuLmks51YcMgEtjiBxS5ojGLiFt9/Ll1R -LoNVygR8CfTKaVW5ZOM2qXPX0Rr0Ru9or20xlzYHM2vipMdSHQNFwdnREGgBNV0d -BTrISraXkg0REcGde/q0U/BI5pEbEe6ptbrz0jVu8DE7ZY/KMf17kshtAqMtTUYK -nuW4ud4WtZAaCpS2sb8ltEVTaWRkaGVzaCBQb3lhcmVrYXIgKGh0dHBzOi8vc291 -cmNld2FyZS5vcmcpIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz6JATgEEwECACIF -Ale0yvcCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHnEPfvxzyGHp2gH -/j1oWbTa0kKKBc7s2tZGDt6yN1BPrqDz8thhrY7egd5/rIAJKa1t0laltnlpF5GV -51hywjVZW0uBQc5yGuyl4pU7opYADlwUwONGEw/QCuHHIvgoOrNT0Aemje31tgEY -o18f0N/drStWSeQgH03IQ08Amlsk52s0PRMNZeHI4csawULpa4Qy1C519Iow6EoW -rJI3TFlBQqVvXWfYxPjv2CqXDuj9Q8PLWAO2ywb7Mb0MPvZeSreVvPO2Ez97uV1w -Hx0xGhUuX17Vdkug58v9EBX/P1TEd7NGONgNXr0Q/HMqyCP4h3cDOZj1d5KpR4NZ -fXvPoBFXSaHi4Z48SuISY8K5AQ0EUwBk0wEIAKELSISlJ9rz3tSBPNkpyqwIPn4/ -/ZBuENJQfIWIWYM9r72sBRHZgiilsN7K7g6Ea7vLUVgv5+WInE4PWFQaqUSbMubT -jshnaIAIeSU0rslwRRqu2B9HmS8marB+UYdQ+MsPVEInrB8uroFf8Jh7h+2Oqs2M -KUMsayoFyQkVtwh3HI/AMTkmK6iun3AikOK+J9WLQx2Qqf+fLjY5/ZIjbowbd8GK -3B4h4kUPbeUI5TNg6xcKVyxVPMy8HazfaDwlUHfh07K0UFWtaFuw9v3tlaieOTLH -0D0cBXyYTAqgs7C66cytxw+Qr6/+uHa8MMREDQwTEEwwick3h0h+vIhCsV0AEQEA -AYkBJQQYAQIADwUCUwBk0wIbDAUJAg9YAAAKCRB5xD378c8hh8B+B/9+LKzmAV1j -fWwlA2XG48fUTs2KyHQxO62IsaPBIAa/MaDNO1TuqOzfcH+fiEqVNqd3m/7dLsqH -BIW2J76eNCwGZYjD9rTFlGmz+vIv0qBmElOAH9ahukJ+uo0IH5IzhP1rTBZejToL -3mG/CQC5qhaZIpGBx9RfwUz5Wd14Narb+Yy/YThzoylcM3/Zi9PS6mXG9sNqvhQk -RyI+WihmvU2wzcQzAXyUZrRx62cJyQfiufcIZGlzNHWUobhJQE+CzmefZy/IrVRR -Z9V52tSlARj0GQJ2OGmf0tyFtfx6Xr3BVEerpa+/FHAgjSEagVsqLYKIJe/9k9Z4 -qC2w9Qte07wYiQEfBBgBAgAJAhsMBQJU6rPfAAoJEHnEPfvxzyGH9TMH/RDXegv9 -pLySb2xc5rwzWuhDr01SmqkwQ4YFY7mdorzBnZAqHgPTkN81rvJPkWA8sj5riR06 -BZtbZ+IT/Axg4yK+OgW9452XM+mx7Dqfarn9y+imymuIIYlajNOTC/V2/2B9MoHt -0Mm34gJ1puntqiG82LnF5mAzgbEKI7Wt+vQmfs0BHcvm2lCxUPh4NNr2ODSqr8SI -X64tAfzYPpuzG1L9et7tv+xMoreMTqy2G6LrjDsXdfkzWrCTxcKyoI0DVnZz7NaQ -sYfhl4H9GvFqm7QfT9MCEEG1sOjrrkZpFvc1IrMbislKNdIRBziudr9jv+zdz24H -TKN3JdfTyacfNU4= -=IcJn ------END PGP PUBLIC KEY BLOCK----- ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mQINBFef5BoBEACvJ15QMMZh4stKHbz0rs78XsOdxuug37dumTx6ngrDCwZ61k7n -HQ+uxLuoQvLSc6YJGBEfiNFbs1hvhRFNR7xJbzRYmin7kJZZ/06fH2cgTkQhN0mR -BP8KsKKT+7SvvBL785ZfAhArWf5m5Tl0CktZ8yoG8g9dM4SgdvdSdzZUaWBVHc6T -jdAb9YEQ1/jpyfHsQp+PWLuQZI8nZUm+I3IBDLkbbuJVQklKzpT1b8yxVSsHCyIP -FRqDDUjPL5G4WnUVy529OzfrciBvHdxGsYYDV8FX7fv6V/S3eL6qmZbObivIbLD2 -NbeDqw6vNpr+aehEwgwNbMVuVfH1PVHJV8Qkgxg4PqPgQC7GbIhxxYroGbLJCQ41 -j25M+oqCO/XW/FUu/9x0vY5w0RsZFhlmSP5lBDcaiy3SUgp3MSTePGuxpPlLVMeP -xKvabSS7EErLKlrAEmDgnUYYdPqGCefA+5N9Rn2JPfP7SoQEp2pHhEyM6Xg9x7TJ -+JNuDowQCgwussmeDt2ZUeMl3s1f6/XePfTd3l8c8Yn5Fc8reRa28dFANU6oXiZf -7/h3iQXPg81BsLMJK3aA/nyajRrNxL8dHIx7BjKX0/gxpOozlUHZHl73KhAvrBRa -qLrr2tIPLkKrf3d7wdz4llg4NAGIU4ERdTTne1QAwS6x2tNa9GO9tXGPawARAQAB -tClDYXJsb3MgTydEb25lbGwgPGNhcmxvc0BzeXN0ZW1oYWx0ZWQub3JnPokCPgQT -AQIAKAUCV5/kGgIbAwUJB4TOAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ -FnkrTqJTQPgwKg//fAz8VIcDBqQf+lbSqkeMw3H9d8xgtAn+EoxDYckLtwrCT2oE -h/v18DN2OvvS0SP73EuvyuGT/gm3oGCPrtHJrQaAYelcBideb2YFqJbzGKdkHuNO -pAyfg9fDi3i5LtobPGzSAQXMTz+a2UktRL1A1RO0ueObtnXtA3SwATbm9+mgAAY6 -iA2ZcZuWhsg5/RmUjZM/4tcg+TMUMl/9EAxmBGw0sBWXsnduf2rxG4YToXStZv4d -9bPT4iHR9zVV7AxPXGOwo/EthxDFTPVaZwoDk9IHebPGT44aNmgo0+QOjhEJa52i -rk3opnxEdJ6o9V+ZkpVzfX6Dqmfvkn9GBV6HyWGDhkKKoiH32Sx5OIsgHd6BdbfB -dZA/OI6JMDyEqH/azLj0fUCEOHUQ8YHu92i2rt5jTHe1g/erE0I8fQngd1r4l4lE -dh+n1UqHPlK+BSYe/sIOBJCKohFOxu5SehY/yFfDd42pS9FwNlwk7tO4Pc0jXaE4 -dsI0gKGbYsRpyrYIf+pCxXeJbYjlcWlbwiVO8mZkjS8qOlVh/drO8TUAj6KAKI9j -cj2ra50PUHclCCxbzZYRDUP4AogBGwOv6uciugArFnP+5r1BcO/xcjqyurJASO7N -RrrHohkEj7e6cKisubyZP2XcpsxemVQVT2DsXA9qQHijZ+25v8iZNxG2Zei0KkNh -cmxvcyBPJ0RvbmVsbCAoV29yaykgPGNhcmxvc0ByZWRoYXQuY29tPokCPgQTAQIA -KAUCV5/k8AIbAwUJB4TOAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQFnkr -TqJTQPje5Q/9EvF2UVTzEzuwI/muR5K07kBRoGe0PZzYQHSc0ERCNOwqKIMFH0YR -En14exy0ZP35zaHNxF5xETPwtZwizZE6kso5nGAJQ7j4AkPN7JwVcnZzHWZX3O7d -q7jQHOCdLi0N9mrlUkmX0ybP52JjiIJv3/ozx1xJstrUImU9ceUD9Bt26R8ehxQF -Moy1QMR4jvFBmgbgFhk+CeCSkxIQl2uZE9hC16qanZdHVWX1YAMr7UgsmFK0P6Pn -AYGKTm3MC60iuP84YE+8lE0tCNCWQEGMTG3Ph28bY3ppPQUxVuU96zplapy/G9ms -YYTCUIqnvqNngwAC2COXQWEFrqrIBCsphnErNcvyuDS4HubbJEpU93thOQnhLpoM -ClVzoa+WSjUWsTNZS+uhrQ/j+wqfLYtWS/x3z8UN+cf0Ysrgq3LKT9xmJz1N52jp -v/RieX1Obo23HtG2hGNUyTQ2izuo1NzgGlOAiXhCqAUXKYVk0ZSsPr5dbVwImB8+ -LDOU0+RxhTxdCtPIj+ylBgfCV7Blejve4vUjJV2jtcWcpy/C9E0KHAExjI0lkJ1p -fJ/YtyDrzKUypKYeslcUNmt6v1FiHPxoija20jpGew+eUrUpzjOxf4hOXG1xP9DG -bi1FKMHkeAr9DqZJxUnWmVe7UJGdl1JM7V9KQInY4T3RSI0j5LCJUS20LENhcmxv -cyBPJ0RvbmVsbCAoV29yaykgPGNvZG9uZWxsQHJlZGhhdC5jb20+iQI+BBMBAgAo -BQJXn+UFAhsDBQkHhM4ABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAWeStO -olNA+KwfD/4991sfip58HXHSHimOZPgJQ3mNxJqNi/yBqS0UMlBAOXYGn0wa4xfJ -e+DFhErvqt5kag/N3LgD2I+qp7VUrC/VaM/hZaHa2CqPfeD/1BFXwhg2D1N1qbMI -+kb9fAGTRq4Aewb2xcJMhh4VNyjlKTJ9Z3k8BHQ82QuX/lNOBdhesSOkf7nM2SZ8 -3+VP/FYzq/Fv3amEYXx2XLbxC3xG6UwmhzVKF5SZsxNKTMXr6IBZL5T9MbKGKX83 -O37yMfUKcKet+/hNHkzBh+7IAkHm4O8zUwTyM9Kh17j4KPiZ6fLEJajjQVa8CIp8 -rvfD0rxnrDEeUbQbUECn8b7up3btCBpoApiD/wA1gj2MPo1hNwvJlUIxtodZZtBW -zr2iaLBOqcWUTJOZCce1Si0stHWQoz+jHCCU2hQOfS6oxqnu0Nz+zuF/DjuCyUgI -eLtSBBohkaMPmhq6jN4isSX8EVo4IUH7v+SQUsh6NnbLqveRR5aAuDRNqhTCvNxU -mqOkWGFY4QbNoYjaCACU6MiJgF5owxbdvg99RLBgYjldEsUQacuN8ANPGkV9bdmB -Zba+WUO0Ld+lsqZJekdM9xUqsBHje7ehbsurtmrsG2g42PYBs8s7OojdaJJV9xtB -dzfkky/qkr3rG/VTlCfDCmvLb2dAIl3VvILTOWG0Bvcou1w0EW+c67kCDQRXn+Qa -ARAAq9MmR75BKMBObPXUAsqV79JISlTAvlA6m3fGiYQBNxgBqbDDQcAN8ZMp1RH5 -paA4re+q7pKJyvXNu5mMcKzYZoiBGiqHUcpWAKZoliOLO+J0eW6qujHqqpz08bRt -ZvR/nEZDD5fbP5sSKfO/ipp6nUbU65iC8bj06kdOBkyImr2dwcLGQPZUQkqAzLAY -ngCB2X41ZWfRPvDon7/lCYEgTyGHg3Olh+vHNYIn2JneyQbjMEYHhgRpxzf6h4Sj -JtzXSHq2qFA2u0iJJEkf5JQm86I0fygxc8sCN8VXLd3gE6DLEmETRSGZAhAcwnEI -HDzV9APXR3R1yu7SsAgSV0Sm3ZReo6vSs4AsOJ68wX/YEpCI4Ds9swLf93C40cOU -KVDN2OKXw7tSwiB/cgwVohtChQS+OWB/lyb1r3iBYAFx8jXFp0Cr29wgHm/718zv -XEOB0QudlOFN3wsHKsb30TFUxwbY9lhcmWVUNANmpgDU+MP17TIernCEmLcGtmDA -Novm9hkRvUQzIf4FAs7dnD8JqPxbqaigYeA295FDWD0Vifc1SntS9LbZm38pbikK -luCRBl5/G6ko7pBU3DCCBXjhxNDfvPmicZs08Pz7aTaaYLQ4S0YGSP5Uff21GT64 -s5y5eUY1JWTfE7LGeLQ2T0zQa9O88qhqH2CS8v/4Ch83/fUAEQEAAYkCJQQYAQIA -DwUCV5/kGgIbDAUJB4TOAAAKCRAWeStOolNA+LtBD/9GOTDryHYz/WEZLAPkvklH -cL65Ix7fzlvSLduxXklTnj8IugSbbvN9s65qs2kJxFe6GKDj/u2ULNaqzODmddQY -yr7gMiTfebeG+LdZcdGXpXyI/BdqEioomzvmKAEcCwdygua+NrfZuefESbHtQHyJ -38ikTaAHfzfW+0OFR6N+Ea6AVv8OnnUqvrqo4uyMIGQ8WDP01aQedWhoE0OIuuy8 -CbWuWdkrrnPDi53afYzmthBS+Kr3K3eY/zYjt3BDWMxv1sxgOZqUybydGjwqoo+/ -yacFarcsWAnBHaHhOGAc2dVWWCKfSim0iglxf56sAmrl2vtf5wdMRJELTl+/3n1y -1KTLcFVgzHn1FI2JLzjwJ6jA+2o473YZC9CL/erRR6dj6c/VNKWdewnGe/UncUqq -iZ+FwN8q6bny+8qPlA1lq+HyQNc79vfjAwzi2wuOi8JYe+CwROC+3ZCMDTFdm5mo -VaohIGwYcYS9KGOSFAD4YD3dx7mhse9cnMB/+VUX6Wzj4MRQ66UKECLqts3oblAI -ZGu5tNcM2EYYV4UlqFK5Y5kXhV6bWsG0WQ8GycVe175YKjaKLN9PJMMxXJG+F9lu -tmATw6qr79EWeqLgPNQnKWojra9N7xcGRCULdhSOw0mQ5pryIMQheWqdPUhKURmX -c8HFfqRDMIQCPexAXgsSKg== -=d45e ------END PGP PUBLIC KEY BLOCK----- ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.5 (GNU/Linux) - -mQENBE/Xfl8BCACfn5680mdbi33bAoPmsuOiKguiQ8/q/mMhk6GjuM28F/ahp72P -baGZP2hv6D/DTYeJVlbZPeACkbFQe758AOhoEs8pqDq4JMC4jzNPUSGYH7joaZjc -mMCUUqzG6qDfajW4M2iRI+US/Dozd++shQ18kKJKNY4ZrFEFXUsiHLDHQk/rmrj3 -lAcrcf7zLwJSKKXLmAvz+vu+i9F5/Xt7TSasszrG6AqqSl3aZn5RGmU4DSiAFh3x -U4t21t6KbiQ4gUS0VkbyqrDVhUs64H/fzcFOVVT4dq51nQAAb5mxTFCpyAMuJDQ0 -lh32iKNWM5iKDk1Wdmg2EsnJho7EAbqcEOI7ABEBAAG0IUthcmwgQmVycnkgPGth -cmxAZnJlZWZyaWVuZHMub3JnPokBOAQTAQIAIgUCT9d+XwIbAwYLCQgHAwIGFQgC -CQoLBBYCAwECHgECF4AACgkQBxZ0ijDRVa2xQgf/T1SWK9wbMn44uYIqyPzSAQ7E -m6Xqno07CMJH8DD5T7CidxfH3V1DX7OCRqkljc34QzIdZ0HR5HUSpvfwBYHTXzgH -yiZPVysIb2mx6X//fO16jxi5wj2+mkslGXwrgwzop5InFu6Zl/Q4HDTItthaCYAR -WZvImf0L/1vySWegonoZp/9eUeRld+6Bc/z5kvt6K9hHZt1G11c3+3zlrFydJHL/ -vuXPLXr8w2nkuX+VsXKIT4VgjVn4LvDF55BphfGteaYqSofYPczynoEh1QtU2Qyh -4IXt8lgaEPQADa7wUL7HqhzyJMxHTHG/WLzBRJMfNrr2ow6KiCOfIuBkEa7FnohG -BBARAgAGBQJP14N2AAoJEJ3rRsDWefbPKfIAmgONqRipIzLSUC/FrjSZyV4CO7xu -AJ9qaqLVib0v9xMWU+8UpHcF5jwbBbkBDQRP135fAQgA+Uhd1N4R9nqhfDLQXuKD -IhTals5RMhOXy+fG7uDUSaV9HD/XY4JHfli0r5r/WcG0MGm67T3j0p6YhLCqhkai -x+cZpUwtokw39l5ztT2Smi//WW7wZPIAe4XLUV1TvpoVeoDeoGY9onAdJMEBw+oq -dMoPVyIRmjw7ID3uF2DfU3QnTSYt64AbsHSPp7imeD4gW3aY7r4OmI1vqz4y5pQm -cItwc8rudS9s3uiiGCia34M0yRM64ewwAY3eTAK9fA4FOamVgt8YvNdCZBXvcHAh -amR2BUrt+01+8iqcuX6VEn39srHEutGg8GXcC+7tMncUmlWPUfpy0vTdor/HkxpX -lQARAQABiQEfBBgBAgAJBQJP135fAhsMAAoJEAcWdIow0VWt9RAH/i+Kxkr/R2xJ -WcOvWvn6NVLUo0cChc0SaMjuWAk4KlqOQJT0i5xTkMWVQ8PQonUVkzloLkCqRs61 -9rLoB3mNFzGqP5Jm3dSoqvTFCTMGeQEsX0e6kjnsydgtgkeYNT6yO5hrakfzlKvG -i1KJ7Kwh+8zQtubHQI8/A1IlNyp9WJrWP2Xj1rS3f7SN3QillOhoh8HNkpN4MHZ3 -7moelhQ3XJ+UOUTHv+bNZHVilofbrX5S5LXcPeE/p+DaNNp+oGwPJppGAzKWKQy9 -hA8rKE+HnaSHr/0k0i9Uxmf2c4nLCCeZuxz+TUUZq06Ohco7ullX6MshUhCX+21P -KLEPtgs1HkI= -=5dqZ ------END PGP PUBLIC KEY BLOCK----- - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.2 (GNU/Linux) - -mQGiBDdxLb0RBADNEdWVwbqMQmY9oZQLHIXttEG69VoO/RdPcWcYDHLODTA63y3x -d8apWKmYmovhMngQ5OPJ8gOmWuH5iIlzE+a30NqUrisMq2rl019uT2gfDV7gfFcP -Mj3bwK/s+ANcLViZcVRKHEaDGQ0AJ6LBqYKwqbh1dRvgYZcfEfwdeIUwGQCg//tz -xxE9JTY7/Utu5AMOTWARi88D/iZXkLUvFylh9p+nON0bJlsVGJ7juaaAbZeKwfy8 -ftAg1rJlKlzW89dHKzGQ8t/d2nklN2agujfHTSlOnaXBxDzCXioUL2CjRIBk9ZAA -gNw6z0NbUfm0ZUXIxAW8mQ62E4wWffJ+nd2dPpnnep7vTqEE5U1sTLr0xsf0Pqt4 -gpnoBADIwFUtlj2+CWt0O+51b496su8KwqzICgID58k6bYUzD/0zmx66qjQtKZA6 -fN/3osGrrpFM/HN5ywWrUp61+PZmOPBuEG0EJappw9VVJJuGXcT9VTiOMcISlq3e -4QKgFRtU5dZnfYpm6fwopdrWOf/GvoezzBlqm+6UweqGrYlmWbQpQWxleGFuZHJl -IE9saXZhIDxvbGl2YUBsc2QuaWMudW5pY2FtcC5icj6IVgQQEQIAFgQLBwMCAxUC -AwMWAgECHgEFAjfuyGsACgkQUjSEXfK5IPWuOwCg4Wm8LPDDjICj8P82roeR47Ba -K3cAoIhBN8CNiGuR/9pjAtgw4hoaKM//iEYEEhECAAYFAj7Oa70ACgkQVZbdDOm/ -ZT0AtgCePT8aKyUMWuO7ldRZxIUaUhREwRIAn27v4SCNXLpCxK2P74KoG8n81CJQ -iEYEExECAAYFAj7RN1kACgkQReWQaPkbt5+B2ACdHDpaJPuTP71cFp4wgyLcmiC7 -bd4AoIvr6nAB90KSZLGI5xqdtsHpmQgziEYEExECAAYFAj7ReMwACgkQOJpWPMJy -oSadsgCfYFXDzf10ZYmIPyaj1yJqlTHi2wsAnj2fWhHniJRteNfemEWLQnRRmTrf -iEYEExECAAYFAj7SVf4ACgkQt86bGTehh8YeGwCfYW80/FTzpYMY2pH3tZLxqT9P -5r4AmwbHa4SkJKUtMrue5ocAgGkrh2/CiEYEEhECAAYFAj7SmzsACgkQIhjIHo58 -A/97/ACeOYfyPeI82F8fkaQa0+QMB9eZQpYAniuz3wpJOpvA/bjq6m68oudWuwpW -iEYEExECAAYFAj7ToLMACgkQLiz2e3eWpgtW+ACdGEcq4FrCkByicdOBmlgeaaTD -iHoAoMB7RZyinU5O2/SKE63wNRhYMYaqiEYEExECAAYFAj7UEy8ACgkQSUWlN9d7 -Q/tP+QCgnwGlt3AyUjsIlCqwg8lsFzFuYjkAnj7rOg3ZvM+RnKEU2w2KF/DPPgJV -iEYEEhECAAYFAj7VjRsACgkQULspdC1Zp9K7XgCePkbrTrHdRGorFtrc1xttK30y -Ub8AoL3uWc1nKW1FCbEnET3KfEJ7NliOiEYEExECAAYFAj7WZOgACgkQbgOPXuCj -g3dfawCgxeZkjWdb1/W0zo9L4/lJYJT/ZM8AoMDhBIq6ueKv7TwXqp1w9IecJrFX -iEYEExECAAYFAj7WtO0ACgkQJPE+P+aMAJIZ3gCgtp7LEQuE+c+GOK7JOdBVgz3p -CuQAoPIZAwFRf3l2dL0jQEwW/syQpTNkiEYEExECAAYFAj7YFm8ACgkQWVEnTIGP -40AxIwCgtPb1IDOieEpnVrt05FTKeSgSikkAn0n/Si3TKFv3QJ+YId0BjmQZFJft -iEYEExECAAYFAj7ZS+UACgkQUcYzIHl9x18i9wCgpsF9v2g8KKP80jn5EtbDZSyz -tXUAn3oPb5lVHVtcaIsMOvV9fFH7J1aJiEYEEBECAAYFAj7iTgUACgkQcXN9pvjE -0U+S4gCcDMnAxzFAwWZBXdAyXj2bb21wmCcAnRRQ4vzOPn2Ech6ypfZQfJUuUYqK -tCZBbGV4YW5kcmUgT2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPohZBBMRAgAZ -AheABAsHAwIDFQIDAxYCAQIeAQUCN+7JDAAKCRBSNIRd8rkg9e1mAKCRO3tYUF+2 -CySnzV7ELImoRS6enQCg20xc4FDUXBcZ4teSkHEhVQh80ZGIRgQSEQIABgUCPs5r -vwAKCRBVlt0M6b9lPedzAJ4oQZ63eqYgHUMYPmZZtXF+v290xgCeM6pRQDTrCl64 -R/cDFI1GisZMWb2IRgQTEQIABgUCPtE3XQAKCRBF5ZBo+Ru3n1BTAJ9f2KmqwN09 -fmDoD+lJHeR4svPGlwCfbCwiBlxCDA3+EZywDVZOSwGPEwWIRgQTEQIABgUCPtF4 -zAAKCRA4mlY8wnKhJmA0AJ4ynkZFnsuCLWM2tvRCdEeYX8QzHwCgkGCDk6PCsUM0 -8U0bNHd6GVhrYwyIRgQTEQIABgUCPtJWBAAKCRC3zpsZN6GHxtpsAJ95B78c0pNA -+ZTKjWYF6eycq3ueUwCgjO6xrmZBgwUKpkow+icuEeUTpceIRgQSEQIABgUCPtKb -OwAKCRAiGMgejnwD/wV/AJ9rUmQmxAjzfhQEp9q55O9oyVLOXACdHVjmIlnowO0s -c62kR4Xeb/d3/nGIRgQTEQIABgUCPtOgswAKCRAuLPZ7d5amC0FJAJsHSOOAU/B+ -Hu5H8numhWMWUBK+vQCfQkrsMSBmMniK3+vDMOnOd5i2CQ2IRgQTEQIABgUCPtQT -NgAKCRBJRaU313tD+5DwAJ9TFiU7HSDPqGYoCkY6xcKG0CYEVgCdES83S/qUbzgx -VmFmDV6B8sKSrZGIRgQSEQIABgUCPtWNHQAKCRBQuyl0LVmn0mg2AJ4qzlUJqySG -blnl3gmcgCgplETNNACfcUGGpVDUMu42cwK50ZgTUBGVRBKIRgQTEQIABgUCPtZk -6AAKCRBuA49e4KODd5JKAJ9VwKYbHHwFCNc3ZLczD5yTLUZvjwCeKXMXOBwbUwiG -HQM7sEwiQYd/KDGIRgQTEQIABgUCPta07QAKCRAk8T4/5owAkgvtAKCBTLbedDaH -TLNhf4pf6r9/bidMEACgmunIHOjjVI/l2+y0rtptzHUR+EuIRgQTEQIABgUCPtgW -bwAKCRBZUSdMgY/jQPlfAKCaG3oxgFOcl1CyKGeASJLWWB25dwCeLdPtdaWuGvN8 -vJERuTA8E6meM1aIRgQTEQIABgUCPtlL5QAKCRBRxjMgeX3HX0w+AJ0WOfuq7X5T -VeBLNcIXIaRdcNwWfgCffaRdhcG7cXxJnvsNF6dlWplostKIRgQQEQIABgUCPuJO -EAAKCRBxc32m+MTRT7d6AKDT/n7bLwQVSdUSR+TN7iMVBBWIbQCglqoDZJXGoXYb -4IkICLFpFMNKtma0I0FsZXhhbmRyZSBPbGl2YSA8YW9saXZhQHJlZGhhdC5jb20+ -iF8EExECAB8CGwMCHgECF4ACGQEECwcDAgMVAgMDFgIBBQI+utBFAAoJEFI0hF3y -uSD1vgYAn21FjgVitnb0dhZLchSIFtne+vhkAJ9Rz9/2i2qDuL0MhbnzlDg4WdCs -1IhGBBIRAgAGBQI+zmu/AAoJEFWW3Qzpv2U95wEAn0ZG0sMoZooRJUgwJusllvYt -BYOsAJ9+C8x4Xb0yS3utn778PAokwbTA8ohGBBMRAgAGBQI+0TdcAAoJEEXlkGj5 -G7efgpQAoMVRs2+0pyuuWhDcf2FZIrgVRck5AKCSqbKmhWJfTeqfYPGI8ttQ4Cui -pYhGBBMRAgAGBQI+0T6MAAoJEMXAxcchjRjX8PoAoJn9OmLvAkfvjWTgLlsTlF4l -Wq+yAJ4nrM3p7veOe4i6Fo3CGFS3jsl8UIhGBBMRAgAGBQI+0XjKAAoJEDiaVjzC -cqEmFD4An3gbPv/+xGgiKtcEHAo4or9jqq85AJ4jlCnPhgpO8q1ZQFKGXNwKtmBe -wIhGBBMRAgAGBQI+0lYEAAoJELfOmxk3oYfGVpkAn1ntZR8Bae9zNYRDcpnz7maJ -JHkvAJ9C+Td5kIeX1zWaiwgKAGO1eeQdRIhGBBIRAgAGBQI+0pspAAoJECIYyB6O -fAP/qckAniPS0ExpKR1KyBTV2bjQ9XLK6pE2AJ9Z4BkWv3EG/orD0E/Cno7emb6z -mohGBBMRAgAGBQI+06CtAAoJEC4s9nt3lqYL4J4AoMtYwdwhRz02c3Bf650trPv4 -FjwpAKDcrf3OKg3EBKGRtmNB0fKXJqbRHohGBBMRAgAGBQI+1BM2AAoJEElFpTfX -e0P7ydYAoIXJAeSi5o/vjQLjb+K++LN/GWFKAJ4wuN3RxnIaKhg4cmeo92Wp319a -+4hGBBIRAgAGBQI+1Y0dAAoJEFC7KXQtWafSEpwAoMfUs9W0HPwHJgTFYJQpHOQY -7xvmAJ0X5rB2neFaD1PmVOPCS5TPAPpe+4hGBBMRAgAGBQI+1mTkAAoJEG4Dj17g -o4N3ffQAoJAp2XtCrSHU35qGthJCVNs/muw6AKC/8VkE53YTzfGF3xXLB7qDgIuF -B4hGBBIRAgAGBQI+1iGFAAoJECn45GVniJZfrlQAnRP1qezPfEQJgxkwpX5aZIY/ -wEZOAKCSWaUSrrvcESnqWmGYLwFqPH+YVYhGBBMRAgAGBQI+1rTnAAoJECTxPj/m -jACSdA4AoIQ8LbBoQaw8AGe1Hcsb+VlCRpCyAJ9/10W3baurjoIyV+S6ThFwIs7l -m4hGBBMRAgAGBQI+2BZtAAoJEFlRJ0yBj+NA7LcAoMglf4LSHbVKrWQXsXgZgBBc -/xoDAJ4219gt4pXq6Sr5a/hl29R5mrWhbIhGBBMRAgAGBQI+2JjkAAoJEHV+VfRE -0xInmAAAoIuN7Xonh+7Gn5oGlLPt2SnkKaAPAJ4xC+PY17nlPnI0CiVY/DnbISta -2IhGBBMRAgAGBQI+2UvfAAoJEFHGMyB5fcdfP68AoJTDLS2hIfbm8C0KUgqAkEtZ -vhThAJ0ZK0RMCedjOMU8nBO9Mve5u/hi7ohGBBARAgAGBQI+4k4QAAoJEHFzfab4 -xNFPuewAoNiuAOARLz6/XnwPhkwbNttjOAsbAKDfRTx4R0AUR2t7QeGiw6UJo4yJ -fYhGBBMRAgAGBQI+44OQAAoJEN5HUcxjjSIa2RwAn111QjcFqc5c4o2qA6DC6Ph6 -OMKvAJ9mn1t8Pn3IBb8oj94o8MOOcdZlJLQmQWxleGFuZHJlIE9saXZhIDxhb2xp -dmFAbXBjbmV0LmNvbS5icj6IXAQTEQIAHAIbAwIeAQIXgAQLBwMCAxUCAwMWAgEF -Aj660GAACgkQUjSEXfK5IPXdHgCgvaapjNit3I5dux5z7Z5+HzGKvnsAn11JahGg -wLrx2oYcnVJ9AXLdWWJ1iEYEEhECAAYFAj7Oa78ACgkQVZbdDOm/ZT1/nwCeKLRJ -ZeKpbOXqVeBKLeL+d9LKc0EAniv8pMYq/mbsasQyDVDm+KH4wJQNiEYEExECAAYF -Aj7RN1wACgkQReWQaPkbt58ytgCgy2iM5KQ4YkU+DWCPcVnx5HTgQAsAn3Zhb7qs -0q+ssdKxo4XAMH7CK6HriEYEExECAAYFAj7ReMwACgkQOJpWPMJyoSYkpACcDWJ3 -l8I7ylowTeD0emmrK44+IigAn2N/uDTRIvXWc630rxoFiERya5AbiEYEExECAAYF -Aj7SVgQACgkQt86bGTehh8ZJLwCfVIrazviudQDsh8TT6KWErQvUGQsAn2bZi+Es -bMyUn1hetf0g93kIkDoKiEYEEhECAAYFAj7SmzsACgkQIhjIHo58A/98oQCcDWOD -JsCnF5tkFkJe7A5XR0WO7SkAnjIX+5ab6IQjeP5zCn3BmhmbtZlJiEYEExECAAYF -Aj7ToLMACgkQLiz2e3eWpgv/BACgr6TF6IwgEOug2N7pyPcl622p1/YAoMcEDTFP -FSIH1nwKXcrRfqEhdhbJiEYEExECAAYFAj7UEzYACgkQSUWlN9d7Q/tYaACeJkx1 -7gZKTWEbrf+AuYIT3bUJnKwAn1uZm4H1UFJpAda42vbrtUhCdsmjiEYEEhECAAYF -Aj7VjR0ACgkQULspdC1Zp9IqaQCfZS2N7Pa1fuOAXtSNfKnTUhQX/GQAmQH8rxa1 -H3lVsdjBAdpsvREKjrhDiEYEExECAAYFAj7WZOgACgkQbgOPXuCjg3ePTgCeLny0 -UBJab3J5rvRifCG8jacyxKcAn2yRzLlTp+GT2TFNNrJf23aI2RQKiEYEExECAAYF -Aj7WtO0ACgkQJPE+P+aMAJKogACfapYVpoZPWTFpqGVz86nXVhEHiH0AoPRxtiuP -rn5Cme5qmcTwxy7CW8Z+iEYEExECAAYFAj7YFm8ACgkQWVEnTIGP40BPQACgpg31 -hR48WrsbEaMZSqLn0wepn5gAoJElbQhD+iF6TVlnw+6Sr/6YhL2ViEYEExECAAYF -Aj7ZS+UACgkQUcYzIHl9x19a+gCglwnYCyKj5cAnwKKeyoAp5Xy3Do8AoNekWK3L -qLzZzrpFZZOoT9Y2dVd4iEYEEBECAAYFAj7iThAACgkQcXN9pvjE0U+dyQCgoSv4 -rJV/StJGt7xfF2V1PY04d2MAoLmrM4meUiAH2h9Dgrk5JoGhVwvl0dAY0BYBEAAB -AQAAAAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQECAEgASAAA/9sAQwAIBgYHBgUIBwcH -CQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04 -MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy -MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAlACRAwERAAIRAQMRAf/E -ABwAAAEEAwEAAAAAAAAAAAAAAAABAwYHAgQFCP/EAEAQAAEDAwEFBQUECAUFAAAA -AAEAAgMEBREGEiExQVEHEyJhcTJCgZGhCBSCsRUXI0RSYsHRFjOSovAkU3Ky4f/E -ABoBAQADAQEBAAAAAAAAAAAAAAABAgMEBQb/xAAsEQEAAgIBBAECBgEFAAAAAAAA -AQIDESEEEjFBUQWREyIyQoGhcRQjQ1PR/9oADAMBAAIRAxEAPwC/UAgEAgEEN1V2 -oaV0iXw1twE9Y390pR3kgPQ8m/EhBUF++0Teapzo7Ha6ahi4CWoPfSeuNzR9UEBu -faTrO8hzKvUNa5r+McLhG0/BgCCOGmq5XF7oJ3OdvJLCSVXur8tIw5J8Vn7MX01R -GCXwStHUsIUxaJ8SWxZK+az9nVtGr9RWEBtrvVbSsHuRynZ/0ncpZpzZe3zV9uc1 -tw+6XSLn30QjfjyczA+YKC1tM9uulb45kFwdJZ6p27FSQ6InykHD8QCCzYpo54mS -xSNkjeNpr2OBDh1BHFBmgEAgEAgEAgEHK1BqO1aXtUlxu9Wymp2bhne57v4WjiT5 -BB5t1z223vUrpaOzuktVrO7DHYmlH8zh7I8m/ElBVpJJJJyTxQdC2201jy+TIhHT -3iqXv2unp+nnLPPhIaenhpQGwxNaOZ5n4rmtM28vXx46YuKw6kRD255rmtxL28Gr -1Ny7nYKtXw580atqXKrrPBVgva0RSn3mjcfULemWavM6joaZea8Si00L6eZ8Ugw9 -pwV1xMTG4eDek0tNbeYYKVUr0f2iah0VUN/RtWX0ZOZKKfLondcD3T5jHxQemdB9 -pll11ThlO77rc2NzLQyuG0Opafeb5jeOYCCaoBAIBAIBBG9aa0tmiLG643B21I7L -aemafHO/oOg6nl8gg8kat1fdtZ3l9xus+1jIhhbujhb/AAtH5nieaDgoMo2d5K1g -944SRMaeNsNOxjQBgLktzO3vYaxjxxEeT7GE7zxPJUmzqpSZbsEew3J5rmyW3L2O -lxdtdyymiD2qKW1K3UYa3q0nBzHb10RqXkWi2OdS4GoYB+yqG4znYd+Y/qunDPp5 -H1Kkbi8OEt3lhA9R1lTb6yKro55IKiFwfHLG7Zc0jmCg9P8AZT2sRavibaLu5kN8 -jb4XDwtqmjiWjk4c2/EcwAtRAIBAIOdfb3Q6cstVdrjL3dLTM23nmejR1JOAB1KD -xxrPV9w1rqGa6Vzi1vswQA5bDHnc0fmTzKCPIBBs0Dc1jPIEqJ8Jr5SF1xihbgAy -Pxw5D4rD8KZerPW0xxxG5MG61TydktYP5R/dWjBT2wt9Szz+mdE/SVYf3mT5qfwc -fwpP1Hqv+yfuVtzrR+8vPrgpODH8LR9T6uP+STjbzM1wEzGSN6gYKpPT1/a3p9Wy -7/3Iif6N3GaKstcpYSCzDtk8RvStZrblGfNTNhma+kcXQ8sIBA7TVM9FVRVVNK+G -eF4fHIw4c1wOQQeqD1v2WdoMeudP/wDUFjLvSAMq4xu2ukjR0P0OR0QT1AIBB5k7 -dtcOvWoBpyilzQW1/wC22Tukn5/Bo3epcgqFAc8c0G5Ha6yUAiEtB5vIb+apOSsN -69NltzEN2ktFRFI50jox4cDDgVWcsNa9Fl96+8Ntlrz7Tx/qH91E5oaV6C0+Z/uP -/W9TUETdwja8+mVlbJMu3D0mOvmIn7N0W+ct8NI8A8CIz/ZV3LeaU8cR9mYsFVMw -uFFM4czsKYvZlbDgnzMNOp0+5p8cUkZ824V4yW+HNk6bp/V9fw5cttYxzojVxgkY -LXAtOFp+JPurm/01In8uWP7aD7HUtBLJIJPR+D9UjLHwieiyR4mJ/loTU81O/Zmj -cw+Y4rSLRPhzXpak6tGjalQIO/ozVVVo3VFJeKXLmxnZniB/zYj7Tf6joQCg9o2+ -vprpbqavo5RLTVEbZYnj3muGQUGygjWvtTN0lou43YEd/HHsU7T70rtzfXBOfQFB -4tkkfNK+SR5fI8lznOOS4niSgxQb1snggnLpRhx9l55f2VLxMw1xXilty7nfN2do -uGDz6rLtd8Zq63toVsoe4NBBwtaRpx9ReLTqD1DRiqL49prCTgPf7PXG7/nBTM6Y -RG070lp2vpYWyvuVJQxyEPLJRtEhUmazLasXrHCYwVs8Jf31fSVVMw+DMeWkZA3d -DvGBn4rOZhtTu/k3WVNM9tU43LuGGQw4a3GzuB4A8cndv80rqU5Jt43rSI3G2W2r -OKXUElRPjPdvdjluxlXmdemMR3fuQq8QPhdGZXtMuMOaM5GOqvRlfe+TdJUBzdhz -t/LPNVvX3Dr6fNuO20m7nVQtpnwOIc8jc3oevkopWd7Tny17Zq4K2cAQCD0f9nrV -RrrJWabqJMy0B76nyd/dOPiHwd/7oLqQefvtHX4untGn43+FrXVkzc8ScsZ+T/mg -odAIBB0aDbdSyMGMbYwM7+G/CrPlPo/FTSVMgjhYXyOOA0byVO9ERMzqEi0rFmct -LGud4h4uAPVZZZbYY3OlhUVooTOJJqAVb8b3SBzhw5AbgsYvMeHTOGJ/UzrLftXK -it8VO2BksjZSxrcZaOZ5/NRaZTWtY5bctvFJfZ6V7GYqHB7NvBBOMc92eHyCiJnw -mYifzH7haGVA/a07Q5nKOn2Tu+CtMyiK11xCs9a2x8NRG4uL9pwa12MZytcVvTnz -0mNSh1xJttznpY8PMDyzad1C1ie6GEx2205hJJJPEnKsqRAIBBMey2/HT3aLaKpz -9mCaX7rN02JPDv8AQlp+CD2Ph3kg8gdsFxNy7Uby7ayyne2mYOgY0A/7tpBBkAgE -DlPUSUs7JoXbL28D+aiY3GpTE6SWwVcIvNJUU5c14dh8Z5E5AweBHqqW3rUr45iL -xKVWa2Ch1BUUxe1zdrILRuGd+Fhe24h04q9t5WpFXU1ntJPdtL3eBhPXqorxDS/M -7meEcjnq5r3HU0Wy9zjgukHHyB5BIjktbccNq9yXOesimrGwsaWf5LSM/wDxLx8o -x2nzEN+06ifUQGinYXPaPCXccdE3OkxETO44RPVDKR80L6whtPDL3jiTjOATj4lK -7iZ0jJMTral7hN94uVVNknvJXOyfMldcRqHBadzMtZSgIBAIFa5zHB7SWuacgjkQ -g9DfrwPkgoO6177pd6y4S526mZ8zs9XHKDUQCAQCB+jmfBVMcxofkgFhOA7yzyUS -QsbR9U+a9SQ1EjnvaA0Fzs7hyysMlY1uHRitO+VsT2+KstYe/wBqLjs7jg7s+qp2 -8bhfv51KP2+mo7fcWQ3O2yVTdsbE7ZXFr2+Y4A+W5RuGsVyftl1tRNo+6bFRaagk -lkbjvJyTgdcD+pHBTMxHpFaXmObEsFogoBFk7U0cTnPd1ceQ8gorzO1bz28IN2i1 -LGQti2m7cj9obQyBsjO/yyr0jllktxpT7nF73PdxccldLnIgEAgEAgXaPUoEQCAQ -CAQHA5HFBKtP3V814gmIayfOzI4H2yfexy38cLO8flXpPK67bcyKIvflx2cPaeax -iWlvk3TVuzUMewOe1x8Ozu+fkqRxLes90al2bkKllN94miMjcZAa7eFa0zJSKx7c -GmurmSytLgSW5c7oOiiOIZ3ncqh7QLjPVX0MLnCLugQM8ck8fkujH42wv5RFaKBA -IBAIBAIOrqa1/oXVN1tmMClqpIh6A7vog5SAQCAQCDvaTt9bXXVz6OndKynYJZnN -4RtDhvKpk/TK1fMLojgfTlskYcWPaCWrjrZ02q3aWkYXiWndsPBzjZ4FaRKnMOlW -yVlRAY5KjZaRg7I4qZsOC6g2nOihYcHe9x4lZ2stWqrO0C11Lbqa1kEjqZsbWPka -3LWHJwCeWVv09t10zzxq20LW7EIBAIBAIH/uc/8A23fJBPu2+1utvafXS7JbHXRx -1LPi3Zd/uaUFdIBAIO3Z9Iagvswjt9qqZMjPeOZsMH4nYCjYtzSnYRFHVfeL/Vtq -2MAIp4A5rC7+YneR5DCC4afTtsjoTSxUUMUTou6c2Ngb4em70CTETGpInXLlnTUl -IC0M76HgMccLlnDNfHh0RlifJqOwwtdlrnMPQqIombNh1kiO97jgdOamaI7mnVUU -cMLmQswOp5rO0fDSs/JLNomnnNRU3SnbLHPEYhBINxa7jkf86rbBimPzSyy5IniF -d6x7BGMDZ9LVJDsnbpauTdjlsvx9D810MFP3vTF705MIrtbp6YkZDnDLD6OGR9VO -xyUAgED1JSy1tZBSQN2pZ5GxMHVzjgfUoPW36qLN0HyQQ/7RWnzU2S23+JmXUchp -5iP4H72k+QcMfiQeeaWlqK6qjpqWGSaeQ7LI42lznHyCC5tH9hL6kNqdS1DmA4La -Wmdv/E7H0HzUbFqWvsy0janNfT2GkMjcYfM0yu3c/ETvQSj7rGG4DB5JoPNjDG4A -UjNowdyBwfVEEdGx/tNB9QmksDSwn3Ao7YT3SRtLAx20Im5HPGVEViPRMyzJwrIN -OAdxCBmWkgnjdHLEx7Hbi1zQQfUFBX+puxnTF+EstPTm21jhkS0u5ufNnsn4YUCp -dQdh2p7Q0y28w3WIcRD4JB+Fx3/AlNitqinnpKh9PUwyQzRnD45GlrmnoQeCkWJ2 -IabN97QYKyRmaW1t+9PJG7b4Rj12t/4UHq/HmUHM1HZYNRadr7RUgd1Vwujz/Cfd -d6g4PwQRTRXZ/bNKUEUcNPG6s2f21S5g23u57+QzyURAmkMYDcqQ6BuQJjLvRAhQ -KEGSAyeqA2igQuKDEoEwgMIDCBC0HcQgjeq9D2TWFA6muVMO8we7qWACWI9Qf6Hc -VGg12baCi0FYZqMzMqauondLNO1uNoDcwY8m/UlSJmgEDTowHF46IMGDEI6kIMic -BAAYCAIQGEAgEBhAYQJhBVur+1Ortt8ktFioY5TBL3M9bUNc6Nj+bWgYzjhknjuV -LXirbD098sxqOJnW/TSoO1S+UjxLd7bT1dHvLn0jHwysA4nZcSD6bvVZ16iszqXb -m+lZqU768x/iYn7StC03ehvlshuNuqGz0swy17fqCORHMLd5jdQZxtycngEDyAQC -AIygaLdnA5BADfvRARIQCAQCARAQHAhEqb/Vhfv8TXSSaopnWqtnmka3fJkuJLdp -u7ZHIkZxu3LLJji/PiXZ0nWW6fdZjdZ8xLiS2GrsM89NVU1ZHG3GO9Y58Q/8JMYL -T6/JceXHf3H2fQ9D1nS6mK3mIn1b1/ifh0uyivZadV1Fjgqu+pK6F07Y8g93Kz06 -tz8guvDe1o/NDwfqHT4sOSIxW3E/0utjdtbOA8BgYQKgEAgEBxQYOBHDggxRAQCJ -CBUQRAqBEAiWErHOYdghsgzsOOSGnrjO/wBEQi1i7N7FYb2LzS/en1xbIHySy5Dn -P9p2zjAPHhu3qEpgAGjAUhUAgEAgEAgEGJblBiQQgRAIBEFQCAQGCUGQaiWSAQCA -QCAQCAQCAQCBMAoMSAgREBAoGUSywAgVAIBAIBAIBB//2YhcBBMRAgAcBQI+1lKI -AhsDBAsHAwIDFQIDAxYCAQIeAQIXgAAKCRBSNIRd8rkg9XHvAKCwc06JpHNkznsR -116hXYW55vuBpgCgpcYwtGMAKq3GAWQT2PpvJhK8TOiIRQQTEQIABgUCPtvBWgAK -CRDFwMXHIY0Y19C6AJjcmTK++93kPgAUCctu/tLlrUmhAJ4kNEEJJnqfCHnSvZ9O -y39N8+Dtl7kBDQQ3cS3ZEAQAylChXpt5S04mzrkuWVHmdlmZ/LiZ9OilMBMtdujH -m2o0winhixm8S5+OLMQ/ITr2yDfEKJ4OF1MuiVz/ZAAcIEPAsIQv3GPXUAspFILG -5GQ9NEmBmPLjSePgJHy2wQtoHVBIEIHDCnuWXX9ByTF3OBvCOwFYzr9pIytfZgBr -+3MAAgIEAJQ2r4jox4pvKo28wLMR8v2hEiC+vg3b+2rTKlitXu2zh9FM9X6dTxtT -rwUgdAv6BKtj40bp6OfZmwHKEEXPLEBCplVuREDMZYGE4gPilPlKbd5Qj0qCxQ3L -rW6FhJmN60PNg2hqdB2hLjzC4QuPXDMZ0tQdulzMXBQ4tpkoXaIciD8DBRg3cS3Z -UjSEXfK5IPURAozMAKCoZhmSyDCmGNVoxrEt+83J7gqSzACg/wdF4yW1HFXPMNmu -N7JGzLVNo+A= -=fZUN ------END PGP PUBLIC KEY BLOCK----- - - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.10 (GNU/Linux) -Comment: Public key at http://people.redhat.com/eblake/eblake.gpg - -mQGiBEHEwRMRBACm9AFr7XGQ9pFLX4wcuWh+mW6UxFARa47ewVNwW8gxr5nsC7TE -skokjSnlcPuuLGO/UQMmjO8HhCHsq4JkZy5u9QNlno+nQDwCr4mJydoa2YGZ6nPU -aVTdSZ3CYXCrsYiHmtVvjqMMyLrLT8cq/vNQhhOZ1EftbQ6lBHMJ2Kn8SwCg2ccu -zM0E/3bPCMhxgcTWgOA2NP8D/RNUWxKKqc3G8rVea7hi01fSqrqX1ppuK/hnLn8e -spzXC6Qlp38k/ibKpRXrzuMNJu+SjUBevm5ZpBHer/1FDWfh8NGgRrKkCmvk1zH7 -dTBOvq+VN82QnvuyDFsvFfsoDHn+YPCHP/4gCDeKAqvBdCBp6LZXX/FQTVKZp6RK -lmi0A/9mN0aAIpHeu7BBKPxRh+ePzDtrmj3MeQlUna39ExKd0b55poHgeuyXRWsF -F9d8DMkLDuzZJ1OHkI3l3xNyEHWzizYQGkvDg9Atikn3JRIv/So5BK4ZJXRNGgni -zcXyu+xJdrerPbArzCIRHnKcGzyninNzubrMYot1PkNr4szuRrQeRXJpYyBCbGFr -ZSA8ZWJsYWtlQHJlZGhhdC5jb20+iGQEExECACQCGwMCHgECF4ACGQEFAkvHx2oF -CwkIBwMFFQoJCAsFFgIDAQAACgkQ84KuGfSFAYBGmQCgnNA3IpPx4Qg220aPzejj -4c7izRYAoLChcJ6/B68OjpiJKgrCkR9tbFR5iQEcBBABCAAGBQJLx8vDAAoJEKeh -a0olJ0NqvzsH/03u0mScWEJcIddK/ZsgxDhSJE8jwz/XfDaBTZzk3/BQl2aLTPpG -ja+izujJ+eZzTANExjIQU0EqIcN+F1kTEEOO+COb2CvBgwpVJ76k+Lm6TN6Kq1LG -vEVlEtJTbITzDWXquGZ05xjXdgaIqHaMONcKlP60Iwmm5YdcUpXfck6KT09Nn3Jt -Corl7ruVZHAMUyd42ei0k1vajDuiG9XmM8ylxVgxyeahOATxuFi81k9LMqjlyFQf -oyPOfWG/9bS/pzomos+ImMSKx8eZlzNkUf4tVnIhjEQKWKC9ZKB41UfKUBknzD5D -yYoRDzYRlpxDEyk+aVK2TjQr8K9r1RriAL60NEVyaWMgQmxha2UgKGZyZWUgc29m -dHdhcmUgcHJvZ3JhbW1lcikgPGViYjlAYnl1Lm5ldD6IYQQTEQIAIQIbAwIeAQIX -gAUCS8fHcQULCQgHAwUVCgkICwUWAgMBAAAKCRDzgq4Z9IUBgMSBAJ91r/hZGGnh -2tNywUkG4kObgRLjfACg06z8bIPYK9bwTIZL05cYvfwQs/eIRgQSEQIABgUCSXk3 -eAAKCRDp1n4q3kFyFriCAKC2P+pdTGDxzCWpcfKCZBaj8dmwywCfTkELJzEf3Xyj -ZaMhQQcyzjr8iKuIRgQQEQgABgUCS3lcdgAKCRD90t6s0zPLoa5WAKCO+kfvJK6Q -FVEvPwpm2cTUcLLahQCdHir4KiMVq5JDJ57APA9SuKjFYiKIXgQTEQIAHgUCQcTB -EwIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDzgq4Z9IUBgBBjAJ4pryQ6lfyg -AP/A+ALRYS0GbLqllACfbo5spXIP0juZJzLf+5ybojZvDxWJARwEEAEIAAYFAkvH -y8MACgkQp6FrSiUnQ2rYbwf8CrFH3nGxo3gDYGPzD6fvBrM8V7fLTH1dFiJqxc1J -Su0pm51ebaieSHg8mf18zHCWq9q2VbRWHX3MNWx6/+KYg5BVc4nMvGDQLiFA3Ofs -61AeGfzKztP587wUlKYO+J8eTrwYRGFKjURyZOxdMzKBw1LOt9JC87tO2+Fmp7v0 -VN2he87tZdgvSk4VhTKXvyMO9Yb/Dhbzz/0T/sRPcOLcUBh0Wt4K4pu4k9h8EJHN -tgvw4Tu6H3jBeXqv0O8st5zvQixI5YxQhtwEaok3CdeXrqz9Bkt85nQ8xnIlkWvV -fVj53hJem27ItdIT+4ZomC/4U/zZgT3wW874bBquKm7ra7kBDQRBxMEbEAQAhJ5F -6B/9bPxiVdshRiouAWc+FbvlvnzEaudFIUHzxGz3olbMnsKgzVsm4yVbieP9R0Rt -E3orYxt132pqjSfW6MFjTMAiMhwoc12vyDzZKuxsgYvmNxaKdj3B1rV7rCJlLQYy -a69qoWaDMqxphmDiip0cndy+jKNvH1DJPY3iZCcAAwUD/2fjAwgEZ6ROpsYacJ2Y -6y33A58CswWQB2PyhzJJiG0W8pQdCAgUFqI9XMjUBAp0at9+uObSwMUKeB3y4ksD -d7x1TIkBKmAMYiTSxd3JewSyRbDq624BJ1almvY3X2ID0mMmfe9P5Se3eeT12KRK -ne2ZYb8heW6M1ze3QU967SaHiE8EGBECAA8CGwwFAkuCo/8FCQm/NFQACgkQ84Ku -GfSFAYCyCwCfZcKAbjpX5zBFhgi8iC0Mo12LG+gAn2a/bQIsofmXOKtwSmUlx9NA -7VxiuQQNBEuCoRYQEACrYaSSlYEgZJoxltoR07R8quoDkIrR7WnWB5ogrevzEM38 -+NIXYsPI41Wbp7sIURQTbt6b9KBJEyh6KNS1AjmhwGehmkmngLXNqmVeEppEbOX+ -Snj4R+GdxlHfCnBF0TjcfOZBKeI/diQgSSuycLKCRIkzezNDPhX1npOfh8U7c90T -1y1fgrl8rYd105WIWWV/RgC15TqjekalzBbw97Cqn05Wfe7ohIl5zUbliItSW1HJ -fAUxTFk+ZRElQ1ENZc2ns19tuCRVegYeM3a1FognQEMbzyVSNwzBTvS7Q5/1ZVEL -ZKRIxvaB1BZbScMOtgBYkrhpJyClE98r9YH9FW4EpRO8If8Y1A/WPSgT8z0ShZ5T -HVMSHoBi0uD1qd9bgqb3p661BNcnoWPR1OFs4YubwfTB62rNNWt18IliHCnFjDB4 -O9QCJhkKaHF+6EGK95j96KKuxt2ro9FmEbii6BtXFUN3lSdukE5no3d+Fa0LtlrQ -BiAguAc1+VJzJ4Ay6LOmj+gaFd8jKJt/dcjUBKB88XJByVRXtYMKSlQNbp0NszIc -OpcT0PeOkMa4pML+JrEYcm74vJDVs33dccpu7AMzYWOPzC7pO8JyUZGVyrbYD6df -MBwOflO51wGqxTUKukSyqZbtQ1AweH3aLi6EUe9QhfukOs92DcdcyY92608QmwAD -BQ//QqQ+4KO6gR/xMk6oARwLaNmmJzGFq4BfwdUeg8BFXtx5qwAnBi1+72BQuo4L -PcUpF1JwDj72Tj+cL/t0G/1dw868cIgNGUuCrKS1TjSV1GZUatXtVCL5Nu8VtHJ7 -o2fm+OFxXK2615a+wohbFhUGf65/9oFgetcLBZm+93Ha77X2pvTVMyex+eWGI2AA -572xZBE8b/F3cXE4lmZthrHgXXgI5IghpuLgyCA2jU5CgrW8p8kb7dpA7apHHBrB -FBlP4yWwy6dmfVUrO02OOQJouxP8ht4ehhrUOgU919K6edrzCWHshx14qVzE8Xlj -pRDn8Xf2fw/fCHbJwtgJ6BVpu3HfpLJSffakJ2HmsxmK3aZ1rscckyPPCaKE1yjL -L+tbWWHAChuyD9DfvH8bmrMWpTU53fytpfCDCkRg82wBwnOo64e9MsrdH4+9JFFH -bdBPnXnlzBTrlSeU9VpdbHVi0KZqAIuZ8ah8Wrn0Hb8MnjR9USNlOTA2Se5bq9Ec -rp/1FiIIefUmsM1HNQ8S7ayyCTBb2gIPjqjIT7B0qq6YJj3VJvnM6sxPLFhe0HcU -yODiBoJg9/RTphAHjoYYSr5EGD8B1J3hzYOqerlieDSlwOFRCaZbAA+WdCRQnP6T -XJFKAkuYfBUic/XU0IxuZ0tLrdrnobdcqYbngsD0CcGK9d2ISQQYEQIACQUCS4Kh -FgIbDAAKCRDzgq4Z9IUBgNIcAKDNXKZpZ1Wi50/47SiMGTLdLCpOsACgpEUd28qs -7uxYuJ6v1GM4HgANNFSZAQ0ES8fJbAEIALDsPCxAiHSQBtRfKqF+IoAo5NW7o6Iw -Z9/DbD3QaCunht1UqYJoReWtUtTGmEEzyZv7CwWRT6mr1hHrbVZej1ERhUiXQXEp -5Cj13JAFn9e+ZQyRrg06Ye0WDvie+SkkUINNQ3Oap9yN0qF8VXR3s/+LEpB5mvZY -/XExyOYBBjli9DaVSgc/jebxO2kHUuSPJgEKh134uRUaYLHYGinUtJuVu9us6bZs -qll0E+OdxE2hvvd5OkhcS628RocfvYvOnOSx9woz4zXxzJEf6c+wB33zEhtWObcm -biTh3mhDITYfA66v62uTYRzFOB2nXtBqm5Y/Ax+Fo2reu6dpfvHfjOEAEQEAAbQe -RXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+iQE6BBMBCAAkAhsDBQsJCAcD -BRUKCQgLBRYCAwEAAh4BAheABQJLx8v1AhkBAAoJEKeha0olJ0NqEEcIAJuX/kUa -RSonz0YCN5dGOkB4m10qG6OKvSJLgIxIieDt8KIZnR80kKkvlGlWJKjTdDuXfuyz -42j50kjwq0CnogP48zPBMl7kSC2/8oZQpIO84tgn1Yght+0Q5t6Q/4YGlY/b4puk -AOxzsSw13vSxjETEPeWLBUliotxHDuyjU8QgWn42L0DUOsFHk1okGeejY8fMc9NL -2eZlVib/gjfaqQtc5x1fRcSU7xU8OhWhsbqAQt/i/+8giZ2bEuH/DlZy1SkGFZYh -9AO9I5bZVkM6KGbunOFCh2vdA/8YMt+krrAjt7F67c+l8+2rBrTqzWlp7dp3XeZk -bOQF00qzUcSbzHqIRgQQEQgABgUCS8fLXwAKCRDzgq4Z9IUBgNl3AKCk3CkPlJnC -JtAhYmimwJ8hilKz5wCg1NApn2traDJlUGhJrVGyChksJpm0NEVyaWMgQmxha2Ug -KEZyZWUgU29mdHdhcmUgUHJvZ3JhbW1lcikgPGViYjlAYnl1Lm5ldD6JATcEEwEI -ACEFAkvHylYCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQp6FrSiUnQ2oK -5wf9GyVdcjI2OY0yRi5WsLb9qgUFQPEd5mWq5VZfLWegknT8nTMFZLCSLHw5WLH4 -yvtAgrtPeugovYYUi9NEMq/WrTWtIKG1DLx8C1V3h8NXmuOPxvCJOi2Ucqq8mrqs -CR93v2NvghS+sJh8DVbXLsTTOkgYSKgxidfsvdJUVa7Ah/V5xZEGeShOGdr2nRCh -4angL4KHFnKA8BCwypJwx0sc+1mIm74ejfF9YhoNfunY88eybTQaIa8BcCMVa5cd -Pbc6ExEIvbdbrlrs/m/Sr8TvRVMqh1URYSCJ6JzLYA2+gJ7+QKUjiK56y0LcrH58 -Xbmu9pbUnFc05sXprO74mS3FGohGBBARCAAGBQJLx8tfAAoJEPOCrhn0hQGACmEA -oNbpsjWyjPq0xSzk7VKrnjVnteLUAJ98iUuupMrW9OxQNMGKO2aeB2D/+NHaLdor -ARAAAQEAAAAAAAAAAAAAAAD/2P/gABBKRklGAAEBAQBIAEgAAP/bAEMACwgICggH -CwoJCg0MCw0RHBIRDw8RIhkaFBwpJCsqKCQnJy0yQDctMD0wJyc4TDk9Q0VISUgr -Nk9VTkZUQEdIRf/bAEMBDA0NEQ8RIRISIUUuJy5FRUVFRUVFRUVFRUVFRUVFRUVF -RUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRf/AABEIAQUA8AMBIgACEQED -EQH/xAAbAAABBQEBAAAAAAAAAAAAAAADAAECBAUGB//EAD8QAAEEAQIDBQQIBQIG -AwAAAAEAAgMRBBIhBTFBEyJRYXEGFDJCM1JicoGRkrEjJEOhwVNzBzSC0fDxRFTh -/8QAGQEAAwEBAQAAAAAAAAAAAAAAAQIDAAQF/8QAJREBAQACAwEAAQQCAwAAAAAA -AAECEQMhMRJBEyIyYQRRQmJx/9oADAMBAAIRAxEAPwDFycuf3yYdvJ9I75z4oYy8 -gj6eX9ZSyh/Nzf7jv3QgdvJcO1NDNysj/Xk/WVIZWR/9iX9RVcbm1IEdVmWBlZH+ -vL+spe9ZF/TyfqKCnB8UKOh/esgf/Ik/WVL3qcH6eX9RQf28Eh5obYcZc9X20n6y -pDJn6TS/qKr8gnL2taS40B1R3WWRlzn+vJ+opOzJo2an5EgaPtlYObxyGG2w99/j -0XP5mdlZbjredHQDkqY8dyC11s/tOyJ1NnlfX2iq7/ayQ1okeP8AqK44v8EhI4ci -q/pRvqO0Z7VZOrYyEfeKsN9pZzyLwfN5XC9vIBQeQmM0h+d35pf0f7H7n+nqODxh -uU3TLkyMd1710teTDy+y7TFyHTx/YduvG4pJmuDmvf8Amus4JxviOJToMgamig0u -5qGfHlh3KpLMvw6x02SwnXJJ52SkMqU/13/qRYs1/F4S6a8eYt71cnrOhycftiwy -gG6q0mOe2uGvFsZMzf60n6inOVON+1kPnqRW4wLdbRqb4+CHpgL9Mmph+sOQTTMn -yb3qb/Vkv7x2UTlzV9NJ+pDyYnQPokEHkRyKDqH/AIE07DSz71OeUz/1FN73MP6r -/wBRVbURzTarRoLHvU537aT9SiMmf/Wf+pAJHU7KJde37rRlk5U1/TSH/qUDlTn+ -tJ+Diq4OnlaYOA2RLVLL2yp/9x37oTf/AAomT/zk333fuhgVyS+HOpc7FKNUnWbS -Y3qwkK/NMACnAWFIJ/JRAoKGRkNx4y934LSdt5EMrOjw47e7veC5bP4pPmSEai1l -7NCjxHKdkTOc48+QVFdOGEidy2lq0/Ddp3TOcKOwQ0RsL3N1VTfEqpQ0k7qvZMsx -JJJLMIJXjkaTtmkDgQ42EJODRvmhqDuuj4X7R5eM5jHN7VgOwJ3Cu5EUfEXveyN0 -UpGqidly8Mxif2jW0r8fEpDJrMh0xi9J+Zc2fF3vF0Y5LeB7QcU4RMS2YvHLQ7cF -ddwv2l4fx2o5mNxcroej1wGaytTon6mj4gPlKpRyaHA7j0TXimc2X6kr1fIidD3X -Du+Kpat1hcE9p5NAx8s628gSVuupwDxu13IhQmNxuqNmzagfxS1EpjsOf4KJNpyJ -XXNRux1UdVlMTSxT6k2vdMDajY9FmBy698n/ANx37oQ5BEyj/OTbf1HfuhjYLHiX -I+qdordNQu06DHG6kmab6KVrCYubGwudsAuc4hmdvLsb+r4DzWhxXJpnYR7vdzro -s7GxbOmxQ+kP+Ffjw/KedZ/uz5LeQfU9UKaPQ7SAt+SGodTaA6IMOLrIcGW0b6j4 -q2k/pnMxo8dofkDU7mGBV8jIdO6yA1o5NHRaGVA57zq2/wAqjNCGk2Q0eHVFpVZJ -OR4ckyAkknolFZjSP5BYZLQUqVyPBkkPcFjxRTw1+m6/NDZphVSGQxPBG48D1RJJ -WPJc1mk+R2CL7k9g3CE6Ijml62rMLoDWbJBO6iiGNDIpNEbLPUmPLHWF2PAuKOli -ED9/BcWtng8tGgacDaly49bPhd9Ove5urlRTFwUGS9pGCfW0r2UYNiWpIkKFgdEr -sUmKkarYKJNhPabmfJDbC5Ubfe5rbZ1u/dC93aeiuZI/mpfHW791KOFpFlamih7s -LsOIS91d0cCrzoqcn7OuizRR7CQDYWPJQcHRi3AhaIYqHE3kaY28yjjju6DK9MKS -S3veK1E0p45ZEwN2JJtyBkSxwucNqYNvNZbs1wJr02XX5NI+t9xZKRqOmMf3Qszi -kMTA2ADSOiwJMuaYBrnGhyARsTGdO8DS5yP1oZhsR0080vc1ElSbw5xBdM6338I3 -XQQ8IeyMVHpvkK5rVxPZ1zmgzD8E3d9H5jjTw58u3hyAVrG9nnyVbTuu8h4PjxfI -CjMx2R3TaR+RjkYvZhoALm/gjHgjA8RN+EfEf8Lp5ALqvRBdGGNPnzKFkPusccNh -ibTByVV+O1wPdpaz9ifNU5nsaCL3SmjKlgY0G1lzY+p2lo38P+62pC6Ruw0jxVcw -BjTpH5qVUjIkx6FfuqUsRDtlsTN21DoqUga6Unok8GzcZnJWsGURzC+SDO3TIQos -NOVLPqOaftydthTdrGO8rTuaxOCz6otBK19S5ZNdKVIkDwTWo3vuldJiHDhzUrv1 -QwUmuulgauRtlS/fP7pRuLeinOwnKl++f3SERPqgc7XaijNjDmn0QtFJ22wc6Qow -7Gj4VhcdnbjZLpHG6Zst0ClxXtjIRxBkYNN0WQqcX8iZ+MafKdLZPzOJVdkbpDTQ -pRxOke0AEgrp8Pghi4ZLI9v8QsPPoV0elkZ/CODPzA0gEukO1dAu54b7Pw4YjOiy -3c7cyj8C4U3Bw4tTe/pFreiY0C63VccZ+TX/AEqQYLRJrcLP7K1oANUjhoB5KDmg -DZUhFZ8YpCfGD0R5DXPkhaibsIDNqlN1Uhyhv5dUd4Djsq8mx3CSmilKGkAoL4mu -bYViVoQi6h6dEujs6ZtEjTsqj222wr85v/Kpv29Emjs+bfalR7M6HOWjkR6tggys -0sqlKwWRnNt9gKlyK18tnd5fKslwpyfFDOdtXg02iZrfE0um5DmuQ4XvmsB5XyXX -6XVy3Us5rIfwRdf/AOprTEnqE2qkuintNdc0if8A0mJW0DpJWgZUv3z+6k1hKnMw -nJl++VNpLWc9vFJaoHVP0p3QXaK1ocbpE5DdKKjoorz/ANqXF/G5GnpQH5L0Z1Od -svPfakBnHnmtqH7K3H6XJe4Lw+OfsmkX2e/4rtG4TXwRx9NQtct7MmxRXbwigOS6 -sITtYYwNGyIAOiTBTfJK9KrBEaKUHmlLkEKSxQHVNsNIPbq67IEgoKw4ah+6G8AN -8kGvSlffoppRYUnDvqL7AobpBUZNrCqvPc53SvSNB581VkZpYeSWqYqEo3tVX7FX -pAfBUZUlOAWjoeSrSCwVZeKKDJRBSWMz5hqYQsmRtOefBbzmWKWVlsId2YG7nJcb -2TKbgvAomyZ7NRquWy6+qWRwHCZG4PNGQDfyW24JLl9UlmgC2lFwRtJcaCaWPQdP -90dgr6RdKJaB8KKRvumLUwOkllrIlH2z+6gZNfoqOPwyScSS+8ytc6R/X7RRhwvM -Z8GZf3mqN+d+qaq82YAbBMZS7ZVPc+Js+aF/9k9cRZ8WKx33XIdMtabC4L2wbXGL -+yF2fveSz6TBlHmN1ge0sbcyJswilY9vxamVsqYdVgfZh2qURtPmu8hB0BcH7KQG -LiW533FL0Fg7u3iuvAosZJBF7Kdb+qHGyijtq1QKQFqEkdope0cz+SbVY33R0G1Y -gt5qtIT1tW5ias0q8jaFrCru2cmqhYPNM69SINOkWsyq5oPXdBkjVx4F7KrIQLSW -GlZ87QNis+ZgN+C0Jnc9lUNczukuJvpnyd0oBN7K1NXiqrq6KdmjSoMFLM4nGW50 -enmapajBXVElxmT5WOXD4RZ/wo2/N21m17h0DY9WnfxPmrjhuliMDMVobW9kkDmp -uHghh1O08vUGlTcO1AF8kzGgFEI71go7KqSRljqKhVrpsiCN0LO42vBZ0vDYj8Nt -QnJPyHy1cZumOvtH90dreqZjdNiuRRQFzrwwDbpFa3/0gSRML7I3UhCBVF4/FCis -hgO6DnYnvOI6ItB1kAp2seOUjvxU7maC4SB1eIQkFyMzI+H+0Jc0Bsb5NJPQLp2/ -D5LlPaoOZjCWqa6Vmo+Ctx8TlZEzH1CXU3U2Txb4r1uOakQy6bUvEGRjY2ht4zGw -1d2sGftN3ao69SVly5UtkNkaTy+FVR3b47dvFcd7fjAPmpDOjPJ4IXnEkfEJTqa+ -Nt+LqQ9HFYndyWN3kHpg+nprslhG5DkJ84fyXAwcW4jjbTQO9Wbrd4bxaLLkEZcW -yfUdsVv7NttyPAPkomUclF4fuS0/iqGRO6JnWkorck4ZfeAWdLnMF24LEzuOmy2I -Oe7lsFjyjiGWbjiLR60sFrfyuLwjuh+/WisuXi9OoX6qjHwnLfJ33NDz0L1YbwGe -U958A08wXla4ZX8E/Vxn5DfmufIXO1NHiExklDu66wVHIYzFcI+1ikI51exTtje8 -cmOHqo5xbHJYilJ3dzCLHPJO57tNaAA3/ugMgPzDTfJSwHl+Rm6TqjY1qhlirjXU -YcbjhxV9W1J3O1PhzT7lCfsqeTprzSeUuX8lXmmLzRCclQJ28k+iOkB14Ubh9UFA -cKU8N2vhsf3VF3JctnZp40XipH/eKTdkpBUz/vFO3cpVTSC3t9QrQ5KpI4CQWaFh -HZIw8nN/NAVgBDk7rH+ifVyoppd43oCx+LcNj4jAcWWwx1Gx5bqticKBysmHuDs2 -sDdLNIArwW5mN09g7qU73Bjo5BttpK9Thz+sdockcvncJlumk6fJc3Jw7NOZ2cdx -Mvn1Xo8z9X4rJysYSOsjdVpJ/bjeIez88De2ilfM0jveIPooYHDZTKZZg5rG9CKs -+i6aWCYfDJyHVVHRSk2ZPyV5nNJXj73tSLWucWkkDxKhkMdAyJ8e8msdket2rbWa -X6juq+XivyOI4VOIc6QAADoClv8As003pp+OaKOHAKH1lmZ2RxZuM/tMaAN08wu2 -ySOy3G4XMccJMDw01Y3U8sv6NMNuFizZJGCPvOa3k1W8LKcJBbHUOe6x2RSxOLm3 -bTRV7EmErqkbuOqbDLYXBq8Qj97qbHl0vrdpVfHZLjkvnmvwAKO2KORoLXOFeCHJ -i+f90+XLYTHhxrInxRJk6ozuTddFqY0AbW6eLF0vs7kq6yGlyV0dTwHNiLsUiN1O -BGn1tS4Zjy4vCsyLQxzpHN3DdwfX8Ubs7YS5tj0Wlwph93mdtzU+S9Gx6ux4P4cM -bT8rQEp3h7hQSKG5TLe0DsFHSTyTnYosTTRPRG9Fa/DCXcPA8LCmRQQeEOuCRvg5 -Hrdc+Xpp4uyH+NJ94pDZNKP40g+0U9+CWqFoDzuE4gaUmm0VqBkRjt6HdS7JzYnN -G6I3dFZshawGY3Vih31SlEwSx6Xb2EeVuqB7fsqvjmmhdv8Ai3rRczS4b2tPZuvy -KzJRNG46o79FuB9bFQexrmmhuu3qpfLn5JA/myj5hVJIA4jw6rbEetzg5gFHoiR4 -rOehGFuFc+MS3Dax4BaOHw8B/vErac3Zg8FqSQtYO60BQIBYGgpbRxxPMdUO/Nc3 -xXdrl0cjO6PGlg8UYXMukmW9K449uLlga2RxrZ3NM3h2s62GnK1NQcdXK1YwmAnu -mwkwrZ4/kCKKaMUWfiEYsc7otZmLdbfgj+5NA3AVbtKRhsiJPe5I1hp3Wm7HaBsN -wqWRFXRJejzECV9s0jl0V7hIccaWh13WUXDla2eEOEWM4n5iocl6HzpN26g4qbzv -shuvdTlJQ3JmzOY2q2TuQneqYGvwOftHTtArkVfIp9eaxeBGsyVp+Zv+Vtu+IqHJ -6OPizIbmk+8U5BI22UJTU0lfWKm1ySqoD3kWKY5OH5A5xtP4pNcRId/wR2u2Woot -mmHOD+6mzKcTT4XN9U90me62j1SitXYVJh0ir5bUrNqo62zPA8bXV/i3WWi5eLUd -k7q2ANFHms9rj0tFExDbXpQiT2tahiZrOZVbIyqG5Wcct0s3ZsF78kS1o5OT2o0t -6poGE81ExmFgkeOm6lj5kT3bHryU7DS9LMsREW6xc+MujK6J72SRgLIzwwMcbCNn -QTLtw2dBchaAo8PLoJtJ68ldypYzMSfyQQGvksbAKWM7UuW424ZWmrKua2ub5LAZ -OYzfRXYcku2BVvUVqQAWfBZ2TR3ViWTbmqEziUmUPKqPbqeAtfGbpx27rNA079fN -akY0xNHkuTP0bTu3CG7elZbFrbaFNFobYO6WUmldyEUR390FxsJitHhVMzGVzLSF -sv8AjXMcPkLOIwfepdM8kvUeQ2I8h/jSb/Mf3Ts3UJHfzEn3ik0qdViTT/E9UYGy -qzPjcUYOQ0IoNqJ20eqV0ExNaPVYVgFV5W1Lq+sihyhLuz0VOLL5ylDKbhAFqFNN -oHoiRvA2Qc9mqM6ea9WOZm5GQ55oKxgRthbqI75VTHx5C7VIbN8grjpmxUH931TB -ctrjsjV3Rv5Kq9rRY5b8vBOzQ892Qc75pSteWctR8kD/AFro0uXIyLu9Fi5/EJJI -y3qrWRiTyd0FyhNwl3Z3YJW/Bbe3OOBLtzukJCB5q9kYZjdsqWTJBjM1TSNF9FPW -lPrZ2SOKIwvabB3WbBxD3mcQ4cTnXze5buPjaeY1FNCZFFI6VtFvJQkYWkrVx8bs -2OcQLKzc5w10NglybHsCIa5Gt891pk/3UOFcOkyY3yxjvXTR4o00E0Dqkjc31C5M -7qnPDJp7pKjO9tEXzQCoOKWQEHHYoTj6fgpuPNCJ2TFNG/s8mJ3g8Lq3ndcg/Y6l -1odqY0+ItT5Rx9GmdWRJ94pgd1GZ38xJ94pNPNSsWibDZJRQ6gq8Z5+qMNkKKZOy -RNOYFHVQS1XIxYRwU7ioWiRRSTvDY2Fx8lpLb025IBpLXagDXipE3suimxYMThHZ -SgaiLJ81zjXdGr1uOWYzbjmcyyukIoqlNjZFkxI5mGORocCpM8VMG/8Aun2fTieK -ezOTBmCfDme0g3pvYrYwcvHMTm5rHwy+Nlbr2iRu/NV3wNO7mNcE0ayZehCDHfA2 -SLiBbYvS6iqb9L4C6TiDWtBPw0iT8Px3vvTpVV/D8dvykoj+n/2YOTxDFZqaO0lc -TQcd1jOwMri0jXzBrI27CgurysXHaGmKMX6KuG6edBSyh/jGdg8N4dFhRnQ3fxWr -CwEtQYmhwsggI8cgb15LJ3tay5GsgpvOlzWZMGMfI7fSCVpZuV2ndCwOIuuCRoN7 -FTzpsZ+HReyXE/fcIONB7HbgLrHSWOQLT4rzn/h68mbJj6bFd8x4b3UvNx/UmSWG -WsrClwsSfd8DQfLZUMjgkcguB+kjo5aOrx5hPr62uf4sP9OXyuF5UAJMWpv1m7rO -ftsRS7oO3QMjAxMz6eIX9ZuxW3Y3/jhpdwunxn68OF1/KFGf2VY+/d8j/peP8qxD -w7IxsRkbm6iwV3TaXOywZ6eYXky/eKQI0bJpzc8u/wAx/dLYN3UVYlEe7+KIOfNB -jNhW4MPIyXfwo3O8+iaY23pt6Q5okcUk8zWxtLj5LZxPZ7cOyHavshbmPhxQMDY2 -BvorY8F/5JZcsjFw+BOfTsh1DwC2oMaLHAZEwNViqCiPiJPgujHDHHxy58uWTmfa -bO7MlvysbZXC8K4hkyZ75Hu/hyH4PqhbvtZkES5HTali8GiBfqXVepo3FOtujjfv -5Iu3Nu3qqDXkOKtQvDhz3CR0Y0Ugud5Ji8gclOrFJiAQjBsVJhIeQCqyiRoHdtaD -h4k0gSv1CuaIfNZs0ZLfXyVIw6n78loTE3V7IEZ1yafNA0haQyJU5ZgBY5q5nSBg -DfzWNI8vfz2SUPDPk89ys3NA7B4vor9XzP5LN4g7TC/0SWbHHrtr/wDDmDbKmr5g -0Lr3nvlZPsVh+6cBY8inS99a7RZJXRcf2yOK391qQOoeaRJCk1tEbKZYNPJL+m32 -gDfVSDr5dU4j3pLsz0CS8RpyJB2yI2SkIDxCkCPyUrxQ05GVN/zMv3ireDwyfO+j -bTfrHkr/AA/gpnyXzZAIj1Gm+O66iDGbGwNa0Nb4BSw4d95K58uvGVhez+Pjgdpc -r/PkthkDWAAADyCJpAFBOBa6JJPHNlyWk1oCkkKT3sgQxCbx9FKtlH5vwWZ5l7YA -xzyA/M4KvwZg7K+qv+3MdTB32gqnAqMYtdOXbo4/4LrmaTyTEFrtTTuP7qzNHtYQ -OSGj72swTgt3Ri3VazXHQdQ2R4cxtCzv5IaPKO7Ybqm9tkkKw6YHmVVklGva0dG2 -rzxECyqjB2Ly7wV2WUabO5WPm5QLtLNktjfQOZkGZ5VRo5pbu3UgKFUlkL6g41ss -6eB2bmwYbLuVw1eQWhIA1urkAtL2O4acnLl4jK3b4Y78E3Hhul5MvnF1UULcbCjh -btQpOxlNU5e9JQ5BTaxW9ri2g1tOCLoTtZu1GbHsjIW0AM3S7OuSPo80iKrdYAtJ -9VHswTypEITcil+YO3URxgOKOGqIq1NctpyApJOmQY6SVJLCcjZDJ/iBEJ2Qn7EH -wWgVxHt3BqZqHqsLgj6FFdl7X45lxdXTkuC4Y/s36Sd+S6p3Irx3qx1TwHNtVHXa -sQPD40OSOijo0oThY3VGVhabbYKvH8kGRl7n+yU6gciVooglD96e02SQizQknuml -VfA7q4lAdhT5L3tpuyq6C4b2bVz3fZTZj9Sl021Jsbr3CmYtO9LQEFBVZz2MJL3W -UdDtnSQOzcmLChHfldR8l6Ji4cfDeHxwxgDS2gsn2O4EWB/FMptOf9ED0atnKeZJ -duQVceo5eXL6uoExpdurEcdpo41dig8k0RtV3Np7Qphloz47yPQJ3M6dVgArdQIR -yGs6qs5+t3dWZB259UzW7ojYXVaK2OufNbQOkPM+qmkkuFUxT8wkksxugSpJJFvy -kQhyckkkIbJmcfjEnDnAry8js+ISNHLVaSS6cP4H4vXQ4ryGBWntsc0kk56qu5qD -xaSSxorPFWhadykklvrG0AkhHZE0gJJIF/JnsAsdFV4fhs4nxyHGmJ7K7IHWkklo -pfK7/OrHxxHGA1oFCllRN1GyUkk+PjgXoIxQV6NgASSWyBXr+YkKeTusukkkWZzn -GSTSTQtWWQNaPNJJMXIRzQKACYAeCSSDP//ZiQE3BBMBCAAhBQJLx9gdAhsDBQsJ -CAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEKeha0olJ0NqedoH/2McrxGkPgq988QQ -rBbST5Pz5WjsvNpRksocimHaRDvzop1tzvyTRQt1QHlHmIt3FEgzioNmfT0yovC0 -F/VXjZrMczWnYjCCFATJWhQMgoH/fTUTJVTLMjnlsXOOr+33JGzD0nsQIn3jCCsX -fe7VIMyOiwX/ngron1YluGOvqiNZ0vEeJXuB3mimCe9wEwlLVgmu5PO7hitg31eK -N8PJZuExGqv3VyYYYuwAOydDw8JbEZB59fE2W3EcOaFcMz2GlPEz+VyGfARaGrQD -VDQyr7kQ1kX4OA+yAx2dWmzM8enEw/OjgWDiSkpm6hhIW7q+E1Ip2rTiU9lWHY1B -9P/e/pu5AQ0ES8fJbAEIAMaQwXMWOabKoASfkP4y3g/M907w1q2wPDxCK3dGbO76 -RTKDHJhvPnZk7jRZS7sSBDmQNM55E+dM53trBYNByXWAYFeCuRGkCVDSXRF47ntD -R6CUXJ0syLluTBiF9j5PAM8yHdo4/moFeSbiohhKzFvwD6LTQ/vYCoVv1DvfB4b9 -+XFI8CkthATmpYZJeM6Rcm/jY0ZLqjqB3hGYPoCnl7wAKjWVIw99OkbNeW3hpGQF -+9s0J82xCKQtnMVgMttCAoEDfcEN5Xq80n0KPRKAQY6RjJ53gjoBtTSQjLWEcCbW -vr6wCcR0gqNweLfFYf9Q+tlbl+UzwqqjXg5MOQj0S2UAEQEAAYkBHwQYAQgACQUC -S8fJbAIbDAAKCRCnoWtKJSdDarTfCACZEUYN5fNznw1fQ2sOKNS7TPHcuez+pn1W -uRJZs1kEWOlYpp4vV91V4ThMMaYjmZFEixK2NDNzZH1v7ZUFSGUCpjWcCIEO/RCe -371wuK4QgJ5TCXKXjZh3CmZjQQtzLn67rDOYr+PGtg6nNcoPAurmThf6GYa5I1ZY -A3eAeImqYlk+SEU9QijNlQJ4RzvqlL8hQ3vY1+mtmYUOnr9AOMMW19Lf1sdJZcpV -lRupow+qWP/PpSCTTbv/cZSMcevxaR4vV7NZ6lgNjtZKhfB+gAvZRdiwwCv+5Sdx -IqV+O8CuGx6PRLjNuqKbZljpLxpFbD3gndtK8lH43BuzfgY9MPg+ -=FC1k ------END PGP PUBLIC KEY BLOCK----- - diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index daca217..b88848e 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -1,20 +1 @@ -# glibc-profile is a devel package -addFilter("glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") -# glibc is not a devel package -addFilter("glibc\\..* non-devel-file-in-devel-package") -# getent deliberately uses gethostbyname -addFilter("binary-or-shlib-calls-gethostbyname /usr/bin/getent") -# We do need to keep the symtab (see comments in glibc.spec), so this is intented: -addFilter("unstripped-binary-or-object") -# ld.so is special: -addFilter("shared-lib-without-dependency-information /lib.*/ld-2.*\\.so") -# Handled via glibc_post_upgrade: -addFilter("postin-without-ldconfig") -# We will not rename glibc to follow the shlib policy -addFilter("shlib-policy-missing-suffix") -# libpthread and libnsl call exit - this is fine -addFilter("shared-lib-calls-exit") -# The man-pages package contains a number of man pages for programs that come -# with glibc, therefore do not warn about them -addFilter("glibc.*no-manual-page-for-binary (getent|iconv|ldd|ldconfig|locale)") -addFilter("nscd.*no-manual-page-for-binary nscd") +addFilter(".*glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") diff --git a/glibc.spec b/glibc.spec index 1ab4931..39d8d14 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # -# spec file for package glibc +# spec file for package glibc (Version 2.9) # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,350 +15,181 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +# norootforbuild -# Run with osc --with=fast_build to have a shorter turnaround -# It will avoid building some parts of glibc -%bcond_with fast_build - -%define crypt_bf_version 1.3 -%define build_snapshot 0 - -# INCLUDE glibc$flavor.spec.in -%ifarch i686 -%define flavor i686 -%else -%define flavor %nil -%endif Name: glibc -Summary: Standard Shared Libraries (from the GNU C Library) -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: System/Libraries -# END INCLUDE glibc$flavor.spec.in - -%bcond_with all -%define build_main 1 -%define build_utils %{with all} -%define build_testsuite %{with all} -%if "%flavor" == "utils" -%define build_main 0 -%define build_utils 1 -%define build_testsuite 0 -%endif -%if "%flavor" == "testsuite" -%define build_main 0 -%define build_utils 0 -%define build_testsuite 1 -%endif - -BuildRequires: audit-devel -BuildRequires: fdupes -BuildRequires: libcap-devel +BuildRequires: gcc-c++ libstdc++-devel BuildRequires: libselinux-devel -BuildRequires: makeinfo -BuildRequires: pwdutils -BuildRequires: systemd-rpm-macros -BuildRequires: xz -%if %{build_testsuite} -BuildRequires: gcc-c++ -BuildRequires: gdb -BuildRequires: glibc-devel-static -BuildRequires: libstdc++-devel -BuildRequires: python-pexpect -%endif -%if %{build_utils} -BuildRequires: gd-devel -%endif -%if "%flavor" == "i686" -ExclusiveArch: i586 i686 -BuildArch: i686 -%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -%endif - -%define __filter_GLIBC_PRIVATE 1 -%ifarch i686 -# For i686 let's only build what's different from i586, so -# no need to build documentation -%define build_profile 1 %define build_locales 1 -%define build_html 0 -%else -%if %{with fast_build} || %{build_utils} && %{without all} -%define build_profile 0 -%define build_locales 0 -%define build_html 0 -%else -# Default: -%define build_profile 1 -%define build_locales 1 -%define build_html 1 -%endif -%endif - -%define build_variants %{build_main} - +%define run_testsuite 0 %define disable_assert 0 %define enable_stackguard_randomization 1 %ifarch ppc ppc64 - %define optimize_power 1 - %ifarch ppc - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 1 - %else - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_tune power5 - %define powerpc_optimize_cpu_power4 0 - %endif - # We are not building Power CPU specific optimizations for openSUSE. - %define powerpc_optimize_cpu_power6 0 - %define powerpc_optimize_cpu_power7 0 - %define powerpc_optimize_cpu_cell 0 +%define optimize_power 1 %else - %define optimize_power 0 - %define powerpc_optimize_base %{nil} - %define powerpc_optimize_cpu_power4 0 - %define powerpc_optimize_cpu_power6 0 - %define powerpc_optimize_cpu_power7 0 - %define powerpc_optimize_cpu_cell 0 -%endif # ppc, ppc64 -# glibc requires at least kernel 3.2 -%define enablekernel 3.2 -# some architectures need a newer kernel -%ifarch ppc64le -%define enablekernel 3.10 +%define optimize_power 0 %endif -%ifarch aarch64 -%define enablekernel 3.7 +%define powerpc_optimize_base_cpu_power4 0 +%if %{optimize_power} +%define powerpc_optimize_cpu_power4 1 +%ifarch ppc64 +%define powerpc_optimize_base_cpu_power4 1 +%define powerpc_optimize_cpu_power4 0 %endif -%ifarch ia64 -%define enablekernel 3.2.18 -%endif - -Version: 2.26 -Release: 0 -%if !%{build_snapshot} -%define git_id 1c9a5c270d8b -%define libversion %version +%ifarch ppc +%define powerpc_optimize_cpu_power5 1 %else -%define git_id %(echo %version | sed 's/.*\.g//') -%define libversion %(echo %version | sed 's/\.[^.]*\.g.*//') +%define powerpc_optimize_cpu_power5 0 %endif -Url: http://www.gnu.org/software/libc/libc.html -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if !%{build_snapshot} -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz -Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%define powerpc_optimize_cpu_power5_compile 0 +%define powerpc_optimize_cpu_power6 1 +%define powerpc_optimize_cpu_power7 0 +%define powerpc_optimize_cpu_cell 1 %else -Source: glibc-%{version}.tar.xz +%define powerpc_optimize_cpu_power4 0 +%define powerpc_optimize_cpu_power5 0 +%define powerpc_optimize_cpu_power6 0 +%define powerpc_optimize_cpu_power7 0 +%define powerpc_optimize_cpu_cell 0 +# optimize_power %endif -Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring -Source3: noversion.tar.bz2 -Source4: manpages.tar.bz2 -Source5: nsswitch.conf -Source7: bindresvport.blacklist -Source8: glibc_post_upgrade.c -Source9: glibc.rpmlintrc -Source10: baselibs.conf -# For systemd -Source20: nscd.conf -Source21: nscd.service -# crypt_blowfish -Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -# The sign key uses MD5 which is no longer accepted by gpg -#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign - -%if %{build_main} -# ngpt was used in 8.1 and SLES8 -Obsoletes: ngpt < 2.2.2 -Obsoletes: ngpt-devel < 2.2.2 -Provides: ngpt = 2.2.2 -Provides: ngpt-devel = 2.2.2 -Conflicts: kernel < %{enablekernel} -# bug437293 - handle update from SLES10 on PowerPC +License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later +Summary: Standard Shared Libraries (from the GNU C Library) +Group: System/Libraries +Obsoletes: ngpt <= 2.2.2 ngpt-devel <= 2.2.2 +Provides: ntpt = 2.2.2 ngpt-devel = 2.2.2 +# bug437293 %ifarch ppc64 Obsoletes: glibc-64bit %endif %ifarch ppc Obsoletes: glibc-32bit %endif -%ifarch armv6hl armv7hl -# The old runtime linker link gets not provided by rpm find.provides, but it exists -Provides: ld-linux.so.3 -Provides: ld-linux.so.3(GLIBC_2.4) -%endif -Requires(pre): filesystem -Recommends: glibc-extra Provides: rtld(GNU_HASH) -%endif -%if %{build_utils} -Requires: glibc = %{version} -%endif +AutoReqProv: on +Version: 2.9 +Release: 12 +%define snapshot_date 2008111711 +Url: http://www.gnu.org/software/libc/libc.html +PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -%ifarch i686 -# We need to avoid to have only the src rpm from i686 on the media, +Source: glibc-%{version}-%{snapshot_date}.tar.bz2 +Source1: glibc-nptl-%{version}-%{snapshot_date}.tar.bz2 +Source3: noversion.tar.bz2 +Source4: manpages.tar.bz2 +Source8: nsswitch.conf +Source9: nscd.init +Source10: bindresvport.blacklist +Source11: ctype_b.c +Source12: glibc_post_upgrade.c +Source14: powerpc-cpu.tar.bz2 +Source15: glibc.rpmlintrc +%if %_target_cpu == "i686" +# We need to avoid to have only the srv rpm from i686 on the media, # since it does not work on other architectures. NoSource: 0 %endif # - -### -# Patches are ordered in the following groups: -# Patches that we will never upstream or which have not been looked at: 0-999 -# Patches taken from upstream: 1000-2000 -# Patches that are going upstream, waiting approval: 2000-3000 -### - -### -# Patches that upstream will not accept -### - -### -# openSUSE specific patches - won't go upstream -### -### openSUSE extensions, configuration -# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 -Patch1: glibc-2.14-crypt.diff -# PATCH-FEATURE-OPENSUSE constify crypt_blowfish -Patch2: crypt_blowfish-const.patch -# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de -Patch3: crypt_blowfish-1.2-sha.diff -# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library -Patch4: crypt_blowfish-gensalt.patch -# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de -Patch5: crypt_blowfish-1.2-hack_around_arm.diff -# PATCH-FIX-OPENSUSE Fix path for nscd databases -Patch6: glibc-2.3.3-nscd-db-path.diff -# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de -Patch7: nss-db-path.patch -# PATCH-FIX-OPENSUSE adjust nscd.conf -Patch8: glibc-nscd.conf.patch -# PATCH-FIX-OPENSUSE do not use compile time in binaries -Patch9: glibc-nodate.patch -# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de -Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE handle old glibc binaries -Patch12: glibc-2.3.90-noversion.diff -# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de -Patch13: glibc-2.3.2.no_archive.diff -# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport -Patch14: glibc-bindresvport-blacklist.diff -# PATCH-FIX-OPENSUSE prefer -lang rpm packages -Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE Use nscd user for nscd -Patch19: nscd-server-user.patch -# PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined -Patch21: powerpc-elision-enable-envvar.patch -# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined -Patch22: s390-elision-enable-envvar.patch - -### Locale related patches -# PATCH-FIX-OPENSUSE Add additional locales -Patch100: add-locales.patch -# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) -Patch102: glibc-2.4.90-no_NO.diff -# PATCH-FIX-OPENSUSE -- Renames for China -Patch103: glibc-2.4-china.diff -# PATCH-FIX-OPENSUSE -- Add C.UTF-8 locale -Patch104: glibc-c-utf8-locale.patch -# PATCH-FIX-OPENSUSE -- Disable gettext for C.UTF-8 locale -Patch105: glibc-disable-gettext-for-c-utf8.patch - -### Broken patches in glibc that we revert for now: - -### Network related patches -# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv -Patch304: glibc-resolv-mdnshint.diff -# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 -Patch306: glibc-fix-double-loopback.diff - -### -# Patches from upstream -### -# PATCH-FIX-UPSTREAM Fix leaks of resolver contexts -Patch1000: resolv-context-leak.patch -# PATCH-FIX-UPSTREAM Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) -Patch1001: dl-runtime-resolve-opt-avx512f.patch -# PATCH-FIX-UPSTREAM Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041) -Patch1002: libpthread-compat-wrappers.patch -# PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) -Patch1003: math-c++-compat.patch -# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs -Patch1004: remove-nss-nis-compat.patch -# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) -Patch1005: eh-frame-zero-terminator.patch -# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) -Patch1006: ld-so-hwcap-x86-64.patch - -### -# Patches awaiting upstream approval -### -# PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) -Patch2000: fix-locking-in-_IO_cleanup.patch -# PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) -Patch2001: ldd-system-interp.patch -# PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) -Patch2002: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) -Patch2004: fnmatch-collating-elements.patch -# PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) -Patch2005: nss-files-long-lines-2.patch -# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2006: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2008: reinitialize-dl_load_write_lock.patch - -# Non-glibc patches -# PATCH-FIX-OPENSUSE Remove debianisms from manpages -Patch3000: manpages.patch +Patch0: glibc-2.3-SuSE.diff +Patch1: glibc-2.3.90-noversion.diff +Patch2: glibc-2.3.90-fnmatch.diff +Patch3: resolv.dynamic.diff +Patch4: glibc-2.3.locales.diff.bz2 +Patch5: crypt_blowfish-glibc-2.3.diff +Patch6: glibc-version.diff +Patch7: glibc-2.4.90-revert-only-euro.diff +Patch8: glibc-2.3-regcomp.diff +Patch9: glibc-2.3.2-revert_tcsetattr.diff +Patch10: glibc-2.3.1.localedef.diff +Patch11: glibc-2.3.2.no_archive.diff +Patch12: glibc-2.3.3-amd64-string.diff +Patch13: libm-x86-64.diff.bz2 +Patch14: glibc-2.3.90-bindresvport.blacklist.diff +Patch15: glibc-suse-note.diff +Patch16: glibc-2.4.90-no_NO.diff +Patch17: glibc-2.3.90-ld.so-madvise.diff +Patch18: glibc-2.3.3-amd64-s_ceil.diff +Patch19: glibc-2.4.90-mdns-resolver.diff +Patch20: glibc-2.3.3-execstack.diff +Patch21: glibc-2.4-china.diff +Patch22: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 +Patch23: glibc-2.4.90-nscd.diff +Patch24: glibc-2.3.3-nscd-db-path.diff +Patch25: glibc-2.3.5-nscd-zeronegtimeout.diff +Patch26: glibc-2.3.90-langpackdir.diff +Patch27: glibc-nptl-2.4-nofixsyscallnr.diff +Patch28: crypt_blowfish-1.0.diff +Patch29: glibc-2.5-ppc-llrintl.diff +Patch30: glibc-2.6-configure.diff +Patch31: glibc-2.2-sunrpc.diff +Patch32: glibc-2.8-getconf.diff +Patch33: glibc-2.8-dlosinfo.diff +Patch34: getaddrinfo-ipv6-sanity.diff +Patch35: glibc-2.8-revert-nscleanup.diff +Patch36: ppc-atomic.diff +Patch37: glibc-2.8-clone.diff +Patch38: glibc-nss-deepbind.diff +Patch39: glibc-fix-nscd.diff +Patch40: glibc-compiled-binaries.diff +Patch41: glibc-selinux.diff +Patch42: glibc-getgroups-fortify.diff +Patch43: missing-include-build-fix.diff +Patch44: glibc-no-unwind-tables.diff +Patch45: glibc-2.10-nscd-meminflight.diff +Patch46: glibc-2.10-nscd-prunerace.diff +Patch47: glibc-2.10-locale-tuesday.diff +Patch48: glibc-2.10-nis-hosts.diff +Patch49: glibc-2.10-unsetenv.diff +Patch50: glibc-2.10-dns-fixpack.diff +Patch51: glibc-2.10-dns-no-gethostbyname4.diff +Patch52: glibc-2.10-ppc32-setcontext-fp.diff +Patch53: glibc-2.10-nscd-gc-dataofs.diff +Patch54: glibc-2.10-nscd-nostack.diff +Patch55: glibc-cpusetsize.diff +Patch56: glibc-ldscript.diff +Patch57: glibc-mtfsf.diff %description -%if %build_main The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math library, and the POSIX thread library. A system is not functional without these libraries. -%endif -%if %build_utils -The glibc-utils package contains mtrace, a memory leak tracer and -xtrace, a function call tracer which can be helpful during program -debugging. -If you are unsure if you need this, do not install this package. -%endif -%if %build_testsuite -This package contains the testsuite results from the GNU C Library. -%endif + %package info +License: GPL v2 or later Summary: Info Files for the GNU C Library -License: GFDL-1.1 Group: Documentation/Other -Requires(post): %{install_info_prereq} -Requires(preun): %{install_info_prereq} -BuildArch: noarch +PreReq: %{install_info_prereq} +AutoReqProv: on %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not complete and is partially out of date. + + %package html +License: GPL v2 or later; LGPL v2.1 or later Summary: HTML Documentation for the GNU C Library -License: GFDL-1.1 Group: Documentation/HTML -BuildArch: noarch +AutoReqProv: on %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is partially out of date. + + %package i18ndata +License: LGPL v2.1 or later Summary: Database Sources for 'locale' -License: GPL-2.0+ and MIT Group: System/Libraries -BuildArch: noarch +AutoReqProv: on %description i18ndata This package contains the data needed to build the locale data files to @@ -366,12 +197,14 @@ use the internationalization features of the GNU libc. It is normally not necessary to install this packages, the data files are already created. + + %package locale +License: GPL v2 or later; LGPL v2.1 or later Summary: Locale Data for Localized Programs -License: GPL-2.0+ and MIT and LGPL-2.1+ Group: System/Libraries -Requires(post): /bin/cat Requires: glibc = %{version} +AutoReqProv: on # bug437293 %ifarch ppc64 Obsoletes: glibc-locale-64bit @@ -383,23 +216,24 @@ Obsoletes: glibc-locale-32bit %description locale Locale data for the internationalisation features of the GNU C library. + + %package -n nscd +License: LGPL v2.1 or later Summary: Name Service Caching Daemon -License: GPL-2.0+ Group: System/Daemons -Provides: glibc:/usr/sbin/nscd -Requires: glibc = %{version} -Obsoletes: unscd <= 0.48 -Requires(pre): pwdutils -%{?systemd_requires} +Provides: glibc:/usr/sbin/nscd aaa_base:/etc/init.d/nscd +PreReq: %insserv_prereq %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. + + %package profile +License: LGPL v2.1 or later Summary: Libc Profiling and Debugging Versions -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: Development/Libraries/C and C++ Requires: glibc = %{version} # bug437293 @@ -409,17 +243,20 @@ Obsoletes: glibc-profile-64bit %ifarch ppc Obsoletes: glibc-profile-32bit %endif +AutoReqProv: on %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. + + %package devel +License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later Summary: Include Files and Libraries Mandatory for Development -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 -Provides: epoll < 1.0 +Provides: epoll <= 1.0 # bug437293 %ifarch ppc64 Obsoletes: glibc-devel-64bit @@ -427,45 +264,22 @@ Obsoletes: glibc-devel-64bit %ifarch ppc Obsoletes: glibc-devel-32bit %endif -Requires: glibc = %{version} -Requires: linux-kernel-headers +PreReq: /bin/rm +Requires: glibc = %{version}, linux-kernel-headers +AutoReqProv: on %description devel These libraries are needed to develop programs which use the standard C library. -%package devel-static -Summary: C library static libraries for -static linking -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: Development/Libraries/C and C++ -Requires: %{name}-devel = %{version} -# Provide Fedora name for package to make packaging easier -Provides: %{name}-static = %{version} -%description devel-static -The glibc-devel-static package contains the C library static libraries -for -static linking. You don't need these, unless you link statically, -which is highly discouraged. - -# makedb requires libselinux. We add this program in a separate -# package so that glibc does not require libselinux. -%package extra -Summary: Extra binaries from GNU C Library -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ -Requires: glibc = %{version} - -%description extra -The glibc-extra package contains some extra binaries for glibc that -are not essential but recommend to use. - -makedb: A program to create a database for nss %package obsolete +License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later Summary: Obsolete Shared Libraries from the GNU C Library -License: LGPL-2.0+ Group: System/Libraries Requires: glibc = %{version} +AutoReqProv: on %description obsolete This package provides some old libraries from the GNU C Library which @@ -477,65 +291,74 @@ binaries working, but since this libraries are not supported and there is no gurantee that they work for you, you should try to get newer versions of your software. + + %prep -%setup -n glibc-%{version} -q -a 3 -a 4 -# Owl crypt_blowfish -tar -xzf %SOURCE50 -pushd crypt_blowfish-%{crypt_bf_version} -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 +%setup -n glibc-%{version} -q -a 1 -a 3 -a 4 -a 14 +%patch +# libNoVersion part is only active on ix86 +%patch1 +%patch2 +%patch3 +%patch4 +%patch6 +%patch7 +%patch8 +%patch9 +%patch10 +%patch11 +%patch12 +# strncmp is broken, let's delete it for now this way +rm sysdeps/x86_64/strncmp.S +%patch13 -E +# We have s_sincos.c in patch13, remove duplicate +rm sysdeps/x86_64/fpu/s_sincos.S +%patch14 +%patch15 +%patch16 +%patch17 +%patch18 +#We have nss-mdns, why should we need this patch? +#%patch19 +%patch20 +%patch21 +%patch22 +%patch23 +%patch24 +%patch25 +%patch26 +%patch27 +%patch28 +%patch29 +%patch30 +%patch31 +%patch32 +%patch33 +%patch34 +%patch35 +%patch36 +%patch37 +%patch38 +%patch39 +%patch40 +%patch41 +%patch42 +%patch43 +%patch44 +%patch45 +%patch46 +%patch47 +%patch48 +%patch49 +%patch50 +%patch51 +%patch52 +%patch53 +%patch54 +%patch55 +%patch56 +%patch57 %patch5 -popd -mv crypt/{crypt.h,gnu-crypt.h} -mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ -# -%patch1 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -# avoid changing nscd_stat.c mtime to avoid code generation -# differences on each rebuild -touch -r nscd/nscd_stat.c nscd/s-stamp -%patch9 -p1 -touch -r nscd/s-stamp nscd/nscd_stat.c -rm nscd/s-stamp -%patch10 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch19 -p1 -%patch21 -p1 -%patch22 -p1 - -%patch100 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 - -%patch304 -p1 -%patch306 -p1 - -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 - -%patch2000 -p1 -%patch2001 -p1 -%patch2002 -p1 -%patch2004 -p1 -%patch2005 -p1 -%patch2006 -p1 -%patch2008 -p1 - -%patch3000 - # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -558,576 +381,437 @@ find . -name configure | xargs touch %build if [ -x /bin/uname.bin ]; then - /bin/uname.bin -a + /bin/uname.bin -a else - uname -a + uname -a fi uptime || : ulimit -a nice -# We do not want configure to figure out the system its building one -# to support a common ground and thus set build and host to the -# target_cpu. -%ifarch %arm -%define target %{_target_cpu}-suse-linux-gnueabi -%else -%define target %{_target_cpu}-suse-linux -%endif -# Don't use as-needed, it breaks glibc assumptions -# Before enabling it, run the testsuite and verify that it -# passes completely -export SUSE_ASNEEDED=0 # Adjust glibc version.h -echo "#define CONFHOST \"%{target}\"" >> version.h -echo "#define GITID \"%{git_id}\"" >> version.h +echo "#define CONFHOST \"%{_target_cpu}-suse-linux\"" >> version.h +echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h # # Default CFLAGS and Compiler # -BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -enable_stack_protector= -for opt in $BuildFlags; do - case $opt in - -fstack-protector-strong) enable_stack_protector=strong ;; - -fstack-protector-all) enable_stack_protector=all ;; - -fstack-protector) enable_stack_protector=yes ;; - esac -done -BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') -BuildCC="%__cc" -BuildCCplus="%__cxx" -add_ons=libidn +BuildFlags="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE -fno-strict-aliasing" +BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" +BuildCC="gcc" +BuildCCplus="g++" +add_ons=",libidn" +PARALLEL="%{?jobs:-j%jobs}" # #now overwrite for some architectures # %ifarch sparc64 - BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" - BuildCC="gcc -m64" - BuildCCplus="$BuildCCplus -m64" +BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" +BuildCC="gcc -m64" +BuildCCplus="$BuildCCplus -m64" %endif %ifarch sparc - BuildFlags="$BuildFlags -fcall-used-g6" - BuildCC="gcc -m32" - BuildCCplus="$BuildCCplus -m32" +BuildFlags="$BuildFlags -fcall-used-g6" +BuildCC="gcc -m32" +BuildCCplus="$BuildCCplus -m32" %endif %ifarch sparcv9 - BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" - BuildCC="gcc -m32" - BuildCCplus="$BuildCCplus -m32" +BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" +BuildCC="gcc -m32" +BuildCCplus="$BuildCCplus -m32" %endif %ifarch alphaev6 - BuildFlags="-mcpu=ev6" +BuildFlags="-mcpu=ev6" %endif %ifarch ppc ppc64 - BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" +BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" %endif %ifarch ppc64 - BuildCC="$BuildCC -m64" - BuildCCplus="$BuildCCplus -m64" +BuildCC="$BuildCC -m64" +BuildCCplus="$BuildCCplus -m64" %endif %ifarch hppa - BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" +BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" +%endif +%ifarch %ix86 x86_64 +BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" %endif # Add flags for all plattforms except AXP %ifnarch alpha - BuildFlags="$BuildFlags -g" +BuildFlags="$BuildFlags -g" %endif %if %{disable_assert} - BuildFlags="$BuildFlags -DNDEBUG=1" +BuildFlags="$BuildFlags -DNDEBUG=1" %endif %ifarch %ix86 - add_ons=$add_ons,noversion +add_ons=$add_ons,noversion %endif -%ifarch mipsel - # fails to build otherwise - need to recheck and fix - %define enable_stackguard_randomization 0 -%endif - configure_and_build_glibc() { - local dirname="$1"; shift - local cflags="$1"; shift - mkdir "cc-$dirname" - cd "cc-$dirname" -%ifarch %arm aarch64 - # remove asynchronous-unwind-tables during configure as it causes - # some checks to fail spuriously on arm - conf_cflags="${cflags/-fasynchronous-unwind-tables/}" - conf_cflags="${conf_cflags/-funwind-tables/}" -%else - conf_cflags="$cflags" -%endif - - profile="--disable-profile" -%if %{build_profile} - if [ "$dirname" = "base" ] ; then - profile="--enable-profile" - fi -%endif - elision=--enable-lock-elision - if [ "$dirname" = "noelision" ]; then - elision=--disable-lock-elision - fi - ../configure \ - CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" \ - --prefix=%{_prefix} \ - --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ - --enable-add-ons=$add_ons \ - $profile $elision \ - "$@" \ - --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x - --enable-multi-arch \ -%endif -%ifarch mipsel - --without-fp \ -%endif -%ifarch ppc64p7 - --with-cpu=power7 \ -%endif + local cflags="$1" + local addons="$2" + shift 2 + CFLAGS="$cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + --prefix=%{_prefix} \ + --libexecdir=%{_libdir} --infodir=%{_infodir} \ + --enable-add-ons=nptl$addons --without-cvs --enable-profile \ + "$@" \ %if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ + --enable-stackguard-randomization \ %endif - ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ - --enable-tunables \ - --enable-kernel=%{enablekernel} \ - --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now \ - --enable-obsolete-rpc \ - --disable-timezone-tools -# Should we enable --enable-systemtap? -# Should we enable --enable-nss-crypt to build use freebl3 hash functions? - # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) - make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags" - cd .. + --build=%{_target_cpu}-suse-linux \ + --with-tls --with-__thread --enable-kernel=2.6.4 +make $PARALLEL } - -%if !%{optimize_power} - # - # Build base glibc - # - configure_and_build_glibc base "$BuildFlags" +# +# Build nptl +# +mkdir cc-nptl +cd cc-nptl +configure_and_build_glibc "$BuildFlags" \ +%if %{powerpc_optimize_base_cpu_power4} +"$add_ons,powerpc-cpu" --with-cpu=power4 %else - # - # Build POWER-optimized glibc - # - # First, base build: - pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}" - %if "%{powerpc_optimize_base}" != "" - pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" - %endif - %if "%{powerpc_optimize_base}" != "" - configure_and_build_glibc base "$pBuildFlags" --with-cpu=%{powerpc_optimize_base} - %else - # Use no default CPU - configure_and_build_glibc base "$pBuildFlags" - %endif - %if %{build_variants} - # Then other power variants: - for pcpu in \ - %if %{powerpc_optimize_cpu_power4} - power4 \ - %endif - %if %{powerpc_optimize_cpu_power6} - power6 \ - %endif - %if %{powerpc_optimize_cpu_power7} - power7 \ - %endif - ; do - configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" \ - --with-cpu=$pcpu - done - # Eventually, special Cell variant: - %if %{powerpc_optimize_cpu_cell} - configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" - %endif - %endif # %{build_variants} -%endif # optimize_power - -%if %{build_variants} -%ifarch i686 x86_64 -configure_and_build_glibc noelision "$BuildFlags" +"$add_ons" +%endif +cd .. +%if %{optimize_power} +# +# Build POWER optimized +# +for pcpu in \ +%if %{powerpc_optimize_cpu_power4} +power4 \ +%endif +%if %{powerpc_optimize_cpu_power5} +%if %{powerpc_optimize_cpu_power5_compile} +power5 \ %endif %endif - +%if %{powerpc_optimize_cpu_power6} +power6 \ +%endif +%if %{powerpc_optimize_cpu_power7} +power7 \ +%endif +; do +mkdir cc-$pcpu +cd cc-$pcpu +configure_and_build_glibc "$BuildFlags -mcpu=$pcpu" "$add_ons,powerpc-cpu" --with-cpu=$pcpu --disable-runbinaries +cd .. +done +%if %{powerpc_optimize_cpu_cell} +mkdir cc-ppc-cell-be +cd cc-ppc-cell-be +configure_and_build_glibc "$BuildFlags -mcpu=cell" "$add_ons" --disable-runbinaries +cd .. +%endif +# optimize_power +%endif # # Build html documentation # -%if %{build_html} -make -C cc-base html -%endif - +make -C cc-nptl html # # Build glibc_post_upgrade binary # -$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ - -Lcc-base -Bcc-base/csu \ - '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ +$BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ + -Lcc-nptl -Bcc-nptl/csu \ + '-DREMOVE_TLS_DIRS' \ %ifarch ppc ppc64 - %if !%{powerpc_optimize_cpu_power4} +%if !%{powerpc_optimize_cpu_power4} '-DREMOVE_PPC_OPTIMIZE_POWER4' \ - %endif - %if !%{powerpc_optimize_cpu_power6} - '-DREMOVE_PPC_OPTIMIZE_POWER6' \ - %endif - %if !%{powerpc_optimize_cpu_power7} - '-DREMOVE_PPC_OPTIMIZE_POWER7' \ - %endif - %if !%{powerpc_optimize_cpu_cell} - '-DREMOVE_PPC_OPTIMIZE_CELL' \ - %endif %endif - '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' - -# crypt_blowfish man pages -pushd crypt_blowfish-%{crypt_bf_version} -make man -popd +%if !%{powerpc_optimize_cpu_power5} + '-DREMOVE_PPC_OPTIMIZE_POWER5' \ +%endif +%if !%{powerpc_optimize_cpu_power6} + '-DREMOVE_PPC_OPTIMIZE_POWER6' \ +%endif +%if !%{powerpc_optimize_cpu_power7} + '-DREMOVE_PPC_OPTIMIZE_POWER7' \ +%endif +%if !%{powerpc_optimize_cpu_cell} + '-DREMOVE_PPC_OPTIMIZE_CELL' \ +%endif +%endif + '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' %check -%if %{build_testsuite} -# The testsuite will fail if asneeded is used -export SUSE_ASNEEDED=0 +%if %{run_testsuite} # Increase timeout export TIMEOUTFACTOR=16 -# The testsuite does its own malloc checking -unset MALLOC_CHECK_ -make -C cc-base -k check || { - cd cc-base - o=$- - set +x - for sum in subdir-tests.sum */subdir-tests.sum; do - while read s t; do - case $s in - XPASS:|PASS:) - echo ++++++ $s $t ++++++ - ;; - *) # X?FAIL: - echo ------ $s $t ------ - test ! -f $t.out || cat $t.out - ;; - esac - done < $sum - done - set -$o - # Fail build if there where compilation errors during testsuite run - test -f tests.sum -} +%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 +# ix86: tst-cputimer? fails +# ia64: tst-timer4 fails +# ppc64: tst-pselect, ftwtest fails +# s390,s390x: tst-timer* fails + make -C cc-nptl -k check || echo make check failed %else -# This has to pass on all platforms! -# Exceptions: -# None! -make %{?_smp_mflags} -C cc-base check-abi + make -C cc-nptl check %endif +%endif +make -C cc-nptl check-abi || echo check-abi failed %install -%if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, -# certainly not from libpthread.so.* because it is used by libthread_db to find +# at least not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support # should be enabled. These symbols are _not_ exported, and we can't easily # export them retroactively without changing the ABI. So we have to # continue to "export" them via .symtab, instead of .dynsym :-( -# But we also want to keep .symtab and .strtab of other libraries since some -# debugging tools currently require these sections directly inside the main -# files - specifically valgrind and PurifyPlus. -export STRIP_KEEP_SYMTAB=*.so* - +export STRIP_KEEP_SYMTAB=libpthread* # Make sure we will create the gconv-modules.cache -mkdir -p %{buildroot}%{_libdir}/gconv -touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache - -# Install base glibc -make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base - -install_optimized_variant() { - local dirname="$1"; shift - local subdir="$1"; shift - local subdir_up="$1"; shift - -cd "cc-$dirname" -destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir -mkdir -p $destdir -# Don't run a complete make install, we know which libraries -# we want -for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db -do - libbase=${lib#*/} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Only install if different from base lib - if cmp -s ${lib}.so ../cc-base/${lib}.so; then - ln -sf $subdir_up/$libbaseso $destdir/$libbaseso - else - cp -a ${lib}.so $destdir/$libbaseso - fi -done -cd .. -cc-base/elf/ldconfig -vn $destdir -} - -# Install power-optimized glibc +mkdir -p $RPM_BUILD_ROOT%{_libdir}/gconv +touch $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache +# Do not install in parallel, timezone Makefile will fail +make install_root=$RPM_BUILD_ROOT install -C cc-nptl %if %{optimize_power} - %if %{powerpc_optimize_cpu_power4} - install_optimized_variant power4 power4 ".." - %endif - %if %{powerpc_optimize_cpu_power6} - install_optimized_variant power6 power6 ".." - %endif - %if %{powerpc_optimize_cpu_power7} - install_optimized_variant power7 power7 ".." - %endif - %if %{powerpc_optimize_cpu_cell} - install_optimized_variant ppc-cell-be ppc-cell-be ".." - %endif - %if %{powerpc_optimize_cpu_power6} - # power6 is compatible with power6x - # doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir - if test -d %{buildroot}/%{_lib}/power6; then - mkdir -p %{buildroot}/%{_lib}/power6x - for i in %{buildroot}/%{_lib}/power6/*.so; do - b=$(basename $i) - ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - done - cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x - fi - %endif -%endif # optimize_power - -%ifarch i686 x86_64 -cd cc-noelision -destdir=$RPM_BUILD_ROOT/%{_lib}/noelision -mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{libversion}.so -cd .. -cc-base/elf/ldconfig -vn $destdir +# run ldconfig to create the library symlinks +# do not use the new ldconfig from the build directory because +# it may contain instructions not suitable for the cpu on the builhost +my_ldconfig=/sbin/ldconfig +# +for pcpu in \ +%if %{powerpc_optimize_cpu_power4} +power4 \ +%endif +%if %{powerpc_optimize_cpu_power5} +%if %{powerpc_optimize_cpu_power5_compile} +power5 \ +%endif +%endif +%if %{powerpc_optimize_cpu_power6} +power6 \ +%endif +%if %{powerpc_optimize_cpu_power7} +power7 \ +%endif +%if %{powerpc_optimize_cpu_cell} +ppc-cell-be \ +%endif +; do + make install_root=${RPM_BUILD_ROOT}/$pcpu install -C cc-$pcpu + mkdir -p $RPM_BUILD_ROOT/%{_lib}/$pcpu + for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version} + do + mv $RPM_BUILD_ROOT/$pcpu/%{_lib}/$i.so $RPM_BUILD_ROOT/%{_lib}/$pcpu + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/$pcpu/ + rm -rf $RPM_BUILD_ROOT/$pcpu +done +%if %{powerpc_optimize_cpu_power4} +# ppc970 is compatible with power4, unless compiled with altivec support +# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir +if test -d $RPM_BUILD_ROOT/%{_lib}/power4 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/ppc970 + for i in $RPM_BUILD_ROOT/%{_lib}/power4/*.so ; do + b=`basename $i` + ln -vs ../power4/$b \ + $RPM_BUILD_ROOT/%{_lib}/ppc970/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/ppc970/ +fi +%endif +%if %{powerpc_optimize_cpu_power5} +# power5+ is compatible with power5 (adds only a few floating point instructions) +# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir +# symlink to power4 directory, which is built only on ppc32 +%if %{powerpc_optimize_cpu_power5_compile} +if test -d $RPM_BUILD_ROOT/%{_lib}/power5 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5+ + for i in $RPM_BUILD_ROOT/%{_lib}/power5/*.so ; do + b=`basename $i` + ln -vs ../power5/$b \ + $RPM_BUILD_ROOT/%{_lib}/power5+/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ +fi +%else +if test -d $RPM_BUILD_ROOT/%{_lib}/power4 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5 + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5+ + for i in $RPM_BUILD_ROOT/%{_lib}/power4/*.so ; do + b=`basename $i` + ln -vs ../power4/$b \ + $RPM_BUILD_ROOT/%{_lib}/power5/$b + ln -vs ../power4/$b \ + $RPM_BUILD_ROOT/%{_lib}/power5+/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5/ + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ +fi +%endif +%endif +%if %{powerpc_optimize_cpu_power6} +# power6 is compatible with power6x +# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir +if test -d $RPM_BUILD_ROOT/%{_lib}/power6 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power6x + for i in $RPM_BUILD_ROOT/%{_lib}/power6/*.so ; do + b=`basename $i` + ln -vs ../power6/$b \ + $RPM_BUILD_ROOT/%{_lib}/power6x/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power6x/ +fi +%endif +# optimize_power %endif - -# Install locales %if %{build_locales} - # XXX Do not install locales in parallel! - cd cc-base - # localedef creates hardlinks to other locales if possible - # this will not work if we generate them in parallel. - # thus we need to run fdupes on /usr/lib/locale/ - # Still, on my system this is a speed advantage: - # non-parallel build for install-locales: 9:34mins - # parallel build with fdupes: 7:08mins - make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales - %fdupes %{buildroot}/usr/lib/locale - cd .. +# Do not install locales in parallel! +cd cc-nptl +make install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` +cd .. %endif -# Create file list for glibc-locale package +#create file list for glibc-locale package %{find_lang} libc - -# Prepare obsolete/, used only on some architectures: +cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. export RPM_BUILD_ROOT -%ifarch i586 -mkdir -p %{buildroot}/%{_lib}/obsolete +mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete +# +# NPTL is not usable outside of glibc, so include +# the generic one (RH#162634) +# +cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h +%ifarch s390x +# +# s390x is different ... +# +mkdir $RPM_BUILD_ROOT/lib +ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif - -# remove nsl compat library -rm -f %{buildroot}%{_libdir}/libnsl* -# part of libnsl-devel -rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* - -# Miscelanna: - -install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} - -install -m 644 %{SOURCE7} %{buildroot}/etc -install -m 644 %{SOURCE5} %{buildroot}/etc -install -m 644 posix/gai.conf %{buildroot}/etc - -mkdir -p %{buildroot}/etc/default -install -m 644 nis/nss %{buildroot}/etc/default/ - -mkdir -p %{buildroot}%{_includedir}/resolv -install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ -install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ - -%if %{build_html} -mkdir -p %{buildroot}%{_datadir}/doc/glibc -cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc -%endif - -cd manpages; make install_root=%{buildroot} install; cd .. - -# crypt_blowfish man pages -pushd crypt_blowfish-%{crypt_bf_version} -install -m755 -d %{buildroot}%{_mandir}/man3 -install -m644 *.3 %{buildroot}%{_mandir}/man3 -popd - -# nscd tools: - -%ifnarch i686 -cp nscd/nscd.conf %{buildroot}/etc -mkdir -p %{buildroot}/etc/init.d -ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd -mkdir -p %{buildroot}/run/nscd -mkdir -p %{buildroot}/var/lib/nscd -%endif - +# +# Install glibc_post_upgrade tool +# +install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} +# +# Install the mapv4v6* header files +# +mkdir -p $RPM_BUILD_ROOT/usr/include/resolv +install -m 0644 resolv/mapv4v6addr.h $RPM_BUILD_ROOT/usr/include/resolv/ +install -m 0644 resolv/mapv4v6hostent.h $RPM_BUILD_ROOT/usr/include/resolv/ +# +# glibc documentation in HTML +# +mkdir -p $RPM_BUILD_ROOT/usr/share/doc/glibc +cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc +# +# Install nscd tools +# +mkdir -p $RPM_BUILD_ROOT/etc/init.d +cp nscd/nscd.conf $RPM_BUILD_ROOT/etc +install -m 755 $RPM_SOURCE_DIR/nscd.init $RPM_BUILD_ROOT/etc/init.d/nscd +ln -sf /etc/init.d/nscd $RPM_BUILD_ROOT/usr/sbin/rcnscd +mkdir -p $RPM_BUILD_ROOT/var/run/nscd +touch $RPM_BUILD_ROOT/var/run/nscd/{passwd,group,hosts} +touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} +# Install bindresvport.blacklist +install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist $RPM_BUILD_ROOT/etc # # Create ld.so.conf # -cat > %{buildroot}/etc/ld.so.conf < $RPM_BUILD_ROOT/etc/ld.so.conf <>"$l" - cat "$l.d"/* >>"$l" -done -/usr/sbin/iconvconfig +%postun -p /sbin/ldconfig %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz -%preun info +%postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz -%pre -n nscd -getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd -getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /run/nscd nscd -%service_add_pre nscd.service - %preun -n nscd -%service_del_preun nscd.service +%stop_on_removal nscd %post -n nscd -%service_add_post nscd.service -%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf -# Previously we had nscd.socket, remove it -test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : -test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : -# Hard removal in case the above did not work -rm -f /etc/systemd/system/sockets.target.wants/nscd.socket -exit 0 +%{insserv_force_if_yast nscd} %postun -n nscd -%service_del_postun nscd.service +%restart_on_update nscd +%insserv_cleanup exit 0 - -%if %{build_main} -%files +# # glibc +# + +%files %defattr(-,root,root) %doc LICENSES %config(noreplace) /etc/bindresvport.blacklist @@ -1137,279 +821,2580 @@ exit 0 %verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf %verify(not md5 size mtime) %config(noreplace) /etc/gai.conf %config(noreplace) /etc/default/nss -%doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz +%doc %{_mandir}/man1/getent.1.gz +%doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{libversion}.so - -# Each architecture has a different name for the dynamic linker: -%ifarch %arm -%ifarch armv6hl armv7hl -/%{_lib}/ld-linux-armhf.so.3 -# Keep compatibility link -/%{_lib}/ld-linux.so.3 +%doc %{_mandir}/man8/rpcinfo.8.gz +/%{_lib}/ld-%{version}.so +%ifarch ppc s390 mips hppa +/%{_lib}/ld.so.1 %else -/%{_lib}/ld-linux.so.3 -%endif -%endif %ifarch ia64 /%{_lib}/ld-linux-ia64.so.2 -%endif -%ifarch ppc s390 mips hppa m68k -/%{_lib}/ld.so.1 -%endif -%ifarch ppc64 +%else +%ifarch s390x ppc64 /%{_lib}/ld64.so.1 -%endif -%ifarch ppc64le -/%{_lib}/ld64.so.2 -%endif %ifarch s390x /lib/ld64.so.1 -/%{_lib}/ld64.so.1 %endif +%else %ifarch x86_64 /%{_lib}/ld-linux-x86-64.so.2 -%endif -%ifarch %ix86 %sparc +%else /%{_lib}/ld-linux.so.2 %endif -%ifarch aarch64 -/lib/ld-linux-aarch64.so.1 -/%{_lib}/ld-linux-aarch64.so.1 %endif -%ifarch %ix86 x86_64 ppc ppc64 s390 s390x -# LSB -/%{_lib}/*-lsb*.so.3 %endif - -/%{_lib}/libBrokenLocale-%{libversion}.so +%endif +/%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{libversion}.so +/%{_lib}/libanl-%{version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{libversion}.so +/%{_lib}/libc-%{version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{libversion}.so +/%{_lib}/libcidn-%{version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{libversion}.so +/%{_lib}/libcrypt-%{version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{libversion}.so -/%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{libversion}.so +/%{_lib}/libdl-%{version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{libversion}.so +/%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -%ifarch x86_64 -/%{_lib}/libmvec-%{libversion}.so -/%{_lib}/libmvec.so.1 -%endif -/%{_lib}/libnsl-%{libversion}.so +/%{_lib}/libmemusage.so +/%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_db-%{libversion}.so -/%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{libversion}.so +/%{_lib}/libnss_compat-%{version}.so +/%{_lib}/libnss_compat.so.2 +/%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{libversion}.so +/%{_lib}/libnss_files-%{version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{libversion}.so +/%{_lib}/libnss_hesiod-%{version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libpthread-%{libversion}.so +/%{_lib}/libnss_nis-%{version}.so +/%{_lib}/libnss_nis.so.2 +/%{_lib}/libnss_nisplus-%{version}.so +/%{_lib}/libnss_nisplus.so.2 +/%{_lib}/libpcprofile.so +/%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{libversion}.so +/%{_lib}/libresolv-%{version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{libversion}.so +/%{_lib}/librt-%{version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{libversion}.so +/%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 -%define optimized_libs() \ - %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{libversion}.so\ - /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{libversion}.so\ - /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{libversion}.so\ - /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{libversion}.so\ - /%{_lib}/%1/librt.so.1\ - /%{_lib}/%1/libthread_db-1.0.so\ - /%{_lib}/%1/libthread_db.so.1 - %if %{optimize_power} - %if %{powerpc_optimize_cpu_power4} - %{optimized_libs power4} - %endif - %if %{powerpc_optimize_cpu_power6} - %{optimized_libs power6} - %{optimized_libs power6x} - %endif - %if %{powerpc_optimize_cpu_power7} - %{optimized_libs power7} - %endif - %if %{powerpc_optimize_cpu_cell} - %{optimized_libs ppc-cell-be} - %endif -%endif # optimize_power -%ifarch i686 x86_64 -/%{_lib}/noelision +%define optimized_libs() \ +%dir %attr(0755,root,root) /%{_lib}/%1\ +/%{_lib}/%1/libc-%{version}.so\ +/%{_lib}/%1/libc.so.6*\ +/%{_lib}/%1/libm-%{version}.so\ +/%{_lib}/%1/libm.so.6*\ +/%{_lib}/%1/libpthread-%{version}.so\ +/%{_lib}/%1/libpthread.so.0\ +/%{_lib}/%1/librt-%{version}.so\ +/%{_lib}/%1/librt.so.1\ +/%{_lib}/%1/libthread_db-1.0.so\ +/%{_lib}/%1/libthread_db.so.1 +%if %{powerpc_optimize_cpu_power4} +%{optimized_libs power4} +%{optimized_libs ppc970} +%endif +%if %{powerpc_optimize_cpu_power5} +%{optimized_libs power5} +%{optimized_libs power5+} +%endif +%if %{powerpc_optimize_cpu_power6} +%{optimized_libs power6} +%{optimized_libs power6x} +%endif +%if %{powerpc_optimize_cpu_power7} +%{optimized_libs power7} +%endif +%if %{powerpc_optimize_cpu_cell} +%{optimized_libs ppc-cell-be} +%endif +# optimize_power %endif %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig -%{_bindir}/gencat -%{_bindir}/getconf -%{_bindir}/getent -%{_bindir}/iconv -%attr(755,root,root) %{_bindir}/ldd -%ifarch %ix86 sparc sparcv9 m68k - %{_bindir}/lddlibc4 +/usr/bin/gencat +/usr/bin/getconf +/usr/bin/getent +/usr/bin/iconv +%attr(755,root,root) /usr/bin/ldd +%ifarch %ix86 sparc sparcv9 +/usr/bin/lddlibc4 %endif -%{_bindir}/locale -%{_bindir}/localedef -%dir %attr(0755,root,root) %{_libexecdir}/getconf -%{_libexecdir}/getconf/* +/usr/bin/locale +/usr/bin/localedef +%attr(4755,root,root) %{_libdir}/pt_chown +%dir %attr(0755,root,root) %{_libdir}/getconf +%{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade -%{_sbindir}/iconvconfig +%{_sbindir}/rpcinfo +/usr/sbin/iconvconfig -%ifarch i586 %files obsolete %defattr (755,root,root,755) -/%{_lib}/obsolete +%dir /%{_lib}/obsolete/ +%ifarch %ix86 +%dir /%{_lib}/obsolete/noversion +/%{_lib}/obsolete/noversion/libNoVersion-%{version}.so +/%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif +# +# locale subpackage +# %files locale -f libc.lang %defattr(-,root,root) -%{_datadir}/locale/locale.alias +/usr/share/locale/locale.alias %if %{build_locales} - /usr/lib/locale +/usr/lib/locale %endif %{_libdir}/gconv %files devel %defattr(-,root,root) -%doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE +%doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE $RPM_SOURCE_DIR/ctype_b.c %doc %{_mandir}/man1/catchsegv.1.gz %doc %{_mandir}/man1/rpcgen.1.gz +%doc %{_mandir}/man1/sprof.1.gz %doc %{_mandir}/man3/* -%{_bindir}/catchsegv -%{_bindir}/rpcgen -%{_bindir}/sprof -%{_includedir}/* +/usr/bin/catchsegv +/usr/bin/mtrace +/usr/bin/pcprofiledump +/usr/bin/rpcgen +/usr/bin/sprof +/usr/bin/xtrace +%{_prefix}/include/* %{_libdir}/*.o %{_libdir}/*.so -# These static libraries are needed even for shared builds -%{_libdir}/libc_nonshared.a -%{_libdir}/libg.a -%{_libdir}/libieee.a -%ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v -# This is not built on sparc64. - %{_libdir}/libnldbl_nonshared.a -%endif -%{_libdir}/libmcheck.a -%ifarch x86_64 -%{_libdir}/libmvec_nonshared.a -%endif -%{_libdir}/libpthread_nonshared.a -%{_libdir}/librpcsvc.a - -%files devel-static -%defattr(-,root,root) %{_libdir}/libBrokenLocale.a %{_libdir}/libanl.a +%{_libdir}/libbsd-compat.a %{_libdir}/libc.a +%{_libdir}/libc_nonshared.a %{_libdir}/libcrypt.a -%{_libdir}/libowcrypt.a %{_libdir}/libdl.a -%{_libdir}/libm.a -%ifarch x86_64 -%{_libdir}/libm-%{libversion}.a -%{_libdir}/libmvec.a +%{_libdir}/libg.a +%{_libdir}/libieee.a +%ifarch ppc ppc64 s390 s390x +%{_libdir}/libnldbl_nonshared.a %endif +%{_libdir}/libm.a +%{_libdir}/libmcheck.a +%{_libdir}/libnsl.a %{_libdir}/libpthread.a +%{_libdir}/libpthread_nonshared.a %{_libdir}/libresolv.a +%{_libdir}/librpcsvc.a %{_libdir}/librt.a %{_libdir}/libutil.a +# +# glibc-info +# -%ifnarch i686 %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz +# +# glibc-html +# -%if %{build_html} %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc -%endif +# +# glibc-i18ndata +# %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n +# +# nscd +# %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf -%{_sbindir}/nscd -%{_sbindir}/rcnscd -/usr/lib/systemd/system/nscd.service -%dir /usr/lib/tmpfiles.d -/usr/lib/tmpfiles.d/nscd.conf -%dir %attr(0755,root,root) %ghost /run/nscd -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid -%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket -%dir %attr(0755,root,root) /var/lib/nscd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/netgroup -%endif # !i686 +%config /etc/init.d/nscd +/usr/sbin/nscd +/usr/sbin/rcnscd +%dir %attr(0755,root,root) /var/run/nscd +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid +%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +# +# glibc-profile +# -%if %{build_profile} %files profile %defattr(-,root,root) %{_libdir}/libc_p.a %{_libdir}/libBrokenLocale_p.a %{_libdir}/libanl_p.a %{_libdir}/libm_p.a -%ifarch x86_64 -%{_libdir}/libmvec_p.a -%endif %{_libdir}/libcrypt_p.a -%{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a +%{_libdir}/libnsl_p.a %{_libdir}/librt_p.a %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a -%endif - -%ifnarch i686 -%files extra -%defattr(-,root,root) -%{_bindir}/makedb -/var/lib/misc/Makefile -%endif # !i686 - -%endif # main - -%if %{build_utils} -%files -%defattr(-,root,root) -/%{_lib}/libmemusage.so -/%{_lib}/libpcprofile.so -%dir %{_libdir}/audit -%{_libdir}/audit/sotruss-lib.so -%{_bindir}/memusage -%{_bindir}/memusagestat -%{_bindir}/mtrace -%{_bindir}/pcprofiledump -%{_bindir}/sotruss -%{_bindir}/xtrace -%{_bindir}/pldd -%endif # utils %changelog +* Wed Feb 18 2009 adrian@suse.de +- Build i686 glibc src rpm as nosrc to get both versions on the + media [bnc#474338] +* Thu Jan 22 2009 schwab@suse.de +- Fix use of mtfsf insn. +* Wed Jan 21 2009 schwab@suse.de +- Fix ldscript mangling. +* Wed Jan 21 2009 pbaudis@suse.cz +- Re-enable the DNS fixpack, add real fix for bnc#441947 +- nscd: Fix gc he_data overflow and turn of alloca usage [bnc#387202] +- Normalize the patch queue +- Increate CPU_SETSIZE from 1024 to 4096 - for large SGI machines + and compatibility with SLE10SP2 [bnc#464667] +* Fri Jan 16 2009 pbaudis@suse.cz +- Disable the DNS fixpack from CVS, breaks nscd resolving [bnc#441947] +* Fri Jan 09 2009 pbaudis@suse.cz +- Fix unsetenv() crashing after clearenv() +- Backport various DNS-related fixes from CVS +- Disable parallel A-AAAA queries - revert to the glibc-2.9 behaviour + of sending the queries sequentially [bnc#442572] +- Fix fp register protection on power6 setcontext() [bnc#464738] +* Mon Dec 08 2008 pbaudis@suse.cz +- Fix crash when parsing NIS hosts file [bnc#448702] +* Thu Dec 04 2008 pbaudis@suse.cz +- Fix nscd gc-cacheadd and prune-invalidate races [bnc#446233] +- Remove obsolete and disabled nscd patch +- Fix /etc/bindresvport.blacklist parsing [bnc#439146] +- Fix en_GB and csb_PL locales having weeks start on Tuesdays [bnc#449186] +* Sun Nov 23 2008 pbaudis@suse.cz +- clean up patch filenames +* Fri Nov 21 2008 olh@suse.de +- fix check-build.sh to actually allow building on ppc* again +* Fri Nov 21 2008 olh@suse.de +- do not run compiled binaries with cputuned libraries [bnc#445911] + the buildhost only generates them, but must not execute them +* Mon Nov 17 2008 pbaudis@suse.cz +- Update to glibc-2.9 final +* Thu Nov 06 2008 jjolly@suse.de +- Added patch to fix s390x 64bit stack frame problem +* Fri Oct 31 2008 matz@suse.de +- Fix atomics on s390/s390x, leading to failures in pthread mutexes. +* Tue Oct 28 2008 schwab@suse.de +- Restore alignment patch. +* Tue Oct 28 2008 olh@suse.de +- symlink power5/power5+ to power4 on ppc32 +* Thu Oct 23 2008 ro@suse.de +- only do obsoletes for XXbit packages on ppc, not on x86 +* Thu Oct 23 2008 matz@suse.de +- Deactivate unwind tables for initfini.c. +* Thu Oct 23 2008 olh@suse.de +- obsolete glibc{,-devel,-locale,-profile} -XXbit packages [bnc#437293] +- update last change to handle empty rpmspec defines +* Tue Oct 21 2008 olh@suse.de +- update glibc_post_upgrade to handle power7 and ppc-cell-be +- remove libs unconditionally on powerpc to handle libs in + subdirectories for which we do not ship optimized versions [bnc#437209] +* Thu Oct 16 2008 olh@suse.de +- enable cpu-tuned libraries for power4, power6 and ppc-cell-be + on ppc32 [fate#304000,bnc#408808] +* Mon Oct 13 2008 matz@suse.de +- Update to trunk from 20081013, no longer export paccept, + obsoletes some patches (lowlevellock and res_send). + Fix overflow in nscd patch. +* Sun Oct 12 2008 dmueller@suse.de +- also strip .comment.SUSE.OPTs from the static libs +- add missing-include-build-fix.diff +* Tue Oct 07 2008 schwab@suse.de +- Fix alignment in resolver. +* Tue Sep 30 2008 olh@suse.de +- symlink tuned libs because rpmlint is unable to handle hardlinks +* Mon Sep 29 2008 olh@suse.de +- enable cpu-tuned libraries for power6 and ppc-cell-be [fate#304000,bnc#408808] +- remove -mtune G4/RS64 from CFLAGS on ppc/ppc64 +* Thu Sep 18 2008 rguenther@suse.de +- Change .comment.SuSE.OPTs to .comment.SUSE.OPTs. Also strip from + crti.o and crtn.o. +- Adjust getgroups fortify check. [bnc#426958] +* Thu Sep 18 2008 schwab@suse.de +- Fix alignment in resolver. +* Mon Sep 15 2008 adrian@suse.de +- do not run glibc_post_upgrade in XEN builds +* Sat Sep 13 2008 rguenther@suse.de +- strip .note.gnu.build-id from crt1.o. +* Sat Sep 13 2008 dmueller@suse.de +- only strip comment from crt1.o +* Fri Sep 12 2008 mls@suse.de +- block baselibs generation for i586 (use i686 instead) +* Fri Sep 12 2008 dmueller@suse.de +- strip suse opts comments from crt.o (fate #300498) +* Mon Sep 08 2008 rguenther@suse.de +- Add a patch to fix wrong asm constraints in the i386 lowlevel + futex lock implementation. +* Thu Sep 04 2008 matz@suse.de +- Update to current trunk snapshot (2008-09-04), makes s390 build. +* Wed Aug 27 2008 matz@suse.de +- Add a patch to use RTLD_DEEPBIND to load nss modules. [bnc #157078] +* Mon Aug 25 2008 matz@suse.de +- Update to current trunk snapshot (2008-08-25). +* Fri Aug 22 2008 prusnak@suse.cz +- enabled SELinux support [Fate#303662] +* Fri Aug 15 2008 aj@suse.de +- Fix nscd init script for new checks. +- package empty ld.so.cache. +* Fri Jul 25 2008 aj@suse.de +- Add directory /var/cache/ldconfig to filelist. +* Wed Jun 25 2008 pbaudis@suse.cz +- Fix strptime() %%EY era support [bnc#355887] +* Wed Jun 25 2008 rguenther@suse.de +- Add patch to fix unwinding through clone for x86_64 and i386. + [bnc#290807, bnc#403464] +* Fri May 30 2008 schwab@suse.de +- Fix ppc atomic ops. +* Fri Apr 25 2008 pbaudis@suse.cz +- Update to glibc-2.8 CVS branch as of 2008042513 (post-glibc-2.8): + * Faster sqrt and sqrtf implemention for some PPC variants. +* Thu Apr 10 2008 pbaudis@suse.cz +- Build fix after the revert +* Thu Apr 10 2008 pbaudis@suse.cz +- Temporarily revert a namespace leakage cleanup in glibc-2.8 since + it causes a lot of build failures +* Thu Apr 10 2008 pbaudis@suse.cz +- Update to CVS HEAD as of 2008041002 (almost glibc-2.8): + * New locales: bo_CN, bo_IN. + * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. + * Sorting rules for some Indian languages (Devanagari and Gujarati). + Implemented by Pravin Satpute. + * IPV6 addresses in /etc/resolv.conf can now have a scope ID + * nscd caches now all timeouts for DNS entries + Implemented by Ulrich Drepper. + * nscd is more efficient and wakes up less often. + Implemented by Ulrich Drepper. + * More checking functions: asprintf, dprintf, obstack_printf, vasprintf, + vdprintf, and obstack_vprintf. + Implemented by Jakub Jelinek. + * Faster memset for x86-64. + Implemented by Harsha Jagasia and H.J. Lu. + * Faster memcpy on x86. + Implemented by Ulrich Drepper. + * ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX). + Implemented by Ulrich Drepper. +- memset() implementation from AMD replaced by new upstream + implementation +- Enable stackguard randomization +* Thu Apr 10 2008 ro@suse.de +- added baselibs.conf file to build xxbit packages + for multilib support +* Thu Mar 13 2008 dmueller@suse.de +- don't try to use ipv6 in getaddrinfo() unconditionally (bnc#361697) +* Sat Jan 26 2008 aj@suse.de +- Add fixes from 2.8 branch for string.h and headers. The string.h + changes should fix sysvinit compilation. +- Fix some rpmlint warnings: + * Add versioned provides and obsoletes. + * Use %%check section. +* Fri Jan 18 2008 schwab@suse.de +- Fix use of fnstsw. +* Wed Nov 21 2007 pbaudis@suse.cz +- Update to CVS branch glibc_2.7 as of today +- Remove the ::1 hack again +- Fix nscd race condition between mempool_alloc() and gc() [#288910] +- Fix nscd stack overflow in gc() when the number of cache entries + gets too large [#288910] +- Fix sunrpc udp client [#257745] +- Fix initgroups() crash in nss_compat [#310544] +* Thu Sep 27 2007 matz@suse.de +- Remove broken x86_64 bcopy function. [#328486] +* Sun Sep 16 2007 aj@suse.de +- Install gai.conf on all archs. +* Thu Sep 13 2007 pbaudis@suse.cz +- Install the default gai.conf to /etc instead of docdir +- Do not return ::1 /etc/hosts records for 127.0.0.1 queries [#288879] +* Wed Sep 05 2007 pbaudis@suse.cz +- Fix pthread_mutex_unlock() internal lock handling for incorrectly + written applications +- Fix nscd assertion failure when opening persistent db failed [#288910] +* Mon Sep 03 2007 mls@suse.de +- fix typos in mdns patch [#206247], [#256690] +* Fri Aug 31 2007 aj@suse.de +- Add /usr/share/locale-bundle/ as fallback directory for usage + with bundle-lang packages (see bug #302270). +* Tue Aug 21 2007 pbaudis@suse.cz +- Reintroduce errorneously omitted AMD64 optimizations + (and fix them to compile again) +* Thu Aug 16 2007 aj@suse.de +- Fix static linking (#233835). +- Silence rpmlint for profile package. +- Add Short-Description to nscd init script. +* Mon Aug 13 2007 aj@suse.de +- Backport: + * Update kernel-features.h. + * Fix sched_getcpu error path on x86-64. + * Use upstreamed version of ldconfig cache speed ups. +* Fri Aug 03 2007 pbaudis@suse.cz +- Remove the dynamic linker support for direct bindings (-Bdirect); + according to Michael Meeks, the performance improvement is too small +- Split timezone package to a separate physical package +- Update glibc to version 2.6.1 +* Fri Jul 27 2007 aj@suse.de +- Use fdupes to reduce timezone data size. +* Fri Jul 13 2007 schwab@suse.de +- Update to head of glibc-2.6 branch. +- Fix update on ppc. +* Thu Jun 28 2007 matz@suse.de +- Add a provide for "rtld(GNU_HASH)". +* Sun Jun 17 2007 schwab@suse.de +- Fix section selection in crt objects. +* Thu Jun 07 2007 pbaudis@suse.cz +- Backport fix for crashing printf() of some invalid ldouble values +* Wed May 30 2007 pbaudis@suse.cz +- Added few fixes from 2.6 CVS before 2.6.1 gets released +* Fri May 18 2007 pbaudis@suse.cz +- Update glibc to version 2.6 +- Update tzdata to version 2007f +* Fri May 04 2007 schwab@suse.de +- Update build checks. +* Fri Apr 20 2007 dmueller@suse.de +- only keep symtab for libpthread* +* Thu Apr 19 2007 pbaudis@suse.cz +- Fix strtod() exponent limit calculations [#230909] +- Fix random nscd crashes under very heavy passwd/group queries + load [#192391] +- Add some enums from CVS to sys/personality.h [#253710] +- Fix pthread_atfork()-induced hangs in threaded programs [#256237] +- Fix llrintl() on ppc64 [#241183] +- Fix makecontext() segfault [#249780] +- Fix potential dladdr() breakage [#241464] +- Fix some races in client programs with nscd garbage collection [#252138] +* Fri Mar 30 2007 pbaudis@suse.cz +- Update localtime during timezone update [#239888] +* Sun Mar 25 2007 olh@suse.de +- temporary disable powerpc cputuned libs to reduce turnaround time +* Fri Feb 09 2007 pbaudis@suse.cz +- Update to the latest upstream timezone data [#231833] +* Fri Feb 02 2007 schwab@suse.de +- Remove -ffortify. +* Thu Feb 01 2007 schwab@suse.de +- Remove -fstack-protector. +* Mon Jan 29 2007 sbrabec@suse.cz +- Removed references to /opt/gnome. +* Thu Jan 25 2007 olh@suse.de +- link power4 to ppc970, link power6 to power6x +- Update the powerpc cpu-tuned environment to v0.05 +* Mon Jan 22 2007 schwab@suse.de +- Update ppc build check. +* Fri Nov 24 2006 pbaudis@suse.cz +- Fix for Brazilian and Wester Australia timezone DSTs [#213375,#223196] +* Thu Nov 16 2006 pbaudis@suse.cz +- Disable power6 optimization for 10.2, not all pieces are there + [#219962] +* Wed Oct 25 2006 pbaudis@suse.cz +- Change ld.so madvise() call to posix_fadvise() +- Fix mallopt(M_MXFAST,0) behaviour [#198760] +- Update the powerpc cpu-tuned environment to v0.04 [#215117] +* Sun Oct 22 2006 pbaudis@suse.cz +- Update the powerpc cpu-tuned environment to v0.03 [#212549] +- Improve glibc powerpc optimization [#212548,#212580,#214282] +* Tue Oct 17 2006 mls@suse.de +- add ldconfig-old-cache patch to speed up ldconfig +* Sat Oct 14 2006 olh@suse.de +- dont use uninitialized (and wrong) variable in glibc-2.4.90-bdirect.diff + [#212470] +* Thu Oct 12 2006 pbaudis@suse.cz +- Update to the latest 2.5 CVS +- More friendly -Bdirect behaviour in case of missing libraries +- Fix 2.4.90-nscd patch wrt. new gcc +* Mon Oct 02 2006 aj@suse.de +- Fix warnings in testsuite (patch from CVS). +* Fri Sep 29 2006 pbaudis@suse.cz +- Update to 2.5 CVS - official release (only minimal changes in CVS + since the last update) +- Fix a thinko in the -Bdirect patch +* Fri Sep 29 2006 dmueller@suse.de +- fix devel requires +* Fri Sep 29 2006 pbaudis@suse.cz +- Make the dynamic linker support direct bindings (Michael Meeks' + Solaris-like -Bdirect with minor changes by me) +- Split the kernel headers to a new package (linux-kernel-headers) +* Wed Sep 27 2006 schwab@suse.de +- Fix broken assertion [#208189]. +* Tue Sep 26 2006 pbaudis@suse.cz +- Fix mistake when removing some patches +* Mon Sep 25 2006 pbaudis@suse.cz +- Update to current CVS +* Sat Sep 23 2006 pbaudis@suse.cz +- Fix 64bit-cleanliness gcc warnings +* Thu Sep 21 2006 pbaudis@suse.cz +- Add /usr/lib{,64}/Xaw3d to /etc/ld.so.conf (by schwab@suse.de, + from original STABLE) [#205169] +- Fix chown() instead of lchown() called in fchownat() emulation + [#201751] +- Fix glob() overflowing stack when producing massive number of + matches [#190458] +- Update to current CVS +* Wed Sep 20 2006 pbaudis@suse.cz +- Fix cut'n'paste error in a last-minute change +* Wed Sep 20 2006 pbaudis@suse.cz +- Update to current CVS +- Fix powerpc-cpu tarball extension +- Move crypt-blowfish to a patch so that quilt works on the tree +* Sat Sep 02 2006 schwab@suse.de +- Use asm-powerpc for ppc and ppc64. +- Fix chroot check in glibc_post_upgrade. +* Mon Aug 28 2006 pbaudis@suse.cz +- Update to current CVS, should fix false positive heap overflow + trigger from malloc() causing gcc to hang [#201724] +* Wed Aug 23 2006 pbaudis@suse.cz +- Update the powerpc cpu-tuned environment to v0.02 [#199274] +- Update to current CVS +- Drop pthread_mutexattr_getprioceiling() out of range fix +* Thu Aug 10 2006 pbaudis@suse.cz + Ported from STABLE: +- Remove libc5 reference from /etc/ld.so.conf, shlibs5 is no longer + supported [#181947] +- Fix name of a dummy ia64 header from offsets.h to asm-offsets.h + [#191394] +* Sun Jul 30 2006 pbaudis@suse.cz +- Update to current CVS snapshot (highlight: support for .gnu.hash + fast linking support) +* Wed Jul 12 2006 pbaudis@suse.cz +- pthread_mutexattr_getprioceiling() was returning prioceiling out + of range [#182782] +* Wed Jul 12 2006 pbaudis@suse.cz +- Fix the HTML documentation missing an index [#190585] +* Sat Jun 24 2006 kukuk@suse.de +- Update to current CVS snapshot +- Update to kernel-headers 2.6.17 +- Remove HZ define (sysconf(_SC_CLK_TCK) instead) +* Tue Jun 13 2006 kukuk@suse.de +- Update to current CVS snapshot +* Tue May 02 2006 pbaudis@suse.cz +- Fix bad memset() size in NTPL code [#159184] +* Tue May 02 2006 kukuk@suse.de +- asm-powerpc/page.h: Don't move #ifdef __KERNEL__ [#171010] +- bits/mman.h: Fix value of MADV_REMOVE [#170734] +* Mon Apr 24 2006 kukuk@suse.de +- Fix china timezone mess [#163674] +- Don't include linux/stddef.h [#167964] +* Tue Apr 18 2006 schwab@suse.de +- Sanitize . +* Thu Apr 13 2006 kukuk@suse.de +- Add /usr/include/linux/taskstats.h [#141936] +* Tue Apr 11 2006 kukuk@suse.de +- nptl/init.c (sigcancel_handler): Compare with correct PID even + if the thread is in the middle of a fork call. + (sighandler_setxid): Likewise. +* Sun Apr 09 2006 ihno@suse.de +- S390 fix for startupcode. Part of it was not PIC. +* Fri Apr 07 2006 kukuk@suse.de +- Don't hardcode syscall numbers at our own +* Tue Apr 04 2006 schwab@suse.de +- Fix readlink declaration. +* Mon Apr 03 2006 kukuk@suse.de +- Update from CVS: + - nscd bug fixes + - Match return value of readlink to what POSIX says + - Fix NIS+ checks for NULL pointer +* Sun Apr 02 2006 dmueller@suse.de +- Fix clients crash if nscd is unresponsive (glibc-#2501) +- Fix fd leak in nscd daemon (glibc-#2498) +* Sat Apr 01 2006 schwab@suse.de +- Fix on ppc64. +* Fri Mar 31 2006 schwab@suse.de +- Extend last change also to ppc64. +* Sun Mar 26 2006 schwab@suse.de +- Terminate FDE before clone syscall. +* Fri Mar 24 2006 ro@suse.de +- kernel-headers: asm-powerpc: define PAGE_MASK in page.h +* Mon Mar 20 2006 kukuk@suse.de +- Update to final 2.6.16 kernel headers +- Update to current CVS: + - Don't use TLS before setting it up. + - Fix rounding of long doubles on ppc64. + - Correct usage of cfi_offset on ppc/ppc64. + - Fix memory leak in dlopen. +* Tue Mar 14 2006 schwab@suse.de +- Update fnmatch patch. +* Fri Mar 10 2006 kukuk@suse.de +- Disable unshare() syscall (request of kernel developer) +* Fri Mar 10 2006 kukuk@suse.de +- Don't include linux/interrupt.h from linux/rtc.h +- Revert last change to linux/input.h, disable struct +- Update to current CVS (nptl/ia64 fix) +* Thu Mar 09 2006 kukuk@suse.de +- Fix linux/input.h for userspace inclusion +* Wed Mar 08 2006 kukuk@suse.de +- Update kernel headers to 2.6.16-rc5 +* Mon Mar 06 2006 kukuk@suse.de +- Update to 2.4 CVS + - official release + - Fix free on ppc [#155374] + - Various sysconf() fixes +* Sat Mar 04 2006 kukuk@suse.de +- Update to CVS + - ldconfig/prelink fixes +* Fri Mar 03 2006 aj@suse.de +- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). +* Fri Mar 03 2006 kukuk@suse.de +- Update to CVS + - Fix ftw test suite failures + - Fix alignment of malloc for long double +* Thu Mar 02 2006 kukuk@suse.de +- Update to 2.3.91 CVS + - Fix 6arg syscall on s390x + - memccpy fix on IA64 +* Wed Mar 01 2006 kukuk@suse.de +- Update to CVS + - New linkat interface + - Update from tzdata2006b + - Define MADV_DONTFORK and MADV_DOFORK. + - Add robust mutex to NPTL +* Thu Feb 23 2006 kukuk@suse.de +- Reenable power optimized code again [#142839] +* Sun Feb 12 2006 kukuk@suse.de +- Disable power optimized code +* Thu Feb 09 2006 kukuk@suse.de +- Update to CVS + - Add unshare prototype + - Add memory barrier on i386/NPTL +* Wed Feb 08 2006 kukuk@suse.de +- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] +* Mon Feb 06 2006 kukuk@suse.de +- Update to current CVS +- Fix alternate locale search path patch [#147685] +* Thu Feb 02 2006 kukuk@suse.de +- Update to current CVS +* Mon Jan 30 2006 schwab@suse.de +- Fix the fix. +* Sat Jan 28 2006 kukuk@suse.de +- Fix seg.fault in __atfct_seterrno if called from futimesat() +- Apply patches for CPU-Tuned Environment on Power [#142839] +* Fri Jan 27 2006 kukuk@suse.de +- Cleanup ld.so.conf +* Thu Jan 26 2006 kukuk@suse.de +- Add alternate directory for translations [#144073] +* Thu Jan 26 2006 mls@suse.de +- converted neededforbuild to BuildRequires +* Mon Jan 23 2006 kukuk@suse.de +- Update to CVS +- Fix build_locales +* Sat Jan 21 2006 kukuk@suse.de +- Update to CVS +- Fix inclusion of sys/poll.h with _GNU_SOURCE defined +* Fri Jan 20 2006 kukuk@suse.de +- Update to CVS +* Sun Jan 15 2006 kukuk@suse.de +- Update to CVS (fix long double configure check) +* Sun Jan 15 2006 schwab@suse.de +- Readd , , . +* Sun Jan 15 2006 schwab@suse.de +- Readd . +* Sat Jan 14 2006 kukuk@suse.de +- Update to current CVS (long double support) +* Fri Jan 13 2006 aj@suse.de +- Fix x86-64 w_exp to not use extra plt. +* Thu Jan 12 2006 kukuk@suse.de +- Fix asm-s390/setup.h for userspace inclusion +- nsswitch.conf: Add nis to netgroup and automount entry +- Fix sys/procfs.h for ppc64 +* Mon Jan 09 2006 kukuk@suse.de +- Update to current CVS (fix for pthread.h with -std=c99) +- Define PAGE_SIZE on POWER +- Don't include linux/sched.h in asm-power/elf.h +* Sun Jan 08 2006 kukuk@suse.de +- Fix linux/acct.h for userland inclusion +* Sun Jan 08 2006 kukuk@suse.de +- Update to current CVS +- Remove CHILD_MAX from kernel-headers +- Copy subdirectories of asm-power, too. +- Remove da_DK@euro (does not exist) +* Sat Jan 07 2006 kukuk@suse.de +- Fix ext2 kernel headers +- Update to current CVS +* Fri Jan 06 2006 kukuk@suse.de +- Update to kernel headers 2.6.15 +* Fri Jan 06 2006 kukuk@suse.de +- Update crypt_blowfish to version 1.0 +- Update to current CVS +- Adjust nscd patches +* Tue Jan 03 2006 aj@suse.de +- Update to current CVS to fix pthread.h on 64-bit systems for C++. +* Tue Jan 03 2006 aj@suse.de +- Enable string patch again. +- Update to current CVS. +* Wed Dec 21 2005 kukuk@suse.de +- Update to current CVS +- Fix ldconfig +* Sat Dec 17 2005 kukuk@suse.de +- Remove /usr/lib/zoneinfo +- Add /etc/localtime to filelist +- Update to current CVS +- Fix glibc #1978: statvfs does not know about current filesystems +- Fix wrong error return code of time() on x86 +- Remove nscd_nischeck +- Remove audit from nfb +- Remove LinuxThreads +* Wed Dec 14 2005 kukuk@suse.de +- Update to current CVS +- Remove nscd_nischeck +- Remove audit from nfb +* Mon Dec 05 2005 kukuk@suse.de +- Update to current CVS +- Disable SELinux +* Thu Nov 24 2005 kukuk@suse.de +- Remove obsolete patches: + - glibc-2.3.asprintf-error_handling.diff + - glibc-2.3.90-missing-string_h.diff +* Wed Nov 23 2005 kukuk@suse.de +- Update to current CVS +- Don't install in parallel +* Fri Nov 18 2005 kukuk@suse.de +- Update to current CVS to fix compiling with new binutils +* Wed Nov 16 2005 kukuk@suse.de +- Update to current CVS +* Sat Nov 05 2005 kukuk@suse.de +- Update to current CVS +- Disable linuxthreads on POWER and Itanium +- Fix kernel-headers for userland inclusion +* Wed Nov 02 2005 kukuk@suse.de +- Update to current CVS +- Update to kernel-headers 2.6.14 +* Tue Oct 18 2005 kukuk@suse.de +- Update to current CVS +* Sat Oct 01 2005 schwab@suse.de +- Update libm ULPs. +- Fix limit in getcwd. +* Thu Sep 15 2005 kukuk@suse.de +- Update to current CVS +- Update to final 2.6.13 kernel headers +- Adjust bindresvport.blacklist patch to check already ports >= 512 +* Fri Aug 26 2005 kukuk@suse.de +- Update to current CVS +- init.d/nscd: Remove -S support (was removed from nscd) +* Fri Aug 19 2005 schwab@suse.de +- Fix comment. +* Fri Aug 19 2005 matz@suse.de +- Change .note.SuSE format [#105825]. +* Fri Aug 19 2005 kukuk@suse.de +- Update to current CVS +- Move all obsolete libraries into own subpackage and document + them as obsolete +* Fri Aug 05 2005 schwab@suse.de +- -mno-tls-direct-seg-refs is x86-only +* Tue Aug 02 2005 kukuk@suse.de +- Update to 2.3.x CVS branch +- Compile with -mno-tls-direct-seg-refs +* Fri Jul 29 2005 kukuk@suse.de +- Update to current CVS head +* Wed Jul 27 2005 schwab@suse.de +- Update libm ULPs for ia64. +- Add linuxthreads stack guard support for ia64. +* Sat Jul 23 2005 kukuk@suse.de +- Update to current CVS head (adds bits/wchar2.h) +- Move LinuxThreads version to obsolete/linuxthreads +* Thu Jul 21 2005 kukuk@suse.de +- Update to current CVS head +* Fri Jul 15 2005 schwab@suse.de +- Fix file list. +* Fri Jul 15 2005 aj@suse.de +- Fix amd64 string routines and math routines. +* Fri Jul 15 2005 kukuk@suse.de +- Use old LinuxThreads only for runtime and remove static version + and headers +- Update to current CVS head +- Remove own texi2html +* Mon Jul 11 2005 kukuk@suse.de +- Install generic stdio-lock.h header file +* Sat Jul 09 2005 kukuk@suse.de +- Temporary disable AMD64 string optimization +* Wed Jul 06 2005 kukuk@suse.de +- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] +* Mon Jul 04 2005 kukuk@suse.de +- nss_compat: Preserve original return value [Bug #95033] +- Cleanup old Obsoletes/Requires +* Mon Jun 27 2005 kukuk@suse.de +- Update to current gilbc CVS snapshot +* Thu Jun 23 2005 kukuk@suse.de +- Update to current glibc CVS snapshot +- Adjust nscd patch +- Enable SELinux/audit support for nscd +- Update .note.SuSE version +* Mon Jun 20 2005 kukuk@suse.de +- Update to final 2.6.12 kernel headers +- Update to current glibc CVS snapshot +* Thu Jun 16 2005 kukuk@suse.de +- Update linux/audit.h header +- Update to current CVS snapshot +* Mon Jun 13 2005 kukuk@suse.de +- Don't terminate strings twice in nis/netgroup code. +- netinet/if_tr.h: don't include kernel headers. +* Wed Jun 08 2005 kukuk@suse.de +- Update to kernel-headers 2.6.12-rc6 +- Fix build on s390 and s390x +* Wed Jun 08 2005 matz@suse.de +- Don't strip .symtab from libpthread.so.0 (and other libs). + Fixes debugging of threaded programs (#81253). +* Mon Jun 06 2005 kukuk@suse.de +- Update to current CVS head +- Update to kernel-headers 2.6.12-rc5 +* Thu May 26 2005 schwab@suse.de +- No longer build loadlocale.c with -fno-unit-at-a-time. +* Tue May 24 2005 kukuk@suse.de +- Update to current CVS head, obsoletes: + - glibc-2.3.90-libm.diff + - glibc-2.3.90-i386-sysdep.diff + - warn.diff + - dl-osinfo.diff + Adjusted: + - glibc-2.3.90-bindresvport.blacklist.diff +* Sun May 22 2005 schwab@suse.de +- Fix missing include. +* Tue May 17 2005 schwab@suse.de +- Fix warning. +* Fri Apr 29 2005 kukuk@suse.de +- Update to latest CVS snapshost +* Sat Apr 23 2005 kukuk@suse.de +- Fix all the archs using wrong FLAGS +* Sat Apr 23 2005 kukuk@suse.de +- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS +* Fri Apr 22 2005 kukuk@suse.de +- Update to current CVS +* Fri Apr 22 2005 kukuk@suse.de +- Check if nice value does not conflict with test suite +* Tue Apr 19 2005 mls@suse.de +- resolv: trigger re-read of /etc/resolv.conf for all threads if + a change is detected +- nscd: support a negative timeout of zero, used by hosts cache +* Mon Apr 18 2005 meissner@suse.de +- Enable fortify possibility even for GCC 4.0, we apply + the necessary patch to the SUSE GCC 4.0. +* Sat Apr 16 2005 aj@suse.de +- Apply amd64 string diff again. +* Tue Apr 12 2005 kukuk@suse.de +- Update kernel-headers to 2.6.10 +- Update to current CVS snapshot +* Wed Apr 06 2005 schwab@suse.de +- Cleanup neededforbuild. +* Tue Apr 05 2005 aj@suse.de +- Add gettext-devel to neededforbuild. +* Tue Apr 05 2005 aj@suse.de +- Do not build on xen machines. +- Adjust libm ULPs for PowerPC. +* Fri Apr 01 2005 kukuk@suse.de +- Update to current CVS snapshot +* Tue Mar 29 2005 kukuk@suse.de +- Update to current CVS snapshot +- Fix compiler warnings on ix86 +* Mon Mar 28 2005 kukuk@suse.de +- Update to current CVS snapshot +- Disable Noversion Patch on i386 temporary +* Fri Mar 18 2005 ro@suse.de +- check-build.sh: require 2.6.11 on x86,x86_64 for build +* Thu Mar 17 2005 mls@suse.de +- nscd: enable hosts cache +- nscd: also watch /etc/resolv.conf +- nscd: check files every 3 seconds +- nscd: deal correctly with missing files +* Tue Mar 15 2005 kukuk@suse.de +- Update to current CVS snapshot. +* Sat Feb 12 2005 schwab@suse.de +- Remove const from __pthread_internal_tsd_address. +* Fri Feb 11 2005 schwab@suse.de +- Update to current CVS. +- Link glibc_post_upgrade against new libc. +- Fix build error with gcc4. +* Wed Feb 09 2005 kukuk@suse.de +- Update to current CVS +- Fix bindresvport blacklist handling. +- Increase buffer in tst-cancel17 to match new kernel buffer size + [#50277] +- Enable LinuxThreads again +- Remove ia64-audit patch (is upstream) +* Mon Feb 07 2005 aj@suse.de +- Add patch to allow compilation with gcc4. +* Mon Jan 31 2005 schwab@suse.de +- Readd support for LD_AUDIT on ia64. +* Mon Jan 31 2005 kukuk@suse.de +- Add memory clobber to string inline assemblies on s390 [#50284]. +* Mon Jan 31 2005 kukuk@suse.de +- Fix filelist on i686 if we build NPTL only version +* Mon Jan 31 2005 aj@suse.de +- Generate new ULPs file for i386 needed by GCC 4. +* Sun Jan 30 2005 kukuk@suse.de +- Include own copy of texi2html +- Add glibc_pst_upgrade program (based on version from FC3) +- Update to current CVS +* Thu Jan 27 2005 kukuk@suse.de +- Re-add patch for timezone/zic.c (got lost with last merge) +* Wed Jan 26 2005 kukuk@suse.de +- Update timezone data to 2005c release (fixes zdump crash on + 64bit architectures) +* Sat Jan 22 2005 schwab@suse.de +- Add basic (incomplete) support for LD_AUDIT on ia64. +* Fri Jan 21 2005 kukuk@suse.de +- Enable patch for [Bug #49833] +- Allow to build NPTL only glibc +- Update to CVS from Jan 16, 2005, containing: +- Fix execlp argument in SunRPC code [glibc #681] +- Fix errno return values for futimes [glibc #633] +- Update FPU function on PPC/PPC64 [Bug #49764] +* Mon Jan 17 2005 aj@suse.de +- Enable amd64 string patch again after fixing failing hunks. +- Handle missing cpuid better for amd64 string functions. [#49803] +* Sat Jan 15 2005 aj@suse.de +- Fix amd64 string patch to use correct datatype. +* Fri Jan 14 2005 kukuk@suse.de +- Fix memory corruption in getgrouplist function [Bug #49833] +* Tue Jan 11 2005 kukuk@suse.de +- Enable all LinuxThreads tests again +- Finalize getconf -a patch (make it compatible with Solaris) +- Rewrite getconf manual page and mention new option +- Merge GB18030 patches into one. +* Thu Dec 30 2004 kukuk@suse.de +- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with + kernel-headers.SuSE.diff +- Revert nscd paths on old SuSE Linux distributions +* Wed Dec 29 2004 kukuk@suse.de +- Update to glibc 2.3.90 CVS branch +- Remove alarm-round.patch (merged upstream) +* Thu Dec 09 2004 kukuk@suse.de +- Update to current CVS +- Move nscd persistent database files back to /var/run/nscd +* Mon Dec 06 2004 kukuk@suse.de +- Update to current CVS +- Fix more kernel headers for userland inclusion +* Fri Nov 26 2004 ro@suse.de +- kernel-headers.diff: define __force in compiler.h +* Thu Nov 25 2004 schwab@suse.de +- Add Intel libm update. +* Thu Nov 25 2004 kukuk@suse.de +- Update to current glibc CVS +- Update kernel headers to 2.6.9 +* Thu Nov 18 2004 kukuk@suse.de +- Update to current glibc CVS +* Mon Nov 15 2004 kukuk@suse.de +- Update to current glibc CVS +* Mon Nov 08 2004 kukuk@suse.de +- Blacklist port 921 (lwresd) for usage by bindresvport() +- Update to current glibc CVS +- Add /var/run/nscd/* files as ghost entries +* Mon Oct 18 2004 aj@suse.de +- Don't use special fdim functions for x86-64 since those give + wrong results for fdim (inf,inf). +- Fix ppc64 rebuild issue with ppc32 system [#47325]. +* Wed Oct 13 2004 kukuk@suse.de +- Fix symlink librt.so -> tls/librt.so.1 +- Backout last glob changes +- Disable nptl as default for linking +* Tue Oct 12 2004 kukuk@suse.de +- Install kernel-headers after merging linuxthreads/NPTL headers +* Tue Oct 12 2004 kukuk@suse.de +- Update to current CVS snapshot +* Mon Oct 11 2004 kukuk@suse.de +- Make NPTL default for linking +* Fri Oct 01 2004 kukuk@suse.de +- Update to current CVS snapshot +- Add workaround for linuxthreads/without-__threads bug +- Remove KDE/ldconfig workaround +- Set SuSE ABI note to 9.3 +* Sun Sep 26 2004 kukuk@suse.de +- Add lib/nptl/librt.so symlink to tls/librt.so.1 +- Update to current CVS +* Sat Sep 25 2004 kukuk@suse.de +- Implement mq support for rtkaio and enable it again +* Fri Sep 24 2004 kukuk@suse.de +- Add zh_SG.UTF-8 [Bug #46024] +* Thu Sep 23 2004 kukuk@suse.de +- Sync sys/mount.h and linux/fs.h +* Wed Sep 22 2004 kukuk@suse.de +- Make mdns support configurable in /etc/host.conf +* Mon Sep 20 2004 kukuk@suse.de +- Fix invalidating of nscd caches and getaddrinfo() +* Fri Sep 17 2004 kukuk@suse.de +- Update to current CVS (nscd and glob.h fixes) +* Thu Sep 16 2004 kukuk@suse.de +- Fix getaddrinfo/nscd support +* Wed Sep 15 2004 kukuk@suse.de +- Update to current CVS, remove merged patches +* Sun Sep 12 2004 kukuk@suse.de +- Update to CVS: Fix nscd crash if one service is disabled +- glob.h: Add workaround for invalid prototypes +- nss_compat: Check that buffer is larger than 0 bytes +* Fri Sep 10 2004 kukuk@suse.de +- Update to CVS: Fix cdefs.h for C++ usage +* Fri Sep 10 2004 kukuk@suse.de +- Add lwres to hosts search order in nsswitch.conf +- Update to current CVS +- Use new nscd paths for socket/pid file +- Enable NPTL on i586 +- Add --print-all option to getconf +* Thu Sep 02 2004 kukuk@suse.de +- Fix NPTL header files on x86-64 for 32bit compilation +- Apply various fixes from CVS +- Remove pre-Install for -devel package (no longer necessary) +* Wed Aug 25 2004 kukuk@suse.de +- Don't compile in eval.c +* Mon Aug 23 2004 kukuk@suse.de +- Update to current CVS: + - Use CVS version for last fix. + - Add malloc sanity checks for double free. +* Fri Aug 20 2004 schwab@suse.de +- Fix cancellable syscalls in librt w/ linuxthreads. +* Fri Aug 20 2004 kukuk@suse.de +- Update to current CVS [#43993] +* Thu Aug 19 2004 schwab@suse.de +- Better fix for asm-ia64/gcc_intrin.h. +* Wed Aug 18 2004 kukuk@suse.de +- Update to current CVS +- Workaround linux/ixjuser.h problem not including compiler.h +- Workaround linux/capi.h problem not including compiler.h +* Tue Aug 17 2004 schwab@suse.de +- Fix asm-ia64/gcc_intrin.h. +* Tue Aug 17 2004 kukuk@suse.de +- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] +* Mon Aug 16 2004 kukuk@suse.de +- Update to current CVS version and update to + kernel-headers 2.6.8.1 to fix NPTL deadlock problems +- Disable linuxthreads/tst-clock1, does not work on i586 and lower +* Fri Aug 13 2004 kukuk@suse.de +- Update to current CVS version +- Cleanup/adjust all patches +* Thu Jun 17 2004 kukuk@suse.de +- Fix sched_setaffinity return/errno code in error case [#42124] +* Wed Jun 16 2004 meissner@suse.de +- Updated altivec set/get/swapcontext patch to fix + more problems on altivec capable machines [#42039]. +- glibc is also able to build on -pmac64 kernels. +* Mon Jun 14 2004 kukuk@suse.de +- Add fixes from CVS: + - sysconf return value fixes + - nscd host caching deadlock + - backtrace for s390/s390x/ia64 static linked binaries +* Mon Jun 14 2004 kukuk@suse.de +- Increase listen backlog in RPC code [#41955] +* Wed Jun 09 2004 meissner@suse.de +- Fixed typos in powerpc* *context functions to not destroy the r19 + register and save the v19 register correctly. [#41790] +* Sat Jun 05 2004 aj@suse.de +- Fix makecontext with more than 6 arguments on x86-64 [#40546]. +* Mon May 24 2004 kukuk@suse.de +- Update to kernel-headers 2.6.6 +- Update to current glibc CVS +- Disable rtkaio temporary +* Sun May 23 2004 kukuk@suse.de +- Fix pthread_cond_wait on not ix86 and x86-64 architectures +* Thu May 20 2004 kukuk@suse.de +- Add PPC64 kernel header file fixes [#40831,#40870] +* Wed May 19 2004 kukuk@suse.de +- Add additional NPTL fixes from CVS +* Tue May 18 2004 schwab@suse.de +- Fix mapping of DSOs with holes. +* Fri May 14 2004 schwab@suse.de +- Fix rounding in alarm [#40552]. +* Wed May 12 2004 schwab@suse.de +- Fix uninitialized array in regexp compiler [#40009]. +* Tue May 11 2004 kukuk@suse.de +- Apply lot of fixes from current CVS +- Fix alignment of stack for makecontext on x86-64 [Bug #39413] +- Make XTABS identical to TABDLY on PPC +* Wed May 05 2004 kukuk@suse.de +- Add some header fixes to match POSIX +* Tue May 04 2004 meissner@suse.de +- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) +* Mon May 03 2004 kukuk@suse.de +- Port --mlock option for ld.so from UL1 [Bug #39569] +* Tue Apr 20 2004 kukuk@suse.de +- Add execstack fix for s390 +* Mon Apr 19 2004 kukuk@suse.de +- Update to current CVS version (fix problems with new binutils + and gcc) +* Mon Apr 19 2004 kukuk@suse.de +- Add pthread_getattr_np and syslog fixes from CVS +- Update gb18030 and big5hkscs gconv modules [Bug #39080] +* Sat Apr 17 2004 schwab@suse.de +- Pacify autobuild. +* Thu Apr 15 2004 kukuk@suse.de +- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf +- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] +* Wed Apr 14 2004 schwab@suse.de +- Remove /usr/i386-linux from ld.so.conf, +* Wed Apr 14 2004 kukuk@suse.de +- Fix linux/compiler.h for glibc inclusion +- Really fix ffsl on s390x +* Fri Apr 09 2004 schwab@suse.de +- Fix syntax error in memcmp. +* Fri Apr 09 2004 kukuk@suse.de +- Update from CVS: linuxthread debug fixes +- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) +- Fix ffsl weak alias on s390x +- Update to 2.6.5 kernel headers +* Wed Apr 07 2004 meissner@suse.de +- forward umount to umount2 on ppc64 because umount syscall + does not exist +* Mon Apr 05 2004 kukuk@suse.de +- Sync with current CVS (which is nearly identical with most of + our latest patches) +* Fri Apr 02 2004 kukuk@suse.de +- Make fstatvfs64 working on 32bit architectures +- Add fwrite LFS fix from aj +- Add powerpc fixes from CVS +- Fix wrong errno code for shm_unlink [Bug #38013] +* Wed Mar 31 2004 kukuk@suse.de +- Add three fixes from CVS: + - Call __nptl_deallocate_tsd for main thread, too + - setgroups: optimizations for huge number of groups + - initgroups: Limit the initial allocation to 64 entries +* Tue Mar 30 2004 kukuk@suse.de +- Add IUTF8 to bits/termios.h [Bug #34725] +- *affinitiy.c: Prepend GLIBC_ to version names +* Sat Mar 27 2004 kukuk@suse.de +- Fix wrong return value of getXXbyYY_r in case key was not + found [Bug #37181] +- Fix typo in dl-open +- Don't set errno in NSS NIS module if group was not found +* Fri Mar 26 2004 aj@suse.de +- Add pow10/pow10f aliases for AMD64. +* Thu Mar 25 2004 kukuk@suse.de +- Update to latest CVS snapshot +* Sat Mar 20 2004 aj@suse.de +- Fix further problems with sched_[sg]etaffinity calls. +* Fri Mar 19 2004 aj@suse.de +- Fix sched_setaffinity compile problem. +* Fri Mar 19 2004 kukuk@suse.de +- Remove conflict with special aaa_base version (rpm will handle + this with file conflict) +* Fri Mar 19 2004 kukuk@suse.de +- Add SuSE abi note +- Add madvise patch +- Update to current CVS +* Wed Mar 17 2004 kukuk@suse.de +- Use official NPTL version fix +- Add LD_DEBUG=statistic for x86-64 +- Fix two JB_SIZE redefinitions on PPC +- Add two fixes for execstack +* Mon Mar 15 2004 kukuk@suse.de +- Require kernel 2.6.4 for glibc/NPTL +- Remove siginfo_t/si_band patch (needs to be fixed in kernel) +- Update linuxthreads_db and nptl_db +- Add libidn fixes from CVS +* Sat Mar 13 2004 kukuk@suse.de +- Adjust filelist (remove libcidn.a and libcidn_p.a) +* Sat Mar 13 2004 kukuk@suse.de +- Update to current CVS (merge of patches) +- Fix siginfo_t/si_band [Bug #34330] +* Thu Mar 11 2004 mls@suse.de +- Add mdns support to resolver library +* Thu Mar 11 2004 kukuk@suse.de +- Update kernel headers to 2.6.4 +- Update to current glibc CVS +* Wed Mar 10 2004 bg@suse.de +- Update hppa patches. +* Mon Mar 08 2004 kukuk@suse.de +- Fix vDSO on IA64 +* Mon Mar 08 2004 kukuk@suse.de +- Update from glibc CVS: + - Add libidn + - Lot of dynamic loader changes +* Thu Mar 04 2004 kukuk@suse.de +- Update from glibc CVS: + - Fix posix_fadvise vs. posix_fadvise64 +* Tue Mar 02 2004 kukuk@suse.de +- Fix PPC kernel header files +- Update from glibc CVS + - NPTL fixes + - nscd fixes +* Tue Mar 02 2004 schwab@suse.de +- Fix ppc32 to always use stat64 syscall. +* Sat Feb 28 2004 kukuk@suse.de +- Update from glibc CVS: + - Fix compiler warnings + - NPTL: Don't use CLONE_STOPPED + - Revert vDSO changes +* Fri Feb 27 2004 kukuk@suse.de +- Update from glibc CVS: + - Real NGROUP_MAX fix + - Lot of NPTL fixes + - clock_settime fix +- Add no_NO back (required by OpenI18N spec and [Bug #34745]) +* Thu Feb 26 2004 kukuk@suse.de +- Workaround broken NGROUP_MAX function +* Thu Feb 26 2004 kukuk@suse.de +- Add insserv PreRequires for nscd +- Update from CVS: NPTL and getaddrinfo memory leak fixes, + Get NGROUP_MAX from /proc filesystem +* Sat Feb 21 2004 kukuk@suse.de +- Update from CVS: IA64 relo fix, lot of PPC fixes +- Fix linux/mod_devicetable.h for userland inclusion +- Enable NPTL on Alpha +* Fri Feb 20 2004 schwab@suse.de +- Fix pthread_barrier_wait. +* Thu Feb 19 2004 kukuk@suse.de +- Update from CVS: More NPTL fixes +- nscd.init: Cleanups +* Wed Feb 18 2004 kukuk@suse.de +- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and + asm-ppc/bitops.h for userland inclusion. +* Wed Feb 18 2004 bg@suse.de +- Update hppa patches for current glibc +- Add workaround for ICE in hppa +* Tue Feb 17 2004 kukuk@suse.de +- Update from CVS: + - PPC nptl compatiblity fix + - NSCD patches merged + - ld.so.preload: Igreno missing files + - getaddrinfo: Fix problem with IPv6 addresses +* Tue Feb 17 2004 aj@suse.de +- Fix string optimizations init code on AMD64. +* Sat Feb 14 2004 kukuk@suse.de +- Update from CVS (for NPTL fixes and new PPC longjmp) +- Fix nscd deadlock with kernel 2.6 [Bug #34507] +* Fri Feb 13 2004 aj@suse.de +- Add more string/memory optimizations for AMD64. +* Thu Feb 12 2004 kukuk@suse.de +- Fix regex bug with invalid UTF-8 strings +* Thu Feb 12 2004 aj@suse.de +- Add more string optimizations for AMD64. +* Wed Feb 11 2004 kukuk@suse.de +- Update to current CVS snapshot +- Fix _IOC_TYPECHECK on s390/s390x/parisc +- Compile rtkaio only with NPTL +- Remove glibcbug (was dropped since glibc uses bugzilla now) +- Disable parallel build on s390x +* Tue Feb 10 2004 schwab@suse.de +- Work around invalid use of kernel headers in some packages. +* Fri Feb 06 2004 kukuk@suse.de +- Add kernel stat fix for PPC +- Add fix for off-by-one error in regex code +* Thu Feb 05 2004 kukuk@suse.de +- Update kernel header files to 2.6.2 +* Tue Feb 03 2004 bg@suse.de +- Update hppa patch +* Tue Feb 03 2004 kukuk@suse.de +- Fix ypclnt speedup patch +- Update to current CVS snapshot +* Mon Jan 26 2004 kukuk@suse.de +- Update to current CVS snapshot +* Wed Jan 21 2004 aj@suse.de +- Do not run in parallel on s390. +* Mon Jan 19 2004 ro@suse.de +- really fix linux/percpu.h to compile in userland +* Fri Jan 16 2004 kukuk@suse.de +- Update version.h to 2.6.1 +- Fix linux/percpu.h to compile in userland +- Update to current CVS snapshot +- Revert nscd path changes +* Wed Jan 14 2004 kukuk@suse.de +- Update to Kernel Headers 2.6.1 +- Update to current CVS snapshot +- Don't ignore make check on IA64 any longer +* Sat Jan 10 2004 schwab@suse.de +- Locale no_NO has been renamed to nb_NO. +* Fri Jan 09 2004 kukuk@suse.de +- Temporary ignore make check on IA64 and PPC + (known kernel/compiler bugs) +* Fri Jan 09 2004 stepan@suse.de +- fix v4l2 headers +* Wed Jan 07 2004 kukuk@suse.de +- Update to glibc CVS from 20040107 +- Remove manual pages which are now part of man-pages +* Thu Dec 18 2003 kukuk@suse.de +- Update to glibc CVS from 20031218 +- Update ot final 2.6.0 kernel headers +- Fix syntax error in spec file +- Update HPPA patch +* Mon Dec 15 2003 kukuk@suse.de +- Update to glibc CVS from 20031215 +* Fri Dec 12 2003 kukuk@suse.de +- Update to glibc CVS from 20031212 +- disable rtkaio (does not work with kernel 2.6 yet) +* Fri Dec 05 2003 kukuk@suse.de +- Update to glibc 2.3.3 CVS +- Make an extra sub package for nscd +* Thu Nov 27 2003 kukuk@suse.de +- Update to glibc CVS from 20031127 +- Add nsswitch.conf (moved from aaa_base) +- Add ld.so.conf (moved from aaa_base) [Bug #33277] +- Fix ceil on AMD64 +* Fri Nov 21 2003 kukuk@suse.de +- Update to glibc CVS from 20031121 +- Obsolete epoll (glibc-devel contains now this header files) +* Wed Nov 19 2003 kukuk@suse.de +- Add patch so that ld.so supports linuxthreads and nptl +- PPC64 requires kernel 2.4.21 +- Update to glibc CVS from 20031119 +* Fri Nov 14 2003 bg@suse.de +- Add hppa patches for current glibc. +* Fri Nov 14 2003 kukuk@suse.de +- Update to glibc CVS from 20031114 +- Remove PPC64 symbol version patch +* Thu Nov 13 2003 schwab@suse.de +- Fix last change covering libNoVersion. +* Mon Nov 10 2003 schwab@suse.de +- Specfile cleanup. +* Thu Nov 06 2003 kukuk@suse.de +- Update to glibc CVS from 20031106 +* Wed Nov 05 2003 uli@suse.de +- added a number of ARM fixes (glibc-2.3.2-armformat.patch, + glibc-armisa.patch, glibc-sjlj.patch) +* Mon Oct 27 2003 kukuk@suse.de +- Update to glibc CVS from 20031027 +- kernel headers: update to 2.6.0-test9 +- nptl: Use -fno-unit-at-a-time on AMD64, too +* Thu Oct 23 2003 kukuk@suse.de +- Update to current CVS version +* Wed Oct 22 2003 kukuk@suse.de +- nptl: Fix prototype in configure script +- nptl: Use -fno-unit-at-a-time +- locale: Add nb_NO +* Fri Oct 17 2003 kukuk@suse.de +- Increase timeout for make check on overloaded architectures +* Thu Oct 16 2003 kukuk@suse.de +- Fix building as normal user +* Wed Oct 15 2003 kukuk@suse.de +- Fix putpwent/putgrent +- Make build as normal user +* Tue Oct 14 2003 kukuk@suse.de +- Update to glibc CVS from 20031014 +* Tue Oct 14 2003 aj@suse.de +- Fix w_acosf for AMD64. +* Tue Oct 14 2003 kukuk@suse.de +- Fix asm-sparc/kbio.h to compile kbdrate/X11 +* Mon Oct 13 2003 kukuk@suse.de +- Update to kernel header files from 2.6.0-test7 +* Fri Oct 10 2003 schwab@suse.de +- Fix misnamed syscalls. +* Tue Oct 07 2003 kukuk@suse.de +- Update to glibc CVS from 20031007 +* Fri Oct 03 2003 kukuk@suse.de +- Update to glibc CVS from 20031003 +- Fix kernel ioctl header files for PPC/PPC64 +- Removed dl-reloc.c fix, merged upstream +* Wed Oct 01 2003 kukuk@suse.de +- Update to glibc cvs from 20031001 +- Remove sysmacros.h fix, merged upstream +- Add dl-reloc.c fix for compiler warnings +* Mon Sep 29 2003 kukuk@suse.de +- Update kernel-headers to 2.6.0-test6 +- Fix sysmacros.h to compile with -ansi +* Sat Sep 27 2003 kukuk@suse.de +- Update to glibc CVS from 20030927 +- Remove SO_BSDCOMPAT (obsoleted by kernel) +- Make _IOC_TYPECHECK useable for userland programs +* Fri Sep 26 2003 kukuk@suse.de +- Remove obsolete patches +- Update to crypt_blowfish 0.4.5 +* Fri Sep 26 2003 kukuk@suse.de +- Update to glibc CVS from 20030926 +- Update to nptl 0.60 +* Sat Sep 20 2003 kukuk@suse.de +- Update to glibc CVS from 20030920 +- Update to nptl 0.59 +* Wed Sep 17 2003 kukuk@suse.de +- Disable TLS for i586 glibc [Bug #31034] +* Tue Sep 16 2003 kukuk@suse.de +- Remove db1.85 +* Mon Sep 15 2003 kukuk@suse.de +- Update to glibc CVS from 20030915 +* Mon Sep 15 2003 kukuk@suse.de +- Update to kernel 2.6.0-test5 header files +* Sat Sep 13 2003 kukuk@suse.de +- Add librtkaio, a librt using kernel aio +* Thu Sep 11 2003 kukuk@suse.de +- Update to current CVS +- Remove patches which are merged in CVS +- Update to nptl-0.58 +- Remove _POSIX_VERSION hack +- version.h: Fix comment how to compile kernel modules +* Wed Sep 10 2003 aj@suse.de +- Install en_US.ISO-8859-15 under this name [#30373]. +* Tue Sep 09 2003 aj@suse.de +- Fix last patch. +* Mon Sep 08 2003 aj@suse.de +- Fix setting up of user signal handler in linuxthreads on x86_64. +* Fri Sep 05 2003 kukuk@suse.de +- Add dl-tls.c to fix out of memory with static TLS errors +* Wed Sep 03 2003 kukuk@suse.de +- Update glibc-linuxthreads +- Set _POSIX_VERSION back to 199209 +* Mon Sep 01 2003 kukuk@suse.de +- Fix typo in nss_compat patch +* Mon Sep 01 2003 kukuk@suse.de +- Add opendir fix for usage with NPTL +- Fix getspnam/getspent in nss_compat [Bug #29689] +- Set _POSIX2_VERSION back to 199209 +* Wed Aug 27 2003 kukuk@suse.de +- Update to current CVS version +* Mon Aug 25 2003 kukuk@suse.de +- Update to current CVS version +* Mon Aug 18 2003 aj@suse.de +- increase stack size for linuxthreads/set-context. +* Mon Aug 18 2003 aj@suse.de +- Fix mathinline.h for i386 to compile under C++ without warnings. +* Sun Aug 17 2003 ro@suse.de +- kernel-headers.dif: don't include device.h from videodev.h +* Fri Aug 15 2003 kukuk@suse.de +- Update to current cvs (fixes assert usage in C++ source code) +* Thu Aug 14 2003 kukuk@suse.de +- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] +- On i686, include glibc with and without floating stack enabled +- Update to current cvs +- Update to nptl 0.56 +* Thu Jul 31 2003 kukuk@suse.de +- Reenable new quota.h +* Wed Jul 30 2003 kukuk@suse.de +- Update to current cvs +- Update kernel headers to 2.6.0-test2 +- Disable sys/quota.h update +- Enable TLS on AMD64 again +* Mon Jul 28 2003 kukuk@suse.de +- Update to current cvs +- Disable TLS on AMD64 temporary +- Update sys/quota.h to match new kernel implementation +* Fri Jul 25 2003 kukuk@suse.de +- Update to current cvs +- Update kernel headers to 2.6.0-test1 +- Update to nptl 0.55 +- Change minimal symbol version on PPC64 back to 2.2.5 +* Wed Jul 23 2003 meissner@suse.de +- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just + merging over the asm-ppc64 things). +* Wed Jul 23 2003 aj@suse.de +- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without + rpath. +- Fix bugs exposed by unit-at-a-time option. +* Fri Jul 18 2003 aj@suse.de +- Fix compilation with unit-at-a-time enabled compiler. +- Enlarge stack for tst-setcontext test. +* Mon Jun 30 2003 kukuk@suse.de +- Update to current CVS (includes if_arp.h and nss_compat changes) +- Update to nptl 0.50 +- Kernel header fixes for userland inclusion +* Wed Jun 25 2003 kukuk@suse.de +- Update to current CVS +- Add target host and CVS checkout to glibc version printout +- Adjust fnmatch fix +- Update kernel headers to 2.5.73 +* Tue Jun 24 2003 kukuk@suse.de +- Fix typos in syscalls.list on Alpha +* Mon Jun 23 2003 kukuk@suse.de +- fix typo in linuxthreads on SPARC +- Update to current CVS +- Update to nptl 0.48 +* Thu Jun 19 2003 kukuk@suse.de +- Disable nss_compat patch again +* Wed Jun 18 2003 kukuk@suse.de +- Fix reading of locale.alias file +- Update to current CVS snapshot +- Update to nptl 0.47 +- Some kernel header file fixes for PPC64/IA64 +- Update nss_compat patch +* Thu Jun 12 2003 kukuk@suse.de +- Update to current CVS snapshot +- Finish patch for printing linker warning +* Wed Jun 11 2003 kukuk@suse.de +- Update to nptl 0.45 +- Update to current CVS snapshot +- Add patch to print linker warning, if a static binary calls + functions using NSS +* Tue Jun 10 2003 kukuk@suse.de +- Use %%find_lang macro and cleanup glibc-locale filelist +* Thu Jun 05 2003 kukuk@suse.de +- Complete mathinline.h fixes +* Thu Jun 05 2003 kukuk@suse.de +- linux/compiler.h: Define all inline variants to __inline__ +* Wed Jun 04 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Update to nptl 0.43 +- More kernel header fixes +- Make --no-archive default for localedef +* Tue May 27 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Update to nptl 0.40 +- Disable nss_compat patch +- Update to kernel headers from 2.5.70 +* Fri May 23 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Add patches to make nss_compat work with every service +* Mon May 19 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Add patch for better binary compatibility (errno, h_errno) +* Fri May 16 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Update to nptl 0.39 +- Add URL tag +- asm-i386/byteorder.h: fix asm vs. __asm__ +* Wed May 14 2003 schwab@suse.de +- Fix missing syscall numbers on ia64. +* Wed May 14 2003 kukuk@suse.de +- More kernel headers fixes for i386, ia64, ppc and s390 +* Mon May 12 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Fix lot of more kernel headers +- Adjust netinet/igmp.h patch +- Copy linux/version.h in place before compiling glibc +* Fri May 09 2003 kukuk@suse.de +- Fix bits/stdio.h +- Fix lot of kernel headers to work in userspace +- Fix netinet/igmp.h +- Enable TLS on PPC +* Wed May 07 2003 kukuk@suse.de +- Update CVS snapshot +- Enable TLS on IA64 +- Update to nptl 0.37 +- Update kernel-headers to 2.5.69 +* Thu Apr 24 2003 ro@suse.de +- fix install_info --delete call and move from preun to postun +* Fri Apr 11 2003 aj@suse.de +- Do not build locales in parallel. +* Tue Apr 08 2003 kukuk@suse.de +- Disable TLS for PPC +* Mon Apr 07 2003 kukuk@suse.de +- Update CVS snapshot +* Sat Apr 05 2003 kukuk@suse.de +- Disable TLS for ia64 +- Update to nptl 0.34 +- Update to CVS snapshot +* Fri Apr 04 2003 kukuk@suse.de +- Remove libNoVersion from filelist on alpha +- Add nptl docu +* Fri Apr 04 2003 kukuk@suse.de +- Update to nptl 0.33 +- Run ldconfig after installation +- Update to CVS snapshot +* Sat Mar 29 2003 kukuk@suse.de +- Update to CVS snapshot +- Add USAGI patches for kernel-headers +- Add nptl on i686 +- Enable --with-tls +- Implement NI_NUMSERICSCOPE for getnameinfo +- Implement AI_V4MAPPED/AI_ALL for getaddrinfo +- Implement AI_ADDRCONFIG for getaddrinfo +- Add USAGI patch for kernel headers +* Mon Mar 24 2003 schwab@suse.de +- Sanitize . +* Mon Mar 17 2003 aj@suse.de +- Fix tst-aio7 testcase and enable it again. +- Enable %%fs for x86-64. +- Install en_US.ISO-8859-15 for libstdc++. +- Fix bits/syscalls.h for x86-64. +* Thu Mar 13 2003 kukuk@suse.de +- Revert tcgetattr change [Bug #25173/#25174] +* Tue Mar 04 2003 aj@suse.de +- Fix lround/lrint functions. +* Sat Mar 01 2003 aj@suse.de +- Update to 2.3.2 release. +* Wed Feb 26 2003 kukuk@suse.de +- Update to current cvs snapshot (fixes OOo and mysql problems) +* Mon Feb 24 2003 kukuk@suse.de +- Disable aio7 test on s390(x), too. +* Mon Feb 24 2003 kukuk@suse.de +- Update to current cvs snapshot (post 2.3.2-pre1) +- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS +- Remove libc23-ppc64-cvshead20021210.patch +* Thu Feb 20 2003 kukuk@suse.de +- Update to current cvs snapshot +- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be + included already. +* Wed Feb 19 2003 olh@suse.de +- add glibc-2.3-ppc32-textrel.patch + glibc-2.3-ppc64-vfork-20030214.patch +* Fri Feb 14 2003 kukuk@suse.de +- Extend getent to print all IP addresses of one host +* Thu Feb 13 2003 kukuk@suse.de +- Update to current snapshot +* Wed Feb 12 2003 kukuk@suse.de +- Update to current snapshot (contains official fix for #23513) +* Tue Feb 11 2003 kukuk@suse.de +- Update to current snapshot +- Fix corruption of internal data in gethostbyname2 [Bug #23513] +* Sun Feb 09 2003 aj@suse.de +- Fix cancellation of system calls on x86-64. +* Sat Feb 08 2003 kukuk@suse.de +- Fix wrong logic in dynamic resolv.conf patch +* Fri Feb 07 2003 kukuk@suse.de +- Fix access of _res symbol in multithreaded programs +- Add "dynamic resolv.conf" patch to libnss_dns, too. +- Remove obsolete db2 manual pages +- Update to current snapshot (fixes [Bug #23363]) +* Thu Feb 06 2003 kukuk@suse.de +- Update to current snapshot +- Use install-info for info pages +* Tue Feb 04 2003 schwab@suse.de +- Fix regexp parsing. +* Mon Feb 03 2003 meissner@suse.de +- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for + ppc and ppc64 kernel headers. +* Fri Jan 31 2003 schwab@suse.de +- Fix building on s390[x]. +* Fri Jan 31 2003 kukuk@suse.de +- Update to current glibc cvs +* Thu Jan 30 2003 aj@suse.de +- Fix one build problem on sparc. +- Fix asm-x86_64/mtrr.h. +* Wed Jan 29 2003 kukuk@suse.de +- Update to current glibc cvs +- Fix libm-ulps for x86-64 and ia64 +* Thu Jan 23 2003 schwab@suse.de +- Fix use of DT_FINI_ARRAY. +- Temporarily disable tst-aio7 test on ia64. +* Tue Jan 14 2003 schwab@suse.de +- Fix ia64 for non-tls build. +* Tue Jan 14 2003 aj@suse.de +- Package libpthread_nonshared.a. +* Mon Jan 13 2003 kukuk@suse.de +- Add fixed version of x86-64-linuxthreads-disable-fs.diff +- Readd parts of libm-x86-64.diff +- Update to current cvs snapshot +- Add fix for errno compatibility +- Add s390(x) vfork fixes +* Sun Jan 12 2003 kukuk@suse.de +- Update to current cvs snapshot +* Fri Jan 03 2003 bg@suse.de +- removed obsolete patch for hppa +* Fri Dec 20 2002 kukuk@suse.de +- Update to current cvs snapshot +- Obsoletes glibc-2.3-setjmp-ppc64.diff +- Obsoletes build-alpha.diff +- Obsoletes libm-x86-64.diff +- Disable activate-spinlocks.diff temporary +- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) +* Tue Dec 17 2002 olh@suse.de +- remove glibc-2.2.5-ppc64-bits-socket_h.diff + add glibc-2.3-setjmp-ppc64.diff + add libc23-ppc64-cvshead20021210.patch + dont run configure in subshell, it can fail and rpm cant catch it +* Fri Dec 13 2002 schwab@suse.de +- Add more ia64 syscalls. +* Fri Dec 06 2002 olh@suse.de +- build also the locals parallel + do not fail with parallel calculation on lowmem systems +* Tue Dec 03 2002 aj@suse.de +- Build parallel on x86-64. +- Activate fast spinlocks in malloc for x86 and x86-64. +- Integrate new math library from AMD for x86-64. +* Fri Nov 29 2002 bg@suse.de +- Fix build on hppa. +* Thu Nov 28 2002 aj@suse.de +- Fix build on alpha. +* Thu Nov 28 2002 aj@suse.de +- Update to CVS version from 2002-11-28. +- Do not use %%fs for threads for now on x86-64. +- Fix fnmatch bug with multibyte strings. +* Tue Nov 12 2002 bg@suse.de +- Updated hppa patches +* Thu Nov 07 2002 kukuk@suse.de +- getaddrinfo(): get host information for AF_INET and AF_INET6 only + from the same service [Bug #21237] +* Thu Nov 07 2002 bg@suse.de +- Fix build of linuxthreads for hppa +* Tue Nov 05 2002 bg@suse.de +- Use current kernel-headers for parisc +- Add support for hppa +* Tue Nov 05 2002 kukuk@suse.de +- Update to current CVS snapshot +* Tue Oct 22 2002 schwab@suse.de +- Fix ia64 syscall numbers. +* Mon Oct 21 2002 schwab@suse.de +- Fix alignment in locale-archive. +* Mon Oct 21 2002 kukuk@suse.de +- Update to glibc 2.3.1 cvs 20021021 +- Remove nss_dns6 patch +* Tue Oct 15 2002 kukuk@suse.de +- Update to glibc 2.3.1 cvs 20021015 +* Wed Oct 02 2002 kukuk@suse.de +- Update to glibc 2.3 cvs 20021002 +- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) +* Wed Sep 25 2002 mls@suse.de +- build with -finline-limit=2000 on mips/armv4l +* Tue Sep 17 2002 schwab@suse.de +- Add new ia64 syscall numbers. +* Mon Sep 16 2002 meissner@suse.de +- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. +- Aligned powerpc bits/sem.h to be the same as the other 64bit + archs, keeping the 32bit layout. +- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. +* Thu Sep 12 2002 meissner@suse.de +- ppc/ppc64: added more biarch things to the SystemV IPC headers + which are needed to get 64bit ipc / IPC_STAT to work. +* Mon Sep 09 2002 bk@suse.de +- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) +- s390x: requires 64-bit kernel +* Mon Sep 09 2002 kukuk@suse.de +- Increase minimum value of MAXPACKET in libnss_dns, too +* Mon Sep 09 2002 uli@suse.de +- all architectures are created equal, but some are more equal + than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, + ia64, s390x and ppc64 to fit 64 bit __ino_t type +* Fri Sep 06 2002 mls@suse.de +- fix squeeze bug in db-1.85: set dirty flag after page modification +* Fri Sep 06 2002 kukuk@suse.de +- Increase minimum value of MAXPACKET +* Mon Sep 02 2002 kukuk@suse.de +- Fix asm header files for sparc/sparc64 +* Fri Aug 30 2002 aj@suse.de +- Revert linuxthreads for x86-64 for now. +* Wed Aug 28 2002 aj@suse.de +- Add optimized math routines for x86-64. +* Tue Aug 27 2002 olh@suse.de +- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" +* Mon Aug 26 2002 olh@suse.de +- add ppc64_glibc_2.2.5_sunrpc-fix.patch + * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds + __powerpc64__ specific fields and adjust size/alignment for 64-bit. +* Fri Aug 23 2002 aj@suse.de +- Use floating stacks for x86-64. +- Add LICENSE file. +- Fix profiling code on x86-64. +- Add strcspn, strpbrk and strspn optimizations for x86-64. +- Fix makecontext for x86-64. +* Thu Aug 15 2002 aj@suse.de +- Use biarch headers already for building so that bits/syscalls.h is + build correctly. +- Fix bits/syscalls.h for x86-64. +- Remove *xattr patches. +* Thu Aug 08 2002 kukuk@suse.de +- Update to current cvs (calloc variable overflow fixed) +- Apply fix for calloc fix +- Add *xattr system calls and error number +* Tue Aug 06 2002 kukuk@suse.de +- Update to current cvs (IPv6 fixes) +* Mon Aug 05 2002 aj@suse.de +- Implement *context functions for x86-64. +* Sat Aug 03 2002 kukuk@suse.de +- Update kernel-headers to version 2.4.19 +- Add PreRequires "filesystem". +* Thu Aug 01 2002 bk@suse.de +- added s390-may2002.diff with some chunks from may2002 drop +- give make check a second chance on s390(x), but fail if not(race) +* Tue Jul 30 2002 kukuk@suse.de +- sunrpc/xdr_array.c: Check for variable overflow +- Ignore failed make check on s390(x) +* Tue Jul 30 2002 aj@suse.de +- Add optimisations for x86-64. +* Mon Jul 29 2002 kukuk@suse.de +- Don't allocate/free category name in setlocale() unnecessarily + (for IBM Java [Bug #17065]). +* Tue Jul 23 2002 kukuk@suse.de +- Update to current glibc cvs (pread/pwrite fixes) +- Remove extra de.po, is in official tarball now. +* Sat Jul 20 2002 aj@suse.de +- Fix profiling for x86-64. +* Fri Jul 19 2002 meissner@suse.de +- Fixed the PPC64 patch, several superflous files removed. +- Reenabled make check for ppc64. +* Wed Jul 17 2002 kukuk@suse.de +- Update to current glibc cvs +- Fix kernel headers for s390/s390x +- Move some binaries/shell scripts and manual pages to the + correct subpackage +* Tue Jul 16 2002 meissner@suse.de +- Merged latest PowerPC patch from IBM. + * Lots of ppc64 related fixes. + * Start of biarch support. + * Changed struct stat in 64bit ABI. +* Fri Jul 12 2002 aj@suse.de +- Add biarch patch for s390 and s390x. +* Mon Jul 08 2002 aj@suse.de +- Add some optimized x86-64 math routines and a fixed lgammal + implementation. +- Testsuite on x86-64 should pass now. +- Run ldconfig in postinstall. +- Fix memleak in catgets. +* Sat Jul 06 2002 kukuk@suse.de +- Fix typo in create_biarch_asm.sh (asm-sparc path) +* Thu Jul 04 2002 kukuk@suse.de +- Fix typo in manpages/Makefile +- Fix filelist (on some archs ld-linux.so.2 was missing) +* Thu Jul 04 2002 kukuk@suse.de +- Revert mktime patch (check for year < 70) +- Replace ifarch i386 with ix86 +- Add patch for arm +- Include pt_chown again +* Wed Jul 03 2002 kukuk@suse.de +- Add more new manual pages +- Fix spec file (renaming of ld-*, creating of include/asm header + files) +- Update to current CVS version +- Fix kernel-headers for x86-64 (don't overwrite patched version) +- Rename Equador -> Ecuador [Bug #16648] +- Add hint about security problem of host caching with nscd to + config file. +* Tue Jun 25 2002 aj@suse.de +- Fix dl-machine.h for x86-64 to compile with new binutils. +- Fix mtrr.h header for x86-64. +- Do not package pt_chown. +* Tue Jun 18 2002 sf@suse.de +- reverted changes from Tue Jun 11 10:04:55 CEST 2002 + (took the kernel-headers from before, readded patch9) +- add new archive with kernel-headers for x86_64 +- add autofs patch +* Mon Jun 17 2002 bk@suse.de +- remove s390* from the list of archs that ignore check fail +* Thu Jun 13 2002 uli@suse.de +- fixed typos in spec +* Thu Jun 13 2002 schwab@suse.de +- Fix ssize_t and __ipc_pid_t for ppc64. +* Wed Jun 12 2002 uli@suse.de +- fix errlist.c for ARM as well +* Tue Jun 11 2002 sf@suse.de +- made new kernel-header archive from kernel-source +- added asm-ppc64 to kernel-headers +- removed patch9 as it is obsoleted by the new kernel-headers +* Fri Jun 07 2002 olh@suse.de +- update asm-ppc64/ioctls.h, missing TIOCGDEV +* Thu Jun 06 2002 olh@suse.de +- fix glibc-ppc64 patch +* Thu Jun 06 2002 olh@suse.de +- update ppc64_glibc_ldconfig.diff +* Thu Jun 06 2002 ke@suse.de +- Update de.po from + http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. +- Use only translated entries to make the testsuite happy; call + msgattrib on de.po and hu.po [# 16438]. +* Mon Jun 03 2002 aj@suse.de +- Clean up generation of asm includes for bi-arch systems. +- Enable profiling for x86-64. +* Mon Jun 03 2002 kukuk@suse.de +- Add fix for weak declaration "_old_sys_nerr" +- Remove already disabled alpha patch +- Update to current CVS +* Sat Jun 01 2002 olh@suse.de +- fix stat for real, wrong size for st_nlink +* Wed May 29 2002 olh@suse.de +- add ppc64_glibc_2.2.5-types.diff, fixes stat() +* Wed May 29 2002 olh@suse.de +- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance +* Thu May 23 2002 aj@suse.de +- Rename __thread to fix problems with GCC 3.2. +* Mon May 20 2002 olh@suse.de +- add ppc64 kernel headers + add create_ppc_asm.sh + update ppc64 patch, use /lib64/ld64.so.1 + move generic syscalls.list to ppc64/32 + set/getrlimit GLIBC2.0 is ppc32 only + use parallel make on ppc and ppc64 + do not chroot as user + cleanup nested ifarch for dynamic linker +* Wed May 15 2002 aj@suse.de +- Fix building of linuxthreads with current GCC. +* Mon May 13 2002 olh@suse.de +- fix ppc64 RTLDLIST ld64.so rewrite +* Sat May 11 2002 schwab@suse.de +- Add div/mod compatibility functions for ia64. +* Fri May 10 2002 olh@suse.de +- add ppc64 support +* Thu May 09 2002 aj@suse.de +- Add sys/io.h for x86-64. +* Mon May 06 2002 ihno@suse.de +- corrected memory calculation for parallel build +* Fri May 03 2002 kukuk@suse.de +- Add fix to compile math.h on SPARC with g++ +* Thu May 02 2002 kukuk@suse.de +- Update to current CVS 2.2 branch +- Add x86-64 fix for crti.o and /usr/lib64 with libpthread +* Fri Apr 26 2002 kukuk@suse.de +- define sqrtl alias for PowerPC +* Mon Apr 22 2002 aj@suse.de +- Fix vfork for x86-64. +- Fix handling of ld.so.cache for x86-64. +* Thu Apr 18 2002 aj@suse.de +- Allow testsuite to fail for x86-64. +- Add ULPs for x86-64. +* Wed Apr 17 2002 kukuk@suse.de +- Update to current snapshot (mktime and dl fixes) +- Update hu.po +- Do not build a profiled glibc for x86-64 +* Fri Apr 12 2002 kukuk@suse.de +- Update to current snapshot (fix SPARC compile) +- Revert do-lookup.h patch on Alpha (does not work here) +* Wed Apr 10 2002 aj@suse.de +- Fix linuxthreads for x86-64. +* Wed Apr 10 2002 aj@suse.de +- Add x86-64.diff to fix glob64. +* Wed Apr 10 2002 kukuk@suse.de +- Update kernel-headers to 2.4.19pre4 (with x86-64 support) +- Update glibc to current cvs snapshot +- Allow old currencies (before EUR) +* Tue Apr 02 2002 aj@suse.de +- Update ULPs. +* Thu Mar 21 2002 kukuk@suse.de +- Create html pages after installation of info pages [Bug #15283] +* Tue Mar 12 2002 kukuk@suse.de +- Add db1 fix if blocksize is not ^2 +* Sat Mar 02 2002 kukuk@suse.de +- Add fix for format string bug +* Sat Mar 02 2002 kukuk@suse.de +- Fix return value of nice wrapper +* Fri Mar 01 2002 kukuk@suse.de +- Add fix for corrupt ut_line +- Add fix for current gcc 3.1 +- Add patch for nice return values +* Thu Feb 28 2002 kukuk@suse.de +- Add fix for rtime, swscanf and ia64 +* Mon Feb 18 2002 kukuk@suse.de +- When a dlopened module references a weak symbol from another + dlopened module (loaded with RTLD_GLOBAL) no dependency was + generated for this fact, so the second module was unloaded even + if the first one was still around. +* Sun Feb 17 2002 kukuk@suse.de +- Add pthread/signal bugfix [Bug #13280] +- Fix directory file list (don't include /usr/include) +* Thu Feb 14 2002 kukuk@suse.de +- Use defattr in spec file to avoid problems with not existing + UIDs and rpm. +* Thu Feb 14 2002 aj@suse.de +- Update ULPs for GCC 3.1. +* Wed Feb 13 2002 kukuk@suse.de +- Apply db1 patch from mls@suse.de to fix rpm problems +* Tue Feb 12 2002 ro@suse.de +- fix owner/group for kernel headers +* Mon Feb 11 2002 kukuk@suse.de +- Add another solution for the glob problem +* Thu Feb 07 2002 kukuk@suse.de +- Add fix for glob (glob should not call globfree) +- Add fix for innetgr +* Wed Feb 06 2002 kukuk@suse.de +- Use correct BuildRoot +* Wed Feb 06 2002 kukuk@suse.de +- Update hu.po +* Wed Feb 06 2002 kukuk@suse.de +- Set LC_CTYPE for error messages in localedef [Bug #12878] +* Mon Feb 04 2002 kukuk@suse.de +- Add fixes from CVS: dynamic loader, readv and writev seg.fault + and various architecture fixes for alpha and mips +- Don't compile with -g on Alpha +- Add fix for possible endless loop fix +* Fri Feb 01 2002 bk@suse.de +- merged s390x lib64 patch and spec file changes +* Wed Jan 23 2002 kukuk@suse.de +- Split glibc into glibc and glibc-locale +- Create more UTF8 locale +* Mon Jan 21 2002 kukuk@suse.de +- Update to official glibc 2.2.5 +* Wed Jan 16 2002 kukuk@suse.de +- Remove /var/adm/setup/setup.timeconfig +* Wed Jan 16 2002 kukuk@suse.de +- Apply S390 fix +* Wed Jan 09 2002 kukuk@suse.de +- Update to glibc 2.2.5pre1 +* Tue Jan 08 2002 egmont@suselinux.hu +- Added partial Hungarian translation +* Tue Jan 08 2002 kukuk@suse.de +- Add patch to pass math tests with gcc 3.x +- Update to current CVS version +* Thu Jan 03 2002 kukuk@suse.de +- Update kernel header files to 2.4.17 +* Tue Jan 01 2002 kukuk@suse.de +- Update current CVS version, add final fixes for LSB test suite +* Tue Dec 18 2001 poeml@suse.de +- Install ja_JP.SJIS locale. +* Sat Dec 15 2001 schwab@suse.de +- Fix missing declaration of md5_uintptr. +* Fri Dec 14 2001 kukuk@suse.de +- Update to correct CVS branch +* Thu Dec 13 2001 kukuk@suse.de +- Update to current CVS +- Increase PATH_MAX to 4096 (including the leading zero) +- Clear pointer if asprintf fails +- pthread_key_delete should not contact thread manager before it + is created. +* Tue Dec 11 2001 kukuk@suse.de +- Fix prelink patch +* Tue Dec 11 2001 kukuk@suse.de +- Add fixes for LSB.os test suite (ftw, grantpt and ftok) +- Update to current CVS +- Add prelink patch +* Fri Dec 07 2001 kukuk@suse.de +- Merge with current CVS +- Add blowfish crypt +* Fri Nov 23 2001 uli@suse.de +- added armv4l arch to spec +- added arm kernel headers +- added trivial fix for dl-machine.h from CVS (see arm.dif) +* Thu Nov 15 2001 adrian@suse.de +- add mips architecture to spec file +- apply further mips fixes for ld +- activate %%clean again +* Sun Nov 11 2001 kukuk@suse.de +- Fix lost permissions of shell script on SPARC +* Thu Nov 08 2001 kukuk@suse.de +- Add 32bit UID fixes +* Thu Nov 08 2001 kukuk@suse.de +- More fixes for asm-ia64 header files +* Thu Nov 08 2001 kukuk@suse.de +- Fix asm-i386/processor.h (don't align struct) +- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) +- Correct version number in version.h +* Wed Nov 07 2001 uli@suse.de +- fixed sys/io.h, sysmacros.h for icc +* Tue Nov 06 2001 kukuk@suse.de +- Update kernel-headers to 2.4.14 +* Thu Nov 01 2001 kukuk@suse.de +- Use again old rules to generate html files +* Sun Oct 21 2001 schwab@suse.de +- Fix inttypes.h for C++. +* Fri Oct 19 2001 aj@suse.de +- Fix typo in inttypes.h that presents compilation by non-GCC compilers. +* Tue Oct 16 2001 aj@suse.de +- Update elf.h to include x86-64 defines since those are needed + by some other tools. +* Fri Sep 28 2001 schwab@suse.de +- Readd patch from 2001-09-10 with corrections. +- Add compatibility patch for GCC 3. This allows to build glibc + with GCC 3. +- Require that make check succeeds on ia64. +* Thu Sep 13 2001 aj@suse.de +- Add a better version of the threads-fork patch that fixes some + more places where interrupts can occur and does this a bit cleaner. +* Tue Sep 11 2001 aj@suse.de +- Remove patch from 2001-09-10 since it breaks the dynamic linker. +* Tue Sep 11 2001 aj@suse.de +- Fix bug in linuxthreads where manager and threads could + get out of synch due to an interrupted read call. +* Mon Sep 10 2001 schwab@suse.de +- Fix handling of dependent dynamic objects for dlopen/dlclose. +* Sat Sep 08 2001 kukuk@suse.de +- Don't create gconv cache (else iconv --list seg.faults) +* Tue Aug 28 2001 aj@suse.de +- Improve dynamic linker to relocate dynamic objects faster. This + implies a small cache for symbol lookups and handling the ld -z combreloc + feature if binaries are linked this way. +* Fri Aug 24 2001 kukuk@suse.de +- Add fix for handling of %%l[] in vfscanf +- ldconfig removes stale links now +- Remove susehelp config files, now in susehelp itself +* Wed Aug 22 2001 aj@suse.de +- Update s390 patch from IBM. +* Fri Aug 17 2001 kukuk@suse.de +- Adjust dns6 patch for 2.2.4 +- Fix spec file (include lost libnss_dns6.so) +- Fix versionnumber in version.h [Bug #9759] +- Update kernel-header to 2.4.9 +* Thu Aug 16 2001 aj@suse.de +- Update to 2.2.4 final. Add s390-ucontext patch. +* Fri Aug 10 2001 aj@suse.de +- Update to current glibc version. Do not use the hardlink program + for compatification since localedef will do this itself now. + Create gconv cache. +* Wed Aug 01 2001 aj@suse.de +- Add patch for zic to create copy of the timezone instead + of a symbolic link so that the file exists even if /usr is not + mounted. + Use i486 instead of i386 as default architecture for i386. +* Sat Jul 28 2001 kukuk@suse.de +- Fix problem with linux/spinlock.h +* Fri Jul 27 2001 kukuk@suse.de +- Update kernel-header files to 2.4.7 +* Thu Jul 26 2001 froh@suse.de +- add fix for failing tst-setcontext on s390 +* Wed Jul 25 2001 aj@suse.de +- Add patch to fix loading of dynamic libs in static programs for PPC. +* Fri Jul 20 2001 kukuk@suse.de +- Update to current CVS snapshot +- Disable tst-regex and test-lfs +* Fri Jul 06 2001 kukuk@suse.de +- Add da_DK@euro and da_DK.UTF-8 +* Thu Jul 05 2001 kukuk@suse.de +- Update to current CVS snapshot +- Remove obsolete cvs patch +- Fix DNS/IPv6 patch +- Hardlink equal locale files +* Fri Jun 22 2001 olh@suse.de +- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check +* Tue Jun 19 2001 bk@suse.de +- added s390x support to spec file +* Tue Jun 19 2001 aj@suse.de +- Fix profiling on PowerPC. +* Fri Jun 15 2001 schwab@suse.de +- Fixup asm-ia64/atomic.h for user-space inclusion. +* Tue Jun 12 2001 aj@suse.de +- Fix testsuite for sparc. +* Mon Jun 11 2001 aj@suse.de +- Fix testsuite for powerpc and S390, build again on alpha. +* Tue May 22 2001 kukuk@suse.de +- Update to current CVS snapshot +- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] +* Sun May 13 2001 kukuk@suse.de +- Don't use absolute paths in pre-install-section +* Fri May 04 2001 kukuk@suse.de +- Add special version.h which fails on compiling kernel modules +* Sat Apr 28 2001 kukuk@suse.de +- Update to glibc 2.2.3, kernel-headers-2.4.4 +* Tue Apr 24 2001 schwab@suse.de +- Fix feenableexcept on ia64. +* Tue Apr 24 2001 aj@suse.de +- Install some more UTF-8 locales, fix tr_TR locale. +* Thu Apr 12 2001 kukuk@suse.de +- Include our own texi2html +* Wed Apr 11 2001 kukuk@suse.de +- Add fixes from SuSE kernel header files +- Add patch to reload /etc/resolv.conf if there was changes +- Add glibc.conf for susehelp (glibc-html pages) +* Mon Apr 09 2001 schwab@suse.de +- Fix ld.so for kernel 2.4.3 on ia64. +* Thu Apr 05 2001 kukuk@suse.de +- Add more fixes from CVS +* Tue Apr 03 2001 kukuk@suse.de +- Fix isdn header files from kernel-headers +* Fri Mar 30 2001 kukuk@suse.de +- Update kernel header files to 2.4.3 +* Fri Mar 30 2001 kukuk@suse.de +- Merge s390 patches +- Fix rcmd_af() (allow PF_UNSPEC) +* Fri Mar 30 2001 aj@suse.de +- Add some small fixes, fix spec file for removal of man-pages. +* Thu Mar 29 2001 kukuk@suse.de +- Don't provide kernel_headers any longer +- Remove some man-pages which are now official in the man-pages + package +* Thu Mar 29 2001 aj@suse.de +- Fix shmfs recognition. +* Thu Mar 29 2001 ro@suse.de +- added db-splitmask fix from mls (hopefully work around bug in db1) +* Wed Mar 28 2001 aj@suse.de +- Fix s390 to not generate wrong relocations, work around compiler + error. +* Wed Mar 21 2001 kukuk@suse.de +- glibc-devel obsoletes and provides linclude +* Tue Mar 20 2001 kukuk@suse.de +- Add strtok and other fixes from CVS +- Add yp_all fix +* Tue Mar 13 2001 kukuk@suse.de +- Add more s390 string.h fixes +* Mon Mar 12 2001 aj@suse.de +- Add fixes for s390, don't run testsuite on s390 for now. +* Fri Mar 09 2001 kukuk@suse.de +- Fix linux/init.h header file +* Fri Mar 09 2001 aj@suse.de +- Handle new EM_S390 value. +* Fri Mar 09 2001 kukuk@suse.de +- kernel-heaer fixes to build on Alpha +* Thu Mar 08 2001 ro@suse.de +- update kernel-headers to 2.4.2 +* Thu Mar 08 2001 ro@suse.de +- kernel-header fixes to build on s390 +* Thu Feb 22 2001 schwab@suse.de +- More kernel header fixes for IA64. +* Tue Feb 20 2001 kukuk@suse.de +- Remove optimisation not supported on all plattforms +* Mon Feb 19 2001 kukuk@suse.de +- Fix Optimization of glibc build +- Add Optimization for alphaev6 and sparcv9 +* Sat Feb 17 2001 kukuk@suse.de +- Update to glibc 2.2.2 from CVS +* Thu Feb 15 2001 kukuk@suse.de +- kernel header fixes for SPARC and IA64 +* Tue Feb 13 2001 kukuk@suse.de +- Make optimization for i686 work +- Add manual page for ldd +* Mon Feb 12 2001 kukuk@suse.de +- Fix more kernel headers +* Thu Feb 08 2001 kukuk@suse.de +- Fix more kernel-headers +* Wed Feb 07 2001 kukuk@suse.de +- Delete links in pre install section for glibc-devel +* Wed Feb 07 2001 kukuk@suse.de +- Fix kernel-header includes +* Tue Feb 06 2001 kukuk@suse.de +- Fix creating of /usr/include/asm on SPARC +- Add more CVS patches +* Mon Feb 05 2001 kukuk@suse.de +- Add some patches from CVS +- Include our own kernel header files +* Mon Jan 22 2001 aj@suse.de +- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. +* Mon Jan 22 2001 aj@suse.de +- Fix mmap64 on powerpc. +* Tue Jan 16 2001 aj@suse.de +- Fix sunrpc-udp.diff, add mman.h fix for powerpc. +* Wed Jan 10 2001 aj@suse.de +- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. +* Tue Jan 09 2001 aj@suse.de +- Add glibc-2.2.secure.diff to close some security holes. +* Wed Jan 03 2001 schwab@suse.de +- Fix strtol and friends on 64 bit platforms. +- Use 8192 as default pagesize on ia64. +- Scan AUX vector also in statically linked programs. +* Wed Jan 03 2001 aj@suse.de +- Build some UTF-8 locales using a patch from Markus Kuhn. +* Wed Dec 13 2000 aj@suse.de +- Add compatibility patch for IPv6 and Linux 2.2. +* Wed Dec 13 2000 schwab@suse.de +- Update ia64 patch. +* Sat Dec 09 2000 kukuk@suse.de +- Fix resolver bug +* Fri Dec 01 2000 kukuk@suse.de +- Add bug fixes for setlocale and strncat +- strip gconv modules +* Fri Nov 24 2000 kukuk@suse.de +- Fix typo in spec file +* Thu Nov 23 2000 kukuk@suse.de +- Add hack for POWER3 +* Wed Nov 22 2000 kukuk@suse.de +- Add strncat bugfix for S/390 +* Tue Nov 21 2000 kukuk@suse.de +- Don't bulid 32bit compat packages +* Mon Nov 20 2000 schwab@suse.de +- Remove use of getpagesize syscall on ia64. +- Follow DT_INIT/DT_FINI change in compiler. +* Sun Nov 19 2000 kukuk@suse.de +- Minor specfile fixes +* Thu Nov 16 2000 kukuk@suse.de +- Add lot of more bug fixes +* Tue Nov 14 2000 kukuk@suse.de +- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de +* Mon Nov 13 2000 aj@suse.de +- Fix noversion.diff and spec file. +* Sat Nov 11 2000 kukuk@suse.de +- Fix nssv1 on PowerPC +- no libNoVersion on SPARC +* Fri Nov 10 2000 kukuk@suse.de +- Disable make check on PowerPC and Alpha +* Fri Nov 10 2000 kukuk@suse.de +- Update to final glibc 2.2 +* Fri Nov 03 2000 kukuk@suse.de +- Update to glibc-2.2-20001103 (glibc-2.1.97) +- Don't install libNoVersion on PowerPC +- Rename nssv1 -> glibc-nssv1 +- Rename libd -> glibc-profile, move libg.a to libc +- Rename libcinfo -> glibc-info +- Rename libchtml -> glibc-html +- Rename localedb -> glibc-i18ndata +- Rename libc -> glibc-devel +- Rename shlibs -> glibc +* Sat Oct 28 2000 kukuk@suse.de +- Update to glibc-2.2-20001028 +- Enable more checks +* Fri Oct 27 2000 aj@suse.de +- Fix NoVersion patch +* Wed Oct 25 2000 kukuk@suse.de +- Update to glibc-2.2-20001025 +* Sun Oct 22 2000 kukuk@suse.de +- Update to glibc 2.2-20001021 +- Update glibc-db to 2.1.95 +- Update ia64 patch +* Fri Oct 20 2000 kukuk@suse.de +- Update to glibc 2.2-20001020 +- Add s390 spec file changes +* Tue Oct 10 2000 schwab@suse.de +- Update to glibc 2.2-20001009. +- Fix TRAMPOLINE_TEMPLATE for ia64. +* Sun Oct 01 2000 schwab@suse.de +- Export more ia64 specific symbols. +* Tue Sep 26 2000 kukuk@suse.de +- Update to glibc 2.2-20000926 +* Mon Sep 25 2000 kukuk@suse.de +- Update to glibc 2.2-20000925 snapshot +* Thu Sep 14 2000 schwab@suse.de +- Update ia64 patch. +* Fri Sep 08 2000 bk@suse.de +- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) +* Wed Sep 06 2000 fober@suse.de +- merge s390-7.0 with STABLE: + - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 + - added new changes from IBM s390 codedrop + - removed glibc-dlopen-2.1.3-s390.diff which is + incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now +* Tue Sep 05 2000 kukuk@suse.de +- Add glibc-2.1.security.dif +* Fri Sep 01 2000 olh@suse.de +- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc +* Wed Aug 30 2000 olh@suse.de +- remove sysdeps/powerpc/memset.S on ppc for POWER3 +* Mon Aug 28 2000 olh@suse.de +- add glibc-2.1.sgi_fam.dif +- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 +* Mon Aug 21 2000 garloff@suse.de +- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) +* Tue Jul 25 2000 kukuk@suse.de +- Add mmap fix for PowerPC +* Tue Jul 11 2000 kukuk@suse.de +- Remove "mutex is owned by current thread" bugfix for IBMs jdk +* Mon Jun 26 2000 schwab@suse.de +- Update ia64 patch. +* Tue Jun 20 2000 kukuk@suse.de +- Move html docu in extra package +- Update ia64 patch +* Wed May 31 2000 kukuk@suse.de +- Remove LICENSE file, it's the same as COPYING.LIB +- Add libc docu as html +* Sun May 28 2000 kukuk@suse.de +- Fix ldconfig on PPC and IA64 +* Sat May 27 2000 kukuk@suse.de +- Merge new ldconfig fixes +* Fri May 26 2000 kukuk@suse.de +- Update ia64 patch +* Fri May 26 2000 kukuk@suse.de +- Fix (f)truncate64 and xdr_uint8_t +* Wed May 24 2000 kukuk@suse.de +- Fix ldconfig.8 manual page +* Thu May 18 2000 bk@suse.de +- added s390 dlopen fix +* Tue May 16 2000 bk@suse.de +- updated s390 patches to match IBM_codedrop_2000_05_15 +* Fri May 12 2000 kukuk@suse.de +- Fix netinet/in.h IPv6 compare +* Fri May 12 2000 schwab@suse.de +- Update ia64 patches. +* Fri May 12 2000 kukuk@suse.de +- Don't apply LFS patch +* Tue May 09 2000 kukuk@suse.de +- Add LFS patches +* Mon May 08 2000 kukuk@suse.de +- Add lot of bug fixes from CVS +* Tue Apr 25 2000 kukuk@suse.de +- Fix nscd/getgrnam bug +* Thu Apr 20 2000 kukuk@suse.de +- Remove /var/mail -> /var/spool/mail patch +- Update nscd.conf.5 manual page +* Wed Apr 12 2000 kukuk@suse.de +- Add nscd patch from Chris Wing +* Wed Apr 12 2000 kukuk@suse.de +- Add ldconfig fix from aj@suse.de +* Wed Apr 12 2000 schwab@suse.de +- More ia64 patches. +- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. +* Mon Apr 10 2000 kukuk@suse.de +- Support asm-sparc64 and asm-sparc on SPARC +* Mon Apr 10 2000 kukuk@suse.de +- Create /etc/ld.so.cache always with permissions 0644 +- Update ia64 patches +* Thu Apr 06 2000 schwab@suse.de +- Fix dynamic linker bug in ia64. +- Add ia64 spinlocks for db2. +* Tue Apr 04 2000 schwab@suse.de +- New IA64 patches. +- Fix ldconfig -p. +* Mon Apr 03 2000 bk@suse.de +- s390 team added s390 patches +* Wed Mar 22 2000 kukuk@suse.de +- Fix last SPARC patch +* Tue Mar 21 2000 kukuk@suse.de +- Add SPARC patches +- Add IA64 patches +* Wed Mar 15 2000 kukuk@suse.de +- Remove personality call (problematic on Alpha) +- Fix typo in localeconv +- alpha/ioperm.c> Add entry for "Nautilus". +* Tue Mar 07 2000 kukuk@suse.de +- Add locale SIGSEGV fix +- Fix getdate bug +* Fri Feb 25 2000 kukuk@suse.de +- Update to final glibc 2.1.3 + fix for bigendian machines +* Thu Feb 24 2000 kukuk@suse.de +- Update to current glibc cvs snapshot +- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. + Old libnss_dns.so.2 will only make IPv4 lookups. +* Tue Feb 22 2000 kukuk@suse.de +- Update to current glibc cvs snapshot (2.1.3pre4) +* Sat Feb 05 2000 kukuk@suse.de +- Add missing defines for SPARC bits/termios.h +* Thu Feb 03 2000 kukuk@suse.de +- Add regex patch from Andreas Schwab +* Wed Feb 02 2000 kukuk@suse.de +- Add ldconfig fix +- Update to current glibc cvs snapshot +- Fix sys/io.h on Intel (C++) +* Mon Jan 24 2000 kukuk@suse.de +- Fix duplicate setrlimit +* Mon Jan 24 2000 kukuk@suse.de +- Update to current glibc cvs snapshot +* Wed Jan 19 2000 kukuk@suse.de +- Update to current glibc cvs snapshot +* Sat Jan 15 2000 ro@suse.de +-fixed ppc db2-patch +* Fri Jan 14 2000 kukuk@suse.de +- Add patches for Intel and PPC +* Fri Jan 14 2000 kukuk@suse.de +- Add patch for SPARC +* Thu Jan 13 2000 kukuk@suse.de +- Move info pages to /usr/share/info +* Mon Jan 10 2000 kukuk@suse.de +- Add ipv6 patches for getent +* Mon Jan 10 2000 kukuk@suse.de +- Move manual pages for applications and config files into + shlibs package +- Update to current glibc 2.1.3 snapshot +* Fri Dec 17 1999 kukuk@suse.de +- Add new ldconfig patches +- Add aio patch +- Add fix for bits/string2.h +* Wed Dec 15 1999 kukuk@suse.de +- add ldconfig.8 +* Wed Dec 15 1999 kukuk@suse.de +- Update to current glibc 2.1.3 snapshot +- Fix get/setrlimit problems +* Thu Dec 09 1999 kukuk@suse.de +- Update to current glibc 2.1.3 snapshot +- Add new ldconfig +* Sun Dec 05 1999 kukuk@suse.de +- Disable make check for SPARC (kernel bug) +- Add setrlimit patches +- Update to current glibc 2.1.3 snapshot +* Fri Nov 26 1999 kukuk@suse.de +- Update to current glibc 2.1.3 snapshot. +* Tue Oct 26 1999 kukuk@suse.de +- Add fix for correct accounting of needed bytes (gethnamaddr.c) +- Remove not exported, public names from internal md5 functions +* Mon Oct 25 1999 kukuk@suse.de +- Add fix for missing nexttowardl aliase +* Tue Oct 19 1999 kukuk@suse.de +- Add security fix for iruserok +* Sat Oct 16 1999 kukuk@suse.de +- Build libNoVersion.so.1 on every platform +* Mon Oct 11 1999 kukuk@suse.de +- Add linuxthreads/signals.c fix from Andreas Schwab +- Remove dangling symlink (Bug #544) +- Add more bug fixes +* Fri Oct 08 1999 kukuk@suse.de +- Add timezone update +* Fri Oct 08 1999 kukuk@suse.de +- Add NIS+ shadow parser fix +* Thu Oct 07 1999 kukuk@suse.de +- Update to official glibc 2.1.2, add important fixes +- Update nscd, add manual pages for it +* Mon Sep 20 1999 ro@suse.de +- libc: added requires kernel_headers +* Mon Sep 13 1999 bs@suse.de +- ran old prepare_spec on spec file to switch to new prepare_spec. +* Mon Sep 06 1999 kukuk@suse.de +- Update to current glibc 2.1.2 cvs snapshot +- Remove use auf automake in spec file +* Fri Sep 03 1999 kukuk@suse.de +- Update to current glibc 2.1.2 cvs snapshot +- Use RPM macros for configure +* Wed Aug 25 1999 kukuk@suse.de +- Update to current glibc 2.1.2 cvs snapshot +* Thu Aug 19 1999 kukuk@suse.de +- Add PowerPC patches from Uli Hecht +- Cleanup of SPEC file +- Create a profiling version +* Sat Aug 14 1999 kukuk@suse.de +- disable nscd hosts caching by default +- Apply patch from HJL for broken gethostbyname_r in libnss_dns +* Fri Jul 16 1999 kukuk@suse.de +- Add header fix for autoconf/g++ +- Move pt_chown and gconv modules from libc to shlibs +* Wed Jul 14 1999 kukuk@suse.de +- Remove /etc/localtime from filelist +* Mon Jul 12 1999 kukuk@suse.de +- Add more bug fixes from cvs +- Add ld.so bug fix from Andreas Schwab +* Thu Jul 08 1999 kukuk@suse.de +- configure for i386-unknown-linux +* Wed Jul 07 1999 kukuk@suse.de +- Remove alpha patch, it's now in glibc 2.1.2 cvs +- Add more bug fixes from cvs +- Remove malloc patch (breaks StarOffice) +* Tue Jul 06 1999 kukuk@suse.de +- Add openpty patch from Andreas Schwab + (openpty now works if /dev/pts is not mounted) +* Fri Jul 02 1999 kukuk@suse.de +- Remove warning von zic about symlinks. +* Mon Jun 28 1999 kukuk@suse.de +- Remove ndbm links, now in gdbm +* Fri Jun 25 1999 kukuk@suse.de +- Add a lot of more fixes +- Add nscd fixes and enable nscd on alpha +* Mon Jun 14 1999 kukuk@suse.de +- Add nss_dns and fget* fixes. +- Add nscd patches for NIS+ +* Thu Jun 10 1999 kukuk@suse.de +- Fix daemon() for MT programs +- Add libio fixes +* Fri May 28 1999 kukuk@suse.de +- Add fix for docu +- Disable nscd for alpha again +* Wed May 26 1999 kukuk@suse.de +- Update to version 2.1.1 +* Mon May 17 1999 kukuk@suse.de +- Update to snapshot from 16.5.1999 +- Add manpages +- Add __setfpucw to libNoVersion (intel) +- Add COPYING and COPYING.LIB +* Fri May 07 1999 kukuk@suse.de +- Update to snapshot from 6.5.1999 +- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps +- Add patch for Alpha RX164 +- Add workaround for nscd on Alpha +* Wed Apr 28 1999 kukuk@suse.de +- Remove latest fnmatch patches from Uli Drepper +* Tue Apr 27 1999 kukuk@suse.de +- update to cvs version of Apr 26 1999 +- fix pmap_set/pmap_unset for DHCP clients +- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create + the symbolic links. +* Tue Apr 20 1999 kukuk@suse.de +- update to cvs version of Apr 20 1999 +- remove sunrpc.diff +- fix nssv1 package +- only include nscd on intel +- install /etc/nscd.conf +* Mon Apr 12 1999 kukuk@suse.de +- update to cvs version of Apr 11 1999 +- Fix paths in paths.h +- install linuxthreads man pages and documentation +- Add sunrpc patch for Alpha and security fixes +- added links for el_GR and ru_RU.KOI8-R in usr/share/locale +* Wed Mar 31 1999 bs@suse.de +- don't use lx_hack for build +* Tue Mar 16 1999 ro@suse.de +- libc.texinfo: changed to build with stable texinfo version +* Mon Mar 15 1999 ro@suse.de +- update to 2.1.1 (cvs of Mar 15 1999) +- update nssv1 to 2.0.2 +* Sat Feb 20 1999 ro@suse.de +- fixed specfile (lddlibc4 not built on alpha) +* Sat Feb 20 1999 ro@suse.de +- fixed specfile ... +* Sat Feb 20 1999 ro@suse.de +- added automake to neededforbuild +* Sat Feb 20 1999 ro@suse.de +- added nss-v1 modules (to keep old rpm happy with file owners) +* Fri Feb 19 1999 ro@suse.de +- update to cvs-version of 1999/02/18 +* Fri Sep 25 1998 ro@suse.de +- fixed specfile +* Fri Sep 25 1998 ro@suse.de +- update: use cvs-version of 980925 + edited db/Makefile to ignore messed up target-dependency +* Mon Sep 21 1998 ro@suse.de +- update: use cvs-version of 980921 +* Mon Sep 14 1998 ro@suse.de +- update: use today's cvs-version +* Wed Sep 02 1998 ro@suse.de +- build for 586 since egcs generates code for 686 that does NOT run + on 586 !!! (eg strtok) +* Fri Aug 21 1998 ro@suse.de +- updated to cvs-version 20.8.98 + added gettext as neededforbuild (so configure shuts up) + glibc-linuxthreads is contained in main archive now +* Tue Jun 16 1998 ro@suse.de +- added symlink usr/include/X11 +* Thu May 28 1998 ro@suse.de +- added symlinks to linux include files +* Thu May 28 1998 bs@suse.de +- moved ".so" Links to package libc. +* Wed May 27 1998 bs@suse.de +- changed version do `date` +* Wed May 27 1998 ro@suse.de +- created specfile to build libc, shlibs, libd, libcinfo + localedb, timezone, +- former libc renamed to libc5. diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index 0ed1ff3..f7dd6c5 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -15,7 +15,7 @@ #include #include -#define verbose_exec(failcode, path...) \ +#define verbose_exec(failcode, path...) \ do \ { \ char *const arr[] = { path, NULL }; \ @@ -34,9 +34,6 @@ main (void) char initpath[256]; struct stat root, init_root; - /* First, get rid of platform-optimized libraries. We remove any we have - ever built, since otherwise we might end up using some old leftover - libraries when new ones aren't installed in their place anymore. */ #ifdef REMOVE_TLS_DIRS const char *library[] = {"libc.so.6", "libc.so.6.1", "libm.so.6", "libm.so.6.1", "librt.so.1", "librtkaio.so.1", @@ -135,8 +132,8 @@ main (void) timeout and leave /etc/initrunlvl. */ if (readlink ("/proc/1/exe", initpath, 256) <= 0 || readlink ("/proc/1/root", initpath, 256) <= 0 || - access ("/.buildenv", F_OK) == 0 || /* XEN build */ stat ("/proc/1/root", &init_root) < 0 || + stat ("/.buildenv", &init_root) < 0 || /* XEN build */ stat ("/", &root) < 0 || init_root.st_dev != root.st_dev || init_root.st_ino != root.st_ino) _exit (0); diff --git a/iconv-reset-input-buffer.patch b/iconv-reset-input-buffer.patch deleted file mode 100644 index 27abf73..0000000 --- a/iconv-reset-input-buffer.patch +++ /dev/null @@ -1,330 +0,0 @@ -Fix iconv buffer handling with IGNORE error handler (bug #18830) - - [BZ #18830] - * iconv/skeleton.c (FUNCTION_NAME): Use RESET_INPUT_BUFFER only if - no irreversible characters occurred. - * iconv/gconv_simple.c (internal_ucs4_loop) - (internal_ucs4_loop_unaligned, internal_ucs4_loop_single) - (ucs4_internal_loop, ucs4_internal_loop_unaligned) - (ucs4_internal_loop_single, internal_ucs4le_loop) - (internal_ucs4le_loop_unaligned, internal_ucs4le_loop_single) - (ucs4le_internal_loop, ucs4le_internal_loop_unaligned) - (ucs4le_internal_loop_single): Add const to outend. - * iconv/Makefile (tests): Add tst-iconv7. - * iconv/tst-iconv7.c: New file. - -Index: glibc-2.22/iconv/Makefile -=================================================================== ---- glibc-2.22.orig/iconv/Makefile -+++ glibc-2.22/iconv/Makefile -@@ -42,7 +42,8 @@ CFLAGS-charmap.c = -DCHARMAP_PATH='"$(i1 - CFLAGS-linereader.c = -DNO_TRANSLITERATION - CFLAGS-simple-hash.c = -I../locale - --tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 -+tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 \ -+ tst-iconv7 - - others = iconv_prog iconvconfig - install-others-programs = $(inst_bindir)/iconv -Index: glibc-2.22/iconv/gconv_simple.c -=================================================================== ---- glibc-2.22.orig/iconv/gconv_simple.c -+++ glibc-2.22/iconv/gconv_simple.c -@@ -76,7 +76,7 @@ __attribute ((always_inline)) - internal_ucs4_loop (struct __gconv_step *step, - struct __gconv_step_data *step_data, - const unsigned char **inptrp, const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, const unsigned char *outend, - size_t *irreversible) - { - const unsigned char *inptr = *inptrp; -@@ -120,7 +120,8 @@ internal_ucs4_loop_unaligned (struct __g - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - const unsigned char *inptr = *inptrp; -@@ -169,7 +170,8 @@ internal_ucs4_loop_single (struct __gcon - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - mbstate_t *state = step_data->__statep; -@@ -231,7 +233,7 @@ __attribute ((always_inline)) - ucs4_internal_loop (struct __gconv_step *step, - struct __gconv_step_data *step_data, - const unsigned char **inptrp, const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, const unsigned char *outend, - size_t *irreversible) - { - int flags = step_data->__flags; -@@ -298,7 +300,8 @@ ucs4_internal_loop_unaligned (struct __g - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - int flags = step_data->__flags; -@@ -368,7 +371,8 @@ ucs4_internal_loop_single (struct __gcon - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - mbstate_t *state = step_data->__statep; -@@ -443,7 +447,7 @@ __attribute ((always_inline)) - internal_ucs4le_loop (struct __gconv_step *step, - struct __gconv_step_data *step_data, - const unsigned char **inptrp, const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, const unsigned char *outend, - size_t *irreversible) - { - const unsigned char *inptr = *inptrp; -@@ -488,7 +492,8 @@ internal_ucs4le_loop_unaligned (struct _ - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - const unsigned char *inptr = *inptrp; -@@ -540,7 +545,8 @@ internal_ucs4le_loop_single (struct __gc - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - mbstate_t *state = step_data->__statep; -@@ -601,7 +607,7 @@ __attribute ((always_inline)) - ucs4le_internal_loop (struct __gconv_step *step, - struct __gconv_step_data *step_data, - const unsigned char **inptrp, const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, const unsigned char *outend, - size_t *irreversible) - { - int flags = step_data->__flags; -@@ -671,7 +677,8 @@ ucs4le_internal_loop_unaligned (struct _ - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - int flags = step_data->__flags; -@@ -745,7 +752,8 @@ ucs4le_internal_loop_single (struct __gc - struct __gconv_step_data *step_data, - const unsigned char **inptrp, - const unsigned char *inend, -- unsigned char **outptrp, unsigned char *outend, -+ unsigned char **outptrp, -+ const unsigned char *outend, - size_t *irreversible) - { - mbstate_t *state = step_data->__statep; -Index: glibc-2.22/iconv/skeleton.c -=================================================================== ---- glibc-2.22.orig/iconv/skeleton.c -+++ glibc-2.22/iconv/skeleton.c -@@ -597,6 +597,10 @@ FUNCTION_NAME (struct __gconv_step *step - inptr = *inptrp; - /* The outbuf buffer is empty. */ - outstart = outbuf; -+#ifdef RESET_INPUT_BUFFER -+ size_t loop_irreversible -+ = lirreversible + (irreversible ? *irreversible : 0); -+#endif - - #ifdef SAVE_RESET_STATE - SAVE_RESET_STATE (1); -@@ -671,8 +675,16 @@ FUNCTION_NAME (struct __gconv_step *step - if (__glibc_unlikely (outerr != outbuf)) - { - #ifdef RESET_INPUT_BUFFER -- RESET_INPUT_BUFFER; --#else -+ if (loop_irreversible -+ == lirreversible + (irreversible ? *irreversible : 0)) -+ { -+ /* RESET_INPUT_BUFFER can only work if there -+ were no irreversible characters during the -+ last loop. */ -+ RESET_INPUT_BUFFER; -+ goto done_reset; -+ } -+#endif - /* We have a problem in one of the functions below. - Undo the conversion upto the error point. */ - size_t nstatus __attribute__ ((unused)); -@@ -682,9 +694,9 @@ FUNCTION_NAME (struct __gconv_step *step - outbuf = outstart; - - /* Restore the state. */ --# ifdef SAVE_RESET_STATE -+#ifdef SAVE_RESET_STATE - SAVE_RESET_STATE (0); --# endif -+#endif - - if (__glibc_likely (!unaligned)) - { -@@ -701,7 +713,7 @@ FUNCTION_NAME (struct __gconv_step *step - lirreversiblep - EXTRA_LOOP_ARGS); - } --# if POSSIBLY_UNALIGNED -+#if POSSIBLY_UNALIGNED - else - { - if (FROM_DIRECTION) -@@ -720,7 +732,7 @@ FUNCTION_NAME (struct __gconv_step *step - lirreversiblep - EXTRA_LOOP_ARGS); - } --# endif -+#endif - - /* We must run out of output buffer space in this - rerun. */ -@@ -731,9 +743,11 @@ FUNCTION_NAME (struct __gconv_step *step - the invocation counter. */ - if (__glibc_unlikely (outbuf == outstart)) - --data->__invocation_counter; --#endif /* reset input buffer */ - } - -+#ifdef RESET_INPUT_BUFFER -+ done_reset: -+#endif - /* Change the status. */ - status = result; - } -Index: glibc-2.22/iconv/tst-iconv7.c -=================================================================== ---- /dev/null -+++ glibc-2.22/iconv/tst-iconv7.c -@@ -0,0 +1,68 @@ -+/* Test iconv buffer handling with the IGNORE error handler. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+/* Derived from BZ #18830 */ -+#include -+#include -+#include -+ -+ -+static int -+do_test (void) -+{ -+ iconv_t cd = iconv_open ("ASCII//IGNORE", "ASCII"); -+ if (cd == (iconv_t) -1) -+ { -+ puts ("iconv_open failed"); -+ return 1; -+ } -+ -+ char input[5 + 3] = { 0, 0, 0, 0, 0, '1', '\200', '2' }; -+ char *inptr = input; -+ size_t insize = sizeof (input); -+ char output[5]; -+ char *outptr = output; -+ size_t outsize = sizeof (output); -+ -+ size_t ret = iconv (cd, &inptr, &insize, &outptr, &outsize); -+ if (ret != (size_t) -1) -+ { -+ puts ("iconv succeeded"); -+ return 1; -+ } -+ if (errno != E2BIG) -+ { -+ puts ("iconv did not set errno to E2BIG"); -+ return 1; -+ } -+ if (inptr != input + sizeof (output) - outsize) -+ { -+ printf ("iconv consumed %td characters\n", inptr - input); -+ return 1; -+ } -+ -+ if (iconv_close (cd) == -1) -+ { -+ puts ("iconv_close failed"); -+ return 1; -+ } -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.23.90/sysdeps/s390/multiarch/gconv_simple.c -=================================================================== ---- glibc-2.23.90.orig/sysdeps/s390/multiarch/gconv_simple.c -+++ glibc-2.23.90/sysdeps/s390/multiarch/gconv_simple.c -@@ -403,7 +403,7 @@ ICONV_VX_NAME (internal_ucs4le_loop) (st - const unsigned char **inptrp, - const unsigned char *inend, - unsigned char **outptrp, -- unsigned char *outend, -+ const unsigned char *outend, - size_t *irreversible) - { - const unsigned char *inptr = *inptrp; -@@ -503,7 +503,7 @@ ICONV_VX_NAME (ucs4_internal_loop) (stru - const unsigned char **inptrp, - const unsigned char *inend, - unsigned char **outptrp, -- unsigned char *outend, -+ const unsigned char *outend, - size_t *irreversible) - { - int flags = step_data->__flags; -@@ -630,7 +630,7 @@ ICONV_VX_NAME (ucs4le_internal_loop) (st - const unsigned char **inptrp, - const unsigned char *inend, - unsigned char **outptrp, -- unsigned char *outend, -+ const unsigned char *outend, - size_t *irreversible) - { - int flags = step_data->__flags; diff --git a/ld-so-hwcap-x86-64.patch b/ld-so-hwcap-x86-64.patch deleted file mode 100644 index b99547a..0000000 --- a/ld-so-hwcap-x86-64.patch +++ /dev/null @@ -1,190 +0,0 @@ -2017-09-11 H.J. Lu - - [BZ #22093] - * sysdeps/x86/cpu-features.c (init_cpu_features): Initialize - GLRO(dl_hwcap) to HWCAP_X86_64 for x86-64. - * sysdeps/x86/dl-hwcap.h (HWCAP_COUNT): Updated. - (HWCAP_IMPORTANT): Likewise. - (HWCAP_X86_64): New enum. - (HWCAP_X86_AVX512_1): Updated. - * sysdeps/x86/dl-procinfo.c (_dl_x86_hwcap_flags): Add "x86_64". - * sysdeps/x86_64/Makefile (tests): Add tst-x86_64-1. - (modules-names): Add x86_64/tst-x86_64mod-1. - (LDFLAGS-tst-x86_64mod-1.so): New. - ($(objpfx)tst-x86_64-1): Likewise. - ($(objpfx)x86_64/tst-x86_64mod-1.os): Likewise. - (tst-x86_64-1-clean): Likewise. - * sysdeps/x86_64/tst-x86_64-1.c: New file. - * sysdeps/x86_64/tst-x86_64mod-1.c: Likewise. - -Index: glibc-2.26/sysdeps/x86/cpu-features.c -=================================================================== ---- glibc-2.26.orig/sysdeps/x86/cpu-features.c -+++ glibc-2.26/sysdeps/x86/cpu-features.c -@@ -336,7 +336,6 @@ no_cpuid: - - /* Reuse dl_platform, dl_hwcap and dl_hwcap_mask for x86. */ - GLRO(dl_platform) = NULL; -- GLRO(dl_hwcap) = 0; - #if !HAVE_TUNABLES && defined SHARED - /* The glibc.tune.hwcap_mask tunable is initialized already, so no need to do - this. */ -@@ -344,6 +343,7 @@ no_cpuid: - #endif - - #ifdef __x86_64__ -+ GLRO(dl_hwcap) = HWCAP_X86_64; - if (cpu_features->kind == arch_kind_intel) - { - if (CPU_FEATURES_ARCH_P (cpu_features, AVX512F_Usable) -@@ -374,6 +374,7 @@ no_cpuid: - GLRO(dl_platform) = "haswell"; - } - #else -+ GLRO(dl_hwcap) = 0; - if (CPU_FEATURES_CPU_P (cpu_features, SSE2)) - GLRO(dl_hwcap) |= HWCAP_X86_SSE2; - -Index: glibc-2.26/sysdeps/x86/dl-hwcap.h -=================================================================== ---- glibc-2.26.orig/sysdeps/x86/dl-hwcap.h -+++ glibc-2.26/sysdeps/x86/dl-hwcap.h -@@ -24,15 +24,16 @@ - # define HWCAP_PLATFORMS_START 0 - # define HWCAP_PLATFORMS_COUNT 4 - # define HWCAP_START 0 --# define HWCAP_COUNT 2 --# define HWCAP_IMPORTANT (HWCAP_X86_SSE2 | HWCAP_X86_AVX512_1) -+# define HWCAP_COUNT 3 -+# define HWCAP_IMPORTANT \ -+ (HWCAP_X86_SSE2 | HWCAP_X86_64 | HWCAP_X86_AVX512_1) - #elif defined __x86_64__ - /* For 64 bit, only cover x86-64 platforms and capabilities. */ - # define HWCAP_PLATFORMS_START 2 - # define HWCAP_PLATFORMS_COUNT 4 - # define HWCAP_START 1 --# define HWCAP_COUNT 2 --# define HWCAP_IMPORTANT (HWCAP_X86_AVX512_1) -+# define HWCAP_COUNT 3 -+# define HWCAP_IMPORTANT (HWCAP_X86_64 | HWCAP_X86_AVX512_1) - #else - /* For 32 bit, only cover i586, i686 and SSE2. */ - # define HWCAP_PLATFORMS_START 0 -@@ -45,7 +46,8 @@ - enum - { - HWCAP_X86_SSE2 = 1 << 0, -- HWCAP_X86_AVX512_1 = 1 << 1 -+ HWCAP_X86_64 = 1 << 1, -+ HWCAP_X86_AVX512_1 = 1 << 2 - }; - - static inline const char * -Index: glibc-2.26/sysdeps/x86/dl-procinfo.c -=================================================================== ---- glibc-2.26.orig/sysdeps/x86/dl-procinfo.c -+++ glibc-2.26/sysdeps/x86/dl-procinfo.c -@@ -58,11 +58,11 @@ PROCINFO_CLASS struct cpu_features _dl_x - #if !defined PROCINFO_DECL && defined SHARED - ._dl_x86_hwcap_flags - #else --PROCINFO_CLASS const char _dl_x86_hwcap_flags[2][9] -+PROCINFO_CLASS const char _dl_x86_hwcap_flags[3][9] - #endif - #ifndef PROCINFO_DECL - = { -- "sse2", "avx512_1" -+ "sse2", "x86_64", "avx512_1" - } - #endif - #if !defined SHARED || defined PROCINFO_DECL -Index: glibc-2.26/sysdeps/x86_64/Makefile -=================================================================== ---- glibc-2.26.orig/sysdeps/x86_64/Makefile -+++ glibc-2.26/sysdeps/x86_64/Makefile -@@ -52,6 +52,12 @@ $(objpfx)tst-quad2pie: $(objpfx)tst-quad - CFLAGS-tst-quad1pie.c = $(PIE-ccflag) - CFLAGS-tst-quad2pie.c = $(PIE-ccflag) - -+tests += tst-x86_64-1 -+modules-names += x86_64/tst-x86_64mod-1 -+LDFLAGS-tst-x86_64mod-1.so = -Wl,-soname,tst-x86_64mod-1.so -+ -+$(objpfx)tst-x86_64-1: $(objpfx)x86_64/tst-x86_64mod-1.so -+ - tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7 \ - tst-audit10 tst-sse tst-avx tst-avx512 - test-extras += tst-audit4-aux tst-audit10-aux \ -@@ -122,3 +128,14 @@ endif - ifeq ($(subdir),csu) - gen-as-const-headers += tlsdesc.sym rtld-offsets.sym - endif -+ -+$(objpfx)x86_64/tst-x86_64mod-1.os: $(objpfx)tst-x86_64mod-1.os -+ $(make-target-directory) -+ rm -f $@ -+ ln $< $@ -+ -+do-tests-clean common-mostlyclean: tst-x86_64-1-clean -+ -+.PHONY: tst-x86_64-1-clean -+tst-x86_64-1-clean: -+ -rm -rf $(objpfx)x86_64 -Index: glibc-2.26/sysdeps/x86_64/tst-x86_64-1.c -=================================================================== ---- /dev/null -+++ glibc-2.26/sysdeps/x86_64/tst-x86_64-1.c -@@ -0,0 +1,26 @@ -+/* Test searching the "x86_64" directory for shared libraries. -+ Copyright (C) 2017 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+extern void foo (void); -+ -+int -+main (void) -+{ -+ foo (); -+ return 0; -+} -Index: glibc-2.26/sysdeps/x86_64/tst-x86_64mod-1.c -=================================================================== ---- /dev/null -+++ glibc-2.26/sysdeps/x86_64/tst-x86_64mod-1.c -@@ -0,0 +1,22 @@ -+/* Test searching the "x86_64" directory for shared libraries. -+ Copyright (C) 2017 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+void -+foo (void) -+{ -+} diff --git a/ldd-system-interp.patch b/ldd-system-interp.patch deleted file mode 100644 index 55d84ce..0000000 --- a/ldd-system-interp.patch +++ /dev/null @@ -1,41 +0,0 @@ -Never try to execute the file in ldd - -Executing a random file is never a good idea. Treat all arguments as if -they are invoked with __libc_enable_secure, and run them through the known -good dynamic linker. - - * elf/ldd.bash.in: Always run through the dynamic linker, even if - the file has its own interpreter. - -Index: glibc-2.19/elf/ldd.bash.in -=================================================================== ---- glibc-2.19.orig/elf/ldd.bash.in -+++ glibc-2.19/elf/ldd.bash.in -@@ -164,18 +164,6 @@ warning: you do not have execution permi - fi - done - case $ret in -- 0) -- # If the program exits with exit code 5, it means the process has been -- # invoked with __libc_enable_secure. Fall back to running it through -- # the dynamic linker. -- try_trace "$file" -- rc=$? -- if [ $rc = 5 ]; then -- try_trace "$RTLD" "$file" -- rc=$? -- fi -- [ $rc = 0 ] || result=1 -- ;; - 1) - # This can be a non-ELF binary or no binary at all. - nonelf "$file" || { -@@ -183,7 +171,7 @@ warning: you do not have execution permi - result=1 - } - ;; -- 2) -+ [02]) - try_trace "$RTLD" "$file" || result=1 - ;; - *) diff --git a/libm-x86-64.diff.bz2 b/libm-x86-64.diff.bz2 new file mode 100644 index 0000000..38fc85a --- /dev/null +++ b/libm-x86-64.diff.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8f65b9076eee071c181fb4a81621adda554b9e247ff97dbe487322b2a03fa3c +size 76941 diff --git a/libpthread-compat-wrappers.patch b/libpthread-compat-wrappers.patch deleted file mode 100644 index 7203100..0000000 --- a/libpthread-compat-wrappers.patch +++ /dev/null @@ -1,120 +0,0 @@ -2017-08-09 Andreas Schwab - - [BZ #21041] - * sysdeps/unix/sysv/linux/s390/pt-longjmp.c: Update reference to - renamed alias. - -2017-08-08 Andreas Schwab - - [BZ #21041] - * nptl/pt-longjmp.c (longjmp, siglongjmp): Don't use IFUNC resolver. - * nptl/pt-system.c (system): Likewise. - -Index: glibc-2.26/nptl/pt-longjmp.c -=================================================================== ---- glibc-2.26.orig/nptl/pt-longjmp.c -+++ glibc-2.26/nptl/pt-longjmp.c -@@ -25,21 +25,14 @@ - symbol in libpthread, but the historical ABI requires it. For static - linking, there is no need to provide anything here--the libc version - will be linked in. For shared library ABI compatibility, there must be -- longjmp and siglongjmp symbols in libpthread.so; so we define them using -- IFUNC to redirect to the libc function. */ -+ longjmp and siglongjmp symbols in libpthread.so. - --#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) -- --# if HAVE_IFUNC -- --# undef INIT_ARCH --# define INIT_ARCH() --# define DEFINE_LONGJMP(name) libc_ifunc (name, &__libc_longjmp) -- --extern __typeof(longjmp) longjmp_ifunc; --extern __typeof(siglongjmp) siglongjmp_ifunc; -+ With an IFUNC resolver, it would be possible to avoid the indirection, -+ but the IFUNC resolver might run before the __libc_longjmp symbol has -+ been relocated, in which case the IFUNC resolver would not be able to -+ provide the correct address. */ - --# else /* !HAVE_IFUNC */ -+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) - - static void __attribute__ ((noreturn, used)) - longjmp_compat (jmp_buf env, int val) -@@ -47,14 +40,10 @@ longjmp_compat (jmp_buf env, int val) - __libc_longjmp (env, val); - } - --# define DEFINE_LONGJMP(name) strong_alias (longjmp_compat, name) -- --# endif /* HAVE_IFUNC */ -- --DEFINE_LONGJMP (longjmp_ifunc) --compat_symbol (libpthread, longjmp_ifunc, longjmp, GLIBC_2_0); -+strong_alias (longjmp_compat, longjmp_alias) -+compat_symbol (libpthread, longjmp_alias, longjmp, GLIBC_2_0); - --strong_alias (longjmp_ifunc, siglongjmp_ifunc) --compat_symbol (libpthread, siglongjmp_ifunc, siglongjmp, GLIBC_2_0); -+strong_alias (longjmp_alias, siglongjmp_alias) -+compat_symbol (libpthread, siglongjmp_alias, siglongjmp, GLIBC_2_0); - - #endif -Index: glibc-2.26/nptl/pt-system.c -=================================================================== ---- glibc-2.26.orig/nptl/pt-system.c -+++ glibc-2.26/nptl/pt-system.c -@@ -25,29 +25,21 @@ - libpthread, but the historical ABI requires it. For static linking, - there is no need to provide anything here--the libc version will be - linked in. For shared library ABI compatibility, there must be a -- 'system' symbol in libpthread.so; so we define it using IFUNC to -- redirect to the libc function. */ -+ 'system' symbol in libpthread.so. - --#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) -- --# if HAVE_IFUNC -- --extern __typeof(system) system_ifunc; --# undef INIT_ARCH --# define INIT_ARCH() --libc_ifunc (system_ifunc, &__libc_system) -+ With an IFUNC resolver, it would be possible to avoid the indirection, -+ but the IFUNC resolver might run before the __libc_system symbol has -+ been relocated, in which case the IFUNC resolver would not be able to -+ provide the correct address. */ - --# else /* !HAVE_IFUNC */ -+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) - - static int __attribute__ ((used)) - system_compat (const char *line) - { - return __libc_system (line); - } --strong_alias (system_compat, system_ifunc) -- --# endif /* HAVE_IFUNC */ -- --compat_symbol (libpthread, system_ifunc, system, GLIBC_2_0); -+strong_alias (system_compat, system_alias) -+compat_symbol (libpthread, system_alias, system, GLIBC_2_0); - - #endif -Index: glibc-2.26/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -=================================================================== ---- glibc-2.26.orig/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -+++ glibc-2.26/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -@@ -26,8 +26,8 @@ - /* In glibc release 2.19 new versions of longjmp-functions were introduced, - but were reverted before 2.20. Thus both versions are the same function. */ - --strong_alias (longjmp_ifunc, __v2longjmp) -+strong_alias (longjmp_alias, __v2longjmp) - compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19); --strong_alias (siglongjmp_ifunc, __v2siglongjmp) -+strong_alias (siglongjmp_alias, __v2siglongjmp) - compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19); - #endif /* SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */ diff --git a/manpages.patch b/manpages.patch deleted file mode 100644 index b26eab0..0000000 --- a/manpages.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: manpages/locale.alias.5 -=================================================================== ---- manpages/locale.alias.5.orig -+++ manpages/locale.alias.5 -@@ -18,7 +18,7 @@ - .SH "NAME" - locale.alias \- Locale name alias data base - .SH "DESCRIPTION" --The locale.alias database file (/etc/locale.alias) is used by the -+The locale.alias database file (/usr/share/locale/locale.alias) is used by the - .B locale - command and the - .B X Window System -@@ -40,6 +40,6 @@ name, or simpler versions of the POSIX l - Lines beginning with Hash ("#") are treated as comments and ignored. - - .SH "SEE ALSO" --locale(1), localedef(1), locale-gen(8), locale.gen(5) -+locale(1), localedef(1) - .SH "AUTHOR" - Alastair McKinstry diff --git a/manpages.tar.bz2 b/manpages.tar.bz2 index 87cb48b..ffb101e 100644 --- a/manpages.tar.bz2 +++ b/manpages.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e8715a207e621f2dea9f4d766d55514b9ac4dc91ea9652e7768cea0f950cc88b -size 10824 +oid sha256:e84aeb3808f86c7cd169ca795b31d1fdef21864c74b827ca750f3d478f0a95a5 +size 12562 diff --git a/math-c++-compat.patch b/math-c++-compat.patch deleted file mode 100644 index 4717366..0000000 --- a/math-c++-compat.patch +++ /dev/null @@ -1,126 +0,0 @@ -2017-08-28 Gabriel F. T. Gomes - - [BZ #21930] - * math/math.h [defined __cplusplus && defined __SUPPORT_SNAN__] - (iszero): New C++ implementation that does not use - fpclassify/__MATH_TG/__builtin_types_compatible_p, when - signaling nans are enabled, since __builtin_types_compatible_p - is a C-only feature. - -2017-08-24 Gabriel F. T. Gomes - - * math/math.h [defined __cplusplus] (issignaling): In the long - double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH - is not defined. Call __issignaling, otherwise. - -2017-08-22 Gabriel F. T. Gomes - - * math/math.h [defined __cplusplus] (issignaling): Provide a C++ - definition for issignaling that does not rely on __MATH_TG, - since __MATH_TG uses __builtin_types_compatible_p, which is only - available in C mode. - -2017-08-18 Gabriel F. T. Gomes - - [BZ #21930] - * math/math.h (isinf): Check if in C or C++ mode before using - __builtin_types_compatible_p, since this is a C mode feature. - -Index: glibc-2.26/math/math.h -=================================================================== ---- glibc-2.26.orig/math/math.h -+++ glibc-2.26/math/math.h -@@ -442,8 +442,12 @@ enum - - /* Return nonzero value if X is positive or negative infinity. */ - # if __HAVE_DISTINCT_FLOAT128 && !__GNUC_PREREQ (7,0) \ -- && !defined __SUPPORT_SNAN__ -- /* __builtin_isinf_sign is broken for float128 only before GCC 7.0. */ -+ && !defined __SUPPORT_SNAN__ && !defined __cplusplus -+ /* Since __builtin_isinf_sign is broken for float128 before GCC 7.0, -+ use the helper function, __isinff128, with older compilers. This is -+ only provided for C mode, because in C++ mode, GCC has no support -+ for __builtin_types_compatible_p (and when in C++ mode, this macro is -+ not used anyway, because libstdc++ headers undefine it). */ - # define isinf(x) \ - (__builtin_types_compatible_p (__typeof (x), _Float128) \ - ? __isinff128 (x) : __builtin_isinf_sign (x)) -@@ -470,7 +474,32 @@ enum - # include - - /* Return nonzero value if X is a signaling NaN. */ --# define issignaling(x) __MATH_TG ((x), __issignaling, (x)) -+# ifndef __cplusplus -+# define issignaling(x) __MATH_TG ((x), __issignaling, (x)) -+# else -+ /* In C++ mode, __MATH_TG cannot be used, because it relies on -+ __builtin_types_compatible_p, which is a C-only builtin. On the -+ other hand, overloading provides the means to distinguish between -+ the floating-point types. The overloading resolution will match -+ the correct parameter (regardless of type qualifiers (i.e.: const -+ and volatile). */ -+extern "C++" { -+inline int issignaling (float __val) { return __issignalingf (__val); } -+inline int issignaling (double __val) { return __issignaling (__val); } -+inline int -+issignaling (long double __val) -+{ -+# ifdef __NO_LONG_DOUBLE_MATH -+ return __issignaling (__val); -+# else -+ return __issignalingl (__val); -+# endif -+} -+# if __HAVE_DISTINCT_FLOAT128 -+inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } -+# endif -+} /* extern C++ */ -+# endif - - /* Return nonzero value if X is subnormal. */ - # define issubnormal(x) (fpclassify (x) == FP_SUBNORMAL) -@@ -484,15 +513,40 @@ enum - # endif - # else /* __cplusplus */ - extern "C++" { -+# ifdef __SUPPORT_SNAN__ -+inline int -+iszero (float __val) -+{ -+ return __fpclassifyf (__val) == FP_ZERO; -+} -+inline int -+iszero (double __val) -+{ -+ return __fpclassify (__val) == FP_ZERO; -+} -+inline int -+iszero (long double __val) -+{ -+# ifdef __NO_LONG_DOUBLE_MATH -+ return __fpclassify (__val) == FP_ZERO; -+# else -+ return __fpclassifyl (__val) == FP_ZERO; -+# endif -+} -+# if __HAVE_DISTINCT_FLOAT128 -+inline int -+iszero (_Float128 __val) -+{ -+ return __fpclassifyf128 (__val) == FP_ZERO; -+} -+# endif -+# else - template inline bool - iszero (__T __val) - { --# ifdef __SUPPORT_SNAN__ -- return fpclassify (__val) == FP_ZERO; --# else - return __val == 0; --# endif - } -+# endif - } /* extern C++ */ - # endif /* __cplusplus */ - #endif /* Use IEC_60559_BFP_EXT. */ diff --git a/missing-include-build-fix.diff b/missing-include-build-fix.diff new file mode 100644 index 0000000..c1783d3 --- /dev/null +++ b/missing-include-build-fix.diff @@ -0,0 +1,10 @@ +--- sysdeps/unix/sysv/linux/check_native.c ++++ sysdeps/unix/sysv/linux/check_native.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/noversion.tar.bz2 b/noversion.tar.bz2 index bde0dd1..3cab5fa 100644 --- a/noversion.tar.bz2 +++ b/noversion.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c47b7dccf2d318f2e2144322e6a931c46a7507f0e77a64fed3623860e10c5ab -size 1833 +oid sha256:469186780a61f0e0839e3938a674ebe7a46d649dd4de8ba52f1bc821aca42455 +size 1520 diff --git a/nscd-server-user.patch b/nscd-server-user.patch deleted file mode 100644 index 1e66881..0000000 --- a/nscd-server-user.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: glibc-2.18/nscd/nscd.conf -=================================================================== ---- glibc-2.18.orig/nscd/nscd.conf -+++ glibc-2.18/nscd/nscd.conf -@@ -33,7 +33,7 @@ - # logfile /var/log/nscd.log - # threads 4 - # max-threads 32 --# server-user nobody -+ server-user nscd - # stat-user somebody - debug-level 0 - # reload-count 5 diff --git a/nscd.conf b/nscd.conf deleted file mode 100644 index 2f409b0..0000000 --- a/nscd.conf +++ /dev/null @@ -1 +0,0 @@ -d /run/nscd 0755 root root diff --git a/nscd.init b/nscd.init new file mode 100644 index 0000000..1316e90 --- /dev/null +++ b/nscd.init @@ -0,0 +1,123 @@ +#! /bin/sh +# Copyright (c) 1995-2004 SuSE Linux AG, Nuernberg, Germany. +# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany. +# All rights reserved. +# +# Author: Ruediger Oertel +# Thorsten Kukuk +# +# Please send feedback to http://www.suse.de/feedback +# +# init.d/nscd +# +# and symbolic its link +# +# /usr/sbin/rcnscd +# +# System startup script for the NIS daemon +# +### BEGIN INIT INFO +# Provides: nscd +# Required-Start: $remote_fs $time +# Should-Start: $syslog $named winbind +# Should-Stop: $null +# Required-Stop: $null +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Start Name Service Cache Daemon +# Description: Start Name Service Cache Daemon +### END INIT INFO + +# Source SuSE config +. /etc/rc.status + +NSCD_BIN=/usr/sbin/nscd +test -x $NSCD_BIN || { echo "$NSCD_BIN not installed"; + if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } + +NSCD_CONFIG=/etc/nscd.conf +test -r $NSCD_CONFIG || { echo "$NSCD_CONFIG not existing"; + if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; } + +NSCD_PID=/var/run/nscd/nscd.pid + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v ditto but be verbose in local rc status +# rc_status -v -r ditto and clear the local rc status +# rc_failed set local and overall rc status to failed +# rc_reset clear local rc status (overall remains) +# rc_exit exit appropriate to overall rc status + +# First reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - misc error +# 2 - invalid or excess args +# 3 - unimplemented feature (e.g. reload) +# 4 - insufficient privilege +# 5 - program not installed +# 6 - program not configured +# + +case "$1" in + start) + echo -n "Starting Name Service Cache Daemon" + /sbin/startproc -p $NSCD_PID $NSCD_BIN + rc_status -v + ;; + stop) + echo -n "Shutting down Name Service Cache Daemon" + /sbin/killproc -p $NSCD_PID -TERM $NSCD_BIN + # if nscd does not run as root, it cannot remove this files: + rm -f /var/run/nscd/socket $NSCD_PID + rc_status -v + ;; + try-restart|condrestart) + ## RH has a similar command named condrestart. + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + rc_status + ;; + restart) + ## Stop the service and regardless of whether it was + ## running or not, start it again. + $0 stop + $0 start + rc_status + ;; + force-reload) + echo "Reload Name Service Cache Daemon" + $0 try-restart + rc_status + ;; + reload) + # nscd does not support SIGHUP, so fail. + echo -n "Reload Name Service Cache Daemon" + rc_failed 3 + rc_status -v + ;; + status) + echo -n "Checking for Name Service Cache Daemon: " + /sbin/checkproc -p $NSCD_PID $NSCD_BIN + rc_status -v + ;; + probe) + test $NSCD_CONFIG -nt $NSCD_PID && echo restart + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +rc_exit diff --git a/nscd.service b/nscd.service deleted file mode 100644 index 2170cbc..0000000 --- a/nscd.service +++ /dev/null @@ -1,20 +0,0 @@ -[Unit] -Description=Name Service Cache Daemon -After=sysinit.target -Wants=nss-lookup.target nss-user-lookup.target -Before=nss-lookup.target nss-user-lookup.target - -[Service] -Type=forking -ExecStart=/usr/sbin/nscd -ExecStop=/usr/sbin/nscd --shutdown -ExecReload=/usr/sbin/nscd -i passwd -ExecReload=/usr/sbin/nscd -i group -ExecReload=/usr/sbin/nscd -i hosts -ExecReload=/usr/sbin/nscd -i services -ExecReload=/usr/sbin/nscd -i netgroup -Restart=always -PIDFile=/run/nscd/nscd.pid - -[Install] -WantedBy=multi-user.target diff --git a/nss-db-path.patch b/nss-db-path.patch deleted file mode 100644 index f485008..0000000 --- a/nss-db-path.patch +++ /dev/null @@ -1,41 +0,0 @@ -Use /var/db for nss_db - -Index: glibc-2.17.90/Makeconfig -=================================================================== ---- glibc-2.17.90.orig/Makeconfig -+++ glibc-2.17.90/Makeconfig -@@ -259,7 +259,7 @@ inst_sysconfdir = $(install_root)$(sysco - - # Directory for the database files and Makefile for nss_db. - ifndef vardbdir --vardbdir = $(localstatedir)/db -+vardbdir = /var/lib/misc - endif - inst_vardbdir = $(install_root)$(vardbdir) - -Index: glibc-2.17.90/nss/db-Makefile -=================================================================== ---- glibc-2.17.90.orig/nss/db-Makefile -+++ glibc-2.17.90/nss/db-Makefile -@@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/ - /etc/rpc /etc/services /etc/shadow /etc/gshadow \ - /etc/netgroup) - --VAR_DB = /var/db -+VAR_DB = /var/lib/misc - - AWK = awk - MAKEDB = makedb --quiet -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/paths.h -=================================================================== ---- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/paths.h -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/paths.h -@@ -68,7 +68,7 @@ - /* Provide trailing slash, since mostly used for building pathnames. */ - #define _PATH_DEV "/dev/" - #define _PATH_TMP "/tmp/" --#define _PATH_VARDB "/var/db/" -+#define _PATH_VARDB "/var/lib/misc/" - #define _PATH_VARRUN "/var/run/" - #define _PATH_VARTMP "/var/tmp/" - diff --git a/nss-files-long-lines-2.patch b/nss-files-long-lines-2.patch deleted file mode 100644 index ec41f8a..0000000 --- a/nss-files-long-lines-2.patch +++ /dev/null @@ -1,164 +0,0 @@ -Properly reread entry after failure in nss_files getent function (bug 18991) - - * nss/nss_files/files-XXX.c (position, need_reread): New - variables. - (CONCAT(_nss_files_set,ENTNAME)): Initialize them. - (CONCAT(_nss_files_get,ENTNAME_r)): Likewise. Reposition stream - if last call was uncessful. - * nss/nss_files/files-alias.c (position, need_reread): New - variables. - (_nss_files_setaliasent): Initialize them. - (_nss_files_getaliasent_r): Likewise. Reposition stream if last - call was uncessful. - -Index: glibc-2.19/nss/nss_files/files-XXX.c -=================================================================== ---- glibc-2.19.orig/nss/nss_files/files-XXX.c -+++ glibc-2.19/nss/nss_files/files-XXX.c -@@ -65,6 +65,10 @@ __libc_lock_define_initialized (static, - getXXbyYY operations all use their own stream. */ - - static FILE *stream; -+/* Position after the last sucessfully read entry. */ -+static fpos_t position; -+/* Whether we need to reread the last entry on the next call. */ -+static bool need_reread; - - /* Open database file if not already opened. */ - static enum nss_status -@@ -131,6 +135,15 @@ CONCAT(_nss_files_set,ENTNAME) (int stay - - status = internal_setent (&stream); - -+ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) -+ { -+ fclose (stream); -+ stream = NULL; -+ status = NSS_STATUS_UNAVAIL; -+ } -+ -+ need_reread = false; -+ - __libc_lock_unlock (lock); - - return status; -@@ -286,11 +299,42 @@ CONCAT(_nss_files_get,ENTNAME_r) (struct - status = internal_setent (&stream); - - __set_errno (save_errno); -+ -+ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) -+ { -+ fclose (stream); -+ stream = NULL; -+ status = NSS_STATUS_UNAVAIL; -+ } -+ need_reread = false; - } - - if (status == NSS_STATUS_SUCCESS) -- status = internal_getent (stream, result, buffer, buflen, errnop -- H_ERRNO_ARG EXTRA_ARGS_VALUE); -+ { -+ /* Reposition the stream if the last call was unsucessful. */ -+ if (need_reread) -+ { -+ if (fsetpos (stream, &position) < 0) -+ status = NSS_STATUS_UNAVAIL; -+ else -+ need_reread = false; -+ } -+ } -+ -+ if (status == NSS_STATUS_SUCCESS) -+ { -+ status = internal_getent (stream, result, buffer, buflen, errnop -+ H_ERRNO_ARG EXTRA_ARGS_VALUE); -+ -+ /* Remember this position if we were successful. If the -+ operation failed we give the user a chance to repeat the -+ operation (perhaps the buffer was too small). */ -+ if (status == NSS_STATUS_SUCCESS) -+ fgetpos (stream, &position); -+ else -+ /* We must make sure we reposition the stream the next call. */ -+ need_reread = true; -+ } - - __libc_lock_unlock (lock); - -Index: glibc-2.19/nss/nss_files/files-alias.c -=================================================================== ---- glibc-2.19.orig/nss/nss_files/files-alias.c -+++ glibc-2.19/nss/nss_files/files-alias.c -@@ -38,6 +38,10 @@ __libc_lock_define_initialized (static, - getXXbyYY operations all use their own stream. */ - - static FILE *stream; -+/* Position after the last sucessfully read entry. */ -+static fpos_t position; -+/* Whether we need to reread the last entry on the next call. */ -+static bool need_reread; - - - static enum nss_status -@@ -104,6 +108,15 @@ _nss_files_setaliasent (void) - - status = internal_setent (&stream); - -+ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) -+ { -+ fclose (stream); -+ stream = NULL; -+ status = NSS_STATUS_UNAVAIL; -+ } -+ -+ need_reread = false; -+ - __libc_lock_unlock (lock); - - return status; -@@ -388,7 +401,29 @@ _nss_files_getaliasent_r (struct aliasen - - /* Be prepared that the set*ent function was not called before. */ - if (stream == NULL) -- status = internal_setent (&stream); -+ { -+ status = internal_setent (&stream); -+ -+ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) -+ { -+ fclose (stream); -+ stream = NULL; -+ status = NSS_STATUS_UNAVAIL; -+ } -+ need_reread = false; -+ } -+ -+ if (status == NSS_STATUS_SUCCESS) -+ { -+ /* Reposition the stream if the last call way unsucessful. */ -+ if (need_reread) -+ { -+ if (fsetpos (stream, &position) < 0) -+ status = NSS_STATUS_UNAVAIL; -+ else -+ need_reread = false; -+ } -+ } - - if (status == NSS_STATUS_SUCCESS) - { -@@ -398,6 +433,12 @@ _nss_files_getaliasent_r (struct aliasen - do - status = get_next_alias (stream, NULL, result, buffer, buflen, errnop); - while (status == NSS_STATUS_RETURN); -+ -+ /* If we successfully read an entry remember this position. */ -+ if (status == NSS_STATUS_SUCCESS) -+ fgetpos (stream, &position); -+ else -+ need_reread = true; - } - - __libc_lock_unlock (lock); diff --git a/nsswitch.conf b/nsswitch.conf index fcf5e1a..9d628f0 100644 --- a/nsswitch.conf +++ b/nsswitch.conf @@ -22,9 +22,12 @@ # For more information, please read the nsswitch.conf.5 manual page. # -passwd: files -group: files -shadow: files +# passwd: files nis +# shadow: files nis +# group: files nis + +passwd: compat +group: compat hosts: files dns networks: files dns @@ -34,9 +37,11 @@ protocols: files rpc: files ethers: files netmasks: files -netgroup: files +netgroup: files nis publickey: files bootparams: files -automount: files +automount: files nis aliases: files + + diff --git a/powerpc-cpu.tar.bz2 b/powerpc-cpu.tar.bz2 new file mode 100644 index 0000000..715978c --- /dev/null +++ b/powerpc-cpu.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c59f80e38c9f6ad339d72bbfbc454364659686567b7689d33483b9cb4a12bf2a +size 36248 diff --git a/powerpc-elision-enable-envvar.patch b/powerpc-elision-enable-envvar.patch deleted file mode 100644 index 6e7bbb1..0000000 --- a/powerpc-elision-enable-envvar.patch +++ /dev/null @@ -1,41 +0,0 @@ -2016-02-11 Paul E. Murphy - - * sysdeps/unix/sysv/linux/powerpc/elision-conf.c - (elision_init): Further restrict enablement based - on whether GLIBC_ELISION_ENABLE=yes is in the env. ---- - sysdeps/unix/sysv/linux/powerpc/elision-conf.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -Index: glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-conf.c -=================================================================== ---- glibc-2.22.orig/sysdeps/unix/sysv/linux/powerpc/elision-conf.c -+++ glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-conf.c -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - - /* Reasonable initial tuning values, may be revised in the future. - This is a conservative initial value. */ -@@ -61,7 +62,18 @@ elision_init (int argc __attribute__ ((u - { - #ifdef ENABLE_LOCK_ELISION - int elision_available = (GLRO (dl_hwcap2) & PPC_FEATURE2_HAS_HTM) ? 1 : 0; -- __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; -+ -+ /* Scan the environment and conditionally enable TLE. */ -+ if (elision_available != 0 && __libc_enable_secure == 0) -+ { -+ for ( ; *environ != NULL; environ++) -+ if (**environ == 'G' && -+ strcmp (*environ,"GLIBC_ELISION_ENABLE=yes") == 0) -+ { -+ __pthread_force_elision = elision_available; -+ break; -+ } -+ } - #endif - if (!__pthread_force_elision) - /* Disable elision on rwlocks. */ diff --git a/ppc-atomic.diff b/ppc-atomic.diff new file mode 100644 index 0000000..9a3538e --- /dev/null +++ b/ppc-atomic.diff @@ -0,0 +1,419 @@ +Index: sysdeps/powerpc/bits/atomic.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/powerpc/bits/atomic.h,v +retrieving revision 1.17 +diff -u -a -p -r1.17 atomic.h +--- sysdeps/powerpc/bits/atomic.h 26 Mar 2007 20:15:28 -0000 1.17 ++++ sysdeps/powerpc/bits/atomic.h 31 May 2008 08:50:56 -0000 +@@ -85,14 +85,14 @@ typedef uintmax_t uatomic_max_t; + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile ( \ +- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " cmpw %0,%2\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -102,14 +102,14 @@ typedef uintmax_t uatomic_max_t; + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ + " cmpw %0,%2\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -118,12 +118,12 @@ typedef uintmax_t uatomic_max_t; + ({ \ + __typeof (*mem) __val; \ + __asm __volatile ( \ +- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ +- " stwcx. %3,0,%2\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ ++ " stwcx. %2,%y1\n" \ + " bne- 1b\n" \ + " " __ARCH_ACQ_INSTR \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*mem) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -132,11 +132,11 @@ typedef uintmax_t uatomic_max_t; + ({ \ + __typeof (*mem) __val; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ +- " stwcx. %3,0,%2\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ ++ " stwcx. %2,%y1\n" \ + " bne- 1b" \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*mem) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -144,12 +144,12 @@ typedef uintmax_t uatomic_max_t; + #define __arch_atomic_exchange_and_add_32(mem, value) \ + ({ \ + __typeof (*mem) __val, __tmp; \ +- __asm __volatile ("1: lwarx %0,0,%3\n" \ +- " add %1,%0,%4\n" \ +- " stwcx. %1,0,%3\n" \ ++ __asm __volatile ("1: lwarx %0,%y2\n" \ ++ " add %1,%0,%3\n" \ ++ " stwcx. %1,%y2\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -157,12 +157,12 @@ typedef uintmax_t uatomic_max_t; + #define __arch_atomic_increment_val_32(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: lwarx %0,0,%2\n" \ ++ __asm __volatile ("1: lwarx %0,%y1\n" \ + " addi %0,%0,1\n" \ +- " stwcx. %0,0,%2\n" \ ++ " stwcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*mem) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -170,27 +170,27 @@ typedef uintmax_t uatomic_max_t; + #define __arch_atomic_decrement_val_32(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: lwarx %0,0,%2\n" \ ++ __asm __volatile ("1: lwarx %0,%y1\n" \ + " subi %0,%0,1\n" \ +- " stwcx. %0,0,%2\n" \ ++ " stwcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*mem) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) + + #define __arch_atomic_decrement_if_positive_32(mem) \ + ({ int __val, __tmp; \ +- __asm __volatile ("1: lwarx %0,0,%3\n" \ ++ __asm __volatile ("1: lwarx %0,%y2\n" \ + " cmpwi 0,%0,0\n" \ + " addi %1,%0,-1\n" \ + " ble 2f\n" \ +- " stwcx. %1,0,%3\n" \ ++ " stwcx. %1,%y2\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) +Index: sysdeps/powerpc/powerpc32/bits/atomic.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc32/bits/atomic.h,v +retrieving revision 1.6 +diff -u -a -p -r1.6 atomic.h +--- sysdeps/powerpc/powerpc32/bits/atomic.h 26 Mar 2007 20:15:45 -0000 1.6 ++++ sysdeps/powerpc/powerpc32/bits/atomic.h 31 May 2008 08:50:56 -0000 +@@ -44,14 +44,14 @@ + ({ \ + unsigned int __tmp; \ + __asm __volatile ( \ +- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -60,14 +60,14 @@ + ({ \ + unsigned int __tmp; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +Index: sysdeps/powerpc/powerpc64/bits/atomic.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/bits/atomic.h,v +retrieving revision 1.8 +diff -u -a -p -r1.8 atomic.h +--- sysdeps/powerpc/powerpc64/bits/atomic.h 26 Mar 2007 20:16:03 -0000 1.8 ++++ sysdeps/powerpc/powerpc64/bits/atomic.h 31 May 2008 08:50:56 -0000 +@@ -44,14 +44,14 @@ + ({ \ + unsigned int __tmp, __tmp2; \ + __asm __volatile (" clrldi %1,%1,32\n" \ +- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ ++ "1: lwarx %0,%y2" MUTEX_HINT_ACQ "\n" \ + " subf. %0,%1,%0\n" \ + " bne 2f\n" \ +- " stwcx. %4,0,%2\n" \ ++ " stwcx. %4,%y2\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp), "=r" (__tmp2) \ +- : "b" (mem), "1" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ ++ : "1" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -61,14 +61,14 @@ + unsigned int __tmp, __tmp2; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ + " clrldi %1,%1,32\n" \ +- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ ++ "1: lwarx %0,%y2" MUTEX_HINT_REL "\n" \ + " subf. %0,%1,%0\n" \ + " bne 2f\n" \ +- " stwcx. %4,0,%2\n" \ ++ " stwcx. %4,%y2\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp), "=r" (__tmp2) \ +- : "b" (mem), "1" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ ++ : "1" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -82,14 +82,14 @@ + ({ \ + unsigned long __tmp; \ + __asm __volatile ( \ +- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -98,14 +98,14 @@ + ({ \ + unsigned long __tmp; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -115,14 +115,14 @@ + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile ( \ +- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " cmpd %0,%2\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -132,14 +132,14 @@ + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%1" MUTEX_HINT_REL "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ + " cmpd %0,%2\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -148,12 +148,12 @@ + ({ \ + __typeof (*mem) __val; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ +- " stdcx. %3,0,%2\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ ++ " stdcx. %2,%y1\n" \ + " bne- 1b\n" \ + " " __ARCH_ACQ_INSTR \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*(mem)) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -162,11 +162,11 @@ + ({ \ + __typeof (*mem) __val; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ +- " stdcx. %3,0,%2\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ ++ " stdcx. %2,%y1\n" \ + " bne- 1b" \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*(mem)) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -174,12 +174,12 @@ + #define __arch_atomic_exchange_and_add_64(mem, value) \ + ({ \ + __typeof (*mem) __val, __tmp; \ +- __asm __volatile ("1: ldarx %0,0,%3\n" \ +- " add %1,%0,%4\n" \ +- " stdcx. %1,0,%3\n" \ ++ __asm __volatile ("1: ldarx %0,%y2\n" \ ++ " add %1,%0,%3\n" \ ++ " stdcx. %1,%y2\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -187,12 +187,12 @@ + #define __arch_atomic_increment_val_64(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: ldarx %0,0,%2\n" \ ++ __asm __volatile ("1: ldarx %0,%y1\n" \ + " addi %0,%0,1\n" \ +- " stdcx. %0,0,%2\n" \ ++ " stdcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*(mem)) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -200,27 +200,27 @@ + #define __arch_atomic_decrement_val_64(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: ldarx %0,0,%2\n" \ ++ __asm __volatile ("1: ldarx %0,%y1\n" \ + " subi %0,%0,1\n" \ +- " stdcx. %0,0,%2\n" \ ++ " stdcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*(mem)) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) + + #define __arch_atomic_decrement_if_positive_64(mem) \ + ({ int __val, __tmp; \ +- __asm __volatile ("1: ldarx %0,0,%3\n" \ ++ __asm __volatile ("1: ldarx %0,%y2\n" \ + " cmpdi 0,%0,0\n" \ + " addi %1,%0,-1\n" \ + " ble 2f\n" \ +- " stdcx. %1,0,%3\n" \ ++ " stdcx. %1,%y2\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) diff --git a/pre_checkin.sh b/pre_checkin.sh deleted file mode 100644 index 4dc225c..0000000 --- a/pre_checkin.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -for flavor in utils testsuite; do - sed -e "/^# INCLUDE /r glibc-$flavor.spec.in" \ - -e "/^# INCLUDE /,/^# END INCLUDE /d" \ - glibc.spec > glibc-$flavor.spec - cp glibc.changes glibc-$flavor.changes -done -osc service lr format_spec_file diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 diff --git a/reinitialize-dl_load_write_lock.patch b/reinitialize-dl_load_write_lock.patch deleted file mode 100644 index ace3ede..0000000 --- a/reinitialize-dl_load_write_lock.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: glibc-2.22/sysdeps/nptl/fork.c -=================================================================== ---- glibc-2.22.orig/sysdeps/nptl/fork.c -+++ glibc-2.22/sysdeps/nptl/fork.c -@@ -174,8 +174,9 @@ __libc_fork (void) - _IO_list_resetlock (); - } - -- /* Reset the lock the dynamic loader uses to protect its data. */ -+ /* Reset the locks the dynamic loader uses to protect its data. */ - __rtld_lock_initialize (GL(dl_load_lock)); -+ __rtld_lock_initialize (GL(dl_load_write_lock)); - - /* Run the handlers registered for the child. */ - while (allp != NULL) diff --git a/remove-nss-nis-compat.patch b/remove-nss-nis-compat.patch deleted file mode 100644 index 4a78c5c..0000000 --- a/remove-nss-nis-compat.patch +++ /dev/null @@ -1,207 +0,0 @@ -2017-08-29 Steve Ellcey - - * grp/initgroups.c: Include config.h. - (DEFAULT_CONFIG): New macro. - (internal_getgrouplist): Use DEFAULT_CONFIG. - * nscd/initgrcache.c (addinitgroupsX): Likewise. - * nss/nsswitch.c (__nss_disable_nscd): Likewise. - (DEFAULT_DEFCONFIG): New macro. - (__nss_database_lookup): Use DEFAULT_DEFCONFIG. - * nss/grp-lookup.c: Include config.h - (DEFAULT_CONFIG): Set definition based on LINK_OBSOLETE_NSL. - * nss/pwd-lookup.c (DEFAULT_CONFIG): Likewise. - * nss/spwd-lookup.c (DEFAULT_CONFIG): Likewise. - * manual/nss.texi: Update default values section. - - -Index: glibc-2.26/grp/initgroups.c -=================================================================== ---- glibc-2.26.orig/grp/initgroups.c -+++ glibc-2.26/grp/initgroups.c -@@ -26,10 +26,16 @@ - #include - #include - #include -+#include - - #include "../nscd/nscd-client.h" - #include "../nscd/nscd_proto.h" - -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - /* Type of the lookup function. */ - typedef enum nss_status (*initgroups_dyn_function) (const char *, gid_t, -@@ -84,7 +90,7 @@ internal_getgrouplist (const char *user, - &__nss_initgroups_database) < 0) - { - if (__nss_group_database == NULL) -- no_more = __nss_database_lookup ("group", NULL, "compat files", -+ no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG, - &__nss_group_database); - - __nss_initgroups_database = __nss_group_database; -Index: glibc-2.26/manual/nss.texi -=================================================================== ---- glibc-2.26.orig/manual/nss.texi -+++ glibc-2.26/manual/nss.texi -@@ -318,13 +318,17 @@ The @code{passwd}, @code{group}, and @co - traditionally handled in a special way. The appropriate files in the - @file{/etc} directory are read but if an entry with a name starting - with a @code{+} character is found NIS is used. This kind of lookup --remains possible by using the special lookup service @code{compat} --and the default value for the three databases above is --@code{compat [NOTFOUND=return] files}. -+remains possible if @theglibc{} was configured with the -+@code{--enable-obsolete-nsl} option and the special lookup service -+@code{compat} is used. If @theglibc{} was configured with the -+@code{--enable-obsolete-nsl} option the default value for the three -+databases above is @code{compat [NOTFOUND=return] files}. If the -+@code{--enable-obsolete-nsl} option was not used the default value -+for the services is @code{files}. - --For all other databases the default value is --@code{nis [NOTFOUND=return] files}. This solution gives the best --chance to be correct since NIS and file based lookups are used. -+For all other databases the default value is @code{files} unless -+@theglibc{} was configured with @code{--enable-obsolete-rpc} option, in -+which case it the default value is @code{nis [NOTFOUND=return] files}. - - @cindex optimizing NSS - A second point is that the user should try to optimize the lookup -Index: glibc-2.26/nscd/initgrcache.c -=================================================================== ---- glibc-2.26.orig/nscd/initgrcache.c -+++ glibc-2.26/nscd/initgrcache.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #include "dbg_log.h" - #include "nscd.h" -@@ -34,6 +35,11 @@ - - #include "../nss/nsswitch.h" - -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - /* Type of the lookup function. */ - typedef enum nss_status (*initgroups_dyn_function) (const char *, gid_t, -@@ -85,8 +91,7 @@ addinitgroupsX (struct database_dyn *db, - int no_more; - - if (group_database == NULL) -- no_more = __nss_database_lookup ("group", NULL, -- "compat [NOTFOUND=return] files", -+ no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG, - &group_database); - else - no_more = 0; -Index: glibc-2.26/nss/grp-lookup.c -=================================================================== ---- glibc-2.26.orig/nss/grp-lookup.c -+++ glibc-2.26/nss/grp-lookup.c -@@ -16,7 +16,13 @@ - License along with the GNU C Library; if not, see - . */ - -+#include -+ - #define DATABASE_NAME group --#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - #include "XXX-lookup.c" -Index: glibc-2.26/nss/nsswitch.c -=================================================================== ---- glibc-2.26.orig/nss/nsswitch.c -+++ glibc-2.26/nss/nsswitch.c -@@ -40,6 +40,15 @@ - #include "nsswitch.h" - #include "../nscd/nscd_proto.h" - #include -+#include -+ -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+# define DEFAULT_DEFCONFIG "nis [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+# define DEFAULT_DEFCONFIG "files" -+#endif - - /* Prototypes for the local functions. */ - static name_database *nss_parse_file (const char *fname) internal_function; -@@ -151,8 +160,7 @@ __nss_database_lookup (const char *datab - or null to use the most common default. */ - if (*ni == NULL) - { -- *ni = nss_parse_service_list (defconfig -- ?: "nis [NOTFOUND=return] files"); -+ *ni = nss_parse_service_list (defconfig ?: DEFAULT_DEFCONFIG); - if (*ni != NULL) - { - /* Record the memory we've just allocated in defconfig_entries list, -@@ -848,8 +856,8 @@ __nss_disable_nscd (void (*cb) (size_t, - is_nscd = true; - - /* Find all the relevant modules so that the init functions are called. */ -- nss_load_all_libraries ("passwd", "compat [NOTFOUND=return] files"); -- nss_load_all_libraries ("group", "compat [NOTFOUND=return] files"); -+ nss_load_all_libraries ("passwd", DEFAULT_CONFIG); -+ nss_load_all_libraries ("group", DEFAULT_CONFIG); - nss_load_all_libraries ("hosts", "dns [!UNAVAIL=return] files"); - nss_load_all_libraries ("services", NULL); - -Index: glibc-2.26/nss/pwd-lookup.c -=================================================================== ---- glibc-2.26.orig/nss/pwd-lookup.c -+++ glibc-2.26/nss/pwd-lookup.c -@@ -16,7 +16,13 @@ - License along with the GNU C Library; if not, see - . */ - -+#include -+ - #define DATABASE_NAME passwd --#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - #include "XXX-lookup.c" -Index: glibc-2.26/nss/spwd-lookup.c -=================================================================== ---- glibc-2.26.orig/nss/spwd-lookup.c -+++ glibc-2.26/nss/spwd-lookup.c -@@ -16,8 +16,14 @@ - License along with the GNU C Library; if not, see - . */ - -+#include -+ - #define DATABASE_NAME shadow - #define ALTERNATE_NAME passwd --#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - #include "XXX-lookup.c" diff --git a/resolv-context-leak.patch b/resolv-context-leak.patch deleted file mode 100644 index 352e7c8..0000000 --- a/resolv-context-leak.patch +++ /dev/null @@ -1,53 +0,0 @@ -2017-08-09 Florian Weimer - - [BZ #21932] - * nss/getXXbyYY_r.c (REENTRANT_NAME): Call __resolv_context_put - before early return. - -2017-08-03 Florian Weimer - - [BZ #21885] - * sysdeps/posix/getaddrinfo.c (gethosts): Release resolver context - on memory allocation failure. - -Index: glibc-2.26/nss/getXXbyYY_r.c -=================================================================== ---- glibc-2.26.orig/nss/getXXbyYY_r.c -+++ glibc-2.26/nss/getXXbyYY_r.c -@@ -234,6 +234,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L - H_ERRNO_VAR_P)) - { - case -1: -+# ifdef NEED__RES -+ __resolv_context_put (res_ctx); -+# endif - return errno; - case 1: - #ifdef NEED_H_ERRNO -@@ -253,7 +256,12 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L - nscd_status = NSCD_NAME (ADD_VARIABLES, resbuf, buffer, buflen, result - H_ERRNO_VAR); - if (nscd_status >= 0) -- return nscd_status; -+ { -+# ifdef NEED__RES -+ __resolv_context_put (res_ctx); -+# endif -+ return nscd_status; -+ } - } - #endif - -Index: glibc-2.26/sysdeps/posix/getaddrinfo.c -=================================================================== ---- glibc-2.26.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.26/sysdeps/posix/getaddrinfo.c -@@ -255,6 +255,8 @@ convert_hostent_to_gaih_addrtuple (const - break; \ - if (!scratch_buffer_grow (tmpbuf)) \ - { \ -+ __resolv_context_enable_inet6 (res_ctx, res_enable_inet6); \ -+ __resolv_context_put (res_ctx); \ - result = -EAI_MEMORY; \ - goto free_and_return; \ - } \ diff --git a/resolv.dynamic.diff b/resolv.dynamic.diff new file mode 100644 index 0000000..e35b313 --- /dev/null +++ b/resolv.dynamic.diff @@ -0,0 +1,31 @@ +--- resolv/res_libc.c.orig 2005-04-07 14:26:57.181526898 +0200 ++++ resolv/res_libc.c 2005-04-07 18:38:56.718340309 +0200 +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + + /* The following bit is copied from res_data.c (where it is #ifdef'ed +@@ -101,6 +102,20 @@ + __res_maybe_init (res_state resp, int preinit) + { + if (resp->options & RES_INIT) { ++ static time_t last_mtime, last_check; ++ time_t now; ++ struct stat statbuf; ++ ++ time (&now); ++ if (now != last_check) { ++ last_check = now; ++ if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) { ++ last_mtime = statbuf.st_mtime; ++ atomicinclock (lock); ++ atomicinc (__res_initstamp); ++ atomicincunlock (lock); ++ } ++ } + if (__res_initstamp != resp->_u._ext.initstamp) { + if (resp->nscount > 0) { + __res_nclose (resp); diff --git a/s390-elision-enable-envvar.patch b/s390-elision-enable-envvar.patch deleted file mode 100644 index e83b280..0000000 --- a/s390-elision-enable-envvar.patch +++ /dev/null @@ -1,31 +0,0 @@ -Index: glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c -=================================================================== ---- glibc-2.25.orig/sysdeps/unix/sysv/linux/s390/elision-conf.c -+++ glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - - /* Reasonable initial tuning values, may be revised in the future. - This is a conservative initial value. */ -@@ -64,7 +65,17 @@ elision_init (int argc __attribute__ ((u - When false elision is never attempted. */ - int elision_available = (GLRO (dl_hwcap) & HWCAP_S390_TE) ? 1 : 0; - -- __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; -+ /* Scan the environment and conditionally enable TLE. */ -+ if (elision_available != 0 && __libc_enable_secure == 0) -+ { -+ for ( ; *environ != NULL; environ++) -+ if (**environ == 'G' -+ && strcmp (*environ, "GLIBC_ELISION_ENABLE=yes") == 0) -+ { -+ __pthread_force_elision = elision_available; -+ break; -+ } -+ } - } - - #ifdef SHARED From 872d7e63df23da2f111f2821587b9a3dba1d59092efbd9a699ace35537608813 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 3 Mar 2009 17:34:01 +0000 Subject: [PATCH 002/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=2 --- glibc-2.9-fortify.diff | 16 ++++++++++++++++ glibc.changes | 6 ++++++ glibc.spec | 7 ++++++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 glibc-2.9-fortify.diff diff --git a/glibc-2.9-fortify.diff b/glibc-2.9-fortify.diff new file mode 100644 index 0000000..7dc6f0b --- /dev/null +++ b/glibc-2.9-fortify.diff @@ -0,0 +1,16 @@ +--- misc/sys/cdefs.h.orig 2009-02-27 16:05:10.000000000 +0100 ++++ misc/sys/cdefs.h 2009-02-27 16:06:32.000000000 +0100 +@@ -303,7 +303,12 @@ + # endif + # else + # define __extern_inline extern __inline +-# define __extern_always_inline extern __always_inline ++# if __GNUC_PREREQ (4,3) ++# define __extern_always_inline \ ++ extern __always_inline __attribute__ ((__artificial__)) ++# else ++# define __extern_always_inline extern __always_inline ++# endif + # endif + #endif + diff --git a/glibc.changes b/glibc.changes index a80652d..39b09c2 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Feb 27 16:21:17 CET 2009 - rguenther@suse.de + +- Make sure to mark fortified inline routines with + __attribute__((__artificial__)). + ------------------------------------------------------------------- Wed Feb 18 16:18:19 CET 2009 - adrian@suse.de diff --git a/glibc.spec b/glibc.spec index 39d8d14..96cf84e 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,7 +69,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.9 -Release: 12 +Release: 14 %define snapshot_date 2008111711 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem @@ -149,6 +149,7 @@ Patch54: glibc-2.10-nscd-nostack.diff Patch55: glibc-cpusetsize.diff Patch56: glibc-ldscript.diff Patch57: glibc-mtfsf.diff +Patch58: glibc-2.9-fortify.diff %description The GNU C Library provides the most important standard libraries used @@ -358,6 +359,7 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch55 %patch56 %patch57 +%patch58 %patch5 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -1056,6 +1058,9 @@ exit 0 %{_libdir}/libdl_p.a %changelog +* Fri Feb 27 2009 rguenther@suse.de +- Make sure to mark fortified inline routines with + __attribute__((__artificial__)). * Wed Feb 18 2009 adrian@suse.de - Build i686 glibc src rpm as nosrc to get both versions on the media [bnc#474338] From 995089c3c65ae7cc490ca2b335f20add02577c26808e964719d146032eecb2e5 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 24 Mar 2009 17:36:26 +0000 Subject: [PATCH 003/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=3 --- glibc-2.3.3-amd64-string.diff | 49 ++++++++++++++++++----------------- glibc.changes | 6 +++++ glibc.spec | 5 +++- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/glibc-2.3.3-amd64-string.diff b/glibc-2.3.3-amd64-string.diff index 03b513b..7bcd51a 100644 --- a/glibc-2.3.3-amd64-string.diff +++ b/glibc-2.3.3-amd64-string.diff @@ -1,8 +1,8 @@ ============================================================ Index: sysdeps/x86_64/strlen.S =================================================================== ---- sysdeps/x86_64/strlen.S.orig -+++ sysdeps/x86_64/strlen.S +--- sysdeps/x86_64/strlen.S.orig 2003-04-30 00:47:18.000000000 +0200 ++++ sysdeps/x86_64/strlen.S 2009-03-23 16:32:42.000000000 +0100 @@ -1,139 +1,405 @@ -/* strlen(str) -- determine the length of the string STR. - Copyright (C) 2002, 2003 Free Software Foundation, Inc. @@ -548,9 +548,9 @@ Index: sysdeps/x86_64/strlen.S libc_hidden_builtin_def (strlen) Index: sysdeps/x86_64/dl-machine.h =================================================================== ---- sysdeps/x86_64/dl-machine.h.orig -+++ sysdeps/x86_64/dl-machine.h -@@ -219,6 +219,40 @@ dl_platform_init (void) +--- sysdeps/x86_64/dl-machine.h.orig 2008-11-14 16:42:29.000000000 +0100 ++++ sysdeps/x86_64/dl-machine.h 2009-03-23 16:32:42.000000000 +0100 +@@ -226,6 +226,40 @@ dl_platform_init (void) if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') /* Avoid an empty string which would disturb us. */ GLRO(dl_platform) = NULL; @@ -593,8 +593,8 @@ Index: sysdeps/x86_64/dl-machine.h static inline Elf64_Addr Index: sysdeps/x86_64/Makefile =================================================================== ---- sysdeps/x86_64/Makefile.orig -+++ sysdeps/x86_64/Makefile +--- sysdeps/x86_64/Makefile.orig 2008-11-14 16:42:29.000000000 +0100 ++++ sysdeps/x86_64/Makefile 2009-03-23 16:32:42.000000000 +0100 @@ -4,6 +4,9 @@ long-double-fcts = yes ifeq ($(subdir),csu) sysdep_routines += hp-timing @@ -607,8 +607,8 @@ Index: sysdeps/x86_64/Makefile ifeq ($(subdir),gmon) Index: sysdeps/x86_64/strcpy.S =================================================================== ---- sysdeps/x86_64/strcpy.S.orig -+++ sysdeps/x86_64/strcpy.S +--- sysdeps/x86_64/strcpy.S.orig 2003-04-30 00:47:18.000000000 +0200 ++++ sysdeps/x86_64/strcpy.S 2009-03-23 16:32:42.000000000 +0100 @@ -1,159 +1,833 @@ -/* strcpy/stpcpy implementation for x86-64. - Copyright (C) 2002 Free Software Foundation, Inc. @@ -1591,8 +1591,8 @@ Index: sysdeps/x86_64/strcpy.S #endif Index: sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c =================================================================== ---- sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c.orig -+++ sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c +--- sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c.orig 2005-12-14 09:09:28.000000000 +0100 ++++ sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c 2009-03-23 16:32:42.000000000 +0100 @@ -1,5 +1,5 @@ #ifdef IS_IN_ldconfig # include @@ -1602,8 +1602,8 @@ Index: sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c #endif Index: sysdeps/x86_64/dl-procinfo.c =================================================================== ---- /dev/null -+++ sysdeps/x86_64/dl-procinfo.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sysdeps/x86_64/dl-procinfo.c 2009-03-23 16:32:42.000000000 +0100 @@ -0,0 +1,108 @@ +/* Data for x86-64 version of processor capability information. + Copyright (C) 2004 Free Software Foundation, Inc. @@ -1715,8 +1715,8 @@ Index: sysdeps/x86_64/dl-procinfo.c +#undef PROCINFO_CLASS Index: sysdeps/x86_64/elf/rtld-global-offsets.sym =================================================================== ---- /dev/null -+++ sysdeps/x86_64/elf/rtld-global-offsets.sym +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sysdeps/x86_64/elf/rtld-global-offsets.sym 2009-03-23 16:32:42.000000000 +0100 @@ -0,0 +1,10 @@ +#define SHARED 1 + @@ -1730,9 +1730,9 @@ Index: sysdeps/x86_64/elf/rtld-global-offsets.sym +RTLD_GLOBAL_DL_CACHE2SIZEHALF rtdl_global_offsetof (_dl_cache2sizehalf) Index: sysdeps/x86_64/memcmp.S =================================================================== ---- /dev/null -+++ sysdeps/x86_64/memcmp.S -@@ -0,0 +1,442 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sysdeps/x86_64/memcmp.S 2009-03-23 16:32:42.000000000 +0100 +@@ -0,0 +1,443 @@ +# $Header: /K8_Projects/Glibc/amd64memcmp.S 4 10/06/03 10:57 Emenezes $ + +# (c) 2002 Advanced Micro Devices, Inc. @@ -2175,10 +2175,11 @@ Index: sysdeps/x86_64/memcmp.S + +#undef bcmp +weak_alias (memcmp, bcmp) ++libc_hidden_builtin_def (memcmp) Index: sysdeps/x86_64/strncmp.S =================================================================== ---- /dev/null -+++ sysdeps/x86_64/strncmp.S +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sysdeps/x86_64/strncmp.S 2009-03-23 16:32:42.000000000 +0100 @@ -0,0 +1,15 @@ +# $Header: /K8_Projects/Glibc/amd64strncpy.S 1 8/29/03 16:37 Emenezes $ + @@ -2197,8 +2198,8 @@ Index: sysdeps/x86_64/strncmp.S +libc_hidden_builtin_def (strncmp) Index: sysdeps/x86_64/strcmp.S =================================================================== ---- sysdeps/x86_64/strcmp.S.orig -+++ sysdeps/x86_64/strcmp.S +--- sysdeps/x86_64/strcmp.S.orig 2005-03-31 12:00:13.000000000 +0200 ++++ sysdeps/x86_64/strcmp.S 2009-03-23 16:32:42.000000000 +0100 @@ -1,45 +1,487 @@ -/* Highly optimized version for x86-64. - Copyright (C) 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc. @@ -2731,8 +2732,8 @@ Index: sysdeps/x86_64/strcmp.S libc_hidden_builtin_def (strcmp) Index: sysdeps/x86_64/memcpy.S =================================================================== ---- sysdeps/x86_64/memcpy.S.orig -+++ sysdeps/x86_64/memcpy.S +--- sysdeps/x86_64/memcpy.S.orig 2007-11-06 03:49:38.000000000 +0100 ++++ sysdeps/x86_64/memcpy.S 2009-03-23 16:32:42.000000000 +0100 @@ -39,7 +39,7 @@ .text diff --git a/glibc.changes b/glibc.changes index 39b09c2..8eff749 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Mar 23 15:32:01 CET 2009 - rguenther@suse.de + +- Add missing libc_hidden_builtin_def (memcmp) to + glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. + ------------------------------------------------------------------- Fri Feb 27 16:21:17 CET 2009 - rguenther@suse.de diff --git a/glibc.spec b/glibc.spec index 96cf84e..a032f5f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,7 +69,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.9 -Release: 14 +Release: 15 %define snapshot_date 2008111711 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem @@ -1058,6 +1058,9 @@ exit 0 %{_libdir}/libdl_p.a %changelog +* Mon Mar 23 2009 rguenther@suse.de +- Add missing libc_hidden_builtin_def (memcmp) to + glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. * Fri Feb 27 2009 rguenther@suse.de - Make sure to mark fortified inline routines with __attribute__((__artificial__)). From 87b54a39197e8668fe42f6c7f0fa3a08a4ce62ecadc2da92c0e351be48ef80ef Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Wed, 27 May 2009 10:39:38 +0000 Subject: [PATCH 004/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=4 --- ARM_glibc-2.10.1-local-eabi-wchar.diff | 33 ++ ARM_glibc-2.10.1-local-hwcap-updates.diff | 43 ++ ARM_glibc-2.10.1-local-lowlevellock.diff | 14 + ARM_glibc-2.10.1-local-no-hwcap.diff | 19 + crypt_blowfish-glibc-2.3.diff | 11 +- glibc-2.10-dns-fixpack.diff | 169 ------- glibc-2.10-dns-no-gethostbyname4.diff | 26 - glibc-2.10-locale-tuesday.diff | 26 - glibc-2.10-nis-hosts.diff | 84 ---- glibc-2.10-nscd-gc-dataofs.diff | 15 - glibc-2.10-nscd-meminflight.diff | 86 ---- glibc-2.10-nscd-prunerace.diff | 88 ---- glibc-2.10-ppc32-setcontext-fp.diff | 29 -- glibc-2.10-unsetenv.diff | 69 --- glibc-2.10.1-e38af591a8.tar.bz2 | 3 + glibc-2.3.3-amd64-string.diff | 141 ++---- glibc-2.3.5-nscd-zeronegtimeout.diff | 23 +- glibc-2.4.90-mdns-resolver.diff | 456 ------------------ glibc-2.8-dlosinfo.diff | 14 - glibc-2.8-revert-nscleanup.diff | 4 + glibc-2.9-2008111711.tar.bz2 | 3 - glibc-2.9-fortify.diff | 16 - ...=> glibc-check-native-missing-include.diff | 0 glibc-compiled-binaries.diff | 33 +- glibc-fix-nscd.diff | 49 -- glibc-getgroups-fortify.diff | 14 - glibc-ldscript.diff | 11 - glibc-mtfsf.diff | 159 ------ glibc-nis-splitgroups.diff | 100 ++++ glibc-nptl-2.9-2008111711.tar.bz2 | 3 - glibc-nscd-prune-ret.diff | 12 + glibc-nss-deepbind.diff | 4 + glibc-ports-2.10.1-2b2b217196.tar.bz2 | 3 + glibc-version.diff | 2 +- glibc.changes | 94 ++++ glibc.spec | 230 +++++---- 36 files changed, 530 insertions(+), 1556 deletions(-) create mode 100644 ARM_glibc-2.10.1-local-eabi-wchar.diff create mode 100644 ARM_glibc-2.10.1-local-hwcap-updates.diff create mode 100644 ARM_glibc-2.10.1-local-lowlevellock.diff create mode 100644 ARM_glibc-2.10.1-local-no-hwcap.diff delete mode 100644 glibc-2.10-dns-fixpack.diff delete mode 100644 glibc-2.10-dns-no-gethostbyname4.diff delete mode 100644 glibc-2.10-locale-tuesday.diff delete mode 100644 glibc-2.10-nis-hosts.diff delete mode 100644 glibc-2.10-nscd-gc-dataofs.diff delete mode 100644 glibc-2.10-nscd-meminflight.diff delete mode 100644 glibc-2.10-nscd-prunerace.diff delete mode 100644 glibc-2.10-ppc32-setcontext-fp.diff delete mode 100644 glibc-2.10-unsetenv.diff create mode 100644 glibc-2.10.1-e38af591a8.tar.bz2 delete mode 100644 glibc-2.4.90-mdns-resolver.diff delete mode 100644 glibc-2.8-dlosinfo.diff delete mode 100644 glibc-2.9-2008111711.tar.bz2 delete mode 100644 glibc-2.9-fortify.diff rename missing-include-build-fix.diff => glibc-check-native-missing-include.diff (100%) delete mode 100644 glibc-fix-nscd.diff delete mode 100644 glibc-getgroups-fortify.diff delete mode 100644 glibc-ldscript.diff delete mode 100644 glibc-mtfsf.diff create mode 100644 glibc-nis-splitgroups.diff delete mode 100644 glibc-nptl-2.9-2008111711.tar.bz2 create mode 100644 glibc-nscd-prune-ret.diff create mode 100644 glibc-ports-2.10.1-2b2b217196.tar.bz2 diff --git a/ARM_glibc-2.10.1-local-eabi-wchar.diff b/ARM_glibc-2.10.1-local-eabi-wchar.diff new file mode 100644 index 0000000..a5fa3e4 --- /dev/null +++ b/ARM_glibc-2.10.1-local-eabi-wchar.diff @@ -0,0 +1,33 @@ +--- + ports/sysdeps/arm/eabi/bits/wchar.h | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +--- /dev/null ++++ ports/sysdeps/arm/eabi/bits/wchar.h +@@ -0,0 +1,26 @@ ++/* wchar_t type related definitions. ++ Copyright (C) 2000 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_WCHAR_H ++#define _BITS_WCHAR_H 1 ++ ++#define __WCHAR_MIN ( 0 ) ++#define __WCHAR_MAX ( (wchar_t) - 1 ) ++ ++#endif /* bits/wchar.h */ diff --git a/ARM_glibc-2.10.1-local-hwcap-updates.diff b/ARM_glibc-2.10.1-local-hwcap-updates.diff new file mode 100644 index 0000000..fedcd9d --- /dev/null +++ b/ARM_glibc-2.10.1-local-hwcap-updates.diff @@ -0,0 +1,43 @@ +diff -Naur _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c +--- _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c 2006-09-21 20:39:51.000000000 +0200 ++++ ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c 2009-05-15 21:23:43.166714113 +0200 +@@ -47,12 +47,12 @@ + #if !defined PROCINFO_DECL && defined SHARED + ._dl_arm_cap_flags + #else +-PROCINFO_CLASS const char _dl_arm_cap_flags[10][10] ++PROCINFO_CLASS const char _dl_arm_cap_flags[13][10] + #endif + #ifndef PROCINFO_DECL + = { + "swp", "half", "thumb", "26bit", "fast-mult", "fpa", "vfp", "edsp", +- "java", "iwmmxt", ++ "java", "iwmmxt", "crunch", "thumbee", "neon", + } + #endif + #if !defined SHARED || defined PROCINFO_DECL +diff -Naur _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h +--- _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h 2006-09-21 20:39:51.000000000 +0200 ++++ ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h 2009-05-15 21:23:43.166714113 +0200 +@@ -24,7 +24,7 @@ + #include + #include + +-#define _DL_HWCAP_COUNT 10 ++#define _DL_HWCAP_COUNT 13 + + /* The kernel provides platform data but it is not interesting. */ + #define _DL_HWCAP_PLATFORM 0 +diff -Naur _ports//sysdeps/unix/sysv/linux/arm/sysdep.h ports//sysdeps/unix/sysv/linux/arm/sysdep.h +--- _ports//sysdeps/unix/sysv/linux/arm/sysdep.h 2009-05-15 18:56:52.000000000 +0200 ++++ ports//sysdeps/unix/sysv/linux/arm/sysdep.h 2009-05-15 21:23:43.166714113 +0200 +@@ -55,6 +55,9 @@ + #define HWCAP_ARM_EDSP 128 + #define HWCAP_ARM_JAVA 256 + #define HWCAP_ARM_IWMMXT 512 ++#define HWCAP_ARM_CRUNCH 1024 ++#define HWCAP_ARM_THUMBEE 2048 ++#define HWCAP_ARM_NEON 4096 + + #ifdef __ASSEMBLER__ + diff --git a/ARM_glibc-2.10.1-local-lowlevellock.diff b/ARM_glibc-2.10.1-local-lowlevellock.diff new file mode 100644 index 0000000..615b818 --- /dev/null +++ b/ARM_glibc-2.10.1-local-lowlevellock.diff @@ -0,0 +1,14 @@ +--- + ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h | 1 + + 1 file changed, 1 insertion(+) + +--- ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h ++++ ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include /* Need THREAD_*, and header.*. */ + + #define FUTEX_WAIT 0 + #define FUTEX_WAKE 1 diff --git a/ARM_glibc-2.10.1-local-no-hwcap.diff b/ARM_glibc-2.10.1-local-no-hwcap.diff new file mode 100644 index 0000000..cefbb2c --- /dev/null +++ b/ARM_glibc-2.10.1-local-no-hwcap.diff @@ -0,0 +1,19 @@ +# DP: Restricted hardware caps for ARM +# needs corresponding kernel-support +# see https://bugs.launchpad.net/ubuntu/+source/linux/+bug/343602 + +--- + ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h ++++ ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h +@@ -54,7 +54,7 @@ + return GLRO(dl_arm_cap_flags)[idx]; + }; + +-#define HWCAP_IMPORTANT (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT) ++#define HWCAP_IMPORTANT (HWCAP_ARM_VFP | HWCAP_ARM_NEON) + + static inline int + __attribute__ ((unused)) diff --git a/crypt_blowfish-glibc-2.3.diff b/crypt_blowfish-glibc-2.3.diff index a8abbcd..e46ffcd 100644 --- a/crypt_blowfish-glibc-2.3.diff +++ b/crypt_blowfish-glibc-2.3.diff @@ -35,15 +35,14 @@ #endif /* crypt-private.h */ --- crypt/Makefile~ 2007-11-06 05:27:13.635014000 +0100 +++ crypt/Makefile 2007-11-06 05:27:27.500142000 +0100 -@@ -27,7 +27,8 @@ +@@ -27,7 +27,7 @@ extra-libs-others := $(extra-libs) - libcrypt-routines := crypt-entry md5-crypt md5 sha256-crypt sha256 \ -- sha512-crypt sha512 crypt crypt_util -+ sha512-crypt sha512 crypt crypt_util \ -+ crypt_blowfish crypt_gensalt wrapper + libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ +- crypt_util ++ crypt_util crypt_blowfish crypt_gensalt wrapper - tests := cert md5test md5c-test sha256test sha256c-test sha512test sha512c-test + tests := cert md5c-test sha256c-test sha512c-test --- crypt/ow-crypt.h 2001-05-01 13:14:31.000000000 +0200 +++ crypt/ow-crypt.h 2003-10-01 11:23:27.000000000 +0200 diff --git a/glibc-2.10-dns-fixpack.diff b/glibc-2.10-dns-fixpack.diff deleted file mode 100644 index 88318d6..0000000 --- a/glibc-2.10-dns-fixpack.diff +++ /dev/null @@ -1,169 +0,0 @@ -2008-11-26 Ulrich Drepper - - * sysdeps/posix/getaddrinfo.c (getaddrinfo): Only restrict search - to IPv4 or IPv6 if an interface has been found. - ---- sysdeps/posix/getaddrinfo.c 30 Jul 2008 19:14:22 -0000 1.136 -+++ sysdeps/posix/getaddrinfo.c 3 Dec 2008 07:04:10 -0000 1.139 -@@ -2108,7 +2110,7 @@ getaddrinfo (const char *name, const cha - { - /* If we haven't seen both IPv4 and IPv6 interfaces we can - narrow down the search. */ -- if (! seen_ipv4 || ! seen_ipv6) -+ if ((! seen_ipv4 || ! seen_ipv6) && (seen_ipv4 || seen_ipv6)) - { - local_hints = *hints; - local_hints.ai_family = seen_ipv4 ? PF_INET : PF_INET6; - - -2008-12-02 Ulrich Drepper - - * sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use - gethostbyname4_r, we don't have a separate IPv6 status, so copy - the no_data variable. - ---- sysdeps/posix/getaddrinfo.c 30 Jul 2008 19:14:22 -0000 1.136 -+++ sysdeps/posix/getaddrinfo.c 3 Dec 2008 07:04:10 -0000 1.139 -@@ -733,6 +733,8 @@ gaih_inet (const char *name, const struc - tmpbuflen, 2 * tmpbuflen); - } - -+ no_inet6_data = no_data; -+ - if (status == NSS_STATUS_SUCCESS) - { - if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL) - - -2008-12-02 Ulrich Drepper - - * resolv/res_init.c (__res_vinit): Initialize nscount to zero. - - * resolv/res_init.c (__res_vinit): Fill in IPv4 name server - information at the correct index. - -2008-12-07 Ulrich Drepper - - * resolv/res_init.c (__res_vinit): Always assign to statp->nscount - after reading name server list. - ---- resolv/res_init.c 7 Apr 2008 17:20:25 -0000 1.47 -+++ resolv/res_init.c 8 Dec 2008 03:59:05 -0000 1.50 -@@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit - #endif - statp->nsaddr.sin_family = AF_INET; - statp->nsaddr.sin_port = htons(NAMESERVER_PORT); -- statp->nscount = 1; -+ statp->nscount = 0; - statp->ndots = 1; - statp->pfcode = 0; - statp->_vcsock = -1; -@@ -314,9 +314,9 @@ __res_vinit(res_state statp, int preinit - cp++; - if ((*cp != '\0') && (*cp != '\n') - && __inet_aton(cp, &a)) { -- statp->nsaddr_list[nserv].sin_addr = a; -- statp->nsaddr_list[nserv].sin_family = AF_INET; -- statp->nsaddr_list[nserv].sin_port = -+ statp->nsaddr_list[nservall].sin_addr = a; -+ statp->nsaddr_list[nservall].sin_family = AF_INET; -+ statp->nsaddr_list[nservall].sin_port = - htons(NAMESERVER_PORT); - nserv++; - #ifdef _LIBC -@@ -420,8 +420,7 @@ __res_vinit(res_state statp, int preinit - continue; - } - } -- if (nserv > 1) -- statp->nscount = nserv; -+ statp->nscount = nserv; - #ifdef _LIBC - if (nservall - nserv > 0) { - statp->_u._ext.nscount6 = nservall - nserv; - - -2008-12-02 Ulrich Drepper - - * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Recognize - ESRCH return value. - (_nss_dns_gethostbyname4_r): Likewise. - ---- resolv/nss_dns/dns-host.c 12 Nov 2008 07:52:20 -0000 1.54 -+++ resolv/nss_dns/dns-host.c 3 Dec 2008 07:09:26 -0000 1.55 -@@ -198,8 +198,14 @@ _nss_dns_gethostbyname3_r (const char *n - 1024, &host_buffer.ptr, NULL, NULL, NULL); - if (n < 0) - { -- status = (errno == ECONNREFUSED -- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); -+ if (errno == ESRCH) -+ { -+ status = NSS_STATUS_TRYAGAIN; -+ h_errno = TRY_AGAIN; -+ } -+ else -+ status = (errno == ECONNREFUSED -+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); - *h_errnop = h_errno; - if (h_errno == TRY_AGAIN) - *errnop = EAGAIN; -@@ -304,8 +310,14 @@ _nss_dns_gethostbyname4_r (const char *n - &ans2p, &nans2p, &resplen2); - if (n < 0) - { -- status = (errno == ECONNREFUSED -- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); -+ if (errno == ESRCH) -+ { -+ status = NSS_STATUS_TRYAGAIN; -+ h_errno = TRY_AGAIN; -+ } -+ else -+ status = (errno == ECONNREFUSED -+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); - *herrnop = h_errno; - if (h_errno == TRY_AGAIN) - *errnop = EAGAIN; - - -2008-12-29 Ulrich Drepper - - * resolv/res_init.c (__res_vinit): Count all servers in statp->nscount. - -diff -u -r1.50 -r1.51 ---- resolv/res_init.c 2008/12/08 03:59:05 1.50 -+++ resolv/res_init.c 2008/12/29 19:53:31 1.51 -@@ -420,7 +420,7 @@ - continue; - } - } -- statp->nscount = nserv; -+ statp->nscount = nservall; - #ifdef _LIBC - if (nservall - nserv > 0) { - statp->_u._ext.nscount6 = nservall - nserv; - - -2009-01-16 Petr Baudis - - * resolv/res_libc (__res_maybe_init): Call __res_vinit() - even if we currently have zero nscount. - -diff --git a/resolv/res_libc.c b/resolv/res_libc.c -index 8af57f7..810fbc8 100644 ---- resolv/res_libc.c -+++ resolv/res_libc.c -@@ -96,10 +96,9 @@ __res_maybe_init (res_state resp, int preinit) - { - if (resp->options & RES_INIT) { - if (__res_initstamp != resp->_u._ext.initstamp) { -- if (resp->nscount > 0) { -+ if (resp->nscount > 0) - __res_iclose (resp, true); -- return __res_vinit (resp, 1); -- } -+ return __res_vinit (resp, 1); - } - return 0; - } else if (preinit) { diff --git a/glibc-2.10-dns-no-gethostbyname4.diff b/glibc-2.10-dns-no-gethostbyname4.diff deleted file mode 100644 index 30f37a6..0000000 --- a/glibc-2.10-dns-no-gethostbyname4.diff +++ /dev/null @@ -1,26 +0,0 @@ -The gethostbyname4() lookup method is problematic since it fires out both -the A and AAAA DNS queries in parallel and over the same socket. This -should work in theory, but it turns out that many cheap DSL modems and -similar devices have buggy DNS servers - if the AAAA query arrives too -quickly after the A query, the server will generate only a single reply -with the A query id but returning an error for the AAAA query; we get -stuck waiting for the second reply. - -For gethostbyname4() users affected, disabling IPv6 in the system might -work around the issue, unfortunately it only helps with applications -using AI_ADDRCONFIG (e.g. Firefox); some (notably e.g. Pidgin) neglect -to do that. - -Real fix should be using separate ports for the A and AAAA queries. - ---- resolv/Versions 2008-08-02 10:26:09.000000000 +0200 -+++ resolv/Versions 2008-12-08 12:51:53.000000000 +0100 -@@ -102,7 +102,7 @@ libnss_dns { - _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; - _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; - _nss_dns_gethostbyaddr2_r; -- _nss_dns_gethostbyname4_r; -+# _nss_dns_gethostbyname4_r; - } - } - diff --git a/glibc-2.10-locale-tuesday.diff b/glibc-2.10-locale-tuesday.diff deleted file mode 100644 index 4795094..0000000 --- a/glibc-2.10-locale-tuesday.diff +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/localedata/locales/csb_PL b/localedata/locales/csb_PL -index 663fd6c..93c9ae2 100644 ---- localedata/locales/csb_PL -+++ localedata/locales/csb_PL -@@ -184,7 +184,7 @@ t_fmt_ampm "" - date_fmt "/ - / - " --week 7;19971201;4 -+week 7;19971130;4 - first_weekday 2 - first_workday 2 - END LC_TIME -diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB -index fe58f1f..6a81d6d 100644 ---- localedata/locales/en_GB -+++ localedata/locales/en_GB -@@ -121,7 +121,7 @@ t_fmt_ampm "" - date_fmt "/ - / - " --week 7;19971201;4 -+week 7;19971130;4 - first_weekday 2 - first_workday 2 - END LC_TIME diff --git a/glibc-2.10-nis-hosts.diff b/glibc-2.10-nis-hosts.diff deleted file mode 100644 index b421637..0000000 --- a/glibc-2.10-nis-hosts.diff +++ /dev/null @@ -1,84 +0,0 @@ -=================================================================== -RCS file: /cvs/glibc/libc/nis/nss_nis/nis-hosts.c,v -retrieving revision 1.29 -retrieving revision 1.31 -diff -u -r1.29 -r1.31 ---- nis/nss_nis/nis-hosts.c 2008/05/10 23:23:25 1.29 -+++ nis/nss_nis/nis-hosts.c 2008/12/07 17:06:43 1.31 -@@ -485,24 +485,6 @@ - return retval; - } - -- struct parser_data data; -- struct hostent host; -- int parse_res = parse_line (result, &host, &data, buflen, errnop, AF_UNSPEC, -- 0); -- if (__builtin_expect (parse_res < 1, 0)) -- { -- if (parse_res == -1) -- { -- *herrnop = NETDB_INTERNAL; -- return NSS_STATUS_TRYAGAIN; -- } -- else -- { -- *herrnop = HOST_NOT_FOUND; -- return NSS_STATUS_NOTFOUND; -- } -- } -- - if (*pat == NULL) - { - uintptr_t pad = (-(uintptr_t) buffer -@@ -524,16 +506,47 @@ - buflen -= sizeof (struct gaih_addrtuple); - } - -- (*pat)->next = NULL; -- size_t h_name_len = strlen (host.h_name); -- if (h_name_len >= buflen) -+ uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct parser_data); -+ buffer += pad; -+ -+ struct parser_data *data = (void *) buffer; -+ -+ if (__builtin_expect (buflen < sizeof *data + 1 + pad, 0)) - goto erange; -- (*pat)->name = memcpy (buffer, host.h_name, h_name_len + 1); -+ buflen -= pad; -+ -+ struct hostent host; -+ int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC, -+ 0); -+ if (__builtin_expect (parse_res < 1, 0)) -+ { -+ if (parse_res == -1) -+ { -+ *herrnop = NETDB_INTERNAL; -+ return NSS_STATUS_TRYAGAIN; -+ } -+ else -+ { -+ *herrnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } -+ } -+ -+ (*pat)->next = NULL; - (*pat)->family = host.h_addrtype; - memcpy ((*pat)->addr, host.h_addr_list[0], host.h_length); - (*pat)->scopeid = 0; - assert (host.h_addr_list[1] == NULL); - -+ /* Undo the alignment for parser_data. */ -+ buffer -= pad; -+ buflen += pad; -+ -+ size_t h_name_len = strlen (host.h_name) + 1; -+ if (h_name_len >= buflen) -+ goto erange; -+ (*pat)->name = memcpy (buffer, host.h_name, h_name_len); -+ - free (result); - - return NSS_STATUS_SUCCESS; diff --git a/glibc-2.10-nscd-gc-dataofs.diff b/glibc-2.10-nscd-gc-dataofs.diff deleted file mode 100644 index 6ac0b70..0000000 --- a/glibc-2.10-nscd-gc-dataofs.diff +++ /dev/null @@ -1,15 +0,0 @@ -http://sourceware.org/bugzilla/show_bug.cgi?id=9741 - -diff --git a/nscd/mem.c b/nscd/mem.c -index e821729..1f7215e 100644 ---- nscd/mem.c -+++ nscd/mem.c -@@ -163,7 +163,7 @@ gc (struct database_dyn *db) - else - { - he = xmalloc (memory_needed); -- he_data = &he[db->head->nentries * sizeof (struct hashentry *)]; -+ he_data = &he[db->head->nentries]; - he_use_malloc = true; - } - diff --git a/glibc-2.10-nscd-meminflight.diff b/glibc-2.10-nscd-meminflight.diff deleted file mode 100644 index b224e62..0000000 --- a/glibc-2.10-nscd-meminflight.diff +++ /dev/null @@ -1,86 +0,0 @@ ---- nscd/mem.c~ 2008-11-23 12:59:15.000000000 +0100 -+++ nscd/mem.c 2008-11-23 13:52:01.000000000 +0100 -@@ -392,6 +392,7 @@ - moves = moves->next = new_move; - } - -+ ref_t off_alloc_start = off_alloc; - /* The following loop will prepare to move this much data. */ - off_free += off_allocend - off_alloc; - -@@ -410,23 +411,60 @@ - else - { -- assert (next_data < &he_data[db->head->nentries]); -- assert ((*next_data)->packet == off_alloc); - -- struct datahead *dh = (struct datahead *) (db->data + off_alloc); -- do -- { -- assert ((*next_data)->key >= (*next_data)->packet); -- assert ((*next_data)->key + (*next_data)->len -- <= (*next_data)->packet + dh->allocsize); -- -- (*next_data)->packet -= disp; -- (*next_data)->key -= disp; -- ++next_data; -+ if (next_data < &he_data[db->head->nentries] && (*next_data)->packet == off_alloc) -+ { -+ struct datahead *dh = (struct datahead *) (db->data + off_alloc); -+ do -+ { -+ assert ((*next_data)->key >= (*next_data)->packet); -+ assert ((*next_data)->key + (*next_data)->len -+ <= (*next_data)->packet + dh->allocsize); -+ -+ (*next_data)->packet -= disp; -+ (*next_data)->key -= disp; -+ ++next_data; -+ } -+ while (next_data < &he_data[db->head->nentries] -+ && (*next_data)->packet == off_alloc); -+ -+ off_alloc += (dh->allocsize + BLOCK_ALIGN_M1) & ~BLOCK_ALIGN_M1; - } -- while (next_data < &he_data[db->head->nentries] -- && (*next_data)->packet == off_alloc); -+ else -+ { -+ /* This is not yet a hashed element but an in-flight -+ * mempool allocation. We cannot displace it, so we -+ * reset the shake-down at this point; typically, -+ * the in-flight allocations will be at the top of -+ * the pool, thus nothing will be above it and we will -+ * shake it down in the next gc run. In theory, we can -+ * grow the pool indefinitely if we always hit gc at -+ * the point we have an in-flight allocation, but -+ * that does not seem to be a realistic scenario. */ -+ nscd_ssize_t blocklen = 0; -+ struct mem_in_flight *mrunp = mem_in_flight_list; -+ -+ /* See the first mem_in_flight_list loop above -+ * for correctness considerations. */ -+ /* Typically, we have only tiny number of in_flight -+ * records so we don't need to bother pre-sorting -+ * the list. */ -+ while (!blocklen && mrunp != NULL) -+ { -+ for (enum in_flight idx = IDX_result_data; -+ idx < IDX_last && mrunp->block[idx].dbidx == db - dbs; ++idx) -+ if (mrunp->block[idx].blockoff == off_alloc) -+ blocklen = mrunp->block[idx].blocklen; -+ -+ mrunp = mrunp->next; -+ } -+ assert(blocklen > 0); -+ -+ moves->size = off_alloc - off_alloc_start; -+ off_free = off_allocend; -+ disp = 0; - -- off_alloc += (dh->allocsize + BLOCK_ALIGN_M1) & ~BLOCK_ALIGN_M1; -+ off_alloc += blocklen; -+ } - } - } - assert (off_alloc == off_allocend); diff --git a/glibc-2.10-nscd-prunerace.diff b/glibc-2.10-nscd-prunerace.diff deleted file mode 100644 index 6df9c79..0000000 --- a/glibc-2.10-nscd-prunerace.diff +++ /dev/null @@ -1,88 +0,0 @@ -diff --git a/nscd/connections.c b/nscd/connections.c -index e3a6738..597e1a7 100644 ---- nscd/connections.c -+++ nscd/connections.c -@@ -109,6 +109,7 @@ struct database_dyn dbs[lastdb] = - [pwddb] = { - .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, - .prune_lock = PTHREAD_MUTEX_INITIALIZER, -+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, - .enabled = 0, - .check_file = 1, - .persistent = 0, -@@ -129,6 +130,7 @@ struct database_dyn dbs[lastdb] = - [grpdb] = { - .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, - .prune_lock = PTHREAD_MUTEX_INITIALIZER, -+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, - .enabled = 0, - .check_file = 1, - .persistent = 0, -@@ -149,6 +151,7 @@ struct database_dyn dbs[lastdb] = - [hstdb] = { - .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, - .prune_lock = PTHREAD_MUTEX_INITIALIZER, -+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, - .enabled = 0, - .check_file = 1, - .persistent = 0, -@@ -169,6 +172,7 @@ struct database_dyn dbs[lastdb] = - [servdb] = { - .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, - .prune_lock = PTHREAD_MUTEX_INITIALIZER, -+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, - .enabled = 0, - .check_file = 1, - .persistent = 0, -@@ -975,9 +979,9 @@ invalidate_cache (char *key, int fd) - - if (dbs[number].enabled) - { -- pthread_mutex_lock (&dbs[number].prune_lock); -+ pthread_mutex_lock (&dbs[number].prune_run_lock); - prune_cache (&dbs[number], LONG_MAX, fd); -- pthread_mutex_unlock (&dbs[number].prune_lock); -+ pthread_mutex_unlock (&dbs[number].prune_run_lock); - } - else - { -@@ -1492,6 +1496,7 @@ nscd_run_prune (void *p) - dbs[my_number].wakeup_time = now + CACHE_PRUNE_INTERVAL + my_number; - - pthread_mutex_t *prune_lock = &dbs[my_number].prune_lock; -+ pthread_mutex_t *prune_run_lock = &dbs[my_number].prune_run_lock; - pthread_cond_t *prune_cond = &dbs[my_number].prune_cond; - - pthread_mutex_lock (prune_lock); -@@ -1523,7 +1528,10 @@ nscd_run_prune (void *p) - time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now; - dbs[my_number].clear_cache = 0; - -+ /* prune_cache() must be run with prune_lock off since -+ cache_add() needs to take the lock. */ - pthread_mutex_unlock (prune_lock); -+ pthread_mutex_lock (prune_run_lock); - - next_wait = prune_cache (&dbs[my_number], prune_now, -1); - -@@ -1538,6 +1546,7 @@ nscd_run_prune (void *p) - dbs[my_number].head->timestamp = now; - } - -+ pthread_mutex_unlock (prune_run_lock); - pthread_mutex_lock (prune_lock); - - /* Make it known when we will wake up again. */ -diff --git a/nscd/nscd.h b/nscd/nscd.h -index 5c77dd3..a828f3e 100644 ---- nscd/nscd.h -+++ nscd/nscd.h -@@ -68,7 +68,7 @@ struct database_dyn - { - pthread_rwlock_t lock; - pthread_cond_t prune_cond; -- pthread_mutex_t prune_lock; -+ pthread_mutex_t prune_lock, prune_run_lock; - time_t wakeup_time; - - int enabled; diff --git a/glibc-2.10-ppc32-setcontext-fp.diff b/glibc-2.10-ppc32-setcontext-fp.diff deleted file mode 100644 index cbadcff..0000000 --- a/glibc-2.10-ppc32-setcontext-fp.diff +++ /dev/null @@ -1,29 +0,0 @@ -20090108 Ryan S. Arnold - - * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S - (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. - * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S - (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. - ---- sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-08 10:01:44.000000000 -0600 -+++ sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-08 16:54:10.000000000 -0600 -@@ -202,7 +202,7 @@ - lfd fp0,_UC_FREGS+(0*8)(r31) - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -- mtfsf 0xff,fp0,1,0 -+ mtfsf 0xff,fp31,1,0 - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r7,PPC_FEATURE_HAS_DFP ---- sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-08 10:01:44.000000000 -0600 -+++ sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-08 16:54:17.000000000 -0600 -@@ -428,7 +428,7 @@ - lfd fp0,_UC_FREGS+(0*8)(r31) - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -- mtfsf 0xff,fp0,1,0 -+ mtfsf 0xff,fp31,1,0 - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r7,PPC_FEATURE_HAS_DFP diff --git a/glibc-2.10-unsetenv.diff b/glibc-2.10-unsetenv.diff deleted file mode 100644 index bede175..0000000 --- a/glibc-2.10-unsetenv.diff +++ /dev/null @@ -1,69 +0,0 @@ -2008-12-01 Ulrich Drepper - - * stdlib/setenv.c (unsetenv): Don't search environment if it does - not exist. - * stdlib/Makefile (tests): Add tst-unsetenv1. - * stdlib/tst-unsetenv1.c: New file. - ---- stdlib/Makefile 8 Mar 2008 21:31:19 -0000 1.122 -+++ stdlib/Makefile 2 Dec 2008 02:27:21 -0000 1.123 -@@ -69,7 +69,7 @@ tests := tst-strtol tst-strtod testmb t - test-a64l tst-qsort tst-system testmb2 bug-strtod2 \ - tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ - tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ -- tst-makecontext2 tst-strtod6 -+ tst-makecontext2 tst-strtod6 tst-unsetenv1 - - include ../Makeconfig - ---- stdlib/setenv.c 14 Dec 2005 10:44:05 -0000 1.1 -+++ stdlib/setenv.c 2 Dec 2008 01:39:44 -0000 1.2 -@@ -292,19 +292,20 @@ unsetenv (name) - LOCK; - - ep = __environ; -- while (*ep != NULL) -- if (!strncmp (*ep, name, len) && (*ep)[len] == '=') -- { -- /* Found it. Remove this pointer by moving later ones back. */ -- char **dp = ep; -- -- do -- dp[0] = dp[1]; -- while (*dp++); -- /* Continue the loop in case NAME appears again. */ -- } -- else -- ++ep; -+ if (ep != NULL) -+ while (*ep != NULL) -+ if (!strncmp (*ep, name, len) && (*ep)[len] == '=') -+ { -+ /* Found it. Remove this pointer by moving later ones back. */ -+ char **dp = ep; -+ -+ do -+ dp[0] = dp[1]; -+ while (*dp++); -+ /* Continue the loop in case NAME appears again. */ -+ } -+ else -+ ++ep; - - UNLOCK; - ---- stdlib/tst-unsetenv1.c 1 Jan 1970 00:00:00 -0000 -+++ stdlib/tst-unsetenv1.c 2 Dec 2008 02:27:12 -0000 1.1 -@@ -0,0 +1,12 @@ -+#include -+ -+static int -+do_test (void) -+{ -+ clearenv (); -+ unsetenv ("FOO"); -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/glibc-2.10.1-e38af591a8.tar.bz2 b/glibc-2.10.1-e38af591a8.tar.bz2 new file mode 100644 index 0000000..0c6c8ad --- /dev/null +++ b/glibc-2.10.1-e38af591a8.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05810d4e4256a3be2582b0bfb9cda3332a4710beeb20fbe90c41c306c4b9ee48 +size 15588510 diff --git a/glibc-2.3.3-amd64-string.diff b/glibc-2.3.3-amd64-string.diff index 7bcd51a..ccfb162 100644 --- a/glibc-2.3.3-amd64-string.diff +++ b/glibc-2.3.3-amd64-string.diff @@ -3,10 +3,10 @@ Index: sysdeps/x86_64/strlen.S =================================================================== --- sysdeps/x86_64/strlen.S.orig 2003-04-30 00:47:18.000000000 +0200 +++ sysdeps/x86_64/strlen.S 2009-03-23 16:32:42.000000000 +0100 -@@ -1,139 +1,405 @@ +@@ -1,54 +1,405 @@ -/* strlen(str) -- determine the length of the string STR. -- Copyright (C) 2002, 2003 Free Software Foundation, Inc. -- Based on i486 version contributed by Ulrich Drepper . +- Copyright (C) 2009 Free Software Foundation, Inc. +- Contributed by Ulrich Drepper . - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or @@ -25,121 +25,36 @@ Index: sysdeps/x86_64/strlen.S - 02111-1307 USA. */ - -#include --#include "asm-syntax.h" --#include "bp-sym.h" --#include "bp-asm.h" - - - .text --ENTRY (strlen) -- movq %rdi, %rcx /* Duplicate source pointer. */ -- andl $7, %ecx /* mask alignment bits */ -- movq %rdi, %rax /* duplicate destination. */ -- jz 1f /* aligned => start loop */ +-ENTRY(strlen) +- movq %rdi, %rcx +- movq %rdi, %r8 +- andq $~15, %rdi +- pxor %xmm1, %xmm1 +- orl $0xffffffff, %esi +- movdqa (%rdi), %xmm0 +- subq %rdi, %rcx +- leaq 16(%rdi), %rdi +- pcmpeqb %xmm1, %xmm0 +- shl %cl, %esi +- pmovmskb %xmm0, %edx +- xorl %eax, %eax +- negq %r8 +- andl %esi, %edx +- jnz 1f - -- neg %ecx /* We need to align to 8 bytes. */ -- addl $8,%ecx -- /* Search the first bytes directly. */ --0: cmpb $0x0,(%rax) /* is byte NUL? */ -- je 2f /* yes => return */ -- incq %rax /* increment pointer */ -- decl %ecx -- jnz 0b +-2: movdqa (%rdi), %xmm0 +- leaq 16(%rdi), %rdi +- pcmpeqb %xmm1, %xmm0 +- pmovmskb %xmm0, %edx +- testl %edx, %edx +- jz 2b - --1: movq $0xfefefefefefefeff,%r8 /* Save magic. */ -- -- .p2align 4 /* Align loop. */ --4: /* Main Loop is unrolled 4 times. */ -- /* First unroll. */ -- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ -- addq $8,%rax /* adjust pointer for next word */ -- movq %r8, %rdx /* magic value */ -- addq %rcx, %rdx /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rcx, %rdx /* (word+magic)^word */ -- orq %r8, %rdx /* set all non-carry bits */ -- incq %rdx /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- jnz 3f /* found NUL => return pointer */ -- -- /* Second unroll. */ -- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ -- addq $8,%rax /* adjust pointer for next word */ -- movq %r8, %rdx /* magic value */ -- addq %rcx, %rdx /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rcx, %rdx /* (word+magic)^word */ -- orq %r8, %rdx /* set all non-carry bits */ -- incq %rdx /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- jnz 3f /* found NUL => return pointer */ -- -- /* Third unroll. */ -- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ -- addq $8,%rax /* adjust pointer for next word */ -- movq %r8, %rdx /* magic value */ -- addq %rcx, %rdx /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rcx, %rdx /* (word+magic)^word */ -- orq %r8, %rdx /* set all non-carry bits */ -- incq %rdx /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- jnz 3f /* found NUL => return pointer */ -- -- /* Fourth unroll. */ -- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ -- addq $8,%rax /* adjust pointer for next word */ -- movq %r8, %rdx /* magic value */ -- addq %rcx, %rdx /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rcx, %rdx /* (word+magic)^word */ -- orq %r8, %rdx /* set all non-carry bits */ -- incq %rdx /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- jz 4b /* no NUL found => continue loop */ -- -- .p2align 4 /* Align, it's a jump target. */ --3: subq $8,%rax /* correct pointer increment. */ -- -- testb %cl, %cl /* is first byte NUL? */ -- jz 2f /* yes => return */ -- incq %rax /* increment pointer */ -- -- testb %ch, %ch /* is second byte NUL? */ -- jz 2f /* yes => return */ -- incq %rax /* increment pointer */ -- -- testl $0x00ff0000, %ecx /* is third byte NUL? */ -- jz 2f /* yes => return pointer */ -- incq %rax /* increment pointer */ -- -- testl $0xff000000, %ecx /* is fourth byte NUL? */ -- jz 2f /* yes => return pointer */ -- incq %rax /* increment pointer */ -- -- shrq $32, %rcx /* look at other half. */ -- -- testb %cl, %cl /* is first byte NUL? */ -- jz 2f /* yes => return */ -- incq %rax /* increment pointer */ -- -- testb %ch, %ch /* is second byte NUL? */ -- jz 2f /* yes => return */ -- incq %rax /* increment pointer */ -- -- testl $0xff0000, %ecx /* is third byte NUL? */ -- jz 2f /* yes => return pointer */ -- incq %rax /* increment pointer */ --2: -- subq %rdi, %rax /* compute difference to string start */ +-1: leaq -16(%rdi,%r8), %rdi +- bsfl %edx, %eax +- addq %rdi, %rax - ret +# $Header: /K8_Projects/Glibc/amd64strlen.S 3 10/06/03 11:00 Emenezes $ + diff --git a/glibc-2.3.5-nscd-zeronegtimeout.diff b/glibc-2.3.5-nscd-zeronegtimeout.diff index 744c1b7..99abb31 100644 --- a/glibc-2.3.5-nscd-zeronegtimeout.diff +++ b/glibc-2.3.5-nscd-zeronegtimeout.diff @@ -2,12 +2,11 @@ Index: nscd/aicache.c =================================================================== --- nscd/aicache.c.orig +++ nscd/aicache.c -@@ -515,10 +515,15 @@ next_nip: +@@ -515,9 +515,15 @@ next_nip: if (fd != -1) TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); -- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- IDX_result_data); +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1); /* If we cannot permanently store the result, so be it. */ - if (dataset != NULL) + if (db->negtimeout == 0) @@ -17,7 +16,7 @@ Index: nscd/aicache.c + dh->usable = false; + dataset = NULL; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -30,7 +29,7 @@ Index: nscd/grpcache.c MSG_NOSIGNAL)); - dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- IDX_result_data); +- 1); /* If we cannot permanently store the result, so be it. */ - if (dataset != NULL) + if (db->negtimeout == 0) @@ -39,7 +38,7 @@ Index: nscd/grpcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -52,7 +51,7 @@ Index: nscd/hstcache.c all_written = false; - dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- IDX_result_data); +- 1); /* If we cannot permanently store the result, so be it. */ - if (dataset != NULL) + if (db->negtimeout == 0) @@ -61,7 +60,7 @@ Index: nscd/hstcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -74,7 +73,7 @@ Index: nscd/initgrcache.c MSG_NOSIGNAL)); - dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- IDX_result_data); +- 1); /* If we cannot permanently store the result, so be it. */ - if (dataset != NULL) + if (db->negtimeout == 0) @@ -83,7 +82,7 @@ Index: nscd/initgrcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -96,7 +95,7 @@ Index: nscd/pwdcache.c MSG_NOSIGNAL)); - dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- IDX_result_data); +- 1); /* If we cannot permanently store the result, so be it. */ - if (dataset != NULL) + if (db->negtimeout == 0) @@ -105,7 +104,7 @@ Index: nscd/pwdcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; diff --git a/glibc-2.4.90-mdns-resolver.diff b/glibc-2.4.90-mdns-resolver.diff deleted file mode 100644 index 106d9b5..0000000 --- a/glibc-2.4.90-mdns-resolver.diff +++ /dev/null @@ -1,456 +0,0 @@ ---- resolv/res_hconf.c -+++ resolv/res_hconf.c 2006/06/06 16:08:34 -@@ -58,6 +58,7 @@ - #define ENV_TRIM_ADD "RESOLV_ADD_TRIM_DOMAINS" - #define ENV_MULTI "RESOLV_MULTI" - #define ENV_REORDER "RESOLV_REORDER" -+#define ENV_MDNS "RESOLV_MDNS" - - enum parse_cbs - { -@@ -80,7 +81,8 @@ - {"multi", CB_arg_bool, HCONF_FLAG_MULTI}, - {"nospoof", CB_arg_bool, HCONF_FLAG_SPOOF}, - {"spoofalert", CB_arg_bool, HCONF_FLAG_SPOOFALERT}, -- {"reorder", CB_arg_bool, HCONF_FLAG_REORDER} -+ {"reorder", CB_arg_bool, HCONF_FLAG_REORDER}, -+ {"mdns", CB_arg_bool, HCONF_FLAG_MDNS} - }; - - /* Structure containing the state. */ -@@ -304,6 +306,9 @@ - - memset (&_res_hconf, '\0', sizeof (_res_hconf)); - -+ /* Default for mdns is "on". */ -+ _res_hconf.flags |= HCONF_FLAG_MDNS; -+ - hconf_name = getenv (ENV_HOSTCONF); - if (hconf_name == NULL) - hconf_name = _PATH_HOSTCONF; -@@ -346,6 +351,10 @@ - arg_trimdomain_list (ENV_TRIM_OVERR, 1, envval); - } - -+ envval = getenv (ENV_MDNS); -+ if (envval) -+ arg_bool (ENV_MDNS, 1, envval, HCONF_FLAG_MDNS); -+ - _res_hconf.initialized = 1; - } - ---- resolv/res_hconf.h -+++ resolv/res_hconf.h 2006/06/06 16:06:46 -@@ -37,6 +37,7 @@ - # define HCONF_FLAG_SPOOFALERT (1 << 2) /* syslog warning of spoofed */ - # define HCONF_FLAG_REORDER (1 << 3) /* list best address first */ - # define HCONF_FLAG_MULTI (1 << 4) /* see comments for gethtbyname() */ -+# define HCONF_FLAG_MDNS (1 << 5) /* Disable MDNS support */ - }; - extern struct hconf _res_hconf; - ---- resolv/res_query.c -+++ resolv/res_query.c 2006/06/06 16:06:46 -@@ -83,6 +83,8 @@ - #include - #include - -+#include "res_hconf.h" -+ - /* Options. Leave them on. */ - /* #undef DEBUG */ - -@@ -286,6 +288,13 @@ - *domain && !done; - domain++) { - -+ if ((_res_hconf.flags & HCONF_FLAG_MDNS) != 0) { -+ /* don't add "local" domain if query contains a dot */ -+ if (dots && (!__strcasecmp(*domain, "local") || -+ !__strcasecmp(*domain, "local."))) -+ continue; -+ } -+ - if (domain[0][0] == '\0' || - (domain[0][0] == '.' && domain[0][1] == '\0')) - root_on_list++; ---- resolv/res_send.c -+++ resolv/res_send.c 2006/06/06 16:06:46 -@@ -85,6 +85,9 @@ - #include - #include - #include -+#if defined(_LIBC) && defined(linux) -+#include -+#endif - - #include - #include -@@ -96,6 +99,8 @@ - #include - #include - -+#include "res_hconf.h" -+ - #if PACKETSZ > 65536 - #define MAXPACKET PACKETSZ - #else -@@ -180,6 +185,9 @@ - static int send_dg(res_state, const u_char *, int, - u_char **, int *, int *, int, - int *, int *, u_char **); -+static int send_dg_mdns(res_state, const u_char *, int, -+ u_char **, int *, int *, struct sockaddr_in6 *, -+ int *, int *, u_char **); - #ifdef DEBUG - static void Aerror(const res_state, FILE *, const char *, int, - const struct sockaddr *); -@@ -337,6 +345,35 @@ - u_char *ans, int anssiz, u_char **ansp) - { - int gotsomewhere, terrno, try, v_circuit, resplen, ns, n; -+ int usemdns; -+ HEADER *qhp = (HEADER *) buf; -+ -+ usemdns = 0; -+ if ((_res_hconf.flags & HCONF_FLAG_MDNS) != 0 && -+ qhp->qr == 0 && qhp->opcode == QUERY && qhp->qdcount == htons(1)) { -+ /* got one simple query */ -+ const u_char *bp, *be; -+ be = buf + buflen; -+ for (bp = buf + NS_HFIXEDSZ; bp < be; ) -+ if ((*bp & NS_CMPRSFLGS) != 0) -+ break; -+ else if (*bp) { -+ if (*bp == 5 && !strncasecmp(bp, "\005local\000", 7)) { -+ usemdns = 1; -+ break; -+ } -+ if (*bp == 3 && !strncasecmp(bp, "\003254\003169\007in-addr\004arpa\000", 22)) { -+ usemdns = 1; -+ break; -+ } -+ if (*bp == 1 && !strncasecmp(bp, "\0010\0018\001e\001f\003ip6\004arpa\000", 18)) { -+ usemdns = 2; -+ break; -+ } -+ bp += *bp + 1; -+ } else -+ break; -+ } - - if (statp->nscount == 0) { - __set_errno (ESRCH); -@@ -470,9 +507,24 @@ - * Send request, RETRY times, or until successful. - */ - for (try = 0; try < statp->retry; try++) { -- for (ns = 0; ns < MAXNS; ns++) -+ for (ns = 0; ns < (usemdns ? 1 : MAXNS); ns++) - { - struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; -+ if (usemdns == 1) { -+ static struct sockaddr_in mdns4; -+ mdns4.sin_family = AF_INET; -+ mdns4.sin_port = htons(5353); -+ mdns4.sin_addr.s_addr = htonl(0xe00000fb); -+ nsap = (struct sockaddr_in6 *)&mdns4; -+ } -+ if (usemdns == 2) { -+ static struct sockaddr_in6 mdns6; -+ mdns6.sin6_family = AF_INET6; -+ mdns6.sin6_port = htons(5353); -+ mdns6.sin6_addr.s6_addr32[0] = htonl(0xff020000); -+ mdns6.sin6_addr.s6_addr32[3] = htonl(0x000000fb); -+ nsap = &mdns6; -+ } - - if (nsap == NULL) - goto next_ns; -@@ -530,8 +582,11 @@ - resplen = n; - } else { - /* Use datagrams. */ -- n = send_dg(statp, buf, buflen, &ans, &anssiz, &terrno, -- ns, &v_circuit, &gotsomewhere, ansp); -+ if (usemdns) -+ n = send_dg_mdns(statp, buf, buflen, &ans, &anssiz, &terrno, nsap, &v_circuit, &gotsomewhere, ansp); -+ else -+ n = send_dg(statp, buf, buflen, &ans, &anssiz, &terrno, -+ ns, &v_circuit, &gotsomewhere, ansp); - if (n < 0) - return (-1); - if (n == 0) -@@ -598,8 +653,15 @@ - if (!v_circuit) { - if (!gotsomewhere) - __set_errno (ECONNREFUSED); /* no nameservers found */ -- else -+ else if (!usemdns) { - __set_errno (ETIMEDOUT); /* no answer obtained */ -+ } else { -+ /* treat timeout as host not found */ -+ HEADER *anhp = (HEADER *) ans; -+ memset(ans, 0, HFIXEDSZ); -+ anhp->rcode = NXDOMAIN; -+ return HFIXEDSZ; -+ } - } else - __set_errno (terrno); - return (-1); -@@ -1045,6 +1107,255 @@ - } - } - -+static int -+send_dg_mdns(res_state statp, -+ const u_char *buf, int buflen, u_char **ansp, int *anssizp, -+ int *terrno, struct sockaddr_in6 *nsap, int *v_circuit, int *gotsomewhere, u_char **anscp) -+{ -+ const HEADER *hp = (HEADER *) buf; -+ u_char *ans = *ansp; -+ int anssiz = *anssizp; -+ HEADER *anhp = (HEADER *) ans; -+ struct timespec now, timeout, finish; -+ struct pollfd pfd[32]; -+ int ptimeout; -+ int fromlen, resplen, seconds, n, s; -+ int on = 1; -+ struct msghdr mhdr; -+ struct iovec iov; -+ u_char cmsgbuf[CMSG_SPACE(sizeof(int))]; -+ struct cmsghdr *cmsg; -+ int ttl; -+ struct ifconf ifconf; -+ struct ifreq ifreq[64]; -+ int ifreqn; -+ int i, j; -+ int ifidx[32], ifidxn; -+ struct ip_mreqn mreqn; -+ -+ s = socket(nsap->sin6_family == AF_INET ? PF_INET : PF_INET6, SOCK_DGRAM, 0); -+ if (s < 0) { -+ *terrno = errno; -+ Perror(statp, stderr, "socket(dg)", errno); -+ return (-1); -+ } -+ ifconf.ifc_len = sizeof(ifreq); -+ ifconf.ifc_req = ifreq; -+ ifidxn = 0; -+ if (ioctl(s, SIOCGIFCONF, &ifconf) == 0) { -+ ifreqn = ifconf.ifc_len / sizeof(*ifreq); -+ for (i = 0 ; i < ifreqn; i++) { -+ if (ioctl(s, SIOCGIFFLAGS, ifreq + i)) -+ continue; -+ if (!(ifreq[i].ifr_flags & IFF_MULTICAST)) -+ continue; -+ if (ioctl(s, SIOCGIFINDEX, ifreq + i)) -+ continue; -+ for (j = 0; j < ifidxn; j++) -+ if (ifidx[j] == ifreq[i].ifr_ifindex) -+ break; -+ if (j < ifidxn) -+ continue; -+ ifidx[ifidxn++] = ifreq[i].ifr_ifindex; -+ if (ifidxn == sizeof(ifidx)/sizeof(*ifidx)) -+ break; -+ } -+ } -+ j = 0; -+ for (i = 0; i < (ifidxn ? ifidxn : 1); i++) { -+ if (i) { -+ s = socket(nsap->sin6_family == AF_INET ? PF_INET : PF_INET6, SOCK_DGRAM, 0); -+ if (!s) -+ continue; -+ } -+ if (setsockopt(s, SOL_IP, IP_RECVTTL, &on, sizeof(on))) { -+ *terrno = errno; -+ Perror(statp, stderr, "IP_RECVTTL(dg)", errno); -+ close(s); -+ continue; -+ } -+ if (ifidxn) { -+ memset(&mreqn, 0, sizeof(mreqn)); -+ mreqn.imr_ifindex = ifidx[i]; -+ if (setsockopt(s, SOL_IP, IP_MULTICAST_IF, &mreqn, sizeof(mreqn))) { -+ *terrno = errno; -+ Perror(statp, stderr, "IP_MULTICAST_IF", errno); -+ close(s); -+ continue; -+ } -+ } -+ if (sendto(s, (char*)buf, buflen, 0, -+ (struct sockaddr *)nsap, sizeof *nsap) != buflen) { -+ Aerror(statp, stderr, "sendto", errno, *(struct sockaddr_in *)nsap); -+ close(s); -+ continue; -+ } -+ pfd[j].fd = s; -+ pfd[j].events = POLLIN; -+ j++; -+ } -+ /* -+ * Wait for reply. -+ */ -+ seconds = statp->retrans; -+ if (seconds <= 0) -+ seconds = 1; -+ evNowTime(&now); -+ evConsTime(&timeout, seconds, 0); -+ evAddTime(&finish, &now, &timeout); -+ wait: -+ if (j == 0) { -+ return (0); -+ } -+ -+ /* Convert struct timespec in milliseconds. */ -+ ptimeout = timeout.tv_sec * 1000 + timeout.tv_nsec / 1000000; -+ n = __poll (pfd, j, ptimeout); -+ if (n == 0) { -+ Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n")); -+ *gotsomewhere = 1; -+ for (i = 0; i < j; i++) -+ close(pfd[i].fd); -+ return (0); -+ } -+ if (n < 0) { -+ if (errno == EINTR) { -+ evNowTime(&now); -+ if (evCmpTime(finish, now) > 0) { -+ evSubTime(&timeout, &finish, &now); -+ goto wait; -+ } -+ } -+ Perror(statp, stderr, "select", errno); -+ for (i = 0; i < j; i++) -+ close(pfd[i].fd); -+ res_nclose(statp); -+ return (0); -+ } -+ for (i = 0; i < j - 1; i++) -+ if (pfd[i].revents == POLLIN) -+ break; -+ s = pfd[i].fd; -+ __set_errno (0); -+ fromlen = sizeof(struct sockaddr_in6); -+ if (anssiz < MAXPACKET -+ && anscp -+ && (ioctl (s, FIONREAD, &resplen) < 0 -+ || anssiz < resplen)) { -+ ans = malloc (MAXPACKET); -+ if (ans == NULL) -+ ans = *ansp; -+ else { -+ anssiz = MAXPACKET; -+ *anssizp = MAXPACKET; -+ *ansp = ans; -+ *anscp = ans; -+ anhp = (HEADER *) ans; -+ } -+ } -+ iov.iov_base = ans; -+ iov.iov_len = anssiz; -+ mhdr.msg_name = 0; -+ mhdr.msg_namelen = 0; -+ mhdr.msg_iov = &iov; -+ mhdr.msg_iovlen = 1; -+ mhdr.msg_control = cmsgbuf; -+ mhdr.msg_controllen = sizeof(cmsgbuf); -+ mhdr.msg_flags = 0; -+ resplen = recvmsg(s, &mhdr, 0); -+ if (resplen <= 0) { -+ if (errno == EAGAIN) -+ goto wait; -+ Perror(statp, stderr, "recvfrom", errno); -+wait2: -+ close(s); -+ if (i < j - 1) -+ memmove(pfd + i, pfd + i + 1, sizeof(*pfd) * (j - i - 1)); -+ j--; -+ goto wait; -+ } -+ cmsg = CMSG_FIRSTHDR(&mhdr); -+ for (cmsg = CMSG_FIRSTHDR(&mhdr); cmsg; CMSG_NXTHDR(&mhdr, cmsg)) -+ if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_TTL) -+ break; -+ if (!cmsg) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; no TTL found\n")); -+ goto wait2; -+ } -+ ttl = *(int *)CMSG_DATA(cmsg); -+ if (ttl != 255) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; answer with bad TTL: %d \n", ttl)); -+ goto wait; -+ } -+ *gotsomewhere = 1; -+ if (resplen < HFIXEDSZ) { -+ /* -+ * Undersized message. -+ */ -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; undersized: %d\n", -+ resplen)); -+ *terrno = EMSGSIZE; -+ goto wait; -+ } -+ if (hp->id != anhp->id) { -+ /* -+ * response from old query, ignore it. -+ * XXX - potential security hazard could -+ * be detected here. -+ */ -+ DprintQ((statp->options & RES_DEBUG) || -+ (statp->pfcode & RES_PRF_REPLY), -+ (stdout, ";; old answer:\n"), -+ ans, (resplen > anssiz) ? anssiz : resplen); -+ goto wait; -+ } -+ if (!(statp->options & RES_INSECURE2) && -+ !res_queriesmatch(buf, buf + buflen, -+ ans, ans + anssiz)) { -+ /* -+ * response contains wrong query? ignore it. -+ * XXX - potential security hazard could -+ * be detected here. -+ */ -+ DprintQ((statp->options & RES_DEBUG) || -+ (statp->pfcode & RES_PRF_REPLY), -+ (stdout, ";; wrong query name:\n"), -+ ans, (resplen > anssiz) ? anssiz : resplen); -+ goto wait; -+ } -+ if (anhp->rcode == SERVFAIL || -+ anhp->rcode == NOTIMP || -+ anhp->rcode == REFUSED) { -+ DprintQ(statp->options & RES_DEBUG, -+ (stdout, "server rejected query:\n"), -+ ans, (resplen > anssiz) ? anssiz : resplen); -+ goto wait; -+ } -+ for (i = 0; i < j; i++) -+ close(pfd[i].fd); -+#if 0 -+ if (!(statp->options & RES_IGNTC) && anhp->tc) { -+ /* -+ * To get the rest of answer, -+ * use TCP with same server. -+ */ -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; truncated answer\n")); -+ *v_circuit = 1; -+ res_nclose(statp); -+ return (1); -+ } -+#endif -+ /* -+ * All is well, or the error is fatal. Signal that the -+ * next nameserver ought not be tried. -+ */ -+ return (resplen); -+} -+ - #ifdef DEBUG - static void - Aerror(const res_state statp, FILE *file, const char *string, int error, diff --git a/glibc-2.8-dlosinfo.diff b/glibc-2.8-dlosinfo.diff deleted file mode 100644 index de6c06b..0000000 --- a/glibc-2.8-dlosinfo.diff +++ /dev/null @@ -1,14 +0,0 @@ -Compilation fix - -diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h -index b13b6cf..8d22a69 100644 ---- sysdeps/unix/sysv/linux/dl-osinfo.h -+++ sysdeps/unix/sysv/linux/dl-osinfo.h -@@ -17,6 +17,7 @@ - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -+#include - #include - #include - #include diff --git a/glibc-2.8-revert-nscleanup.diff b/glibc-2.8-revert-nscleanup.diff index 1f6c319..91fb6ce 100644 --- a/glibc-2.8-revert-nscleanup.diff +++ b/glibc-2.8-revert-nscleanup.diff @@ -1,3 +1,7 @@ +** TEMPORARY ** + +We should delete this patch again very soon. --pasky + diff --git a/inet/netinet/in.h b/inet/netinet/in.h index e3446a9..1366198 100644 --- inet/netinet/in.h diff --git a/glibc-2.9-2008111711.tar.bz2 b/glibc-2.9-2008111711.tar.bz2 deleted file mode 100644 index 4d0f2fc..0000000 --- a/glibc-2.9-2008111711.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adabcdd26bd71d7cb15bfc2fbb3efc29ad9d166a2a3f25bed097e14489264de8 -size 15308055 diff --git a/glibc-2.9-fortify.diff b/glibc-2.9-fortify.diff deleted file mode 100644 index 7dc6f0b..0000000 --- a/glibc-2.9-fortify.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- misc/sys/cdefs.h.orig 2009-02-27 16:05:10.000000000 +0100 -+++ misc/sys/cdefs.h 2009-02-27 16:06:32.000000000 +0100 -@@ -303,7 +303,12 @@ - # endif - # else - # define __extern_inline extern __inline --# define __extern_always_inline extern __always_inline -+# if __GNUC_PREREQ (4,3) -+# define __extern_always_inline \ -+ extern __always_inline __attribute__ ((__artificial__)) -+# else -+# define __extern_always_inline extern __always_inline -+# endif - # endif - #endif - diff --git a/missing-include-build-fix.diff b/glibc-check-native-missing-include.diff similarity index 100% rename from missing-include-build-fix.diff rename to glibc-check-native-missing-include.diff diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff index 95fee92..a66c7ca 100644 --- a/glibc-compiled-binaries.diff +++ b/glibc-compiled-binaries.diff @@ -19,7 +19,7 @@ # Build tools. --- configure +++ configure -@@ -567,6 +567,7 @@ ac_clean_files= +@@ -590,6 +590,7 @@ ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no @@ -27,15 +27,15 @@ subdirs= MFLAGS= MAKEFLAGS= -@@ -687,6 +688,7 @@ ac_ct_CC - OBJEXT - BUILD_CC +@@ -745,6 +746,7 @@ ac_ct_CC + CXX + CPP cross_compiling +compiled_binaries_can_run_on_buildhost - CPP - CXX - CXXFLAGS -@@ -1180,6 +1182,13 @@ do + BUILD_CC + OBJEXT + ac_ct_CC +@@ -1280,6 +1282,13 @@ do { (exit 1); exit 1; }; } done @@ -67,23 +67,6 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) -@@ -9212,6 +9225,7 @@ ac_ct_CC!$ac_ct_CC$ac_delim - OBJEXT!$OBJEXT$ac_delim - BUILD_CC!$BUILD_CC$ac_delim - cross_compiling!$cross_compiling$ac_delim -+compiled_binaries_can_run_on_buildhost!$compiled_binaries_can_run_on_buildhost$ac_delim - CPP!$CPP$ac_delim - CXX!$CXX$ac_delim - CXXFLAGS!$CXXFLAGS$ac_delim -@@ -9240,7 +9254,7 @@ PERL!$PERL$ac_delim - INSTALL_INFO!$INSTALL_INFO$ac_delim - _ACEOF - -- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then -+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 98; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 --- configure.in +++ configure.in @@ -835,6 +835,7 @@ if test $host != $build; then diff --git a/glibc-fix-nscd.diff b/glibc-fix-nscd.diff deleted file mode 100644 index d639f5a..0000000 --- a/glibc-fix-nscd.diff +++ /dev/null @@ -1,49 +0,0 @@ -diff -urp nscd.mm/cache.c nscd/cache.c ---- nscd.mm/cache.c 2008-10-13 13:09:35.120009000 +0000 -+++ nscd/cache.c 2008-10-13 15:11:17.629844982 +0000 -@@ -300,7 +300,7 @@ prune_cache (struct database_dyn *table, - - /* now == 0 means just check for changed files */ - if (now == (time_t)0) -- return; -+ return 0; - - /* We run through the table and find values which are not valid anymore. - -diff -urp nscd.mm/connections.c nscd/connections.c ---- nscd.mm/connections.c 2008-10-13 13:09:35.120009000 +0000 -+++ nscd/connections.c 2008-10-13 14:55:22.417018210 +0000 -@@ -1816,22 +1816,5 @@ main_loop_poll (void) - /* We have a new incoming connection. Accept the connection. */ - int fd; - --#ifndef __ASSUME_PACCEPT -- fd = -1; -- if (have_paccept >= 0) --#endif -- { --#if 0 -- fd = TEMP_FAILURE_RETRY (paccept (sock, NULL, NULL, NULL, -- SOCK_NONBLOCK)); --#ifndef __ASSUME_PACCEPT -- if (have_paccept == 0) -- have_paccept = fd != -1 || errno != ENOSYS ? 1 : -1; --#endif --#endif -- } --#ifndef __ASSUME_PACCEPT -- if (have_paccept < 0) -- fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); --#endif -+ fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); - - /* Use the descriptor if we have not reached the limit. */ - if (fd >= 0) ---- sysdeps/unix/sysv/linux/kernel-features.h.mm 2008-08-25 13:02:49.000000000 +0000 -+++ sysdeps/unix/sysv/linux/kernel-features.h 2008-10-13 14:27:31.357847116 +0000 -@@ -509,5 +509,4 @@ - # define __ASSUME_SOCK_CLOEXEC 1 - # define __ASSUME_IN_NONBLOCK 1 - # define __ASSUME_PIPE2 1 --# define __ASSUME_PACCEPT 1 - #endif diff --git a/glibc-getgroups-fortify.diff b/glibc-getgroups-fortify.diff deleted file mode 100644 index 554c859..0000000 --- a/glibc-getgroups-fortify.diff +++ /dev/null @@ -1,14 +0,0 @@ -Index: glibc/posix/bits/unistd.h -=================================================================== ---- posix/bits/unistd.h 2007-10-16 14:58:46.000000000 +0200 -+++ posix/bits/unistd.h 2008-09-18 11:38:25.000000000 +0200 -@@ -270,7 +270,8 @@ __NTH (getgroups (int __size, __gid_t __ - if (!__builtin_constant_p (__size)) - return __getgroups_chk (__size, __list, __bos (__list)); - -- if (__size * sizeof (__gid_t) > __bos (__list)) -+ if (__size > 0 -+ && __size * sizeof (__gid_t) > __bos (__list)) - return __getgroups_chk_warn (__size, __list, __bos (__list)); - } - return __getgroups_alias (__size, __list); diff --git a/glibc-ldscript.diff b/glibc-ldscript.diff deleted file mode 100644 index 2134050..0000000 --- a/glibc-ldscript.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- elf/Makefile 03 Nov 2008 15:06:11 +0100 1.330 -+++ elf/Makefile 21 Jan 2009 19:25:29 +0100 -@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld - $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 | \ - LC_ALL=C \ - sed -e '/^=========/,/^=========/!d;/^=========/d' \ -- -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ -+ -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ - > $@.lds - $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ - $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \ diff --git a/glibc-mtfsf.diff b/glibc-mtfsf.diff deleted file mode 100644 index a2cdb1f..0000000 --- a/glibc-mtfsf.diff +++ /dev/null @@ -1,159 +0,0 @@ ---- sysdeps/powerpc/fpu/fenv_libc.h.~1.5.~ 2008-11-17 10:44:10.000000000 +0100 -+++ sysdeps/powerpc/fpu/fenv_libc.h 2009-01-22 14:23:37.000000000 +0100 -@@ -39,7 +39,7 @@ 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) -@@ -53,7 +53,7 @@ libm_hidden_proto (__fe_nomask_env) - #define relax_fenv_state() \ - do { \ - if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \ -- asm ("mtfsfi 7,0,1"); \ -+ asm (".machine push; .machine power6; mtfsfi 7,0,1; .machine pop"); \ - asm ("mtfsfi 7,0"); \ - } while(0) - ---- sysdeps/powerpc/fpu/tst-setcontext-fpscr.c.~1.1.~ 2008-11-17 02:34:02.000000000 +0100 -+++ sysdeps/powerpc/fpu/tst-setcontext-fpscr.c 2009-01-22 14:24:33.000000000 +0100 -@@ -109,7 +109,7 @@ 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"); \ - } - - # define _GET_SI_FPSCR(__fpscr) ({ \ ---- sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S.~1.4.~ 2008-11-17 10:44:18.000000000 +0100 -+++ sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-22 15:42:24.000000000 +0100 -@@ -202,13 +202,19 @@ ENTRY(__CONTEXT_FUNC_NAME) - lfd fp0,_UC_FREGS+(0*8)(r31) - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp31,1,0 -+ .machine pop - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r7,PPC_FEATURE_HAS_DFP - beq 7f - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp31,1,0 -+ .machine pop - b 8f - /* Continue to operate on the FPSCR as if it were 32-bits. */ - 7: mtfsf 0xff,fp31 ---- sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S.~1.3.~ 2008-11-17 10:44:18.000000000 +0100 -+++ sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-22 15:42:37.000000000 +0100 -@@ -428,13 +428,19 @@ ENTRY(__CONTEXT_FUNC_NAME) - lfd fp0,_UC_FREGS+(0*8)(r31) - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp31,1,0 -+ .machine pop - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r7,PPC_FEATURE_HAS_DFP - beq 7f - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp31,1,0 -+ .machine pop - b 8f - /* Continue to operate on the FPSCR as if it were 32-bits. */ - 7: mtfsf 0xff,fp31 ---- sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S.~1.14.~ 2008-11-17 10:44:18.000000000 +0100 -+++ sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S 2009-01-22 15:43:05.000000000 +0100 -@@ -84,13 +84,19 @@ ENTRY(__novec_setcontext) - - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r5,PPC_FEATURE_HAS_DFP - beq 5f - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - b 6f - /* Continue to operate on the FPSCR as if it were 32-bits. */ - 5: -@@ -372,13 +378,19 @@ L(has_no_vec): - - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r5,PPC_FEATURE_HAS_DFP - beq 7f - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - b 8f - /* Continue to operate on the FPSCR as if it were 32-bits. */ - 7: ---- sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S.~1.17.~ 2008-11-17 10:44:18.000000000 +0100 -+++ sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S 2009-01-22 15:43:26.000000000 +0100 -@@ -178,13 +178,19 @@ ENTRY(__novec_swapcontext) - lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r8,PPC_FEATURE_HAS_DFP - beq 5f - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - b 6f - /* Continue to operate on the FPSCR as if it were 32-bits. */ - 5: -@@ -670,13 +676,19 @@ L(has_no_vec2): - lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) - # ifdef _ARCH_PWR6 - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - # else - /* Availability of DFP indicates a 64-bit FPSCR. */ - andi. r6,r8,PPC_FEATURE_HAS_DFP - beq 7f - /* Use the extended four-operand version of the mtfsf insn. */ -+ .machine push -+ .machine power6 - mtfsf 0xff,fp0,1,0 -+ .machine pop - b 8f - /* Continue to operate on the FPSCR as if it were 32-bits. */ - 7: diff --git a/glibc-nis-splitgroups.diff b/glibc-nis-splitgroups.diff new file mode 100644 index 0000000..3254728 --- /dev/null +++ b/glibc-nis-splitgroups.diff @@ -0,0 +1,100 @@ +2009-04-19 Petr Baudis + + * nis/Makefile (libnss_compat-routines): Add build dependency + on nss-nis. + * nis/nss: New variable SPLIT_GROUPS. + * nis/libnsl.h: New flag NSS_FLAG_SPLIT_GROUPS. + * nis/nss-default.c: Likewise. + * nss_compat/compat-initgroups.c: Do not use initgroups_dyn + in case NSS_FLAG_SPLIT_GROUPS is set. + +diff --git a/nis/Makefile b/nis/Makefile +index 8083ee8..9814fce 100644 +--- nis/Makefile ++++ nis/Makefile +@@ -56,7 +56,8 @@ libnsl-routines = yp_xdr ypclnt ypupdate_xdr \ + nis_findserv nis_callback nis_clone_dir nis_clone_obj\ + nis_clone_res nss-default + +-libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) ++libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) \ ++ nss-nis + libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) + + libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \ +diff --git a/nis/libnsl.h b/nis/libnsl.h +index c6ceb32..77c34ef 100644 +--- nis/libnsl.h ++++ nis/libnsl.h +@@ -21,6 +21,7 @@ + #define NSS_FLAG_NETID_AUTHORITATIVE 1 + #define NSS_FLAG_SERVICES_AUTHORITATIVE 2 + #define NSS_FLAG_SETENT_BATCH_READ 4 ++#define NSS_FLAG_SPLIT_GROUPS 8 + + + /* Get current set of default flags. */ +diff --git a/nis/nss b/nis/nss +index aab40ab..4715ab5 100644 +--- nis/nss ++++ nis/nss +@@ -1,7 +1,7 @@ + # /etc/default/nss + # This file can theoretically contain a bunch of customization variables + # for Name Service Switch in the GNU C library. For now there are only +-# three variables: ++# four variables: + # + # NETID_AUTHORITATIVE + # If set to TRUE, the initgroups() function will accept the information +@@ -26,3 +26,11 @@ + # might result into a network communication with the server to get + # the next entry. + #SETENT_BATCH_READ=TRUE ++# ++# SPLIT_GROUPS ++# If set to TRUE, the nss_compat module's initgroups() function will ++# not use the NIS initgroups interface for retrieving group information. ++# This allows one NIS group to be split into multiple database entries ++# with same gid, a practice used to overcome entry length limitations. ++# The downside is a certain performance degradation. ++#SPLIT_GROUPS=TRUE +diff --git a/nis/nss-default.c b/nis/nss-default.c +index 046ddfe..d6141b9 100644 +--- nis/nss-default.c ++++ nis/nss-default.c +@@ -48,6 +48,7 @@ static const struct + { STRNLEN ("NETID_AUTHORITATIVE"), NSS_FLAG_NETID_AUTHORITATIVE }, + { STRNLEN ("SERVICES_AUTHORITATIVE"), NSS_FLAG_SERVICES_AUTHORITATIVE }, +- { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ } ++ { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ }, ++ { STRNLEN ("SPLIT_GROUPS"), NSS_FLAG_SPLIT_GROUPS }, + }; + #define nvars (sizeof (vars) / sizeof (vars[0])) + +diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c +index 76ca95d..14b0aac 100644 +--- nis/nss_compat/compat-initgroups.c ++++ nis/nss_compat/compat-initgroups.c +@@ -32,6 +32,9 @@ + #include + #include + ++/* Get the declaration of the NSS flags. */ ++#include ++ + static service_user *ni; + /* Type of the lookup function. */ + static enum nss_status (*nss_initgroups_dyn) (const char *, gid_t, +@@ -103,7 +106,10 @@ init_nss_interface (void) + if (ni == NULL + && __nss_database_lookup ("group_compat", NULL, "nis", &ni) >= 0) + { +- nss_initgroups_dyn = __nss_lookup_function (ni, "initgroups_dyn"); ++ if (_nsl_default_nss () & NSS_FLAG_SPLIT_GROUPS) ++ nss_initgroups_dyn = NULL; ++ else ++ nss_initgroups_dyn = __nss_lookup_function (ni, "initgroups_dyn"); + nss_getgrnam_r = __nss_lookup_function (ni, "getgrnam_r"); + nss_getgrgid_r = __nss_lookup_function (ni, "getgrgid_r"); + nss_getgrent_r = __nss_lookup_function (ni, "getgrent_r"); diff --git a/glibc-nptl-2.9-2008111711.tar.bz2 b/glibc-nptl-2.9-2008111711.tar.bz2 deleted file mode 100644 index c45a964..0000000 --- a/glibc-nptl-2.9-2008111711.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfe11b1779ec269e02d4951c7364581ec5113ea3b17eed20341e5cf4cf57ff10 -size 330166 diff --git a/glibc-nscd-prune-ret.diff b/glibc-nscd-prune-ret.diff new file mode 100644 index 0000000..697a449 --- /dev/null +++ b/glibc-nscd-prune-ret.diff @@ -0,0 +1,12 @@ +diff -urp nscd.mm/cache.c nscd/cache.c +--- nscd.mm/cache.c 2008-10-13 13:09:35.120009000 +0000 ++++ nscd/cache.c 2008-10-13 15:11:17.629844982 +0000 +@@ -300,7 +300,7 @@ prune_cache (struct database_dyn *table, + + /* now == 0 means just check for changed files */ + if (now == (time_t)0) +- return; ++ return 0; + + /* We run through the table and find values which are not valid anymore. + diff --git a/glibc-nss-deepbind.diff b/glibc-nss-deepbind.diff index eae0472..4cdcce0 100644 --- a/glibc-nss-deepbind.diff +++ b/glibc-nss-deepbind.diff @@ -2,6 +2,10 @@ Use DEEPBIND to load the nss modules. Helps thunderbird (linked against its own version of the ldap libs) when using nss_ldap (linked against system libldap) leading to crashes due to incompatibilities. +This has a downside: Linking against libraries overriding malloc() and free() +will break (unless the malloc()'d pointers by glibc are free()able by these). +This is fixable in principle, just needs some work. + See https://bugzilla.novell.com/show_bug.cgi?id=157078 and http://sourceware.org/bugzilla/show_bug.cgi?id=6610 diff --git a/glibc-ports-2.10.1-2b2b217196.tar.bz2 b/glibc-ports-2.10.1-2b2b217196.tar.bz2 new file mode 100644 index 0000000..2eaca8b --- /dev/null +++ b/glibc-ports-2.10.1-2b2b217196.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efc4a2a614a97203c3c9847db37f40e52596776439b512b57f1606a12361b8f2 +size 585531 diff --git a/glibc-version.diff b/glibc-version.diff index 6f9945f..052c3ba 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -6,7 +6,7 @@ static const char banner[] = -"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\ - Copyright (C) 2008 Free Software Foundation, Inc.\n\ + Copyright (C) 2009 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index 8eff749..2077d67 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,97 @@ +------------------------------------------------------------------- +Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch + maintained by me at repo.or.cz; contains backports of various bugfixes. + (Still the same source is used for glibc-ports.) +- Stop using separate tarball for nptl. + +------------------------------------------------------------------- +Fri May 15 22:13:33 CEST 2009 - pbaudis@suse.cz + +- Add support for multiple group records for a single group + when using nss_compat (configurable in /etc/default/nss) [bnc#480991] + +------------------------------------------------------------------- +Sun May 10 21:42:37 CEST 2009 - pbaudis@suse.cz + +- Update to 2009051021, glibc-2.10.1: + * Add missing cacheinfo entry for a recent Intel processor + * Fix ABI issue with the gshadow interface + +------------------------------------------------------------------- +Sun May 10 11:20:12 CEST 2009 - pbaudis@suse.cz + +- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: + * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS + servers (the case e.g. for many ADSL users), you may experience long + timeouts, once for each process (but eventually your request will be + resolved) - the solution is to run nscd (default on SUSE) and/or + put 'options single-request' in /etc/resolv.conf. + + * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info + Implemented by Ulrich Drepper. + + * New Linux interfaces: accept4, fallocate, fallocate64. + Implemented by Ulrich Drepper. + + * Correct declarations of string function when used in C++ code. This + could lead to compile errors for invalid C++ code. + + * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are + now in POSIX. + + * New POSIX 2008 interface: psiginfo + Implemented by Ulrich Drepper. + + * New ISO C++1x interfaces: quick_exit, at_quick_exit + Implemented by Ulrich Drepper. + + * Support for selecting between multiple function definitions at runtime + using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. + + * The libcrypt library can now use the hash function implementations in + NSS. Implemented by Ulrich Drepper. + + * The malloc implementation can be compiled to be less memory efficient + but higher performing in multi-threaded programs. + Implemented by Ulrich Drepper. + + * New locales: nan_TW@latin, ks_IN + + * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. + Implemented by Ulrich Drepper. + + * Extended printf hook support. It is possible to use user-defined types + and extend existing format specifiers. + Implemented by Ulrich Drepper. + + * Handling for group shadow files has been added. + Implemented by Ulrich Drepper. +- Retired: + glibc-2.10-dns-fixpack.diff + glibc-2.10-dns-no-gethostbyname4.diff + glibc-2.10-locale-tuesday.diff + glibc-2.10-nscd-gc-dataofs.diff + glibc-2.10-nscd-prunerace.diff + glibc-2.10-ppc32-setcontext-fp.diff + glibc-2.10-unsetenv.diff + glibc-2.4.90-mdns-resolver.diff + glibc-2.9-fortify.diff + glibc-getgroups-fortify.diff + glibc-ldscript.diff + glibc-mtfsf.diff + glibc-2.10-nscd-meminflight.diff + getaddrinfo-ipv6-sanity.diff + glibc-2.10-nis-hosts.diff +- Several other modified + +------------------------------------------------------------------- +Fri Apr 17 16:49:52 CEST 2009 - pbaudis@suse.cz + +- Fix defaulting to localhost in case of no nameserver entries + in /etc/resolv.conf [bnc#473308] + ------------------------------------------------------------------- Mon Mar 23 15:32:01 CET 2009 - rguenther@suse.de diff --git a/glibc.spec b/glibc.spec index a032f5f..6a5e303 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,5 +1,5 @@ # -# spec file for package glibc (Version 2.9) +# spec file for package glibc (Version 2.10.1) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -68,14 +68,15 @@ Obsoletes: glibc-32bit %endif Provides: rtld(GNU_HASH) AutoReqProv: on -Version: 2.9 -Release: 15 -%define snapshot_date 2008111711 +Version: 2.10.1 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{snapshot_date}.tar.bz2 -Source1: glibc-nptl-%{version}-%{snapshot_date}.tar.bz2 +# The glibc source comes from http://repo.or.cz/w/glibc/pb-stable.git +# glibc-2.10-branch. +Source: glibc-%{version}-e38af591a8.tar.bz2 +Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source8: nsswitch.conf @@ -96,21 +97,21 @@ Patch1: glibc-2.3.90-noversion.diff Patch2: glibc-2.3.90-fnmatch.diff Patch3: resolv.dynamic.diff Patch4: glibc-2.3.locales.diff.bz2 -Patch5: crypt_blowfish-glibc-2.3.diff -Patch6: glibc-version.diff -Patch7: glibc-2.4.90-revert-only-euro.diff -Patch8: glibc-2.3-regcomp.diff -Patch9: glibc-2.3.2-revert_tcsetattr.diff -Patch10: glibc-2.3.1.localedef.diff -Patch11: glibc-2.3.2.no_archive.diff -Patch12: glibc-2.3.3-amd64-string.diff -Patch13: libm-x86-64.diff.bz2 -Patch14: glibc-2.3.90-bindresvport.blacklist.diff -Patch15: glibc-suse-note.diff -Patch16: glibc-2.4.90-no_NO.diff -Patch17: glibc-2.3.90-ld.so-madvise.diff -Patch18: glibc-2.3.3-amd64-s_ceil.diff -Patch19: glibc-2.4.90-mdns-resolver.diff +Patch5: crypt_blowfish-1.0.diff +Patch6: crypt_blowfish-glibc-2.3.diff +Patch7: glibc-version.diff +Patch8: glibc-2.4.90-revert-only-euro.diff +Patch9: glibc-2.3-regcomp.diff +Patch10: glibc-2.3.2-revert_tcsetattr.diff +Patch11: glibc-2.3.1.localedef.diff +Patch12: glibc-2.3.2.no_archive.diff +Patch13: glibc-2.3.3-amd64-string.diff +Patch14: libm-x86-64.diff.bz2 +Patch15: glibc-2.3.90-bindresvport.blacklist.diff +Patch16: glibc-suse-note.diff +Patch17: glibc-2.4.90-no_NO.diff +Patch18: glibc-2.3.90-ld.so-madvise.diff +Patch19: glibc-2.3.3-amd64-s_ceil.diff Patch20: glibc-2.3.3-execstack.diff Patch21: glibc-2.4-china.diff Patch22: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 @@ -119,37 +120,27 @@ Patch24: glibc-2.3.3-nscd-db-path.diff Patch25: glibc-2.3.5-nscd-zeronegtimeout.diff Patch26: glibc-2.3.90-langpackdir.diff Patch27: glibc-nptl-2.4-nofixsyscallnr.diff -Patch28: crypt_blowfish-1.0.diff Patch29: glibc-2.5-ppc-llrintl.diff Patch30: glibc-2.6-configure.diff Patch31: glibc-2.2-sunrpc.diff Patch32: glibc-2.8-getconf.diff -Patch33: glibc-2.8-dlosinfo.diff -Patch34: getaddrinfo-ipv6-sanity.diff -Patch35: glibc-2.8-revert-nscleanup.diff -Patch36: ppc-atomic.diff -Patch37: glibc-2.8-clone.diff -Patch38: glibc-nss-deepbind.diff -Patch39: glibc-fix-nscd.diff -Patch40: glibc-compiled-binaries.diff -Patch41: glibc-selinux.diff -Patch42: glibc-getgroups-fortify.diff -Patch43: missing-include-build-fix.diff -Patch44: glibc-no-unwind-tables.diff -Patch45: glibc-2.10-nscd-meminflight.diff -Patch46: glibc-2.10-nscd-prunerace.diff -Patch47: glibc-2.10-locale-tuesday.diff -Patch48: glibc-2.10-nis-hosts.diff -Patch49: glibc-2.10-unsetenv.diff -Patch50: glibc-2.10-dns-fixpack.diff -Patch51: glibc-2.10-dns-no-gethostbyname4.diff -Patch52: glibc-2.10-ppc32-setcontext-fp.diff -Patch53: glibc-2.10-nscd-gc-dataofs.diff -Patch54: glibc-2.10-nscd-nostack.diff -Patch55: glibc-cpusetsize.diff -Patch56: glibc-ldscript.diff -Patch57: glibc-mtfsf.diff -Patch58: glibc-2.9-fortify.diff +Patch33: getaddrinfo-ipv6-sanity.diff +Patch34: glibc-2.8-revert-nscleanup.diff +Patch35: ppc-atomic.diff +Patch36: glibc-2.8-clone.diff +Patch37: glibc-nss-deepbind.diff +Patch38: glibc-nscd-prune-ret.diff +Patch39: glibc-compiled-binaries.diff +Patch40: glibc-selinux.diff +Patch41: glibc-check-native-missing-include.diff +Patch42: glibc-no-unwind-tables.diff +Patch43: glibc-2.10-nscd-nostack.diff +Patch44: glibc-cpusetsize.diff +Patch45: glibc-nis-splitgroups.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 +Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff %description The GNU C Library provides the most important standard libraries used @@ -295,13 +286,20 @@ versions of your software. %prep -%setup -n glibc-%{version} -q -a 1 -a 3 -a 4 -a 14 +%ifarch %arm armv5tel armv7l +# add glibc-ports for arm +%setup -n glibc-%{version} -q -a 2 -a 3 -a 4 -a 14 +%else +# any other leave out ports +%setup -n glibc-%{version} -q -a 3 -a 4 -a 14 +%endif %patch # libNoVersion part is only active on ix86 %patch1 %patch2 %patch3 %patch4 +%patch5 %patch6 %patch7 %patch8 @@ -309,18 +307,15 @@ versions of your software. %patch10 %patch11 %patch12 -# strncmp is broken, let's delete it for now this way -rm sysdeps/x86_64/strncmp.S -%patch13 -E +%patch13 +%patch14 -E # We have s_sincos.c in patch13, remove duplicate rm sysdeps/x86_64/fpu/s_sincos.S -%patch14 %patch15 %patch16 %patch17 %patch18 -#We have nss-mdns, why should we need this patch? -#%patch19 +%patch19 %patch20 %patch21 %patch22 @@ -329,7 +324,6 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch25 %patch26 %patch27 -%patch28 %patch29 %patch30 %patch31 @@ -347,20 +341,12 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch43 %patch44 %patch45 -%patch46 -%patch47 -%patch48 -%patch49 -%patch50 -%patch51 -%patch52 -%patch53 -%patch54 -%patch55 -%patch56 -%patch57 -%patch58 -%patch5 +%ifarch %arm armv5tel armv7l +%patch500 +%patch501 +%patch502 +%patch503 +%endif # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -446,6 +432,12 @@ BuildFlags="$BuildFlags -DNDEBUG=1" %ifarch %ix86 add_ons=$add_ons,noversion %endif +%ifarch %arm armv5tel armv7l +add_ons=$add_ons,ports +BuildFlags="-march=armv5te -O2 -Wall" +# fails to build otherwise - need to recheck and fix +%define enable_stackguard_randomization 0 +%endif configure_and_build_glibc() { local cflags="$1" local addons="$2" @@ -458,7 +450,11 @@ configure_and_build_glibc() { %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif +%ifarch %arm armv5tel armv7l + --build=%{_target_cpu}-suse-linux-gnueabi \ +%else --build=%{_target_cpu}-suse-linux \ +%endif --with-tls --with-__thread --enable-kernel=2.6.4 make $PARALLEL } @@ -844,11 +840,15 @@ exit 0 %ifarch x86_64 /%{_lib}/ld-linux-x86-64.so.2 %else +%ifarch %arm armv5tel armv7l +/%{_lib}/ld-linux.so.3 +%else /%{_lib}/ld-linux.so.2 %endif %endif %endif %endif +%endif /%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so @@ -1058,6 +1058,72 @@ exit 0 %{_libdir}/libdl_p.a %changelog +* Fri May 22 2009 pbaudis@suse.cz +- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch + maintained by me at repo.or.cz; contains backports of various bugfixes. + (Still the same source is used for glibc-ports.) +- Stop using separate tarball for nptl. +* Fri May 15 2009 pbaudis@suse.cz +- Add support for multiple group records for a single group + when using nss_compat (configurable in /etc/default/nss) [bnc#480991] +* Sun May 10 2009 pbaudis@suse.cz +- Update to 2009051021, glibc-2.10.1: + * Add missing cacheinfo entry for a recent Intel processor + * Fix ABI issue with the gshadow interface +* Sun May 10 2009 pbaudis@suse.cz +- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: + * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS + servers (the case e.g. for many ADSL users), you may experience long + timeouts, once for each process (but eventually your request will be + resolved) - the solution is to run nscd (default on SUSE) and/or + put 'options single-request' in /etc/resolv.conf. + * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info + Implemented by Ulrich Drepper. + * New Linux interfaces: accept4, fallocate, fallocate64. + Implemented by Ulrich Drepper. + * Correct declarations of string function when used in C++ code. This + could lead to compile errors for invalid C++ code. + * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are + now in POSIX. + * New POSIX 2008 interface: psiginfo + Implemented by Ulrich Drepper. + * New ISO C++1x interfaces: quick_exit, at_quick_exit + Implemented by Ulrich Drepper. + * Support for selecting between multiple function definitions at runtime + using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. + * The libcrypt library can now use the hash function implementations in + NSS. Implemented by Ulrich Drepper. + * The malloc implementation can be compiled to be less memory efficient + but higher performing in multi-threaded programs. + Implemented by Ulrich Drepper. + * New locales: nan_TW@latin, ks_IN + * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. + Implemented by Ulrich Drepper. + * Extended printf hook support. It is possible to use user-defined types + and extend existing format specifiers. + Implemented by Ulrich Drepper. + * Handling for group shadow files has been added. + Implemented by Ulrich Drepper. +- Retired: + glibc-2.10-dns-fixpack.diff + glibc-2.10-dns-no-gethostbyname4.diff + glibc-2.10-locale-tuesday.diff + glibc-2.10-nscd-gc-dataofs.diff + glibc-2.10-nscd-prunerace.diff + glibc-2.10-ppc32-setcontext-fp.diff + glibc-2.10-unsetenv.diff + glibc-2.4.90-mdns-resolver.diff + glibc-2.9-fortify.diff + glibc-getgroups-fortify.diff + glibc-ldscript.diff + glibc-mtfsf.diff + glibc-2.10-nscd-meminflight.diff + getaddrinfo-ipv6-sanity.diff + glibc-2.10-nis-hosts.diff +- Several other modified +* Fri Apr 17 2009 pbaudis@suse.cz +- Fix defaulting to localhost in case of no nameserver entries + in /etc/resolv.conf [bnc#473308] * Mon Mar 23 2009 rguenther@suse.de - Add missing libc_hidden_builtin_def (memcmp) to glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. @@ -1127,7 +1193,7 @@ exit 0 - Update to trunk from 20081013, no longer export paccept, obsoletes some patches (lowlevellock and res_send). Fix overflow in nscd patch. -* Sun Oct 12 2008 dmueller@suse.de +* Mon Oct 13 2008 dmueller@suse.de - also strip .comment.SUSE.OPTs from the static libs - add missing-include-build-fix.diff * Tue Oct 07 2008 schwab@suse.de @@ -1522,7 +1588,7 @@ exit 0 - Fix asm-s390/setup.h for userspace inclusion - nsswitch.conf: Add nis to netgroup and automount entry - Fix sys/procfs.h for ppc64 -* Mon Jan 09 2006 kukuk@suse.de +* Tue Jan 10 2006 kukuk@suse.de - Update to current CVS (fix for pthread.h with -std=c99) - Define PAGE_SIZE on POWER - Don't include linux/sched.h in asm-power/elf.h @@ -1749,7 +1815,7 @@ exit 0 - Include own copy of texi2html - Add glibc_pst_upgrade program (based on version from FC3) - Update to current CVS -* Thu Jan 27 2005 kukuk@suse.de +* Fri Jan 28 2005 kukuk@suse.de - Re-add patch for timezone/zic.c (got lost with last merge) * Wed Jan 26 2005 kukuk@suse.de - Update timezone data to 2005c release (fixes zdump crash on @@ -1845,7 +1911,7 @@ exit 0 - Update to CVS: Fix nscd crash if one service is disabled - glob.h: Add workaround for invalid prototypes - nss_compat: Check that buffer is larger than 0 bytes -* Fri Sep 10 2004 kukuk@suse.de +* Sat Sep 11 2004 kukuk@suse.de - Update to CVS: Fix cdefs.h for C++ usage * Fri Sep 10 2004 kukuk@suse.de - Add lwres to hosts search order in nsswitch.conf @@ -1863,7 +1929,7 @@ exit 0 - Update to current CVS: - Use CVS version for last fix. - Add malloc sanity checks for double free. -* Fri Aug 20 2004 schwab@suse.de +* Sat Aug 21 2004 schwab@suse.de - Fix cancellable syscalls in librt w/ linuxthreads. * Fri Aug 20 2004 kukuk@suse.de - Update to current CVS [#43993] @@ -1941,19 +2007,19 @@ exit 0 * Thu Apr 15 2004 kukuk@suse.de - Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf - Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] -* Wed Apr 14 2004 schwab@suse.de +* Thu Apr 15 2004 schwab@suse.de - Remove /usr/i386-linux from ld.so.conf, * Wed Apr 14 2004 kukuk@suse.de - Fix linux/compiler.h for glibc inclusion - Really fix ffsl on s390x -* Fri Apr 09 2004 schwab@suse.de +* Sat Apr 10 2004 schwab@suse.de - Fix syntax error in memcmp. * Fri Apr 09 2004 kukuk@suse.de - Update from CVS: linuxthread debug fixes - Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) - Fix ffsl weak alias on s390x - Update to 2.6.5 kernel headers -* Wed Apr 07 2004 meissner@suse.de +* Thu Apr 08 2004 meissner@suse.de - forward umount to umount2 on ppc64 because umount syscall does not exist * Mon Apr 05 2004 kukuk@suse.de @@ -2476,7 +2542,7 @@ exit 0 - Update to current cvs snapshot * Fri Jan 03 2003 bg@suse.de - removed obsolete patch for hppa -* Fri Dec 20 2002 kukuk@suse.de +* Sat Dec 21 2002 kukuk@suse.de - Update to current cvs snapshot - Obsoletes glibc-2.3-setjmp-ppc64.diff - Obsoletes build-alpha.diff @@ -3053,7 +3119,7 @@ exit 0 - strip gconv modules * Fri Nov 24 2000 kukuk@suse.de - Fix typo in spec file -* Thu Nov 23 2000 kukuk@suse.de +* Fri Nov 24 2000 kukuk@suse.de - Add hack for POWER3 * Wed Nov 22 2000 kukuk@suse.de - Add strncat bugfix for S/390 @@ -3365,7 +3431,7 @@ exit 0 - don't use lx_hack for build * Tue Mar 16 1999 ro@suse.de - libc.texinfo: changed to build with stable texinfo version -* Mon Mar 15 1999 ro@suse.de +* Tue Mar 16 1999 ro@suse.de - update to 2.1.1 (cvs of Mar 15 1999) - update nssv1 to 2.0.2 * Sat Feb 20 1999 ro@suse.de @@ -3390,7 +3456,7 @@ exit 0 * Wed Sep 02 1998 ro@suse.de - build for 586 since egcs generates code for 686 that does NOT run on 586 !!! (eg strtok) -* Fri Aug 21 1998 ro@suse.de +* Sat Aug 22 1998 ro@suse.de - updated to cvs-version 20.8.98 added gettext as neededforbuild (so configure shuts up) glibc-linuxthreads is contained in main archive now From 342102ac98e39f0d362311f3ae362044d032644c4532ce731d63cd89da20a7d7 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 12 Jun 2009 14:37:00 +0000 Subject: [PATCH 005/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=5 --- glibc-2.10-mcheck-free-race.diff | 37 ++ glibc-2.10.1-9cf557216c.tar.bz2 | 3 + glibc-2.10.1-e38af591a8.tar.bz2 | 3 - glibc-2.8-revert-nscleanup.diff | 828 ------------------------------- glibc.changes | 18 + glibc.spec | 17 +- 6 files changed, 71 insertions(+), 835 deletions(-) create mode 100644 glibc-2.10-mcheck-free-race.diff create mode 100644 glibc-2.10.1-9cf557216c.tar.bz2 delete mode 100644 glibc-2.10.1-e38af591a8.tar.bz2 delete mode 100644 glibc-2.8-revert-nscleanup.diff diff --git a/glibc-2.10-mcheck-free-race.diff b/glibc-2.10-mcheck-free-race.diff new file mode 100644 index 0000000..3da1397 --- /dev/null +++ b/glibc-2.10-mcheck-free-race.diff @@ -0,0 +1,37 @@ +--- malloc/hooks.c~ 2009-06-08 17:55:07.982329000 +0200 ++++ malloc/hooks.c 2009-06-08 17:56:41.178045000 +0200 +@@ -276,15 +276,18 @@ + mchunkptr p; + + if(!mem) return; ++#ifndef ATOMIC_FASTBINS ++ (void)mutex_lock(&main_arena.mutex); ++#endif + p = mem2chunk_check(mem, NULL); + if(!p) { + malloc_printerr(check_action, "free(): invalid pointer", mem); +- return; ++ goto out; + } + #if HAVE_MMAP + if (chunk_is_mmapped(p)) { + munmap_chunk(p); +- return; ++ goto out; + } + #endif + #if 0 /* Erase freed memory. */ +@@ -293,8 +296,12 @@ + #ifdef ATOMIC_FASTBINS + _int_free(&main_arena, p, 0); + #else +- (void)mutex_lock(&main_arena.mutex); + _int_free(&main_arena, p); ++#endif ++out: ++#ifdef ATOMIC_FASTBINS ++ ; ++#else + (void)mutex_unlock(&main_arena.mutex); + #endif + } diff --git a/glibc-2.10.1-9cf557216c.tar.bz2 b/glibc-2.10.1-9cf557216c.tar.bz2 new file mode 100644 index 0000000..76621dc --- /dev/null +++ b/glibc-2.10.1-9cf557216c.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f5498c9c2ccb5438487af0541cfe1978c77fa47e2078b793be35149cc8320e7 +size 15590281 diff --git a/glibc-2.10.1-e38af591a8.tar.bz2 b/glibc-2.10.1-e38af591a8.tar.bz2 deleted file mode 100644 index 0c6c8ad..0000000 --- a/glibc-2.10.1-e38af591a8.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:05810d4e4256a3be2582b0bfb9cda3332a4710beeb20fbe90c41c306c4b9ee48 -size 15588510 diff --git a/glibc-2.8-revert-nscleanup.diff b/glibc-2.8-revert-nscleanup.diff deleted file mode 100644 index 91fb6ce..0000000 --- a/glibc-2.8-revert-nscleanup.diff +++ /dev/null @@ -1,828 +0,0 @@ -** TEMPORARY ** - -We should delete this patch again very soon. --pasky - -diff --git a/inet/netinet/in.h b/inet/netinet/in.h -index e3446a9..1366198 100644 ---- inet/netinet/in.h -+++ inet/netinet/in.h -@@ -195,17 +195,13 @@ struct in6_addr - { - union - { -- uint8_t __u6_addr8[16]; --#if defined __USE_MISC || defined __USE_GNU -- uint16_t __u6_addr16[8]; -- uint32_t __u6_addr32[4]; --#endif -- } __in6_u; --#define s6_addr __in6_u.__u6_addr8 --#if defined __USE_MISC || defined __USE_GNU --# define s6_addr16 __in6_u.__u6_addr16 --# define s6_addr32 __in6_u.__u6_addr32 --#endif -+ uint8_t u6_addr8[16]; -+ uint16_t u6_addr16[8]; -+ uint32_t u6_addr32[4]; -+ } in6_u; -+#define s6_addr in6_u.u6_addr8 -+#define s6_addr16 in6_u.u6_addr16 -+#define s6_addr32 in6_u.u6_addr32 - }; - - extern const struct in6_addr in6addr_any; /* :: */ -@@ -242,7 +238,6 @@ struct sockaddr_in6 - }; - - --#if defined __USE_MISC || defined __USE_GNU - /* IPv4 multicast request. */ - struct ip_mreq - { -@@ -264,8 +259,6 @@ struct ip_mreq_source - /* IP address of interface. */ - struct in_addr imr_sourceaddr; - }; --#endif -- - - /* Likewise, for IPv6. */ - struct ipv6_mreq -@@ -278,7 +271,6 @@ struct ipv6_mreq - }; - - --#if defined __USE_MISC || defined __USE_GNU - /* Multicast group request. */ - struct group_req - { -@@ -345,7 +337,6 @@ struct group_filter - - sizeof (struct sockaddr_storage) \ - + ((numsrc) \ - * sizeof (struct sockaddr_storage))) --#endif - - - /* Get system-specific definitions. */ -@@ -431,14 +422,12 @@ extern uint16_t htons (uint16_t __hostshort) - && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \ - && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3])) - --#if defined __USE_MISC || defined __USE_GNU - /* Bind socket to a privileged IP port. */ - extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW; - - /* The IPv6 version of this function. */ - extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) - __THROW; --#endif - - - #define IN6_IS_ADDR_MC_NODELOCAL(a) \ -@@ -461,8 +450,6 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) - (IN6_IS_ADDR_MULTICAST(a) \ - && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe)) - -- --#ifdef __USE_GNU - /* IPv6 packet information. */ - struct in6_pktinfo - { -@@ -478,6 +465,7 @@ struct ip6_mtuinfo - }; - - -+#ifdef __USE_GNU - /* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */ - extern int inet6_option_space (int __nbytes) - __THROW __attribute_deprecated__; -diff --git a/posix/regex.h b/posix/regex.h -index 2132772..a058e3f 100644 ---- posix/regex.h -+++ posix/regex.h -@@ -43,21 +43,20 @@ typedef unsigned long int active_reg_t; - add or remove a bit, only one other definition need change. */ - typedef unsigned long int reg_syntax_t; - --#ifdef __USE_GNU - /* If this bit is not set, then \ inside a bracket expression is literal. - If set, then such a \ quotes the following character. */ --# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) -+#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) - - /* If this bit is not set, then + and ? are operators, and \+ and \? are - literals. - If set, then \+ and \? are operators and + and ? are literals. */ --# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) -+#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) - - /* If this bit is set, then character classes are supported. They are: - [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], - [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. - If not set, then character classes are not supported. */ --# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) -+#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) - - /* If this bit is set, then ^ and $ are always anchors (outside bracket - expressions, of course). -@@ -71,7 +70,7 @@ typedef unsigned long int reg_syntax_t; - POSIX draft 11.2 says that * etc. in leading positions is undefined. - We already implemented a previous draft which made those constructs - invalid, though, so we haven't changed the code back. */ --# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) -+#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) - - /* If this bit is set, then special characters are always special - regardless of where they are in the pattern. -@@ -79,71 +78,71 @@ typedef unsigned long int reg_syntax_t; - some contexts; otherwise they are ordinary. Specifically, - * + ? and intervals are only special when not after the beginning, - open-group, or alternation operator. */ --# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) -+#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) - - /* If this bit is set, then *, +, ?, and { cannot be first in an re or - immediately after an alternation or begin-group operator. */ --# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) -+#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) - - /* If this bit is set, then . matches newline. - If not set, then it doesn't. */ --# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) -+#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) - - /* If this bit is set, then . doesn't match NUL. - If not set, then it does. */ --# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) -+#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) - - /* If this bit is set, nonmatching lists [^...] do not match newline. - If not set, they do. */ --# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) -+#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) - - /* If this bit is set, either \{...\} or {...} defines an - interval, depending on RE_NO_BK_BRACES. - If not set, \{, \}, {, and } are literals. */ --# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) -+#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - - /* If this bit is set, +, ? and | aren't recognized as operators. - If not set, they are. */ --# define RE_LIMITED_OPS (RE_INTERVALS << 1) -+#define RE_LIMITED_OPS (RE_INTERVALS << 1) - - /* If this bit is set, newline is an alternation operator. - If not set, newline is literal. */ --# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) -+#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) - - /* If this bit is set, then `{...}' defines an interval, and \{ and \} - are literals. - If not set, then `\{...\}' defines an interval. */ --# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) -+#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) - - /* If this bit is set, (...) defines a group, and \( and \) are literals. - If not set, \(...\) defines a group, and ( and ) are literals. */ --# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) -+#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) - - /* If this bit is set, then \ matches . - If not set, then \ is a back-reference. */ --# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) -+#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) - - /* If this bit is set, then | is an alternation operator, and \| is literal. - If not set, then \| is an alternation operator, and | is literal. */ --# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) -+#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) - - /* If this bit is set, then an ending range point collating higher - than the starting range point, as in [z-a], is invalid. - If not set, then when ending range point collates higher than the - starting range point, the range is ignored. */ --# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) -+#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) - - /* If this bit is set, then an unmatched ) is ordinary. - If not set, then an unmatched ) is invalid. */ --# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) -+#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) - - /* If this bit is set, succeed as soon as we match the whole pattern, - without further backtracking. */ --# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) -+#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) - - /* If this bit is set, do not process the GNU regex operators. - If not set, then the GNU regex operators are recognized. */ --# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) -+#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) - - /* If this bit is set, turn on internal regex debugging. - If not set, and debugging was on, turn it off. -@@ -151,30 +150,29 @@ typedef unsigned long int reg_syntax_t; - We define this bit always, so that all that's needed to turn on - debugging is to recompile regex.c; the calling code can always have - this bit set, and it won't affect anything in the normal case. */ --# define RE_DEBUG (RE_NO_GNU_OPS << 1) -+#define RE_DEBUG (RE_NO_GNU_OPS << 1) - - /* If this bit is set, a syntactically invalid interval is treated as - a string of ordinary characters. For example, the ERE 'a{1' is - treated as 'a\{1'. */ --# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) -+#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) - - /* If this bit is set, then ignore case when matching. - If not set, then case is significant. */ --# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) -+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) - - /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only - for ^, because it is difficult to scan the regex backwards to find - whether ^ should be special. */ --# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) -+#define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) - - /* If this bit is set, then \{ cannot be first in an bre or - immediately after an alternation or begin-group operator. */ --# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) -+#define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) - - /* If this bit is set, then no_sub will be set to 1 during - re_compile_pattern. */ --# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) --#endif -+#define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) - - /* This global variable defines the particular regexp syntax to use (for - some interfaces). When a regexp is compiled, the syntax used is -@@ -182,7 +180,6 @@ typedef unsigned long int reg_syntax_t; - already-compiled regexps. */ - extern reg_syntax_t re_syntax_options; - --#ifdef __USE_GNU - /* Define combinations of the above bits for the standard possibilities. - (The [[[ comments delimit what gets put into the Texinfo file, so - don't delete them!) */ -@@ -257,12 +254,11 @@ extern reg_syntax_t re_syntax_options; - /* Maximum number of duplicates an interval can allow. Some systems - (erroneously) define this in other header files, but we want our - value, so remove any previous define. */ --# ifdef RE_DUP_MAX --# undef RE_DUP_MAX --# endif --/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ --# define RE_DUP_MAX (0x7fff) -+#ifdef RE_DUP_MAX -+# undef RE_DUP_MAX - #endif -+/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ -+#define RE_DUP_MAX (0x7fff) - - - /* POSIX `cflags' bits (i.e., information for `regcomp'). */ -@@ -341,16 +337,7 @@ typedef enum - private to the regex routines. */ - - #ifndef RE_TRANSLATE_TYPE --# define __RE_TRANSLATE_TYPE unsigned char * --# ifdef __USE_GNU --# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE --# endif --#endif -- --#ifdef __USE_GNU --# define __REPB_PREFIX(name) name --#else --# define __REPB_PREFIX(name) __##name -+# define RE_TRANSLATE_TYPE unsigned char * - #endif - - struct re_pattern_buffer -@@ -358,27 +345,27 @@ struct re_pattern_buffer - /* Space that holds the compiled pattern. It is declared as - `unsigned char *' because its elements are sometimes used as - array indexes. */ -- unsigned char *__REPB_PREFIX(buffer); -+ unsigned char *buffer; - - /* Number of bytes to which `buffer' points. */ -- unsigned long int __REPB_PREFIX(allocated); -+ unsigned long int allocated; - - /* Number of bytes actually used in `buffer'. */ -- unsigned long int __REPB_PREFIX(used); -+ unsigned long int used; - - /* Syntax setting with which the pattern was compiled. */ -- reg_syntax_t __REPB_PREFIX(syntax); -+ reg_syntax_t syntax; - - /* Pointer to a fastmap, if any, otherwise zero. re_search uses the - fastmap, if there is one, to skip over impossible starting points - for matches. */ -- char *__REPB_PREFIX(fastmap); -+ char *fastmap; - - /* Either a translate table to apply to all characters before - comparing them, or zero for no translation. The translation is - applied to a pattern when it is compiled and to a string when it - is matched. */ -- __RE_TRANSLATE_TYPE __REPB_PREFIX(translate); -+ RE_TRANSLATE_TYPE translate; - - /* Number of subexpressions found by the compiler. */ - size_t re_nsub; -@@ -387,36 +374,34 @@ struct re_pattern_buffer - Well, in truth it's used only in `re_search_2', to see whether or - not we should use the fastmap, so we don't set this absolutely - perfectly; see `re_compile_fastmap' (the `duplicate' case). */ -- unsigned __REPB_PREFIX(can_be_null) : 1; -+ unsigned can_be_null : 1; - - /* If REGS_UNALLOCATED, allocate space in the `regs' structure - for `max (RE_NREGS, re_nsub + 1)' groups. - If REGS_REALLOCATE, reallocate space if necessary. - If REGS_FIXED, use what's there. */ --#ifdef __USE_GNU --# define REGS_UNALLOCATED 0 --# define REGS_REALLOCATE 1 --# define REGS_FIXED 2 --#endif -- unsigned __REPB_PREFIX(regs_allocated) : 2; -+#define REGS_UNALLOCATED 0 -+#define REGS_REALLOCATE 1 -+#define REGS_FIXED 2 -+ unsigned regs_allocated : 2; - - /* Set to zero when `regex_compile' compiles a pattern; set to one - by `re_compile_fastmap' if it updates the fastmap. */ -- unsigned __REPB_PREFIX(fastmap_accurate) : 1; -+ unsigned fastmap_accurate : 1; - - /* If set, `re_match_2' does not return information about - subexpressions. */ -- unsigned __REPB_PREFIX(no_sub) : 1; -+ unsigned no_sub : 1; - - /* If set, a beginning-of-line anchor doesn't match at the beginning - of the string. */ -- unsigned __REPB_PREFIX(not_bol) : 1; -+ unsigned not_bol : 1; - - /* Similarly for an end-of-line anchor. */ -- unsigned __REPB_PREFIX(not_eol) : 1; -+ unsigned not_eol : 1; - - /* If true, an anchor at a newline matches. */ -- unsigned __REPB_PREFIX(newline_anchor) : 1; -+ unsigned newline_anchor : 1; - }; - - typedef struct re_pattern_buffer regex_t; -@@ -425,7 +410,6 @@ typedef struct re_pattern_buffer regex_t; - typedef int regoff_t; - - --#ifdef __USE_GNU - /* This is the structure we store register match data in. See - regex.texinfo for a full description of what registers match. */ - struct re_registers -@@ -439,9 +423,8 @@ struct re_registers - /* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, - `re_match_2' returns information about at least this many registers - the first time a `regs' structure is passed. */ --# ifndef RE_NREGS --# define RE_NREGS 30 --# endif -+#ifndef RE_NREGS -+# define RE_NREGS 30 - #endif - - -@@ -456,7 +439,6 @@ typedef struct - - /* Declarations for routines. */ - --#ifdef __USE_GNU - /* Sets the current default syntax to SYNTAX, and return the old syntax. - You can also simply assign to the `re_syntax_options' variable. */ - extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); -@@ -521,9 +503,8 @@ extern void re_set_registers (struct re_pattern_buffer *__buffer, - struct re_registers *__regs, - unsigned int __num_regs, - regoff_t *__starts, regoff_t *__ends); --#endif /* Use GNU */ - --#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD) -+#if defined _REGEX_RE_COMP || defined _LIBC - # ifndef _CRAY - /* 4.2 bsd compatibility. */ - extern char *re_comp (const char *); -diff --git a/resolv/netdb.h b/resolv/netdb.h -index a260c48..7c5c9c9 100644 ---- resolv/netdb.h -+++ resolv/netdb.h -@@ -62,6 +62,8 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); - - - /* Possible values left in `h_errno'. */ -+#define NETDB_INTERNAL -1 /* See errno. */ -+#define NETDB_SUCCESS 0 /* No problem. */ - #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */ - #define TRY_AGAIN 2 /* Non-Authoritative Host not found, - or SERVERFAIL. */ -@@ -69,11 +71,7 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); - NOTIMP. */ - #define NO_DATA 4 /* Valid name, no data record of requested - type. */ --#if defined __USE_MISC || defined __USE_GNU --# define NETDB_INTERNAL -1 /* See errno. */ --# define NETDB_SUCCESS 0 /* No problem. */ --# define NO_ADDRESS NO_DATA /* No address, look for MX record. */ --#endif -+#define NO_ADDRESS NO_DATA /* No address, look for MX record. */ - - #ifdef __USE_XOPEN2K - /* Highest reserved Internet port number. */ -@@ -85,14 +83,13 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); - # define SCOPE_DELIMITER '%' - #endif - --#if defined __USE_MISC || defined __USE_GNU - /* Print error indicated by `h_errno' variable on standard error. STR - if non-null is printed before the error string. */ - extern void herror (__const char *__str) __THROW; - - /* Return string associated with error ERR_NUM. */ - extern __const char *hstrerror (int __err_num) __THROW; --#endif -+ - - - /* Description of data base entry for a single host. */ -@@ -103,9 +100,7 @@ struct hostent - int h_addrtype; /* Host address type. */ - int h_length; /* Length of address. */ - char **h_addr_list; /* List of addresses from name server. */ --#if defined __USE_MISC || defined __USE_GNU --# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/ --#endif -+#define h_addr h_addr_list[0] /* Address, for backward compatibility. */ - }; - - /* Open host data base files and mark them as staying open even after -@@ -595,15 +590,15 @@ struct gaicb - # define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ - # define EAI_AGAIN -3 /* Temporary failure in name resolution. */ - # define EAI_FAIL -4 /* Non-recoverable failure in name res. */ -+# define EAI_NODATA -5 /* No address associated with NAME. */ - # define EAI_FAMILY -6 /* `ai_family' not supported. */ - # define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */ - # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ -+# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ - # define EAI_MEMORY -10 /* Memory allocation failure. */ - # define EAI_SYSTEM -11 /* System error returned in `errno'. */ - # define EAI_OVERFLOW -12 /* Argument buffer overflow. */ - # ifdef __USE_GNU --# define EAI_NODATA -5 /* No address associated with NAME. */ --# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ - # define EAI_INPROGRESS -100 /* Processing request in progress. */ - # define EAI_CANCELED -101 /* Request canceled. */ - # define EAI_NOTCANCELED -102 /* Request not canceled. */ -@@ -612,10 +607,8 @@ struct gaicb - # define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ - # endif - --# ifdef __USE_MISC --# define NI_MAXHOST 1025 --# define NI_MAXSERV 32 --# endif -+# define NI_MAXHOST 1025 -+# define NI_MAXSERV 32 - - # define NI_NUMERICHOST 1 /* Don't try to look up hostname. */ - # define NI_NUMERICSERV 2 /* Don't convert port number to name. */ -diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h -index 433c033..6880a2e 100644 ---- sysdeps/unix/sysv/linux/bits/in.h -+++ sysdeps/unix/sysv/linux/bits/in.h -@@ -1,4 +1,4 @@ --/* Copyright (C) 1991-1999, 2000, 2004, 2008 Free Software Foundation, Inc. -+/* Copyright (C) 1991-1999, 2000, 2004 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 -@@ -43,18 +43,16 @@ - #define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */ - #define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */ - #define IP_MSFILTER 41 --#if defined __USE_MISC || defined __USE_GNU --# define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */ --# define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */ --# define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/ --# define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */ --# define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */ --# define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/ --# define MCAST_MSFILTER 48 -- --# define MCAST_EXCLUDE 0 --# define MCAST_INCLUDE 1 --#endif -+#define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */ -+#define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */ -+#define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/ -+#define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */ -+#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */ -+#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/ -+#define MCAST_MSFILTER 48 -+ -+#define MCAST_EXCLUDE 0 -+#define MCAST_INCLUDE 1 - - #define IP_ROUTER_ALERT 5 /* bool */ - #define IP_PKTINFO 8 /* bool */ -@@ -78,7 +76,6 @@ - #define IP_DEFAULT_MULTICAST_LOOP 1 - #define IP_MAX_MEMBERSHIPS 20 - --#if defined __USE_MISC || defined __USE_GNU - /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS. - The `ip_dst' field is used for the first-hop gateway when using a - source route (this gets put into the header proper). */ -@@ -103,7 +100,6 @@ struct in_pktinfo - struct in_addr ipi_spec_dst; /* Routing destination address */ - struct in_addr ipi_addr; /* Header destination address */ - }; --#endif - - /* Options for use with `getsockopt' and `setsockopt' at the IPv6 level. - The first word in the comment at the right is the data type used; -diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h -index ceb6013..11bb607 100644 ---- sysdeps/unix/sysv/linux/bits/socket.h -+++ sysdeps/unix/sysv/linux/bits/socket.h -@@ -26,8 +26,10 @@ - #endif - - #define __need_size_t -+#define __need_NULL - #include - -+#include - #include - - /* Type for length arguments in socket calls. */ -@@ -154,7 +156,11 @@ struct sockaddr - - /* Structure large enough to hold any socket address (with the historical - exception of AF_UNIX). We reserve 128 bytes. */ --#define __ss_aligntype unsigned long int -+#if ULONG_MAX > 0xffffffff -+# define __ss_aligntype __uint64_t -+#else -+# define __ss_aligntype __uint32_t -+#endif - #define _SS_SIZE 128 - #define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype))) - -@@ -257,7 +263,7 @@ struct cmsghdr - #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) - #define CMSG_FIRSTHDR(mhdr) \ - ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ -- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) -+ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) - #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ - & (size_t) ~(sizeof (size_t) - 1)) - #define CMSG_SPACE(len) (CMSG_ALIGN (len) \ -@@ -301,74 +307,18 @@ enum - #endif - }; - --#ifdef __USE_GNU - /* User visible structure for SCM_CREDENTIALS message */ -+ - struct ucred - { - pid_t pid; /* PID of sending process. */ - uid_t uid; /* UID of sending process. */ - gid_t gid; /* GID of sending process. */ - }; --#endif -- --/* Ugly workaround for unclean kernel headers. */ --#if !defined __USE_MISC && !defined __USE_GNU --# ifndef FIOGETOWN --# define __SYS_SOCKET_H_undef_FIOGETOWN --# endif --# ifndef FIOSETOWN --# define __SYS_SOCKET_H_undef_FIOSETOWN --# endif --# ifndef SIOCATMARK --# define __SYS_SOCKET_H_undef_SIOCATMARK --# endif --# ifndef SIOCGPGRP --# define __SYS_SOCKET_H_undef_SIOCGPGRP --# endif --# ifndef SIOCGSTAMP --# define __SYS_SOCKET_H_undef_SIOCGSTAMP --# endif --# ifndef SIOCGSTAMPNS --# define __SYS_SOCKET_H_undef_SIOCGSTAMPNS --# endif --# ifndef SIOCSPGRP --# define __SYS_SOCKET_H_undef_SIOCSPGRP --# endif --#endif - - /* Get socket manipulation related informations from kernel headers. */ - #include - --#if !defined __USE_MISC && !defined __USE_GNU --# ifdef __SYS_SOCKET_H_undef_FIOGETOWN --# undef __SYS_SOCKET_H_undef_FIOGETOWN --# undef FIOGETOWN --# endif --# ifdef __SYS_SOCKET_H_undef_FIOSETOWN --# undef __SYS_SOCKET_H_undef_FIOSETOWN --# undef FIOSETOWN --# endif --# ifdef __SYS_SOCKET_H_undef_SIOCATMARK --# undef __SYS_SOCKET_H_undef_SIOCATMARK --# undef SIOCATMARK --# endif --# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP --# undef __SYS_SOCKET_H_undef_SIOCGPGRP --# undef SIOCGPGRP --# endif --# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP --# undef __SYS_SOCKET_H_undef_SIOCGSTAMP --# undef SIOCGSTAMP --# endif --# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS --# undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS --# undef SIOCGSTAMPNS --# endif --# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP --# undef __SYS_SOCKET_H_undef_SIOCSPGRP --# undef SIOCSPGRP --# endif --#endif - - /* Structure used to manipulate the SO_LINGER option. */ - struct linger -diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h -index 286c1a2..add2c8e 100644 ---- sysdeps/unix/sysv/linux/x86_64/bits/stat.h -+++ sysdeps/unix/sysv/linux/x86_64/bits/stat.h -@@ -61,7 +61,7 @@ struct stat - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - #if __WORDSIZE == 64 -- int __pad0; -+ int pad0; - #endif - __dev_t st_rdev; /* Device number, if device. */ - #if __WORDSIZE == 32 -@@ -129,7 +129,7 @@ struct stat64 - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - #if __WORDSIZE == 64 -- int __pad0; -+ int pad0; - __dev_t st_rdev; /* Device number, if device. */ - __off_t st_size; /* Size of file, in bytes. */ - #else -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index 9a27efd..c911345 100644 ---- sysdeps/posix/getaddrinfo.c -+++ sysdeps/posix/getaddrinfo.c -@@ -1105,22 +1105,22 @@ static const struct prefixentry *labels; - static const struct prefixentry default_labels[] = - { - /* See RFC 3484 for the details. */ -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } -- }, 128, 0 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 16, 2 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 96, 3 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } -- }, 96, 4 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } }, -+ 128, 0 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 16, 2 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 96, 3 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } }, -+ 96, 4 }, - /* The next two entries differ from RFC 3484. We need to treat - IPv6 site-local addresses special because they are never NATed, - unlike site-locale IPv4 addresses. If this would not happen, on -@@ -1128,23 +1128,23 @@ static const struct prefixentry default_labels[] = - sorting would prefer the IPv6 site-local addresses, causing - unnecessary delays when trying to connect to a global IPv6 address - through a site-local IPv6 address. */ -- { { .__in6_u -- = { .__u6_addr8 = { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 10, 5 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 7, 6 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 10, 5 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 7, 6 }, - /* Additional rule for Teredo tunnels. */ -- { { .__in6_u -- = { .__u6_addr8 = { 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 32, 7 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 0, 1 } -+ { { .in6_u -+ = { .u6_addr8 = { 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 32, 7 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 0, 1 } - }; - - -@@ -1155,26 +1155,26 @@ static const struct prefixentry *precedence; - static const struct prefixentry default_precedence[] = - { - /* See RFC 3484 for the details. */ -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } -- }, 128, 50 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 16, 30 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 96, 20 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } -- }, 96, 10 }, -- { { .__in6_u -- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } -- }, 0, 40 } -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } }, -+ 128, 50 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 16, 30 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 96, 20 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } }, -+ 96, 10 }, -+ { { .in6_u -+ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, -+ 0, 40 } - }; - - diff --git a/glibc.changes b/glibc.changes index 2077d67..8603162 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Fri Jun 12 12:19:34 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) + * Fix 100% CPU usage by Java apps because of bad futex calls [bnc#509096] + +------------------------------------------------------------------- +Mon Jun 8 17:58:50 CEST 2009 - pbaudis@suse.cz + +- Fix race condition in the mcheck free() hook [bnc#509398] + +------------------------------------------------------------------- +Fri Jun 5 00:46:59 CEST 2009 - pbaudis@suse.cz + +- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 + ------------------------------------------------------------------- Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz @@ -5,6 +22,7 @@ Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz maintained by me at repo.or.cz; contains backports of various bugfixes. (Still the same source is used for glibc-ports.) - Stop using separate tarball for nptl. +- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. ------------------------------------------------------------------- Fri May 15 22:13:33 CEST 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 6a5e303..d40f300 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,13 +69,13 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 1 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build # The glibc source comes from http://repo.or.cz/w/glibc/pb-stable.git # glibc-2.10-branch. -Source: glibc-%{version}-e38af591a8.tar.bz2 +Source: glibc-%{version}-9cf557216c.tar.bz2 Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -125,7 +125,6 @@ Patch30: glibc-2.6-configure.diff Patch31: glibc-2.2-sunrpc.diff Patch32: glibc-2.8-getconf.diff Patch33: getaddrinfo-ipv6-sanity.diff -Patch34: glibc-2.8-revert-nscleanup.diff Patch35: ppc-atomic.diff Patch36: glibc-2.8-clone.diff Patch37: glibc-nss-deepbind.diff @@ -137,6 +136,7 @@ Patch42: glibc-no-unwind-tables.diff Patch43: glibc-2.10-nscd-nostack.diff Patch44: glibc-cpusetsize.diff Patch45: glibc-nis-splitgroups.diff +Patch46: glibc-2.10-mcheck-free-race.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 @@ -329,7 +329,6 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch31 %patch32 %patch33 -%patch34 %patch35 %patch36 %patch37 @@ -341,6 +340,7 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch43 %patch44 %patch45 +%patch46 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -1058,11 +1058,20 @@ exit 0 %{_libdir}/libdl_p.a %changelog +* Fri Jun 12 2009 pbaudis@suse.cz +- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) + * Fix 100%% CPU usage by Java apps because of bad futex calls [bnc#509096] +* Mon Jun 08 2009 pbaudis@suse.cz +- Fix race condition in the mcheck free() hook [bnc#509398] +* Fri Jun 05 2009 pbaudis@suse.cz +- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 * Fri May 22 2009 pbaudis@suse.cz - Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch maintained by me at repo.or.cz; contains backports of various bugfixes. (Still the same source is used for glibc-ports.) - Stop using separate tarball for nptl. +- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. * Fri May 15 2009 pbaudis@suse.cz - Add support for multiple group records for a single group when using nss_compat (configurable in /etc/default/nss) [bnc#480991] From a21320db91a36e132355d0b7200ddd712ef7174a5e07c49d77b98ade7b98ee7a Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 19 Jun 2009 00:51:09 +0000 Subject: [PATCH 006/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=6 --- glibc-2.10-mcheck-free-race.diff | 40 +++++++++++++++++++++----------- glibc-2.10.1-9cf557216c.tar.bz2 | 3 --- glibc-2.10.1-d0f6ed789f.tar.bz2 | 3 +++ glibc.changes | 7 ++++++ glibc.spec | 18 ++++++++------ 5 files changed, 47 insertions(+), 24 deletions(-) delete mode 100644 glibc-2.10.1-9cf557216c.tar.bz2 create mode 100644 glibc-2.10.1-d0f6ed789f.tar.bz2 diff --git a/glibc-2.10-mcheck-free-race.diff b/glibc-2.10-mcheck-free-race.diff index 3da1397..f5087ea 100644 --- a/glibc-2.10-mcheck-free-race.diff +++ b/glibc-2.10-mcheck-free-race.diff @@ -1,6 +1,13 @@ ---- malloc/hooks.c~ 2009-06-08 17:55:07.982329000 +0200 -+++ malloc/hooks.c 2009-06-08 17:56:41.178045000 +0200 -@@ -276,15 +276,18 @@ +2009-06-15 Petr Baudis + + * malloc/hooks.c (free_check): Do not invoke mem2chunk_check() + without main_arena mutex held. + +diff --git a/malloc/hooks.c b/malloc/hooks.c +index 622a815..47d3c85 100644 +--- malloc/hooks.c ++++ malloc/hooks.c +@@ -276,25 +276,33 @@ free_check(mem, caller) Void_t* mem; const Void_t *caller; mchunkptr p; if(!mem) return; @@ -9,29 +16,34 @@ +#endif p = mem2chunk_check(mem, NULL); if(!p) { ++#ifndef ATOMIC_FASTBINS ++ (void)mutex_unlock(&main_arena.mutex); ++#endif malloc_printerr(check_action, "free(): invalid pointer", mem); -- return; -+ goto out; + return; } #if HAVE_MMAP if (chunk_is_mmapped(p)) { munmap_chunk(p); - return; -+ goto out; - } +- } ++ } else #endif ++ { #if 0 /* Erase freed memory. */ -@@ -293,8 +296,12 @@ +- memset(mem, 0, chunksize(p) - (SIZE_SZ+1)); ++ memset(mem, 0, chunksize(p) - (SIZE_SZ+1)); + #endif #ifdef ATOMIC_FASTBINS - _int_free(&main_arena, p, 0); +- _int_free(&main_arena, p, 0); ++ _int_free(&main_arena, p, 0); #else - (void)mutex_lock(&main_arena.mutex); - _int_free(&main_arena, p); +- _int_free(&main_arena, p); ++ _int_free(&main_arena, p); +#endif -+out: -+#ifdef ATOMIC_FASTBINS -+ ; -+#else ++ } ++#ifndef ATOMIC_FASTBINS (void)mutex_unlock(&main_arena.mutex); #endif } diff --git a/glibc-2.10.1-9cf557216c.tar.bz2 b/glibc-2.10.1-9cf557216c.tar.bz2 deleted file mode 100644 index 76621dc..0000000 --- a/glibc-2.10.1-9cf557216c.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1f5498c9c2ccb5438487af0541cfe1978c77fa47e2078b793be35149cc8320e7 -size 15590281 diff --git a/glibc-2.10.1-d0f6ed789f.tar.bz2 b/glibc-2.10.1-d0f6ed789f.tar.bz2 new file mode 100644 index 0000000..d0d594c --- /dev/null +++ b/glibc-2.10.1-d0f6ed789f.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f81ecd9bd7b19d230a01b53b34945f5ffd53f8a31af7b68cf056acd396652646 +size 15589254 diff --git a/glibc.changes b/glibc.changes index 8603162..cd756b5 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Jun 18 00:58:47 CEST 2009 - pbaudis@suse.cz + +- Fix a dead-lock introduced by the bnc#509398 fix +- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + ------------------------------------------------------------------- Fri Jun 12 12:19:34 CEST 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index d40f300..3f6d244 100644 --- a/glibc.spec +++ b/glibc.spec @@ -54,7 +54,7 @@ BuildRequires: libselinux-devel %define powerpc_optimize_cpu_cell 0 # optimize_power %endif -License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later +License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later Summary: Standard Shared Libraries (from the GNU C Library) Group: System/Libraries Obsoletes: ngpt <= 2.2.2 ngpt-devel <= 2.2.2 @@ -69,13 +69,13 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 3 +Release: 4 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build # The glibc source comes from http://repo.or.cz/w/glibc/pb-stable.git # glibc-2.10-branch. -Source: glibc-%{version}-9cf557216c.tar.bz2 +Source: glibc-%{version}-d0f6ed789f.tar.bz2 Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -165,7 +165,7 @@ complete and is partially out of date. %package html -License: GPL v2 or later; LGPL v2.1 or later +License: GPL v2 or later ; LGPL v2.1 or later Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML AutoReqProv: on @@ -192,7 +192,7 @@ created. %package locale -License: GPL v2 or later; LGPL v2.1 or later +License: GPL v2 or later ; LGPL v2.1 or later Summary: Locale Data for Localized Programs Group: System/Libraries Requires: glibc = %{version} @@ -244,7 +244,7 @@ necessary for profiling and debugging. %package devel -License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later +License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later Summary: Include Files and Libraries Mandatory for Development Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 @@ -267,7 +267,7 @@ library. %package obsolete -License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later +License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} @@ -1058,6 +1058,10 @@ exit 0 %{_libdir}/libdl_p.a %changelog +* Thu Jun 18 2009 pbaudis@suse.cz +- Fix a dead-lock introduced by the bnc#509398 fix +- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes * Fri Jun 12 2009 pbaudis@suse.cz - Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch (Still the same source is used for glibc-ports.) From 9c7a545e3a0b7e277da5aae41eb1bdc834c35a921967167c9c4a4af86abd2365 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 17 Jul 2009 13:43:39 +0000 Subject: [PATCH 007/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=7 --- glibc-2.10.1-4253a1e0b2.tar.bz2 | 3 + glibc-2.10.1-d0f6ed789f.tar.bz2 | 3 - glibc-2.10.99-ia64-include.diff | 12 + glibc.changes | 8 + glibc.spec | 2433 +------------------------------ 5 files changed, 27 insertions(+), 2432 deletions(-) create mode 100644 glibc-2.10.1-4253a1e0b2.tar.bz2 delete mode 100644 glibc-2.10.1-d0f6ed789f.tar.bz2 create mode 100644 glibc-2.10.99-ia64-include.diff diff --git a/glibc-2.10.1-4253a1e0b2.tar.bz2 b/glibc-2.10.1-4253a1e0b2.tar.bz2 new file mode 100644 index 0000000..fbaa781 --- /dev/null +++ b/glibc-2.10.1-4253a1e0b2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c07cb9113c217c4e6b60994ce065b656a0e39440108f3054b0e3c4c4156b4383 +size 15594411 diff --git a/glibc-2.10.1-d0f6ed789f.tar.bz2 b/glibc-2.10.1-d0f6ed789f.tar.bz2 deleted file mode 100644 index d0d594c..0000000 --- a/glibc-2.10.1-d0f6ed789f.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f81ecd9bd7b19d230a01b53b34945f5ffd53f8a31af7b68cf056acd396652646 -size 15589254 diff --git a/glibc-2.10.99-ia64-include.diff b/glibc-2.10.99-ia64-include.diff new file mode 100644 index 0000000..6ca38b9 --- /dev/null +++ b/glibc-2.10.99-ia64-include.diff @@ -0,0 +1,12 @@ +diff --git a/sysdeps/ia64/elf/start.S b/sysdeps/ia64/elf/start.S +index 1c41a65..60e42e9 100644 +--- sysdeps/ia64/elf/start.S ++++ sysdeps/ia64/elf/start.S +@@ -37,6 +37,7 @@ + #include + + #include ++#include + #include + + /* diff --git a/glibc.changes b/glibc.changes index cd756b5..bc08864 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Jul 17 01:14:16 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-4253a1e0b2 of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + * Fix broken locking within nscd [bnc#510788] +- Fix compilation with 2.6.30 kernel headers on IA64 + ------------------------------------------------------------------- Thu Jun 18 00:58:47 CEST 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 3f6d244..43ef1cc 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,13 +69,13 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 4 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build # The glibc source comes from http://repo.or.cz/w/glibc/pb-stable.git # glibc-2.10-branch. -Source: glibc-%{version}-d0f6ed789f.tar.bz2 +Source: glibc-%{version}-4253a1e0b2.tar.bz2 Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -137,6 +137,7 @@ Patch43: glibc-2.10-nscd-nostack.diff Patch44: glibc-cpusetsize.diff Patch45: glibc-nis-splitgroups.diff Patch46: glibc-2.10-mcheck-free-race.diff +Patch47: glibc-2.10.99-ia64-include.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 @@ -341,6 +342,7 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch44 %patch45 %patch46 +%patch47 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -1058,2430 +1060,3 @@ exit 0 %{_libdir}/libdl_p.a %changelog -* Thu Jun 18 2009 pbaudis@suse.cz -- Fix a dead-lock introduced by the bnc#509398 fix -- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - random minor fixes -* Fri Jun 12 2009 pbaudis@suse.cz -- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch - (Still the same source is used for glibc-ports.) - * Fix 100%% CPU usage by Java apps because of bad futex calls [bnc#509096] -* Mon Jun 08 2009 pbaudis@suse.cz -- Fix race condition in the mcheck free() hook [bnc#509398] -* Fri Jun 05 2009 pbaudis@suse.cz -- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 -* Fri May 22 2009 pbaudis@suse.cz -- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch - maintained by me at repo.or.cz; contains backports of various bugfixes. - (Still the same source is used for glibc-ports.) -- Stop using separate tarball for nptl. -- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. -* Fri May 15 2009 pbaudis@suse.cz -- Add support for multiple group records for a single group - when using nss_compat (configurable in /etc/default/nss) [bnc#480991] -* Sun May 10 2009 pbaudis@suse.cz -- Update to 2009051021, glibc-2.10.1: - * Add missing cacheinfo entry for a recent Intel processor - * Fix ABI issue with the gshadow interface -* Sun May 10 2009 pbaudis@suse.cz -- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: - * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS - servers (the case e.g. for many ADSL users), you may experience long - timeouts, once for each process (but eventually your request will be - resolved) - the solution is to run nscd (default on SUSE) and/or - put 'options single-request' in /etc/resolv.conf. - * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info - Implemented by Ulrich Drepper. - * New Linux interfaces: accept4, fallocate, fallocate64. - Implemented by Ulrich Drepper. - * Correct declarations of string function when used in C++ code. This - could lead to compile errors for invalid C++ code. - * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are - now in POSIX. - * New POSIX 2008 interface: psiginfo - Implemented by Ulrich Drepper. - * New ISO C++1x interfaces: quick_exit, at_quick_exit - Implemented by Ulrich Drepper. - * Support for selecting between multiple function definitions at runtime - using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. - * The libcrypt library can now use the hash function implementations in - NSS. Implemented by Ulrich Drepper. - * The malloc implementation can be compiled to be less memory efficient - but higher performing in multi-threaded programs. - Implemented by Ulrich Drepper. - * New locales: nan_TW@latin, ks_IN - * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. - Implemented by Ulrich Drepper. - * Extended printf hook support. It is possible to use user-defined types - and extend existing format specifiers. - Implemented by Ulrich Drepper. - * Handling for group shadow files has been added. - Implemented by Ulrich Drepper. -- Retired: - glibc-2.10-dns-fixpack.diff - glibc-2.10-dns-no-gethostbyname4.diff - glibc-2.10-locale-tuesday.diff - glibc-2.10-nscd-gc-dataofs.diff - glibc-2.10-nscd-prunerace.diff - glibc-2.10-ppc32-setcontext-fp.diff - glibc-2.10-unsetenv.diff - glibc-2.4.90-mdns-resolver.diff - glibc-2.9-fortify.diff - glibc-getgroups-fortify.diff - glibc-ldscript.diff - glibc-mtfsf.diff - glibc-2.10-nscd-meminflight.diff - getaddrinfo-ipv6-sanity.diff - glibc-2.10-nis-hosts.diff -- Several other modified -* Fri Apr 17 2009 pbaudis@suse.cz -- Fix defaulting to localhost in case of no nameserver entries - in /etc/resolv.conf [bnc#473308] -* Mon Mar 23 2009 rguenther@suse.de -- Add missing libc_hidden_builtin_def (memcmp) to - glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. -* Fri Feb 27 2009 rguenther@suse.de -- Make sure to mark fortified inline routines with - __attribute__((__artificial__)). -* Wed Feb 18 2009 adrian@suse.de -- Build i686 glibc src rpm as nosrc to get both versions on the - media [bnc#474338] -* Thu Jan 22 2009 schwab@suse.de -- Fix use of mtfsf insn. -* Wed Jan 21 2009 schwab@suse.de -- Fix ldscript mangling. -* Wed Jan 21 2009 pbaudis@suse.cz -- Re-enable the DNS fixpack, add real fix for bnc#441947 -- nscd: Fix gc he_data overflow and turn of alloca usage [bnc#387202] -- Normalize the patch queue -- Increate CPU_SETSIZE from 1024 to 4096 - for large SGI machines - and compatibility with SLE10SP2 [bnc#464667] -* Fri Jan 16 2009 pbaudis@suse.cz -- Disable the DNS fixpack from CVS, breaks nscd resolving [bnc#441947] -* Fri Jan 09 2009 pbaudis@suse.cz -- Fix unsetenv() crashing after clearenv() -- Backport various DNS-related fixes from CVS -- Disable parallel A-AAAA queries - revert to the glibc-2.9 behaviour - of sending the queries sequentially [bnc#442572] -- Fix fp register protection on power6 setcontext() [bnc#464738] -* Mon Dec 08 2008 pbaudis@suse.cz -- Fix crash when parsing NIS hosts file [bnc#448702] -* Thu Dec 04 2008 pbaudis@suse.cz -- Fix nscd gc-cacheadd and prune-invalidate races [bnc#446233] -- Remove obsolete and disabled nscd patch -- Fix /etc/bindresvport.blacklist parsing [bnc#439146] -- Fix en_GB and csb_PL locales having weeks start on Tuesdays [bnc#449186] -* Sun Nov 23 2008 pbaudis@suse.cz -- clean up patch filenames -* Fri Nov 21 2008 olh@suse.de -- fix check-build.sh to actually allow building on ppc* again -* Fri Nov 21 2008 olh@suse.de -- do not run compiled binaries with cputuned libraries [bnc#445911] - the buildhost only generates them, but must not execute them -* Mon Nov 17 2008 pbaudis@suse.cz -- Update to glibc-2.9 final -* Thu Nov 06 2008 jjolly@suse.de -- Added patch to fix s390x 64bit stack frame problem -* Fri Oct 31 2008 matz@suse.de -- Fix atomics on s390/s390x, leading to failures in pthread mutexes. -* Tue Oct 28 2008 schwab@suse.de -- Restore alignment patch. -* Tue Oct 28 2008 olh@suse.de -- symlink power5/power5+ to power4 on ppc32 -* Thu Oct 23 2008 ro@suse.de -- only do obsoletes for XXbit packages on ppc, not on x86 -* Thu Oct 23 2008 matz@suse.de -- Deactivate unwind tables for initfini.c. -* Thu Oct 23 2008 olh@suse.de -- obsolete glibc{,-devel,-locale,-profile} -XXbit packages [bnc#437293] -- update last change to handle empty rpmspec defines -* Tue Oct 21 2008 olh@suse.de -- update glibc_post_upgrade to handle power7 and ppc-cell-be -- remove libs unconditionally on powerpc to handle libs in - subdirectories for which we do not ship optimized versions [bnc#437209] -* Thu Oct 16 2008 olh@suse.de -- enable cpu-tuned libraries for power4, power6 and ppc-cell-be - on ppc32 [fate#304000,bnc#408808] -* Mon Oct 13 2008 matz@suse.de -- Update to trunk from 20081013, no longer export paccept, - obsoletes some patches (lowlevellock and res_send). - Fix overflow in nscd patch. -* Mon Oct 13 2008 dmueller@suse.de -- also strip .comment.SUSE.OPTs from the static libs -- add missing-include-build-fix.diff -* Tue Oct 07 2008 schwab@suse.de -- Fix alignment in resolver. -* Tue Sep 30 2008 olh@suse.de -- symlink tuned libs because rpmlint is unable to handle hardlinks -* Mon Sep 29 2008 olh@suse.de -- enable cpu-tuned libraries for power6 and ppc-cell-be [fate#304000,bnc#408808] -- remove -mtune G4/RS64 from CFLAGS on ppc/ppc64 -* Thu Sep 18 2008 rguenther@suse.de -- Change .comment.SuSE.OPTs to .comment.SUSE.OPTs. Also strip from - crti.o and crtn.o. -- Adjust getgroups fortify check. [bnc#426958] -* Thu Sep 18 2008 schwab@suse.de -- Fix alignment in resolver. -* Mon Sep 15 2008 adrian@suse.de -- do not run glibc_post_upgrade in XEN builds -* Sat Sep 13 2008 rguenther@suse.de -- strip .note.gnu.build-id from crt1.o. -* Sat Sep 13 2008 dmueller@suse.de -- only strip comment from crt1.o -* Fri Sep 12 2008 mls@suse.de -- block baselibs generation for i586 (use i686 instead) -* Fri Sep 12 2008 dmueller@suse.de -- strip suse opts comments from crt.o (fate #300498) -* Mon Sep 08 2008 rguenther@suse.de -- Add a patch to fix wrong asm constraints in the i386 lowlevel - futex lock implementation. -* Thu Sep 04 2008 matz@suse.de -- Update to current trunk snapshot (2008-09-04), makes s390 build. -* Wed Aug 27 2008 matz@suse.de -- Add a patch to use RTLD_DEEPBIND to load nss modules. [bnc #157078] -* Mon Aug 25 2008 matz@suse.de -- Update to current trunk snapshot (2008-08-25). -* Fri Aug 22 2008 prusnak@suse.cz -- enabled SELinux support [Fate#303662] -* Fri Aug 15 2008 aj@suse.de -- Fix nscd init script for new checks. -- package empty ld.so.cache. -* Fri Jul 25 2008 aj@suse.de -- Add directory /var/cache/ldconfig to filelist. -* Wed Jun 25 2008 pbaudis@suse.cz -- Fix strptime() %%EY era support [bnc#355887] -* Wed Jun 25 2008 rguenther@suse.de -- Add patch to fix unwinding through clone for x86_64 and i386. - [bnc#290807, bnc#403464] -* Fri May 30 2008 schwab@suse.de -- Fix ppc atomic ops. -* Fri Apr 25 2008 pbaudis@suse.cz -- Update to glibc-2.8 CVS branch as of 2008042513 (post-glibc-2.8): - * Faster sqrt and sqrtf implemention for some PPC variants. -* Thu Apr 10 2008 pbaudis@suse.cz -- Build fix after the revert -* Thu Apr 10 2008 pbaudis@suse.cz -- Temporarily revert a namespace leakage cleanup in glibc-2.8 since - it causes a lot of build failures -* Thu Apr 10 2008 pbaudis@suse.cz -- Update to CVS HEAD as of 2008041002 (almost glibc-2.8): - * New locales: bo_CN, bo_IN. - * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. - * Sorting rules for some Indian languages (Devanagari and Gujarati). - Implemented by Pravin Satpute. - * IPV6 addresses in /etc/resolv.conf can now have a scope ID - * nscd caches now all timeouts for DNS entries - Implemented by Ulrich Drepper. - * nscd is more efficient and wakes up less often. - Implemented by Ulrich Drepper. - * More checking functions: asprintf, dprintf, obstack_printf, vasprintf, - vdprintf, and obstack_vprintf. - Implemented by Jakub Jelinek. - * Faster memset for x86-64. - Implemented by Harsha Jagasia and H.J. Lu. - * Faster memcpy on x86. - Implemented by Ulrich Drepper. - * ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX). - Implemented by Ulrich Drepper. -- memset() implementation from AMD replaced by new upstream - implementation -- Enable stackguard randomization -* Thu Apr 10 2008 ro@suse.de -- added baselibs.conf file to build xxbit packages - for multilib support -* Thu Mar 13 2008 dmueller@suse.de -- don't try to use ipv6 in getaddrinfo() unconditionally (bnc#361697) -* Sat Jan 26 2008 aj@suse.de -- Add fixes from 2.8 branch for string.h and headers. The string.h - changes should fix sysvinit compilation. -- Fix some rpmlint warnings: - * Add versioned provides and obsoletes. - * Use %%check section. -* Fri Jan 18 2008 schwab@suse.de -- Fix use of fnstsw. -* Wed Nov 21 2007 pbaudis@suse.cz -- Update to CVS branch glibc_2.7 as of today -- Remove the ::1 hack again -- Fix nscd race condition between mempool_alloc() and gc() [#288910] -- Fix nscd stack overflow in gc() when the number of cache entries - gets too large [#288910] -- Fix sunrpc udp client [#257745] -- Fix initgroups() crash in nss_compat [#310544] -* Thu Sep 27 2007 matz@suse.de -- Remove broken x86_64 bcopy function. [#328486] -* Sun Sep 16 2007 aj@suse.de -- Install gai.conf on all archs. -* Thu Sep 13 2007 pbaudis@suse.cz -- Install the default gai.conf to /etc instead of docdir -- Do not return ::1 /etc/hosts records for 127.0.0.1 queries [#288879] -* Wed Sep 05 2007 pbaudis@suse.cz -- Fix pthread_mutex_unlock() internal lock handling for incorrectly - written applications -- Fix nscd assertion failure when opening persistent db failed [#288910] -* Mon Sep 03 2007 mls@suse.de -- fix typos in mdns patch [#206247], [#256690] -* Fri Aug 31 2007 aj@suse.de -- Add /usr/share/locale-bundle/ as fallback directory for usage - with bundle-lang packages (see bug #302270). -* Tue Aug 21 2007 pbaudis@suse.cz -- Reintroduce errorneously omitted AMD64 optimizations - (and fix them to compile again) -* Thu Aug 16 2007 aj@suse.de -- Fix static linking (#233835). -- Silence rpmlint for profile package. -- Add Short-Description to nscd init script. -* Mon Aug 13 2007 aj@suse.de -- Backport: - * Update kernel-features.h. - * Fix sched_getcpu error path on x86-64. - * Use upstreamed version of ldconfig cache speed ups. -* Fri Aug 03 2007 pbaudis@suse.cz -- Remove the dynamic linker support for direct bindings (-Bdirect); - according to Michael Meeks, the performance improvement is too small -- Split timezone package to a separate physical package -- Update glibc to version 2.6.1 -* Fri Jul 27 2007 aj@suse.de -- Use fdupes to reduce timezone data size. -* Fri Jul 13 2007 schwab@suse.de -- Update to head of glibc-2.6 branch. -- Fix update on ppc. -* Thu Jun 28 2007 matz@suse.de -- Add a provide for "rtld(GNU_HASH)". -* Sun Jun 17 2007 schwab@suse.de -- Fix section selection in crt objects. -* Thu Jun 07 2007 pbaudis@suse.cz -- Backport fix for crashing printf() of some invalid ldouble values -* Wed May 30 2007 pbaudis@suse.cz -- Added few fixes from 2.6 CVS before 2.6.1 gets released -* Fri May 18 2007 pbaudis@suse.cz -- Update glibc to version 2.6 -- Update tzdata to version 2007f -* Fri May 04 2007 schwab@suse.de -- Update build checks. -* Fri Apr 20 2007 dmueller@suse.de -- only keep symtab for libpthread* -* Thu Apr 19 2007 pbaudis@suse.cz -- Fix strtod() exponent limit calculations [#230909] -- Fix random nscd crashes under very heavy passwd/group queries - load [#192391] -- Add some enums from CVS to sys/personality.h [#253710] -- Fix pthread_atfork()-induced hangs in threaded programs [#256237] -- Fix llrintl() on ppc64 [#241183] -- Fix makecontext() segfault [#249780] -- Fix potential dladdr() breakage [#241464] -- Fix some races in client programs with nscd garbage collection [#252138] -* Fri Mar 30 2007 pbaudis@suse.cz -- Update localtime during timezone update [#239888] -* Sun Mar 25 2007 olh@suse.de -- temporary disable powerpc cputuned libs to reduce turnaround time -* Fri Feb 09 2007 pbaudis@suse.cz -- Update to the latest upstream timezone data [#231833] -* Fri Feb 02 2007 schwab@suse.de -- Remove -ffortify. -* Thu Feb 01 2007 schwab@suse.de -- Remove -fstack-protector. -* Mon Jan 29 2007 sbrabec@suse.cz -- Removed references to /opt/gnome. -* Thu Jan 25 2007 olh@suse.de -- link power4 to ppc970, link power6 to power6x -- Update the powerpc cpu-tuned environment to v0.05 -* Mon Jan 22 2007 schwab@suse.de -- Update ppc build check. -* Fri Nov 24 2006 pbaudis@suse.cz -- Fix for Brazilian and Wester Australia timezone DSTs [#213375,#223196] -* Thu Nov 16 2006 pbaudis@suse.cz -- Disable power6 optimization for 10.2, not all pieces are there - [#219962] -* Wed Oct 25 2006 pbaudis@suse.cz -- Change ld.so madvise() call to posix_fadvise() -- Fix mallopt(M_MXFAST,0) behaviour [#198760] -- Update the powerpc cpu-tuned environment to v0.04 [#215117] -* Sun Oct 22 2006 pbaudis@suse.cz -- Update the powerpc cpu-tuned environment to v0.03 [#212549] -- Improve glibc powerpc optimization [#212548,#212580,#214282] -* Tue Oct 17 2006 mls@suse.de -- add ldconfig-old-cache patch to speed up ldconfig -* Sat Oct 14 2006 olh@suse.de -- dont use uninitialized (and wrong) variable in glibc-2.4.90-bdirect.diff - [#212470] -* Thu Oct 12 2006 pbaudis@suse.cz -- Update to the latest 2.5 CVS -- More friendly -Bdirect behaviour in case of missing libraries -- Fix 2.4.90-nscd patch wrt. new gcc -* Mon Oct 02 2006 aj@suse.de -- Fix warnings in testsuite (patch from CVS). -* Fri Sep 29 2006 pbaudis@suse.cz -- Update to 2.5 CVS - official release (only minimal changes in CVS - since the last update) -- Fix a thinko in the -Bdirect patch -* Fri Sep 29 2006 dmueller@suse.de -- fix devel requires -* Fri Sep 29 2006 pbaudis@suse.cz -- Make the dynamic linker support direct bindings (Michael Meeks' - Solaris-like -Bdirect with minor changes by me) -- Split the kernel headers to a new package (linux-kernel-headers) -* Wed Sep 27 2006 schwab@suse.de -- Fix broken assertion [#208189]. -* Tue Sep 26 2006 pbaudis@suse.cz -- Fix mistake when removing some patches -* Mon Sep 25 2006 pbaudis@suse.cz -- Update to current CVS -* Sat Sep 23 2006 pbaudis@suse.cz -- Fix 64bit-cleanliness gcc warnings -* Thu Sep 21 2006 pbaudis@suse.cz -- Add /usr/lib{,64}/Xaw3d to /etc/ld.so.conf (by schwab@suse.de, - from original STABLE) [#205169] -- Fix chown() instead of lchown() called in fchownat() emulation - [#201751] -- Fix glob() overflowing stack when producing massive number of - matches [#190458] -- Update to current CVS -* Wed Sep 20 2006 pbaudis@suse.cz -- Fix cut'n'paste error in a last-minute change -* Wed Sep 20 2006 pbaudis@suse.cz -- Update to current CVS -- Fix powerpc-cpu tarball extension -- Move crypt-blowfish to a patch so that quilt works on the tree -* Sat Sep 02 2006 schwab@suse.de -- Use asm-powerpc for ppc and ppc64. -- Fix chroot check in glibc_post_upgrade. -* Mon Aug 28 2006 pbaudis@suse.cz -- Update to current CVS, should fix false positive heap overflow - trigger from malloc() causing gcc to hang [#201724] -* Wed Aug 23 2006 pbaudis@suse.cz -- Update the powerpc cpu-tuned environment to v0.02 [#199274] -- Update to current CVS -- Drop pthread_mutexattr_getprioceiling() out of range fix -* Thu Aug 10 2006 pbaudis@suse.cz - Ported from STABLE: -- Remove libc5 reference from /etc/ld.so.conf, shlibs5 is no longer - supported [#181947] -- Fix name of a dummy ia64 header from offsets.h to asm-offsets.h - [#191394] -* Sun Jul 30 2006 pbaudis@suse.cz -- Update to current CVS snapshot (highlight: support for .gnu.hash - fast linking support) -* Wed Jul 12 2006 pbaudis@suse.cz -- pthread_mutexattr_getprioceiling() was returning prioceiling out - of range [#182782] -* Wed Jul 12 2006 pbaudis@suse.cz -- Fix the HTML documentation missing an index [#190585] -* Sat Jun 24 2006 kukuk@suse.de -- Update to current CVS snapshot -- Update to kernel-headers 2.6.17 -- Remove HZ define (sysconf(_SC_CLK_TCK) instead) -* Tue Jun 13 2006 kukuk@suse.de -- Update to current CVS snapshot -* Tue May 02 2006 pbaudis@suse.cz -- Fix bad memset() size in NTPL code [#159184] -* Tue May 02 2006 kukuk@suse.de -- asm-powerpc/page.h: Don't move #ifdef __KERNEL__ [#171010] -- bits/mman.h: Fix value of MADV_REMOVE [#170734] -* Mon Apr 24 2006 kukuk@suse.de -- Fix china timezone mess [#163674] -- Don't include linux/stddef.h [#167964] -* Tue Apr 18 2006 schwab@suse.de -- Sanitize . -* Thu Apr 13 2006 kukuk@suse.de -- Add /usr/include/linux/taskstats.h [#141936] -* Tue Apr 11 2006 kukuk@suse.de -- nptl/init.c (sigcancel_handler): Compare with correct PID even - if the thread is in the middle of a fork call. - (sighandler_setxid): Likewise. -* Sun Apr 09 2006 ihno@suse.de -- S390 fix for startupcode. Part of it was not PIC. -* Fri Apr 07 2006 kukuk@suse.de -- Don't hardcode syscall numbers at our own -* Tue Apr 04 2006 schwab@suse.de -- Fix readlink declaration. -* Mon Apr 03 2006 kukuk@suse.de -- Update from CVS: - - nscd bug fixes - - Match return value of readlink to what POSIX says - - Fix NIS+ checks for NULL pointer -* Sun Apr 02 2006 dmueller@suse.de -- Fix clients crash if nscd is unresponsive (glibc-#2501) -- Fix fd leak in nscd daemon (glibc-#2498) -* Sat Apr 01 2006 schwab@suse.de -- Fix on ppc64. -* Fri Mar 31 2006 schwab@suse.de -- Extend last change also to ppc64. -* Sun Mar 26 2006 schwab@suse.de -- Terminate FDE before clone syscall. -* Fri Mar 24 2006 ro@suse.de -- kernel-headers: asm-powerpc: define PAGE_MASK in page.h -* Mon Mar 20 2006 kukuk@suse.de -- Update to final 2.6.16 kernel headers -- Update to current CVS: - - Don't use TLS before setting it up. - - Fix rounding of long doubles on ppc64. - - Correct usage of cfi_offset on ppc/ppc64. - - Fix memory leak in dlopen. -* Tue Mar 14 2006 schwab@suse.de -- Update fnmatch patch. -* Fri Mar 10 2006 kukuk@suse.de -- Disable unshare() syscall (request of kernel developer) -* Fri Mar 10 2006 kukuk@suse.de -- Don't include linux/interrupt.h from linux/rtc.h -- Revert last change to linux/input.h, disable struct -- Update to current CVS (nptl/ia64 fix) -* Thu Mar 09 2006 kukuk@suse.de -- Fix linux/input.h for userspace inclusion -* Wed Mar 08 2006 kukuk@suse.de -- Update kernel headers to 2.6.16-rc5 -* Mon Mar 06 2006 kukuk@suse.de -- Update to 2.4 CVS - - official release - - Fix free on ppc [#155374] - - Various sysconf() fixes -* Sat Mar 04 2006 kukuk@suse.de -- Update to CVS - - ldconfig/prelink fixes -* Fri Mar 03 2006 aj@suse.de -- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). -* Fri Mar 03 2006 kukuk@suse.de -- Update to CVS - - Fix ftw test suite failures - - Fix alignment of malloc for long double -* Thu Mar 02 2006 kukuk@suse.de -- Update to 2.3.91 CVS - - Fix 6arg syscall on s390x - - memccpy fix on IA64 -* Wed Mar 01 2006 kukuk@suse.de -- Update to CVS - - New linkat interface - - Update from tzdata2006b - - Define MADV_DONTFORK and MADV_DOFORK. - - Add robust mutex to NPTL -* Thu Feb 23 2006 kukuk@suse.de -- Reenable power optimized code again [#142839] -* Sun Feb 12 2006 kukuk@suse.de -- Disable power optimized code -* Thu Feb 09 2006 kukuk@suse.de -- Update to CVS - - Add unshare prototype - - Add memory barrier on i386/NPTL -* Wed Feb 08 2006 kukuk@suse.de -- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] -* Mon Feb 06 2006 kukuk@suse.de -- Update to current CVS -- Fix alternate locale search path patch [#147685] -* Thu Feb 02 2006 kukuk@suse.de -- Update to current CVS -* Mon Jan 30 2006 schwab@suse.de -- Fix the fix. -* Sat Jan 28 2006 kukuk@suse.de -- Fix seg.fault in __atfct_seterrno if called from futimesat() -- Apply patches for CPU-Tuned Environment on Power [#142839] -* Fri Jan 27 2006 kukuk@suse.de -- Cleanup ld.so.conf -* Thu Jan 26 2006 kukuk@suse.de -- Add alternate directory for translations [#144073] -* Thu Jan 26 2006 mls@suse.de -- converted neededforbuild to BuildRequires -* Mon Jan 23 2006 kukuk@suse.de -- Update to CVS -- Fix build_locales -* Sat Jan 21 2006 kukuk@suse.de -- Update to CVS -- Fix inclusion of sys/poll.h with _GNU_SOURCE defined -* Fri Jan 20 2006 kukuk@suse.de -- Update to CVS -* Sun Jan 15 2006 kukuk@suse.de -- Update to CVS (fix long double configure check) -* Sun Jan 15 2006 schwab@suse.de -- Readd , , . -* Sun Jan 15 2006 schwab@suse.de -- Readd . -* Sat Jan 14 2006 kukuk@suse.de -- Update to current CVS (long double support) -* Fri Jan 13 2006 aj@suse.de -- Fix x86-64 w_exp to not use extra plt. -* Thu Jan 12 2006 kukuk@suse.de -- Fix asm-s390/setup.h for userspace inclusion -- nsswitch.conf: Add nis to netgroup and automount entry -- Fix sys/procfs.h for ppc64 -* Tue Jan 10 2006 kukuk@suse.de -- Update to current CVS (fix for pthread.h with -std=c99) -- Define PAGE_SIZE on POWER -- Don't include linux/sched.h in asm-power/elf.h -* Sun Jan 08 2006 kukuk@suse.de -- Fix linux/acct.h for userland inclusion -* Sun Jan 08 2006 kukuk@suse.de -- Update to current CVS -- Remove CHILD_MAX from kernel-headers -- Copy subdirectories of asm-power, too. -- Remove da_DK@euro (does not exist) -* Sat Jan 07 2006 kukuk@suse.de -- Fix ext2 kernel headers -- Update to current CVS -* Fri Jan 06 2006 kukuk@suse.de -- Update to kernel headers 2.6.15 -* Fri Jan 06 2006 kukuk@suse.de -- Update crypt_blowfish to version 1.0 -- Update to current CVS -- Adjust nscd patches -* Tue Jan 03 2006 aj@suse.de -- Update to current CVS to fix pthread.h on 64-bit systems for C++. -* Tue Jan 03 2006 aj@suse.de -- Enable string patch again. -- Update to current CVS. -* Wed Dec 21 2005 kukuk@suse.de -- Update to current CVS -- Fix ldconfig -* Sat Dec 17 2005 kukuk@suse.de -- Remove /usr/lib/zoneinfo -- Add /etc/localtime to filelist -- Update to current CVS -- Fix glibc #1978: statvfs does not know about current filesystems -- Fix wrong error return code of time() on x86 -- Remove nscd_nischeck -- Remove audit from nfb -- Remove LinuxThreads -* Wed Dec 14 2005 kukuk@suse.de -- Update to current CVS -- Remove nscd_nischeck -- Remove audit from nfb -* Mon Dec 05 2005 kukuk@suse.de -- Update to current CVS -- Disable SELinux -* Thu Nov 24 2005 kukuk@suse.de -- Remove obsolete patches: - - glibc-2.3.asprintf-error_handling.diff - - glibc-2.3.90-missing-string_h.diff -* Wed Nov 23 2005 kukuk@suse.de -- Update to current CVS -- Don't install in parallel -* Fri Nov 18 2005 kukuk@suse.de -- Update to current CVS to fix compiling with new binutils -* Wed Nov 16 2005 kukuk@suse.de -- Update to current CVS -* Sat Nov 05 2005 kukuk@suse.de -- Update to current CVS -- Disable linuxthreads on POWER and Itanium -- Fix kernel-headers for userland inclusion -* Wed Nov 02 2005 kukuk@suse.de -- Update to current CVS -- Update to kernel-headers 2.6.14 -* Tue Oct 18 2005 kukuk@suse.de -- Update to current CVS -* Sat Oct 01 2005 schwab@suse.de -- Update libm ULPs. -- Fix limit in getcwd. -* Thu Sep 15 2005 kukuk@suse.de -- Update to current CVS -- Update to final 2.6.13 kernel headers -- Adjust bindresvport.blacklist patch to check already ports >= 512 -* Fri Aug 26 2005 kukuk@suse.de -- Update to current CVS -- init.d/nscd: Remove -S support (was removed from nscd) -* Fri Aug 19 2005 schwab@suse.de -- Fix comment. -* Fri Aug 19 2005 matz@suse.de -- Change .note.SuSE format [#105825]. -* Fri Aug 19 2005 kukuk@suse.de -- Update to current CVS -- Move all obsolete libraries into own subpackage and document - them as obsolete -* Fri Aug 05 2005 schwab@suse.de -- -mno-tls-direct-seg-refs is x86-only -* Tue Aug 02 2005 kukuk@suse.de -- Update to 2.3.x CVS branch -- Compile with -mno-tls-direct-seg-refs -* Fri Jul 29 2005 kukuk@suse.de -- Update to current CVS head -* Wed Jul 27 2005 schwab@suse.de -- Update libm ULPs for ia64. -- Add linuxthreads stack guard support for ia64. -* Sat Jul 23 2005 kukuk@suse.de -- Update to current CVS head (adds bits/wchar2.h) -- Move LinuxThreads version to obsolete/linuxthreads -* Thu Jul 21 2005 kukuk@suse.de -- Update to current CVS head -* Fri Jul 15 2005 schwab@suse.de -- Fix file list. -* Fri Jul 15 2005 aj@suse.de -- Fix amd64 string routines and math routines. -* Fri Jul 15 2005 kukuk@suse.de -- Use old LinuxThreads only for runtime and remove static version - and headers -- Update to current CVS head -- Remove own texi2html -* Mon Jul 11 2005 kukuk@suse.de -- Install generic stdio-lock.h header file -* Sat Jul 09 2005 kukuk@suse.de -- Temporary disable AMD64 string optimization -* Wed Jul 06 2005 kukuk@suse.de -- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] -* Mon Jul 04 2005 kukuk@suse.de -- nss_compat: Preserve original return value [Bug #95033] -- Cleanup old Obsoletes/Requires -* Mon Jun 27 2005 kukuk@suse.de -- Update to current gilbc CVS snapshot -* Thu Jun 23 2005 kukuk@suse.de -- Update to current glibc CVS snapshot -- Adjust nscd patch -- Enable SELinux/audit support for nscd -- Update .note.SuSE version -* Mon Jun 20 2005 kukuk@suse.de -- Update to final 2.6.12 kernel headers -- Update to current glibc CVS snapshot -* Thu Jun 16 2005 kukuk@suse.de -- Update linux/audit.h header -- Update to current CVS snapshot -* Mon Jun 13 2005 kukuk@suse.de -- Don't terminate strings twice in nis/netgroup code. -- netinet/if_tr.h: don't include kernel headers. -* Wed Jun 08 2005 kukuk@suse.de -- Update to kernel-headers 2.6.12-rc6 -- Fix build on s390 and s390x -* Wed Jun 08 2005 matz@suse.de -- Don't strip .symtab from libpthread.so.0 (and other libs). - Fixes debugging of threaded programs (#81253). -* Mon Jun 06 2005 kukuk@suse.de -- Update to current CVS head -- Update to kernel-headers 2.6.12-rc5 -* Thu May 26 2005 schwab@suse.de -- No longer build loadlocale.c with -fno-unit-at-a-time. -* Tue May 24 2005 kukuk@suse.de -- Update to current CVS head, obsoletes: - - glibc-2.3.90-libm.diff - - glibc-2.3.90-i386-sysdep.diff - - warn.diff - - dl-osinfo.diff - Adjusted: - - glibc-2.3.90-bindresvport.blacklist.diff -* Sun May 22 2005 schwab@suse.de -- Fix missing include. -* Tue May 17 2005 schwab@suse.de -- Fix warning. -* Fri Apr 29 2005 kukuk@suse.de -- Update to latest CVS snapshost -* Sat Apr 23 2005 kukuk@suse.de -- Fix all the archs using wrong FLAGS -* Sat Apr 23 2005 kukuk@suse.de -- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS -* Fri Apr 22 2005 kukuk@suse.de -- Update to current CVS -* Fri Apr 22 2005 kukuk@suse.de -- Check if nice value does not conflict with test suite -* Tue Apr 19 2005 mls@suse.de -- resolv: trigger re-read of /etc/resolv.conf for all threads if - a change is detected -- nscd: support a negative timeout of zero, used by hosts cache -* Mon Apr 18 2005 meissner@suse.de -- Enable fortify possibility even for GCC 4.0, we apply - the necessary patch to the SUSE GCC 4.0. -* Sat Apr 16 2005 aj@suse.de -- Apply amd64 string diff again. -* Tue Apr 12 2005 kukuk@suse.de -- Update kernel-headers to 2.6.10 -- Update to current CVS snapshot -* Wed Apr 06 2005 schwab@suse.de -- Cleanup neededforbuild. -* Tue Apr 05 2005 aj@suse.de -- Add gettext-devel to neededforbuild. -* Tue Apr 05 2005 aj@suse.de -- Do not build on xen machines. -- Adjust libm ULPs for PowerPC. -* Fri Apr 01 2005 kukuk@suse.de -- Update to current CVS snapshot -* Tue Mar 29 2005 kukuk@suse.de -- Update to current CVS snapshot -- Fix compiler warnings on ix86 -* Mon Mar 28 2005 kukuk@suse.de -- Update to current CVS snapshot -- Disable Noversion Patch on i386 temporary -* Fri Mar 18 2005 ro@suse.de -- check-build.sh: require 2.6.11 on x86,x86_64 for build -* Thu Mar 17 2005 mls@suse.de -- nscd: enable hosts cache -- nscd: also watch /etc/resolv.conf -- nscd: check files every 3 seconds -- nscd: deal correctly with missing files -* Tue Mar 15 2005 kukuk@suse.de -- Update to current CVS snapshot. -* Sat Feb 12 2005 schwab@suse.de -- Remove const from __pthread_internal_tsd_address. -* Fri Feb 11 2005 schwab@suse.de -- Update to current CVS. -- Link glibc_post_upgrade against new libc. -- Fix build error with gcc4. -* Wed Feb 09 2005 kukuk@suse.de -- Update to current CVS -- Fix bindresvport blacklist handling. -- Increase buffer in tst-cancel17 to match new kernel buffer size - [#50277] -- Enable LinuxThreads again -- Remove ia64-audit patch (is upstream) -* Mon Feb 07 2005 aj@suse.de -- Add patch to allow compilation with gcc4. -* Mon Jan 31 2005 schwab@suse.de -- Readd support for LD_AUDIT on ia64. -* Mon Jan 31 2005 kukuk@suse.de -- Add memory clobber to string inline assemblies on s390 [#50284]. -* Mon Jan 31 2005 kukuk@suse.de -- Fix filelist on i686 if we build NPTL only version -* Mon Jan 31 2005 aj@suse.de -- Generate new ULPs file for i386 needed by GCC 4. -* Sun Jan 30 2005 kukuk@suse.de -- Include own copy of texi2html -- Add glibc_pst_upgrade program (based on version from FC3) -- Update to current CVS -* Fri Jan 28 2005 kukuk@suse.de -- Re-add patch for timezone/zic.c (got lost with last merge) -* Wed Jan 26 2005 kukuk@suse.de -- Update timezone data to 2005c release (fixes zdump crash on - 64bit architectures) -* Sat Jan 22 2005 schwab@suse.de -- Add basic (incomplete) support for LD_AUDIT on ia64. -* Fri Jan 21 2005 kukuk@suse.de -- Enable patch for [Bug #49833] -- Allow to build NPTL only glibc -- Update to CVS from Jan 16, 2005, containing: -- Fix execlp argument in SunRPC code [glibc #681] -- Fix errno return values for futimes [glibc #633] -- Update FPU function on PPC/PPC64 [Bug #49764] -* Mon Jan 17 2005 aj@suse.de -- Enable amd64 string patch again after fixing failing hunks. -- Handle missing cpuid better for amd64 string functions. [#49803] -* Sat Jan 15 2005 aj@suse.de -- Fix amd64 string patch to use correct datatype. -* Fri Jan 14 2005 kukuk@suse.de -- Fix memory corruption in getgrouplist function [Bug #49833] -* Tue Jan 11 2005 kukuk@suse.de -- Enable all LinuxThreads tests again -- Finalize getconf -a patch (make it compatible with Solaris) -- Rewrite getconf manual page and mention new option -- Merge GB18030 patches into one. -* Thu Dec 30 2004 kukuk@suse.de -- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with - kernel-headers.SuSE.diff -- Revert nscd paths on old SuSE Linux distributions -* Wed Dec 29 2004 kukuk@suse.de -- Update to glibc 2.3.90 CVS branch -- Remove alarm-round.patch (merged upstream) -* Thu Dec 09 2004 kukuk@suse.de -- Update to current CVS -- Move nscd persistent database files back to /var/run/nscd -* Mon Dec 06 2004 kukuk@suse.de -- Update to current CVS -- Fix more kernel headers for userland inclusion -* Fri Nov 26 2004 ro@suse.de -- kernel-headers.diff: define __force in compiler.h -* Thu Nov 25 2004 schwab@suse.de -- Add Intel libm update. -* Thu Nov 25 2004 kukuk@suse.de -- Update to current glibc CVS -- Update kernel headers to 2.6.9 -* Thu Nov 18 2004 kukuk@suse.de -- Update to current glibc CVS -* Mon Nov 15 2004 kukuk@suse.de -- Update to current glibc CVS -* Mon Nov 08 2004 kukuk@suse.de -- Blacklist port 921 (lwresd) for usage by bindresvport() -- Update to current glibc CVS -- Add /var/run/nscd/* files as ghost entries -* Mon Oct 18 2004 aj@suse.de -- Don't use special fdim functions for x86-64 since those give - wrong results for fdim (inf,inf). -- Fix ppc64 rebuild issue with ppc32 system [#47325]. -* Wed Oct 13 2004 kukuk@suse.de -- Fix symlink librt.so -> tls/librt.so.1 -- Backout last glob changes -- Disable nptl as default for linking -* Tue Oct 12 2004 kukuk@suse.de -- Install kernel-headers after merging linuxthreads/NPTL headers -* Tue Oct 12 2004 kukuk@suse.de -- Update to current CVS snapshot -* Mon Oct 11 2004 kukuk@suse.de -- Make NPTL default for linking -* Fri Oct 01 2004 kukuk@suse.de -- Update to current CVS snapshot -- Add workaround for linuxthreads/without-__threads bug -- Remove KDE/ldconfig workaround -- Set SuSE ABI note to 9.3 -* Sun Sep 26 2004 kukuk@suse.de -- Add lib/nptl/librt.so symlink to tls/librt.so.1 -- Update to current CVS -* Sat Sep 25 2004 kukuk@suse.de -- Implement mq support for rtkaio and enable it again -* Fri Sep 24 2004 kukuk@suse.de -- Add zh_SG.UTF-8 [Bug #46024] -* Thu Sep 23 2004 kukuk@suse.de -- Sync sys/mount.h and linux/fs.h -* Wed Sep 22 2004 kukuk@suse.de -- Make mdns support configurable in /etc/host.conf -* Mon Sep 20 2004 kukuk@suse.de -- Fix invalidating of nscd caches and getaddrinfo() -* Fri Sep 17 2004 kukuk@suse.de -- Update to current CVS (nscd and glob.h fixes) -* Thu Sep 16 2004 kukuk@suse.de -- Fix getaddrinfo/nscd support -* Wed Sep 15 2004 kukuk@suse.de -- Update to current CVS, remove merged patches -* Sun Sep 12 2004 kukuk@suse.de -- Update to CVS: Fix nscd crash if one service is disabled -- glob.h: Add workaround for invalid prototypes -- nss_compat: Check that buffer is larger than 0 bytes -* Sat Sep 11 2004 kukuk@suse.de -- Update to CVS: Fix cdefs.h for C++ usage -* Fri Sep 10 2004 kukuk@suse.de -- Add lwres to hosts search order in nsswitch.conf -- Update to current CVS -- Use new nscd paths for socket/pid file -- Enable NPTL on i586 -- Add --print-all option to getconf -* Thu Sep 02 2004 kukuk@suse.de -- Fix NPTL header files on x86-64 for 32bit compilation -- Apply various fixes from CVS -- Remove pre-Install for -devel package (no longer necessary) -* Wed Aug 25 2004 kukuk@suse.de -- Don't compile in eval.c -* Mon Aug 23 2004 kukuk@suse.de -- Update to current CVS: - - Use CVS version for last fix. - - Add malloc sanity checks for double free. -* Sat Aug 21 2004 schwab@suse.de -- Fix cancellable syscalls in librt w/ linuxthreads. -* Fri Aug 20 2004 kukuk@suse.de -- Update to current CVS [#43993] -* Thu Aug 19 2004 schwab@suse.de -- Better fix for asm-ia64/gcc_intrin.h. -* Wed Aug 18 2004 kukuk@suse.de -- Update to current CVS -- Workaround linux/ixjuser.h problem not including compiler.h -- Workaround linux/capi.h problem not including compiler.h -* Tue Aug 17 2004 schwab@suse.de -- Fix asm-ia64/gcc_intrin.h. -* Tue Aug 17 2004 kukuk@suse.de -- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] -* Mon Aug 16 2004 kukuk@suse.de -- Update to current CVS version and update to - kernel-headers 2.6.8.1 to fix NPTL deadlock problems -- Disable linuxthreads/tst-clock1, does not work on i586 and lower -* Fri Aug 13 2004 kukuk@suse.de -- Update to current CVS version -- Cleanup/adjust all patches -* Thu Jun 17 2004 kukuk@suse.de -- Fix sched_setaffinity return/errno code in error case [#42124] -* Wed Jun 16 2004 meissner@suse.de -- Updated altivec set/get/swapcontext patch to fix - more problems on altivec capable machines [#42039]. -- glibc is also able to build on -pmac64 kernels. -* Mon Jun 14 2004 kukuk@suse.de -- Add fixes from CVS: - - sysconf return value fixes - - nscd host caching deadlock - - backtrace for s390/s390x/ia64 static linked binaries -* Mon Jun 14 2004 kukuk@suse.de -- Increase listen backlog in RPC code [#41955] -* Wed Jun 09 2004 meissner@suse.de -- Fixed typos in powerpc* *context functions to not destroy the r19 - register and save the v19 register correctly. [#41790] -* Sat Jun 05 2004 aj@suse.de -- Fix makecontext with more than 6 arguments on x86-64 [#40546]. -* Mon May 24 2004 kukuk@suse.de -- Update to kernel-headers 2.6.6 -- Update to current glibc CVS -- Disable rtkaio temporary -* Sun May 23 2004 kukuk@suse.de -- Fix pthread_cond_wait on not ix86 and x86-64 architectures -* Thu May 20 2004 kukuk@suse.de -- Add PPC64 kernel header file fixes [#40831,#40870] -* Wed May 19 2004 kukuk@suse.de -- Add additional NPTL fixes from CVS -* Tue May 18 2004 schwab@suse.de -- Fix mapping of DSOs with holes. -* Fri May 14 2004 schwab@suse.de -- Fix rounding in alarm [#40552]. -* Wed May 12 2004 schwab@suse.de -- Fix uninitialized array in regexp compiler [#40009]. -* Tue May 11 2004 kukuk@suse.de -- Apply lot of fixes from current CVS -- Fix alignment of stack for makecontext on x86-64 [Bug #39413] -- Make XTABS identical to TABDLY on PPC -* Wed May 05 2004 kukuk@suse.de -- Add some header fixes to match POSIX -* Tue May 04 2004 meissner@suse.de -- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) -* Mon May 03 2004 kukuk@suse.de -- Port --mlock option for ld.so from UL1 [Bug #39569] -* Tue Apr 20 2004 kukuk@suse.de -- Add execstack fix for s390 -* Mon Apr 19 2004 kukuk@suse.de -- Update to current CVS version (fix problems with new binutils - and gcc) -* Mon Apr 19 2004 kukuk@suse.de -- Add pthread_getattr_np and syslog fixes from CVS -- Update gb18030 and big5hkscs gconv modules [Bug #39080] -* Sat Apr 17 2004 schwab@suse.de -- Pacify autobuild. -* Thu Apr 15 2004 kukuk@suse.de -- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf -- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] -* Thu Apr 15 2004 schwab@suse.de -- Remove /usr/i386-linux from ld.so.conf, -* Wed Apr 14 2004 kukuk@suse.de -- Fix linux/compiler.h for glibc inclusion -- Really fix ffsl on s390x -* Sat Apr 10 2004 schwab@suse.de -- Fix syntax error in memcmp. -* Fri Apr 09 2004 kukuk@suse.de -- Update from CVS: linuxthread debug fixes -- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) -- Fix ffsl weak alias on s390x -- Update to 2.6.5 kernel headers -* Thu Apr 08 2004 meissner@suse.de -- forward umount to umount2 on ppc64 because umount syscall - does not exist -* Mon Apr 05 2004 kukuk@suse.de -- Sync with current CVS (which is nearly identical with most of - our latest patches) -* Fri Apr 02 2004 kukuk@suse.de -- Make fstatvfs64 working on 32bit architectures -- Add fwrite LFS fix from aj -- Add powerpc fixes from CVS -- Fix wrong errno code for shm_unlink [Bug #38013] -* Wed Mar 31 2004 kukuk@suse.de -- Add three fixes from CVS: - - Call __nptl_deallocate_tsd for main thread, too - - setgroups: optimizations for huge number of groups - - initgroups: Limit the initial allocation to 64 entries -* Tue Mar 30 2004 kukuk@suse.de -- Add IUTF8 to bits/termios.h [Bug #34725] -- *affinitiy.c: Prepend GLIBC_ to version names -* Sat Mar 27 2004 kukuk@suse.de -- Fix wrong return value of getXXbyYY_r in case key was not - found [Bug #37181] -- Fix typo in dl-open -- Don't set errno in NSS NIS module if group was not found -* Fri Mar 26 2004 aj@suse.de -- Add pow10/pow10f aliases for AMD64. -* Thu Mar 25 2004 kukuk@suse.de -- Update to latest CVS snapshot -* Sat Mar 20 2004 aj@suse.de -- Fix further problems with sched_[sg]etaffinity calls. -* Fri Mar 19 2004 aj@suse.de -- Fix sched_setaffinity compile problem. -* Fri Mar 19 2004 kukuk@suse.de -- Remove conflict with special aaa_base version (rpm will handle - this with file conflict) -* Fri Mar 19 2004 kukuk@suse.de -- Add SuSE abi note -- Add madvise patch -- Update to current CVS -* Wed Mar 17 2004 kukuk@suse.de -- Use official NPTL version fix -- Add LD_DEBUG=statistic for x86-64 -- Fix two JB_SIZE redefinitions on PPC -- Add two fixes for execstack -* Mon Mar 15 2004 kukuk@suse.de -- Require kernel 2.6.4 for glibc/NPTL -- Remove siginfo_t/si_band patch (needs to be fixed in kernel) -- Update linuxthreads_db and nptl_db -- Add libidn fixes from CVS -* Sat Mar 13 2004 kukuk@suse.de -- Adjust filelist (remove libcidn.a and libcidn_p.a) -* Sat Mar 13 2004 kukuk@suse.de -- Update to current CVS (merge of patches) -- Fix siginfo_t/si_band [Bug #34330] -* Thu Mar 11 2004 mls@suse.de -- Add mdns support to resolver library -* Thu Mar 11 2004 kukuk@suse.de -- Update kernel headers to 2.6.4 -- Update to current glibc CVS -* Wed Mar 10 2004 bg@suse.de -- Update hppa patches. -* Mon Mar 08 2004 kukuk@suse.de -- Fix vDSO on IA64 -* Mon Mar 08 2004 kukuk@suse.de -- Update from glibc CVS: - - Add libidn - - Lot of dynamic loader changes -* Thu Mar 04 2004 kukuk@suse.de -- Update from glibc CVS: - - Fix posix_fadvise vs. posix_fadvise64 -* Tue Mar 02 2004 kukuk@suse.de -- Fix PPC kernel header files -- Update from glibc CVS - - NPTL fixes - - nscd fixes -* Tue Mar 02 2004 schwab@suse.de -- Fix ppc32 to always use stat64 syscall. -* Sat Feb 28 2004 kukuk@suse.de -- Update from glibc CVS: - - Fix compiler warnings - - NPTL: Don't use CLONE_STOPPED - - Revert vDSO changes -* Fri Feb 27 2004 kukuk@suse.de -- Update from glibc CVS: - - Real NGROUP_MAX fix - - Lot of NPTL fixes - - clock_settime fix -- Add no_NO back (required by OpenI18N spec and [Bug #34745]) -* Thu Feb 26 2004 kukuk@suse.de -- Workaround broken NGROUP_MAX function -* Thu Feb 26 2004 kukuk@suse.de -- Add insserv PreRequires for nscd -- Update from CVS: NPTL and getaddrinfo memory leak fixes, - Get NGROUP_MAX from /proc filesystem -* Sat Feb 21 2004 kukuk@suse.de -- Update from CVS: IA64 relo fix, lot of PPC fixes -- Fix linux/mod_devicetable.h for userland inclusion -- Enable NPTL on Alpha -* Fri Feb 20 2004 schwab@suse.de -- Fix pthread_barrier_wait. -* Thu Feb 19 2004 kukuk@suse.de -- Update from CVS: More NPTL fixes -- nscd.init: Cleanups -* Wed Feb 18 2004 kukuk@suse.de -- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and - asm-ppc/bitops.h for userland inclusion. -* Wed Feb 18 2004 bg@suse.de -- Update hppa patches for current glibc -- Add workaround for ICE in hppa -* Tue Feb 17 2004 kukuk@suse.de -- Update from CVS: - - PPC nptl compatiblity fix - - NSCD patches merged - - ld.so.preload: Igreno missing files - - getaddrinfo: Fix problem with IPv6 addresses -* Tue Feb 17 2004 aj@suse.de -- Fix string optimizations init code on AMD64. -* Sat Feb 14 2004 kukuk@suse.de -- Update from CVS (for NPTL fixes and new PPC longjmp) -- Fix nscd deadlock with kernel 2.6 [Bug #34507] -* Fri Feb 13 2004 aj@suse.de -- Add more string/memory optimizations for AMD64. -* Thu Feb 12 2004 kukuk@suse.de -- Fix regex bug with invalid UTF-8 strings -* Thu Feb 12 2004 aj@suse.de -- Add more string optimizations for AMD64. -* Wed Feb 11 2004 kukuk@suse.de -- Update to current CVS snapshot -- Fix _IOC_TYPECHECK on s390/s390x/parisc -- Compile rtkaio only with NPTL -- Remove glibcbug (was dropped since glibc uses bugzilla now) -- Disable parallel build on s390x -* Tue Feb 10 2004 schwab@suse.de -- Work around invalid use of kernel headers in some packages. -* Fri Feb 06 2004 kukuk@suse.de -- Add kernel stat fix for PPC -- Add fix for off-by-one error in regex code -* Thu Feb 05 2004 kukuk@suse.de -- Update kernel header files to 2.6.2 -* Tue Feb 03 2004 bg@suse.de -- Update hppa patch -* Tue Feb 03 2004 kukuk@suse.de -- Fix ypclnt speedup patch -- Update to current CVS snapshot -* Mon Jan 26 2004 kukuk@suse.de -- Update to current CVS snapshot -* Wed Jan 21 2004 aj@suse.de -- Do not run in parallel on s390. -* Mon Jan 19 2004 ro@suse.de -- really fix linux/percpu.h to compile in userland -* Fri Jan 16 2004 kukuk@suse.de -- Update version.h to 2.6.1 -- Fix linux/percpu.h to compile in userland -- Update to current CVS snapshot -- Revert nscd path changes -* Wed Jan 14 2004 kukuk@suse.de -- Update to Kernel Headers 2.6.1 -- Update to current CVS snapshot -- Don't ignore make check on IA64 any longer -* Sat Jan 10 2004 schwab@suse.de -- Locale no_NO has been renamed to nb_NO. -* Fri Jan 09 2004 kukuk@suse.de -- Temporary ignore make check on IA64 and PPC - (known kernel/compiler bugs) -* Fri Jan 09 2004 stepan@suse.de -- fix v4l2 headers -* Wed Jan 07 2004 kukuk@suse.de -- Update to glibc CVS from 20040107 -- Remove manual pages which are now part of man-pages -* Thu Dec 18 2003 kukuk@suse.de -- Update to glibc CVS from 20031218 -- Update ot final 2.6.0 kernel headers -- Fix syntax error in spec file -- Update HPPA patch -* Mon Dec 15 2003 kukuk@suse.de -- Update to glibc CVS from 20031215 -* Fri Dec 12 2003 kukuk@suse.de -- Update to glibc CVS from 20031212 -- disable rtkaio (does not work with kernel 2.6 yet) -* Fri Dec 05 2003 kukuk@suse.de -- Update to glibc 2.3.3 CVS -- Make an extra sub package for nscd -* Thu Nov 27 2003 kukuk@suse.de -- Update to glibc CVS from 20031127 -- Add nsswitch.conf (moved from aaa_base) -- Add ld.so.conf (moved from aaa_base) [Bug #33277] -- Fix ceil on AMD64 -* Fri Nov 21 2003 kukuk@suse.de -- Update to glibc CVS from 20031121 -- Obsolete epoll (glibc-devel contains now this header files) -* Wed Nov 19 2003 kukuk@suse.de -- Add patch so that ld.so supports linuxthreads and nptl -- PPC64 requires kernel 2.4.21 -- Update to glibc CVS from 20031119 -* Fri Nov 14 2003 bg@suse.de -- Add hppa patches for current glibc. -* Fri Nov 14 2003 kukuk@suse.de -- Update to glibc CVS from 20031114 -- Remove PPC64 symbol version patch -* Thu Nov 13 2003 schwab@suse.de -- Fix last change covering libNoVersion. -* Mon Nov 10 2003 schwab@suse.de -- Specfile cleanup. -* Thu Nov 06 2003 kukuk@suse.de -- Update to glibc CVS from 20031106 -* Wed Nov 05 2003 uli@suse.de -- added a number of ARM fixes (glibc-2.3.2-armformat.patch, - glibc-armisa.patch, glibc-sjlj.patch) -* Mon Oct 27 2003 kukuk@suse.de -- Update to glibc CVS from 20031027 -- kernel headers: update to 2.6.0-test9 -- nptl: Use -fno-unit-at-a-time on AMD64, too -* Thu Oct 23 2003 kukuk@suse.de -- Update to current CVS version -* Wed Oct 22 2003 kukuk@suse.de -- nptl: Fix prototype in configure script -- nptl: Use -fno-unit-at-a-time -- locale: Add nb_NO -* Fri Oct 17 2003 kukuk@suse.de -- Increase timeout for make check on overloaded architectures -* Thu Oct 16 2003 kukuk@suse.de -- Fix building as normal user -* Wed Oct 15 2003 kukuk@suse.de -- Fix putpwent/putgrent -- Make build as normal user -* Tue Oct 14 2003 kukuk@suse.de -- Update to glibc CVS from 20031014 -* Tue Oct 14 2003 aj@suse.de -- Fix w_acosf for AMD64. -* Tue Oct 14 2003 kukuk@suse.de -- Fix asm-sparc/kbio.h to compile kbdrate/X11 -* Mon Oct 13 2003 kukuk@suse.de -- Update to kernel header files from 2.6.0-test7 -* Fri Oct 10 2003 schwab@suse.de -- Fix misnamed syscalls. -* Tue Oct 07 2003 kukuk@suse.de -- Update to glibc CVS from 20031007 -* Fri Oct 03 2003 kukuk@suse.de -- Update to glibc CVS from 20031003 -- Fix kernel ioctl header files for PPC/PPC64 -- Removed dl-reloc.c fix, merged upstream -* Wed Oct 01 2003 kukuk@suse.de -- Update to glibc cvs from 20031001 -- Remove sysmacros.h fix, merged upstream -- Add dl-reloc.c fix for compiler warnings -* Mon Sep 29 2003 kukuk@suse.de -- Update kernel-headers to 2.6.0-test6 -- Fix sysmacros.h to compile with -ansi -* Sat Sep 27 2003 kukuk@suse.de -- Update to glibc CVS from 20030927 -- Remove SO_BSDCOMPAT (obsoleted by kernel) -- Make _IOC_TYPECHECK useable for userland programs -* Fri Sep 26 2003 kukuk@suse.de -- Remove obsolete patches -- Update to crypt_blowfish 0.4.5 -* Fri Sep 26 2003 kukuk@suse.de -- Update to glibc CVS from 20030926 -- Update to nptl 0.60 -* Sat Sep 20 2003 kukuk@suse.de -- Update to glibc CVS from 20030920 -- Update to nptl 0.59 -* Wed Sep 17 2003 kukuk@suse.de -- Disable TLS for i586 glibc [Bug #31034] -* Tue Sep 16 2003 kukuk@suse.de -- Remove db1.85 -* Mon Sep 15 2003 kukuk@suse.de -- Update to glibc CVS from 20030915 -* Mon Sep 15 2003 kukuk@suse.de -- Update to kernel 2.6.0-test5 header files -* Sat Sep 13 2003 kukuk@suse.de -- Add librtkaio, a librt using kernel aio -* Thu Sep 11 2003 kukuk@suse.de -- Update to current CVS -- Remove patches which are merged in CVS -- Update to nptl-0.58 -- Remove _POSIX_VERSION hack -- version.h: Fix comment how to compile kernel modules -* Wed Sep 10 2003 aj@suse.de -- Install en_US.ISO-8859-15 under this name [#30373]. -* Tue Sep 09 2003 aj@suse.de -- Fix last patch. -* Mon Sep 08 2003 aj@suse.de -- Fix setting up of user signal handler in linuxthreads on x86_64. -* Fri Sep 05 2003 kukuk@suse.de -- Add dl-tls.c to fix out of memory with static TLS errors -* Wed Sep 03 2003 kukuk@suse.de -- Update glibc-linuxthreads -- Set _POSIX_VERSION back to 199209 -* Mon Sep 01 2003 kukuk@suse.de -- Fix typo in nss_compat patch -* Mon Sep 01 2003 kukuk@suse.de -- Add opendir fix for usage with NPTL -- Fix getspnam/getspent in nss_compat [Bug #29689] -- Set _POSIX2_VERSION back to 199209 -* Wed Aug 27 2003 kukuk@suse.de -- Update to current CVS version -* Mon Aug 25 2003 kukuk@suse.de -- Update to current CVS version -* Mon Aug 18 2003 aj@suse.de -- increase stack size for linuxthreads/set-context. -* Mon Aug 18 2003 aj@suse.de -- Fix mathinline.h for i386 to compile under C++ without warnings. -* Sun Aug 17 2003 ro@suse.de -- kernel-headers.dif: don't include device.h from videodev.h -* Fri Aug 15 2003 kukuk@suse.de -- Update to current cvs (fixes assert usage in C++ source code) -* Thu Aug 14 2003 kukuk@suse.de -- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] -- On i686, include glibc with and without floating stack enabled -- Update to current cvs -- Update to nptl 0.56 -* Thu Jul 31 2003 kukuk@suse.de -- Reenable new quota.h -* Wed Jul 30 2003 kukuk@suse.de -- Update to current cvs -- Update kernel headers to 2.6.0-test2 -- Disable sys/quota.h update -- Enable TLS on AMD64 again -* Mon Jul 28 2003 kukuk@suse.de -- Update to current cvs -- Disable TLS on AMD64 temporary -- Update sys/quota.h to match new kernel implementation -* Fri Jul 25 2003 kukuk@suse.de -- Update to current cvs -- Update kernel headers to 2.6.0-test1 -- Update to nptl 0.55 -- Change minimal symbol version on PPC64 back to 2.2.5 -* Wed Jul 23 2003 meissner@suse.de -- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just - merging over the asm-ppc64 things). -* Wed Jul 23 2003 aj@suse.de -- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without - rpath. -- Fix bugs exposed by unit-at-a-time option. -* Fri Jul 18 2003 aj@suse.de -- Fix compilation with unit-at-a-time enabled compiler. -- Enlarge stack for tst-setcontext test. -* Mon Jun 30 2003 kukuk@suse.de -- Update to current CVS (includes if_arp.h and nss_compat changes) -- Update to nptl 0.50 -- Kernel header fixes for userland inclusion -* Wed Jun 25 2003 kukuk@suse.de -- Update to current CVS -- Add target host and CVS checkout to glibc version printout -- Adjust fnmatch fix -- Update kernel headers to 2.5.73 -* Tue Jun 24 2003 kukuk@suse.de -- Fix typos in syscalls.list on Alpha -* Mon Jun 23 2003 kukuk@suse.de -- fix typo in linuxthreads on SPARC -- Update to current CVS -- Update to nptl 0.48 -* Thu Jun 19 2003 kukuk@suse.de -- Disable nss_compat patch again -* Wed Jun 18 2003 kukuk@suse.de -- Fix reading of locale.alias file -- Update to current CVS snapshot -- Update to nptl 0.47 -- Some kernel header file fixes for PPC64/IA64 -- Update nss_compat patch -* Thu Jun 12 2003 kukuk@suse.de -- Update to current CVS snapshot -- Finish patch for printing linker warning -* Wed Jun 11 2003 kukuk@suse.de -- Update to nptl 0.45 -- Update to current CVS snapshot -- Add patch to print linker warning, if a static binary calls - functions using NSS -* Tue Jun 10 2003 kukuk@suse.de -- Use %%find_lang macro and cleanup glibc-locale filelist -* Thu Jun 05 2003 kukuk@suse.de -- Complete mathinline.h fixes -* Thu Jun 05 2003 kukuk@suse.de -- linux/compiler.h: Define all inline variants to __inline__ -* Wed Jun 04 2003 kukuk@suse.de -- Update to current glibc CVS snapshot -- Update to nptl 0.43 -- More kernel header fixes -- Make --no-archive default for localedef -* Tue May 27 2003 kukuk@suse.de -- Update to current glibc CVS snapshot -- Update to nptl 0.40 -- Disable nss_compat patch -- Update to kernel headers from 2.5.70 -* Fri May 23 2003 kukuk@suse.de -- Update to current glibc CVS snapshot -- Add patches to make nss_compat work with every service -* Mon May 19 2003 kukuk@suse.de -- Update to current glibc CVS snapshot -- Add patch for better binary compatibility (errno, h_errno) -* Fri May 16 2003 kukuk@suse.de -- Update to current glibc CVS snapshot -- Update to nptl 0.39 -- Add URL tag -- asm-i386/byteorder.h: fix asm vs. __asm__ -* Wed May 14 2003 schwab@suse.de -- Fix missing syscall numbers on ia64. -* Wed May 14 2003 kukuk@suse.de -- More kernel headers fixes for i386, ia64, ppc and s390 -* Mon May 12 2003 kukuk@suse.de -- Update to current glibc CVS snapshot -- Fix lot of more kernel headers -- Adjust netinet/igmp.h patch -- Copy linux/version.h in place before compiling glibc -* Fri May 09 2003 kukuk@suse.de -- Fix bits/stdio.h -- Fix lot of kernel headers to work in userspace -- Fix netinet/igmp.h -- Enable TLS on PPC -* Wed May 07 2003 kukuk@suse.de -- Update CVS snapshot -- Enable TLS on IA64 -- Update to nptl 0.37 -- Update kernel-headers to 2.5.69 -* Thu Apr 24 2003 ro@suse.de -- fix install_info --delete call and move from preun to postun -* Fri Apr 11 2003 aj@suse.de -- Do not build locales in parallel. -* Tue Apr 08 2003 kukuk@suse.de -- Disable TLS for PPC -* Mon Apr 07 2003 kukuk@suse.de -- Update CVS snapshot -* Sat Apr 05 2003 kukuk@suse.de -- Disable TLS for ia64 -- Update to nptl 0.34 -- Update to CVS snapshot -* Fri Apr 04 2003 kukuk@suse.de -- Remove libNoVersion from filelist on alpha -- Add nptl docu -* Fri Apr 04 2003 kukuk@suse.de -- Update to nptl 0.33 -- Run ldconfig after installation -- Update to CVS snapshot -* Sat Mar 29 2003 kukuk@suse.de -- Update to CVS snapshot -- Add USAGI patches for kernel-headers -- Add nptl on i686 -- Enable --with-tls -- Implement NI_NUMSERICSCOPE for getnameinfo -- Implement AI_V4MAPPED/AI_ALL for getaddrinfo -- Implement AI_ADDRCONFIG for getaddrinfo -- Add USAGI patch for kernel headers -* Mon Mar 24 2003 schwab@suse.de -- Sanitize . -* Mon Mar 17 2003 aj@suse.de -- Fix tst-aio7 testcase and enable it again. -- Enable %%fs for x86-64. -- Install en_US.ISO-8859-15 for libstdc++. -- Fix bits/syscalls.h for x86-64. -* Thu Mar 13 2003 kukuk@suse.de -- Revert tcgetattr change [Bug #25173/#25174] -* Tue Mar 04 2003 aj@suse.de -- Fix lround/lrint functions. -* Sat Mar 01 2003 aj@suse.de -- Update to 2.3.2 release. -* Wed Feb 26 2003 kukuk@suse.de -- Update to current cvs snapshot (fixes OOo and mysql problems) -* Mon Feb 24 2003 kukuk@suse.de -- Disable aio7 test on s390(x), too. -* Mon Feb 24 2003 kukuk@suse.de -- Update to current cvs snapshot (post 2.3.2-pre1) -- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS -- Remove libc23-ppc64-cvshead20021210.patch -* Thu Feb 20 2003 kukuk@suse.de -- Update to current cvs snapshot -- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be - included already. -* Wed Feb 19 2003 olh@suse.de -- add glibc-2.3-ppc32-textrel.patch - glibc-2.3-ppc64-vfork-20030214.patch -* Fri Feb 14 2003 kukuk@suse.de -- Extend getent to print all IP addresses of one host -* Thu Feb 13 2003 kukuk@suse.de -- Update to current snapshot -* Wed Feb 12 2003 kukuk@suse.de -- Update to current snapshot (contains official fix for #23513) -* Tue Feb 11 2003 kukuk@suse.de -- Update to current snapshot -- Fix corruption of internal data in gethostbyname2 [Bug #23513] -* Sun Feb 09 2003 aj@suse.de -- Fix cancellation of system calls on x86-64. -* Sat Feb 08 2003 kukuk@suse.de -- Fix wrong logic in dynamic resolv.conf patch -* Fri Feb 07 2003 kukuk@suse.de -- Fix access of _res symbol in multithreaded programs -- Add "dynamic resolv.conf" patch to libnss_dns, too. -- Remove obsolete db2 manual pages -- Update to current snapshot (fixes [Bug #23363]) -* Thu Feb 06 2003 kukuk@suse.de -- Update to current snapshot -- Use install-info for info pages -* Tue Feb 04 2003 schwab@suse.de -- Fix regexp parsing. -* Mon Feb 03 2003 meissner@suse.de -- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for - ppc and ppc64 kernel headers. -* Fri Jan 31 2003 schwab@suse.de -- Fix building on s390[x]. -* Fri Jan 31 2003 kukuk@suse.de -- Update to current glibc cvs -* Thu Jan 30 2003 aj@suse.de -- Fix one build problem on sparc. -- Fix asm-x86_64/mtrr.h. -* Wed Jan 29 2003 kukuk@suse.de -- Update to current glibc cvs -- Fix libm-ulps for x86-64 and ia64 -* Thu Jan 23 2003 schwab@suse.de -- Fix use of DT_FINI_ARRAY. -- Temporarily disable tst-aio7 test on ia64. -* Tue Jan 14 2003 schwab@suse.de -- Fix ia64 for non-tls build. -* Tue Jan 14 2003 aj@suse.de -- Package libpthread_nonshared.a. -* Mon Jan 13 2003 kukuk@suse.de -- Add fixed version of x86-64-linuxthreads-disable-fs.diff -- Readd parts of libm-x86-64.diff -- Update to current cvs snapshot -- Add fix for errno compatibility -- Add s390(x) vfork fixes -* Sun Jan 12 2003 kukuk@suse.de -- Update to current cvs snapshot -* Fri Jan 03 2003 bg@suse.de -- removed obsolete patch for hppa -* Sat Dec 21 2002 kukuk@suse.de -- Update to current cvs snapshot -- Obsoletes glibc-2.3-setjmp-ppc64.diff -- Obsoletes build-alpha.diff -- Obsoletes libm-x86-64.diff -- Disable activate-spinlocks.diff temporary -- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) -* Tue Dec 17 2002 olh@suse.de -- remove glibc-2.2.5-ppc64-bits-socket_h.diff - add glibc-2.3-setjmp-ppc64.diff - add libc23-ppc64-cvshead20021210.patch - dont run configure in subshell, it can fail and rpm cant catch it -* Fri Dec 13 2002 schwab@suse.de -- Add more ia64 syscalls. -* Fri Dec 06 2002 olh@suse.de -- build also the locals parallel - do not fail with parallel calculation on lowmem systems -* Tue Dec 03 2002 aj@suse.de -- Build parallel on x86-64. -- Activate fast spinlocks in malloc for x86 and x86-64. -- Integrate new math library from AMD for x86-64. -* Fri Nov 29 2002 bg@suse.de -- Fix build on hppa. -* Thu Nov 28 2002 aj@suse.de -- Fix build on alpha. -* Thu Nov 28 2002 aj@suse.de -- Update to CVS version from 2002-11-28. -- Do not use %%fs for threads for now on x86-64. -- Fix fnmatch bug with multibyte strings. -* Tue Nov 12 2002 bg@suse.de -- Updated hppa patches -* Thu Nov 07 2002 kukuk@suse.de -- getaddrinfo(): get host information for AF_INET and AF_INET6 only - from the same service [Bug #21237] -* Thu Nov 07 2002 bg@suse.de -- Fix build of linuxthreads for hppa -* Tue Nov 05 2002 bg@suse.de -- Use current kernel-headers for parisc -- Add support for hppa -* Tue Nov 05 2002 kukuk@suse.de -- Update to current CVS snapshot -* Tue Oct 22 2002 schwab@suse.de -- Fix ia64 syscall numbers. -* Mon Oct 21 2002 schwab@suse.de -- Fix alignment in locale-archive. -* Mon Oct 21 2002 kukuk@suse.de -- Update to glibc 2.3.1 cvs 20021021 -- Remove nss_dns6 patch -* Tue Oct 15 2002 kukuk@suse.de -- Update to glibc 2.3.1 cvs 20021015 -* Wed Oct 02 2002 kukuk@suse.de -- Update to glibc 2.3 cvs 20021002 -- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) -* Wed Sep 25 2002 mls@suse.de -- build with -finline-limit=2000 on mips/armv4l -* Tue Sep 17 2002 schwab@suse.de -- Add new ia64 syscall numbers. -* Mon Sep 16 2002 meissner@suse.de -- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. -- Aligned powerpc bits/sem.h to be the same as the other 64bit - archs, keeping the 32bit layout. -- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. -* Thu Sep 12 2002 meissner@suse.de -- ppc/ppc64: added more biarch things to the SystemV IPC headers - which are needed to get 64bit ipc / IPC_STAT to work. -* Mon Sep 09 2002 bk@suse.de -- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) -- s390x: requires 64-bit kernel -* Mon Sep 09 2002 kukuk@suse.de -- Increase minimum value of MAXPACKET in libnss_dns, too -* Mon Sep 09 2002 uli@suse.de -- all architectures are created equal, but some are more equal - than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, - ia64, s390x and ppc64 to fit 64 bit __ino_t type -* Fri Sep 06 2002 mls@suse.de -- fix squeeze bug in db-1.85: set dirty flag after page modification -* Fri Sep 06 2002 kukuk@suse.de -- Increase minimum value of MAXPACKET -* Mon Sep 02 2002 kukuk@suse.de -- Fix asm header files for sparc/sparc64 -* Fri Aug 30 2002 aj@suse.de -- Revert linuxthreads for x86-64 for now. -* Wed Aug 28 2002 aj@suse.de -- Add optimized math routines for x86-64. -* Tue Aug 27 2002 olh@suse.de -- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" -* Mon Aug 26 2002 olh@suse.de -- add ppc64_glibc_2.2.5_sunrpc-fix.patch - * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds - __powerpc64__ specific fields and adjust size/alignment for 64-bit. -* Fri Aug 23 2002 aj@suse.de -- Use floating stacks for x86-64. -- Add LICENSE file. -- Fix profiling code on x86-64. -- Add strcspn, strpbrk and strspn optimizations for x86-64. -- Fix makecontext for x86-64. -* Thu Aug 15 2002 aj@suse.de -- Use biarch headers already for building so that bits/syscalls.h is - build correctly. -- Fix bits/syscalls.h for x86-64. -- Remove *xattr patches. -* Thu Aug 08 2002 kukuk@suse.de -- Update to current cvs (calloc variable overflow fixed) -- Apply fix for calloc fix -- Add *xattr system calls and error number -* Tue Aug 06 2002 kukuk@suse.de -- Update to current cvs (IPv6 fixes) -* Mon Aug 05 2002 aj@suse.de -- Implement *context functions for x86-64. -* Sat Aug 03 2002 kukuk@suse.de -- Update kernel-headers to version 2.4.19 -- Add PreRequires "filesystem". -* Thu Aug 01 2002 bk@suse.de -- added s390-may2002.diff with some chunks from may2002 drop -- give make check a second chance on s390(x), but fail if not(race) -* Tue Jul 30 2002 kukuk@suse.de -- sunrpc/xdr_array.c: Check for variable overflow -- Ignore failed make check on s390(x) -* Tue Jul 30 2002 aj@suse.de -- Add optimisations for x86-64. -* Mon Jul 29 2002 kukuk@suse.de -- Don't allocate/free category name in setlocale() unnecessarily - (for IBM Java [Bug #17065]). -* Tue Jul 23 2002 kukuk@suse.de -- Update to current glibc cvs (pread/pwrite fixes) -- Remove extra de.po, is in official tarball now. -* Sat Jul 20 2002 aj@suse.de -- Fix profiling for x86-64. -* Fri Jul 19 2002 meissner@suse.de -- Fixed the PPC64 patch, several superflous files removed. -- Reenabled make check for ppc64. -* Wed Jul 17 2002 kukuk@suse.de -- Update to current glibc cvs -- Fix kernel headers for s390/s390x -- Move some binaries/shell scripts and manual pages to the - correct subpackage -* Tue Jul 16 2002 meissner@suse.de -- Merged latest PowerPC patch from IBM. - * Lots of ppc64 related fixes. - * Start of biarch support. - * Changed struct stat in 64bit ABI. -* Fri Jul 12 2002 aj@suse.de -- Add biarch patch for s390 and s390x. -* Mon Jul 08 2002 aj@suse.de -- Add some optimized x86-64 math routines and a fixed lgammal - implementation. -- Testsuite on x86-64 should pass now. -- Run ldconfig in postinstall. -- Fix memleak in catgets. -* Sat Jul 06 2002 kukuk@suse.de -- Fix typo in create_biarch_asm.sh (asm-sparc path) -* Thu Jul 04 2002 kukuk@suse.de -- Fix typo in manpages/Makefile -- Fix filelist (on some archs ld-linux.so.2 was missing) -* Thu Jul 04 2002 kukuk@suse.de -- Revert mktime patch (check for year < 70) -- Replace ifarch i386 with ix86 -- Add patch for arm -- Include pt_chown again -* Wed Jul 03 2002 kukuk@suse.de -- Add more new manual pages -- Fix spec file (renaming of ld-*, creating of include/asm header - files) -- Update to current CVS version -- Fix kernel-headers for x86-64 (don't overwrite patched version) -- Rename Equador -> Ecuador [Bug #16648] -- Add hint about security problem of host caching with nscd to - config file. -* Tue Jun 25 2002 aj@suse.de -- Fix dl-machine.h for x86-64 to compile with new binutils. -- Fix mtrr.h header for x86-64. -- Do not package pt_chown. -* Tue Jun 18 2002 sf@suse.de -- reverted changes from Tue Jun 11 10:04:55 CEST 2002 - (took the kernel-headers from before, readded patch9) -- add new archive with kernel-headers for x86_64 -- add autofs patch -* Mon Jun 17 2002 bk@suse.de -- remove s390* from the list of archs that ignore check fail -* Thu Jun 13 2002 uli@suse.de -- fixed typos in spec -* Thu Jun 13 2002 schwab@suse.de -- Fix ssize_t and __ipc_pid_t for ppc64. -* Wed Jun 12 2002 uli@suse.de -- fix errlist.c for ARM as well -* Tue Jun 11 2002 sf@suse.de -- made new kernel-header archive from kernel-source -- added asm-ppc64 to kernel-headers -- removed patch9 as it is obsoleted by the new kernel-headers -* Fri Jun 07 2002 olh@suse.de -- update asm-ppc64/ioctls.h, missing TIOCGDEV -* Thu Jun 06 2002 olh@suse.de -- fix glibc-ppc64 patch -* Thu Jun 06 2002 olh@suse.de -- update ppc64_glibc_ldconfig.diff -* Thu Jun 06 2002 ke@suse.de -- Update de.po from - http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. -- Use only translated entries to make the testsuite happy; call - msgattrib on de.po and hu.po [# 16438]. -* Mon Jun 03 2002 aj@suse.de -- Clean up generation of asm includes for bi-arch systems. -- Enable profiling for x86-64. -* Mon Jun 03 2002 kukuk@suse.de -- Add fix for weak declaration "_old_sys_nerr" -- Remove already disabled alpha patch -- Update to current CVS -* Sat Jun 01 2002 olh@suse.de -- fix stat for real, wrong size for st_nlink -* Wed May 29 2002 olh@suse.de -- add ppc64_glibc_2.2.5-types.diff, fixes stat() -* Wed May 29 2002 olh@suse.de -- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance -* Thu May 23 2002 aj@suse.de -- Rename __thread to fix problems with GCC 3.2. -* Mon May 20 2002 olh@suse.de -- add ppc64 kernel headers - add create_ppc_asm.sh - update ppc64 patch, use /lib64/ld64.so.1 - move generic syscalls.list to ppc64/32 - set/getrlimit GLIBC2.0 is ppc32 only - use parallel make on ppc and ppc64 - do not chroot as user - cleanup nested ifarch for dynamic linker -* Wed May 15 2002 aj@suse.de -- Fix building of linuxthreads with current GCC. -* Mon May 13 2002 olh@suse.de -- fix ppc64 RTLDLIST ld64.so rewrite -* Sat May 11 2002 schwab@suse.de -- Add div/mod compatibility functions for ia64. -* Fri May 10 2002 olh@suse.de -- add ppc64 support -* Thu May 09 2002 aj@suse.de -- Add sys/io.h for x86-64. -* Mon May 06 2002 ihno@suse.de -- corrected memory calculation for parallel build -* Fri May 03 2002 kukuk@suse.de -- Add fix to compile math.h on SPARC with g++ -* Thu May 02 2002 kukuk@suse.de -- Update to current CVS 2.2 branch -- Add x86-64 fix for crti.o and /usr/lib64 with libpthread -* Fri Apr 26 2002 kukuk@suse.de -- define sqrtl alias for PowerPC -* Mon Apr 22 2002 aj@suse.de -- Fix vfork for x86-64. -- Fix handling of ld.so.cache for x86-64. -* Thu Apr 18 2002 aj@suse.de -- Allow testsuite to fail for x86-64. -- Add ULPs for x86-64. -* Wed Apr 17 2002 kukuk@suse.de -- Update to current snapshot (mktime and dl fixes) -- Update hu.po -- Do not build a profiled glibc for x86-64 -* Fri Apr 12 2002 kukuk@suse.de -- Update to current snapshot (fix SPARC compile) -- Revert do-lookup.h patch on Alpha (does not work here) -* Wed Apr 10 2002 aj@suse.de -- Fix linuxthreads for x86-64. -* Wed Apr 10 2002 aj@suse.de -- Add x86-64.diff to fix glob64. -* Wed Apr 10 2002 kukuk@suse.de -- Update kernel-headers to 2.4.19pre4 (with x86-64 support) -- Update glibc to current cvs snapshot -- Allow old currencies (before EUR) -* Tue Apr 02 2002 aj@suse.de -- Update ULPs. -* Thu Mar 21 2002 kukuk@suse.de -- Create html pages after installation of info pages [Bug #15283] -* Tue Mar 12 2002 kukuk@suse.de -- Add db1 fix if blocksize is not ^2 -* Sat Mar 02 2002 kukuk@suse.de -- Add fix for format string bug -* Sat Mar 02 2002 kukuk@suse.de -- Fix return value of nice wrapper -* Fri Mar 01 2002 kukuk@suse.de -- Add fix for corrupt ut_line -- Add fix for current gcc 3.1 -- Add patch for nice return values -* Thu Feb 28 2002 kukuk@suse.de -- Add fix for rtime, swscanf and ia64 -* Mon Feb 18 2002 kukuk@suse.de -- When a dlopened module references a weak symbol from another - dlopened module (loaded with RTLD_GLOBAL) no dependency was - generated for this fact, so the second module was unloaded even - if the first one was still around. -* Sun Feb 17 2002 kukuk@suse.de -- Add pthread/signal bugfix [Bug #13280] -- Fix directory file list (don't include /usr/include) -* Thu Feb 14 2002 kukuk@suse.de -- Use defattr in spec file to avoid problems with not existing - UIDs and rpm. -* Thu Feb 14 2002 aj@suse.de -- Update ULPs for GCC 3.1. -* Wed Feb 13 2002 kukuk@suse.de -- Apply db1 patch from mls@suse.de to fix rpm problems -* Tue Feb 12 2002 ro@suse.de -- fix owner/group for kernel headers -* Mon Feb 11 2002 kukuk@suse.de -- Add another solution for the glob problem -* Thu Feb 07 2002 kukuk@suse.de -- Add fix for glob (glob should not call globfree) -- Add fix for innetgr -* Wed Feb 06 2002 kukuk@suse.de -- Use correct BuildRoot -* Wed Feb 06 2002 kukuk@suse.de -- Update hu.po -* Wed Feb 06 2002 kukuk@suse.de -- Set LC_CTYPE for error messages in localedef [Bug #12878] -* Mon Feb 04 2002 kukuk@suse.de -- Add fixes from CVS: dynamic loader, readv and writev seg.fault - and various architecture fixes for alpha and mips -- Don't compile with -g on Alpha -- Add fix for possible endless loop fix -* Fri Feb 01 2002 bk@suse.de -- merged s390x lib64 patch and spec file changes -* Wed Jan 23 2002 kukuk@suse.de -- Split glibc into glibc and glibc-locale -- Create more UTF8 locale -* Mon Jan 21 2002 kukuk@suse.de -- Update to official glibc 2.2.5 -* Wed Jan 16 2002 kukuk@suse.de -- Remove /var/adm/setup/setup.timeconfig -* Wed Jan 16 2002 kukuk@suse.de -- Apply S390 fix -* Wed Jan 09 2002 kukuk@suse.de -- Update to glibc 2.2.5pre1 -* Tue Jan 08 2002 egmont@suselinux.hu -- Added partial Hungarian translation -* Tue Jan 08 2002 kukuk@suse.de -- Add patch to pass math tests with gcc 3.x -- Update to current CVS version -* Thu Jan 03 2002 kukuk@suse.de -- Update kernel header files to 2.4.17 -* Tue Jan 01 2002 kukuk@suse.de -- Update current CVS version, add final fixes for LSB test suite -* Tue Dec 18 2001 poeml@suse.de -- Install ja_JP.SJIS locale. -* Sat Dec 15 2001 schwab@suse.de -- Fix missing declaration of md5_uintptr. -* Fri Dec 14 2001 kukuk@suse.de -- Update to correct CVS branch -* Thu Dec 13 2001 kukuk@suse.de -- Update to current CVS -- Increase PATH_MAX to 4096 (including the leading zero) -- Clear pointer if asprintf fails -- pthread_key_delete should not contact thread manager before it - is created. -* Tue Dec 11 2001 kukuk@suse.de -- Fix prelink patch -* Tue Dec 11 2001 kukuk@suse.de -- Add fixes for LSB.os test suite (ftw, grantpt and ftok) -- Update to current CVS -- Add prelink patch -* Fri Dec 07 2001 kukuk@suse.de -- Merge with current CVS -- Add blowfish crypt -* Fri Nov 23 2001 uli@suse.de -- added armv4l arch to spec -- added arm kernel headers -- added trivial fix for dl-machine.h from CVS (see arm.dif) -* Thu Nov 15 2001 adrian@suse.de -- add mips architecture to spec file -- apply further mips fixes for ld -- activate %%clean again -* Sun Nov 11 2001 kukuk@suse.de -- Fix lost permissions of shell script on SPARC -* Thu Nov 08 2001 kukuk@suse.de -- Add 32bit UID fixes -* Thu Nov 08 2001 kukuk@suse.de -- More fixes for asm-ia64 header files -* Thu Nov 08 2001 kukuk@suse.de -- Fix asm-i386/processor.h (don't align struct) -- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) -- Correct version number in version.h -* Wed Nov 07 2001 uli@suse.de -- fixed sys/io.h, sysmacros.h for icc -* Tue Nov 06 2001 kukuk@suse.de -- Update kernel-headers to 2.4.14 -* Thu Nov 01 2001 kukuk@suse.de -- Use again old rules to generate html files -* Sun Oct 21 2001 schwab@suse.de -- Fix inttypes.h for C++. -* Fri Oct 19 2001 aj@suse.de -- Fix typo in inttypes.h that presents compilation by non-GCC compilers. -* Tue Oct 16 2001 aj@suse.de -- Update elf.h to include x86-64 defines since those are needed - by some other tools. -* Fri Sep 28 2001 schwab@suse.de -- Readd patch from 2001-09-10 with corrections. -- Add compatibility patch for GCC 3. This allows to build glibc - with GCC 3. -- Require that make check succeeds on ia64. -* Thu Sep 13 2001 aj@suse.de -- Add a better version of the threads-fork patch that fixes some - more places where interrupts can occur and does this a bit cleaner. -* Tue Sep 11 2001 aj@suse.de -- Remove patch from 2001-09-10 since it breaks the dynamic linker. -* Tue Sep 11 2001 aj@suse.de -- Fix bug in linuxthreads where manager and threads could - get out of synch due to an interrupted read call. -* Mon Sep 10 2001 schwab@suse.de -- Fix handling of dependent dynamic objects for dlopen/dlclose. -* Sat Sep 08 2001 kukuk@suse.de -- Don't create gconv cache (else iconv --list seg.faults) -* Tue Aug 28 2001 aj@suse.de -- Improve dynamic linker to relocate dynamic objects faster. This - implies a small cache for symbol lookups and handling the ld -z combreloc - feature if binaries are linked this way. -* Fri Aug 24 2001 kukuk@suse.de -- Add fix for handling of %%l[] in vfscanf -- ldconfig removes stale links now -- Remove susehelp config files, now in susehelp itself -* Wed Aug 22 2001 aj@suse.de -- Update s390 patch from IBM. -* Fri Aug 17 2001 kukuk@suse.de -- Adjust dns6 patch for 2.2.4 -- Fix spec file (include lost libnss_dns6.so) -- Fix versionnumber in version.h [Bug #9759] -- Update kernel-header to 2.4.9 -* Thu Aug 16 2001 aj@suse.de -- Update to 2.2.4 final. Add s390-ucontext patch. -* Fri Aug 10 2001 aj@suse.de -- Update to current glibc version. Do not use the hardlink program - for compatification since localedef will do this itself now. - Create gconv cache. -* Wed Aug 01 2001 aj@suse.de -- Add patch for zic to create copy of the timezone instead - of a symbolic link so that the file exists even if /usr is not - mounted. - Use i486 instead of i386 as default architecture for i386. -* Sat Jul 28 2001 kukuk@suse.de -- Fix problem with linux/spinlock.h -* Fri Jul 27 2001 kukuk@suse.de -- Update kernel-header files to 2.4.7 -* Thu Jul 26 2001 froh@suse.de -- add fix for failing tst-setcontext on s390 -* Wed Jul 25 2001 aj@suse.de -- Add patch to fix loading of dynamic libs in static programs for PPC. -* Fri Jul 20 2001 kukuk@suse.de -- Update to current CVS snapshot -- Disable tst-regex and test-lfs -* Fri Jul 06 2001 kukuk@suse.de -- Add da_DK@euro and da_DK.UTF-8 -* Thu Jul 05 2001 kukuk@suse.de -- Update to current CVS snapshot -- Remove obsolete cvs patch -- Fix DNS/IPv6 patch -- Hardlink equal locale files -* Fri Jun 22 2001 olh@suse.de -- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check -* Tue Jun 19 2001 bk@suse.de -- added s390x support to spec file -* Tue Jun 19 2001 aj@suse.de -- Fix profiling on PowerPC. -* Fri Jun 15 2001 schwab@suse.de -- Fixup asm-ia64/atomic.h for user-space inclusion. -* Tue Jun 12 2001 aj@suse.de -- Fix testsuite for sparc. -* Mon Jun 11 2001 aj@suse.de -- Fix testsuite for powerpc and S390, build again on alpha. -* Tue May 22 2001 kukuk@suse.de -- Update to current CVS snapshot -- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] -* Sun May 13 2001 kukuk@suse.de -- Don't use absolute paths in pre-install-section -* Fri May 04 2001 kukuk@suse.de -- Add special version.h which fails on compiling kernel modules -* Sat Apr 28 2001 kukuk@suse.de -- Update to glibc 2.2.3, kernel-headers-2.4.4 -* Tue Apr 24 2001 schwab@suse.de -- Fix feenableexcept on ia64. -* Tue Apr 24 2001 aj@suse.de -- Install some more UTF-8 locales, fix tr_TR locale. -* Thu Apr 12 2001 kukuk@suse.de -- Include our own texi2html -* Wed Apr 11 2001 kukuk@suse.de -- Add fixes from SuSE kernel header files -- Add patch to reload /etc/resolv.conf if there was changes -- Add glibc.conf for susehelp (glibc-html pages) -* Mon Apr 09 2001 schwab@suse.de -- Fix ld.so for kernel 2.4.3 on ia64. -* Thu Apr 05 2001 kukuk@suse.de -- Add more fixes from CVS -* Tue Apr 03 2001 kukuk@suse.de -- Fix isdn header files from kernel-headers -* Fri Mar 30 2001 kukuk@suse.de -- Update kernel header files to 2.4.3 -* Fri Mar 30 2001 kukuk@suse.de -- Merge s390 patches -- Fix rcmd_af() (allow PF_UNSPEC) -* Fri Mar 30 2001 aj@suse.de -- Add some small fixes, fix spec file for removal of man-pages. -* Thu Mar 29 2001 kukuk@suse.de -- Don't provide kernel_headers any longer -- Remove some man-pages which are now official in the man-pages - package -* Thu Mar 29 2001 aj@suse.de -- Fix shmfs recognition. -* Thu Mar 29 2001 ro@suse.de -- added db-splitmask fix from mls (hopefully work around bug in db1) -* Wed Mar 28 2001 aj@suse.de -- Fix s390 to not generate wrong relocations, work around compiler - error. -* Wed Mar 21 2001 kukuk@suse.de -- glibc-devel obsoletes and provides linclude -* Tue Mar 20 2001 kukuk@suse.de -- Add strtok and other fixes from CVS -- Add yp_all fix -* Tue Mar 13 2001 kukuk@suse.de -- Add more s390 string.h fixes -* Mon Mar 12 2001 aj@suse.de -- Add fixes for s390, don't run testsuite on s390 for now. -* Fri Mar 09 2001 kukuk@suse.de -- Fix linux/init.h header file -* Fri Mar 09 2001 aj@suse.de -- Handle new EM_S390 value. -* Fri Mar 09 2001 kukuk@suse.de -- kernel-heaer fixes to build on Alpha -* Thu Mar 08 2001 ro@suse.de -- update kernel-headers to 2.4.2 -* Thu Mar 08 2001 ro@suse.de -- kernel-header fixes to build on s390 -* Thu Feb 22 2001 schwab@suse.de -- More kernel header fixes for IA64. -* Tue Feb 20 2001 kukuk@suse.de -- Remove optimisation not supported on all plattforms -* Mon Feb 19 2001 kukuk@suse.de -- Fix Optimization of glibc build -- Add Optimization for alphaev6 and sparcv9 -* Sat Feb 17 2001 kukuk@suse.de -- Update to glibc 2.2.2 from CVS -* Thu Feb 15 2001 kukuk@suse.de -- kernel header fixes for SPARC and IA64 -* Tue Feb 13 2001 kukuk@suse.de -- Make optimization for i686 work -- Add manual page for ldd -* Mon Feb 12 2001 kukuk@suse.de -- Fix more kernel headers -* Thu Feb 08 2001 kukuk@suse.de -- Fix more kernel-headers -* Wed Feb 07 2001 kukuk@suse.de -- Delete links in pre install section for glibc-devel -* Wed Feb 07 2001 kukuk@suse.de -- Fix kernel-header includes -* Tue Feb 06 2001 kukuk@suse.de -- Fix creating of /usr/include/asm on SPARC -- Add more CVS patches -* Mon Feb 05 2001 kukuk@suse.de -- Add some patches from CVS -- Include our own kernel header files -* Mon Jan 22 2001 aj@suse.de -- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. -* Mon Jan 22 2001 aj@suse.de -- Fix mmap64 on powerpc. -* Tue Jan 16 2001 aj@suse.de -- Fix sunrpc-udp.diff, add mman.h fix for powerpc. -* Wed Jan 10 2001 aj@suse.de -- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. -* Tue Jan 09 2001 aj@suse.de -- Add glibc-2.2.secure.diff to close some security holes. -* Wed Jan 03 2001 schwab@suse.de -- Fix strtol and friends on 64 bit platforms. -- Use 8192 as default pagesize on ia64. -- Scan AUX vector also in statically linked programs. -* Wed Jan 03 2001 aj@suse.de -- Build some UTF-8 locales using a patch from Markus Kuhn. -* Wed Dec 13 2000 aj@suse.de -- Add compatibility patch for IPv6 and Linux 2.2. -* Wed Dec 13 2000 schwab@suse.de -- Update ia64 patch. -* Sat Dec 09 2000 kukuk@suse.de -- Fix resolver bug -* Fri Dec 01 2000 kukuk@suse.de -- Add bug fixes for setlocale and strncat -- strip gconv modules -* Fri Nov 24 2000 kukuk@suse.de -- Fix typo in spec file -* Fri Nov 24 2000 kukuk@suse.de -- Add hack for POWER3 -* Wed Nov 22 2000 kukuk@suse.de -- Add strncat bugfix for S/390 -* Tue Nov 21 2000 kukuk@suse.de -- Don't bulid 32bit compat packages -* Mon Nov 20 2000 schwab@suse.de -- Remove use of getpagesize syscall on ia64. -- Follow DT_INIT/DT_FINI change in compiler. -* Sun Nov 19 2000 kukuk@suse.de -- Minor specfile fixes -* Thu Nov 16 2000 kukuk@suse.de -- Add lot of more bug fixes -* Tue Nov 14 2000 kukuk@suse.de -- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de -* Mon Nov 13 2000 aj@suse.de -- Fix noversion.diff and spec file. -* Sat Nov 11 2000 kukuk@suse.de -- Fix nssv1 on PowerPC -- no libNoVersion on SPARC -* Fri Nov 10 2000 kukuk@suse.de -- Disable make check on PowerPC and Alpha -* Fri Nov 10 2000 kukuk@suse.de -- Update to final glibc 2.2 -* Fri Nov 03 2000 kukuk@suse.de -- Update to glibc-2.2-20001103 (glibc-2.1.97) -- Don't install libNoVersion on PowerPC -- Rename nssv1 -> glibc-nssv1 -- Rename libd -> glibc-profile, move libg.a to libc -- Rename libcinfo -> glibc-info -- Rename libchtml -> glibc-html -- Rename localedb -> glibc-i18ndata -- Rename libc -> glibc-devel -- Rename shlibs -> glibc -* Sat Oct 28 2000 kukuk@suse.de -- Update to glibc-2.2-20001028 -- Enable more checks -* Fri Oct 27 2000 aj@suse.de -- Fix NoVersion patch -* Wed Oct 25 2000 kukuk@suse.de -- Update to glibc-2.2-20001025 -* Sun Oct 22 2000 kukuk@suse.de -- Update to glibc 2.2-20001021 -- Update glibc-db to 2.1.95 -- Update ia64 patch -* Fri Oct 20 2000 kukuk@suse.de -- Update to glibc 2.2-20001020 -- Add s390 spec file changes -* Tue Oct 10 2000 schwab@suse.de -- Update to glibc 2.2-20001009. -- Fix TRAMPOLINE_TEMPLATE for ia64. -* Sun Oct 01 2000 schwab@suse.de -- Export more ia64 specific symbols. -* Tue Sep 26 2000 kukuk@suse.de -- Update to glibc 2.2-20000926 -* Mon Sep 25 2000 kukuk@suse.de -- Update to glibc 2.2-20000925 snapshot -* Thu Sep 14 2000 schwab@suse.de -- Update ia64 patch. -* Fri Sep 08 2000 bk@suse.de -- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) -* Wed Sep 06 2000 fober@suse.de -- merge s390-7.0 with STABLE: - - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 - - added new changes from IBM s390 codedrop - - removed glibc-dlopen-2.1.3-s390.diff which is - incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now -* Tue Sep 05 2000 kukuk@suse.de -- Add glibc-2.1.security.dif -* Fri Sep 01 2000 olh@suse.de -- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc -* Wed Aug 30 2000 olh@suse.de -- remove sysdeps/powerpc/memset.S on ppc for POWER3 -* Mon Aug 28 2000 olh@suse.de -- add glibc-2.1.sgi_fam.dif -- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 -* Mon Aug 21 2000 garloff@suse.de -- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) -* Tue Jul 25 2000 kukuk@suse.de -- Add mmap fix for PowerPC -* Tue Jul 11 2000 kukuk@suse.de -- Remove "mutex is owned by current thread" bugfix for IBMs jdk -* Mon Jun 26 2000 schwab@suse.de -- Update ia64 patch. -* Tue Jun 20 2000 kukuk@suse.de -- Move html docu in extra package -- Update ia64 patch -* Wed May 31 2000 kukuk@suse.de -- Remove LICENSE file, it's the same as COPYING.LIB -- Add libc docu as html -* Sun May 28 2000 kukuk@suse.de -- Fix ldconfig on PPC and IA64 -* Sat May 27 2000 kukuk@suse.de -- Merge new ldconfig fixes -* Fri May 26 2000 kukuk@suse.de -- Update ia64 patch -* Fri May 26 2000 kukuk@suse.de -- Fix (f)truncate64 and xdr_uint8_t -* Wed May 24 2000 kukuk@suse.de -- Fix ldconfig.8 manual page -* Thu May 18 2000 bk@suse.de -- added s390 dlopen fix -* Tue May 16 2000 bk@suse.de -- updated s390 patches to match IBM_codedrop_2000_05_15 -* Fri May 12 2000 kukuk@suse.de -- Fix netinet/in.h IPv6 compare -* Fri May 12 2000 schwab@suse.de -- Update ia64 patches. -* Fri May 12 2000 kukuk@suse.de -- Don't apply LFS patch -* Tue May 09 2000 kukuk@suse.de -- Add LFS patches -* Mon May 08 2000 kukuk@suse.de -- Add lot of bug fixes from CVS -* Tue Apr 25 2000 kukuk@suse.de -- Fix nscd/getgrnam bug -* Thu Apr 20 2000 kukuk@suse.de -- Remove /var/mail -> /var/spool/mail patch -- Update nscd.conf.5 manual page -* Wed Apr 12 2000 kukuk@suse.de -- Add nscd patch from Chris Wing -* Wed Apr 12 2000 kukuk@suse.de -- Add ldconfig fix from aj@suse.de -* Wed Apr 12 2000 schwab@suse.de -- More ia64 patches. -- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. -* Mon Apr 10 2000 kukuk@suse.de -- Support asm-sparc64 and asm-sparc on SPARC -* Mon Apr 10 2000 kukuk@suse.de -- Create /etc/ld.so.cache always with permissions 0644 -- Update ia64 patches -* Thu Apr 06 2000 schwab@suse.de -- Fix dynamic linker bug in ia64. -- Add ia64 spinlocks for db2. -* Tue Apr 04 2000 schwab@suse.de -- New IA64 patches. -- Fix ldconfig -p. -* Mon Apr 03 2000 bk@suse.de -- s390 team added s390 patches -* Wed Mar 22 2000 kukuk@suse.de -- Fix last SPARC patch -* Tue Mar 21 2000 kukuk@suse.de -- Add SPARC patches -- Add IA64 patches -* Wed Mar 15 2000 kukuk@suse.de -- Remove personality call (problematic on Alpha) -- Fix typo in localeconv -- alpha/ioperm.c> Add entry for "Nautilus". -* Tue Mar 07 2000 kukuk@suse.de -- Add locale SIGSEGV fix -- Fix getdate bug -* Fri Feb 25 2000 kukuk@suse.de -- Update to final glibc 2.1.3 + fix for bigendian machines -* Thu Feb 24 2000 kukuk@suse.de -- Update to current glibc cvs snapshot -- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. - Old libnss_dns.so.2 will only make IPv4 lookups. -* Tue Feb 22 2000 kukuk@suse.de -- Update to current glibc cvs snapshot (2.1.3pre4) -* Sat Feb 05 2000 kukuk@suse.de -- Add missing defines for SPARC bits/termios.h -* Thu Feb 03 2000 kukuk@suse.de -- Add regex patch from Andreas Schwab -* Wed Feb 02 2000 kukuk@suse.de -- Add ldconfig fix -- Update to current glibc cvs snapshot -- Fix sys/io.h on Intel (C++) -* Mon Jan 24 2000 kukuk@suse.de -- Fix duplicate setrlimit -* Mon Jan 24 2000 kukuk@suse.de -- Update to current glibc cvs snapshot -* Wed Jan 19 2000 kukuk@suse.de -- Update to current glibc cvs snapshot -* Sat Jan 15 2000 ro@suse.de --fixed ppc db2-patch -* Fri Jan 14 2000 kukuk@suse.de -- Add patches for Intel and PPC -* Fri Jan 14 2000 kukuk@suse.de -- Add patch for SPARC -* Thu Jan 13 2000 kukuk@suse.de -- Move info pages to /usr/share/info -* Mon Jan 10 2000 kukuk@suse.de -- Add ipv6 patches for getent -* Mon Jan 10 2000 kukuk@suse.de -- Move manual pages for applications and config files into - shlibs package -- Update to current glibc 2.1.3 snapshot -* Fri Dec 17 1999 kukuk@suse.de -- Add new ldconfig patches -- Add aio patch -- Add fix for bits/string2.h -* Wed Dec 15 1999 kukuk@suse.de -- add ldconfig.8 -* Wed Dec 15 1999 kukuk@suse.de -- Update to current glibc 2.1.3 snapshot -- Fix get/setrlimit problems -* Thu Dec 09 1999 kukuk@suse.de -- Update to current glibc 2.1.3 snapshot -- Add new ldconfig -* Sun Dec 05 1999 kukuk@suse.de -- Disable make check for SPARC (kernel bug) -- Add setrlimit patches -- Update to current glibc 2.1.3 snapshot -* Fri Nov 26 1999 kukuk@suse.de -- Update to current glibc 2.1.3 snapshot. -* Tue Oct 26 1999 kukuk@suse.de -- Add fix for correct accounting of needed bytes (gethnamaddr.c) -- Remove not exported, public names from internal md5 functions -* Mon Oct 25 1999 kukuk@suse.de -- Add fix for missing nexttowardl aliase -* Tue Oct 19 1999 kukuk@suse.de -- Add security fix for iruserok -* Sat Oct 16 1999 kukuk@suse.de -- Build libNoVersion.so.1 on every platform -* Mon Oct 11 1999 kukuk@suse.de -- Add linuxthreads/signals.c fix from Andreas Schwab -- Remove dangling symlink (Bug #544) -- Add more bug fixes -* Fri Oct 08 1999 kukuk@suse.de -- Add timezone update -* Fri Oct 08 1999 kukuk@suse.de -- Add NIS+ shadow parser fix -* Thu Oct 07 1999 kukuk@suse.de -- Update to official glibc 2.1.2, add important fixes -- Update nscd, add manual pages for it -* Mon Sep 20 1999 ro@suse.de -- libc: added requires kernel_headers -* Mon Sep 13 1999 bs@suse.de -- ran old prepare_spec on spec file to switch to new prepare_spec. -* Mon Sep 06 1999 kukuk@suse.de -- Update to current glibc 2.1.2 cvs snapshot -- Remove use auf automake in spec file -* Fri Sep 03 1999 kukuk@suse.de -- Update to current glibc 2.1.2 cvs snapshot -- Use RPM macros for configure -* Wed Aug 25 1999 kukuk@suse.de -- Update to current glibc 2.1.2 cvs snapshot -* Thu Aug 19 1999 kukuk@suse.de -- Add PowerPC patches from Uli Hecht -- Cleanup of SPEC file -- Create a profiling version -* Sat Aug 14 1999 kukuk@suse.de -- disable nscd hosts caching by default -- Apply patch from HJL for broken gethostbyname_r in libnss_dns -* Fri Jul 16 1999 kukuk@suse.de -- Add header fix for autoconf/g++ -- Move pt_chown and gconv modules from libc to shlibs -* Wed Jul 14 1999 kukuk@suse.de -- Remove /etc/localtime from filelist -* Mon Jul 12 1999 kukuk@suse.de -- Add more bug fixes from cvs -- Add ld.so bug fix from Andreas Schwab -* Thu Jul 08 1999 kukuk@suse.de -- configure for i386-unknown-linux -* Wed Jul 07 1999 kukuk@suse.de -- Remove alpha patch, it's now in glibc 2.1.2 cvs -- Add more bug fixes from cvs -- Remove malloc patch (breaks StarOffice) -* Tue Jul 06 1999 kukuk@suse.de -- Add openpty patch from Andreas Schwab - (openpty now works if /dev/pts is not mounted) -* Fri Jul 02 1999 kukuk@suse.de -- Remove warning von zic about symlinks. -* Mon Jun 28 1999 kukuk@suse.de -- Remove ndbm links, now in gdbm -* Fri Jun 25 1999 kukuk@suse.de -- Add a lot of more fixes -- Add nscd fixes and enable nscd on alpha -* Mon Jun 14 1999 kukuk@suse.de -- Add nss_dns and fget* fixes. -- Add nscd patches for NIS+ -* Thu Jun 10 1999 kukuk@suse.de -- Fix daemon() for MT programs -- Add libio fixes -* Fri May 28 1999 kukuk@suse.de -- Add fix for docu -- Disable nscd for alpha again -* Wed May 26 1999 kukuk@suse.de -- Update to version 2.1.1 -* Mon May 17 1999 kukuk@suse.de -- Update to snapshot from 16.5.1999 -- Add manpages -- Add __setfpucw to libNoVersion (intel) -- Add COPYING and COPYING.LIB -* Fri May 07 1999 kukuk@suse.de -- Update to snapshot from 6.5.1999 -- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps -- Add patch for Alpha RX164 -- Add workaround for nscd on Alpha -* Wed Apr 28 1999 kukuk@suse.de -- Remove latest fnmatch patches from Uli Drepper -* Tue Apr 27 1999 kukuk@suse.de -- update to cvs version of Apr 26 1999 -- fix pmap_set/pmap_unset for DHCP clients -- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create - the symbolic links. -* Tue Apr 20 1999 kukuk@suse.de -- update to cvs version of Apr 20 1999 -- remove sunrpc.diff -- fix nssv1 package -- only include nscd on intel -- install /etc/nscd.conf -* Mon Apr 12 1999 kukuk@suse.de -- update to cvs version of Apr 11 1999 -- Fix paths in paths.h -- install linuxthreads man pages and documentation -- Add sunrpc patch for Alpha and security fixes -- added links for el_GR and ru_RU.KOI8-R in usr/share/locale -* Wed Mar 31 1999 bs@suse.de -- don't use lx_hack for build -* Tue Mar 16 1999 ro@suse.de -- libc.texinfo: changed to build with stable texinfo version -* Tue Mar 16 1999 ro@suse.de -- update to 2.1.1 (cvs of Mar 15 1999) -- update nssv1 to 2.0.2 -* Sat Feb 20 1999 ro@suse.de -- fixed specfile (lddlibc4 not built on alpha) -* Sat Feb 20 1999 ro@suse.de -- fixed specfile ... -* Sat Feb 20 1999 ro@suse.de -- added automake to neededforbuild -* Sat Feb 20 1999 ro@suse.de -- added nss-v1 modules (to keep old rpm happy with file owners) -* Fri Feb 19 1999 ro@suse.de -- update to cvs-version of 1999/02/18 -* Fri Sep 25 1998 ro@suse.de -- fixed specfile -* Fri Sep 25 1998 ro@suse.de -- update: use cvs-version of 980925 - edited db/Makefile to ignore messed up target-dependency -* Mon Sep 21 1998 ro@suse.de -- update: use cvs-version of 980921 -* Mon Sep 14 1998 ro@suse.de -- update: use today's cvs-version -* Wed Sep 02 1998 ro@suse.de -- build for 586 since egcs generates code for 686 that does NOT run - on 586 !!! (eg strtok) -* Sat Aug 22 1998 ro@suse.de -- updated to cvs-version 20.8.98 - added gettext as neededforbuild (so configure shuts up) - glibc-linuxthreads is contained in main archive now -* Tue Jun 16 1998 ro@suse.de -- added symlink usr/include/X11 -* Thu May 28 1998 ro@suse.de -- added symlinks to linux include files -* Thu May 28 1998 bs@suse.de -- moved ".so" Links to package libc. -* Wed May 27 1998 bs@suse.de -- changed version do `date` -* Wed May 27 1998 ro@suse.de -- created specfile to build libc, shlibs, libd, libcinfo - localedb, timezone, -- former libc renamed to libc5. From dbe4700584e88a8602c5f498ea12ee935838799c7da75c01783c93ee03cd5105 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 28 Aug 2009 15:43:28 +0000 Subject: [PATCH 008/204] Accepting request 18871 from Base:System Copy from Base:System/glibc based on submit request 18871 from user mlschroe OBS-URL: https://build.opensuse.org/request/show/18871 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=8 --- glibc-2.10.1-4253a1e0b2.tar.bz2 | 3 --- glibc-2.10.1-aa152ec6ad.tar.bz2 | 3 +++ glibc-2.3.5-nscd-zeronegtimeout.diff | 10 +++++----- glibc.changes | 14 ++++++++++++++ glibc.spec | 6 +++--- 5 files changed, 25 insertions(+), 11 deletions(-) delete mode 100644 glibc-2.10.1-4253a1e0b2.tar.bz2 create mode 100644 glibc-2.10.1-aa152ec6ad.tar.bz2 diff --git a/glibc-2.10.1-4253a1e0b2.tar.bz2 b/glibc-2.10.1-4253a1e0b2.tar.bz2 deleted file mode 100644 index fbaa781..0000000 --- a/glibc-2.10.1-4253a1e0b2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c07cb9113c217c4e6b60994ce065b656a0e39440108f3054b0e3c4c4156b4383 -size 15594411 diff --git a/glibc-2.10.1-aa152ec6ad.tar.bz2 b/glibc-2.10.1-aa152ec6ad.tar.bz2 new file mode 100644 index 0000000..d9a2c44 --- /dev/null +++ b/glibc-2.10.1-aa152ec6ad.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:471795a00773501701112c90b7d0f4925e83d9922d9c300ad7c7c39804678326 +size 15601511 diff --git a/glibc-2.3.5-nscd-zeronegtimeout.diff b/glibc-2.3.5-nscd-zeronegtimeout.diff index 99abb31..dbab3d3 100644 --- a/glibc-2.3.5-nscd-zeronegtimeout.diff +++ b/glibc-2.3.5-nscd-zeronegtimeout.diff @@ -16,7 +16,7 @@ Index: nscd/aicache.c + dh->usable = false; + dataset = NULL; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -38,7 +38,7 @@ Index: nscd/grpcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -60,7 +60,7 @@ Index: nscd/hstcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -82,7 +82,7 @@ Index: nscd/initgrcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; @@ -104,7 +104,7 @@ Index: nscd/pwdcache.c + if (dh != NULL) + dh->usable = false; + } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) == NULL) ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) { dataset->head.allocsize = sizeof (struct dataset) + req->key_len; dataset->head.recsize = total; diff --git a/glibc.changes b/glibc.changes index bc08864..9893534 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de + +- make patch0 usage consistent + +------------------------------------------------------------------- +Thu Aug 20 19:02:31 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-aa152ec6ad of release/2.10/master branch + (Still the same source is used for glibc-ports.) - random minor fixes + * REVERTED invalid fix of broken locking within nscd [bnc#510788] +- Fix nscd handling of zero negative timeout for some databases + [bnc#523154,bnc#510788] + ------------------------------------------------------------------- Fri Jul 17 01:14:16 CEST 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 43ef1cc..c731684 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,13 +69,13 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 5 +Release: 6 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build # The glibc source comes from http://repo.or.cz/w/glibc/pb-stable.git # glibc-2.10-branch. -Source: glibc-%{version}-4253a1e0b2.tar.bz2 +Source: glibc-%{version}-aa152ec6ad.tar.bz2 Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -294,7 +294,7 @@ versions of your software. # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 -a 14 %endif -%patch +%patch0 # libNoVersion part is only active on ix86 %patch1 %patch2 From e6cb67a3e44c0f3d98cda4a5cc3fb55c88a5e32fd0fa558913e5aec1b808e6a0 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Thu, 10 Sep 2009 10:38:51 +0000 Subject: [PATCH 009/204] Accepting request 20011 from Base:System Copy from Base:System/glibc based on submit request 20011 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/20011 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=9 --- ...h-1.0.diff => crypt_blowfish-1.0-suse.diff | 633 ++---------------- crypt_blowfish-glibc-2.3.diff | 105 --- glibc-2.8-clone.diff | 2 + glibc-nscd-assert.diff | 136 ++++ glibc-utmp-timeout-raise.diff | 16 + glibc.changes | 11 + glibc.spec | 10 +- 7 files changed, 220 insertions(+), 693 deletions(-) rename crypt_blowfish-1.0.diff => crypt_blowfish-1.0-suse.diff (61%) delete mode 100644 crypt_blowfish-glibc-2.3.diff create mode 100644 glibc-nscd-assert.diff create mode 100644 glibc-utmp-timeout-raise.diff diff --git a/crypt_blowfish-1.0.diff b/crypt_blowfish-1.0-suse.diff similarity index 61% rename from crypt_blowfish-1.0.diff rename to crypt_blowfish-1.0-suse.diff index 32e5be7..506adbf 100644 --- a/crypt_blowfish-1.0.diff +++ b/crypt_blowfish-1.0-suse.diff @@ -49,7 +49,7 @@ diff -ruN crypt-/crypt_blowfish.c crypt/crypt_blowfish.c +#endif + +#ifdef __i386__ -+#define BF_ASM 1 ++#define BF_ASM 0 /* original OW patch has 1 */ +#define BF_SCALE 1 +#elif defined(__alpha__) || defined(__hppa__) +#define BF_ASM 0 @@ -745,586 +745,51 @@ diff -ruN crypt-/crypt_blowfish.c crypt/crypt_blowfish.c + + return output; +} -diff -ruN crypt-/crypt_gensalt.c crypt/crypt_gensalt.c ---- crypt-/crypt_gensalt.c 1970-01-01 01:00:00.000000000 +0100 -+++ crypt/crypt_gensalt.c 2006-09-20 20:56:59.000000000 +0200 -@@ -0,0 +1,111 @@ -+/* -+ * Written by Solar Designer and placed in the public domain. -+ * See crypt_blowfish.c for more information. -+ * -+ * This file contains salt generation functions for the traditional and -+ * other common crypt(3) algorithms, except for bcrypt which is defined -+ * entirely in crypt_blowfish.c. -+ */ -+ -+#include -+ -+#include -+#ifndef __set_errno -+#define __set_errno(val) errno = (val) -+#endif -+ -+#undef __CONST -+#ifdef __GNUC__ -+#define __CONST __const -+#else -+#define __CONST -+#endif -+ -+unsigned char _crypt_itoa64[64 + 1] = -+ "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; -+ -+char *_crypt_gensalt_traditional_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size) -+{ -+ if (size < 2 || output_size < 2 + 1 || (count && count != 25)) { -+ if (output_size > 0) output[0] = '\0'; -+ __set_errno((output_size < 2 + 1) ? ERANGE : EINVAL); -+ return NULL; -+ } -+ -+ output[0] = _crypt_itoa64[(unsigned int)input[0] & 0x3f]; -+ output[1] = _crypt_itoa64[(unsigned int)input[1] & 0x3f]; -+ output[2] = '\0'; -+ -+ return output; -+} -+ -+char *_crypt_gensalt_extended_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size) -+{ -+ unsigned long value; -+ -+/* Even iteration counts make it easier to detect weak DES keys from a look -+ * at the hash, so they should be avoided */ -+ if (size < 3 || output_size < 1 + 4 + 4 + 1 || -+ (count && (count > 0xffffff || !(count & 1)))) { -+ if (output_size > 0) output[0] = '\0'; -+ __set_errno((output_size < 1 + 4 + 4 + 1) ? ERANGE : EINVAL); -+ return NULL; -+ } -+ -+ if (!count) count = 725; -+ -+ output[0] = '_'; -+ output[1] = _crypt_itoa64[count & 0x3f]; -+ output[2] = _crypt_itoa64[(count >> 6) & 0x3f]; -+ output[3] = _crypt_itoa64[(count >> 12) & 0x3f]; -+ output[4] = _crypt_itoa64[(count >> 18) & 0x3f]; -+ value = (unsigned long)(unsigned char)input[0] | -+ ((unsigned long)(unsigned char)input[1] << 8) | -+ ((unsigned long)(unsigned char)input[2] << 16); -+ output[5] = _crypt_itoa64[value & 0x3f]; -+ output[6] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ output[7] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ output[8] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ output[9] = '\0'; -+ -+ return output; -+} -+ -+char *_crypt_gensalt_md5_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size) -+{ -+ unsigned long value; -+ -+ if (size < 3 || output_size < 3 + 4 + 1 || (count && count != 1000)) { -+ if (output_size > 0) output[0] = '\0'; -+ __set_errno((output_size < 3 + 4 + 1) ? ERANGE : EINVAL); -+ return NULL; -+ } -+ -+ output[0] = '$'; -+ output[1] = '1'; -+ output[2] = '$'; -+ value = (unsigned long)(unsigned char)input[0] | -+ ((unsigned long)(unsigned char)input[1] << 8) | -+ ((unsigned long)(unsigned char)input[2] << 16); -+ output[3] = _crypt_itoa64[value & 0x3f]; -+ output[4] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ output[5] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ output[6] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ output[7] = '\0'; -+ -+ if (size >= 6 && output_size >= 3 + 4 + 4 + 1) { -+ value = (unsigned long)(unsigned char)input[3] | -+ ((unsigned long)(unsigned char)input[4] << 8) | -+ ((unsigned long)(unsigned char)input[5] << 16); -+ output[7] = _crypt_itoa64[value & 0x3f]; -+ output[8] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ output[9] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ output[10] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ output[11] = '\0'; -+ } -+ -+ return output; -+} -diff -ruN crypt-/ow-crypt.h crypt/ow-crypt.h ---- crypt-/ow-crypt.h 1970-01-01 01:00:00.000000000 +0100 -+++ crypt/ow-crypt.h 2006-09-20 20:56:59.000000000 +0200 -@@ -0,0 +1,34 @@ -+/* -+ * Written by Solar Designer and placed in the public domain. -+ * See crypt_blowfish.c for more information. -+ */ -+ -+#ifndef _OW_CRYPT_H -+#define _OW_CRYPT_H -+ -+#undef __CONST -+#ifdef __GNUC__ -+#define __CONST __const -+#else -+#define __CONST -+#endif -+ -+#ifndef __SKIP_GNU -+extern char *crypt(__CONST char *key, __CONST char *setting); -+extern char *crypt_r(__CONST char *key, __CONST char *setting, void *data); -+#endif -+ -+#ifndef __SKIP_OW -+extern char *crypt_rn(__CONST char *key, __CONST char *setting, -+ void *data, int size); -+extern char *crypt_ra(__CONST char *key, __CONST char *setting, -+ void **data, int *size); -+extern char *crypt_gensalt(__CONST char *prefix, unsigned long count, -+ __CONST char *input, int size); -+extern char *crypt_gensalt_rn(__CONST char *prefix, unsigned long count, -+ __CONST char *input, int size, char *output, int output_size); -+extern char *crypt_gensalt_ra(__CONST char *prefix, unsigned long count, -+ __CONST char *input, int size); -+#endif -+ -+#endif -diff -ruN crypt-/wrapper.c crypt/wrapper.c ---- crypt-/wrapper.c 1970-01-01 01:00:00.000000000 +0100 -+++ crypt/wrapper.c 2006-09-20 20:56:59.000000000 +0200 -@@ -0,0 +1,426 @@ -+/* -+ * Written by Solar Designer and placed in the public domain. -+ * See crypt_blowfish.c for more information. -+ */ -+ -+#include -+#include -+ -+#include -+#ifndef __set_errno -+#define __set_errno(val) errno = (val) -+#endif -+ -+#ifdef TEST -+#include -+#include -+#include -+#include -+#include -+#ifdef TEST_THREADS -+#include -+#endif -+#endif -+ -+#define CRYPT_OUTPUT_SIZE (7 + 22 + 31 + 1) -+#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) -+ -+#if defined(__GLIBC__) && defined(_LIBC) -+#define __SKIP_GNU -+#endif -+#include "ow-crypt.h" -+ -+extern char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting, -+ char *output, int size); -+extern char *_crypt_gensalt_blowfish_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size); -+ -+extern unsigned char _crypt_itoa64[]; -+extern char *_crypt_gensalt_traditional_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size); -+extern char *_crypt_gensalt_extended_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size); -+extern char *_crypt_gensalt_md5_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size); -+ -+#if defined(__GLIBC__) && defined(_LIBC) -+/* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ -+#include "crypt.h" -+extern char *__md5_crypt_r(const char *key, const char *salt, -+ char *buffer, int buflen); -+/* crypt-entry.c needs to be patched to define __des_crypt_r rather than -+ * __crypt_r, and not define crypt_r and crypt at all */ -+extern char *__des_crypt_r(const char *key, const char *salt, -+ struct crypt_data *data); -+extern struct crypt_data _ufc_foobar; -+#endif -+ -+static int _crypt_data_alloc(void **data, int *size, int need) -+{ -+ void *updated; -+ -+ if (*data && *size >= need) return 0; -+ -+ updated = realloc(*data, need); -+ -+ if (!updated) { -+#ifndef __GLIBC__ -+ /* realloc(3) on glibc sets errno, so we don't need to bother */ -+ __set_errno(ENOMEM); -+#endif -+ return -1; -+ } -+ -+#if defined(__GLIBC__) && defined(_LIBC) -+ if (need >= sizeof(struct crypt_data)) -+ ((struct crypt_data *)updated)->initialized = 0; -+#endif -+ -+ *data = updated; -+ *size = need; -+ -+ return 0; -+} -+ -+static char *_crypt_retval_magic(char *retval, __CONST char *setting, -+ char *output) -+{ -+ if (retval) return retval; -+ -+ output[0] = '*'; -+ output[1] = '0'; -+ output[2] = '\0'; -+ -+ if (setting[0] == '*' && setting[1] == '0') -+ output[1] = '1'; -+ -+ return output; -+} -+ -+#if defined(__GLIBC__) && defined(_LIBC) -+/* -+ * Applications may re-use the same instance of struct crypt_data without -+ * resetting the initialized field in order to let crypt_r() skip some of -+ * its initialization code. Thus, it is important that our multiple hashing -+ * algorithms either don't conflict with each other in their use of the -+ * data area or reset the initialized field themselves whenever required. -+ * Currently, the hashing algorithms simply have no conflicts: the first -+ * field of struct crypt_data is the 128-byte large DES key schedule which -+ * __des_crypt_r() calculates each time it is called while the two other -+ * hashing algorithms use less than 128 bytes of the data area. -+ */ -+ -+char *__crypt_rn(__const char *key, __const char *setting, -+ void *data, int size) -+{ -+ if (setting[0] == '$' && setting[1] == '2') -+ return _crypt_blowfish_rn(key, setting, (char *)data, size); -+ if (setting[0] == '$' && setting[1] == '1') -+ return __md5_crypt_r(key, setting, (char *)data, size); -+ if (setting[0] == '$' || setting[0] == '_') { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ if (size >= sizeof(struct crypt_data)) -+ return __des_crypt_r(key, setting, (struct crypt_data *)data); -+ __set_errno(ERANGE); -+ return NULL; -+} -+ -+char *__crypt_ra(__const char *key, __const char *setting, -+ void **data, int *size) -+{ -+ if (setting[0] == '$' && setting[1] == '2') { -+ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) -+ return NULL; -+ return _crypt_blowfish_rn(key, setting, (char *)*data, *size); -+ } -+ if (setting[0] == '$' && setting[1] == '1') { -+ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) -+ return NULL; -+ return __md5_crypt_r(key, setting, (char *)*data, *size); -+ } -+ if (setting[0] == '$' || setting[0] == '_') { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ if (_crypt_data_alloc(data, size, sizeof(struct crypt_data))) -+ return NULL; -+ return __des_crypt_r(key, setting, (struct crypt_data *)*data); -+} -+ -+char *__crypt_r(__const char *key, __const char *setting, -+ struct crypt_data *data) -+{ -+ return _crypt_retval_magic( -+ __crypt_rn(key, setting, data, sizeof(*data)), -+ setting, (char *)data); -+} -+ -+char *__crypt(__const char *key, __const char *setting) -+{ -+ return _crypt_retval_magic( -+ __crypt_rn(key, setting, &_ufc_foobar, sizeof(_ufc_foobar)), -+ setting, (char *)&_ufc_foobar); -+} -+#else -+char *crypt_rn(__CONST char *key, __CONST char *setting, void *data, int size) -+{ -+ return _crypt_blowfish_rn(key, setting, (char *)data, size); -+} -+ -+char *crypt_ra(__CONST char *key, __CONST char *setting, -+ void **data, int *size) -+{ -+ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) -+ return NULL; -+ return _crypt_blowfish_rn(key, setting, (char *)*data, *size); -+} -+ -+char *crypt_r(__CONST char *key, __CONST char *setting, void *data) -+{ -+ return _crypt_retval_magic( -+ crypt_rn(key, setting, data, CRYPT_OUTPUT_SIZE), -+ setting, (char *)data); -+} -+ -+char *crypt(__CONST char *key, __CONST char *setting) -+{ -+ static char output[CRYPT_OUTPUT_SIZE]; -+ -+ return _crypt_retval_magic( -+ crypt_rn(key, setting, output, sizeof(output)), -+ setting, output); -+} -+ -+#define __crypt_gensalt_rn crypt_gensalt_rn -+#define __crypt_gensalt_ra crypt_gensalt_ra -+#define __crypt_gensalt crypt_gensalt -+#endif -+ -+char *__crypt_gensalt_rn(__CONST char *prefix, unsigned long count, -+ __CONST char *input, int size, char *output, int output_size) -+{ -+ char *(*use)(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size); -+ -+ /* This may be supported on some platforms in the future */ -+ if (!input) { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ -+ if (!strncmp(prefix, "$2a$", 4)) -+ use = _crypt_gensalt_blowfish_rn; -+ else -+ if (!strncmp(prefix, "$1$", 3)) -+ use = _crypt_gensalt_md5_rn; -+ else -+ if (prefix[0] == '_') -+ use = _crypt_gensalt_extended_rn; -+ else -+ if (!prefix[0] || -+ (prefix[0] && prefix[1] && -+ memchr(_crypt_itoa64, prefix[0], 64) && -+ memchr(_crypt_itoa64, prefix[1], 64))) -+ use = _crypt_gensalt_traditional_rn; -+ else { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ -+ return use(count, input, size, output, output_size); -+} -+ -+char *__crypt_gensalt_ra(__CONST char *prefix, unsigned long count, -+ __CONST char *input, int size) -+{ -+ char output[CRYPT_GENSALT_OUTPUT_SIZE]; -+ char *retval; -+ -+ retval = __crypt_gensalt_rn(prefix, count, -+ input, size, output, sizeof(output)); -+ -+ if (retval) { -+ retval = strdup(retval); -+#ifndef __GLIBC__ -+ /* strdup(3) on glibc sets errno, so we don't need to bother */ -+ if (!retval) -+ __set_errno(ENOMEM); -+#endif -+ } -+ -+ return retval; -+} -+ -+char *__crypt_gensalt(__CONST char *prefix, unsigned long count, -+ __CONST char *input, int size) -+{ -+ static char output[CRYPT_GENSALT_OUTPUT_SIZE]; -+ -+ return __crypt_gensalt_rn(prefix, count, -+ input, size, output, sizeof(output)); -+} -+ -+#if defined(__GLIBC__) && defined(_LIBC) -+weak_alias(__crypt_rn, crypt_rn) -+weak_alias(__crypt_ra, crypt_ra) -+weak_alias(__crypt_r, crypt_r) -+weak_alias(__crypt, crypt) -+weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) -+weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) -+weak_alias(__crypt_gensalt, crypt_gensalt) -+#endif -+ -+#ifdef TEST -+static struct { -+ char *hash; -+ char *pw; -+} tests[] = { -+ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW", -+ "U*U"}, -+ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwK", -+ "U*U*"}, -+ {"$2a$05$XXXXXXXXXXXXXXXXXXXXXOAcXxm9kjPGEMsLznoKqmqw7tc8WCx4a", -+ "U*U*U"}, -+ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy", -+ ""}, -+ {"$2a$05$abcdefghijklmnopqrstuu5s2v8.iXieOjg/.AySBTTZIIVFJeBui", -+ "0123456789abcdefghijklmnopqrstuvwxyz" -+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"}, -+ {NULL, NULL} -+}; -+ -+#define which tests[0] -+ -+static volatile sig_atomic_t running; -+ -+static void handle_timer(int signum) -+{ -+ running = 0; -+} -+ -+static void *run(void *arg) -+{ -+ unsigned long count = 0; -+ int i = 0; -+ void *data = NULL; -+ int size = 0x12345678; -+ -+ do { -+ if (strcmp(crypt_ra(tests[i].pw, tests[i].hash, &data, &size), -+ tests[i].hash)) { -+ printf("%d: FAILED (crypt_ra/%d/%lu)\n", -+ (char *)arg - (char *)0, i, count); -+ free(data); -+ return NULL; -+ } -+ if (!tests[++i].hash) i = 0; -+ count++; -+ } while (running); -+ -+ free(data); -+ return count + (char *)0; -+} -+ -+int main(void) -+{ -+ struct itimerval it; -+ struct tms buf; -+ clock_t start_real, start_virtual, end_real, end_virtual; -+ unsigned long count; -+ void *data; -+ int size; -+ char *setting1, *setting2; -+ int i; -+#ifdef TEST_THREADS -+ pthread_t t[TEST_THREADS]; -+ void *t_retval; -+#endif -+ -+ for (i = 0; tests[i].hash; i++) -+ if (strcmp(crypt(tests[i].pw, tests[i].hash), tests[i].hash)) { -+ printf("FAILED (crypt/%d)\n", i); -+ return 1; -+ } -+ -+ data = NULL; -+ size = 0x12345678; -+ for (i = 0; tests[i].hash; i++) -+ if (strcmp(crypt_ra(tests[i].pw, tests[i].hash, &data, &size), -+ tests[i].hash)) { -+ printf("FAILED (crypt_ra/%d)\n", i); -+ return 1; -+ } -+ -+ setting1 = crypt_gensalt(which.hash, 12, data, size); -+ if (!setting1 || strncmp(setting1, "$2a$12$", 7)) { -+ puts("FAILED (crypt_gensalt)\n"); -+ return 1; -+ } -+ -+ setting2 = crypt_gensalt_ra(setting1, 12, data, size); -+ if (strcmp(setting1, setting2)) { -+ puts("FAILED (crypt_gensalt_ra/1)\n"); -+ return 1; -+ } -+ -+ (*(char *)data)++; -+ setting1 = crypt_gensalt_ra(setting2, 12, data, size); -+ if (!strcmp(setting1, setting2)) { -+ puts("FAILED (crypt_gensalt_ra/2)\n"); -+ return 1; -+ } -+ -+ free(setting1); -+ free(setting2); -+ free(data); -+ -+ running = 1; -+ signal(SIGALRM, handle_timer); -+ -+ memset(&it, 0, sizeof(it)); -+ it.it_value.tv_sec = 5; -+ setitimer(ITIMER_REAL, &it, NULL); -+ -+ start_real = times(&buf); -+ start_virtual = buf.tms_utime + buf.tms_stime; -+ -+ count = (char *)run((char *)0) - (char *)0; -+ -+ end_real = times(&buf); -+ end_virtual = buf.tms_utime + buf.tms_stime; -+ if (end_virtual == start_virtual) end_virtual++; -+ -+ printf("%.1f c/s real, %.1f c/s virtual\n", -+ (float)count * CLK_TCK / (end_real - start_real), -+ (float)count * CLK_TCK / (end_virtual - start_virtual)); -+ -+#ifdef TEST_THREADS -+ running = 1; -+ it.it_value.tv_sec = 60; -+ setitimer(ITIMER_REAL, &it, NULL); -+ start_real = times(&buf); -+ -+ for (i = 0; i < TEST_THREADS; i++) -+ if (pthread_create(&t[i], NULL, run, i + (char *)0)) { -+ perror("pthread_create"); -+ return 1; -+ } -+ -+ for (i = 0; i < TEST_THREADS; i++) { -+ if (pthread_join(t[i], &t_retval)) { -+ perror("pthread_join"); -+ continue; -+ } -+ if (!t_retval) continue; -+ count = (char *)t_retval - (char *)0; -+ end_real = times(&buf); -+ printf("%d: %.1f c/s real\n", i, -+ (float)count * CLK_TCK / (end_real - start_real)); -+ } -+#endif -+ -+ return 0; -+} -+#endif +diff --git a/crypt/Makefile b/crypt/Makefile +index b9c8797..6c51263 100644 +--- crypt/Makefile ++++ crypt/Makefile +@@ -27,7 +27,7 @@ extra-libs := libcrypt + extra-libs-others := $(extra-libs) + + libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ +- crypt_util ++ crypt_util crypt_blowfish + + tests := cert md5c-test sha256c-test sha512c-test + +diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c +index fdddad2..6e6ba58 100644 +--- crypt/crypt-entry.c ++++ crypt/crypt-entry.c +@@ -61,6 +61,8 @@ extern char *__sha256_crypt (const char *key, const char *salt); + extern char *__sha512_crypt_r (const char *key, const char *salt, + char *buffer, int buflen); + extern char *__sha512_crypt (const char *key, const char *salt); ++extern char *_crypt_blowfish_rn (const char *key, const char *setting, ++ char *output, int size); + #endif + + /* Define our magic string to mark salt for MD5 encryption +@@ -74,6 +76,9 @@ static const char sha256_salt_prefix[] = "$5$"; + /* Magic string for SHA512 encryption. */ + static const char sha512_salt_prefix[] = "$6$"; + ++/* Magic string for Blowfish encryption. */ ++static const char blowfish_salt_prefix[] = "$2a$"; ++ + /* For use by the old, non-reentrant routines (crypt/encrypt/setkey) */ + extern struct crypt_data _ufc_foobar; + +@@ -106,6 +111,11 @@ __crypt_r (key, salt, data) + if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0) + return __sha512_crypt_r (key, salt, (char *) data, + sizeof (struct crypt_data)); ++ ++ /* Try to find out whether we have to use Blowfish encryption replacement. */ ++ if (strncmp (blowfish_salt_prefix, salt, sizeof (blowfish_salt_prefix) - 1) == 0) ++ return _crypt_blowfish_rn (key, salt, (char *) data, ++ sizeof (struct crypt_data)); + #endif + + /* diff --git a/crypt_blowfish-glibc-2.3.diff b/crypt_blowfish-glibc-2.3.diff deleted file mode 100644 index e46ffcd..0000000 --- a/crypt_blowfish-glibc-2.3.diff +++ /dev/null @@ -1,105 +0,0 @@ ---- crypt/crypt-entry.c 2001-07-06 09:37:47.000000000 +0200 -+++ crypt/crypt-entry.c 2003-10-01 11:23:27.000000000 +0200 -@@ -70,7 +70,7 @@ - */ - - char * --__crypt_r (key, salt, data) -+__des_crypt_r (key, salt, data) - const char *key; - const char *salt; - struct crypt_data * __restrict data; -@@ -115,6 +115,7 @@ - _ufc_output_conversion_r (res[0], res[1], salt, data); - return data->crypt_3_buf; - } -+#if 0 - weak_alias (__crypt_r, crypt_r) - - char * -@@ -147,3 +148,4 @@ - return crypt (key, salt); - } - #endif -+#endif ---- crypt/crypt-private.h 2001-07-06 09:37:47.000000000 +0200 -+++ crypt/crypt-private.h 2003-10-01 11:23:27.000000000 +0200 -@@ -55,6 +55,8 @@ - /* crypt-entry.c */ - extern char *__crypt_r (__const char *__key, __const char *__salt, - struct crypt_data * __restrict __data); -+extern char *__des_crypt_r (__const char *__key, __const char *__salt, -+ struct crypt_data * __restrict __data); - extern char *fcrypt (__const char *key, __const char *salt); - - #endif /* crypt-private.h */ ---- crypt/Makefile~ 2007-11-06 05:27:13.635014000 +0100 -+++ crypt/Makefile 2007-11-06 05:27:27.500142000 +0100 -@@ -27,7 +27,7 @@ - extra-libs-others := $(extra-libs) - - libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ -- crypt_util -+ crypt_util crypt_blowfish crypt_gensalt wrapper - - tests := cert md5c-test sha256c-test sha512c-test - ---- crypt/ow-crypt.h 2001-05-01 13:14:31.000000000 +0200 -+++ crypt/ow-crypt.h 2003-10-01 11:23:27.000000000 +0200 -@@ -13,12 +13,6 @@ - #define __CONST - #endif - --#ifndef __SKIP_GNU --extern char *crypt(__CONST char *key, __CONST char *setting); --extern char *crypt_r(__CONST char *key, __CONST char *setting, void *data); --#endif -- --#ifndef __SKIP_OW - extern char *crypt_rn(__CONST char *key, __CONST char *setting, - void *data, int size); - extern char *crypt_ra(__CONST char *key, __CONST char *setting, -@@ -29,6 +23,5 @@ - __CONST char *input, int size, char *output, int output_size); - extern char *crypt_gensalt_ra(__CONST char *prefix, unsigned long count, - __CONST char *input, int size); --#endif - - #endif ---- crypt/wrapper.c 2002-11-08 01:26:31.000000000 +0100 -+++ crypt/wrapper.c 2003-10-01 11:59:03.000000000 +0200 -@@ -45,12 +45,11 @@ - #if defined(__GLIBC__) && defined(_LIBC) - /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ - #include "crypt.h" -+#include "ufc-crypt.h" -+#include "crypt-private.h" -+ - extern char *__md5_crypt_r(const char *key, const char *salt, - char *buffer, int buflen); --/* crypt-entry.c needs to be patched to define __des_crypt_r rather than -- * __crypt_r, and not define crypt_r and crypt at all */ --extern char *__des_crypt_r(const char *key, const char *salt, -- struct crypt_data *data); - extern struct crypt_data _ufc_foobar; - #endif - -@@ -266,6 +264,7 @@ - weak_alias(__crypt_ra, crypt_ra) - weak_alias(__crypt_r, crypt_r) - weak_alias(__crypt, crypt) -+weak_alias(__crypt, fcrypt) - weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) - weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) - weak_alias(__crypt_gensalt, crypt_gensalt) ---- crypt/crypt_blowfish.c -+++ crypt/crypt_blowfish.c 2005/04/28 10:59:24 -@@ -45,7 +45,7 @@ - #endif - - #ifdef __i386__ --#define BF_ASM 1 -+#define BF_ASM 0 - #define BF_SCALE 1 - #elif defined(__alpha__) || defined(__hppa__) - #define BF_ASM 0 diff --git a/glibc-2.8-clone.diff b/glibc-2.8-clone.diff index ed8f017..7922b44 100644 --- a/glibc-2.8-clone.diff +++ b/glibc-2.8-clone.diff @@ -1,3 +1,5 @@ +http://sources.redhat.com/bugzilla/show_bug.cgi?id=6693 + Index: sysdeps/unix/sysv/linux/x86_64/clone.S =================================================================== RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/x86_64/clone.S,v diff --git a/glibc-nscd-assert.diff b/glibc-nscd-assert.diff new file mode 100644 index 0000000..8b781bc --- /dev/null +++ b/glibc-nscd-assert.diff @@ -0,0 +1,136 @@ +2009-08-18 Anders Johansson + + * nscd/aicache.c: Fix mixing up dataset and dataset->resp + offsets and record sizes in assert()s and response sending. + * nscd/grpcache.c: Likewise. + * nscd/hstcache.c: Likewise. + * nscd/initgrcache.c: Likewise. + * nscd/pwdcache.c: Likewise. + +diff -ur glibc-2.4.orig/nscd/aicache.c glibc-2.4/nscd/aicache.c +--- nscd/aicache.c 2009-06-18 14:20:53.000000000 +0200 ++++ nscd/aicache.c 2009-06-18 14:21:20.000000000 +0200 +@@ -450,6 +450,6 @@ + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +- assert ((char *) &dataset->resp - (char *) db->head + total ++ assert ((char *) dataset - (char *) db->head + total + <= (sizeof (struct database_pers_head) + + db->head->module * sizeof (ref_t) +@@ -458,6 +458,6 @@ + ssize_t written; + written = sendfileall (fd, db->wr_fd, (char *) &dataset->resp +- - (char *) db->head, total); ++ - (char *) db->head, dataset->head.recsize); + # ifndef __ASSUME_SENDFILE + if (written == -1 && errno == ENOSYS) + goto use_write; +@@ -469,7 +469,7 @@ + use_write: + # endif + #endif +- writeall (fd, &dataset->resp, total); ++ writeall (fd, &dataset->resp, dataset->head.recsize); + } + + goto out; +diff -ur glibc-2.4.orig/nscd/grpcache.c glibc-2.4/nscd/grpcache.c +--- nscd/grpcache.c 2009-06-18 14:20:53.000000000 +0200 ++++ nscd/grpcache.c 2009-06-18 14:21:20.000000000 +0200 +@@ -317,14 +317,14 @@ + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +- assert ((char *) &dataset->resp - (char *) db->head ++ assert ((char *) dataset - (char *) db->head + + total + <= (sizeof (struct database_pers_head) + + db->head->module * sizeof (ref_t) + + db->head->data_size)); + written = sendfileall (fd, db->wr_fd, + (char *) &dataset->resp +- - (char *) db->head, total); ++ - (char *) db->head, dataset->head.recsize); + # ifndef __ASSUME_SENDFILE + if (written == -1 && errno == ENOSYS) + goto use_write; +@@ -335,7 +335,7 @@ + use_write: + # endif + #endif +- written = writeall (fd, &dataset->resp, total); ++ written = writeall (fd, &dataset->resp, dataset->head.recsize); + } + + /* Add the record to the database. But only if it has not been +diff -ur glibc-2.4.orig/nscd/hstcache.c glibc-2.4/nscd/hstcache.c +--- nscd/hstcache.c 2009-06-18 14:20:53.000000000 +0200 ++++ nscd/hstcache.c 2009-06-18 14:22:22.000000000 +0200 +@@ -365,7 +365,7 @@ + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +- assert ((char *) &dataset->resp - (char *) db->head ++ assert ((char *) dataset - (char *) db->head + + total + <= (sizeof (struct database_pers_head) + + db->head->module * sizeof (ref_t) +diff -ur glibc-2.4.orig/nscd/initgrcache.c glibc-2.4/nscd/initgrcache.c +--- nscd/initgrcache.c 2009-06-18 14:20:53.000000000 +0200 ++++ nscd/initgrcache.c 2009-06-18 14:21:20.000000000 +0200 +@@ -367,14 +367,14 @@ + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +- assert ((char *) &dataset->resp - (char *) db->head ++ assert ((char *) dataset - (char *) db->head + + total + <= (sizeof (struct database_pers_head) + + db->head->module * sizeof (ref_t) + + db->head->data_size)); + written = sendfileall (fd, db->wr_fd, + (char *) &dataset->resp +- - (char *) db->head, total); ++ - (char *) db->head, dataset->head.recsize); + # ifndef __ASSUME_SENDFILE + if (written == -1 && errno == ENOSYS) + goto use_write; +@@ -385,7 +385,7 @@ + use_write: + # endif + #endif +- written = writeall (fd, &dataset->resp, total); ++ written = writeall (fd, &dataset->resp, dataset->head.recsize); + } + + +diff -ur glibc-2.4.orig/nscd/pwdcache.c glibc-2.4/nscd/pwdcache.c +--- nscd/pwdcache.c 2009-06-18 14:20:53.000000000 +0200 ++++ nscd/pwdcache.c 2009-06-18 14:21:20.000000000 +0200 +@@ -311,14 +311,14 @@ + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +- assert ((char *) &dataset->resp - (char *) db->head ++ assert ((char *) dataset - (char *) db->head + + total + <= (sizeof (struct database_pers_head) + + db->head->module * sizeof (ref_t) + + db->head->data_size)); + written = sendfileall (fd, db->wr_fd, + (char *) &dataset->resp +- - (char *) db->head, total); ++ - (char *) db->head, dataset->head.recsize ); + # ifndef __ASSUME_SENDFILE + if (written == -1 && errno == ENOSYS) + goto use_write; +@@ -329,7 +329,7 @@ + use_write: + # endif + #endif +- written = writeall (fd, &dataset->resp, total); ++ written = writeall (fd, &dataset->resp, dataset->head.recsize); + } + + diff --git a/glibc-utmp-timeout-raise.diff b/glibc-utmp-timeout-raise.diff new file mode 100644 index 0000000..26972f9 --- /dev/null +++ b/glibc-utmp-timeout-raise.diff @@ -0,0 +1,16 @@ +On extremely loaded systems, the default timeout may not be enough and some +entries may not appear in the utmp log. With 30s login delay, the system +should still stay usable for repair in case the utmp locking somehow breaks +down. + +--- login/utmp_file.c~ 2009-06-16 12:36:31.000000000 +0200 ++++ login/utmp_file.c 2009-06-16 12:36:33.000000000 +0200 +@@ -42,7 +42,7 @@ + + /* Locking timeout. */ + #ifndef TIMEOUT +-# define TIMEOUT 1 ++# define TIMEOUT 30 + #endif + + /* Do-nothing handler for locking timeout. */ diff --git a/glibc.changes b/glibc.changes index 9893534..5006f72 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Sat Sep 5 23:19:51 CEST 2009 - pbaudis@suse.cz + +- Raise utmp locking timeout from 1s to 30s to ensure logins get recorded + even on heavily loaded systems [bnc#486631] +- Fix invalid pointer handling in some nscd assertions and the code to send + data to the client [bnc#513617] +- Radically trim down the Blowfish support patch - keeps only crypt_blowfish + from the original OWL patch, but does the rest within the current glibc + crypt infrastructure [bnc#529495] + ------------------------------------------------------------------- Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de diff --git a/glibc.spec b/glibc.spec index c731684..52f68fc 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,7 +69,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 6 +Release: 7 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -97,8 +97,7 @@ Patch1: glibc-2.3.90-noversion.diff Patch2: glibc-2.3.90-fnmatch.diff Patch3: resolv.dynamic.diff Patch4: glibc-2.3.locales.diff.bz2 -Patch5: crypt_blowfish-1.0.diff -Patch6: crypt_blowfish-glibc-2.3.diff +Patch5: crypt_blowfish-1.0-suse.diff Patch7: glibc-version.diff Patch8: glibc-2.4.90-revert-only-euro.diff Patch9: glibc-2.3-regcomp.diff @@ -138,6 +137,8 @@ Patch44: glibc-cpusetsize.diff Patch45: glibc-nis-splitgroups.diff Patch46: glibc-2.10-mcheck-free-race.diff Patch47: glibc-2.10.99-ia64-include.diff +Patch48: glibc-utmp-timeout-raise.diff +Patch49: glibc-nscd-assert.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 @@ -301,7 +302,6 @@ versions of your software. %patch3 %patch4 %patch5 -%patch6 %patch7 %patch8 %patch9 @@ -343,6 +343,8 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch45 %patch46 %patch47 +%patch48 +%patch49 %ifarch %arm armv5tel armv7l %patch500 %patch501 From 70fef01bde50a0c6d4340d92049dab558f757ad043baafa42703d31571c829ba Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Wed, 16 Sep 2009 20:09:07 +0000 Subject: [PATCH 010/204] Accepting request 20423 from Base:System Copy from Base:System/glibc based on submit request 20423 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/20423 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=10 --- crypt_blowfish-1.0-suse.diff | 2 +- glibc.changes | 6 +++++ glibc.spec | 8 +++++-- usr.sbin.nscd | 43 ++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 usr.sbin.nscd diff --git a/crypt_blowfish-1.0-suse.diff b/crypt_blowfish-1.0-suse.diff index 506adbf..3f16758 100644 --- a/crypt_blowfish-1.0-suse.diff +++ b/crypt_blowfish-1.0-suse.diff @@ -51,7 +51,7 @@ diff -ruN crypt-/crypt_blowfish.c crypt/crypt_blowfish.c +#ifdef __i386__ +#define BF_ASM 0 /* original OW patch has 1 */ +#define BF_SCALE 1 -+#elif defined(__alpha__) || defined(__hppa__) ++#elif defined(__alpha__) || defined(__hppa__) || defined(__x86_64__) +#define BF_ASM 0 +#define BF_SCALE 1 +#else diff --git a/glibc.changes b/glibc.changes index 5006f72..66df69b 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Sep 8 13:15:04 CEST 2009 - pbaudis@suse.cz + +- Provide the /etc/apparmor.d/usr.sbin.nscd file [bnc#535467] +- Blowfish: Enable BF_SCALE even on x86_64 + ------------------------------------------------------------------- Sat Sep 5 23:19:51 CEST 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 52f68fc..a445b66 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,7 +69,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 7 +Release: 8 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -79,6 +79,7 @@ Source: glibc-%{version}-aa152ec6ad.tar.bz2 Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 +Source5: usr.sbin.nscd Source8: nsswitch.conf Source9: nscd.init Source10: bindresvport.blacklist @@ -702,8 +703,10 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc # # Install nscd tools # -mkdir -p $RPM_BUILD_ROOT/etc/init.d cp nscd/nscd.conf $RPM_BUILD_ROOT/etc +mkdir -p $RPM_BUILD_ROOT/etc/apparmor.d +cp $RPM_SOURCE_DIR/usr.sbin.nscd $RPM_BUILD_ROOT/etc/apparmor.d +mkdir -p $RPM_BUILD_ROOT/etc/init.d install -m 755 $RPM_SOURCE_DIR/nscd.init $RPM_BUILD_ROOT/etc/init.d/nscd ln -sf /etc/init.d/nscd $RPM_BUILD_ROOT/usr/sbin/rcnscd mkdir -p $RPM_BUILD_ROOT/var/run/nscd @@ -1033,6 +1036,7 @@ exit 0 %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf +%config /etc/apparmor.d/usr.sbin.nscd %config /etc/init.d/nscd /usr/sbin/nscd /usr/sbin/rcnscd diff --git a/usr.sbin.nscd b/usr.sbin.nscd new file mode 100644 index 0000000..3733977 --- /dev/null +++ b/usr.sbin.nscd @@ -0,0 +1,43 @@ +# Last Modified: Wed Aug 15 10:55:46 2007 +# $Id: usr.sbin.nscd 1313 2008-11-05 12:03:29Z jrjohansen $ +# ------------------------------------------------------------------ +# +# Copyright (C) 2002-2005 Novell/SUSE +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of version 2 of the GNU General Public +# License published by the Free Software Foundation. +# +# ------------------------------------------------------------------ + +#include +/usr/sbin/nscd { + #include + #include + #include + #include + + capability net_bind_service, + + network inet dgram, + network inet stream, + + /etc/netgroup r, + /etc/nscd.conf r, + /tmp/.winbindd/pipe rw, + /usr/sbin/nscd rmix, + /var/lib/samba/winbindd_privileged/pipe rw, + /var/run/.nscd_socket wl, + /var/run/avahi-daemon/socket w, + /var/run/nscd/ r, + /var/run/nscd/db* wl, + /var/run/nscd/socket wl, + /var/run/nscd/{passwd,group,services,hosts} rw, + /var/run/{nscd/,}nscd.pid rwl, + /var/log/nscd.log rw, + @{PROC}/[0-9]*/fd/ r, + @{PROC}/[0-9]*/fd/* r, + @{PROC}/[0-9]*/maps r, + @{PROC}/[0-9]*/mounts r, + @{PROC}/filesystems r, +} From 5854e1f2709b1f718670b4a26800f31ce63c38cdf8100198a4f1035d87153159 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Wed, 23 Sep 2009 14:36:23 +0000 Subject: [PATCH 011/204] Accepting request 20918 from Base:System Copy from Base:System/glibc based on submit request 20918 from user oertel OBS-URL: https://build.opensuse.org/request/show/20918 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=11 --- glibc-2.10.1-44dbdf3777.tar.bz2 | 3 + glibc-2.10.1-aa152ec6ad.tar.bz2 | 3 - glibc.changes | 19 ++ glibc.spec | 8 +- libm-x86-64-exceptions.diff | 553 ++++++++++++++++++++++++++++++++ 5 files changed, 581 insertions(+), 5 deletions(-) create mode 100644 glibc-2.10.1-44dbdf3777.tar.bz2 delete mode 100644 glibc-2.10.1-aa152ec6ad.tar.bz2 create mode 100644 libm-x86-64-exceptions.diff diff --git a/glibc-2.10.1-44dbdf3777.tar.bz2 b/glibc-2.10.1-44dbdf3777.tar.bz2 new file mode 100644 index 0000000..086bc77 --- /dev/null +++ b/glibc-2.10.1-44dbdf3777.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7a101729724f4487592df4011be0f9766992cc6cf70b39b07c45875897ce742 +size 15594985 diff --git a/glibc-2.10.1-aa152ec6ad.tar.bz2 b/glibc-2.10.1-aa152ec6ad.tar.bz2 deleted file mode 100644 index d9a2c44..0000000 --- a/glibc-2.10.1-aa152ec6ad.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:471795a00773501701112c90b7d0f4925e83d9922d9c300ad7c7c39804678326 -size 15601511 diff --git a/glibc.changes b/glibc.changes index 66df69b..bcdf3c8 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Sat Sep 19 14:13:43 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-44dbdf3777 of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + +------------------------------------------------------------------- +Fri Sep 18 21:40:04 CEST 2009 - coolo@novell.com + +- add /etc/apparmor.d to the nscd file list + +------------------------------------------------------------------- +Mon Sep 14 23:53:20 CEST 2009 - pbaudis@suse.cz + +- define _filter_GLIBC_PRIVATE so that our glibc is not marked to + provide these symbols [bnc#468748] +- Fix exception behaviour of various libm functions by AMD optimized + for x86_64 [bnc#487576] + ------------------------------------------------------------------- Tue Sep 8 13:15:04 CEST 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index a445b66..006e6c3 100644 --- a/glibc.spec +++ b/glibc.spec @@ -21,6 +21,7 @@ Name: glibc BuildRequires: gcc-c++ libstdc++-devel BuildRequires: libselinux-devel +%define _filter_GLIBC_PRIVATE 1 %define build_locales 1 %define run_testsuite 0 %define disable_assert 0 @@ -69,13 +70,13 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 8 +Release: 9 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build # The glibc source comes from http://repo.or.cz/w/glibc/pb-stable.git # glibc-2.10-branch. -Source: glibc-%{version}-aa152ec6ad.tar.bz2 +Source: glibc-%{version}-44dbdf3777.tar.bz2 Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -140,6 +141,7 @@ Patch46: glibc-2.10-mcheck-free-race.diff Patch47: glibc-2.10.99-ia64-include.diff Patch48: glibc-utmp-timeout-raise.diff Patch49: glibc-nscd-assert.diff +Patch50: libm-x86-64-exceptions.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 @@ -346,6 +348,7 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch47 %patch48 %patch49 +%patch50 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -1036,6 +1039,7 @@ exit 0 %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf +%dir /etc/apparmor.d %config /etc/apparmor.d/usr.sbin.nscd %config /etc/init.d/nscd /usr/sbin/nscd diff --git a/libm-x86-64-exceptions.diff b/libm-x86-64-exceptions.diff new file mode 100644 index 0000000..6559e8e --- /dev/null +++ b/libm-x86-64-exceptions.diff @@ -0,0 +1,553 @@ +diff -u sysdeps/x86_64/fpu/libm_inlines_amd.h fpu_new/libm_inlines_amd.h +--- sysdeps/x86_64/fpu/libm_inlines_amd.h 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/libm_inlines_amd.h 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -254,6 +254,33 @@ + + + #if defined(USE_RAISE_FPSW_FLAGS) ++static inline void raise_fp_exc(int flags) ++{ ++ if((flags & AMD_F_UNDERFLOW) == AMD_F_UNDERFLOW) ++ { ++ double a = 0x1.0p-1022; ++ __asm __volatile ("mulsd %1, %0" : "+x" (a)); ++ } ++ ++ if((flags & AMD_F_OVERFLOW) == AMD_F_OVERFLOW) ++ { ++ double a = 0x1.fffffffffffffp1023; ++ __asm __volatile ("mulsd %1, %0" : "+x" (a)); ++ } ++ ++ if((flags & AMD_F_DIVBYZERO) == AMD_F_DIVBYZERO) ++ { ++ double a = 1.0, b = 0.0; ++ __asm __volatile ("divsd %1, %0" : "+x" (a) : "x" (b)); ++ } ++ ++ if((flags & AMD_F_INVALID) == AMD_F_INVALID) ++ { ++ double a = 0.0; ++ __asm __volatile ("divsd %1, %0" : "+x" (a)); ++ } ++} ++ + /* Raises floating-point status flags. The argument should be + the bitwise or of the flags to be raised, from the + list above, e.g. +@@ -269,11 +296,7 @@ + /* Put the floating-point environment back */ + __asm fldenv fenv; + #elif defined(linux) +- unsigned int cw; +- /* Get the current floating-point control/status word */ +- asm volatile ("STMXCSR %0" : "=m" (cw)); +- cw |= flags; +- asm volatile ("LDMXCSR %0" : : "m" (cw)); ++ raise_fp_exc(flags); + #else + #error Unknown machine + #endif +Only in sysdeps/x86_64/fpu/: LICENSE +diff -u sysdeps/x86_64/fpu/s_atan2.c fpu_new/s_atan2.c +--- sysdeps/x86_64/fpu/s_atan2.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/s_atan2.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -595,6 +595,14 @@ + if (yneg) return val_with_flags(-piby2,AMD_F_INEXACT); + else val_with_flags(piby2,AMD_F_INEXACT); + } ++ else if((!xneg) && xinf && (!yinf) && (!yzero)) ++ { ++ if(yneg) ++ return -0.0; ++ else ++ return 0.0; ++ } ++ + + /* Scale up both x and y if they are both below 1/4. + This avoids any possible later denormalised arithmetic. */ +diff -u sysdeps/x86_64/fpu/s_atan2f.c fpu_new/s_atan2f.c +--- sysdeps/x86_64/fpu/s_atan2f.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/s_atan2f.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -349,6 +349,14 @@ + if (yneg) return val_with_flags(-piby2,AMD_F_INEXACT); + else val_with_flags(piby2,AMD_F_INEXACT); + } ++ else if((!xneg) && xinf && (!yinf) && (!yzero)) ++ { ++ if(yneg) ++ return -0.0; ++ else ++ return 0.0; ++ } ++ + + if (diffexp > 26) + { /* abs(y)/abs(x) > 2^26 => arctan(x/y) +diff -u sysdeps/x86_64/fpu/s_atan.c fpu_new/s_atan.c +--- sysdeps/x86_64/fpu/s_atan.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/s_atan.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -67,7 +67,7 @@ + if (aux == 0) /* if x=0, then result is precise */ + return x; + else +- return val_with_flags(x, AMD_F_INEXACT); ++ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); + } + + /* Argument reduction to range [-7/16,7/16] */ +diff -u sysdeps/x86_64/fpu/s_atanf.c fpu_new/s_atanf.c +--- sysdeps/x86_64/fpu/s_atanf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/s_atanf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -68,7 +68,7 @@ + if (aux == 0) /* if x=0, then result is precise */ + return fx; + else +- return valf_with_flags(fx, AMD_F_INEXACT); ++ return valf_with_flags(fx, AMD_F_INEXACT | AMD_F_UNDERFLOW); + } + + v = x; +diff -u sysdeps/x86_64/fpu/s_sincos.c fpu_new/s_sincos.c +--- sysdeps/x86_64/fpu/s_sincos.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/s_sincos.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. +-** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS +- AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++(C) 2002, 2009 Advanced Micro Devices, Inc. ++** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS ++ AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -97,7 +97,7 @@ + } + else + { +- *s = x; ++ *s = val_with_flags(x, AMD_F_INEXACT); + *c = val_with_flags(1.0, AMD_F_INEXACT); + } + } +diff -u sysdeps/x86_64/fpu/s_sincosf.c fpu_new/s_sincosf.c +--- sysdeps/x86_64/fpu/s_sincosf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/s_sincosf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. +-** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS +- AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++(C) 2002 Advanced Micro Devices, Inc. ++** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS ++ AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++ LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +diff -u sysdeps/x86_64/fpu/s_tanf.c fpu_new/s_tanf.c +--- sysdeps/x86_64/fpu/s_tanf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/s_tanf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. +-** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS +- AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++(C) 2002 Advanced Micro Devices, Inc. ++** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS ++ AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++ LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -18,7 +18,7 @@ + #undef USE_NAN_WITH_FLAGS + #undef USE_REMAINDER_PIBY2F_INLINE + +-/* tan(x) approximation valid on the interval [-pi/4,pi/4]. ++/* tan(x) approximation valid on the interval [-pi/4,pi/4]. + If recip is true return -1/tan(x) instead. */ + static inline double tanf_piby4(double x, int recip) + { +diff -u sysdeps/x86_64/fpu/w_asin.c fpu_new/w_asin.c +--- sysdeps/x86_64/fpu/w_asin.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_asin.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -76,7 +76,8 @@ + + if (xexp < -28) + { /* y small enough that arcsin(x) = x */ +- return val_with_flags(x, AMD_F_INEXACT); ++ if(aux == 0) return x; ++ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); + } + else if (xnan) return x + x; + else if (xexp >= 0) +diff -u sysdeps/x86_64/fpu/w_asinf.c fpu_new/w_asinf.c +--- sysdeps/x86_64/fpu/w_asinf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_asinf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -75,8 +75,11 @@ + /* Special cases */ + + if (xexp < -14) ++ { + /* y small enough that arcsin(x) = x */ +- return valf_with_flags(x, AMD_F_INEXACT); ++ if(aux == 0 ) return x; ++ return valf_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); ++ } + else if (xnan) return x + x; + else if (xexp >= 0) + { +diff -u sysdeps/x86_64/fpu/w_hypotf.c fpu_new/w_hypotf.c +--- sysdeps/x86_64/fpu/w_hypotf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_hypotf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -79,6 +79,20 @@ + return retval; + } + ++ /* Set x = abs(x) and y = abs(y) */ ++ if (ux == 0) ++ { ++ /* x is zero */ ++ PUT_BITS_DP64(avy, dy); ++ return dy; ++ } ++ if (uy == 0) ++ { ++ /* y is zero */ ++ PUT_BITS_DP64(avx, dx); ++ return dx; ++ } ++ + dr = (dx*dx + dy*dy); + + #if USE_SOFTWARE_SQRT +diff -u sysdeps/x86_64/fpu/w_pow.c fpu_new/w_pow.c +--- sysdeps/x86_64/fpu/w_pow.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_pow.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -364,8 +364,20 @@ + { + /* y is -ve */ + if (ax == 0) +- /* abs(x) = 0.0. Return +infinity. */ +- return retval_errno_edom(argx, argy, 1); ++ { ++ if(yinf) ++ { ++ /* Return +infinity with no flags */ ++ double sz; ++ PUT_BITS_DP64(PINFBITPATT_DP64, sz); ++ return sz; ++ } ++ else ++ { ++ /* abs(x) = 0.0. Return +infinity. */ ++ return retval_errno_edom(argx, argy, 1); ++ } ++ } + else if (ax < 0x3ff0000000000000) + { + /* abs(x) < 1.0; return +infinity. */ +diff -u sysdeps/x86_64/fpu/w_powf.c fpu_new/w_powf.c +--- sysdeps/x86_64/fpu/w_powf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_powf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -175,8 +175,20 @@ + { + /* y is -ve */ + if (ax == 0) +- /* abs(x) = 0.0. Return +infinity. */ +- return retval_errno_edom(x, y, 1); ++ { ++ if(yinf) ++ { ++ /* Return +infinity with no flags */ ++ float sz; ++ PUT_BITS_SP32(PINFBITPATT_SP32, sz); ++ return sz; ++ } ++ else ++ { ++ /* abs(x) = 0.0. Return +infinity. */ ++ return retval_errno_edom(x, y, 1); ++ } ++ } + else if (ax < 0x3f800000) + { + /* abs(x) < 1.0; return +infinity. */ +diff -u sysdeps/x86_64/fpu/w_remainder.c fpu_new/w_remainder.c +--- sysdeps/x86_64/fpu/w_remainder.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_remainder.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -69,11 +69,31 @@ + { + /* x is NaN or infinity */ + if (ux & MANTBITS_DP64) +- /* x is NaN */ +- return dx + dx; /* Raise invalid if it is a signalling NaN */ ++ { ++ if( (yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64) ) ++ { ++ /* y is also NaN */ ++ return dx + dy; ++ } ++ else ++ { ++ /* x is NaN */ ++ return dx + dx; /* Raise invalid if it is a signalling NaN */ ++ } ++ } + else +- /* x is infinity; result is NaN */ +- return nan_with_flags(AMD_F_INVALID); ++ { ++ if((yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64)) ++ { ++ /* y is NaN */ ++ return dy+dy; ++ } ++ else ++ { ++ /* x is infinity; result is NaN */ ++ return nan_with_flags(AMD_F_INVALID); ++ } ++ } + } + else if (yexp > BIASEDEMAX_DP64) + { +diff -u sysdeps/x86_64/fpu/w_remainderf.c fpu_new/w_remainderf.c +--- sysdeps/x86_64/fpu/w_remainderf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_remainderf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -50,11 +50,31 @@ + { + /* x is NaN or infinity */ + if (ux & MANTBITS_DP64) +- /* x is NaN */ +- return dx + dx; /* Raise invalid if it is a signalling NaN */ ++ { ++ if((yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64)) ++ { ++ /* y is also NaN */ ++ return dx + dy; ++ } ++ else ++ { ++ /* x is NaN */ ++ return dx + dx; /* Raise invalid if it is a signalling NaN */ ++ } ++ } + else +- /* x is infinity; result is NaN */ +- return nan_with_flags(AMD_F_INVALID); ++ { ++ if((yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64)) ++ { ++ /* y is NaN */ ++ return dy+dy; ++ } ++ else ++ { ++ /* x is infinity; result is NaN */ ++ return nan_with_flags(AMD_F_INVALID); ++ } ++ } + } + else if (yexp > BIASEDEMAX_DP64) + { +diff -u sysdeps/x86_64/fpu/w_sinh.c fpu_new/w_sinh.c +--- sysdeps/x86_64/fpu/w_sinh.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_sinh.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -249,7 +249,7 @@ + /* with no inexact */ + return x; + else +- return val_with_flags(x, AMD_F_INEXACT); ++ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); + } + else if (aux >= 0x7ff0000000000000) /* |x| is NaN or Inf */ + return x + x; +diff -u sysdeps/x86_64/fpu/w_sinhf.c fpu_new/w_sinhf.c +--- sysdeps/x86_64/fpu/w_sinhf.c 2009-09-11 14:26:54.000000000 -0500 ++++ sysdeps/x86_64/fpu/w_sinhf.c 2009-09-11 15:36:54.000000000 -0500 +@@ -1,8 +1,8 @@ + /* +-(C) 2002 Advanced Micro Devices, Inc. ++(C) 2002, 2009 Advanced Micro Devices, Inc. + ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS + AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC +- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH ++ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH + THIS LIBRARY** + */ + +@@ -13,11 +13,13 @@ + #define USE_SCALEDOUBLE_1 + #define USE_SCALEDOUBLE_2 + #define USE_INFINITY_WITH_FLAGS ++#define USE_VAL_WITH_FLAGS + #include "libm_inlines_amd.h" + #undef USE_SPLITEXP + #undef USE_SCALEDOUBLE_1 + #undef USE_SCALEDOUBLE_2 + #undef USE_INFINITY_WITH_FLAGS ++#undef USE_VAL_WITH_FLAGS + + /* Deal with errno for out-of-range result */ + #include "libm_errno_amd.h" +@@ -166,7 +168,8 @@ + if (aux < 0x3f10000000000000) /* |x| small enough that sinh(x) = x */ + { + if (aux == 0) return x; /* with no inexact */ +- if (LAMBDA_DP64 + x > 1.0) return x; /* with inexact */ ++ else ++ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); /* with inexact */ + } + else if (aux >= 0x7ff0000000000000) /* |x| is NaN or Inf */ + return x + x; From ff113156e3df3632b64068aaab32a1be84b30d41617300d9d7740e5defae8692 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Mon, 16 Nov 2009 08:54:19 +0000 Subject: [PATCH 012/204] Accepting request 24314 from Base:System Copy from Base:System/glibc based on submit request 24314 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/24314 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=13 --- crypt_blowfish-1.0-suse.diff | 23 ++-- getaddrinfo-ipv6-sanity.diff | 4 +- glibc-2.10-mcheck-free-race.diff | 8 +- glibc-2.10-nscd-nostack.diff | 8 +- glibc-2.10.99-ia64-include.diff | 6 +- glibc-2.2-sunrpc.diff | 11 +- glibc-2.3-SuSE.diff | 28 +++-- glibc-2.3-regcomp.diff | 8 +- glibc-2.3.1.localedef.diff | 21 ++-- glibc-2.3.2-revert_tcsetattr.diff | 12 +- glibc-2.3.2.no_archive.diff | 14 ++- glibc-2.3.3-amd64-s_ceil.diff | 21 ++-- glibc-2.3.3-amd64-string.diff | 46 +++---- glibc-2.3.3-execstack.diff | 8 +- glibc-2.3.3-nscd-db-path.diff | 8 +- glibc-2.3.4-gb18030-big5hkscs.diff.bz2 | 4 +- glibc-2.3.5-nscd-zeronegtimeout.diff | 2 +- glibc-2.3.90-bindresvport.blacklist.diff | 14 ++- glibc-2.3.90-fnmatch.diff | 18 +-- glibc-2.3.90-langpackdir.diff | 7 +- glibc-2.3.90-ld.so-madvise.diff | 12 +- glibc-2.3.90-noversion.diff | 8 +- glibc-2.3.locales.diff.bz2 | 4 +- glibc-2.4-china.diff | 10 +- glibc-2.4.90-no_NO.diff | 22 ++-- glibc-2.4.90-nscd.diff | 10 +- glibc-2.4.90-revert-only-euro.diff | 20 +-- glibc-2.5-ppc-llrintl.diff | 9 +- glibc-2.6-configure.diff | 24 ++-- glibc-2.8-clone.diff | 22 ++-- glibc-2.8-getconf.diff | 8 +- glibc-check-native-missing-include.diff | 4 +- glibc-compiled-binaries.diff | 48 ++++--- glibc-cpusetsize.diff | 14 +-- glibc-nis-splitgroups.diff | 35 +++--- glibc-nptl-2.4-nofixsyscallnr.diff | 8 +- glibc-nscd-assert.diff | 63 +++++----- glibc-nscd-prune-ret.diff | 9 +- glibc-nss-deepbind.diff | 2 +- glibc-selinux.diff | 12 +- glibc-suse-note.diff | 6 +- glibc-utmp-timeout-raise.diff | 8 +- glibc-version.diff | 13 +- glibc.changes | 5 + glibc.spec | 2 +- libm-x86-64-exceptions.diff | 152 +++++++++++++---------- libm-x86-64.diff.bz2 | 4 +- ppc-atomic.diff | 21 +--- resolv.dynamic.diff | 12 +- 49 files changed, 448 insertions(+), 390 deletions(-) diff --git a/crypt_blowfish-1.0-suse.diff b/crypt_blowfish-1.0-suse.diff index 3f16758..f290e6a 100644 --- a/crypt_blowfish-1.0-suse.diff +++ b/crypt_blowfish-1.0-suse.diff @@ -1,6 +1,7 @@ -diff -ruN crypt-/crypt_blowfish.c crypt/crypt_blowfish.c ---- crypt-/crypt_blowfish.c 1970-01-01 01:00:00.000000000 +0100 -+++ crypt/crypt_blowfish.c 2006-09-20 20:56:59.000000000 +0200 +Index: crypt/crypt_blowfish.c +=================================================================== +--- /dev/null ++++ crypt/crypt_blowfish.c @@ -0,0 +1,743 @@ +/* + * This code comes from John the Ripper password cracker, with reentrant @@ -745,9 +746,9 @@ diff -ruN crypt-/crypt_blowfish.c crypt/crypt_blowfish.c + + return output; +} -diff --git a/crypt/Makefile b/crypt/Makefile -index b9c8797..6c51263 100644 ---- crypt/Makefile +Index: crypt/Makefile +=================================================================== +--- crypt/Makefile.orig +++ crypt/Makefile @@ -27,7 +27,7 @@ extra-libs := libcrypt extra-libs-others := $(extra-libs) @@ -758,11 +759,11 @@ index b9c8797..6c51263 100644 tests := cert md5c-test sha256c-test sha512c-test -diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c -index fdddad2..6e6ba58 100644 ---- crypt/crypt-entry.c +Index: crypt/crypt-entry.c +=================================================================== +--- crypt/crypt-entry.c.orig +++ crypt/crypt-entry.c -@@ -61,6 +61,8 @@ extern char *__sha256_crypt (const char *key, const char *salt); +@@ -61,6 +61,8 @@ extern char *__sha256_crypt (const char extern char *__sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen); extern char *__sha512_crypt (const char *key, const char *salt); @@ -771,7 +772,7 @@ index fdddad2..6e6ba58 100644 #endif /* Define our magic string to mark salt for MD5 encryption -@@ -74,6 +76,9 @@ static const char sha256_salt_prefix[] = "$5$"; +@@ -74,6 +76,9 @@ static const char sha256_salt_prefix[] = /* Magic string for SHA512 encryption. */ static const char sha512_salt_prefix[] = "$6$"; diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index 5b5ad8b..c982e8b 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -13,7 +13,7 @@ Index: sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -762,7 +762,7 @@ gaih_inet (const char *name, const struc +@@ -766,7 +766,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -22,7 +22,7 @@ Index: sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2151,7 +2151,7 @@ getaddrinfo (const char *name, const cha +@@ -2157,7 +2157,7 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/glibc-2.10-mcheck-free-race.diff b/glibc-2.10-mcheck-free-race.diff index f5087ea..23bb78f 100644 --- a/glibc-2.10-mcheck-free-race.diff +++ b/glibc-2.10-mcheck-free-race.diff @@ -3,11 +3,11 @@ * malloc/hooks.c (free_check): Do not invoke mem2chunk_check() without main_arena mutex held. -diff --git a/malloc/hooks.c b/malloc/hooks.c -index 622a815..47d3c85 100644 ---- malloc/hooks.c +Index: malloc/hooks.c +=================================================================== +--- malloc/hooks.c.orig +++ malloc/hooks.c -@@ -276,25 +276,33 @@ free_check(mem, caller) Void_t* mem; const Void_t *caller; +@@ -276,25 +276,33 @@ free_check(mem, caller) Void_t* mem; con mchunkptr p; if(!mem) return; diff --git a/glibc-2.10-nscd-nostack.diff b/glibc-2.10-nscd-nostack.diff index 27fb9aa..0e778ef 100644 --- a/glibc-2.10-nscd-nostack.diff +++ b/glibc-2.10-nscd-nostack.diff @@ -1,6 +1,8 @@ ---- nscd/nscd.h~ 2009-01-21 02:14:55.875774000 +0100 -+++ nscd/nscd.h 2009-01-21 02:15:58.519066000 +0100 -@@ -60,7 +60,12 @@ +Index: nscd/nscd.h +=================================================================== +--- nscd/nscd.h.orig ++++ nscd/nscd.h +@@ -59,7 +59,12 @@ typedef enum /* Maximum size of stack frames we allow the thread to use. We use 80% of the thread stack size. */ diff --git a/glibc-2.10.99-ia64-include.diff b/glibc-2.10.99-ia64-include.diff index 6ca38b9..ae5d2f6 100644 --- a/glibc-2.10.99-ia64-include.diff +++ b/glibc-2.10.99-ia64-include.diff @@ -1,6 +1,6 @@ -diff --git a/sysdeps/ia64/elf/start.S b/sysdeps/ia64/elf/start.S -index 1c41a65..60e42e9 100644 ---- sysdeps/ia64/elf/start.S +Index: sysdeps/ia64/elf/start.S +=================================================================== +--- sysdeps/ia64/elf/start.S.orig +++ sysdeps/ia64/elf/start.S @@ -37,6 +37,7 @@ #include diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index 523f0b4..885c339 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -1,7 +1,8 @@ -diff -urN glibc-2.2.4/sunrpc/clnt_udp.c glibc-2.2.4.new/sunrpc/clnt_udp.c ---- sunrpc/clnt_udp.c Tue Aug 24 11:34:36 2004 -+++ sunrpc/clnt_udp.c Tue Aug 24 11:35:19 2004 -@@ -272,6 +272,7 @@ +Index: sunrpc/clnt_udp.c +=================================================================== +--- sunrpc/clnt_udp.c.orig ++++ sunrpc/clnt_udp.c +@@ -301,6 +301,7 @@ clntudp_call (cl, proc, xargs, argsp, xr XDR *xdrs; int outlen = 0; int inlen; @@ -9,7 +10,7 @@ diff -urN glibc-2.2.4/sunrpc/clnt_udp.c glibc-2.2.4.new/sunrpc/clnt_udp.c socklen_t fromlen; struct pollfd fd; int milliseconds = (cu->cu_wait.tv_sec * 1000) + -@@ -342,37 +343,36 @@ +@@ -371,37 +372,36 @@ send_again: anyup = 0; for (;;) { diff --git a/glibc-2.3-SuSE.diff b/glibc-2.3-SuSE.diff index 01107dc..62a1ff2 100644 --- a/glibc-2.3-SuSE.diff +++ b/glibc-2.3-SuSE.diff @@ -1,17 +1,21 @@ ---- io/Makefile -+++ io/Makefile 2003/02/24 12:15:52 -@@ -56,7 +56,7 @@ +Index: io/Makefile +=================================================================== +--- io/Makefile.orig ++++ io/Makefile +@@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat others := pwd test-srcs := ftwtest -tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ +tests := test-utime test-stat test-stat2 tst-getcwd \ tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ - tst-openat tst-unlinkat tst-fstatat tst-futimesat \ - distribute := ftwtest-sh ---- libio/stdio.h 23 Apr 2003 10:13:22 -0000 1.1.1.14 -+++ libio/stdio.h 23 Apr 2003 10:27:07 -0000 1.10 -@@ -142,10 +142,12 @@ typedef _G_fpos64_t fpos64_t; + tst-openat tst-unlinkat tst-fstatat tst-futimesat \ + tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ +Index: libio/stdio.h +=================================================================== +--- libio/stdio.h.orig ++++ libio/stdio.h +@@ -145,10 +145,12 @@ typedef _G_fpos64_t fpos64_t; extern struct _IO_FILE *stdin; /* Standard input stream. */ extern struct _IO_FILE *stdout; /* Standard output stream. */ extern struct _IO_FILE *stderr; /* Standard error output stream. */ @@ -24,9 +28,11 @@ __BEGIN_NAMESPACE_STD /* Remove file FILENAME. */ ---- stdio-common/Makefile -+++ stdio-common/Makefile 2005/12/05 11:13:59 -@@ -48,7 +48,7 @@ +Index: stdio-common/Makefile +=================================================================== +--- stdio-common/Makefile.orig ++++ stdio-common/Makefile +@@ -52,7 +52,7 @@ tests := tstscanf test_rdwr test-popen t temptest tst-fileno test-fwrite tst-ungetc tst-ferror \ xbug errnobug \ bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 bug12 bug13 \ diff --git a/glibc-2.3-regcomp.diff b/glibc-2.3-regcomp.diff index eaa62e2..8340d83 100644 --- a/glibc-2.3-regcomp.diff +++ b/glibc-2.3-regcomp.diff @@ -1,6 +1,8 @@ ---- posix/regcomp.c 2003-11-26 08:54:28.000000000 +0100 -+++ posix/regcomp.c 2003-11-27 11:41:00.000000000 +0100 -@@ -2191,6 +2191,8 @@ +Index: posix/regcomp.c +=================================================================== +--- posix/regcomp.c.orig ++++ posix/regcomp.c +@@ -2254,6 +2254,8 @@ parse_expression (re_string_t *regexp, r else if (syntax & RE_CONTEXT_INDEP_OPS) { fetch_token (token, regexp, syntax); diff --git a/glibc-2.3.1.localedef.diff b/glibc-2.3.1.localedef.diff index a4dca05..787ac54 100644 --- a/glibc-2.3.1.localedef.diff +++ b/glibc-2.3.1.localedef.diff @@ -3,10 +3,12 @@ Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de - Fix alignment in locale-archive. ---- locale/programs/locarchive.c 2002-10-18 11:14:16.000000000 +0200 -+++ locale/programs/locarchive.c 2002-10-21 13:28:27.000000000 +0200 -@@ -72,6 +72,9 @@ static const char *locnames[] = - #define INITIAL_NUM_SUMS 2000 +Index: locale/programs/locarchive.c +=================================================================== +--- locale/programs/locarchive.c.orig ++++ locale/programs/locarchive.c +@@ -75,6 +75,9 @@ static const char *locnames[] = + #define RESERVE_MMAP_SIZE 512 * 1024 * 1024 +#define ALIGN(offset, alignment) \ @@ -15,8 +17,7 @@ Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de static void create_archive (const char *archivefname, struct locarhandle *ah) { -@@ -90,8 +93,9 @@ create_archive (const char *archivefname - +@@ -94,7 +97,8 @@ create_archive (const char *archivefname /* Create the initial content of the archive. */ head.magic = AR_MAGIC; head.serial = 0; @@ -26,7 +27,7 @@ Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de head.namehash_used = 0; head.namehash_size = next_prime (INITIAL_NUM_NAMES); -@@ -99,12 +103,15 @@ create_archive (const char *archivefname +@@ -103,12 +107,15 @@ create_archive (const char *archivefname head.string_used = 0; head.string_size = INITIAL_SIZE_STRINGS; @@ -45,9 +46,9 @@ Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de head.sumhash_used = 0; head.sumhash_size = next_prime (INITIAL_NUM_SUMS); -@@ -274,13 +281,16 @@ enlarge_archive (struct locarhandle *ah, - * sizeof (struct namehashent))); - newhead.string_size = MAX (2 * newhead.string_used, newhead.string_size); +@@ -356,13 +363,16 @@ enlarge_archive (struct locarhandle *ah, + newhead.string_size = MAX ((2 * newhead.string_used + 3) & -4, + newhead.string_size); - newhead.locrectab_offset = newhead.string_offset + newhead.string_size; + newhead.locrectab_offset = ALIGN (newhead.string_offset diff --git a/glibc-2.3.2-revert_tcsetattr.diff b/glibc-2.3.2-revert_tcsetattr.diff index f660306..f17f80f 100644 --- a/glibc-2.3.2-revert_tcsetattr.diff +++ b/glibc-2.3.2-revert_tcsetattr.diff @@ -1,12 +1,8 @@ Index: sysdeps/unix/sysv/linux/tcsetattr.c =================================================================== -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/tcsetattr.c,v -retrieving revision 1.14 -retrieving revision 1.13 -diff -u -r1.14 -r1.13 ---- sysdeps/unix/sysv/linux/tcsetattr.c 21 Feb 2003 00:09:04 -0000 1.14 -+++ sysdeps/unix/sysv/linux/tcsetattr.c 17 Feb 2003 19:48:44 -0000 1.13 -@@ -56,6 +56,7 @@ +--- sysdeps/unix/sysv/linux/tcsetattr.c.orig ++++ sysdeps/unix/sysv/linux/tcsetattr.c +@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios { struct __kernel_termios k_termios; unsigned long int cmd; @@ -14,7 +10,7 @@ diff -u -r1.14 -r1.13 switch (optional_actions) { -@@ -87,6 +88,35 @@ +@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], __KERNEL_NCCS * sizeof (cc_t)); diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff index 52f4e69..da3351d 100644 --- a/glibc-2.3.2.no_archive.diff +++ b/glibc-2.3.2.no_archive.diff @@ -3,9 +3,11 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - Make --no-archive default for localedef ---- locale/programs/localedef.c -+++ locale/programs/localedef.c 2003/06/04 11:03:28 -@@ -83,7 +83,7 @@ +Index: locale/programs/localedef.c +=================================================================== +--- locale/programs/localedef.c.orig ++++ locale/programs/localedef.c +@@ -82,7 +82,7 @@ const char *alias_file; static struct localedef_t *locales; /* If true don't add locale data to archive. */ @@ -14,7 +16,7 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de /* If true add named locales to archive. */ static bool add_to_archive; -@@ -114,6 +114,7 @@ +@@ -113,6 +113,7 @@ void (*argp_program_version_hook) (FILE #define OPT_REPLACE 307 #define OPT_DELETE_FROM_ARCHIVE 308 #define OPT_LIST_ARCHIVE 309 @@ -22,7 +24,7 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = -@@ -135,6 +136,8 @@ +@@ -134,6 +135,8 @@ static const struct argp_option options[ N_("Suppress warnings and information messages") }, { "verbose", 'v', NULL, 0, N_("Print more messages") }, { NULL, 0, NULL, 0, N_("Archive control:") }, @@ -31,7 +33,7 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de { "no-archive", OPT_NO_ARCHIVE, NULL, 0, N_("Don't add new data to archive") }, { "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0, -@@ -315,6 +318,9 @@ +@@ -314,6 +317,9 @@ parse_opt (int key, char *arg, struct ar case OPT_PREFIX: output_prefix = arg; break; diff --git a/glibc-2.3.3-amd64-s_ceil.diff b/glibc-2.3.3-amd64-s_ceil.diff index 36f8b0d..f04a03b 100644 --- a/glibc-2.3.3-amd64-s_ceil.diff +++ b/glibc-2.3.3-amd64-s_ceil.diff @@ -1,9 +1,11 @@ This fixes ceil (x) for -1.0 < x < 0. ---- sysdeps/x86_64/fpu/s_ceil.c 2003-11-26 15:25:50.000000000 +0100 -+++ sysdeps/x86_64/fpu/s_ceil.c 2003-11-27 13:57:35.000000000 +0100 -@@ -34,7 +34,11 @@ +Index: sysdeps/x86_64/fpu/s_ceil.c +=================================================================== +--- sysdeps/x86_64/fpu/s_ceil.c.orig ++++ sysdeps/x86_64/fpu/s_ceil.c +@@ -34,7 +34,11 @@ double __ceil(double x) /* x is +zero or -zero; return the same zero */ return x; else if (xneg) /* x < 0.0 */ @@ -16,9 +18,11 @@ This fixes ceil (x) for -1.0 < x < 0. else return 1.0; } ---- sysdeps/x86_64/fpu/s_ceilf.c 2003-11-26 15:25:50.000000000 +0100 -+++ sysdeps/x86_64/fpu/s_ceilf.c 2003-11-27 13:57:35.000000000 +0100 -@@ -34,7 +34,11 @@ +Index: sysdeps/x86_64/fpu/s_ceilf.c +=================================================================== +--- sysdeps/x86_64/fpu/s_ceilf.c.orig ++++ sysdeps/x86_64/fpu/s_ceilf.c +@@ -34,7 +34,11 @@ float __ceilf(float x) /* x is +zero or -zero; return the same zero */ return x; else if (xneg) /* x < 0.0 */ @@ -31,8 +35,3 @@ This fixes ceil (x) for -1.0 < x < 0. else return 1.0F; } - --- - Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj - SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany - GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126 diff --git a/glibc-2.3.3-amd64-string.diff b/glibc-2.3.3-amd64-string.diff index ccfb162..89179f1 100644 --- a/glibc-2.3.3-amd64-string.diff +++ b/glibc-2.3.3-amd64-string.diff @@ -1,8 +1,8 @@ ============================================================ Index: sysdeps/x86_64/strlen.S =================================================================== ---- sysdeps/x86_64/strlen.S.orig 2003-04-30 00:47:18.000000000 +0200 -+++ sysdeps/x86_64/strlen.S 2009-03-23 16:32:42.000000000 +0100 +--- sysdeps/x86_64/strlen.S.orig ++++ sysdeps/x86_64/strlen.S @@ -1,54 +1,405 @@ -/* strlen(str) -- determine the length of the string STR. - Copyright (C) 2009 Free Software Foundation, Inc. @@ -459,12 +459,12 @@ Index: sysdeps/x86_64/strlen.S + lea (%rdi, %rsi), %rax + ret + - END (strlen) + END(strlen) libc_hidden_builtin_def (strlen) Index: sysdeps/x86_64/dl-machine.h =================================================================== ---- sysdeps/x86_64/dl-machine.h.orig 2008-11-14 16:42:29.000000000 +0100 -+++ sysdeps/x86_64/dl-machine.h 2009-03-23 16:32:42.000000000 +0100 +--- sysdeps/x86_64/dl-machine.h.orig ++++ sysdeps/x86_64/dl-machine.h @@ -226,6 +226,40 @@ dl_platform_init (void) if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') /* Avoid an empty string which would disturb us. */ @@ -508,8 +508,8 @@ Index: sysdeps/x86_64/dl-machine.h static inline Elf64_Addr Index: sysdeps/x86_64/Makefile =================================================================== ---- sysdeps/x86_64/Makefile.orig 2008-11-14 16:42:29.000000000 +0100 -+++ sysdeps/x86_64/Makefile 2009-03-23 16:32:42.000000000 +0100 +--- sysdeps/x86_64/Makefile.orig ++++ sysdeps/x86_64/Makefile @@ -4,6 +4,9 @@ long-double-fcts = yes ifeq ($(subdir),csu) sysdep_routines += hp-timing @@ -522,8 +522,8 @@ Index: sysdeps/x86_64/Makefile ifeq ($(subdir),gmon) Index: sysdeps/x86_64/strcpy.S =================================================================== ---- sysdeps/x86_64/strcpy.S.orig 2003-04-30 00:47:18.000000000 +0200 -+++ sysdeps/x86_64/strcpy.S 2009-03-23 16:32:42.000000000 +0100 +--- sysdeps/x86_64/strcpy.S.orig ++++ sysdeps/x86_64/strcpy.S @@ -1,159 +1,833 @@ -/* strcpy/stpcpy implementation for x86-64. - Copyright (C) 2002 Free Software Foundation, Inc. @@ -1506,8 +1506,8 @@ Index: sysdeps/x86_64/strcpy.S #endif Index: sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c =================================================================== ---- sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c.orig 2005-12-14 09:09:28.000000000 +0100 -+++ sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c 2009-03-23 16:32:42.000000000 +0100 +--- sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c.orig ++++ sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c @@ -1,5 +1,5 @@ #ifdef IS_IN_ldconfig # include @@ -1517,8 +1517,8 @@ Index: sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c #endif Index: sysdeps/x86_64/dl-procinfo.c =================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ sysdeps/x86_64/dl-procinfo.c 2009-03-23 16:32:42.000000000 +0100 +--- /dev/null ++++ sysdeps/x86_64/dl-procinfo.c @@ -0,0 +1,108 @@ +/* Data for x86-64 version of processor capability information. + Copyright (C) 2004 Free Software Foundation, Inc. @@ -1630,8 +1630,8 @@ Index: sysdeps/x86_64/dl-procinfo.c +#undef PROCINFO_CLASS Index: sysdeps/x86_64/elf/rtld-global-offsets.sym =================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ sysdeps/x86_64/elf/rtld-global-offsets.sym 2009-03-23 16:32:42.000000000 +0100 +--- /dev/null ++++ sysdeps/x86_64/elf/rtld-global-offsets.sym @@ -0,0 +1,10 @@ +#define SHARED 1 + @@ -1645,8 +1645,8 @@ Index: sysdeps/x86_64/elf/rtld-global-offsets.sym +RTLD_GLOBAL_DL_CACHE2SIZEHALF rtdl_global_offsetof (_dl_cache2sizehalf) Index: sysdeps/x86_64/memcmp.S =================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ sysdeps/x86_64/memcmp.S 2009-03-23 16:32:42.000000000 +0100 +--- /dev/null ++++ sysdeps/x86_64/memcmp.S @@ -0,0 +1,443 @@ +# $Header: /K8_Projects/Glibc/amd64memcmp.S 4 10/06/03 10:57 Emenezes $ + @@ -2093,8 +2093,8 @@ Index: sysdeps/x86_64/memcmp.S +libc_hidden_builtin_def (memcmp) Index: sysdeps/x86_64/strncmp.S =================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ sysdeps/x86_64/strncmp.S 2009-03-23 16:32:42.000000000 +0100 +--- /dev/null ++++ sysdeps/x86_64/strncmp.S @@ -0,0 +1,15 @@ +# $Header: /K8_Projects/Glibc/amd64strncpy.S 1 8/29/03 16:37 Emenezes $ + @@ -2113,8 +2113,8 @@ Index: sysdeps/x86_64/strncmp.S +libc_hidden_builtin_def (strncmp) Index: sysdeps/x86_64/strcmp.S =================================================================== ---- sysdeps/x86_64/strcmp.S.orig 2005-03-31 12:00:13.000000000 +0200 -+++ sysdeps/x86_64/strcmp.S 2009-03-23 16:32:42.000000000 +0100 +--- sysdeps/x86_64/strcmp.S.orig ++++ sysdeps/x86_64/strcmp.S @@ -1,45 +1,487 @@ -/* Highly optimized version for x86-64. - Copyright (C) 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc. @@ -2647,8 +2647,8 @@ Index: sysdeps/x86_64/strcmp.S libc_hidden_builtin_def (strcmp) Index: sysdeps/x86_64/memcpy.S =================================================================== ---- sysdeps/x86_64/memcpy.S.orig 2007-11-06 03:49:38.000000000 +0100 -+++ sysdeps/x86_64/memcpy.S 2009-03-23 16:32:42.000000000 +0100 +--- sysdeps/x86_64/memcpy.S.orig ++++ sysdeps/x86_64/memcpy.S @@ -39,7 +39,7 @@ .text diff --git a/glibc-2.3.3-execstack.diff b/glibc-2.3.3-execstack.diff index 16436db..054e33e 100644 --- a/glibc-2.3.3-execstack.diff +++ b/glibc-2.3.3-execstack.diff @@ -1,6 +1,8 @@ ---- locale/programs/3level.h -+++ locale/programs/3level.h 2004/09/26 06:58:48 -@@ -204,6 +204,42 @@ +Index: locale/programs/3level.h +=================================================================== +--- locale/programs/3level.h.orig ++++ locale/programs/3level.h +@@ -203,6 +203,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, } } } diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index 4ce88be..c0ec50b 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -2,9 +2,11 @@ * nscd/nscd.h: Move persistent storage back to /var/run/nscd ---- nscd/nscd.h -+++ nscd/nscd.h 2004/12/09 13:17:35 -@@ -87,10 +87,10 @@ +Index: nscd/nscd.h +=================================================================== +--- nscd/nscd.h.orig ++++ nscd/nscd.h +@@ -105,10 +105,10 @@ struct database_dyn /* Paths of the file for the persistent storage. */ diff --git a/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 b/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 index 818e0b9..939c711 100644 --- a/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 +++ b/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:901fe715360fd55d2d83ceab113bacca58a2b9cba3673d80b184760976236ffd -size 1036487 +oid sha256:b9ad9e58edeea033b1e06ae3648f6adfce0dbf3f3e84b6ec77dda9fa5cf3a58d +size 1034566 diff --git a/glibc-2.3.5-nscd-zeronegtimeout.diff b/glibc-2.3.5-nscd-zeronegtimeout.diff index dbab3d3..3081be5 100644 --- a/glibc-2.3.5-nscd-zeronegtimeout.diff +++ b/glibc-2.3.5-nscd-zeronegtimeout.diff @@ -2,7 +2,7 @@ Index: nscd/aicache.c =================================================================== --- nscd/aicache.c.orig +++ nscd/aicache.c -@@ -515,9 +515,15 @@ next_nip: +@@ -504,9 +504,15 @@ next_nip: if (fd != -1) TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); diff --git a/glibc-2.3.90-bindresvport.blacklist.diff b/glibc-2.3.90-bindresvport.blacklist.diff index 3e8a581..11ea6df 100644 --- a/glibc-2.3.90-bindresvport.blacklist.diff +++ b/glibc-2.3.90-bindresvport.blacklist.diff @@ -1,7 +1,9 @@ ---- sunrpc/bindrsvprt.c -+++ sunrpc/bindrsvprt.c 2005/11/23 13:36:23 -@@ -30,28 +30,108 @@ - * Copyright (c) 1987 by Sun Microsystems, Inc. +Index: sunrpc/bindrsvprt.c +=================================================================== +--- sunrpc/bindrsvprt.c.orig ++++ sunrpc/bindrsvprt.c +@@ -29,28 +29,108 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include @@ -114,7 +116,7 @@ if (sin == (struct sockaddr_in *) 0) { -@@ -70,6 +148,7 @@ +@@ -69,6 +149,7 @@ bindresvport (int sd, struct sockaddr_in port = (__getpid () % NPORTS) + STARTPORT; } @@ -122,7 +124,7 @@ /* Initialize to make gcc happy. */ int res = -1; -@@ -78,12 +157,22 @@ +@@ -77,12 +158,22 @@ bindresvport (int sd, struct sockaddr_in again: for (i = 0; i < nports; ++i) { diff --git a/glibc-2.3.90-fnmatch.diff b/glibc-2.3.90-fnmatch.diff index 8ada08b..d34864b 100644 --- a/glibc-2.3.90-fnmatch.diff +++ b/glibc-2.3.90-fnmatch.diff @@ -10,9 +10,9 @@ Andreas. Index: posix/fnmatch.c =================================================================== ---- posix/fnmatch.c.orig 2007-05-18 10:40:34.000000000 +0200 -+++ posix/fnmatch.c 2007-05-18 13:21:47.199478000 +0200 -@@ -327,6 +327,7 @@ +--- posix/fnmatch.c.orig ++++ posix/fnmatch.c +@@ -327,6 +327,7 @@ fnmatch (pattern, string, flags) # if HANDLE_MULTIBYTE if (__builtin_expect (MB_CUR_MAX, 1) != 1) { @@ -20,7 +20,7 @@ Index: posix/fnmatch.c mbstate_t ps; size_t n; const char *p; -@@ -378,10 +379,8 @@ +@@ -382,10 +383,8 @@ fnmatch (pattern, string, flags) wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); n = mbsrtowcs (wstring, &p, n + 1, &ps); if (__builtin_expect (n == (size_t) -1, 0)) @@ -31,10 +31,10 @@ Index: posix/fnmatch.c + /* Something wrong. Fall back to single byte matching. */ + goto try_singlebyte; if (p) - memset (&ps, '\0', sizeof (ps)); - } -@@ -389,10 +388,8 @@ - { + { + memset (&ps, '\0', sizeof (ps)); +@@ -397,10 +396,8 @@ fnmatch (pattern, string, flags) + prepare_wstring: n = mbsrtowcs (NULL, &string, 0, &ps); if (__builtin_expect (n == (size_t) -1, 0)) - /* Something wrong. @@ -46,7 +46,7 @@ Index: posix/fnmatch.c wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); assert (mbsinit (&ps)); (void) mbsrtowcs (wstring, &string, n + 1, &ps); -@@ -400,6 +397,9 @@ +@@ -408,6 +405,9 @@ fnmatch (pattern, string, flags) return internal_fnwmatch (wpattern, wstring, wstring + n, flags & FNM_PERIOD, flags, NULL); diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index 6231d5a..013b862 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -1,10 +1,7 @@ Index: intl/loadmsgcat.c =================================================================== -RCS file: /cvs/glibc/libc/intl/loadmsgcat.c,v -retrieving revision 1.57 -diff -u -p -r1.57 loadmsgcat.c ---- intl/loadmsgcat.c 28 Jul 2007 20:34:43 -0000 1.57 -+++ intl/loadmsgcat.c 31 Aug 2007 15:36:40 -0000 +--- intl/loadmsgcat.c.orig ++++ intl/loadmsgcat.c @@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind if (domain_file->filename == NULL) goto out; diff --git a/glibc-2.3.90-ld.so-madvise.diff b/glibc-2.3.90-ld.so-madvise.diff index 9f661e9..44ed621 100644 --- a/glibc-2.3.90-ld.so-madvise.diff +++ b/glibc-2.3.90-ld.so-madvise.diff @@ -2,7 +2,7 @@ Index: elf/dl-load.c =================================================================== --- elf/dl-load.c.orig +++ elf/dl-load.c -@@ -1219,6 +1219,9 @@ cannot allocate TLS data structures for +@@ -1204,6 +1204,9 @@ cannot allocate TLS data structures for goto call_lose_errno; } @@ -16,7 +16,7 @@ Index: elf/dl-support.c =================================================================== --- elf/dl-support.c.orig +++ elf/dl-support.c -@@ -41,6 +41,7 @@ size_t _dl_platformlen; +@@ -42,6 +42,7 @@ size_t _dl_platformlen; int _dl_debug_mask; int _dl_lazy; @@ -24,7 +24,7 @@ Index: elf/dl-support.c ElfW(Addr) _dl_use_load_bias = -2; int _dl_dynamic_weak; -@@ -240,6 +241,8 @@ _dl_non_dynamic_init (void) +@@ -254,6 +255,8 @@ _dl_non_dynamic_init (void) _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0'; @@ -37,7 +37,7 @@ Index: elf/rtld.c =================================================================== --- elf/rtld.c.orig +++ elf/rtld.c -@@ -152,6 +152,7 @@ struct rtld_global_ro _rtld_global_ro at +@@ -153,6 +153,7 @@ struct rtld_global_ro _rtld_global_ro at ._dl_lazy = 1, ._dl_fpu_control = _FPU_DEFAULT, ._dl_pointer_guard = 1, @@ -45,7 +45,7 @@ Index: elf/rtld.c /* Function pointers. */ ._dl_debug_printf = _dl_debug_printf, -@@ -2619,6 +2620,14 @@ process_envvars (enum mode *modep) +@@ -2607,6 +2608,14 @@ process_envvars (enum mode *modep) break; case 9: @@ -64,7 +64,7 @@ Index: sysdeps/generic/ldsodefs.h =================================================================== --- sysdeps/generic/ldsodefs.h.orig +++ sysdeps/generic/ldsodefs.h -@@ -567,6 +567,9 @@ struct rtld_global_ro +@@ -561,6 +561,9 @@ struct rtld_global_ro /* Do we do lazy relocations? */ EXTERN int _dl_lazy; diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index f4cedd4..ae8b861 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,6 +1,8 @@ ---- elf/rtld.c -+++ elf/rtld.c 2005/04/12 10:05:38 -@@ -1672,6 +1672,53 @@ +Index: elf/rtld.c +=================================================================== +--- elf/rtld.c.orig ++++ elf/rtld.c +@@ -1756,6 +1756,53 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 710a1d4..0b1e480 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b02688b3e712aac40c8ef77b2ef2e2996abe86350d1827458571ba2cbeeed08 -size 330830 +oid sha256:308f75f9daa64b97485a53420215656b001cc25a9337c34887d2c279efe32bc9 +size 328632 diff --git a/glibc-2.4-china.diff b/glibc-2.4-china.diff index ef7f0c9..c0b68b6 100644 --- a/glibc-2.4-china.diff +++ b/glibc-2.4-china.diff @@ -1,5 +1,7 @@ ---- localedata/locales/zh_TW -+++ localedata/locales/zh_TW 2006/04/24 09:55:16 +Index: localedata/locales/zh_TW +=================================================================== +--- localedata/locales/zh_TW.orig ++++ localedata/locales/zh_TW @@ -1,7 +1,7 @@ comment_char % escape_char / @@ -9,7 +11,7 @@ % charmap: BIG5-CP950 % % Original Author: -@@ -17,7 +17,7 @@ +@@ -17,7 +17,7 @@ escape_char / % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf LC_IDENTIFICATION @@ -18,7 +20,7 @@ source "" address "" contact "" -@@ -25,7 +25,7 @@ +@@ -25,7 +25,7 @@ email "bug-glibc-locales@gnu.org" tel "" fax "" language "Chinese" diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff index ddac96a..b38803f 100644 --- a/glibc-2.4.90-no_NO.diff +++ b/glibc-2.4.90-no_NO.diff @@ -1,6 +1,8 @@ ---- intl/locale.alias -+++ intl/locale.alias 2006/06/03 15:26:29 -@@ -58,8 +58,6 @@ +Index: intl/locale.alias +=================================================================== +--- intl/locale.alias.orig ++++ intl/locale.alias +@@ -57,8 +57,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR lithuanian lt_LT.ISO-8859-13 @@ -9,8 +11,10 @@ norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 ---- localedata/locales/no_NO -+++ localedata/locales/no_NO 2006/06/03 15:26:29 +Index: localedata/locales/no_NO +=================================================================== +--- /dev/null ++++ localedata/locales/no_NO @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -81,9 +85,11 @@ +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS ---- localedata/SUPPORTED -+++ localedata/SUPPORTED 2006/06/03 15:27:01 -@@ -274,6 +274,8 @@ +Index: localedata/SUPPORTED +=================================================================== +--- localedata/SUPPORTED.orig ++++ localedata/SUPPORTED +@@ -303,6 +303,8 @@ nl_NL/ISO-8859-1 \ nl_NL@euro/ISO-8859-15 \ nn_NO.UTF-8/UTF-8 \ nn_NO/ISO-8859-1 \ diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff index 115e684..3c5fa26 100644 --- a/glibc-2.4.90-nscd.diff +++ b/glibc-2.4.90-nscd.diff @@ -2,7 +2,7 @@ Index: nscd/cache.c =================================================================== --- nscd/cache.c.orig +++ nscd/cache.c -@@ -277,28 +277,31 @@ prune_cache (struct database_dyn *table, +@@ -267,28 +267,31 @@ prune_cache (struct database_dyn *table, if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) { struct stat64 st; @@ -49,7 +49,7 @@ Index: nscd/connections.c =================================================================== --- nscd/connections.c.orig +++ nscd/connections.c -@@ -118,6 +118,7 @@ struct database_dyn dbs[lastdb] = +@@ -119,6 +119,7 @@ struct database_dyn dbs[lastdb] = .suggested_module = DEFAULT_SUGGESTED_MODULE, .reset_res = 0, .filename = "/etc/passwd", @@ -57,7 +57,7 @@ Index: nscd/connections.c .db_filename = _PATH_NSCD_PASSWD_DB, .disabled_iov = &pwd_iov_disabled, .postimeout = 3600, -@@ -138,6 +139,7 @@ struct database_dyn dbs[lastdb] = +@@ -140,6 +141,7 @@ struct database_dyn dbs[lastdb] = .suggested_module = DEFAULT_SUGGESTED_MODULE, .reset_res = 0, .filename = "/etc/group", @@ -65,7 +65,7 @@ Index: nscd/connections.c .db_filename = _PATH_NSCD_GROUP_DB, .disabled_iov = &grp_iov_disabled, .postimeout = 3600, -@@ -158,6 +160,7 @@ struct database_dyn dbs[lastdb] = +@@ -161,6 +163,7 @@ struct database_dyn dbs[lastdb] = .suggested_module = DEFAULT_SUGGESTED_MODULE, .reset_res = 1, .filename = "/etc/hosts", @@ -73,7 +73,7 @@ Index: nscd/connections.c .db_filename = _PATH_NSCD_HOSTS_DB, .disabled_iov = &hst_iov_disabled, .postimeout = 3600, -@@ -852,15 +855,9 @@ cannot set socket to close on exec: %s; +@@ -855,15 +858,9 @@ cannot set socket to close on exec: %s; /* We need the modification date of the file. */ struct stat64 st; diff --git a/glibc-2.4.90-revert-only-euro.diff b/glibc-2.4.90-revert-only-euro.diff index 2cddb1a..13dd342 100644 --- a/glibc-2.4.90-revert-only-euro.diff +++ b/glibc-2.4.90-revert-only-euro.diff @@ -1,5 +1,7 @@ ---- locale/iso-4217.def -+++ locale/iso-4217.def 2006/06/03 15:19:50 +Index: locale/iso-4217.def +=================================================================== +--- locale/iso-4217.def.orig ++++ locale/iso-4217.def @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! @@ -8,7 +10,7 @@ DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */ DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */ DEFINE_INT_CURR("ALL") /* Albanian Lek */ -@@ -15,12 +16,14 @@ +@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD") /* Armenia Dram DEFINE_INT_CURR("ANG") /* Netherlands Antilles */ DEFINE_INT_CURR("AOA") /* Angolan Kwanza */ DEFINE_INT_CURR("ARS") /* Argentine Peso */ @@ -23,7 +25,7 @@ DEFINE_INT_CURR("BGN") /* Bulgarian Lev */ DEFINE_INT_CURR("BHD") /* Bahraini Dinar */ DEFINE_INT_CURR("BIF") /* Burundi Franc */ -@@ -45,6 +48,7 @@ +@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP") /* Cuban Peso * DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */ DEFINE_INT_CURR("CYP") /* Cypriot Pound */ DEFINE_INT_CURR("CZK") /* Czech Koruna */ @@ -31,7 +33,7 @@ DEFINE_INT_CURR("DJF") /* Djibouti Franc */ DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */ DEFINE_INT_CURR("DOP") /* Dominican Republic */ -@@ -52,16 +56,20 @@ +@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD") /* Algerian Dina DEFINE_INT_CURR("EEK") /* Estonian Kroon */ DEFINE_INT_CURR("EGP") /* Egyptian Pound */ DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */ @@ -52,7 +54,7 @@ DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */ DEFINE_INT_CURR("GYD") /* Guyana Dollar */ DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */ -@@ -70,12 +78,14 @@ +@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK") /* Croatia Kuna DEFINE_INT_CURR("HTG") /* Haiti Gourde */ DEFINE_INT_CURR("HUF") /* Hungarian Forint */ DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */ @@ -67,7 +69,7 @@ DEFINE_INT_CURR("JEP") /* Jersey Pound */ DEFINE_INT_CURR("JMD") /* Jamaican Dollar */ DEFINE_INT_CURR("JOD") /* Jordanian Dinar */ -@@ -95,6 +105,7 @@ +@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR") /* Sri Lankan Ru DEFINE_INT_CURR("LRD") /* Liberian Dollar */ DEFINE_INT_CURR("LSL") /* Lesotho Maloti */ DEFINE_INT_CURR("LTL") /* Lithuanian Litas */ @@ -75,7 +77,7 @@ DEFINE_INT_CURR("LVL") /* Latvia Lat */ DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */ DEFINE_INT_CURR("MAD") /* Moroccan Dirham */ -@@ -115,6 +126,7 @@ +@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM") /* Mozambique Me DEFINE_INT_CURR("NAD") /* Namibia Dollar */ DEFINE_INT_CURR("NGN") /* Nigeria Naira */ DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */ @@ -83,7 +85,7 @@ DEFINE_INT_CURR("NOK") /* Norwegian Krone */ DEFINE_INT_CURR("NPR") /* Nepalese Rupee */ DEFINE_INT_CURR("NZD") /* New Zealand Dollar */ -@@ -125,6 +137,7 @@ +@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK") /* Papau New Gui DEFINE_INT_CURR("PHP") /* Philippines Peso */ DEFINE_INT_CURR("PKR") /* Pakistan Rupee */ DEFINE_INT_CURR("PLN") /* Polish Zloty */ diff --git a/glibc-2.5-ppc-llrintl.diff b/glibc-2.5-ppc-llrintl.diff index 08fc47f..3a65665 100644 --- a/glibc-2.5-ppc-llrintl.diff +++ b/glibc-2.5-ppc-llrintl.diff @@ -1,6 +1,7 @@ -diff -urN dummy-cpu/powerpc-cpu-v0.05/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S libc25/powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S ---- powerpc-cpu-v0.05/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S 2006-04-06 10:50:35.000000000 -0500 -+++ powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S 2007-03-14 14:55:19.113013712 -0500 +Index: powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S +=================================================================== +--- powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S.orig ++++ powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S @@ -18,6 +18,7 @@ 02110-1301 USA. */ @@ -9,7 +10,7 @@ diff -urN dummy-cpu/powerpc-cpu-v0.05/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_ /* long long int[r3, r4] __llrint (double x[fp1]) */ ENTRY (__llrint) -@@ -41,3 +42,6 @@ +@@ -41,3 +42,6 @@ weak_alias (__llrint, llrint) strong_alias (__llrint, __llrintl) weak_alias (__llrint, llrintl) #endif diff --git a/glibc-2.6-configure.diff b/glibc-2.6-configure.diff index 906b29e..a0b405b 100644 --- a/glibc-2.6-configure.diff +++ b/glibc-2.6-configure.diff @@ -1,11 +1,8 @@ Index: configure.in =================================================================== -RCS file: /cvs/glibc/libc/configure.in,v -retrieving revision 1.469 -diff -u -a -p -u -p -a -r1.469 configure.in ---- configure.in 20 Mar 2007 12:11:23 -0000 1.469 -+++ configure.in 13 Jul 2007 13:40:20 -0000 -@@ -1278,7 +1278,7 @@ EOF +--- configure.in.orig ++++ configure.in +@@ -1360,7 +1360,7 @@ EOF fi fi fi @@ -14,7 +11,7 @@ diff -u -a -p -u -p -a -r1.469 configure.in ]) if test $libc_cv_visibility_attribute != yes; then AC_MSG_ERROR(compiler support for visibility attribute is required) -@@ -1294,7 +1294,7 @@ EOF +@@ -1376,7 +1376,7 @@ EOF int bar (int x) { return x; } EOF libc_cv_broken_visibility_attribute=yes @@ -25,12 +22,9 @@ diff -u -a -p -u -p -a -r1.469 configure.in changequote([,])dnl Index: configure =================================================================== -RCS file: /cvs/glibc/libc/configure,v -retrieving revision 1.459 -diff -u -a -p -u -p -a -r1.459 configure ---- configure 20 Mar 2007 12:11:23 -0000 1.459 -+++ configure 13 Jul 2007 13:41:41 -0000 -@@ -5371,7 +5371,7 @@ EOF +--- configure.orig ++++ configure +@@ -6221,7 +6221,7 @@ EOF fi fi fi @@ -38,8 +32,8 @@ diff -u -a -p -u -p -a -r1.459 configure + rm -f conftest* fi - echo "$as_me:$LINENO: result: $libc_cv_visibility_attribute" >&5 -@@ -5395,7 +5395,7 @@ else + { $as_echo "$as_me:$LINENO: result: $libc_cv_visibility_attribute" >&5 +@@ -6245,7 +6245,7 @@ else int bar (int x) { return x; } EOF libc_cv_broken_visibility_attribute=yes diff --git a/glibc-2.8-clone.diff b/glibc-2.8-clone.diff index 7922b44..1bccb5d 100644 --- a/glibc-2.8-clone.diff +++ b/glibc-2.8-clone.diff @@ -2,12 +2,9 @@ http://sources.redhat.com/bugzilla/show_bug.cgi?id=6693 Index: sysdeps/unix/sysv/linux/x86_64/clone.S =================================================================== -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/x86_64/clone.S,v -retrieving revision 1.7 -diff -u -r1.7 clone.S ---- sysdeps/unix/sysv/linux/x86_64/clone.S 3 Dec 2006 23:12:36 -0000 1.7 -+++ sysdeps/unix/sysv/linux/x86_64/clone.S 25 Jun 2008 11:26:15 -0000 -@@ -89,9 +89,6 @@ +--- sysdeps/unix/sysv/linux/x86_64/clone.S.orig ++++ sysdeps/unix/sysv/linux/x86_64/clone.S +@@ -89,9 +89,6 @@ L(pseudo_end): ret L(thread_start): @@ -17,7 +14,7 @@ diff -u -r1.7 clone.S /* Clear the frame pointer. The ABI suggests this be done, to mark the outermost frame obviously. */ xorl %ebp, %ebp -@@ -116,7 +113,6 @@ +@@ -116,7 +113,6 @@ L(thread_start): /* Call exit with return value from function call. */ movq %rax, %rdi call HIDDEN_JUMPTARGET (_exit) @@ -27,12 +24,9 @@ diff -u -r1.7 clone.S PSEUDO_END (BP_SYM (__clone)) Index: sysdeps/unix/sysv/linux/i386/clone.S =================================================================== -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/clone.S,v -retrieving revision 1.27 -diff -u -r1.27 clone.S ---- sysdeps/unix/sysv/linux/i386/clone.S 3 Dec 2006 23:12:36 -0000 1.27 -+++ sysdeps/unix/sysv/linux/i386/clone.S 25 Jun 2008 11:26:16 -0000 -@@ -120,9 +120,6 @@ +--- sysdeps/unix/sysv/linux/i386/clone.S.orig ++++ sysdeps/unix/sysv/linux/i386/clone.S +@@ -120,9 +120,6 @@ L(pseudo_end): ret L(thread_start): @@ -42,7 +36,7 @@ diff -u -r1.27 clone.S /* Note: %esi is zero. */ movl %esi,%ebp /* terminate the stack frame */ #ifdef RESET_PID -@@ -155,7 +152,6 @@ +@@ -155,7 +152,6 @@ L(nomoregetpid): jmp L(haspid) .previous #endif diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff index a75a57e..9c0879e 100644 --- a/glibc-2.8-getconf.diff +++ b/glibc-2.8-getconf.diff @@ -1,8 +1,10 @@ This is required for too noisy rpmlint. ---- posix/Makefile~ 2007-11-21 05:40:26.234633000 +0100 -+++ posix/Makefile 2007-11-21 05:41:02.043775000 +0100 -@@ -296,8 +296,7 @@ +Index: posix/Makefile +=================================================================== +--- posix/Makefile.orig ++++ posix/Makefile +@@ -298,8 +298,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi $(addprefix $(..)./scripts/mkinstalldirs ,\ $(filter-out $(wildcard $@),$@)) while read spec; do \ diff --git a/glibc-check-native-missing-include.diff b/glibc-check-native-missing-include.diff index c1783d3..e881c4b 100644 --- a/glibc-check-native-missing-include.diff +++ b/glibc-check-native-missing-include.diff @@ -1,4 +1,6 @@ ---- sysdeps/unix/sysv/linux/check_native.c +Index: sysdeps/unix/sysv/linux/check_native.c +=================================================================== +--- sysdeps/unix/sysv/linux/check_native.c.orig +++ sysdeps/unix/sysv/linux/check_native.c @@ -23,6 +23,7 @@ #include diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff index a66c7ca..17072c8 100644 --- a/glibc-compiled-binaries.diff +++ b/glibc-compiled-binaries.diff @@ -7,9 +7,11 @@ timezone/Makefile | 2 +- 6 files changed, 20 insertions(+), 4 deletions(-) ---- config.make.in +Index: config.make.in +=================================================================== +--- config.make.in.orig +++ config.make.in -@@ -90,6 +90,7 @@ add-ons = @add_ons@ +@@ -96,6 +96,7 @@ add-ons = @add_ons@ add-on-subdirs = @add_on_subdirs@ sysdeps-add-ons = @sysdeps_add_ons@ cross-compiling = @cross_compiling@ @@ -17,9 +19,11 @@ force-install = @force_install@ # Build tools. ---- configure +Index: configure +=================================================================== +--- configure.orig +++ configure -@@ -590,6 +590,7 @@ ac_clean_files= +@@ -589,6 +589,7 @@ ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no @@ -27,7 +31,7 @@ subdirs= MFLAGS= MAKEFLAGS= -@@ -745,6 +746,7 @@ ac_ct_CC +@@ -741,6 +742,7 @@ CXXFLAGS CXX CPP cross_compiling @@ -35,7 +39,7 @@ BUILD_CC OBJEXT ac_ct_CC -@@ -1280,6 +1282,13 @@ do +@@ -1291,6 +1293,13 @@ do { (exit 1); exit 1; }; } done @@ -49,7 +53,7 @@ # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. -@@ -1195,6 +1204,7 @@ if test "x$host_alias" != x; then +@@ -1306,6 +1315,7 @@ if test "x$host_alias" != x; then If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -57,9 +61,9 @@ fi fi -@@ -1381,6 +1391,9 @@ Optional Features: - VERSION - --enable-all-warnings enable all useful warnings gcc can issue +@@ -1498,6 +1508,9 @@ Optional Features: + enable experimental malloc features + --enable-nss-crypt enable libcrypt to use nss + --enable-runbinaries the compiled binaries should run on the buildhost because + it happens to have a compatible cpu @@ -67,9 +71,11 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ---- configure.in +Index: configure.in +=================================================================== +--- configure.in.orig +++ configure.in -@@ -835,6 +835,7 @@ if test $host != $build; then +@@ -13,6 +13,7 @@ if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) @@ -77,18 +83,22 @@ AC_PROG_CPP # We need the C++ compiler only for testing. AC_PROG_CXX ---- posix/Makefile +Index: posix/Makefile +=================================================================== +--- posix/Makefile.orig +++ posix/Makefile -@@ -301,7 +301,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi +@@ -302,7 +302,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi done < $(objpfx)getconf.speclist $(objpfx)getconf.speclist: $(objpfx)getconf -ifeq (no,$(cross-compiling)) +ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) LC_ALL=C GETCONF_DIR=/dev/null \ - $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new - else ---- sunrpc/Makefile + $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new + LC_ALL=C GETCONF_DIR=/dev/null \ +Index: sunrpc/Makefile +=================================================================== +--- sunrpc/Makefile.orig +++ sunrpc/Makefile @@ -98,7 +98,7 @@ otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libresolv.a @@ -99,7 +109,9 @@ # We can only build this library if we can run the rpcgen we build. headers += $(rpcsvc:%.x=rpcsvc/%.h) extra-libs := librpcsvc ---- timezone/Makefile +Index: timezone/Makefile +=================================================================== +--- timezone/Makefile.orig +++ timezone/Makefile @@ -69,7 +69,7 @@ installed-posixrules-file := $(firstword $(addprefix $(inst_zonedir)/, \ diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff index 0829942..4e67f90 100644 --- a/glibc-cpusetsize.diff +++ b/glibc-cpusetsize.diff @@ -1,7 +1,7 @@ -Index: glibc-2.4/bits/sched.h +Index: bits/sched.h =================================================================== ---- bits/sched.h 2007-08-22 08:02:57.124247019 -0500 -+++ bits/sched.h 2007-08-22 08:03:36.149061686 -0500 +--- bits/sched.h.orig ++++ bits/sched.h @@ -38,7 +38,7 @@ struct sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined @@ -11,11 +11,11 @@ Index: glibc-2.4/bits/sched.h # define __NCPUBITS (8 * sizeof (__cpu_mask)) /* Type for array elements in 'cpu_set'. */ -Index: glibc-2.4/sysdeps/unix/sysv/linux/bits/sched.h +Index: sysdeps/unix/sysv/linux/bits/sched.h =================================================================== ---- sysdeps/unix/sysv/linux/bits/sched.h 2006-02-08 13:09:06.000000000 -0600 -+++ sysdeps/unix/sysv/linux/bits/sched.h 2007-08-22 08:04:00.988126075 -0500 -@@ -97,7 +97,7 @@ struct __sched_param +--- sysdeps/unix/sysv/linux/bits/sched.h.orig ++++ sysdeps/unix/sysv/linux/bits/sched.h +@@ -106,7 +106,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined /* Size definition for CPU sets. */ diff --git a/glibc-nis-splitgroups.diff b/glibc-nis-splitgroups.diff index 3254728..2a2f286 100644 --- a/glibc-nis-splitgroups.diff +++ b/glibc-nis-splitgroups.diff @@ -8,11 +8,11 @@ * nss_compat/compat-initgroups.c: Do not use initgroups_dyn in case NSS_FLAG_SPLIT_GROUPS is set. -diff --git a/nis/Makefile b/nis/Makefile -index 8083ee8..9814fce 100644 ---- nis/Makefile +Index: nis/Makefile +=================================================================== +--- nis/Makefile.orig +++ nis/Makefile -@@ -56,7 +56,8 @@ libnsl-routines = yp_xdr ypclnt ypupdate_xdr \ +@@ -56,7 +56,8 @@ libnsl-routines = yp_xdr ypclnt ypupdate nis_findserv nis_callback nis_clone_dir nis_clone_obj\ nis_clone_res nss-default @@ -22,9 +22,9 @@ index 8083ee8..9814fce 100644 libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \ -diff --git a/nis/libnsl.h b/nis/libnsl.h -index c6ceb32..77c34ef 100644 ---- nis/libnsl.h +Index: nis/libnsl.h +=================================================================== +--- nis/libnsl.h.orig +++ nis/libnsl.h @@ -21,6 +21,7 @@ #define NSS_FLAG_NETID_AUTHORITATIVE 1 @@ -34,9 +34,9 @@ index c6ceb32..77c34ef 100644 /* Get current set of default flags. */ -diff --git a/nis/nss b/nis/nss -index aab40ab..4715ab5 100644 ---- nis/nss +Index: nis/nss +=================================================================== +--- nis/nss.orig +++ nis/nss @@ -1,7 +1,7 @@ # /etc/default/nss @@ -59,11 +59,12 @@ index aab40ab..4715ab5 100644 +# with same gid, a practice used to overcome entry length limitations. +# The downside is a certain performance degradation. +#SPLIT_GROUPS=TRUE -diff --git a/nis/nss-default.c b/nis/nss-default.c -index 046ddfe..d6141b9 100644 ---- nis/nss-default.c +Index: nis/nss-default.c +=================================================================== +--- nis/nss-default.c.orig +++ nis/nss-default.c -@@ -48,6 +48,7 @@ static const struct +@@ -47,7 +47,8 @@ static const struct + #define STRNLEN(s) s, sizeof (s) - 1 { STRNLEN ("NETID_AUTHORITATIVE"), NSS_FLAG_NETID_AUTHORITATIVE }, { STRNLEN ("SERVICES_AUTHORITATIVE"), NSS_FLAG_SERVICES_AUTHORITATIVE }, - { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ } @@ -72,9 +73,9 @@ index 046ddfe..d6141b9 100644 }; #define nvars (sizeof (vars) / sizeof (vars[0])) -diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c -index 76ca95d..14b0aac 100644 ---- nis/nss_compat/compat-initgroups.c +Index: nis/nss_compat/compat-initgroups.c +=================================================================== +--- nis/nss_compat/compat-initgroups.c.orig +++ nis/nss_compat/compat-initgroups.c @@ -32,6 +32,9 @@ #include diff --git a/glibc-nptl-2.4-nofixsyscallnr.diff b/glibc-nptl-2.4-nofixsyscallnr.diff index 3b20885..7a44a4a 100644 --- a/glibc-nptl-2.4-nofixsyscallnr.diff +++ b/glibc-nptl-2.4-nofixsyscallnr.diff @@ -1,6 +1,8 @@ ---- nptl/pthreadP.h -+++ nptl/pthreadP.h 2006/04/07 09:38:46 -@@ -510,15 +510,4 @@ +Index: nptl/pthreadP.h +=================================================================== +--- nptl/pthreadP.h.orig ++++ nptl/pthreadP.h +@@ -575,15 +575,4 @@ extern void __wait_lookup_done (void) at # define PTHREAD_STATIC_FN_REQUIRE(name) __asm (".globl " #name); #endif diff --git a/glibc-nscd-assert.diff b/glibc-nscd-assert.diff index 8b781bc..2c35900 100644 --- a/glibc-nscd-assert.diff +++ b/glibc-nscd-assert.diff @@ -7,10 +7,11 @@ * nscd/initgrcache.c: Likewise. * nscd/pwdcache.c: Likewise. -diff -ur glibc-2.4.orig/nscd/aicache.c glibc-2.4/nscd/aicache.c ---- nscd/aicache.c 2009-06-18 14:20:53.000000000 +0200 -+++ nscd/aicache.c 2009-06-18 14:21:20.000000000 +0200 -@@ -450,6 +450,6 @@ +Index: nscd/aicache.c +=================================================================== +--- nscd/aicache.c.orig ++++ nscd/aicache.c +@@ -453,13 +453,13 @@ addhstaiX (struct database_dyn *db, int { assert (db->wr_fd != -1); assert ((char *) &dataset->resp > (char *) db->data); @@ -18,27 +19,28 @@ diff -ur glibc-2.4.orig/nscd/aicache.c glibc-2.4/nscd/aicache.c + assert ((char *) dataset - (char *) db->head + total <= (sizeof (struct database_pers_head) + db->head->module * sizeof (ref_t) -@@ -458,6 +458,6 @@ + + db->head->data_size)); ssize_t written; written = sendfileall (fd, db->wr_fd, (char *) &dataset->resp - - (char *) db->head, total); + - (char *) db->head, dataset->head.recsize); # ifndef __ASSUME_SENDFILE - if (written == -1 && errno == ENOSYS) - goto use_write; -@@ -469,7 +469,7 @@ - use_write: + if (written == -1 && errno == ENOSYS) + goto use_write; +@@ -470,7 +470,7 @@ addhstaiX (struct database_dyn *db, int + use_write: # endif #endif - writeall (fd, &dataset->resp, total); + writeall (fd, &dataset->resp, dataset->head.recsize); } - goto out; -diff -ur glibc-2.4.orig/nscd/grpcache.c glibc-2.4/nscd/grpcache.c ---- nscd/grpcache.c 2009-06-18 14:20:53.000000000 +0200 -+++ nscd/grpcache.c 2009-06-18 14:21:20.000000000 +0200 -@@ -317,14 +317,14 @@ + goto out; +Index: nscd/grpcache.c +=================================================================== +--- nscd/grpcache.c.orig ++++ nscd/grpcache.c +@@ -299,14 +299,14 @@ cache_addgr (struct database_dyn *db, in { assert (db->wr_fd != -1); assert ((char *) &dataset->resp > (char *) db->data); @@ -55,7 +57,7 @@ diff -ur glibc-2.4.orig/nscd/grpcache.c glibc-2.4/nscd/grpcache.c # ifndef __ASSUME_SENDFILE if (written == -1 && errno == ENOSYS) goto use_write; -@@ -335,7 +335,7 @@ +@@ -317,7 +317,7 @@ cache_addgr (struct database_dyn *db, in use_write: # endif #endif @@ -64,10 +66,11 @@ diff -ur glibc-2.4.orig/nscd/grpcache.c glibc-2.4/nscd/grpcache.c } /* Add the record to the database. But only if it has not been -diff -ur glibc-2.4.orig/nscd/hstcache.c glibc-2.4/nscd/hstcache.c ---- nscd/hstcache.c 2009-06-18 14:20:53.000000000 +0200 -+++ nscd/hstcache.c 2009-06-18 14:22:22.000000000 +0200 -@@ -365,7 +365,7 @@ +Index: nscd/hstcache.c +=================================================================== +--- nscd/hstcache.c.orig ++++ nscd/hstcache.c +@@ -341,7 +341,7 @@ cache_addhst (struct database_dyn *db, i { assert (db->wr_fd != -1); assert ((char *) &dataset->resp > (char *) db->data); @@ -76,10 +79,11 @@ diff -ur glibc-2.4.orig/nscd/hstcache.c glibc-2.4/nscd/hstcache.c + total <= (sizeof (struct database_pers_head) + db->head->module * sizeof (ref_t) -diff -ur glibc-2.4.orig/nscd/initgrcache.c glibc-2.4/nscd/initgrcache.c ---- nscd/initgrcache.c 2009-06-18 14:20:53.000000000 +0200 -+++ nscd/initgrcache.c 2009-06-18 14:21:20.000000000 +0200 -@@ -367,14 +367,14 @@ +Index: nscd/initgrcache.c +=================================================================== +--- nscd/initgrcache.c.orig ++++ nscd/initgrcache.c +@@ -354,14 +354,14 @@ addinitgroupsX (struct database_dyn *db, { assert (db->wr_fd != -1); assert ((char *) &dataset->resp > (char *) db->data); @@ -96,7 +100,7 @@ diff -ur glibc-2.4.orig/nscd/initgrcache.c glibc-2.4/nscd/initgrcache.c # ifndef __ASSUME_SENDFILE if (written == -1 && errno == ENOSYS) goto use_write; -@@ -385,7 +385,7 @@ +@@ -372,7 +372,7 @@ addinitgroupsX (struct database_dyn *db, use_write: # endif #endif @@ -105,10 +109,11 @@ diff -ur glibc-2.4.orig/nscd/initgrcache.c glibc-2.4/nscd/initgrcache.c } -diff -ur glibc-2.4.orig/nscd/pwdcache.c glibc-2.4/nscd/pwdcache.c ---- nscd/pwdcache.c 2009-06-18 14:20:53.000000000 +0200 -+++ nscd/pwdcache.c 2009-06-18 14:21:20.000000000 +0200 -@@ -311,14 +311,14 @@ +Index: nscd/pwdcache.c +=================================================================== +--- nscd/pwdcache.c.orig ++++ nscd/pwdcache.c +@@ -294,14 +294,14 @@ cache_addpw (struct database_dyn *db, in { assert (db->wr_fd != -1); assert ((char *) &dataset->resp > (char *) db->data); @@ -125,7 +130,7 @@ diff -ur glibc-2.4.orig/nscd/pwdcache.c glibc-2.4/nscd/pwdcache.c # ifndef __ASSUME_SENDFILE if (written == -1 && errno == ENOSYS) goto use_write; -@@ -329,7 +329,7 @@ +@@ -312,7 +312,7 @@ cache_addpw (struct database_dyn *db, in use_write: # endif #endif diff --git a/glibc-nscd-prune-ret.diff b/glibc-nscd-prune-ret.diff index 697a449..6e183ba 100644 --- a/glibc-nscd-prune-ret.diff +++ b/glibc-nscd-prune-ret.diff @@ -1,7 +1,8 @@ -diff -urp nscd.mm/cache.c nscd/cache.c ---- nscd.mm/cache.c 2008-10-13 13:09:35.120009000 +0000 -+++ nscd/cache.c 2008-10-13 15:11:17.629844982 +0000 -@@ -300,7 +300,7 @@ prune_cache (struct database_dyn *table, +Index: nscd/cache.c +=================================================================== +--- nscd/cache.c.orig ++++ nscd/cache.c +@@ -290,7 +290,7 @@ prune_cache (struct database_dyn *table, /* now == 0 means just check for changed files */ if (now == (time_t)0) diff --git a/glibc-nss-deepbind.diff b/glibc-nss-deepbind.diff index 4cdcce0..671f52f 100644 --- a/glibc-nss-deepbind.diff +++ b/glibc-nss-deepbind.diff @@ -13,7 +13,7 @@ Index: nss/nsswitch.c =================================================================== --- nss/nsswitch.c.orig +++ nss/nsswitch.c -@@ -358,7 +358,9 @@ __nss_lookup_function (service_user *ni, +@@ -361,7 +361,9 @@ __nss_lookup_function (service_user *ni, ".so"), __nss_shlib_revision); diff --git a/glibc-selinux.diff b/glibc-selinux.diff index c7e22b7..460cd4f 100644 --- a/glibc-selinux.diff +++ b/glibc-selinux.diff @@ -1,6 +1,8 @@ ---- Makerules +Index: Makerules +=================================================================== +--- Makerules.orig +++ Makerules -@@ -349,7 +349,7 @@ +@@ -349,7 +349,7 @@ endif # $(versioning) = yes endif # sysd-sorted-done # Generate .dT files as we compile. @@ -9,9 +11,11 @@ compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags) compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags) compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags) ---- nscd/Makefile +Index: nscd/Makefile +=================================================================== +--- nscd/Makefile.orig +++ nscd/Makefile -@@ -124,6 +124,8 @@ +@@ -123,6 +123,8 @@ CFLAGS-getsrvbynm_r.c += $(nscd-cflags) CFLAGS-getsrvbypt_r.c += $(nscd-cflags) CFLAGS-res_hconf.c += $(nscd-cflags) diff --git a/glibc-suse-note.diff b/glibc-suse-note.diff index b039ddd..5e85769 100644 --- a/glibc-suse-note.diff +++ b/glibc-suse-note.diff @@ -6,7 +6,7 @@ Index: Makerules =================================================================== --- Makerules.orig +++ Makerules -@@ -489,6 +489,7 @@ $(common-objpfx)shlib.lds: $(common-objp +@@ -475,6 +475,7 @@ $(common-objpfx)shlib.lds: $(common-objp -e '/^=========/,/^=========/!d;/^=========/d' \ $(if $(filter yes,$(have-hash-style)), \ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ @@ -14,7 +14,7 @@ Index: Makerules -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \ -e '/DATA_SEGMENT_ALIGN/{H;g}' \ , \ -@@ -514,7 +515,7 @@ common-generated += shlib.lds +@@ -500,7 +501,7 @@ common-generated += shlib.lds define build-shlib $(build-shlib-helper) -o $@ -T $(common-objpfx)shlib.lds \ @@ -23,7 +23,7 @@ Index: Makerules endef else ifneq (,$(findstring aix,$(config-os))) -@@ -556,7 +557,7 @@ ifeq (yes,$(elf)) +@@ -542,7 +543,7 @@ ifeq (yes,$(elf)) # not for shared objects define build-module $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ diff --git a/glibc-utmp-timeout-raise.diff b/glibc-utmp-timeout-raise.diff index 26972f9..24f90fb 100644 --- a/glibc-utmp-timeout-raise.diff +++ b/glibc-utmp-timeout-raise.diff @@ -3,9 +3,11 @@ entries may not appear in the utmp log. With 30s login delay, the system should still stay usable for repair in case the utmp locking somehow breaks down. ---- login/utmp_file.c~ 2009-06-16 12:36:31.000000000 +0200 -+++ login/utmp_file.c 2009-06-16 12:36:33.000000000 +0200 -@@ -42,7 +42,7 @@ +Index: login/utmp_file.c +=================================================================== +--- login/utmp_file.c.orig ++++ login/utmp_file.c +@@ -45,7 +45,7 @@ static struct utmp last_entry; /* Locking timeout. */ #ifndef TIMEOUT diff --git a/glibc-version.diff b/glibc-version.diff index 052c3ba..684dbda 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -1,6 +1,8 @@ ---- csu/version.c -+++ csu/version.c 2003/06/25 07:01:44 -@@ -24,11 +24,12 @@ +Index: csu/version.c +=================================================================== +--- csu/version.c.orig ++++ csu/version.c +@@ -24,16 +24,20 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = @@ -14,14 +16,11 @@ Compiled by GNU CC version "__VERSION__".\n" #include "version-info.h" #ifdef GLIBC_OLDEST_ABI -@@ -37,6 +38,9 @@ - #ifdef USE_TLS - "Thread-local storage support included.\n" + "The oldest ABI supported: " GLIBC_OLDEST_ABI ".\n" #endif +#ifdef FLOATING_STACKS +"pthread library is compiled with floating stack support enabled.\n" +#endif "For bug reporting instructions, please see:\n\ .\n"; - diff --git a/glibc.changes b/glibc.changes index bcdf3c8..084a9e8 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Nov 13 20:18:27 CET 2009 - pbaudis@suse.cz + +- Rediff patches to apply with fuzz 0 + ------------------------------------------------------------------- Sat Sep 19 14:13:43 CEST 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 006e6c3..f0094ed 100644 --- a/glibc.spec +++ b/glibc.spec @@ -70,7 +70,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.10.1 -Release: 9 +Release: 10 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/libm-x86-64-exceptions.diff b/libm-x86-64-exceptions.diff index 6559e8e..df76b2e 100644 --- a/libm-x86-64-exceptions.diff +++ b/libm-x86-64-exceptions.diff @@ -1,6 +1,7 @@ -diff -u sysdeps/x86_64/fpu/libm_inlines_amd.h fpu_new/libm_inlines_amd.h ---- sysdeps/x86_64/fpu/libm_inlines_amd.h 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/libm_inlines_amd.h 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/libm_inlines_amd.h +=================================================================== +--- sysdeps/x86_64/fpu/libm_inlines_amd.h.orig ++++ sysdeps/x86_64/fpu/libm_inlines_amd.h @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -12,7 +13,7 @@ diff -u sysdeps/x86_64/fpu/libm_inlines_amd.h fpu_new/libm_inlines_amd.h THIS LIBRARY** */ -@@ -254,6 +254,33 @@ +@@ -254,6 +254,33 @@ static inline void clear_fpsw_flags(int #if defined(USE_RAISE_FPSW_FLAGS) @@ -46,7 +47,7 @@ diff -u sysdeps/x86_64/fpu/libm_inlines_amd.h fpu_new/libm_inlines_amd.h /* Raises floating-point status flags. The argument should be the bitwise or of the flags to be raised, from the list above, e.g. -@@ -269,11 +296,7 @@ +@@ -269,11 +296,7 @@ static inline void raise_fpsw_flags(int /* Put the floating-point environment back */ __asm fldenv fenv; #elif defined(linux) @@ -59,10 +60,10 @@ diff -u sysdeps/x86_64/fpu/libm_inlines_amd.h fpu_new/libm_inlines_amd.h #else #error Unknown machine #endif -Only in sysdeps/x86_64/fpu/: LICENSE -diff -u sysdeps/x86_64/fpu/s_atan2.c fpu_new/s_atan2.c ---- sysdeps/x86_64/fpu/s_atan2.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/s_atan2.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/s_atan2.c +=================================================================== +--- sysdeps/x86_64/fpu/s_atan2.c.orig ++++ sysdeps/x86_64/fpu/s_atan2.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -74,7 +75,7 @@ diff -u sysdeps/x86_64/fpu/s_atan2.c fpu_new/s_atan2.c THIS LIBRARY** */ -@@ -595,6 +595,14 @@ +@@ -595,6 +595,14 @@ double __atan2(double y, double x) if (yneg) return val_with_flags(-piby2,AMD_F_INEXACT); else val_with_flags(piby2,AMD_F_INEXACT); } @@ -89,9 +90,10 @@ diff -u sysdeps/x86_64/fpu/s_atan2.c fpu_new/s_atan2.c /* Scale up both x and y if they are both below 1/4. This avoids any possible later denormalised arithmetic. */ -diff -u sysdeps/x86_64/fpu/s_atan2f.c fpu_new/s_atan2f.c ---- sysdeps/x86_64/fpu/s_atan2f.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/s_atan2f.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/s_atan2f.c +=================================================================== +--- sysdeps/x86_64/fpu/s_atan2f.c.orig ++++ sysdeps/x86_64/fpu/s_atan2f.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -103,7 +105,7 @@ diff -u sysdeps/x86_64/fpu/s_atan2f.c fpu_new/s_atan2f.c THIS LIBRARY** */ -@@ -349,6 +349,14 @@ +@@ -349,6 +349,14 @@ float __atan2f(float fy, float fx) if (yneg) return val_with_flags(-piby2,AMD_F_INEXACT); else val_with_flags(piby2,AMD_F_INEXACT); } @@ -118,9 +120,10 @@ diff -u sysdeps/x86_64/fpu/s_atan2f.c fpu_new/s_atan2f.c if (diffexp > 26) { /* abs(y)/abs(x) > 2^26 => arctan(x/y) -diff -u sysdeps/x86_64/fpu/s_atan.c fpu_new/s_atan.c ---- sysdeps/x86_64/fpu/s_atan.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/s_atan.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/s_atan.c +=================================================================== +--- sysdeps/x86_64/fpu/s_atan.c.orig ++++ sysdeps/x86_64/fpu/s_atan.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -132,7 +135,7 @@ diff -u sysdeps/x86_64/fpu/s_atan.c fpu_new/s_atan.c THIS LIBRARY** */ -@@ -67,7 +67,7 @@ +@@ -67,7 +67,7 @@ double __atan (double x) if (aux == 0) /* if x=0, then result is precise */ return x; else @@ -141,9 +144,10 @@ diff -u sysdeps/x86_64/fpu/s_atan.c fpu_new/s_atan.c } /* Argument reduction to range [-7/16,7/16] */ -diff -u sysdeps/x86_64/fpu/s_atanf.c fpu_new/s_atanf.c ---- sysdeps/x86_64/fpu/s_atanf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/s_atanf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/s_atanf.c +=================================================================== +--- sysdeps/x86_64/fpu/s_atanf.c.orig ++++ sysdeps/x86_64/fpu/s_atanf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -155,7 +159,7 @@ diff -u sysdeps/x86_64/fpu/s_atanf.c fpu_new/s_atanf.c THIS LIBRARY** */ -@@ -68,7 +68,7 @@ +@@ -68,7 +68,7 @@ float __atanf (float fx) if (aux == 0) /* if x=0, then result is precise */ return fx; else @@ -164,9 +168,10 @@ diff -u sysdeps/x86_64/fpu/s_atanf.c fpu_new/s_atanf.c } v = x; -diff -u sysdeps/x86_64/fpu/s_sincos.c fpu_new/s_sincos.c ---- sysdeps/x86_64/fpu/s_sincos.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/s_sincos.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/s_sincos.c +=================================================================== +--- sysdeps/x86_64/fpu/s_sincos.c.orig ++++ sysdeps/x86_64/fpu/s_sincos.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -180,7 +185,7 @@ diff -u sysdeps/x86_64/fpu/s_sincos.c fpu_new/s_sincos.c THIS LIBRARY** */ -@@ -97,7 +97,7 @@ +@@ -97,7 +97,7 @@ void __sincos(double x, double *s, doubl } else { @@ -189,9 +194,10 @@ diff -u sysdeps/x86_64/fpu/s_sincos.c fpu_new/s_sincos.c *c = val_with_flags(1.0, AMD_F_INEXACT); } } -diff -u sysdeps/x86_64/fpu/s_sincosf.c fpu_new/s_sincosf.c ---- sysdeps/x86_64/fpu/s_sincosf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/s_sincosf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/s_sincosf.c +=================================================================== +--- sysdeps/x86_64/fpu/s_sincosf.c.orig ++++ sysdeps/x86_64/fpu/s_sincosf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -205,9 +211,10 @@ diff -u sysdeps/x86_64/fpu/s_sincosf.c fpu_new/s_sincosf.c THIS LIBRARY** */ -diff -u sysdeps/x86_64/fpu/s_tanf.c fpu_new/s_tanf.c ---- sysdeps/x86_64/fpu/s_tanf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/s_tanf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/s_tanf.c +=================================================================== +--- sysdeps/x86_64/fpu/s_tanf.c.orig ++++ sysdeps/x86_64/fpu/s_tanf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -230,9 +237,10 @@ diff -u sysdeps/x86_64/fpu/s_tanf.c fpu_new/s_tanf.c If recip is true return -1/tan(x) instead. */ static inline double tanf_piby4(double x, int recip) { -diff -u sysdeps/x86_64/fpu/w_asin.c fpu_new/w_asin.c ---- sysdeps/x86_64/fpu/w_asin.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_asin.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_asin.c +=================================================================== +--- sysdeps/x86_64/fpu/w_asin.c.orig ++++ sysdeps/x86_64/fpu/w_asin.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -244,7 +252,7 @@ diff -u sysdeps/x86_64/fpu/w_asin.c fpu_new/w_asin.c THIS LIBRARY** */ -@@ -76,7 +76,8 @@ +@@ -76,7 +76,8 @@ double __asin(double x) if (xexp < -28) { /* y small enough that arcsin(x) = x */ @@ -254,9 +262,10 @@ diff -u sysdeps/x86_64/fpu/w_asin.c fpu_new/w_asin.c } else if (xnan) return x + x; else if (xexp >= 0) -diff -u sysdeps/x86_64/fpu/w_asinf.c fpu_new/w_asinf.c ---- sysdeps/x86_64/fpu/w_asinf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_asinf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_asinf.c +=================================================================== +--- sysdeps/x86_64/fpu/w_asinf.c.orig ++++ sysdeps/x86_64/fpu/w_asinf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -268,7 +277,7 @@ diff -u sysdeps/x86_64/fpu/w_asinf.c fpu_new/w_asinf.c THIS LIBRARY** */ -@@ -75,8 +75,11 @@ +@@ -75,8 +75,11 @@ float __asinf(float x) /* Special cases */ if (xexp < -14) @@ -281,9 +290,10 @@ diff -u sysdeps/x86_64/fpu/w_asinf.c fpu_new/w_asinf.c else if (xnan) return x + x; else if (xexp >= 0) { -diff -u sysdeps/x86_64/fpu/w_hypotf.c fpu_new/w_hypotf.c ---- sysdeps/x86_64/fpu/w_hypotf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_hypotf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_hypotf.c +=================================================================== +--- sysdeps/x86_64/fpu/w_hypotf.c.orig ++++ sysdeps/x86_64/fpu/w_hypotf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -295,7 +305,7 @@ diff -u sysdeps/x86_64/fpu/w_hypotf.c fpu_new/w_hypotf.c THIS LIBRARY** */ -@@ -79,6 +79,20 @@ +@@ -79,6 +79,20 @@ float __hypotf(float x, float y) return retval; } @@ -316,9 +326,10 @@ diff -u sysdeps/x86_64/fpu/w_hypotf.c fpu_new/w_hypotf.c dr = (dx*dx + dy*dy); #if USE_SOFTWARE_SQRT -diff -u sysdeps/x86_64/fpu/w_pow.c fpu_new/w_pow.c ---- sysdeps/x86_64/fpu/w_pow.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_pow.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_pow.c +=================================================================== +--- sysdeps/x86_64/fpu/w_pow.c.orig ++++ sysdeps/x86_64/fpu/w_pow.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -330,7 +341,7 @@ diff -u sysdeps/x86_64/fpu/w_pow.c fpu_new/w_pow.c THIS LIBRARY** */ -@@ -364,8 +364,20 @@ +@@ -364,8 +364,20 @@ double __pow(double x, double y) { /* y is -ve */ if (ax == 0) @@ -353,9 +364,10 @@ diff -u sysdeps/x86_64/fpu/w_pow.c fpu_new/w_pow.c else if (ax < 0x3ff0000000000000) { /* abs(x) < 1.0; return +infinity. */ -diff -u sysdeps/x86_64/fpu/w_powf.c fpu_new/w_powf.c ---- sysdeps/x86_64/fpu/w_powf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_powf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_powf.c +=================================================================== +--- sysdeps/x86_64/fpu/w_powf.c.orig ++++ sysdeps/x86_64/fpu/w_powf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -367,7 +379,7 @@ diff -u sysdeps/x86_64/fpu/w_powf.c fpu_new/w_powf.c THIS LIBRARY** */ -@@ -175,8 +175,20 @@ +@@ -175,8 +175,20 @@ float __powf(float x, float y) { /* y is -ve */ if (ax == 0) @@ -390,9 +402,10 @@ diff -u sysdeps/x86_64/fpu/w_powf.c fpu_new/w_powf.c else if (ax < 0x3f800000) { /* abs(x) < 1.0; return +infinity. */ -diff -u sysdeps/x86_64/fpu/w_remainder.c fpu_new/w_remainder.c ---- sysdeps/x86_64/fpu/w_remainder.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_remainder.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_remainder.c +=================================================================== +--- sysdeps/x86_64/fpu/w_remainder.c.orig ++++ sysdeps/x86_64/fpu/w_remainder.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -404,7 +417,7 @@ diff -u sysdeps/x86_64/fpu/w_remainder.c fpu_new/w_remainder.c THIS LIBRARY** */ -@@ -69,11 +69,31 @@ +@@ -69,11 +69,31 @@ double __remainder(double x, double y) { /* x is NaN or infinity */ if (ux & MANTBITS_DP64) @@ -440,9 +453,10 @@ diff -u sysdeps/x86_64/fpu/w_remainder.c fpu_new/w_remainder.c } else if (yexp > BIASEDEMAX_DP64) { -diff -u sysdeps/x86_64/fpu/w_remainderf.c fpu_new/w_remainderf.c ---- sysdeps/x86_64/fpu/w_remainderf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_remainderf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_remainderf.c +=================================================================== +--- sysdeps/x86_64/fpu/w_remainderf.c.orig ++++ sysdeps/x86_64/fpu/w_remainderf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -454,7 +468,7 @@ diff -u sysdeps/x86_64/fpu/w_remainderf.c fpu_new/w_remainderf.c THIS LIBRARY** */ -@@ -50,11 +50,31 @@ +@@ -50,11 +50,31 @@ float __remainderf(float x, float y) { /* x is NaN or infinity */ if (ux & MANTBITS_DP64) @@ -490,9 +504,10 @@ diff -u sysdeps/x86_64/fpu/w_remainderf.c fpu_new/w_remainderf.c } else if (yexp > BIASEDEMAX_DP64) { -diff -u sysdeps/x86_64/fpu/w_sinh.c fpu_new/w_sinh.c ---- sysdeps/x86_64/fpu/w_sinh.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_sinh.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_sinh.c +=================================================================== +--- sysdeps/x86_64/fpu/w_sinh.c.orig ++++ sysdeps/x86_64/fpu/w_sinh.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -504,7 +519,7 @@ diff -u sysdeps/x86_64/fpu/w_sinh.c fpu_new/w_sinh.c THIS LIBRARY** */ -@@ -249,7 +249,7 @@ +@@ -249,7 +249,7 @@ double __sinh(double x) /* with no inexact */ return x; else @@ -513,9 +528,10 @@ diff -u sysdeps/x86_64/fpu/w_sinh.c fpu_new/w_sinh.c } else if (aux >= 0x7ff0000000000000) /* |x| is NaN or Inf */ return x + x; -diff -u sysdeps/x86_64/fpu/w_sinhf.c fpu_new/w_sinhf.c ---- sysdeps/x86_64/fpu/w_sinhf.c 2009-09-11 14:26:54.000000000 -0500 -+++ sysdeps/x86_64/fpu/w_sinhf.c 2009-09-11 15:36:54.000000000 -0500 +Index: sysdeps/x86_64/fpu/w_sinhf.c +=================================================================== +--- sysdeps/x86_64/fpu/w_sinhf.c.orig ++++ sysdeps/x86_64/fpu/w_sinhf.c @@ -1,8 +1,8 @@ /* -(C) 2002 Advanced Micro Devices, Inc. @@ -541,7 +557,7 @@ diff -u sysdeps/x86_64/fpu/w_sinhf.c fpu_new/w_sinhf.c /* Deal with errno for out-of-range result */ #include "libm_errno_amd.h" -@@ -166,7 +168,8 @@ +@@ -166,7 +168,8 @@ float __sinhf(float fx) if (aux < 0x3f10000000000000) /* |x| small enough that sinh(x) = x */ { if (aux == 0) return x; /* with no inexact */ diff --git a/libm-x86-64.diff.bz2 b/libm-x86-64.diff.bz2 index 38fc85a..4eb2049 100644 --- a/libm-x86-64.diff.bz2 +++ b/libm-x86-64.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d8f65b9076eee071c181fb4a81621adda554b9e247ff97dbe487322b2a03fa3c -size 76941 +oid sha256:349cdc0d042ccd828d6906a0e2498bdacfa89e2a3df0e706fc429756caa39895 +size 76349 diff --git a/ppc-atomic.diff b/ppc-atomic.diff index 9a3538e..89e8224 100644 --- a/ppc-atomic.diff +++ b/ppc-atomic.diff @@ -1,10 +1,7 @@ Index: sysdeps/powerpc/bits/atomic.h =================================================================== -RCS file: /cvs/glibc/libc/sysdeps/powerpc/bits/atomic.h,v -retrieving revision 1.17 -diff -u -a -p -r1.17 atomic.h ---- sysdeps/powerpc/bits/atomic.h 26 Mar 2007 20:15:28 -0000 1.17 -+++ sysdeps/powerpc/bits/atomic.h 31 May 2008 08:50:56 -0000 +--- sysdeps/powerpc/bits/atomic.h.orig ++++ sysdeps/powerpc/bits/atomic.h @@ -85,14 +85,14 @@ typedef uintmax_t uatomic_max_t; __typeof (*(mem)) __tmp; \ __typeof (mem) __memp = (mem); \ @@ -149,11 +146,8 @@ diff -u -a -p -r1.17 atomic.h }) Index: sysdeps/powerpc/powerpc32/bits/atomic.h =================================================================== -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc32/bits/atomic.h,v -retrieving revision 1.6 -diff -u -a -p -r1.6 atomic.h ---- sysdeps/powerpc/powerpc32/bits/atomic.h 26 Mar 2007 20:15:45 -0000 1.6 -+++ sysdeps/powerpc/powerpc32/bits/atomic.h 31 May 2008 08:50:56 -0000 +--- sysdeps/powerpc/powerpc32/bits/atomic.h.orig ++++ sysdeps/powerpc/powerpc32/bits/atomic.h @@ -44,14 +44,14 @@ ({ \ unsigned int __tmp; \ @@ -194,11 +188,8 @@ diff -u -a -p -r1.6 atomic.h }) Index: sysdeps/powerpc/powerpc64/bits/atomic.h =================================================================== -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/bits/atomic.h,v -retrieving revision 1.8 -diff -u -a -p -r1.8 atomic.h ---- sysdeps/powerpc/powerpc64/bits/atomic.h 26 Mar 2007 20:16:03 -0000 1.8 -+++ sysdeps/powerpc/powerpc64/bits/atomic.h 31 May 2008 08:50:56 -0000 +--- sysdeps/powerpc/powerpc64/bits/atomic.h.orig ++++ sysdeps/powerpc/powerpc64/bits/atomic.h @@ -44,14 +44,14 @@ ({ \ unsigned int __tmp, __tmp2; \ diff --git a/resolv.dynamic.diff b/resolv.dynamic.diff index e35b313..f9c45e7 100644 --- a/resolv.dynamic.diff +++ b/resolv.dynamic.diff @@ -1,5 +1,7 @@ ---- resolv/res_libc.c.orig 2005-04-07 14:26:57.181526898 +0200 -+++ resolv/res_libc.c 2005-04-07 18:38:56.718340309 +0200 +Index: resolv/res_libc.c +=================================================================== +--- resolv/res_libc.c.orig ++++ resolv/res_libc.c @@ -22,6 +22,7 @@ #include #include @@ -8,7 +10,7 @@ /* The following bit is copied from res_data.c (where it is #ifdef'ed -@@ -101,6 +102,20 @@ +@@ -95,6 +96,20 @@ int __res_maybe_init (res_state resp, int preinit) { if (resp->options & RES_INIT) { @@ -27,5 +29,5 @@ + } + } if (__res_initstamp != resp->_u._ext.initstamp) { - if (resp->nscount > 0) { - __res_nclose (resp); + if (resp->nscount > 0) + __res_iclose (resp, true); From b7de4d37ebc307dd093d7d1fc582741f205e1dfda806dd48af555d0539b1580c Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Sun, 3 Jan 2010 11:31:34 +0000 Subject: [PATCH 013/204] Accepting request 27940 from Base:System Copy from Base:System/glibc based on submit request 27940 from user dirkmueller OBS-URL: https://build.opensuse.org/request/show/27940 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=14 --- bindresvport.blacklist | 2 + glibc-2.10-mcheck-free-race.diff | 49 - glibc-2.10.1-44dbdf3777.tar.bz2 | 3 - glibc-2.11-1bc1954c7357.tar.bz2 | 3 + glibc-2.3.3-amd64-string.diff | 3236 +++++++++++++++++++++------- glibc-2.3.90-ld.so-madvise.diff | 8 +- glibc-2.3.90-noversion.diff | 2 +- glibc-2.3.locales.diff.bz2 | 4 +- glibc-2.4.90-no_NO.diff | 2 +- glibc-2.4.90-nscd.diff | 2 +- glibc-2.6-configure.diff | 8 +- glibc-compiled-binaries.diff | 12 +- glibc-ia64-memchr.diff | 39 + glibc-nameserver-localhost.diff | 29 + glibc-nis-splitgroups.diff | 4 +- glibc-nptl-2.4-nofixsyscallnr.diff | 2 +- glibc-nscd-assert.diff | 141 -- glibc-nscd-prune-ret.diff | 13 - glibc-uio-cell.diff | 26 + glibc-utmp-timeout-raise.diff | 18 - glibc.changes | 114 + glibc.spec | 678 +++--- glibc_post_upgrade.c | 16 - libm-x86-64.diff.bz2 | 4 +- 24 files changed, 3025 insertions(+), 1390 deletions(-) delete mode 100644 glibc-2.10-mcheck-free-race.diff delete mode 100644 glibc-2.10.1-44dbdf3777.tar.bz2 create mode 100644 glibc-2.11-1bc1954c7357.tar.bz2 create mode 100644 glibc-ia64-memchr.diff create mode 100644 glibc-nameserver-localhost.diff delete mode 100644 glibc-nscd-assert.diff delete mode 100644 glibc-nscd-prune-ret.diff create mode 100644 glibc-uio-cell.diff delete mode 100644 glibc-utmp-timeout-raise.diff diff --git a/bindresvport.blacklist b/bindresvport.blacklist index ae64c70..8b285bd 100644 --- a/bindresvport.blacklist +++ b/bindresvport.blacklist @@ -4,8 +4,10 @@ # called by RPC services. This mostly solves the problem, that a # RPC service uses a well known port of another service. # +623 # ASF, used by IPMI on some cards 631 # cups 636 # ldaps +664 # Secure ASF, used by IPMI on some cards 774 # rpasswd 921 # lwresd 993 # imaps diff --git a/glibc-2.10-mcheck-free-race.diff b/glibc-2.10-mcheck-free-race.diff deleted file mode 100644 index 23bb78f..0000000 --- a/glibc-2.10-mcheck-free-race.diff +++ /dev/null @@ -1,49 +0,0 @@ -2009-06-15 Petr Baudis - - * malloc/hooks.c (free_check): Do not invoke mem2chunk_check() - without main_arena mutex held. - -Index: malloc/hooks.c -=================================================================== ---- malloc/hooks.c.orig -+++ malloc/hooks.c -@@ -276,25 +276,33 @@ free_check(mem, caller) Void_t* mem; con - mchunkptr p; - - if(!mem) return; -+#ifndef ATOMIC_FASTBINS -+ (void)mutex_lock(&main_arena.mutex); -+#endif - p = mem2chunk_check(mem, NULL); - if(!p) { -+#ifndef ATOMIC_FASTBINS -+ (void)mutex_unlock(&main_arena.mutex); -+#endif - malloc_printerr(check_action, "free(): invalid pointer", mem); - return; - } - #if HAVE_MMAP - if (chunk_is_mmapped(p)) { - munmap_chunk(p); -- return; -- } -+ } else - #endif -+ { - #if 0 /* Erase freed memory. */ -- memset(mem, 0, chunksize(p) - (SIZE_SZ+1)); -+ memset(mem, 0, chunksize(p) - (SIZE_SZ+1)); - #endif - #ifdef ATOMIC_FASTBINS -- _int_free(&main_arena, p, 0); -+ _int_free(&main_arena, p, 0); - #else -- (void)mutex_lock(&main_arena.mutex); -- _int_free(&main_arena, p); -+ _int_free(&main_arena, p); -+#endif -+ } -+#ifndef ATOMIC_FASTBINS - (void)mutex_unlock(&main_arena.mutex); - #endif - } diff --git a/glibc-2.10.1-44dbdf3777.tar.bz2 b/glibc-2.10.1-44dbdf3777.tar.bz2 deleted file mode 100644 index 086bc77..0000000 --- a/glibc-2.10.1-44dbdf3777.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7a101729724f4487592df4011be0f9766992cc6cf70b39b07c45875897ce742 -size 15594985 diff --git a/glibc-2.11-1bc1954c7357.tar.bz2 b/glibc-2.11-1bc1954c7357.tar.bz2 new file mode 100644 index 0000000..81d08cb --- /dev/null +++ b/glibc-2.11-1bc1954c7357.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0ab54f44140cae0caac44045051efa49d7fe663257dd95a47231d1bfec789fd +size 15683806 diff --git a/glibc-2.3.3-amd64-string.diff b/glibc-2.3.3-amd64-string.diff index 89179f1..d9d0cba 100644 --- a/glibc-2.3.3-amd64-string.diff +++ b/glibc-2.3.3-amd64-string.diff @@ -1,466 +1,3 @@ -============================================================ -Index: sysdeps/x86_64/strlen.S -=================================================================== ---- sysdeps/x86_64/strlen.S.orig -+++ sysdeps/x86_64/strlen.S -@@ -1,54 +1,405 @@ --/* strlen(str) -- determine the length of the string STR. -- Copyright (C) 2009 Free Software Foundation, Inc. -- Contributed by Ulrich Drepper . -- This file is part of the GNU C Library. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include -- -- -- .text --ENTRY(strlen) -- movq %rdi, %rcx -- movq %rdi, %r8 -- andq $~15, %rdi -- pxor %xmm1, %xmm1 -- orl $0xffffffff, %esi -- movdqa (%rdi), %xmm0 -- subq %rdi, %rcx -- leaq 16(%rdi), %rdi -- pcmpeqb %xmm1, %xmm0 -- shl %cl, %esi -- pmovmskb %xmm0, %edx -- xorl %eax, %eax -- negq %r8 -- andl %esi, %edx -- jnz 1f -- --2: movdqa (%rdi), %xmm0 -- leaq 16(%rdi), %rdi -- pcmpeqb %xmm1, %xmm0 -- pmovmskb %xmm0, %edx -- testl %edx, %edx -- jz 2b -- --1: leaq -16(%rdi,%r8), %rdi -- bsfl %edx, %eax -- addq %rdi, %rax -- ret -+# $Header: /K8_Projects/Glibc/amd64strlen.S 3 10/06/03 11:00 Emenezes $ -+ -+# (c) 2002 Advanced Micro Devices, Inc. -+# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS -+# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+# LICENSE FOUND IN THE "README" FILE THAT IS -+# INCLUDED WITH THIS FILE -+ -+#include "sysdep.h" -+#include -+ -+#ifdef PIC -+ .globl _rtld_local_ro -+ .hidden _rtld_local_ro -+ .set _rtld_local_ro,_rtld_global_ro -+#endif -+ .text -+ -+ENTRY (strlen) # (const char *s) -+ -+ mov %rdi, %rsi -+ neg %rdi -+ -+L(strlenaligntry): -+ mov %rsi , %r8 -+ and $7, %r8d -+ jz L(strlenalignafter) -+ -+L(strlenalign): # 8-byte align -+ sub $8, %r8 -+ -+ .p2align 4 -+ -+L(strlenalignloop): -+ cmpb $0, (%rsi) -+ je L(exit) -+ -+ inc %rsi -+ inc %r8 -+ jnz L(strlenalignloop) -+ -+ .p2align 4 -+ -+L(strlenalignafter): -+ -+L(strlen56try): -+ -+L(strlen56): # 56-byte -+ mov (%rsi), %rax -+ mov $0xfefefefefefefeff, %rcx -+ -+L(strlen56loop): -+ mov %rcx, %r8 -+ add %rax, %r8 -+ jnc L(strlentail) -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ inc %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ jnc L(strlentail) -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ inc %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ jnc L(strlentail) -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ inc %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ jnc L(strlentail) -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ inc %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ jnc L(strlentail) -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ inc %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ jnc L(strlentail) -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ inc %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ jnc L(strlentail) -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ inc %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+L(strlen56after): -+ -+L(strlen32): # 32-byte -+# mov $0xfefefefefefefeff, %rcx -+# mov (%rsi), %rax -+ -+#ifdef PIC -+ mov _rtld_local_ro@GOTPCREL(%rip), %r8 -+ mov RTLD_GLOBAL_DL_CACHE1SIZE(%r8), %r9 -+#else -+ mov _dl_cache1size, %r9 -+#endif -+ -+ .p2align 4 -+ -+L(strlen32loop): -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ sub $32, %r9 -+ -+ mov 8 (%rsi), %rax -+ lea 8 (%rsi), %rsi -+ -+ jbe L(strlen32loop) -+ -+L(strlen32after): -+ -+L(strlenpretry): -+ -+L(strlenpre): # 64-byte prefetch -+# mov $0xfefefefefefefeff, %rcx -+# mov (%rsi), %rax -+ -+ .p2align 4 -+ -+L(strlenpreloop): -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %rdx, %rdx -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %rdx, %r8 -+ jnz L(strlentail) -+ -+ prefetcht0 512 (%rsi) -+ -+ mov 8 (%rsi), %rax -+ add $8, %rsi -+ -+ jmp L(strlenpreloop) -+ -+ .p2align 4 -+ -+L(strlenpreafter): -+ -+L(strlentailtry): -+ -+L(strlentail): # 4-byte tail -+ -+L(strlentailloop): -+ test %al, %al -+ jz L(exit) -+ -+ inc %rsi -+ -+ test %ah, %ah -+ jz L(exit) -+ -+ inc %rsi -+ -+ test $0x00ff0000, %eax -+ jz L(exit) -+ -+ inc %rsi -+ -+ test $0xff000000, %eax -+ jz L(exit) -+ -+ inc %rsi -+ -+ shr $32, %rax -+ jmp L(strlentailloop) -+ -+L(strlentailafter): -+ -+ .p2align 4 -+ -+L(exit): -+ lea (%rdi, %rsi), %rax -+ ret -+ - END(strlen) - libc_hidden_builtin_def (strlen) Index: sysdeps/x86_64/dl-machine.h =================================================================== --- sysdeps/x86_64/dl-machine.h.orig @@ -510,13 +47,13 @@ Index: sysdeps/x86_64/Makefile =================================================================== --- sysdeps/x86_64/Makefile.orig +++ sysdeps/x86_64/Makefile -@@ -4,6 +4,9 @@ long-double-fcts = yes +@@ -4,7 +4,8 @@ long-double-fcts = yes ifeq ($(subdir),csu) sysdep_routines += hp-timing elide-routines.os += hp-timing -+ +-gen-as-const-headers += link-defines.sym +# get offset to rtld_global._dl_* -+gen-as-const-headers += rtld-global-offsets.sym ++gen-as-const-headers += link-defines.sym rtld-global-offsets.sym endif ifeq ($(subdir),gmon) @@ -1645,9 +1182,364 @@ Index: sysdeps/x86_64/elf/rtld-global-offsets.sym +RTLD_GLOBAL_DL_CACHE2SIZEHALF rtdl_global_offsetof (_dl_cache2sizehalf) Index: sysdeps/x86_64/memcmp.S =================================================================== ---- /dev/null +--- sysdeps/x86_64/memcmp.S.orig +++ sysdeps/x86_64/memcmp.S -@@ -0,0 +1,443 @@ +@@ -1,358 +1,442 @@ +-/* memcmp with SSE2 +- Copyright (C) 2009 Free Software Foundation, Inc. +- Contributed by Intel Corporation. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +- +- .text +-ENTRY (memcmp) +- test %rdx, %rdx +- jz L(finz) +- cmpq $1, %rdx +- jle L(finr1b) +- subq %rdi, %rsi +- movq %rdx, %r10 +- cmpq $32, %r10 +- jge L(gt32) +- /* Handle small chunks and last block of less than 32 bytes. */ +-L(small): +- testq $1, %r10 +- jz L(s2b) +- movzbl (%rdi), %eax +- movzbl (%rdi, %rsi), %edx +- subq $1, %r10 +- je L(finz1) +- addq $1, %rdi +- subl %edx, %eax +- jnz L(exit) +-L(s2b): +- testq $2, %r10 +- jz L(s4b) +- movzwl (%rdi), %eax +- movzwl (%rdi, %rsi), %edx +- subq $2, %r10 +- je L(fin2_7) +- addq $2, %rdi +- cmpl %edx, %eax +- jnz L(fin2_7) +-L(s4b): +- testq $4, %r10 +- jz L(s8b) +- movl (%rdi), %eax +- movl (%rdi, %rsi), %edx +- subq $4, %r10 +- je L(fin2_7) +- addq $4, %rdi +- cmpl %edx, %eax +- jnz L(fin2_7) +-L(s8b): +- testq $8, %r10 +- jz L(s16b) +- movq (%rdi), %rax +- movq (%rdi, %rsi), %rdx +- subq $8, %r10 +- je L(fin2_7) +- addq $8, %rdi +- cmpq %rdx, %rax +- jnz L(fin2_7) +-L(s16b): +- movdqu (%rdi), %xmm1 +- movdqu (%rdi, %rsi), %xmm0 +- pcmpeqb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- xorl %eax, %eax +- subl $0xffff, %edx +- jz L(finz) +- bsfl %edx, %ecx +- leaq (%rdi, %rcx), %rcx +- movzbl (%rcx), %eax +- movzbl (%rsi, %rcx), %edx +- jmp L(finz1) +- +- .p2align 4,, 4 +-L(finr1b): +- movzbl (%rdi), %eax +- movzbl (%rsi), %edx +-L(finz1): +- subl %edx, %eax +-L(exit): +- ret +- +- .p2align 4,, 4 +-L(fin2_7): +- cmpq %rdx, %rax +- jz L(finz) +- movq %rax, %r11 +- subq %rdx, %r11 +- bsfq %r11, %rcx +- sarq $3, %rcx +- salq $3, %rcx +- sarq %cl, %rax +- movzbl %al, %eax +- sarq %cl, %rdx +- movzbl %dl, %edx +- subl %edx, %eax +- ret +- +- .p2align 4,, 4 +-L(finz): +- xorl %eax, %eax +- ret +- +- /* For blocks bigger than 32 bytes +- 1. Advance one of the addr pointer to be 16B aligned. +- 2. Treat the case of both addr pointers aligned to 16B +- separately to avoid movdqu. +- 3. Handle any blocks of greater than 64 consecutive bytes with +- unrolling to reduce branches. +- 4. At least one addr pointer is 16B aligned, use memory version +- of pcmbeqb. +- */ +- .p2align 4,, 4 +-L(gt32): +- movq %rdx, %r11 +- addq %rdi, %r11 +- movq %rdi, %r8 +- +- andq $15, %r8 +- jz L(16am) +- /* Both pointers may be misaligned. */ +- movdqu (%rdi), %xmm1 +- movdqu (%rdi, %rsi), %xmm0 +- pcmpeqb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- subl $0xffff, %edx +- jnz L(neq) +- neg %r8 +- leaq 16(%rdi, %r8), %rdi +-L(16am): +- /* Handle two 16B aligned pointers separately. */ +- testq $15, %rsi +- jz L(ATR) +- testq $16, %rdi +- jz L(A32) +- movdqu (%rdi, %rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +-L(A32): +- movq %r11, %r10 +- andq $-32, %r10 +- cmpq %r10, %rdi +- jge L(mt16) +- /* Pre-unroll to be ready for unrolled 64B loop. */ +- testq $32, %rdi +- jz L(A64) +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +-L(A64): +- movq %r11, %r10 +- andq $-64, %r10 +- cmpq %r10, %rdi +- jge L(mt32) +- +-L(A64main): +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- cmpq %rdi, %r10 +- jne L(A64main) +- +-L(mt32): +- movq %r11, %r10 +- andq $-32, %r10 +- cmpq %r10, %rdi +- jge L(mt16) +- +-L(A32main): +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqu (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- cmpq %rdi, %r10 +- jne L(A32main) +-L(mt16): +- subq %rdi, %r11 +- je L(finz) +- movq %r11, %r10 +- jmp L(small) +- +- .p2align 4,, 4 +-L(neq): +- bsfl %edx, %ecx +- movzbl (%rdi, %rcx), %eax +- addq %rdi, %rsi +- movzbl (%rsi,%rcx), %edx +- jmp L(finz1) +- +- .p2align 4,, 4 +-L(ATR): +- movq %r11, %r10 +- andq $-32, %r10 +- cmpq %r10, %rdi +- jge L(mt16) +- testq $16, %rdi +- jz L(ATR32) +- +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- cmpq %rdi, %r10 +- je L(mt16) +- +-L(ATR32): +- movq %r11, %r10 +- andq $-64, %r10 +- testq $32, %rdi +- jz L(ATR64) +- +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +-L(ATR64): +- cmpq %rdi, %r10 +- je L(mt32) +- +-L(ATR64main): +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- cmpq %rdi, %r10 +- jne L(ATR64main) +- +- movq %r11, %r10 +- andq $-32, %r10 +- cmpq %r10, %rdi +- jge L(mt16) +- +-L(ATR32res): +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- movdqa (%rdi,%rsi), %xmm0 +- pcmpeqb (%rdi), %xmm0 +- pmovmskb %xmm0, %edx +- subl $0xffff, %edx +- jnz L(neq) +- addq $16, %rdi +- +- cmpq %r10, %rdi +- jne L(ATR32res) +- +- subq %rdi, %r11 +- je L(finz) +- movq %r11, %r10 +- jmp L(small) +- /* Align to 16byte to improve instruction fetch. */ +- .p2align 4,, 4 +-END(memcmp) +# $Header: /K8_Projects/Glibc/amd64memcmp.S 4 10/06/03 10:57 Emenezes $ + +# (c) 2002 Advanced Micro Devices, Inc. @@ -2087,40 +1979,21 @@ Index: sysdeps/x86_64/memcmp.S + ret + +END (memcmp) -+ -+#undef bcmp -+weak_alias (memcmp, bcmp) -+libc_hidden_builtin_def (memcmp) -Index: sysdeps/x86_64/strncmp.S -=================================================================== ---- /dev/null -+++ sysdeps/x86_64/strncmp.S -@@ -0,0 +1,15 @@ -+# $Header: /K8_Projects/Glibc/amd64strncpy.S 1 8/29/03 16:37 Emenezes $ -+ -+# (c) 2002 Advanced Micro Devices, Inc. -+# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS -+# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+# LICENSE FOUND IN THE "README" FILE THAT IS -+# INCLUDED WITH THIS FILE -+ -+#define USE_AS_STRNCMP -+#define strcmp strncmp -+ -+#include "strcmp.S" -+ -+weak_alias (strncmp, __strncmp) -+libc_hidden_builtin_def (strncmp) + + #undef bcmp + weak_alias (memcmp, bcmp) Index: sysdeps/x86_64/strcmp.S =================================================================== --- sysdeps/x86_64/strcmp.S.orig +++ sysdeps/x86_64/strcmp.S -@@ -1,45 +1,487 @@ +@@ -1,2108 +1,490 @@ -/* Highly optimized version for x86-64. -- Copyright (C) 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc. +- Copyright (C) 1999, 2000, 2002, 2003, 2005, 2009 +- Free Software Foundation, Inc. - This file is part of the GNU C Library. - Based on i686 version contributed by Ulrich Drepper - , 1999. +- Updated with SSE2 support contributed by Intel Corporation. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public @@ -2136,25 +2009,47 @@ Index: sysdeps/x86_64/strcmp.S - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ -- --#include --#include "asm-syntax.h" --#include "bp-sym.h" --#include "bp-asm.h" -+# $Header: /K8_Projects/Glibc/amd64strcmp.S 10 2/10/04 11:48 Emenezes $ -+ -+# (c) 2002 Advanced Micro Devices, Inc. -+# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS -+# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+# LICENSE FOUND IN THE "README" FILE THAT IS -+# INCLUDED WITH THIS FILE -+ -+#include "sysdep.h" -+ -+#define LABEL(s) L##s - .text --ENTRY (BP_SYM (strcmp)) + #include + #include "asm-syntax.h" + #include "bp-sym.h" + #include "bp-asm.h" + +-#undef UPDATE_STRNCMP_COUNTER +- + #ifndef LABEL + #define LABEL(l) L(l) + #endif + +-#ifdef USE_AS_STRNCMP +-/* Since the counter, %r11, is unsigned, we branch to strcmp_exitz +- if the new counter > the old one or is 0. */ +-# define UPDATE_STRNCMP_COUNTER \ +- /* calculate left number to compare */ \ +- lea -16(%rcx, %r11), %r9; \ +- cmp %r9, %r11; \ +- jb LABEL(strcmp_exitz); \ +- test %r9, %r9; \ +- je LABEL(strcmp_exitz); \ +- mov %r9, %r11 +- +-#else +-# define UPDATE_STRNCMP_COUNTER ++#ifndef USE_AS_STRNCMP + # ifndef STRCMP + # define STRCMP strcmp + # endif + #endif +- +-#ifndef USE_SSSE3 + .text +-#else +- .section .text.ssse3,"ax",@progbits +-#endif + +-ENTRY (BP_SYM (STRCMP)) +-#ifdef NOT_IN_libc +-/* Simple version since we can't use SSE registers in ld.so. */ -L(oop): movb (%rdi), %al - cmpb (%rsi), %al - jne L(neq) @@ -2170,355 +2065,1902 @@ Index: sysdeps/x86_64/strcmp.S - movl $-1, %ecx - cmovbl %ecx, %eax - ret --END (BP_SYM (strcmp)) -+ -+ENTRY (strcmp) # (const char *, const char *) -+ +-END (BP_SYM (STRCMP)) +-#else /* NOT_IN_libc */ +-/* +- * This implementation uses SSE to compare up to 16 bytes at a time. +- */ +-#ifdef USE_AS_STRNCMP +- test %rdx, %rdx +- je LABEL(strcmp_exitz) +- cmp $1, %rdx +- je LABEL(Byte0) +- mov %rdx, %r11 +-#endif +- mov %esi, %ecx +- mov %edi, %eax +-/* Use 64bit AND here to avoid long NOP padding. */ +- and $0x3f, %rcx /* rsi alignment in cache line */ +- and $0x3f, %rax /* rdi alignment in cache line */ +- cmp $0x30, %ecx +- ja LABEL(crosscache) /* rsi: 16-byte load will cross cache line */ +- cmp $0x30, %eax +- ja LABEL(crosscache) /* rdi: 16-byte load will cross cache line */ +- movlpd (%rdi), %xmm1 +- movlpd (%rsi), %xmm2 +- movhpd 8(%rdi), %xmm1 +- movhpd 8(%rsi), %xmm2 +- pxor %xmm0, %xmm0 /* clear %xmm0 for null char checks */ +- pcmpeqb %xmm1, %xmm0 /* Any null chars? */ +- pcmpeqb %xmm2, %xmm1 /* compare first 16 bytes for equality */ +- psubb %xmm0, %xmm1 /* packed sub of comparison results*/ +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx /* if first 16 bytes are same, edx == 0xffff */ +- jnz LABEL(less16bytes) /* If not, find different value or null char */ +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) /* finish comparision */ +-#endif +- add $16, %rsi /* prepare to search next 16 bytes */ +- add $16, %rdi /* prepare to search next 16 bytes */ ++ENTRY (STRCMP) # (const char *, const char *) + +- /* +- * Determine source and destination string offsets from 16-byte alignment. +- * Use relative offset difference between the two to determine which case +- * below to use. +- */ +- .p2align 4 +-LABEL(crosscache): +- and $0xfffffffffffffff0, %rsi /* force %rsi is 16 byte aligned */ +- and $0xfffffffffffffff0, %rdi /* force %rdi is 16 byte aligned */ +- mov $0xffff, %edx /* for equivalent offset */ +- xor %r8d, %r8d +- and $0xf, %ecx /* offset of rsi */ +- and $0xf, %eax /* offset of rdi */ +- cmp %eax, %ecx +- je LABEL(ashr_0) /* rsi and rdi relative offset same */ +- ja LABEL(bigger) +- mov %edx, %r8d /* r8d is offset flag for exit tail */ +- xchg %ecx, %eax +- xchg %rsi, %rdi +-LABEL(bigger): +- lea 15(%rax), %r9 +- sub %rcx, %r9 +- lea LABEL(unaligned_table)(%rip), %r10 +- movslq (%r10, %r9,4), %r9 +- lea (%r10, %r9), %r10 +- jmp *%r10 /* jump to corresponding case */ +- +-/* +- * The following cases will be handled by ashr_0 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(0~15) n(0~15) 15(15+ n-n) ashr_0 +- */ +- .p2align 4 +-LABEL(ashr_0): +- +- movdqa (%rsi), %xmm1 +- pxor %xmm0, %xmm0 /* clear %xmm0 for null char check */ +- pcmpeqb %xmm1, %xmm0 /* Any null chars? */ +- pcmpeqb (%rdi), %xmm1 /* compare 16 bytes for equality */ +- psubb %xmm0, %xmm1 /* packed sub of comparison results*/ +- pmovmskb %xmm1, %r9d +- shr %cl, %edx /* adjust 0xffff for offset */ +- shr %cl, %r9d /* adjust for 16-byte offset */ +- sub %r9d, %edx +- /* +- * edx must be the same with r9d if in left byte (16-rcx) is equal to +- * the start from (16-rax) and no null char was seen. +- */ +- jne LABEL(less32bytes) /* mismatch or null char */ +- UPDATE_STRNCMP_COUNTER +- mov $16, %rcx +- mov $16, %r9 +- pxor %xmm0, %xmm0 /* clear xmm0, may have changed above */ +- +- /* +- * Now both strings are aligned at 16-byte boundary. Loop over strings +- * checking 32-bytes per iteration. +- */ +- .p2align 4 +-LABEL(loop_ashr_0): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) /* mismatch or null char seen */ + xor %ecx, %ecx -+ + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif +- add $16, %rcx +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif +- add $16, %rcx +- jmp LABEL(loop_ashr_0) +#ifdef USE_AS_STRNCMP // (const char *, const char *, size_t) + mov %r14, -8 (%rsp) + mov %rdx, %r14 -+ + +-/* +- * The following cases will be handled by ashr_1 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(15) n -15 0(15 +(n-15) - n) ashr_1 +- */ +- .p2align 4 +-LABEL(ashr_1): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 /* Any null chars? */ +- pslldq $15, %xmm2 /* shift first string to align with second */ +- pcmpeqb %xmm1, %xmm2 /* compare 16 bytes for equality */ +- psubb %xmm0, %xmm2 /* packed sub of comparison results*/ +- pmovmskb %xmm2, %r9d +- shr %cl, %edx /* adjust 0xffff for offset */ +- shr %cl, %r9d /* adjust for 16-byte offset */ +- sub %r9d, %edx +- jnz LABEL(less32bytes) /* mismatch or null char seen */ +- movdqa (%rdi), %xmm3 +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads*/ +- mov $1, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 1(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_1): +- add $16, %r10 +- jg LABEL(nibble_ashr_1) /* cross page boundary */ +- +-LABEL(gobble_ashr_1): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 /* store for next cycle */ +- +-#ifndef USE_SSSE3 +- psrldq $1, %xmm3 +- pslldq $15, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) +- +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + test %rdx, %rdx + mov %edx, %eax -+ jz .LABEL(exitz) -+#endif -+ -+.LABEL(aligntry): ++ jz LABEL(exitz) + #endif +- add $16, %rcx +- movdqa %xmm4, %xmm3 + +- add $16, %r10 +- jg LABEL(nibble_ashr_1) /* cross page boundary */ ++LABEL(aligntry): + mov %rsi, %r8 # align by "source" + and $8 - 1, %r8 # between 0 and 8 characters compared -+ jz .LABEL(alignafter) -+ -+.LABEL(align): ++ jz LABEL(alignafter) + +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 /* store for next cycle */ +- +-#ifndef USE_SSSE3 +- psrldq $1, %xmm3 +- pslldq $15, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) ++LABEL(align): + sub $8, %r8 -+ + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_1) +- +- /* +- * Nibble avoids loads across page boundary. This is to avoid a potential +- * access into unmapped memory. +- */ +- .p2align 4 +-LABEL(nibble_ashr_1): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char*/ +- pmovmskb %xmm0, %edx +- test $0xfffe, %edx +- jnz LABEL(ashr_1_exittail) /* find null char*/ + .p2align 4 + -+.LABEL(alignloop): ++LABEL(alignloop): + mov (%rsi, %rcx), %al + mov (%rdi, %rcx), %dl -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- cmp $14, %r11 +- jbe LABEL(ashr_1_exittail) + dec %r14 -+ jl .LABEL(exitafter) -+#endif -+ ++ jl LABEL(exitafter) + #endif + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 /* substract 4K from %r10 */ +- jmp LABEL(gobble_ashr_1) +- +- /* +- * Once find null char, determine if there is a string mismatch +- * before the null char. +- */ +- .p2align 4 +-LABEL(ashr_1_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $1, %xmm0 +- psrldq $1, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_2 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(14~15) n -14 1(15 +(n-14) - n) ashr_2 +- */ +- .p2align 4 +-LABEL(ashr_2): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $14, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $2, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 2(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_2): +- add $16, %r10 +- jg LABEL(nibble_ashr_2) +- +-LABEL(gobble_ashr_2): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $2, %xmm3 +- pslldq $14, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + cmp %dl, %al # check if same character -+ jne .LABEL(exitafter) ++ jne LABEL(exitafter) + test %al, %al # check if character a NUL -+ jz .LABEL(exitafter) -+ ++ jz LABEL(exitafter) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + inc %ecx -+ + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + inc %r8 -+ jnz .LABEL(alignloop) -+ ++ jnz LABEL(alignloop) + +- add $16, %r10 +- jg LABEL(nibble_ashr_2) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $2, %xmm3 +- pslldq $14, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + .p2align 4 -+ -+.LABEL(alignafter): -+ + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif ++LABEL(alignafter): + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_2) +- +- .p2align 4 +-LABEL(nibble_ashr_2): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xfffc, %edx +- jnz LABEL(ashr_2_exittail) + mov %r15, -32 (%rsp) + mov %rbp, -24 (%rsp) + mov %rbx, -16 (%rsp) -+ -+.LABEL(pagealigntry): # page align by "destination" + +-#ifdef USE_AS_STRNCMP +- cmp $13, %r11 +- jbe LABEL(ashr_2_exittail) +-#endif ++LABEL(pagealigntry): # page align by "destination" + mov $4096, %r15d # page size is 4096 + lea (%rdi, %rcx), %ebp + and $4095, %ebp # page mask + sub %r15d, %ebp -+ -+.LABEL(64): # 64-byte + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_2) +- +- .p2align 4 +-LABEL(ashr_2_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $2, %xmm0 +- psrldq $2, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_3 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(13~15) n -13 2(15 +(n-13) - n) ashr_3 +- */ +- .p2align 4 +-LABEL(ashr_3): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $13, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $3, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 3(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_3): +- add $16, %r10 +- jg LABEL(nibble_ashr_3) +- +-LABEL(gobble_ashr_3): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $3, %xmm3 +- pslldq $13, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) ++LABEL(64): # 64-byte + mov $0xfefefefefefefeff, %rbx # magic number -+ + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + .p2align 4 -+ -+.LABEL(64loop): + +- add $16, %rcx +- movdqa %xmm4, %xmm3 ++LABEL(64loop): + add $64, %ebp # check if "destination" crosses a page unevenly -+ jle .LABEL(64gobble) -+ ++ jle LABEL(64gobble) + +- add $16, %r10 +- jg LABEL(nibble_ashr_3) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $3, %xmm3 +- pslldq $13, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + sub %r15d, %ebp + lea 64 (%rcx), %r8 -+ + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + .p2align 4 -+ -+.LABEL(64nibble): + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_3) +- +- .p2align 4 +-LABEL(nibble_ashr_3): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xfff8, %edx +- jnz LABEL(ashr_3_exittail) ++LABEL(64nibble): + mov (%rsi, %rcx), %al + mov (%rdi, %rcx), %dl -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- cmp $12, %r11 +- jbe LABEL(ashr_3_exittail) + dec %r14 + jl .exit -+#endif -+ + #endif + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_3) +- +- .p2align 4 +-LABEL(ashr_3_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $3, %xmm0 +- psrldq $3, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_4 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(12~15) n -12 3(15 +(n-12) - n) ashr_4 +- */ +- .p2align 4 +-LABEL(ashr_4): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $12, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $4, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 4(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_4): +- add $16, %r10 +- jg LABEL(nibble_ashr_4) +- +-LABEL(gobble_ashr_4): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $4, %xmm3 +- pslldq $12, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + cmp %dl, %al # check if same character + jne .exit + test %al, %al # check if character a NUL + jz .exit -+ + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + inc %ecx + + cmp %ecx, %r8d -+ ja .LABEL(64nibble) -+ ++ ja LABEL(64nibble) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + .p2align 4 -+ -+.LABEL(64gobble): + +- add $16, %r10 +- jg LABEL(nibble_ashr_4) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $4, %xmm3 +- pslldq $12, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) ++LABEL(64gobble): + mov (%rsi, %rcx), %rax + mov (%rdi, %rcx), %rdx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_4) +- +- .p2align 4 +-LABEL(nibble_ashr_4): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xfff0, %edx +- jnz LABEL(ashr_4_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $11, %r11 +- jbe LABEL(ashr_4_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_4) +- +- .p2align 4 +-LABEL(ashr_4_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $4, %xmm0 +- psrldq $4, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_5 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(11~15) n - 11 4(15 +(n-11) - n) ashr_5 +- */ +- .p2align 4 +-LABEL(ashr_5): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $11, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $5, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 5(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_5): +- add $16, %r10 +- jg LABEL(nibble_ashr_5) +- +-LABEL(gobble_ashr_5): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $5, %xmm3 +- pslldq $11, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_5) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $5, %xmm3 +- pslldq $11, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + mov 8 (%rsi, %rcx), %rax + mov 8 (%rdi, %rcx), %rdx + add $8, %ecx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_5) +- +- .p2align 4 +-LABEL(nibble_ashr_5): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xffe0, %edx +- jnz LABEL(ashr_5_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $10, %r11 +- jbe LABEL(ashr_5_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_5) +- +- .p2align 4 +-LABEL(ashr_5_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $5, %xmm0 +- psrldq $5, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_6 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(10~15) n - 10 5(15 +(n-10) - n) ashr_6 +- */ +- .p2align 4 +-LABEL(ashr_6): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $10, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $6, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 6(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_6): +- add $16, %r10 +- jg LABEL(nibble_ashr_6) +- +-LABEL(gobble_ashr_6): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $6, %xmm3 +- pslldq $10, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_6) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $6, %xmm3 +- pslldq $10, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + mov 8 (%rsi, %rcx), %rax + mov 8 (%rdi, %rcx), %rdx + add $8, %ecx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_6) +- +- .p2align 4 +-LABEL(nibble_ashr_6): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xffc0, %edx +- jnz LABEL(ashr_6_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $9, %r11 +- jbe LABEL(ashr_6_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_6) +- +- .p2align 4 +-LABEL(ashr_6_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $6, %xmm0 +- psrldq $6, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_7 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(9~15) n - 9 6(15 +(n - 9) - n) ashr_7 +- */ +- .p2align 4 +-LABEL(ashr_7): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $9, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $7, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 7(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_7): +- add $16, %r10 +- jg LABEL(nibble_ashr_7) +- +-LABEL(gobble_ashr_7): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $7, %xmm3 +- pslldq $9, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_7) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $7, %xmm3 +- pslldq $9, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + mov 8 (%rsi, %rcx), %rax + mov 8 (%rdi, %rcx), %rdx + add $8, %ecx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_7) +- +- .p2align 4 +-LABEL(nibble_ashr_7): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xff80, %edx +- jnz LABEL(ashr_7_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $8, %r11 +- jbe LABEL(ashr_7_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_7) +- +- .p2align 4 +-LABEL(ashr_7_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $7, %xmm0 +- psrldq $7, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_8 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(8~15) n - 8 7(15 +(n - 8) - n) ashr_8 +- */ +- .p2align 4 +-LABEL(ashr_8): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $8, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $8, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 8(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_8): +- add $16, %r10 +- jg LABEL(nibble_ashr_8) +- +-LABEL(gobble_ashr_8): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $8, %xmm3 +- pslldq $8, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_8) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $8, %xmm3 +- pslldq $8, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + mov 8 (%rsi, %rcx), %rax + mov 8 (%rdi, %rcx), %rdx + add $8, %ecx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_8) +- +- .p2align 4 +-LABEL(nibble_ashr_8): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xff00, %edx +- jnz LABEL(ashr_8_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $7, %r11 +- jbe LABEL(ashr_8_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_8) +- +- .p2align 4 +-LABEL(ashr_8_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $8, %xmm0 +- psrldq $8, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_9 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(7~15) n - 7 8(15 +(n - 7) - n) ashr_9 +- */ +- .p2align 4 +-LABEL(ashr_9): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $7, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $9, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 9(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_9): +- add $16, %r10 +- jg LABEL(nibble_ashr_9) +- +-LABEL(gobble_ashr_9): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $9, %xmm3 +- pslldq $7, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_9) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $9, %xmm3 +- pslldq $7, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + mov 8 (%rsi, %rcx), %rax + mov 8 (%rdi, %rcx), %rdx + add $8, %ecx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 /* store for next cycle */ +- jmp LABEL(loop_ashr_9) +- +- .p2align 4 +-LABEL(nibble_ashr_9): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xfe00, %edx +- jnz LABEL(ashr_9_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $6, %r11 +- jbe LABEL(ashr_9_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_9) +- +- .p2align 4 +-LABEL(ashr_9_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $9, %xmm0 +- psrldq $9, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_10 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(6~15) n - 6 9(15 +(n - 6) - n) ashr_10 +- */ +- .p2align 4 +-LABEL(ashr_10): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $6, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $10, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 10(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_10): +- add $16, %r10 +- jg LABEL(nibble_ashr_10) +- +-LABEL(gobble_ashr_10): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $10, %xmm3 +- pslldq $6, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_10) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $10, %xmm3 +- pslldq $6, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + mov 8 (%rsi, %rcx), %rax + mov 8 (%rdi, %rcx), %rdx + add $8, %ecx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_10) +- +- .p2align 4 +-LABEL(nibble_ashr_10): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xfc00, %edx +- jnz LABEL(ashr_10_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $5, %r11 +- jbe LABEL(ashr_10_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_10) +- +- .p2align 4 +-LABEL(ashr_10_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $10, %xmm0 +- psrldq $10, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_11 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(5~15) n - 5 10(15 +(n - 5) - n) ashr_11 +- */ +- .p2align 4 +-LABEL(ashr_11): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $5, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $11, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 11(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_11): +- add $16, %r10 +- jg LABEL(nibble_ashr_11) +- +-LABEL(gobble_ashr_11): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $11, %xmm3 +- pslldq $5, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_11) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $11, %xmm3 +- pslldq $5, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + mov 8 (%rsi, %rcx), %rax + mov 8 (%rdi, %rcx), %rdx + add $8, %ecx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + sub $8, %r14 -+ jl .LABEL(tail) -+#endif -+ ++ jl LABEL(tail) + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_11) +- +- .p2align 4 +-LABEL(nibble_ashr_11): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xf800, %edx +- jnz LABEL(ashr_11_exittail) + mov %rbx, %r8 + add %rax, %r8 + sbb %r10, %r10 -+ + +-#ifdef USE_AS_STRNCMP +- cmp $4, %r11 +- jbe LABEL(ashr_11_exittail) +-#endif + mov %rbx, %r9 + add %rdx, %r9 + sbb %r11, %r11 -+ + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_11) +- +- .p2align 4 +-LABEL(ashr_11_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $11, %xmm0 +- psrldq $11, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_12 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(4~15) n - 4 11(15 +(n - 4) - n) ashr_12 +- */ +- .p2align 4 +-LABEL(ashr_12): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $4, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $12, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 12(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_12): +- add $16, %r10 +- jg LABEL(nibble_ashr_12) +- +-LABEL(gobble_ashr_12): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $12, %xmm3 +- pslldq $4, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + xor %rax, %r8 + or %rbx, %r8 + sub %r10, %r8 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif + xor %rdx, %r9 + or %rbx, %r9 + sub %r11, %r9 -+ jnz .LABEL(tail) -+ ++ jnz LABEL(tail) + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %rdx, %rax -+ jne .LABEL(tail) -+ ++ jne LABEL(tail) + +- add $16, %r10 +- jg LABEL(nibble_ashr_12) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $12, %xmm3 +- pslldq $4, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + add $8, %ecx + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif ++ jmp LABEL(64loop) + -+ jmp .LABEL(64loop) -+ -+.LABEL(64after): -+ -+.LABEL(tailtry): ++LABEL(64after): + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_12) +- +- .p2align 4 +-LABEL(nibble_ashr_12): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xf000, %edx +- jnz LABEL(ashr_12_exittail) ++LABEL(tailtry): +# mov (%rsi, %rcx), %rax +# mov (%rdi, %rcx), %rdx +# add $8, %rcx -+ -+.LABEL(tail): # byte tail -+#ifdef USE_AS_STRNCMP + ++LABEL(tail): # byte tail + #ifdef USE_AS_STRNCMP +- cmp $3, %r11 +- jbe LABEL(ashr_12_exittail) + add $7, %r14 -+#endif -+ + #endif + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_12) +- +- .p2align 4 +-LABEL(ashr_12_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $12, %xmm0 +- psrldq $12, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_13 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(3~15) n - 3 12(15 +(n - 3) - n) ashr_13 +- */ +- .p2align 4 +-LABEL(ashr_13): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $3, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $13, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 13(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_13): +- add $16, %r10 +- jg LABEL(nibble_ashr_13) +- +-LABEL(gobble_ashr_13): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $13, %xmm3 +- pslldq $3, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + cmp %dl, %al # check if same character + jne .exit + test %al, %al # check if character a NUL @@ -2526,12 +3968,62 @@ Index: sysdeps/x86_64/strcmp.S + + shr $8, %rax + shr $8, %rdx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + dec %r14 + jl .exit -+#endif -+ + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit + +- add $16, %r10 +- jg LABEL(nibble_ashr_13) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $13, %xmm3 +- pslldq $3, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) ++ shr $8, %rax ++ shr $8, %rdx + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) ++ dec %r14 ++ jl .exit + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_13) +- +- .p2align 4 +-LABEL(nibble_ashr_13): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xe000, %edx +- jnz LABEL(ashr_13_exittail) + cmp %dl, %al + jne .exit + test %al, %al @@ -2539,12 +4031,84 @@ Index: sysdeps/x86_64/strcmp.S + + shr $8, %rax + shr $8, %rdx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- cmp $2, %r11 +- jbe LABEL(ashr_13_exittail) + dec %r14 + jl .exit -+#endif -+ + #endif + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_13) +- +- .p2align 4 +-LABEL(ashr_13_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $13, %xmm0 +- psrldq $13, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_14 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(2~15) n - 2 13(15 +(n - 2) - n) ashr_14 +- */ +- .p2align 4 +-LABEL(ashr_14): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $2, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $14, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 14(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_14): +- add $16, %r10 +- jg LABEL(nibble_ashr_14) +- +-LABEL(gobble_ashr_14): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $14, %xmm3 +- pslldq $2, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + cmp %dl, %al + jne .exit + test %al, %al @@ -2552,25 +4116,62 @@ Index: sysdeps/x86_64/strcmp.S + + shr $8, %rax + shr $8, %rdx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + dec %r14 + jl .exit -+#endif -+ + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %dl, %al + jne .exit + test %al, %al + jz .exit -+ -+ shr $8, %rax -+ shr $8, %rdx -+ -+#ifdef USE_AS_STRNCMP + +- add $16, %r10 +- jg LABEL(nibble_ashr_14) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $14, %xmm3 +- pslldq $2, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) ++ shr $8, %eax ++ shr $8, %edx + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + dec %r14 + jl .exit -+#endif -+ + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_14) +- +- .p2align 4 +-LABEL(nibble_ashr_14): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0xc000, %edx +- jnz LABEL(ashr_14_exittail) + cmp %dl, %al + jne .exit + test %al, %al @@ -2578,12 +4179,86 @@ Index: sysdeps/x86_64/strcmp.S + + shr $8, %eax + shr $8, %edx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- cmp $1, %r11 +- jbe LABEL(ashr_14_exittail) + dec %r14 + jl .exit -+#endif -+ + #endif + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_14) +- +- .p2align 4 +-LABEL(ashr_14_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $14, %xmm0 +- psrldq $14, %xmm3 +- jmp LABEL(aftertail) +- +-/* +- * The following cases will be handled by ashr_15 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(1~15) n - 1 14(15 +(n - 1) - n) ashr_15 +- */ +- .p2align 4 +-LABEL(ashr_15): +- pxor %xmm0, %xmm0 +- movdqa (%rdi), %xmm2 +- movdqa (%rsi), %xmm1 +- pcmpeqb %xmm1, %xmm0 +- pslldq $1, %xmm2 +- pcmpeqb %xmm1, %xmm2 +- psubb %xmm0, %xmm2 +- pmovmskb %xmm2, %r9d +- shr %cl, %edx +- shr %cl, %r9d +- sub %r9d, %edx +- jnz LABEL(less32bytes) +- +- movdqa (%rdi), %xmm3 +- +- UPDATE_STRNCMP_COUNTER +- +- pxor %xmm0, %xmm0 +- mov $16, %rcx /* index for loads */ +- mov $15, %r9d /* byte position left over from less32bytes case */ +- /* +- * Setup %r10 value allows us to detect crossing a page boundary. +- * When %r10 goes positive we have crossed a page boundary and +- * need to do a nibble. +- */ +- lea 15(%rdi), %r10 +- and $0xfff, %r10 /* offset into 4K page */ +- +- sub $0x1000, %r10 /* subtract 4K pagesize */ +- +- .p2align 4 +-LABEL(loop_ashr_15): +- add $16, %r10 +- jg LABEL(nibble_ashr_15) +- +-LABEL(gobble_ashr_15): +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $15, %xmm3 +- pslldq $1, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + cmp %dl, %al + jne .exit + test %al, %al @@ -2591,60 +4266,159 @@ Index: sysdeps/x86_64/strcmp.S + + shr $8, %eax + shr $8, %edx -+ -+#ifdef USE_AS_STRNCMP + + #ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) + dec %r14 + jl .exit -+#endif -+ -+ cmp %dl, %al -+ jne .exit -+ test %al, %al -+ jz .exit -+ -+ shr $8, %eax -+ shr $8, %edx -+ -+#ifdef USE_AS_STRNCMP -+ dec %r14 -+ jl .exit -+#endif -+ + #endif + +- add $16, %rcx +- movdqa %xmm4, %xmm3 + cmp %dl, %al + jne .exit +# test %al, %al +# jz .exit -+ + +- add $16, %r10 +- jg LABEL(nibble_ashr_15) /* cross page boundary */ +- +- movdqa (%rsi, %rcx), %xmm1 +- movdqa (%rdi, %rcx), %xmm2 +- movdqa %xmm2, %xmm4 +- +-#ifndef USE_SSSE3 +- psrldq $15, %xmm3 +- pslldq $1, %xmm2 +- por %xmm3, %xmm2 /* merge into one 16byte value */ +-#else +- palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ +-#endif +- +- pcmpeqb %xmm1, %xmm0 +- pcmpeqb %xmm2, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- sub $0xffff, %edx +- jnz LABEL(exit) + .p2align 4,, 15 -+ -+.LABEL(tailafter): -+ + +-#ifdef USE_AS_STRNCMP +- sub $16, %r11 +- jbe LABEL(strcmp_exitz) +-#endif ++LABEL(tailafter): + +- add $16, %rcx +- movdqa %xmm4, %xmm3 +- jmp LABEL(loop_ashr_15) +- +- .p2align 4 +-LABEL(nibble_ashr_15): +- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ +- pmovmskb %xmm0, %edx +- test $0x8000, %edx +- jnz LABEL(ashr_15_exittail) +.exit: + mov -32 (%rsp), %r15 + mov -24 (%rsp), %rbp + mov -16 (%rsp), %rbx -+ + + .p2align 4,, 3 + -+.LABEL(exitafter): -+#ifdef USE_AS_STRNCMP ++LABEL(exitafter): + #ifdef USE_AS_STRNCMP +- test %r11, %r11 +- je LABEL(ashr_15_exittail) + test %r14, %r14 + cmovl %edx, %eax -+#endif -+ + #endif + +- pxor %xmm0, %xmm0 +- sub $0x1000, %r10 +- jmp LABEL(gobble_ashr_15) +- +- .p2align 4 +-LABEL(ashr_15_exittail): +- movdqa (%rsi, %rcx), %xmm1 +- psrldq $15, %xmm3 +- psrldq $15, %xmm0 +- +- .p2align 4 +-LABEL(aftertail): +- pcmpeqb %xmm3, %xmm1 +- psubb %xmm0, %xmm1 +- pmovmskb %xmm1, %edx +- not %edx +- +- .p2align 4 +-LABEL(exit): +- lea -16(%r9, %rcx), %rax /* locate the exact offset for rdi */ +-LABEL(less32bytes): +- lea (%rdi, %rax), %rdi /* locate the exact address for first operand(rdi) */ +- lea (%rsi, %rcx), %rsi /* locate the exact address for second operand(rsi) */ +- test %r8d, %r8d +- jz LABEL(ret) +- xchg %rsi, %rdi /* recover original order according to flag(%r8d) */ +- +- .p2align 4 +-LABEL(ret): +-LABEL(less16bytes): +- bsf %rdx, %rdx /* find and store bit index in %rdx */ + movzx %al, %eax + movzx %dl, %edx + sub %eax, %edx + xchg %edx, %eax -+ -+#ifdef USE_AS_STRNCMP -+.LABEL(exitz): + + #ifdef USE_AS_STRNCMP +- sub %rdx, %r11 +- jbe LABEL(strcmp_exitz) ++LABEL(exitz): + mov -8 (%rsp), %r14 -+#endif + #endif +- movzbl (%rsi, %rdx), %ecx +- movzbl (%rdi, %rdx), %eax +- +- sub %ecx, %eax +- ret + ret -+ + +-LABEL(strcmp_exitz): +- xor %eax, %eax +- ret +- +- .p2align 4 +-LABEL(Byte0): +- movzx (%rsi), %ecx +- movzx (%rdi), %eax +- +- sub %ecx, %eax +- ret +-END (BP_SYM (STRCMP)) +- +- .section .rodata,"a",@progbits +- .p2align 3 +-LABEL(unaligned_table): +- .int LABEL(ashr_1) - LABEL(unaligned_table) +- .int LABEL(ashr_2) - LABEL(unaligned_table) +- .int LABEL(ashr_3) - LABEL(unaligned_table) +- .int LABEL(ashr_4) - LABEL(unaligned_table) +- .int LABEL(ashr_5) - LABEL(unaligned_table) +- .int LABEL(ashr_6) - LABEL(unaligned_table) +- .int LABEL(ashr_7) - LABEL(unaligned_table) +- .int LABEL(ashr_8) - LABEL(unaligned_table) +- .int LABEL(ashr_9) - LABEL(unaligned_table) +- .int LABEL(ashr_10) - LABEL(unaligned_table) +- .int LABEL(ashr_11) - LABEL(unaligned_table) +- .int LABEL(ashr_12) - LABEL(unaligned_table) +- .int LABEL(ashr_13) - LABEL(unaligned_table) +- .int LABEL(ashr_14) - LABEL(unaligned_table) +- .int LABEL(ashr_15) - LABEL(unaligned_table) +- .int LABEL(ashr_0) - LABEL(unaligned_table) +-#endif /* NOT_IN_libc */ +END (strcmp) - libc_hidden_builtin_def (strcmp) + libc_hidden_builtin_def (STRCMP) Index: sysdeps/x86_64/memcpy.S =================================================================== --- sysdeps/x86_64/memcpy.S.orig diff --git a/glibc-2.3.90-ld.so-madvise.diff b/glibc-2.3.90-ld.so-madvise.diff index 44ed621..fd01e86 100644 --- a/glibc-2.3.90-ld.so-madvise.diff +++ b/glibc-2.3.90-ld.so-madvise.diff @@ -2,7 +2,7 @@ Index: elf/dl-load.c =================================================================== --- elf/dl-load.c.orig +++ elf/dl-load.c -@@ -1204,6 +1204,9 @@ cannot allocate TLS data structures for +@@ -1207,6 +1207,9 @@ cannot allocate TLS data structures for goto call_lose_errno; } @@ -37,7 +37,7 @@ Index: elf/rtld.c =================================================================== --- elf/rtld.c.orig +++ elf/rtld.c -@@ -153,6 +153,7 @@ struct rtld_global_ro _rtld_global_ro at +@@ -158,6 +158,7 @@ struct rtld_global_ro _rtld_global_ro at ._dl_lazy = 1, ._dl_fpu_control = _FPU_DEFAULT, ._dl_pointer_guard = 1, @@ -45,7 +45,7 @@ Index: elf/rtld.c /* Function pointers. */ ._dl_debug_printf = _dl_debug_printf, -@@ -2607,6 +2608,14 @@ process_envvars (enum mode *modep) +@@ -2612,6 +2613,14 @@ process_envvars (enum mode *modep) break; case 9: @@ -64,7 +64,7 @@ Index: sysdeps/generic/ldsodefs.h =================================================================== --- sysdeps/generic/ldsodefs.h.orig +++ sysdeps/generic/ldsodefs.h -@@ -561,6 +561,9 @@ struct rtld_global_ro +@@ -580,6 +580,9 @@ struct rtld_global_ro /* Do we do lazy relocations? */ EXTERN int _dl_lazy; diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index ae8b861..b3a6c9f 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -2,7 +2,7 @@ Index: elf/rtld.c =================================================================== --- elf/rtld.c.orig +++ elf/rtld.c -@@ -1756,6 +1756,53 @@ ERROR: ld.so: object '%s' cannot be load +@@ -1761,6 +1761,53 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 0b1e480..925c0f4 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:308f75f9daa64b97485a53420215656b001cc25a9337c34887d2c279efe32bc9 -size 328632 +oid sha256:a623420e540731e6b0dca8ce2212fdfe048fa8b38c03eb210a8cf168b63d874e +size 328634 diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff index b38803f..24aaa14 100644 --- a/glibc-2.4.90-no_NO.diff +++ b/glibc-2.4.90-no_NO.diff @@ -89,7 +89,7 @@ Index: localedata/SUPPORTED =================================================================== --- localedata/SUPPORTED.orig +++ localedata/SUPPORTED -@@ -303,6 +303,8 @@ nl_NL/ISO-8859-1 \ +@@ -305,6 +305,8 @@ nl_NL/ISO-8859-1 \ nl_NL@euro/ISO-8859-15 \ nn_NO.UTF-8/UTF-8 \ nn_NO/ISO-8859-1 \ diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff index 3c5fa26..f66d910 100644 --- a/glibc-2.4.90-nscd.diff +++ b/glibc-2.4.90-nscd.diff @@ -40,7 +40,7 @@ Index: nscd/cache.c + /* now == 0 means just check for changed files */ + if (now == (time_t)0) -+ return; ++ return 0; + /* We run through the table and find values which are not valid anymore. diff --git a/glibc-2.6-configure.diff b/glibc-2.6-configure.diff index a0b405b..b49cc36 100644 --- a/glibc-2.6-configure.diff +++ b/glibc-2.6-configure.diff @@ -2,7 +2,7 @@ Index: configure.in =================================================================== --- configure.in.orig +++ configure.in -@@ -1360,7 +1360,7 @@ EOF +@@ -1395,7 +1395,7 @@ EOF fi fi fi @@ -11,7 +11,7 @@ Index: configure.in ]) if test $libc_cv_visibility_attribute != yes; then AC_MSG_ERROR(compiler support for visibility attribute is required) -@@ -1376,7 +1376,7 @@ EOF +@@ -1411,7 +1411,7 @@ EOF int bar (int x) { return x; } EOF libc_cv_broken_visibility_attribute=yes @@ -24,7 +24,7 @@ Index: configure =================================================================== --- configure.orig +++ configure -@@ -6221,7 +6221,7 @@ EOF +@@ -6272,7 +6272,7 @@ EOF fi fi fi @@ -33,7 +33,7 @@ Index: configure fi { $as_echo "$as_me:$LINENO: result: $libc_cv_visibility_attribute" >&5 -@@ -6245,7 +6245,7 @@ else +@@ -6296,7 +6296,7 @@ else int bar (int x) { return x; } EOF libc_cv_broken_visibility_attribute=yes diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff index 17072c8..ccb826f 100644 --- a/glibc-compiled-binaries.diff +++ b/glibc-compiled-binaries.diff @@ -11,7 +11,7 @@ Index: config.make.in =================================================================== --- config.make.in.orig +++ config.make.in -@@ -96,6 +96,7 @@ add-ons = @add_ons@ +@@ -99,6 +99,7 @@ add-ons = @add_ons@ add-on-subdirs = @add_on_subdirs@ sysdeps-add-ons = @sysdeps_add_ons@ cross-compiling = @cross_compiling@ @@ -31,7 +31,7 @@ Index: configure subdirs= MFLAGS= MAKEFLAGS= -@@ -741,6 +742,7 @@ CXXFLAGS +@@ -742,6 +743,7 @@ CXXFLAGS CXX CPP cross_compiling @@ -39,7 +39,7 @@ Index: configure BUILD_CC OBJEXT ac_ct_CC -@@ -1291,6 +1293,13 @@ do +@@ -1294,6 +1296,13 @@ do { (exit 1); exit 1; }; } done @@ -53,7 +53,7 @@ Index: configure # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. -@@ -1306,6 +1315,7 @@ if test "x$host_alias" != x; then +@@ -1309,6 +1318,7 @@ if test "x$host_alias" != x; then If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -61,7 +61,7 @@ Index: configure fi fi -@@ -1498,6 +1508,9 @@ Optional Features: +@@ -1501,6 +1511,9 @@ Optional Features: enable experimental malloc features --enable-nss-crypt enable libcrypt to use nss @@ -75,7 +75,7 @@ Index: configure.in =================================================================== --- configure.in.orig +++ configure.in -@@ -13,6 +13,7 @@ if test $host != $build; then +@@ -16,6 +16,7 @@ if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) diff --git a/glibc-ia64-memchr.diff b/glibc-ia64-memchr.diff new file mode 100644 index 0000000..c137892 --- /dev/null +++ b/glibc-ia64-memchr.diff @@ -0,0 +1,39 @@ +On Mon, Nov 09, 2009 at 11:57:06AM -0800, H.J. Lu wrote: +> When data is shorter than software pipeline, recovery may fail. This +> patch avoids it by using a simple loop on data shorter than software +> pipeline. +> + +Here is an updated patch. This one properly handles the shorter read +on speculative load. + + +H.J. +--- +2009-11-09 H.J. Lu + + PR libc/10162 + * sysdeps/ia64/memchr.S: Properly recover from shorter read. + +diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S +index cd062b2..cdd71ca 100644 +--- a/sysdeps/ia64/memchr.S ++++ b/sysdeps/ia64/memchr.S +@@ -126,7 +126,16 @@ ENTRY(__memchr) + br.ret.sptk.many b0 + + .recovery: +- adds ret0 = -((MEMLAT + 1) * 8), ret0;; ++#if MEMLAT != 6 ++# error "MEMLAT must be 6!" ++#endif ++(p[MEMLAT-6]) add ret0 = -8, ret0;; ++(p[MEMLAT-5]) add ret0 = -8, ret0;; ++(p[MEMLAT-4]) add ret0 = -8, ret0;; ++(p[MEMLAT-3]) add ret0 = -8, ret0;; ++(p[MEMLAT-2]) add ret0 = -8, ret0;; ++(p[MEMLAT-1]) add ret0 = -8, ret0;; ++(p[MEMLAT]) add ret0 = -8, ret0;; + (p[MEMLAT+1]) add ret0 = -8, ret0;; + (p[MEMLAT+2]) add ret0 = -8, ret0;; + .l4: diff --git a/glibc-nameserver-localhost.diff b/glibc-nameserver-localhost.diff new file mode 100644 index 0000000..7e464c8 --- /dev/null +++ b/glibc-nameserver-localhost.diff @@ -0,0 +1,29 @@ +2009-11-20 Petr Baudis + + [BZ #10851] + * resolv/res_init.c (__res_vinit): Initialize nscount again to + one so that the default localhost nameserver record is used. + +diff --git a/resolv/res_init.c b/resolv/res_init.c +index 40dbe7d..99ef8cf 100644 +--- a/resolv/res_init.c ++++ b/resolv/res_init.c +@@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit) { + #endif + statp->nsaddr.sin_family = AF_INET; + statp->nsaddr.sin_port = htons(NAMESERVER_PORT); +- statp->nscount = 0; ++ statp->nscount = 1; + statp->ndots = 1; + statp->pfcode = 0; + statp->_vcsock = -1; +@@ -420,7 +420,8 @@ __res_vinit(res_state statp, int preinit) { + continue; + } + } +- statp->nscount = nservall; ++ if (nservall > 0) ++ statp->nscount = nservall; + #ifdef _LIBC + if (nservall - nserv > 0) { + statp->_u._ext.nscount6 = nservall - nserv; diff --git a/glibc-nis-splitgroups.diff b/glibc-nis-splitgroups.diff index 2a2f286..34fd42b 100644 --- a/glibc-nis-splitgroups.diff +++ b/glibc-nis-splitgroups.diff @@ -87,7 +87,7 @@ Index: nis/nss_compat/compat-initgroups.c static service_user *ni; /* Type of the lookup function. */ static enum nss_status (*nss_initgroups_dyn) (const char *, gid_t, -@@ -103,7 +106,10 @@ init_nss_interface (void) +@@ -107,7 +110,10 @@ init_nss_interface (void) if (ni == NULL && __nss_database_lookup ("group_compat", NULL, "nis", &ni) >= 0) { @@ -98,4 +98,4 @@ Index: nis/nss_compat/compat-initgroups.c + nss_initgroups_dyn = __nss_lookup_function (ni, "initgroups_dyn"); nss_getgrnam_r = __nss_lookup_function (ni, "getgrnam_r"); nss_getgrgid_r = __nss_lookup_function (ni, "getgrgid_r"); - nss_getgrent_r = __nss_lookup_function (ni, "getgrent_r"); + nss_setgrent = __nss_lookup_function (ni, "setgrent"); diff --git a/glibc-nptl-2.4-nofixsyscallnr.diff b/glibc-nptl-2.4-nofixsyscallnr.diff index 7a44a4a..55dc959 100644 --- a/glibc-nptl-2.4-nofixsyscallnr.diff +++ b/glibc-nptl-2.4-nofixsyscallnr.diff @@ -2,7 +2,7 @@ Index: nptl/pthreadP.h =================================================================== --- nptl/pthreadP.h.orig +++ nptl/pthreadP.h -@@ -575,15 +575,4 @@ extern void __wait_lookup_done (void) at +@@ -577,15 +577,4 @@ extern void __wait_lookup_done (void) at # define PTHREAD_STATIC_FN_REQUIRE(name) __asm (".globl " #name); #endif diff --git a/glibc-nscd-assert.diff b/glibc-nscd-assert.diff deleted file mode 100644 index 2c35900..0000000 --- a/glibc-nscd-assert.diff +++ /dev/null @@ -1,141 +0,0 @@ -2009-08-18 Anders Johansson - - * nscd/aicache.c: Fix mixing up dataset and dataset->resp - offsets and record sizes in assert()s and response sending. - * nscd/grpcache.c: Likewise. - * nscd/hstcache.c: Likewise. - * nscd/initgrcache.c: Likewise. - * nscd/pwdcache.c: Likewise. - -Index: nscd/aicache.c -=================================================================== ---- nscd/aicache.c.orig -+++ nscd/aicache.c -@@ -453,13 +453,13 @@ addhstaiX (struct database_dyn *db, int - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); -- assert ((char *) &dataset->resp - (char *) db->head + total -+ assert ((char *) dataset - (char *) db->head + total - <= (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) - + db->head->data_size)); - ssize_t written; - written = sendfileall (fd, db->wr_fd, (char *) &dataset->resp -- - (char *) db->head, total); -+ - (char *) db->head, dataset->head.recsize); - # ifndef __ASSUME_SENDFILE - if (written == -1 && errno == ENOSYS) - goto use_write; -@@ -470,7 +470,7 @@ addhstaiX (struct database_dyn *db, int - use_write: - # endif - #endif -- writeall (fd, &dataset->resp, total); -+ writeall (fd, &dataset->resp, dataset->head.recsize); - } - - goto out; -Index: nscd/grpcache.c -=================================================================== ---- nscd/grpcache.c.orig -+++ nscd/grpcache.c -@@ -299,14 +299,14 @@ cache_addgr (struct database_dyn *db, in - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); -- assert ((char *) &dataset->resp - (char *) db->head -+ assert ((char *) dataset - (char *) db->head - + total - <= (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) - + db->head->data_size)); - written = sendfileall (fd, db->wr_fd, - (char *) &dataset->resp -- - (char *) db->head, total); -+ - (char *) db->head, dataset->head.recsize); - # ifndef __ASSUME_SENDFILE - if (written == -1 && errno == ENOSYS) - goto use_write; -@@ -317,7 +317,7 @@ cache_addgr (struct database_dyn *db, in - use_write: - # endif - #endif -- written = writeall (fd, &dataset->resp, total); -+ written = writeall (fd, &dataset->resp, dataset->head.recsize); - } - - /* Add the record to the database. But only if it has not been -Index: nscd/hstcache.c -=================================================================== ---- nscd/hstcache.c.orig -+++ nscd/hstcache.c -@@ -341,7 +341,7 @@ cache_addhst (struct database_dyn *db, i - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); -- assert ((char *) &dataset->resp - (char *) db->head -+ assert ((char *) dataset - (char *) db->head - + total - <= (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) -Index: nscd/initgrcache.c -=================================================================== ---- nscd/initgrcache.c.orig -+++ nscd/initgrcache.c -@@ -354,14 +354,14 @@ addinitgroupsX (struct database_dyn *db, - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); -- assert ((char *) &dataset->resp - (char *) db->head -+ assert ((char *) dataset - (char *) db->head - + total - <= (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) - + db->head->data_size)); - written = sendfileall (fd, db->wr_fd, - (char *) &dataset->resp -- - (char *) db->head, total); -+ - (char *) db->head, dataset->head.recsize); - # ifndef __ASSUME_SENDFILE - if (written == -1 && errno == ENOSYS) - goto use_write; -@@ -372,7 +372,7 @@ addinitgroupsX (struct database_dyn *db, - use_write: - # endif - #endif -- written = writeall (fd, &dataset->resp, total); -+ written = writeall (fd, &dataset->resp, dataset->head.recsize); - } - - -Index: nscd/pwdcache.c -=================================================================== ---- nscd/pwdcache.c.orig -+++ nscd/pwdcache.c -@@ -294,14 +294,14 @@ cache_addpw (struct database_dyn *db, in - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); -- assert ((char *) &dataset->resp - (char *) db->head -+ assert ((char *) dataset - (char *) db->head - + total - <= (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) - + db->head->data_size)); - written = sendfileall (fd, db->wr_fd, - (char *) &dataset->resp -- - (char *) db->head, total); -+ - (char *) db->head, dataset->head.recsize ); - # ifndef __ASSUME_SENDFILE - if (written == -1 && errno == ENOSYS) - goto use_write; -@@ -312,7 +312,7 @@ cache_addpw (struct database_dyn *db, in - use_write: - # endif - #endif -- written = writeall (fd, &dataset->resp, total); -+ written = writeall (fd, &dataset->resp, dataset->head.recsize); - } - - diff --git a/glibc-nscd-prune-ret.diff b/glibc-nscd-prune-ret.diff deleted file mode 100644 index 6e183ba..0000000 --- a/glibc-nscd-prune-ret.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: nscd/cache.c -=================================================================== ---- nscd/cache.c.orig -+++ nscd/cache.c -@@ -290,7 +290,7 @@ prune_cache (struct database_dyn *table, - - /* now == 0 means just check for changed files */ - if (now == (time_t)0) -- return; -+ return 0; - - /* We run through the table and find values which are not valid anymore. - diff --git a/glibc-uio-cell.diff b/glibc-uio-cell.diff new file mode 100644 index 0000000..6bbbfe3 --- /dev/null +++ b/glibc-uio-cell.diff @@ -0,0 +1,26 @@ +2009-11-06 Petr Baudis + + * include/sys/uio.h: Change __vector to __iovec to avoid clash + with altivec. + +diff --git a/include/sys/uio.h b/include/sys/uio.h +index 8c2b016..bfaec59 100644 +--- a/include/sys/uio.h ++++ b/include/sys/uio.h +@@ -2,12 +2,12 @@ + #include + + /* Now define the internal interfaces. */ +-extern ssize_t __readv (int __fd, __const struct iovec *__vector, ++extern ssize_t __readv (int __fd, __const struct iovec *__iovec, + int __count); +-extern ssize_t __libc_readv (int __fd, __const struct iovec *__vector, ++extern ssize_t __libc_readv (int __fd, __const struct iovec *__iovec, + int __count); +-extern ssize_t __writev (int __fd, __const struct iovec *__vector, ++extern ssize_t __writev (int __fd, __const struct iovec *__iovec, + int __count); +-extern ssize_t __libc_writev (int __fd, __const struct iovec *__vector, ++extern ssize_t __libc_writev (int __fd, __const struct iovec *__iovec, + int __count); + #endif diff --git a/glibc-utmp-timeout-raise.diff b/glibc-utmp-timeout-raise.diff deleted file mode 100644 index 24f90fb..0000000 --- a/glibc-utmp-timeout-raise.diff +++ /dev/null @@ -1,18 +0,0 @@ -On extremely loaded systems, the default timeout may not be enough and some -entries may not appear in the utmp log. With 30s login delay, the system -should still stay usable for repair in case the utmp locking somehow breaks -down. - -Index: login/utmp_file.c -=================================================================== ---- login/utmp_file.c.orig -+++ login/utmp_file.c -@@ -45,7 +45,7 @@ static struct utmp last_entry; - - /* Locking timeout. */ - #ifndef TIMEOUT --# define TIMEOUT 1 -+# define TIMEOUT 30 - #endif - - /* Do-nothing handler for locking timeout. */ diff --git a/glibc.changes b/glibc.changes index 084a9e8..eb3a7c7 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,117 @@ +------------------------------------------------------------------- +Mon Dec 14 23:49:33 CET 2009 - jengelh@medozas.de + +- add baselibs.conf as a source + +------------------------------------------------------------------- +Fri Dec 11 13:13:01 CET 2009 - jengelh@medozas.de + +- libnldbl_nonshared is only built for sparc32 + +------------------------------------------------------------------- +Tue Dec 8 20:50:26 CET 2009 - jengelh@medozas.de + +- package libnldbl_nonshared for SPARC + +------------------------------------------------------------------- +Fri Nov 20 01:55:16 CET 2009 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11-1bc1954c7357: + - This snapshot is slated to become 2.11.1 if all goes well + - Mix of fixes for various recently found out issues +- Retired patches: + glibc-ifunc-dlsym-fixup.diff +- [IA64] Fix memchr() on mmap(MAP_SHARED) boundary [fix lighttpd crashes] +- Again use 127.0.0.1 as default nameserver in case of empty + /etc/resolv.conf [bnc#473308] + +------------------------------------------------------------------- +Thu Nov 19 13:15:41 CET 2009 - pbaudis@suse.cz + +- Add 623 and 664 to /etc/bindresvport.blacklist to fix problems with + port conflict on some IPMI network cards [bnc#513961] +- Allow external additions to /usr/share/locale/locale.alias and + /usr/lib/gconv/gconv-modules, required for the SAP-locales package. +- Add delimiter in front of external additions to locale/gconv lists +- Remove AMD-provided strlen(), upstream is faster. + +- Keep .symtab and .strtab for all glibc-related .so libraries [FATE#307090] + [bnc#545721] +- [ppc,ppc64] Enable optimized builds for power7; no separate power4, power5 + builds are generated anymore, instead default glibc is built for power4 + at least, tuned for power5 execution [FATE#307021] +- Large clean-up of the specfile + +------------------------------------------------------------------- +Fri Nov 13 22:47:47 CET 2009 - pbaudis@suse.cz + +- Upgrade to Git HEAD as of 20091105 - glibc-2.11-13f6812ffb5b: + * New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps, + mkostemps64 + Implemented by Ulrich Drepper. + + * Checking version of longjmp added that fails if an uninitialized stack + frame would be created. Implemented by Ulrich Drepper. + + * STT_GNU_IFUNC is now supported in static executables. + Implemented by H.J. Lu. + + * STT_GNU_IFUNC implemented for PPC by Alan Modra. + + * New optimized string functions for x86-64: strstr, strcasestr, memcmp, + strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2), + strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2). + Contributed by H.J. Lu. + + strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3). + Implemented by Ulrich Drepper. + + * New optimized string functions for x86: strlen, strcspn, strspn, strpbrk, + strstr, strcasestr. + Contributed by H.J. Lu. + + * Support for fma instruction in AVX on x86-64. + Implemented by H.J. Lu and Ulrich Drepper. + + * AVX support in x86-64 auditing support in ld.so. + Implemented by H.J. Lu. + + * STB_GNU_UNIQUE support added. + Implemented by Ulrich Drepper. + + * Implement second fallback mode for optimized DNS lookup for even more + broken environments. If two requests from the same port are not + handled correctly close the socket and open a new one before sending + the second request. The 'single-request-reopen' option in /etc/resolv.conf + can be used to select this mode right away, instead of rediscovering the + necessity is every process again. + Implemented by Ulrich Drepper. + + * New resolver flag RES_USE_DNSSEC to enable use of verified lookup. + Implemented by Adam Tkac. + + * Optimized iconv conversions for S390x. + Implemented by Andreas Krebbel. + + * Using condvars with PI mutexes is now more efficient due to kernel + support for requeueing to PI futexes. NPTL support added for x86-64. + Implemented by Ulrich Drepper. + + * New locales: ps_AF, my_MM +- Retired patches: + glibc-utmp-timeout-raise.diff + glibc-nscd-assert.diff + glibc-2.10-mcheck-free-race.diff + glibc-nscd-prune-ret.diff +- Made ifunc compile on IA64 using patch by H.J.Lu +- Fixed compilation on PPC Cell +- Lowered utmp locking timeout from 30s to 10s to be compatible + with upstream +- Allow external additions to /usr/share/locale/locale.alias and + /usr/lib/gconv/gconv-modules, required for the SAP-locales package. +- Remove AMD-provided strlen(), upstream is faster. +- ARM is currently non-functional + ------------------------------------------------------------------- Fri Nov 13 20:18:27 CET 2009 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index f0094ed..7e7ae16 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # -# spec file for package glibc (Version 2.10.1) +# spec file for package glibc (Version 2.11) # -# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,35 +27,20 @@ BuildRequires: libselinux-devel %define disable_assert 0 %define enable_stackguard_randomization 1 %ifarch ppc ppc64 -%define optimize_power 1 + %define optimize_power 1 + %define powerpc_optimize_base power4 + %define powerpc_optimize_tune power5 + %define powerpc_optimize_cpu_power6 1 + %define powerpc_optimize_cpu_power7 1 + %define powerpc_optimize_cpu_cell 1 %else -%define optimize_power 0 -%endif -%define powerpc_optimize_base_cpu_power4 0 -%if %{optimize_power} -%define powerpc_optimize_cpu_power4 1 -%ifarch ppc64 -%define powerpc_optimize_base_cpu_power4 1 -%define powerpc_optimize_cpu_power4 0 -%endif -%ifarch ppc -%define powerpc_optimize_cpu_power5 1 -%else -%define powerpc_optimize_cpu_power5 0 -%endif -%define powerpc_optimize_cpu_power5_compile 0 -%define powerpc_optimize_cpu_power6 1 -%define powerpc_optimize_cpu_power7 0 -%define powerpc_optimize_cpu_cell 1 -%else -%define powerpc_optimize_cpu_power4 0 -%define powerpc_optimize_cpu_power5 0 -%define powerpc_optimize_cpu_power6 0 -%define powerpc_optimize_cpu_power7 0 -%define powerpc_optimize_cpu_cell 0 -# optimize_power -%endif -License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later + %define optimize_power 0 + %define powerpc_optimize_base 0 + %define powerpc_optimize_cpu_power6 0 + %define powerpc_optimize_cpu_power7 0 + %define powerpc_optimize_cpu_cell 0 +%endif # ppc, ppc64 +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Standard Shared Libraries (from the GNU C Library) Group: System/Libraries Obsoletes: ngpt <= 2.2.2 ngpt-devel <= 2.2.2 @@ -69,15 +54,13 @@ Obsoletes: glibc-32bit %endif Provides: rtld(GNU_HASH) AutoReqProv: on -Version: 2.10.1 -Release: 10 +Version: 2.11 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -# The glibc source comes from http://repo.or.cz/w/glibc/pb-stable.git -# glibc-2.10-branch. -Source: glibc-%{version}-44dbdf3777.tar.bz2 -Source2: glibc-ports-%{version}-2b2b217196.tar.bz2 +Source: glibc-%{version}-1bc1954c7357.tar.bz2 +Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: usr.sbin.nscd @@ -88,8 +71,9 @@ Source11: ctype_b.c Source12: glibc_post_upgrade.c Source14: powerpc-cpu.tar.bz2 Source15: glibc.rpmlintrc +Source16: baselibs.conf %if %_target_cpu == "i686" -# We need to avoid to have only the srv rpm from i686 on the media, +# We need to avoid to have only the src rpm from i686 on the media, # since it does not work on other architectures. NoSource: 0 %endif @@ -129,7 +113,6 @@ Patch33: getaddrinfo-ipv6-sanity.diff Patch35: ppc-atomic.diff Patch36: glibc-2.8-clone.diff Patch37: glibc-nss-deepbind.diff -Patch38: glibc-nscd-prune-ret.diff Patch39: glibc-compiled-binaries.diff Patch40: glibc-selinux.diff Patch41: glibc-check-native-missing-include.diff @@ -137,11 +120,11 @@ Patch42: glibc-no-unwind-tables.diff Patch43: glibc-2.10-nscd-nostack.diff Patch44: glibc-cpusetsize.diff Patch45: glibc-nis-splitgroups.diff -Patch46: glibc-2.10-mcheck-free-race.diff -Patch47: glibc-2.10.99-ia64-include.diff -Patch48: glibc-utmp-timeout-raise.diff -Patch49: glibc-nscd-assert.diff -Patch50: libm-x86-64-exceptions.diff +Patch46: glibc-2.10.99-ia64-include.diff +Patch47: libm-x86-64-exceptions.diff +Patch48: glibc-uio-cell.diff +Patch49: glibc-ia64-memchr.diff +Patch50: glibc-nameserver-localhost.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 @@ -156,7 +139,7 @@ without these libraries. %package info -License: GPL v2 or later +License: GPLv2+ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} @@ -170,7 +153,7 @@ complete and is partially out of date. %package html -License: GPL v2 or later ; LGPL v2.1 or later +License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML AutoReqProv: on @@ -183,7 +166,7 @@ partially out of date. %package i18ndata -License: LGPL v2.1 or later +License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries AutoReqProv: on @@ -197,7 +180,7 @@ created. %package locale -License: GPL v2 or later ; LGPL v2.1 or later +License: GPLv2+ ; LGPLv2.1+ Summary: Locale Data for Localized Programs Group: System/Libraries Requires: glibc = %{version} @@ -216,7 +199,7 @@ Locale data for the internationalisation features of the GNU C library. %package -n nscd -License: LGPL v2.1 or later +License: LGPLv2.1+ Summary: Name Service Caching Daemon Group: System/Daemons Provides: glibc:/usr/sbin/nscd aaa_base:/etc/init.d/nscd @@ -229,7 +212,7 @@ performance with NIS, NIS+, and LDAP. %package profile -License: LGPL v2.1 or later +License: LGPLv2.1+ Summary: Libc Profiling and Debugging Versions Group: Development/Libraries/C and C++ Requires: glibc = %{version} @@ -249,7 +232,7 @@ necessary for profiling and debugging. %package devel -License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Include Files and Libraries Mandatory for Development Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 @@ -272,7 +255,7 @@ library. %package obsolete -License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} @@ -293,6 +276,8 @@ versions of your software. %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm +# this is CURRENTLY BROKEN; ARM-interested contributors need to provide +# new tested glibc-ports source %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 -a 14 %else # any other leave out ports @@ -336,7 +321,6 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch35 %patch36 %patch37 -%patch38 %patch39 %patch40 %patch41 @@ -346,9 +330,9 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch45 %patch46 %patch47 -%patch48 -%patch49 -%patch50 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -374,12 +358,17 @@ rm sysdeps/x86_64/fpu/s_sincos.S # rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch +####################################################################### +### +### BUILD +### +####################################################################### %build if [ -x /bin/uname.bin ]; then - /bin/uname.bin -a + /bin/uname.bin -a else - uname -a + uname -a fi uptime || : ulimit -a @@ -400,312 +389,242 @@ PARALLEL="%{?jobs:-j%jobs}" #now overwrite for some architectures # %ifarch sparc64 -BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" -BuildCC="gcc -m64" -BuildCCplus="$BuildCCplus -m64" + BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" + BuildCC="gcc -m64" + BuildCCplus="$BuildCCplus -m64" %endif %ifarch sparc -BuildFlags="$BuildFlags -fcall-used-g6" -BuildCC="gcc -m32" -BuildCCplus="$BuildCCplus -m32" + BuildFlags="$BuildFlags -fcall-used-g6" + BuildCC="gcc -m32" + BuildCCplus="$BuildCCplus -m32" %endif %ifarch sparcv9 -BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" -BuildCC="gcc -m32" -BuildCCplus="$BuildCCplus -m32" + BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" + BuildCC="gcc -m32" + BuildCCplus="$BuildCCplus -m32" %endif %ifarch alphaev6 -BuildFlags="-mcpu=ev6" + BuildFlags="-mcpu=ev6" %endif %ifarch ppc ppc64 -BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" + BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" %endif %ifarch ppc64 -BuildCC="$BuildCC -m64" -BuildCCplus="$BuildCCplus -m64" + BuildCC="$BuildCC -m64" + BuildCCplus="$BuildCCplus -m64" %endif %ifarch hppa -BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" + BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" %endif %ifarch %ix86 x86_64 -BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" + BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" %endif # Add flags for all plattforms except AXP %ifnarch alpha -BuildFlags="$BuildFlags -g" + BuildFlags="$BuildFlags -g" %endif %if %{disable_assert} -BuildFlags="$BuildFlags -DNDEBUG=1" + BuildFlags="$BuildFlags -DNDEBUG=1" %endif %ifarch %ix86 -add_ons=$add_ons,noversion + add_ons=$add_ons,noversion %endif %ifarch %arm armv5tel armv7l -add_ons=$add_ons,ports -BuildFlags="-march=armv5te -O2 -Wall" -# fails to build otherwise - need to recheck and fix -%define enable_stackguard_randomization 0 + add_ons=$add_ons,ports + BuildFlags="-march=armv5te -O2 -Wall" + # fails to build otherwise - need to recheck and fix + %define enable_stackguard_randomization 0 %endif configure_and_build_glibc() { - local cflags="$1" - local addons="$2" - shift 2 + local dirname="$1"; shift + local cflags="$1"; shift + local addons="$1"; shift + mkdir "cc-$dirname" + cd "cc-$dirname" CFLAGS="$cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ - --prefix=%{_prefix} \ - --libexecdir=%{_libdir} --infodir=%{_infodir} \ - --enable-add-ons=nptl$addons --without-cvs --enable-profile \ - "$@" \ + --prefix=%{_prefix} \ + --libexecdir=%{_libdir} --infodir=%{_infodir} \ + --enable-add-ons=nptl$addons --without-cvs --enable-profile \ + "$@" \ %if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ + --enable-stackguard-randomization \ %endif %ifarch %arm armv5tel armv7l - --build=%{_target_cpu}-suse-linux-gnueabi \ + --build=%{_target_cpu}-suse-linux-gnueabi \ %else - --build=%{_target_cpu}-suse-linux \ + --build=%{_target_cpu}-suse-linux \ %endif - --with-tls --with-__thread --enable-kernel=2.6.4 -make $PARALLEL + --with-tls --with-__thread --enable-kernel=2.6.4 + make $PARALLEL + cd .. } -# -# Build nptl -# -mkdir cc-nptl -cd cc-nptl -configure_and_build_glibc "$BuildFlags" \ -%if %{powerpc_optimize_base_cpu_power4} -"$add_ons,powerpc-cpu" --with-cpu=power4 +%if !%{optimize_power} + # + # Build base glibc + # + configure_and_build_glibc base "$BuildFlags" "$add_ons" %else -"$add_ons" -%endif -cd .. -%if %{optimize_power} -# -# Build POWER optimized -# -for pcpu in \ -%if %{powerpc_optimize_cpu_power4} -power4 \ -%endif -%if %{powerpc_optimize_cpu_power5} -%if %{powerpc_optimize_cpu_power5_compile} -power5 \ -%endif -%endif -%if %{powerpc_optimize_cpu_power6} -power6 \ -%endif -%if %{powerpc_optimize_cpu_power7} -power7 \ -%endif -; do -mkdir cc-$pcpu -cd cc-$pcpu -configure_and_build_glibc "$BuildFlags -mcpu=$pcpu" "$add_ons,powerpc-cpu" --with-cpu=$pcpu --disable-runbinaries -cd .. -done -%if %{powerpc_optimize_cpu_cell} -mkdir cc-ppc-cell-be -cd cc-ppc-cell-be -configure_and_build_glibc "$BuildFlags -mcpu=cell" "$add_ons" --disable-runbinaries -cd .. -%endif -# optimize_power -%endif + # + # Build POWER-optimized glibc + # + # First, base build: + pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}" + configure_and_build_glibc base "$pBuildFlags" "$add_ons,powerpc-cpu" --with-cpu=%{powerpc_optimize_base} + # Then other power variants: + for pcpu in \ + %if %{powerpc_optimize_cpu_power6} + power6 \ + %endif + %if %{powerpc_optimize_cpu_power7} + power7 \ + %endif + ; do + configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons,powerpc-cpu" \ + --with-cpu=$pcpu --disable-runbinaries + done + # Eventually, special Cell variant: + %if %{powerpc_optimize_cpu_cell} + configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" --disable-runbinaries + %endif +%endif # optimize_power # # Build html documentation # -make -C cc-nptl html +make -C cc-base html # # Build glibc_post_upgrade binary # $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ - -Lcc-nptl -Bcc-nptl/csu \ + -Lcc-base -Bcc-base/csu \ '-DREMOVE_TLS_DIRS' \ %ifarch ppc ppc64 -%if !%{powerpc_optimize_cpu_power4} - '-DREMOVE_PPC_OPTIMIZE_POWER4' \ -%endif -%if !%{powerpc_optimize_cpu_power5} - '-DREMOVE_PPC_OPTIMIZE_POWER5' \ -%endif -%if !%{powerpc_optimize_cpu_power6} + %if !%{powerpc_optimize_cpu_power6} '-DREMOVE_PPC_OPTIMIZE_POWER6' \ -%endif -%if !%{powerpc_optimize_cpu_power7} + %endif + %if !%{powerpc_optimize_cpu_power7} '-DREMOVE_PPC_OPTIMIZE_POWER7' \ -%endif -%if !%{powerpc_optimize_cpu_cell} + %endif + %if !%{powerpc_optimize_cpu_cell} '-DREMOVE_PPC_OPTIMIZE_CELL' \ -%endif + %endif %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' +####################################################################### +### +### CHECK +### +####################################################################### %check %if %{run_testsuite} -# Increase timeout -export TIMEOUTFACTOR=16 -%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 -# ix86: tst-cputimer? fails -# ia64: tst-timer4 fails -# ppc64: tst-pselect, ftwtest fails -# s390,s390x: tst-timer* fails - make -C cc-nptl -k check || echo make check failed -%else - make -C cc-nptl check + # Increase timeout + export TIMEOUTFACTOR=16 + %ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 + # ix86: tst-cputimer? fails + # ia64: tst-timer4 fails + # ppc64: tst-pselect, ftwtest fails + # s390,s390x: tst-timer* fails + make -C cc-base -k check || echo make check failed + %else + make -C cc-base check + %endif %endif -%endif -make -C cc-nptl check-abi || echo check-abi failed +make -C cc-base check-abi || echo check-abi failed +####################################################################### +### +### INSTALL +### +####################################################################### %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, -# at least not from libpthread.so.* because it is used by libthread_db to find +# certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support # should be enabled. These symbols are _not_ exported, and we can't easily # export them retroactively without changing the ABI. So we have to # continue to "export" them via .symtab, instead of .dynsym :-( -export STRIP_KEEP_SYMTAB=libpthread* +# But we also want to keep .symtab and .strtab of other libraries since some +# debugging tools currently require these sections directly inside the main +# files - specifically valgrind and PurifyPlus. +export STRIP_KEEP_SYMTAB=*.so* # Make sure we will create the gconv-modules.cache mkdir -p $RPM_BUILD_ROOT%{_libdir}/gconv touch $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache +# Install base glibc # Do not install in parallel, timezone Makefile will fail -make install_root=$RPM_BUILD_ROOT install -C cc-nptl +make install_root=$RPM_BUILD_ROOT install -C cc-base +# Install power-optimized glibc %if %{optimize_power} -# run ldconfig to create the library symlinks -# do not use the new ldconfig from the build directory because -# it may contain instructions not suitable for the cpu on the builhost -my_ldconfig=/sbin/ldconfig -# -for pcpu in \ -%if %{powerpc_optimize_cpu_power4} -power4 \ -%endif -%if %{powerpc_optimize_cpu_power5} -%if %{powerpc_optimize_cpu_power5_compile} -power5 \ -%endif -%endif -%if %{powerpc_optimize_cpu_power6} -power6 \ -%endif -%if %{powerpc_optimize_cpu_power7} -power7 \ -%endif -%if %{powerpc_optimize_cpu_cell} -ppc-cell-be \ -%endif -; do - make install_root=${RPM_BUILD_ROOT}/$pcpu install -C cc-$pcpu - mkdir -p $RPM_BUILD_ROOT/%{_lib}/$pcpu - for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version} - do - mv $RPM_BUILD_ROOT/$pcpu/%{_lib}/$i.so $RPM_BUILD_ROOT/%{_lib}/$pcpu + # run ldconfig to create the library symlinks + # do not use the new ldconfig from the build directory because + # it may contain instructions not suitable for the cpu on the builhost + my_ldconfig=/sbin/ldconfig + for pcpu in \ + %if %{powerpc_optimize_cpu_power6} + power6 \ + %endif + %if %{powerpc_optimize_cpu_power7} + power7 \ + %endif + %if %{powerpc_optimize_cpu_cell} + ppc-cell-be \ + %endif + ; do + make install_root=${RPM_BUILD_ROOT}/$pcpu install -C cc-$pcpu + mkdir -p $RPM_BUILD_ROOT/%{_lib}/$pcpu + for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version}; do + mv $RPM_BUILD_ROOT/$pcpu/%{_lib}/$i.so $RPM_BUILD_ROOT/%{_lib}/$pcpu + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/$pcpu/ + rm -rf $RPM_BUILD_ROOT/$pcpu done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/$pcpu/ - rm -rf $RPM_BUILD_ROOT/$pcpu -done -%if %{powerpc_optimize_cpu_power4} -# ppc970 is compatible with power4, unless compiled with altivec support -# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir -if test -d $RPM_BUILD_ROOT/%{_lib}/power4 -then - mkdir -p $RPM_BUILD_ROOT/%{_lib}/ppc970 - for i in $RPM_BUILD_ROOT/%{_lib}/power4/*.so ; do - b=`basename $i` - ln -vs ../power4/$b \ - $RPM_BUILD_ROOT/%{_lib}/ppc970/$b - done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/ppc970/ -fi -%endif -%if %{powerpc_optimize_cpu_power5} -# power5+ is compatible with power5 (adds only a few floating point instructions) -# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir -# symlink to power4 directory, which is built only on ppc32 -%if %{powerpc_optimize_cpu_power5_compile} -if test -d $RPM_BUILD_ROOT/%{_lib}/power5 -then - mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5+ - for i in $RPM_BUILD_ROOT/%{_lib}/power5/*.so ; do - b=`basename $i` - ln -vs ../power5/$b \ - $RPM_BUILD_ROOT/%{_lib}/power5+/$b - done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ -fi -%else -if test -d $RPM_BUILD_ROOT/%{_lib}/power4 -then - mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5 - mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5+ - for i in $RPM_BUILD_ROOT/%{_lib}/power4/*.so ; do - b=`basename $i` - ln -vs ../power4/$b \ - $RPM_BUILD_ROOT/%{_lib}/power5/$b - ln -vs ../power4/$b \ - $RPM_BUILD_ROOT/%{_lib}/power5+/$b - done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5/ - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ -fi -%endif -%endif -%if %{powerpc_optimize_cpu_power6} -# power6 is compatible with power6x -# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir -if test -d $RPM_BUILD_ROOT/%{_lib}/power6 -then - mkdir -p $RPM_BUILD_ROOT/%{_lib}/power6x - for i in $RPM_BUILD_ROOT/%{_lib}/power6/*.so ; do - b=`basename $i` - ln -vs ../power6/$b \ - $RPM_BUILD_ROOT/%{_lib}/power6x/$b - done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power6x/ -fi -%endif -# optimize_power -%endif + %if %{powerpc_optimize_cpu_power6} + # power6 is compatible with power6x + # doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir + if test -d $RPM_BUILD_ROOT/%{_lib}/power6; then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power6x + for i in $RPM_BUILD_ROOT/%{_lib}/power6/*.so; do + b=`basename $i` + ln -vs ../power6/$b $RPM_BUILD_ROOT/%{_lib}/power6x/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power6x/ + fi + %endif +%endif # optimize_power +# Install locales %if %{build_locales} -# Do not install locales in parallel! -cd cc-nptl -make install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` -cd .. + # Do not install locales in parallel! + cd cc-base + make install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` + cd .. %endif -#create file list for glibc-locale package +# Create file list for glibc-locale package %{find_lang} libc -cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. +# Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete -# # NPTL is not usable outside of glibc, so include # the generic one (RH#162634) -# cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h %ifarch s390x -# -# s390x is different ... -# -mkdir $RPM_BUILD_ROOT/lib -ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 + # s390x is different ... + mkdir $RPM_BUILD_ROOT/lib + ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif -# -# Install glibc_post_upgrade tool -# +# Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} -# -# Install the mapv4v6* header files -# +install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist $RPM_BUILD_ROOT/etc +install -m 644 $RPM_SOURCE_DIR/nsswitch.conf $RPM_BUILD_ROOT/etc +install -m 644 posix/gai.conf $RPM_BUILD_ROOT/etc +mkdir -p $RPM_BUILD_ROOT/etc/default +install -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/ mkdir -p $RPM_BUILD_ROOT/usr/include/resolv install -m 0644 resolv/mapv4v6addr.h $RPM_BUILD_ROOT/usr/include/resolv/ install -m 0644 resolv/mapv4v6hostent.h $RPM_BUILD_ROOT/usr/include/resolv/ -# -# glibc documentation in HTML -# mkdir -p $RPM_BUILD_ROOT/usr/share/doc/glibc cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc -# -# Install nscd tools -# +cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. +# nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc mkdir -p $RPM_BUILD_ROOT/etc/apparmor.d cp $RPM_SOURCE_DIR/usr.sbin.nscd $RPM_BUILD_ROOT/etc/apparmor.d @@ -715,8 +634,6 @@ ln -sf /etc/init.d/nscd $RPM_BUILD_ROOT/usr/sbin/rcnscd mkdir -p $RPM_BUILD_ROOT/var/run/nscd touch $RPM_BUILD_ROOT/var/run/nscd/{passwd,group,hosts} touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} -# Install bindresvport.blacklist -install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist $RPM_BUILD_ROOT/etc # # Create ld.so.conf # @@ -753,44 +670,31 @@ include /etc/ld.so.conf.d/*.conf EOF # Add ldconfig cache directory for directory ownership mkdir -p $RPM_BUILD_ROOT/var/cache/ldconfig -# -# install nsswitch.conf -# -install -m 644 $RPM_SOURCE_DIR/nsswitch.conf $RPM_BUILD_ROOT/etc -# -# install /etc/default/nss -# -mkdir -p $RPM_BUILD_ROOT/etc/default -install -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/ -# -# install /etc/gai.conf -# -install -m 644 posix/gai.conf $RPM_BUILD_ROOT/etc -%ifarch %ix86 -# -# Remove static library and .so symlink, not needed -rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion* -# Move to lib/obsolete -mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion -mv -v $RPM_BUILD_ROOT/%{_lib}/libNoVersion* $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion/ -%endif -# -# Don't look at it! We don't wish a /bin/sh requires -chmod 644 $RPM_BUILD_ROOT/usr/bin/ldd -# -# Remove not needed files from BuildRoot -# Also, we now take timezone stuff from a separate package -# create empty cache file +# Empty the ld.so.cache: rm -f $RPM_BUILD_ROOT/etc/ld.so.cache touch $RPM_BUILD_ROOT/etc/ld.so.cache +# libNoVersion belongs only to glibc-obsolete: +%ifarch %ix86 + rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion* + mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion + mv -v $RPM_BUILD_ROOT/%{_lib}/libNoVersion* $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion/ +%endif +# Don't look at ldd! We don't wish a /bin/sh requires +chmod 644 $RPM_BUILD_ROOT/usr/bin/ldd +# Remove timezone data, now coming in standalone package: for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do rm -f $RPM_BUILD_ROOT/$i done rm -rf $RPM_BUILD_ROOT/usr/share/zoneinfo -# remove the buildflags tracking section and the build-id +# Remove the buildflags tracking section and the build-id for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_nonshared.a; do - objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o + objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done +####################################################################### +### +### ... +### +####################################################################### %clean rm -rf $RPM_BUILD_ROOT @@ -799,6 +703,13 @@ rm -rf $RPM_BUILD_ROOT %postun -p /sbin/ldconfig +%post locale +for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do + [ -d "$l.d" ] || continue + echo "###X# The following is autogenerated from extra files in the .d directory:" >>"$l" + cat "$l.d"/* >>"$l" +done + %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz @@ -815,9 +726,12 @@ rm -rf $RPM_BUILD_ROOT %restart_on_update nscd %insserv_cleanup exit 0 -# +####################################################################### +### +### FILES +### +####################################################################### # glibc -# %files %defattr(-,root,root) @@ -836,28 +750,28 @@ exit 0 %doc %{_mandir}/man8/rpcinfo.8.gz /%{_lib}/ld-%{version}.so %ifarch ppc s390 mips hppa -/%{_lib}/ld.so.1 + /%{_lib}/ld.so.1 %else -%ifarch ia64 -/%{_lib}/ld-linux-ia64.so.2 -%else -%ifarch s390x ppc64 -/%{_lib}/ld64.so.1 -%ifarch s390x -/lib/ld64.so.1 -%endif -%else -%ifarch x86_64 -/%{_lib}/ld-linux-x86-64.so.2 -%else -%ifarch %arm armv5tel armv7l -/%{_lib}/ld-linux.so.3 -%else -/%{_lib}/ld-linux.so.2 -%endif -%endif -%endif -%endif + %ifarch ia64 + /%{_lib}/ld-linux-ia64.so.2 + %else + %ifarch s390x ppc64 + /%{_lib}/ld64.so.1 + %ifarch s390x + /lib/ld64.so.1 + %endif + %else + %ifarch x86_64 + /%{_lib}/ld-linux-x86-64.so.2 + %else + %ifarch %arm armv5tel armv7l + /%{_lib}/ld-linux.so.3 + %else + /%{_lib}/ld-linux.so.2 + %endif + %endif + %endif + %endif %endif /%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 @@ -901,38 +815,29 @@ exit 0 /%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %if %{optimize_power} -%define optimized_libs() \ -%dir %attr(0755,root,root) /%{_lib}/%1\ -/%{_lib}/%1/libc-%{version}.so\ -/%{_lib}/%1/libc.so.6*\ -/%{_lib}/%1/libm-%{version}.so\ -/%{_lib}/%1/libm.so.6*\ -/%{_lib}/%1/libpthread-%{version}.so\ -/%{_lib}/%1/libpthread.so.0\ -/%{_lib}/%1/librt-%{version}.so\ -/%{_lib}/%1/librt.so.1\ -/%{_lib}/%1/libthread_db-1.0.so\ -/%{_lib}/%1/libthread_db.so.1 -%if %{powerpc_optimize_cpu_power4} -%{optimized_libs power4} -%{optimized_libs ppc970} -%endif -%if %{powerpc_optimize_cpu_power5} -%{optimized_libs power5} -%{optimized_libs power5+} -%endif -%if %{powerpc_optimize_cpu_power6} -%{optimized_libs power6} -%{optimized_libs power6x} -%endif -%if %{powerpc_optimize_cpu_power7} -%{optimized_libs power7} -%endif -%if %{powerpc_optimize_cpu_cell} -%{optimized_libs ppc-cell-be} -%endif -# optimize_power -%endif + %define optimized_libs() \ + %dir %attr(0755,root,root) /%{_lib}/%1\ + /%{_lib}/%1/libc-%{version}.so\ + /%{_lib}/%1/libc.so.6*\ + /%{_lib}/%1/libm-%{version}.so\ + /%{_lib}/%1/libm.so.6*\ + /%{_lib}/%1/libpthread-%{version}.so\ + /%{_lib}/%1/libpthread.so.0\ + /%{_lib}/%1/librt-%{version}.so\ + /%{_lib}/%1/librt.so.1\ + /%{_lib}/%1/libthread_db-1.0.so\ + /%{_lib}/%1/libthread_db.so.1 + %if %{powerpc_optimize_cpu_power6} + %{optimized_libs power6} + %{optimized_libs power6x} + %endif + %if %{powerpc_optimize_cpu_power7} + %{optimized_libs power7} + %endif + %if %{powerpc_optimize_cpu_cell} + %{optimized_libs ppc-cell-be} + %endif +%endif # optimize_power %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig /usr/bin/gencat @@ -941,7 +846,7 @@ exit 0 /usr/bin/iconv %attr(755,root,root) /usr/bin/ldd %ifarch %ix86 sparc sparcv9 -/usr/bin/lddlibc4 + /usr/bin/lddlibc4 %endif /usr/bin/locale /usr/bin/localedef @@ -956,19 +861,16 @@ exit 0 %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ %ifarch %ix86 -%dir /%{_lib}/obsolete/noversion -/%{_lib}/obsolete/noversion/libNoVersion-%{version}.so -/%{_lib}/obsolete/noversion/libNoVersion.so.1 + %dir /%{_lib}/obsolete/noversion + /%{_lib}/obsolete/noversion/libNoVersion-%{version}.so + /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif -# -# locale subpackage -# %files locale -f libc.lang %defattr(-,root,root) /usr/share/locale/locale.alias %if %{build_locales} -/usr/lib/locale + /usr/lib/locale %endif %{_libdir}/gconv @@ -997,8 +899,9 @@ exit 0 %{_libdir}/libdl.a %{_libdir}/libg.a %{_libdir}/libieee.a -%ifarch ppc ppc64 s390 s390x -%{_libdir}/libnldbl_nonshared.a +%ifarch ppc ppc64 s390 s390x sparc sparcv8 sparcv9 sparcv9v +# This is not built on sparc64. + %{_libdir}/libnldbl_nonshared.a %endif %{_libdir}/libm.a %{_libdir}/libmcheck.a @@ -1009,32 +912,20 @@ exit 0 %{_libdir}/librpcsvc.a %{_libdir}/librt.a %{_libdir}/libutil.a -# -# glibc-info -# %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz -# -# glibc-html -# %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc -# -# glibc-i18ndata -# %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n -# -# nscd -# %files -n nscd %defattr(-,root,root) @@ -1050,9 +941,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts -# -# glibc-profile -# %files profile %defattr(-,root,root) diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index f7dd6c5..a479c79 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -43,14 +43,6 @@ main (void) "/lib/i686/", #endif #ifdef __powerpc64__ -#ifdef REMOVE_PPC_OPTIMIZE_POWER4 - "/lib64/power4/", - "/lib64/ppc970/", -#endif -#ifdef REMOVE_PPC_OPTIMIZE_POWER5 - "/lib64/power5/", - "/lib64/power5+/", -#endif #ifdef REMOVE_PPC_OPTIMIZE_POWER6 "/lib64/power6/", "/lib64/power6x/", @@ -63,14 +55,6 @@ main (void) #endif #endif /* __powerpc64__ */ #ifdef __powerpc__ -#ifdef REMOVE_PPC_OPTIMIZE_POWER4 - "/lib/power4/", - "/lib/ppc970/", -#endif -#ifdef REMOVE_PPC_OPTIMIZE_POWER5 - "/lib/power5/", - "/lib/power5+/", -#endif #ifdef REMOVE_PPC_OPTIMIZE_POWER6 "/lib/power6/", "/lib/power6x/", diff --git a/libm-x86-64.diff.bz2 b/libm-x86-64.diff.bz2 index 4eb2049..670bdcb 100644 --- a/libm-x86-64.diff.bz2 +++ b/libm-x86-64.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:349cdc0d042ccd828d6906a0e2498bdacfa89e2a3df0e706fc429756caa39895 -size 76349 +oid sha256:a64d26aaeef0d9ee062260b5540910b138a6e0df89033dd4fe4b39d905574b19 +size 76334 From a64f4f89bdcf2c35435f2313905f3d312b1cd06ea86c43e3cd6c6cc121093c25 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 29 Jan 2010 13:56:15 +0000 Subject: [PATCH 014/204] Accepting request 30532 from Base:System Copy from Base:System/glibc based on submit request 30532 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/30532 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=15 --- glibc-2.11-1bc1954c7357.tar.bz2 | 3 --- glibc-2.11.1-11c19d374bd4.tar.bz2 | 3 +++ glibc-ia64-memchr.diff | 39 ------------------------------- glibc.changes | 23 ++++++++++++++++++ glibc.spec | 17 +++++++------- 5 files changed, 35 insertions(+), 50 deletions(-) delete mode 100644 glibc-2.11-1bc1954c7357.tar.bz2 create mode 100644 glibc-2.11.1-11c19d374bd4.tar.bz2 delete mode 100644 glibc-ia64-memchr.diff diff --git a/glibc-2.11-1bc1954c7357.tar.bz2 b/glibc-2.11-1bc1954c7357.tar.bz2 deleted file mode 100644 index 81d08cb..0000000 --- a/glibc-2.11-1bc1954c7357.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0ab54f44140cae0caac44045051efa49d7fe663257dd95a47231d1bfec789fd -size 15683806 diff --git a/glibc-2.11.1-11c19d374bd4.tar.bz2 b/glibc-2.11.1-11c19d374bd4.tar.bz2 new file mode 100644 index 0000000..ae9b0ca --- /dev/null +++ b/glibc-2.11.1-11c19d374bd4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e03c84ffe3b41a81a070a896307fa59b4618f2cc053360a65c867a79a32a718c +size 15670997 diff --git a/glibc-ia64-memchr.diff b/glibc-ia64-memchr.diff deleted file mode 100644 index c137892..0000000 --- a/glibc-ia64-memchr.diff +++ /dev/null @@ -1,39 +0,0 @@ -On Mon, Nov 09, 2009 at 11:57:06AM -0800, H.J. Lu wrote: -> When data is shorter than software pipeline, recovery may fail. This -> patch avoids it by using a simple loop on data shorter than software -> pipeline. -> - -Here is an updated patch. This one properly handles the shorter read -on speculative load. - - -H.J. ---- -2009-11-09 H.J. Lu - - PR libc/10162 - * sysdeps/ia64/memchr.S: Properly recover from shorter read. - -diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S -index cd062b2..cdd71ca 100644 ---- a/sysdeps/ia64/memchr.S -+++ b/sysdeps/ia64/memchr.S -@@ -126,7 +126,16 @@ ENTRY(__memchr) - br.ret.sptk.many b0 - - .recovery: -- adds ret0 = -((MEMLAT + 1) * 8), ret0;; -+#if MEMLAT != 6 -+# error "MEMLAT must be 6!" -+#endif -+(p[MEMLAT-6]) add ret0 = -8, ret0;; -+(p[MEMLAT-5]) add ret0 = -8, ret0;; -+(p[MEMLAT-4]) add ret0 = -8, ret0;; -+(p[MEMLAT-3]) add ret0 = -8, ret0;; -+(p[MEMLAT-2]) add ret0 = -8, ret0;; -+(p[MEMLAT-1]) add ret0 = -8, ret0;; -+(p[MEMLAT]) add ret0 = -8, ret0;; - (p[MEMLAT+1]) add ret0 = -8, ret0;; - (p[MEMLAT+2]) add ret0 = -8, ret0;; - .l4: diff --git a/glibc.changes b/glibc.changes index eb3a7c7..6b9a5c9 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de + +- ignore power6, power7 and cell specific Power CPU optimizations + on openSUSE. + +------------------------------------------------------------------- +Tue Jan 19 02:42:40 CET 2010 - pbaudis@suse.cz + +- Disable AMD-optimized strncmp() on x86_64 that is getting miscompiled + by the assembler [bnc#540647] + +------------------------------------------------------------------- +Mon Jan 18 18:22:32 CET 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.1-11c19d374bd4 + - Just trivial changes - version bump to 2.11.1, NIS-related + resolver fixes, ELF lookup race, .h typo fix and regcomp + out-of-memory handling miss + - Few more bugfixes, weekday updated in three locales +- Retired patches: + glibc-ia64-memchr.diff + ------------------------------------------------------------------- Mon Dec 14 23:49:33 CET 2009 - jengelh@medozas.de diff --git a/glibc.spec b/glibc.spec index 7e7ae16..40ac766 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,5 +1,5 @@ # -# spec file for package glibc (Version 2.11) +# spec file for package glibc (Version 2.11.1) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -30,9 +30,10 @@ BuildRequires: libselinux-devel %define optimize_power 1 %define powerpc_optimize_base power4 %define powerpc_optimize_tune power5 - %define powerpc_optimize_cpu_power6 1 - %define powerpc_optimize_cpu_power7 1 - %define powerpc_optimize_cpu_cell 1 + # We are not building Power CPU specific optimizations for openSUSE. + %define powerpc_optimize_cpu_power6 0 + %define powerpc_optimize_cpu_power7 0 + %define powerpc_optimize_cpu_cell 0 %else %define optimize_power 0 %define powerpc_optimize_base 0 @@ -54,12 +55,12 @@ Obsoletes: glibc-32bit %endif Provides: rtld(GNU_HASH) AutoReqProv: on -Version: 2.11 +Version: 2.11.1 Release: 1 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-1bc1954c7357.tar.bz2 +Source: glibc-%{version}-11c19d374bd4.tar.bz2 Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -123,7 +124,6 @@ Patch45: glibc-nis-splitgroups.diff Patch46: glibc-2.10.99-ia64-include.diff Patch47: libm-x86-64-exceptions.diff Patch48: glibc-uio-cell.diff -Patch49: glibc-ia64-memchr.diff Patch50: glibc-nameserver-localhost.diff Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff Patch501: ARM_glibc-2.10.1-local-hwcap-updates.diff @@ -297,6 +297,8 @@ versions of your software. %patch11 %patch12 %patch13 +# strncmp.S triggers amd64 assembler bug [bnc#540647] +rm sysdeps/x86_64/strncmp.S %patch14 -E # We have s_sincos.c in patch13, remove duplicate rm sysdeps/x86_64/fpu/s_sincos.S @@ -331,7 +333,6 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch46 %patch47 %patch48 -p1 -%patch49 -p1 %patch50 -p1 %ifarch %arm armv5tel armv7l %patch500 From af18f084d200dede64774a8218540f1c91cf5cd020c34d1e6ca22ff096fcf33a Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 5 Mar 2010 01:03:33 +0000 Subject: [PATCH 015/204] Accepting request 34042 from Base:System Copy from Base:System/glibc based on submit request 34042 from user coolo OBS-URL: https://build.opensuse.org/request/show/34042 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=16 --- glibc-2.4.90-nscd.diff | 37 ++++++++++++++++++++++++++----------- glibc.changes | 5 +++++ glibc.spec | 7 ++++++- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff index f66d910..ce178a1 100644 --- a/glibc-2.4.90-nscd.diff +++ b/glibc-2.4.90-nscd.diff @@ -1,7 +1,7 @@ Index: nscd/cache.c =================================================================== ---- nscd/cache.c.orig -+++ nscd/cache.c +--- nscd/cache.c.orig 2010-01-18 18:01:41.000000000 +0100 ++++ nscd/cache.c 2010-02-14 14:58:08.000000000 +0100 @@ -267,28 +267,31 @@ prune_cache (struct database_dyn *table, if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) { @@ -47,8 +47,8 @@ Index: nscd/cache.c Note that for the initial step, finding the entries to be removed, Index: nscd/connections.c =================================================================== ---- nscd/connections.c.orig -+++ nscd/connections.c +--- nscd/connections.c.orig 2010-01-18 18:01:41.000000000 +0100 ++++ nscd/connections.c 2010-02-14 14:58:08.000000000 +0100 @@ -119,6 +119,7 @@ struct database_dyn dbs[lastdb] = .suggested_module = DEFAULT_SUGGESTED_MODULE, .reset_res = 0, @@ -94,8 +94,8 @@ Index: nscd/connections.c Index: nscd/nscd.conf =================================================================== ---- nscd/nscd.conf.orig -+++ nscd/nscd.conf +--- nscd/nscd.conf.orig 2010-01-18 18:01:41.000000000 +0100 ++++ nscd/nscd.conf 2010-02-14 14:58:08.000000000 +0100 @@ -61,11 +61,11 @@ auto-propagate group yes @@ -113,8 +113,8 @@ Index: nscd/nscd.conf Index: nscd/nscd.h =================================================================== ---- nscd/nscd.h.orig -+++ nscd/nscd.h +--- nscd/nscd.h.orig 2010-01-18 18:01:41.000000000 +0100 ++++ nscd/nscd.h 2010-02-14 14:59:07.000000000 +0100 @@ -80,8 +80,10 @@ struct database_dyn int propagate; int reset_res; @@ -128,9 +128,24 @@ Index: nscd/nscd.h Index: nscd/nscd_stat.c =================================================================== ---- nscd/nscd_stat.c.orig -+++ nscd/nscd_stat.c -@@ -302,7 +302,7 @@ receive_print_stats (void) +--- nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 ++++ nscd/nscd_stat.c 2010-02-14 15:02:41.000000000 +0100 +@@ -37,8 +37,13 @@ + #endif /* HAVE_SELINUX */ + + +-/* We use this to make sure the receiver is the same. */ ++/* We use this to make sure the receiver is the same. Capture mtime ++ of this file if possible. */ ++#if defined(__TIMESTAMP__) ++static const char compilation[21] = __TIMESTAMP__; ++#else + static const char compilation[21] = __DATE__ " " __TIME__; ++#endif + + /* Statistic data for one database. */ + struct dbstat +@@ -302,7 +307,7 @@ receive_print_stats (void) data.dbs[i].maxnsearched, data.dbs[i].rdlockdelayed, data.dbs[i].wrlockdelayed, diff --git a/glibc.changes b/glibc.changes index 6b9a5c9..de4e885 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Feb 14 15:33:33 CET 2010 - rguenther@suse.de + +- avoid spurious differences in nscd on rebuilds. + ------------------------------------------------------------------- Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de diff --git a/glibc.spec b/glibc.spec index 40ac766..663edc5 100644 --- a/glibc.spec +++ b/glibc.spec @@ -56,7 +56,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.1 -Release: 1 +Release: 2 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -310,9 +310,14 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch20 %patch21 %patch22 +# avoid changing nscd_stat.c mtime to avoid code generation +# differences on each rebuild +touch -r nscd/nscd_stat.c nscd/s-stamp %patch23 %patch24 %patch25 +touch -r nscd/s-stamp nscd/nscd_stat.c +rm nscd/s-stamp %patch26 %patch27 %patch29 From b486f136d838f370b1f419c9d56f9d91da930d5620f2426a98228743ab9b480e Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Thu, 18 Mar 2010 14:48:55 +0000 Subject: [PATCH 016/204] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=17 --- minmem | 1 + ready | 0 2 files changed, 1 insertion(+) create mode 100644 minmem delete mode 100644 ready diff --git a/minmem b/minmem new file mode 100644 index 0000000..827ecbf --- /dev/null +++ b/minmem @@ -0,0 +1 @@ +500000 diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From 96652d2c3dee7a944b597d15b8df356677aca121bdd19b3f40c81f4048b4fd31 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Wed, 28 Apr 2010 20:36:13 +0000 Subject: [PATCH 017/204] Accepting request 38894 from Base:System Copy from Base:System/glibc based on submit request 38894 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/38894 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=18 --- glibc-2.5-ppc-llrintl.diff | 19 ----- glibc-dl-x86-64-pc32.diff | 11 +++ glibc-gai-private4.diff | 74 +++++++++++++++++ glibc-getnprocs.diff | 148 +++++++++++++++++++++++++++++++++ glibc-memchr-ia64.diff | 39 +++++++++ glibc-ppc64-vdso-time.diff | 28 +++++++ glibc-resolv-reload.diff | 124 +++++++++++++++++++++++++++ glibc-sap-captialsharps.diff | 11 +++ glibc-statfs64-ia64.diff | 12 +++ glibc-utf-s390.diff | 84 +++++++++++++++++++ glibc-valloc-assert.diff | 32 +++++++ glibc.changes | 97 +++++++++++++++++++++ glibc.spec | 98 +++++++++++++++++++--- glibc_post_upgrade.c | 19 +++++ ld-prelink-unique.diff | 57 +++++++++++++ minmem | 1 - nptl-ppc64-vdso-timedwait.diff | 29 +++++++ powerpc-cpu.tar.bz2 | 3 - resolv.dynamic.diff | 33 -------- 19 files changed, 852 insertions(+), 67 deletions(-) delete mode 100644 glibc-2.5-ppc-llrintl.diff create mode 100644 glibc-dl-x86-64-pc32.diff create mode 100644 glibc-gai-private4.diff create mode 100644 glibc-getnprocs.diff create mode 100644 glibc-memchr-ia64.diff create mode 100644 glibc-ppc64-vdso-time.diff create mode 100644 glibc-resolv-reload.diff create mode 100644 glibc-sap-captialsharps.diff create mode 100644 glibc-statfs64-ia64.diff create mode 100644 glibc-utf-s390.diff create mode 100644 glibc-valloc-assert.diff create mode 100644 ld-prelink-unique.diff delete mode 100644 minmem create mode 100644 nptl-ppc64-vdso-timedwait.diff delete mode 100644 powerpc-cpu.tar.bz2 delete mode 100644 resolv.dynamic.diff diff --git a/glibc-2.5-ppc-llrintl.diff b/glibc-2.5-ppc-llrintl.diff deleted file mode 100644 index 3a65665..0000000 --- a/glibc-2.5-ppc-llrintl.diff +++ /dev/null @@ -1,19 +0,0 @@ -Index: powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S -=================================================================== ---- powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S.orig -+++ powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S -@@ -18,6 +18,7 @@ - 02110-1301 USA. */ - - #include -+#include - - /* long long int[r3, r4] __llrint (double x[fp1]) */ - ENTRY (__llrint) -@@ -41,3 +42,6 @@ weak_alias (__llrint, llrint) - strong_alias (__llrint, __llrintl) - weak_alias (__llrint, llrintl) - #endif -+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -+compat_symbol (libm, __llrint, llrintl, GLIBC_2_1) -+#endif diff --git a/glibc-dl-x86-64-pc32.diff b/glibc-dl-x86-64-pc32.diff new file mode 100644 index 0000000..76c25fa --- /dev/null +++ b/glibc-dl-x86-64-pc32.diff @@ -0,0 +1,11 @@ +--- 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 new file mode 100644 index 0000000..8dfc671 --- /dev/null +++ b/glibc-gai-private4.diff @@ -0,0 +1,74 @@ +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 + #scopev4 ::ffff:192.168.0.0/112 5 + #scopev4 ::ffff:0.0.0.0/96 14 ++ ++ ++# 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 ++# operational problems that's hindering the deployment of IPv6 for content ++# providers. ++# ++# The problem scenario is the following: ++# ++# An end user is located in a network numbered with private (RFC 1918) IPv4 ++# addresses and transitional 6to4 (RFC 3056) IPv6 addresses. The network is ++# connected to the internet by a CPE/SOHO device implementing NAT for IPv4 and ++# anycasted 6to4 (RFC 3068) for IPv6. ++# ++# When the user attempts to connect to a server whose hostname has both IPv4 ++# and IPv6 addresses published in DNS, an IPv6 connection using the ++# transitional 6to4 service will be preferred. This happens because the scope ++# comparsion fails for IPv4, the RFC 1918 addresses are assumed to have ++# site-local scope, which is smaller than the global scope of the server's IPv4 ++# address. For IPv6, both the server's and the client's (6to4) address have ++# global scope. ++# ++# Unfortunately, the operational reality is that a transitional technique such ++# as 6to4 is much less reliable than IPv4. The relay routers might be located ++# far away from the optimal IPv4 path, and thus cause a significant latency ++# increase, or they might not even work optimally (they're usually operated by ++# voulenteering third parties on a best-effort basis), and finally some ISPs ++# simply filter away all proto-41 traffic. Transitional techniques are useful ++# to give end users with IPv4-only service a real shot at accessing IPv6-only ++# content, but it should never be preferred over IPv4 service when accessing ++# dual-stacked content. ++# ++# RFC 3484 even acknowledges this, by saying to "«avoid the use of transitional ++# addresses when native addresses are available"». ++# ++# An IETF draft document which describes the problem in a much more detailed ++# manner than I have is available here: ++# ++# http://tools.ietf.org/html/draft-denis-v6ops-nat-addrsel-00 ++# ++# There's also an IETF draft that aims to revise RFC 3484 in order to fix this ++# problem (amongst others): ++# ++# http://tools.ietf.org/html/draft-arifumi-6man-rfc3484-revise-02 ++# ++# Quoting from this document: ++# ++# > 2.7. To change private IPv4 address scope ++# > ++# > As detailed in Remi's draft [I-D.denis-v6ops-nat-addrsel], when a ++# > host is in NATed site, and has a private IPv4 address and ++# > transitional addresses like 6to4 and Teredo, the host chooses ++# > transitional IPv6 address to access most of the dual-stack servers. ++# > ++# > This is because private IPv4 address is defined to be site-local ++# > scope, and as in RFC 3484, the scope matching rules (Rule 2) set ++# > lower priority for private IPv4 address. ++# > ++# > By changing the address scope of private IPv4 address to global, this ++# > problem can be solved. ++ ++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 new file mode 100644 index 0000000..adb6e9d --- /dev/null +++ b/glibc-getnprocs.diff @@ -0,0 +1,148 @@ +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 new file mode 100644 index 0000000..a95937d --- /dev/null +++ b/glibc-memchr-ia64.diff @@ -0,0 +1,39 @@ +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-ppc64-vdso-time.diff b/glibc-ppc64-vdso-time.diff new file mode 100644 index 0000000..bba82b6 --- /dev/null +++ b/glibc-ppc64-vdso-time.diff @@ -0,0 +1,28 @@ +2010-03-04 Carlos Eduardo Seo + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/time.c: New file. + +Index: src/sysdeps/unix/sysv/linux/powerpc/powerpc64/time.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ src/sysdeps/unix/sysv/linux/powerpc/powerpc64/time.c 2010-03-04 20:02:23.000000000 -0300 +@@ -0,0 +1,19 @@ ++/* Copyright (C) 2010 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff new file mode 100644 index 0000000..0011838 --- /dev/null +++ b/glibc-resolv-reload.diff @@ -0,0 +1,124 @@ +From libc-alpha-return-22754-pasky=ucw.cz@sourceware.org Tue Mar 16 00:47:00 2010 +Return-Path: +X-Original-To: pasky@pasky.or.cz +Delivered-To: pasky@pasky.or.cz +Received: from nikam.ms.mff.cuni.cz (nikam-dmz.ms.mff.cuni.cz [195.113.20.16]) + by machine.or.cz (Postfix) with ESMTPS id C1B8586202A + for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET) +Received: by nikam.ms.mff.cuni.cz (Postfix) + id 9CDEC9AC7A4; Tue, 16 Mar 2010 00:47:00 +0100 (CET) +Delivered-To: pasky@kam.mff.cuni.cz +Received: from jabberwock.ucw.cz (jabberwock.ucw.cz [89.250.246.4]) + by nikam.ms.mff.cuni.cz (Postfix) with ESMTP id 99F0E9AC77B + for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET) +Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) + by jabberwock.ucw.cz (Postfix) with SMTP id 14E1ACF040 + for ; Tue, 16 Mar 2010 00:46:59 +0100 (CET) +Received: (qmail 18956 invoked by alias); 15 Mar 2010 23:46:58 -0000 +Delivered-To: moderator for libc-alpha@sourceware.org +Received: (qmail 15843 invoked by uid 22791); 15 Mar 2010 17:23:15 -0000 +X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 + tests=BAYES_00 +X-Spam-Check-By: sourceware.org +Message-ID: <4B9E6CFA.7020002@riot.org> +Date: Mon, 15 Mar 2010 18:23:06 +0100 +From: Sebastian Kienzl +User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) +MIME-Version: 1.0 +To: libc-alpha@sourceware.org +Subject: Reloading of /etc/resolv.conf +Content-Type: multipart/mixed; + boundary="------------060407080409020101000002" +Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm +Precedence: bulk +List-Id: +List-Unsubscribe: +List-Subscribe: +List-Archive: +List-Post: +List-Help: , +Sender: libc-alpha-owner@sourceware.org +Delivered-To: mailing list libc-alpha@sourceware.org + +This is a multi-part message in MIME format. +--------------060407080409020101000002 +Content-Type: text/plain; charset=ISO-8859-15; format=flowed +Content-Transfer-Encoding: 7bit + +Hello! + +There's a patch in the wild against the resolver which makes it reload +/etc/resolv.conf on change, see +http://sources.redhat.com/ml/libc-alpha/2004-09/msg00130.html + +However, this patch actually doesn't work properly for multi-threaded +programs, as only one thread will notice the change and refresh its +resolver state. I've attached a proper patch. It's for 2.5 but it should +work with current versions, too. + +Even though the patch may not be interesting for upstream, I decided to +let you know about this problem, since the mentioned patch seems to be +used by at least Debian and Ubuntu. + +Regards, +Seb. + + + +--------------060407080409020101000002 +Content-Type: text/plain; + name="glibc-2.5-resolvconf.patch" +Content-Transfer-Encoding: 7bit +Content-Disposition: inline; + filename="glibc-2.5-resolvconf.patch" + +diff -ur resolv.orig/res_libc.c resolv/res_libc.c +--- resolv.orig/res_libc.c 2005-11-01 01:06:40.000000000 +0100 ++++ resolv/res_libc.c 2010-03-15 14:13:18.000000000 +0100 +@@ -22,7 +22,7 @@ + #include + #include + #include +- ++#include + + /* The following bit is copied from res_data.c (where it is #ifdef'ed + out) since res_init() should go into libc.so but the rest of that +@@ -89,12 +89,34 @@ + return (__res_vinit(&_res, 1)); + } + ++static time_t resconf_mtime; ++__libc_lock_define_initialized (static, resconf_mtime_lock); ++ ++/* Check if the modification time of resolv.conf has changed. ++ If so, have all threads re-initialize their resolver states */ ++static void ++__res_check_resconf (void) ++{ ++ struct stat statbuf; ++ if (stat (_PATH_RESCONF, &statbuf) == 0) { ++ __libc_lock_lock (resconf_mtime_lock); ++ if (statbuf.st_mtime != resconf_mtime) { ++ resconf_mtime = statbuf.st_mtime; ++ atomicinclock (lock); ++ atomicinc (__res_initstamp); ++ atomicincunlock (lock); ++ } ++ __libc_lock_unlock (resconf_mtime_lock); ++ } ++} ++ + /* Initialize resp if RES_INIT is not yet set or if res_init in some other + thread requested re-initializing. */ + int + __res_maybe_init (res_state resp, int preinit) + { + if (resp->options & RES_INIT) { ++ __res_check_resconf (); + if (__res_initstamp != resp->_u._ext.initstamp) { + if (resp->nscount > 0) + __res_iclose (resp, true); + + +--------------060407080409020101000002-- diff --git a/glibc-sap-captialsharps.diff b/glibc-sap-captialsharps.diff new file mode 100644 index 0000000..b0b9e6d --- /dev/null +++ b/glibc-sap-captialsharps.diff @@ -0,0 +1,11 @@ +--- 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-statfs64-ia64.diff b/glibc-statfs64-ia64.diff new file mode 100644 index 0000000..1804a68 --- /dev/null +++ b/glibc-statfs64-ia64.diff @@ -0,0 +1,12 @@ +--- sysdeps/unix/sysv/linux/statfs64.c~ 2010-01-27 02:47:32.884315000 +0100 ++++ sysdeps/unix/sysv/linux/statfs64.c 2010-01-27 02:49:17.943657000 +0100 +@@ -24,6 +24,9 @@ + #include + #include + ++/* On IA64, ia32el does not provide wrapper for statfs64() for some reason. ++ Force the compatibility code to get compiled in. [bnc#534828] */ ++#undef __ASSUME_STATFS64 + + # if __ASSUME_STATFS64 == 0 + int __no_statfs64 attribute_hidden; diff --git a/glibc-utf-s390.diff b/glibc-utf-s390.diff new file mode 100644 index 0000000..83caab0 --- /dev/null +++ b/glibc-utf-s390.diff @@ -0,0 +1,84 @@ +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 new file mode 100644 index 0000000..b884029 --- /dev/null +++ b/glibc-valloc-assert.diff @@ -0,0 +1,32 @@ +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 de4e885..4fd017f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,8 +1,105 @@ +------------------------------------------------------------------- +Mon Apr 26 22:09:40 CEST 2010 - pbaudis@suse.cz + +- Remove stale resolv.dynamic.diff patch file + +------------------------------------------------------------------- +Thu Apr 22 08:30:50 CEST 2010 - meissner@suse.de + +- for powerpc32 build a generic library and also a power4 library + to allow older 32bit powerpc to work. bnc#596271 + +------------------------------------------------------------------- +Tue Apr 20 13:15:19 CEST 2010 - pbaudis@suse.cz + +- Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] + +------------------------------------------------------------------- +Wed Mar 24 13:04:12 CET 2010 - pbaudis@suse.cz + +- Fix get_nprocs() large CPU count handling [bnc#590665] + +------------------------------------------------------------------- +Tue Mar 23 15:09:09 CET 2010 - pbaudis@suse.cz + +- Fix interference of STB_GNU_UNIQUE and prelink [bnc#586979] +- Make time() use VDSO on PPC64 [bnc#590216] +- Make pthread_cond_timedway() use VDSO on PPC64 [bnc#590517] + +------------------------------------------------------------------- +Thu Mar 18 14:45:34 CET 2010 - pbaudis@suse.cz + +- Add PreReq for cat to glibc-locale [bnc#588997] + +------------------------------------------------------------------- +Thu Mar 18 14:29:42 CET 2010 - pbaudis@suse.cz + +- Fix /etc/resolv.conf change detection for multi-threaded applications + (by Sebastian Kienzl) + +------------------------------------------------------------------- +Fri Mar 5 12:59:44 CET 2010 - pbaudis@suse.cz + +- Fix spurious mapping from lowercase sharp s to uppercase sharp S + which is less standard and causes problems for ISO encodings [bnc#541773] + +------------------------------------------------------------------- +Mon Mar 1 18:55:37 CET 2010 - pbaudis@suse.cz + +- Fix spurious overflow messages on some R_X86_64_PC32 relocations, + patch by Richard Guenther [bnc#583019] + +------------------------------------------------------------------- +Wed Feb 24 11:53:41 CET 2010 - pbaudis@suse.cz + +- Fix assertion failures within valloc(), patch by Michael Matz + [bnc#581391] + +------------------------------------------------------------------- +Wed Feb 17 12:02:24 CET 2010 - pbaudis@suse.cz + +- S/390: Disable two UTF conversion instructions due to the hardware + mishandling some error conditions in the input stream [bnc#579871] + +------------------------------------------------------------------- +Mon Feb 15 22:34:29 CET 2010 - pbaudis@suse.cz + +- Further fix previous power5 fix + ------------------------------------------------------------------- Sun Feb 14 15:33:33 CET 2010 - rguenther@suse.de - avoid spurious differences in nscd on rebuilds. +------------------------------------------------------------------- +Thu Feb 11 21:36:32 CET 2010 - pbaudis@suse.cz + +- Fix another upgrade problem on power5 and older - correctly remove + the old optimized libraries; found out by matz@suse.de [bnc#563978] + +------------------------------------------------------------------- +Fri Feb 5 21:07:54 CET 2010 - pbaudis@suse.cz + +- Final fix for memchr() overflow on IA64 provided by upstream + [bnc#567516] + +------------------------------------------------------------------- +Thu Jan 28 17:11:59 CET 2010 - pbaudis@suse.cz + +- Fix another memchr() overflow on IA64; another known one still + remains a mystery [bnc#567516] + +------------------------------------------------------------------- +Wed Jan 27 02:49:46 CET 2010 - pbaudis@suse.cz + +- Remove now-obsolete powerpc-cpu addon usage [bnc#572819] +- Fix statfs64() on IA64 in 32-bit mode ia32el [bnc#534828] + +------------------------------------------------------------------- +Tue Jan 26 03:33:38 CET 2010 - pbaudis@suse.cz + +- Fix upgrade from previous distributions on power5 and older [bnc#563978] + ------------------------------------------------------------------- Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de diff --git a/glibc.spec b/glibc.spec index 663edc5..842560c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -28,8 +28,15 @@ BuildRequires: libselinux-devel %define enable_stackguard_randomization 1 %ifarch ppc ppc64 %define optimize_power 1 + %ifarch ppc + %define powerpc_optimize_base power3 + %define powerpc_optimize_tune power3 + %define powerpc_optimize_cpu_power4 1 + %else %define powerpc_optimize_base power4 %define powerpc_optimize_tune power5 + %define powerpc_optimize_cpu_power4 0 + %endif # We are not building Power CPU specific optimizations for openSUSE. %define powerpc_optimize_cpu_power6 0 %define powerpc_optimize_cpu_power7 0 @@ -37,11 +44,12 @@ BuildRequires: libselinux-devel %else %define optimize_power 0 %define powerpc_optimize_base 0 + %define powerpc_optimize_cpu_power4 0 %define powerpc_optimize_cpu_power6 0 %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +License: GPLv2+ Summary: Standard Shared Libraries (from the GNU C Library) Group: System/Libraries Obsoletes: ngpt <= 2.2.2 ngpt-devel <= 2.2.2 @@ -56,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.1 -Release: 2 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -70,7 +78,6 @@ Source9: nscd.init Source10: bindresvport.blacklist Source11: ctype_b.c Source12: glibc_post_upgrade.c -Source14: powerpc-cpu.tar.bz2 Source15: glibc.rpmlintrc Source16: baselibs.conf %if %_target_cpu == "i686" @@ -82,7 +89,7 @@ NoSource: 0 Patch0: glibc-2.3-SuSE.diff Patch1: glibc-2.3.90-noversion.diff Patch2: glibc-2.3.90-fnmatch.diff -Patch3: resolv.dynamic.diff +Patch3: glibc-resolv-reload.diff Patch4: glibc-2.3.locales.diff.bz2 Patch5: crypt_blowfish-1.0-suse.diff Patch7: glibc-version.diff @@ -106,7 +113,6 @@ Patch24: glibc-2.3.3-nscd-db-path.diff Patch25: glibc-2.3.5-nscd-zeronegtimeout.diff Patch26: glibc-2.3.90-langpackdir.diff Patch27: glibc-nptl-2.4-nofixsyscallnr.diff -Patch29: glibc-2.5-ppc-llrintl.diff Patch30: glibc-2.6-configure.diff Patch31: glibc-2.2-sunrpc.diff Patch32: glibc-2.8-getconf.diff @@ -125,6 +131,17 @@ Patch46: glibc-2.10.99-ia64-include.diff 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 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 @@ -184,6 +201,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Locale Data for Localized Programs Group: System/Libraries Requires: glibc = %{version} +PreReq: /bin/cat AutoReqProv: on # bug437293 %ifarch ppc64 @@ -278,10 +296,10 @@ versions of your software. # add glibc-ports for arm # this is CURRENTLY BROKEN; ARM-interested contributors need to provide # new tested glibc-ports source -%setup -n glibc-%{version} -q -a 2 -a 3 -a 4 -a 14 +%setup -n glibc-%{version} -q -a 2 -a 3 -a 4 %else # any other leave out ports -%setup -n glibc-%{version} -q -a 3 -a 4 -a 14 +%setup -n glibc-%{version} -q -a 3 -a 4 %endif %patch0 # libNoVersion part is only active on ix86 @@ -320,7 +338,6 @@ touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch26 %patch27 -%patch29 %patch30 %patch31 %patch32 @@ -339,6 +356,17 @@ rm nscd/s-stamp %patch47 %patch48 -p1 %patch50 -p1 +%patch54 +%patch55 -p1 +%patch56 -p1 +%patch57 -p1 +%patch58 +%patch59 +%patch60 -p1 +%patch61 -p1 +%patch62 -p1 +%patch63 -p1 +%patch64 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -364,6 +392,7 @@ rm nscd/s-stamp # rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch + ####################################################################### ### ### BUILD @@ -441,6 +470,7 @@ PARALLEL="%{?jobs:-j%jobs}" # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif + configure_and_build_glibc() { local dirname="$1"; shift local cflags="$1"; shift @@ -464,6 +494,7 @@ configure_and_build_glibc() { make $PARALLEL cd .. } + %if !%{optimize_power} # # Build base glibc @@ -475,9 +506,17 @@ configure_and_build_glibc() { # # First, base build: pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}" - configure_and_build_glibc base "$pBuildFlags" "$add_ons,powerpc-cpu" --with-cpu=%{powerpc_optimize_base} + %if %{powerpc_optimize_base} != "power3" + configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} + %else + # Use no default CPU + configure_and_build_glibc base "$pBuildFlags" "$add_ons" + %endif # Then other power variants: for pcpu in \ + %if %{powerpc_optimize_cpu_power4} + power4 \ + %endif %if %{powerpc_optimize_cpu_power6} power6 \ %endif @@ -485,7 +524,7 @@ configure_and_build_glibc() { power7 \ %endif ; do - configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons,powerpc-cpu" \ + configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \ --with-cpu=$pcpu --disable-runbinaries done # Eventually, special Cell variant: @@ -493,17 +532,22 @@ configure_and_build_glibc() { configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" --disable-runbinaries %endif %endif # optimize_power + # # Build html documentation # make -C cc-base html + # # Build glibc_post_upgrade binary # $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ -Lcc-base -Bcc-base/csu \ - '-DREMOVE_TLS_DIRS' \ + '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ %ifarch ppc ppc64 + %if !%{powerpc_optimize_cpu_power4} + '-DREMOVE_PPC_OPTIMIZE_POWER4' \ + %endif %if !%{powerpc_optimize_cpu_power6} '-DREMOVE_PPC_OPTIMIZE_POWER6' \ %endif @@ -515,6 +559,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + ####################################################################### ### ### CHECK @@ -536,6 +581,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif %endif make -C cc-base check-abi || echo check-abi failed + ####################################################################### ### ### INSTALL @@ -553,12 +599,15 @@ make -C cc-base check-abi || echo check-abi failed # debugging tools currently require these sections directly inside the main # files - specifically valgrind and PurifyPlus. export STRIP_KEEP_SYMTAB=*.so* + # Make sure we will create the gconv-modules.cache mkdir -p $RPM_BUILD_ROOT%{_libdir}/gconv touch $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache + # Install base glibc # Do not install in parallel, timezone Makefile will fail make install_root=$RPM_BUILD_ROOT install -C cc-base + # Install power-optimized glibc %if %{optimize_power} # run ldconfig to create the library symlinks @@ -566,6 +615,9 @@ make install_root=$RPM_BUILD_ROOT install -C cc-base # it may contain instructions not suitable for the cpu on the builhost my_ldconfig=/sbin/ldconfig for pcpu in \ + %if %{powerpc_optimize_cpu_power4} + power4 \ + %endif %if %{powerpc_optimize_cpu_power6} power6 \ %endif @@ -597,6 +649,7 @@ make install_root=$RPM_BUILD_ROOT install -C cc-base fi %endif %endif # optimize_power + # Install locales %if %{build_locales} # Do not install locales in parallel! @@ -606,31 +659,43 @@ make install_root=$RPM_BUILD_ROOT install -C cc-base %endif # Create file list for glibc-locale package %{find_lang} libc + # Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete + # NPTL is not usable outside of glibc, so include # the generic one (RH#162634) cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h + %ifarch s390x # s390x is different ... mkdir $RPM_BUILD_ROOT/lib ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif + # Miscelanna: + install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} + install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist $RPM_BUILD_ROOT/etc install -m 644 $RPM_SOURCE_DIR/nsswitch.conf $RPM_BUILD_ROOT/etc install -m 644 posix/gai.conf $RPM_BUILD_ROOT/etc + mkdir -p $RPM_BUILD_ROOT/etc/default install -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/ + mkdir -p $RPM_BUILD_ROOT/usr/include/resolv install -m 0644 resolv/mapv4v6addr.h $RPM_BUILD_ROOT/usr/include/resolv/ install -m 0644 resolv/mapv4v6hostent.h $RPM_BUILD_ROOT/usr/include/resolv/ + mkdir -p $RPM_BUILD_ROOT/usr/share/doc/glibc cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc + cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. + # nscd tools: + cp nscd/nscd.conf $RPM_BUILD_ROOT/etc mkdir -p $RPM_BUILD_ROOT/etc/apparmor.d cp $RPM_SOURCE_DIR/usr.sbin.nscd $RPM_BUILD_ROOT/etc/apparmor.d @@ -640,6 +705,7 @@ ln -sf /etc/init.d/nscd $RPM_BUILD_ROOT/usr/sbin/rcnscd mkdir -p $RPM_BUILD_ROOT/var/run/nscd touch $RPM_BUILD_ROOT/var/run/nscd/{passwd,group,hosts} touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} + # # Create ld.so.conf # @@ -679,23 +745,28 @@ mkdir -p $RPM_BUILD_ROOT/var/cache/ldconfig # Empty the ld.so.cache: rm -f $RPM_BUILD_ROOT/etc/ld.so.cache touch $RPM_BUILD_ROOT/etc/ld.so.cache + # libNoVersion belongs only to glibc-obsolete: %ifarch %ix86 rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion* mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion mv -v $RPM_BUILD_ROOT/%{_lib}/libNoVersion* $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion/ %endif + # Don't look at ldd! We don't wish a /bin/sh requires chmod 644 $RPM_BUILD_ROOT/usr/bin/ldd + # Remove timezone data, now coming in standalone package: for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do rm -f $RPM_BUILD_ROOT/$i done rm -rf $RPM_BUILD_ROOT/usr/share/zoneinfo + # Remove the buildflags tracking section and the build-id for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_nonshared.a; do objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done + ####################################################################### ### ### ... @@ -732,11 +803,13 @@ done %restart_on_update nscd %insserv_cleanup exit 0 + ####################################################################### ### ### FILES ### ####################################################################### + # glibc %files @@ -833,6 +906,9 @@ exit 0 /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 + %if %{powerpc_optimize_cpu_power4} + %{optimized_libs power4} + %endif %if %{powerpc_optimize_cpu_power6} %{optimized_libs power6} %{optimized_libs power6x} diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index a479c79..ebd1e6e 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -34,6 +34,9 @@ main (void) char initpath[256]; struct stat root, init_root; + /* First, get rid of platform-optimized libraries. We remove any we have + ever built, since otherwise we might end up using some old leftover + libraries when new ones aren't installed in their place anymore. */ #ifdef REMOVE_TLS_DIRS const char *library[] = {"libc.so.6", "libc.so.6.1", "libm.so.6", "libm.so.6.1", "librt.so.1", "librtkaio.so.1", @@ -43,6 +46,14 @@ main (void) "/lib/i686/", #endif #ifdef __powerpc64__ +#ifdef REMOVE_PPC_OPTIMIZE_POWER4 + "/lib64/power4/", + "/lib64/ppc970/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER5 + "/lib64/power5/", + "/lib64/power5+/", +#endif #ifdef REMOVE_PPC_OPTIMIZE_POWER6 "/lib64/power6/", "/lib64/power6x/", @@ -55,6 +66,14 @@ main (void) #endif #endif /* __powerpc64__ */ #ifdef __powerpc__ +#ifdef REMOVE_PPC_OPTIMIZE_POWER4 + "/lib/power4/", + "/lib/ppc970/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER5 + "/lib/power5/", + "/lib/power5+/", +#endif #ifdef REMOVE_PPC_OPTIMIZE_POWER6 "/lib/power6/", "/lib/power6x/", diff --git a/ld-prelink-unique.diff b/ld-prelink-unique.diff new file mode 100644 index 0000000..12302db --- /dev/null +++ b/ld-prelink-unique.diff @@ -0,0 +1,57 @@ +2010-03-23 Jakub Jelinek + + * elf/dl-lookup.c (do_lookup_x): If tab->entries is NULL, + but tab->size != 0, just unlock and goto success, without + allocating anything or entering anything into the hash table. + (_dl_debug_bindings): Temporarily set tab->entries to NULL + around do_lookup_x in undef_map->l_local_scope[0]. + +--- libc/elf/dl-lookup.c.jj 2009-12-16 00:10:37.000000000 +0100 ++++ libc/elf/dl-lookup.c 2010-03-23 11:03:45.850560036 +0100 +@@ -1,5 +1,6 @@ + /* Look up a symbol in the loaded objects. +- Copyright (C) 1995-2005, 2006, 2007, 2009 Free Software Foundation, Inc. ++ Copyright (C) 1995-2005, 2006, 2007, 2009, 2010 ++ 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 +@@ -414,6 +415,20 @@ do_lookup_x (const char *undef_name, uin + assert (!RTLD_CHECK_FOREIGN_CALL); + #endif + ++#ifdef SHARED ++ /* If tab->entries is NULL, but tab->size is not, it means ++ this is the second, conflict finding, lookup for ++ LD_TRACE_PRELINKING in _dl_debug_bindings. Don't ++ allocate anything and don't enter anything into the ++ hash table. */ ++ if (__builtin_expect (tab->size, 0)) ++ { ++ assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK); ++ __rtld_lock_unlock_recursive (tab->lock); ++ goto success; ++ } ++#endif ++ + #define INITIAL_NUNIQUE_SYM_TABLE 31 + size = INITIAL_NUNIQUE_SYM_TABLE; + entries = calloc (sizeof (struct unique_sym), size); +@@ -917,13 +932,17 @@ _dl_debug_bindings (const char *undef_na + { + const uint_fast32_t new_hash = dl_new_hash (undef_name); + unsigned long int old_hash = 0xffffffff; ++ struct unique_sym *saved_entries ++ = GL(dl_ns)[LM_ID_BASE]._ns_unique_sym_table.entries; + ++ GL(dl_ns)[LM_ID_BASE]._ns_unique_sym_table.entries = NULL; + do_lookup_x (undef_name, new_hash, &old_hash, *ref, &val, + undef_map->l_local_scope[0], 0, version, 0, NULL, + type_class, undef_map); + + if (val.s != value->s || val.m != value->m) + conflict = 1; ++ GL(dl_ns)[LM_ID_BASE]._ns_unique_sym_table.entries = saved_entries; + } + + if (value->s) diff --git a/minmem b/minmem deleted file mode 100644 index 827ecbf..0000000 --- a/minmem +++ /dev/null @@ -1 +0,0 @@ -500000 diff --git a/nptl-ppc64-vdso-timedwait.diff b/nptl-ppc64-vdso-timedwait.diff new file mode 100644 index 0000000..b41cb03 --- /dev/null +++ b/nptl-ppc64-vdso-timedwait.diff @@ -0,0 +1,29 @@ +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); diff --git a/powerpc-cpu.tar.bz2 b/powerpc-cpu.tar.bz2 deleted file mode 100644 index 715978c..0000000 --- a/powerpc-cpu.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c59f80e38c9f6ad339d72bbfbc454364659686567b7689d33483b9cb4a12bf2a -size 36248 diff --git a/resolv.dynamic.diff b/resolv.dynamic.diff deleted file mode 100644 index f9c45e7..0000000 --- a/resolv.dynamic.diff +++ /dev/null @@ -1,33 +0,0 @@ -Index: resolv/res_libc.c -=================================================================== ---- resolv/res_libc.c.orig -+++ resolv/res_libc.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - - /* The following bit is copied from res_data.c (where it is #ifdef'ed -@@ -95,6 +96,20 @@ int - __res_maybe_init (res_state resp, int preinit) - { - if (resp->options & RES_INIT) { -+ static time_t last_mtime, last_check; -+ time_t now; -+ struct stat statbuf; -+ -+ time (&now); -+ if (now != last_check) { -+ last_check = now; -+ if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) { -+ last_mtime = statbuf.st_mtime; -+ atomicinclock (lock); -+ atomicinc (__res_initstamp); -+ atomicincunlock (lock); -+ } -+ } - if (__res_initstamp != resp->_u._ext.initstamp) { - if (resp->nscount > 0) - __res_iclose (resp, true); From bab6f932e03139a46b7bb39efbb048bf5eb6e831b01e2e0a4bb6e70bbe280662 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Wed, 5 May 2010 19:21:50 +0000 Subject: [PATCH 018/204] Accepting request 39346 from Base:System Copy from Base:System/glibc based on submit request 39346 from user prusnak OBS-URL: https://build.opensuse.org/request/show/39346 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=19 --- glibc.changes | 5 +++++ glibc.spec | 4 ++-- nscd.init | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/glibc.changes b/glibc.changes index 4fd017f..ab18918 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue May 4 05:47:41 UTC 2010 - aj@suse.de + +- Handle /var/run on tmpfs + ------------------------------------------------------------------- Mon Apr 26 22:09:40 CEST 2010 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 842560c..bce1e38 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.1 -Release: 3 +Release: 4 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -1017,7 +1017,7 @@ exit 0 %config /etc/init.d/nscd /usr/sbin/nscd /usr/sbin/rcnscd -%dir %attr(0755,root,root) /var/run/nscd +%dir %attr(0755,root,root) %ghost /var/run/nscd %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid %attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd diff --git a/nscd.init b/nscd.init index 1316e90..52c960e 100644 --- a/nscd.init +++ b/nscd.init @@ -66,6 +66,8 @@ rc_reset case "$1" in start) echo -n "Starting Name Service Cache Daemon" + # /var/run might be on tmpfs + [ -d /var/run/nscd ] || mkdir /var/run/nscd /sbin/startproc -p $NSCD_PID $NSCD_BIN rc_status -v ;; From 9f84601fb4c8bf3cb0be6a7d4acffbcf8b6350584779f7b9392862ca9dba4f78 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 25 May 2010 08:18:17 +0000 Subject: [PATCH 019/204] Accepting request 40411 from Base:System Copy from Base:System/glibc based on submit request 40411 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/40411 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=20 --- glibc-2.11.1-11c19d374bd4.tar.bz2 | 3 - glibc-2.11.2-f2020c64596a.tar.bz2 | 3 + glibc-dl-x86-64-pc32.diff | 11 --- glibc-gai-private4.diff | 22 +++-- glibc-getnprocs.diff | 148 ------------------------------ glibc-memchr-ia64.diff | 39 -------- glibc-resolv-mdnshint.diff | 19 ++++ glibc-sap-captialsharps.diff | 11 --- glibc-utf-s390.diff | 84 ----------------- glibc-valloc-assert.diff | 32 ------- glibc.changes | 20 ++++ glibc.spec | 24 ++--- nptl-ppc64-vdso-timedwait.diff | 29 ------ 13 files changed, 60 insertions(+), 385 deletions(-) delete mode 100644 glibc-2.11.1-11c19d374bd4.tar.bz2 create mode 100644 glibc-2.11.2-f2020c64596a.tar.bz2 delete mode 100644 glibc-dl-x86-64-pc32.diff delete mode 100644 glibc-getnprocs.diff delete mode 100644 glibc-memchr-ia64.diff create mode 100644 glibc-resolv-mdnshint.diff delete mode 100644 glibc-sap-captialsharps.diff delete mode 100644 glibc-utf-s390.diff delete mode 100644 glibc-valloc-assert.diff delete mode 100644 nptl-ppc64-vdso-timedwait.diff 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); From 26780883fc9871b30cefc0e7d45e03bd377cd595aae457194a8364d70faca76d Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 18 Jun 2010 14:25:27 +0000 Subject: [PATCH 020/204] Accepting request 41362 from Base:System Copy from Base:System/glibc based on submit request 41362 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/41362 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=21 --- glibc-2.11.2-21580967038a.tar.bz2 | 3 +++ glibc-2.11.2-f2020c64596a.tar.bz2 | 3 --- glibc-ldconfigr-aux.diff | 37 +++++++++++++++++++++++++++++++ glibc.changes | 13 +++++++++++ glibc.spec | 6 +++-- 5 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 glibc-2.11.2-21580967038a.tar.bz2 delete mode 100644 glibc-2.11.2-f2020c64596a.tar.bz2 create mode 100644 glibc-ldconfigr-aux.diff diff --git a/glibc-2.11.2-21580967038a.tar.bz2 b/glibc-2.11.2-21580967038a.tar.bz2 new file mode 100644 index 0000000..02c7b67 --- /dev/null +++ b/glibc-2.11.2-21580967038a.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b0467d31d53dcb8e9920efa51c338e2ef1bb597ab7d2ed14b9a16103ffd2622 +size 15670351 diff --git a/glibc-2.11.2-f2020c64596a.tar.bz2 b/glibc-2.11.2-f2020c64596a.tar.bz2 deleted file mode 100644 index fbea893..0000000 --- a/glibc-2.11.2-f2020c64596a.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:badb11c8eef452ee7acf9842fb71daf46c96426dd8ce49f71b2c364c6e600082 -size 15675556 diff --git a/glibc-ldconfigr-aux.diff b/glibc-ldconfigr-aux.diff new file mode 100644 index 0000000..bcce030 --- /dev/null +++ b/glibc-ldconfigr-aux.diff @@ -0,0 +1,37 @@ +2010-05-31 Petr Baudis + + * elf/ldconfig.c: Allow aux_cache_file open()ing to fail silently + even in the chroot mode. + + +diff --git a/elf/ldconfig.c b/elf/ldconfig.c +index 6e71b09..6ba8e07 100644 +--- a/elf/ldconfig.c ++++ b/elf/ldconfig.c +@@ -1359,14 +1359,9 @@ main (int argc, char **argv) + + const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; + if (opt_chroot) +- { +- aux_cache_file = chroot_canon (opt_chroot, aux_cache_file); +- if (aux_cache_file == NULL) +- error (EXIT_FAILURE, errno, _("Can't open cache file %s\n"), +- _PATH_LDCONFIG_AUX_CACHE); +- } ++ aux_cache_file = chroot_canon (opt_chroot, aux_cache_file); + +- if (! opt_ignore_aux_cache) ++ if (! opt_ignore_aux_cache && aux_cache_file) + load_aux_cache (aux_cache_file); + else + init_aux_cache (); +@@ -1376,7 +1371,8 @@ main (int argc, char **argv) + if (opt_build_cache) + { + save_cache (cache_file); +- save_aux_cache (aux_cache_file); ++ if (aux_cache_file) ++ save_aux_cache (aux_cache_file); + } + + return 0; diff --git a/glibc.changes b/glibc.changes index 2fc6678..2f00e0c 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri Jun 11 15:41:07 CEST 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.2-21580967038a + - Fix buggy x86 CPU family and model check + - Fix sunrpc error condition handling + - Fix crash on unresolved weak symbol reference + +------------------------------------------------------------------- +Tue Jun 1 03:38:28 CEST 2010 - pbaudis@suse.cz + +- Fix ldconfig -r failing on aux cache [bnc#609345] + ------------------------------------------------------------------- Thu May 20 02:19:28 CEST 2010 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 7ccf59c..f1a5f5c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,11 +64,11 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.2 -Release: 1 +Release: 2 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-f2020c64596a.tar.bz2 +Source: glibc-%{version}-21580967038a.tar.bz2 Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -136,6 +136,7 @@ Patch60: ld-prelink-unique.diff Patch61: glibc-ppc64-vdso-time.diff Patch64: glibc-gai-private4.diff Patch65: glibc-resolv-mdnshint.diff +Patch66: glibc-ldconfigr-aux.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 @@ -355,6 +356,7 @@ rm nscd/s-stamp %patch61 -p1 %patch64 %patch65 -p1 +%patch66 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 From d0fc4c37e6f8867f581dbd3091ee56b9a23f3698e06868a51ac28641357fd2b4 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Mon, 19 Jul 2010 11:13:32 +0000 Subject: [PATCH 021/204] Accepting request 43275 from Base:System Copy from Base:System/glibc based on submit request 43275 from user dirkmueller OBS-URL: https://build.opensuse.org/request/show/43275 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=24 --- glibc-nis-initgroups.diff | 39 +++++++++++++++++++++++++++++++++++++++ glibc-sparc64-fxstat.diff | 7 +++++++ glibc.changes | 16 ++++++++++++++++ glibc.spec | 9 +++++++-- 4 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 glibc-nis-initgroups.diff create mode 100644 glibc-sparc64-fxstat.diff diff --git a/glibc-nis-initgroups.diff b/glibc-nis-initgroups.diff new file mode 100644 index 0000000..59ac9c5 --- /dev/null +++ b/glibc-nis-initgroups.diff @@ -0,0 +1,39 @@ +2010-05-31 Petr Baudis + + * nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Fix + initialization of skip_initgroups_dyn. + +diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c +index 07a3b92..de8d95c 100644 +--- a/nis/nss_compat/compat-initgroups.c ++++ b/nis/nss_compat/compat-initgroups.c +@@ -474,18 +474,21 @@ internal_getgrent_r (ent_t *ent, char *buffer, size_t buflen, const char *user, + /* If the selected module does not support getgrent_r or + initgroups_dyn, abort. We cannot find the needed group + entries. */ +- if (nss_getgrent_r == NULL && nss_initgroups_dyn == NULL) ++ if (nss_initgroups_dyn == NULL || nss_getgrgid_r == NULL) ++ { ++ if (nss_setgrent != NULL) ++ { ++ nss_setgrent (1); ++ ent->need_endgrent = true; ++ } ++ ent->skip_initgroups_dyn = true; ++ } ++ ++ if (ent->skip_initgroups_dyn && nss_getgrent_r == NULL) + return NSS_STATUS_UNAVAIL; + + ent->files = false; + +- if (nss_initgroups_dyn == NULL && nss_setgrent != NULL) +- { +- nss_setgrent (1); +- ent->need_endgrent = true; +- } +- ent->skip_initgroups_dyn = true; +- + return getgrent_next_nss (ent, buffer, buflen, user, group, + start, size, groupsp, limit, errnop); + } diff --git a/glibc-sparc64-fxstat.diff b/glibc-sparc64-fxstat.diff new file mode 100644 index 0000000..fa06e5a --- /dev/null +++ b/glibc-sparc64-fxstat.diff @@ -0,0 +1,7 @@ +Index: glibc-2.10.1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c +=================================================================== +--- glibc-2.10.1.orig/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c ++++ glibc-2.10.1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c +@@ -1 +1 @@ +-#include "../../fxstat.c" ++#include "../../i386/fxstat.c" diff --git a/glibc.changes b/glibc.changes index 2f00e0c..89c01c0 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Wed Jul 7 04:12:05 CEST 2010 - pbaudis@suse.cz + +- Fix NIS-compat initgroups routine to work reliably over multiple + invocations [bnc#607064] + +------------------------------------------------------------------- +Thu Jul 1 19:52:56 UTC 2010 - jengelh@medozas.de + +- SPARC: restore fxstat functionality in sparc64 mode + +------------------------------------------------------------------- +Sat Jun 26 10:26:17 UTC 2010 - jengelh@medozas.de + +- Use %_smp_mflags + ------------------------------------------------------------------- Fri Jun 11 15:41:07 CEST 2010 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index f1a5f5c..a50ed77 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.2 -Release: 2 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -137,10 +137,13 @@ Patch61: glibc-ppc64-vdso-time.diff Patch64: glibc-gai-private4.diff Patch65: glibc-resolv-mdnshint.diff Patch66: glibc-ldconfigr-aux.diff +Patch67: glibc-nis-initgroups.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 Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff +# http://sources.redhat.com/bugzilla/show_bug.cgi?id=11155 +Patch600: glibc-sparc64-fxstat.diff %description The GNU C Library provides the most important standard libraries used @@ -357,12 +360,14 @@ rm nscd/s-stamp %patch64 %patch65 -p1 %patch66 -p1 +%patch67 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 %patch502 %patch503 %endif +%patch600 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -409,7 +414,7 @@ BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify= BuildCC="gcc" BuildCCplus="g++" add_ons=",libidn" -PARALLEL="%{?jobs:-j%jobs}" +PARALLEL="%{?_smp_mflags}" # #now overwrite for some architectures # From 56401d058f4b973239348438f87f6519dbfa52df495231a9f9b174493515272b Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 21 Sep 2010 11:02:15 +0000 Subject: [PATCH 022/204] Accepting request 48637 from Base:System Copy from Base:System/glibc based on submit request 48637 from user coolo OBS-URL: https://build.opensuse.org/request/show/48637 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=25 --- glibc-make-3.82.patch | 91 +++++++++++++++++++++++++++++++++++++++++++ glibc.changes | 11 ++++++ glibc.spec | 4 +- 3 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 glibc-make-3.82.patch diff --git a/glibc-make-3.82.patch b/glibc-make-3.82.patch new file mode 100644 index 0000000..702c044 --- /dev/null +++ b/glibc-make-3.82.patch @@ -0,0 +1,91 @@ +From: Andreas Schwab +To: libc-hacker at sourceware dot org +Subject: [PATCH] Work around shortest-stem feature in make 3.82+ + +make 3.82+ no longer selects pattern rules by order, but by shortest +stem, so we need to add more rules to make sure we still get the right +matches. + +Andreas. + +2010-09-09 Andreas Schwab + + * Makeconfig (sysd-rules-patterns): Add rtld-%:rtld-%. + (sysd-rules-targets): Remove duplicates. + * elf/rtld-Rules ($(objpfx)rtld-%.os): Add pattern rules with + rtld-%.$o dependency. + +2010-09-06 Andreas Schwab + + * manual/Makefile: Don't mix pattern rules with normal rules. + +diff --git a/Makeconfig b/Makeconfig +index 9778998..807c1d1 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -966,7 +966,7 @@ endif + # emitted into sysd-rules. A sysdeps Makeconfig fragment can + # add its own special object file prefix to this list with e.g. foo-%:% + # to have foo-*.? compiled from *.? using $(foo-CPPFLAGS). +-sysd-rules-patterns := %:% rtld-%:% m_%:s_% ++sysd-rules-patterns := %:% rtld-%:rtld-% rtld-%:% m_%:s_% + + # Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here. + sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig)) +@@ -975,8 +975,8 @@ include $(sysdep-makeconfigs) + endif + + # Compute just the target patterns. Makeconfig has set sysd-rules-patterns. +-sysd-rules-targets := $(foreach p,$(sysd-rules-patterns),\ +- $(firstword $(subst :, ,$p))) ++sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\ ++ $(firstword $(subst :, ,$p)))) + + endif # Makeconfig not yet included + +diff --git a/elf/rtld-Rules b/elf/rtld-Rules +index 9f31a56..fc225f2 100644 +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -93,6 +93,12 @@ else + # These are the basic compilation rules corresponding to the Makerules ones. + # The sysd-rules generated makefile already defines pattern rules for rtld-% + # targets built from sysdeps source files. ++$(objpfx)rtld-%.os: rtld-%.S $(before-compile) ++ $(compile-command.S) $(rtld-CPPFLAGS) ++$(objpfx)rtld-%.os: rtld-%.s $(before-compile) ++ $(compile-command.s) $(rtld-CPPFLAGS) ++$(objpfx)rtld-%.os: rtld-%.c $(before-compile) ++ $(compile-command.c) $(rtld-CPPFLAGS) + $(objpfx)rtld-%.os: %.S $(before-compile) + $(compile-command.S) $(rtld-CPPFLAGS) + $(objpfx)rtld-%.os: %.s $(before-compile) +@@ -101,6 +107,9 @@ $(objpfx)rtld-%.os: %.c $(before-compile) + $(compile-command.c) $(rtld-CPPFLAGS) + + # The rules for generated source files. ++$(objpfx)rtld-%.os: $(objpfx)rtld-%.S $(before-compile); $(compile-command.S) ++$(objpfx)rtld-%.os: $(objpfx)rtld-%.s $(before-compile); $(compile-command.s) ++$(objpfx)rtld-%.os: $(objpfx)rtld-%.c $(before-compile); $(compile-command.c) + $(objpfx)rtld-%.os: $(objpfx)%.S $(before-compile); $(compile-command.S) + $(objpfx)rtld-%.os: $(objpfx)%.s $(before-compile); $(compile-command.s) + $(objpfx)rtld-%.os: $(objpfx)%.c $(before-compile); $(compile-command.c) +-- +1.7.2.2 + +diff --git a/manual/Makefile b/manual/Makefile +index c5866eb..b1f5fa7 100644 +--- a/manual/Makefile ++++ b/manual/Makefile +@@ -232,7 +232,10 @@ ifdef objpfx + .PHONY: stubs + stubs: $(objpfx)stubs + endif +-$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%: ++$(objpfx)stubs ../po/manual.pot: ++ $(make-target-directory) ++ touch $@ ++$(objpfx)stamp%: + $(make-target-directory) + touch $@ + diff --git a/glibc.changes b/glibc.changes index 89c01c0..d22b858 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Sep 13 14:36:26 UTC 2010 - aj@suse.de + +- Fix build in manual with make 3.82. + +------------------------------------------------------------------- +Sun Sep 12 08:00:57 UTC 2010 - aj@suse.de + +- Work around shortest-stem feature in make 3.82+ (patch + glibc-make-3.82.patch) + ------------------------------------------------------------------- Wed Jul 7 04:12:05 CEST 2010 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index a50ed77..f1db7e6 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.2 -Release: 3 +Release: 6 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -138,6 +138,7 @@ Patch64: glibc-gai-private4.diff Patch65: glibc-resolv-mdnshint.diff Patch66: glibc-ldconfigr-aux.diff Patch67: glibc-nis-initgroups.diff +Patch68: glibc-make-3.82.patch 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 @@ -361,6 +362,7 @@ rm nscd/s-stamp %patch65 -p1 %patch66 -p1 %patch67 -p1 +%patch68 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 From 10d7a88e0bba4707c4b072caad4447858e7051d3e1aa37023c5ad2978c27b902 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Tue, 2 Nov 2010 08:43:04 +0000 Subject: [PATCH 023/204] Accepting request 51937 from Base:System Accepted submit request 51937 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/51937 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=26 --- glibc-2.11.3-audit.diff | 274 ++++++++++++++++++++++++++++++++++++++++ glibc-nscd-hconf.diff | 35 +++++ glibc.changes | 9 ++ glibc.spec | 17 ++- ready | 0 5 files changed, 331 insertions(+), 4 deletions(-) create mode 100644 glibc-2.11.3-audit.diff create mode 100644 glibc-nscd-hconf.diff create mode 100644 ready diff --git a/glibc-2.11.3-audit.diff b/glibc-2.11.3-audit.diff new file mode 100644 index 0000000..ccb3bb9 --- /dev/null +++ b/glibc-2.11.3-audit.diff @@ -0,0 +1,274 @@ +commit 22cd1c9bcf57c5829d65b6da825f7a459d40c9eb +Author: Andreas Schwab +Date: Sun Oct 24 20:40:14 2010 -0400 + + Don't expand DST twice in dl_open + +2010-10-18 Andreas Schwab + + * elf/dl-open.c (dl_open_worker): Don't expand DST here, let + _dl_map_object do it. + +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 754a263..c394b3f 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -221,35 +221,6 @@ dl_open_worker (void *a) + + assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT); + +- /* Maybe we have to expand a DST. */ +- if (__builtin_expect (dst != NULL, 0)) +- { +- size_t len = strlen (file); +- +- /* Determine how much space we need. We have to allocate the +- memory locally. */ +- size_t required = DL_DST_REQUIRED (call_map, file, len, +- _dl_dst_count (dst, 0)); +- +- /* Get space for the new file name. */ +- char *new_file = (char *) alloca (required + 1); +- +- /* Generate the new file name. */ +- _dl_dst_substitute (call_map, file, new_file, 0); +- +- /* If the substitution failed don't try to load. */ +- if (*new_file == '\0') +- _dl_signal_error (0, "dlopen", NULL, +- N_("empty dynamic string token substitution")); +- +- /* Now we have a new file name. */ +- file = new_file; +- +- /* It does not matter whether call_map is set even if we +- computed it only because of the DST. Since the path contains +- a slash the value is not used. See dl-load.c. */ +- } +- + /* Load the named object. */ + struct link_map *new; + args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, + + +commit 8e9f92e9d5d7737afdacf79b76d98c4c42980508 +Author: Andreas Schwab +Date: Sun Oct 24 21:43:15 2010 -0400 + + Require suid bit on audit objects in privileged programs + +2010-10-22 Andreas Schwab + + * include/dlfcn.h (__RTLD_SECURE): Define. + * elf/dl-load.c (_dl_map_object): Remove preloaded parameter. Use + mode & __RTLD_SECURE instead. + (open_path): Rename preloaded parameter to secure. + * sysdeps/generic/ldsodefs.h (_dl_map_object): Adjust declaration. + * elf/dl-open.c (dl_open_worker): Adjust call to _dl_map_object. + * elf/dl-deps.c (openaux): Likewise. + * elf/rtld.c (struct map_args): Remove is_preloaded. + (map_doit): Don't use it. + (dl_main): Likewise. + (do_preload): Use __RTLD_SECURE instead of is_preloaded. + (dlmopen_doit): Add __RTLD_SECURE to mode bits. + +diff --git a/elf/dl-deps.c b/elf/dl-deps.c +index a58de5c..a51fb6e 100644 +--- a/elf/dl-deps.c ++++ b/elf/dl-deps.c +@@ -62,7 +62,7 @@ openaux (void *a) + { + struct openaux_args *args = (struct openaux_args *) a; + +- args->aux = _dl_map_object (args->map, args->name, 0, ++ args->aux = _dl_map_object (args->map, args->name, + (args->map->l_type == lt_executable + ? lt_library : args->map->l_type), + args->trace_mode, args->open_mode, +diff --git a/elf/dl-load.c b/elf/dl-load.c +index a7162eb..aa8738f 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -1812,7 +1812,7 @@ open_verify (const char *name, struct filebuf *fbp, struct link_map *loader, + if MAY_FREE_DIRS is true. */ + + static int +-open_path (const char *name, size_t namelen, int preloaded, ++open_path (const char *name, size_t namelen, int secure, + struct r_search_path_struct *sps, char **realname, + struct filebuf *fbp, struct link_map *loader, int whatcode, + bool *found_other_class) +@@ -1894,7 +1894,7 @@ open_path (const char *name, size_t namelen, int preloaded, + /* Remember whether we found any existing directory. */ + here_any |= this_dir->status[cnt] != nonexisting; + +- if (fd != -1 && __builtin_expect (preloaded, 0) ++ if (fd != -1 && __builtin_expect (secure, 0) + && INTUSE(__libc_enable_secure)) + { + /* This is an extra security effort to make sure nobody can +@@ -1963,7 +1963,7 @@ open_path (const char *name, size_t namelen, int preloaded, + + struct link_map * + internal_function +-_dl_map_object (struct link_map *loader, const char *name, int preloaded, ++_dl_map_object (struct link_map *loader, const char *name, + int type, int trace_mode, int mode, Lmid_t nsid) + { + int fd; +@@ -2067,7 +2067,8 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, + for (l = loader; l; l = l->l_loader) + if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH")) + { +- fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &l->l_rpath_dirs, + &realname, &fb, loader, LA_SER_RUNPATH, + &found_other_class); + if (fd != -1) +@@ -2082,14 +2083,15 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, + && main_map != NULL && main_map->l_type != lt_loaded + && cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH, + "RPATH")) +- fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &main_map->l_rpath_dirs, + &realname, &fb, loader ?: main_map, LA_SER_RUNPATH, + &found_other_class); + } + + /* Try the LD_LIBRARY_PATH environment variable. */ + if (fd == -1 && env_path_list.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &env_path_list, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list, + &realname, &fb, + loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded, + LA_SER_LIBPATH, &found_other_class); +@@ -2098,12 +2100,12 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, + if (fd == -1 && loader != NULL + && cache_rpath (loader, &loader->l_runpath_dirs, + DT_RUNPATH, "RUNPATH")) +- fd = open_path (name, namelen, preloaded, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, + &loader->l_runpath_dirs, &realname, &fb, loader, + LA_SER_RUNPATH, &found_other_class); + + if (fd == -1 +- && (__builtin_expect (! preloaded, 1) ++ && (__builtin_expect (! (mode & __RTLD_SECURE), 1) + || ! INTUSE(__libc_enable_secure))) + { + /* Check the list of libraries in the file /etc/ld.so.cache, +@@ -2169,7 +2171,7 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, + && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL + || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) + && rtld_search_dirs.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &rtld_search_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, + &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); + + /* Add another newline when we are tracing the library loading. */ +diff --git a/elf/dl-open.c b/elf/dl-open.c +index c394b3f..cf8e8cc 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -223,7 +223,7 @@ dl_open_worker (void *a) + + /* Load the named object. */ + struct link_map *new; +- args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, ++ args->map = new = _dl_map_object (call_map, file, lt_loaded, 0, + mode | __RTLD_CALLMAP, args->nsid); + + /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is +diff --git a/elf/rtld.c b/elf/rtld.c +index 5ecc4fe..06b534a 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -589,7 +589,6 @@ struct map_args + /* Argument to map_doit. */ + char *str; + struct link_map *loader; +- int is_preloaded; + int mode; + /* Return value of map_doit. */ + struct link_map *map; +@@ -627,16 +626,17 @@ static void + map_doit (void *a) + { + struct map_args *args = (struct map_args *) a; +- args->map = _dl_map_object (args->loader, args->str, +- args->is_preloaded, lt_library, 0, args->mode, +- LM_ID_BASE); ++ args->map = _dl_map_object (args->loader, args->str, lt_library, 0, ++ args->mode, LM_ID_BASE); + } + + static void + dlmopen_doit (void *a) + { + struct dlmopen_args *args = (struct dlmopen_args *) a; +- args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT, ++ args->map = _dl_open (args->fname, ++ (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT ++ | __RTLD_SECURE), + dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv), + __environ); + } +@@ -806,8 +806,7 @@ do_preload (char *fname, struct link_map *main_map, const char *where) + + args.str = fname; + args.loader = main_map; +- args.is_preloaded = 1; +- args.mode = 0; ++ args.mode = __RTLD_SECURE; + + unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded; + +@@ -1054,7 +1053,6 @@ of this helper program; chances are you did not intend to run this program.\n\ + + args.str = rtld_progname; + args.loader = NULL; +- args.is_preloaded = 0; + args.mode = __RTLD_OPENEXEC; + (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, + &args); +@@ -1066,7 +1064,7 @@ of this helper program; chances are you did not intend to run this program.\n\ + else + { + HP_TIMING_NOW (start); +- _dl_map_object (NULL, rtld_progname, 0, lt_library, 0, ++ _dl_map_object (NULL, rtld_progname, lt_library, 0, + __RTLD_OPENEXEC, LM_ID_BASE); + HP_TIMING_NOW (stop); + +diff --git a/include/dlfcn.h b/include/dlfcn.h +index a67426d..af92483 100644 +--- a/include/dlfcn.h ++++ b/include/dlfcn.h +@@ -9,6 +9,7 @@ + #define __RTLD_OPENEXEC 0x20000000 + #define __RTLD_CALLMAP 0x10000000 + #define __RTLD_AUDIT 0x08000000 ++#define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */ + + #define __LM_ID_CALLER -2 + +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index fcc943b..fa4b6b2 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -824,11 +824,9 @@ extern void _dl_receive_error (receiver_fct fct, void (*operate) (void *), + + /* Open the shared object NAME and map in its segments. + LOADER's DT_RPATH is used in searching for NAME. +- If the object is already opened, returns its existing map. +- For preloaded shared objects PRELOADED is set to a non-zero +- value to allow additional security checks. */ ++ If the object is already opened, returns its existing map. */ + extern struct link_map *_dl_map_object (struct link_map *loader, +- const char *name, int preloaded, ++ const char *name, + int type, int trace_mode, int mode, + Lmid_t nsid) + internal_function attribute_hidden; diff --git a/glibc-nscd-hconf.diff b/glibc-nscd-hconf.diff new file mode 100644 index 0000000..f933559 --- /dev/null +++ b/glibc-nscd-hconf.diff @@ -0,0 +1,35 @@ +diff --git a/nscd/aicache.c b/nscd/aicache.c +index 3cb2208..2e92929 100644 +--- a/nscd/aicache.c ++++ b/nscd/aicache.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "dbg_log.h" + #include "nscd.h" +@@ -103,6 +104,8 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, + + if (__res_maybe_init (&_res, 0) == -1) + no_more = 1; ++ if (!_res_hconf.initialized) ++ _res_hconf_init (); + + /* If we are looking for both IPv4 and IPv6 address we don't want + the lookup functions to automatically promote IPv4 addresses to +diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c +index ed55bec..c79b85a 100644 +--- a/resolv/res_hconf.c ++++ b/resolv/res_hconf.c +@@ -84,7 +84,9 @@ static const struct cmd + }; + + /* Structure containing the state. */ ++#ifndef NOT_IN_libc + struct hconf _res_hconf; ++#endif + + /* Skip white space. */ + static const char * diff --git a/glibc.changes b/glibc.changes index d22b858..4ee76c2 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Oct 27 03:14:37 CEST 2010 - pbaudis@suse.cz + +- Fix missing hconf setup in nscd - this meant `multi on` in + /etc/host.conf was ignored when nscd was used, breaking e.g. + resolving of multi-AF records in /etc/hosts [bnc#572188] +- Fix two LD_AUDIT security vulnerabilities: spurious $ORIGIN expansion + and missing setuid library check when running as setuid [bnc#646960] + ------------------------------------------------------------------- Mon Sep 13 14:36:26 UTC 2010 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index f1db7e6..8be9a44 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.2 -Release: 6 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -138,7 +138,9 @@ Patch64: glibc-gai-private4.diff Patch65: glibc-resolv-mdnshint.diff Patch66: glibc-ldconfigr-aux.diff Patch67: glibc-nis-initgroups.diff -Patch68: glibc-make-3.82.patch +Patch68: glibc-make-3.82.patch +Patch69: glibc-nscd-hconf.diff +Patch70: glibc-2.11.3-audit.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 @@ -363,6 +365,8 @@ rm nscd/s-stamp %patch66 -p1 %patch67 -p1 %patch68 -p1 +%patch69 -p1 +%patch70 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -390,12 +394,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch + ####################################################################### ### ### BUILD ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -557,6 +561,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + ####################################################################### ### ### CHECK @@ -579,6 +584,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed + ####################################################################### ### ### INSTALL @@ -671,6 +677,7 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif + # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -691,6 +698,7 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. + # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -764,6 +772,7 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done + ####################################################################### ### ### ... @@ -801,6 +810,7 @@ done %insserv_cleanup exit 0 + ####################################################################### ### ### FILES @@ -808,7 +818,6 @@ exit 0 ####################################################################### # glibc - %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From 5f82d3c0dd11224659ac41b503904a0fca31714e11a51b8aead2954d0d7f3a42 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 2 Nov 2010 08:43:09 +0000 Subject: [PATCH 024/204] Autobuild autoformatter for 51937 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=27 --- glibc.spec | 13 ++++--------- ready | 0 2 files changed, 4 insertions(+), 9 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index 8be9a44..8d059ef 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.2 -Release: 3 +Release: 7 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -138,7 +138,7 @@ Patch64: glibc-gai-private4.diff Patch65: glibc-resolv-mdnshint.diff Patch66: glibc-ldconfigr-aux.diff Patch67: glibc-nis-initgroups.diff -Patch68: glibc-make-3.82.patch +Patch68: glibc-make-3.82.patch Patch69: glibc-nscd-hconf.diff Patch70: glibc-2.11.3-audit.diff Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff @@ -394,12 +394,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch - ####################################################################### ### ### BUILD ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -561,7 +561,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' - ####################################################################### ### ### CHECK @@ -584,7 +583,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed - ####################################################################### ### ### INSTALL @@ -677,7 +675,6 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif - # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -698,7 +695,6 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. - # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -772,7 +768,6 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done - ####################################################################### ### ### ... @@ -810,7 +805,6 @@ done %insserv_cleanup exit 0 - ####################################################################### ### ### FILES @@ -818,6 +812,7 @@ exit 0 ####################################################################### # glibc + %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From 2b347c7918a6f56dfc7d6af9bc238cafffa50a25c6306dd9e448339cc7330816 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Thu, 18 Nov 2010 15:02:02 +0000 Subject: [PATCH 025/204] Accepting request 53152 from Base:System Accepted submit request 53152 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/53152 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=28 --- glibc-2.11.2-21580967038a.tar.bz2 | 3 - glibc-2.11.2-dd2fde461e30.tar.bz2 | 3 + glibc-2.11.3-audit.diff | 274 ------------------------------ glibc-2.3.90-fnmatch.diff | 58 ------- glibc-fnmatch-multibyte.diff | 92 ++++++++++ glibc-make-3.82.patch | 91 ---------- glibc-nameserver-localhost.diff | 29 ---- glibc.changes | 19 +++ glibc.spec | 30 ++-- ready | 0 10 files changed, 130 insertions(+), 469 deletions(-) delete mode 100644 glibc-2.11.2-21580967038a.tar.bz2 create mode 100644 glibc-2.11.2-dd2fde461e30.tar.bz2 delete mode 100644 glibc-2.11.3-audit.diff delete mode 100644 glibc-2.3.90-fnmatch.diff create mode 100644 glibc-fnmatch-multibyte.diff delete mode 100644 glibc-make-3.82.patch delete mode 100644 glibc-nameserver-localhost.diff create mode 100644 ready diff --git a/glibc-2.11.2-21580967038a.tar.bz2 b/glibc-2.11.2-21580967038a.tar.bz2 deleted file mode 100644 index 02c7b67..0000000 --- a/glibc-2.11.2-21580967038a.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b0467d31d53dcb8e9920efa51c338e2ef1bb597ab7d2ed14b9a16103ffd2622 -size 15670351 diff --git a/glibc-2.11.2-dd2fde461e30.tar.bz2 b/glibc-2.11.2-dd2fde461e30.tar.bz2 new file mode 100644 index 0000000..f8be5cc --- /dev/null +++ b/glibc-2.11.2-dd2fde461e30.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee436e954b06aaed8ed1bc003e5ba823c728835d2025b7e3238dc61400ccb0d2 +size 15667714 diff --git a/glibc-2.11.3-audit.diff b/glibc-2.11.3-audit.diff deleted file mode 100644 index ccb3bb9..0000000 --- a/glibc-2.11.3-audit.diff +++ /dev/null @@ -1,274 +0,0 @@ -commit 22cd1c9bcf57c5829d65b6da825f7a459d40c9eb -Author: Andreas Schwab -Date: Sun Oct 24 20:40:14 2010 -0400 - - Don't expand DST twice in dl_open - -2010-10-18 Andreas Schwab - - * elf/dl-open.c (dl_open_worker): Don't expand DST here, let - _dl_map_object do it. - -diff --git a/elf/dl-open.c b/elf/dl-open.c -index 754a263..c394b3f 100644 ---- a/elf/dl-open.c -+++ b/elf/dl-open.c -@@ -221,35 +221,6 @@ dl_open_worker (void *a) - - assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT); - -- /* Maybe we have to expand a DST. */ -- if (__builtin_expect (dst != NULL, 0)) -- { -- size_t len = strlen (file); -- -- /* Determine how much space we need. We have to allocate the -- memory locally. */ -- size_t required = DL_DST_REQUIRED (call_map, file, len, -- _dl_dst_count (dst, 0)); -- -- /* Get space for the new file name. */ -- char *new_file = (char *) alloca (required + 1); -- -- /* Generate the new file name. */ -- _dl_dst_substitute (call_map, file, new_file, 0); -- -- /* If the substitution failed don't try to load. */ -- if (*new_file == '\0') -- _dl_signal_error (0, "dlopen", NULL, -- N_("empty dynamic string token substitution")); -- -- /* Now we have a new file name. */ -- file = new_file; -- -- /* It does not matter whether call_map is set even if we -- computed it only because of the DST. Since the path contains -- a slash the value is not used. See dl-load.c. */ -- } -- - /* Load the named object. */ - struct link_map *new; - args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, - - -commit 8e9f92e9d5d7737afdacf79b76d98c4c42980508 -Author: Andreas Schwab -Date: Sun Oct 24 21:43:15 2010 -0400 - - Require suid bit on audit objects in privileged programs - -2010-10-22 Andreas Schwab - - * include/dlfcn.h (__RTLD_SECURE): Define. - * elf/dl-load.c (_dl_map_object): Remove preloaded parameter. Use - mode & __RTLD_SECURE instead. - (open_path): Rename preloaded parameter to secure. - * sysdeps/generic/ldsodefs.h (_dl_map_object): Adjust declaration. - * elf/dl-open.c (dl_open_worker): Adjust call to _dl_map_object. - * elf/dl-deps.c (openaux): Likewise. - * elf/rtld.c (struct map_args): Remove is_preloaded. - (map_doit): Don't use it. - (dl_main): Likewise. - (do_preload): Use __RTLD_SECURE instead of is_preloaded. - (dlmopen_doit): Add __RTLD_SECURE to mode bits. - -diff --git a/elf/dl-deps.c b/elf/dl-deps.c -index a58de5c..a51fb6e 100644 ---- a/elf/dl-deps.c -+++ b/elf/dl-deps.c -@@ -62,7 +62,7 @@ openaux (void *a) - { - struct openaux_args *args = (struct openaux_args *) a; - -- args->aux = _dl_map_object (args->map, args->name, 0, -+ args->aux = _dl_map_object (args->map, args->name, - (args->map->l_type == lt_executable - ? lt_library : args->map->l_type), - args->trace_mode, args->open_mode, -diff --git a/elf/dl-load.c b/elf/dl-load.c -index a7162eb..aa8738f 100644 ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -1812,7 +1812,7 @@ open_verify (const char *name, struct filebuf *fbp, struct link_map *loader, - if MAY_FREE_DIRS is true. */ - - static int --open_path (const char *name, size_t namelen, int preloaded, -+open_path (const char *name, size_t namelen, int secure, - struct r_search_path_struct *sps, char **realname, - struct filebuf *fbp, struct link_map *loader, int whatcode, - bool *found_other_class) -@@ -1894,7 +1894,7 @@ open_path (const char *name, size_t namelen, int preloaded, - /* Remember whether we found any existing directory. */ - here_any |= this_dir->status[cnt] != nonexisting; - -- if (fd != -1 && __builtin_expect (preloaded, 0) -+ if (fd != -1 && __builtin_expect (secure, 0) - && INTUSE(__libc_enable_secure)) - { - /* This is an extra security effort to make sure nobody can -@@ -1963,7 +1963,7 @@ open_path (const char *name, size_t namelen, int preloaded, - - struct link_map * - internal_function --_dl_map_object (struct link_map *loader, const char *name, int preloaded, -+_dl_map_object (struct link_map *loader, const char *name, - int type, int trace_mode, int mode, Lmid_t nsid) - { - int fd; -@@ -2067,7 +2067,8 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, - for (l = loader; l; l = l->l_loader) - if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH")) - { -- fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs, -+ fd = open_path (name, namelen, mode & __RTLD_SECURE, -+ &l->l_rpath_dirs, - &realname, &fb, loader, LA_SER_RUNPATH, - &found_other_class); - if (fd != -1) -@@ -2082,14 +2083,15 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, - && main_map != NULL && main_map->l_type != lt_loaded - && cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH, - "RPATH")) -- fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs, -+ fd = open_path (name, namelen, mode & __RTLD_SECURE, -+ &main_map->l_rpath_dirs, - &realname, &fb, loader ?: main_map, LA_SER_RUNPATH, - &found_other_class); - } - - /* Try the LD_LIBRARY_PATH environment variable. */ - if (fd == -1 && env_path_list.dirs != (void *) -1) -- fd = open_path (name, namelen, preloaded, &env_path_list, -+ fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list, - &realname, &fb, - loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded, - LA_SER_LIBPATH, &found_other_class); -@@ -2098,12 +2100,12 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, - if (fd == -1 && loader != NULL - && cache_rpath (loader, &loader->l_runpath_dirs, - DT_RUNPATH, "RUNPATH")) -- fd = open_path (name, namelen, preloaded, -+ fd = open_path (name, namelen, mode & __RTLD_SECURE, - &loader->l_runpath_dirs, &realname, &fb, loader, - LA_SER_RUNPATH, &found_other_class); - - if (fd == -1 -- && (__builtin_expect (! preloaded, 1) -+ && (__builtin_expect (! (mode & __RTLD_SECURE), 1) - || ! INTUSE(__libc_enable_secure))) - { - /* Check the list of libraries in the file /etc/ld.so.cache, -@@ -2169,7 +2171,7 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, - && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL - || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) - && rtld_search_dirs.dirs != (void *) -1) -- fd = open_path (name, namelen, preloaded, &rtld_search_dirs, -+ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, - &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); - - /* Add another newline when we are tracing the library loading. */ -diff --git a/elf/dl-open.c b/elf/dl-open.c -index c394b3f..cf8e8cc 100644 ---- a/elf/dl-open.c -+++ b/elf/dl-open.c -@@ -223,7 +223,7 @@ dl_open_worker (void *a) - - /* Load the named object. */ - struct link_map *new; -- args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, -+ args->map = new = _dl_map_object (call_map, file, lt_loaded, 0, - mode | __RTLD_CALLMAP, args->nsid); - - /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is -diff --git a/elf/rtld.c b/elf/rtld.c -index 5ecc4fe..06b534a 100644 ---- a/elf/rtld.c -+++ b/elf/rtld.c -@@ -589,7 +589,6 @@ struct map_args - /* Argument to map_doit. */ - char *str; - struct link_map *loader; -- int is_preloaded; - int mode; - /* Return value of map_doit. */ - struct link_map *map; -@@ -627,16 +626,17 @@ static void - map_doit (void *a) - { - struct map_args *args = (struct map_args *) a; -- args->map = _dl_map_object (args->loader, args->str, -- args->is_preloaded, lt_library, 0, args->mode, -- LM_ID_BASE); -+ args->map = _dl_map_object (args->loader, args->str, lt_library, 0, -+ args->mode, LM_ID_BASE); - } - - static void - dlmopen_doit (void *a) - { - struct dlmopen_args *args = (struct dlmopen_args *) a; -- args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT, -+ args->map = _dl_open (args->fname, -+ (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT -+ | __RTLD_SECURE), - dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv), - __environ); - } -@@ -806,8 +806,7 @@ do_preload (char *fname, struct link_map *main_map, const char *where) - - args.str = fname; - args.loader = main_map; -- args.is_preloaded = 1; -- args.mode = 0; -+ args.mode = __RTLD_SECURE; - - unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded; - -@@ -1054,7 +1053,6 @@ of this helper program; chances are you did not intend to run this program.\n\ - - args.str = rtld_progname; - args.loader = NULL; -- args.is_preloaded = 0; - args.mode = __RTLD_OPENEXEC; - (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, - &args); -@@ -1066,7 +1064,7 @@ of this helper program; chances are you did not intend to run this program.\n\ - else - { - HP_TIMING_NOW (start); -- _dl_map_object (NULL, rtld_progname, 0, lt_library, 0, -+ _dl_map_object (NULL, rtld_progname, lt_library, 0, - __RTLD_OPENEXEC, LM_ID_BASE); - HP_TIMING_NOW (stop); - -diff --git a/include/dlfcn.h b/include/dlfcn.h -index a67426d..af92483 100644 ---- a/include/dlfcn.h -+++ b/include/dlfcn.h -@@ -9,6 +9,7 @@ - #define __RTLD_OPENEXEC 0x20000000 - #define __RTLD_CALLMAP 0x10000000 - #define __RTLD_AUDIT 0x08000000 -+#define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */ - - #define __LM_ID_CALLER -2 - -diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h -index fcc943b..fa4b6b2 100644 ---- a/sysdeps/generic/ldsodefs.h -+++ b/sysdeps/generic/ldsodefs.h -@@ -824,11 +824,9 @@ extern void _dl_receive_error (receiver_fct fct, void (*operate) (void *), - - /* Open the shared object NAME and map in its segments. - LOADER's DT_RPATH is used in searching for NAME. -- If the object is already opened, returns its existing map. -- For preloaded shared objects PRELOADED is set to a non-zero -- value to allow additional security checks. */ -+ If the object is already opened, returns its existing map. */ - extern struct link_map *_dl_map_object (struct link_map *loader, -- const char *name, int preloaded, -+ const char *name, - int type, int trace_mode, int mode, - Lmid_t nsid) - internal_function attribute_hidden; diff --git a/glibc-2.3.90-fnmatch.diff b/glibc-2.3.90-fnmatch.diff deleted file mode 100644 index d34864b..0000000 --- a/glibc-2.3.90-fnmatch.diff +++ /dev/null @@ -1,58 +0,0 @@ -When fnmatch detects an invalid multibyte character it should fall back to -single byte matching, so that "*" has a chance to match such a string. - -Andreas. - -2005-04-12 Andreas Schwab - - * posix/fnmatch.c (fnmatch): If conversion to wide character - fails fall back to single byte matching. - -Index: posix/fnmatch.c -=================================================================== ---- posix/fnmatch.c.orig -+++ posix/fnmatch.c -@@ -327,6 +327,7 @@ fnmatch (pattern, string, flags) - # if HANDLE_MULTIBYTE - if (__builtin_expect (MB_CUR_MAX, 1) != 1) - { -+ const char *orig_pattern = pattern; - mbstate_t ps; - size_t n; - const char *p; -@@ -382,10 +383,8 @@ fnmatch (pattern, string, flags) - wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); - n = mbsrtowcs (wstring, &p, n + 1, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- return -1; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto try_singlebyte; - if (p) - { - memset (&ps, '\0', sizeof (ps)); -@@ -397,10 +396,8 @@ fnmatch (pattern, string, flags) - prepare_wstring: - n = mbsrtowcs (NULL, &string, 0, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- return -1; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto try_singlebyte; - wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); - assert (mbsinit (&ps)); - (void) mbsrtowcs (wstring, &string, n + 1, &ps); -@@ -408,6 +405,9 @@ fnmatch (pattern, string, flags) - - return internal_fnwmatch (wpattern, wstring, wstring + n, - flags & FNM_PERIOD, flags, NULL); -+ -+ try_singlebyte: -+ pattern = orig_pattern; - } - # endif /* mbstate_t and mbsrtowcs or _LIBC. */ - diff --git a/glibc-fnmatch-multibyte.diff b/glibc-fnmatch-multibyte.diff new file mode 100644 index 0000000..42f49a4 --- /dev/null +++ b/glibc-fnmatch-multibyte.diff @@ -0,0 +1,92 @@ +When fnmatch detects an invalid multibyte character it should fall back to +single byte matching, so that "*" has a chance to match such a string. + +Andreas. + +Ported to glibc-2.11.3 by Petr Baudis. + +2005-04-12 Andreas Schwab + + * posix/fnmatch.c (fnmatch): If conversion to wide character + fails fall back to single byte matching. + +Index: glibc-2.11.2/posix/fnmatch.c +=================================================================== +--- glibc-2.11.2.orig/posix/fnmatch.c ++++ glibc-2.11.2/posix/fnmatch.c +@@ -333,6 +333,7 @@ fnmatch (pattern, string, flags) + # if HANDLE_MULTIBYTE + if (__builtin_expect (MB_CUR_MAX, 1) != 1) + { ++ const char *orig_pattern = pattern; + mbstate_t ps; + size_t n; + const char *p; +@@ -356,10 +357,8 @@ fnmatch (pattern, string, flags) + alloca_used); + n = mbsrtowcs (wpattern, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong. Fall back to single byte matching. */ ++ goto try_singlebyte; + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -371,10 +370,8 @@ fnmatch (pattern, string, flags) + prepare_wpattern: + n = mbsrtowcs (NULL, &pattern, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong. Fall back to single byte matching. */ ++ goto try_singlebyte; + wpattern_malloc = wpattern + = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); + assert (mbsinit (&ps)); +@@ -396,14 +393,8 @@ fnmatch (pattern, string, flags) + alloca_used); + n = mbsrtowcs (wstring, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- { +- /* Something wrong. +- XXX Do we have to set `errno' to something which +- mbsrtows hasn't already done? */ +- free_return: +- free (wpattern_malloc); +- return -1; +- } ++ /* Something wrong. Fall back to single byte matching. */ ++ goto free_and_try_singlebyte; + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -415,10 +406,8 @@ fnmatch (pattern, string, flags) + prepare_wstring: + n = mbsrtowcs (NULL, &string, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- goto free_return; ++ /* Something wrong. Fall back to single byte matching. */ ++ goto free_and_try_singlebyte; + + wstring_malloc = wstring + = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); +@@ -439,6 +428,11 @@ fnmatch (pattern, string, flags) + free (wpattern_malloc); + + return res; ++ ++ free_and_try_singlebyte: ++ free(wpattern_malloc); ++ try_singlebyte: ++ pattern = orig_pattern; + } + # endif /* mbstate_t and mbsrtowcs or _LIBC. */ + diff --git a/glibc-make-3.82.patch b/glibc-make-3.82.patch deleted file mode 100644 index 702c044..0000000 --- a/glibc-make-3.82.patch +++ /dev/null @@ -1,91 +0,0 @@ -From: Andreas Schwab -To: libc-hacker at sourceware dot org -Subject: [PATCH] Work around shortest-stem feature in make 3.82+ - -make 3.82+ no longer selects pattern rules by order, but by shortest -stem, so we need to add more rules to make sure we still get the right -matches. - -Andreas. - -2010-09-09 Andreas Schwab - - * Makeconfig (sysd-rules-patterns): Add rtld-%:rtld-%. - (sysd-rules-targets): Remove duplicates. - * elf/rtld-Rules ($(objpfx)rtld-%.os): Add pattern rules with - rtld-%.$o dependency. - -2010-09-06 Andreas Schwab - - * manual/Makefile: Don't mix pattern rules with normal rules. - -diff --git a/Makeconfig b/Makeconfig -index 9778998..807c1d1 100644 ---- a/Makeconfig -+++ b/Makeconfig -@@ -966,7 +966,7 @@ endif - # emitted into sysd-rules. A sysdeps Makeconfig fragment can - # add its own special object file prefix to this list with e.g. foo-%:% - # to have foo-*.? compiled from *.? using $(foo-CPPFLAGS). --sysd-rules-patterns := %:% rtld-%:% m_%:s_% -+sysd-rules-patterns := %:% rtld-%:rtld-% rtld-%:% m_%:s_% - - # Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here. - sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig)) -@@ -975,8 +975,8 @@ include $(sysdep-makeconfigs) - endif - - # Compute just the target patterns. Makeconfig has set sysd-rules-patterns. --sysd-rules-targets := $(foreach p,$(sysd-rules-patterns),\ -- $(firstword $(subst :, ,$p))) -+sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\ -+ $(firstword $(subst :, ,$p)))) - - endif # Makeconfig not yet included - -diff --git a/elf/rtld-Rules b/elf/rtld-Rules -index 9f31a56..fc225f2 100644 ---- a/elf/rtld-Rules -+++ b/elf/rtld-Rules -@@ -93,6 +93,12 @@ else - # These are the basic compilation rules corresponding to the Makerules ones. - # The sysd-rules generated makefile already defines pattern rules for rtld-% - # targets built from sysdeps source files. -+$(objpfx)rtld-%.os: rtld-%.S $(before-compile) -+ $(compile-command.S) $(rtld-CPPFLAGS) -+$(objpfx)rtld-%.os: rtld-%.s $(before-compile) -+ $(compile-command.s) $(rtld-CPPFLAGS) -+$(objpfx)rtld-%.os: rtld-%.c $(before-compile) -+ $(compile-command.c) $(rtld-CPPFLAGS) - $(objpfx)rtld-%.os: %.S $(before-compile) - $(compile-command.S) $(rtld-CPPFLAGS) - $(objpfx)rtld-%.os: %.s $(before-compile) -@@ -101,6 +107,9 @@ $(objpfx)rtld-%.os: %.c $(before-compile) - $(compile-command.c) $(rtld-CPPFLAGS) - - # The rules for generated source files. -+$(objpfx)rtld-%.os: $(objpfx)rtld-%.S $(before-compile); $(compile-command.S) -+$(objpfx)rtld-%.os: $(objpfx)rtld-%.s $(before-compile); $(compile-command.s) -+$(objpfx)rtld-%.os: $(objpfx)rtld-%.c $(before-compile); $(compile-command.c) - $(objpfx)rtld-%.os: $(objpfx)%.S $(before-compile); $(compile-command.S) - $(objpfx)rtld-%.os: $(objpfx)%.s $(before-compile); $(compile-command.s) - $(objpfx)rtld-%.os: $(objpfx)%.c $(before-compile); $(compile-command.c) --- -1.7.2.2 - -diff --git a/manual/Makefile b/manual/Makefile -index c5866eb..b1f5fa7 100644 ---- a/manual/Makefile -+++ b/manual/Makefile -@@ -232,7 +232,10 @@ ifdef objpfx - .PHONY: stubs - stubs: $(objpfx)stubs - endif --$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%: -+$(objpfx)stubs ../po/manual.pot: -+ $(make-target-directory) -+ touch $@ -+$(objpfx)stamp%: - $(make-target-directory) - touch $@ - diff --git a/glibc-nameserver-localhost.diff b/glibc-nameserver-localhost.diff deleted file mode 100644 index 7e464c8..0000000 --- a/glibc-nameserver-localhost.diff +++ /dev/null @@ -1,29 +0,0 @@ -2009-11-20 Petr Baudis - - [BZ #10851] - * resolv/res_init.c (__res_vinit): Initialize nscount again to - one so that the default localhost nameserver record is used. - -diff --git a/resolv/res_init.c b/resolv/res_init.c -index 40dbe7d..99ef8cf 100644 ---- a/resolv/res_init.c -+++ b/resolv/res_init.c -@@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit) { - #endif - statp->nsaddr.sin_family = AF_INET; - statp->nsaddr.sin_port = htons(NAMESERVER_PORT); -- statp->nscount = 0; -+ statp->nscount = 1; - statp->ndots = 1; - statp->pfcode = 0; - statp->_vcsock = -1; -@@ -420,7 +420,8 @@ __res_vinit(res_state statp, int preinit) { - continue; - } - } -- statp->nscount = nservall; -+ if (nservall > 0) -+ statp->nscount = nservall; - #ifdef _LIBC - if (nservall - nserv > 0) { - statp->_u._ext.nscount6 = nservall - nserv; diff --git a/glibc.changes b/glibc.changes index 4ee76c2..22e8fd9 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Mon Nov 15 18:43:35 CET 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.2-dd2fde461e30 + - Candidate tree for glibc-2.11.3 + - Multitude of various bug fixes + +------------------------------------------------------------------- +Mon Nov 15 18:29:49 CET 2010 - pbaudis@suse.cz + +- Enable multi-arch routines support for ppc, ppc64, i686 and x86_64. + + Temporarily, AMD-optimized string routines are disabled. We will + selectively re-enable them after some more careful benchmarking + in the next few days. + + Note: In this glibc version, multi-arch routines DO NOT include + the controversial backwards-copy memcpy(). + ------------------------------------------------------------------- Wed Oct 27 03:14:37 CEST 2010 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 8d059ef..5f1540b 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,11 +64,11 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.2 -Release: 7 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-21580967038a.tar.bz2 +Source: glibc-%{version}-dd2fde461e30.tar.bz2 Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -88,7 +88,7 @@ NoSource: 0 # Patch0: glibc-2.3-SuSE.diff Patch1: glibc-2.3.90-noversion.diff -Patch2: glibc-2.3.90-fnmatch.diff +Patch2: glibc-fnmatch-multibyte.diff Patch3: glibc-resolv-reload.diff Patch4: glibc-2.3.locales.diff.bz2 Patch5: crypt_blowfish-1.0-suse.diff @@ -130,7 +130,6 @@ Patch45: glibc-nis-splitgroups.diff Patch46: glibc-2.10.99-ia64-include.diff Patch47: libm-x86-64-exceptions.diff Patch48: glibc-uio-cell.diff -Patch50: glibc-nameserver-localhost.diff Patch54: glibc-statfs64-ia64.diff Patch60: ld-prelink-unique.diff Patch61: glibc-ppc64-vdso-time.diff @@ -138,9 +137,7 @@ Patch64: glibc-gai-private4.diff Patch65: glibc-resolv-mdnshint.diff Patch66: glibc-ldconfigr-aux.diff Patch67: glibc-nis-initgroups.diff -Patch68: glibc-make-3.82.patch Patch69: glibc-nscd-hconf.diff -Patch70: glibc-2.11.3-audit.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 @@ -305,7 +302,7 @@ versions of your software. %patch0 # libNoVersion part is only active on ix86 %patch1 -%patch2 +%patch2 -p1 %patch3 %patch4 %patch5 @@ -315,9 +312,9 @@ versions of your software. %patch10 %patch11 %patch12 -%patch13 +#%patch13 # strncmp.S triggers amd64 assembler bug [bnc#540647] -rm sysdeps/x86_64/strncmp.S +#rm sysdeps/x86_64/strncmp.S %patch14 -E # We have s_sincos.c in patch13, remove duplicate rm sysdeps/x86_64/fpu/s_sincos.S @@ -356,7 +353,6 @@ rm nscd/s-stamp %patch46 %patch47 %patch48 -p1 -%patch50 -p1 %patch54 %patch60 -p1 %patch61 -p1 @@ -364,9 +360,7 @@ rm nscd/s-stamp %patch65 -p1 %patch66 -p1 %patch67 -p1 -%patch68 -p1 %patch69 -p1 -%patch70 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -394,12 +388,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch + ####################################################################### ### ### BUILD ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -490,6 +484,9 @@ configure_and_build_glibc() { --build=%{_target_cpu}-suse-linux-gnueabi \ %else --build=%{_target_cpu}-suse-linux \ +%endif +%ifarch ppc ppc64 %{ix86} x86_64 + --enable-multi-arch \ %endif --with-tls --with-__thread --enable-kernel=2.6.4 make $PARALLEL @@ -561,6 +558,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + ####################################################################### ### ### CHECK @@ -583,6 +581,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed + ####################################################################### ### ### INSTALL @@ -675,6 +674,7 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif + # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -695,6 +695,7 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. + # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -768,6 +769,7 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done + ####################################################################### ### ### ... @@ -805,6 +807,7 @@ done %insserv_cleanup exit 0 + ####################################################################### ### ### FILES @@ -812,7 +815,6 @@ exit 0 ####################################################################### # glibc - %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From f865dae0e02f8ff7049187ba49aa633d31b095bbc0d97da15862f5172ce9d24d Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Thu, 18 Nov 2010 15:02:11 +0000 Subject: [PATCH 026/204] Autobuild autoformatter for 53152 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=29 --- glibc.spec | 11 +++-------- ready | 0 2 files changed, 3 insertions(+), 8 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index 5f1540b..f5ec52b 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.2 -Release: 3 +Release: 8 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -388,12 +388,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch - ####################################################################### ### ### BUILD ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -558,7 +558,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' - ####################################################################### ### ### CHECK @@ -581,7 +580,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed - ####################################################################### ### ### INSTALL @@ -674,7 +672,6 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif - # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -695,7 +692,6 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. - # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -769,7 +765,6 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done - ####################################################################### ### ### ... @@ -807,7 +802,6 @@ done %insserv_cleanup exit 0 - ####################################################################### ### ### FILES @@ -815,6 +809,7 @@ exit 0 ####################################################################### # glibc + %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From c5170085472cc63dba09c8229a66d803706a90c6ac080b1bd8a36784d4443ded Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Thu, 2 Dec 2010 14:54:04 +0000 Subject: [PATCH 027/204] Accepting request 54305 from Base:System Accepted submit request 54305 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/54305 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=30 --- glibc-2.11.2-dd2fde461e30.tar.bz2 | 3 - glibc-2.11.3.tar.bz2 | 3 + glibc-ldconfigr-aux.diff | 37 ----------- glibc-nis-initgroups.diff | 39 ------------ glibc-nis-splitgroups.diff | 101 ------------------------------ glibc.changes | 12 ++++ glibc.spec | 23 ++++--- ready | 0 8 files changed, 26 insertions(+), 192 deletions(-) delete mode 100644 glibc-2.11.2-dd2fde461e30.tar.bz2 create mode 100644 glibc-2.11.3.tar.bz2 delete mode 100644 glibc-ldconfigr-aux.diff delete mode 100644 glibc-nis-initgroups.diff delete mode 100644 glibc-nis-splitgroups.diff create mode 100644 ready diff --git a/glibc-2.11.2-dd2fde461e30.tar.bz2 b/glibc-2.11.2-dd2fde461e30.tar.bz2 deleted file mode 100644 index f8be5cc..0000000 --- a/glibc-2.11.2-dd2fde461e30.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee436e954b06aaed8ed1bc003e5ba823c728835d2025b7e3238dc61400ccb0d2 -size 15667714 diff --git a/glibc-2.11.3.tar.bz2 b/glibc-2.11.3.tar.bz2 new file mode 100644 index 0000000..d1dbb03 --- /dev/null +++ b/glibc-2.11.3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e3402f050984b78d0784efbd2115d90a4bb4376803fd3f00c25aee28cf7fb92 +size 15669411 diff --git a/glibc-ldconfigr-aux.diff b/glibc-ldconfigr-aux.diff deleted file mode 100644 index bcce030..0000000 --- a/glibc-ldconfigr-aux.diff +++ /dev/null @@ -1,37 +0,0 @@ -2010-05-31 Petr Baudis - - * elf/ldconfig.c: Allow aux_cache_file open()ing to fail silently - even in the chroot mode. - - -diff --git a/elf/ldconfig.c b/elf/ldconfig.c -index 6e71b09..6ba8e07 100644 ---- a/elf/ldconfig.c -+++ b/elf/ldconfig.c -@@ -1359,14 +1359,9 @@ main (int argc, char **argv) - - const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; - if (opt_chroot) -- { -- aux_cache_file = chroot_canon (opt_chroot, aux_cache_file); -- if (aux_cache_file == NULL) -- error (EXIT_FAILURE, errno, _("Can't open cache file %s\n"), -- _PATH_LDCONFIG_AUX_CACHE); -- } -+ aux_cache_file = chroot_canon (opt_chroot, aux_cache_file); - -- if (! opt_ignore_aux_cache) -+ if (! opt_ignore_aux_cache && aux_cache_file) - load_aux_cache (aux_cache_file); - else - init_aux_cache (); -@@ -1376,7 +1371,8 @@ main (int argc, char **argv) - if (opt_build_cache) - { - save_cache (cache_file); -- save_aux_cache (aux_cache_file); -+ if (aux_cache_file) -+ save_aux_cache (aux_cache_file); - } - - return 0; diff --git a/glibc-nis-initgroups.diff b/glibc-nis-initgroups.diff deleted file mode 100644 index 59ac9c5..0000000 --- a/glibc-nis-initgroups.diff +++ /dev/null @@ -1,39 +0,0 @@ -2010-05-31 Petr Baudis - - * nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Fix - initialization of skip_initgroups_dyn. - -diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c -index 07a3b92..de8d95c 100644 ---- a/nis/nss_compat/compat-initgroups.c -+++ b/nis/nss_compat/compat-initgroups.c -@@ -474,18 +474,21 @@ internal_getgrent_r (ent_t *ent, char *buffer, size_t buflen, const char *user, - /* If the selected module does not support getgrent_r or - initgroups_dyn, abort. We cannot find the needed group - entries. */ -- if (nss_getgrent_r == NULL && nss_initgroups_dyn == NULL) -+ if (nss_initgroups_dyn == NULL || nss_getgrgid_r == NULL) -+ { -+ if (nss_setgrent != NULL) -+ { -+ nss_setgrent (1); -+ ent->need_endgrent = true; -+ } -+ ent->skip_initgroups_dyn = true; -+ } -+ -+ if (ent->skip_initgroups_dyn && nss_getgrent_r == NULL) - return NSS_STATUS_UNAVAIL; - - ent->files = false; - -- if (nss_initgroups_dyn == NULL && nss_setgrent != NULL) -- { -- nss_setgrent (1); -- ent->need_endgrent = true; -- } -- ent->skip_initgroups_dyn = true; -- - return getgrent_next_nss (ent, buffer, buflen, user, group, - start, size, groupsp, limit, errnop); - } diff --git a/glibc-nis-splitgroups.diff b/glibc-nis-splitgroups.diff deleted file mode 100644 index 34fd42b..0000000 --- a/glibc-nis-splitgroups.diff +++ /dev/null @@ -1,101 +0,0 @@ -2009-04-19 Petr Baudis - - * nis/Makefile (libnss_compat-routines): Add build dependency - on nss-nis. - * nis/nss: New variable SPLIT_GROUPS. - * nis/libnsl.h: New flag NSS_FLAG_SPLIT_GROUPS. - * nis/nss-default.c: Likewise. - * nss_compat/compat-initgroups.c: Do not use initgroups_dyn - in case NSS_FLAG_SPLIT_GROUPS is set. - -Index: nis/Makefile -=================================================================== ---- nis/Makefile.orig -+++ nis/Makefile -@@ -56,7 +56,8 @@ libnsl-routines = yp_xdr ypclnt ypupdate - nis_findserv nis_callback nis_clone_dir nis_clone_obj\ - nis_clone_res nss-default - --libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) -+libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) \ -+ nss-nis - libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) - - libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \ -Index: nis/libnsl.h -=================================================================== ---- nis/libnsl.h.orig -+++ nis/libnsl.h -@@ -21,6 +21,7 @@ - #define NSS_FLAG_NETID_AUTHORITATIVE 1 - #define NSS_FLAG_SERVICES_AUTHORITATIVE 2 - #define NSS_FLAG_SETENT_BATCH_READ 4 -+#define NSS_FLAG_SPLIT_GROUPS 8 - - - /* Get current set of default flags. */ -Index: nis/nss -=================================================================== ---- nis/nss.orig -+++ nis/nss -@@ -1,7 +1,7 @@ - # /etc/default/nss - # This file can theoretically contain a bunch of customization variables - # for Name Service Switch in the GNU C library. For now there are only --# three variables: -+# four variables: - # - # NETID_AUTHORITATIVE - # If set to TRUE, the initgroups() function will accept the information -@@ -26,3 +26,11 @@ - # might result into a network communication with the server to get - # the next entry. - #SETENT_BATCH_READ=TRUE -+# -+# SPLIT_GROUPS -+# If set to TRUE, the nss_compat module's initgroups() function will -+# not use the NIS initgroups interface for retrieving group information. -+# This allows one NIS group to be split into multiple database entries -+# with same gid, a practice used to overcome entry length limitations. -+# The downside is a certain performance degradation. -+#SPLIT_GROUPS=TRUE -Index: nis/nss-default.c -=================================================================== ---- nis/nss-default.c.orig -+++ nis/nss-default.c -@@ -47,7 +47,8 @@ static const struct - #define STRNLEN(s) s, sizeof (s) - 1 - { STRNLEN ("NETID_AUTHORITATIVE"), NSS_FLAG_NETID_AUTHORITATIVE }, - { STRNLEN ("SERVICES_AUTHORITATIVE"), NSS_FLAG_SERVICES_AUTHORITATIVE }, -- { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ } -+ { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ }, -+ { STRNLEN ("SPLIT_GROUPS"), NSS_FLAG_SPLIT_GROUPS }, - }; - #define nvars (sizeof (vars) / sizeof (vars[0])) - -Index: nis/nss_compat/compat-initgroups.c -=================================================================== ---- nis/nss_compat/compat-initgroups.c.orig -+++ nis/nss_compat/compat-initgroups.c -@@ -32,6 +32,9 @@ - #include - #include - -+/* Get the declaration of the NSS flags. */ -+#include -+ - static service_user *ni; - /* Type of the lookup function. */ - static enum nss_status (*nss_initgroups_dyn) (const char *, gid_t, -@@ -107,7 +110,10 @@ init_nss_interface (void) - if (ni == NULL - && __nss_database_lookup ("group_compat", NULL, "nis", &ni) >= 0) - { -- nss_initgroups_dyn = __nss_lookup_function (ni, "initgroups_dyn"); -+ if (_nsl_default_nss () & NSS_FLAG_SPLIT_GROUPS) -+ nss_initgroups_dyn = NULL; -+ else -+ nss_initgroups_dyn = __nss_lookup_function (ni, "initgroups_dyn"); - nss_getgrnam_r = __nss_lookup_function (ni, "getgrnam_r"); - nss_getgrgid_r = __nss_lookup_function (ni, "getgrgid_r"); - nss_setgrent = __nss_lookup_function (ni, "setgrent"); diff --git a/glibc.changes b/glibc.changes index 22e8fd9..1f510b3 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Nov 30 01:53:42 CET 2010 - pbaudis@suse.cz + +- Upgrade to glibc-2.11.3 + - Just few more bugfixes since the latest upgrade + +------------------------------------------------------------------- +Tue Nov 16 04:03:01 CET 2010 - pbaudis@suse.cz + +- Remove explicit support for nss SPLIT_GROUPS setting; glibc from + 2.11 on should handle this automagically. + ------------------------------------------------------------------- Mon Nov 15 18:43:35 CET 2010 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index f5ec52b..d960b04 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,5 +1,5 @@ # -# spec file for package glibc (Version 2.11.2) +# spec file for package glibc (Version 2.11.3) # # 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.2 -Release: 8 +Version: 2.11.3 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-dd2fde461e30.tar.bz2 +Source: glibc-%{version}.tar.bz2 Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -126,7 +126,6 @@ Patch41: glibc-check-native-missing-include.diff Patch42: glibc-no-unwind-tables.diff Patch43: glibc-2.10-nscd-nostack.diff Patch44: glibc-cpusetsize.diff -Patch45: glibc-nis-splitgroups.diff Patch46: glibc-2.10.99-ia64-include.diff Patch47: libm-x86-64-exceptions.diff Patch48: glibc-uio-cell.diff @@ -135,8 +134,6 @@ Patch60: ld-prelink-unique.diff Patch61: glibc-ppc64-vdso-time.diff Patch64: glibc-gai-private4.diff Patch65: glibc-resolv-mdnshint.diff -Patch66: glibc-ldconfigr-aux.diff -Patch67: glibc-nis-initgroups.diff Patch69: glibc-nscd-hconf.diff Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff Patch501: ARM_glibc-2.10.1-local-hwcap-updates.diff @@ -349,7 +346,6 @@ rm nscd/s-stamp %patch42 %patch43 %patch44 -%patch45 %patch46 %patch47 %patch48 -p1 @@ -358,8 +354,6 @@ rm nscd/s-stamp %patch61 -p1 %patch64 %patch65 -p1 -%patch66 -p1 -%patch67 -p1 %patch69 -p1 %ifarch %arm armv5tel armv7l %patch500 @@ -388,12 +382,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch + ####################################################################### ### ### BUILD ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -558,6 +552,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + ####################################################################### ### ### CHECK @@ -580,6 +575,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed + ####################################################################### ### ### INSTALL @@ -672,6 +668,7 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif + # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -692,6 +689,7 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. + # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -765,6 +763,7 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done + ####################################################################### ### ### ... @@ -802,6 +801,7 @@ done %insserv_cleanup exit 0 + ####################################################################### ### ### FILES @@ -809,7 +809,6 @@ exit 0 ####################################################################### # glibc - %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From 7f8ac17ef8714fb580ac3b800bb196a54678359c35fa91ede73c9710faa5593f Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Thu, 2 Dec 2010 14:54:11 +0000 Subject: [PATCH 028/204] Autobuild autoformatter for 54305 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=31 --- glibc.spec | 11 +++-------- ready | 0 2 files changed, 3 insertions(+), 8 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index d960b04..3bf491e 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 3 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -382,12 +382,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch - ####################################################################### ### ### BUILD ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -552,7 +552,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' - ####################################################################### ### ### CHECK @@ -575,7 +574,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed - ####################################################################### ### ### INSTALL @@ -668,7 +666,6 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif - # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -689,7 +686,6 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. - # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -763,7 +759,6 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done - ####################################################################### ### ### ... @@ -801,7 +796,6 @@ done %insserv_cleanup exit 0 - ####################################################################### ### ### FILES @@ -809,6 +803,7 @@ exit 0 ####################################################################### # glibc + %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From 05b946fcc426ac9159065a832ca66b256ecba06be77327f6949a862e5c63436f Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Mon, 10 Jan 2011 12:22:49 +0000 Subject: [PATCH 029/204] Accepting request 57646 from Base:System Accepted submit request 57646 from user rguenther OBS-URL: https://build.opensuse.org/request/show/57646 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=32 --- glibc-2.11.3-bnc658509.diff | 20 ++++++++++++++++++++ glibc.changes | 6 ++++++ glibc.spec | 13 ++++++++++--- ready | 0 4 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 glibc-2.11.3-bnc658509.diff create mode 100644 ready diff --git a/glibc-2.11.3-bnc658509.diff b/glibc-2.11.3-bnc658509.diff new file mode 100644 index 0000000..bdafe1f --- /dev/null +++ b/glibc-2.11.3-bnc658509.diff @@ -0,0 +1,20 @@ +--- ./string/bits/string3.h.orig 2010-12-09 13:29:45.000000000 +0100 ++++ ./string/bits/string3.h 2010-12-09 13:30:15.000000000 +0100 +@@ -53,7 +53,7 @@ + } + + __extern_always_inline void * +-__NTH (memmove (void *__restrict __dest, __const void *__restrict __src, ++__NTH (memmove (void * __dest, __const void * __src, + size_t __len)) + { + return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); +@@ -88,7 +88,7 @@ + + #ifdef __USE_BSD + __extern_always_inline void +-__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest, ++__NTH (bcopy (__const void * __src, void * __dest, + size_t __len)) + { + (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); diff --git a/glibc.changes b/glibc.changes index 1f510b3..82d5407 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Dec 9 12:33:35 UTC 2010 - rguenther@novell.com + +- Drop restrict qualifiers from memmove and bcopy fortify wrappers. + [bnc#658509] + ------------------------------------------------------------------- Tue Nov 30 01:53:42 CET 2010 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 3bf491e..3f17936 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 1 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -141,6 +141,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff # http://sources.redhat.com/bugzilla/show_bug.cgi?id=11155 Patch600: glibc-sparc64-fxstat.diff +Patch601: glibc-2.11.3-bnc658509.diff %description The GNU C Library provides the most important standard libraries used @@ -362,6 +363,7 @@ rm nscd/s-stamp %patch503 %endif %patch600 -p1 +%patch601 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -382,12 +384,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch + ####################################################################### ### ### BUILD ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -552,6 +554,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + ####################################################################### ### ### CHECK @@ -574,6 +577,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed + ####################################################################### ### ### INSTALL @@ -666,6 +670,7 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif + # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -686,6 +691,7 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. + # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -759,6 +765,7 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done + ####################################################################### ### ### ... @@ -796,6 +803,7 @@ done %insserv_cleanup exit 0 + ####################################################################### ### ### FILES @@ -803,7 +811,6 @@ exit 0 ####################################################################### # glibc - %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From fa79113d2a97e88b1ad09f435dc4b17af0ee4e99c6c04d897c22b84928952fbf Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Mon, 10 Jan 2011 12:22:56 +0000 Subject: [PATCH 030/204] Autobuild autoformatter for 57646 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=33 --- glibc.spec | 15 +++++---------- ready | 0 2 files changed, 5 insertions(+), 10 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index 3f17936..825cf1e 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc (Version 2.11.3) # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 3 +Release: 2 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -141,7 +141,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff # http://sources.redhat.com/bugzilla/show_bug.cgi?id=11155 Patch600: glibc-sparc64-fxstat.diff -Patch601: glibc-2.11.3-bnc658509.diff +Patch601: glibc-2.11.3-bnc658509.diff %description The GNU C Library provides the most important standard libraries used @@ -384,12 +384,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch - ####################################################################### ### ### BUILD ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -554,7 +554,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' - ####################################################################### ### ### CHECK @@ -577,7 +576,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed - ####################################################################### ### ### INSTALL @@ -670,7 +668,6 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif - # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -691,7 +688,6 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. - # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -765,7 +761,6 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done - ####################################################################### ### ### ... @@ -803,7 +798,6 @@ done %insserv_cleanup exit 0 - ####################################################################### ### ### FILES @@ -811,6 +805,7 @@ exit 0 ####################################################################### # glibc + %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From f0da27381659b850c627915166a2e33d5f783be0100068e7620915fdcbcda77e Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 28 Jan 2011 15:56:03 +0000 Subject: [PATCH 031/204] Accepting request 59369 from Base:System Accepted submit request 59369 from user rguenther OBS-URL: https://build.opensuse.org/request/show/59369 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=34 --- glibc-2.11.3-bso12397.diff | 11 +++++++++++ glibc.changes | 5 +++++ glibc.spec | 17 ++++++++++++----- ready | 0 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 glibc-2.11.3-bso12397.diff create mode 100644 ready diff --git a/glibc-2.11.3-bso12397.diff b/glibc-2.11.3-bso12397.diff new file mode 100644 index 0000000..0b54d63 --- /dev/null +++ b/glibc-2.11.3-bso12397.diff @@ -0,0 +1,11 @@ +--- sysdeps/unix/sysv/linux/mkdirat.c.orig 2011-01-28 15:50:00.000000000 +0100 ++++ sysdeps/unix/sysv/linux/mkdirat.c 2011-01-28 15:51:42.000000000 +0100 +@@ -43,7 +43,7 @@ + { + res = INLINE_SYSCALL (mkdirat, 3, fd, file, mode); + # ifndef __ASSUME_ATFCTS +- if (res == -1 && res == ENOSYS) ++ if (res == -1 && errno == ENOSYS) + __have_atfcts = -1; + else + # endif diff --git a/glibc.changes b/glibc.changes index 82d5407..adc4b56 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jan 28 14:53:35 UTC 2011 - rguenther@novell.com + +- Fix ENOSYS detection for mkdirat. [bso#12397] + ------------------------------------------------------------------- Thu Dec 9 12:33:35 UTC 2010 - rguenther@novell.com diff --git a/glibc.spec b/glibc.spec index 825cf1e..9436496 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc (Version 2.11.3) # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 2 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -141,7 +141,8 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff # http://sources.redhat.com/bugzilla/show_bug.cgi?id=11155 Patch600: glibc-sparc64-fxstat.diff -Patch601: glibc-2.11.3-bnc658509.diff +Patch601: glibc-2.11.3-bnc658509.diff +Patch602: glibc-2.11.3-bso12397.diff %description The GNU C Library provides the most important standard libraries used @@ -364,6 +365,7 @@ rm nscd/s-stamp %endif %patch600 -p1 %patch601 +%patch602 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -384,12 +386,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch + ####################################################################### ### ### BUILD ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -554,6 +556,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + ####################################################################### ### ### CHECK @@ -576,6 +579,7 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed + ####################################################################### ### ### INSTALL @@ -668,6 +672,7 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif + # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -688,6 +693,7 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. + # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -761,6 +767,7 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done + ####################################################################### ### ### ... @@ -798,6 +805,7 @@ done %insserv_cleanup exit 0 + ####################################################################### ### ### FILES @@ -805,7 +813,6 @@ exit 0 ####################################################################### # glibc - %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From 4bfc4da9cc744e22461760144b79358ef90044738613cc46d6a18a8863731564 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 28 Jan 2011 15:56:09 +0000 Subject: [PATCH 032/204] Autobuild autoformatter for 59369 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=35 --- glibc.spec | 17 ++++++----------- ready | 0 2 files changed, 6 insertions(+), 11 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index 9436496..a7373d4 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # -# spec file for package glibc (Version 2.11.3) +# spec file for package glibc # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -141,8 +141,8 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff # http://sources.redhat.com/bugzilla/show_bug.cgi?id=11155 Patch600: glibc-sparc64-fxstat.diff -Patch601: glibc-2.11.3-bnc658509.diff -Patch602: glibc-2.11.3-bso12397.diff +Patch601: glibc-2.11.3-bnc658509.diff +Patch602: glibc-2.11.3-bso12397.diff %description The GNU C Library provides the most important standard libraries used @@ -386,12 +386,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch - ####################################################################### ### ### BUILD ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -556,7 +556,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' - ####################################################################### ### ### CHECK @@ -579,7 +578,6 @@ $BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgra %endif make -C cc-base check-abi || echo check-abi failed - ####################################################################### ### ### INSTALL @@ -672,7 +670,6 @@ cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 %endif - # Miscelanna: install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} @@ -693,7 +690,6 @@ cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. - # nscd tools: cp nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -767,7 +763,6 @@ for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_n objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done - ####################################################################### ### ### ... @@ -805,7 +800,6 @@ done %insserv_cleanup exit 0 - ####################################################################### ### ### FILES @@ -813,6 +807,7 @@ exit 0 ####################################################################### # glibc + %files %defattr(-,root,root) %doc LICENSES diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From 153c4fd0fb07ae2004da63987789821f8ccb4df6248bfd54a171a573d524097a Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 4 Feb 2011 16:41:53 +0000 Subject: [PATCH 033/204] Accepting request 60018 from Base:System Accepted submit request 60018 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/60018 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=36 --- glibc-2.11.3-b72646ad0c41.tar.bz2 | 3 + glibc-2.11.3-bnc658509.diff | 20 - glibc-2.11.3-bso12397.diff | 11 - glibc-2.11.3.tar.bz2 | 3 - glibc-2.3.3-amd64-string.diff | 4434 ----------------------------- glibc-fini-unwind.diff | 60 + glibc-gconvcache-s390.diff | 22 + glibc-malloc-arena-max.diff | 235 ++ glibc-nss-deepbind.diff | 26 - glibc-sparc64-fxstat.diff | 7 - glibc-vfprintf-positional.diff | 20 + glibc.changes | 28 + glibc.spec | 120 +- ready | 0 14 files changed, 426 insertions(+), 4563 deletions(-) create mode 100644 glibc-2.11.3-b72646ad0c41.tar.bz2 delete mode 100644 glibc-2.11.3-bnc658509.diff delete mode 100644 glibc-2.11.3-bso12397.diff delete mode 100644 glibc-2.11.3.tar.bz2 delete mode 100644 glibc-2.3.3-amd64-string.diff create mode 100644 glibc-fini-unwind.diff create mode 100644 glibc-gconvcache-s390.diff create mode 100644 glibc-malloc-arena-max.diff delete mode 100644 glibc-nss-deepbind.diff delete mode 100644 glibc-sparc64-fxstat.diff create mode 100644 glibc-vfprintf-positional.diff create mode 100644 ready diff --git a/glibc-2.11.3-b72646ad0c41.tar.bz2 b/glibc-2.11.3-b72646ad0c41.tar.bz2 new file mode 100644 index 0000000..cc05708 --- /dev/null +++ b/glibc-2.11.3-b72646ad0c41.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe7395ed702de089ef4f719d3ca0ae0477dbe9c3c0a049aa4bd89f441a00b72e +size 15666419 diff --git a/glibc-2.11.3-bnc658509.diff b/glibc-2.11.3-bnc658509.diff deleted file mode 100644 index bdafe1f..0000000 --- a/glibc-2.11.3-bnc658509.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- ./string/bits/string3.h.orig 2010-12-09 13:29:45.000000000 +0100 -+++ ./string/bits/string3.h 2010-12-09 13:30:15.000000000 +0100 -@@ -53,7 +53,7 @@ - } - - __extern_always_inline void * --__NTH (memmove (void *__restrict __dest, __const void *__restrict __src, -+__NTH (memmove (void * __dest, __const void * __src, - size_t __len)) - { - return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); -@@ -88,7 +88,7 @@ - - #ifdef __USE_BSD - __extern_always_inline void --__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest, -+__NTH (bcopy (__const void * __src, void * __dest, - size_t __len)) - { - (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); diff --git a/glibc-2.11.3-bso12397.diff b/glibc-2.11.3-bso12397.diff deleted file mode 100644 index 0b54d63..0000000 --- a/glibc-2.11.3-bso12397.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- sysdeps/unix/sysv/linux/mkdirat.c.orig 2011-01-28 15:50:00.000000000 +0100 -+++ sysdeps/unix/sysv/linux/mkdirat.c 2011-01-28 15:51:42.000000000 +0100 -@@ -43,7 +43,7 @@ - { - res = INLINE_SYSCALL (mkdirat, 3, fd, file, mode); - # ifndef __ASSUME_ATFCTS -- if (res == -1 && res == ENOSYS) -+ if (res == -1 && errno == ENOSYS) - __have_atfcts = -1; - else - # endif diff --git a/glibc-2.11.3.tar.bz2 b/glibc-2.11.3.tar.bz2 deleted file mode 100644 index d1dbb03..0000000 --- a/glibc-2.11.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e3402f050984b78d0784efbd2115d90a4bb4376803fd3f00c25aee28cf7fb92 -size 15669411 diff --git a/glibc-2.3.3-amd64-string.diff b/glibc-2.3.3-amd64-string.diff deleted file mode 100644 index d9d0cba..0000000 --- a/glibc-2.3.3-amd64-string.diff +++ /dev/null @@ -1,4434 +0,0 @@ -Index: sysdeps/x86_64/dl-machine.h -=================================================================== ---- sysdeps/x86_64/dl-machine.h.orig -+++ sysdeps/x86_64/dl-machine.h -@@ -226,6 +226,40 @@ dl_platform_init (void) - if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') - /* Avoid an empty string which would disturb us. */ - GLRO(dl_platform) = NULL; -+ -+ long int t1, t2; -+ t1 = 0; -+ t2 = 0; -+ -+ asm ( -+ "mov $0x80000000, %%eax # get highest level of support\n\t" -+ "cpuid\n\t" -+ "cmp $0x80000006, %%eax # check for support of cache info\n\t" -+ "jb 1f\n\t" -+ "mov $0x80000005, %%eax # get L1 info\n\t" -+ "cpuid\n\t" -+ "shr $24, %%ecx\n\t" -+ "shl $10, %%ecx\n\t" -+ "mov %%rcx, %0\n\t" -+ "mov $0x80000006, %%eax # get L2 info\n\t" -+ "cpuid\n\t" -+ "shr $16, %%ecx\n\t" -+ "shl $10, %%ecx\n\t" -+ "mov %%rcx, %1\n\t" -+ "1:\n\t" -+ :"=r" (t1), "=r" (t2) :: "%rbx", "%rax", "%rcx", "%rdx" -+ ); -+ -+ if (t1) -+ { -+ GLRO(dl_cache1size) = t1; -+ GLRO(dl_cache1sizehalf) = t1 / 2; -+ } -+ if (t2) -+ { -+ GLRO(dl_cache2size) = t2; -+ GLRO(dl_cache2sizehalf) = t2 / 2; -+ } - } - - static inline Elf64_Addr -Index: sysdeps/x86_64/Makefile -=================================================================== ---- sysdeps/x86_64/Makefile.orig -+++ sysdeps/x86_64/Makefile -@@ -4,7 +4,8 @@ long-double-fcts = yes - ifeq ($(subdir),csu) - sysdep_routines += hp-timing - elide-routines.os += hp-timing --gen-as-const-headers += link-defines.sym -+# get offset to rtld_global._dl_* -+gen-as-const-headers += link-defines.sym rtld-global-offsets.sym - endif - - ifeq ($(subdir),gmon) -Index: sysdeps/x86_64/strcpy.S -=================================================================== ---- sysdeps/x86_64/strcpy.S.orig -+++ sysdeps/x86_64/strcpy.S -@@ -1,159 +1,833 @@ --/* strcpy/stpcpy implementation for x86-64. -- Copyright (C) 2002 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Andreas Jaeger , 2002. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include --#include "asm-syntax.h" --#include "bp-sym.h" --#include "bp-asm.h" -+# $Header: /K8_Projects/Glibc/amd64strcpy.S 7 2/12/04 19:06 Emenezes $ - --#ifndef USE_AS_STPCPY -+# (c) 2002 Advanced Micro Devices, Inc. -+# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS -+# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+# LICENSE FOUND IN THE "README" FILE THAT IS -+# INCLUDED WITH THIS FILE -+ -+#include "sysdep.h" -+#include -+ -+ /* XXX: strncpy is broken, just use this for strcpy for now. */ -+#ifdef PIC -+ .globl _rtld_local_ro -+ .hidden _rtld_local_ro -+ .set _rtld_local_ro,_rtld_global_ro -+#endif -+#ifndef STRCPY - # define STRCPY strcpy - #endif -+#define LABEL(s) L(strcpy##s) -+ -+ .text -+ -+ENTRY (STRCPY) # (char *, const char *) -+ -+#ifdef USE_AS_STRNCPY // (char *, const char *, size_t) -+ test %rdx, %rdx # (char *, const char *, size_t) -+ mov %rdx, %r11 -+ jz LABEL(exitn) # early exit -+#endif -+ -+ xor %edx, %edx -+ -+LABEL(aligntry): -+ mov %rsi, %r8 # align by source -+ and $7, %r8 -+ jz LABEL(alignafter) -+ -+LABEL(align): # 8-byte align -+ sub $8, %r8 - -- .text --ENTRY (BP_SYM (STRCPY)) -- movq %rsi, %rcx /* Source register. */ -- andl $7, %ecx /* mask alignment bits */ -- movq %rdi, %rdx /* Duplicate destination pointer. */ -- -- jz 5f /* aligned => start loop */ -- -- neg %ecx /* We need to align to 8 bytes. */ -- addl $8,%ecx -- /* Search the first bytes directly. */ --0: -- movb (%rsi), %al /* Fetch a byte */ -- testb %al, %al /* Is it NUL? */ -- movb %al, (%rdx) /* Store it */ -- jz 4f /* If it was NUL, done! */ -- incq %rsi -- incq %rdx -- decl %ecx -- jnz 0b -- --5: -- movq $0xfefefefefefefeff,%r8 -- -- /* Now the sources is aligned. Unfortunatly we cannot force -- to have both source and destination aligned, so ignore the -- alignment of the destination. */ - .p2align 4 --1: -- /* 1st unroll. */ -- movq (%rsi), %rax /* Read double word (8 bytes). */ -- addq $8, %rsi /* Adjust pointer for next word. */ -- movq %rax, %r9 /* Save a copy for NUL finding. */ -- addq %r8, %r9 /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rax, %r9 /* (word+magic)^word */ -- orq %r8, %r9 /* set all non-carry bits */ -- incq %r9 /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- -- jnz 3f /* found NUL => return pointer */ -- -- movq %rax, (%rdx) /* Write value to destination. */ -- addq $8, %rdx /* Adjust pointer. */ -- -- /* 2nd unroll. */ -- movq (%rsi), %rax /* Read double word (8 bytes). */ -- addq $8, %rsi /* Adjust pointer for next word. */ -- movq %rax, %r9 /* Save a copy for NUL finding. */ -- addq %r8, %r9 /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rax, %r9 /* (word+magic)^word */ -- orq %r8, %r9 /* set all non-carry bits */ -- incq %r9 /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- -- jnz 3f /* found NUL => return pointer */ -- -- movq %rax, (%rdx) /* Write value to destination. */ -- addq $8, %rdx /* Adjust pointer. */ -- -- /* 3rd unroll. */ -- movq (%rsi), %rax /* Read double word (8 bytes). */ -- addq $8, %rsi /* Adjust pointer for next word. */ -- movq %rax, %r9 /* Save a copy for NUL finding. */ -- addq %r8, %r9 /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rax, %r9 /* (word+magic)^word */ -- orq %r8, %r9 /* set all non-carry bits */ -- incq %r9 /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- -- jnz 3f /* found NUL => return pointer */ -- -- movq %rax, (%rdx) /* Write value to destination. */ -- addq $8, %rdx /* Adjust pointer. */ -- -- /* 4th unroll. */ -- movq (%rsi), %rax /* Read double word (8 bytes). */ -- addq $8, %rsi /* Adjust pointer for next word. */ -- movq %rax, %r9 /* Save a copy for NUL finding. */ -- addq %r8, %r9 /* add the magic value to the word. We get -- carry bits reported for each byte which -- is *not* 0 */ -- jnc 3f /* highest byte is NUL => return pointer */ -- xorq %rax, %r9 /* (word+magic)^word */ -- orq %r8, %r9 /* set all non-carry bits */ -- incq %r9 /* add 1: if one carry bit was *not* set -- the addition will not result in 0. */ -- -- jnz 3f /* found NUL => return pointer */ -- -- movq %rax, (%rdx) /* Write value to destination. */ -- addq $8, %rdx /* Adjust pointer. */ -- jmp 1b /* Next iteration. */ - -- /* Do the last few bytes. %rax contains the value to write. -- The loop is unrolled twice. */ -+LABEL(alignloop): -+#ifdef USE_AS_STRNCPY -+ dec %r11 -+ jl LABEL(exitn) -+#endif -+ -+ mov (%rsi, %rdx), %al # check if same character -+ test %al, %al # check if character a NUL -+ mov %al, (%rdi, %rdx) -+ jz LABEL(exit) -+ -+ inc %edx -+ inc %r8 -+ jnz LABEL(alignloop) -+ - .p2align 4 -+ -+LABEL(alignafter): -+ -+LABEL(8try): -+ mov $0xfefefefefefefeff, %rcx -+ -+LABEL(8): # 8-byte -+ mov (%rsi, %rdx), %rax -+ -+LABEL(8loop): -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+LABEL(8after): -+ -+LABEL(64try): -+#ifdef PIC -+ mov _rtld_local_ro@GOTPCREL(%rip), %r8 -+ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %r9 -+#else -+ mov _dl_cache1sizehalf, %r9 -+#endif -+ -+ -+LABEL(64): # 64-byte -+ -+ .p2align 4 -+ -+LABEL(64loop): -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ cmp %r9, %rdx -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ lea 8 (%rdx), %rdx -+ -+ jbe LABEL(64loop) -+ -+LABEL(64after): -+ -+LABEL(pretry): -+#ifdef PIC -+ mov _rtld_local_ro@GOTPCREL(%rip), %r8 -+ mov RTLD_GLOBAL_DL_CACHE2SIZEHALF(%r8), %r9 -+#else -+ mov _dl_cache2sizehalf, %r9 -+#endif -+ -+LABEL(pre): # 64-byte prefetch -+ -+ .p2align 4 -+ -+LABEL(preloop): -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ mov %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %edx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) -+ -+ cmp %r9, %rdx -+ -+ mov %rax, (%rdi, %rdx) -+ prefetcht0 512 + 8 (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ prefetcht0 512 + 8 (%rsi, %rdx) -+ lea 8 (%rdx), %rdx -+ -+ jb LABEL(preloop) -+ -+ .p2align 4 -+ -+LABEL(preafter): -+ -+LABEL(NTtry): -+ sfence -+ -+LABEL(NT): # 64-byte NT -+ -+ .p2align 4 -+ -+LABEL(NTloop): -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %rdx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %rdx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %rdx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %rdx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %rdx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %rdx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ add $8, %rdx -+ -+#ifdef USE_AS_STRNCPY -+ sub $8, %r11 -+ jl LABEL(tail) -+#endif -+ -+ mov %rcx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 -+ -+ xor %rax, %r8 -+ or %rcx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(NTtail) -+ -+ movnti %rax, (%rdi, %rdx) -+ mov 8 (%rsi, %rdx), %rax -+ prefetchnta 768 + 8 (%rsi, %rdx) -+ add $8, %rdx -+ -+ jmp LABEL(NTloop) -+ -+ .p2align 4 -+ -+LABEL(NTtail): -+ sfence -+ -+ .p2align 4 -+ -+LABEL(NTafter): -+ -+LABEL(tailtry): -+ -+LABEL(tail): # 1-byte tail -+#ifdef USE_AS_STRNCPY -+ add $8, %r11 -+#endif -+ -+ .p2align 4 -+ -+LABEL(tailloop): -+#ifdef USE_AS_STRNCPY -+ dec %r11 -+ jl LABEL(exitn) -+#endif -+ -+ test %al, %al -+ mov %al, (%rdi, %rdx) -+ jz LABEL(exit) -+ -+ inc %rdx -+ -+#ifdef USE_AS_STRNCPY -+ dec %r11 -+ jl LABEL(exitn) -+ -+ mov %ah, %al -+#endif -+ -+ test %ah, %ah -+ mov %ah, (%rdi, %rdx) -+ jz LABEL(exit) -+ -+ inc %rdx -+ -+#ifdef USE_AS_STRNCPY -+ dec %r11 -+ jl LABEL(exitn) -+#endif -+ -+ shr $16, %rax -+ -+ test %al, %al -+ mov %al, (%rdi, %rdx) -+ jz LABEL(exit) -+ -+ inc %rdx -+ -+#ifdef USE_AS_STRNCPY -+ dec %r11 -+ jl LABEL(exitn) -+ -+ mov %ah, %al -+#endif -+ -+ test %ah, %ah -+ mov %ah, (%rdi, %rdx) -+ jz LABEL(exit) -+ -+ shr $16, %rax -+ inc %rdx -+ -+ jmp LABEL(tailloop) -+ -+ .p2align 4 -+ -+LABEL(tailafter): -+ -+LABEL(exit): -+#ifdef USE_AS_STRNCPY -+ test %r11, %r11 -+ mov %r11, %rcx -+ -+#ifdef USE_AS_STPCPY -+ lea (%rdi, %rdx), %r8 -+#else -+ mov %rdi, %r8 -+#endif -+ -+ jz 2f -+ -+ xor %eax, %eax # bzero () would do too, but usually there are only a handfull of bytes left -+ shr $3, %rcx -+ lea 1 (%rdi, %rdx), %rdi -+ jz 1f -+ -+ rep stosq -+ -+1: -+ mov %r11d, %ecx -+ and $7, %ecx -+ jz 2f -+ -+ .p2align 4,, 3 -+ - 3: -- /* Note that stpcpy needs to return with the value of the NUL -- byte. */ -- movb %al, (%rdx) /* 1st byte. */ -- testb %al, %al /* Is it NUL. */ -- jz 4f /* yes, finish. */ -- incq %rdx /* Increment destination. */ -- movb %ah, (%rdx) /* 2nd byte. */ -- testb %ah, %ah /* Is it NUL?. */ -- jz 4f /* yes, finish. */ -- incq %rdx /* Increment destination. */ -- shrq $16, %rax /* Shift... */ -- jmp 3b /* and look at next two bytes in %rax. */ -+ dec %ecx -+ mov %al, (%rdi, %rcx) -+ jnz 3b -+ -+ .p2align 4,, 3 -+ -+2: -+ mov %r8, %rax -+ ret -+ -+#endif -+ -+ .p2align 4 - --4: -+LABEL(exitn): - #ifdef USE_AS_STPCPY -- movq %rdx, %rax /* Destination is return value. */ -+ lea (%rdi, %rdx), %rax - #else -- movq %rdi, %rax /* Source is return value. */ -+ mov %rdi, %rax - #endif -- retq --END (BP_SYM (STRCPY)) --#ifndef USE_AS_STPCPY --libc_hidden_builtin_def (strcpy) -+ -+ ret -+ -+END (STRCPY) -+#if !defined USE_AS_STPCPY && !defined USE_AS_STRNCPY -+libc_hidden_builtin_def (STRCPY) - #endif -Index: sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c -=================================================================== ---- sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c.orig -+++ sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c -@@ -1,5 +1,5 @@ - #ifdef IS_IN_ldconfig - # include - #else --# include -+# include - #endif -Index: sysdeps/x86_64/dl-procinfo.c -=================================================================== ---- /dev/null -+++ sysdeps/x86_64/dl-procinfo.c -@@ -0,0 +1,108 @@ -+/* Data for x86-64 version of processor capability information. -+ Copyright (C) 2004 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Andreas Jaeger , 2004. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* This information must be kept in sync with the _DL_HWCAP_COUNT and -+ _DL_PLATFORM_COUNT definitions in procinfo.h. -+ -+ If anything should be added here check whether the size of each string -+ is still ok with the given array size. -+ -+ All the #ifdefs in the definitions ar equite irritating but -+ necessary if we want to avoid duplicating the information. There -+ are three different modes: -+ -+ - PROCINFO_DECL is defined. This means we are only interested in -+ declarations. -+ -+ - PROCINFO_DECL is not defined: -+ -+ + if SHARED is defined the file is included in an array -+ initializer. The .element = { ... } syntax is needed. -+ -+ + if SHARED is not defined a normal array initialization is -+ needed. -+ */ -+ -+#ifndef PROCINFO_CLASS -+#define PROCINFO_CLASS -+#endif -+ -+ /* _dl_cache1size: size of L1 cache */ -+#if !defined PROCINFO_DECL && defined SHARED -+ ._dl_cache1size -+#else -+PROCINFO_CLASS long int _dl_cache1size -+#endif -+#ifndef PROCINFO_DECL -+= 1024 * 64 -+#endif -+#if !defined SHARED || defined PROCINFO_DECL -+; -+#else -+, -+#endif -+ -+ /* _dl_cache1sizehalf: 1/2 size of L1 cache */ -+#if !defined PROCINFO_DECL && defined SHARED -+ ._dl_cache1sizehalf -+#else -+PROCINFO_CLASS long int _dl_cache1sizehalf -+#endif -+#ifndef PROCINFO_DECL -+= 1024 * 64 / 2 -+#endif -+#if !defined SHARED || defined PROCINFO_DECL -+; -+#else -+, -+#endif -+ -+ /* _dl_cache2size: size of L2 cache */ -+#if !defined PROCINFO_DECL && defined SHARED -+ ._dl_cache2size -+#else -+PROCINFO_CLASS long int _dl_cache2size -+#endif -+#ifndef PROCINFO_DECL -+= 1024 * 1024 -+#endif -+#if !defined SHARED || defined PROCINFO_DECL -+; -+#else -+, -+#endif -+ -+ /* _dl_cache2size: 1/2 size of L2 cache */ -+#if !defined PROCINFO_DECL && defined SHARED -+ ._dl_cache2sizehalf -+#else -+PROCINFO_CLASS long int _dl_cache2sizehalf -+#endif -+#ifndef PROCINFO_DECL -+= 1024 * 1024 / 2 -+#endif -+#if !defined SHARED || defined PROCINFO_DECL -+; -+#else -+, -+#endif -+ -+#undef PROCINFO_DECL -+#undef PROCINFO_CLASS -Index: sysdeps/x86_64/elf/rtld-global-offsets.sym -=================================================================== ---- /dev/null -+++ sysdeps/x86_64/elf/rtld-global-offsets.sym -@@ -0,0 +1,10 @@ -+#define SHARED 1 -+ -+#include -+ -+#define rtdl_global_offsetof(mem) offsetof (struct rtld_global_ro, mem) -+ -+RTLD_GLOBAL_DL_CACHE1SIZE rtdl_global_offsetof (_dl_cache1size) -+RTLD_GLOBAL_DL_CACHE1SIZEHALF rtdl_global_offsetof (_dl_cache1sizehalf) -+RTLD_GLOBAL_DL_CACHE2SIZE rtdl_global_offsetof (_dl_cache2size) -+RTLD_GLOBAL_DL_CACHE2SIZEHALF rtdl_global_offsetof (_dl_cache2sizehalf) -Index: sysdeps/x86_64/memcmp.S -=================================================================== ---- sysdeps/x86_64/memcmp.S.orig -+++ sysdeps/x86_64/memcmp.S -@@ -1,358 +1,442 @@ --/* memcmp with SSE2 -- Copyright (C) 2009 Free Software Foundation, Inc. -- Contributed by Intel Corporation. -- This file is part of the GNU C Library. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include -- -- .text --ENTRY (memcmp) -- test %rdx, %rdx -- jz L(finz) -- cmpq $1, %rdx -- jle L(finr1b) -- subq %rdi, %rsi -- movq %rdx, %r10 -- cmpq $32, %r10 -- jge L(gt32) -- /* Handle small chunks and last block of less than 32 bytes. */ --L(small): -- testq $1, %r10 -- jz L(s2b) -- movzbl (%rdi), %eax -- movzbl (%rdi, %rsi), %edx -- subq $1, %r10 -- je L(finz1) -- addq $1, %rdi -- subl %edx, %eax -- jnz L(exit) --L(s2b): -- testq $2, %r10 -- jz L(s4b) -- movzwl (%rdi), %eax -- movzwl (%rdi, %rsi), %edx -- subq $2, %r10 -- je L(fin2_7) -- addq $2, %rdi -- cmpl %edx, %eax -- jnz L(fin2_7) --L(s4b): -- testq $4, %r10 -- jz L(s8b) -- movl (%rdi), %eax -- movl (%rdi, %rsi), %edx -- subq $4, %r10 -- je L(fin2_7) -- addq $4, %rdi -- cmpl %edx, %eax -- jnz L(fin2_7) --L(s8b): -- testq $8, %r10 -- jz L(s16b) -- movq (%rdi), %rax -- movq (%rdi, %rsi), %rdx -- subq $8, %r10 -- je L(fin2_7) -- addq $8, %rdi -- cmpq %rdx, %rax -- jnz L(fin2_7) --L(s16b): -- movdqu (%rdi), %xmm1 -- movdqu (%rdi, %rsi), %xmm0 -- pcmpeqb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- xorl %eax, %eax -- subl $0xffff, %edx -- jz L(finz) -- bsfl %edx, %ecx -- leaq (%rdi, %rcx), %rcx -- movzbl (%rcx), %eax -- movzbl (%rsi, %rcx), %edx -- jmp L(finz1) -- -- .p2align 4,, 4 --L(finr1b): -- movzbl (%rdi), %eax -- movzbl (%rsi), %edx --L(finz1): -- subl %edx, %eax --L(exit): -- ret -- -- .p2align 4,, 4 --L(fin2_7): -- cmpq %rdx, %rax -- jz L(finz) -- movq %rax, %r11 -- subq %rdx, %r11 -- bsfq %r11, %rcx -- sarq $3, %rcx -- salq $3, %rcx -- sarq %cl, %rax -- movzbl %al, %eax -- sarq %cl, %rdx -- movzbl %dl, %edx -- subl %edx, %eax -- ret -- -- .p2align 4,, 4 --L(finz): -- xorl %eax, %eax -- ret -- -- /* For blocks bigger than 32 bytes -- 1. Advance one of the addr pointer to be 16B aligned. -- 2. Treat the case of both addr pointers aligned to 16B -- separately to avoid movdqu. -- 3. Handle any blocks of greater than 64 consecutive bytes with -- unrolling to reduce branches. -- 4. At least one addr pointer is 16B aligned, use memory version -- of pcmbeqb. -- */ -- .p2align 4,, 4 --L(gt32): -- movq %rdx, %r11 -- addq %rdi, %r11 -- movq %rdi, %r8 -- -- andq $15, %r8 -- jz L(16am) -- /* Both pointers may be misaligned. */ -- movdqu (%rdi), %xmm1 -- movdqu (%rdi, %rsi), %xmm0 -- pcmpeqb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- subl $0xffff, %edx -- jnz L(neq) -- neg %r8 -- leaq 16(%rdi, %r8), %rdi --L(16am): -- /* Handle two 16B aligned pointers separately. */ -- testq $15, %rsi -- jz L(ATR) -- testq $16, %rdi -- jz L(A32) -- movdqu (%rdi, %rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi --L(A32): -- movq %r11, %r10 -- andq $-32, %r10 -- cmpq %r10, %rdi -- jge L(mt16) -- /* Pre-unroll to be ready for unrolled 64B loop. */ -- testq $32, %rdi -- jz L(A64) -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- --L(A64): -- movq %r11, %r10 -- andq $-64, %r10 -- cmpq %r10, %rdi -- jge L(mt32) -- --L(A64main): -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- cmpq %rdi, %r10 -- jne L(A64main) -- --L(mt32): -- movq %r11, %r10 -- andq $-32, %r10 -- cmpq %r10, %rdi -- jge L(mt16) -- --L(A32main): -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqu (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- cmpq %rdi, %r10 -- jne L(A32main) --L(mt16): -- subq %rdi, %r11 -- je L(finz) -- movq %r11, %r10 -- jmp L(small) -- -- .p2align 4,, 4 --L(neq): -- bsfl %edx, %ecx -- movzbl (%rdi, %rcx), %eax -- addq %rdi, %rsi -- movzbl (%rsi,%rcx), %edx -- jmp L(finz1) -- -- .p2align 4,, 4 --L(ATR): -- movq %r11, %r10 -- andq $-32, %r10 -- cmpq %r10, %rdi -- jge L(mt16) -- testq $16, %rdi -- jz L(ATR32) -- -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- cmpq %rdi, %r10 -- je L(mt16) -- --L(ATR32): -- movq %r11, %r10 -- andq $-64, %r10 -- testq $32, %rdi -- jz L(ATR64) -- -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- --L(ATR64): -- cmpq %rdi, %r10 -- je L(mt32) -- --L(ATR64main): -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- cmpq %rdi, %r10 -- jne L(ATR64main) -- -- movq %r11, %r10 -- andq $-32, %r10 -- cmpq %r10, %rdi -- jge L(mt16) -- --L(ATR32res): -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- movdqa (%rdi,%rsi), %xmm0 -- pcmpeqb (%rdi), %xmm0 -- pmovmskb %xmm0, %edx -- subl $0xffff, %edx -- jnz L(neq) -- addq $16, %rdi -- -- cmpq %r10, %rdi -- jne L(ATR32res) -- -- subq %rdi, %r11 -- je L(finz) -- movq %r11, %r10 -- jmp L(small) -- /* Align to 16byte to improve instruction fetch. */ -- .p2align 4,, 4 --END(memcmp) -+# $Header: /K8_Projects/Glibc/amd64memcmp.S 4 10/06/03 10:57 Emenezes $ -+ -+# (c) 2002 Advanced Micro Devices, Inc. -+# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS -+# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+# LICENSE FOUND IN THE "README" FILE THAT IS -+# INCLUDED WITH THIS FILE -+ -+#include "sysdep.h" -+#include -+ -+#ifdef PIC -+ .globl _rtld_local_ro -+ .hidden _rtld_local_ro -+ .set _rtld_local_ro,_rtld_global_ro -+#endif -+ -+ .text -+ -+ENTRY (memcmp) # (const void *, const void*, size_t) -+ -+L(memcmptry1): -+ cmp $8, %rdx -+ jae L(memcmp1after) -+ -+L(memcmp1): # 1-byte -+ test %rdx, %rdx -+ mov $0, %eax -+ jz L(memcmpexit) -+ -+L(memcmp1loop): -+ movzbl (%rdi), %eax -+ movzbl (%rsi), %ecx -+ sub %ecx, %eax -+ jnz L(memcmpexit) -+ -+ dec %rdx -+ -+ lea 1 (%rdi), %rdi -+ lea 1 (%rsi), %rsi -+ -+ jnz L(memcmp1loop) -+ -+L(memcmpexit): -+ rep -+ ret -+ -+ .p2align 4 -+ -+L(memcmp1after): -+ -+L(memcmp8try): -+ cmp $32, %rdx -+ jae L(memcmp8after) -+ -+L(memcmp8): # 8-byte -+ mov %edx, %ecx -+ shr $3, %ecx -+ jz L(memcmp1) -+ -+ .p2align 4 -+ -+L(memcmp8loop): -+ mov (%rsi), %rax -+ cmp (%rdi), %rax -+ jne L(memcmp1) -+ -+ sub $8, %rdx -+ dec %ecx -+ -+ lea 8 (%rsi), %rsi -+ lea 8 (%rdi), %rdi -+ -+ jnz L(memcmp8loop) -+ -+L(memcmp8skip): -+ and $7, %edx -+ jnz L(memcmp1) -+ -+ xor %eax, %eax -+ ret -+ -+ .p2align 4 -+ -+L(memcmp8after): -+ -+L(memcmp32try): -+ cmp $2048, %rdx -+ ja L(memcmp32after) -+ -+L(memcmp32): # 32-byte -+ mov %edx, %ecx -+ shr $5, %ecx -+ jz L(memcmp8) -+ -+ .p2align 4 -+ -+L(memcmp32loop): -+ mov (%rsi), %rax -+ mov 8 (%rsi), %r8 -+ mov 16 (%rsi), %r9 -+ mov 24 (%rsi), %r10 -+ sub (%rdi), %rax -+ sub 8 (%rdi), %r8 -+ sub 16 (%rdi), %r9 -+ sub 24 (%rdi), %r10 -+ -+ or %rax, %r8 -+ or %r9, %r10 -+ or %r8, %r10 -+ jnz L(memcmp8) -+ -+ sub $32, %rdx -+ dec %ecx -+ -+ lea 32 (%rsi), %rsi -+ lea 32 (%rdi), %rdi -+ -+ jnz L(memcmp32loop) -+ -+L(memcmp32skip): -+ and $31, %edx -+ jnz L(memcmp8) -+ -+ xor %eax, %eax -+ ret -+ -+ .p2align 4 -+ -+L(memcmp32after): -+ -+#ifdef PIC -+ mov _rtld_local_ro@GOTPCREL(%rip), %r8 -+ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %r9 -+#else -+ mov _dl_cache1sizehalf, %r9 -+#endif -+ prefetcht0 (%r9) -+ -+ -+.alignsrctry: -+ mov %esi, %r8d # align by source -+ -+ and $7, %r8d -+ jz .alignsrcafter # not unaligned -+ -+.alignsrc: # align -+ lea -8 (%r8, %rdx), %rdx -+ sub $8, %r8d -+ -+# .p2align 4 -+ -+.alignsrcloop: -+ movzbl (%rdi), %eax -+ movzbl (%rsi), %ecx -+ sub %ecx, %eax -+ jnz L(memcmpexit) -+ -+ inc %r8d -+ -+ lea 1 (%rdi), %rdi -+ lea 1 (%rsi), %rsi -+ -+ jnz .alignsrcloop -+ -+ .p2align 4 -+ -+.alignsrcafter: -+ -+ -+L(memcmp64try): -+#ifdef PIC -+ mov _rtld_local_ro@GOTPCREL(%rip), %r8 -+ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %rcx -+#else -+ mov _dl_cache1sizehalf, %rcx -+#endif -+ cmp %rdx, %rcx -+ cmova %rdx, %rcx -+ -+L(memcmp64): # 64-byte -+ shr $6, %rcx -+ jz L(memcmp32) -+ -+ .p2align 4 -+ -+L(memcmp64loop): -+ mov (%rsi), %rax -+ mov 8 (%rsi), %r8 -+ sub (%rdi), %rax -+ sub 8 (%rdi), %r8 -+ or %r8, %rax -+ -+ mov 16 (%rsi), %r9 -+ mov 24 (%rsi), %r10 -+ sub 16 (%rdi), %r9 -+ sub 24 (%rdi), %r10 -+ or %r10, %r9 -+ -+ or %r9, %rax -+ jnz L(memcmp32) -+ -+ mov 32 (%rsi), %rax -+ mov 40 (%rsi), %r8 -+ sub 32 (%rdi), %rax -+ sub 40 (%rdi), %r8 -+ or %r8, %rax -+ -+ mov 48 (%rsi), %r9 -+ mov 56 (%rsi), %r10 -+ sub 48 (%rdi), %r9 -+ sub 56 (%rdi), %r10 -+ or %r10, %r9 -+ -+ or %r9, %rax -+ jnz L(memcmp32) -+ -+ lea 64 (%rsi), %rsi -+ lea 64 (%rdi), %rdi -+ -+ sub $64, %rdx -+ dec %rcx -+ jnz L(memcmp64loop) -+ -+# .p2align 4 -+ -+L(memcmp64skip): -+ cmp $2048, %rdx -+ ja L(memcmp64after) -+ -+ test %edx, %edx -+ jnz L(memcmp32) -+ -+ xor %eax, %eax -+ ret -+ -+ .p2align 4 -+ -+L(memcmp64after): -+ -+L(memcmppretry): -+ -+L(memcmppre): # 64-byte prefetching -+#ifdef PIC -+ mov _rtld_local_ro@GOTPCREL(%rip), %r8 -+ mov RTLD_GLOBAL_DL_CACHE2SIZEHALF(%r8), %rcx -+#else -+ mov _dl_cache2sizehalf, %rcx -+#endif -+ cmp %rdx, %rcx -+ cmova %rdx, %rcx -+ -+ shr $6, %rcx -+ jz L(memcmppreskip) -+ -+ prefetcht0 512 (%rsi) -+ prefetcht0 512 (%rdi) -+ -+ mov (%rsi), %rax -+ mov 8 (%rsi), %r9 -+ mov 16 (%rsi), %r10 -+ mov 24 (%rsi), %r11 -+ sub (%rdi), %rax -+ sub 8 (%rdi), %r9 -+ sub 16 (%rdi), %r10 -+ sub 24 (%rdi), %r11 -+ -+ or %r9, %rax -+ or %r11, %r10 -+ or %r10, %rax -+ jnz L(memcmp32) -+ -+ mov 32 (%rsi), %rax -+ mov 40 (%rsi), %r9 -+ mov 48 (%rsi), %r10 -+ mov 56 (%rsi), %r11 -+ sub 32 (%rdi), %rax -+ sub 40 (%rdi), %r9 -+ sub 48 (%rdi), %r10 -+ sub 56 (%rdi), %r11 -+ -+ or %r9, %rax -+ or %r11, %r10 -+ or %r10, %rax -+ jnz L(memcmp32) -+ -+ lea 64 (%rsi), %rsi -+ lea 64 (%rdi), %rdi -+ -+ sub $64, %rdx -+ dec %rcx -+ -+ .p2align 4 -+ -+L(memcmppreloop): -+ prefetcht0 512 (%rsi) -+ prefetcht0 512 (%rdi) -+ -+ mov (%rsi), %rax -+ mov 8 (%rsi), %r9 -+ mov 16 (%rsi), %r10 -+ mov 24 (%rsi), %r11 -+ sub (%rdi), %rax -+ sub 8 (%rdi), %r9 -+ sub 16 (%rdi), %r10 -+ sub 24 (%rdi), %r11 -+ -+ or %r9, %rax -+ or %r11, %r10 -+ or %r10, %rax -+ jnz L(memcmp32) -+ -+ mov 32 (%rsi), %rax -+ mov 40 (%rsi), %r9 -+ mov 48 (%rsi), %r10 -+ mov 56 (%rsi), %r11 -+ sub 32 (%rdi), %rax -+ sub 40 (%rdi), %r9 -+ sub 48 (%rdi), %r10 -+ sub 56 (%rdi), %r11 -+ -+ or %r9, %rax -+ or %r11, %r10 -+ or %r10, %rax -+ jnz L(memcmp32) -+ -+ lea 64 (%rsi), %rsi -+ lea 64 (%rdi), %rdi -+ -+ sub $64, %rdx -+ dec %rcx -+ jnz L(memcmppreloop) -+ -+# .p2align 4 -+ -+L(memcmppreskip): -+ cmp $2048, %rdx -+ ja L(memcmppreafter) -+ -+ test %edx, %edx -+ jnz L(memcmp32) -+ -+ xor %eax, %eax -+ ret -+ -+ .p2align 4 -+ -+L(memcmppreafter): -+ -+L(memcmp128try): -+ -+L(memcmp128): # 128-byte -+ mov %rdx, %rcx -+ shr $7, %rcx -+ jz L(memcmp128skip) -+ -+ .p2align 4 -+ -+L(memcmp128loop): -+ prefetcht0 512 (%rsi) -+ prefetcht0 512 (%rdi) -+ -+ mov (%rsi), %rax -+ mov 8 (%rsi), %r8 -+ sub (%rdi), %rax -+ sub 8 (%rdi), %r8 -+ mov 16 (%rsi), %r9 -+ mov 24 (%rsi), %r10 -+ sub 16 (%rdi), %r9 -+ sub 24 (%rdi), %r10 -+ -+ or %r8, %rax -+ or %r9, %r10 -+ or %r10, %rax -+ -+ mov 32 (%rsi), %r8 -+ mov 40 (%rsi), %r9 -+ sub 32 (%rdi), %r8 -+ sub 40 (%rdi), %r9 -+ mov 48 (%rsi), %r10 -+ mov 56 (%rsi), %r11 -+ sub 48 (%rdi), %r10 -+ sub 56 (%rdi), %r11 -+ -+ or %r9, %r8 -+ or %r11, %r10 -+ or %r10, %r8 -+ -+ or %r8, %rax -+ jnz L(memcmp32) -+ -+ prefetcht0 576 (%rsi) -+ prefetcht0 576 (%rdi) -+ -+ mov 64 (%rsi), %rax -+ mov 72 (%rsi), %r8 -+ sub 64 (%rdi), %rax -+ sub 72 (%rdi), %r8 -+ mov 80 (%rsi), %r9 -+ mov 88 (%rsi), %r10 -+ sub 80 (%rdi), %r9 -+ sub 88 (%rdi), %r10 -+ -+ or %r8, %rax -+ or %r9, %r10 -+ or %r10, %rax -+ -+ mov 96 (%rsi), %r8 -+ mov 104 (%rsi), %r9 -+ sub 96 (%rdi), %r8 -+ sub 104 (%rdi), %r9 -+ mov 112 (%rsi), %r10 -+ mov 120 (%rsi), %r11 -+ sub 112 (%rdi), %r10 -+ sub 120 (%rdi), %r11 -+ -+ or %r9, %r8 -+ or %r11, %r10 -+ or %r10, %r8 -+ -+ or %r8, %rax -+ jnz L(memcmp32) -+ -+ sub $128, %rdx -+ dec %rcx -+ -+ lea 128 (%rsi), %rsi -+ lea 128 (%rdi), %rdi -+ -+ jnz L(memcmp128loop) -+ -+L(memcmp128skip): -+ and $127, %edx -+ jnz L(memcmp32) -+ -+ xor %eax, %eax -+ ret -+ -+END (memcmp) - - #undef bcmp - weak_alias (memcmp, bcmp) -Index: sysdeps/x86_64/strcmp.S -=================================================================== ---- sysdeps/x86_64/strcmp.S.orig -+++ sysdeps/x86_64/strcmp.S -@@ -1,2108 +1,490 @@ --/* Highly optimized version for x86-64. -- Copyright (C) 1999, 2000, 2002, 2003, 2005, 2009 -- Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Based on i686 version contributed by Ulrich Drepper -- , 1999. -- Updated with SSE2 support contributed by Intel Corporation. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ - - #include - #include "asm-syntax.h" - #include "bp-sym.h" - #include "bp-asm.h" - --#undef UPDATE_STRNCMP_COUNTER -- - #ifndef LABEL - #define LABEL(l) L(l) - #endif - --#ifdef USE_AS_STRNCMP --/* Since the counter, %r11, is unsigned, we branch to strcmp_exitz -- if the new counter > the old one or is 0. */ --# define UPDATE_STRNCMP_COUNTER \ -- /* calculate left number to compare */ \ -- lea -16(%rcx, %r11), %r9; \ -- cmp %r9, %r11; \ -- jb LABEL(strcmp_exitz); \ -- test %r9, %r9; \ -- je LABEL(strcmp_exitz); \ -- mov %r9, %r11 -- --#else --# define UPDATE_STRNCMP_COUNTER -+#ifndef USE_AS_STRNCMP - # ifndef STRCMP - # define STRCMP strcmp - # endif - #endif -- --#ifndef USE_SSSE3 - .text --#else -- .section .text.ssse3,"ax",@progbits --#endif - --ENTRY (BP_SYM (STRCMP)) --#ifdef NOT_IN_libc --/* Simple version since we can't use SSE registers in ld.so. */ --L(oop): movb (%rdi), %al -- cmpb (%rsi), %al -- jne L(neq) -- incq %rdi -- incq %rsi -- testb %al, %al -- jnz L(oop) -- -- xorl %eax, %eax -- ret -- --L(neq): movl $1, %eax -- movl $-1, %ecx -- cmovbl %ecx, %eax -- ret --END (BP_SYM (STRCMP)) --#else /* NOT_IN_libc */ --/* -- * This implementation uses SSE to compare up to 16 bytes at a time. -- */ --#ifdef USE_AS_STRNCMP -- test %rdx, %rdx -- je LABEL(strcmp_exitz) -- cmp $1, %rdx -- je LABEL(Byte0) -- mov %rdx, %r11 --#endif -- mov %esi, %ecx -- mov %edi, %eax --/* Use 64bit AND here to avoid long NOP padding. */ -- and $0x3f, %rcx /* rsi alignment in cache line */ -- and $0x3f, %rax /* rdi alignment in cache line */ -- cmp $0x30, %ecx -- ja LABEL(crosscache) /* rsi: 16-byte load will cross cache line */ -- cmp $0x30, %eax -- ja LABEL(crosscache) /* rdi: 16-byte load will cross cache line */ -- movlpd (%rdi), %xmm1 -- movlpd (%rsi), %xmm2 -- movhpd 8(%rdi), %xmm1 -- movhpd 8(%rsi), %xmm2 -- pxor %xmm0, %xmm0 /* clear %xmm0 for null char checks */ -- pcmpeqb %xmm1, %xmm0 /* Any null chars? */ -- pcmpeqb %xmm2, %xmm1 /* compare first 16 bytes for equality */ -- psubb %xmm0, %xmm1 /* packed sub of comparison results*/ -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx /* if first 16 bytes are same, edx == 0xffff */ -- jnz LABEL(less16bytes) /* If not, find different value or null char */ --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) /* finish comparision */ --#endif -- add $16, %rsi /* prepare to search next 16 bytes */ -- add $16, %rdi /* prepare to search next 16 bytes */ -+ENTRY (STRCMP) # (const char *, const char *) - -- /* -- * Determine source and destination string offsets from 16-byte alignment. -- * Use relative offset difference between the two to determine which case -- * below to use. -- */ -- .p2align 4 --LABEL(crosscache): -- and $0xfffffffffffffff0, %rsi /* force %rsi is 16 byte aligned */ -- and $0xfffffffffffffff0, %rdi /* force %rdi is 16 byte aligned */ -- mov $0xffff, %edx /* for equivalent offset */ -- xor %r8d, %r8d -- and $0xf, %ecx /* offset of rsi */ -- and $0xf, %eax /* offset of rdi */ -- cmp %eax, %ecx -- je LABEL(ashr_0) /* rsi and rdi relative offset same */ -- ja LABEL(bigger) -- mov %edx, %r8d /* r8d is offset flag for exit tail */ -- xchg %ecx, %eax -- xchg %rsi, %rdi --LABEL(bigger): -- lea 15(%rax), %r9 -- sub %rcx, %r9 -- lea LABEL(unaligned_table)(%rip), %r10 -- movslq (%r10, %r9,4), %r9 -- lea (%r10, %r9), %r10 -- jmp *%r10 /* jump to corresponding case */ -- --/* -- * The following cases will be handled by ashr_0 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(0~15) n(0~15) 15(15+ n-n) ashr_0 -- */ -- .p2align 4 --LABEL(ashr_0): -- -- movdqa (%rsi), %xmm1 -- pxor %xmm0, %xmm0 /* clear %xmm0 for null char check */ -- pcmpeqb %xmm1, %xmm0 /* Any null chars? */ -- pcmpeqb (%rdi), %xmm1 /* compare 16 bytes for equality */ -- psubb %xmm0, %xmm1 /* packed sub of comparison results*/ -- pmovmskb %xmm1, %r9d -- shr %cl, %edx /* adjust 0xffff for offset */ -- shr %cl, %r9d /* adjust for 16-byte offset */ -- sub %r9d, %edx -- /* -- * edx must be the same with r9d if in left byte (16-rcx) is equal to -- * the start from (16-rax) and no null char was seen. -- */ -- jne LABEL(less32bytes) /* mismatch or null char */ -- UPDATE_STRNCMP_COUNTER -- mov $16, %rcx -- mov $16, %r9 -- pxor %xmm0, %xmm0 /* clear xmm0, may have changed above */ -- -- /* -- * Now both strings are aligned at 16-byte boundary. Loop over strings -- * checking 32-bytes per iteration. -- */ -- .p2align 4 --LABEL(loop_ashr_0): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) /* mismatch or null char seen */ -+ xor %ecx, %ecx - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -- add $16, %rcx -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -- add $16, %rcx -- jmp LABEL(loop_ashr_0) -+#ifdef USE_AS_STRNCMP // (const char *, const char *, size_t) -+ mov %r14, -8 (%rsp) -+ mov %rdx, %r14 - --/* -- * The following cases will be handled by ashr_1 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(15) n -15 0(15 +(n-15) - n) ashr_1 -- */ -- .p2align 4 --LABEL(ashr_1): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 /* Any null chars? */ -- pslldq $15, %xmm2 /* shift first string to align with second */ -- pcmpeqb %xmm1, %xmm2 /* compare 16 bytes for equality */ -- psubb %xmm0, %xmm2 /* packed sub of comparison results*/ -- pmovmskb %xmm2, %r9d -- shr %cl, %edx /* adjust 0xffff for offset */ -- shr %cl, %r9d /* adjust for 16-byte offset */ -- sub %r9d, %edx -- jnz LABEL(less32bytes) /* mismatch or null char seen */ -- movdqa (%rdi), %xmm3 -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads*/ -- mov $1, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 1(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_1): -- add $16, %r10 -- jg LABEL(nibble_ashr_1) /* cross page boundary */ -- --LABEL(gobble_ashr_1): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 /* store for next cycle */ -- --#ifndef USE_SSSE3 -- psrldq $1, %xmm3 -- pslldq $15, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -- --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ test %rdx, %rdx -+ mov %edx, %eax -+ jz LABEL(exitz) - #endif -- add $16, %rcx -- movdqa %xmm4, %xmm3 - -- add $16, %r10 -- jg LABEL(nibble_ashr_1) /* cross page boundary */ -+LABEL(aligntry): -+ mov %rsi, %r8 # align by "source" -+ and $8 - 1, %r8 # between 0 and 8 characters compared -+ jz LABEL(alignafter) - -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 /* store for next cycle */ -- --#ifndef USE_SSSE3 -- psrldq $1, %xmm3 -- pslldq $15, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+LABEL(align): -+ sub $8, %r8 - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_1) -- -- /* -- * Nibble avoids loads across page boundary. This is to avoid a potential -- * access into unmapped memory. -- */ -- .p2align 4 --LABEL(nibble_ashr_1): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char*/ -- pmovmskb %xmm0, %edx -- test $0xfffe, %edx -- jnz LABEL(ashr_1_exittail) /* find null char*/ -+ .p2align 4 -+ -+LABEL(alignloop): -+ mov (%rsi, %rcx), %al -+ mov (%rdi, %rcx), %dl - - #ifdef USE_AS_STRNCMP -- cmp $14, %r11 -- jbe LABEL(ashr_1_exittail) -+ dec %r14 -+ jl LABEL(exitafter) - #endif - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 /* substract 4K from %r10 */ -- jmp LABEL(gobble_ashr_1) -- -- /* -- * Once find null char, determine if there is a string mismatch -- * before the null char. -- */ -- .p2align 4 --LABEL(ashr_1_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $1, %xmm0 -- psrldq $1, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_2 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(14~15) n -14 1(15 +(n-14) - n) ashr_2 -- */ -- .p2align 4 --LABEL(ashr_2): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $14, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $2, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 2(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_2): -- add $16, %r10 -- jg LABEL(nibble_ashr_2) -- --LABEL(gobble_ashr_2): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $2, %xmm3 -- pslldq $14, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ cmp %dl, %al # check if same character -+ jne LABEL(exitafter) -+ test %al, %al # check if character a NUL -+ jz LABEL(exitafter) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ inc %ecx - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ inc %r8 -+ jnz LABEL(alignloop) - -- add $16, %r10 -- jg LABEL(nibble_ashr_2) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $2, %xmm3 -- pslldq $14, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ .p2align 4 - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+LABEL(alignafter): - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_2) -- -- .p2align 4 --LABEL(nibble_ashr_2): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xfffc, %edx -- jnz LABEL(ashr_2_exittail) -+ mov %r15, -32 (%rsp) -+ mov %rbp, -24 (%rsp) -+ mov %rbx, -16 (%rsp) - --#ifdef USE_AS_STRNCMP -- cmp $13, %r11 -- jbe LABEL(ashr_2_exittail) --#endif -+LABEL(pagealigntry): # page align by "destination" -+ mov $4096, %r15d # page size is 4096 -+ lea (%rdi, %rcx), %ebp -+ and $4095, %ebp # page mask -+ sub %r15d, %ebp - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_2) -- -- .p2align 4 --LABEL(ashr_2_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $2, %xmm0 -- psrldq $2, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_3 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(13~15) n -13 2(15 +(n-13) - n) ashr_3 -- */ -- .p2align 4 --LABEL(ashr_3): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $13, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $3, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 3(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_3): -- add $16, %r10 -- jg LABEL(nibble_ashr_3) -- --LABEL(gobble_ashr_3): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $3, %xmm3 -- pslldq $13, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+LABEL(64): # 64-byte -+ mov $0xfefefefefefefeff, %rbx # magic number - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ .p2align 4 - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+LABEL(64loop): -+ add $64, %ebp # check if "destination" crosses a page unevenly -+ jle LABEL(64gobble) - -- add $16, %r10 -- jg LABEL(nibble_ashr_3) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $3, %xmm3 -- pslldq $13, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ sub %r15d, %ebp -+ lea 64 (%rcx), %r8 - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ .p2align 4 - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_3) -- -- .p2align 4 --LABEL(nibble_ashr_3): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xfff8, %edx -- jnz LABEL(ashr_3_exittail) -+LABEL(64nibble): -+ mov (%rsi, %rcx), %al -+ mov (%rdi, %rcx), %dl - - #ifdef USE_AS_STRNCMP -- cmp $12, %r11 -- jbe LABEL(ashr_3_exittail) -+ dec %r14 -+ jl .exit - #endif - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_3) -- -- .p2align 4 --LABEL(ashr_3_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $3, %xmm0 -- psrldq $3, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_4 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(12~15) n -12 3(15 +(n-12) - n) ashr_4 -- */ -- .p2align 4 --LABEL(ashr_4): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $12, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $4, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 4(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_4): -- add $16, %r10 -- jg LABEL(nibble_ashr_4) -- --LABEL(gobble_ashr_4): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $4, %xmm3 -- pslldq $12, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ cmp %dl, %al # check if same character -+ jne .exit -+ test %al, %al # check if character a NUL -+ jz .exit - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ inc %ecx -+ -+ cmp %ecx, %r8d -+ ja LABEL(64nibble) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ .p2align 4 - -- add $16, %r10 -- jg LABEL(nibble_ashr_4) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $4, %xmm3 -- pslldq $12, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+LABEL(64gobble): -+ mov (%rsi, %rcx), %rax -+ mov (%rdi, %rcx), %rdx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_4) -- -- .p2align 4 --LABEL(nibble_ashr_4): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xfff0, %edx -- jnz LABEL(ashr_4_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $11, %r11 -- jbe LABEL(ashr_4_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_4) -- -- .p2align 4 --LABEL(ashr_4_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $4, %xmm0 -- psrldq $4, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_5 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(11~15) n - 11 4(15 +(n-11) - n) ashr_5 -- */ -- .p2align 4 --LABEL(ashr_5): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $11, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $5, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 5(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_5): -- add $16, %r10 -- jg LABEL(nibble_ashr_5) -- --LABEL(gobble_ashr_5): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $5, %xmm3 -- pslldq $11, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_5) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $5, %xmm3 -- pslldq $11, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ mov 8 (%rsi, %rcx), %rax -+ mov 8 (%rdi, %rcx), %rdx -+ add $8, %ecx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_5) -- -- .p2align 4 --LABEL(nibble_ashr_5): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xffe0, %edx -- jnz LABEL(ashr_5_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $10, %r11 -- jbe LABEL(ashr_5_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_5) -- -- .p2align 4 --LABEL(ashr_5_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $5, %xmm0 -- psrldq $5, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_6 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(10~15) n - 10 5(15 +(n-10) - n) ashr_6 -- */ -- .p2align 4 --LABEL(ashr_6): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $10, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $6, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 6(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_6): -- add $16, %r10 -- jg LABEL(nibble_ashr_6) -- --LABEL(gobble_ashr_6): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $6, %xmm3 -- pslldq $10, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_6) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $6, %xmm3 -- pslldq $10, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ mov 8 (%rsi, %rcx), %rax -+ mov 8 (%rdi, %rcx), %rdx -+ add $8, %ecx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_6) -- -- .p2align 4 --LABEL(nibble_ashr_6): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xffc0, %edx -- jnz LABEL(ashr_6_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $9, %r11 -- jbe LABEL(ashr_6_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_6) -- -- .p2align 4 --LABEL(ashr_6_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $6, %xmm0 -- psrldq $6, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_7 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(9~15) n - 9 6(15 +(n - 9) - n) ashr_7 -- */ -- .p2align 4 --LABEL(ashr_7): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $9, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $7, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 7(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_7): -- add $16, %r10 -- jg LABEL(nibble_ashr_7) -- --LABEL(gobble_ashr_7): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $7, %xmm3 -- pslldq $9, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_7) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $7, %xmm3 -- pslldq $9, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ mov 8 (%rsi, %rcx), %rax -+ mov 8 (%rdi, %rcx), %rdx -+ add $8, %ecx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_7) -- -- .p2align 4 --LABEL(nibble_ashr_7): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xff80, %edx -- jnz LABEL(ashr_7_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $8, %r11 -- jbe LABEL(ashr_7_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_7) -- -- .p2align 4 --LABEL(ashr_7_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $7, %xmm0 -- psrldq $7, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_8 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(8~15) n - 8 7(15 +(n - 8) - n) ashr_8 -- */ -- .p2align 4 --LABEL(ashr_8): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $8, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $8, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 8(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_8): -- add $16, %r10 -- jg LABEL(nibble_ashr_8) -- --LABEL(gobble_ashr_8): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $8, %xmm3 -- pslldq $8, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_8) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $8, %xmm3 -- pslldq $8, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ mov 8 (%rsi, %rcx), %rax -+ mov 8 (%rdi, %rcx), %rdx -+ add $8, %ecx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_8) -- -- .p2align 4 --LABEL(nibble_ashr_8): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xff00, %edx -- jnz LABEL(ashr_8_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $7, %r11 -- jbe LABEL(ashr_8_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_8) -- -- .p2align 4 --LABEL(ashr_8_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $8, %xmm0 -- psrldq $8, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_9 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(7~15) n - 7 8(15 +(n - 7) - n) ashr_9 -- */ -- .p2align 4 --LABEL(ashr_9): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $7, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $9, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 9(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_9): -- add $16, %r10 -- jg LABEL(nibble_ashr_9) -- --LABEL(gobble_ashr_9): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $9, %xmm3 -- pslldq $7, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_9) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $9, %xmm3 -- pslldq $7, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ mov 8 (%rsi, %rcx), %rax -+ mov 8 (%rdi, %rcx), %rdx -+ add $8, %ecx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 /* store for next cycle */ -- jmp LABEL(loop_ashr_9) -- -- .p2align 4 --LABEL(nibble_ashr_9): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xfe00, %edx -- jnz LABEL(ashr_9_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $6, %r11 -- jbe LABEL(ashr_9_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_9) -- -- .p2align 4 --LABEL(ashr_9_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $9, %xmm0 -- psrldq $9, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_10 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(6~15) n - 6 9(15 +(n - 6) - n) ashr_10 -- */ -- .p2align 4 --LABEL(ashr_10): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $6, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $10, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 10(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_10): -- add $16, %r10 -- jg LABEL(nibble_ashr_10) -- --LABEL(gobble_ashr_10): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $10, %xmm3 -- pslldq $6, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_10) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $10, %xmm3 -- pslldq $6, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ mov 8 (%rsi, %rcx), %rax -+ mov 8 (%rdi, %rcx), %rdx -+ add $8, %ecx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_10) -- -- .p2align 4 --LABEL(nibble_ashr_10): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xfc00, %edx -- jnz LABEL(ashr_10_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $5, %r11 -- jbe LABEL(ashr_10_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_10) -- -- .p2align 4 --LABEL(ashr_10_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $10, %xmm0 -- psrldq $10, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_11 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(5~15) n - 5 10(15 +(n - 5) - n) ashr_11 -- */ -- .p2align 4 --LABEL(ashr_11): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $5, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $11, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 11(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_11): -- add $16, %r10 -- jg LABEL(nibble_ashr_11) -- --LABEL(gobble_ashr_11): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $11, %xmm3 -- pslldq $5, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_11) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $11, %xmm3 -- pslldq $5, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ mov 8 (%rsi, %rcx), %rax -+ mov 8 (%rdi, %rcx), %rdx -+ add $8, %ecx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ sub $8, %r14 -+ jl LABEL(tail) - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_11) -- -- .p2align 4 --LABEL(nibble_ashr_11): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xf800, %edx -- jnz LABEL(ashr_11_exittail) -+ mov %rbx, %r8 -+ add %rax, %r8 -+ sbb %r10, %r10 - --#ifdef USE_AS_STRNCMP -- cmp $4, %r11 -- jbe LABEL(ashr_11_exittail) --#endif -+ mov %rbx, %r9 -+ add %rdx, %r9 -+ sbb %r11, %r11 - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_11) -- -- .p2align 4 --LABEL(ashr_11_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $11, %xmm0 -- psrldq $11, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_12 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(4~15) n - 4 11(15 +(n - 4) - n) ashr_12 -- */ -- .p2align 4 --LABEL(ashr_12): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $4, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $12, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 12(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_12): -- add $16, %r10 -- jg LABEL(nibble_ashr_12) -- --LABEL(gobble_ashr_12): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $12, %xmm3 -- pslldq $4, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ xor %rax, %r8 -+ or %rbx, %r8 -+ sub %r10, %r8 -+ jnz LABEL(tail) - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ xor %rdx, %r9 -+ or %rbx, %r9 -+ sub %r11, %r9 -+ jnz LABEL(tail) - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %rdx, %rax -+ jne LABEL(tail) - -- add $16, %r10 -- jg LABEL(nibble_ashr_12) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $12, %xmm3 -- pslldq $4, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ add $8, %ecx - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+ jmp LABEL(64loop) -+ -+LABEL(64after): - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_12) -- -- .p2align 4 --LABEL(nibble_ashr_12): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xf000, %edx -- jnz LABEL(ashr_12_exittail) -+LABEL(tailtry): -+# mov (%rsi, %rcx), %rax -+# mov (%rdi, %rcx), %rdx -+# add $8, %rcx - -+LABEL(tail): # byte tail - #ifdef USE_AS_STRNCMP -- cmp $3, %r11 -- jbe LABEL(ashr_12_exittail) -+ add $7, %r14 - #endif - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_12) -- -- .p2align 4 --LABEL(ashr_12_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $12, %xmm0 -- psrldq $12, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_13 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(3~15) n - 3 12(15 +(n - 3) - n) ashr_13 -- */ -- .p2align 4 --LABEL(ashr_13): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $3, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $13, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 13(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_13): -- add $16, %r10 -- jg LABEL(nibble_ashr_13) -- --LABEL(gobble_ashr_13): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $13, %xmm3 -- pslldq $3, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ cmp %dl, %al # check if same character -+ jne .exit -+ test %al, %al # check if character a NUL -+ jz .exit -+ -+ shr $8, %rax -+ shr $8, %rdx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ dec %r14 -+ jl .exit - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %dl, %al -+ jne .exit -+ test %al, %al -+ jz .exit - -- add $16, %r10 -- jg LABEL(nibble_ashr_13) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $13, %xmm3 -- pslldq $3, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ shr $8, %rax -+ shr $8, %rdx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ dec %r14 -+ jl .exit - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_13) -- -- .p2align 4 --LABEL(nibble_ashr_13): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xe000, %edx -- jnz LABEL(ashr_13_exittail) -+ cmp %dl, %al -+ jne .exit -+ test %al, %al -+ jz .exit -+ -+ shr $8, %rax -+ shr $8, %rdx - - #ifdef USE_AS_STRNCMP -- cmp $2, %r11 -- jbe LABEL(ashr_13_exittail) -+ dec %r14 -+ jl .exit - #endif - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_13) -- -- .p2align 4 --LABEL(ashr_13_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $13, %xmm0 -- psrldq $13, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_14 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(2~15) n - 2 13(15 +(n - 2) - n) ashr_14 -- */ -- .p2align 4 --LABEL(ashr_14): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $2, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $14, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 14(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_14): -- add $16, %r10 -- jg LABEL(nibble_ashr_14) -- --LABEL(gobble_ashr_14): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $14, %xmm3 -- pslldq $2, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ cmp %dl, %al -+ jne .exit -+ test %al, %al -+ jz .exit -+ -+ shr $8, %rax -+ shr $8, %rdx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ dec %r14 -+ jl .exit - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %dl, %al -+ jne .exit -+ test %al, %al -+ jz .exit - -- add $16, %r10 -- jg LABEL(nibble_ashr_14) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $14, %xmm3 -- pslldq $2, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ shr $8, %eax -+ shr $8, %edx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ dec %r14 -+ jl .exit - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_14) -- -- .p2align 4 --LABEL(nibble_ashr_14): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0xc000, %edx -- jnz LABEL(ashr_14_exittail) -+ cmp %dl, %al -+ jne .exit -+ test %al, %al -+ jz .exit -+ -+ shr $8, %eax -+ shr $8, %edx - - #ifdef USE_AS_STRNCMP -- cmp $1, %r11 -- jbe LABEL(ashr_14_exittail) -+ dec %r14 -+ jl .exit - #endif - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_14) -- -- .p2align 4 --LABEL(ashr_14_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $14, %xmm0 -- psrldq $14, %xmm3 -- jmp LABEL(aftertail) -- --/* -- * The following cases will be handled by ashr_15 -- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case -- * n(1~15) n - 1 14(15 +(n - 1) - n) ashr_15 -- */ -- .p2align 4 --LABEL(ashr_15): -- pxor %xmm0, %xmm0 -- movdqa (%rdi), %xmm2 -- movdqa (%rsi), %xmm1 -- pcmpeqb %xmm1, %xmm0 -- pslldq $1, %xmm2 -- pcmpeqb %xmm1, %xmm2 -- psubb %xmm0, %xmm2 -- pmovmskb %xmm2, %r9d -- shr %cl, %edx -- shr %cl, %r9d -- sub %r9d, %edx -- jnz LABEL(less32bytes) -- -- movdqa (%rdi), %xmm3 -- -- UPDATE_STRNCMP_COUNTER -- -- pxor %xmm0, %xmm0 -- mov $16, %rcx /* index for loads */ -- mov $15, %r9d /* byte position left over from less32bytes case */ -- /* -- * Setup %r10 value allows us to detect crossing a page boundary. -- * When %r10 goes positive we have crossed a page boundary and -- * need to do a nibble. -- */ -- lea 15(%rdi), %r10 -- and $0xfff, %r10 /* offset into 4K page */ -- -- sub $0x1000, %r10 /* subtract 4K pagesize */ -- -- .p2align 4 --LABEL(loop_ashr_15): -- add $16, %r10 -- jg LABEL(nibble_ashr_15) -- --LABEL(gobble_ashr_15): -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $15, %xmm3 -- pslldq $1, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ cmp %dl, %al -+ jne .exit -+ test %al, %al -+ jz .exit -+ -+ shr $8, %eax -+ shr $8, %edx - - #ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) -+ dec %r14 -+ jl .exit - #endif - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -+ cmp %dl, %al -+ jne .exit -+# test %al, %al -+# jz .exit - -- add $16, %r10 -- jg LABEL(nibble_ashr_15) /* cross page boundary */ -- -- movdqa (%rsi, %rcx), %xmm1 -- movdqa (%rdi, %rcx), %xmm2 -- movdqa %xmm2, %xmm4 -- --#ifndef USE_SSSE3 -- psrldq $15, %xmm3 -- pslldq $1, %xmm2 -- por %xmm3, %xmm2 /* merge into one 16byte value */ --#else -- palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ --#endif -- -- pcmpeqb %xmm1, %xmm0 -- pcmpeqb %xmm2, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- sub $0xffff, %edx -- jnz LABEL(exit) -+ .p2align 4,, 15 - --#ifdef USE_AS_STRNCMP -- sub $16, %r11 -- jbe LABEL(strcmp_exitz) --#endif -+LABEL(tailafter): - -- add $16, %rcx -- movdqa %xmm4, %xmm3 -- jmp LABEL(loop_ashr_15) -- -- .p2align 4 --LABEL(nibble_ashr_15): -- pcmpeqb %xmm3, %xmm0 /* check nibble for null char */ -- pmovmskb %xmm0, %edx -- test $0x8000, %edx -- jnz LABEL(ashr_15_exittail) -+.exit: -+ mov -32 (%rsp), %r15 -+ mov -24 (%rsp), %rbp -+ mov -16 (%rsp), %rbx - -+ .p2align 4,, 3 -+ -+LABEL(exitafter): - #ifdef USE_AS_STRNCMP -- test %r11, %r11 -- je LABEL(ashr_15_exittail) -+ test %r14, %r14 -+ cmovl %edx, %eax - #endif - -- pxor %xmm0, %xmm0 -- sub $0x1000, %r10 -- jmp LABEL(gobble_ashr_15) -- -- .p2align 4 --LABEL(ashr_15_exittail): -- movdqa (%rsi, %rcx), %xmm1 -- psrldq $15, %xmm3 -- psrldq $15, %xmm0 -- -- .p2align 4 --LABEL(aftertail): -- pcmpeqb %xmm3, %xmm1 -- psubb %xmm0, %xmm1 -- pmovmskb %xmm1, %edx -- not %edx -- -- .p2align 4 --LABEL(exit): -- lea -16(%r9, %rcx), %rax /* locate the exact offset for rdi */ --LABEL(less32bytes): -- lea (%rdi, %rax), %rdi /* locate the exact address for first operand(rdi) */ -- lea (%rsi, %rcx), %rsi /* locate the exact address for second operand(rsi) */ -- test %r8d, %r8d -- jz LABEL(ret) -- xchg %rsi, %rdi /* recover original order according to flag(%r8d) */ -- -- .p2align 4 --LABEL(ret): --LABEL(less16bytes): -- bsf %rdx, %rdx /* find and store bit index in %rdx */ -+ movzx %al, %eax -+ movzx %dl, %edx -+ sub %eax, %edx -+ xchg %edx, %eax - - #ifdef USE_AS_STRNCMP -- sub %rdx, %r11 -- jbe LABEL(strcmp_exitz) -+LABEL(exitz): -+ mov -8 (%rsp), %r14 - #endif -- movzbl (%rsi, %rdx), %ecx -- movzbl (%rdi, %rdx), %eax -- -- sub %ecx, %eax -- ret -+ ret - --LABEL(strcmp_exitz): -- xor %eax, %eax -- ret -- -- .p2align 4 --LABEL(Byte0): -- movzx (%rsi), %ecx -- movzx (%rdi), %eax -- -- sub %ecx, %eax -- ret --END (BP_SYM (STRCMP)) -- -- .section .rodata,"a",@progbits -- .p2align 3 --LABEL(unaligned_table): -- .int LABEL(ashr_1) - LABEL(unaligned_table) -- .int LABEL(ashr_2) - LABEL(unaligned_table) -- .int LABEL(ashr_3) - LABEL(unaligned_table) -- .int LABEL(ashr_4) - LABEL(unaligned_table) -- .int LABEL(ashr_5) - LABEL(unaligned_table) -- .int LABEL(ashr_6) - LABEL(unaligned_table) -- .int LABEL(ashr_7) - LABEL(unaligned_table) -- .int LABEL(ashr_8) - LABEL(unaligned_table) -- .int LABEL(ashr_9) - LABEL(unaligned_table) -- .int LABEL(ashr_10) - LABEL(unaligned_table) -- .int LABEL(ashr_11) - LABEL(unaligned_table) -- .int LABEL(ashr_12) - LABEL(unaligned_table) -- .int LABEL(ashr_13) - LABEL(unaligned_table) -- .int LABEL(ashr_14) - LABEL(unaligned_table) -- .int LABEL(ashr_15) - LABEL(unaligned_table) -- .int LABEL(ashr_0) - LABEL(unaligned_table) --#endif /* NOT_IN_libc */ -+END (strcmp) - libc_hidden_builtin_def (STRCMP) -Index: sysdeps/x86_64/memcpy.S -=================================================================== ---- sysdeps/x86_64/memcpy.S.orig -+++ sysdeps/x86_64/memcpy.S -@@ -39,7 +39,7 @@ - - .text - --#if defined PIC && !defined NOT_IN_libc -+#if defined PIC && !defined NOT_IN_libc && !defined USE_AS_BCOPY - ENTRY (__memcpy_chk) - - cmpq %rdx, %rcx diff --git a/glibc-fini-unwind.diff b/glibc-fini-unwind.diff new file mode 100644 index 0000000..e2da629 --- /dev/null +++ b/glibc-fini-unwind.diff @@ -0,0 +1,60 @@ +Index: sysdeps/x86_64/elf/initfini.c +=================================================================== +--- sysdeps/x86_64/elf/initfini.c.orig 2004-08-16 06:50:55.000000000 +0200 ++++ sysdeps/x86_64/elf/initfini.c 2010-04-16 16:41:11.000000000 +0200 +@@ -44,6 +44,25 @@ + * crtn.s puts the corresponding function epilogues + in the .init and .fini sections. */ + ++/* The unwind annotation for _fini is peculiar for good reasons: ++ (a) We need a real function that isn't constructed separately ++ (i.e. one which has a .size directive) in order to attach unwind ++ info to it. Hence _fini is a wrapper around _real_fini, the ++ former being a normal function, the latter being the first ++ instruction of the traditional _fini. ++ (b) We must not fiddle with the stack pointer in _real_fini, ++ as we wouldn't be able to describe the effects in unwind info ++ (c) some versions of GCC have no correct unwind info for ++ __do_global_dtors_aux, meaning they can't properly restore %rbp ++ (unwinding through it is possible but later up when we next ++ need %rbp we can't access it anymore) ++ Therefore we save/restore it in _fini for uses later up the call chain. ++ But we don't make the CFA use that register (that would lead to ++ the above problem) ++ (d) We want an 16-aligned stack pointer at _real_fini. Because of (a) ++ we can't align it in _real_fini, hence we do it in the caller by ++ subtracting 8, making in 8mod16 which the call then make 0mod16 ++ again. */ + __asm__ ("\n\ + #include \"defs.h\"\n\ + \n\ +@@ -88,16 +107,28 @@ _init:\n\ + .globl _fini\n\ + .type _fini,@function\n\ + _fini:\n\ ++ .cfi_startproc\n\ ++ push %rbp\n\ ++ .cfi_def_cfa_offset 16\n\ ++ .cfi_offset 6,-16\n\ + subq $8, %rsp\n\ ++ .cfi_def_cfa_offset 24\n\ ++ call _real_fini\n\ ++ addq $8, %rsp\n\ ++ .cfi_def_cfa_offset 16\n\ ++ pop %rbp\n\ ++ ret\n\ ++ .cfi_endproc\n\ + ALIGN\n\ + END_FINI\n\ ++.size _fini, .-_fini\n\ ++_real_fini:\n\ + \n\ + /*@_fini_PROLOG_ENDS*/\n\ + call i_am_not_a_leaf@PLT\n\ + \n\ + /*@_fini_EPILOG_BEGINS*/\n\ + .section .fini\n\ +- addq $8, %rsp\n\ + ret\n\ + END_FINI\n\ + \n\ diff --git a/glibc-gconvcache-s390.diff b/glibc-gconvcache-s390.diff new file mode 100644 index 0000000..93d58c7 --- /dev/null +++ b/glibc-gconvcache-s390.diff @@ -0,0 +1,22 @@ +Index: glibc/sysdeps/s390/s390-64/Makefile +=================================================================== +--- sysdeps/s390/s390-64/Makefile 2009-08-03 10:18:31.000000000 +0200 ++++ sysdeps/s390/s390-64/Makefile 2010-04-07 10:01:35.000000000 +0200 +@@ -74,5 +74,17 @@ $(objpfx)gconv-modules-s390: gconv-modul + + $(inst_gconvdir)/gconv-modules: $(objpfx)gconv-modules-s390 $(+force) + $(do-install) ++ifeq (no,$(cross-compiling)) ++# Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary ++# if this libc has more gconv modules than the previously installed one. ++ if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \ ++ LC_ALL=C LANGUAGE=C \ ++ $(common-objpfx)elf/ld.so --library-path $(rpath-link) \ ++ $(common-objpfx)iconv/iconvconfig \ ++ $(addprefix --prefix=,$(install_root)); \ ++ fi ++else ++ @echo '*@*@*@ You should recreate $(inst_gconvdir)/gconv-modules.cache' ++endif + + endif diff --git a/glibc-malloc-arena-max.diff b/glibc-malloc-arena-max.diff new file mode 100644 index 0000000..24b91dc --- /dev/null +++ b/glibc-malloc-arena-max.diff @@ -0,0 +1,235 @@ +Allow M_ARENA_MAX / MALLOC_ARENA_MAX limit even with PER_THREAD disabled + +With the new PER_THREAD compile-time option, the allocator also offers +a way to limit the total number of arenas using MALLOC_ARENA_MAX +environment variable or mallopt(M_ARENA_MAX). + +In principle, this feature is not tied to the PER_THREAD option. This +patch makes it possible to use it even with the default compilation +settings. + +One motivation to limit the number of arenas may be libhugetlbfs users +that rely on its __morecore hook providing hugetlbfs-backed memory for +the allocator - this can work only with a single arena and multi-threaded +programs wishing to use this feature need a way to limit the allocator +to a single arena. Another motivation is avoiding pathological behavior +in extremely thread-intensive applications. + + +2011-02-04 Petr Baudis + + * malloc/arena.c: Define and manage narenas even ifndef + PER_THREAD. + * malloc/arena.c (ptmalloc_init_minimal): Likewise. + * malloc/arena.c (_int_new_arena): Likewise. + * malloc/arena.c (ptmalloc_init): Implement MALLOC_ARENA_MAX + even ifndef PER_THREAD. + * malloc/arena.c (reused_arena): Split off get_narenas_limit(), + define even ifndef PER_THREAD. + * malloc/arena.c (arena_get2): Adjust for get_narenas_limit() + split, call reused_arena even ifndef PER_THREAD. + * malloc/hooks.c (public_gET_STATe): Set arena_max, narenas + even ifndef PER_THREAD. + * malloc/hooks.c (public_sET_STATe): Likewise. + * malloc/malloc.c (malloc_par): Define arena_max even ifndef + PER_THREAD. + * malloc/malloc.c (mALLOPt): Implement M_ARENA_MAX even ifndef + PER_THREAD. + * malloc/malloc.c: Remove redundant M_* defines. + +diff --git a/malloc/arena.c b/malloc/arena.c +index 4d0deef..ea80724 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -78,8 +78,8 @@ extern int sanity_check_heap_info_alignment[(sizeof (heap_info) + + static tsd_key_t arena_key; + static mutex_t list_lock; +-#ifdef PER_THREAD + static size_t narenas; ++#ifdef PER_THREAD + static mstate free_list; + #endif + +@@ -416,8 +416,8 @@ ptmalloc_init_minimal (void) + #ifdef PER_THREAD + # define NARENAS_FROM_NCORES(n) ((n) * (sizeof(long) == 4 ? 2 : 8)) + mp_.arena_test = NARENAS_FROM_NCORES (1); +- narenas = 1; + #endif ++ narenas = 1; + } + + +@@ -574,10 +574,8 @@ ptmalloc_init (void) + { + if (memcmp (envline, "MMAP_MAX_", 9) == 0) + mALLOPt(M_MMAP_MAX, atoi(&envline[10])); +-#ifdef PER_THREAD + else if (memcmp (envline, "ARENA_MAX", 9) == 0) + mALLOPt(M_ARENA_MAX, atoi(&envline[10])); +-#endif + } + break; + #ifdef PER_THREAD +@@ -946,9 +944,9 @@ _int_new_arena(size_t size) + atomic_write_barrier (); + main_arena.next = a; + +-#ifdef PER_THREAD + ++narenas; + ++#ifdef PER_THREAD + (void)mutex_unlock(&list_lock); + #endif + +@@ -982,13 +980,9 @@ get_free_list (void) + return result; + } + +- +-static mstate +-reused_arena (void) ++static int ++get_narenas_limit (void) __attribute__((pure)) + { +- if (narenas <= mp_.arena_test) +- return NULL; +- + static int narenas_limit; + if (narenas_limit == 0) + { +@@ -1006,10 +1000,16 @@ reused_arena (void) + narenas_limit = NARENAS_FROM_NCORES (2); + } + } ++ return narenas_limit; ++} ++#endif + +- if (narenas < narenas_limit) +- return NULL; + ++/* Reuse and return one of the existing arenas; if all arenas are busy, ++ * pick one in a round-robin fashion and block until it becomes available. */ ++static mstate ++reused_arena (void) ++{ + mstate result; + static mstate next_to_use; + if (next_to_use == NULL) +@@ -1035,7 +1035,6 @@ reused_arena (void) + + return result; + } +-#endif + + static mstate + internal_function +@@ -1048,10 +1047,15 @@ arena_get2(a_tsd, size) mstate a_tsd; size_t size; + mstate a; + + #ifdef PER_THREAD +- if ((a = get_free_list ()) == NULL +- && (a = reused_arena ()) == NULL) +- /* Nothing immediately available, so generate a new arena. */ +- a = _int_new_arena(size); ++ if ((a = get_free_list ()) == NULL) ++ { ++ if (narenas > mp_.arena_test && narenas >= get_narenas_limit()) ++ a = reused_arena (); ++ else ++ /* Nothing immediately available, but we can still generate more ++ * arenas, so get a new one. */ ++ a = _int_new_arena(size); ++ } + #else + if(!a_tsd) + a = a_tsd = &main_arena; +@@ -1093,8 +1097,14 @@ arena_get2(a_tsd, size) mstate a_tsd; size_t size; + goto repeat; + } + +- /* Nothing immediately available, so generate a new arena. */ +- a = _int_new_arena(size); ++ if (__builtin_expect(mp_.arena_max > 0, 0) && narenas >= mp_.arena_max) ++ /* Try again, this time blocking in case we are still unable to find ++ * a free arena. */ ++ a = reused_arena(); ++ else ++ /* Nothing immediately available, so generate a new arena. */ ++ a = _int_new_arena(size); ++ + (void)mutex_unlock(&list_lock); + #endif + +diff --git a/malloc/hooks.c b/malloc/hooks.c +index 28845ee..e938492 100644 +--- a/malloc/hooks.c ++++ b/malloc/hooks.c +@@ -579,9 +579,9 @@ public_gET_STATe(void) + ms->max_fast = get_max_fast(); + #ifdef PER_THREAD + ms->arena_test = mp_.arena_test; ++#endif + ms->arena_max = mp_.arena_max; + ms->narenas = narenas; +-#endif + (void)mutex_unlock(&main_arena.mutex); + return (Void_t*)ms; + } +@@ -683,9 +683,9 @@ public_sET_STATe(Void_t* msptr) + if (ms->version >= 4) { + #ifdef PER_THREAD + mp_.arena_test = ms->arena_test; ++#endif + mp_.arena_max = ms->arena_max; + narenas = ms->narenas; +-#endif + } + check_malloc_state(&main_arena); + +diff --git a/malloc/malloc.c b/malloc/malloc.c +index b1d43c6..8dbadfa 100644 +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -2406,9 +2406,10 @@ struct malloc_par { + INTERNAL_SIZE_T top_pad; + INTERNAL_SIZE_T mmap_threshold; + #ifdef PER_THREAD ++ /* Lower bound for arena_max. */ + INTERNAL_SIZE_T arena_test; +- INTERNAL_SIZE_T arena_max; + #endif ++ INTERNAL_SIZE_T arena_max; + + /* Memory map support */ + int n_mmaps; +@@ -2446,13 +2447,6 @@ static struct malloc_state main_arena; + static struct malloc_par mp_; + + +-#ifdef PER_THREAD +-/* Non public mallopt parameters. */ +-#define M_ARENA_TEST -7 +-#define M_ARENA_MAX -8 +-#endif +- +- + /* Maximum size of memory handled in fastbins. */ + static INTERNAL_SIZE_T global_max_fast; + +@@ -6095,12 +6089,12 @@ int mALLOPt(param_number, value) int param_number; int value; + if (value > 0) + mp_.arena_test = value; + break; ++#endif + + case M_ARENA_MAX: + if (value > 0) + mp_.arena_max = value; + break; +-#endif + } + (void)mutex_unlock(&av->mutex); + return res; diff --git a/glibc-nss-deepbind.diff b/glibc-nss-deepbind.diff deleted file mode 100644 index 671f52f..0000000 --- a/glibc-nss-deepbind.diff +++ /dev/null @@ -1,26 +0,0 @@ -Use DEEPBIND to load the nss modules. Helps thunderbird (linked against its -own version of the ldap libs) when using nss_ldap (linked against system -libldap) leading to crashes due to incompatibilities. - -This has a downside: Linking against libraries overriding malloc() and free() -will break (unless the malloc()'d pointers by glibc are free()able by these). -This is fixable in principle, just needs some work. - -See https://bugzilla.novell.com/show_bug.cgi?id=157078 and -http://sourceware.org/bugzilla/show_bug.cgi?id=6610 - -Index: nss/nsswitch.c -=================================================================== ---- nss/nsswitch.c.orig -+++ nss/nsswitch.c -@@ -361,7 +361,9 @@ __nss_lookup_function (service_user *ni, - ".so"), - __nss_shlib_revision); - -- ni->library->lib_handle = __libc_dlopen (shlib_name); -+ ni->library->lib_handle -+ = __libc_dlopen_mode (shlib_name, -+ RTLD_LAZY | __RTLD_DLOPEN | RTLD_DEEPBIND); - if (ni->library->lib_handle == NULL) - { - /* Failed to load the library. */ diff --git a/glibc-sparc64-fxstat.diff b/glibc-sparc64-fxstat.diff deleted file mode 100644 index fa06e5a..0000000 --- a/glibc-sparc64-fxstat.diff +++ /dev/null @@ -1,7 +0,0 @@ -Index: glibc-2.10.1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c -=================================================================== ---- glibc-2.10.1.orig/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c -+++ glibc-2.10.1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c -@@ -1 +1 @@ --#include "../../fxstat.c" -+#include "../../i386/fxstat.c" diff --git a/glibc-vfprintf-positional.diff b/glibc-vfprintf-positional.diff new file mode 100644 index 0000000..9947188 --- /dev/null +++ b/glibc-vfprintf-positional.diff @@ -0,0 +1,20 @@ +2011-01-27 Petr Baudis + + * stdio-common/vfprintf.c (vfprintf): Pass correct newlen + to extend_alloca(). + +diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +index fc370e8..ecf5dfa 100644 +--- a/stdio-common/vfprintf.c ++++ b/stdio-common/vfprintf.c +@@ -1682,7 +1682,9 @@ do_positional: + { + /* Extend the array of format specifiers. */ + struct printf_spec *old = specs; +- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); ++ specs = extend_alloca (specs, nspecs_max, ++ 2 * nspecs_max ++ * sizeof (struct printf_spec)); + + /* Copy the old array's elements to the new space. */ + memmove (specs, old, nspecs * sizeof (struct printf_spec)); diff --git a/glibc.changes b/glibc.changes index adc4b56..0fa266b 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,31 @@ +------------------------------------------------------------------- +Fri Feb 4 00:46:40 CET 2011 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.3-b72646ad0c41 + - Random assortion of bugfixes, some #defines for new kernels +- Retired patches: + - glibc-2.11.3-bnc658509.diff + - glibc-2.11.3-bso12397.diff + - glibc-sparc64-fxstat.diff +- Remove the NSS hack of opening modules using RTLD_DEEPBIND. + This was useful for nss_ldap, since some applications used a different + LDAP library with clashing symbol names. However, it also created + many headaches, especially with the NSS modules not respecting + malloc() overrides. Now, sssd is used by default for LDAP resolutions + and we can therefore safely get rid of the hack. [bnc#477061] +- Remove the currently disabled AMD string function overrides. + Benchmarking did not unearth any differences that would make + convincing case for keeping the functions with all the associated + maintenance headaches; AMD does not recommend keeping their custom + versions of the functions either. +- Introduce MALLOC_ARENA_MAX and M_ARENA_MAX support [bnc#659090] +- Fixed stack unwinding past glibc _fini function (proper showing + of destructor backtraces) [bnc#585879] +- Fix gconv cache generation on s390 [bnc#592944] +- Add missing iconvconfig for refreshing gconv.cache to glibc-locale %post +- Fixed stack corruption in *printf() with large number of positional + specifiers [bnc#666179] + ------------------------------------------------------------------- Fri Jan 28 14:53:35 UTC 2011 - rguenther@novell.com diff --git a/glibc.spec b/glibc.spec index a7373d4..5b40911 100644 --- a/glibc.spec +++ b/glibc.spec @@ -68,7 +68,7 @@ Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}.tar.bz2 +Source: glibc-%{version}-b72646ad0c41.tar.bz2 Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -98,51 +98,49 @@ Patch9: glibc-2.3-regcomp.diff Patch10: glibc-2.3.2-revert_tcsetattr.diff Patch11: glibc-2.3.1.localedef.diff Patch12: glibc-2.3.2.no_archive.diff -Patch13: glibc-2.3.3-amd64-string.diff -Patch14: libm-x86-64.diff.bz2 -Patch15: glibc-2.3.90-bindresvport.blacklist.diff -Patch16: glibc-suse-note.diff -Patch17: glibc-2.4.90-no_NO.diff -Patch18: glibc-2.3.90-ld.so-madvise.diff -Patch19: glibc-2.3.3-amd64-s_ceil.diff -Patch20: glibc-2.3.3-execstack.diff -Patch21: glibc-2.4-china.diff -Patch22: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 -Patch23: glibc-2.4.90-nscd.diff -Patch24: glibc-2.3.3-nscd-db-path.diff -Patch25: glibc-2.3.5-nscd-zeronegtimeout.diff -Patch26: glibc-2.3.90-langpackdir.diff -Patch27: glibc-nptl-2.4-nofixsyscallnr.diff -Patch30: glibc-2.6-configure.diff -Patch31: glibc-2.2-sunrpc.diff -Patch32: glibc-2.8-getconf.diff -Patch33: getaddrinfo-ipv6-sanity.diff -Patch35: ppc-atomic.diff -Patch36: glibc-2.8-clone.diff -Patch37: glibc-nss-deepbind.diff -Patch39: glibc-compiled-binaries.diff -Patch40: glibc-selinux.diff -Patch41: glibc-check-native-missing-include.diff -Patch42: glibc-no-unwind-tables.diff -Patch43: glibc-2.10-nscd-nostack.diff -Patch44: glibc-cpusetsize.diff -Patch46: glibc-2.10.99-ia64-include.diff -Patch47: libm-x86-64-exceptions.diff -Patch48: glibc-uio-cell.diff -Patch54: glibc-statfs64-ia64.diff -Patch60: ld-prelink-unique.diff -Patch61: glibc-ppc64-vdso-time.diff -Patch64: glibc-gai-private4.diff -Patch65: glibc-resolv-mdnshint.diff -Patch69: glibc-nscd-hconf.diff +Patch13: libm-x86-64.diff.bz2 +Patch14: glibc-2.3.90-bindresvport.blacklist.diff +Patch15: glibc-suse-note.diff +Patch16: glibc-2.4.90-no_NO.diff +Patch17: glibc-2.3.90-ld.so-madvise.diff +Patch18: glibc-2.3.3-amd64-s_ceil.diff +Patch19: glibc-2.3.3-execstack.diff +Patch20: glibc-2.4-china.diff +Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 +Patch22: glibc-2.4.90-nscd.diff +Patch23: glibc-2.3.3-nscd-db-path.diff +Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff +Patch25: glibc-2.3.90-langpackdir.diff +Patch26: glibc-nptl-2.4-nofixsyscallnr.diff +Patch27: glibc-2.6-configure.diff +Patch28: glibc-2.2-sunrpc.diff +Patch29: glibc-2.8-getconf.diff +Patch30: getaddrinfo-ipv6-sanity.diff +Patch31: ppc-atomic.diff +Patch32: glibc-2.8-clone.diff +Patch33: glibc-compiled-binaries.diff +Patch34: glibc-selinux.diff +Patch35: glibc-check-native-missing-include.diff +Patch36: glibc-no-unwind-tables.diff +Patch37: glibc-2.10-nscd-nostack.diff +Patch38: glibc-cpusetsize.diff +Patch39: glibc-2.10.99-ia64-include.diff +Patch40: libm-x86-64-exceptions.diff +Patch41: glibc-uio-cell.diff +Patch42: glibc-statfs64-ia64.diff +Patch43: ld-prelink-unique.diff +Patch44: glibc-ppc64-vdso-time.diff +Patch45: glibc-gai-private4.diff +Patch46: glibc-resolv-mdnshint.diff +Patch47: glibc-nscd-hconf.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff +Patch50: glibc-gconvcache-s390.diff +Patch51: glibc-vfprintf-positional.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 Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff -# http://sources.redhat.com/bugzilla/show_bug.cgi?id=11155 -Patch600: glibc-sparc64-fxstat.diff -Patch601: glibc-2.11.3-bnc658509.diff -Patch602: glibc-2.11.3-bso12397.diff %description The GNU C Library provides the most important standard libraries used @@ -311,12 +309,10 @@ versions of your software. %patch10 %patch11 %patch12 -#%patch13 -# strncmp.S triggers amd64 assembler bug [bnc#540647] -#rm sysdeps/x86_64/strncmp.S -%patch14 -E +%patch13 -E # We have s_sincos.c in patch13, remove duplicate rm sysdeps/x86_64/fpu/s_sincos.S +%patch14 %patch15 %patch16 %patch17 @@ -324,48 +320,47 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch19 %patch20 %patch21 -%patch22 # avoid changing nscd_stat.c mtime to avoid code generation # differences on each rebuild touch -r nscd/nscd_stat.c nscd/s-stamp +%patch22 %patch23 %patch24 -%patch25 touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp +%patch25 %patch26 %patch27 +%patch28 +%patch29 %patch30 %patch31 %patch32 %patch33 +%patch34 %patch35 %patch36 %patch37 +%patch38 %patch39 %patch40 -%patch41 +%patch41 -p1 %patch42 -%patch43 -%patch44 -%patch46 -%patch47 +%patch43 -p1 +%patch44 -p1 +%patch45 +%patch46 -p1 +%patch47 -p1 %patch48 -p1 -%patch54 -%patch60 -p1 -%patch61 -p1 -%patch64 -%patch65 -p1 -%patch69 -p1 +%patch49 +%patch50 +%patch51 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 %patch502 %patch503 %endif -%patch600 -p1 -%patch601 -%patch602 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -782,6 +777,7 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do echo "###X# The following is autogenerated from extra files in the .d directory:" >>"$l" cat "$l.d"/* >>"$l" done +/usr/sbin/iconvconfig %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From c9ded7cbd08385ec0c0ab38ff1a2470d47614e47e560f68bbcf7831bca16a484 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 4 Feb 2011 16:42:02 +0000 Subject: [PATCH 034/204] Autobuild autoformatter for 60018 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=37 --- glibc.spec | 8 ++++---- ready | 0 2 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index 5b40911..2c34a85 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 3 +Release: 4 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -133,10 +133,10 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff +Patch51: glibc-vfprintf-positional.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 diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From 95ad259cbb0c82411b9e4d8df01261366756afbf08e2e1659216304511d6fa88 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Tue, 22 Feb 2011 14:00:50 +0000 Subject: [PATCH 035/204] Accepting request 62476 from Base:System Accepted submit request 62476 from user pbaudis OBS-URL: https://build.opensuse.org/request/show/62476 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=39 --- glibc-elf-localscope.diff | 82 +++++++++++++++++++++++++++++++++++++++ glibc.changes | 6 +++ glibc.spec | 10 +++-- ready | 0 4 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 glibc-elf-localscope.diff create mode 100644 ready diff --git a/glibc-elf-localscope.diff b/glibc-elf-localscope.diff new file mode 100644 index 0000000..edcd44a --- /dev/null +++ b/glibc-elf-localscope.diff @@ -0,0 +1,82 @@ +diff -ru elf~/dl-close.c elf/dl-close.c +--- elf~/dl-close.c 2011-02-04 00:35:03.000000000 +0100 ++++ elf/dl-close.c 2011-02-22 02:16:12.367883000 +0100 +@@ -180,24 +186,28 @@ + /* Signal the object is still needed. */ + l->l_idx = IDX_STILL_USED; + ++#define mark_used(dmap) \ ++ do { \ ++ if ((dmap)->l_idx != IDX_STILL_USED) \ ++ { \ ++ assert ((dmap)->l_idx >= 0 && (dmap)->l_idx < nloaded); \ ++ \ ++ if (!used[(dmap)->l_idx]) \ ++ { \ ++ used[(dmap)->l_idx] = 1; \ ++ if ((dmap)->l_idx - 1 < done_index) \ ++ done_index = (dmap)->l_idx - 1; \ ++ } \ ++ } \ ++ } while (0) ++ + /* Mark all dependencies as used. */ + if (l->l_initfini != NULL) + { + struct link_map **lp = &l->l_initfini[1]; + while (*lp != NULL) + { +- if ((*lp)->l_idx != IDX_STILL_USED) +- { +- assert ((*lp)->l_idx >= 0 && (*lp)->l_idx < nloaded); +- +- if (!used[(*lp)->l_idx]) +- { +- used[(*lp)->l_idx] = 1; +- if ((*lp)->l_idx - 1 < done_index) +- done_index = (*lp)->l_idx - 1; +- } +- } +- ++ mark_used(*lp); + ++lp; + } + } +@@ -206,19 +216,25 @@ + for (unsigned int j = 0; j < l->l_reldeps->act; ++j) + { + struct link_map *jmap = l->l_reldeps->list[j]; +- +- if (jmap->l_idx != IDX_STILL_USED) +- { +- assert (jmap->l_idx >= 0 && jmap->l_idx < nloaded); +- +- if (!used[jmap->l_idx]) +- { +- used[jmap->l_idx] = 1; +- if (jmap->l_idx - 1 < done_index) +- done_index = jmap->l_idx - 1; +- } +- } ++ mark_used(jmap); + } ++ /* And the same for owners of our scopes; normally, our last ++ scope provider would render us unused, but this can be ++ prevented by the NODELETE flag. */ ++ if (__builtin_expect(l->l_type == lt_loaded ++ && (l->l_flags_1 & DF_1_NODELETE), 0)) ++ for (size_t cnt = 0; l->l_scope[cnt] != NULL; ++cnt) ++ /* This relies on l_scope[] entries being always set either ++ to its own l_symbolic_searchlist address, or some map's ++ l_searchlist address. */ ++ if (l->l_scope[cnt] != &l->l_symbolic_searchlist) ++ { ++ struct link_map *ls = (struct link_map *) ++ ((char *) l->l_scope[cnt] ++ - offsetof (struct link_map, l_searchlist)); ++ assert (ls->l_ns == nsid); ++ mark_used(ls); ++ } + } + + /* Sort the entries. */ diff --git a/glibc.changes b/glibc.changes index 0fa266b..a04f7e7 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz + +- Fix potential removal of required local scope from shared objects + marked as NODELETE [bnc#657627] + ------------------------------------------------------------------- Fri Feb 4 00:46:40 CET 2011 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 2c34a85..174c6ae 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 4 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -133,10 +133,11 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.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 @@ -355,6 +356,7 @@ rm nscd/s-stamp %patch49 %patch50 %patch51 -p1 +%patch52 %ifarch %arm armv5tel armv7l %patch500 %patch501 diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From bcbd30d1e104eb8393b02ad7f32d22de23cf825ebbcaa2aa38ffc638cca507f6 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 22 Feb 2011 14:00:59 +0000 Subject: [PATCH 036/204] Autobuild autoformatter for 62476 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=40 --- glibc.spec | 10 +++++----- ready | 0 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index 174c6ae..a27a695 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 3 +Release: 14 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -133,11 +133,11 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff -Patch52: glibc-elf-localscope.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.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 diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From f21c3ad1d81ecb823da8842b321d641f0bceb77d17bb1edfb726499e17ecf34f Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 23 May 2011 12:29:03 +0000 Subject: [PATCH 037/204] Accepting request 70995 from Base:System - Update longlong.h from GCC sources. Fixes s390 build with -mzarch. [bnc#695102] OBS-URL: https://build.opensuse.org/request/show/70995 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=41 --- glibc-zarch-longlong.diff | 41 +++++++++++++++++++++++++++++++++++++++ glibc.changes | 6 ++++++ glibc.spec | 12 +++++++----- ready | 0 4 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 glibc-zarch-longlong.diff create mode 100644 ready diff --git a/glibc-zarch-longlong.diff b/glibc-zarch-longlong.diff new file mode 100644 index 0000000..d61a019 --- /dev/null +++ b/glibc-zarch-longlong.diff @@ -0,0 +1,41 @@ +Index: glibc/stdlib/longlong.h +=================================================================== +--- glibc.orig/stdlib/longlong.h ++++ glibc/stdlib/longlong.h +@@ -303,6 +303,7 @@ UDItype __umulsidi3 (USItype, USItype); + #endif + + #if (defined (__i370__) || defined (__s390__) || defined (__mvs__)) && W_TYPE_SIZE == 32 ++#if !defined (__zarch__) + #define smul_ppmm(xh, xl, m0, m1) \ + do { \ + union {DItype __ll; \ +@@ -324,6 +325,28 @@ UDItype __umulsidi3 (USItype, USItype); + : "0" (__x.__ll), "r" (d)); \ + (q) = __x.__i.__l; (r) = __x.__i.__h; \ + } while (0) ++#else ++#define smul_ppmm(xh, xl, m0, m1) \ ++ do { \ ++ register SItype r0 __asm__ ("0"); \ ++ register SItype r1 __asm__ ("1") = m0; \ ++ \ ++ __asm__ ("mr\t%%r0,%3" \ ++ : "=r" (r0), "=r" (r1) \ ++ : "r" (r1), "r" (m1)); \ ++ (xh) = r1; (xl) = r0; \ ++ } while (0) ++#define sdiv_qrnnd(q, r, n1, n0, d) \ ++ do { \ ++ register SItype r0 __asm__ ("0") = n0; \ ++ register SItype r1 __asm__ ("1") = n1; \ ++ \ ++ __asm__ ("dr\t%%r0,%3" \ ++ : "=r" (r0), "=r" (r1) \ ++ : "r" (r0), "r" (r1), "r" (d)); \ ++ (q) = r0; (r) = r1; \ ++ } while (0) ++#endif /* __zarch__ */ + #endif + + #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32 diff --git a/glibc.changes b/glibc.changes index a04f7e7..73a756b 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 23 08:44:47 UTC 2011 - rguenther@novell.com + +- Update longlong.h from GCC sources. Fixes s390 build with -mzarch. + [bnc#695102] + ------------------------------------------------------------------- Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index a27a695..1f809a0 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 14 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -133,11 +133,12 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff -Patch52: glibc-elf-localscope.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.diff +Patch53: glibc-zarch-longlong.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,6 +358,7 @@ rm nscd/s-stamp %patch50 %patch51 -p1 %patch52 +%patch53 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 From 2c6a614c78003d370e02ce1ca87da2cb752e4c4d3c1b6aa4e040df216381cbad Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 23 May 2011 12:29:14 +0000 Subject: [PATCH 038/204] Autobuild autoformatter for 70995 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=42 --- glibc.spec | 12 ++++++------ ready | 0 2 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 ready diff --git a/glibc.spec b/glibc.spec index 1f809a0..88494e4 100644 --- a/glibc.spec +++ b/glibc.spec @@ -64,7 +64,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.11.3 -Release: 3 +Release: 15 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -133,12 +133,12 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff -Patch52: glibc-elf-localscope.diff -Patch53: glibc-zarch-longlong.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.diff +Patch53: glibc-zarch-longlong.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 diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 From 8af01870ce22892eafb8f78ff37c89ab6a6a4f3e675e0656e8d367b3bcfd7e31 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 31 May 2011 10:40:55 +0000 Subject: [PATCH 039/204] Accepting request 72233 from Base:System Update to glibc 2.13 OBS-URL: https://build.opensuse.org/request/show/72233 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=43 --- check-build.sh | 4 +- ctype_b.c | 196 ------------------------ glibc-2.11.3-b72646ad0c41.tar.bz2 | 3 - glibc-2.13-996cf2ef0727.tar.bz2 | 3 + glibc-2.3.3-execstack.diff | 47 ------ glibc-2.6-configure.diff | 42 +++-- glibc-bso-12454.diff | 27 ++++ glibc-check-native-missing-include.diff | 12 -- glibc-compiled-binaries.diff | 46 +++--- glibc-disable-backward-memcpy.diff | 45 ++++++ glibc-malloc-arena-max.diff | 45 +++--- glibc-ports-2.10.1-2b2b217196.tar.bz2 | 3 - glibc-ports-2.13.tar.bz2 | 3 + glibc-selinux.diff | 26 ---- glibc-static-memcpy.diff | 61 ++++++++ glibc-version.diff | 7 +- glibc.changes | 50 ++++++ glibc.spec | 80 ++++++---- ld-prelink-unique.diff | 57 ------- 19 files changed, 308 insertions(+), 449 deletions(-) delete mode 100644 ctype_b.c delete mode 100644 glibc-2.11.3-b72646ad0c41.tar.bz2 create mode 100644 glibc-2.13-996cf2ef0727.tar.bz2 delete mode 100644 glibc-2.3.3-execstack.diff create mode 100644 glibc-bso-12454.diff delete mode 100644 glibc-check-native-missing-include.diff create mode 100644 glibc-disable-backward-memcpy.diff delete mode 100644 glibc-ports-2.10.1-2b2b217196.tar.bz2 create mode 100644 glibc-ports-2.13.tar.bz2 delete mode 100644 glibc-selinux.diff create mode 100644 glibc-static-memcpy.diff delete mode 100644 ld-prelink-unique.diff diff --git a/check-build.sh b/check-build.sh index cc01226..fd183dd 100644 --- a/check-build.sh +++ b/check-build.sh @@ -15,8 +15,8 @@ fi # get kernel version OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" -if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 11 ; then - echo "FATAL: kernel too old, need kernel >= 2.6.11 for this package" 1>&2 +if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 32 ; then + echo "FATAL: kernel too old, need kernel >= 2.6.32 for this package" 1>&2 exit 1 fi diff --git a/ctype_b.c b/ctype_b.c deleted file mode 100644 index 91a5b50..0000000 --- a/ctype_b.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * ctype_b.c - * - * This file has been added to compensate buggy object files - * using __ctype_b, __ctype_tolower and __ctype_toupper. - * - * This file only allows the linking of this buggy object files, - * there is no gurantee, that it will work correct. Linking of - * object files is only possible with the same glibc as they are - * compiled with. - * - * Compile this file with -fPIC and add it to the link stage of - * your application. - * - */ - -#include - -#define CTYPE_EXTERN_INLINE /* Define real functions for accessors. */ -#include - -static const char _nl_C_LC_CTYPE_class[768] = - /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x92 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x98 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x9e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xa4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xaa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xb0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xb6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xbc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xc2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xc8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xce */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xd4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xda */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xe0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xe6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xec */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xf2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xf8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xfe */ "\000\000" "\000\000" "\002\000" "\002\000" "\002\000" "\002\000" - /* 0x04 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\003\040" - /* 0x0a */ "\002\040" "\002\040" "\002\040" "\002\040" "\002\000" "\002\000" - /* 0x10 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" - /* 0x16 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" - /* 0x1c */ "\002\000" "\002\000" "\002\000" "\002\000" "\001\140" "\004\300" - /* 0x22 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" - /* 0x28 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" - /* 0x2e */ "\004\300" "\004\300" "\010\330" "\010\330" "\010\330" "\010\330" - /* 0x34 */ "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" - /* 0x3a */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" - /* 0x40 */ "\004\300" "\010\325" "\010\325" "\010\325" "\010\325" "\010\325" - /* 0x46 */ "\010\325" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" - /* 0x4c */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" - /* 0x52 */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" - /* 0x58 */ "\010\305" "\010\305" "\010\305" "\004\300" "\004\300" "\004\300" - /* 0x5e */ "\004\300" "\004\300" "\004\300" "\010\326" "\010\326" "\010\326" - /* 0x64 */ "\010\326" "\010\326" "\010\326" "\010\306" "\010\306" "\010\306" - /* 0x6a */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" - /* 0x70 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" - /* 0x76 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\004\300" - /* 0x7c */ "\004\300" "\004\300" "\004\300" "\002\000" "\000\000" "\000\000" - /* 0x82 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x88 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x8e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x94 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0x9a */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xa0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xa6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xac */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xb2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xb8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xbe */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xc4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xca */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xd0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xd6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xdc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xe2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xe8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xee */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" - /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" -; - -static const uint32_t _nl_C_LC_CTYPE_toupper[384] = -{ - /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, - /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - /* 0x40 */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - /* 0x48 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - /* 0x50 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - /* 0x58 */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - /* 0x60 */ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - /* 0x68 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - /* 0x70 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - /* 0x78 */ 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff -}; - -static const uint32_t _nl_C_LC_CTYPE_tolower[384] = -{ - /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, - /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - /* 0x40 */ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - /* 0x48 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - /* 0x50 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - /* 0x58 */ 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - /* 0x60 */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - /* 0x68 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - /* 0x70 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - /* 0x78 */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff -}; - -#define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o) -const unsigned short int *__ctype_b = b (unsigned short int, class, 128); -const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128); -const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128); diff --git a/glibc-2.11.3-b72646ad0c41.tar.bz2 b/glibc-2.11.3-b72646ad0c41.tar.bz2 deleted file mode 100644 index cc05708..0000000 --- a/glibc-2.11.3-b72646ad0c41.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe7395ed702de089ef4f719d3ca0ae0477dbe9c3c0a049aa4bd89f441a00b72e -size 15666419 diff --git a/glibc-2.13-996cf2ef0727.tar.bz2 b/glibc-2.13-996cf2ef0727.tar.bz2 new file mode 100644 index 0000000..0e56656 --- /dev/null +++ b/glibc-2.13-996cf2ef0727.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:023aef147d380f0e4ca2ff0617355b0ef69e41f00db7c463c800fabdb62e8faa +size 16381764 diff --git a/glibc-2.3.3-execstack.diff b/glibc-2.3.3-execstack.diff deleted file mode 100644 index 054e33e..0000000 --- a/glibc-2.3.3-execstack.diff +++ /dev/null @@ -1,47 +0,0 @@ -Index: locale/programs/3level.h -=================================================================== ---- locale/programs/3level.h.orig -+++ locale/programs/3level.h -@@ -203,6 +203,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, - } - } - } -+ -+/* GCC ATM seems to do a poor job with pointers to nested functions passed -+ to inlined functions. Help it a little bit with this hack. */ -+#define wchead_table_iterate(tp, fn) \ -+do \ -+ { \ -+ struct wchead_table *t = (tp); \ -+ uint32_t index1; \ -+ for (index1 = 0; index1 < t->level1_size; index1++) \ -+ { \ -+ uint32_t lookup1 = t->level1[index1]; \ -+ if (lookup1 != ((uint32_t) ~0)) \ -+ { \ -+ uint32_t lookup1_shifted = lookup1 << t->q; \ -+ uint32_t index2; \ -+ for (index2 = 0; index2 < (1 << t->q); index2++) \ -+ { \ -+ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ -+ if (lookup2 != ((uint32_t) ~0)) \ -+ { \ -+ uint32_t lookup2_shifted = lookup2 << t->p; \ -+ uint32_t index3; \ -+ for (index3 = 0; index3 < (1 << t->p); index3++) \ -+ { \ -+ struct element_t *lookup3 \ -+ = t->level3[index3 + lookup2_shifted]; \ -+ if (lookup3 != NULL) \ -+ fn ((((index1 << t->q) + index2) << t->p) + index3, \ -+ lookup3); \ -+ } \ -+ } \ -+ } \ -+ } \ -+ } \ -+ } while (0) -+ - #endif - - #ifndef NO_FINALIZE diff --git a/glibc-2.6-configure.diff b/glibc-2.6-configure.diff index b49cc36..530a453 100644 --- a/glibc-2.6-configure.diff +++ b/glibc-2.6-configure.diff @@ -1,17 +1,15 @@ -Index: configure.in -=================================================================== ---- configure.in.orig -+++ configure.in -@@ -1395,7 +1395,7 @@ EOF +--- configure.in.orig 2011-05-20 15:36:44.880141789 +0200 ++++ configure.in 2011-05-20 15:39:31.237690293 +0200 +@@ -1406,7 +1406,7 @@ fi fi fi - rm -f conftest.[cs] -+ rm -f conftest* ++ rm -f conftest.* ]) if test $libc_cv_visibility_attribute != yes; then AC_MSG_ERROR(compiler support for visibility attribute is required) -@@ -1411,7 +1411,7 @@ EOF +@@ -1422,7 +1422,7 @@ int bar (int x) { return x; } EOF libc_cv_broken_visibility_attribute=yes @@ -20,25 +18,23 @@ Index: configure.in changequote(,)dnl if grep '\.hidden[ _]foo' conftest.s >/dev/null; then changequote([,])dnl -Index: configure -=================================================================== ---- configure.orig -+++ configure -@@ -6272,7 +6272,7 @@ EOF - fi - fi - fi -- rm -f conftest.cs -+ rm -f conftest* - - fi - { $as_echo "$as_me:$LINENO: result: $libc_cv_visibility_attribute" >&5 -@@ -6296,7 +6296,7 @@ else +--- configure.orig 2011-05-20 15:39:38.413972560 +0200 ++++ configure 2011-05-20 15:40:52.292884126 +0200 +@@ -6112,7 +6112,7 @@ int bar (int x) { return x; } EOF libc_cv_broken_visibility_attribute=yes - if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s1>&5' -+ if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s>&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? +@@ -6753,7 +6753,7 @@ + else + libc_cv_have_section_quotes=unknown + fi +- rm -f conftest.cs ++ rm -f conftest.* + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_section_quotes" >&5 diff --git a/glibc-bso-12454.diff b/glibc-bso-12454.diff new file mode 100644 index 0000000..68c26da --- /dev/null +++ b/glibc-bso-12454.diff @@ -0,0 +1,27 @@ +2011-03-02 Andreas Schwab + + [BZ #12454] + * elf/dl-deps.c (_dl_map_object_deps): Don't try to sort + dependencies when there are none. + +--- a/elf/dl-deps.c.orig 2011-05-25 16:42:39.000000000 +0200 ++++ a/elf/dl-deps.c 2011-05-25 16:44:07.000000000 +0200 +@@ -619,7 +619,8 @@ + + /* We can skip looking for the binary itself which is at the front + of the search list. */ +- assert (nlist > 1); ++ if (nlist > 1) ++ { + i = 1; + bool seen[nlist]; + memset (seen, false, nlist * sizeof (seen[0])); +@@ -669,7 +670,7 @@ + + next:; + } +- ++ } + /* Terminate the list of dependencies. */ + l_initfini[nlist] = NULL; + atomic_write_barrier (); diff --git a/glibc-check-native-missing-include.diff b/glibc-check-native-missing-include.diff deleted file mode 100644 index e881c4b..0000000 --- a/glibc-check-native-missing-include.diff +++ /dev/null @@ -1,12 +0,0 @@ -Index: sysdeps/unix/sysv/linux/check_native.c -=================================================================== ---- sysdeps/unix/sysv/linux/check_native.c.orig -+++ sysdeps/unix/sysv/linux/check_native.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff index ccb826f..31c3efb 100644 --- a/glibc-compiled-binaries.diff +++ b/glibc-compiled-binaries.diff @@ -19,11 +19,23 @@ Index: config.make.in force-install = @force_install@ # Build tools. +Index: configure.in +=================================================================== +--- configure.in.orig 2011-05-20 15:39:31.237690293 +0200 ++++ configure.in 2011-05-20 15:43:55.595111363 +0200 +@@ -16,6 +16,7 @@ + AC_CHECK_PROGS(BUILD_CC, gcc cc) + fi + AC_SUBST(cross_compiling) ++AC_SUBST(compiled_binaries_can_run_on_buildhost) + AC_PROG_CPP + # We need the C++ compiler only for testing. + AC_PROG_CXX Index: configure =================================================================== ---- configure.orig -+++ configure -@@ -589,6 +589,7 @@ ac_clean_files= +--- configure.orig 2011-05-20 15:46:40.675628746 +0200 ++++ configure 2011-05-20 15:40:52.292884126 +0200 +@@ -545,6 +545,7 @@ ac_config_libobj_dir=. LIBOBJS= cross_compiling=no @@ -31,7 +43,7 @@ Index: configure subdirs= MFLAGS= MAKEFLAGS= -@@ -742,6 +743,7 @@ CXXFLAGS +@@ -697,6 +696,7 @@ CXX CPP cross_compiling @@ -39,8 +51,8 @@ Index: configure BUILD_CC OBJEXT ac_ct_CC -@@ -1294,6 +1296,13 @@ do - { (exit 1); exit 1; }; } +@@ -1244,6 +1242,13 @@ + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done +# Check whether --enable-runbinaries was given. @@ -53,36 +65,24 @@ Index: configure # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. -@@ -1309,6 +1318,7 @@ if test "x$host_alias" != x; then - If a cross compiler is detected then cross compile mode will be used." >&2 +@@ -1266,6 +1257,7 @@ + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes + compiled_binaries_can_run_on_buildhost=no fi fi -@@ -1501,6 +1511,9 @@ Optional Features: +@@ -1454,6 +1444,9 @@ + --enable-experimental-malloc enable experimental malloc features --enable-nss-crypt enable libcrypt to use nss - + --enable-runbinaries the compiled binaries should run on the buildhost because + it happens to have a compatible cpu + + Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) -Index: configure.in -=================================================================== ---- configure.in.orig -+++ configure.in -@@ -16,6 +16,7 @@ if test $host != $build; then - AC_CHECK_PROGS(BUILD_CC, gcc cc) - fi - AC_SUBST(cross_compiling) -+AC_SUBST(compiled_binaries_can_run_on_buildhost) - AC_PROG_CPP - # We need the C++ compiler only for testing. - AC_PROG_CXX Index: posix/Makefile =================================================================== --- posix/Makefile.orig diff --git a/glibc-disable-backward-memcpy.diff b/glibc-disable-backward-memcpy.diff new file mode 100644 index 0000000..fda40ca --- /dev/null +++ b/glibc-disable-backward-memcpy.diff @@ -0,0 +1,45 @@ +Index: glibc-2.13/sysdeps/x86_64/multiarch/Makefile +=================================================================== +--- glibc-2.13.orig/sysdeps/x86_64/multiarch/Makefile ++++ glibc-2.13/sysdeps/x86_64/multiarch/Makefile +@@ -6,7 +6,7 @@ endif + ifeq ($(subdir),string) + sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ + strend-sse4 memcmp-sse4 memcpy-ssse3 mempcpy-ssse3 \ +- memmove-ssse3 memcpy-ssse3-back mempcpy-ssse3-back \ ++ memmove-ssse3 mempcpy-ssse3-back \ + memmove-ssse3-back strcasestr-nonascii strcasecmp_l-ssse3 \ + strncase_l-ssse3 strlen-sse4 strlen-no-bsf \ + memset-x86-64 +Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy.S +=================================================================== +--- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy.S ++++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy.S +@@ -35,9 +35,11 @@ ENTRY(memcpy) + testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) + jz 2f + leaq __memcpy_ssse3(%rip), %rax ++ /* disable backward memcpy for glibc 2.13 + testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip) + jz 2f + leaq __memcpy_ssse3_back(%rip), %rax ++ */ + 2: ret + END(memcpy) + +Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy_chk.S +=================================================================== +--- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy_chk.S ++++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy_chk.S +@@ -36,9 +36,11 @@ ENTRY(__memcpy_chk) + testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) + jz 2f + leaq __memcpy_chk_ssse3(%rip), %rax ++ /* disable backwards memcpy until glibc 2.14 + testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip) + jz 2f + leaq __memcpy_chk_ssse3_back(%rip), %rax ++ */ + 2: ret + END(__memcpy_chk) + # else diff --git a/glibc-malloc-arena-max.diff b/glibc-malloc-arena-max.diff index 24b91dc..37347fe 100644 --- a/glibc-malloc-arena-max.diff +++ b/glibc-malloc-arena-max.diff @@ -37,11 +37,11 @@ in extremely thread-intensive applications. PER_THREAD. * malloc/malloc.c: Remove redundant M_* defines. -diff --git a/malloc/arena.c b/malloc/arena.c -index 4d0deef..ea80724 100644 ---- a/malloc/arena.c -+++ b/malloc/arena.c -@@ -78,8 +78,8 @@ extern int sanity_check_heap_info_alignment[(sizeof (heap_info) +Index: glibc-2.13/malloc/arena.c +=================================================================== +--- glibc-2.13.orig/malloc/arena.c ++++ glibc-2.13/malloc/arena.c +@@ -78,8 +78,8 @@ extern int sanity_check_heap_info_alignm static tsd_key_t arena_key; static mutex_t list_lock; @@ -83,15 +83,16 @@ index 4d0deef..ea80724 100644 (void)mutex_unlock(&list_lock); #endif -@@ -982,13 +980,9 @@ get_free_list (void) +@@ -982,13 +980,10 @@ get_free_list (void) return result; } - -static mstate -reused_arena (void) ++static int get_narenas_limit (void) __attribute__((pure)); +static int -+get_narenas_limit (void) __attribute__((pure)) ++get_narenas_limit (void) { - if (narenas <= mp_.arena_test) - return NULL; @@ -99,7 +100,7 @@ index 4d0deef..ea80724 100644 static int narenas_limit; if (narenas_limit == 0) { -@@ -1006,10 +1000,16 @@ reused_arena (void) +@@ -1006,10 +1001,16 @@ reused_arena (void) narenas_limit = NARENAS_FROM_NCORES (2); } } @@ -118,7 +119,7 @@ index 4d0deef..ea80724 100644 mstate result; static mstate next_to_use; if (next_to_use == NULL) -@@ -1035,7 +1035,6 @@ reused_arena (void) +@@ -1035,7 +1036,6 @@ reused_arena (void) return result; } @@ -126,7 +127,7 @@ index 4d0deef..ea80724 100644 static mstate internal_function -@@ -1048,10 +1047,15 @@ arena_get2(a_tsd, size) mstate a_tsd; size_t size; +@@ -1048,10 +1048,15 @@ arena_get2(a_tsd, size) mstate a_tsd; si mstate a; #ifdef PER_THREAD @@ -146,7 +147,7 @@ index 4d0deef..ea80724 100644 #else if(!a_tsd) a = a_tsd = &main_arena; -@@ -1093,8 +1097,14 @@ arena_get2(a_tsd, size) mstate a_tsd; size_t size; +@@ -1093,8 +1098,14 @@ arena_get2(a_tsd, size) mstate a_tsd; si goto repeat; } @@ -163,10 +164,10 @@ index 4d0deef..ea80724 100644 (void)mutex_unlock(&list_lock); #endif -diff --git a/malloc/hooks.c b/malloc/hooks.c -index 28845ee..e938492 100644 ---- a/malloc/hooks.c -+++ b/malloc/hooks.c +Index: glibc-2.13/malloc/hooks.c +=================================================================== +--- glibc-2.13.orig/malloc/hooks.c ++++ glibc-2.13/malloc/hooks.c @@ -579,9 +579,9 @@ public_gET_STATe(void) ms->max_fast = get_max_fast(); #ifdef PER_THREAD @@ -189,11 +190,11 @@ index 28845ee..e938492 100644 } check_malloc_state(&main_arena); -diff --git a/malloc/malloc.c b/malloc/malloc.c -index b1d43c6..8dbadfa 100644 ---- a/malloc/malloc.c -+++ b/malloc/malloc.c -@@ -2406,9 +2406,10 @@ struct malloc_par { +Index: glibc-2.13/malloc/malloc.c +=================================================================== +--- glibc-2.13.orig/malloc/malloc.c ++++ glibc-2.13/malloc/malloc.c +@@ -2405,9 +2405,10 @@ struct malloc_par { INTERNAL_SIZE_T top_pad; INTERNAL_SIZE_T mmap_threshold; #ifdef PER_THREAD @@ -205,7 +206,7 @@ index b1d43c6..8dbadfa 100644 /* Memory map support */ int n_mmaps; -@@ -2446,13 +2447,6 @@ static struct malloc_state main_arena; +@@ -2445,13 +2446,6 @@ static struct malloc_state main_arena; static struct malloc_par mp_; @@ -219,7 +220,7 @@ index b1d43c6..8dbadfa 100644 /* Maximum size of memory handled in fastbins. */ static INTERNAL_SIZE_T global_max_fast; -@@ -6095,12 +6089,12 @@ int mALLOPt(param_number, value) int param_number; int value; +@@ -6111,12 +6105,12 @@ int mALLOPt(param_number, value) int par if (value > 0) mp_.arena_test = value; break; diff --git a/glibc-ports-2.10.1-2b2b217196.tar.bz2 b/glibc-ports-2.10.1-2b2b217196.tar.bz2 deleted file mode 100644 index 2eaca8b..0000000 --- a/glibc-ports-2.10.1-2b2b217196.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:efc4a2a614a97203c3c9847db37f40e52596776439b512b57f1606a12361b8f2 -size 585531 diff --git a/glibc-ports-2.13.tar.bz2 b/glibc-ports-2.13.tar.bz2 new file mode 100644 index 0000000..f2e7a58 --- /dev/null +++ b/glibc-ports-2.13.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b11c4501ae929883447f409c31d65e82822b1c5693075a825a3d54612876ee5a +size 625945 diff --git a/glibc-selinux.diff b/glibc-selinux.diff deleted file mode 100644 index 460cd4f..0000000 --- a/glibc-selinux.diff +++ /dev/null @@ -1,26 +0,0 @@ -Index: Makerules -=================================================================== ---- Makerules.orig -+++ Makerules -@@ -349,7 +349,7 @@ endif # $(versioning) = yes - endif # sysd-sorted-done - - # Generate .dT files as we compile. --compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@ -+compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@ -I/usr/include - compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags) - compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags) - compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags) -Index: nscd/Makefile -=================================================================== ---- nscd/Makefile.orig -+++ nscd/Makefile -@@ -123,6 +123,8 @@ CFLAGS-getsrvbynm_r.c += $(nscd-cflags) - CFLAGS-getsrvbypt_r.c += $(nscd-cflags) - CFLAGS-res_hconf.c += $(nscd-cflags) - -+LDFLAGS = -lselinux -+ - ifeq (yesyes,$(have-fpie)$(build-shared)) - relro-LDFLAGS += -Wl,-z,now - diff --git a/glibc-static-memcpy.diff b/glibc-static-memcpy.diff new file mode 100644 index 0000000..8ed7718 --- /dev/null +++ b/glibc-static-memcpy.diff @@ -0,0 +1,61 @@ +2011-02-06 Mike Frysinger + + [BZ #12653] + * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Only protect + MEMCPY_CHK with USE_AS_BCOPY ifdef check. + * sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise. + * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. + * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Likewise. + +Index: glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S +=================================================================== +--- glibc-2.13.orig/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S ++++ glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S +@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx: + #endif + + .section .text.ssse3,"ax",@progbits +-#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY ++#if !defined USE_AS_BCOPY + ENTRY (MEMCPY_CHK) + movl 12(%esp), %eax + cmpl %eax, 16(%esp) +Index: glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3.S +=================================================================== +--- glibc-2.13.orig/sysdeps/i386/i686/multiarch/memcpy-ssse3.S ++++ glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3.S +@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx: + #endif + + .section .text.ssse3,"ax",@progbits +-#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY ++#if !defined USE_AS_BCOPY + ENTRY (MEMCPY_CHK) + movl 12(%esp), %eax + cmpl %eax, 16(%esp) +Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S +=================================================================== +--- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S ++++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S +@@ -49,7 +49,7 @@ + ud2 + + .section .text.ssse3,"ax",@progbits +-#if defined SHARED && !defined NOT_IN_libc ++#if !defined USE_AS_BCOPY + ENTRY (MEMCPY_CHK) + cmpq %rdx, %rcx + jb HIDDEN_JUMPTARGET (__chk_fail) +Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3.S +=================================================================== +--- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy-ssse3.S ++++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3.S +@@ -49,7 +49,7 @@ + ud2 + + .section .text.ssse3,"ax",@progbits +-#if defined SHARED && !defined NOT_IN_libc ++#if !defined USE_AS_BCOPY + ENTRY (MEMCPY_CHK) + cmpq %rdx, %rcx + jb HIDDEN_JUMPTARGET (__chk_fail) diff --git a/glibc-version.diff b/glibc-version.diff index 684dbda..322cf0f 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -2,19 +2,22 @@ Index: csu/version.c =================================================================== --- csu/version.c.orig +++ csu/version.c -@@ -24,16 +24,20 @@ static const char __libc_release[] = REL +@@ -25,19 +25,23 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = -"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\ - Copyright (C) 2009 Free Software Foundation, Inc.\n\ + Copyright (C) 2011 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ +Configured for "CONFHOST".\n\ Compiled by GNU CC version "__VERSION__".\n" #include "version-info.h" + #ifdef LIBC_ABIS_STRING + LIBC_ABIS_STRING + #endif #ifdef GLIBC_OLDEST_ABI "The oldest ABI supported: " GLIBC_OLDEST_ABI ".\n" #endif diff --git a/glibc.changes b/glibc.changes index 73a756b..bd2b371 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,9 +1,59 @@ +------------------------------------------------------------------- +Fri May 27 11:55:35 UTC 2011 - aj@suse.de + +- Remove patches that are not needed anymore: + * glibc-selinux.diff + * glibc-check-native-missing-include.diff + * glibc-2.3.3-execstack.diff +- Disable the following patches, they look obsolete by now but leave them + in to easy enable them again: + * glibc-2.3-SuSE.diff + * glibc-2.3-regcomp.diff + * glibc-2.8-clone.diff + * glibc-2.3.2-revert_tcsetattr.diff +- Do not package glibc-obsolete with empty directory on archs that + don't need it. + +------------------------------------------------------------------- +Thu May 26 07:53:51 UTC 2011 - aj@suse.de + +- Add glibc-static-memcpy.diff to fix static compiles. + +------------------------------------------------------------------- +Wed May 25 15:28:37 UTC 2011 - aj@suse.de + +- Run on kernel 2.6.32 or older only - and optimize thus. +- Enable malloc implementation that is be less memory efficient + but higher performing in multi-threaded programs. +- Use --enable-bind-now to avoid lazy binding in ld.so + and libc.so + +------------------------------------------------------------------- +Wed May 25 14:38:58 UTC 2011 - aj@suse.de + +- Add glibc-bso-12454.diff to not create assert running dynamic linker + in some cases. +- Disable backwards memcpy for x86-64. + +------------------------------------------------------------------- +Wed May 25 07:59:27 UTC 2011 - aj@suse.de + +- Add glibc-dl-signal-error.diff to not crash the dynamic linker + if dependencies are missing. + ------------------------------------------------------------------- Mon May 23 08:44:47 UTC 2011 - rguenther@novell.com - Update longlong.h from GCC sources. Fixes s390 build with -mzarch. [bnc#695102] +------------------------------------------------------------------- +Fri May 20 14:45:44 UTC 2011 - aj@suse.de + +- Fix obsoletes and provides. +- Update to glibc 2.13 +- Drop ld-prelink-unique.diff, it is part of 2.13. + ------------------------------------------------------------------- Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz diff --git a/glibc.spec b/glibc.spec index 88494e4..98e3db6 100644 --- a/glibc.spec +++ b/glibc.spec @@ -52,8 +52,11 @@ BuildRequires: libselinux-devel License: GPLv2+ Summary: Standard Shared Libraries (from the GNU C Library) Group: System/Libraries -Obsoletes: ngpt <= 2.2.2 ngpt-devel <= 2.2.2 -Provides: ntpt = 2.2.2 ngpt-devel = 2.2.2 +%define enablekernel 2.6.32 +Conflicts: kernel < %{enablekernel} +%define exp_malloc 1 +Obsoletes: ngpt < 2.2.2 ngpt-devel < 2.2.2 +Provides: ngpt = 2.2.2 ngpt-devel = 2.2.2 # bug437293 %ifarch ppc64 Obsoletes: glibc-64bit @@ -63,20 +66,19 @@ Obsoletes: glibc-32bit %endif Provides: rtld(GNU_HASH) AutoReqProv: on -Version: 2.11.3 -Release: 15 +Version: 2.13 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-b72646ad0c41.tar.bz2 -Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 +Source: glibc-%{version}-996cf2ef0727.tar.bz2 +Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: usr.sbin.nscd Source8: nsswitch.conf Source9: nscd.init Source10: bindresvport.blacklist -Source11: ctype_b.c Source12: glibc_post_upgrade.c Source15: glibc.rpmlintrc Source16: baselibs.conf @@ -104,7 +106,6 @@ Patch15: glibc-suse-note.diff Patch16: glibc-2.4.90-no_NO.diff Patch17: glibc-2.3.90-ld.so-madvise.diff Patch18: glibc-2.3.3-amd64-s_ceil.diff -Patch19: glibc-2.3.3-execstack.diff Patch20: glibc-2.4-china.diff Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 Patch22: glibc-2.4.90-nscd.diff @@ -119,8 +120,6 @@ Patch30: getaddrinfo-ipv6-sanity.diff Patch31: ppc-atomic.diff Patch32: glibc-2.8-clone.diff Patch33: glibc-compiled-binaries.diff -Patch34: glibc-selinux.diff -Patch35: glibc-check-native-missing-include.diff Patch36: glibc-no-unwind-tables.diff Patch37: glibc-2.10-nscd-nostack.diff Patch38: glibc-cpusetsize.diff @@ -128,17 +127,19 @@ Patch39: glibc-2.10.99-ia64-include.diff Patch40: libm-x86-64-exceptions.diff Patch41: glibc-uio-cell.diff Patch42: glibc-statfs64-ia64.diff -Patch43: ld-prelink-unique.diff Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff -Patch52: glibc-elf-localscope.diff -Patch53: glibc-zarch-longlong.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.diff +Patch53: glibc-zarch-longlong.diff +Patch54: glibc-disable-backward-memcpy.diff +Patch55: glibc-bso-12454.diff +Patch56: glibc-static-memcpy.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 @@ -251,7 +252,7 @@ License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Include Files and Libraries Mandatory for Development Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 -Provides: epoll <= 1.0 +Provides: epoll < 1.0 # bug437293 %ifarch ppc64 Obsoletes: glibc-devel-64bit @@ -269,6 +270,7 @@ library. +%ifarch %ix86 %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library @@ -286,7 +288,7 @@ binaries working, but since this libraries are not supported and there is no gurantee that they work for you, you should try to get newer versions of your software. - +%endif %prep %ifarch %arm armv5tel armv7l @@ -298,7 +300,8 @@ versions of your software. # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 %endif -%patch0 +# Seems not needed anymore +#%patch0 # libNoVersion part is only active on ix86 %patch1 %patch2 -p1 @@ -307,8 +310,10 @@ versions of your software. %patch5 %patch7 %patch8 -%patch9 -%patch10 +# Seems not needed anymore +#%patch9 +# Seems not needed anymore +#%patch10 %patch11 %patch12 %patch13 -E @@ -319,7 +324,6 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch16 %patch17 %patch18 -%patch19 %patch20 %patch21 # avoid changing nscd_stat.c mtime to avoid code generation @@ -337,10 +341,9 @@ rm nscd/s-stamp %patch29 %patch30 %patch31 -%patch32 +# Seems not needed anymore +#%patch32 %patch33 -%patch34 -%patch35 %patch36 %patch37 %patch38 @@ -348,17 +351,21 @@ rm nscd/s-stamp %patch40 %patch41 -p1 %patch42 -%patch43 -p1 %patch44 -p1 %patch45 %patch46 -p1 %patch47 -p1 +%if !%{exp_malloc} %patch48 -p1 +%endif %patch49 %patch50 %patch51 -p1 %patch52 %patch53 -p1 +%patch54 -p1 +%patch55 -p1 +%patch56 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -485,7 +492,12 @@ configure_and_build_glibc() { %ifarch ppc ppc64 %{ix86} x86_64 --enable-multi-arch \ %endif - --with-tls --with-__thread --enable-kernel=2.6.4 +%if %{exp_malloc} + --enable-experimental-malloc \ +%endif + --with-tls --with-__thread --enable-kernel=%{enablekernel} \ + --enable-bind-now +# Should we enable --enable-nss-crypt to build use freebl3 hash functions? make $PARALLEL cd .. } @@ -657,7 +669,9 @@ make install_root=$RPM_BUILD_ROOT install -C cc-base # Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT +%ifarch %ix86 mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete +%endif # NPTL is not usable outside of glibc, so include # the generic one (RH#162634) @@ -706,12 +720,12 @@ touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} # cat > $RPM_BUILD_ROOT/etc/ld.so.conf < - - * elf/dl-lookup.c (do_lookup_x): If tab->entries is NULL, - but tab->size != 0, just unlock and goto success, without - allocating anything or entering anything into the hash table. - (_dl_debug_bindings): Temporarily set tab->entries to NULL - around do_lookup_x in undef_map->l_local_scope[0]. - ---- libc/elf/dl-lookup.c.jj 2009-12-16 00:10:37.000000000 +0100 -+++ libc/elf/dl-lookup.c 2010-03-23 11:03:45.850560036 +0100 -@@ -1,5 +1,6 @@ - /* Look up a symbol in the loaded objects. -- Copyright (C) 1995-2005, 2006, 2007, 2009 Free Software Foundation, Inc. -+ Copyright (C) 1995-2005, 2006, 2007, 2009, 2010 -+ 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 -@@ -414,6 +415,20 @@ do_lookup_x (const char *undef_name, uin - assert (!RTLD_CHECK_FOREIGN_CALL); - #endif - -+#ifdef SHARED -+ /* If tab->entries is NULL, but tab->size is not, it means -+ this is the second, conflict finding, lookup for -+ LD_TRACE_PRELINKING in _dl_debug_bindings. Don't -+ allocate anything and don't enter anything into the -+ hash table. */ -+ if (__builtin_expect (tab->size, 0)) -+ { -+ assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK); -+ __rtld_lock_unlock_recursive (tab->lock); -+ goto success; -+ } -+#endif -+ - #define INITIAL_NUNIQUE_SYM_TABLE 31 - size = INITIAL_NUNIQUE_SYM_TABLE; - entries = calloc (sizeof (struct unique_sym), size); -@@ -917,13 +932,17 @@ _dl_debug_bindings (const char *undef_na - { - const uint_fast32_t new_hash = dl_new_hash (undef_name); - unsigned long int old_hash = 0xffffffff; -+ struct unique_sym *saved_entries -+ = GL(dl_ns)[LM_ID_BASE]._ns_unique_sym_table.entries; - -+ GL(dl_ns)[LM_ID_BASE]._ns_unique_sym_table.entries = NULL; - do_lookup_x (undef_name, new_hash, &old_hash, *ref, &val, - undef_map->l_local_scope[0], 0, version, 0, NULL, - type_class, undef_map); - - if (val.s != value->s || val.m != value->m) - conflict = 1; -+ GL(dl_ns)[LM_ID_BASE]._ns_unique_sym_table.entries = saved_entries; - } - - if (value->s) From 0ced0ddc3d6f6e167cff6d33d0b0fbdd896f650276eb42e52748fb09bb895196 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 31 May 2011 10:41:10 +0000 Subject: [PATCH 040/204] Autobuild autoformatter for 72233 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=44 --- glibc.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/glibc.spec b/glibc.spec index 98e3db6..5ad6cee 100644 --- a/glibc.spec +++ b/glibc.spec @@ -131,12 +131,12 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff -Patch52: glibc-elf-localscope.diff -Patch53: glibc-zarch-longlong.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.diff +Patch53: glibc-zarch-longlong.diff Patch54: glibc-disable-backward-memcpy.diff Patch55: glibc-bso-12454.diff Patch56: glibc-static-memcpy.diff @@ -271,6 +271,7 @@ library. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library @@ -950,6 +951,7 @@ exit 0 /usr/sbin/iconvconfig %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ From b8a3d11ae30597f48b145a9a8c05c5eac102ec9b1077b259cef8ee254e759772 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 6 Jun 2011 07:42:13 +0000 Subject: [PATCH 041/204] Accepting request 72565 from Base:System Use 2.6.5 as oldest supported kernel on all archs besides x86 and x86-64 (reverting partially a change). OBS-URL: https://build.opensuse.org/request/show/72565 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=45 --- glibc.changes | 8 +++++++- glibc.spec | 16 +++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/glibc.changes b/glibc.changes index bd2b371..ac46391 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jun 3 08:40:55 UTC 2011 - aj@suse.de + +- Use 2.6.5 as oldest supported kernel on all archs besides x86 and + x86-64 (reverting partially a change). + ------------------------------------------------------------------- Fri May 27 11:55:35 UTC 2011 - aj@suse.de @@ -22,7 +28,7 @@ Thu May 26 07:53:51 UTC 2011 - aj@suse.de ------------------------------------------------------------------- Wed May 25 15:28:37 UTC 2011 - aj@suse.de -- Run on kernel 2.6.32 or older only - and optimize thus. +- Run on kernel 2.6.32 or newer only - and optimize thus. - Enable malloc implementation that is be less memory efficient but higher performing in multi-threaded programs. - Use --enable-bind-now to avoid lazy binding in ld.so diff --git a/glibc.spec b/glibc.spec index 5ad6cee..514d0a3 100644 --- a/glibc.spec +++ b/glibc.spec @@ -52,7 +52,11 @@ BuildRequires: libselinux-devel License: GPLv2+ Summary: Standard Shared Libraries (from the GNU C Library) Group: System/Libraries +%ifarch %ix86 x86_64 %define enablekernel 2.6.32 +%else +%define enablekernel 2.6.5 +%endif Conflicts: kernel < %{enablekernel} %define exp_malloc 1 Obsoletes: ngpt < 2.2.2 ngpt-devel < 2.2.2 @@ -131,12 +135,12 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff -Patch52: glibc-elf-localscope.diff -Patch53: glibc-zarch-longlong.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.diff +Patch53: glibc-zarch-longlong.diff Patch54: glibc-disable-backward-memcpy.diff Patch55: glibc-bso-12454.diff Patch56: glibc-static-memcpy.diff @@ -271,7 +275,6 @@ library. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library @@ -951,7 +954,6 @@ exit 0 /usr/sbin/iconvconfig %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ From 63d7e320cbab9ac0239d92bf51331bc7e774f29589df31507aa0dc443050c0e2 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 6 Jun 2011 07:42:23 +0000 Subject: [PATCH 042/204] Autobuild autoformatter for 72565 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=46 --- glibc.spec | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/glibc.spec b/glibc.spec index 514d0a3..c4fa0f5 100644 --- a/glibc.spec +++ b/glibc.spec @@ -71,7 +71,7 @@ Obsoletes: glibc-32bit Provides: rtld(GNU_HASH) AutoReqProv: on Version: 2.13 -Release: 1 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -135,12 +135,12 @@ Patch44: glibc-ppc64-vdso-time.diff Patch45: glibc-gai-private4.diff Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff -Patch48: glibc-malloc-arena-max.diff -Patch49: glibc-fini-unwind.diff +Patch48: glibc-malloc-arena-max.diff +Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff -Patch51: glibc-vfprintf-positional.diff -Patch52: glibc-elf-localscope.diff -Patch53: glibc-zarch-longlong.diff +Patch51: glibc-vfprintf-positional.diff +Patch52: glibc-elf-localscope.diff +Patch53: glibc-zarch-longlong.diff Patch54: glibc-disable-backward-memcpy.diff Patch55: glibc-bso-12454.diff Patch56: glibc-static-memcpy.diff @@ -275,6 +275,7 @@ library. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library @@ -954,6 +955,7 @@ exit 0 /usr/sbin/iconvconfig %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ From 72d858e8a8043b5d9ce9b74d5bdbc1e6818d48b95e5c868fe8fc7ce6533d7868 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 15 Jun 2011 15:02:35 +0000 Subject: [PATCH 043/204] Accepting request 73729 from Base:System Cleanup spec file. OBS-URL: https://build.opensuse.org/request/show/73729 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=47 --- baselibs.conf | 2 + glibc-2.3.2-revert_tcsetattr.diff | 49 ------- glibc-2.8-clone.diff | 46 ------- glibc-gai-private4.diff | 6 +- glibc-nptl-2.4-nofixsyscallnr.diff | 20 --- glibc-strict-aliasing.diff | 88 +++++++++++++ glibc.changes | 18 +++ glibc.rpmlintrc | 11 ++ glibc.spec | 197 +++++++++++++++++++---------- glibc_post_upgrade.c | 6 + missing-include-build-fix.diff | 31 +++++ 11 files changed, 286 insertions(+), 188 deletions(-) delete mode 100644 glibc-2.3.2-revert_tcsetattr.diff delete mode 100644 glibc-2.8-clone.diff delete mode 100644 glibc-nptl-2.4-nofixsyscallnr.diff create mode 100644 glibc-strict-aliasing.diff create mode 100644 missing-include-build-fix.diff diff --git a/baselibs.conf b/baselibs.conf index f37d7ce..915a546 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -15,3 +15,5 @@ glibc-devel +^/usr/include/gnu/stubs-.*\.h$ glibc-profile arch i586 block! +glibc-utils + arch i586 block! diff --git a/glibc-2.3.2-revert_tcsetattr.diff b/glibc-2.3.2-revert_tcsetattr.diff deleted file mode 100644 index f17f80f..0000000 --- a/glibc-2.3.2-revert_tcsetattr.diff +++ /dev/null @@ -1,49 +0,0 @@ -Index: sysdeps/unix/sysv/linux/tcsetattr.c -=================================================================== ---- sysdeps/unix/sysv/linux/tcsetattr.c.orig -+++ sysdeps/unix/sysv/linux/tcsetattr.c -@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios - { - struct __kernel_termios k_termios; - unsigned long int cmd; -+ int retval; - - switch (optional_actions) - { -@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios - memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], - __KERNEL_NCCS * sizeof (cc_t)); - -- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); -+ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); -+ -+ if (retval == 0 && cmd == TCSETS) -+ { -+ /* The Linux kernel has a bug which silently ignore the invalid -+ c_cflag on pty. We have to check it here. */ -+ int save = errno; -+ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); -+ if (retval) -+ { -+ /* We cannot verify if the setting is ok. We don't return -+ an error (?). */ -+ __set_errno (save); -+ retval = 0; -+ } -+ else if ((termios_p->c_cflag & (PARENB | CREAD)) -+ != (k_termios.c_cflag & (PARENB | CREAD)) -+ || ((termios_p->c_cflag & CSIZE) -+ && ((termios_p->c_cflag & CSIZE) -+ != (k_termios.c_cflag & CSIZE)))) -+ { -+ /* It looks like the Linux kernel silently changed the -+ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an -+ error. */ -+ __set_errno (EINVAL); -+ retval = -1; -+ } -+ } -+ -+ return retval; - } - libc_hidden_def (tcsetattr) diff --git a/glibc-2.8-clone.diff b/glibc-2.8-clone.diff deleted file mode 100644 index 1bccb5d..0000000 --- a/glibc-2.8-clone.diff +++ /dev/null @@ -1,46 +0,0 @@ -http://sources.redhat.com/bugzilla/show_bug.cgi?id=6693 - -Index: sysdeps/unix/sysv/linux/x86_64/clone.S -=================================================================== ---- sysdeps/unix/sysv/linux/x86_64/clone.S.orig -+++ sysdeps/unix/sysv/linux/x86_64/clone.S -@@ -89,9 +89,6 @@ L(pseudo_end): - ret - - L(thread_start): -- cfi_startproc; -- /* Clearing frame pointer is insufficient, use CFI. */ -- cfi_undefined (rip); - /* Clear the frame pointer. The ABI suggests this be done, to mark - the outermost frame obviously. */ - xorl %ebp, %ebp -@@ -116,7 +113,6 @@ L(thread_start): - /* Call exit with return value from function call. */ - movq %rax, %rdi - call HIDDEN_JUMPTARGET (_exit) -- cfi_endproc; - - cfi_startproc; - PSEUDO_END (BP_SYM (__clone)) -Index: sysdeps/unix/sysv/linux/i386/clone.S -=================================================================== ---- sysdeps/unix/sysv/linux/i386/clone.S.orig -+++ sysdeps/unix/sysv/linux/i386/clone.S -@@ -120,9 +120,6 @@ L(pseudo_end): - ret - - L(thread_start): -- cfi_startproc; -- /* Clearing frame pointer is insufficient, use CFI. */ -- cfi_undefined (eip); - /* Note: %esi is zero. */ - movl %esi,%ebp /* terminate the stack frame */ - #ifdef RESET_PID -@@ -155,7 +152,6 @@ L(nomoregetpid): - jmp L(haspid) - .previous - #endif -- cfi_endproc; - - cfi_startproc - PSEUDO_END (BP_SYM (__clone)) diff --git a/glibc-gai-private4.diff b/glibc-gai-private4.diff index 189b2ea..a6a1ee8 100644 --- a/glibc-gai-private4.diff +++ b/glibc-gai-private4.diff @@ -24,7 +24,7 @@ +# When the user attempts to connect to a server whose hostname has both IPv4 +# and IPv6 addresses published in DNS, an IPv6 connection using the +# transitional 6to4 service will be preferred. This happens because the scope -+# comparsion fails for IPv4, the RFC 1918 addresses are assumed to have ++# comparison fails for IPv4, the RFC 1918 addresses are assumed to have +# site-local scope, which is smaller than the global scope of the server's IPv4 +# address. For IPv6, both the server's and the client's (6to4) address have +# global scope. @@ -39,8 +39,8 @@ +# content, but it should never be preferred over IPv4 service when accessing +# dual-stacked content. +# -+# RFC 3484 even acknowledges this, by saying to "«avoid the use of transitional -+# addresses when native addresses are available"». ++# RFC 3484 even acknowledges this, by saying to "avoid the use of transitional ++# addresses when native addresses are available". +# +# An IETF draft document which describes the problem in a much more detailed +# manner than I have is available here: diff --git a/glibc-nptl-2.4-nofixsyscallnr.diff b/glibc-nptl-2.4-nofixsyscallnr.diff deleted file mode 100644 index 55dc959..0000000 --- a/glibc-nptl-2.4-nofixsyscallnr.diff +++ /dev/null @@ -1,20 +0,0 @@ -Index: nptl/pthreadP.h -=================================================================== ---- nptl/pthreadP.h.orig -+++ nptl/pthreadP.h -@@ -577,15 +577,4 @@ extern void __wait_lookup_done (void) at - # define PTHREAD_STATIC_FN_REQUIRE(name) __asm (".globl " #name); - #endif - -- --#ifndef __NR_set_robust_list --/* XXX For the time being... Once we can rely on the kernel headers -- having the definition remove these lines. */ --# if defined __i386__ --# define __NR_set_robust_list 311 --# elif defined __x86_64__ --# define __NR_set_robust_list 273 --# endif --#endif -- - #endif /* pthreadP.h */ diff --git a/glibc-strict-aliasing.diff b/glibc-strict-aliasing.diff new file mode 100644 index 0000000..ef7df01 --- /dev/null +++ b/glibc-strict-aliasing.diff @@ -0,0 +1,88 @@ +Index: elf/Makefile +=================================================================== +--- elf/Makefile.orig ++++ elf/Makefile +@@ -133,6 +133,7 @@ include ../Makeconfig + ifeq ($(unwind-find-fde),yes) + routines += unwind-dw2-fde-glibc + shared-only-routines += unwind-dw2-fde-glibc ++CFLAGS-unwind-dw2-fde-glibc.c = -fno-strict-aliasing + endif + + before-compile = $(objpfx)trusted-dirs.h +Index: inet/Makefile +=================================================================== +--- inet/Makefile.orig ++++ inet/Makefile +@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa + + include ../Rules + ++CFLAGS-tst-inet6_rth.c = -fno-strict-aliasing ++ + ifeq ($(have-thread-library),yes) + + CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions +Index: nis/Makefile +=================================================================== +--- nis/Makefile.orig ++++ nis/Makefile +@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out + + include ../Rules + ++CFLAGS-nis_findserv.c = -fno-strict-aliasing ++CFLAGS-ypclnt.c = -fno-strict-aliasing + + $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) + $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ +Index: nss/Makefile +=================================================================== +--- nss/Makefile.orig ++++ nss/Makefile +@@ -75,6 +75,7 @@ endif + + include ../Rules + ++CFLAGS-files-hosts.c = -fno-strict-aliasing + + ifeq (yes,$(build-static-nss)) + $(objpfx)getent: $(objpfx)libnss_files.a +Index: resolv/Makefile +=================================================================== +--- resolv/Makefile.orig ++++ resolv/Makefile +@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostb + -Dgetnetbyaddr=res_getnetbyaddr + + CFLAGS-res_hconf.c = -fexceptions ++CFLAGS-res_send.c = -fno-strict-aliasing + + # The BIND code elicits some harmless warnings. + +cflags += -Wno-strict-prototypes -Wno-write-strings +Index: sunrpc/Makefile +=================================================================== +--- sunrpc/Makefile.orig 2011-05-25 20:00:57.381005790 +0200 ++++ sunrpc/Makefile 2011-06-15 14:57:37.657361569 +0200 +@@ -129,6 +129,10 @@ + + CPPFLAGS += -D_RPC_THREAD_SAFE_ + ++CFLAGS-clnt_tcp.c = -fno-strict-aliasing ++CFLAGS-clnt_udp.c = -fno-strict-aliasing ++CFLAGS-clnt_unix.c = -fno-strict-aliasing ++ + include ../Rules + + $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ + +Index: sysdeps/powerpc/powerpc64/elf/Makefile +=================================================================== +--- sysdeps/powerpc/powerpc64/elf/Makefile.orig ++++ sysdeps/powerpc/powerpc64/elf/Makefile +@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re + CFLAGS-rtld-memmove.os = $(no-special-regs) + CFLAGS-rtld-memchr.os = $(no-special-regs) + CFLAGS-rtld-strnlen.os = $(no-special-regs) ++ ++CFLAGS-gmon-start.c = -fno-strict-aliasing diff --git a/glibc.changes b/glibc.changes index ac46391..300c6cf 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed Jun 15 07:08:35 UTC 2011 - aj@suse.de + +- Split up package glibc-utils with some debugging tools, add memusage + and memusagestat programs +- Fix compile warnings. +- Silence some rpmlint warnings. +- Remove obsolete patches glibc-2.3.2-revert_tcsetattr.diff, + glibc-2.8-clone.diff, glibc-nptl-2.4-nofixsyscallnr.diff +- Cleanup spec file. +- Use new permission handling for pt_chown. +- Build without -fno-strict-aliasing. + +------------------------------------------------------------------- +Mon Jun 6 14:19:26 UTC 2011 - aj@suse.de + +- Fix typos in /etc/gai.conf (bnc#651912). + ------------------------------------------------------------------- Fri Jun 3 08:40:55 UTC 2011 - aj@suse.de diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index b88848e..a71322b 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -1 +1,12 @@ addFilter(".*glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") +addFilter(".*glibc.* incorrect-fsf-address") +# False positive - glibc implements gethostbyname +addFilter(".*binary-or-shlib-calls-gethostbyname") +# We do need to keep the symtab (see comments in glibc.spec), so this is intented: +addFilter(".*unstripped-binary-or-object.*") +# The duplication is intented: +addFilter(".*files-duplicate /usr/lib64/libbsd-compat.a /usr/lib.*/libg.a") +# ld.so is special: +addFilter(".*shared-lib-without-dependency-information /lib.*/ld-2.*.so") +# Handled via glibc_post_upgrade: +addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post") diff --git a/glibc.spec b/glibc.spec index c4fa0f5..898f0ea 100644 --- a/glibc.spec +++ b/glibc.spec @@ -15,12 +15,15 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild Name: glibc -BuildRequires: gcc-c++ libstdc++-devel +BuildRequires: gcc-c++ +BuildRequires: gd-devel +BuildRequires: libpng-devel BuildRequires: libselinux-devel +BuildRequires: libstdc++-devel +BuildRequires: zlib-devel %define _filter_GLIBC_PRIVATE 1 %define build_locales 1 %define run_testsuite 0 @@ -42,6 +45,9 @@ BuildRequires: libselinux-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %else +License: GPLv2+ +Summary: Standard Shared Libraries (from the GNU C Library) +Group: System/Libraries %define optimize_power 0 %define powerpc_optimize_base 0 %define powerpc_optimize_cpu_power4 0 @@ -49,18 +55,17 @@ BuildRequires: libselinux-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -License: GPLv2+ -Summary: Standard Shared Libraries (from the GNU C Library) -Group: System/Libraries %ifarch %ix86 x86_64 %define enablekernel 2.6.32 %else %define enablekernel 2.6.5 %endif -Conflicts: kernel < %{enablekernel} %define exp_malloc 1 -Obsoletes: ngpt < 2.2.2 ngpt-devel < 2.2.2 -Provides: ngpt = 2.2.2 ngpt-devel = 2.2.2 +Obsoletes: ngpt < 2.2.2 +Obsoletes: ngpt-devel < 2.2.2 +Provides: ngpt = 2.2.2 +Provides: ngpt-devel = 2.2.2 +Conflicts: kernel < %{enablekernel} # bug437293 %ifarch ppc64 Obsoletes: glibc-64bit @@ -68,13 +73,9 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -Provides: rtld(GNU_HASH) -AutoReqProv: on Version: 2.13 -Release: 3 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html -PreReq: filesystem -BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 Source3: noversion.tar.bz2 @@ -86,67 +87,125 @@ Source10: bindresvport.blacklist Source12: glibc_post_upgrade.c Source15: glibc.rpmlintrc Source16: baselibs.conf +PreReq: filesystem +PreReq: permissions +Provides: rtld(GNU_HASH) +BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %_target_cpu == "i686" # We need to avoid to have only the src rpm from i686 on the media, # since it does not work on other architectures. NoSource: 0 %endif # +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch0: glibc-2.3-SuSE.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch1: glibc-2.3.90-noversion.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch2: glibc-fnmatch-multibyte.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch3: glibc-resolv-reload.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch4: glibc-2.3.locales.diff.bz2 +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch5: crypt_blowfish-1.0-suse.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch7: glibc-version.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch8: glibc-2.4.90-revert-only-euro.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch9: glibc-2.3-regcomp.diff -Patch10: glibc-2.3.2-revert_tcsetattr.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch11: glibc-2.3.1.localedef.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch12: glibc-2.3.2.no_archive.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch13: libm-x86-64.diff.bz2 +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch14: glibc-2.3.90-bindresvport.blacklist.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch15: glibc-suse-note.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch16: glibc-2.4.90-no_NO.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch17: glibc-2.3.90-ld.so-madvise.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch18: glibc-2.3.3-amd64-s_ceil.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch20: glibc-2.4-china.diff +# PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch22: glibc-2.4.90-nscd.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch23: glibc-2.3.3-nscd-db-path.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch25: glibc-2.3.90-langpackdir.diff -Patch26: glibc-nptl-2.4-nofixsyscallnr.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch27: glibc-2.6-configure.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch28: glibc-2.2-sunrpc.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch29: glibc-2.8-getconf.diff +# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697 Patch30: getaddrinfo-ipv6-sanity.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch31: ppc-atomic.diff -Patch32: glibc-2.8-clone.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch33: glibc-compiled-binaries.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch36: glibc-no-unwind-tables.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch37: glibc-2.10-nscd-nostack.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch38: glibc-cpusetsize.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch39: glibc-2.10.99-ia64-include.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch40: libm-x86-64-exceptions.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch41: glibc-uio-cell.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch42: glibc-statfs64-ia64.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +Patch43: missing-include-build-fix.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch44: glibc-ppc64-vdso-time.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch45: glibc-gai-private4.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch46: glibc-resolv-mdnshint.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch47: glibc-nscd-hconf.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch48: glibc-malloc-arena-max.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch49: glibc-fini-unwind.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch50: glibc-gconvcache-s390.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch51: glibc-vfprintf-positional.diff +# FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch53: glibc-zarch-longlong.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch54: glibc-disable-backward-memcpy.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch55: glibc-bso-12454.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch56: glibc-static-memcpy.diff +# FIX-OPENSUSE compile some files with -fno-strict-aliasing +Patch58: glibc-strict-aliasing.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff -Patch501: ARM_glibc-2.10.1-local-hwcap-updates.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +Patch501: ARM_glibc-2.10.1-local-hwcap-updates.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff +# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff %description @@ -155,40 +214,31 @@ by nearly all programs: the standard C library, the standard math library, and the POSIX thread library. A system is not functional without these libraries. - - %package info License: GPLv2+ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} -AutoReqProv: on %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not complete and is partially out of date. - - %package html License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML -AutoReqProv: on %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is partially out of date. - - %package i18ndata License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries -AutoReqProv: on %description i18ndata This package contains the data needed to build the locale data files to @@ -196,15 +246,12 @@ use the internationalization features of the GNU libc. It is normally not necessary to install this packages, the data files are already created. - - %package locale License: GPLv2+ ; LGPLv2.1+ Summary: Locale Data for Localized Programs Group: System/Libraries -Requires: glibc = %{version} PreReq: /bin/cat -AutoReqProv: on +Requires: glibc = %{version} # bug437293 %ifarch ppc64 Obsoletes: glibc-locale-64bit @@ -216,21 +263,18 @@ Obsoletes: glibc-locale-32bit %description locale Locale data for the internationalisation features of the GNU C library. - - %package -n nscd License: LGPLv2.1+ Summary: Name Service Caching Daemon Group: System/Daemons -Provides: glibc:/usr/sbin/nscd aaa_base:/etc/init.d/nscd +Provides: aaa_base:/etc/init.d/nscd +Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. - - %package profile License: LGPLv2.1+ Summary: Libc Profiling and Debugging Versions @@ -243,14 +287,11 @@ Obsoletes: glibc-profile-64bit %ifarch ppc Obsoletes: glibc-profile-32bit %endif -AutoReqProv: on %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. - - %package devel License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Include Files and Libraries Mandatory for Development @@ -266,22 +307,30 @@ Obsoletes: glibc-devel-32bit %endif PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers -AutoReqProv: on %description devel These libraries are needed to develop programs which use the standard C library. +%package utils +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +Summary: Development utilities from GNU C library +Group: Development/Languages/C and C++ +Requires: glibc = %{version} +%description utils +The glibc-utils package contains memusage, a memory usage profiler, +mtrace, a memory leak tracer and xtrace, a function call tracer +which can be helpful during program debugging. + +If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} -AutoReqProv: on %description obsolete This package provides some old libraries from the GNU C Library which @@ -317,8 +366,6 @@ versions of your software. %patch8 # Seems not needed anymore #%patch9 -# Seems not needed anymore -#%patch10 %patch11 %patch12 %patch13 -E @@ -340,14 +387,11 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch25 -%patch26 %patch27 %patch28 %patch29 %patch30 %patch31 -# Seems not needed anymore -#%patch32 %patch33 %patch36 %patch37 @@ -356,6 +400,7 @@ rm nscd/s-stamp %patch40 %patch41 -p1 %patch42 +%patch43 -p1 %patch44 -p1 %patch45 %patch46 -p1 @@ -371,6 +416,7 @@ rm nscd/s-stamp %patch54 -p1 %patch55 -p1 %patch56 -p1 +%patch58 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -418,7 +464,7 @@ echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h # # Default CFLAGS and Compiler # -BuildFlags="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE -fno-strict-aliasing" +BuildFlags="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE" BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" BuildCC="gcc" BuildCCplus="g++" @@ -501,7 +547,7 @@ configure_and_build_glibc() { --enable-experimental-malloc \ %endif --with-tls --with-__thread --enable-kernel=%{enablekernel} \ - --enable-bind-now + --enable-bind-now # Should we enable --enable-nss-crypt to build use freebl3 hash functions? make $PARALLEL cd .. @@ -553,7 +599,7 @@ make -C cc-base html # # Build glibc_post_upgrade binary # -$BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ +$BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ -Lcc-base -Bcc-base/csu \ '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ %ifarch ppc ppc64 @@ -790,6 +836,9 @@ done %clean rm -rf $RPM_BUILD_ROOT +# Note: glibc_post_upgrade does: +# %set_permissions %{_libdir}/pt_chown +# since we cannot do it in our own post section %post -p %{_sbindir}/glibc_post_upgrade %postun -p /sbin/ldconfig @@ -813,12 +862,16 @@ done %post -n nscd %{insserv_force_if_yast nscd} +mkdir -p /var/run/nscd %postun -n nscd %restart_on_update nscd %insserv_cleanup exit 0 +%verifyscript +%verify_permissions -e %{_libdir}/pt_chown + ####################################################################### ### ### FILES @@ -882,7 +935,6 @@ exit 0 /%{_lib}/libdl.so.2* /%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -/%{_lib}/libmemusage.so /%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 /%{_lib}/libnss_compat-%{version}.so @@ -897,7 +949,6 @@ exit 0 /%{_lib}/libnss_nis.so.2 /%{_lib}/libnss_nisplus-%{version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpcprofile.so /%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 /%{_lib}/libresolv-%{version}.so @@ -937,25 +988,24 @@ exit 0 %endif # optimize_power %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig -/usr/bin/gencat -/usr/bin/getconf -/usr/bin/getent -/usr/bin/iconv -%attr(755,root,root) /usr/bin/ldd +%{_bindir}/gencat +%{_bindir}/getconf +%{_bindir}/getent +%{_bindir}/iconv +%attr(755,root,root) %{_bindir}/ldd %ifarch %ix86 sparc sparcv9 - /usr/bin/lddlibc4 + %{_bindir}/lddlibc4 %endif -/usr/bin/locale -/usr/bin/localedef -%attr(4755,root,root) %{_libdir}/pt_chown +%{_bindir}/locale +%{_bindir}/localedef +%verify(not mode caps) %attr(4755,root,root) %{_libdir}/pt_chown %dir %attr(0755,root,root) %{_libdir}/getconf %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade %{_sbindir}/rpcinfo -/usr/sbin/iconvconfig +%{_sbindir}/iconvconfig %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -979,12 +1029,9 @@ exit 0 %doc %{_mandir}/man1/rpcgen.1.gz %doc %{_mandir}/man1/sprof.1.gz %doc %{_mandir}/man3/* -/usr/bin/catchsegv -/usr/bin/mtrace -/usr/bin/pcprofiledump -/usr/bin/rpcgen -/usr/bin/sprof -/usr/bin/xtrace +%{_bindir}/catchsegv +%{_bindir}/rpcgen +%{_bindir}/sprof %{_prefix}/include/* %{_libdir}/*.o %{_libdir}/*.so @@ -1031,8 +1078,8 @@ exit 0 %dir /etc/apparmor.d %config /etc/apparmor.d/usr.sbin.nscd %config /etc/init.d/nscd -/usr/sbin/nscd -/usr/sbin/rcnscd +%{_sbindir}/nscd +%{_sbindir}/rcnscd %dir %attr(0755,root,root) %ghost /var/run/nscd %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid %attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket @@ -1055,4 +1102,14 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a +%files utils +%defattr(-,root,root) +/%{_lib}/libmemusage.so +/%{_lib}/libpcprofile.so +%{_bindir}/memusage +%{_bindir}/memusagestat +%{_bindir}/mtrace +%{_bindir}/pcprofiledump +%{_bindir}/xtrace + %changelog diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index ebd1e6e..cde2295 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -128,6 +128,12 @@ main (void) "--nostdlib", GCONV_MODULES_DIR); } + /* Implement %set_permissions %{_libdir}/pt_chown. */ + if (access ("/usr/bin/chkstat", X_OK) == 0) + verbose_exec (114, "/usr/bin/chkstat", "/usr/bin/chkstat", + "-n", "--set", "--system", "/usr/lib/pt_chown", + "/usr/lib64/pt_chown"); + /* Check if telinit is available and the init fifo as well. */ if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK)) _exit (0); diff --git a/missing-include-build-fix.diff b/missing-include-build-fix.diff new file mode 100644 index 0000000..d1fc51e --- /dev/null +++ b/missing-include-build-fix.diff @@ -0,0 +1,31 @@ +2011-06-14 Andreas Jaeger + + * pthread_rwlock_init.c: Include for + memset declaration. + +2011-06-14 Andreas Jaeger + + * sysdeps/unix/sysv/linux/check_native.c: Include for + memset declaration. + +--- a/sysdeps/unix/sysv/linux/check_native.c ++++ b/sysdeps/unix/sysv/linux/check_native.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include + +--- a/nptl/pthread_rwlock_init.c ++++ b/nptl/pthread_rwlock_init.c +@@ -18,6 +18,7 @@ + 02111-1307 USA. */ + + #include "pthreadP.h" ++#include + #include + + From 2a2a7be7ab7919cebfcfadd24ad4e5ca5f21950a08070f7473d42a5519ef3617 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 15 Jun 2011 15:02:49 +0000 Subject: [PATCH 044/204] Autobuild autoformatter for 73729 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=48 --- glibc.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index 898f0ea..c0a3a63 100644 --- a/glibc.spec +++ b/glibc.spec @@ -74,7 +74,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 1 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -326,6 +326,7 @@ which can be helpful during program debugging. If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library @@ -839,6 +840,7 @@ rm -rf $RPM_BUILD_ROOT # Note: glibc_post_upgrade does: # %set_permissions %{_libdir}/pt_chown # since we cannot do it in our own post section + %post -p %{_sbindir}/glibc_post_upgrade %postun -p /sbin/ldconfig @@ -1006,6 +1008,7 @@ exit 0 %{_sbindir}/iconvconfig %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ From 170d79deda70c63c35982ee260264411d6f6a18f18c4a85a43f83895ffc0f83b Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 17 Jun 2011 09:13:35 +0000 Subject: [PATCH 045/204] Accepting request 73973 from Base:System Various cleanups OBS-URL: https://build.opensuse.org/request/show/73973 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=49 --- getaddrinfo-ipv6-sanity.diff | 13 +- glibc-2.13-dl-load.patch | 320 +++++++++++++++++++++++++++++++++++ glibc.changes | 22 +++ glibc.spec | 91 +++++++--- 4 files changed, 424 insertions(+), 22 deletions(-) create mode 100644 glibc-2.13-dl-load.patch diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index c982e8b..c89228d 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -13,7 +13,16 @@ Index: sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -766,7 +766,7 @@ gaih_inet (const char *name, const struc +@@ -706,7 +706,7 @@ gaih_inet (const char *name, const struc + no_data = 0; + nss_gethostbyname4_r fct4 + = __nss_lookup_function (nip, "gethostbyname4_r"); +- if (fct4 != NULL) ++ if (fct4 != NULL && usable_ipv6) + { + int herrno; + +@@ -763,7 +763,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -22,7 +31,7 @@ Index: sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2157,7 +2157,7 @@ getaddrinfo (const char *name, const cha +@@ -2156,7 +2156,7 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/glibc-2.13-dl-load.patch b/glibc-2.13-dl-load.patch new file mode 100644 index 0000000..89443e3 --- /dev/null +++ b/glibc-2.13-dl-load.patch @@ -0,0 +1,320 @@ +2011-05-11 Ulrich Drepper + + [BZ #12393] + * elf/dl-load.c (is_trusted_path): Remove unnecessary test. + (is_trusted_path_normalize): Skip initial colon. Append slash + to empty buffer. Duplicate is_trusted_path code but allow + constructed patch to be prefix. + (is_dst): Allow $ORIGIN followed by /. + (_dl_dst_substitute): Correct clearing of check_for_trusted. + Correct testing of result of is_trusted_path_normalize + (decompose_rpath): Fix warning. + +2011-05-07 Petr Baudis + Ulrich Drepper + + [BZ #12393] + * elf/dl-load.c (fillin_rpath): Move trusted path check... + (is_trusted_path): ...to here. + (is_trusted_path_normalize): Wrapper for /../ and /./ normalization. + (_dl_dst_substitute): Verify expanded $ORIGIN path elements + using is_trusted_path_normalize() in setuid scripts. + +2011-03-14 Andreas Schwab + + * elf/dl-load.c (_dl_dst_substitute): When skipping the first + rpath element also skip the following colon. + (expand_dynamic_string_token): Add is_path parameter and pass + down to DL_DST_REQUIRED and _dl_dst_substitute. + (decompose_rpath): Call expand_dynamic_string_token with + non-zero is_path. Ignore empty rpaths. + (_dl_map_object_from_fd): Call expand_dynamic_string_token + with zero is_path. + +2011-03-06 Ulrich Drepper + + * elf/dl-load.c (_dl_map_object): If we are looking for the first + to-be-loaded object along a path to loader is ld.so. + + +--- glibc-2.13/elf/dl-load.c 2011-05-20 21:53:43.766426054 +0200 ++++ glibc-2.14/elf/dl-load.c 2011-05-31 09:59:16.781617374 +0200 +@@ -1,5 +1,5 @@ + /* Map in a shared object's segments from the file. +- Copyright (C) 1995-2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. ++ Copyright (C) 1995-2007, 2009, 2010, 2011 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 +@@ -168,6 +168,87 @@ local_strdup (const char *s) + } + + ++static bool ++is_trusted_path (const char *path, size_t len) ++{ ++ const char *trun = system_dirs; ++ ++ for (size_t idx = 0; idx < nsystem_dirs_len; ++idx) ++ { ++ if (len == system_dirs_len[idx] && memcmp (trun, path, len) == 0) ++ /* Found it. */ ++ return true; ++ ++ trun += system_dirs_len[idx] + 1; ++ } ++ ++ return false; ++} ++ ++ ++static bool ++is_trusted_path_normalize (const char *path, size_t len) ++{ ++ if (len == 0) ++ return false; ++ ++ if (*path == ':') ++ { ++ ++path; ++ --len; ++ } ++ ++ char *npath = (char *) alloca (len + 2); ++ char *wnp = npath; ++ while (*path != '\0') ++ { ++ if (path[0] == '/') ++ { ++ if (path[1] == '.') ++ { ++ if (path[2] == '.' && (path[3] == '/' || path[3] == '\0')) ++ { ++ while (wnp > npath && *--wnp != '/') ++ ; ++ path += 3; ++ continue; ++ } ++ else if (path[2] == '/' || path[2] == '\0') ++ { ++ path += 2; ++ continue; ++ } ++ } ++ ++ if (wnp > npath && wnp[-1] == '/') ++ { ++ ++path; ++ continue; ++ } ++ } ++ ++ *wnp++ = *path++; ++ } ++ ++ if (wnp == npath || wnp[-1] != '/') ++ *wnp++ = '/'; ++ ++ const char *trun = system_dirs; ++ ++ for (size_t idx = 0; idx < nsystem_dirs_len; ++idx) ++ { ++ if (wnp - npath >= system_dirs_len[idx] ++ && memcmp (trun, npath, system_dirs_len[idx]) == 0) ++ /* Found it. */ ++ return true; ++ ++ trun += system_dirs_len[idx] + 1; ++ } ++ ++ return false; ++} ++ ++ + static size_t + is_dst (const char *start, const char *name, const char *str, + int is_path, int secure) +@@ -200,7 +281,8 @@ is_dst (const char *start, const char *n + return 0; + + if (__builtin_expect (secure, 0) +- && ((name[len] != '\0' && (!is_path || name[len] != ':')) ++ && ((name[len] != '\0' && name[len] != '/' ++ && (!is_path || name[len] != ':')) + || (name != start + 1 && (!is_path || name[-2] != ':')))) + return 0; + +@@ -240,13 +322,14 @@ _dl_dst_substitute (struct link_map *l, + int is_path) + { + const char *const start = name; +- char *last_elem, *wp; + + /* Now fill the result path. While copying over the string we keep + track of the start of the last path element. When we come accross + a DST we copy over the value or (if the value is not available) + leave the entire path element out. */ +- last_elem = wp = result; ++ char *wp = result; ++ char *last_elem = result; ++ bool check_for_trusted = false; + + do + { +@@ -265,6 +348,9 @@ _dl_dst_substitute (struct link_map *l, + else + #endif + repl = l->l_origin; ++ ++ check_for_trusted = (INTUSE(__libc_enable_secure) ++ && l->l_type == lt_executable); + } + else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) + repl = GLRO(dl_platform); +@@ -284,6 +370,10 @@ _dl_dst_substitute (struct link_map *l, + name += len; + while (*name != '\0' && (!is_path || *name != ':')) + ++name; ++ /* Also skip following colon if this is the first rpath ++ element, but keep an empty element at the end. */ ++ if (wp == result && is_path && *name == ':' && name[1] != '\0') ++ ++name; + } + else + /* No DST we recognize. */ +@@ -293,11 +383,28 @@ _dl_dst_substitute (struct link_map *l, + { + *wp++ = *name++; + if (is_path && *name == ':') +- last_elem = wp; ++ { ++ /* In SUID/SGID programs, after $ORIGIN expansion the ++ normalized path must be rooted in one of the trusted ++ directories. */ ++ if (__builtin_expect (check_for_trusted, false) ++ && !is_trusted_path_normalize (last_elem, wp - last_elem)) ++ wp = last_elem; ++ else ++ last_elem = wp; ++ ++ check_for_trusted = false; ++ } + } + } + while (*name != '\0'); + ++ /* In SUID/SGID programs, after $ORIGIN expansion the normalized ++ path must be rooted in one of the trusted directories. */ ++ if (__builtin_expect (check_for_trusted, false) ++ && !is_trusted_path_normalize (last_elem, wp - last_elem)) ++ wp = last_elem; ++ + *wp = '\0'; + + return result; +@@ -310,7 +417,7 @@ _dl_dst_substitute (struct link_map *l, + belonging to the map is loaded. In this case the path element + containing $ORIGIN is left out. */ + static char * +-expand_dynamic_string_token (struct link_map *l, const char *s) ++expand_dynamic_string_token (struct link_map *l, const char *s, int is_path) + { + /* We make two runs over the string. First we determine how large the + resulting string is and then we copy it over. Since this is no +@@ -321,7 +428,7 @@ expand_dynamic_string_token (struct link + char *result; + + /* Determine the number of DST elements. */ +- cnt = DL_DST_COUNT (s, 1); ++ cnt = DL_DST_COUNT (s, is_path); + + /* If we do not have to replace anything simply copy the string. */ + if (__builtin_expect (cnt, 0) == 0) +@@ -335,7 +442,7 @@ expand_dynamic_string_token (struct link + if (result == NULL) + return NULL; + +- return _dl_dst_substitute (l, s, result, 1); ++ return _dl_dst_substitute (l, s, result, is_path); + } + + +@@ -407,33 +514,8 @@ fillin_rpath (char *rpath, struct r_sear + cp[len++] = '/'; + + /* Make sure we don't use untrusted directories if we run SUID. */ +- if (__builtin_expect (check_trusted, 0)) +- { +- const char *trun = system_dirs; +- size_t idx; +- int unsecure = 1; +- +- /* All trusted directories must be complete names. */ +- if (cp[0] == '/') +- { +- for (idx = 0; idx < nsystem_dirs_len; ++idx) +- { +- if (len == system_dirs_len[idx] +- && memcmp (trun, cp, len) == 0) +- { +- /* Found it. */ +- unsecure = 0; +- break; +- } +- +- trun += system_dirs_len[idx] + 1; +- } +- } +- +- if (unsecure) +- /* Simply drop this directory. */ +- continue; +- } ++ if (__builtin_expect (check_trusted, 0) && !is_trusted_path (cp, len)) ++ continue; + + /* See if this directory is already known. */ + for (dirp = GL(dl_all_dirs); dirp != NULL; dirp = dirp->next) +@@ -551,13 +633,21 @@ decompose_rpath (struct r_search_path_st + + /* Make a writable copy. At the same time expand possible dynamic + string tokens. */ +- copy = expand_dynamic_string_token (l, rpath); ++ copy = expand_dynamic_string_token (l, rpath, 1); + if (copy == NULL) + { + errstring = N_("cannot create RUNPATH/RPATH copy"); + goto signal_error; + } + ++ /* Ignore empty rpaths. */ ++ if (*copy == 0) ++ { ++ free (copy); ++ sps->dirs = (struct r_search_path_elem **) -1; ++ return false; ++ } ++ + /* Count the number of necessary elements in the result array. */ + nelems = 0; + for (cp = copy; *cp != '\0'; ++cp) +@@ -2109,7 +2201,9 @@ _dl_map_object (struct link_map *loader, + { + #ifdef SHARED + // XXX Correct to unconditionally default to namespace 0? +- l = loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded; ++ l = (loader ++ ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded ++ ?: &GL(dl_rtld_map)); + #else + l = loader; + #endif +@@ -2175,7 +2269,7 @@ _dl_map_object (struct link_map *loader, + { + /* The path may contain dynamic string tokens. */ + realname = (loader +- ? expand_dynamic_string_token (loader, name) ++ ? expand_dynamic_string_token (loader, name, 0) + : local_strdup (name)); + if (realname == NULL) + fd = -1; diff --git a/glibc.changes b/glibc.changes index 300c6cf..480a3c6 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Fri Jun 17 07:07:37 UTC 2011 - aj@suse.de + +- Do not package memusage and memusagestat since they require + lib-gd and that grows the build cycle. + +------------------------------------------------------------------- +Thu Jun 16 18:37:19 UTC 2011 - aj@suse.de + +- Fix handling of shared library preloading. + +------------------------------------------------------------------- +Thu Jun 16 13:33:23 UTC 2011 - aj@suse.de + +- Fix getaddrinfo IPv6 code (bnc#684534). +- Split up glibc-devel-static subpackage (bnc#655261). + +------------------------------------------------------------------- +Thu Jun 16 12:23:32 UTC 2011 - aj@suse.de + +- Reorder ld.so.conf library list (bnc#671725). + ------------------------------------------------------------------- Wed Jun 15 07:08:35 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index c0a3a63..c1ed0ac 100644 --- a/glibc.spec +++ b/glibc.spec @@ -19,11 +19,8 @@ Name: glibc BuildRequires: gcc-c++ -BuildRequires: gd-devel -BuildRequires: libpng-devel BuildRequires: libselinux-devel BuildRequires: libstdc++-devel -BuildRequires: zlib-devel %define _filter_GLIBC_PRIVATE 1 %define build_locales 1 %define run_testsuite 0 @@ -149,7 +146,7 @@ Patch27: glibc-2.6-configure.diff Patch28: glibc-2.2-sunrpc.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch29: glibc-2.8-getconf.diff -# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697 +# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 Patch30: getaddrinfo-ipv6-sanity.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch31: ppc-atomic.diff @@ -199,6 +196,8 @@ Patch55: glibc-bso-12454.diff Patch56: glibc-static-memcpy.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff +# PATCH-FIX-UPSTREAM fix preloading of shared libs aj@suse.de +Patch59: glibc-2.13-dl-load.patch # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -208,6 +207,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -220,6 +220,7 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -230,6 +231,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -240,6 +242,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -260,6 +263,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -271,6 +275,7 @@ Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -288,6 +293,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -308,16 +314,31 @@ Obsoletes: glibc-devel-32bit PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C library. +%package devel-static + + +Summary: C library static libraries for -static linking +Group: Development/Libraries/C and C++ +Requires: %{name}-devel = %{version} + + +%description devel-static +The glibc-devel-static package contains the C library static libraries +for -static linking. You don't need these, unless you link statically, +which is highly discouraged. + %package utils License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer @@ -327,12 +348,14 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -345,6 +368,7 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -418,6 +442,7 @@ rm nscd/s-stamp %patch55 -p1 %patch56 -p1 %patch58 +%patch59 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -450,6 +475,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -625,6 +651,7 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -647,6 +674,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -772,12 +800,8 @@ touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} # cat > $RPM_BUILD_ROOT/etc/ld.so.conf < $RPM_BUILD_ROOT/etc/ld.so.conf < Date: Fri, 17 Jun 2011 09:13:52 +0000 Subject: [PATCH 046/204] Autobuild autoformatter for 73973 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=50 --- glibc.spec | 40 +--------------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index c1ed0ac..1a9d5bb 100644 --- a/glibc.spec +++ b/glibc.spec @@ -71,7 +71,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 7 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -207,7 +207,6 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff - %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -220,7 +219,6 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -231,7 +229,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -242,7 +239,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -263,7 +259,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -275,7 +270,6 @@ Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -293,7 +287,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -314,7 +307,6 @@ Obsoletes: glibc-devel-32bit PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. @@ -326,7 +318,6 @@ Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -338,7 +329,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer @@ -348,14 +338,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -368,7 +356,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -475,7 +462,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -651,7 +637,6 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -674,7 +659,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -858,7 +842,6 @@ done ### ####################################################################### - %clean rm -rf $RPM_BUILD_ROOT @@ -866,13 +849,10 @@ rm -rf $RPM_BUILD_ROOT # %set_permissions %{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -881,24 +861,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -915,7 +890,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1043,7 +1017,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1052,7 +1025,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) /usr/share/locale/locale.alias @@ -1061,7 +1033,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1088,7 +1059,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1103,24 +1073,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1136,7 +1102,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1152,7 +1117,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1164,6 +1128,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From a715d6e38a2abe15ee070a36c9f9cad00fcd052edc7dc72bd3a216ebcbb31391 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 17 Jun 2011 13:24:08 +0000 Subject: [PATCH 047/204] Accepting request 74024 from Base:System forwarding to factory OBS-URL: https://build.opensuse.org/request/show/74024 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=51 --- glibc.changes | 6 +++++ glibc.spec | 68 +++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 55 insertions(+), 19 deletions(-) diff --git a/glibc.changes b/glibc.changes index 480a3c6..553c370 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de + +- Cleanup ld.so.conf list, move kde directories to + kdelibs3 (bnc#671725). + ------------------------------------------------------------------- Fri Jun 17 07:07:37 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 1a9d5bb..6d26f74 100644 --- a/glibc.spec +++ b/glibc.spec @@ -71,7 +71,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 7 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -207,6 +207,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -219,6 +220,7 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -229,6 +231,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -239,6 +242,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -259,6 +263,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -270,6 +275,7 @@ Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -287,6 +293,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -307,6 +314,7 @@ Obsoletes: glibc-devel-32bit PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C library. @@ -318,6 +326,7 @@ Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} + %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -329,6 +338,7 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer @@ -338,12 +348,14 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -356,6 +368,7 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -462,6 +475,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -637,6 +651,7 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -659,6 +674,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -783,30 +799,22 @@ touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} # Create ld.so.conf # cat > $RPM_BUILD_ROOT/etc/ld.so.conf < Date: Fri, 17 Jun 2011 13:24:26 +0000 Subject: [PATCH 048/204] Autobuild autoformatter for 74024 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=52 --- glibc.spec | 40 +--------------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index 6d26f74..18b0351 100644 --- a/glibc.spec +++ b/glibc.spec @@ -71,7 +71,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 9 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -207,7 +207,6 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff - %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -220,7 +219,6 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -231,7 +229,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -242,7 +239,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -263,7 +259,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -275,7 +270,6 @@ Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -293,7 +287,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -314,7 +307,6 @@ Obsoletes: glibc-devel-32bit PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. @@ -326,7 +318,6 @@ Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -338,7 +329,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer @@ -348,14 +338,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -368,7 +356,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -475,7 +462,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -651,7 +637,6 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -674,7 +659,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -850,7 +834,6 @@ done ### ####################################################################### - %clean rm -rf $RPM_BUILD_ROOT @@ -858,13 +841,10 @@ rm -rf $RPM_BUILD_ROOT # %set_permissions %{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -873,24 +853,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -907,7 +882,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1035,7 +1009,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1044,7 +1017,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) /usr/share/locale/locale.alias @@ -1053,7 +1025,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1080,7 +1051,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1095,24 +1065,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1128,7 +1094,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1144,7 +1109,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1156,6 +1120,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From f099947cba76abd23840524ccf0253ce327a04627a177187b49fddaa099c391b Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 20 Jun 2011 11:57:32 +0000 Subject: [PATCH 049/204] Accepting request 74184 from Base:System Remove prereq on permissions as discussed with Coolo as hot-fix for M2 OBS-URL: https://build.opensuse.org/request/show/74184 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=53 --- glibc-x86-bits-sigcontext.patch | 113 ++++++++++++++++++++++++++++++++ glibc.changes | 7 ++ glibc.spec | 45 ++++++++++++- 3 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 glibc-x86-bits-sigcontext.patch diff --git a/glibc-x86-bits-sigcontext.patch b/glibc-x86-bits-sigcontext.patch new file mode 100644 index 0000000..c1eca5c --- /dev/null +++ b/glibc-x86-bits-sigcontext.patch @@ -0,0 +1,113 @@ +2011-06-20 Andreas Jaeger + + * sysdeps/unix/sysv/linux/i386/bits/sigcontext.h: New file. + +============================================================ +Index: ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h +--- ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h created ++++ ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h 2011-06-20 12:14:48.528411362 +0200 1.1 +@@ -0,0 +1,104 @@ ++/* Copyright (C) 2011 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++struct _fpreg ++{ ++ unsigned short significand[4]; ++ unsigned short exponent; ++}; ++ ++struct _fpxreg ++{ ++ unsigned short significand[4]; ++ unsigned short exponent; ++ unsigned short padding[3]; ++}; ++ ++struct _xmmreg ++{ ++ __uint32_t element[4]; ++}; ++ ++ ++ ++struct _fpstate ++{ ++ /* Regular FPU environment. */ ++ __uint32_t cw; ++ __uint32_t sw; ++ __uint32_t tag; ++ __uint32_t ipoff; ++ __uint32_t cssel; ++ __uint32_t dataoff; ++ __uint32_t datasel; ++ struct _fpreg _st[8]; ++ unsigned short status; ++ unsigned short magic; ++ ++ /* FXSR FPU environment. */ ++ __uint32_t _fxsr_env[6]; ++ __uint32_t mxcsr; ++ __uint32_t reserved; ++ struct _fpxreg _fxsr_st[8]; ++ struct _xmmreg _xmm[8]; ++ __uint32_t padding[56]; ++}; ++ ++#ifndef sigcontext_struct ++/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but ++ we need sigcontext. Some packages have come to rely on ++ sigcontext_struct being defined on 32-bit x86, so define this for ++ their benefit. */ ++# define sigcontext_struct sigcontext ++#endif ++ ++struct sigcontext ++{ ++ unsigned short gs, __gsh; ++ unsigned short fs, __fsh; ++ unsigned short es, __esh; ++ unsigned short ds, __dsh; ++ unsigned long edi; ++ unsigned long esi; ++ unsigned long ebp; ++ unsigned long esp; ++ unsigned long ebx; ++ unsigned long edx; ++ unsigned long ecx; ++ unsigned long eax; ++ unsigned long trapno; ++ unsigned long err; ++ unsigned long eip; ++ unsigned short cs, __csh; ++ unsigned long eflags; ++ unsigned long esp_at_signal; ++ unsigned short ss, __ssh; ++ struct _fpstate * fpstate; ++ unsigned long oldmask; ++ unsigned long cr2; ++}; ++ ++ ++#endif /* _BITS_SIGCONTEXT_H */ diff --git a/glibc.changes b/glibc.changes index 553c370..1dd1303 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jun 20 11:02:01 UTC 2011 - aj@suse.de + +- Remove PreReq on permissions to avoid a cycle that gives leads to + an uninstallable system (bnc#700925). +- Fix on x86 - fixes scpm compilation. + ------------------------------------------------------------------- Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 18b0351..db16f58 100644 --- a/glibc.spec +++ b/glibc.spec @@ -71,7 +71,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 9 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -85,7 +85,6 @@ Source12: glibc_post_upgrade.c Source15: glibc.rpmlintrc Source16: baselibs.conf PreReq: filesystem -PreReq: permissions Provides: rtld(GNU_HASH) BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %_target_cpu == "i686" @@ -198,6 +197,8 @@ Patch56: glibc-static-memcpy.diff Patch58: glibc-strict-aliasing.diff # PATCH-FIX-UPSTREAM fix preloading of shared libs aj@suse.de Patch59: glibc-2.13-dl-load.patch +# PATCH-FIX-UPSTREAM fix x86 Date: Mon, 20 Jun 2011 11:57:45 +0000 Subject: [PATCH 050/204] Autobuild autoformatter for 74184 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=54 --- glibc.spec | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index db16f58..137c433 100644 --- a/glibc.spec +++ b/glibc.spec @@ -71,7 +71,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 11 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -208,7 +208,6 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff - %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -221,7 +220,6 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -232,7 +230,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -243,7 +240,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -264,7 +260,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -276,7 +271,6 @@ Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -294,7 +288,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -315,18 +308,17 @@ Obsoletes: glibc-devel-32bit PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static + Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -338,7 +330,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer @@ -348,14 +339,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -368,7 +357,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -476,7 +464,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -652,7 +639,6 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -675,7 +661,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -851,7 +836,6 @@ done ### ####################################################################### - %clean rm -rf $RPM_BUILD_ROOT @@ -859,13 +843,10 @@ rm -rf $RPM_BUILD_ROOT # %set_permissions %{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -874,24 +855,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -908,7 +884,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1036,7 +1011,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1045,7 +1019,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) /usr/share/locale/locale.alias @@ -1054,7 +1027,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1081,7 +1053,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1096,24 +1067,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1129,7 +1096,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1145,7 +1111,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1157,6 +1122,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From cd0fff8a65f28425fd69c1b2926c27db72928dd80fc31eeb3b5baaf80046ee1f Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 20 Jun 2011 13:58:04 +0000 Subject: [PATCH 051/204] Accepting request 74203 from Base:System Minor cleanups. OBS-URL: https://build.opensuse.org/request/show/74203 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=55 --- glibc.changes | 10 +++++++++- glibc.rpmlintrc | 2 ++ glibc.spec | 47 ++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/glibc.changes b/glibc.changes index 1dd1303..b9be988 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,9 +1,17 @@ +------------------------------------------------------------------- +Mon Jun 20 12:47:46 UTC 2011 - aj@suse.de + +- Enhance rpmlintrc. +- move summary,license and group out of the not-ppc if (by Marcus + Meissner). + ------------------------------------------------------------------- Mon Jun 20 11:02:01 UTC 2011 - aj@suse.de - Remove PreReq on permissions to avoid a cycle that gives leads to an uninstallable system (bnc#700925). -- Fix on x86 - fixes scpm compilation. +- Fix on x86 - fixes scpm compilation + (bnc#700784). ------------------------------------------------------------------- Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index a71322b..c3289a4 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -10,3 +10,5 @@ addFilter(".*files-duplicate /usr/lib64/libbsd-compat.a /usr/lib.*/libg.a") addFilter(".*shared-lib-without-dependency-information /lib.*/ld-2.*.so") # Handled via glibc_post_upgrade: addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post") +# Do not require permissions, this will lead to a cycle (bnc#700925): +addFilter("glibc\..*: permissions-missing-requires") diff --git a/glibc.spec b/glibc.spec index 137c433..b7f241d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -18,6 +18,9 @@ Name: glibc +License: GPLv2+ +Summary: Standard Shared Libraries (from the GNU C Library) +Group: System/Libraries BuildRequires: gcc-c++ BuildRequires: libselinux-devel BuildRequires: libstdc++-devel @@ -42,9 +45,6 @@ BuildRequires: libstdc++-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %else -License: GPLv2+ -Summary: Standard Shared Libraries (from the GNU C Library) -Group: System/Libraries %define optimize_power 0 %define powerpc_optimize_base 0 %define powerpc_optimize_cpu_power4 0 @@ -71,7 +71,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 11 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -208,6 +208,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -220,6 +221,7 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -230,6 +232,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -240,6 +243,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -260,6 +264,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -271,6 +276,7 @@ Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -288,6 +294,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -308,17 +315,18 @@ Obsoletes: glibc-devel-32bit PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} + %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -330,6 +338,7 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer @@ -339,12 +348,14 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -357,6 +368,7 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -464,6 +476,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -639,6 +652,7 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -661,6 +675,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -836,6 +851,7 @@ done ### ####################################################################### + %clean rm -rf $RPM_BUILD_ROOT @@ -843,10 +859,13 @@ rm -rf $RPM_BUILD_ROOT # %set_permissions %{_libdir}/pt_chown # since we cannot do it in our own post section + %post -p %{_sbindir}/glibc_post_upgrade + %postun -p /sbin/ldconfig + %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -855,19 +874,24 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig + %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %preun -n nscd %stop_on_removal nscd + %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd + %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -884,6 +908,7 @@ exit 0 # glibc + %files %defattr(-,root,root) %doc LICENSES @@ -1011,6 +1036,7 @@ exit 0 %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1019,6 +1045,7 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif + %files locale -f libc.lang %defattr(-,root,root) /usr/share/locale/locale.alias @@ -1027,6 +1054,7 @@ exit 0 %endif %{_libdir}/gconv + %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1053,6 +1081,7 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a + %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1067,20 +1096,24 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a + %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz + %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc + %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n + %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1096,6 +1129,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts + %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1111,6 +1145,7 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a + %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1122,4 +1157,6 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace + + %changelog From f2701fc6803f40f1c35fd046a60df734d2eb9a4510f5978c064343a80a65ecd7 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 20 Jun 2011 13:58:15 +0000 Subject: [PATCH 052/204] Autobuild autoformatter for 74203 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=56 --- glibc.spec | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index b7f241d..22bcaf8 100644 --- a/glibc.spec +++ b/glibc.spec @@ -71,7 +71,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 13 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -208,7 +208,6 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff - %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -221,7 +220,6 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other PreReq: %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -232,7 +230,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -243,7 +240,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -264,7 +260,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -276,7 +271,6 @@ Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd PreReq: %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -294,7 +288,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -315,18 +308,17 @@ Obsoletes: glibc-devel-32bit PreReq: /bin/rm Requires: glibc = %{version}, linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static + Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -338,7 +330,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer @@ -348,14 +339,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -368,7 +357,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -476,7 +464,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -652,7 +639,6 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -675,7 +661,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -851,7 +836,6 @@ done ### ####################################################################### - %clean rm -rf $RPM_BUILD_ROOT @@ -859,13 +843,10 @@ rm -rf $RPM_BUILD_ROOT # %set_permissions %{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -874,24 +855,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -908,7 +884,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1036,7 +1011,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1045,7 +1019,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) /usr/share/locale/locale.alias @@ -1054,7 +1027,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1081,7 +1053,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1096,24 +1067,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1129,7 +1096,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1145,7 +1111,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1157,6 +1122,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From 943d8273b6a152990f82b5572dc6ca8234bb05f128a803ffec9c77f72716beb6 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 27 Jun 2011 13:35:35 +0000 Subject: [PATCH 053/204] Accepting request 74646 from Base:System Cleanups, fix PPC build. OBS-URL: https://build.opensuse.org/request/show/74646 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=57 --- glibc-2.13-warnings.fix | 33 ++++ glibc-2.15-getsysstats-speedup.patch | 145 +++++++++++++++++ glibc-2.3-SuSE.diff | 43 ----- glibc-2.3-regcomp.diff | 13 -- glibc-2.3.90-ld.so-madvise.diff | 76 --------- glibc-gconvcache-s390.diff | 5 + glibc-suse-note.diff | 127 --------------- glibc-testsuite.patch | 15 ++ glibc-x86-bits-sigcontext.patch | 142 ++++------------- glibc.changes | 26 +++ glibc.spec | 227 ++++++++++++++++----------- 11 files changed, 391 insertions(+), 461 deletions(-) create mode 100644 glibc-2.13-warnings.fix create mode 100644 glibc-2.15-getsysstats-speedup.patch delete mode 100644 glibc-2.3-SuSE.diff delete mode 100644 glibc-2.3-regcomp.diff delete mode 100644 glibc-2.3.90-ld.so-madvise.diff delete mode 100644 glibc-suse-note.diff create mode 100644 glibc-testsuite.patch diff --git a/glibc-2.13-warnings.fix b/glibc-2.13-warnings.fix new file mode 100644 index 0000000..45d3c2e --- /dev/null +++ b/glibc-2.13-warnings.fix @@ -0,0 +1,33 @@ +commit 5615eaf26469f20c2d8c3be5770e12564a1edfff +Author: Roland McGrath +Date: Fri Jun 10 12:45:09 2011 -0700 + + Quash some new warnings from GCC 4.6. + +2011-06-10 Roland McGrath + + * elf/dl-open.c (_dl_open): Quash warnings when DL_NNS==1. + +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 8d90b56..19fda91 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -516,7 +516,7 @@ _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid, + if (__builtin_expect (nsid == LM_ID_NEWLM, 0)) + { + /* Find a new namespace. */ +- for (nsid = 1; nsid < GL(dl_nns); ++nsid) ++ for (nsid = 1; DL_NNS > 1 && nsid < GL(dl_nns); ++nsid) + if (GL(dl_ns)[nsid]._ns_loaded == NULL) + break; + +@@ -528,8 +528,7 @@ _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid, + _dl_signal_error (EINVAL, file, NULL, N_("\ + no more namespaces available for dlmopen()")); + } +- +- if (nsid == GL(dl_nns)) ++ else if (nsid == GL(dl_nns)) + { + __rtld_lock_initialize (GL(dl_ns)[nsid]._ns_unique_sym_table.lock); + ++GL(dl_nns); diff --git a/glibc-2.15-getsysstats-speedup.patch b/glibc-2.15-getsysstats-speedup.patch new file mode 100644 index 0000000..87a29ef --- /dev/null +++ b/glibc-2.15-getsysstats-speedup.patch @@ -0,0 +1,145 @@ +From glibc.git (for 2.15): + +2011-06-23 H.J. Lu + + * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Use + __gettimeofday instead of gettimeofday. + +2011-06-22 Ulrich Drepper + + * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Use + /sys/devices/system/cpu/online if it is usable. + + * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Rate limit + reading the information from the /proc filesystem to once a second. + +--- glibc-2.13/sysdeps/unix/sysv/linux/getsysstats.c 2010-04-08 10:45:22.000000000 +0200 ++++ glibc.git/sysdeps/unix/sysv/linux/getsysstats.c 2011-06-27 09:56:27.359389056 +0200 +@@ -1,5 +1,5 @@ + /* Determine various system internal values, Linux version. +- Copyright (C) 1996-2003,2006,2007,2009,2010 Free Software Foundation, Inc. ++ Copyright (C) 1996-2003,2006,2007,2009,2010,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1996. + +@@ -35,6 +35,16 @@ + + #include + #include ++#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 + + + /* How we can determine the number of available processors depends on +@@ -128,6 +138,22 @@ + int + __get_nprocs () + { ++ static int cached_result; ++ static time_t timestamp; ++ ++#ifdef __ASSUME_POSIX_TIMERS ++ struct timespec ts; ++ INTERNAL_SYSCALL_DECL (err); ++ INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, &ts); ++#else ++ struct timeval ts; ++ __gettimeofday (&ts, NULL); ++#endif ++ time_t prev = timestamp; ++ atomic_read_barrier (); ++ if (ts.tv_sec == prev) ++ return cached_result; ++ + /* XXX Here will come a test for the new system call. */ + + const size_t buffer_size = __libc_use_alloca (8192) ? 8192 : 512; +@@ -135,20 +161,65 @@ + char *buffer_end = buffer + buffer_size; + char *cp = buffer_end; + char *re = buffer_end; +- int result = 1; + + #ifdef O_CLOEXEC + const int flags = O_RDONLY | O_CLOEXEC; + #else + const int flags = O_RDONLY; + #endif ++ int fd = open_not_cancel_2 ("/sys/devices/system/cpu/online", flags); ++ char *l; ++ int result = 0; ++ if (fd != -1) ++ { ++ l = next_line (fd, buffer, &cp, &re, buffer_end); ++ if (l != NULL) ++ do ++ { ++ char *endp; ++ unsigned long int n = strtoul (l, &endp, 10); ++ if (l == endp) ++ { ++ result = 0; ++ break; ++ } ++ ++ unsigned long int m = n; ++ if (*endp == '-') ++ { ++ l = endp + 1; ++ m = strtoul (l, &endp, 10); ++ if (l == endp) ++ { ++ result = 0; ++ break; ++ } ++ } ++ ++ result += m - n + 1; ++ ++ l = endp; ++ while (l < re && isspace (*l)) ++ ++l; ++ } ++ while (l < re); ++ ++ close_not_cancel_no_status (fd); ++ ++ if (result > 0) ++ goto out; ++ } ++ ++ cp = buffer_end; ++ re = buffer_end; ++ result = 1; ++ + /* The /proc/stat format is more uniform, use it by default. */ +- int fd = open_not_cancel_2 ("/proc/stat", flags); ++ fd = open_not_cancel_2 ("/proc/stat", flags); + if (fd != -1) + { + result = 0; + +- char *l; + while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL) + /* The current format of /proc/stat has all the cpu* entries + at the front. We assume here that stays this way. */ +@@ -169,6 +240,11 @@ + } + } + ++ out: ++ cached_result = result; ++ atomic_write_barrier (); ++ timestamp = ts.tv_sec; ++ + return result; + } + weak_alias (__get_nprocs, get_nprocs) diff --git a/glibc-2.3-SuSE.diff b/glibc-2.3-SuSE.diff deleted file mode 100644 index 62a1ff2..0000000 --- a/glibc-2.3-SuSE.diff +++ /dev/null @@ -1,43 +0,0 @@ -Index: io/Makefile -=================================================================== ---- io/Makefile.orig -+++ io/Makefile -@@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat - - others := pwd - test-srcs := ftwtest --tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ -+tests := test-utime test-stat test-stat2 tst-getcwd \ - tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ - tst-openat tst-unlinkat tst-fstatat tst-futimesat \ - tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ -Index: libio/stdio.h -=================================================================== ---- libio/stdio.h.orig -+++ libio/stdio.h -@@ -145,10 +145,12 @@ typedef _G_fpos64_t fpos64_t; - extern struct _IO_FILE *stdin; /* Standard input stream. */ - extern struct _IO_FILE *stdout; /* Standard output stream. */ - extern struct _IO_FILE *stderr; /* Standard error output stream. */ -+#ifdef __STDC__ - /* C89/C99 say they're macros. Make them happy. */ - #define stdin stdin - #define stdout stdout - #define stderr stderr -+#endif - - __BEGIN_NAMESPACE_STD - /* Remove file FILENAME. */ -Index: stdio-common/Makefile -=================================================================== ---- stdio-common/Makefile.orig -+++ stdio-common/Makefile -@@ -52,7 +52,7 @@ tests := tstscanf test_rdwr test-popen t - temptest tst-fileno test-fwrite tst-ungetc tst-ferror \ - xbug errnobug \ - bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 bug12 bug13 \ -- tfformat tiformat tllformat tstdiomisc tst-printfsz tst-wc-printf \ -+ tfformat tiformat tllformat tst-printfsz tst-wc-printf \ - scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \ - scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \ - tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \ diff --git a/glibc-2.3-regcomp.diff b/glibc-2.3-regcomp.diff deleted file mode 100644 index 8340d83..0000000 --- a/glibc-2.3-regcomp.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: posix/regcomp.c -=================================================================== ---- posix/regcomp.c.orig -+++ posix/regcomp.c -@@ -2254,6 +2254,8 @@ parse_expression (re_string_t *regexp, r - else if (syntax & RE_CONTEXT_INDEP_OPS) - { - fetch_token (token, regexp, syntax); -+ if (token->type == OP_CLOSE_SUBEXP || token->type == OP_ALT) -+ return NULL; - return parse_expression (regexp, preg, token, syntax, nest, err); - } - /* else fall through */ diff --git a/glibc-2.3.90-ld.so-madvise.diff b/glibc-2.3.90-ld.so-madvise.diff deleted file mode 100644 index fd01e86..0000000 --- a/glibc-2.3.90-ld.so-madvise.diff +++ /dev/null @@ -1,76 +0,0 @@ -Index: elf/dl-load.c -=================================================================== ---- elf/dl-load.c.orig -+++ elf/dl-load.c -@@ -1207,6 +1207,9 @@ cannot allocate TLS data structures for - goto call_lose_errno; - } - -+ if (GLRO(dl_madvise)) -+ posix_fadvise (fd, c->mapoff, maplength, POSIX_FADV_WILLNEED); -+ - l->l_map_end = l->l_map_start + maplength; - l->l_addr = l->l_map_start - c->mapstart; - -Index: elf/dl-support.c -=================================================================== ---- elf/dl-support.c.orig -+++ elf/dl-support.c -@@ -42,6 +42,7 @@ size_t _dl_platformlen; - - int _dl_debug_mask; - int _dl_lazy; -+int _dl_madvise; - ElfW(Addr) _dl_use_load_bias = -2; - int _dl_dynamic_weak; - -@@ -254,6 +255,8 @@ _dl_non_dynamic_init (void) - - _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0'; - -+ _dl_madvise = *(getenv ("LD_NOMADVISE") ?: "") == '\0'; -+ - _dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0'; - - _dl_dynamic_weak = *(getenv ("LD_DYNAMIC_WEAK") ?: "") == '\0'; -Index: elf/rtld.c -=================================================================== ---- elf/rtld.c.orig -+++ elf/rtld.c -@@ -158,6 +158,7 @@ struct rtld_global_ro _rtld_global_ro at - ._dl_lazy = 1, - ._dl_fpu_control = _FPU_DEFAULT, - ._dl_pointer_guard = 1, -+ ._dl_madvise = 1, - - /* Function pointers. */ - ._dl_debug_printf = _dl_debug_printf, -@@ -2612,6 +2613,14 @@ process_envvars (enum mode *modep) - break; - - case 9: -+ /* Test whether we should not advise the kernel -+ about memory usage. */ -+ if (memcmp (envline, "NOMADVISE", 9) == 0) -+ { -+ GLRO(dl_madvise) = envline[10] == '\0'; -+ break; -+ } -+ - /* Test whether we want to see the content of the auxiliary - array passed up from the kernel. */ - if (!INTUSE(__libc_enable_secure) -Index: sysdeps/generic/ldsodefs.h -=================================================================== ---- sysdeps/generic/ldsodefs.h.orig -+++ sysdeps/generic/ldsodefs.h -@@ -580,6 +580,9 @@ struct rtld_global_ro - /* Do we do lazy relocations? */ - EXTERN int _dl_lazy; - -+ /* Should we advise kernel about memory usage? */ -+ EXTERN int _dl_madvise; -+ - /* Nonzero if runtime lookups should not update the .got/.plt. */ - EXTERN int _dl_bind_not; - diff --git a/glibc-gconvcache-s390.diff b/glibc-gconvcache-s390.diff index 93d58c7..a09308d 100644 --- a/glibc-gconvcache-s390.diff +++ b/glibc-gconvcache-s390.diff @@ -1,3 +1,8 @@ +2011-06-21 Andreas Jaeger + + * sysdeps/s390/s390-64/Makefile ($(inst_gconvdir)/gconv-modules): + Copy rule from iconvdata/Makefile. + Index: glibc/sysdeps/s390/s390-64/Makefile =================================================================== --- sysdeps/s390/s390-64/Makefile 2009-08-03 10:18:31.000000000 +0200 diff --git a/glibc-suse-note.diff b/glibc-suse-note.diff deleted file mode 100644 index 5e85769..0000000 --- a/glibc-suse-note.diff +++ /dev/null @@ -1,127 +0,0 @@ - -This patch creates a SuSE .note section with version number 10.2 - -================================================================================ -Index: Makerules -=================================================================== ---- Makerules.orig -+++ Makerules -@@ -475,6 +475,7 @@ $(common-objpfx)shlib.lds: $(common-objp - -e '/^=========/,/^=========/!d;/^=========/d' \ - $(if $(filter yes,$(have-hash-style)), \ - -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ -+ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } .note.SuSE : { *(.note.SuSE) } &/' \ - -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \ - -e '/DATA_SEGMENT_ALIGN/{H;g}' \ - , \ -@@ -500,7 +501,7 @@ common-generated += shlib.lds - - define build-shlib - $(build-shlib-helper) -o $@ -T $(common-objpfx)shlib.lds \ -- $(csu-objpfx)abi-note.o $(build-shlib-objlist) -+ $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-shlib-objlist) - endef - else - ifneq (,$(findstring aix,$(config-os))) -@@ -542,7 +543,7 @@ ifeq (yes,$(elf)) - # not for shared objects - define build-module - $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ -- $(csu-objpfx)abi-note.o $(build-module-objlist) -+ $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-module-objlist) - endef - define build-module-asneeded - $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ -Index: csu/Makefile -=================================================================== ---- csu/Makefile.orig -+++ csu/Makefile -@@ -125,7 +125,7 @@ $(objpfx)defs.h: $(objpfx)initfini.s - endif - - ifeq (yes,$(elf)) --extra-objs += abi-note.o init.o -+extra-objs += abi-note.o suse-note.o init.o - asm-CPPFLAGS += -I$(objpfx). - endif - -@@ -143,12 +143,15 @@ ifeq (yes,$(elf)) - # We link the ELF startfile along with a SHT_NOTE section indicating - # the kernel ABI the binaries linked with this library will require. - $(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \ -+ $(objpfx)suse-note.o \ - $(objpfx)init.o - $(link-relocatable) - $(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \ -+ $(objpfx)suse-note.o \ - $(objpfx)init.o - $(link-relocatable) - $(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \ -+ $(objpfx)suse-note.ob \ - $(objpfx)init.ob - $(link-relocatable) - else -Index: csu/suse-note.S -=================================================================== ---- /dev/null -+++ csu/suse-note.S -@@ -0,0 +1,59 @@ -+/* Special .init and .fini section support. -+ Copyright (C) 1997, 2001, 2002 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* Look in abi-note.S for the definition of an ELF note section. */ -+ -+#include -+ -+#define PROD_TYPE_BOX 0 -+#define PROD_TYPE_SLES 1 -+ -+#define NOTE_VERSION 1 -+#define PROD_TYPE PROD_TYPE_BOX -+#define PROD_MAJOR 10 -+#define PROD_MINOR 2 -+ -+/* The linker (GNU ld 2.8 and later) recognizes an allocated section whose -+ name begins with `.note' and creates a PT_NOTE program header entry -+ pointing at it. */ -+ -+ .section ".note.SuSE", "a" -+ .p2align 2 -+ .long 1f - 0f /* name length */ -+ .long 3f - 2f /* data length */ -+ .long 0x45537553 /* note type ("SuSE" in little endian) */ -+0: .asciz "SuSE" /* vendor name */ -+1: -+ .p2align 2 -+2: /* Data */ -+ .byte NOTE_VERSION /* Version of following data */ -+ .byte PROD_TYPE /* product type (box, sles, nld, whatever) */ -+ .byte PROD_MAJOR /* product version */ -+ .byte PROD_MINOR /* product minor version */ -+3: -+ .p2align 2 /* pad out section */ diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch new file mode 100644 index 0000000..c9c4a53 --- /dev/null +++ b/glibc-testsuite.patch @@ -0,0 +1,15 @@ +test-lfs runs for ever on ReiserFS. Let's disable it completely. + +Index: io/Makefile +=================================================================== +--- io/Makefile.orig ++++ io/Makefile +@@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat + + others := pwd + test-srcs := ftwtest +-tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ ++tests := test-utime test-stat test-stat2 tst-getcwd \ + tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ + tst-openat tst-unlinkat tst-fstatat tst-futimesat \ + tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ diff --git a/glibc-x86-bits-sigcontext.patch b/glibc-x86-bits-sigcontext.patch index c1eca5c..4acfa3d 100644 --- a/glibc-x86-bits-sigcontext.patch +++ b/glibc-x86-bits-sigcontext.patch @@ -1,113 +1,35 @@ -2011-06-20 Andreas Jaeger - * sysdeps/unix/sysv/linux/i386/bits/sigcontext.h: New file. +http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6e502e19455c6110dd4487d91b7b7d6d8121f9ba -============================================================ -Index: ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h ---- ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h created -+++ ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h 2011-06-20 12:14:48.528411362 +0200 1.1 -@@ -0,0 +1,104 @@ -+/* Copyright (C) 2011 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. +commit 6e502e19455c6110dd4487d91b7b7d6d8121f9ba +Author: Ulrich Drepper +Date: Wed Jun 22 08:32:55 2011 -0400 + + Clean up after kernel sigcontext header mess + + +2011-06-21 Andreas Jaeger + + * sysdeps/unix/sysv/linux/bits/sigcontext.h: Fix definition of + NULL after inclusion of kernel headers. + + +diff --git a/sysdeps/unix/sysv/linux/bits/sigcontext.h b/sysdeps/unix/sysv/linux/bits/sigcontext.h +index 67dcf94..0f5b607 100644 +--- a/sysdeps/unix/sysv/linux/bits/sigcontext.h ++++ b/sysdeps/unix/sysv/linux/bits/sigcontext.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. ++/* Copyright (C) 1996, 1997, 1998, 2011 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 +@@ -26,4 +26,8 @@ + # define sigcontext_struct sigcontext + + # include + -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#ifndef _BITS_SIGCONTEXT_H -+#define _BITS_SIGCONTEXT_H 1 -+ -+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H -+# error "Never use directly; include instead." -+#endif -+ -+struct _fpreg -+{ -+ unsigned short significand[4]; -+ unsigned short exponent; -+}; -+ -+struct _fpxreg -+{ -+ unsigned short significand[4]; -+ unsigned short exponent; -+ unsigned short padding[3]; -+}; -+ -+struct _xmmreg -+{ -+ __uint32_t element[4]; -+}; -+ -+ -+ -+struct _fpstate -+{ -+ /* Regular FPU environment. */ -+ __uint32_t cw; -+ __uint32_t sw; -+ __uint32_t tag; -+ __uint32_t ipoff; -+ __uint32_t cssel; -+ __uint32_t dataoff; -+ __uint32_t datasel; -+ struct _fpreg _st[8]; -+ unsigned short status; -+ unsigned short magic; -+ -+ /* FXSR FPU environment. */ -+ __uint32_t _fxsr_env[6]; -+ __uint32_t mxcsr; -+ __uint32_t reserved; -+ struct _fpxreg _fxsr_st[8]; -+ struct _xmmreg _xmm[8]; -+ __uint32_t padding[56]; -+}; -+ -+#ifndef sigcontext_struct -+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but -+ we need sigcontext. Some packages have come to rely on -+ sigcontext_struct being defined on 32-bit x86, so define this for -+ their benefit. */ -+# define sigcontext_struct sigcontext -+#endif -+ -+struct sigcontext -+{ -+ unsigned short gs, __gsh; -+ unsigned short fs, __fsh; -+ unsigned short es, __esh; -+ unsigned short ds, __dsh; -+ unsigned long edi; -+ unsigned long esi; -+ unsigned long ebp; -+ unsigned long esp; -+ unsigned long ebx; -+ unsigned long edx; -+ unsigned long ecx; -+ unsigned long eax; -+ unsigned long trapno; -+ unsigned long err; -+ unsigned long eip; -+ unsigned short cs, __csh; -+ unsigned long eflags; -+ unsigned long esp_at_signal; -+ unsigned short ss, __ssh; -+ struct _fpstate * fpstate; -+ unsigned long oldmask; -+ unsigned long cr2; -+}; -+ -+ -+#endif /* _BITS_SIGCONTEXT_H */ ++/* The Linux kernel headers redefine NULL wrongly, so cleanup afterwards. */ ++# define __need_NULL ++# include + #endif diff --git a/glibc.changes b/glibc.changes index b9be988..4d55a4e 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,29 @@ +------------------------------------------------------------------- +Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de + +- Disable exp_malloc on PPC platforms for now since it caused a + build failure. + +------------------------------------------------------------------- +Mon Jun 27 11:00:33 UTC 2011 - aj@suse.de + +- Update glibc-x86-bits-sigcontext.patch with version accepted + upstream. +- Add glibc-2.15-getsysstats-speedup.patch to "Fix Linux + sysconf(_SC_NPROCESSORS_[CONF|ONLN]) performance problem" +- Fix warning about potential array subscript out of bounds + (glibc-2.13-wranings.fix). +- Fix some rpmlint warnings. + +------------------------------------------------------------------- +Tue Jun 21 10:59:33 UTC 2011 - aj@suse.de + +- Cleanup spec file, change PreReqs. +- Remove obsolete patches: glibc-2.3.90-ld.so-madvise.diff, + glibc-suse-note.diff, glibc-2.3-regcomp.diff. +- Rename glibc-2.3-SuSE.diff to glibc-testsuite.patch, remove obsolete + parts. + ------------------------------------------------------------------- Mon Jun 20 12:47:46 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 22bcaf8..a3f5618 100644 --- a/glibc.spec +++ b/glibc.spec @@ -57,13 +57,21 @@ BuildRequires: libstdc++-devel %else %define enablekernel 2.6.5 %endif +%ifarch ppc ppc64 +# On PowerPC we got a memory corruption during building, disabling +# exp_malloc fixed it. Disable it until we have found and fixed the +# root cause. +%define exp_malloc 0 +%else %define exp_malloc 1 +%endif +# ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 Provides: ngpt = 2.2.2 Provides: ngpt-devel = 2.2.2 Conflicts: kernel < %{enablekernel} -# bug437293 +# bug437293 - handle update from SLES10 on PowerPC %ifarch ppc64 Obsoletes: glibc-64bit %endif @@ -71,7 +79,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 13 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -84,7 +92,7 @@ Source10: bindresvport.blacklist Source12: glibc_post_upgrade.c Source15: glibc.rpmlintrc Source16: baselibs.conf -PreReq: filesystem +Requires(pre): filesystem Provides: rtld(GNU_HASH) BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %_target_cpu == "i686" @@ -93,8 +101,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build NoSource: 0 %endif # -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch0: glibc-2.3-SuSE.diff +# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de +Patch0: glibc-testsuite.patch # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch1: glibc-2.3.90-noversion.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -110,8 +118,6 @@ Patch7: glibc-version.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch8: glibc-2.4.90-revert-only-euro.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch9: glibc-2.3-regcomp.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch11: glibc-2.3.1.localedef.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch12: glibc-2.3.2.no_archive.diff @@ -120,12 +126,8 @@ Patch13: libm-x86-64.diff.bz2 # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch14: glibc-2.3.90-bindresvport.blacklist.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch15: glibc-suse-note.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch16: glibc-2.4.90-no_NO.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch17: glibc-2.3.90-ld.so-madvise.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch18: glibc-2.3.3-amd64-s_ceil.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch20: glibc-2.4-china.diff @@ -155,7 +157,7 @@ Patch33: glibc-compiled-binaries.diff Patch36: glibc-no-unwind-tables.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch37: glibc-2.10-nscd-nostack.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de Patch38: glibc-cpusetsize.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch39: glibc-2.10.99-ia64-include.diff @@ -183,22 +185,26 @@ Patch49: glibc-fini-unwind.diff Patch50: glibc-gconvcache-s390.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch51: glibc-vfprintf-positional.diff -# FIX-OPENSUSE bnc#657627 +# PATCH-FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM Fix longlong.h for zArch Patch53: glibc-zarch-longlong.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FEATURE-OPENSUSE disable backward memcpy aj@suse.de Patch54: glibc-disable-backward-memcpy.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch55: glibc-bso-12454.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM fix static memcpy Patch56: glibc-static-memcpy.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff # PATCH-FIX-UPSTREAM fix preloading of shared libs aj@suse.de Patch59: glibc-2.13-dl-load.patch -# PATCH-FIX-UPSTREAM fix x86 aj@suse.de Patch60: glibc-x86-bits-sigcontext.patch +# PATCH-FEATURE-UPSTREAM Speedup getsysstats call aj@suse.de +Patch61: glibc-2.15-getsysstats-speedup.patch +# PATCH-FIX-UPSTREAM Fix gcc 4.6 warnings aj@suse.de +Patch62: glibc-2.13-warnings.fix # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -208,6 +214,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -218,7 +225,9 @@ without these libraries. License: GPLv2+ Summary: Info Files for the GNU C Library Group: Documentation/Other -PreReq: %{install_info_prereq} +Requires(post): %{install_info_prereq} +Requires(postun): %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as @@ -230,6 +239,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -240,6 +250,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -250,7 +261,7 @@ created. License: GPLv2+ ; LGPLv2.1+ Summary: Locale Data for Localized Programs Group: System/Libraries -PreReq: /bin/cat +Requires(post): /bin/cat Requires: glibc = %{version} # bug437293 %ifarch ppc64 @@ -260,6 +271,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -269,7 +281,10 @@ Summary: Name Service Caching Daemon Group: System/Daemons Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd -PreReq: %insserv_prereq +Requires(preun): %insserv_prereq +Requires(post): %insserv_prereq +Requires(postun): %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve @@ -288,6 +303,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -305,8 +321,9 @@ Obsoletes: glibc-devel-64bit %ifarch ppc Obsoletes: glibc-devel-32bit %endif -PreReq: /bin/rm -Requires: glibc = %{version}, linux-kernel-headers +Requires: glibc = %{version} +Requires: linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C @@ -314,11 +331,11 @@ library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} + %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -330,21 +347,24 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils -The glibc-utils package contains memusage, a memory usage profiler, -mtrace, a memory leak tracer and xtrace, a function call tracer -which can be helpful during program debugging. +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -357,6 +377,7 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -367,8 +388,7 @@ versions of your software. # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 %endif -# Seems not needed anymore -#%patch0 +%patch0 # libNoVersion part is only active on ix86 %patch1 %patch2 -p1 @@ -377,17 +397,13 @@ versions of your software. %patch5 %patch7 %patch8 -# Seems not needed anymore -#%patch9 %patch11 %patch12 %patch13 -E # We have s_sincos.c in patch13, remove duplicate rm sysdeps/x86_64/fpu/s_sincos.S %patch14 -%patch15 %patch16 -%patch17 %patch18 %patch20 %patch21 @@ -431,7 +447,9 @@ rm nscd/s-stamp %patch56 -p1 %patch58 %patch59 -p1 -%patch60 +%patch60 -p1 +%patch61 -p1 +%patch62 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -464,6 +482,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -479,7 +498,7 @@ echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h # # Default CFLAGS and Compiler # -BuildFlags="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE" +BuildFlags="%{optflags} -U_FORTIFY_SOURCE" BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" BuildCC="gcc" BuildCCplus="g++" @@ -614,7 +633,7 @@ make -C cc-base html # # Build glibc_post_upgrade binary # -$BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ +$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ -Lcc-base -Bcc-base/csu \ '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ %ifarch ppc ppc64 @@ -631,7 +650,7 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib '-DREMOVE_PPC_OPTIMIZE_CELL' \ %endif %endif - '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' ####################################################################### ### @@ -639,6 +658,7 @@ $BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glib ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -661,6 +681,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -674,12 +695,12 @@ make -C cc-base check-abi || echo check-abi failed export STRIP_KEEP_SYMTAB=*.so* # Make sure we will create the gconv-modules.cache -mkdir -p $RPM_BUILD_ROOT%{_libdir}/gconv -touch $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache +mkdir -p %{buildroot}%{_libdir}/gconv +touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache # Install base glibc # Do not install in parallel, timezone Makefile will fail -make install_root=$RPM_BUILD_ROOT install -C cc-base +make install_root=%{buildroot} install -C cc-base # Install power-optimized glibc %if %{optimize_power} @@ -701,24 +722,24 @@ make install_root=$RPM_BUILD_ROOT install -C cc-base ppc-cell-be \ %endif ; do - make install_root=${RPM_BUILD_ROOT}/$pcpu install -C cc-$pcpu - mkdir -p $RPM_BUILD_ROOT/%{_lib}/$pcpu + make install_root=%{buildroot}/$pcpu install -C cc-$pcpu + mkdir -p %{buildroot}/%{_lib}/$pcpu for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version}; do - mv $RPM_BUILD_ROOT/$pcpu/%{_lib}/$i.so $RPM_BUILD_ROOT/%{_lib}/$pcpu + mv %{buildroot}/$pcpu/%{_lib}/$i.so %{buildroot}/%{_lib}/$pcpu done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/$pcpu/ - rm -rf $RPM_BUILD_ROOT/$pcpu + $my_ldconfig -n %{buildroot}/%{_lib}/$pcpu/ + rm -rf %{buildroot}/$pcpu done %if %{powerpc_optimize_cpu_power6} # power6 is compatible with power6x # doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir - if test -d $RPM_BUILD_ROOT/%{_lib}/power6; then - mkdir -p $RPM_BUILD_ROOT/%{_lib}/power6x - for i in $RPM_BUILD_ROOT/%{_lib}/power6/*.so; do + if test -d %{buildroot}/%{_lib}/power6; then + mkdir -p %{buildroot}/%{_lib}/power6x + for i in %{buildroot}/%{_lib}/power6/*.so; do b=`basename $i` - ln -vs ../power6/$b $RPM_BUILD_ROOT/%{_lib}/power6x/$b + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power6x/ + $my_ldconfig -n %{buildroot}/%{_lib}/power6x/ fi %endif %endif # optimize_power @@ -727,7 +748,7 @@ make install_root=$RPM_BUILD_ROOT install -C cc-base %if %{build_locales} # Do not install locales in parallel! cd cc-base - make install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` + make install_root=%{buildroot} install-locales -C ../localedata objdir=`pwd` cd .. %endif # Create file list for glibc-locale package @@ -736,55 +757,55 @@ make install_root=$RPM_BUILD_ROOT install -C cc-base # Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT %ifarch %ix86 -mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete +mkdir -p %{buildroot}/%{_lib}/obsolete %endif # NPTL is not usable outside of glibc, so include # the generic one (RH#162634) -cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h +cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h %ifarch s390x # s390x is different ... - mkdir $RPM_BUILD_ROOT/lib - ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 + mkdir %{buildroot}/lib + ln -sf ../%{_lib}/ld-%{version}.so %{buildroot}/lib/ld64.so.1 %endif # Miscelanna: -install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} +install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} -install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist $RPM_BUILD_ROOT/etc -install -m 644 $RPM_SOURCE_DIR/nsswitch.conf $RPM_BUILD_ROOT/etc -install -m 644 posix/gai.conf $RPM_BUILD_ROOT/etc +install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist %{buildroot}/etc +install -m 644 $RPM_SOURCE_DIR/nsswitch.conf %{buildroot}/etc +install -m 644 posix/gai.conf %{buildroot}/etc -mkdir -p $RPM_BUILD_ROOT/etc/default -install -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/ +mkdir -p %{buildroot}/etc/default +install -m 644 nis/nss %{buildroot}/etc/default/ -mkdir -p $RPM_BUILD_ROOT/usr/include/resolv -install -m 0644 resolv/mapv4v6addr.h $RPM_BUILD_ROOT/usr/include/resolv/ -install -m 0644 resolv/mapv4v6hostent.h $RPM_BUILD_ROOT/usr/include/resolv/ +mkdir -p %{buildroot}%{_includedir}/resolv +install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ +install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ -mkdir -p $RPM_BUILD_ROOT/usr/share/doc/glibc -cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc +mkdir -p %{buildroot}%{_datadir}/doc/glibc +cp -p manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc -cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. +cd manpages; make install_root=%{buildroot} install; cd .. # nscd tools: -cp nscd/nscd.conf $RPM_BUILD_ROOT/etc -mkdir -p $RPM_BUILD_ROOT/etc/apparmor.d -cp $RPM_SOURCE_DIR/usr.sbin.nscd $RPM_BUILD_ROOT/etc/apparmor.d -mkdir -p $RPM_BUILD_ROOT/etc/init.d -install -m 755 $RPM_SOURCE_DIR/nscd.init $RPM_BUILD_ROOT/etc/init.d/nscd -ln -sf /etc/init.d/nscd $RPM_BUILD_ROOT/usr/sbin/rcnscd -mkdir -p $RPM_BUILD_ROOT/var/run/nscd -touch $RPM_BUILD_ROOT/var/run/nscd/{passwd,group,hosts} -touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} +cp nscd/nscd.conf %{buildroot}/etc +mkdir -p %{buildroot}/etc/apparmor.d +cp $RPM_SOURCE_DIR/usr.sbin.nscd %{buildroot}/etc/apparmor.d +mkdir -p %{buildroot}/etc/init.d +install -m 755 $RPM_SOURCE_DIR/nscd.init %{buildroot}/etc/init.d/nscd +ln -sf /etc/init.d/nscd %{buildroot}/usr/sbin/rcnscd +mkdir -p %{buildroot}/var/run/nscd +touch %{buildroot}/var/run/nscd/{passwd,group,hosts} +touch %{buildroot}/var/run/nscd/{socket,nscd.pid} # # Create ld.so.conf # -cat > $RPM_BUILD_ROOT/etc/ld.so.conf < %{buildroot}/etc/ld.so.conf < $RPM_BUILD_ROOT/etc/ld.so.conf < Date: Mon, 27 Jun 2011 13:35:53 +0000 Subject: [PATCH 054/204] Autobuild autoformatter for 74646 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=58 --- glibc.spec | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index a3f5618..ad28485 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 15 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -214,7 +214,6 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff - %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -228,7 +227,6 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -239,7 +237,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -250,7 +247,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -271,7 +267,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -285,7 +280,6 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -303,7 +297,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -324,18 +317,17 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static + Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -347,7 +339,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -357,14 +348,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -377,7 +366,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -482,7 +470,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -658,7 +645,6 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -681,7 +667,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -857,7 +842,6 @@ done ### ####################################################################### - %clean rm -rf %{buildroot} @@ -865,13 +849,10 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -880,24 +861,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -914,7 +890,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1042,7 +1017,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1051,7 +1025,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1060,7 +1033,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1087,7 +1059,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1102,24 +1073,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1135,7 +1102,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1151,7 +1117,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1163,6 +1128,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From 8f41893e0c00909c243c6572e1dcb43dee6128fa3958a26dd1aad83962d85701 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 29 Jun 2011 12:05:52 +0000 Subject: [PATCH 055/204] Accepting request 74822 from Base:System Cleanup OBS-URL: https://build.opensuse.org/request/show/74822 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=59 --- glibc.changes | 6 ++++++ glibc.spec | 46 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/glibc.changes b/glibc.changes index 4d55a4e..eb0d1c0 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jun 28 12:30:34 UTC 2011 - aj@suse.de + +- Only apply glibc-2.10.99-ia64-include.diff on SLE but not on + openSUSE. + ------------------------------------------------------------------- Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index ad28485..b48e68a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 15 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -165,7 +165,7 @@ Patch39: glibc-2.10.99-ia64-include.diff Patch40: libm-x86-64-exceptions.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch41: glibc-uio-cell.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-SLE -- Do not assume statfs64 exists for ia64's ia32 layer bnc#534828 Patch42: glibc-statfs64-ia64.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch43: missing-include-build-fix.diff @@ -214,6 +214,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -227,6 +228,7 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -237,6 +239,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -247,6 +250,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -267,6 +271,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -280,6 +285,7 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -297,6 +303,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -317,17 +324,18 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} + %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -339,6 +347,7 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -348,12 +357,14 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -366,6 +377,7 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -416,7 +428,10 @@ rm nscd/s-stamp %patch39 %patch40 %patch41 -p1 +%if 0%{?sles_version} +# Only apply for x86 on SLES %patch42 +%endif %patch43 -p1 %patch44 -p1 %patch45 @@ -470,6 +485,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -645,6 +661,7 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -667,6 +684,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -842,6 +860,7 @@ done ### ####################################################################### + %clean rm -rf %{buildroot} @@ -849,10 +868,13 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section + %post -p %{_sbindir}/glibc_post_upgrade + %postun -p /sbin/ldconfig + %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -861,19 +883,24 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig + %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %preun -n nscd %stop_on_removal nscd + %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd + %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -890,6 +917,7 @@ exit 0 # glibc + %files %defattr(-,root,root) %doc LICENSES @@ -1017,6 +1045,7 @@ exit 0 %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1025,6 +1054,7 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif + %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1033,6 +1063,7 @@ exit 0 %endif %{_libdir}/gconv + %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1059,6 +1090,7 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a + %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1073,20 +1105,24 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a + %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz + %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc + %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n + %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1102,6 +1138,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts + %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1117,6 +1154,7 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a + %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1128,4 +1166,6 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace + + %changelog From c51fafe50cb29881b4b5140140d8676399adb9df5ad226d7c49eda83b7f29b0f Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 29 Jun 2011 12:06:17 +0000 Subject: [PATCH 056/204] Autobuild autoformatter for 74822 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=60 --- glibc.spec | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index b48e68a..2e0763a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 17 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -214,7 +214,6 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff - %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -228,7 +227,6 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -239,7 +237,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -250,7 +247,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -271,7 +267,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -285,7 +280,6 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -303,7 +297,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -324,18 +317,17 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static + Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -347,7 +339,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -357,14 +348,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -377,7 +366,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -485,7 +473,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -661,7 +648,6 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -684,7 +670,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -860,7 +845,6 @@ done ### ####################################################################### - %clean rm -rf %{buildroot} @@ -868,13 +852,10 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -883,24 +864,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -917,7 +893,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1045,7 +1020,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1054,7 +1028,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1063,7 +1036,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1090,7 +1062,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1105,24 +1076,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1138,7 +1105,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1154,7 +1120,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1166,6 +1131,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From f787f5af9c85651b0a9d265fd84ba22a9927e1aad5aa14096b04c3191184bc48 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 30 Jun 2011 12:59:39 +0000 Subject: [PATCH 057/204] Accepting request 74886 from Base:System For Rudi ;) OBS-URL: https://build.opensuse.org/request/show/74886 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=61 --- glibc.changes | 8 ++++++-- glibc.spec | 49 ++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 9 deletions(-) diff --git a/glibc.changes b/glibc.changes index eb0d1c0..5bb83c1 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,8 +1,12 @@ +------------------------------------------------------------------- +Thu Jun 30 11:22:02 UTC 2011 - aj@suse.de + +- Back to kernel 2.6.16 as minimal kernel version. + ------------------------------------------------------------------- Tue Jun 28 12:30:34 UTC 2011 - aj@suse.de -- Only apply glibc-2.10.99-ia64-include.diff on SLE but not on - openSUSE. +- Only apply glibc-statfs64-ia64.diff on SLE but not on openSUSE. ------------------------------------------------------------------- Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 2e0763a..eb40028 100644 --- a/glibc.spec +++ b/glibc.spec @@ -52,11 +52,9 @@ BuildRequires: libstdc++-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -%ifarch %ix86 x86_64 -%define enablekernel 2.6.32 -%else -%define enablekernel 2.6.5 -%endif +# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel +# since many SUSE build machines have it +%define enablekernel 2.6.16 %ifarch ppc ppc64 # On PowerPC we got a memory corruption during building, disabling # exp_malloc fixed it. Disable it until we have found and fixed the @@ -79,7 +77,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 17 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -214,6 +212,7 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -227,6 +226,7 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -237,6 +237,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -247,6 +248,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -267,6 +269,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -280,6 +283,7 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -297,6 +301,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -317,17 +322,18 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} + %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -339,6 +345,7 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -348,12 +355,14 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -366,6 +375,7 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -473,6 +483,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -648,6 +659,7 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -670,6 +682,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -845,6 +858,7 @@ done ### ####################################################################### + %clean rm -rf %{buildroot} @@ -852,10 +866,13 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section + %post -p %{_sbindir}/glibc_post_upgrade + %postun -p /sbin/ldconfig + %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -864,19 +881,24 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig + %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %preun -n nscd %stop_on_removal nscd + %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd + %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -893,6 +915,7 @@ exit 0 # glibc + %files %defattr(-,root,root) %doc LICENSES @@ -1020,6 +1043,7 @@ exit 0 %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1028,6 +1052,7 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif + %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1036,6 +1061,7 @@ exit 0 %endif %{_libdir}/gconv + %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1062,6 +1088,7 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a + %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1076,20 +1103,24 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a + %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz + %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc + %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n + %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1105,6 +1136,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts + %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1120,6 +1152,7 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a + %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1131,4 +1164,6 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace + + %changelog From 639626b30699a00cad67211a2a73b2cc6e9d1bc63ce46977378814da6ded2e1e Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 30 Jun 2011 12:59:54 +0000 Subject: [PATCH 058/204] Autobuild autoformatter for 74886 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=62 --- glibc.spec | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index eb40028..9109381 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,7 +77,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 19 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -212,7 +212,6 @@ Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff - %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -226,7 +225,6 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -237,7 +235,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -248,7 +245,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -269,7 +265,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -283,7 +278,6 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -301,7 +295,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -322,18 +315,17 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static + Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -345,7 +337,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -355,14 +346,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -375,7 +364,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -483,7 +471,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -659,7 +646,6 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -682,7 +668,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -858,7 +843,6 @@ done ### ####################################################################### - %clean rm -rf %{buildroot} @@ -866,13 +850,10 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -881,24 +862,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -915,7 +891,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1043,7 +1018,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1052,7 +1026,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1061,7 +1034,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1088,7 +1060,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1103,24 +1074,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1136,7 +1103,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1152,7 +1118,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1164,6 +1129,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From ad7ace6636aca7786a0da5503c2479df79b4d24915cc29af11f4c6d159315f2d Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 5 Jul 2011 08:02:04 +0000 Subject: [PATCH 059/204] Accepting request 75320 from Base:System Various small fixes. OBS-URL: https://build.opensuse.org/request/show/75320 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=63 --- ARM_glibc-2.10.1-local-eabi-wchar.diff | 33 ------- ARM_glibc-2.10.1-local-hwcap-updates.diff | 43 --------- ARM_glibc-2.10.1-local-lowlevellock.diff | 14 --- ARM_glibc-2.10.1-local-no-hwcap.diff | 19 ---- check-build.sh | 12 +-- glibc-2.10.99-ia64-include.diff | 12 --- glibc-2.13-localedef.patch | 37 ++++++++ glibc-2.2-sunrpc.diff | 5 + glibc-2.3.1.localedef.diff | 3 + glibc-2.3.5-nscd-zeronegtimeout.diff | 12 +++ glibc-fix-rwlock-stack-imbalance.patch | 35 +++++++ glibc-nscd-hconf.diff | 3 + glibc-version.diff | 5 +- glibc.changes | 24 +++++ glibc.spec | 107 +++++++++++++--------- 15 files changed, 189 insertions(+), 175 deletions(-) delete mode 100644 ARM_glibc-2.10.1-local-eabi-wchar.diff delete mode 100644 ARM_glibc-2.10.1-local-hwcap-updates.diff delete mode 100644 ARM_glibc-2.10.1-local-lowlevellock.diff delete mode 100644 ARM_glibc-2.10.1-local-no-hwcap.diff delete mode 100644 glibc-2.10.99-ia64-include.diff create mode 100644 glibc-2.13-localedef.patch create mode 100644 glibc-fix-rwlock-stack-imbalance.patch diff --git a/ARM_glibc-2.10.1-local-eabi-wchar.diff b/ARM_glibc-2.10.1-local-eabi-wchar.diff deleted file mode 100644 index a5fa3e4..0000000 --- a/ARM_glibc-2.10.1-local-eabi-wchar.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- - ports/sysdeps/arm/eabi/bits/wchar.h | 26 ++++++++++++++++++++++++++ - 1 file changed, 26 insertions(+) - ---- /dev/null -+++ ports/sysdeps/arm/eabi/bits/wchar.h -@@ -0,0 +1,26 @@ -+/* wchar_t type related definitions. -+ Copyright (C) 2000 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#ifndef _BITS_WCHAR_H -+#define _BITS_WCHAR_H 1 -+ -+#define __WCHAR_MIN ( 0 ) -+#define __WCHAR_MAX ( (wchar_t) - 1 ) -+ -+#endif /* bits/wchar.h */ diff --git a/ARM_glibc-2.10.1-local-hwcap-updates.diff b/ARM_glibc-2.10.1-local-hwcap-updates.diff deleted file mode 100644 index fedcd9d..0000000 --- a/ARM_glibc-2.10.1-local-hwcap-updates.diff +++ /dev/null @@ -1,43 +0,0 @@ -diff -Naur _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c ---- _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c 2006-09-21 20:39:51.000000000 +0200 -+++ ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.c 2009-05-15 21:23:43.166714113 +0200 -@@ -47,12 +47,12 @@ - #if !defined PROCINFO_DECL && defined SHARED - ._dl_arm_cap_flags - #else --PROCINFO_CLASS const char _dl_arm_cap_flags[10][10] -+PROCINFO_CLASS const char _dl_arm_cap_flags[13][10] - #endif - #ifndef PROCINFO_DECL - = { - "swp", "half", "thumb", "26bit", "fast-mult", "fpa", "vfp", "edsp", -- "java", "iwmmxt", -+ "java", "iwmmxt", "crunch", "thumbee", "neon", - } - #endif - #if !defined SHARED || defined PROCINFO_DECL -diff -Naur _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h ---- _ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h 2006-09-21 20:39:51.000000000 +0200 -+++ ports//sysdeps/unix/sysv/linux/arm/dl-procinfo.h 2009-05-15 21:23:43.166714113 +0200 -@@ -24,7 +24,7 @@ - #include - #include - --#define _DL_HWCAP_COUNT 10 -+#define _DL_HWCAP_COUNT 13 - - /* The kernel provides platform data but it is not interesting. */ - #define _DL_HWCAP_PLATFORM 0 -diff -Naur _ports//sysdeps/unix/sysv/linux/arm/sysdep.h ports//sysdeps/unix/sysv/linux/arm/sysdep.h ---- _ports//sysdeps/unix/sysv/linux/arm/sysdep.h 2009-05-15 18:56:52.000000000 +0200 -+++ ports//sysdeps/unix/sysv/linux/arm/sysdep.h 2009-05-15 21:23:43.166714113 +0200 -@@ -55,6 +55,9 @@ - #define HWCAP_ARM_EDSP 128 - #define HWCAP_ARM_JAVA 256 - #define HWCAP_ARM_IWMMXT 512 -+#define HWCAP_ARM_CRUNCH 1024 -+#define HWCAP_ARM_THUMBEE 2048 -+#define HWCAP_ARM_NEON 4096 - - #ifdef __ASSEMBLER__ - diff --git a/ARM_glibc-2.10.1-local-lowlevellock.diff b/ARM_glibc-2.10.1-local-lowlevellock.diff deleted file mode 100644 index 615b818..0000000 --- a/ARM_glibc-2.10.1-local-lowlevellock.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- - ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h | 1 + - 1 file changed, 1 insertion(+) - ---- ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h -+++ ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include /* Need THREAD_*, and header.*. */ - - #define FUTEX_WAIT 0 - #define FUTEX_WAKE 1 diff --git a/ARM_glibc-2.10.1-local-no-hwcap.diff b/ARM_glibc-2.10.1-local-no-hwcap.diff deleted file mode 100644 index cefbb2c..0000000 --- a/ARM_glibc-2.10.1-local-no-hwcap.diff +++ /dev/null @@ -1,19 +0,0 @@ -# DP: Restricted hardware caps for ARM -# needs corresponding kernel-support -# see https://bugs.launchpad.net/ubuntu/+source/linux/+bug/343602 - ---- - ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h -+++ ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h -@@ -54,7 +54,7 @@ - return GLRO(dl_arm_cap_flags)[idx]; - }; - --#define HWCAP_IMPORTANT (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT) -+#define HWCAP_IMPORTANT (HWCAP_ARM_VFP | HWCAP_ARM_NEON) - - static inline int - __attribute__ ((unused)) diff --git a/check-build.sh b/check-build.sh index fd183dd..c429e51 100644 --- a/check-build.sh +++ b/check-build.sh @@ -1,12 +1,10 @@ #!/bin/bash -# Copyright (c) 2003, 2004 SuSE Linux AG, Germany. All rights reserved. +# Copyright (c) 2003, 2004, 2011 SUSE Linux Products GmbH, Germany. All rights reserved. # # Authors: Thorsten Kukuk # -# this script use the following variable(s): -# -# - $BUILD_BASENAME -# + + if [ `nice` -gt '9' ] ; then echo "Don't modify nice for building glibc!" @@ -15,8 +13,8 @@ fi # get kernel version OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" -if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 32 ; then - echo "FATAL: kernel too old, need kernel >= 2.6.32 for this package" 1>&2 +if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then + echo "FATAL: kernel too old, need kernel >= 2.6.16 for this package" 1>&2 exit 1 fi diff --git a/glibc-2.10.99-ia64-include.diff b/glibc-2.10.99-ia64-include.diff deleted file mode 100644 index ae5d2f6..0000000 --- a/glibc-2.10.99-ia64-include.diff +++ /dev/null @@ -1,12 +0,0 @@ -Index: sysdeps/ia64/elf/start.S -=================================================================== ---- sysdeps/ia64/elf/start.S.orig -+++ sysdeps/ia64/elf/start.S -@@ -37,6 +37,7 @@ - #include - - #include -+#include - #include - - /* diff --git a/glibc-2.13-localedef.patch b/glibc-2.13-localedef.patch new file mode 100644 index 0000000..0fb55f4 --- /dev/null +++ b/glibc-2.13-localedef.patch @@ -0,0 +1,37 @@ +From http://sourceware.org/bugzilla/show_bug.cgi?id=10855 + +2009-10-27 Aurelien Jarno + + * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory + used later with MMAP_FIXED | MMAP_SHARED to cope with different + alignment restrictions. + +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -134,7 +134,7 @@ + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -397,7 +397,7 @@ + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -615,7 +615,7 @@ + int xflags = 0; + void *p; + if (st.st_size < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index 885c339..fc09165 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -1,3 +1,8 @@ +The following patch was not accepted upstream, see: +http://sourceware.org/bugzilla/show_bug.cgi?id=5379 + +It needs rework. + Index: sunrpc/clnt_udp.c =================================================================== --- sunrpc/clnt_udp.c.orig diff --git a/glibc-2.3.1.localedef.diff b/glibc-2.3.1.localedef.diff index 787ac54..8858980 100644 --- a/glibc-2.3.1.localedef.diff +++ b/glibc-2.3.1.localedef.diff @@ -1,3 +1,6 @@ +Check: +http://sourceware.org/bugzilla/show_bug.cgi?id=10855 + ------------------------------------------------------------------- Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de diff --git a/glibc-2.3.5-nscd-zeronegtimeout.diff b/glibc-2.3.5-nscd-zeronegtimeout.diff index 3081be5..1aa6a5d 100644 --- a/glibc-2.3.5-nscd-zeronegtimeout.diff +++ b/glibc-2.3.5-nscd-zeronegtimeout.diff @@ -1,3 +1,15 @@ +Send to libc-alpha on 2011-07-01, will be part of glibc 2.15. + +commit id: 445b4a53ea9d6c457c5f4ac1538102d8be0a5d89 + +2011-07-01 Thorsten Kukuk + + * nscd/pwdcache.c (cache_addpw): Handle zero negtimeout. + * nscd/initgrcache.c (addinitgroupsX): Likewise. + * nscd/hstcache.c (cache_addhst): Likewise. + * nscd/grpcache.c (cache_addgr): Likewise. + * nscd/aicache.c (addhstaiX): Likewise. + Index: nscd/aicache.c =================================================================== --- nscd/aicache.c.orig diff --git a/glibc-fix-rwlock-stack-imbalance.patch b/glibc-fix-rwlock-stack-imbalance.patch new file mode 100644 index 0000000..3accb5f --- /dev/null +++ b/glibc-fix-rwlock-stack-imbalance.patch @@ -0,0 +1,35 @@ +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +index f5d055c..8f3c68c 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock: + cfi_restore(%r12) + retq + +-#ifdef __ASSUME_PRIVATE_FUTEX ++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME + cfi_adjust_cfa_offset(16) + cfi_rel_offset(%r12, 8) + cfi_rel_offset(%r13, 0) +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +index 6ed8b49..9aaaeba 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock: + + 7: movq %rdx, %rax + +-#ifndef __ASSUME_PRIVATE_FUTEX ++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME + addq $16, %rsp + cfi_adjust_cfa_offset(-16) + popq %r14 +@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock: + cfi_restore(%r12) + retq + +-#ifdef __ASSUME_PRIVATE_FUTEX ++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME + cfi_adjust_cfa_offset(16) + cfi_rel_offset(%r12, 8) + cfi_rel_offset(%r13, 0) diff --git a/glibc-nscd-hconf.diff b/glibc-nscd-hconf.diff index f933559..1c360c4 100644 --- a/glibc-nscd-hconf.diff +++ b/glibc-nscd-hconf.diff @@ -1,3 +1,6 @@ +See: +http://sourceware.org/bugzilla/show_bug.cgi?id=11928 + diff --git a/nscd/aicache.c b/nscd/aicache.c index 3cb2208..2e92929 100644 --- a/nscd/aicache.c diff --git a/glibc-version.diff b/glibc-version.diff index 322cf0f..09ccbda 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -2,7 +2,7 @@ Index: csu/version.c =================================================================== --- csu/version.c.orig +++ csu/version.c -@@ -25,19 +25,23 @@ static const char __libc_release[] = REL +@@ -25,19 +25,20 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = @@ -21,9 +21,6 @@ Index: csu/version.c #ifdef GLIBC_OLDEST_ABI "The oldest ABI supported: " GLIBC_OLDEST_ABI ".\n" #endif -+#ifdef FLOATING_STACKS -+"pthread library is compiled with floating stack support enabled.\n" -+#endif "For bug reporting instructions, please see:\n\ .\n"; diff --git a/glibc.changes b/glibc.changes index 5bb83c1..3798767 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Mon Jul 4 10:00:46 UTC 2011 - aj@suse.de + +- Further cleanup of ld.so.conf to remove duplicate directories + and allow override of system directories (bnc#671725) +- Fix futex bug (added patch glibc-fix-rwlock-stack-imbalance.patch + from sourceware bug #12403). + +------------------------------------------------------------------- +Fri Jul 1 16:09:14 UTC 2011 - aj@suse.de + +- Remove glibc-2.10.99-ia64-include.diff, it's not needed anymore. +- Disable obsolete patches glibc-fnmatch-multibyte.diff, + glibc-2.10-nscd-nostack.diff, glibc-2.3.1.localedef.diff +- Add glibc-2.13-localedef.patch to fix alignment problem. +- Adjust glibc-version.diff, FLOATING_STACKS variable is obsolete. + +------------------------------------------------------------------- +Thu Jun 30 12:17:33 UTC 2011 - aj@suse.de + +- Remove old ARM patches as it's unclear why those are needed and arm + support is anyhow broken according to comments here and in spec + files. + ------------------------------------------------------------------- Thu Jun 30 11:22:02 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 9109381..24f966c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,7 +77,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 19 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -111,7 +111,7 @@ Patch3: glibc-resolv-reload.diff Patch4: glibc-2.3.locales.diff.bz2 # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch5: crypt_blowfish-1.0-suse.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE add some extra information to version output - kukuk@suse.de Patch7: glibc-version.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch8: glibc-2.4.90-revert-only-euro.diff @@ -135,9 +135,9 @@ Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 Patch22: glibc-2.4.90-nscd.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch23: glibc-2.3.3-nscd-db-path.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM - handle zero negative timeout, committed for glibc 2.15 Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch25: glibc-2.3.90-langpackdir.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch27: glibc-2.6-configure.diff @@ -153,19 +153,17 @@ Patch31: ppc-atomic.diff Patch33: glibc-compiled-binaries.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch36: glibc-no-unwind-tables.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE bnc#387202 Patch37: glibc-2.10-nscd-nostack.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de Patch38: glibc-cpusetsize.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch39: glibc-2.10.99-ia64-include.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch40: libm-x86-64-exceptions.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch41: glibc-uio-cell.diff # PATCH-FIX-SLE -- Do not assume statfs64 exists for ia64's ia32 layer bnc#534828 Patch42: glibc-statfs64-ia64.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM -- add missing includes aj@suse.de Patch43: missing-include-build-fix.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch44: glibc-ppc64-vdso-time.diff @@ -181,7 +179,7 @@ Patch48: glibc-malloc-arena-max.diff Patch49: glibc-fini-unwind.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch50: glibc-gconvcache-s390.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM - Fix alloca argument bso#12445 aj@suse.de Patch51: glibc-vfprintf-positional.diff # PATCH-FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff @@ -203,14 +201,10 @@ Patch60: glibc-x86-bits-sigcontext.patch Patch61: glibc-2.15-getsysstats-speedup.patch # PATCH-FIX-UPSTREAM Fix gcc 4.6 warnings aj@suse.de Patch62: glibc-2.13-warnings.fix -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch501: ARM_glibc-2.10.1-local-hwcap-updates.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch503: ARM_glibc-2.10.1-local-no-hwcap.diff +# PATCH-FIX-OPENSUSE Fix localedef locale-archive creation bso#10855 aj@suse.de +Patch63: glibc-2.13-localedef.patch +# PATCH-FIX-UPSTREAM Fix futex bug bso#12403 aj@suse.de +Patch64: glibc-fix-rwlock-stack-imbalance.patch %description The GNU C Library provides the most important standard libraries used @@ -225,6 +219,7 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -235,6 +230,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -245,6 +241,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -265,6 +262,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -278,6 +276,7 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -295,6 +294,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -315,17 +315,18 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} + %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -337,6 +338,7 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -346,12 +348,14 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -364,11 +368,12 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm -# this is CURRENTLY BROKEN; ARM-interested contributors need to provide -# new tested glibc-ports source +# this is CURRENTLY BROKEN (as of 2009-11-13); ARM-interested +# contributors need to provide new tested glibc-ports source %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 %else # any other leave out ports @@ -377,13 +382,15 @@ versions of your software. %patch0 # libNoVersion part is only active on ix86 %patch1 -%patch2 -p1 +# Disabled +# %patch2 -p1 %patch3 %patch4 %patch5 %patch7 %patch8 -%patch11 +# Disabled +#%patch11 %patch12 %patch13 -E # We have s_sincos.c in patch13, remove duplicate @@ -409,9 +416,9 @@ rm nscd/s-stamp %patch31 %patch33 %patch36 -%patch37 +# Disable for now +#%patch37 %patch38 -%patch39 %patch40 %patch41 -p1 %if 0%{?sles_version} @@ -439,12 +446,10 @@ rm nscd/s-stamp %patch60 -p1 %patch61 -p1 %patch62 -p1 -%ifarch %arm armv5tel armv7l -%patch500 -%patch501 -%patch502 -%patch503 -%endif +%patch63 -p1 +%patch64 -p1 + + # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -471,6 +476,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -646,6 +652,7 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -668,6 +675,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -792,23 +800,14 @@ touch %{buildroot}/var/run/nscd/{socket,nscd.pid} # Create ld.so.conf # cat > %{buildroot}/etc/ld.so.conf < Date: Tue, 5 Jul 2011 08:02:23 +0000 Subject: [PATCH 060/204] Autobuild autoformatter for 75320 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=64 --- glibc.spec | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/glibc.spec b/glibc.spec index 24f966c..52e4021 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,7 +77,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 21 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -219,7 +219,6 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -230,7 +229,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -241,7 +239,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -262,7 +259,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -276,7 +272,6 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -294,7 +289,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -315,18 +309,17 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static + Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -338,7 +331,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -348,14 +340,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -368,7 +358,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -449,7 +438,6 @@ rm nscd/s-stamp %patch63 -p1 %patch64 -p1 - # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -476,7 +464,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -652,7 +639,6 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -675,7 +661,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -842,7 +827,6 @@ done ### ####################################################################### - %clean rm -rf %{buildroot} @@ -850,13 +834,10 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -865,24 +846,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -899,7 +875,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1027,7 +1002,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1036,7 +1010,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1045,7 +1018,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1072,7 +1044,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1087,24 +1058,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1120,7 +1087,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1136,7 +1102,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1148,6 +1113,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From 9cf0e98c975afb24855112c08320f8edd43276489c580a33fcf2c50a4d720b35 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 7 Jul 2011 12:07:16 +0000 Subject: [PATCH 061/204] Accepting request 75614 from Base:System Cleanup; add nscd systemd config files. OBS-URL: https://build.opensuse.org/request/show/75614 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=65 --- glibc-2.8-getconf.diff | 4 +- glibc-ppc64-vdso-time.diff | 28 -------------- glibc-statfs64-ia64.diff | 12 ------ glibc.changes | 17 +++++++++ glibc.spec | 78 +++++++++++++++++++++++++++++--------- nscd.conf | 1 + nscd.service | 14 +++++++ nscd.socket | 8 ++++ 8 files changed, 104 insertions(+), 58 deletions(-) delete mode 100644 glibc-ppc64-vdso-time.diff delete mode 100644 glibc-statfs64-ia64.diff create mode 100644 nscd.conf create mode 100644 nscd.service create mode 100644 nscd.socket diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff index 9c0879e..fdf9c05 100644 --- a/glibc-2.8-getconf.diff +++ b/glibc-2.8-getconf.diff @@ -1,4 +1,6 @@ -This is required for too noisy rpmlint. +This is required for too noisy rpmlint: +glibc.i586: E: hardlink-across-partition (Badness: 10000) /usr/lib/getconf/POSIX_V7_ILP32_OFFBIG /usr/bin/getconf + Index: posix/Makefile =================================================================== diff --git a/glibc-ppc64-vdso-time.diff b/glibc-ppc64-vdso-time.diff deleted file mode 100644 index bba82b6..0000000 --- a/glibc-ppc64-vdso-time.diff +++ /dev/null @@ -1,28 +0,0 @@ -2010-03-04 Carlos Eduardo Seo - - * sysdeps/unix/sysv/linux/powerpc/powerpc64/time.c: New file. - -Index: src/sysdeps/unix/sysv/linux/powerpc/powerpc64/time.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ src/sysdeps/unix/sysv/linux/powerpc/powerpc64/time.c 2010-03-04 20:02:23.000000000 -0300 -@@ -0,0 +1,19 @@ -+/* Copyright (C) 2010 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include diff --git a/glibc-statfs64-ia64.diff b/glibc-statfs64-ia64.diff deleted file mode 100644 index 1804a68..0000000 --- a/glibc-statfs64-ia64.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- sysdeps/unix/sysv/linux/statfs64.c~ 2010-01-27 02:47:32.884315000 +0100 -+++ sysdeps/unix/sysv/linux/statfs64.c 2010-01-27 02:49:17.943657000 +0100 -@@ -24,6 +24,9 @@ - #include - #include - -+/* On IA64, ia32el does not provide wrapper for statfs64() for some reason. -+ Force the compatibility code to get compiled in. [bnc#534828] */ -+#undef __ASSUME_STATFS64 - - # if __ASSUME_STATFS64 == 0 - int __no_statfs64 attribute_hidden; diff --git a/glibc.changes b/glibc.changes index 3798767..c05d086 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Wed Jul 6 08:24:45 UTC 2011 - lnussel@suse.de + +- enable glibc-2.8-getconf.diff again to fix build failure + +------------------------------------------------------------------- +Tue Jul 5 20:22:50 UTC 2011 - aj@suse.de + +- Add systemd configuration for nscd. + +------------------------------------------------------------------- +Tue Jul 5 08:03:26 UTC 2011 - aj@suse.de + +- Remove glibc-statfs64-ia64.diff since current ia32el has the bug + fixed. +- Remove glibc-ppc64-vdso-time.diff (bnc#590216). + ------------------------------------------------------------------- Mon Jul 4 10:00:46 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 52e4021..8585efd 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,7 +77,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 21 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -90,6 +90,11 @@ Source10: bindresvport.blacklist Source12: glibc_post_upgrade.c Source15: glibc.rpmlintrc Source16: baselibs.conf +# For systemd +Source20: nscd.conf +Source21: nscd.service +Source22: nscd.socket + Requires(pre): filesystem Provides: rtld(GNU_HASH) BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -101,11 +106,11 @@ NoSource: 0 # # PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de Patch0: glibc-testsuite.patch -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE handle glibc binaries Patch1: glibc-2.3.90-noversion.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch2: glibc-fnmatch-multibyte.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change Patch3: glibc-resolv-reload.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch4: glibc-2.3.locales.diff.bz2 @@ -131,7 +136,7 @@ Patch18: glibc-2.3.3-amd64-s_ceil.diff Patch20: glibc-2.4-china.diff # PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Handle Patch22: glibc-2.4.90-nscd.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch23: glibc-2.3.3-nscd-db-path.diff @@ -141,9 +146,9 @@ Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff Patch25: glibc-2.3.90-langpackdir.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch27: glibc-2.6-configure.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 Patch28: glibc-2.2-sunrpc.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf Patch29: glibc-2.8-getconf.diff # PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 Patch30: getaddrinfo-ipv6-sanity.diff @@ -161,13 +166,9 @@ Patch38: glibc-cpusetsize.diff Patch40: libm-x86-64-exceptions.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch41: glibc-uio-cell.diff -# PATCH-FIX-SLE -- Do not assume statfs64 exists for ia64's ia32 layer bnc#534828 -Patch42: glibc-statfs64-ia64.diff # PATCH-FIX-UPSTREAM -- add missing includes aj@suse.de Patch43: missing-include-build-fix.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch44: glibc-ppc64-vdso-time.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch45: glibc-gai-private4.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch46: glibc-resolv-mdnshint.diff @@ -177,7 +178,7 @@ Patch47: glibc-nscd-hconf.diff Patch48: glibc-malloc-arena-max.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch49: glibc-fini-unwind.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM install gconv-modules aj@suse.de Patch50: glibc-gconvcache-s390.diff # PATCH-FIX-UPSTREAM - Fix alloca argument bso#12445 aj@suse.de Patch51: glibc-vfprintf-positional.diff @@ -219,6 +220,7 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} + %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -229,6 +231,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML + %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -239,6 +242,7 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries + %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -259,6 +263,7 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif + %description locale Locale data for the internationalisation features of the GNU C library. @@ -272,6 +277,7 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq + %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -289,6 +295,7 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif + %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -309,17 +316,18 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers + %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} + %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -331,6 +339,7 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} + %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -340,12 +349,14 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 + %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} + %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -358,6 +369,7 @@ versions of your software. %endif + %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -410,12 +422,7 @@ rm nscd/s-stamp %patch38 %patch40 %patch41 -p1 -%if 0%{?sles_version} -# Only apply for x86 on SLES -%patch42 -%endif %patch43 -p1 -%patch44 -p1 %patch45 %patch46 -p1 %patch47 -p1 @@ -438,6 +445,7 @@ rm nscd/s-stamp %patch63 -p1 %patch64 -p1 + # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -464,6 +472,7 @@ find . -name configure | xargs touch ### ####################################################################### + %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -639,6 +648,7 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### + %check %if %{run_testsuite} # Increase timeout @@ -661,6 +671,7 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### + %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -821,12 +832,20 @@ for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshar objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done +mkdir -p %{buildroot}/usr/lib/tmpfiles.d/ +install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ +mkdir -p %{buildroot}/lib/systemd/system +install -m 644 %{SOURCE21} %{buildroot}/lib/systemd/system +install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system + + ####################################################################### ### ### ... ### ####################################################################### + %clean rm -rf %{buildroot} @@ -834,10 +853,13 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section + %post -p %{_sbindir}/glibc_post_upgrade + %postun -p /sbin/ldconfig + %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -846,19 +868,24 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig + %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz + %preun -n nscd %stop_on_removal nscd + %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd + %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -875,6 +902,7 @@ exit 0 # glibc + %files %defattr(-,root,root) %doc LICENSES @@ -1002,6 +1030,7 @@ exit 0 %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1010,6 +1039,7 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif + %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1018,6 +1048,7 @@ exit 0 %endif %{_libdir}/gconv + %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1044,6 +1075,7 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a + %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1058,20 +1090,24 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a + %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz + %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc + %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n + %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1080,6 +1116,10 @@ exit 0 %config /etc/init.d/nscd %{_sbindir}/nscd %{_sbindir}/rcnscd +/lib/systemd/system/nscd.service +/lib/systemd/system/nscd.socket +%dir /usr/lib/tmpfiles.d +/usr/lib/tmpfiles.d/nscd.conf %dir %attr(0755,root,root) %ghost /var/run/nscd %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid %attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket @@ -1087,6 +1127,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts + %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1102,6 +1143,7 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a + %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1113,4 +1155,6 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace + + %changelog diff --git a/nscd.conf b/nscd.conf new file mode 100644 index 0000000..1807bd5 --- /dev/null +++ b/nscd.conf @@ -0,0 +1 @@ +d /var/run/nscd 0755 root root diff --git a/nscd.service b/nscd.service new file mode 100644 index 0000000..80e7626 --- /dev/null +++ b/nscd.service @@ -0,0 +1,14 @@ +[Unit] +Description=Name Service Cache Daemon +After=syslog.target + +[Service] +Type=forking +ExecStart=/usr/sbin/nscd +ExecStop=/usr/sbin/nscd --shutdown +Restart=always +PIDFile=/var/run/nscd/nscd.pid + +[Install] +WantedBy=multi-user.target +Also=nscd.socket diff --git a/nscd.socket b/nscd.socket new file mode 100644 index 0000000..cec9134 --- /dev/null +++ b/nscd.socket @@ -0,0 +1,8 @@ +[Unit] +Description=Name Service Cache Daemon Socket + +[Socket] +ListenDatagram=/var/run/nscd/socket + +[Install] +WantedBy=sockets.target From 1b148a284440ff4662905dfb841503b52597ea93cc4b1b190a47464f7b1a13c1 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 7 Jul 2011 12:07:37 +0000 Subject: [PATCH 062/204] Autobuild autoformatter for 75614 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=66 --- glibc.spec | 42 ++---------------------------------------- 1 file changed, 2 insertions(+), 40 deletions(-) diff --git a/glibc.spec b/glibc.spec index 8585efd..9595f22 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,7 +77,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 5 +Release: 23 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -220,7 +220,6 @@ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} - %description info This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not @@ -231,7 +230,6 @@ License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML - %description html This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is @@ -242,7 +240,6 @@ License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries - %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. It is normally @@ -263,7 +260,6 @@ Obsoletes: glibc-locale-64bit Obsoletes: glibc-locale-32bit %endif - %description locale Locale data for the internationalisation features of the GNU C library. @@ -277,7 +273,6 @@ Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq - %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. @@ -295,7 +290,6 @@ Obsoletes: glibc-profile-64bit Obsoletes: glibc-profile-32bit %endif - %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. @@ -316,18 +310,17 @@ Obsoletes: glibc-devel-32bit Requires: glibc = %{version} Requires: linux-kernel-headers - %description devel These libraries are needed to develop programs which use the standard C library. %package devel-static + Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} - %description devel-static The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, @@ -339,7 +332,6 @@ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} - %description utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -349,14 +341,12 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 - %package obsolete License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} - %description obsolete This package provides some old libraries from the GNU C Library which are no longer supported. Additional it provides a compatibility library @@ -369,7 +359,6 @@ versions of your software. %endif - %prep %ifarch %arm armv5tel armv7l # add glibc-ports for arm @@ -445,7 +434,6 @@ rm nscd/s-stamp %patch63 -p1 %patch64 -p1 - # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -472,7 +460,6 @@ find . -name configure | xargs touch ### ####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -648,7 +635,6 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p ### ####################################################################### - %check %if %{run_testsuite} # Increase timeout @@ -671,7 +657,6 @@ make -C cc-base check-abi || echo check-abi failed ### ####################################################################### - %install # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find @@ -838,14 +823,12 @@ mkdir -p %{buildroot}/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/lib/systemd/system install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system - ####################################################################### ### ### ... ### ####################################################################### - %clean rm -rf %{buildroot} @@ -853,13 +836,10 @@ rm -rf %{buildroot} # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -868,24 +848,19 @@ for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do done /usr/sbin/iconvconfig - %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz - %preun -n nscd %stop_on_removal nscd - %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd - %postun -n nscd %restart_on_update nscd %insserv_cleanup @@ -902,7 +877,6 @@ exit 0 # glibc - %files %defattr(-,root,root) %doc LICENSES @@ -1030,7 +1004,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1039,7 +1012,6 @@ exit 0 /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif - %files locale -f libc.lang %defattr(-,root,root) %{_datadir}/locale/locale.alias @@ -1048,7 +1020,6 @@ exit 0 %endif %{_libdir}/gconv - %files devel %defattr(-,root,root) %doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE @@ -1075,7 +1046,6 @@ exit 0 %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a - %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a @@ -1090,24 +1060,20 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a - %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz - %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc - %files i18ndata %defattr(-,root,root) %{_prefix}/share/i18n - %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf @@ -1127,7 +1093,6 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts - %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1143,7 +1108,6 @@ exit 0 %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a - %files utils %defattr(-,root,root) /%{_lib}/libmemusage.so @@ -1155,6 +1119,4 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/xtrace - - %changelog From 7d0403d717d604cbe363db535583ba40361cd00955a0eaa29454396fa51aff90 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 21 Jul 2011 06:55:07 +0000 Subject: [PATCH 063/204] Accepting request 76539 from Base:System Update crypt_blowfish. (forwarded request 76538 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/76539 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=67 --- crypt_blowfish-1.0-suse.diff | 796 --------------------------------- crypt_blowfish-1.1-sha.diff | 213 +++++++++ crypt_blowfish-1.2.tar.gz | 3 + crypt_blowfish-1.2.tar.gz.sign | 10 + glibc-2.14-crypt.diff | 55 +++ glibc-2.2-sunrpc.diff | 4 +- glibc-uio-cell.diff | 5 + glibc.changes | 25 ++ glibc.spec | 29 +- ppc-atomic.diff | 410 ----------------- 10 files changed, 332 insertions(+), 1218 deletions(-) delete mode 100644 crypt_blowfish-1.0-suse.diff create mode 100644 crypt_blowfish-1.1-sha.diff create mode 100644 crypt_blowfish-1.2.tar.gz create mode 100644 crypt_blowfish-1.2.tar.gz.sign create mode 100644 glibc-2.14-crypt.diff delete mode 100644 ppc-atomic.diff diff --git a/crypt_blowfish-1.0-suse.diff b/crypt_blowfish-1.0-suse.diff deleted file mode 100644 index f290e6a..0000000 --- a/crypt_blowfish-1.0-suse.diff +++ /dev/null @@ -1,796 +0,0 @@ -Index: crypt/crypt_blowfish.c -=================================================================== ---- /dev/null -+++ crypt/crypt_blowfish.c -@@ -0,0 +1,743 @@ -+/* -+ * This code comes from John the Ripper password cracker, with reentrant -+ * and crypt(3) interfaces added, but optimizations specific to password -+ * cracking removed. -+ * -+ * Written by Solar Designer in 1998-2002 and -+ * placed in the public domain. -+ * -+ * There's absolutely no warranty. -+ * -+ * It is my intent that you should be able to use this on your system, -+ * as a part of a software package, or anywhere else to improve security, -+ * ensure compatibility, or for any other purpose. I would appreciate -+ * it if you give credit where it is due and keep your modifications in -+ * the public domain as well, but I don't require that in order to let -+ * you place this code and any modifications you make under a license -+ * of your choice. -+ * -+ * This implementation is compatible with OpenBSD bcrypt.c (version 2a) -+ * by Niels Provos , and uses some of his -+ * ideas. The password hashing algorithm was designed by David Mazieres -+ * . -+ * -+ * There's a paper on the algorithm that explains its design decisions: -+ * -+ * http://www.usenix.org/events/usenix99/provos.html -+ * -+ * Some of the tricks in BF_ROUND might be inspired by Eric Young's -+ * Blowfish library (I can't be sure if I would think of something if I -+ * hadn't seen his code). -+ */ -+ -+#include -+ -+#include -+#ifndef __set_errno -+#define __set_errno(val) errno = (val) -+#endif -+ -+#undef __CONST -+#ifdef __GNUC__ -+#define __CONST __const -+#else -+#define __CONST -+#endif -+ -+#ifdef __i386__ -+#define BF_ASM 0 /* original OW patch has 1 */ -+#define BF_SCALE 1 -+#elif defined(__alpha__) || defined(__hppa__) || defined(__x86_64__) -+#define BF_ASM 0 -+#define BF_SCALE 1 -+#else -+#define BF_ASM 0 -+#define BF_SCALE 0 -+#endif -+ -+typedef unsigned int BF_word; -+ -+/* Number of Blowfish rounds, this is also hardcoded into a few places */ -+#define BF_N 16 -+ -+typedef BF_word BF_key[BF_N + 2]; -+ -+typedef struct { -+ BF_word S[4][0x100]; -+ BF_key P; -+} BF_ctx; -+ -+/* -+ * Magic IV for 64 Blowfish encryptions that we do at the end. -+ * The string is "OrpheanBeholderScryDoubt" on big-endian. -+ */ -+static BF_word BF_magic_w[6] = { -+ 0x4F727068, 0x65616E42, 0x65686F6C, -+ 0x64657253, 0x63727944, 0x6F756274 -+}; -+ -+/* -+ * P-box and S-box tables initialized with digits of Pi. -+ */ -+static BF_ctx BF_init_state = { -+ { -+ { -+ 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, -+ 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, -+ 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, -+ 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, -+ 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, -+ 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, -+ 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, -+ 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, -+ 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, -+ 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, -+ 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, -+ 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, -+ 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, -+ 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, -+ 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, -+ 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, -+ 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, -+ 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, -+ 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, -+ 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, -+ 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, -+ 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, -+ 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, -+ 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, -+ 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, -+ 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, -+ 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, -+ 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, -+ 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, -+ 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, -+ 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, -+ 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, -+ 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, -+ 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, -+ 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, -+ 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, -+ 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, -+ 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, -+ 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, -+ 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, -+ 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, -+ 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, -+ 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, -+ 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, -+ 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, -+ 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, -+ 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, -+ 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, -+ 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, -+ 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, -+ 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, -+ 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, -+ 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, -+ 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, -+ 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, -+ 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, -+ 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, -+ 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, -+ 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, -+ 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, -+ 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, -+ 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, -+ 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, -+ 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a -+ }, { -+ 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, -+ 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, -+ 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, -+ 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, -+ 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, -+ 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, -+ 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, -+ 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, -+ 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, -+ 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, -+ 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, -+ 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, -+ 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, -+ 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, -+ 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, -+ 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, -+ 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, -+ 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, -+ 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, -+ 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, -+ 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, -+ 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, -+ 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, -+ 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, -+ 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, -+ 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, -+ 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, -+ 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, -+ 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, -+ 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, -+ 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, -+ 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, -+ 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, -+ 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, -+ 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, -+ 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, -+ 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, -+ 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, -+ 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, -+ 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, -+ 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, -+ 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, -+ 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, -+ 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, -+ 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, -+ 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, -+ 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, -+ 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, -+ 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, -+ 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, -+ 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, -+ 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, -+ 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, -+ 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, -+ 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, -+ 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, -+ 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, -+ 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, -+ 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, -+ 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, -+ 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, -+ 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, -+ 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, -+ 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7 -+ }, { -+ 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, -+ 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, -+ 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, -+ 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, -+ 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, -+ 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, -+ 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, -+ 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, -+ 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, -+ 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, -+ 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, -+ 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, -+ 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, -+ 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, -+ 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, -+ 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, -+ 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, -+ 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, -+ 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, -+ 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, -+ 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, -+ 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, -+ 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, -+ 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, -+ 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, -+ 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, -+ 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, -+ 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, -+ 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, -+ 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, -+ 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, -+ 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, -+ 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, -+ 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, -+ 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, -+ 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, -+ 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, -+ 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, -+ 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, -+ 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, -+ 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, -+ 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, -+ 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, -+ 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, -+ 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, -+ 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, -+ 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, -+ 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, -+ 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, -+ 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, -+ 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, -+ 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, -+ 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, -+ 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, -+ 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, -+ 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, -+ 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, -+ 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, -+ 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, -+ 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, -+ 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, -+ 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, -+ 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, -+ 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0 -+ }, { -+ 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, -+ 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, -+ 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, -+ 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, -+ 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, -+ 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, -+ 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, -+ 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, -+ 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, -+ 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, -+ 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, -+ 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, -+ 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, -+ 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, -+ 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, -+ 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, -+ 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, -+ 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, -+ 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, -+ 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, -+ 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, -+ 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, -+ 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, -+ 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, -+ 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, -+ 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, -+ 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, -+ 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, -+ 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, -+ 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, -+ 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, -+ 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, -+ 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, -+ 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, -+ 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, -+ 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, -+ 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, -+ 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, -+ 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, -+ 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, -+ 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, -+ 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, -+ 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, -+ 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, -+ 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, -+ 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, -+ 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, -+ 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, -+ 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, -+ 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, -+ 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, -+ 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, -+ 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, -+ 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, -+ 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, -+ 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, -+ 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, -+ 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, -+ 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, -+ 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, -+ 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, -+ 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, -+ 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, -+ 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 -+ } -+ }, { -+ 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, -+ 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, -+ 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, -+ 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, -+ 0x9216d5d9, 0x8979fb1b -+ } -+}; -+ -+static unsigned char BF_itoa64[64 + 1] = -+ "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; -+ -+static unsigned char BF_atoi64[0x60] = { -+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1, -+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64, -+ 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 64, 64, 64, 64, 64, -+ 64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, -+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 64, 64, 64, 64, 64 -+}; -+ -+/* -+ * This may be optimized out if built with function inlining and no BF_ASM. -+ */ -+static void clean(void *data, int size) -+{ -+#if BF_ASM -+ extern void _BF_clean(void *data); -+#endif -+ memset(data, 0, size); -+#if BF_ASM -+ _BF_clean(data); -+#endif -+} -+ -+#define BF_safe_atoi64(dst, src) \ -+{ \ -+ tmp = (unsigned char)(src); \ -+ if ((unsigned int)(tmp -= 0x20) >= 0x60) return -1; \ -+ tmp = BF_atoi64[tmp]; \ -+ if (tmp > 63) return -1; \ -+ (dst) = tmp; \ -+} -+ -+static int BF_decode(BF_word *dst, __CONST char *src, int size) -+{ -+ unsigned char *dptr = (unsigned char *)dst; -+ unsigned char *end = dptr + size; -+ unsigned char *sptr = (unsigned char *)src; -+ unsigned int tmp, c1, c2, c3, c4; -+ -+ do { -+ BF_safe_atoi64(c1, *sptr++); -+ BF_safe_atoi64(c2, *sptr++); -+ *dptr++ = (c1 << 2) | ((c2 & 0x30) >> 4); -+ if (dptr >= end) break; -+ -+ BF_safe_atoi64(c3, *sptr++); -+ *dptr++ = ((c2 & 0x0F) << 4) | ((c3 & 0x3C) >> 2); -+ if (dptr >= end) break; -+ -+ BF_safe_atoi64(c4, *sptr++); -+ *dptr++ = ((c3 & 0x03) << 6) | c4; -+ } while (dptr < end); -+ -+ return 0; -+} -+ -+static void BF_encode(char *dst, __CONST BF_word *src, int size) -+{ -+ unsigned char *sptr = (unsigned char *)src; -+ unsigned char *end = sptr + size; -+ unsigned char *dptr = (unsigned char *)dst; -+ unsigned int c1, c2; -+ -+ do { -+ c1 = *sptr++; -+ *dptr++ = BF_itoa64[c1 >> 2]; -+ c1 = (c1 & 0x03) << 4; -+ if (sptr >= end) { -+ *dptr++ = BF_itoa64[c1]; -+ break; -+ } -+ -+ c2 = *sptr++; -+ c1 |= c2 >> 4; -+ *dptr++ = BF_itoa64[c1]; -+ c1 = (c2 & 0x0f) << 2; -+ if (sptr >= end) { -+ *dptr++ = BF_itoa64[c1]; -+ break; -+ } -+ -+ c2 = *sptr++; -+ c1 |= c2 >> 6; -+ *dptr++ = BF_itoa64[c1]; -+ *dptr++ = BF_itoa64[c2 & 0x3f]; -+ } while (sptr < end); -+} -+ -+static void BF_swap(BF_word *x, int count) -+{ -+ static int endianness_check = 1; -+ char *is_little_endian = (char *)&endianness_check; -+ BF_word tmp; -+ -+ if (*is_little_endian) -+ do { -+ tmp = *x; -+ tmp = (tmp << 16) | (tmp >> 16); -+ *x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF); -+ } while (--count); -+} -+ -+#if BF_SCALE -+/* Architectures which can shift addresses left by 2 bits with no extra cost */ -+#define BF_ROUND(L, R, N) \ -+ tmp1 = L & 0xFF; \ -+ tmp2 = L >> 8; \ -+ tmp2 &= 0xFF; \ -+ tmp3 = L >> 16; \ -+ tmp3 &= 0xFF; \ -+ tmp4 = L >> 24; \ -+ tmp1 = data.ctx.S[3][tmp1]; \ -+ tmp2 = data.ctx.S[2][tmp2]; \ -+ tmp3 = data.ctx.S[1][tmp3]; \ -+ tmp3 += data.ctx.S[0][tmp4]; \ -+ tmp3 ^= tmp2; \ -+ R ^= data.ctx.P[N + 1]; \ -+ tmp3 += tmp1; \ -+ R ^= tmp3; -+#else -+/* Architectures with no complicated addressing modes supported */ -+#define BF_INDEX(S, i) \ -+ (*((BF_word *)(((unsigned char *)S) + (i)))) -+#define BF_ROUND(L, R, N) \ -+ tmp1 = L & 0xFF; \ -+ tmp1 <<= 2; \ -+ tmp2 = L >> 6; \ -+ tmp2 &= 0x3FC; \ -+ tmp3 = L >> 14; \ -+ tmp3 &= 0x3FC; \ -+ tmp4 = L >> 22; \ -+ tmp4 &= 0x3FC; \ -+ tmp1 = BF_INDEX(data.ctx.S[3], tmp1); \ -+ tmp2 = BF_INDEX(data.ctx.S[2], tmp2); \ -+ tmp3 = BF_INDEX(data.ctx.S[1], tmp3); \ -+ tmp3 += BF_INDEX(data.ctx.S[0], tmp4); \ -+ tmp3 ^= tmp2; \ -+ R ^= data.ctx.P[N + 1]; \ -+ tmp3 += tmp1; \ -+ R ^= tmp3; -+#endif -+ -+/* -+ * Encrypt one block, BF_N is hardcoded here. -+ */ -+#define BF_ENCRYPT \ -+ L ^= data.ctx.P[0]; \ -+ BF_ROUND(L, R, 0); \ -+ BF_ROUND(R, L, 1); \ -+ BF_ROUND(L, R, 2); \ -+ BF_ROUND(R, L, 3); \ -+ BF_ROUND(L, R, 4); \ -+ BF_ROUND(R, L, 5); \ -+ BF_ROUND(L, R, 6); \ -+ BF_ROUND(R, L, 7); \ -+ BF_ROUND(L, R, 8); \ -+ BF_ROUND(R, L, 9); \ -+ BF_ROUND(L, R, 10); \ -+ BF_ROUND(R, L, 11); \ -+ BF_ROUND(L, R, 12); \ -+ BF_ROUND(R, L, 13); \ -+ BF_ROUND(L, R, 14); \ -+ BF_ROUND(R, L, 15); \ -+ tmp4 = R; \ -+ R = L; \ -+ L = tmp4 ^ data.ctx.P[BF_N + 1]; -+ -+#if BF_ASM -+#define BF_body() \ -+ _BF_body_r(&data.ctx); -+#else -+#define BF_body() \ -+ L = R = 0; \ -+ ptr = data.ctx.P; \ -+ do { \ -+ ptr += 2; \ -+ BF_ENCRYPT; \ -+ *(ptr - 2) = L; \ -+ *(ptr - 1) = R; \ -+ } while (ptr < &data.ctx.P[BF_N + 2]); \ -+\ -+ ptr = data.ctx.S[0]; \ -+ do { \ -+ ptr += 2; \ -+ BF_ENCRYPT; \ -+ *(ptr - 2) = L; \ -+ *(ptr - 1) = R; \ -+ } while (ptr < &data.ctx.S[3][0xFF]); -+#endif -+ -+static void BF_set_key(__CONST char *key, BF_key expanded, BF_key initial) -+{ -+ __CONST char *ptr = key; -+ int i, j; -+ BF_word tmp; -+ -+ for (i = 0; i < BF_N + 2; i++) { -+ tmp = 0; -+ for (j = 0; j < 4; j++) { -+ tmp <<= 8; -+ tmp |= *ptr; -+ -+ if (!*ptr) ptr = key; else ptr++; -+ } -+ -+ expanded[i] = tmp; -+ initial[i] = BF_init_state.P[i] ^ tmp; -+ } -+} -+ -+char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting, -+ char *output, int size) -+{ -+#if BF_ASM -+ extern void _BF_body_r(BF_ctx *ctx); -+#endif -+ struct { -+ BF_ctx ctx; -+ BF_key expanded_key; -+ union { -+ BF_word salt[4]; -+ BF_word output[6]; -+ } binary; -+ } data; -+ BF_word L, R; -+ BF_word tmp1, tmp2, tmp3, tmp4; -+ BF_word *ptr; -+ BF_word count; -+ int i; -+ -+ if (size < 7 + 22 + 31 + 1) { -+ __set_errno(ERANGE); -+ return NULL; -+ } -+ -+ if (setting[0] != '$' || -+ setting[1] != '2' || -+ setting[2] != 'a' || -+ setting[3] != '$' || -+ setting[4] < '0' || setting[4] > '3' || -+ setting[5] < '0' || setting[5] > '9' || -+ setting[6] != '$') { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ -+ count = (BF_word)1 << ((setting[4] - '0') * 10 + (setting[5] - '0')); -+ if (count < 16 || BF_decode(data.binary.salt, &setting[7], 16)) { -+ clean(data.binary.salt, sizeof(data.binary.salt)); -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ BF_swap(data.binary.salt, 4); -+ -+ BF_set_key(key, data.expanded_key, data.ctx.P); -+ -+ memcpy(data.ctx.S, BF_init_state.S, sizeof(data.ctx.S)); -+ -+ L = R = 0; -+ for (i = 0; i < BF_N + 2; i += 2) { -+ L ^= data.binary.salt[i & 2]; -+ R ^= data.binary.salt[(i & 2) + 1]; -+ BF_ENCRYPT; -+ data.ctx.P[i] = L; -+ data.ctx.P[i + 1] = R; -+ } -+ -+ ptr = data.ctx.S[0]; -+ do { -+ ptr += 4; -+ L ^= data.binary.salt[(BF_N + 2) & 3]; -+ R ^= data.binary.salt[(BF_N + 3) & 3]; -+ BF_ENCRYPT; -+ *(ptr - 4) = L; -+ *(ptr - 3) = R; -+ -+ L ^= data.binary.salt[(BF_N + 4) & 3]; -+ R ^= data.binary.salt[(BF_N + 5) & 3]; -+ BF_ENCRYPT; -+ *(ptr - 2) = L; -+ *(ptr - 1) = R; -+ } while (ptr < &data.ctx.S[3][0xFF]); -+ -+ do { -+ data.ctx.P[0] ^= data.expanded_key[0]; -+ data.ctx.P[1] ^= data.expanded_key[1]; -+ data.ctx.P[2] ^= data.expanded_key[2]; -+ data.ctx.P[3] ^= data.expanded_key[3]; -+ data.ctx.P[4] ^= data.expanded_key[4]; -+ data.ctx.P[5] ^= data.expanded_key[5]; -+ data.ctx.P[6] ^= data.expanded_key[6]; -+ data.ctx.P[7] ^= data.expanded_key[7]; -+ data.ctx.P[8] ^= data.expanded_key[8]; -+ data.ctx.P[9] ^= data.expanded_key[9]; -+ data.ctx.P[10] ^= data.expanded_key[10]; -+ data.ctx.P[11] ^= data.expanded_key[11]; -+ data.ctx.P[12] ^= data.expanded_key[12]; -+ data.ctx.P[13] ^= data.expanded_key[13]; -+ data.ctx.P[14] ^= data.expanded_key[14]; -+ data.ctx.P[15] ^= data.expanded_key[15]; -+ data.ctx.P[16] ^= data.expanded_key[16]; -+ data.ctx.P[17] ^= data.expanded_key[17]; -+ -+ BF_body(); -+ -+ tmp1 = data.binary.salt[0]; -+ tmp2 = data.binary.salt[1]; -+ tmp3 = data.binary.salt[2]; -+ tmp4 = data.binary.salt[3]; -+ data.ctx.P[0] ^= tmp1; -+ data.ctx.P[1] ^= tmp2; -+ data.ctx.P[2] ^= tmp3; -+ data.ctx.P[3] ^= tmp4; -+ data.ctx.P[4] ^= tmp1; -+ data.ctx.P[5] ^= tmp2; -+ data.ctx.P[6] ^= tmp3; -+ data.ctx.P[7] ^= tmp4; -+ data.ctx.P[8] ^= tmp1; -+ data.ctx.P[9] ^= tmp2; -+ data.ctx.P[10] ^= tmp3; -+ data.ctx.P[11] ^= tmp4; -+ data.ctx.P[12] ^= tmp1; -+ data.ctx.P[13] ^= tmp2; -+ data.ctx.P[14] ^= tmp3; -+ data.ctx.P[15] ^= tmp4; -+ data.ctx.P[16] ^= tmp1; -+ data.ctx.P[17] ^= tmp2; -+ -+ BF_body(); -+ } while (--count); -+ -+ for (i = 0; i < 6; i += 2) { -+ L = BF_magic_w[i]; -+ R = BF_magic_w[i + 1]; -+ -+ count = 64; -+ do { -+ BF_ENCRYPT; -+ } while (--count); -+ -+ data.binary.output[i] = L; -+ data.binary.output[i + 1] = R; -+ } -+ -+ memcpy(output, setting, 7 + 22 - 1); -+ output[7 + 22 - 1] = BF_itoa64[(int) -+ BF_atoi64[(int)setting[7 + 22 - 1] - 0x20] & 0x30]; -+ -+/* This has to be bug-compatible with the original implementation, so -+ * only encode 23 of the 24 bytes. :-) */ -+ BF_swap(data.binary.output, 6); -+ BF_encode(&output[7 + 22], data.binary.output, 23); -+ output[7 + 22 + 31] = '\0'; -+ -+/* Overwrite the most obvious sensitive data we have on the stack. Note -+ * that this does not guarantee there's no sensitive data left on the -+ * stack and/or in registers; I'm not aware of portable code that does. */ -+ clean(&data, sizeof(data)); -+ -+ return output; -+} -+ -+char *_crypt_gensalt_blowfish_rn(unsigned long count, -+ __CONST char *input, int size, char *output, int output_size) -+{ -+ if (size < 16 || output_size < 7 + 22 + 1 || -+ (count && (count < 4 || count > 31))) { -+ if (output_size > 0) output[0] = '\0'; -+ __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); -+ return NULL; -+ } -+ -+ if (!count) count = 5; -+ -+ output[0] = '$'; -+ output[1] = '2'; -+ output[2] = 'a'; -+ output[3] = '$'; -+ output[4] = '0' + count / 10; -+ output[5] = '0' + count % 10; -+ output[6] = '$'; -+ -+ BF_encode(&output[7], (BF_word *)input, 16); -+ output[7 + 22] = '\0'; -+ -+ return output; -+} -Index: crypt/Makefile -=================================================================== ---- crypt/Makefile.orig -+++ crypt/Makefile -@@ -27,7 +27,7 @@ extra-libs := libcrypt - extra-libs-others := $(extra-libs) - - libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ -- crypt_util -+ crypt_util crypt_blowfish - - tests := cert md5c-test sha256c-test sha512c-test - -Index: crypt/crypt-entry.c -=================================================================== ---- crypt/crypt-entry.c.orig -+++ crypt/crypt-entry.c -@@ -61,6 +61,8 @@ extern char *__sha256_crypt (const char - extern char *__sha512_crypt_r (const char *key, const char *salt, - char *buffer, int buflen); - extern char *__sha512_crypt (const char *key, const char *salt); -+extern char *_crypt_blowfish_rn (const char *key, const char *setting, -+ char *output, int size); - #endif - - /* Define our magic string to mark salt for MD5 encryption -@@ -74,6 +76,9 @@ static const char sha256_salt_prefix[] = - /* Magic string for SHA512 encryption. */ - static const char sha512_salt_prefix[] = "$6$"; - -+/* Magic string for Blowfish encryption. */ -+static const char blowfish_salt_prefix[] = "$2a$"; -+ - /* For use by the old, non-reentrant routines (crypt/encrypt/setkey) */ - extern struct crypt_data _ufc_foobar; - -@@ -106,6 +111,11 @@ __crypt_r (key, salt, data) - if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0) - return __sha512_crypt_r (key, salt, (char *) data, - sizeof (struct crypt_data)); -+ -+ /* Try to find out whether we have to use Blowfish encryption replacement. */ -+ if (strncmp (blowfish_salt_prefix, salt, sizeof (blowfish_salt_prefix) - 1) == 0) -+ return _crypt_blowfish_rn (key, salt, (char *) data, -+ sizeof (struct crypt_data)); - #endif - - /* diff --git a/crypt_blowfish-1.1-sha.diff b/crypt_blowfish-1.1-sha.diff new file mode 100644 index 0000000..f24d94c --- /dev/null +++ b/crypt_blowfish-1.1-sha.diff @@ -0,0 +1,213 @@ +From 22a0cc20633a4ddd61233410563c9fabe6b515ed Mon Sep 17 00:00:00 2001 +From: Ludwig Nussel +Date: Tue, 5 Jul 2011 17:25:12 +0200 +Subject: [PATCH crypt_blowfish 1/2] support for sha256 and sha512 + +--- + crypt_gensalt.c | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + wrapper.c | 28 +++++++++++++ + 2 files changed, 147 insertions(+), 0 deletions(-) + +diff --git a/crypt_gensalt.c b/crypt_gensalt.c +index 43b0f6c..4600e30 100644 +--- a/crypt_gensalt.c ++++ b/crypt_gensalt.c +@@ -7,6 +7,11 @@ + * entirely in crypt_blowfish.c. + */ + ++/* asprintf&free */ ++#define _GNU_SOURCE ++#include ++#include ++ + #include + + #include +@@ -105,3 +110,117 @@ char *_crypt_gensalt_md5_rn(unsigned long count, + + return output; + } ++ ++char *_crypt_gensalt_sha256_rn (unsigned long count, ++ const char *input, int size, char *output, int output_size) ++{ ++ unsigned long value; ++ char *buf; ++ char buf2[12]; ++ ++ if (count > 0) { ++ if (asprintf (&buf, "$5$rounds=%ld$", count) < 0) { ++ if (output_size > 0) ++ output[0] = '\0'; ++ errno = ENOMEM; ++ return NULL; ++ } ++ } else { ++ if (asprintf (&buf, "$5$") < 0) { ++ if (output_size > 0) ++ output[0] = '\0'; ++ errno = ENOMEM; ++ return NULL; ++ } ++ } ++ ++ if (size < 3 || output_size < (int)strlen (buf) + 4 + 1) { ++ free (buf); ++ if (output_size > 0) ++ output[0] = '\0'; ++ errno = ERANGE; ++ return NULL; ++ } ++ ++ value = (unsigned long)(unsigned char)input[0] | ++ ((unsigned long)(unsigned char)input[1] << 8) | ++ ((unsigned long)(unsigned char)input[2] << 16); ++ buf2[0] = _crypt_itoa64[value & 0x3f]; ++ buf2[1] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ buf2[2] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ buf2[3] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ buf2[4] = '\0'; ++ ++ if (size >= 6 && output_size >= (int)strlen (buf) + 4 + 4 + 1) { ++ value = (unsigned long)(unsigned char)input[3] | ++ ((unsigned long)(unsigned char)input[4] << 8) | ++ ((unsigned long)(unsigned char)input[5] << 16); ++ buf2[4] = _crypt_itoa64[value & 0x3f]; ++ buf2[5] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ buf2[6] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ buf2[7] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ buf2[8] = '\0'; ++ } ++ ++ snprintf (output, output_size, "%s%s", buf, buf2); ++ free (buf); ++ ++ return output; ++} ++ ++char *_crypt_gensalt_sha512_rn (unsigned long count, ++ const char *input, int size, char *output, int output_size) ++{ ++ unsigned long value; ++ char *buf; ++ char buf2[12]; ++ ++ if (count > 0) { ++ if (asprintf (&buf, "$6$rounds=%ld$", count) < 0) { ++ if (output_size > 0) ++ output[0] = '\0'; ++ errno = ENOMEM; ++ return NULL; ++ } ++ } else { ++ if (asprintf (&buf, "$6$") < 0) { ++ if (output_size > 0) ++ output[0] = '\0'; ++ errno = ENOMEM; ++ return NULL; ++ } ++ } ++ ++ if (size < 3 || output_size < (int)strlen (buf) + 4 + 1) { ++ free (buf); ++ if (output_size > 0) ++ output[0] = '\0'; ++ __set_errno(ERANGE); ++ return NULL; ++ } ++ ++ value = (unsigned long)(unsigned char)input[0] | ++ ((unsigned long)(unsigned char)input[1] << 8) | ++ ((unsigned long)(unsigned char)input[2] << 16); ++ buf2[0] = _crypt_itoa64[value & 0x3f]; ++ buf2[1] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ buf2[2] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ buf2[3] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ buf2[4] = '\0'; ++ ++ if (size >= 6 && output_size >= (int)strlen (buf) + 4 + 4 + 1) { ++ value = (unsigned long)(unsigned char)input[3] | ++ ((unsigned long)(unsigned char)input[4] << 8) | ++ ((unsigned long)(unsigned char)input[5] << 16); ++ buf2[4] = _crypt_itoa64[value & 0x3f]; ++ buf2[5] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ buf2[6] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ buf2[7] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ buf2[8] = '\0'; ++ } ++ ++ snprintf (output, output_size, "%s%s", buf, buf2); ++ free (buf); ++ ++ return output; ++} +diff --git a/wrapper.c b/wrapper.c +index af441bc..07772bc 100644 +--- a/wrapper.c ++++ b/wrapper.c +@@ -33,12 +33,20 @@ + + #include "crypt_blowfish.h" + #include "crypt_gensalt.h" ++extern char *_crypt_gensalt_sha256_rn(unsigned long count, ++ const char *input, int size, char *output, int output_size); ++extern char *_crypt_gensalt_sha512_rn(unsigned long count, ++ const char *input, int size, char *output, int output_size); + + #if defined(__GLIBC__) && defined(_LIBC) + /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ + #include "crypt.h" + extern char *__md5_crypt_r(const char *key, const char *salt, + char *buffer, int buflen); ++extern char *__sha256_crypt_r (const char *key, const char *salt, ++ char *buffer, int buflen); ++extern char *__sha512_crypt_r (const char *key, const char *salt, ++ char *buffer, int buflen); + /* crypt-entry.c needs to be patched to define __des_crypt_r rather than + * __crypt_r, and not define crypt_r and crypt at all */ + extern char *__des_crypt_r(const char *key, const char *salt, +@@ -101,6 +109,10 @@ static char *_crypt_retval_magic(char *retval, const char *setting, + char *__crypt_rn(__const char *key, __const char *setting, + void *data, int size) + { ++ if (setting[0] == '$' && setting[1] == '6') ++ return __sha512_crypt_r(key, setting, (char *)data, size); ++ if (setting[0] == '$' && setting[1] == '5') ++ return __sha256_crypt_r(key, setting, (char *)data, size); + if (setting[0] == '$' && setting[1] == '2') + return _crypt_blowfish_rn(key, setting, (char *)data, size); + if (setting[0] == '$' && setting[1] == '1') +@@ -118,6 +130,16 @@ char *__crypt_rn(__const char *key, __const char *setting, + char *__crypt_ra(__const char *key, __const char *setting, + void **data, int *size) + { ++ if (setting[0] == '$' && setting[1] == '6') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return __sha512_crypt_r(key, setting, (char *)*data, *size); ++ } ++ if (setting[0] == '$' && setting[1] == '5') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return __sha256_crypt_r(key, setting, (char *)*data, *size); ++ } + if (setting[0] == '$' && setting[1] == '2') { + if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) + return NULL; +@@ -199,6 +221,12 @@ char *__crypt_gensalt_rn(const char *prefix, unsigned long count, + return NULL; + } + ++ if (!strncmp(prefix, "$6$", 3)) ++ use = _crypt_gensalt_sha512_rn; ++ else ++ if (!strncmp(prefix, "$5$", 3)) ++ use = _crypt_gensalt_sha256_rn; ++ else + if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) + use = _crypt_gensalt_blowfish_rn; + else +-- +1.7.3.4 + diff --git a/crypt_blowfish-1.2.tar.gz b/crypt_blowfish-1.2.tar.gz new file mode 100644 index 0000000..4f3c60b --- /dev/null +++ b/crypt_blowfish-1.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12a3455700d4795f5a99e6fca54c782688d3785e6525cbfe5129dcc363858e27 +size 29757 diff --git a/crypt_blowfish-1.2.tar.gz.sign b/crypt_blowfish-1.2.tar.gz.sign new file mode 100644 index 0000000..5097d2b --- /dev/null +++ b/crypt_blowfish-1.2.tar.gz.sign @@ -0,0 +1,10 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.10 (GNU/Linux) +Comment: http://www.openwall.com/signatures/ + +iQCVAwUATiLawHK5fbEpUCnxAQIT4wP9GTUroM4r21oggeW0k3j5vICwSVHV5BbJ +MBOfliwa1tW9JNh/dEA9GHiPeVWXr/KNWm9/3bSYGDqfsYMlQ7x8w/CCUrS/gvpv +XtvwxUE5juAH5wy4+6oV1gBWiISWGOUcCqkgxPVZKOjlSV4c7kvr10JwqYdnqjK9 +RT/A2FgAxM4= +=K4Xs +-----END PGP SIGNATURE----- diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff new file mode 100644 index 0000000..b1e19fe --- /dev/null +++ b/glibc-2.14-crypt.diff @@ -0,0 +1,55 @@ +diff -urp glibc-2.14.orig/crypt/Makefile glibc-2.14/crypt/Makefile +--- glibc-2.14.orig/crypt/Makefile 2011-05-31 04:12:33 +0000 ++++ glibc-2.14/crypt/Makefile 2011-07-16 21:40:56 +0000 +@@ -22,6 +22,7 @@ + subdir := crypt + + headers := crypt.h ++headers += gnu-crypt.h ow-crypt.h + + extra-libs := libcrypt + extra-libs-others := $(extra-libs) +@@ -29,6 +30,8 @@ extra-libs-others := $(extra-libs) + libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ + crypt_util + ++libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper ++ + tests := cert md5c-test sha256c-test sha512c-test + + distribute := ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \ +diff -urp glibc-2.14.orig/crypt/Versions glibc-2.14/crypt/Versions +--- glibc-2.14.orig/crypt/Versions 2011-05-31 04:12:33 +0000 ++++ glibc-2.14/crypt/Versions 2011-07-16 21:40:56 +0000 +@@ -1,5 +1,6 @@ + libcrypt { + GLIBC_2.0 { + crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; ++ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } + } +diff -urp glibc-2.14.orig/crypt/crypt-entry.c glibc-2.14/crypt/crypt-entry.c +--- glibc-2.14.orig/crypt/crypt-entry.c 2011-05-31 04:12:33 +0000 ++++ glibc-2.14/crypt/crypt-entry.c 2011-07-16 21:40:56 +0000 +@@ -82,7 +82,7 @@ extern struct crypt_data _ufc_foobar; + */ + + char * +-__crypt_r (key, salt, data) ++__des_crypt_r (key, salt, data) + const char *key; + const char *salt; + struct crypt_data * __restrict data; +@@ -137,6 +137,7 @@ __crypt_r (key, salt, data) + _ufc_output_conversion_r (res[0], res[1], salt, data); + return data->crypt_3_buf; + } ++#if 0 + weak_alias (__crypt_r, crypt_r) + + char * +@@ -177,3 +178,4 @@ __fcrypt (key, salt) + return crypt (key, salt); + } + #endif ++#endif diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index fc09165..5297ca9 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -1,8 +1,6 @@ -The following patch was not accepted upstream, see: +For details see: http://sourceware.org/bugzilla/show_bug.cgi?id=5379 -It needs rework. - Index: sunrpc/clnt_udp.c =================================================================== --- sunrpc/clnt_udp.c.orig diff --git a/glibc-uio-cell.diff b/glibc-uio-cell.diff index 6bbbfe3..265fc5d 100644 --- a/glibc-uio-cell.diff +++ b/glibc-uio-cell.diff @@ -1,3 +1,8 @@ +Refused by Ulrich Drepper: +http://sourceware.org/ml/libc-alpha/2011-07/msg00046.html + +We have to keep it until gcc handles this better. + 2009-11-06 Petr Baudis * include/sys/uio.h: Change __vector to __iovec to avoid clash diff --git a/glibc.changes b/glibc.changes index c05d086..c1f56a6 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Tue Jul 19 12:19:22 UTC 2011 - aj@suse.de + +- Back to old glibc-2.2-sunrpc.diff for now. + +------------------------------------------------------------------- +Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de + +- update crypt_blowfish to version 1.2 (bnc#700876) + * due to the signedness bug fix 2a hashes are incompatible with + previous versions if the password contains 8bit chracters! + * libcrypt now exports crypt_gensalt + +------------------------------------------------------------------- +Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de + +- Remove ppc-atomic.diff after discussion with glibc PPC experts + since it does not bring any real benefit. + +------------------------------------------------------------------- +Thu Jul 7 14:50:15 UTC 2011 - aj@suse.de + +- Update glibc-2.2-sunrpc.diff with newer patch from sourceware + bugzilla (bs#bso#5379). + ------------------------------------------------------------------- Wed Jul 6 08:24:45 UTC 2011 - lnussel@suse.de diff --git a/glibc.spec b/glibc.spec index 9595f22..5aa5e76 100644 --- a/glibc.spec +++ b/glibc.spec @@ -15,7 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - +%define crypt_bf_version 1.2 Name: glibc License: GPLv2+ @@ -94,6 +94,9 @@ Source16: baselibs.conf Source20: nscd.conf Source21: nscd.service Source22: nscd.socket +# +Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz +Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign Requires(pre): filesystem Provides: rtld(GNU_HASH) @@ -114,8 +117,8 @@ Patch2: glibc-fnmatch-multibyte.diff Patch3: glibc-resolv-reload.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch4: glibc-2.3.locales.diff.bz2 -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch5: crypt_blowfish-1.0-suse.diff +# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 +Patch5: glibc-2.14-crypt.diff # PATCH-FIX-OPENSUSE add some extra information to version output - kukuk@suse.de Patch7: glibc-version.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -146,15 +149,13 @@ Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff Patch25: glibc-2.3.90-langpackdir.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch27: glibc-2.6-configure.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 +# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de Patch28: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Do not generate hardlink for getconf Patch29: glibc-2.8-getconf.diff # PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 Patch30: getaddrinfo-ipv6-sanity.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch31: ppc-atomic.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch33: glibc-compiled-binaries.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch36: glibc-no-unwind-tables.diff @@ -164,7 +165,7 @@ Patch37: glibc-2.10-nscd-nostack.diff Patch38: glibc-cpusetsize.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch40: libm-x86-64-exceptions.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE - Allow compilation with -altivec aj@suse.de Patch41: glibc-uio-cell.diff # PATCH-FIX-UPSTREAM -- add missing includes aj@suse.de Patch43: missing-include-build-fix.diff @@ -206,6 +207,9 @@ Patch62: glibc-2.13-warnings.fix Patch63: glibc-2.13-localedef.patch # PATCH-FIX-UPSTREAM Fix futex bug bso#12403 aj@suse.de Patch64: glibc-fix-rwlock-stack-imbalance.patch +# +# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de +Patch80: crypt_blowfish-1.1-sha.diff %description The GNU C Library provides the most important standard libraries used @@ -369,6 +373,14 @@ versions of your software. # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 %endif +# Owl crypt_blowfish +tar -xzf %SOURCE50 +pushd crypt_blowfish-%{crypt_bf_version} +%patch80 -p1 +popd +mv crypt/{crypt.h,gnu-crypt.h} +mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ +# %patch0 # libNoVersion part is only active on ix86 %patch1 @@ -376,7 +388,7 @@ versions of your software. # %patch2 -p1 %patch3 %patch4 -%patch5 +%patch5 -p1 %patch7 %patch8 # Disabled @@ -403,7 +415,6 @@ rm nscd/s-stamp %patch28 %patch29 %patch30 -%patch31 %patch33 %patch36 # Disable for now diff --git a/ppc-atomic.diff b/ppc-atomic.diff deleted file mode 100644 index 89e8224..0000000 --- a/ppc-atomic.diff +++ /dev/null @@ -1,410 +0,0 @@ -Index: sysdeps/powerpc/bits/atomic.h -=================================================================== ---- sysdeps/powerpc/bits/atomic.h.orig -+++ sysdeps/powerpc/bits/atomic.h -@@ -85,14 +85,14 @@ typedef uintmax_t uatomic_max_t; - __typeof (*(mem)) __tmp; \ - __typeof (mem) __memp = (mem); \ - __asm __volatile ( \ -- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ -+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ - " cmpw %0,%2\n" \ - " bne 2f\n" \ -- " stwcx. %3,0,%1\n" \ -+ " stwcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " __ARCH_ACQ_INSTR \ -- : "=&r" (__tmp) \ -- : "b" (__memp), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (*__memp) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp; \ - }) -@@ -102,14 +102,14 @@ typedef uintmax_t uatomic_max_t; - __typeof (*(mem)) __tmp; \ - __typeof (mem) __memp = (mem); \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ -- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ -+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ - " cmpw %0,%2\n" \ - " bne 2f\n" \ -- " stwcx. %3,0,%1\n" \ -+ " stwcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " \ -- : "=&r" (__tmp) \ -- : "b" (__memp), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (__memp) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp; \ - }) -@@ -118,12 +118,12 @@ typedef uintmax_t uatomic_max_t; - ({ \ - __typeof (*mem) __val; \ - __asm __volatile ( \ -- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ -- " stwcx. %3,0,%2\n" \ -+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ -+ " stwcx. %2,%y1\n" \ - " bne- 1b\n" \ - " " __ARCH_ACQ_INSTR \ -- : "=&r" (__val), "=m" (*mem) \ -- : "b" (mem), "r" (value), "m" (*mem) \ -+ : "=&r" (__val), "+Z" (*mem) \ -+ : "r" (value) \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -132,11 +132,11 @@ typedef uintmax_t uatomic_max_t; - ({ \ - __typeof (*mem) __val; \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ -- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ -- " stwcx. %3,0,%2\n" \ -+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ -+ " stwcx. %2,%y1\n" \ - " bne- 1b" \ -- : "=&r" (__val), "=m" (*mem) \ -- : "b" (mem), "r" (value), "m" (*mem) \ -+ : "=&r" (__val), "+Z" (*mem) \ -+ : "r" (value) \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -144,12 +144,12 @@ typedef uintmax_t uatomic_max_t; - #define __arch_atomic_exchange_and_add_32(mem, value) \ - ({ \ - __typeof (*mem) __val, __tmp; \ -- __asm __volatile ("1: lwarx %0,0,%3\n" \ -- " add %1,%0,%4\n" \ -- " stwcx. %1,0,%3\n" \ -+ __asm __volatile ("1: lwarx %0,%y2\n" \ -+ " add %1,%0,%3\n" \ -+ " stwcx. %1,%y2\n" \ - " bne- 1b" \ -- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ -- : "b" (mem), "r" (value), "m" (*mem) \ -+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ -+ : "r" (value) \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -157,12 +157,12 @@ typedef uintmax_t uatomic_max_t; - #define __arch_atomic_increment_val_32(mem) \ - ({ \ - __typeof (*(mem)) __val; \ -- __asm __volatile ("1: lwarx %0,0,%2\n" \ -+ __asm __volatile ("1: lwarx %0,%y1\n" \ - " addi %0,%0,1\n" \ -- " stwcx. %0,0,%2\n" \ -+ " stwcx. %0,%y1\n" \ - " bne- 1b" \ -- : "=&b" (__val), "=m" (*mem) \ -- : "b" (mem), "m" (*mem) \ -+ : "=&b" (__val), "+Z" (*mem) \ -+ : \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -170,27 +170,27 @@ typedef uintmax_t uatomic_max_t; - #define __arch_atomic_decrement_val_32(mem) \ - ({ \ - __typeof (*(mem)) __val; \ -- __asm __volatile ("1: lwarx %0,0,%2\n" \ -+ __asm __volatile ("1: lwarx %0,%y1\n" \ - " subi %0,%0,1\n" \ -- " stwcx. %0,0,%2\n" \ -+ " stwcx. %0,%y1\n" \ - " bne- 1b" \ -- : "=&b" (__val), "=m" (*mem) \ -- : "b" (mem), "m" (*mem) \ -+ : "=&b" (__val), "+Z" (*mem) \ -+ : \ - : "cr0", "memory"); \ - __val; \ - }) - - #define __arch_atomic_decrement_if_positive_32(mem) \ - ({ int __val, __tmp; \ -- __asm __volatile ("1: lwarx %0,0,%3\n" \ -+ __asm __volatile ("1: lwarx %0,%y2\n" \ - " cmpwi 0,%0,0\n" \ - " addi %1,%0,-1\n" \ - " ble 2f\n" \ -- " stwcx. %1,0,%3\n" \ -+ " stwcx. %1,%y2\n" \ - " bne- 1b\n" \ - "2: " __ARCH_ACQ_INSTR \ -- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ -- : "b" (mem), "m" (*mem) \ -+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ -+ : \ - : "cr0", "memory"); \ - __val; \ - }) -Index: sysdeps/powerpc/powerpc32/bits/atomic.h -=================================================================== ---- sysdeps/powerpc/powerpc32/bits/atomic.h.orig -+++ sysdeps/powerpc/powerpc32/bits/atomic.h -@@ -44,14 +44,14 @@ - ({ \ - unsigned int __tmp; \ - __asm __volatile ( \ -- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ -+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ - " subf. %0,%2,%0\n" \ - " bne 2f\n" \ -- " stwcx. %3,0,%1\n" \ -+ " stwcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " __ARCH_ACQ_INSTR \ -- : "=&r" (__tmp) \ -- : "b" (mem), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (*(mem)) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp != 0; \ - }) -@@ -60,14 +60,14 @@ - ({ \ - unsigned int __tmp; \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ -- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ -+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ - " subf. %0,%2,%0\n" \ - " bne 2f\n" \ -- " stwcx. %3,0,%1\n" \ -+ " stwcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " \ -- : "=&r" (__tmp) \ -- : "b" (mem), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (*(mem)) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp != 0; \ - }) -Index: sysdeps/powerpc/powerpc64/bits/atomic.h -=================================================================== ---- sysdeps/powerpc/powerpc64/bits/atomic.h.orig -+++ sysdeps/powerpc/powerpc64/bits/atomic.h -@@ -44,14 +44,14 @@ - ({ \ - unsigned int __tmp, __tmp2; \ - __asm __volatile (" clrldi %1,%1,32\n" \ -- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ -+ "1: lwarx %0,%y2" MUTEX_HINT_ACQ "\n" \ - " subf. %0,%1,%0\n" \ - " bne 2f\n" \ -- " stwcx. %4,0,%2\n" \ -+ " stwcx. %4,%y2\n" \ - " bne- 1b\n" \ - "2: " __ARCH_ACQ_INSTR \ -- : "=&r" (__tmp), "=r" (__tmp2) \ -- : "b" (mem), "1" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ -+ : "1" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp != 0; \ - }) -@@ -61,14 +61,14 @@ - unsigned int __tmp, __tmp2; \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ - " clrldi %1,%1,32\n" \ -- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ -+ "1: lwarx %0,%y2" MUTEX_HINT_REL "\n" \ - " subf. %0,%1,%0\n" \ - " bne 2f\n" \ -- " stwcx. %4,0,%2\n" \ -+ " stwcx. %4,%y2\n" \ - " bne- 1b\n" \ - "2: " \ -- : "=&r" (__tmp), "=r" (__tmp2) \ -- : "b" (mem), "1" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ -+ : "1" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp != 0; \ - }) -@@ -82,14 +82,14 @@ - ({ \ - unsigned long __tmp; \ - __asm __volatile ( \ -- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ -+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ - " subf. %0,%2,%0\n" \ - " bne 2f\n" \ -- " stdcx. %3,0,%1\n" \ -+ " stdcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " __ARCH_ACQ_INSTR \ -- : "=&r" (__tmp) \ -- : "b" (mem), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (*(mem)) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp != 0; \ - }) -@@ -98,14 +98,14 @@ - ({ \ - unsigned long __tmp; \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ -- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ -+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ - " subf. %0,%2,%0\n" \ - " bne 2f\n" \ -- " stdcx. %3,0,%1\n" \ -+ " stdcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " \ -- : "=&r" (__tmp) \ -- : "b" (mem), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (*(mem)) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp != 0; \ - }) -@@ -115,14 +115,14 @@ - __typeof (*(mem)) __tmp; \ - __typeof (mem) __memp = (mem); \ - __asm __volatile ( \ -- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ -+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ - " cmpd %0,%2\n" \ - " bne 2f\n" \ -- " stdcx. %3,0,%1\n" \ -+ " stdcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " __ARCH_ACQ_INSTR \ -- : "=&r" (__tmp) \ -- : "b" (__memp), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (*__memp) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp; \ - }) -@@ -132,14 +132,14 @@ - __typeof (*(mem)) __tmp; \ - __typeof (mem) __memp = (mem); \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ -- "1: ldarx %0,0,%1" MUTEX_HINT_REL "\n" \ -+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ - " cmpd %0,%2\n" \ - " bne 2f\n" \ -- " stdcx. %3,0,%1\n" \ -+ " stdcx. %3,%y1\n" \ - " bne- 1b\n" \ - "2: " \ -- : "=&r" (__tmp) \ -- : "b" (__memp), "r" (oldval), "r" (newval) \ -+ : "=&r" (__tmp), "+Z" (*__memp) \ -+ : "r" (oldval), "r" (newval) \ - : "cr0", "memory"); \ - __tmp; \ - }) -@@ -148,12 +148,12 @@ - ({ \ - __typeof (*mem) __val; \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ -- "1: ldarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ -- " stdcx. %3,0,%2\n" \ -+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ -+ " stdcx. %2,%y1\n" \ - " bne- 1b\n" \ - " " __ARCH_ACQ_INSTR \ -- : "=&r" (__val), "=m" (*mem) \ -- : "b" (mem), "r" (value), "m" (*mem) \ -+ : "=&r" (__val), "+Z" (*(mem)) \ -+ : "r" (value) \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -162,11 +162,11 @@ - ({ \ - __typeof (*mem) __val; \ - __asm __volatile (__ARCH_REL_INSTR "\n" \ -- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ -- " stdcx. %3,0,%2\n" \ -+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ -+ " stdcx. %2,%y1\n" \ - " bne- 1b" \ -- : "=&r" (__val), "=m" (*mem) \ -- : "b" (mem), "r" (value), "m" (*mem) \ -+ : "=&r" (__val), "+Z" (*(mem)) \ -+ : "r" (value) \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -174,12 +174,12 @@ - #define __arch_atomic_exchange_and_add_64(mem, value) \ - ({ \ - __typeof (*mem) __val, __tmp; \ -- __asm __volatile ("1: ldarx %0,0,%3\n" \ -- " add %1,%0,%4\n" \ -- " stdcx. %1,0,%3\n" \ -+ __asm __volatile ("1: ldarx %0,%y2\n" \ -+ " add %1,%0,%3\n" \ -+ " stdcx. %1,%y2\n" \ - " bne- 1b" \ -- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ -- : "b" (mem), "r" (value), "m" (*mem) \ -+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ -+ : "r" (value) \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -187,12 +187,12 @@ - #define __arch_atomic_increment_val_64(mem) \ - ({ \ - __typeof (*(mem)) __val; \ -- __asm __volatile ("1: ldarx %0,0,%2\n" \ -+ __asm __volatile ("1: ldarx %0,%y1\n" \ - " addi %0,%0,1\n" \ -- " stdcx. %0,0,%2\n" \ -+ " stdcx. %0,%y1\n" \ - " bne- 1b" \ -- : "=&b" (__val), "=m" (*mem) \ -- : "b" (mem), "m" (*mem) \ -+ : "=&b" (__val), "+Z" (*(mem)) \ -+ : \ - : "cr0", "memory"); \ - __val; \ - }) -@@ -200,27 +200,27 @@ - #define __arch_atomic_decrement_val_64(mem) \ - ({ \ - __typeof (*(mem)) __val; \ -- __asm __volatile ("1: ldarx %0,0,%2\n" \ -+ __asm __volatile ("1: ldarx %0,%y1\n" \ - " subi %0,%0,1\n" \ -- " stdcx. %0,0,%2\n" \ -+ " stdcx. %0,%y1\n" \ - " bne- 1b" \ -- : "=&b" (__val), "=m" (*mem) \ -- : "b" (mem), "m" (*mem) \ -+ : "=&b" (__val), "+Z" (*(mem)) \ -+ : \ - : "cr0", "memory"); \ - __val; \ - }) - - #define __arch_atomic_decrement_if_positive_64(mem) \ - ({ int __val, __tmp; \ -- __asm __volatile ("1: ldarx %0,0,%3\n" \ -+ __asm __volatile ("1: ldarx %0,%y2\n" \ - " cmpdi 0,%0,0\n" \ - " addi %1,%0,-1\n" \ - " ble 2f\n" \ -- " stdcx. %1,0,%3\n" \ -+ " stdcx. %1,%y2\n" \ - " bne- 1b\n" \ - "2: " __ARCH_ACQ_INSTR \ -- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ -- : "b" (mem), "m" (*mem) \ -+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ -+ : \ - : "cr0", "memory"); \ - __val; \ - }) From a51b2e08476d110c29c94674d2f042e2700af789ede04b982d191dd90e1f4ad3 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 21 Jul 2011 06:55:20 +0000 Subject: [PATCH 064/204] Autobuild autoformatter for 76539 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=68 --- glibc.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/glibc.spec b/glibc.spec index 5aa5e76..479e13a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + %define crypt_bf_version 1.2 Name: glibc @@ -77,7 +78,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 23 +Release: 25 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -209,7 +210,7 @@ Patch63: glibc-2.13-localedef.patch Patch64: glibc-fix-rwlock-stack-imbalance.patch # # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de -Patch80: crypt_blowfish-1.1-sha.diff +Patch80: crypt_blowfish-1.1-sha.diff %description The GNU C Library provides the most important standard libraries used From be93ea58c4c698b2695c8d806fb5c171fb2a161c79b1eafac8d1390625d87d15 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 21 Jul 2011 10:13:26 +0000 Subject: [PATCH 065/204] Accepting request 76612 from Base:System - install crypt_blowfish man pages (forwarded request 76598 from lnussel) OBS-URL: https://build.opensuse.org/request/show/76612 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=69 --- glibc.changes | 5 +++++ glibc.spec | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/glibc.changes b/glibc.changes index c1f56a6..724563f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de + +- install crypt_blowfish man pages + ------------------------------------------------------------------- Tue Jul 19 12:19:22 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 479e13a..4203508 100644 --- a/glibc.spec +++ b/glibc.spec @@ -641,6 +641,11 @@ $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_p %endif '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' +# crypt_blowfish man pages +pushd crypt_blowfish-%{crypt_bf_version} +make man +popd + ####################################################################### ### ### CHECK @@ -777,6 +782,12 @@ cp -p manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc cd manpages; make install_root=%{buildroot} install; cd .. +# crypt_blowfish man pages +pushd crypt_blowfish-%{crypt_bf_version} +install -m755 -d %{buildroot}%{_mandir}/man3 +install -m644 *.3 %{buildroot}%{_mandir}/man3 +popd + # nscd tools: cp nscd/nscd.conf %{buildroot}/etc From 90c7584cbd727944bddecbef89e33e12fd5afd5e836a53350f24ee5315000167 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 21 Jul 2011 10:13:38 +0000 Subject: [PATCH 066/204] Autobuild autoformatter for 76612 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=70 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index 4203508..e1cd12d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -78,7 +78,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 25 +Release: 27 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 From 2c4a42d3c0dde71a7655b744f6d813158513fcb7be29fc8b98ae151954a068f3 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 25 Jul 2011 10:28:22 +0000 Subject: [PATCH 067/204] Accepting request 76918 from Base:System bnc#684534, bnc#706719 (forwarded request 76694 from rhafer) OBS-URL: https://build.opensuse.org/request/show/76918 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=71 --- glibc-fix-double-loopback.diff | 25 +++++++++++++++++++++++++ glibc.changes | 6 ++++++ glibc.spec | 3 +++ 3 files changed, 34 insertions(+) create mode 100644 glibc-fix-double-loopback.diff diff --git a/glibc-fix-double-loopback.diff b/glibc-fix-double-loopback.diff new file mode 100644 index 0000000..f59a70d --- /dev/null +++ b/glibc-fix-double-loopback.diff @@ -0,0 +1,25 @@ +This fixes the problem of getent ahosts localhost returning 127.0.0.1 +_twice_ on systems that have no ipv6 interfaces up (hence are regarded +as ipv4 only by the lookup code), but still have localhost entries for +::1 and 127.0.0.1 in /etc/hosts (like most current systems). + +Remapping ::1 to 127.0.0.1 is bogus when /etc/hosts is correct. +bnc #684534, #606980 +http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980 + +Index: glibc-2.11.3/nss/nss_files/files-hosts.c +=================================================================== +--- glibc-2.11.3.orig/nss/nss_files/files-hosts.c 2011-05-27 15:08:23.000000000 +0200 ++++ glibc-2.11.3/nss/nss_files/files-hosts.c 2011-07-20 17:15:26.000000000 +0200 +@@ -69,11 +69,6 @@ LINE_PARSER + { + if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr)) + memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ); +- else if (IN6_IS_ADDR_LOOPBACK (entdata->host_addr)) +- { +- in_addr_t localhost = htonl (INADDR_LOOPBACK); +- memcpy (entdata->host_addr, &localhost, sizeof (localhost)); +- } + else + /* Illegal address: ignore line. */ + return 0; diff --git a/glibc.changes b/glibc.changes index 724563f..0d5ee00 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de + +- Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. + (bnc#684534, bnc#706719) + ------------------------------------------------------------------- Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de diff --git a/glibc.spec b/glibc.spec index e1cd12d..94a7509 100644 --- a/glibc.spec +++ b/glibc.spec @@ -208,6 +208,8 @@ Patch62: glibc-2.13-warnings.fix Patch63: glibc-2.13-localedef.patch # PATCH-FIX-UPSTREAM Fix futex bug bso#12403 aj@suse.de Patch64: glibc-fix-rwlock-stack-imbalance.patch +# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 +Patch65: glibc-fix-double-loopback.diff # # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.1-sha.diff @@ -445,6 +447,7 @@ rm nscd/s-stamp %patch62 -p1 %patch63 -p1 %patch64 -p1 +%patch65 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! From 9e339a939411ca3f793c947204d5ad3b39dad2848491361c4288727383fb0de8 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 25 Jul 2011 10:28:35 +0000 Subject: [PATCH 068/204] Autobuild autoformatter for 76918 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=72 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index 94a7509..b3905f9 100644 --- a/glibc.spec +++ b/glibc.spec @@ -78,7 +78,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 27 +Release: 29 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 From 370e6585abcb3e045bea9b17b5e9b49c3cf2fafd1c21f9950e8f9a7a5d1f937b Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 18 Aug 2011 14:00:14 +0000 Subject: [PATCH 069/204] Accepting request 79227 from Base:System Fix crash (access-after-free) in dl_lookup_x. [bnc#703140];mark subpackages as noarch. (forwarded request 79226 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/79227 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=73 --- getaddrinfo-ipv6-sanity.diff | 13 +- glibc-2.10-nscd-nostack.diff | 18 -- glibc-2.13-996cf2ef0727.tar.bz2 | 3 - glibc-2.13-dl-load.patch | 320 -------------------------- glibc-2.14-4eddf93f5cc2.tar.bz2 | 3 + glibc-2.2-sunrpc.diff | 1 + glibc-2.3.1.localedef.diff | 72 ------ glibc-2.4.90-nscd.diff | 8 +- glibc-2.6-configure.diff | 40 ---- glibc-bso-12454.diff | 27 --- glibc-cpusetsize.diff | 28 +-- glibc-disable-backward-memcpy.diff | 45 ---- glibc-fix-lookup-crash.patch | 19 ++ glibc-fnmatch-multibyte.diff | 92 -------- glibc-ports-2.13.tar.bz2 | 3 - glibc-ports-2.14.tar.bz2 | 3 + glibc-revert-fseek-on-fclose.diff | 212 +++++++++++++++++ glibc-static-memcpy.diff | 61 ----- glibc-strict-aliasing.diff | 13 +- glibc-vfprintf-positional.diff | 20 -- glibc-zarch-longlong.diff | 41 ---- glibc.changes | 53 +++++ glibc.rpmlintrc | 2 + glibc.spec | 70 ++---- glibc2.14-revert-sunrpc-removal.patch | 63 +++++ manpages.tar.bz2 | 4 +- missing-include-build-fix.diff | 31 --- 27 files changed, 408 insertions(+), 857 deletions(-) delete mode 100644 glibc-2.10-nscd-nostack.diff delete mode 100644 glibc-2.13-996cf2ef0727.tar.bz2 delete mode 100644 glibc-2.13-dl-load.patch create mode 100644 glibc-2.14-4eddf93f5cc2.tar.bz2 delete mode 100644 glibc-2.3.1.localedef.diff delete mode 100644 glibc-2.6-configure.diff delete mode 100644 glibc-bso-12454.diff delete mode 100644 glibc-disable-backward-memcpy.diff create mode 100644 glibc-fix-lookup-crash.patch delete mode 100644 glibc-fnmatch-multibyte.diff delete mode 100644 glibc-ports-2.13.tar.bz2 create mode 100644 glibc-ports-2.14.tar.bz2 create mode 100644 glibc-revert-fseek-on-fclose.diff delete mode 100644 glibc-static-memcpy.diff delete mode 100644 glibc-vfprintf-positional.diff delete mode 100644 glibc-zarch-longlong.diff create mode 100644 glibc2.14-revert-sunrpc-removal.patch delete mode 100644 missing-include-build-fix.diff diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index c89228d..c982e8b 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -13,16 +13,7 @@ Index: sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -706,7 +706,7 @@ gaih_inet (const char *name, const struc - no_data = 0; - nss_gethostbyname4_r fct4 - = __nss_lookup_function (nip, "gethostbyname4_r"); -- if (fct4 != NULL) -+ if (fct4 != NULL && usable_ipv6) - { - int herrno; - -@@ -763,7 +763,7 @@ gaih_inet (const char *name, const struc +@@ -766,7 +766,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -31,7 +22,7 @@ Index: sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2156,7 +2156,7 @@ getaddrinfo (const char *name, const cha +@@ -2157,7 +2157,7 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/glibc-2.10-nscd-nostack.diff b/glibc-2.10-nscd-nostack.diff deleted file mode 100644 index 0e778ef..0000000 --- a/glibc-2.10-nscd-nostack.diff +++ /dev/null @@ -1,18 +0,0 @@ -Index: nscd/nscd.h -=================================================================== ---- nscd/nscd.h.orig -+++ nscd/nscd.h -@@ -59,7 +59,12 @@ typedef enum - - /* Maximum size of stack frames we allow the thread to use. We use - 80% of the thread stack size. */ --#define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) -+// #define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) -+/* alloca() calls use extra space on stack that we cannot reliably -+ account for, the optimization effect is not that big and they are -+ prone to hard-to-debug crashes. In short, they are much more trouble -+ than they are worth. */ -+#define MAX_STACK_USE 0 - - - /* Structure describing dynamic part of one database. */ diff --git a/glibc-2.13-996cf2ef0727.tar.bz2 b/glibc-2.13-996cf2ef0727.tar.bz2 deleted file mode 100644 index 0e56656..0000000 --- a/glibc-2.13-996cf2ef0727.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:023aef147d380f0e4ca2ff0617355b0ef69e41f00db7c463c800fabdb62e8faa -size 16381764 diff --git a/glibc-2.13-dl-load.patch b/glibc-2.13-dl-load.patch deleted file mode 100644 index 89443e3..0000000 --- a/glibc-2.13-dl-load.patch +++ /dev/null @@ -1,320 +0,0 @@ -2011-05-11 Ulrich Drepper - - [BZ #12393] - * elf/dl-load.c (is_trusted_path): Remove unnecessary test. - (is_trusted_path_normalize): Skip initial colon. Append slash - to empty buffer. Duplicate is_trusted_path code but allow - constructed patch to be prefix. - (is_dst): Allow $ORIGIN followed by /. - (_dl_dst_substitute): Correct clearing of check_for_trusted. - Correct testing of result of is_trusted_path_normalize - (decompose_rpath): Fix warning. - -2011-05-07 Petr Baudis - Ulrich Drepper - - [BZ #12393] - * elf/dl-load.c (fillin_rpath): Move trusted path check... - (is_trusted_path): ...to here. - (is_trusted_path_normalize): Wrapper for /../ and /./ normalization. - (_dl_dst_substitute): Verify expanded $ORIGIN path elements - using is_trusted_path_normalize() in setuid scripts. - -2011-03-14 Andreas Schwab - - * elf/dl-load.c (_dl_dst_substitute): When skipping the first - rpath element also skip the following colon. - (expand_dynamic_string_token): Add is_path parameter and pass - down to DL_DST_REQUIRED and _dl_dst_substitute. - (decompose_rpath): Call expand_dynamic_string_token with - non-zero is_path. Ignore empty rpaths. - (_dl_map_object_from_fd): Call expand_dynamic_string_token - with zero is_path. - -2011-03-06 Ulrich Drepper - - * elf/dl-load.c (_dl_map_object): If we are looking for the first - to-be-loaded object along a path to loader is ld.so. - - ---- glibc-2.13/elf/dl-load.c 2011-05-20 21:53:43.766426054 +0200 -+++ glibc-2.14/elf/dl-load.c 2011-05-31 09:59:16.781617374 +0200 -@@ -1,5 +1,5 @@ - /* Map in a shared object's segments from the file. -- Copyright (C) 1995-2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. -+ Copyright (C) 1995-2007, 2009, 2010, 2011 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 -@@ -168,6 +168,87 @@ local_strdup (const char *s) - } - - -+static bool -+is_trusted_path (const char *path, size_t len) -+{ -+ const char *trun = system_dirs; -+ -+ for (size_t idx = 0; idx < nsystem_dirs_len; ++idx) -+ { -+ if (len == system_dirs_len[idx] && memcmp (trun, path, len) == 0) -+ /* Found it. */ -+ return true; -+ -+ trun += system_dirs_len[idx] + 1; -+ } -+ -+ return false; -+} -+ -+ -+static bool -+is_trusted_path_normalize (const char *path, size_t len) -+{ -+ if (len == 0) -+ return false; -+ -+ if (*path == ':') -+ { -+ ++path; -+ --len; -+ } -+ -+ char *npath = (char *) alloca (len + 2); -+ char *wnp = npath; -+ while (*path != '\0') -+ { -+ if (path[0] == '/') -+ { -+ if (path[1] == '.') -+ { -+ if (path[2] == '.' && (path[3] == '/' || path[3] == '\0')) -+ { -+ while (wnp > npath && *--wnp != '/') -+ ; -+ path += 3; -+ continue; -+ } -+ else if (path[2] == '/' || path[2] == '\0') -+ { -+ path += 2; -+ continue; -+ } -+ } -+ -+ if (wnp > npath && wnp[-1] == '/') -+ { -+ ++path; -+ continue; -+ } -+ } -+ -+ *wnp++ = *path++; -+ } -+ -+ if (wnp == npath || wnp[-1] != '/') -+ *wnp++ = '/'; -+ -+ const char *trun = system_dirs; -+ -+ for (size_t idx = 0; idx < nsystem_dirs_len; ++idx) -+ { -+ if (wnp - npath >= system_dirs_len[idx] -+ && memcmp (trun, npath, system_dirs_len[idx]) == 0) -+ /* Found it. */ -+ return true; -+ -+ trun += system_dirs_len[idx] + 1; -+ } -+ -+ return false; -+} -+ -+ - static size_t - is_dst (const char *start, const char *name, const char *str, - int is_path, int secure) -@@ -200,7 +281,8 @@ is_dst (const char *start, const char *n - return 0; - - if (__builtin_expect (secure, 0) -- && ((name[len] != '\0' && (!is_path || name[len] != ':')) -+ && ((name[len] != '\0' && name[len] != '/' -+ && (!is_path || name[len] != ':')) - || (name != start + 1 && (!is_path || name[-2] != ':')))) - return 0; - -@@ -240,13 +322,14 @@ _dl_dst_substitute (struct link_map *l, - int is_path) - { - const char *const start = name; -- char *last_elem, *wp; - - /* Now fill the result path. While copying over the string we keep - track of the start of the last path element. When we come accross - a DST we copy over the value or (if the value is not available) - leave the entire path element out. */ -- last_elem = wp = result; -+ char *wp = result; -+ char *last_elem = result; -+ bool check_for_trusted = false; - - do - { -@@ -265,6 +348,9 @@ _dl_dst_substitute (struct link_map *l, - else - #endif - repl = l->l_origin; -+ -+ check_for_trusted = (INTUSE(__libc_enable_secure) -+ && l->l_type == lt_executable); - } - else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) - repl = GLRO(dl_platform); -@@ -284,6 +370,10 @@ _dl_dst_substitute (struct link_map *l, - name += len; - while (*name != '\0' && (!is_path || *name != ':')) - ++name; -+ /* Also skip following colon if this is the first rpath -+ element, but keep an empty element at the end. */ -+ if (wp == result && is_path && *name == ':' && name[1] != '\0') -+ ++name; - } - else - /* No DST we recognize. */ -@@ -293,11 +383,28 @@ _dl_dst_substitute (struct link_map *l, - { - *wp++ = *name++; - if (is_path && *name == ':') -- last_elem = wp; -+ { -+ /* In SUID/SGID programs, after $ORIGIN expansion the -+ normalized path must be rooted in one of the trusted -+ directories. */ -+ if (__builtin_expect (check_for_trusted, false) -+ && !is_trusted_path_normalize (last_elem, wp - last_elem)) -+ wp = last_elem; -+ else -+ last_elem = wp; -+ -+ check_for_trusted = false; -+ } - } - } - while (*name != '\0'); - -+ /* In SUID/SGID programs, after $ORIGIN expansion the normalized -+ path must be rooted in one of the trusted directories. */ -+ if (__builtin_expect (check_for_trusted, false) -+ && !is_trusted_path_normalize (last_elem, wp - last_elem)) -+ wp = last_elem; -+ - *wp = '\0'; - - return result; -@@ -310,7 +417,7 @@ _dl_dst_substitute (struct link_map *l, - belonging to the map is loaded. In this case the path element - containing $ORIGIN is left out. */ - static char * --expand_dynamic_string_token (struct link_map *l, const char *s) -+expand_dynamic_string_token (struct link_map *l, const char *s, int is_path) - { - /* We make two runs over the string. First we determine how large the - resulting string is and then we copy it over. Since this is no -@@ -321,7 +428,7 @@ expand_dynamic_string_token (struct link - char *result; - - /* Determine the number of DST elements. */ -- cnt = DL_DST_COUNT (s, 1); -+ cnt = DL_DST_COUNT (s, is_path); - - /* If we do not have to replace anything simply copy the string. */ - if (__builtin_expect (cnt, 0) == 0) -@@ -335,7 +442,7 @@ expand_dynamic_string_token (struct link - if (result == NULL) - return NULL; - -- return _dl_dst_substitute (l, s, result, 1); -+ return _dl_dst_substitute (l, s, result, is_path); - } - - -@@ -407,33 +514,8 @@ fillin_rpath (char *rpath, struct r_sear - cp[len++] = '/'; - - /* Make sure we don't use untrusted directories if we run SUID. */ -- if (__builtin_expect (check_trusted, 0)) -- { -- const char *trun = system_dirs; -- size_t idx; -- int unsecure = 1; -- -- /* All trusted directories must be complete names. */ -- if (cp[0] == '/') -- { -- for (idx = 0; idx < nsystem_dirs_len; ++idx) -- { -- if (len == system_dirs_len[idx] -- && memcmp (trun, cp, len) == 0) -- { -- /* Found it. */ -- unsecure = 0; -- break; -- } -- -- trun += system_dirs_len[idx] + 1; -- } -- } -- -- if (unsecure) -- /* Simply drop this directory. */ -- continue; -- } -+ if (__builtin_expect (check_trusted, 0) && !is_trusted_path (cp, len)) -+ continue; - - /* See if this directory is already known. */ - for (dirp = GL(dl_all_dirs); dirp != NULL; dirp = dirp->next) -@@ -551,13 +633,21 @@ decompose_rpath (struct r_search_path_st - - /* Make a writable copy. At the same time expand possible dynamic - string tokens. */ -- copy = expand_dynamic_string_token (l, rpath); -+ copy = expand_dynamic_string_token (l, rpath, 1); - if (copy == NULL) - { - errstring = N_("cannot create RUNPATH/RPATH copy"); - goto signal_error; - } - -+ /* Ignore empty rpaths. */ -+ if (*copy == 0) -+ { -+ free (copy); -+ sps->dirs = (struct r_search_path_elem **) -1; -+ return false; -+ } -+ - /* Count the number of necessary elements in the result array. */ - nelems = 0; - for (cp = copy; *cp != '\0'; ++cp) -@@ -2109,7 +2201,9 @@ _dl_map_object (struct link_map *loader, - { - #ifdef SHARED - // XXX Correct to unconditionally default to namespace 0? -- l = loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded; -+ l = (loader -+ ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded -+ ?: &GL(dl_rtld_map)); - #else - l = loader; - #endif -@@ -2175,7 +2269,7 @@ _dl_map_object (struct link_map *loader, - { - /* The path may contain dynamic string tokens. */ - realname = (loader -- ? expand_dynamic_string_token (loader, name) -+ ? expand_dynamic_string_token (loader, name, 0) - : local_strdup (name)); - if (realname == NULL) - fd = -1; diff --git a/glibc-2.14-4eddf93f5cc2.tar.bz2 b/glibc-2.14-4eddf93f5cc2.tar.bz2 new file mode 100644 index 0000000..b4e0165 --- /dev/null +++ b/glibc-2.14-4eddf93f5cc2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:497c07f228208e8a0660ae5ee8919e4a6b5b59bb867891c7c02de8995310960e +size 15640100 diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index 5297ca9..c8ab99b 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -1,6 +1,7 @@ For details see: http://sourceware.org/bugzilla/show_bug.cgi?id=5379 + Index: sunrpc/clnt_udp.c =================================================================== --- sunrpc/clnt_udp.c.orig diff --git a/glibc-2.3.1.localedef.diff b/glibc-2.3.1.localedef.diff deleted file mode 100644 index 8858980..0000000 --- a/glibc-2.3.1.localedef.diff +++ /dev/null @@ -1,72 +0,0 @@ -Check: -http://sourceware.org/bugzilla/show_bug.cgi?id=10855 - -------------------------------------------------------------------- -Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de - -- Fix alignment in locale-archive. - -Index: locale/programs/locarchive.c -=================================================================== ---- locale/programs/locarchive.c.orig -+++ locale/programs/locarchive.c -@@ -75,6 +75,9 @@ static const char *locnames[] = - #define RESERVE_MMAP_SIZE 512 * 1024 * 1024 - - -+#define ALIGN(offset, alignment) \ -+ (((offset) + (alignment) - 1) & -(alignment)) -+ - static void - create_archive (const char *archivefname, struct locarhandle *ah) - { -@@ -94,7 +97,8 @@ create_archive (const char *archivefname - /* Create the initial content of the archive. */ - head.magic = AR_MAGIC; - head.serial = 0; -- head.namehash_offset = sizeof (struct locarhead); -+ head.namehash_offset = ALIGN (sizeof (struct locarhead), -+ __alignof__ (struct namehashent)); - head.namehash_used = 0; - head.namehash_size = next_prime (INITIAL_NUM_NAMES); - -@@ -103,12 +107,15 @@ create_archive (const char *archivefname - head.string_used = 0; - head.string_size = INITIAL_SIZE_STRINGS; - -- head.locrectab_offset = head.string_offset + head.string_size; -+ head.locrectab_offset = ALIGN (head.string_offset + head.string_size, -+ __alignof__ (struct locrecent)); - head.locrectab_used = 0; - head.locrectab_size = INITIAL_NUM_LOCREC; - -- head.sumhash_offset = (head.locrectab_offset -- + head.locrectab_size * sizeof (struct locrecent)); -+ head.sumhash_offset = ALIGN (head.locrectab_offset -+ + (head.locrectab_size -+ * sizeof (struct locrecent)), -+ __alignof__ (struct sumhashent)); - head.sumhash_used = 0; - head.sumhash_size = next_prime (INITIAL_NUM_SUMS); - -@@ -356,13 +363,16 @@ enlarge_archive (struct locarhandle *ah, - newhead.string_size = MAX ((2 * newhead.string_used + 3) & -4, - newhead.string_size); - -- newhead.locrectab_offset = newhead.string_offset + newhead.string_size; -+ newhead.locrectab_offset = ALIGN (newhead.string_offset -+ + newhead.string_size, -+ __alignof__ (struct locrecent)); - newhead.locrectab_size = MAX (2 * newhead.locrectab_used, - newhead.locrectab_size); - -- newhead.sumhash_offset = (newhead.locrectab_offset -- + (newhead.locrectab_size -- * sizeof (struct locrecent))); -+ newhead.sumhash_offset = ALIGN (newhead.locrectab_offset -+ + (newhead.locrectab_size -+ * sizeof (struct locrecent)), -+ __alignof__ (struct sumhashent)); - newhead.sumhash_size = MAX (next_prime (2 * newhead.sumhash_used), - newhead.sumhash_size); - diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff index ce178a1..43a66dc 100644 --- a/glibc-2.4.90-nscd.diff +++ b/glibc-2.4.90-nscd.diff @@ -2,7 +2,7 @@ Index: nscd/cache.c =================================================================== --- nscd/cache.c.orig 2010-01-18 18:01:41.000000000 +0100 +++ nscd/cache.c 2010-02-14 14:58:08.000000000 +0100 -@@ -267,28 +267,31 @@ prune_cache (struct database_dyn *table, +@@ -267,27 +267,29 @@ if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) { struct stat64 st; @@ -14,7 +14,7 @@ Index: nscd/cache.c { - char buf[128]; - /* We cannot stat() the file, disable file checking if the -- file does not exist. */ +- file does not exist. */ - dbg_log (_("cannot stat() file `%s': %s"), - table->filename, strerror_r (errno, buf, sizeof (buf))); - if (errno == ENOENT) @@ -37,14 +37,12 @@ Index: nscd/cache.c } } } - + /* now == 0 means just check for changed files */ + if (now == (time_t)0) + return 0; -+ + /* We run through the table and find values which are not valid anymore. - Note that for the initial step, finding the entries to be removed, Index: nscd/connections.c =================================================================== --- nscd/connections.c.orig 2010-01-18 18:01:41.000000000 +0100 diff --git a/glibc-2.6-configure.diff b/glibc-2.6-configure.diff deleted file mode 100644 index 530a453..0000000 --- a/glibc-2.6-configure.diff +++ /dev/null @@ -1,40 +0,0 @@ ---- configure.in.orig 2011-05-20 15:36:44.880141789 +0200 -+++ configure.in 2011-05-20 15:39:31.237690293 +0200 -@@ -1406,7 +1406,7 @@ - fi - fi - fi -- rm -f conftest.[cs] -+ rm -f conftest.* - ]) - if test $libc_cv_visibility_attribute != yes; then - AC_MSG_ERROR(compiler support for visibility attribute is required) -@@ -1422,7 +1422,7 @@ - int bar (int x) { return x; } - EOF - libc_cv_broken_visibility_attribute=yes -- if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then -+ if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s >&AS_MESSAGE_LOG_FD); then - changequote(,)dnl - if grep '\.hidden[ _]foo' conftest.s >/dev/null; then - changequote([,])dnl ---- configure.orig 2011-05-20 15:39:38.413972560 +0200 -+++ configure 2011-05-20 15:40:52.292884126 +0200 -@@ -6112,7 +6112,7 @@ - int bar (int x) { return x; } - EOF - libc_cv_broken_visibility_attribute=yes -- if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s1>&5' -+ if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s>&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -6753,7 +6753,7 @@ - else - libc_cv_have_section_quotes=unknown - fi -- rm -f conftest.cs -+ rm -f conftest.* - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_section_quotes" >&5 diff --git a/glibc-bso-12454.diff b/glibc-bso-12454.diff deleted file mode 100644 index 68c26da..0000000 --- a/glibc-bso-12454.diff +++ /dev/null @@ -1,27 +0,0 @@ -2011-03-02 Andreas Schwab - - [BZ #12454] - * elf/dl-deps.c (_dl_map_object_deps): Don't try to sort - dependencies when there are none. - ---- a/elf/dl-deps.c.orig 2011-05-25 16:42:39.000000000 +0200 -+++ a/elf/dl-deps.c 2011-05-25 16:44:07.000000000 +0200 -@@ -619,7 +619,8 @@ - - /* We can skip looking for the binary itself which is at the front - of the search list. */ -- assert (nlist > 1); -+ if (nlist > 1) -+ { - i = 1; - bool seen[nlist]; - memset (seen, false, nlist * sizeof (seen[0])); -@@ -669,7 +670,7 @@ - - next:; - } -- -+ } - /* Terminate the list of dependencies. */ - l_initfini[nlist] = NULL; - atomic_write_barrier (); diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff index 4e67f90..4049a3f 100644 --- a/glibc-cpusetsize.diff +++ b/glibc-cpusetsize.diff @@ -2,20 +2,20 @@ Index: bits/sched.h =================================================================== --- bits/sched.h.orig +++ bits/sched.h -@@ -38,7 +38,7 @@ struct sched_param - #if defined _SCHED_H && !defined __cpu_set_t_defined - # define __cpu_set_t_defined - /* Size definition for CPU sets. */ --# define __CPU_SETSIZE 1024 -+# define __CPU_SETSIZE 4096 - # define __NCPUBITS (8 * sizeof (__cpu_mask)) - - /* Type for array elements in 'cpu_set'. */ -Index: sysdeps/unix/sysv/linux/bits/sched.h -=================================================================== ---- sysdeps/unix/sysv/linux/bits/sched.h.orig -+++ sysdeps/unix/sysv/linux/bits/sched.h -@@ -106,7 +106,7 @@ struct __sched_param +@@ -54,7 +54,7 @@ struct __sched_param + #if defined _SCHED_H && !defined __cpu_set_t_defined + # define __cpu_set_t_defined + /* Size definition for CPU sets. */ +-# define __CPU_SETSIZE 1024 ++# define __CPU_SETSIZE 4096 + # define __NCPUBITS (8 * sizeof (__cpu_mask)) + + /* Type for array elements in 'cpu_set_t'. */ +Index: sysdeps/unix/sysv/linux/bits/sched.h +=================================================================== +--- sysdeps/unix/sysv/linux/bits/sched.h.orig ++++ sysdeps/unix/sysv/linux/bits/sched.h +@@ -113,7 +113,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined /* Size definition for CPU sets. */ diff --git a/glibc-disable-backward-memcpy.diff b/glibc-disable-backward-memcpy.diff deleted file mode 100644 index fda40ca..0000000 --- a/glibc-disable-backward-memcpy.diff +++ /dev/null @@ -1,45 +0,0 @@ -Index: glibc-2.13/sysdeps/x86_64/multiarch/Makefile -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/Makefile -+++ glibc-2.13/sysdeps/x86_64/multiarch/Makefile -@@ -6,7 +6,7 @@ endif - ifeq ($(subdir),string) - sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ - strend-sse4 memcmp-sse4 memcpy-ssse3 mempcpy-ssse3 \ -- memmove-ssse3 memcpy-ssse3-back mempcpy-ssse3-back \ -+ memmove-ssse3 mempcpy-ssse3-back \ - memmove-ssse3-back strcasestr-nonascii strcasecmp_l-ssse3 \ - strncase_l-ssse3 strlen-sse4 strlen-no-bsf \ - memset-x86-64 -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy.S -@@ -35,9 +35,11 @@ ENTRY(memcpy) - testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) - jz 2f - leaq __memcpy_ssse3(%rip), %rax -+ /* disable backward memcpy for glibc 2.13 - testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip) - jz 2f - leaq __memcpy_ssse3_back(%rip), %rax -+ */ - 2: ret - END(memcpy) - -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy_chk.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy_chk.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy_chk.S -@@ -36,9 +36,11 @@ ENTRY(__memcpy_chk) - testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) - jz 2f - leaq __memcpy_chk_ssse3(%rip), %rax -+ /* disable backwards memcpy until glibc 2.14 - testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip) - jz 2f - leaq __memcpy_chk_ssse3_back(%rip), %rax -+ */ - 2: ret - END(__memcpy_chk) - # else diff --git a/glibc-fix-lookup-crash.patch b/glibc-fix-lookup-crash.patch new file mode 100644 index 0000000..d4aaf5c --- /dev/null +++ b/glibc-fix-lookup-crash.patch @@ -0,0 +1,19 @@ +Index: glibc-2.11.3/elf/dl-close.c +=================================================================== +--- glibc-2.11.3.orig/elf/dl-close.c 2011-05-27 15:08:23.000000000 +0200 ++++ glibc-2.11.3/elf/dl-close.c 2011-07-13 19:28:52.000000000 +0200 +@@ -127,7 +127,13 @@ _dl_close_worker (struct link_map *map) + { + struct link_map **oldp = map->l_initfini; + map->l_initfini = map->l_orig_initfini; +- _dl_scope_free (oldp); ++ /* We can't remove the l_initfini memory because ++ it's shared with l_searchlist.r_list. We don't clear ++ the latter so when we dlopen this object again that ++ entry would point to stale memory. And we don't want ++ to recompute it as it would involve a new call to ++ map_object_deps. ++ _dl_scope_free (oldp); */ + } + } + diff --git a/glibc-fnmatch-multibyte.diff b/glibc-fnmatch-multibyte.diff deleted file mode 100644 index 42f49a4..0000000 --- a/glibc-fnmatch-multibyte.diff +++ /dev/null @@ -1,92 +0,0 @@ -When fnmatch detects an invalid multibyte character it should fall back to -single byte matching, so that "*" has a chance to match such a string. - -Andreas. - -Ported to glibc-2.11.3 by Petr Baudis. - -2005-04-12 Andreas Schwab - - * posix/fnmatch.c (fnmatch): If conversion to wide character - fails fall back to single byte matching. - -Index: glibc-2.11.2/posix/fnmatch.c -=================================================================== ---- glibc-2.11.2.orig/posix/fnmatch.c -+++ glibc-2.11.2/posix/fnmatch.c -@@ -333,6 +333,7 @@ fnmatch (pattern, string, flags) - # if HANDLE_MULTIBYTE - if (__builtin_expect (MB_CUR_MAX, 1) != 1) - { -+ const char *orig_pattern = pattern; - mbstate_t ps; - size_t n; - const char *p; -@@ -356,10 +357,8 @@ fnmatch (pattern, string, flags) - alloca_used); - n = mbsrtowcs (wpattern, &p, n + 1, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- return -1; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto try_singlebyte; - if (p) - { - memset (&ps, '\0', sizeof (ps)); -@@ -371,10 +370,8 @@ fnmatch (pattern, string, flags) - prepare_wpattern: - n = mbsrtowcs (NULL, &pattern, 0, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- return -1; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto try_singlebyte; - wpattern_malloc = wpattern - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); - assert (mbsinit (&ps)); -@@ -396,14 +393,8 @@ fnmatch (pattern, string, flags) - alloca_used); - n = mbsrtowcs (wstring, &p, n + 1, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- { -- /* Something wrong. -- XXX Do we have to set `errno' to something which -- mbsrtows hasn't already done? */ -- free_return: -- free (wpattern_malloc); -- return -1; -- } -+ /* Something wrong. Fall back to single byte matching. */ -+ goto free_and_try_singlebyte; - if (p) - { - memset (&ps, '\0', sizeof (ps)); -@@ -415,10 +406,8 @@ fnmatch (pattern, string, flags) - prepare_wstring: - n = mbsrtowcs (NULL, &string, 0, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- goto free_return; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto free_and_try_singlebyte; - - wstring_malloc = wstring - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); -@@ -439,6 +428,11 @@ fnmatch (pattern, string, flags) - free (wpattern_malloc); - - return res; -+ -+ free_and_try_singlebyte: -+ free(wpattern_malloc); -+ try_singlebyte: -+ pattern = orig_pattern; - } - # endif /* mbstate_t and mbsrtowcs or _LIBC. */ - diff --git a/glibc-ports-2.13.tar.bz2 b/glibc-ports-2.13.tar.bz2 deleted file mode 100644 index f2e7a58..0000000 --- a/glibc-ports-2.13.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b11c4501ae929883447f409c31d65e82822b1c5693075a825a3d54612876ee5a -size 625945 diff --git a/glibc-ports-2.14.tar.bz2 b/glibc-ports-2.14.tar.bz2 new file mode 100644 index 0000000..663c30d --- /dev/null +++ b/glibc-ports-2.14.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:808f0f6938af4d17fe6c091597df02d85ca5b4a3da21daf5065cba9a32ec7d02 +size 627448 diff --git a/glibc-revert-fseek-on-fclose.diff b/glibc-revert-fseek-on-fclose.diff new file mode 100644 index 0000000..6bf0be3 --- /dev/null +++ b/glibc-revert-fseek-on-fclose.diff @@ -0,0 +1,212 @@ +This reverts the following patch from upstream PR 12724, +which can cause surprising changes in fclose behaviour when multiple +file handles refer to the same file (fclose on one changes file position +on the other). +See bnc #711829. + +git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!' + +2011-05-13 Ulrich Drepper + + [BZ #12724] + * libio/fileops.c (_IO_new_file_close_it): Always flush when + currently writing and seek to current position when not. + * libio/Makefile (tests): Add bug-fclose1. + * libio/bug-fclose1.c: New file. + + 2011-05-12 Ulrich Drepper + + [BZ #12511] +diff --git b/libio/Makefile a/libio/Makefile +index ec30904..83b9458 100644 +--- b/libio/Makefile ++++ a/libio/Makefile +@@ -1,4 +1,4 @@ +-# Copyright (C) 1995-2004,2006-2009,2011 Free Software Foundation, Inc. ++# Copyright (C) 1995-2004,2006,2007,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 +@@ -58,7 +58,7 @@ tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ + tst-memstream1 tst-memstream2 \ + tst-wmemstream1 tst-wmemstream2 \ + bug-memstream1 bug-wmemstream1 \ +- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 ++ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos + test-srcs = test-freopen + + all: # Make this the default target; it will be defined in Rules. +diff --git b/libio/bug-fclose1.c a/libio/bug-fclose1.c +deleted file mode 100644 +index f1e09f5..0000000 +--- b/libio/bug-fclose1.c ++++ /dev/null +@@ -1,132 +0,0 @@ +-// BZ #12724 +- +-static void do_prepare (void); +-#define PREPARE(argc, argv) do_prepare () +-static int do_test (void); +-#define TEST_FUNCTION do_test() +-#include "../test-skeleton.c" +- +- +-static int fd; +- +- +-static void +-do_prepare (void) +-{ +- fd = create_temp_file ("bug-fclose1.", NULL); +- if (fd == -1) +- { +- printf ("cannot create temporary file: %m\n"); +- exit (1); +- } +-} +- +- +-static int +-do_test (void) +-{ +- static const char pattern[] = "hello world"; +- +- /* Prepare a seekable file. */ +- if (write (fd, pattern, sizeof pattern) != sizeof pattern) +- { +- printf ("cannot write pattern: %m\n"); +- return 1; +- } +- if (lseek (fd, 1, SEEK_SET) != 1) +- { +- printf ("cannot seek after write: %m\n"); +- return 1; +- } +- +- /* Create an output stream visiting the file; when it is closed, all +- other file descriptors visiting the file must see the new file +- position. */ +- int fd2 = dup (fd); +- if (fd2 < 0) +- { +- printf ("cannot duplicate descriptor for writing: %m\n"); +- return 1; +- } +- FILE *f = fdopen (fd2, "w"); +- if (f == NULL) +- { +- printf ("first fdopen failed: %m\n"); +- return 1; +- } +- if (fputc (pattern[1], f) != pattern[1]) +- { +- printf ("fputc failed: %m\n"); +- return 1; +- } +- if (fclose (f) != 0) +- { +- printf ("first fclose failed: %m\n"); +- return 1; +- } +- errno = 0; +- if (lseek (fd2, 0, SEEK_CUR) != -1) +- { +- printf ("lseek after fclose after write did not fail\n"); +- return 1; +- } +- if (errno != EBADF) +- { +- printf ("lseek after fclose after write did not fail with EBADF: %m\n"); +- return 1; +- } +- off_t o = lseek (fd, 0, SEEK_CUR); +- if (o != 2) +- { +- printf ("\ +-lseek on original descriptor after first fclose returned %ld, expected 2\n", +- (long int) o); +- return 1; +- } +- +- /* Likewise for an input stream. */ +- fd2 = dup (fd); +- if (fd2 < 0) +- { +- printf ("cannot duplicate descriptor for reading: %m\n"); +- return 1; +- } +- f = fdopen (fd2, "r"); +- if (f == NULL) +- { +- printf ("second fdopen failed: %m\n"); +- return 1; +- } +- char c = fgetc (f); +- if (c != pattern[2]) +- { +- printf ("getc returned %c, expected %c\n", c, pattern[2]); +- return 1; +- } +- if (fclose (f) != 0) +- { +- printf ("second fclose failed: %m\n"); +- return 1; +- } +- errno = 0; +- if (lseek (fd2, 0, SEEK_CUR) != -1) +- { +- printf ("lseek after fclose after read did not fail\n"); +- return 1; +- } +- if (errno != EBADF) +- { +- printf ("lseek after fclose after read did not fail with EBADF: %m\n"); +- return 1; +- } +- o = lseek (fd, 0, SEEK_CUR); +- if (o != 3) +- { +- printf ("\ +-lseek on original descriptor after second fclose returned %ld, expected 3\n", +- (long int) o); +- return 1; +- } +- +- return 0; +-} +Index: glibc-2.14/libio/fileops.c +=================================================================== +--- glibc-2.14.orig/libio/fileops.c ++++ glibc-2.14/libio/fileops.c +@@ -160,28 +160,20 @@ int + _IO_new_file_close_it (fp) + _IO_FILE *fp; + { ++ int write_status; + if (!_IO_file_is_open (fp)) + return EOF; + +- int write_status; +- if (_IO_in_put_mode (fp)) ++ if ((fp->_flags & _IO_NO_WRITES) == 0 ++ && (fp->_flags & _IO_CURRENTLY_PUTTING) != 0) + write_status = _IO_do_flush (fp); +- else if (fp->_offset != _IO_pos_BAD && fp->_IO_read_base != NULL +- && !_IO_in_backup (fp)) +- { +- off64_t o = _IO_SEEKOFF (fp, 0, _IO_seek_cur, 0); +- if (o == WEOF) +- write_status = EOF; +- else +- write_status = _IO_SYSSEEK (fp, o, SEEK_SET) < 0 ? EOF : 0; +- } + else + write_status = 0; + + INTUSE(_IO_unsave_markers) (fp); + + int close_status = ((fp->_flags2 & _IO_FLAGS2_NOCLOSE) == 0 + ? _IO_SYSCLOSE (fp) : 0); + + /* Free buffer. */ + #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T diff --git a/glibc-static-memcpy.diff b/glibc-static-memcpy.diff deleted file mode 100644 index 8ed7718..0000000 --- a/glibc-static-memcpy.diff +++ /dev/null @@ -1,61 +0,0 @@ -2011-02-06 Mike Frysinger - - [BZ #12653] - * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Only protect - MEMCPY_CHK with USE_AS_BCOPY ifdef check. - * sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise. - * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. - * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Likewise. - -Index: glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S -=================================================================== ---- glibc-2.13.orig/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S -+++ glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S -@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx: - #endif - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - movl 12(%esp), %eax - cmpl %eax, 16(%esp) -Index: glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3.S -=================================================================== ---- glibc-2.13.orig/sysdeps/i386/i686/multiarch/memcpy-ssse3.S -+++ glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3.S -@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx: - #endif - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - movl 12(%esp), %eax - cmpl %eax, 16(%esp) -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S -@@ -49,7 +49,7 @@ - ud2 - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - cmpq %rdx, %rcx - jb HIDDEN_JUMPTARGET (__chk_fail) -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy-ssse3.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3.S -@@ -49,7 +49,7 @@ - ud2 - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - cmpq %rdx, %rcx - jb HIDDEN_JUMPTARGET (__chk_fail) diff --git a/glibc-strict-aliasing.diff b/glibc-strict-aliasing.diff index ef7df01..e8287e9 100644 --- a/glibc-strict-aliasing.diff +++ b/glibc-strict-aliasing.diff @@ -62,9 +62,9 @@ Index: resolv/Makefile +cflags += -Wno-strict-prototypes -Wno-write-strings Index: sunrpc/Makefile =================================================================== ---- sunrpc/Makefile.orig 2011-05-25 20:00:57.381005790 +0200 -+++ sunrpc/Makefile 2011-06-15 14:57:37.657361569 +0200 -@@ -129,6 +129,10 @@ +--- sunrpc/Makefile.orig ++++ sunrpc/Makefile +@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions CPPFLAGS += -D_RPC_THREAD_SAFE_ @@ -72,10 +72,9 @@ Index: sunrpc/Makefile +CFLAGS-clnt_udp.c = -fno-strict-aliasing +CFLAGS-clnt_unix.c = -fno-strict-aliasing + - include ../Rules - - $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ - + $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so + $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so + $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so Index: sysdeps/powerpc/powerpc64/elf/Makefile =================================================================== --- sysdeps/powerpc/powerpc64/elf/Makefile.orig diff --git a/glibc-vfprintf-positional.diff b/glibc-vfprintf-positional.diff deleted file mode 100644 index 9947188..0000000 --- a/glibc-vfprintf-positional.diff +++ /dev/null @@ -1,20 +0,0 @@ -2011-01-27 Petr Baudis - - * stdio-common/vfprintf.c (vfprintf): Pass correct newlen - to extend_alloca(). - -diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c -index fc370e8..ecf5dfa 100644 ---- a/stdio-common/vfprintf.c -+++ b/stdio-common/vfprintf.c -@@ -1682,7 +1682,9 @@ do_positional: - { - /* Extend the array of format specifiers. */ - struct printf_spec *old = specs; -- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); -+ specs = extend_alloca (specs, nspecs_max, -+ 2 * nspecs_max -+ * sizeof (struct printf_spec)); - - /* Copy the old array's elements to the new space. */ - memmove (specs, old, nspecs * sizeof (struct printf_spec)); diff --git a/glibc-zarch-longlong.diff b/glibc-zarch-longlong.diff deleted file mode 100644 index d61a019..0000000 --- a/glibc-zarch-longlong.diff +++ /dev/null @@ -1,41 +0,0 @@ -Index: glibc/stdlib/longlong.h -=================================================================== ---- glibc.orig/stdlib/longlong.h -+++ glibc/stdlib/longlong.h -@@ -303,6 +303,7 @@ UDItype __umulsidi3 (USItype, USItype); - #endif - - #if (defined (__i370__) || defined (__s390__) || defined (__mvs__)) && W_TYPE_SIZE == 32 -+#if !defined (__zarch__) - #define smul_ppmm(xh, xl, m0, m1) \ - do { \ - union {DItype __ll; \ -@@ -324,6 +325,28 @@ UDItype __umulsidi3 (USItype, USItype); - : "0" (__x.__ll), "r" (d)); \ - (q) = __x.__i.__l; (r) = __x.__i.__h; \ - } while (0) -+#else -+#define smul_ppmm(xh, xl, m0, m1) \ -+ do { \ -+ register SItype r0 __asm__ ("0"); \ -+ register SItype r1 __asm__ ("1") = m0; \ -+ \ -+ __asm__ ("mr\t%%r0,%3" \ -+ : "=r" (r0), "=r" (r1) \ -+ : "r" (r1), "r" (m1)); \ -+ (xh) = r1; (xl) = r0; \ -+ } while (0) -+#define sdiv_qrnnd(q, r, n1, n0, d) \ -+ do { \ -+ register SItype r0 __asm__ ("0") = n0; \ -+ register SItype r1 __asm__ ("1") = n1; \ -+ \ -+ __asm__ ("dr\t%%r0,%3" \ -+ : "=r" (r0), "=r" (r1) \ -+ : "r" (r0), "r" (r1), "r" (d)); \ -+ (q) = r0; (r) = r1; \ -+ } while (0) -+#endif /* __zarch__ */ - #endif - - #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32 diff --git a/glibc.changes b/glibc.changes index 0d5ee00..b150122 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,8 +1,45 @@ +------------------------------------------------------------------- +Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de + +- Mark glibc-info, glibc-html and glibc-i18ndata as noarch packages. + +------------------------------------------------------------------- +Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de + +- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] + +------------------------------------------------------------------- +Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de + +- Enhance rpmlintrc to ignore shlib policy violation. +- Remove obsolete patches glibc-fnmatch-multibyte.diff, + glibc-2.3.1.localedef.diff, glibc-2.10-nscd-nostack.diff. + +------------------------------------------------------------------- +Wed Aug 17 14:47:11 UTC 2011 - aj@suse.de + +- Update to current 2.14 branch: Various bugfixes. + Remove upstreamed patches missing-include-build-fix.diff, + glibc-2.14-res_send.patch, glibc-dl-fxstatat64.patch) + +------------------------------------------------------------------- +Wed Aug 17 14:09:50 UTC 2011 - aj@suse.de + +- Revert removal of sunrpc code (patch glibc2.14-revert-sunrpc-removal.patch). + +------------------------------------------------------------------- +Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de + +- Revert seeking on fclose, incomplete implementation of POSIX + behaviour can confuse current users. [bnc #711829] + (patch glibc-revert-fseek-on-fclose.diff) + ------------------------------------------------------------------- Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de - Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. (bnc#684534, bnc#706719) + (patch glibc-fix-double-loopback.diff) ------------------------------------------------------------------- Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de @@ -22,6 +59,22 @@ Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de previous versions if the password contains 8bit chracters! * libcrypt now exports crypt_gensalt +------------------------------------------------------------------- +Fri Jul 15 07:54:46 UTC 2011 - aj@suse.de + +- Update to glibc 2.14: + * The RPC implementation in libc is obsoleted. Old programs keep working + but new programs cannot be linked with the routines in libc anymore. + Programs in need of RPC functionality must be linked against TI-RPC. + The TI-RPC implementation is IPv6 enabled and there are other benefits. + * Various bugfixes, new locales, new linux kernel interfaces. + * New program sotruss to traces calls through PLTs + * Removed the following obsoleted patches: glibc-2.6-configure.diff, + glibc-disable-backward-memcpy.diff, glibc-static-memcpy.diff, + glibc-zarch-longlong.diff, glibc-bso-12454.diff, + glibc-vfprintf-positional.diff +- Build without -fno-strict-aliasing. + ------------------------------------------------------------------- Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index c3289a4..6ddd33d 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -12,3 +12,5 @@ addFilter(".*shared-lib-without-dependency-information /lib.*/ld-2.*.so") addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post") # Do not require permissions, this will lead to a cycle (bnc#700925): addFilter("glibc\..*: permissions-missing-requires") +# We will not rename glibc to follow the shlib policy +addFilter("shlib-policy-missing-suffix") diff --git a/glibc.spec b/glibc.spec index b3905f9..783c6d0 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,11 +77,13 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -Version: 2.13 -Release: 29 +AutoReqProv: on +Version: 2.14 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html -Source: glibc-%{version}-996cf2ef0727.tar.bz2 -Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 +Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: usr.sbin.nscd @@ -110,10 +112,8 @@ NoSource: 0 # # PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de Patch0: glibc-testsuite.patch -# PATCH-FIX-OPENSUSE handle glibc binaries +# PATCH-FIX-OPENSUSE handle glibc binaries Patch1: glibc-2.3.90-noversion.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch2: glibc-fnmatch-multibyte.diff # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change Patch3: glibc-resolv-reload.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -125,8 +125,6 @@ Patch7: glibc-version.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch8: glibc-2.4.90-revert-only-euro.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch11: glibc-2.3.1.localedef.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch12: glibc-2.3.2.no_archive.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch13: libm-x86-64.diff.bz2 @@ -148,8 +146,6 @@ Patch23: glibc-2.3.3-nscd-db-path.diff Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch25: glibc-2.3.90-langpackdir.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch27: glibc-2.6-configure.diff # PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de Patch28: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Do not generate hardlink for getconf @@ -160,16 +156,12 @@ Patch30: getaddrinfo-ipv6-sanity.diff Patch33: glibc-compiled-binaries.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch36: glibc-no-unwind-tables.diff -# PATCH-FIX-OPENSUSE bnc#387202 -Patch37: glibc-2.10-nscd-nostack.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de Patch38: glibc-cpusetsize.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch40: libm-x86-64-exceptions.diff # PATCH-FIX-OPENSUSE - Allow compilation with -altivec aj@suse.de Patch41: glibc-uio-cell.diff -# PATCH-FIX-UPSTREAM -- add missing includes aj@suse.de -Patch43: missing-include-build-fix.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch45: glibc-gai-private4.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -182,22 +174,10 @@ Patch48: glibc-malloc-arena-max.diff Patch49: glibc-fini-unwind.diff # PATCH-FIX-UPSTREAM install gconv-modules aj@suse.de Patch50: glibc-gconvcache-s390.diff -# PATCH-FIX-UPSTREAM - Fix alloca argument bso#12445 aj@suse.de -Patch51: glibc-vfprintf-positional.diff # PATCH-FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff -# PATCH-FIX-UPSTREAM Fix longlong.h for zArch -Patch53: glibc-zarch-longlong.diff -# PATCH-FEATURE-OPENSUSE disable backward memcpy aj@suse.de -Patch54: glibc-disable-backward-memcpy.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch55: glibc-bso-12454.diff -# PATCH-FIX-UPSTREAM fix static memcpy -Patch56: glibc-static-memcpy.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff -# PATCH-FIX-UPSTREAM fix preloading of shared libs aj@suse.de -Patch59: glibc-2.13-dl-load.patch # PATCH-FIX-UPSTREAM fix x86 aj@suse.de Patch60: glibc-x86-bits-sigcontext.patch # PATCH-FEATURE-UPSTREAM Speedup getsysstats call aj@suse.de @@ -210,7 +190,12 @@ Patch63: glibc-2.13-localedef.patch Patch64: glibc-fix-rwlock-stack-imbalance.patch # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch65: glibc-fix-double-loopback.diff -# +# PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de +Patch66: glibc2.14-revert-sunrpc-removal.patch +# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de +Patch67: glibc-revert-fseek-on-fclose.diff +# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140 matz@suse.de +Patch68: glibc-fix-lookup-crash.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.1-sha.diff @@ -226,6 +211,7 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} +BuildArch: noarch %description info This package contains the documentation for the GNU C library stored as @@ -236,6 +222,7 @@ complete and is partially out of date. License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML +BuildArch: noarch %description html This package contains the HTML documentation for the GNU C library. Due @@ -246,6 +233,7 @@ partially out of date. License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries +BuildArch: noarch %description i18ndata This package contains the data needed to build the locale data files to @@ -387,15 +375,11 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ %patch0 # libNoVersion part is only active on ix86 %patch1 -# Disabled -# %patch2 -p1 %patch3 %patch4 %patch5 -p1 %patch7 %patch8 -# Disabled -#%patch11 %patch12 %patch13 -E # We have s_sincos.c in patch13, remove duplicate @@ -404,7 +388,8 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch16 %patch18 %patch20 -%patch21 +# XXX Did not patch for 2.14: +#%patch21 # avoid changing nscd_stat.c mtime to avoid code generation # differences on each rebuild touch -r nscd/nscd_stat.c nscd/s-stamp @@ -414,18 +399,14 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch25 -%patch27 %patch28 %patch29 %patch30 %patch33 %patch36 -# Disable for now -#%patch37 %patch38 %patch40 %patch41 -p1 -%patch43 -p1 %patch45 %patch46 -p1 %patch47 -p1 @@ -434,20 +415,17 @@ rm nscd/s-stamp %endif %patch49 %patch50 -%patch51 -p1 %patch52 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 %patch58 -%patch59 -p1 %patch60 -p1 %patch61 -p1 %patch62 -p1 %patch63 -p1 %patch64 -p1 %patch65 -p1 +%patch66 -p1 +%patch67 -p1 +%patch68 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -917,7 +895,6 @@ exit 0 %doc %{_mandir}/man1/getent.1.gz %doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* -%doc %{_mandir}/man8/rpcinfo.8.gz /%{_lib}/ld-%{version}.so %ifarch ppc s390 mips hppa /%{_lib}/ld.so.1 @@ -1025,11 +1002,11 @@ exit 0 %dir %attr(0755,root,root) %{_libdir}/getconf %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade -%{_sbindir}/rpcinfo %{_sbindir}/iconvconfig %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1138,11 +1115,14 @@ exit 0 %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so +%dir /%{_libdir}/audit +/%{_libdir}/audit/sotruss-lib.so # These need gd-devel for building # %%{_bindir}/memusage # %%{_bindir}/memusagestat %{_bindir}/mtrace %{_bindir}/pcprofiledump +%{_bindir}/sotruss %{_bindir}/xtrace %changelog diff --git a/glibc2.14-revert-sunrpc-removal.patch b/glibc2.14-revert-sunrpc-removal.patch new file mode 100644 index 0000000..fe14b5f --- /dev/null +++ b/glibc2.14-revert-sunrpc-removal.patch @@ -0,0 +1,63 @@ +Index: glibc-2.14/nis/Makefile +=================================================================== +--- glibc-2.14.orig/nis/Makefile ++++ glibc-2.14/nis/Makefile +@@ -23,9 +23,9 @@ subdir := nis + + aux := nis_hash + ++headers := $(wildcard rpcsvc/*.[hx]) + distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ +- nisplus-parser.h nis_xdr.h nss \ +- $(wildcard rpcsvc/*.[hx]) ++ nisplus-parser.h nis_xdr.h nss + + # These are the databases available for the nis (and perhaps later nisplus) + # service. This must be a superset of the services in nss. +Index: glibc-2.14/NEWS +=================================================================== +--- glibc-2.14.orig/NEWS ++++ glibc-2.14/NEWS +@@ -20,16 +20,6 @@ Version 2.14 + 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792, + 12795, 12811, 12813, 12814, 12841 + +-* The RPC implementation in libc is obsoleted. Old programs keep working +- but new programs cannot be linked with the routines in libc anymore. +- Programs in need of RPC functionality must be linked against TI-RPC. +- The TI-RPC implementation is IPv6 enabled and there are other benefits. +- +- Visible changes of this change include (obviously) the inability to link +- programs using RPC functions without referencing the TI-RPC library and the +- removal of the RPC headers from the glibc headers. +- Implemented by Ulrich Drepper. +- + * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at, + syncfs, setns, sendmmsg + +Index: glibc-2.14/include/libc-symbols.h +=================================================================== +--- glibc-2.14.orig/include/libc-symbols.h ++++ glibc-2.14/include/libc-symbols.h +@@ -635,7 +635,7 @@ for linking") + # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) + # define libc_hidden_def(name) hidden_def (name) + # define libc_hidden_weak(name) hidden_weak (name) +-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) ++# define libc_hidden_nolink(name, version) hidden_def (name) + # define libc_hidden_ver(local, name) hidden_ver (local, name) + # define libc_hidden_data_def(name) hidden_data_def (name) + # define libc_hidden_data_weak(name) hidden_data_weak (name) +Index: glibc-2.14/sunrpc/Makefile +=================================================================== +--- glibc-2.14.orig/sunrpc/Makefile ++++ glibc-2.14/sunrpc/Makefile +@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth + des_crypt.h) + headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ + $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h +-headers = rpc/netdb.h ++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc) + install-others = $(inst_sysconfdir)/rpc + generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ + $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen diff --git a/manpages.tar.bz2 b/manpages.tar.bz2 index ffb101e..e133d04 100644 --- a/manpages.tar.bz2 +++ b/manpages.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e84aeb3808f86c7cd169ca795b31d1fdef21864c74b827ca750f3d478f0a95a5 -size 12562 +oid sha256:33df2d6951abd1d111570be780e3e6b265183d51b2f0a34699c6e39380b8ea4c +size 11611 diff --git a/missing-include-build-fix.diff b/missing-include-build-fix.diff deleted file mode 100644 index d1fc51e..0000000 --- a/missing-include-build-fix.diff +++ /dev/null @@ -1,31 +0,0 @@ -2011-06-14 Andreas Jaeger - - * pthread_rwlock_init.c: Include for - memset declaration. - -2011-06-14 Andreas Jaeger - - * sysdeps/unix/sysv/linux/check_native.c: Include for - memset declaration. - ---- a/sysdeps/unix/sysv/linux/check_native.c -+++ b/sysdeps/unix/sysv/linux/check_native.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #include - #include - #include - ---- a/nptl/pthread_rwlock_init.c -+++ b/nptl/pthread_rwlock_init.c -@@ -18,6 +18,7 @@ - 02111-1307 USA. */ - - #include "pthreadP.h" -+#include - #include - - From 606ceaf2dc5bd397c06c8fa23658370cb737582bc8d72826cc9ba4376ba56aa3 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 18 Aug 2011 14:00:32 +0000 Subject: [PATCH 070/204] Autobuild autoformatter for 79227 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=74 --- glibc.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index 783c6d0..e27bdfd 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1006,7 +1006,6 @@ exit 0 %ifarch %ix86 - %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ From 8f2de66f4971afa154165a530270926474a3cbf2208557c2a651aaafd5dfcaa4 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 22 Aug 2011 13:14:16 +0000 Subject: [PATCH 071/204] Accepting request 79428 from Base:System Fix fopen(non-existing-file, re) errno bnc#713146 (forwarded request 79427 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/79428 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=75 --- fopen-close-exec.patch | 14 ++++++++++++++ glibc.changes | 5 +++++ glibc.spec | 3 +++ 3 files changed, 22 insertions(+) create mode 100644 fopen-close-exec.patch diff --git a/fopen-close-exec.patch b/fopen-close-exec.patch new file mode 100644 index 0000000..160221d --- /dev/null +++ b/fopen-close-exec.patch @@ -0,0 +1,14 @@ +Index: glibc-2.14/libio/fileops.c +=================================================================== +--- glibc-2.14.orig/libio/fileops.c ++++ glibc-2.14/libio/fileops.c +@@ -338,7 +338,8 @@ _IO_new_file_fopen (fp, filename, mode, + is32not64); + + #ifndef __ASSUME_O_CLOEXEC +- if ((fp->_flags2 & _IO_FLAGS2_CLOEXEC) != 0 && __have_o_cloexec <= 0) ++ if ((result != NULL) ++ && (fp->_flags2 & _IO_FLAGS2_CLOEXEC) != 0 && __have_o_cloexec <= 0) + { + int fd = _IO_fileno (fp); + if (__have_o_cloexec == 0) diff --git a/glibc.changes b/glibc.changes index b150122..2edd020 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Aug 19 13:26:11 UTC 2011 - aj@suse.de + +- Fix fopen("non-existing-file", "re") errno [bnc#713146]. + ------------------------------------------------------------------- Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index e27bdfd..b87da60 100644 --- a/glibc.spec +++ b/glibc.spec @@ -196,6 +196,8 @@ Patch66: glibc2.14-revert-sunrpc-removal.patch Patch67: glibc-revert-fseek-on-fclose.diff # PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140 matz@suse.de Patch68: glibc-fix-lookup-crash.patch +# PATCH-FIX-UPSTREAM Fix fopen("non-existing-file", "re") errno bnc#713146 aj@suse.de +Patch69: fopen-close-exec.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.1-sha.diff @@ -426,6 +428,7 @@ rm nscd/s-stamp %patch66 -p1 %patch67 -p1 %patch68 -p1 +%patch69 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! From 74de756e329a79aa7dda482884826ddfa46fde2b678579a935422037ef673a8c Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 22 Aug 2011 13:14:40 +0000 Subject: [PATCH 072/204] Autobuild autoformatter for 79428 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=76 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index b87da60..a670a60 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-32bit %endif AutoReqProv: on Version: 2.14 -Release: 1 +Release: 3 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 From ec83c7a430cf2a8c771223175500df56049721896464034aaf475ad9178dc76c Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 25 Aug 2011 12:49:20 +0000 Subject: [PATCH 073/204] Accepting request 79752 from Base:System Update user.sbin.nscd profile [bnc#647718] (forwarded request 79751 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/79752 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=77 --- glibc.changes | 5 +++++ usr.sbin.nscd | 20 +++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/glibc.changes b/glibc.changes index 2edd020..2836397 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Aug 22 13:12:18 UTC 2011 - aj@suse.de + +- Update AppArmor profile of nscd [bnc#647718] + ------------------------------------------------------------------- Fri Aug 19 13:26:11 UTC 2011 - aj@suse.de diff --git a/usr.sbin.nscd b/usr.sbin.nscd index 3733977..4241743 100644 --- a/usr.sbin.nscd +++ b/usr.sbin.nscd @@ -1,8 +1,7 @@ -# Last Modified: Wed Aug 15 10:55:46 2007 -# $Id: usr.sbin.nscd 1313 2008-11-05 12:03:29Z jrjohansen $ # ------------------------------------------------------------------ # # Copyright (C) 2002-2005 Novell/SUSE +# Copyright (C) 2009-2010 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public @@ -27,17 +26,20 @@ /tmp/.winbindd/pipe rw, /usr/sbin/nscd rmix, /var/lib/samba/winbindd_privileged/pipe rw, - /var/run/.nscd_socket wl, - /var/run/avahi-daemon/socket w, - /var/run/nscd/ r, - /var/run/nscd/db* wl, - /var/run/nscd/socket wl, - /var/run/nscd/{passwd,group,services,hosts} rw, - /var/run/{nscd/,}nscd.pid rwl, + /{,var/}run/.nscd_socket wl, + /{,var/}run/avahi-daemon/socket w, + /{,var/}run/nscd/ rw, + /{,var/}run/nscd/db* wl, + /{,var/}run/nscd/socket wl, + /var/{cache,run}/nscd/{passwd,group,services,hosts} rw, + /{,var/}run/{nscd/,}nscd.pid rwl, /var/log/nscd.log rw, @{PROC}/[0-9]*/fd/ r, @{PROC}/[0-9]*/fd/* r, @{PROC}/[0-9]*/maps r, @{PROC}/[0-9]*/mounts r, @{PROC}/filesystems r, + + # Site-specific additions and overrides. See local/README for details. + #include } From b42ae6bb21665614c32a6d518676d59f22d17ac4f01056cdfd1a27c304996282 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 25 Aug 2011 12:49:33 +0000 Subject: [PATCH 074/204] Autobuild autoformatter for 79752 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=78 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index a670a60..8ad119f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-32bit %endif AutoReqProv: on Version: 2.14 -Release: 3 +Release: 5 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 From 3d10feaa6e5e9aba9863644a18e4556856c7914ca36ddc71e0a7430bca72ddf3 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 29 Aug 2011 10:34:37 +0000 Subject: [PATCH 075/204] Accepting request 80006 from Base:System - use symbol version OW_CRYPT_1.0 for the Owl extensions (crypt_r[an], crypt_gensalt.*) - refactor sha2 gensalt patch - document sha2 hashes in man page - fix signature of sha2 functions (forwarded request 79998 from lnussel) OBS-URL: https://build.opensuse.org/request/show/80006 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=79 --- crypt_blowfish-1.1-sha.diff | 213 ----------------------------- crypt_blowfish-1.2-sha.diff | 173 +++++++++++++++++++++++ crypt_blowfish-1.2-versioning.diff | 53 +++++++ glibc-2.14-crypt-versioning.diff | 24 ++++ glibc.changes | 13 ++ glibc.spec | 8 +- 6 files changed, 270 insertions(+), 214 deletions(-) delete mode 100644 crypt_blowfish-1.1-sha.diff create mode 100644 crypt_blowfish-1.2-sha.diff create mode 100644 crypt_blowfish-1.2-versioning.diff create mode 100644 glibc-2.14-crypt-versioning.diff diff --git a/crypt_blowfish-1.1-sha.diff b/crypt_blowfish-1.1-sha.diff deleted file mode 100644 index f24d94c..0000000 --- a/crypt_blowfish-1.1-sha.diff +++ /dev/null @@ -1,213 +0,0 @@ -From 22a0cc20633a4ddd61233410563c9fabe6b515ed Mon Sep 17 00:00:00 2001 -From: Ludwig Nussel -Date: Tue, 5 Jul 2011 17:25:12 +0200 -Subject: [PATCH crypt_blowfish 1/2] support for sha256 and sha512 - ---- - crypt_gensalt.c | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - wrapper.c | 28 +++++++++++++ - 2 files changed, 147 insertions(+), 0 deletions(-) - -diff --git a/crypt_gensalt.c b/crypt_gensalt.c -index 43b0f6c..4600e30 100644 ---- a/crypt_gensalt.c -+++ b/crypt_gensalt.c -@@ -7,6 +7,11 @@ - * entirely in crypt_blowfish.c. - */ - -+/* asprintf&free */ -+#define _GNU_SOURCE -+#include -+#include -+ - #include - - #include -@@ -105,3 +110,117 @@ char *_crypt_gensalt_md5_rn(unsigned long count, - - return output; - } -+ -+char *_crypt_gensalt_sha256_rn (unsigned long count, -+ const char *input, int size, char *output, int output_size) -+{ -+ unsigned long value; -+ char *buf; -+ char buf2[12]; -+ -+ if (count > 0) { -+ if (asprintf (&buf, "$5$rounds=%ld$", count) < 0) { -+ if (output_size > 0) -+ output[0] = '\0'; -+ errno = ENOMEM; -+ return NULL; -+ } -+ } else { -+ if (asprintf (&buf, "$5$") < 0) { -+ if (output_size > 0) -+ output[0] = '\0'; -+ errno = ENOMEM; -+ return NULL; -+ } -+ } -+ -+ if (size < 3 || output_size < (int)strlen (buf) + 4 + 1) { -+ free (buf); -+ if (output_size > 0) -+ output[0] = '\0'; -+ errno = ERANGE; -+ return NULL; -+ } -+ -+ value = (unsigned long)(unsigned char)input[0] | -+ ((unsigned long)(unsigned char)input[1] << 8) | -+ ((unsigned long)(unsigned char)input[2] << 16); -+ buf2[0] = _crypt_itoa64[value & 0x3f]; -+ buf2[1] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ buf2[2] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ buf2[3] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ buf2[4] = '\0'; -+ -+ if (size >= 6 && output_size >= (int)strlen (buf) + 4 + 4 + 1) { -+ value = (unsigned long)(unsigned char)input[3] | -+ ((unsigned long)(unsigned char)input[4] << 8) | -+ ((unsigned long)(unsigned char)input[5] << 16); -+ buf2[4] = _crypt_itoa64[value & 0x3f]; -+ buf2[5] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ buf2[6] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ buf2[7] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ buf2[8] = '\0'; -+ } -+ -+ snprintf (output, output_size, "%s%s", buf, buf2); -+ free (buf); -+ -+ return output; -+} -+ -+char *_crypt_gensalt_sha512_rn (unsigned long count, -+ const char *input, int size, char *output, int output_size) -+{ -+ unsigned long value; -+ char *buf; -+ char buf2[12]; -+ -+ if (count > 0) { -+ if (asprintf (&buf, "$6$rounds=%ld$", count) < 0) { -+ if (output_size > 0) -+ output[0] = '\0'; -+ errno = ENOMEM; -+ return NULL; -+ } -+ } else { -+ if (asprintf (&buf, "$6$") < 0) { -+ if (output_size > 0) -+ output[0] = '\0'; -+ errno = ENOMEM; -+ return NULL; -+ } -+ } -+ -+ if (size < 3 || output_size < (int)strlen (buf) + 4 + 1) { -+ free (buf); -+ if (output_size > 0) -+ output[0] = '\0'; -+ __set_errno(ERANGE); -+ return NULL; -+ } -+ -+ value = (unsigned long)(unsigned char)input[0] | -+ ((unsigned long)(unsigned char)input[1] << 8) | -+ ((unsigned long)(unsigned char)input[2] << 16); -+ buf2[0] = _crypt_itoa64[value & 0x3f]; -+ buf2[1] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ buf2[2] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ buf2[3] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ buf2[4] = '\0'; -+ -+ if (size >= 6 && output_size >= (int)strlen (buf) + 4 + 4 + 1) { -+ value = (unsigned long)(unsigned char)input[3] | -+ ((unsigned long)(unsigned char)input[4] << 8) | -+ ((unsigned long)(unsigned char)input[5] << 16); -+ buf2[4] = _crypt_itoa64[value & 0x3f]; -+ buf2[5] = _crypt_itoa64[(value >> 6) & 0x3f]; -+ buf2[6] = _crypt_itoa64[(value >> 12) & 0x3f]; -+ buf2[7] = _crypt_itoa64[(value >> 18) & 0x3f]; -+ buf2[8] = '\0'; -+ } -+ -+ snprintf (output, output_size, "%s%s", buf, buf2); -+ free (buf); -+ -+ return output; -+} -diff --git a/wrapper.c b/wrapper.c -index af441bc..07772bc 100644 ---- a/wrapper.c -+++ b/wrapper.c -@@ -33,12 +33,20 @@ - - #include "crypt_blowfish.h" - #include "crypt_gensalt.h" -+extern char *_crypt_gensalt_sha256_rn(unsigned long count, -+ const char *input, int size, char *output, int output_size); -+extern char *_crypt_gensalt_sha512_rn(unsigned long count, -+ const char *input, int size, char *output, int output_size); - - #if defined(__GLIBC__) && defined(_LIBC) - /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ - #include "crypt.h" - extern char *__md5_crypt_r(const char *key, const char *salt, - char *buffer, int buflen); -+extern char *__sha256_crypt_r (const char *key, const char *salt, -+ char *buffer, int buflen); -+extern char *__sha512_crypt_r (const char *key, const char *salt, -+ char *buffer, int buflen); - /* crypt-entry.c needs to be patched to define __des_crypt_r rather than - * __crypt_r, and not define crypt_r and crypt at all */ - extern char *__des_crypt_r(const char *key, const char *salt, -@@ -101,6 +109,10 @@ static char *_crypt_retval_magic(char *retval, const char *setting, - char *__crypt_rn(__const char *key, __const char *setting, - void *data, int size) - { -+ if (setting[0] == '$' && setting[1] == '6') -+ return __sha512_crypt_r(key, setting, (char *)data, size); -+ if (setting[0] == '$' && setting[1] == '5') -+ return __sha256_crypt_r(key, setting, (char *)data, size); - if (setting[0] == '$' && setting[1] == '2') - return _crypt_blowfish_rn(key, setting, (char *)data, size); - if (setting[0] == '$' && setting[1] == '1') -@@ -118,6 +130,16 @@ char *__crypt_rn(__const char *key, __const char *setting, - char *__crypt_ra(__const char *key, __const char *setting, - void **data, int *size) - { -+ if (setting[0] == '$' && setting[1] == '6') { -+ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) -+ return NULL; -+ return __sha512_crypt_r(key, setting, (char *)*data, *size); -+ } -+ if (setting[0] == '$' && setting[1] == '5') { -+ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) -+ return NULL; -+ return __sha256_crypt_r(key, setting, (char *)*data, *size); -+ } - if (setting[0] == '$' && setting[1] == '2') { - if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) - return NULL; -@@ -199,6 +221,12 @@ char *__crypt_gensalt_rn(const char *prefix, unsigned long count, - return NULL; - } - -+ if (!strncmp(prefix, "$6$", 3)) -+ use = _crypt_gensalt_sha512_rn; -+ else -+ if (!strncmp(prefix, "$5$", 3)) -+ use = _crypt_gensalt_sha256_rn; -+ else - if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) - use = _crypt_gensalt_blowfish_rn; - else --- -1.7.3.4 - diff --git a/crypt_blowfish-1.2-sha.diff b/crypt_blowfish-1.2-sha.diff new file mode 100644 index 0000000..546acec --- /dev/null +++ b/crypt_blowfish-1.2-sha.diff @@ -0,0 +1,173 @@ +From 1c581a8364ab18a6938f3153d7bea793d06a4652 Mon Sep 17 00:00:00 2001 +From: Ludwig Nussel +Date: Thu, 25 Aug 2011 14:00:38 +0200 +Subject: [PATCH crypt_blowfish] support for sha256 and sha512 + +--- + crypt.3 | 14 +++++++++++++ + crypt_gensalt.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + wrapper.c | 23 +++++++++++++++++++++ + 3 files changed, 95 insertions(+), 0 deletions(-) + +diff --git a/crypt.3 b/crypt.3 +index e2f25bd..40a3538 100644 +--- a/crypt.3 ++++ b/crypt.3 +@@ -399,6 +399,20 @@ too low for the currently available hardware. + .hash "$1$" "\e$1\e$[^$]{1,8}\e$[./0-9A-Za-z]{22}" unlimited 8 "" 128 "6 to 48" 1000 + .PP + .ti -2 ++.B SHA256 based ++.br ++This is Ulrich Drepper's SHA256-based password hashing method originally ++developed for Linux. ++.hash "$5$" "\e$5\e$(rounds=[0-9]{1,9}\e$)?([./0-9A-Za-z]{1,16})?\e$[./0-9A-Za-z]{43}" unlimited 8 "" 256 "0 to 96" "1000 to 999999999 (default 5000)" ++.PP ++.ti -2 ++.B SHA512 based ++.br ++This is Ulrich Drepper's SHA512-based password hashing method originally ++developed for Linux. ++.hash "$6$" "\e$6\e$(rounds=[0-9]{1,9}\e$)?([./0-9A-Za-z]{1,16})?\e$[./0-9A-Za-z]{86}" unlimited 8 "" 512 "0 to 96" "1000 to 999999999 (default 5000)" ++.PP ++.ti -2 + .BR "OpenBSD-style Blowfish-based" " (" bcrypt ) + .br + .B bcrypt +diff --git a/crypt_gensalt.c b/crypt_gensalt.c +index 73c15a1..5cf9812 100644 +--- a/crypt_gensalt.c ++++ b/crypt_gensalt.c +@@ -19,6 +19,7 @@ + */ + + #include ++#include + + #include + #ifndef __set_errno +@@ -122,3 +123,60 @@ char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, + + return output; + } ++ ++#define SHA2_SALT_LEN_MAX 16 ++#define SHA2_ROUNDS_MIN 1000 ++#define SHA2_ROUNDS_MAX 999999999 ++char *_crypt_gensalt_sha2_rn (const char *prefix, unsigned long count, ++ const char *input, int size, char *output, int output_size) ++ ++{ ++ char *o = output; ++ const char *i = input; ++ unsigned needed = 3 + MIN(size/3*4, SHA2_SALT_LEN_MAX) + 1; ++ ++ if (size < 3 || output_size < needed) ++ goto error; ++ ++ size = MIN(size, SHA2_SALT_LEN_MAX/4*3); ++ ++ o[0] = prefix[0]; ++ o[1] = prefix[1]; ++ o[2] = prefix[2]; ++ o += 3; ++ ++ if (count) { ++ count = MAX(SHA2_ROUNDS_MIN, MIN(count, SHA2_ROUNDS_MAX)); ++ int n = snprintf (o, output_size-3, "rounds=%ld$", count); ++ if (n < 0 || n >= output_size-3) ++ goto error; ++ needed += n; ++ o += n; ++ } ++ ++ if (output_size < needed) ++ goto error; ++ ++ while (size >= 3) { ++ unsigned long value = ++ (unsigned long)(unsigned char)i[0] | ++ ((unsigned long)(unsigned char)i[1] << 8) | ++ ((unsigned long)(unsigned char)i[2] << 16); ++ o[0] = _crypt_itoa64[value & 0x3f]; ++ o[1] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ o[2] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ o[3] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ size -= 3; ++ i += 3; ++ o += 3; ++ } ++ o[0] = '\0'; ++ ++ return output; ++ ++error: ++ if (output_size > 0) ++ output[0] = '\0'; ++ errno = ENOMEM; ++ return NULL; ++} +diff --git a/wrapper.c b/wrapper.c +index 344053b..070d91d 100644 +--- a/wrapper.c ++++ b/wrapper.c +@@ -44,12 +44,18 @@ + + #include "crypt_blowfish.h" + #include "crypt_gensalt.h" ++extern char *_crypt_gensalt_sha2_rn(const char *prefix, unsigned long count, ++ const char *input, int size, char *output, int output_size); + + #if defined(__GLIBC__) && defined(_LIBC) + /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ + #include "crypt.h" + extern char *__md5_crypt_r(const char *key, const char *salt, + char *buffer, int buflen); ++extern char *__sha256_crypt_r (const char *key, const char *salt, ++ char *buffer, int buflen); ++extern char *__sha512_crypt_r (const char *key, const char *salt, ++ char *buffer, int buflen); + /* crypt-entry.c needs to be patched to define __des_crypt_r rather than + * __crypt_r, and not define crypt_r and crypt at all */ + extern char *__des_crypt_r(const char *key, const char *salt, +@@ -112,6 +118,10 @@ static char *_crypt_retval_magic(char *retval, const char *setting, + char *__crypt_rn(__const char *key, __const char *setting, + void *data, int size) + { ++ if (setting[0] == '$' && setting[1] == '6') ++ return __sha512_crypt_r(key, setting, (char *)data, size); ++ if (setting[0] == '$' && setting[1] == '5') ++ return __sha256_crypt_r(key, setting, (char *)data, size); + if (setting[0] == '$' && setting[1] == '2') + return _crypt_blowfish_rn(key, setting, (char *)data, size); + if (setting[0] == '$' && setting[1] == '1') +@@ -129,6 +139,16 @@ char *__crypt_rn(__const char *key, __const char *setting, + char *__crypt_ra(__const char *key, __const char *setting, + void **data, int *size) + { ++ if (setting[0] == '$' && setting[1] == '6') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return __sha512_crypt_r(key, setting, (char *)*data, *size); ++ } ++ if (setting[0] == '$' && setting[1] == '5') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return __sha256_crypt_r(key, setting, (char *)*data, *size); ++ } + if (setting[0] == '$' && setting[1] == '2') { + if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) + return NULL; +@@ -210,6 +230,9 @@ char *__crypt_gensalt_rn(const char *prefix, unsigned long count, + return NULL; + } + ++ if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) ++ use = _crypt_gensalt_sha2_rn; ++ else + if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) + use = _crypt_gensalt_blowfish_rn; + else +-- +1.7.3.4 + diff --git a/crypt_blowfish-1.2-versioning.diff b/crypt_blowfish-1.2-versioning.diff new file mode 100644 index 0000000..45fdaaa --- /dev/null +++ b/crypt_blowfish-1.2-versioning.diff @@ -0,0 +1,53 @@ +Index: crypt_blowfish-1.2/wrapper.c +=================================================================== +--- crypt_blowfish-1.2/wrapper.c ++++ crypt_blowfish-1.2/wrapper.c +@@ -38,6 +38,7 @@ + #define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) + + #if defined(__GLIBC__) && defined(_LIBC) ++#include + #define __SKIP_GNU + #endif + #include "ow-crypt.h" +@@ -291,14 +292,34 @@ char *__crypt_gensalt(const char *prefix + } + + #if defined(__GLIBC__) && defined(_LIBC) +-weak_alias(__crypt_rn, crypt_rn) +-weak_alias(__crypt_ra, crypt_ra) + weak_alias(__crypt_r, crypt_r) + weak_alias(__crypt, crypt) +-weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) +-weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) +-weak_alias(__crypt_gensalt, crypt_gensalt) +-weak_alias(crypt, fcrypt) ++weak_alias(__crypt, fcrypt) ++#if SHARED ++#if 1 // Owl has crypt_gensalt as GLIBC_2_0 so keep for compatibility ++#define ow_compat_symbol(name) \ ++ compat_symbol(libcrypt, _compat_##name, name, GLIBC_2_0); \ ++ weak_alias(__##name, _compat_##name) ++#else ++#define ow_compat_symbol(name) ++#endif ++ ++#define ow_versioned(name) \ ++ ow_compat_symbol(name) \ ++ versioned_symbol(libcrypt, _owl_##name, name, OW_CRYPT_1_0); ++#else ++#define ow_versioned(name) ++#endif // SHARED ++ ++#define ow_symbol(name) \ ++ ow_versioned(name) \ ++ weak_alias(__##name, _owl_##name) \ ++ ++ow_symbol(crypt_rn) ++ow_symbol(crypt_ra) ++ow_symbol(crypt_gensalt) ++ow_symbol(crypt_gensalt_rn) ++ow_symbol(crypt_gensalt_ra) + #endif + + #ifdef TEST diff --git a/glibc-2.14-crypt-versioning.diff b/glibc-2.14-crypt-versioning.diff new file mode 100644 index 0000000..dfbb258 --- /dev/null +++ b/glibc-2.14-crypt-versioning.diff @@ -0,0 +1,24 @@ +Index: glibc-2.14/Versions.def +=================================================================== +--- glibc-2.14.orig/Versions.def ++++ glibc-2.14/Versions.def +@@ -41,6 +41,7 @@ libc { + } + libcrypt { + GLIBC_2.0 ++ OW_CRYPT_1.0 + } + libdl { + GLIBC_2.0 +Index: glibc-2.14/crypt/Versions +=================================================================== +--- glibc-2.14.orig/crypt/Versions ++++ glibc-2.14/crypt/Versions +@@ -3,4 +3,7 @@ libcrypt { + crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; + crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } ++ OW_CRYPT_1.0 { ++ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; ++ } + } diff --git a/glibc.changes b/glibc.changes index 2836397..160e877 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Aug 25 09:44:37 UTC 2011 - lnussel@suse.de + +- use symbol version OW_CRYPT_1.0 for the Owl extensions + (crypt_r[an], crypt_gensalt.*) +- refactor sha2 gensalt patch +- document sha2 hashes in man page + ------------------------------------------------------------------- Mon Aug 22 13:12:18 UTC 2011 - aj@suse.de @@ -44,6 +52,11 @@ Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de behaviour can confuse current users. [bnc #711829] (patch glibc-revert-fseek-on-fclose.diff) +------------------------------------------------------------------- +Fri Jul 22 13:47:23 UTC 2011 - lnussel@suse.de + +- fix signature of sha2 functions + ------------------------------------------------------------------- Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de diff --git a/glibc.spec b/glibc.spec index 8ad119f..b85ef5d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -120,6 +120,8 @@ Patch3: glibc-resolv-reload.diff Patch4: glibc-2.3.locales.diff.bz2 # PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 Patch5: glibc-2.14-crypt.diff +# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de +Patch6: glibc-2.14-crypt-versioning.diff # PATCH-FIX-OPENSUSE add some extra information to version output - kukuk@suse.de Patch7: glibc-version.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -199,7 +201,9 @@ Patch68: glibc-fix-lookup-crash.patch # PATCH-FIX-UPSTREAM Fix fopen("non-existing-file", "re") errno bnc#713146 aj@suse.de Patch69: fopen-close-exec.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de -Patch80: crypt_blowfish-1.1-sha.diff +Patch80: crypt_blowfish-1.2-sha.diff +# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de +Patch81: crypt_blowfish-1.2-versioning.diff %description The GNU C Library provides the most important standard libraries used @@ -370,6 +374,7 @@ versions of your software. tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} %patch80 -p1 +%patch81 -p1 popd mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ @@ -380,6 +385,7 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ %patch3 %patch4 %patch5 -p1 +%patch6 -p1 %patch7 %patch8 %patch12 From ba3b07fb70a9d928d18c6d86bec91eaff2c8caf2f95dccb6913cfac6fb134ab4 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 29 Aug 2011 10:34:53 +0000 Subject: [PATCH 076/204] Autobuild autoformatter for 80006 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=80 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index b85ef5d..62b4457 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-32bit %endif AutoReqProv: on Version: 2.14 -Release: 5 +Release: 7 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 From 5af889d94a1f5333bbc3da462f06a3b4ee693a0741c86c5aad6983985cf73757 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 2 Sep 2011 11:23:41 +0000 Subject: [PATCH 077/204] Accepting request 80631 from Base:System Add support for new vdso. (forwarded request 80630 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/80631 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=81 --- glibc-2.15-vsyscall.patch | 310 ++++++++++++++++++++++++++++++++++++++ glibc.changes | 7 + glibc.spec | 3 + 3 files changed, 320 insertions(+) create mode 100644 glibc-2.15-vsyscall.patch diff --git a/glibc-2.15-vsyscall.patch b/glibc-2.15-vsyscall.patch new file mode 100644 index 0000000..331314d --- /dev/null +++ b/glibc-2.15-vsyscall.patch @@ -0,0 +1,310 @@ +commit 91b392a4bab0c2dc90e7e3ff914dec20b97adca8 +Author: Ulrich Drepper +Date: Sun Aug 21 13:52:28 2011 -0400 + + Use ifuncs for time and gettimeofday on x86-64 + +2011-08-21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/gettimeofday.S: Removed. + * sysdeps/unix/sysv/linux/x86_64/time.S: Removed. + * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: New file. + * sysdeps/unix/sysv/linux/x86_64/time.c: New file. + * sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h: Remove declaration + of __vdso_gettimeofday. + * sysdeps/unix/sysv/linux/x86_64/init-first.c: Remove definition of + __vdso_gettimeofday and __vdso_time. Define __vdso_getcpu with + attribute_hidden. + (_libc_vdso_platform_setup): Remove initialization of + __vdso_gettimeofday and __vdso_time. + +diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h +index d7123c9..f9bf84e 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h ++++ b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h +@@ -1,5 +1,5 @@ + /* Resolve function pointers to VDSO functions. +- Copyright (C) 2005, 2007 Free Software Foundation, Inc. ++ Copyright (C) 2005, 2007, 2011 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 +@@ -25,9 +25,6 @@ + + #ifdef SHARED + +-extern long int (*__vdso_gettimeofday) (struct timeval *, void *) +- attribute_hidden; +- + extern long int (*__vdso_clock_gettime) (clockid_t, struct timespec *); + + #endif +diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S +deleted file mode 100644 +index f618e73..0000000 +--- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S ++++ /dev/null +@@ -1,49 +0,0 @@ +-/* Copyright (C) 2002, 2003, 2007 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#define _ERRNO_H 1 +-#include +- +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- +- +-ENTRY (__gettimeofday) +- /* Align stack. */ +- sub $0x8, %rsp +- cfi_adjust_cfa_offset(8) +-#ifdef SHARED +- movq __vdso_gettimeofday(%rip), %rax +- PTR_DEMANGLE (%rax) +-#else +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +-#endif +- callq *%rax +- /* Check error return. */ +- cmpl $-4095, %eax +- jae SYSCALL_ERROR_LABEL +- +-L(pseudo_end): +- add $0x8, %rsp +- cfi_adjust_cfa_offset(-8) +- ret +-PSEUDO_END(__gettimeofday) +- +-strong_alias (__gettimeofday, __gettimeofday_internal) +-weak_alias (__gettimeofday, gettimeofday) +diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +new file mode 100644 +index 0000000..1a773d6 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002, 2003, 2007, 2011 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++ ++#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul ++ ++ ++#ifdef SHARED ++void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday"); ++ ++void * ++gettimeofday_ifunc (void) ++{ ++ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); ++ ++ /* If the vDSO is not available we fall back on the old vsyscall. */ ++ return (_dl_vdso_vsym ("gettimeofday", &linux26) ++ ?: (void *) VSYSCALL_ADDR_vgettimeofday); ++} ++__asm (".type __gettimeofday, %gnu_indirect_function"); ++#else ++# include ++ ++int ++__gettimeofday (struct timeval *tv, struct timezone *tz) ++{ ++ return ((int (*) (struct timeval *, struct timezone *)) VSYSCALL_ADDR_vgettimeofday) (tv, tz); ++} ++#endif ++ ++weak_alias (__gettimeofday, gettimeofday) ++strong_alias (__gettimeofday, __gettimeofday_internal) +diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c +index e676f62..25cf08b 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/init-first.c ++++ b/sysdeps/unix/sysv/linux/x86_64/init-first.c +@@ -20,15 +20,11 @@ + # include + # include + +-long int (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden; +- + long int (*__vdso_clock_gettime) (clockid_t, struct timespec *) + __attribute__ ((nocommon)); + strong_alias (__vdso_clock_gettime, __GI___vdso_clock_gettime attribute_hidden) + +-long int (*__vdso_getcpu) (unsigned *, unsigned *, void *); +- +-long int (*__vdso_time) (time_t *) attribute_hidden; ++long int (*__vdso_getcpu) (unsigned *, unsigned *, void *) attribute_hidden; + + + static inline void +@@ -36,15 +32,7 @@ _libc_vdso_platform_setup (void) + { + PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); + +- void *p = _dl_vdso_vsym ("gettimeofday", &linux26); +- /* If the vDSO is not available we fall back on the old vsyscall. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul +- if (p == NULL) +- p = (void *) VSYSCALL_ADDR_vgettimeofday; +- PTR_MANGLE (p); +- __vdso_gettimeofday = p; +- +- p = _dl_vdso_vsym ("clock_gettime", &linux26); ++ void *p = _dl_vdso_vsym ("clock_gettime", &linux26); + PTR_MANGLE (p); + __GI___vdso_clock_gettime = p; + +@@ -55,14 +43,6 @@ _libc_vdso_platform_setup (void) + p = (void *) VSYSCALL_ADDR_vgetcpu; + PTR_MANGLE (p); + __vdso_getcpu = p; +- +- p = _dl_vdso_vsym ("time", &linux26); +- /* If the vDSO is not available we fall back on the old vsyscall. */ +-#define VSYSCALL_ADDR_vtime 0xffffffffff600400 +- if (p == NULL) +- p = (void *) VSYSCALL_ADDR_vtime; +- PTR_MANGLE (p); +- __vdso_time = p; + } + + # define VDSO_SETUP _libc_vdso_platform_setup +diff --git a/sysdeps/unix/sysv/linux/x86_64/time.S b/sysdeps/unix/sysv/linux/x86_64/time.S +deleted file mode 100644 +index 66d7498..0000000 +--- a/sysdeps/unix/sysv/linux/x86_64/time.S ++++ /dev/null +@@ -1,47 +0,0 @@ +-/* Copyright (C) 2001,02, 2003, 2011 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#define _ERRNO_H 1 +-#include +- +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vtime 0xffffffffff600400 +- +- +-/* Return the current time as a `time_t' and also put it in *T if T is +- not NULL. Time is represented as seconds from Jan 1 00:00:00 1970. */ +- +-ENTRY (time) +- /* Align stack. */ +- sub $0x8, %rsp +- cfi_adjust_cfa_offset(8) +- +-#ifdef SHARED +- movq __vdso_time(%rip), %rax +- PTR_DEMANGLE (%rax) +-#else +- movq $VSYSCALL_ADDR_vtime, %rax +-#endif +- callq *%rax +- +- add $0x8, %rsp +- cfi_adjust_cfa_offset(-8) +- ret +-PSEUDO_END_NOERRNO(time) +-libc_hidden_def (time) +diff --git a/sysdeps/unix/sysv/linux/x86_64/time.c b/sysdeps/unix/sysv/linux/x86_64/time.c +new file mode 100644 +index 0000000..698d561 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/x86_64/time.c +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2001,02, 2003, 2011 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++ ++#define VSYSCALL_ADDR_vtime 0xffffffffff600400 ++ ++ ++#ifdef SHARED ++void *time_ifunc (void) __asm__ ("time"); ++ ++void * ++time_ifunc (void) ++{ ++ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); ++ ++ /* If the vDSO is not available we fall back on the old vsyscall. */ ++ return _dl_vdso_vsym ("time", &linux26) ?: (void *) VSYSCALL_ADDR_vtime; ++} ++__asm (".type time, %gnu_indirect_function"); ++#else ++# include ++ ++time_t ++time (time_t *t) ++{ ++ return ((time_t (*) (time_t *)) VSYSCALL_ADDR_vtime) (t); ++} ++#endif ++ ++strong_alias (time, __GI_time) diff --git a/glibc.changes b/glibc.changes index 160e877..f61afd8 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de + +- Add support for new vdso (3.1 kernel) and only then + for vsyscall which is not anymore in 3.1 kernel + (patch glibc-2.15-vsyscall.patch) + ------------------------------------------------------------------- Thu Aug 25 09:44:37 UTC 2011 - lnussel@suse.de diff --git a/glibc.spec b/glibc.spec index 62b4457..be2c240 100644 --- a/glibc.spec +++ b/glibc.spec @@ -200,6 +200,8 @@ Patch67: glibc-revert-fseek-on-fclose.diff Patch68: glibc-fix-lookup-crash.patch # PATCH-FIX-UPSTREAM Fix fopen("non-existing-file", "re") errno bnc#713146 aj@suse.de Patch69: fopen-close-exec.patch +# PATCH-FIX-UPSTREAM Use ifuncs for time and gettimeofday on x86-64 - aj@suse.de +Patch70: glibc-2.15-vsyscall.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de @@ -435,6 +437,7 @@ rm nscd/s-stamp %patch67 -p1 %patch68 -p1 %patch69 -p1 +%patch70 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! From 827f0dfc0b1a8e975cc6fb1970514f5600d3c5658f028c279e1166dd9244302f Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 2 Sep 2011 11:23:56 +0000 Subject: [PATCH 078/204] Autobuild autoformatter for 80631 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=82 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index be2c240..940d005 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-32bit %endif AutoReqProv: on Version: 2.14 -Release: 7 +Release: 9 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 From de8dbd638a845b230818a0018335e40713cf7b8d45ca67e1c9ae00178ae82300 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Sat, 3 Sep 2011 21:05:52 +0000 Subject: [PATCH 079/204] Accepting request 80804 from Base:System Revert latest patch, it broke stuff. (forwarded request 80803 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/80804 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=83 --- glibc-2.15-vsyscall.patch | 310 -------------------------------------- glibc.changes | 5 + glibc.spec | 3 - 3 files changed, 5 insertions(+), 313 deletions(-) delete mode 100644 glibc-2.15-vsyscall.patch diff --git a/glibc-2.15-vsyscall.patch b/glibc-2.15-vsyscall.patch deleted file mode 100644 index 331314d..0000000 --- a/glibc-2.15-vsyscall.patch +++ /dev/null @@ -1,310 +0,0 @@ -commit 91b392a4bab0c2dc90e7e3ff914dec20b97adca8 -Author: Ulrich Drepper -Date: Sun Aug 21 13:52:28 2011 -0400 - - Use ifuncs for time and gettimeofday on x86-64 - -2011-08-21 Ulrich Drepper - - * sysdeps/unix/sysv/linux/x86_64/gettimeofday.S: Removed. - * sysdeps/unix/sysv/linux/x86_64/time.S: Removed. - * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: New file. - * sysdeps/unix/sysv/linux/x86_64/time.c: New file. - * sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h: Remove declaration - of __vdso_gettimeofday. - * sysdeps/unix/sysv/linux/x86_64/init-first.c: Remove definition of - __vdso_gettimeofday and __vdso_time. Define __vdso_getcpu with - attribute_hidden. - (_libc_vdso_platform_setup): Remove initialization of - __vdso_gettimeofday and __vdso_time. - -diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h -index d7123c9..f9bf84e 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h -+++ b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h -@@ -1,5 +1,5 @@ - /* Resolve function pointers to VDSO functions. -- Copyright (C) 2005, 2007 Free Software Foundation, Inc. -+ Copyright (C) 2005, 2007, 2011 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 -@@ -25,9 +25,6 @@ - - #ifdef SHARED - --extern long int (*__vdso_gettimeofday) (struct timeval *, void *) -- attribute_hidden; -- - extern long int (*__vdso_clock_gettime) (clockid_t, struct timespec *); - - #endif -diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S -deleted file mode 100644 -index f618e73..0000000 ---- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S -+++ /dev/null -@@ -1,49 +0,0 @@ --/* Copyright (C) 2002, 2003, 2007 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include --#define _ERRNO_H 1 --#include -- --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- -- --ENTRY (__gettimeofday) -- /* Align stack. */ -- sub $0x8, %rsp -- cfi_adjust_cfa_offset(8) --#ifdef SHARED -- movq __vdso_gettimeofday(%rip), %rax -- PTR_DEMANGLE (%rax) --#else -- movq $VSYSCALL_ADDR_vgettimeofday, %rax --#endif -- callq *%rax -- /* Check error return. */ -- cmpl $-4095, %eax -- jae SYSCALL_ERROR_LABEL -- --L(pseudo_end): -- add $0x8, %rsp -- cfi_adjust_cfa_offset(-8) -- ret --PSEUDO_END(__gettimeofday) -- --strong_alias (__gettimeofday, __gettimeofday_internal) --weak_alias (__gettimeofday, gettimeofday) -diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -new file mode 100644 -index 0000000..1a773d6 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -@@ -0,0 +1,49 @@ -+/* Copyright (C) 2002, 2003, 2007, 2011 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+ -+ -+#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul -+ -+ -+#ifdef SHARED -+void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday"); -+ -+void * -+gettimeofday_ifunc (void) -+{ -+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); -+ -+ /* If the vDSO is not available we fall back on the old vsyscall. */ -+ return (_dl_vdso_vsym ("gettimeofday", &linux26) -+ ?: (void *) VSYSCALL_ADDR_vgettimeofday); -+} -+__asm (".type __gettimeofday, %gnu_indirect_function"); -+#else -+# include -+ -+int -+__gettimeofday (struct timeval *tv, struct timezone *tz) -+{ -+ return ((int (*) (struct timeval *, struct timezone *)) VSYSCALL_ADDR_vgettimeofday) (tv, tz); -+} -+#endif -+ -+weak_alias (__gettimeofday, gettimeofday) -+strong_alias (__gettimeofday, __gettimeofday_internal) -diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c -index e676f62..25cf08b 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/init-first.c -+++ b/sysdeps/unix/sysv/linux/x86_64/init-first.c -@@ -20,15 +20,11 @@ - # include - # include - --long int (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden; -- - long int (*__vdso_clock_gettime) (clockid_t, struct timespec *) - __attribute__ ((nocommon)); - strong_alias (__vdso_clock_gettime, __GI___vdso_clock_gettime attribute_hidden) - --long int (*__vdso_getcpu) (unsigned *, unsigned *, void *); -- --long int (*__vdso_time) (time_t *) attribute_hidden; -+long int (*__vdso_getcpu) (unsigned *, unsigned *, void *) attribute_hidden; - - - static inline void -@@ -36,15 +32,7 @@ _libc_vdso_platform_setup (void) - { - PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); - -- void *p = _dl_vdso_vsym ("gettimeofday", &linux26); -- /* If the vDSO is not available we fall back on the old vsyscall. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul -- if (p == NULL) -- p = (void *) VSYSCALL_ADDR_vgettimeofday; -- PTR_MANGLE (p); -- __vdso_gettimeofday = p; -- -- p = _dl_vdso_vsym ("clock_gettime", &linux26); -+ void *p = _dl_vdso_vsym ("clock_gettime", &linux26); - PTR_MANGLE (p); - __GI___vdso_clock_gettime = p; - -@@ -55,14 +43,6 @@ _libc_vdso_platform_setup (void) - p = (void *) VSYSCALL_ADDR_vgetcpu; - PTR_MANGLE (p); - __vdso_getcpu = p; -- -- p = _dl_vdso_vsym ("time", &linux26); -- /* If the vDSO is not available we fall back on the old vsyscall. */ --#define VSYSCALL_ADDR_vtime 0xffffffffff600400 -- if (p == NULL) -- p = (void *) VSYSCALL_ADDR_vtime; -- PTR_MANGLE (p); -- __vdso_time = p; - } - - # define VDSO_SETUP _libc_vdso_platform_setup -diff --git a/sysdeps/unix/sysv/linux/x86_64/time.S b/sysdeps/unix/sysv/linux/x86_64/time.S -deleted file mode 100644 -index 66d7498..0000000 ---- a/sysdeps/unix/sysv/linux/x86_64/time.S -+++ /dev/null -@@ -1,47 +0,0 @@ --/* Copyright (C) 2001,02, 2003, 2011 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include --#define _ERRNO_H 1 --#include -- --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vtime 0xffffffffff600400 -- -- --/* Return the current time as a `time_t' and also put it in *T if T is -- not NULL. Time is represented as seconds from Jan 1 00:00:00 1970. */ -- --ENTRY (time) -- /* Align stack. */ -- sub $0x8, %rsp -- cfi_adjust_cfa_offset(8) -- --#ifdef SHARED -- movq __vdso_time(%rip), %rax -- PTR_DEMANGLE (%rax) --#else -- movq $VSYSCALL_ADDR_vtime, %rax --#endif -- callq *%rax -- -- add $0x8, %rsp -- cfi_adjust_cfa_offset(-8) -- ret --PSEUDO_END_NOERRNO(time) --libc_hidden_def (time) -diff --git a/sysdeps/unix/sysv/linux/x86_64/time.c b/sysdeps/unix/sysv/linux/x86_64/time.c -new file mode 100644 -index 0000000..698d561 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/x86_64/time.c -@@ -0,0 +1,47 @@ -+/* Copyright (C) 2001,02, 2003, 2011 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+ -+ -+#define VSYSCALL_ADDR_vtime 0xffffffffff600400 -+ -+ -+#ifdef SHARED -+void *time_ifunc (void) __asm__ ("time"); -+ -+void * -+time_ifunc (void) -+{ -+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); -+ -+ /* If the vDSO is not available we fall back on the old vsyscall. */ -+ return _dl_vdso_vsym ("time", &linux26) ?: (void *) VSYSCALL_ADDR_vtime; -+} -+__asm (".type time, %gnu_indirect_function"); -+#else -+# include -+ -+time_t -+time (time_t *t) -+{ -+ return ((time_t (*) (time_t *)) VSYSCALL_ADDR_vtime) (t); -+} -+#endif -+ -+strong_alias (time, __GI_time) diff --git a/glibc.changes b/glibc.changes index f61afd8..af435c5 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Sep 3 19:39:03 UTC 2011 - aj@suse.de + +- Revert last change, it caused some breakage. + ------------------------------------------------------------------- Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 940d005..dbceb5f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -200,8 +200,6 @@ Patch67: glibc-revert-fseek-on-fclose.diff Patch68: glibc-fix-lookup-crash.patch # PATCH-FIX-UPSTREAM Fix fopen("non-existing-file", "re") errno bnc#713146 aj@suse.de Patch69: fopen-close-exec.patch -# PATCH-FIX-UPSTREAM Use ifuncs for time and gettimeofday on x86-64 - aj@suse.de -Patch70: glibc-2.15-vsyscall.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de @@ -437,7 +435,6 @@ rm nscd/s-stamp %patch67 -p1 %patch68 -p1 %patch69 -p1 -%patch70 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! From ce18ec6fba93e2243b249f9f6f90c1d6e5072174c91b227f3474b6441153a2f2 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Sat, 3 Sep 2011 21:06:08 +0000 Subject: [PATCH 080/204] Autobuild autoformatter for 80804 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=84 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index dbceb5f..4c6cfe7 100644 --- a/glibc.spec +++ b/glibc.spec @@ -79,7 +79,7 @@ Obsoletes: glibc-32bit %endif AutoReqProv: on Version: 2.14 -Release: 9 +Release: 11 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 From 6e03c412eab11ecb2865404f877f027057df6e8f0a0846bd477a44c985e89fd4 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 26 Sep 2011 08:05:35 +0000 Subject: [PATCH 081/204] Accepting request 84552 from Base:System Various bugfixes OBS-URL: https://build.opensuse.org/request/show/84552 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=85 --- fopen-close-exec.patch | 14 - glibc-2.14-4eddf93f5cc2.tar.bz2 | 3 - glibc-2.14-69c1dfc1a796.tar.bz2 | 3 + glibc-2.15-avoid-vsyscall.patch | 569 ++++++++++++++++++++++++++++++++ glibc-2.15-vsyscall.patch | 479 +++++++++++++++++++++++++++ glibc-resolv-assert.diff | 59 ++++ glibc.changes | 62 +++- glibc.spec | 37 ++- usr.sbin.nscd | 45 --- x86-cpuid-level2.patch | 27 ++ 10 files changed, 1217 insertions(+), 81 deletions(-) delete mode 100644 fopen-close-exec.patch delete mode 100644 glibc-2.14-4eddf93f5cc2.tar.bz2 create mode 100644 glibc-2.14-69c1dfc1a796.tar.bz2 create mode 100644 glibc-2.15-avoid-vsyscall.patch create mode 100644 glibc-2.15-vsyscall.patch create mode 100644 glibc-resolv-assert.diff delete mode 100644 usr.sbin.nscd create mode 100644 x86-cpuid-level2.patch diff --git a/fopen-close-exec.patch b/fopen-close-exec.patch deleted file mode 100644 index 160221d..0000000 --- a/fopen-close-exec.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: glibc-2.14/libio/fileops.c -=================================================================== ---- glibc-2.14.orig/libio/fileops.c -+++ glibc-2.14/libio/fileops.c -@@ -338,7 +338,8 @@ _IO_new_file_fopen (fp, filename, mode, - is32not64); - - #ifndef __ASSUME_O_CLOEXEC -- if ((fp->_flags2 & _IO_FLAGS2_CLOEXEC) != 0 && __have_o_cloexec <= 0) -+ if ((result != NULL) -+ && (fp->_flags2 & _IO_FLAGS2_CLOEXEC) != 0 && __have_o_cloexec <= 0) - { - int fd = _IO_fileno (fp); - if (__have_o_cloexec == 0) diff --git a/glibc-2.14-4eddf93f5cc2.tar.bz2 b/glibc-2.14-4eddf93f5cc2.tar.bz2 deleted file mode 100644 index b4e0165..0000000 --- a/glibc-2.14-4eddf93f5cc2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:497c07f228208e8a0660ae5ee8919e4a6b5b59bb867891c7c02de8995310960e -size 15640100 diff --git a/glibc-2.14-69c1dfc1a796.tar.bz2 b/glibc-2.14-69c1dfc1a796.tar.bz2 new file mode 100644 index 0000000..db951fc --- /dev/null +++ b/glibc-2.14-69c1dfc1a796.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2455ca82dd99d898d8000fc0b6130d4ab80a5394fe3c1dfa6b5e9c894a73384 +size 15640243 diff --git a/glibc-2.15-avoid-vsyscall.patch b/glibc-2.15-avoid-vsyscall.patch new file mode 100644 index 0000000..5fb7382 --- /dev/null +++ b/glibc-2.15-avoid-vsyscall.patch @@ -0,0 +1,569 @@ +commit d53a73acdbf6ac6eb99cd06f5dd695da58d9e8f5 +Author: Ulrich Drepper +Date: Tue Sep 6 20:22:37 2011 -0400 + + Avoid gettimeofday vsyscall + +2011-09-06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Don't use + gettimeofday vsyscall, just use time. + +diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c +index b9bae3d..7feb7a1 100644 +--- a/sysdeps/unix/sysv/linux/getsysstats.c ++++ b/sysdeps/unix/sysv/linux/getsysstats.c +@@ -37,15 +37,6 @@ + #include + #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 +- + + /* How we can determine the number of available processors depends on + the configuration. There is currently (as of version 2.0.21) no +@@ -141,17 +132,10 @@ __get_nprocs () + static int cached_result; + static time_t timestamp; + +-#ifdef __ASSUME_POSIX_TIMERS +- struct timespec ts; +- INTERNAL_SYSCALL_DECL (err); +- INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, &ts); +-#else +- struct timeval ts; +- __gettimeofday (&ts, NULL); +-#endif ++ time_t now = time (NULL); + time_t prev = timestamp; + atomic_read_barrier (); +- if (ts.tv_sec == prev) ++ if (now == prev) + return cached_result; + + /* XXX Here will come a test for the new system call. */ +@@ -243,7 +227,7 @@ __get_nprocs () + out: + cached_result = result; + atomic_write_barrier (); +- timestamp = ts.tv_sec; ++ timestamp = now; + + return result; + } + +commit a77d3c17dc6517636c1cf6ab9c6bb8c257772354 +Author: Ulrich Drepper +Date: Tue Sep 6 21:34:11 2011 -0400 + + Don't unconditionally use clock_gettime vsyscall on x86-64 + +2011-09-06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/clock_gettime.c: New file. + * sysdeps/unix/sysv/linux/clock_gettime.c (SYSCALL_GETTIME): Allow + already be defined. Change to take two parameters and don't assign + result to variable. Adjust all users. + Define INTERNAL_GETTIME if not already defined. + Use INTERNAL_GETTIME instead of INTERNAL_VSYSCALL got clock_gettime + call. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Don't define + HAVE_CLOCK_GETTIME_VSYSCALL. + * sysdeps/unix/clock_gettime.c: Adjust use of SYSDEP_GETTIME_CPU. + + +diff --git a/sysdeps/unix/clock_gettime.c b/sysdeps/unix/clock_gettime.c +index fbaaf30..d467f2b 100644 +--- a/sysdeps/unix/clock_gettime.c ++++ b/sysdeps/unix/clock_gettime.c +@@ -1,5 +1,5 @@ + /* clock_gettime -- Get the current time from a POSIX clockid_t. Unix version. +- Copyright (C) 1999-2004, 2005, 2007 Free Software Foundation, Inc. ++ Copyright (C) 1999-2004, 2005, 2007, 2011 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 +@@ -113,7 +113,7 @@ clock_gettime (clockid_t clock_id, struct timespec *tp) + + default: + #ifdef SYSDEP_GETTIME_CPU +- SYSDEP_GETTIME_CPU; ++ retval = SYSDEP_GETTIME_CPU (clock_id, tp); + #endif + #if HP_TIMING_AVAIL + if ((clock_id & ((1 << CLOCK_IDFIELD_SIZE) - 1)) +diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c +index dd3755c..0ae45de 100644 +--- a/sysdeps/unix/sysv/linux/clock_gettime.c ++++ b/sysdeps/unix/sysv/linux/clock_gettime.c +@@ -1,5 +1,5 @@ + /* clock_gettime -- Get current time from a POSIX clockid_t. Linux version. +- Copyright (C) 2003,2004,2005,2006,2007,2010 Free Software Foundation, Inc. ++ Copyright (C) 2003,2004,2005,2006,2007,2010,2011 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 +@@ -32,9 +32,14 @@ + # include + #endif + +-#define SYSCALL_GETTIME \ +- retval = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); \ +- break ++#ifndef SYSCALL_GETTIME ++# define SYSCALL_GETTIME(id, tp) \ ++ INLINE_VSYSCALL (clock_gettime, 2, id, tp) ++#endif ++#ifndef INTERNAL_GETTIME ++# define INTERNAL_GETTIME(id, tp) \ ++ INTERNAL_VSYSCALL (clock_gettime, err, 2, id, tp) ++#endif + + #ifdef __ASSUME_POSIX_TIMERS + +@@ -44,7 +49,8 @@ + SYSDEP_GETTIME_CPUTIME \ + case CLOCK_REALTIME: \ + case CLOCK_MONOTONIC: \ +- SYSCALL_GETTIME ++ retval = SYSCALL_GETTIME (clock_id, tp); \ ++ break + + # define __libc_missing_posix_timers 0 + #elif defined __NR_clock_gettime +@@ -59,7 +65,7 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp) + if (!__libc_missing_posix_timers) + { + INTERNAL_SYSCALL_DECL (err); +- int r = INTERNAL_VSYSCALL (clock_gettime, err, 2, clock_id, tp); ++ int r = INTERNAL_GETTIME (clock_id, tp); + if (!INTERNAL_SYSCALL_ERROR_P (r, err)) + return 0; + +@@ -89,7 +95,7 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp) + /* Fallback code. */ \ + if (retval == EINVAL && clock_id == CLOCK_REALTIME) \ + retval = realtime_gettime (tp); \ +- else \ ++ else \ + { \ + __set_errno (retval); \ + retval = -1; \ +@@ -119,7 +125,7 @@ maybe_syscall_gettime_cpu (clockid_t clock_id, struct timespec *tp) + if (!__libc_missing_posix_cpu_timers) + { + INTERNAL_SYSCALL_DECL (err); +- int r = INTERNAL_VSYSCALL (clock_gettime, err, 2, clock_id, tp); ++ int r = INTERNAL_GETTIME (clock_id, tp); + if (!INTERNAL_SYSCALL_ERROR_P (r, err)) + return 0; + +diff --git a/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c +new file mode 100644 +index 0000000..9d6cd23 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c +@@ -0,0 +1,10 @@ ++#include "bits/libc-vdso.h" ++ ++#ifdef SHARED ++# define SYSCALL_GETTIME(id, tp) \ ++ (*__vdso_clock_gettime) (id, tp) ++# define INTERNAL_GETTIME(id, tp) \ ++ (*__vdso_clock_gettime) (id, tp) ++#endif ++ ++#include "../clock_gettime.c" +diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h +index 2b9ea85..a9821dc 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h ++++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2001-2005, 2007 Free Software Foundation, Inc. ++/* Copyright (C) 2001-2005, 2007, 2011 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 +@@ -279,8 +279,8 @@ + if (INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \ + { \ + iserr: \ +- __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \ +- sc_ret = -1L; \ ++ __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \ ++ sc_ret = -1L; \ + } \ + out: \ + sc_ret; \ +@@ -304,9 +304,6 @@ + v_ret; \ + }) + +-/* List of system calls which are supported as vsyscalls. */ +-# define HAVE_CLOCK_GETTIME_VSYSCALL 1 +- + # else + # define INLINE_VSYSCALL(name, nr, args...) \ + INLINE_SYSCALL (name, nr, ##args) + +commit a0e1f41bd487d2202b6c1e0802c0e6c91630fbea +Author: Ulrich Drepper +Date: Tue Sep 6 23:17:53 2011 -0400 + + Don't call gettimeofday vsyscall in x86-64 sem_timedwait + +2011-09-06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): Don't + use gettimeofday vsyscall, just call gettimeofday. + +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +index ca49cb8..2926b36 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002,2003,2005,2007,2009,2010 Free Software Foundation, Inc. ++/* Copyright (C) 2002,2003,2005,2007,2009,2010,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -24,10 +24,6 @@ + #include + #include + +- +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- + .text + + .globl sem_timedwait +@@ -212,9 +208,10 @@ sem_timedwait: + addq $1, NWAITERS(%r12) + + 7: xorl %esi, %esi +- movq %rsp, %rdi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- callq *%rax ++ movq %rsp,%rdi ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 8(%rsp), %rax + +commit fc8bffcccf5821bca179486abef83a7f82526715 +Author: Ulrich Drepper +Date: Tue Sep 6 23:50:04 2011 -0400 + + Fix handling of __vdso_clock_gettime + +2011-09-06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/clock_gettime.c (INTERNAL_GETTIME): + Forgot to demangle the pointer. + +diff --git a/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c +index 9d6cd23..7802701 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c ++++ b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c +@@ -2,9 +2,13 @@ + + #ifdef SHARED + # define SYSCALL_GETTIME(id, tp) \ +- (*__vdso_clock_gettime) (id, tp) ++ ({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \ ++ PTR_DEMANGLE (f); \ ++ f (id, tp); }) + # define INTERNAL_GETTIME(id, tp) \ +- (*__vdso_clock_gettime) (id, tp) ++ ({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \ ++ PTR_DEMANGLE (f); \ ++ f (id, tp); }) + #endif + + #include "../clock_gettime.c" + +commit 9e5c9dcd57e80cd56c47fd2bf11de8d167176a0e +Author: Ulrich Drepper +Date: Wed Sep 7 00:14:06 2011 -0400 + + Remove gettimeofday vsyscall use from x86-86 libpthread + + * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: + Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: + Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. + Simplify __vdso_clock_gettime use. + +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +index 3195db2..018da0c 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002-2006, 2007, 2009, 2010 Free Software Foundation, Inc. ++/* Copyright (C) 2002-2007, 2009, 2010, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -68,10 +68,6 @@ + #endif + + +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- +- + .globl __lll_lock_wait_private + .type __lll_lock_wait_private,@function + .hidden __lll_lock_wait_private +@@ -250,10 +246,9 @@ __lll_timedlock_wait: + /* Get current time. */ + movq %rsp, %rdi + xorl %esi, %esi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- /* This is a regular function call, all caller-save registers +- might be clobbered. */ +- callq *%rax ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 8(%rsp), %rax +@@ -402,8 +397,9 @@ __lll_timedwait_tid: + /* Get current time. */ + 2: movq %rsp, %rdi + xorl %esi, %esi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- callq *%rax ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 8(%rsp), %rax +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +index 5218a4f..b7b8b34 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002=2007, 2009, 2010 Free Software Foundation, Inc. ++/* Copyright (C) 2002, 2011=2007, 2009, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -50,9 +50,6 @@ + orl $FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg + #endif + +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- + + .globl __lll_robust_lock_wait + .type __lll_robust_lock_wait,@function +@@ -219,10 +216,9 @@ __lll_robust_timedlock_wait: + /* Get current time. */ + movq %rsp, %rdi + xorl %esi, %esi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- /* This is a regular function call, all caller-save registers +- might be clobbered. */ +- callq *%rax ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 8(%rsp), %rax +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +index 48ea8b9..d11b297 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -26,9 +26,6 @@ + + #include + +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- + + .text + +@@ -453,13 +450,11 @@ __pthread_cond_timedwait: + movq __vdso_clock_gettime@GOTPCREL(%rip), %rax + movq (%rax), %rax + PTR_DEMANGLE (%rax) +- jz 26f + call *%rax +- jmp 27f +-# endif +-26: movl $__NR_clock_gettime, %eax ++# else ++ movl $__NR_clock_gettime, %eax + syscall +-27: ++# endif + # ifndef __ASSUME_POSIX_TIMERS + cmpq $-ENOSYS, %rax + je 19f +@@ -473,8 +468,9 @@ __pthread_cond_timedwait: + # else + leaq 24(%rsp), %rdi + xorl %esi, %esi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- callq *%rax ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 40(%rsp), %rax +@@ -611,8 +607,9 @@ __pthread_cond_timedwait: + /* clock_gettime not available. */ + 19: leaq 32(%rsp), %rdi + xorl %esi, %esi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- callq *%rax ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 40(%rsp), %rax +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +index f5d055c..0e6a6ee 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002-2005, 2007, 2009, 2010 Free Software Foundation, Inc. ++/* Copyright (C) 2002-2005,2007,2009,2010,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -23,10 +23,6 @@ + #include + #include + +- +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- + .text + + .globl pthread_rwlock_timedrdlock +@@ -123,8 +119,9 @@ pthread_rwlock_timedrdlock: + /* Get current time. */ + movq %rsp, %rdi + xorl %esi, %esi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- callq *%rax ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 8(%rsp), %rax +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +index 6ed8b49..16bf920 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +@@ -1,4 +1,5 @@ +-/* Copyright (C) 2002, 2003, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. ++/* Copyright (C) 2002, 2003, 2005, 2007, 2009, 2010, 2011 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -23,10 +24,6 @@ + #include + #include + +- +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- + .text + + .globl pthread_rwlock_timedwrlock +@@ -120,8 +117,9 @@ pthread_rwlock_timedwrlock: + /* Get current time. */ + movq %rsp, %rdi + xorl %esi, %esi +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +- callq *%rax ++ /* This call works because we directly jump to a system call entry ++ which preserves all the registers. */ ++ call JUMPTARGET(__gettimeofday) + + /* Compute relative timeout. */ + movq 8(%rsp), %rax +commit e38ba7ab6a56d53bde4fcff250f6928fb473bc3c +Author: Ulrich Drepper +Date: Wed Sep 7 00:07:08 2011 -0400 + + Make sure __vdso_clock_gettime always contains a valid pointer + +2011-09-07 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/init-first.c + (_libc_vdso_platform_setup): If vDSO is not present store pointer to + syscall wrapper around clock_gettime in __vdso_clock_gettime. + * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Add entry for + clock_gettime. + +diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c +index 25cf08b..cb39aca 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/init-first.c ++++ b/sysdeps/unix/sysv/linux/x86_64/init-first.c +@@ -17,6 +17,8 @@ + 02111-1307 USA. */ + + #ifdef SHARED ++# include ++# include + # include + # include + +@@ -27,12 +29,17 @@ strong_alias (__vdso_clock_gettime, __GI___vdso_clock_gettime attribute_hidden) + long int (*__vdso_getcpu) (unsigned *, unsigned *, void *) attribute_hidden; + + ++extern long int __syscall_clock_gettime (clockid_t, struct timespec *); ++ ++ + static inline void + _libc_vdso_platform_setup (void) + { + PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); + + void *p = _dl_vdso_vsym ("clock_gettime", &linux26); ++ if (p == NULL) ++ p = __syscall_clock_gettime; + PTR_MANGLE (p); + __GI___vdso_clock_gettime = p; + +diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/syscalls.list +index 3e231a0..ccddb84 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/syscalls.list ++++ b/sysdeps/unix/sysv/linux/x86_64/syscalls.list +@@ -14,6 +14,7 @@ semop - semop i:ipi __semop semop + semtimedop - semtimedop i:ipip semtimedop + semget - semget i:iii __semget semget + semctl - semctl i:iiii __semctl semctl ++syscall_clock_gettime EXTRA clock_gettime Ei:ip __syscall_clock_gettime + + + # proper socket implementations: diff --git a/glibc-2.15-vsyscall.patch b/glibc-2.15-vsyscall.patch new file mode 100644 index 0000000..9ff4943 --- /dev/null +++ b/glibc-2.15-vsyscall.patch @@ -0,0 +1,479 @@ +commit 91b392a4bab0c2dc90e7e3ff914dec20b97adca8 +Author: Ulrich Drepper +Date: Sun Aug 21 13:52:28 2011 -0400 + + Use ifuncs for time and gettimeofday on x86-64 + +2011-08-21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/gettimeofday.S: Removed. + * sysdeps/unix/sysv/linux/x86_64/time.S: Removed. + * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: New file. + * sysdeps/unix/sysv/linux/x86_64/time.c: New file. + * sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h: Remove declaration + of __vdso_gettimeofday. + * sysdeps/unix/sysv/linux/x86_64/init-first.c: Remove definition of + __vdso_gettimeofday and __vdso_time. Define __vdso_getcpu with + attribute_hidden. + (_libc_vdso_platform_setup): Remove initialization of + __vdso_gettimeofday and __vdso_time. + +diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h +index d7123c9..f9bf84e 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h ++++ b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h +@@ -1,5 +1,5 @@ + /* Resolve function pointers to VDSO functions. +- Copyright (C) 2005, 2007 Free Software Foundation, Inc. ++ Copyright (C) 2005, 2007, 2011 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 +@@ -25,9 +25,6 @@ + + #ifdef SHARED + +-extern long int (*__vdso_gettimeofday) (struct timeval *, void *) +- attribute_hidden; +- + extern long int (*__vdso_clock_gettime) (clockid_t, struct timespec *); + + #endif +diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S +deleted file mode 100644 +index f618e73..0000000 +--- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S ++++ /dev/null +@@ -1,49 +0,0 @@ +-/* Copyright (C) 2002, 2003, 2007 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#define _ERRNO_H 1 +-#include +- +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 +- +- +-ENTRY (__gettimeofday) +- /* Align stack. */ +- sub $0x8, %rsp +- cfi_adjust_cfa_offset(8) +-#ifdef SHARED +- movq __vdso_gettimeofday(%rip), %rax +- PTR_DEMANGLE (%rax) +-#else +- movq $VSYSCALL_ADDR_vgettimeofday, %rax +-#endif +- callq *%rax +- /* Check error return. */ +- cmpl $-4095, %eax +- jae SYSCALL_ERROR_LABEL +- +-L(pseudo_end): +- add $0x8, %rsp +- cfi_adjust_cfa_offset(-8) +- ret +-PSEUDO_END(__gettimeofday) +- +-strong_alias (__gettimeofday, __gettimeofday_internal) +-weak_alias (__gettimeofday, gettimeofday) +diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +new file mode 100644 +index 0000000..1a773d6 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002, 2003, 2007, 2011 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++ ++#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul ++ ++ ++#ifdef SHARED ++void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday"); ++ ++void * ++gettimeofday_ifunc (void) ++{ ++ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); ++ ++ /* If the vDSO is not available we fall back on the old vsyscall. */ ++ return (_dl_vdso_vsym ("gettimeofday", &linux26) ++ ?: (void *) VSYSCALL_ADDR_vgettimeofday); ++} ++__asm (".type __gettimeofday, %gnu_indirect_function"); ++#else ++# include ++ ++int ++__gettimeofday (struct timeval *tv, struct timezone *tz) ++{ ++ return ((int (*) (struct timeval *, struct timezone *)) VSYSCALL_ADDR_vgettimeofday) (tv, tz); ++} ++#endif ++ ++weak_alias (__gettimeofday, gettimeofday) ++strong_alias (__gettimeofday, __gettimeofday_internal) +diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c +index e676f62..25cf08b 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/init-first.c ++++ b/sysdeps/unix/sysv/linux/x86_64/init-first.c +@@ -20,15 +20,11 @@ + # include + # include + +-long int (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden; +- + long int (*__vdso_clock_gettime) (clockid_t, struct timespec *) + __attribute__ ((nocommon)); + strong_alias (__vdso_clock_gettime, __GI___vdso_clock_gettime attribute_hidden) + +-long int (*__vdso_getcpu) (unsigned *, unsigned *, void *); +- +-long int (*__vdso_time) (time_t *) attribute_hidden; ++long int (*__vdso_getcpu) (unsigned *, unsigned *, void *) attribute_hidden; + + + static inline void +@@ -36,15 +32,7 @@ _libc_vdso_platform_setup (void) + { + PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); + +- void *p = _dl_vdso_vsym ("gettimeofday", &linux26); +- /* If the vDSO is not available we fall back on the old vsyscall. */ +-#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul +- if (p == NULL) +- p = (void *) VSYSCALL_ADDR_vgettimeofday; +- PTR_MANGLE (p); +- __vdso_gettimeofday = p; +- +- p = _dl_vdso_vsym ("clock_gettime", &linux26); ++ void *p = _dl_vdso_vsym ("clock_gettime", &linux26); + PTR_MANGLE (p); + __GI___vdso_clock_gettime = p; + +@@ -55,14 +43,6 @@ _libc_vdso_platform_setup (void) + p = (void *) VSYSCALL_ADDR_vgetcpu; + PTR_MANGLE (p); + __vdso_getcpu = p; +- +- p = _dl_vdso_vsym ("time", &linux26); +- /* If the vDSO is not available we fall back on the old vsyscall. */ +-#define VSYSCALL_ADDR_vtime 0xffffffffff600400 +- if (p == NULL) +- p = (void *) VSYSCALL_ADDR_vtime; +- PTR_MANGLE (p); +- __vdso_time = p; + } + + # define VDSO_SETUP _libc_vdso_platform_setup +diff --git a/sysdeps/unix/sysv/linux/x86_64/time.S b/sysdeps/unix/sysv/linux/x86_64/time.S +deleted file mode 100644 +index 66d7498..0000000 +--- a/sysdeps/unix/sysv/linux/x86_64/time.S ++++ /dev/null +@@ -1,47 +0,0 @@ +-/* Copyright (C) 2001,02, 2003, 2011 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#define _ERRNO_H 1 +-#include +- +-/* For the calculation see asm/vsyscall.h. */ +-#define VSYSCALL_ADDR_vtime 0xffffffffff600400 +- +- +-/* Return the current time as a `time_t' and also put it in *T if T is +- not NULL. Time is represented as seconds from Jan 1 00:00:00 1970. */ +- +-ENTRY (time) +- /* Align stack. */ +- sub $0x8, %rsp +- cfi_adjust_cfa_offset(8) +- +-#ifdef SHARED +- movq __vdso_time(%rip), %rax +- PTR_DEMANGLE (%rax) +-#else +- movq $VSYSCALL_ADDR_vtime, %rax +-#endif +- callq *%rax +- +- add $0x8, %rsp +- cfi_adjust_cfa_offset(-8) +- ret +-PSEUDO_END_NOERRNO(time) +-libc_hidden_def (time) +diff --git a/sysdeps/unix/sysv/linux/x86_64/time.c b/sysdeps/unix/sysv/linux/x86_64/time.c +new file mode 100644 +index 0000000..698d561 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/x86_64/time.c +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2001,02, 2003, 2011 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++ ++#define VSYSCALL_ADDR_vtime 0xffffffffff600400 ++ ++ ++#ifdef SHARED ++void *time_ifunc (void) __asm__ ("time"); ++ ++void * ++time_ifunc (void) ++{ ++ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); ++ ++ /* If the vDSO is not available we fall back on the old vsyscall. */ ++ return _dl_vdso_vsym ("time", &linux26) ?: (void *) VSYSCALL_ADDR_vtime; ++} ++__asm (".type time, %gnu_indirect_function"); ++#else ++# include ++ ++time_t ++time (time_t *t) ++{ ++ return ((time_t (*) (time_t *)) VSYSCALL_ADDR_vtime) (t); ++} ++#endif ++ ++strong_alias (time, __GI_time) + +commit 2bc174332ba6ddbd1b855dced33889bef56e8ba3 +Author: Andreas Schwab +Date: Tue Aug 30 15:37:54 2011 +0200 + + Relocate objects in dependency order + +2011-08-30 Andreas Schwab + + * elf/rtld.c (dl_main): Relocate objects in dependency order. + +diff --git a/elf/rtld.c b/elf/rtld.c +index 87bb5f0..4f6bbfd 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2255,13 +2255,12 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", + /* If we are profiling we also must do lazy reloaction. */ + GLRO(dl_lazy) |= consider_profiling; + +- struct link_map *l = main_map; +- while (l->l_next) +- l = l->l_next; +- + HP_TIMING_NOW (start); +- do ++ unsigned i = main_map->l_searchlist.r_nlist; ++ while (i-- > 0) + { ++ struct link_map *l = main_map->l_initfini[i]; ++ + /* While we are at it, help the memory handling a bit. We have to + mark some data structures as allocated with the fake malloc() + implementation in ld.so. */ +@@ -2280,10 +2279,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", + /* Add object to slot information data if necessasy. */ + if (l->l_tls_blocksize != 0 && tls_init_tp_called) + _dl_add_to_slotinfo (l); +- +- l = l->l_prev; + } +- while (l); + HP_TIMING_NOW (stop); + + HP_TIMING_DIFF (relocate_time, start, stop); + +commit ef60624956e93df1da329a48570776ed963b1916 +Author: Ulrich Drepper +Date: Tue Sep 6 00:12:18 2011 -0400 + + Prefer real syscalls instead of vsyscalls on x86-64 outside libc.so + +2011-09-06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/kernel-features.h: Add entry for getcpu + syscall on x86-64. + * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c [!SHARED]: Use real + syscall. + * sysdeps/unix/sysv/linux/x86_64/time.c: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S [!SHARED]: Use real + syscall if possible. + + +diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h +index d91f581..58f833e 100644 +--- a/sysdeps/unix/sysv/linux/kernel-features.h ++++ b/sysdeps/unix/sysv/linux/kernel-features.h +@@ -546,3 +546,8 @@ + #if __LINUX_KERNEL_VERSION >= 0x020627 + # define __ASSUME_SENDMMSG 1 + #endif ++ ++/* getcpu is a syscall for x86-64 since 3.1. */ ++#if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100 ++# define __ASSUME_GETCPU_SYSCALL 1 ++#endif +diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +index 1a773d6..56171bc 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c ++++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +@@ -37,11 +37,12 @@ gettimeofday_ifunc (void) + __asm (".type __gettimeofday, %gnu_indirect_function"); + #else + # include ++# include + + int + __gettimeofday (struct timeval *tv, struct timezone *tz) + { +- return ((int (*) (struct timeval *, struct timezone *)) VSYSCALL_ADDR_vgettimeofday) (tv, tz); ++ return INLINE_SYSCALL (gettimeofday, 2, tv, tz); + } + #endif + +diff --git a/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S b/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S +index 8ec7d3f..246c955 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S ++++ b/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S +@@ -20,6 +20,7 @@ + #include + #define _ERRNO_H 1 + #include ++#include + + /* For the calculation see asm/vsyscall.h. */ + #define VSYSCALL_ADDR_vgetcpu 0xffffffffff600800 +@@ -38,10 +39,26 @@ ENTRY (sched_getcpu) + #ifdef SHARED + movq __vdso_getcpu(%rip), %rax + PTR_DEMANGLE (%rax) ++ callq *%rax + #else ++# ifdef __NR_getcpu ++ movl $__NR_getcpu, %eax ++ syscall ++# ifndef __ASSUME_GETCPU_SYSCALL ++ cmpq $-ENOSYS, %rax ++ jne 1f ++# endif ++# endif ++# ifndef __ASSUME_GETCPU_SYSCALL + movq $VSYSCALL_ADDR_vgetcpu, %rax +-#endif + callq *%rax ++1: ++# else ++# ifndef __NR_getcpu ++# error "cannot happen" ++# endif ++# endif ++#endif + + cmpq $-4095, %rax + jae SYSCALL_ERROR_LABEL +diff --git a/sysdeps/unix/sysv/linux/x86_64/time.c b/sysdeps/unix/sysv/linux/x86_64/time.c +index 698d561..c1c1a75 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/time.c ++++ b/sysdeps/unix/sysv/linux/x86_64/time.c +@@ -36,11 +36,13 @@ time_ifunc (void) + __asm (".type time, %gnu_indirect_function"); + #else + # include ++# include + + time_t + time (time_t *t) + { +- return ((time_t (*) (time_t *)) VSYSCALL_ADDR_vtime) (t); ++ INTERNAL_SYSCALL_DECL (err); ++ return INTERNAL_SYSCALL (time, err, 1, t); + } + #endif + +2011-09-06 Andreas Jaeger + + * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: Include + to fix build. + +Index: glibc-2.14/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +=================================================================== +--- glibc-2.14.orig/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c ++++ glibc-2.14/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +@@ -36,6 +36,7 @@ gettimeofday_ifunc (void) + } + __asm (".type __gettimeofday, %gnu_indirect_function"); + #else ++# include + # include + # include + diff --git a/glibc-resolv-assert.diff b/glibc-resolv-assert.diff new file mode 100644 index 0000000..fcb478e --- /dev/null +++ b/glibc-resolv-assert.diff @@ -0,0 +1,59 @@ +2011-07-21 Aurelien Jarno + + * resolv/res_query.c(__libc_res_nquery): Assign hp and hp2 + depending n and resplen2 to catch cases where answer + equals answerp2. + +diff --git a/resolv/res_query.c b/resolv/res_query.c +index 2f7cfaa..405fa68 100644 +--- a/resolv/res_query.c ++++ b/resolv/res_query.c +@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp, + int *resplen2) + { + HEADER *hp = (HEADER *) answer; ++ HEADER *hp2; + int n, use_malloc = 0; + u_int oflags = statp->_flags; + +@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp, + /* __libc_res_nsend might have reallocated the buffer. */ + hp = (HEADER *) *answerp; + +- /* We simplify the following tests by assigning HP to HP2. It +- is easy to verify that this is the same as ignoring all +- tests of HP2. */ +- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp; +- +- if (n < (int) sizeof (HEADER) && answerp2 != NULL +- && *resplen2 > (int) sizeof (HEADER)) ++ /* We simplify the following tests by assigning HP to HP2 or ++ vice versa. It is easy to verify that this is the same as ++ ignoring all tests of HP or HP2. */ ++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER)) + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp = hp2; ++ hp2 = hp; + } +- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER) +- && n > (int) sizeof (HEADER)) ++ else + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp2 = hp; ++ hp2 = (HEADER *) *answerp2; ++ if (n < (int) sizeof (HEADER)) ++ { ++ hp = hp2; ++ } + } + ++ /* Make sure both hp and hp2 are defined */ ++ assert((hp != NULL) && (hp2 != NULL)); ++ + if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0) + && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) { + #ifdef DEBUG diff --git a/glibc.changes b/glibc.changes index af435c5..13f21b3 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,7 +1,67 @@ +------------------------------------------------------------------- +Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de + +- fix ports build + +------------------------------------------------------------------- +Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de + +- add armv8l architecture +- don't enforce armv5tel for all arm architectures anymore + +------------------------------------------------------------------- +Mon Sep 19 08:09:40 UTC 2011 - opensuse@cboltz.de + +- move usr.sbin.nscd apparmor profile back to apparmor-profiles package + (bnc#647718) + +------------------------------------------------------------------- +Mon Sep 19 07:45:36 UTC 2011 - aj@suse.de + +- Update to 2.14 git version 69c1dfc1a796, it contains backports from + glibc trunk: + + Fix setxid race handling exiting threads + + Fix cfi directives in x86-64 and i386 code + + Fix scope handling during dl_close + + Fix spurious nop at start of __strspn_ia32 + + Correct cycle detection during dependency sorting + + Fix fopen (non-existing-file, "re") errno (Obsoletes patch + fopen-close-exec.patch) + +------------------------------------------------------------------- +Fri Sep 16 11:20:29 UTC 2011 - mmarek@suse.cz + +- Fix assertion error in res_query.c, triggered by Firefox + (bso#13013). + +------------------------------------------------------------------- +Wed Sep 7 07:17:16 UTC 2011 - aj@suse.de + +- Avoid usage of vsyscalls inside glibc. + +------------------------------------------------------------------- +Tue Sep 6 09:53:24 CEST 2011 - aj@suse.de + +- Prefer real syscalls instead of vsyscalls on x86-64 outside + libc.so + +------------------------------------------------------------------- +Mon Sep 5 10:06:23 UTC 2011 - aj@suse.de + +- Do not not trigger an abort when an i586 Intel CPU is running the + i686 library, as valgrind does. [bnc#681398] + +------------------------------------------------------------------- +Mon Sep 5 08:26:24 UTC 2011 - aj@suse.de + +- Readd vdso support. +- Add patch to relocate objects in dependency order, this fixes the + vdso support. + ------------------------------------------------------------------- Sat Sep 3 19:39:03 UTC 2011 - aj@suse.de -- Revert last change, it caused some breakage. +- Revert last change, it caused some breakage. [bnc#715854] ------------------------------------------------------------------- Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 4c6cfe7..f2d4280 100644 --- a/glibc.spec +++ b/glibc.spec @@ -82,11 +82,10 @@ Version: 2.14 Release: 11 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 +Source: glibc-%{version}-69c1dfc1a796.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 -Source5: usr.sbin.nscd Source8: nsswitch.conf Source9: nscd.init Source10: bindresvport.blacklist @@ -198,8 +197,14 @@ Patch66: glibc2.14-revert-sunrpc-removal.patch Patch67: glibc-revert-fseek-on-fclose.diff # PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140 matz@suse.de Patch68: glibc-fix-lookup-crash.patch -# PATCH-FIX-UPSTREAM Fix fopen("non-existing-file", "re") errno bnc#713146 aj@suse.de -Patch69: fopen-close-exec.patch +# PATCH-FIX-UPSTREAM Add vdso support to support Linux 3.1, fix order of relocations aj@suse.de +Patch70: glibc-2.15-vsyscall.patch +# PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de +Patch71: x86-cpuid-level2.patch +# PATCH-FIX-UPSTREAM Avoid use of vsyscall aj@suse.de +Patch72: glibc-2.15-avoid-vsyscall.patch +# PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) +Patch73: glibc-resolv-assert.diff # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de @@ -317,7 +322,6 @@ library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} @@ -361,10 +365,8 @@ versions of your software. %endif %prep -%ifarch %arm armv5tel armv7l +%ifarch %arm armv5tel armv7l armv8l # add glibc-ports for arm -# this is CURRENTLY BROKEN (as of 2009-11-13); ARM-interested -# contributors need to provide new tested glibc-ports source %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 %else # any other leave out ports @@ -434,7 +436,10 @@ rm nscd/s-stamp %patch66 -p1 %patch67 -p1 %patch68 -p1 -%patch69 -p1 +%patch70 -p1 +%patch71 -p1 +%patch72 -p1 +%patch73 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -527,9 +532,9 @@ PARALLEL="%{?_smp_mflags}" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm armv5tel armv7l - add_ons=$add_ons,ports - BuildFlags="-march=armv5te -O2 -Wall" +%ifarch %arm armv5tel armv7l armv8l + add_ons=$add_ons,glibc-ports-%{version} + BuildFlags="$BuildFlags -fasynchronous-unwind-tables" # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif @@ -548,7 +553,7 @@ configure_and_build_glibc() { %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif -%ifarch %arm armv5tel armv7l +%ifarch %arm armv5tel armv7l armv8l --build=%{_target_cpu}-suse-linux-gnueabi \ %else --build=%{_target_cpu}-suse-linux \ @@ -781,8 +786,6 @@ popd # nscd tools: cp nscd/nscd.conf %{buildroot}/etc -mkdir -p %{buildroot}/etc/apparmor.d -cp $RPM_SOURCE_DIR/usr.sbin.nscd %{buildroot}/etc/apparmor.d mkdir -p %{buildroot}/etc/init.d install -m 755 $RPM_SOURCE_DIR/nscd.init %{buildroot}/etc/init.d/nscd ln -sf /etc/init.d/nscd %{buildroot}/usr/sbin/rcnscd @@ -920,7 +923,7 @@ exit 0 %ifarch x86_64 /%{_lib}/ld-linux-x86-64.so.2 %else - %ifarch %arm armv5tel armv7l + %ifarch %arm armv5tel armv7l armv8l /%{_lib}/ld-linux.so.3 %else /%{_lib}/ld-linux.so.2 @@ -1088,8 +1091,6 @@ exit 0 %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf -%dir /etc/apparmor.d -%config /etc/apparmor.d/usr.sbin.nscd %config /etc/init.d/nscd %{_sbindir}/nscd %{_sbindir}/rcnscd diff --git a/usr.sbin.nscd b/usr.sbin.nscd deleted file mode 100644 index 4241743..0000000 --- a/usr.sbin.nscd +++ /dev/null @@ -1,45 +0,0 @@ -# ------------------------------------------------------------------ -# -# Copyright (C) 2002-2005 Novell/SUSE -# Copyright (C) 2009-2010 Canonical Ltd. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of version 2 of the GNU General Public -# License published by the Free Software Foundation. -# -# ------------------------------------------------------------------ - -#include -/usr/sbin/nscd { - #include - #include - #include - #include - - capability net_bind_service, - - network inet dgram, - network inet stream, - - /etc/netgroup r, - /etc/nscd.conf r, - /tmp/.winbindd/pipe rw, - /usr/sbin/nscd rmix, - /var/lib/samba/winbindd_privileged/pipe rw, - /{,var/}run/.nscd_socket wl, - /{,var/}run/avahi-daemon/socket w, - /{,var/}run/nscd/ rw, - /{,var/}run/nscd/db* wl, - /{,var/}run/nscd/socket wl, - /var/{cache,run}/nscd/{passwd,group,services,hosts} rw, - /{,var/}run/{nscd/,}nscd.pid rwl, - /var/log/nscd.log rw, - @{PROC}/[0-9]*/fd/ r, - @{PROC}/[0-9]*/fd/* r, - @{PROC}/[0-9]*/maps r, - @{PROC}/[0-9]*/mounts r, - @{PROC}/filesystems r, - - # Site-specific additions and overrides. See local/README for details. - #include -} diff --git a/x86-cpuid-level2.patch b/x86-cpuid-level2.patch new file mode 100644 index 0000000..a6d9c10 --- /dev/null +++ b/x86-cpuid-level2.patch @@ -0,0 +1,27 @@ +openSUSE bug report: +https://bugzilla.novell.com/show_bug.cgi?id=681398 + +Patch from Debian, see +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=584748 + +--- + sysdeps/x86_64/cacheinfo.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/sysdeps/x86_64/cacheinfo.c ++++ b/sysdeps/x86_64/cacheinfo.c +@@ -254,7 +254,13 @@ + static long int __attribute__ ((noinline)) + handle_intel (int name, unsigned int maxidx) + { +- assert (maxidx >= 2); ++ if (maxidx <= 2) ++ { ++ /* This should never happen as all Intel i686 CPU support a CPUID ++ level of 2 minimum. However valgrind sometimes load the i686 ++ library with a P55C CPUID. Return 0 in that case. */ ++ return 0; ++ } + + /* OK, we can use the CPUID instruction to get all info about the + caches. */ From 63320390086f490819b2912e88d61b95bfcf09cfec04acd7854d95b34e039ad8 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 28 Sep 2011 12:09:53 +0000 Subject: [PATCH 082/204] Accepting request 85188 from Base:System - Update to 2.14 git version 8bd683657e8a, it contains backports from glibc trunk: + Avoid race between {,__de}allocate_stack and __reclaim_stacks during fork - Add glibc-2.14-fix-ctors.patch to run ctors (bnc#717671), gcc 4.6 optimized these away. - don't use -fasynchronous-unwind-tables on arm, it breaks the build - Cleanup spec file: remove some tags OBS-URL: https://build.opensuse.org/request/show/85188 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=86 --- glibc-2.14-69c1dfc1a796.tar.bz2 | 3 --- glibc-2.14-8bd683657e8a.tar.bz2 | 3 +++ glibc-2.14-fix-ctors.patch | 30 ++++++++++++++++++++++++++++++ glibc.changes | 20 ++++++++++++++++++++ glibc.spec | 10 ++++------ 5 files changed, 57 insertions(+), 9 deletions(-) delete mode 100644 glibc-2.14-69c1dfc1a796.tar.bz2 create mode 100644 glibc-2.14-8bd683657e8a.tar.bz2 create mode 100644 glibc-2.14-fix-ctors.patch diff --git a/glibc-2.14-69c1dfc1a796.tar.bz2 b/glibc-2.14-69c1dfc1a796.tar.bz2 deleted file mode 100644 index db951fc..0000000 --- a/glibc-2.14-69c1dfc1a796.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2455ca82dd99d898d8000fc0b6130d4ab80a5394fe3c1dfa6b5e9c894a73384 -size 15640243 diff --git a/glibc-2.14-8bd683657e8a.tar.bz2 b/glibc-2.14-8bd683657e8a.tar.bz2 new file mode 100644 index 0000000..5a3da48 --- /dev/null +++ b/glibc-2.14-8bd683657e8a.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3b9989d779eeac58033375d0fcfbb984127291658f5133bd155d452ec702540 +size 15643610 diff --git a/glibc-2.14-fix-ctors.patch b/glibc-2.14-fix-ctors.patch new file mode 100644 index 0000000..33867e0 --- /dev/null +++ b/glibc-2.14-fix-ctors.patch @@ -0,0 +1,30 @@ +Index: glibc-2.14/elf/soinit.c +=================================================================== +--- glibc-2.14.orig/elf/soinit.c ++++ glibc-2.14/elf/soinit.c +@@ -26,7 +26,11 @@ void + __libc_global_ctors (void) + { + /* Call constructor functions. */ +- run_hooks (__CTOR_LIST__); ++ void (**tem)(); ++ asm ("" : "=r" (tem) : "0" (__CTOR_LIST__)); ++ /* Call destructor functions. */ ++ ++ run_hooks (tem); + } + + +@@ -36,7 +40,11 @@ void + __libc_fini (void) + { + /* Call destructor functions. */ +- run_hooks (__DTOR_LIST__); ++ void (**tem)(); ++ asm ("" : "=r" (tem) : "0" (__DTOR_LIST__)); ++ /* Call destructor functions. */ ++ ++ run_hooks (tem); + } + + void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) diff --git a/glibc.changes b/glibc.changes index 13f21b3..df2a1f4 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Sep 27 11:24:02 UTC 2011 - aj@suse.de + +- Update to 2.14 git version 8bd683657e8a, it contains backports from + glibc trunk: + + Avoid race between {,__de}allocate_stack and __reclaim_stacks + during fork +- Add glibc-2.14-fix-ctors.patch to run ctors (bnc#717671), gcc 4.6 + optimized these away. + +------------------------------------------------------------------- +Mon Sep 26 12:30:09 UTC 2011 - adrian@suse.de + +- don't use -fasynchronous-unwind-tables on arm, it breaks the build + ------------------------------------------------------------------- Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de @@ -9,6 +24,11 @@ Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de - add armv8l architecture - don't enforce armv5tel for all arm architectures anymore +------------------------------------------------------------------- +Tue Sep 20 07:54:21 UTC 2011 - aj@suse.de + +- Cleanup spec file: remove some tags + ------------------------------------------------------------------- Mon Sep 19 08:09:40 UTC 2011 - opensuse@cboltz.de diff --git a/glibc.spec b/glibc.spec index f2d4280..2f28b07 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,12 +77,11 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -AutoReqProv: on Version: 2.14 Release: 11 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-69c1dfc1a796.tar.bz2 +Source: glibc-%{version}-8bd683657e8a.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -205,6 +204,8 @@ Patch71: x86-cpuid-level2.patch Patch72: glibc-2.15-avoid-vsyscall.patch # PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) Patch73: glibc-resolv-assert.diff +# PATCH-FIX-OPENSUSE Run ctors (bnc#717671) aj@suse.de +Patch74: glibc-2.14-fix-ctors.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de @@ -440,6 +441,7 @@ rm nscd/s-stamp %patch71 -p1 %patch72 -p1 %patch73 -p1 +%patch74 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -534,7 +536,6 @@ PARALLEL="%{?_smp_mflags}" %endif %ifarch %arm armv5tel armv7l armv8l add_ons=$add_ons,glibc-ports-%{version} - BuildFlags="$BuildFlags -fasynchronous-unwind-tables" # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif @@ -845,9 +846,6 @@ install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system ### ####################################################################### -%clean -rm -rf %{buildroot} - # Note: glibc_post_upgrade does: # %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section From 89068b231f55bf8f278b885fd8858ef6d7c45bcd10b605744eb5601356f62a21 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Tue, 11 Oct 2011 14:53:50 +0000 Subject: [PATCH 083/204] Accepting request 87372 from Base:System Update to current git (forwarded request 87370 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/87372 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=87 --- crypt_blowfish-1.2-hack_around_arm.diff | 13 + glibc-2.14-8bd683657e8a.tar.bz2 | 3 - glibc-2.14.1-4f2b767fef50.tar.bz2 | 3 + glibc-2.15-ifunc-trace.patch | 716 ++++++++++++++++++++++++ glibc.changes | 28 + glibc.spec | 38 +- 6 files changed, 785 insertions(+), 16 deletions(-) create mode 100644 crypt_blowfish-1.2-hack_around_arm.diff delete mode 100644 glibc-2.14-8bd683657e8a.tar.bz2 create mode 100644 glibc-2.14.1-4f2b767fef50.tar.bz2 create mode 100644 glibc-2.15-ifunc-trace.patch diff --git a/crypt_blowfish-1.2-hack_around_arm.diff b/crypt_blowfish-1.2-hack_around_arm.diff new file mode 100644 index 0000000..95a0887 --- /dev/null +++ b/crypt_blowfish-1.2-hack_around_arm.diff @@ -0,0 +1,13 @@ +--- x86.S ++++ x86.S +@@ -196,8 +196,8 @@ + hlt + jmp BF_die + +-#endif +- + #if defined(__ELF__) && defined(__linux__) + .section .note.GNU-stack,"",@progbits + #endif ++ ++#endif diff --git a/glibc-2.14-8bd683657e8a.tar.bz2 b/glibc-2.14-8bd683657e8a.tar.bz2 deleted file mode 100644 index 5a3da48..0000000 --- a/glibc-2.14-8bd683657e8a.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3b9989d779eeac58033375d0fcfbb984127291658f5133bd155d452ec702540 -size 15643610 diff --git a/glibc-2.14.1-4f2b767fef50.tar.bz2 b/glibc-2.14.1-4f2b767fef50.tar.bz2 new file mode 100644 index 0000000..ceedd93 --- /dev/null +++ b/glibc-2.14.1-4f2b767fef50.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a1f7ea9ea887d7d0e7174d76b9f2b99aceae9efedc9d0c708446ae5a2fd4f35 +size 15650076 diff --git a/glibc-2.15-ifunc-trace.patch b/glibc-2.15-ifunc-trace.patch new file mode 100644 index 0000000..6a6409d --- /dev/null +++ b/glibc-2.15-ifunc-trace.patch @@ -0,0 +1,716 @@ +commit 3a62d00d408e9ec19479b6c7d39e89021061f9cd +Author: Andreas Schwab +Date: Tue Oct 4 16:10:16 2011 +0200 + + Don't call ifunc functions in trace mode + +2011-10-04 Andreas Schwab + + * include/dlfcn.h (__RTLD_NOIFUNC): Define. + * elf/do-rel.h (elf_dynamic_do_rel): Add parameter skip_ifunc and + pass it down. + * elf/dynamic-link.h: Adjust prototypes of elf_machine_rel, + elf_machine_rela, elf_machine_lazy_rel. + (_ELF_DYNAMIC_DO_RELOC): Add parameter skip_ifunc and pass it down. + (ELF_DYNAMIC_DO_REL): Likewise. + (ELF_DYNAMIC_DO_RELA): Likewise. + (ELF_DYNAMIC_RELOCATE): Likewise. + * elf/dl-reloc.c (_dl_relocate_object): Pass __RTLD_NOIFUNC down + to ELF_DYNAMIC_DO_REL. + * elf/rtld.c (_dl_start): Adjust use of ELF_DYNAMIC_RELOCATE. + (dl_main): In trace mode always set __RTLD_NOIFUNC. + * elf/dl-conflict.c (_dl_resolve_conflicts): Adjust call to + elf_machine_rela. + * sysdeps/i386/dl-machine.h (elf_machine_rel): Add parameter + skip_ifunc, don't call ifunc function if non-zero. + (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + (elf_machine_lazy_rela): Likewise. + * sysdeps/ia64/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): + Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): + Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_lazy_rel): Likewise. + +Index: glibc-2.14/elf/dl-conflict.c +=================================================================== +--- glibc-2.14.orig/elf/dl-conflict.c ++++ glibc-2.14/elf/dl-conflict.c +@@ -1,5 +1,5 @@ + /* Resolve conflicts against already prelinked libraries. +- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2008 Free Software Foundation, Inc. ++ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2008, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek , 2001. + +@@ -69,7 +69,8 @@ _dl_resolve_conflicts (struct link_map * + GL(dl_num_cache_relocations) += conflictend - conflict; + + for (; conflict < conflictend; ++conflict) +- elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset); ++ elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset, ++ 0); + } + #endif + } +Index: glibc-2.14/elf/dl-reloc.c +=================================================================== +--- glibc-2.14.orig/elf/dl-reloc.c ++++ glibc-2.14/elf/dl-reloc.c +@@ -162,6 +162,7 @@ _dl_relocate_object (struct link_map *l, + /* Initialize it to make the compiler happy. */ + const char *errstring = NULL; + int lazy = reloc_mode & RTLD_LAZY; ++ int skip_ifunc = reloc_mode & __RTLD_NOIFUNC; + + #ifdef SHARED + /* If we are auditing, install the same handlers we need for profiling. */ +@@ -261,7 +262,7 @@ _dl_relocate_object (struct link_map *l, + + #include "dynamic-link.h" + +- ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling); ++ ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling, skip_ifunc); + + #ifndef PROF + if (__builtin_expect (consider_profiling, 0)) +Index: glibc-2.14/elf/do-rel.h +=================================================================== +--- glibc-2.14.orig/elf/do-rel.h ++++ glibc-2.14/elf/do-rel.h +@@ -1,5 +1,5 @@ + /* Do relocations for ELF dynamic linking. +- Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1995-2003, 2004, 2011 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 +@@ -52,7 +52,7 @@ + auto inline void __attribute__ ((always_inline)) + elf_dynamic_do_rel (struct link_map *map, + ElfW(Addr) reladdr, ElfW(Addr) relsize, +- int lazy) ++ int lazy, int skip_ifunc) + { + const ElfW(Rel) *r = (const void *) reladdr; + const ElfW(Rel) *end = (const void *) (reladdr + relsize); +@@ -66,7 +66,7 @@ elf_dynamic_do_rel (struct link_map *map + { + /* Doing lazy PLT relocations; they need very little info. */ + for (; r < end; ++r) +- elf_machine_lazy_rel (map, l_addr, r); ++ elf_machine_lazy_rel (map, l_addr, r, skip_ifunc); + } + else + #endif +@@ -119,14 +119,14 @@ elf_dynamic_do_rel (struct link_map *map + ElfW(Half) ndx = version[ELFW(R_SYM) (r->r_info)] & 0x7fff; + elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], + &map->l_versions[ndx], +- (void *) (l_addr + r->r_offset)); ++ (void *) (l_addr + r->r_offset), skip_ifunc); + } + } + #ifndef RTLD_BOOTSTRAP + else + for (; r < end; ++r) + elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], NULL, +- (void *) (l_addr + r->r_offset)); ++ (void *) (l_addr + r->r_offset), skip_ifunc); + #endif + } + } +Index: glibc-2.14/elf/dynamic-link.h +=================================================================== +--- glibc-2.14.orig/elf/dynamic-link.h ++++ glibc-2.14/elf/dynamic-link.h +@@ -60,7 +60,7 @@ int internal_function _dl_try_allocate_s + auto inline void __attribute__((always_inline)) + elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc, + const ElfW(Sym) *sym, const struct r_found_version *version, +- void *const reloc_addr); ++ void *const reloc_addr, int skip_ifunc); + auto inline void __attribute__((always_inline)) + elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, + void *const reloc_addr); +@@ -69,7 +69,7 @@ elf_machine_rel_relative (ElfW(Addr) l_a + auto inline void __attribute__((always_inline)) + elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, + const ElfW(Sym) *sym, const struct r_found_version *version, +- void *const reloc_addr); ++ void *const reloc_addr, int skip_ifunc); + auto inline void __attribute__((always_inline)) + elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, + void *const reloc_addr); +@@ -77,11 +77,13 @@ elf_machine_rela_relative (ElfW(Addr) l_ + # if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL + auto inline void __attribute__((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- ElfW(Addr) l_addr, const ElfW(Rel) *reloc); ++ ElfW(Addr) l_addr, const ElfW(Rel) *reloc, ++ int skip_ifunc); + # else + auto inline void __attribute__((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- ElfW(Addr) l_addr, const ElfW(Rela) *reloc); ++ ElfW(Addr) l_addr, const ElfW(Rela) *reloc, ++ int skip_ifunc); + # endif + #endif + +@@ -254,7 +256,7 @@ elf_get_dynamic_info (struct link_map *l + not happen we do something more optimal. */ + + # ifdef ELF_MACHINE_PLTREL_OVERLAP +-# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, test_rel) \ ++# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \ + do { \ + struct { ElfW(Addr) start, size; int lazy; } ranges[3]; \ + int ranges_index; \ +@@ -284,10 +286,11 @@ elf_get_dynamic_info (struct link_map *l + elf_dynamic_do_##reloc ((map), \ + ranges[ranges_index].start, \ + ranges[ranges_index].size, \ +- ranges[ranges_index].lazy); \ ++ ranges[ranges_index].lazy, \ ++ skip_ifunc); \ + } while (0) + # else +-# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, test_rel) \ ++# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \ + do { \ + struct { ElfW(Addr) start, size; int lazy; } ranges[2]; \ + ranges[0].lazy = 0; \ +@@ -324,7 +327,8 @@ elf_get_dynamic_info (struct link_map *l + } \ + \ + if (ELF_DURING_STARTUP) \ +- elf_dynamic_do_##reloc ((map), ranges[0].start, ranges[0].size, 0); \ ++ elf_dynamic_do_##reloc ((map), ranges[0].start, ranges[0].size, 0, \ ++ skip_ifunc); \ + else \ + { \ + int ranges_index; \ +@@ -332,7 +336,8 @@ elf_get_dynamic_info (struct link_map *l + elf_dynamic_do_##reloc ((map), \ + ranges[ranges_index].start, \ + ranges[ranges_index].size, \ +- ranges[ranges_index].lazy); \ ++ ranges[ranges_index].lazy, \ ++ skip_ifunc); \ + } \ + } while (0) + # endif +@@ -345,29 +350,29 @@ elf_get_dynamic_info (struct link_map *l + + # if ! ELF_MACHINE_NO_REL + # include "do-rel.h" +-# define ELF_DYNAMIC_DO_REL(map, lazy) \ +- _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, _ELF_CHECK_REL) ++# define ELF_DYNAMIC_DO_REL(map, lazy, skip_ifunc) \ ++ _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, skip_ifunc, _ELF_CHECK_REL) + # else +-# define ELF_DYNAMIC_DO_REL(map, lazy) /* Nothing to do. */ ++# define ELF_DYNAMIC_DO_REL(map, lazy, skip_ifunc) /* Nothing to do. */ + # endif + + # if ! ELF_MACHINE_NO_RELA + # define DO_RELA + # include "do-rel.h" +-# define ELF_DYNAMIC_DO_RELA(map, lazy) \ +- _ELF_DYNAMIC_DO_RELOC (RELA, rela, map, lazy, _ELF_CHECK_REL) ++# define ELF_DYNAMIC_DO_RELA(map, lazy, skip_ifunc) \ ++ _ELF_DYNAMIC_DO_RELOC (RELA, rela, map, lazy, skip_ifunc, _ELF_CHECK_REL) + # else +-# define ELF_DYNAMIC_DO_RELA(map, lazy) /* Nothing to do. */ ++# define ELF_DYNAMIC_DO_RELA(map, lazy, skip_ifunc) /* Nothing to do. */ + # endif + + /* This can't just be an inline function because GCC is too dumb + to inline functions containing inlines themselves. */ +-# define ELF_DYNAMIC_RELOCATE(map, lazy, consider_profile) \ ++# define ELF_DYNAMIC_RELOCATE(map, lazy, consider_profile, skip_ifunc) \ + do { \ + int edr_lazy = elf_machine_runtime_setup ((map), (lazy), \ + (consider_profile)); \ +- ELF_DYNAMIC_DO_REL ((map), edr_lazy); \ +- ELF_DYNAMIC_DO_RELA ((map), edr_lazy); \ ++ ELF_DYNAMIC_DO_REL ((map), edr_lazy, skip_ifunc); \ ++ ELF_DYNAMIC_DO_RELA ((map), edr_lazy, skip_ifunc); \ + } while (0) + + #endif +Index: glibc-2.14/elf/rtld.c +=================================================================== +--- glibc-2.14.orig/elf/rtld.c ++++ glibc-2.14/elf/rtld.c +@@ -543,7 +543,7 @@ _dl_start (void *arg) + /* Relocate ourselves so we can do normal function calls and + data access using the global offset table. */ + +- ELF_DYNAMIC_RELOCATE (&bootstrap_map, 0, 0); ++ ELF_DYNAMIC_RELOCATE (&bootstrap_map, 0, 0, 0); + } + bootstrap_map.l_relocated = 1; + +@@ -1992,8 +1992,9 @@ ERROR: ld.so: object '%s' cannot be load + + /* Relocate the main executable. */ + struct relocate_args args = { .l = l, +- .reloc_mode = (GLRO(dl_lazy) +- ? RTLD_LAZY : 0) }; ++ .reloc_mode = ((GLRO(dl_lazy) ++ ? RTLD_LAZY : 0) ++ | __RTLD_NOIFUNC) }; + _dl_receive_error (print_unresolved, relocate_doit, &args); + + /* This loop depends on the dependencies of the executable to +@@ -2070,7 +2071,8 @@ ERROR: ld.so: object '%s' cannot be load + struct relocate_args args; + struct link_map *l; + +- args.reloc_mode = GLRO(dl_lazy) ? RTLD_LAZY : 0; ++ args.reloc_mode = ((GLRO(dl_lazy) ? RTLD_LAZY : 0) ++ | __RTLD_NOIFUNC); + + l = main_map; + while (l->l_next != NULL) +@@ -2093,7 +2095,7 @@ ERROR: ld.so: object '%s' cannot be load + /* Mark the link map as not yet relocated again. */ + GL(dl_rtld_map).l_relocated = 0; + _dl_relocate_object (&GL(dl_rtld_map), +- main_map->l_scope, 0, 0); ++ main_map->l_scope, __RTLD_NOIFUNC, 0); + } + } + #define VERNEEDTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERNEED)) +Index: glibc-2.14/include/dlfcn.h +=================================================================== +--- glibc-2.14.orig/include/dlfcn.h ++++ glibc-2.14/include/dlfcn.h +@@ -10,6 +10,7 @@ + #define __RTLD_CALLMAP 0x10000000 + #define __RTLD_AUDIT 0x08000000 + #define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */ ++#define __RTLD_NOIFUNC 0x02000000 /* Suppress calling ifunc functions. */ + + #define __LM_ID_CALLER -2 + +Index: glibc-2.14/sysdeps/i386/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/i386/dl-machine.h ++++ glibc-2.14/sysdeps/i386/dl-machine.h +@@ -311,7 +311,7 @@ auto inline void + __attribute ((always_inline)) + elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -347,7 +347,8 @@ elf_machine_rel (struct link_map *map, c + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, + 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + value = ((Elf32_Addr (*) (void)) value) (); + + switch (r_type) +@@ -490,7 +491,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -507,8 +508,8 @@ elf_machine_rela (struct link_map *map, + + if (sym != NULL + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) +- && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, +- 0)) ++ && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) ++ && __builtin_expect (!skip_ifunc, 1)) + value = ((Elf32_Addr (*) (void)) value) (); + + switch (ELF32_R_TYPE (reloc->r_info)) +@@ -655,7 +656,8 @@ elf_machine_rela_relative (Elf32_Addr l_ + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf32_Addr l_addr, const Elf32_Rel *reloc) ++ Elf32_Addr l_addr, const Elf32_Rel *reloc, ++ int skip_ifunc) + { + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -706,19 +708,20 @@ elf_machine_lazy_rel (struct link_map *m + ElfW(Half) ndx = version[ELFW(R_SYM) (r->r_info)] & 0x7fff; + elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], + &map->l_versions[ndx], +- (void *) (l_addr + r->r_offset)); ++ (void *) (l_addr + r->r_offset), skip_ifunc); + } + # ifndef RTLD_BOOTSTRAP + else + elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], NULL, +- (void *) (l_addr + r->r_offset)); ++ (void *) (l_addr + r->r_offset), skip_ifunc); + # endif + } + } + else if (__builtin_expect (r_type == R_386_IRELATIVE, 0)) + { + Elf32_Addr value = map->l_addr + *reloc_addr; +- value = ((Elf32_Addr (*) (void)) value) (); ++ if (__builtin_expect (!skip_ifunc, 1)) ++ value = ((Elf32_Addr (*) (void)) value) (); + *reloc_addr = value; + } + else +@@ -730,7 +733,8 @@ elf_machine_lazy_rel (struct link_map *m + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rela (struct link_map *map, +- Elf32_Addr l_addr, const Elf32_Rela *reloc) ++ Elf32_Addr l_addr, const Elf32_Rela *reloc, ++ int skip_ifunc) + { + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -747,7 +751,8 @@ elf_machine_lazy_rela (struct link_map * + else if (__builtin_expect (r_type == R_386_IRELATIVE, 0)) + { + Elf32_Addr value = map->l_addr + reloc->r_addend; +- value = ((Elf32_Addr (*) (void)) value) (); ++ if (__builtin_expect (!skip_ifunc, 1)) ++ value = ((Elf32_Addr (*) (void)) value) (); + *reloc_addr = value; + } + else +Index: glibc-2.14/sysdeps/ia64/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/ia64/dl-machine.h ++++ glibc-2.14/sysdeps/ia64/dl-machine.h +@@ -377,7 +377,8 @@ elf_machine_rela (struct link_map *map, + const Elf64_Rela *reloc, + const Elf64_Sym *sym, + const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, ++ int skip_ifunc) + { + Elf64_Addr *const reloc_addr = reloc_addr_arg; + const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); +@@ -493,7 +494,8 @@ elf_machine_rela_relative (Elf64_Addr l_ + auto inline void + __attribute ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf64_Addr l_addr, const Elf64_Rela *reloc) ++ Elf64_Addr l_addr, const Elf64_Rela *reloc, ++ int skip_ifunc) + { + Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); +Index: glibc-2.14/sysdeps/powerpc/powerpc32/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/powerpc/powerpc32/dl-machine.h ++++ glibc-2.14/sysdeps/powerpc/powerpc32/dl-machine.h +@@ -280,7 +280,7 @@ extern void _dl_reloc_overflow (struct l + auto inline void __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const Elf32_Sym *const refsym = sym; +@@ -315,7 +315,8 @@ elf_machine_rela (struct link_map *map, + + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + value = ((Elf32_Addr (*) (void)) value) (); + + /* A small amount of code is duplicated here for speed. In libc, +@@ -391,7 +392,8 @@ elf_machine_rela_relative (Elf32_Addr l_ + + auto inline void __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf32_Addr l_addr, const Elf32_Rela *reloc) ++ Elf32_Addr l_addr, const Elf32_Rela *reloc, ++ int skip_ifunc) + { + /* elf_machine_runtime_setup handles this. */ + } +Index: glibc-2.14/sysdeps/powerpc/powerpc64/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/powerpc/powerpc64/dl-machine.h ++++ glibc-2.14/sysdeps/powerpc/powerpc64/dl-machine.h +@@ -558,7 +558,8 @@ elf_machine_rela (struct link_map *map, + const Elf64_Rela *reloc, + const Elf64_Sym *sym, + const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, ++ int skip_ifunc) + { + Elf64_Addr *const reloc_addr = reloc_addr_arg; + const int r_type = ELF64_R_TYPE (reloc->r_info); +@@ -583,7 +584,8 @@ elf_machine_rela (struct link_map *map, + + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + value = resolve_ifunc (value, map, sym_map); + + /* For relocs that don't edit code, return. +@@ -596,12 +598,14 @@ elf_machine_rela (struct link_map *map, + return; + + case R_PPC64_IRELATIVE: +- value = resolve_ifunc (value, map, sym_map); ++ if (__builtin_expect (!skip_ifunc, 1)) ++ value = resolve_ifunc (value, map, sym_map); + *reloc_addr = value; + return; + + case R_PPC64_JMP_IREL: +- value = resolve_ifunc (value, map, sym_map); ++ if (__builtin_expect (!skip_ifunc, 1)) ++ value = resolve_ifunc (value, map, sym_map); + /* Fall thru */ + case R_PPC64_JMP_SLOT: + #ifdef RESOLVE_CONFLICT_FIND_MAP +@@ -852,7 +856,8 @@ elf_machine_rela (struct link_map *map, + + auto inline void __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf64_Addr l_addr, const Elf64_Rela *reloc) ++ Elf64_Addr l_addr, const Elf64_Rela *reloc, ++ int skip_ifunc) + { + /* elf_machine_runtime_setup handles this. */ + } +Index: glibc-2.14/sysdeps/s390/s390-32/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/s390/s390-32/dl-machine.h ++++ glibc-2.14/sysdeps/s390/s390-32/dl-machine.h +@@ -275,7 +275,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -434,7 +434,8 @@ elf_machine_rela_relative (Elf32_Addr l_ + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf32_Addr l_addr, const Elf32_Rela *reloc) ++ Elf32_Addr l_addr, const Elf32_Rela *reloc, ++ int skip_ifunc) + { + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +Index: glibc-2.14/sysdeps/s390/s390-64/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/s390/s390-64/dl-machine.h ++++ glibc-2.14/sysdeps/s390/s390-64/dl-machine.h +@@ -247,7 +247,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, + const Elf64_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf64_Addr *const reloc_addr = reloc_addr_arg; + const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); +@@ -413,7 +413,8 @@ elf_machine_rela_relative (Elf64_Addr l_ + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf64_Addr l_addr, const Elf64_Rela *reloc) ++ Elf64_Addr l_addr, const Elf64_Rela *reloc, ++ int skip_ifunc) + { + Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); +Index: glibc-2.14/sysdeps/sh/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/sh/dl-machine.h ++++ glibc-2.14/sysdeps/sh/dl-machine.h +@@ -268,7 +268,7 @@ auto inline void + __attribute ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -454,7 +454,8 @@ elf_machine_rela_relative (Elf32_Addr l_ + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf32_Addr l_addr, const Elf32_Rela *reloc) ++ Elf32_Addr l_addr, const Elf32_Rela *reloc, ++ int skip_ifunc) + { + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + /* Check for unexpected PLT reloc type. */ +Index: glibc-2.14/sysdeps/sparc/sparc32/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/sparc/sparc32/dl-machine.h ++++ glibc-2.14/sysdeps/sparc/sparc32/dl-machine.h +@@ -347,7 +347,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const Elf32_Sym *const refsym = sym; +@@ -397,7 +397,8 @@ elf_machine_rela (struct link_map *map, + + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + { + value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); + } +@@ -552,7 +553,8 @@ elf_machine_rela_relative (Elf32_Addr l_ + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf32_Addr l_addr, const Elf32_Rela *reloc) ++ Elf32_Addr l_addr, const Elf32_Rela *reloc, ++ int skip_ifunc) + { + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -562,7 +564,8 @@ elf_machine_lazy_rel (struct link_map *m + else if (r_type == R_SPARC_JMP_IREL) + { + Elf32_Addr value = map->l_addr + reloc->r_addend; +- value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); ++ if (__builtin_expect (!skip_ifunc, 1)) ++ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); + sparc_fixup_plt (reloc, reloc_addr, value, 1, 1); + } + else if (r_type == R_SPARC_NONE) +Index: glibc-2.14/sysdeps/sparc/sparc64/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/sparc/sparc64/dl-machine.h ++++ glibc-2.14/sysdeps/sparc/sparc64/dl-machine.h +@@ -375,7 +375,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, + const Elf64_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf64_Addr *const reloc_addr = reloc_addr_arg; + #if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP +@@ -429,7 +429,8 @@ elf_machine_rela (struct link_map *map, + + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); + + switch (r_type) +@@ -647,7 +648,8 @@ elf_machine_rela_relative (Elf64_Addr l_ + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf64_Addr l_addr, const Elf64_Rela *reloc) ++ Elf64_Addr l_addr, const Elf64_Rela *reloc, ++ int skip_ifunc) + { + Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); +@@ -658,7 +660,8 @@ elf_machine_lazy_rel (struct link_map *m + || r_type == R_SPARC_IRELATIVE) + { + Elf64_Addr value = map->l_addr + reloc->r_addend; +- value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); ++ if (__builtin_expect (!skip_ifunc, 1)) ++ value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); + if (r_type == R_SPARC_JMP_IREL) + { + /* 'high' is always zero, for large PLT entries the linker +Index: glibc-2.14/sysdeps/x86_64/dl-machine.h +=================================================================== +--- glibc-2.14.orig/sysdeps/x86_64/dl-machine.h ++++ glibc-2.14/sysdeps/x86_64/dl-machine.h +@@ -261,7 +261,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, + const Elf64_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf64_Addr *const reloc_addr = reloc_addr_arg; + const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); +@@ -299,7 +299,8 @@ elf_machine_rela (struct link_map *map, + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, + 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + value = ((Elf64_Addr (*) (void)) value) (); + + # if defined RTLD_BOOTSTRAP && !USE___THREAD +@@ -470,7 +471,8 @@ elf_machine_rela_relative (Elf64_Addr l_ + auto inline void + __attribute ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf64_Addr l_addr, const Elf64_Rela *reloc) ++ Elf64_Addr l_addr, const Elf64_Rela *reloc, ++ int skip_ifunc) + { + Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); +@@ -497,7 +499,8 @@ elf_machine_lazy_rel (struct link_map *m + else if (__builtin_expect (r_type == R_X86_64_IRELATIVE, 0)) + { + Elf64_Addr value = map->l_addr + reloc->r_addend; +- value = ((Elf64_Addr (*) (void)) value) (); ++ if (__builtin_expect (!skip_ifunc, 1)) ++ value = ((Elf64_Addr (*) (void)) value) (); + *reloc_addr = value; + } + else diff --git a/glibc.changes b/glibc.changes index df2a1f4..854bdb0 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,31 @@ +------------------------------------------------------------------- +Tue Oct 11 09:51:46 UTC 2011 - aj@suse.de + +- Update to current git 4f2b767fef50 + * Correctly reparse group line after enlarging the buffer + * 2.14.1 release + +------------------------------------------------------------------- +Mon Oct 10 14:07:44 UTC 2011 - aj@suse.de + +- Fix tracing with ifuncs. + +------------------------------------------------------------------- +Tue Oct 4 14:10:13 UTC 2011 - uli@suse.com + +- cross-build: use %__cc, %__cxx, %_build, %_host +- mipsel: install ports, disable FP + +------------------------------------------------------------------- +Fri Sep 30 17:14:04 CEST 2011 - dmueller@suse.de + +- avoid build failure on %%arm + +------------------------------------------------------------------- +Thu Sep 29 07:40:25 UTC 2011 - adrian@suse.de + +- just use %arm for right arm architectures + ------------------------------------------------------------------- Tue Sep 27 11:24:02 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 2f28b07..e37a981 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,11 +77,12 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -Version: 2.14 -Release: 11 +Version: 2.14.1 +Release: 12 +%define git_id 4f2b767fef50 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-8bd683657e8a.tar.bz2 +Source: glibc-%{version}-%{git_id}.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -206,10 +207,14 @@ Patch72: glibc-2.15-avoid-vsyscall.patch Patch73: glibc-resolv-assert.diff # PATCH-FIX-OPENSUSE Run ctors (bnc#717671) aj@suse.de Patch74: glibc-2.14-fix-ctors.patch +# PATCH-FIX-UPSTREAM Fix trace and ifuncs aj@suse.de +Patch75: glibc-2.15-ifunc-trace.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de Patch81: crypt_blowfish-1.2-versioning.diff +# PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de +Patch82: crypt_blowfish-1.2-hack_around_arm.diff %description The GNU C Library provides the most important standard libraries used @@ -366,9 +371,10 @@ versions of your software. %endif %prep -%ifarch %arm armv5tel armv7l armv8l +%ifarch %arm # add glibc-ports for arm %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 +mv glibc-ports-* ports %else # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 @@ -378,6 +384,9 @@ tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} %patch80 -p1 %patch81 -p1 +%ifarch %arm +%patch82 +%endif popd mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ @@ -442,6 +451,7 @@ rm nscd/s-stamp %patch72 -p1 %patch73 -p1 %patch74 -p1 +%patch75 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -486,8 +496,8 @@ echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" -BuildCC="gcc" -BuildCCplus="g++" +BuildCC="%__cc" +BuildCCplus="%__cxx" add_ons=",libidn" PARALLEL="%{?_smp_mflags}" # @@ -534,11 +544,14 @@ PARALLEL="%{?_smp_mflags}" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm armv5tel armv7l armv8l - add_ons=$add_ons,glibc-ports-%{version} +%ifarch %arm + add_ons=$add_ons,ports # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif +%ifarch mipsel + add_ons=$add_ons,ports +%endif configure_and_build_glibc() { local dirname="$1"; shift @@ -554,14 +567,13 @@ configure_and_build_glibc() { %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif -%ifarch %arm armv5tel armv7l armv8l - --build=%{_target_cpu}-suse-linux-gnueabi \ -%else - --build=%{_target_cpu}-suse-linux \ -%endif + --build=%{_build} --host=%{_host} \ %ifarch ppc ppc64 %{ix86} x86_64 --enable-multi-arch \ %endif +%ifarch mipsel + --without-fp \ +%endif %if %{exp_malloc} --enable-experimental-malloc \ %endif From 6d945b5564ac69d0941c04307fc5676a4eda97897adea1c00e1197833835df27 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 18 Oct 2011 12:04:22 +0000 Subject: [PATCH 084/204] Accepting request 88136 from Base:System Fix fma, fmaf (forwarded request 88135 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/88136 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=88 --- glibc.changes | 6 ++++++ libm-x86-64.diff.bz2 | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/glibc.changes b/glibc.changes index 854bdb0..268b696 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de + +- Remove fma, fmaf from libm-x86-64.diff.bz2, they are not accurate + (bso#13304). + ------------------------------------------------------------------- Tue Oct 11 09:51:46 UTC 2011 - aj@suse.de diff --git a/libm-x86-64.diff.bz2 b/libm-x86-64.diff.bz2 index 670bdcb..109de13 100644 --- a/libm-x86-64.diff.bz2 +++ b/libm-x86-64.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a64d26aaeef0d9ee062260b5540910b138a6e0df89033dd4fe4b39d905574b19 -size 76334 +oid sha256:65537d54c9f89d1d54123b450e39975177decba4131fb99f3392981b10887bcb +size 75446 From c81fdb57f6c15b84f2fdaca9eaa8197ae6047f5db753334ea0f85a01a5d7bf74 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 21 Oct 2011 14:10:21 +0000 Subject: [PATCH 085/204] Accepting request 88821 from Base:System Ignore failure of chkstat (bnc#725145) (forwarded request 88819 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/88821 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=90 --- glibc.changes | 11 +++++++++++ glibc.spec | 2 ++ glibc_post_upgrade.c | 29 ++++++++++++++++++----------- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/glibc.changes b/glibc.changes index 268b696..35a1292 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de + +- Ignore failure of chkstat (bnc#725145). + +------------------------------------------------------------------- +Wed Oct 19 12:07:41 UTC 2011 - aj@suse.de + +- Provide glibc-static from glibc-devel-static to make packaging + easier. glibc-static is the Fedora name. + ------------------------------------------------------------------- Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index e37a981..1a57909 100644 --- a/glibc.spec +++ b/glibc.spec @@ -331,6 +331,8 @@ library. Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} +# Provide Fedora name for package to make packaging easier +Provides: %{name}-static %description devel-static The glibc-devel-static package contains the C library static libraries diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index cde2295..f351234 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -15,14 +15,14 @@ #include #include -#define verbose_exec(failcode, path...) \ +#define verbose_exec(failcode, fail_ok, path...) \ do \ { \ char *const arr[] = { path, NULL }; \ - vexec (failcode, arr); \ + vexec (failcode, fail_ok, arr); \ } while (0) -__attribute__((noinline)) void vexec (int failcode, char *const path[]); +__attribute__((noinline)) void vexec (int failcode, int fail_ok, char *const path[]); __attribute__((noinline)) void says (const char *str); __attribute__((noinline)) void sayn (long num); __attribute__((noinline)) void message (char *const path[]); @@ -116,21 +116,21 @@ main (void) before running one of the lib's %post scriptlet. /sbin/ldconfig will then be run by the other arch's %post. */ if (access ("/sbin/ldconfig", X_OK) == 0) - verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig", "-X"); + verbose_exec (110, 0, "/sbin/ldconfig", "/sbin/ldconfig", "-X"); if (utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL) == 0) { #ifndef ICONVCONFIG #define ICONVCONFIG "/usr/sbin/iconvconfig" #endif - verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig", + verbose_exec (113, 0, ICONVCONFIG, "/usr/sbin/iconvconfig", "-o", GCONV_MODULES_DIR"/gconv-modules.cache", "--nostdlib", GCONV_MODULES_DIR); } /* Implement %set_permissions %{_libdir}/pt_chown. */ if (access ("/usr/bin/chkstat", X_OK) == 0) - verbose_exec (114, "/usr/bin/chkstat", "/usr/bin/chkstat", + verbose_exec (114, 1, "/usr/bin/chkstat", "/usr/bin/chkstat", "-n", "--set", "--system", "/usr/lib/pt_chown", "/usr/lib64/pt_chown"); @@ -148,7 +148,7 @@ main (void) _exit (0); if (check_elf ("/proc/1/exe")) - verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u"); + verbose_exec (116, 0, "/sbin/telinit", "/sbin/telinit", "u"); #if 0 /* Check if we can safely condrestart sshd. */ @@ -157,7 +157,7 @@ main (void) && access ("/bin/bash", X_OK) == 0) { if (check_elf ("/usr/sbin/sshd")) - verbose_exec (121, "/sbin/service", "/sbin/service", "sshd", "condrestart"); + verbose_exec (121, 0, "/sbin/service", "/sbin/service", "sshd", "condrestart"); } #endif @@ -165,7 +165,7 @@ main (void) } void -vexec (int failcode, char *const path[]) +vexec (int failcode, int fail_ok, char *const path[]) { pid_t pid; int status, save_errno; @@ -201,8 +201,15 @@ vexec (int failcode, char *const path[]) message (path); says (" child exited with exit code "); sayn (WEXITSTATUS (status)); - says ("\n"); - _exit (WEXITSTATUS (status)); + if (fail_ok) + { + says (" (ignored) \n"); + } + else + { + says ("\n"); + _exit (WEXITSTATUS (status)); + } } } From a1ca78772ea3688d811ba6a00363dfdb18b01182293384230c384e6d216062f2 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 8 Nov 2011 08:24:14 +0000 Subject: [PATCH 086/204] Accepting request 90503 from Base:System - update glibc-ports to 2.14.1: * Align the constant pool in start.S to 4 bytes. * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. - Fix unwinding crash when using clone() OBS-URL: https://build.opensuse.org/request/show/90503 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=91 --- glibc-arm-clone-unwind-fix.diff | 23 +++++++++++++++++++++++ glibc-ports-2.14.1.tar.bz2 | 3 +++ glibc-ports-2.14.tar.bz2 | 3 --- glibc.changes | 8 ++++++++ glibc.spec | 5 ++++- 5 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 glibc-arm-clone-unwind-fix.diff create mode 100644 glibc-ports-2.14.1.tar.bz2 delete mode 100644 glibc-ports-2.14.tar.bz2 diff --git a/glibc-arm-clone-unwind-fix.diff b/glibc-arm-clone-unwind-fix.diff new file mode 100644 index 0000000..67ff4fd --- /dev/null +++ b/glibc-arm-clone-unwind-fix.diff @@ -0,0 +1,23 @@ +--- ports/sysdeps/unix/sysv/linux/arm/clone.S ++++ ports/sysdeps/unix/sysv/linux/arm/clone.S +@@ -81,8 +81,11 @@ + RETINSTR(, lr) + + cfi_startproc +- cfi_undefined (lr) ++PSEUDO_END (__clone) ++ + 1: ++ .fnstart ++ .cantunwind + #ifdef RESET_PID + tst ip, #CLONE_THREAD + bne 3f +@@ -116,6 +119,6 @@ + @ and we are done, passing the return value through r0 + b PLTJMP(HIDDEN_JUMPTARGET(_exit)) + +-PSEUDO_END (__clone) ++ .fnend + + weak_alias (__clone, clone) diff --git a/glibc-ports-2.14.1.tar.bz2 b/glibc-ports-2.14.1.tar.bz2 new file mode 100644 index 0000000..fc95bf9 --- /dev/null +++ b/glibc-ports-2.14.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0c20932cf850dd722662162d69658c1bca45759121a32e502c5dd4889e071c6 +size 630640 diff --git a/glibc-ports-2.14.tar.bz2 b/glibc-ports-2.14.tar.bz2 deleted file mode 100644 index 663c30d..0000000 --- a/glibc-ports-2.14.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:808f0f6938af4d17fe6c091597df02d85ca5b4a3da21daf5065cba9a32ec7d02 -size 627448 diff --git a/glibc.changes b/glibc.changes index 35a1292..7774edc 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de + +- update glibc-ports to 2.14.1: + * Align the constant pool in start.S to 4 bytes. + * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. +- Fix unwinding crash when using clone() + ------------------------------------------------------------------- Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 1a57909..ca70ab3 100644 --- a/glibc.spec +++ b/glibc.spec @@ -83,7 +83,7 @@ Release: 12 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.bz2 -Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.bz2 +Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{version}.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source8: nsswitch.conf @@ -215,6 +215,8 @@ Patch80: crypt_blowfish-1.2-sha.diff Patch81: crypt_blowfish-1.2-versioning.diff # PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de Patch82: crypt_blowfish-1.2-hack_around_arm.diff +# PATCH-FIX-UPSTREAM fix unwinding when using clone() +Patch83: glibc-arm-clone-unwind-fix.diff %description The GNU C Library provides the most important standard libraries used @@ -377,6 +379,7 @@ versions of your software. # add glibc-ports for arm %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 mv glibc-ports-* ports +%patch83 %else # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 From 34872e78b0ebbae6dba362e188568dca982599f6d75c602b6d4776fe87197356 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 14 Nov 2011 10:52:27 +0000 Subject: [PATCH 087/204] Accepting request 90938 from Base:System - fix building with ports again: * ifuncs tracing backport requires adjustments - avoid using asynchronous-unwind-tables only during configure, but still built the library with unwind tables enabled - replace arm build hack with a proper solution ------------------------------------------------------------------ - armv8l architecture does not exist (forwarded request 90934 from dirkmueller) OBS-URL: https://build.opensuse.org/request/show/90938 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=92 --- crypt_blowfish-1.2-hack_around_arm.diff | 16 ++--- glibc-ports-2.15-ifunc-trace.patch | 95 +++++++++++++++++++++++++ glibc.changes | 17 ++++- glibc.spec | 42 +++++++---- nscd-avoid-gcc-warning.diff | 11 +++ 5 files changed, 155 insertions(+), 26 deletions(-) create mode 100644 glibc-ports-2.15-ifunc-trace.patch create mode 100644 nscd-avoid-gcc-warning.diff diff --git a/crypt_blowfish-1.2-hack_around_arm.diff b/crypt_blowfish-1.2-hack_around_arm.diff index 95a0887..3beb8ea 100644 --- a/crypt_blowfish-1.2-hack_around_arm.diff +++ b/crypt_blowfish-1.2-hack_around_arm.diff @@ -1,13 +1,9 @@ --- x86.S +++ x86.S -@@ -196,8 +196,8 @@ - hlt - jmp BF_die - --#endif -- - #if defined(__ELF__) && defined(__linux__) - .section .note.GNU-stack,"",@progbits +@@ -199,5 +199,5 @@ + #endif + + #if defined(__ELF__) && defined(__linux__) +-.section .note.GNU-stack,"",@progbits ++.section .note.GNU-stack,"",%progbits #endif -+ -+#endif diff --git a/glibc-ports-2.15-ifunc-trace.patch b/glibc-ports-2.15-ifunc-trace.patch new file mode 100644 index 0000000..ae5861c --- /dev/null +++ b/glibc-ports-2.15-ifunc-trace.patch @@ -0,0 +1,95 @@ +commit 0507f293c9b67d8eec92e8178308d72f1ed88449 +Author: Andreas Schwab +Date: Wed Oct 5 11:51:41 2011 +0200 + + arm: don't call ifunc functions in trace mode + +--- a/sysdeps/arm/dl-machine.h ++++ b/sysdeps/arm/dl-machine.h +@@ -335,7 +335,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -369,9 +369,9 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; + + if (sym != NULL +- && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, +- 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + value = ((Elf32_Addr (*) (void)) value) (); + + switch (r_type) +@@ -430,7 +430,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + } + case R_ARM_TLS_DESC: + { +- struct tlsdesc volatile *td = ++ struct tlsdesc volatile *td = + (struct tlsdesc volatile *)reloc_addr; + + # ifndef RTLD_BOOTSTRAP +@@ -454,10 +454,10 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + else + # endif + # endif +- { ++ { + td->argument.value = value + sym_map->l_tls_offset; + td->entry = _dl_tlsdesc_return; +- } ++ } + } + } + break; +@@ -525,7 +525,7 @@ auto inline void + __attribute__ ((always_inline)) + elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, +- void *const reloc_addr_arg) ++ void *const reloc_addr_arg, int skip_ifunc) + { + Elf32_Addr *const reloc_addr = reloc_addr_arg; + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -543,9 +543,9 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; + + if (sym != NULL +- && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, +- 0) +- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) ++ && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) ++ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) ++ && __builtin_expect (!skip_ifunc, 1)) + value = ((Elf32_Addr (*) (void)) value) (); + + switch (r_type) +@@ -656,7 +656,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, + auto inline void + __attribute__ ((always_inline)) + elf_machine_lazy_rel (struct link_map *map, +- Elf32_Addr l_addr, const Elf32_Rel *reloc) ++ Elf32_Addr l_addr, const Elf32_Rel *reloc, ++ int skip_ifunc) + { + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); +@@ -674,8 +675,8 @@ elf_machine_lazy_rel (struct link_map *map, + (struct tlsdesc volatile *)reloc_addr; + + /* The linker must have given us the parameter we need in the +- first GOT entry, and left the second one empty. We fill the +- last with the resolver address */ ++ first GOT entry, and left the second one empty. We fill the ++ last with the resolver address */ + assert (td->entry == 0); + td->entry = (void*)(D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_PLT)]) + + map->l_addr); diff --git a/glibc.changes b/glibc.changes index 7774edc..85666e2 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,4 +1,19 @@ ------------------------------------------------------------------- +Tue Nov 8 22:55:40 CET 2011 - dmueller@suse.de + +- make glibc-static provide versioned + +------------------------------------------------------------------- +Tue Nov 8 18:20:39 CET 2011 - dmueller@suse.de + +- fix building with ports again: + * ifuncs tracing backport requires adjustments + +- avoid using asynchronous-unwind-tables only during configure, + but still built the library with unwind tables enabled +- replace arm build hack with a proper solution + +------------------------------------------------------------------ Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de - update glibc-ports to 2.14.1: @@ -74,8 +89,8 @@ Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de ------------------------------------------------------------------- Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de -- add armv8l architecture - don't enforce armv5tel for all arm architectures anymore +- armv8l architecture does not exist ------------------------------------------------------------------- Tue Sep 20 07:54:21 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index ca70ab3..82121fe 100644 --- a/glibc.spec +++ b/glibc.spec @@ -80,10 +80,12 @@ Obsoletes: glibc-32bit Version: 2.14.1 Release: 12 %define git_id 4f2b767fef50 +%define glibc_ports_ver %version Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.bz2 -Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{version}.tar.bz2 +%define glibc_ports_dir glibc-ports-%{glibc_ports_ver} +Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{glibc_ports_ver}.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source8: nsswitch.conf @@ -209,6 +211,8 @@ Patch73: glibc-resolv-assert.diff Patch74: glibc-2.14-fix-ctors.patch # PATCH-FIX-UPSTREAM Fix trace and ifuncs aj@suse.de Patch75: glibc-2.15-ifunc-trace.patch +# PATCH-FIX-UPSTREAM Fix trace and ifuncs (talk to aj@suse.de) +Patch76: glibc-ports-2.15-ifunc-trace.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de @@ -217,6 +221,8 @@ Patch81: crypt_blowfish-1.2-versioning.diff Patch82: crypt_blowfish-1.2-hack_around_arm.diff # PATCH-FIX-UPSTREAM fix unwinding when using clone() Patch83: glibc-arm-clone-unwind-fix.diff +# PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail +Patch84: nscd-avoid-gcc-warning.diff %description The GNU C Library provides the most important standard libraries used @@ -329,12 +335,11 @@ These libraries are needed to develop programs which use the standard C library. %package devel-static - Summary: C library static libraries for -static linking Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier -Provides: %{name}-static +Provides: %{name}-static = %version %description devel-static The glibc-devel-static package contains the C library static libraries @@ -378,8 +383,10 @@ versions of your software. %ifarch %arm # add glibc-ports for arm %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 -mv glibc-ports-* ports -%patch83 +pushd %glibc_ports_dir +%patch76 -p1 +%patch83 -p1 +popd %else # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 @@ -389,9 +396,7 @@ tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} %patch80 -p1 %patch81 -p1 -%ifarch %arm %patch82 -%endif popd mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ @@ -457,6 +462,7 @@ rm nscd/s-stamp %patch73 -p1 %patch74 -p1 %patch75 -p1 +%patch84 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -549,14 +555,11 @@ PARALLEL="%{?_smp_mflags}" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm - add_ons=$add_ons,ports +%ifarch %arm mipsel + add_ons=$add_ons,%glibc_ports_dir # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif -%ifarch mipsel - add_ons=$add_ons,ports -%endif configure_and_build_glibc() { local dirname="$1"; shift @@ -564,7 +567,15 @@ configure_and_build_glibc() { local addons="$1"; shift mkdir "cc-$dirname" cd "cc-$dirname" - CFLAGS="$cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ +%ifarch %arm + # remove asynchronous-unwind-tables during configure as it causes + # some checks to fail spuriously on %arm + conf_cflags="${cflags/-fasynchronous-unwind-tables/}" + conf_cflags="${conf_cflags/-funwind-tables/}" +%else + conf_cflags="$cflags" +%endif + CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons --without-cvs --enable-profile \ @@ -585,7 +596,8 @@ configure_and_build_glibc() { --with-tls --with-__thread --enable-kernel=%{enablekernel} \ --enable-bind-now # Should we enable --enable-nss-crypt to build use freebl3 hash functions? - make $PARALLEL + # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) + make $PARALLEL CFLAGS="$cflags" cd .. } @@ -938,7 +950,7 @@ exit 0 %ifarch x86_64 /%{_lib}/ld-linux-x86-64.so.2 %else - %ifarch %arm armv5tel armv7l armv8l + %ifarch %arm /%{_lib}/ld-linux.so.3 %else /%{_lib}/ld-linux.so.2 diff --git a/nscd-avoid-gcc-warning.diff b/nscd-avoid-gcc-warning.diff new file mode 100644 index 0000000..2737722 --- /dev/null +++ b/nscd-avoid-gcc-warning.diff @@ -0,0 +1,11 @@ +--- nscd/connections.c ++++ nscd/connections.c +@@ -1717,6 +1717,8 @@ + ++nready; + } + /* NOTREACHED */ ++ assert(0); ++ return 0; + } + + From bc6d1984a81639da21063c8a4011053955d79da81aa59ea64b1ed9ddec812bf6 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 14 Nov 2011 12:58:56 +0000 Subject: [PATCH 088/204] Accepting request 91344 from Base:System - check-build.sh: accept kernel 3.x OBS-URL: https://build.opensuse.org/request/show/91344 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=93 --- check-build.sh | 5 ++++- glibc.changes | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/check-build.sh b/check-build.sh index c429e51..fed8e7f 100644 --- a/check-build.sh +++ b/check-build.sh @@ -13,7 +13,10 @@ fi # get kernel version OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" -if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then + +if test ${version[0]} -gt 2 ; then + : # okay +elif test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then echo "FATAL: kernel too old, need kernel >= 2.6.16 for this package" 1>&2 exit 1 fi diff --git a/glibc.changes b/glibc.changes index 85666e2..51b81dc 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Nov 14 12:02:06 CET 2011 - ro@suse.de + +- check-build.sh: accept kernel 3.x + ------------------------------------------------------------------- Tue Nov 8 22:55:40 CET 2011 - dmueller@suse.de From 92e78e6e611152cc7b01319f2f30081bf3848f02eeffb8421938ca56c3667961 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 18 Nov 2011 14:45:35 +0000 Subject: [PATCH 089/204] Accepting request 91923 from Base:System Remove duplicated locales from glibc-2.3.locales.diff.bz2 (forwarded request 91922 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/91923 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=94 --- glibc-2.3.locales.diff.bz2 | 4 ++-- glibc.changes | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 925c0f4..43f21af 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a623420e540731e6b0dca8ce2212fdfe048fa8b38c03eb210a8cf168b63d874e -size 328634 +oid sha256:23c4a947e7dee14c05556bc30c1dded5458a7b9ba8b306cb7bce93dd57fb9b96 +size 329206 diff --git a/glibc.changes b/glibc.changes index 51b81dc..2b1039d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de + +- Remove duplicated locales from glibc-2.3.locales.diff.bz2 + ------------------------------------------------------------------- Mon Nov 14 12:02:06 CET 2011 - ro@suse.de From 82646794622817b87c6466ae38f025997854c3fd0049a3629acfab77098315f0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 25 Nov 2011 14:52:34 +0000 Subject: [PATCH 090/204] Accepting request 93487 from Base:System Update glibc-ports tar ball. (forwarded request 93486 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/93487 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=95 --- baselibs.conf | 2 ++ glibc-ports-2.14.1.tar.bz2 | 4 ++-- glibc.changes | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/baselibs.conf b/baselibs.conf index 915a546..e5677f6 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -13,6 +13,8 @@ glibc-locale glibc-devel arch i586 block! +^/usr/include/gnu/stubs-.*\.h$ +glibc-devel-static + arch i586 block! glibc-profile arch i586 block! glibc-utils diff --git a/glibc-ports-2.14.1.tar.bz2 b/glibc-ports-2.14.1.tar.bz2 index fc95bf9..bc7b5bb 100644 --- a/glibc-ports-2.14.1.tar.bz2 +++ b/glibc-ports-2.14.1.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c0c20932cf850dd722662162d69658c1bca45759121a32e502c5dd4889e071c6 -size 630640 +oid sha256:1c830afb6d4aa166edaa09ec539580377ecbb16ba655d0aad6f5cb5a9a269aa9 +size 630641 diff --git a/glibc.changes b/glibc.changes index 2b1039d..49378cb 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Nov 24 14:02:55 UTC 2011 - aj@suse.de + +- Updated glibc-ports-2.14.1.tar.bz2 from ftp.gnu.org. + +------------------------------------------------------------------- +Thu Nov 24 09:25:14 UTC 2011 - aj@suse.com + +- Create glibc-devel-static baselibs (bnc#732349). + ------------------------------------------------------------------- Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de From cd3e10b1bf09f974f90a2efe01f32bd125c363033a02830eb82e4676c1f5799f Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 2 Dec 2011 08:26:50 +0000 Subject: [PATCH 091/204] Accepting request 94210 from Base:System Fix printf problem (forwarded request 94209 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/94210 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=96 --- glibc-2.14-32args-printf.patch | 24 ++++++++++++++++++++++++ glibc.changes | 5 +++++ glibc.spec | 3 +++ 3 files changed, 32 insertions(+) create mode 100644 glibc-2.14-32args-printf.patch diff --git a/glibc-2.14-32args-printf.patch b/glibc-2.14-32args-printf.patch new file mode 100644 index 0000000..cbd27cc --- /dev/null +++ b/glibc-2.14-32args-printf.patch @@ -0,0 +1,24 @@ +# patch to fix printf when register_printf_function is in use and the format to +# printf contains more than 64 elements. +# +# extend_alloca modifies nspecs_max (2nd arg) with the size of the space, not the +# number of elements. Use a temporary to store the return value. Explicitly set the correct size. +# +# bnc#733140 +# +# Rich Coe (rcoe@wi.rr.com) +# +--- stdio-common/vfprintf.c.orig 2011-11-28 11:53:32.937976831 -0600 ++++ stdio-common/vfprintf.c 2011-11-28 16:07:35.546839533 -0600 +@@ -1683,8 +1683,10 @@ do_positional: + { + /* Extend the array of format specifiers. */ + struct printf_spec *old = specs; +- specs = extend_alloca (specs, nspecs_max, ++ size_t nsize = nspecs_max; ++ specs = extend_alloca (specs, nsize, + 2 * nspecs_max * sizeof (*specs)); ++ nspecs_max = 2 * nspecs_max; + + /* Copy the old array's elements to the new space. */ + memmove (specs, old, nspecs * sizeof (struct printf_spec)); diff --git a/glibc.changes b/glibc.changes index 49378cb..a7c8878 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com + +- fix printf with many args and printf arg specifiers (bnc#733140) + ------------------------------------------------------------------- Thu Nov 24 14:02:55 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 82121fe..d3b0b14 100644 --- a/glibc.spec +++ b/glibc.spec @@ -223,6 +223,8 @@ Patch82: crypt_blowfish-1.2-hack_around_arm.diff Patch83: glibc-arm-clone-unwind-fix.diff # PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail Patch84: nscd-avoid-gcc-warning.diff +# PATCH-FIX-OPENSUSE fix printf with > 32 args and printf specifiers bnc#733140, bso#13446 +Patch85: glibc-2.14-32args-printf.patch %description The GNU C Library provides the most important standard libraries used @@ -463,6 +465,7 @@ rm nscd/s-stamp %patch74 -p1 %patch75 -p1 %patch84 +%patch85 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! From 4a9295a63bc734332f0c40af26e2ef8790ad20af5748ed1ff6e3eac5943d35e7 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 6 Dec 2011 17:13:10 +0000 Subject: [PATCH 092/204] replace license with spdx.org variant OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=97 --- glibc.spec | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/glibc.spec b/glibc.spec index d3b0b14..dc045e3 100644 --- a/glibc.spec +++ b/glibc.spec @@ -19,7 +19,7 @@ %define crypt_bf_version 1.2 Name: glibc -License: GPLv2+ +License: GPL-2.0+ Summary: Standard Shared Libraries (from the GNU C Library) Group: System/Libraries BuildRequires: gcc-c++ @@ -233,7 +233,7 @@ library, and the POSIX thread library. A system is not functional without these libraries. %package info -License: GPLv2+ +License: GPL-2.0+ Summary: Info Files for the GNU C Library Group: Documentation/Other Requires(post): %{install_info_prereq} @@ -246,7 +246,7 @@ info files. Due to a lack of resources, this documentation is not complete and is partially out of date. %package html -License: GPLv2+ ; LGPLv2.1+ +License: GPL-2.0+ ; LGPL-2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML BuildArch: noarch @@ -257,7 +257,7 @@ to a lack of resources, this documentation is not complete and is partially out of date. %package i18ndata -License: LGPLv2.1+ +License: LGPL-2.1+ Summary: Database Sources for 'locale' Group: System/Libraries BuildArch: noarch @@ -269,7 +269,7 @@ not necessary to install this packages, the data files are already created. %package locale -License: GPLv2+ ; LGPLv2.1+ +License: GPL-2.0+ ; LGPL-2.1+ Summary: Locale Data for Localized Programs Group: System/Libraries Requires(post): /bin/cat @@ -286,7 +286,7 @@ Obsoletes: glibc-locale-32bit Locale data for the internationalisation features of the GNU C library. %package -n nscd -License: LGPLv2.1+ +License: LGPL-2.1+ Summary: Name Service Caching Daemon Group: System/Daemons Provides: aaa_base:/etc/init.d/nscd @@ -300,7 +300,7 @@ Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. %package profile -License: LGPLv2.1+ +License: LGPL-2.1+ Summary: Libc Profiling and Debugging Versions Group: Development/Libraries/C and C++ Requires: glibc = %{version} @@ -317,7 +317,7 @@ This package contains special versions of the GNU C library which are necessary for profiling and debugging. %package devel -License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Summary: Include Files and Libraries Mandatory for Development Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 @@ -349,7 +349,7 @@ for -static linking. You don't need these, unless you link statically, which is highly discouraged. %package utils -License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Summary: Development utilities from GNU C library Group: Development/Languages/C and C++ Requires: glibc = %{version} @@ -364,7 +364,7 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 %package obsolete -License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Summary: Obsolete Shared Libraries from the GNU C Library Group: System/Libraries Requires: glibc = %{version} From 2d6619daf3c7166bbe0a8e5cc1828118b536ad4aafb54a80d379e9ed433b23e2 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 21 Dec 2011 13:56:41 +0000 Subject: [PATCH 093/204] Accepting request 97013 from Base:System Fix timezone loader overflow. (forwarded request 97011 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/97013 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=98 --- glibc.changes | 6 +++ glibc.spec | 3 ++ tzfile-corruption-fix.patch | 100 ++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 tzfile-corruption-fix.patch diff --git a/glibc.changes b/glibc.changes index a7c8878..8382aa1 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de + +- Fix timezone loader overflow (bnc#735850,CVE-2009-5029) (patch + tzfile-corruption-fix.patch) + ------------------------------------------------------------------- Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com diff --git a/glibc.spec b/glibc.spec index dc045e3..5e1db75 100644 --- a/glibc.spec +++ b/glibc.spec @@ -225,6 +225,8 @@ Patch83: glibc-arm-clone-unwind-fix.diff Patch84: nscd-avoid-gcc-warning.diff # PATCH-FIX-OPENSUSE fix printf with > 32 args and printf specifiers bnc#733140, bso#13446 Patch85: glibc-2.14-32args-printf.patch +# PATCH-FIX-UPSTREAM fix tzfile heap overrun bnc#735850 - aj@suse.de +Patch86: tzfile-corruption-fix.patch %description The GNU C Library provides the most important standard libraries used @@ -466,6 +468,7 @@ rm nscd/s-stamp %patch75 -p1 %patch84 %patch85 +%patch86 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! diff --git a/tzfile-corruption-fix.patch b/tzfile-corruption-fix.patch new file mode 100644 index 0000000..b50b726 --- /dev/null +++ b/tzfile-corruption-fix.patch @@ -0,0 +1,100 @@ +2011-12-17 Ulrich Drepper + + [BZ #13506] + * time/tzfile.c (__tzfile_read): Check values from file header. + +diff --git a/time/tzfile.c b/time/tzfile.c +index 144e20b..402389c 100644 +--- a/time/tzfile.c ++++ b/time/tzfile.c +@@ -234,23 +234,58 @@ __tzfile_read (const char *file, size_t extra, char **extrap) + goto read_again; + } + ++ if (__builtin_expect (num_transitions ++ > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1)) ++ / (sizeof (time_t) + 1)), 0)) ++ goto lose; + total_size = num_transitions * (sizeof (time_t) + 1); + total_size = ((total_size + __alignof__ (struct ttinfo) - 1) + & ~(__alignof__ (struct ttinfo) - 1)); + types_idx = total_size; +- total_size += num_types * sizeof (struct ttinfo) + chars; ++ if (__builtin_expect (num_types ++ > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0)) ++ goto lose; ++ total_size += num_types * sizeof (struct ttinfo); ++ if (__builtin_expect (chars > SIZE_MAX - total_size, 0)) ++ goto lose; ++ total_size += chars; ++ if (__builtin_expect (__alignof__ (struct leap) - 1 ++ > SIZE_MAX - total_size, 0)) ++ goto lose; + total_size = ((total_size + __alignof__ (struct leap) - 1) + & ~(__alignof__ (struct leap) - 1)); + leaps_idx = total_size; ++ if (__builtin_expect (num_leaps ++ > (SIZE_MAX - total_size) / sizeof (struct leap), 0)) ++ goto lose; + total_size += num_leaps * sizeof (struct leap); +- tzspec_len = (sizeof (time_t) == 8 && trans_width == 8 +- ? st.st_size - (ftello (f) +- + num_transitions * (8 + 1) +- + num_types * 6 +- + chars +- + num_leaps * 12 +- + num_isstd +- + num_isgmt) - 1 : 0); ++ tzspec_len = 0; ++ if (sizeof (time_t) == 8 && trans_width == 8) ++ { ++ off_t rem = st.st_size - ftello (f); ++ if (__builtin_expect (rem < 0 ++ || (size_t) rem < (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars), 0)) ++ goto lose; ++ tzspec_len = (size_t) rem - (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars); ++ if (__builtin_expect (num_leaps > SIZE_MAX / 12 ++ || tzspec_len < num_leaps * 12, 0)) ++ goto lose; ++ tzspec_len -= num_leaps * 12; ++ 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)) ++ goto lose; ++ tzspec_len -= num_isgmt + 1; ++ if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0)) ++ goto lose; ++ } ++ if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0)) ++ goto lose; + + /* Allocate enough memory including the extra block requested by the + caller. */ + + +And fix the previous patch ... + +--- a/time/tzfile.c.orig 2011-12-19 10:58:26.000000000 +0100 ++++ b/time/tzfile.c 2011-12-19 10:59:35.000000000 +0100 +@@ -19,6 +19,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -278,7 +279,7 @@ + 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)) From f18b4d2632f5b8d8a9208f76566e10de5dc36bed127a044f87f4be62cbf62b18 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 27 Dec 2011 17:35:36 +0000 Subject: [PATCH 094/204] Accepting request 97886 from Base:System - Do not mention the buildtime anymore to make build-compare work. (forwarded request 97838 from msmeissn) OBS-URL: https://build.opensuse.org/request/show/97886 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=99 --- glibc-nodate.patch | 13 +++++++++++++ glibc.changes | 5 +++++ glibc.spec | 26 +++++++++++++++----------- 3 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 glibc-nodate.patch diff --git a/glibc-nodate.patch b/glibc-nodate.patch new file mode 100644 index 0000000..566a7e5 --- /dev/null +++ b/glibc-nodate.patch @@ -0,0 +1,13 @@ +--- csu/Makefile.nodate 2011-12-15 17:27:21.000000000 +0100 ++++ csu/Makefile 2011-12-15 17:27:30.000000000 +0100 +@@ -234,8 +234,8 @@ + if [ -z "$$os" ]; then \ + os=Linux; \ + fi; \ +- printf '"Compiled on a %s %s system on %s.\\n"\n' \ +- "$$os" "$$version" "`date +%Y-%m-%d`";; \ ++ printf '"Compiled on a %s %s system.\\n"\n' \ ++ "$$os" "$$version";; \ + *) ;; \ + esac; \ + files="$(all-Banner-files)"; \ diff --git a/glibc.changes b/glibc.changes index 8382aa1..6e89ab5 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Dec 21 15:16:42 CET 2011 - meissner@suse.de + +- Do not mention the buildtime anymore to make build-compare work. + ------------------------------------------------------------------- Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 5e1db75..49d6890 100644 --- a/glibc.spec +++ b/glibc.spec @@ -19,8 +19,8 @@ %define crypt_bf_version 1.2 Name: glibc -License: GPL-2.0+ Summary: Standard Shared Libraries (from the GNU C Library) +License: GPL-2.0+ Group: System/Libraries BuildRequires: gcc-c++ BuildRequires: libselinux-devel @@ -78,7 +78,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.14.1 -Release: 12 +Release: 0 %define git_id 4f2b767fef50 %define glibc_ports_ver %version Url: http://www.gnu.org/software/libc/libc.html @@ -227,6 +227,8 @@ Patch84: nscd-avoid-gcc-warning.diff Patch85: glibc-2.14-32args-printf.patch # PATCH-FIX-UPSTREAM fix tzfile heap overrun bnc#735850 - aj@suse.de Patch86: tzfile-corruption-fix.patch +# PATCH-FIX-OPENSUSE fixed build-compare by omitting one more date - meissner@suse.de +Patch87: glibc-nodate.patch %description The GNU C Library provides the most important standard libraries used @@ -235,8 +237,8 @@ library, and the POSIX thread library. A system is not functional without these libraries. %package info -License: GPL-2.0+ Summary: Info Files for the GNU C Library +License: GPL-2.0+ Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} @@ -248,8 +250,8 @@ info files. Due to a lack of resources, this documentation is not complete and is partially out of date. %package html -License: GPL-2.0+ ; LGPL-2.1+ Summary: HTML Documentation for the GNU C Library +License: GPL-2.0+ ; LGPL-2.1+ Group: Documentation/HTML BuildArch: noarch @@ -259,8 +261,8 @@ to a lack of resources, this documentation is not complete and is partially out of date. %package i18ndata -License: LGPL-2.1+ Summary: Database Sources for 'locale' +License: LGPL-2.1+ Group: System/Libraries BuildArch: noarch @@ -271,8 +273,8 @@ not necessary to install this packages, the data files are already created. %package locale -License: GPL-2.0+ ; LGPL-2.1+ Summary: Locale Data for Localized Programs +License: GPL-2.0+ ; LGPL-2.1+ Group: System/Libraries Requires(post): /bin/cat Requires: glibc = %{version} @@ -288,8 +290,8 @@ Obsoletes: glibc-locale-32bit Locale data for the internationalisation features of the GNU C library. %package -n nscd -License: LGPL-2.1+ Summary: Name Service Caching Daemon +License: LGPL-2.1+ Group: System/Daemons Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd @@ -302,8 +304,8 @@ Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. %package profile -License: LGPL-2.1+ Summary: Libc Profiling and Debugging Versions +License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: glibc = %{version} # bug437293 @@ -319,8 +321,8 @@ This package contains special versions of the GNU C library which are necessary for profiling and debugging. %package devel -License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Summary: Include Files and Libraries Mandatory for Development +License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 Provides: epoll < 1.0 @@ -340,6 +342,7 @@ library. %package devel-static Summary: C library static libraries for -static linking +License: GPL-2.0+ Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier @@ -351,8 +354,8 @@ for -static linking. You don't need these, unless you link statically, which is highly discouraged. %package utils -License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Summary: Development utilities from GNU C library +License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Group: Development/Languages/C and C++ Requires: glibc = %{version} @@ -366,8 +369,8 @@ If you are unsure if you need this, don't install this package. %ifarch %ix86 %package obsolete -License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Summary: Obsolete Shared Libraries from the GNU C Library +License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ Group: System/Libraries Requires: glibc = %{version} @@ -469,6 +472,7 @@ rm nscd/s-stamp %patch84 %patch85 %patch86 -p1 +%patch87 -p0 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! From e80af12f3a69b38a7226342a92a2cf3370ba12be9c1513422a688e66f60db567 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 6 Jan 2012 10:44:07 +0000 Subject: [PATCH 095/204] Accepting request 98777 from Base:System Update to 2.15 OBS-URL: https://build.opensuse.org/request/show/98777 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=100 --- getaddrinfo-ipv6-sanity.diff | 4 +- glibc-2.13-localedef.patch | 37 -- glibc-2.13-warnings.fix | 33 -- glibc-2.14-32args-printf.patch | 24 - glibc-2.14.1-4f2b767fef50.tar.bz2 | 3 - glibc-2.15-2ba92745c36e.tar.bz2 | 3 + glibc-2.15-avoid-vsyscall.patch | 569 -------------------- glibc-2.15-getsysstats-speedup.patch | 145 ----- glibc-2.15-ifunc-trace.patch | 716 ------------------------- glibc-2.15-nss_db-declarations.patch | 24 + glibc-2.15-vsyscall.patch | 479 ----------------- glibc-2.3.3-amd64-s_ceil.diff | 37 -- glibc-2.3.3-nscd-db-path.diff | 8 +- glibc-2.3.5-nscd-zeronegtimeout.diff | 122 ----- glibc-2.4.90-nscd.diff | 116 ---- glibc-arm-clone-unwind-fix.diff | 23 - glibc-compiled-binaries.diff | 28 +- glibc-fix-rwlock-stack-imbalance.patch | 35 -- glibc-gconvcache-s390.diff | 27 - glibc-malloc-arena-max.diff | 236 -------- glibc-ports-2.14.1.tar.bz2 | 3 - glibc-ports-2.15-8a70b2dcabbf.tar.bz2 | 3 + glibc-ports-2.15-ifunc-trace.patch | 95 ---- glibc-strict-aliasing.diff | 75 --- glibc-x86-bits-sigcontext.patch | 35 -- glibc.changes | 124 +++++ glibc.spec | 223 ++++---- libm-x86-64-exceptions.diff | 569 -------------------- libm-x86-64.diff.bz2 | 3 - pthread-cond-wait-revert.patch | 252 +++++++++ tzfile-corruption-fix.patch | 100 ---- 31 files changed, 522 insertions(+), 3629 deletions(-) delete mode 100644 glibc-2.13-localedef.patch delete mode 100644 glibc-2.13-warnings.fix delete mode 100644 glibc-2.14-32args-printf.patch delete mode 100644 glibc-2.14.1-4f2b767fef50.tar.bz2 create mode 100644 glibc-2.15-2ba92745c36e.tar.bz2 delete mode 100644 glibc-2.15-avoid-vsyscall.patch delete mode 100644 glibc-2.15-getsysstats-speedup.patch delete mode 100644 glibc-2.15-ifunc-trace.patch create mode 100644 glibc-2.15-nss_db-declarations.patch delete mode 100644 glibc-2.15-vsyscall.patch delete mode 100644 glibc-2.3.3-amd64-s_ceil.diff delete mode 100644 glibc-2.3.5-nscd-zeronegtimeout.diff delete mode 100644 glibc-arm-clone-unwind-fix.diff delete mode 100644 glibc-fix-rwlock-stack-imbalance.patch delete mode 100644 glibc-gconvcache-s390.diff delete mode 100644 glibc-malloc-arena-max.diff delete mode 100644 glibc-ports-2.14.1.tar.bz2 create mode 100644 glibc-ports-2.15-8a70b2dcabbf.tar.bz2 delete mode 100644 glibc-ports-2.15-ifunc-trace.patch delete mode 100644 glibc-x86-bits-sigcontext.patch delete mode 100644 libm-x86-64-exceptions.diff delete mode 100644 libm-x86-64.diff.bz2 create mode 100644 pthread-cond-wait-revert.patch delete mode 100644 tzfile-corruption-fix.patch diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index c982e8b..c14fab4 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -13,7 +13,7 @@ Index: sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -766,7 +766,7 @@ gaih_inet (const char *name, const struc +@@ -935,7 +935,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -22,7 +22,7 @@ Index: sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2157,7 +2157,7 @@ getaddrinfo (const char *name, const cha +@@ -2418,7 +2418,7 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/glibc-2.13-localedef.patch b/glibc-2.13-localedef.patch deleted file mode 100644 index 0fb55f4..0000000 --- a/glibc-2.13-localedef.patch +++ /dev/null @@ -1,37 +0,0 @@ -From http://sourceware.org/bugzilla/show_bug.cgi?id=10855 - -2009-10-27 Aurelien Jarno - - * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory - used later with MMAP_FIXED | MMAP_SHARED to cope with different - alignment restrictions. - ---- a/locale/programs/locarchive.c -+++ b/locale/programs/locarchive.c -@@ -134,7 +134,7 @@ - size_t reserved = RESERVE_MMAP_SIZE; - int xflags = 0; - if (total < reserved -- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, -+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, - -1, 0)) != MAP_FAILED)) - xflags = MAP_FIXED; - else -@@ -397,7 +397,7 @@ - size_t reserved = RESERVE_MMAP_SIZE; - int xflags = 0; - if (total < reserved -- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, -+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, - -1, 0)) != MAP_FAILED)) - xflags = MAP_FIXED; - else -@@ -615,7 +615,7 @@ - int xflags = 0; - void *p; - if (st.st_size < reserved -- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, -+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, - -1, 0)) != MAP_FAILED)) - xflags = MAP_FIXED; - else diff --git a/glibc-2.13-warnings.fix b/glibc-2.13-warnings.fix deleted file mode 100644 index 45d3c2e..0000000 --- a/glibc-2.13-warnings.fix +++ /dev/null @@ -1,33 +0,0 @@ -commit 5615eaf26469f20c2d8c3be5770e12564a1edfff -Author: Roland McGrath -Date: Fri Jun 10 12:45:09 2011 -0700 - - Quash some new warnings from GCC 4.6. - -2011-06-10 Roland McGrath - - * elf/dl-open.c (_dl_open): Quash warnings when DL_NNS==1. - -diff --git a/elf/dl-open.c b/elf/dl-open.c -index 8d90b56..19fda91 100644 ---- a/elf/dl-open.c -+++ b/elf/dl-open.c -@@ -516,7 +516,7 @@ _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid, - if (__builtin_expect (nsid == LM_ID_NEWLM, 0)) - { - /* Find a new namespace. */ -- for (nsid = 1; nsid < GL(dl_nns); ++nsid) -+ for (nsid = 1; DL_NNS > 1 && nsid < GL(dl_nns); ++nsid) - if (GL(dl_ns)[nsid]._ns_loaded == NULL) - break; - -@@ -528,8 +528,7 @@ _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid, - _dl_signal_error (EINVAL, file, NULL, N_("\ - no more namespaces available for dlmopen()")); - } -- -- if (nsid == GL(dl_nns)) -+ else if (nsid == GL(dl_nns)) - { - __rtld_lock_initialize (GL(dl_ns)[nsid]._ns_unique_sym_table.lock); - ++GL(dl_nns); diff --git a/glibc-2.14-32args-printf.patch b/glibc-2.14-32args-printf.patch deleted file mode 100644 index cbd27cc..0000000 --- a/glibc-2.14-32args-printf.patch +++ /dev/null @@ -1,24 +0,0 @@ -# patch to fix printf when register_printf_function is in use and the format to -# printf contains more than 64 elements. -# -# extend_alloca modifies nspecs_max (2nd arg) with the size of the space, not the -# number of elements. Use a temporary to store the return value. Explicitly set the correct size. -# -# bnc#733140 -# -# Rich Coe (rcoe@wi.rr.com) -# ---- stdio-common/vfprintf.c.orig 2011-11-28 11:53:32.937976831 -0600 -+++ stdio-common/vfprintf.c 2011-11-28 16:07:35.546839533 -0600 -@@ -1683,8 +1683,10 @@ do_positional: - { - /* Extend the array of format specifiers. */ - struct printf_spec *old = specs; -- specs = extend_alloca (specs, nspecs_max, -+ size_t nsize = nspecs_max; -+ specs = extend_alloca (specs, nsize, - 2 * nspecs_max * sizeof (*specs)); -+ nspecs_max = 2 * nspecs_max; - - /* Copy the old array's elements to the new space. */ - memmove (specs, old, nspecs * sizeof (struct printf_spec)); diff --git a/glibc-2.14.1-4f2b767fef50.tar.bz2 b/glibc-2.14.1-4f2b767fef50.tar.bz2 deleted file mode 100644 index ceedd93..0000000 --- a/glibc-2.14.1-4f2b767fef50.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a1f7ea9ea887d7d0e7174d76b9f2b99aceae9efedc9d0c708446ae5a2fd4f35 -size 15650076 diff --git a/glibc-2.15-2ba92745c36e.tar.bz2 b/glibc-2.15-2ba92745c36e.tar.bz2 new file mode 100644 index 0000000..17609ea --- /dev/null +++ b/glibc-2.15-2ba92745c36e.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65aacbb4b5218b686da63994150e7e34e71d85c45cc7c264b1d6ee55207d0b05 +size 15776871 diff --git a/glibc-2.15-avoid-vsyscall.patch b/glibc-2.15-avoid-vsyscall.patch deleted file mode 100644 index 5fb7382..0000000 --- a/glibc-2.15-avoid-vsyscall.patch +++ /dev/null @@ -1,569 +0,0 @@ -commit d53a73acdbf6ac6eb99cd06f5dd695da58d9e8f5 -Author: Ulrich Drepper -Date: Tue Sep 6 20:22:37 2011 -0400 - - Avoid gettimeofday vsyscall - -2011-09-06 Ulrich Drepper - - * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Don't use - gettimeofday vsyscall, just use time. - -diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c -index b9bae3d..7feb7a1 100644 ---- a/sysdeps/unix/sysv/linux/getsysstats.c -+++ b/sysdeps/unix/sysv/linux/getsysstats.c -@@ -37,15 +37,6 @@ - #include - #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 -- - - /* How we can determine the number of available processors depends on - the configuration. There is currently (as of version 2.0.21) no -@@ -141,17 +132,10 @@ __get_nprocs () - static int cached_result; - static time_t timestamp; - --#ifdef __ASSUME_POSIX_TIMERS -- struct timespec ts; -- INTERNAL_SYSCALL_DECL (err); -- INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, &ts); --#else -- struct timeval ts; -- __gettimeofday (&ts, NULL); --#endif -+ time_t now = time (NULL); - time_t prev = timestamp; - atomic_read_barrier (); -- if (ts.tv_sec == prev) -+ if (now == prev) - return cached_result; - - /* XXX Here will come a test for the new system call. */ -@@ -243,7 +227,7 @@ __get_nprocs () - out: - cached_result = result; - atomic_write_barrier (); -- timestamp = ts.tv_sec; -+ timestamp = now; - - return result; - } - -commit a77d3c17dc6517636c1cf6ab9c6bb8c257772354 -Author: Ulrich Drepper -Date: Tue Sep 6 21:34:11 2011 -0400 - - Don't unconditionally use clock_gettime vsyscall on x86-64 - -2011-09-06 Ulrich Drepper - - * sysdeps/unix/sysv/linux/x86_64/clock_gettime.c: New file. - * sysdeps/unix/sysv/linux/clock_gettime.c (SYSCALL_GETTIME): Allow - already be defined. Change to take two parameters and don't assign - result to variable. Adjust all users. - Define INTERNAL_GETTIME if not already defined. - Use INTERNAL_GETTIME instead of INTERNAL_VSYSCALL got clock_gettime - call. - * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Don't define - HAVE_CLOCK_GETTIME_VSYSCALL. - * sysdeps/unix/clock_gettime.c: Adjust use of SYSDEP_GETTIME_CPU. - - -diff --git a/sysdeps/unix/clock_gettime.c b/sysdeps/unix/clock_gettime.c -index fbaaf30..d467f2b 100644 ---- a/sysdeps/unix/clock_gettime.c -+++ b/sysdeps/unix/clock_gettime.c -@@ -1,5 +1,5 @@ - /* clock_gettime -- Get the current time from a POSIX clockid_t. Unix version. -- Copyright (C) 1999-2004, 2005, 2007 Free Software Foundation, Inc. -+ Copyright (C) 1999-2004, 2005, 2007, 2011 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 -@@ -113,7 +113,7 @@ clock_gettime (clockid_t clock_id, struct timespec *tp) - - default: - #ifdef SYSDEP_GETTIME_CPU -- SYSDEP_GETTIME_CPU; -+ retval = SYSDEP_GETTIME_CPU (clock_id, tp); - #endif - #if HP_TIMING_AVAIL - if ((clock_id & ((1 << CLOCK_IDFIELD_SIZE) - 1)) -diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c -index dd3755c..0ae45de 100644 ---- a/sysdeps/unix/sysv/linux/clock_gettime.c -+++ b/sysdeps/unix/sysv/linux/clock_gettime.c -@@ -1,5 +1,5 @@ - /* clock_gettime -- Get current time from a POSIX clockid_t. Linux version. -- Copyright (C) 2003,2004,2005,2006,2007,2010 Free Software Foundation, Inc. -+ Copyright (C) 2003,2004,2005,2006,2007,2010,2011 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 -@@ -32,9 +32,14 @@ - # include - #endif - --#define SYSCALL_GETTIME \ -- retval = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); \ -- break -+#ifndef SYSCALL_GETTIME -+# define SYSCALL_GETTIME(id, tp) \ -+ INLINE_VSYSCALL (clock_gettime, 2, id, tp) -+#endif -+#ifndef INTERNAL_GETTIME -+# define INTERNAL_GETTIME(id, tp) \ -+ INTERNAL_VSYSCALL (clock_gettime, err, 2, id, tp) -+#endif - - #ifdef __ASSUME_POSIX_TIMERS - -@@ -44,7 +49,8 @@ - SYSDEP_GETTIME_CPUTIME \ - case CLOCK_REALTIME: \ - case CLOCK_MONOTONIC: \ -- SYSCALL_GETTIME -+ retval = SYSCALL_GETTIME (clock_id, tp); \ -+ break - - # define __libc_missing_posix_timers 0 - #elif defined __NR_clock_gettime -@@ -59,7 +65,7 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp) - if (!__libc_missing_posix_timers) - { - INTERNAL_SYSCALL_DECL (err); -- int r = INTERNAL_VSYSCALL (clock_gettime, err, 2, clock_id, tp); -+ int r = INTERNAL_GETTIME (clock_id, tp); - if (!INTERNAL_SYSCALL_ERROR_P (r, err)) - return 0; - -@@ -89,7 +95,7 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp) - /* Fallback code. */ \ - if (retval == EINVAL && clock_id == CLOCK_REALTIME) \ - retval = realtime_gettime (tp); \ -- else \ -+ else \ - { \ - __set_errno (retval); \ - retval = -1; \ -@@ -119,7 +125,7 @@ maybe_syscall_gettime_cpu (clockid_t clock_id, struct timespec *tp) - if (!__libc_missing_posix_cpu_timers) - { - INTERNAL_SYSCALL_DECL (err); -- int r = INTERNAL_VSYSCALL (clock_gettime, err, 2, clock_id, tp); -+ int r = INTERNAL_GETTIME (clock_id, tp); - if (!INTERNAL_SYSCALL_ERROR_P (r, err)) - return 0; - -diff --git a/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c -new file mode 100644 -index 0000000..9d6cd23 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c -@@ -0,0 +1,10 @@ -+#include "bits/libc-vdso.h" -+ -+#ifdef SHARED -+# define SYSCALL_GETTIME(id, tp) \ -+ (*__vdso_clock_gettime) (id, tp) -+# define INTERNAL_GETTIME(id, tp) \ -+ (*__vdso_clock_gettime) (id, tp) -+#endif -+ -+#include "../clock_gettime.c" -diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h -index 2b9ea85..a9821dc 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h -+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h -@@ -1,4 +1,4 @@ --/* Copyright (C) 2001-2005, 2007 Free Software Foundation, Inc. -+/* Copyright (C) 2001-2005, 2007, 2011 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 -@@ -279,8 +279,8 @@ - if (INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \ - { \ - iserr: \ -- __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \ -- sc_ret = -1L; \ -+ __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \ -+ sc_ret = -1L; \ - } \ - out: \ - sc_ret; \ -@@ -304,9 +304,6 @@ - v_ret; \ - }) - --/* List of system calls which are supported as vsyscalls. */ --# define HAVE_CLOCK_GETTIME_VSYSCALL 1 -- - # else - # define INLINE_VSYSCALL(name, nr, args...) \ - INLINE_SYSCALL (name, nr, ##args) - -commit a0e1f41bd487d2202b6c1e0802c0e6c91630fbea -Author: Ulrich Drepper -Date: Tue Sep 6 23:17:53 2011 -0400 - - Don't call gettimeofday vsyscall in x86-64 sem_timedwait - -2011-09-06 Ulrich Drepper - - * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): Don't - use gettimeofday vsyscall, just call gettimeofday. - -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S -index ca49cb8..2926b36 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S -@@ -1,4 +1,4 @@ --/* Copyright (C) 2002,2003,2005,2007,2009,2010 Free Software Foundation, Inc. -+/* Copyright (C) 2002,2003,2005,2007,2009,2010,2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2002. - -@@ -24,10 +24,6 @@ - #include - #include - -- --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- - .text - - .globl sem_timedwait -@@ -212,9 +208,10 @@ sem_timedwait: - addq $1, NWAITERS(%r12) - - 7: xorl %esi, %esi -- movq %rsp, %rdi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- callq *%rax -+ movq %rsp,%rdi -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 8(%rsp), %rax - -commit fc8bffcccf5821bca179486abef83a7f82526715 -Author: Ulrich Drepper -Date: Tue Sep 6 23:50:04 2011 -0400 - - Fix handling of __vdso_clock_gettime - -2011-09-06 Ulrich Drepper - - * sysdeps/unix/sysv/linux/x86_64/clock_gettime.c (INTERNAL_GETTIME): - Forgot to demangle the pointer. - -diff --git a/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c -index 9d6cd23..7802701 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c -+++ b/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c -@@ -2,9 +2,13 @@ - - #ifdef SHARED - # define SYSCALL_GETTIME(id, tp) \ -- (*__vdso_clock_gettime) (id, tp) -+ ({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \ -+ PTR_DEMANGLE (f); \ -+ f (id, tp); }) - # define INTERNAL_GETTIME(id, tp) \ -- (*__vdso_clock_gettime) (id, tp) -+ ({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \ -+ PTR_DEMANGLE (f); \ -+ f (id, tp); }) - #endif - - #include "../clock_gettime.c" - -commit 9e5c9dcd57e80cd56c47fd2bf11de8d167176a0e -Author: Ulrich Drepper -Date: Wed Sep 7 00:14:06 2011 -0400 - - Remove gettimeofday vsyscall use from x86-86 libpthread - - * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise. - * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise. - * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: - Likewise. - * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: - Likewise. - * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. - Simplify __vdso_clock_gettime use. - -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S -index 3195db2..018da0c 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S -@@ -1,4 +1,4 @@ --/* Copyright (C) 2002-2006, 2007, 2009, 2010 Free Software Foundation, Inc. -+/* Copyright (C) 2002-2007, 2009, 2010, 2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2002. - -@@ -68,10 +68,6 @@ - #endif - - --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- -- - .globl __lll_lock_wait_private - .type __lll_lock_wait_private,@function - .hidden __lll_lock_wait_private -@@ -250,10 +246,9 @@ __lll_timedlock_wait: - /* Get current time. */ - movq %rsp, %rdi - xorl %esi, %esi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- /* This is a regular function call, all caller-save registers -- might be clobbered. */ -- callq *%rax -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 8(%rsp), %rax -@@ -402,8 +397,9 @@ __lll_timedwait_tid: - /* Get current time. */ - 2: movq %rsp, %rdi - xorl %esi, %esi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- callq *%rax -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 8(%rsp), %rax -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S -index 5218a4f..b7b8b34 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S -@@ -1,4 +1,4 @@ --/* Copyright (C) 2002=2007, 2009, 2010 Free Software Foundation, Inc. -+/* Copyright (C) 2002, 2011=2007, 2009, 2010 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2002. - -@@ -50,9 +50,6 @@ - orl $FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg - #endif - --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- - - .globl __lll_robust_lock_wait - .type __lll_robust_lock_wait,@function -@@ -219,10 +216,9 @@ __lll_robust_timedlock_wait: - /* Get current time. */ - movq %rsp, %rdi - xorl %esi, %esi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- /* This is a regular function call, all caller-save registers -- might be clobbered. */ -- callq *%rax -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 8(%rsp), %rax -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S -index 48ea8b9..d11b297 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S -@@ -26,9 +26,6 @@ - - #include - --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- - - .text - -@@ -453,13 +450,11 @@ __pthread_cond_timedwait: - movq __vdso_clock_gettime@GOTPCREL(%rip), %rax - movq (%rax), %rax - PTR_DEMANGLE (%rax) -- jz 26f - call *%rax -- jmp 27f --# endif --26: movl $__NR_clock_gettime, %eax -+# else -+ movl $__NR_clock_gettime, %eax - syscall --27: -+# endif - # ifndef __ASSUME_POSIX_TIMERS - cmpq $-ENOSYS, %rax - je 19f -@@ -473,8 +468,9 @@ __pthread_cond_timedwait: - # else - leaq 24(%rsp), %rdi - xorl %esi, %esi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- callq *%rax -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 40(%rsp), %rax -@@ -611,8 +607,9 @@ __pthread_cond_timedwait: - /* clock_gettime not available. */ - 19: leaq 32(%rsp), %rdi - xorl %esi, %esi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- callq *%rax -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 40(%rsp), %rax -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -index f5d055c..0e6a6ee 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -@@ -1,4 +1,4 @@ --/* Copyright (C) 2002-2005, 2007, 2009, 2010 Free Software Foundation, Inc. -+/* Copyright (C) 2002-2005,2007,2009,2010,2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2002. - -@@ -23,10 +23,6 @@ - #include - #include - -- --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- - .text - - .globl pthread_rwlock_timedrdlock -@@ -123,8 +119,9 @@ pthread_rwlock_timedrdlock: - /* Get current time. */ - movq %rsp, %rdi - xorl %esi, %esi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- callq *%rax -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 8(%rsp), %rax -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -index 6ed8b49..16bf920 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -@@ -1,4 +1,5 @@ --/* Copyright (C) 2002, 2003, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. -+/* Copyright (C) 2002, 2003, 2005, 2007, 2009, 2010, 2011 -+ Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2002. - -@@ -23,10 +24,6 @@ - #include - #include - -- --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- - .text - - .globl pthread_rwlock_timedwrlock -@@ -120,8 +117,9 @@ pthread_rwlock_timedwrlock: - /* Get current time. */ - movq %rsp, %rdi - xorl %esi, %esi -- movq $VSYSCALL_ADDR_vgettimeofday, %rax -- callq *%rax -+ /* This call works because we directly jump to a system call entry -+ which preserves all the registers. */ -+ call JUMPTARGET(__gettimeofday) - - /* Compute relative timeout. */ - movq 8(%rsp), %rax -commit e38ba7ab6a56d53bde4fcff250f6928fb473bc3c -Author: Ulrich Drepper -Date: Wed Sep 7 00:07:08 2011 -0400 - - Make sure __vdso_clock_gettime always contains a valid pointer - -2011-09-07 Ulrich Drepper - - * sysdeps/unix/sysv/linux/x86_64/init-first.c - (_libc_vdso_platform_setup): If vDSO is not present store pointer to - syscall wrapper around clock_gettime in __vdso_clock_gettime. - * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Add entry for - clock_gettime. - -diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c -index 25cf08b..cb39aca 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/init-first.c -+++ b/sysdeps/unix/sysv/linux/x86_64/init-first.c -@@ -17,6 +17,8 @@ - 02111-1307 USA. */ - - #ifdef SHARED -+# include -+# include - # include - # include - -@@ -27,12 +29,17 @@ strong_alias (__vdso_clock_gettime, __GI___vdso_clock_gettime attribute_hidden) - long int (*__vdso_getcpu) (unsigned *, unsigned *, void *) attribute_hidden; - - -+extern long int __syscall_clock_gettime (clockid_t, struct timespec *); -+ -+ - static inline void - _libc_vdso_platform_setup (void) - { - PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); - - void *p = _dl_vdso_vsym ("clock_gettime", &linux26); -+ if (p == NULL) -+ p = __syscall_clock_gettime; - PTR_MANGLE (p); - __GI___vdso_clock_gettime = p; - -diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/syscalls.list -index 3e231a0..ccddb84 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/syscalls.list -+++ b/sysdeps/unix/sysv/linux/x86_64/syscalls.list -@@ -14,6 +14,7 @@ semop - semop i:ipi __semop semop - semtimedop - semtimedop i:ipip semtimedop - semget - semget i:iii __semget semget - semctl - semctl i:iiii __semctl semctl -+syscall_clock_gettime EXTRA clock_gettime Ei:ip __syscall_clock_gettime - - - # proper socket implementations: diff --git a/glibc-2.15-getsysstats-speedup.patch b/glibc-2.15-getsysstats-speedup.patch deleted file mode 100644 index 87a29ef..0000000 --- a/glibc-2.15-getsysstats-speedup.patch +++ /dev/null @@ -1,145 +0,0 @@ -From glibc.git (for 2.15): - -2011-06-23 H.J. Lu - - * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Use - __gettimeofday instead of gettimeofday. - -2011-06-22 Ulrich Drepper - - * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Use - /sys/devices/system/cpu/online if it is usable. - - * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Rate limit - reading the information from the /proc filesystem to once a second. - ---- glibc-2.13/sysdeps/unix/sysv/linux/getsysstats.c 2010-04-08 10:45:22.000000000 +0200 -+++ glibc.git/sysdeps/unix/sysv/linux/getsysstats.c 2011-06-27 09:56:27.359389056 +0200 -@@ -1,5 +1,5 @@ - /* Determine various system internal values, Linux version. -- Copyright (C) 1996-2003,2006,2007,2009,2010 Free Software Foundation, Inc. -+ Copyright (C) 1996-2003,2006,2007,2009,2010,2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1996. - -@@ -35,6 +35,16 @@ - - #include - #include -+#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 - - - /* How we can determine the number of available processors depends on -@@ -128,6 +138,22 @@ - int - __get_nprocs () - { -+ static int cached_result; -+ static time_t timestamp; -+ -+#ifdef __ASSUME_POSIX_TIMERS -+ struct timespec ts; -+ INTERNAL_SYSCALL_DECL (err); -+ INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, &ts); -+#else -+ struct timeval ts; -+ __gettimeofday (&ts, NULL); -+#endif -+ time_t prev = timestamp; -+ atomic_read_barrier (); -+ if (ts.tv_sec == prev) -+ return cached_result; -+ - /* XXX Here will come a test for the new system call. */ - - const size_t buffer_size = __libc_use_alloca (8192) ? 8192 : 512; -@@ -135,20 +161,65 @@ - char *buffer_end = buffer + buffer_size; - char *cp = buffer_end; - char *re = buffer_end; -- int result = 1; - - #ifdef O_CLOEXEC - const int flags = O_RDONLY | O_CLOEXEC; - #else - const int flags = O_RDONLY; - #endif -+ int fd = open_not_cancel_2 ("/sys/devices/system/cpu/online", flags); -+ char *l; -+ int result = 0; -+ if (fd != -1) -+ { -+ l = next_line (fd, buffer, &cp, &re, buffer_end); -+ if (l != NULL) -+ do -+ { -+ char *endp; -+ unsigned long int n = strtoul (l, &endp, 10); -+ if (l == endp) -+ { -+ result = 0; -+ break; -+ } -+ -+ unsigned long int m = n; -+ if (*endp == '-') -+ { -+ l = endp + 1; -+ m = strtoul (l, &endp, 10); -+ if (l == endp) -+ { -+ result = 0; -+ break; -+ } -+ } -+ -+ result += m - n + 1; -+ -+ l = endp; -+ while (l < re && isspace (*l)) -+ ++l; -+ } -+ while (l < re); -+ -+ close_not_cancel_no_status (fd); -+ -+ if (result > 0) -+ goto out; -+ } -+ -+ cp = buffer_end; -+ re = buffer_end; -+ result = 1; -+ - /* The /proc/stat format is more uniform, use it by default. */ -- int fd = open_not_cancel_2 ("/proc/stat", flags); -+ fd = open_not_cancel_2 ("/proc/stat", flags); - if (fd != -1) - { - result = 0; - -- char *l; - while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL) - /* The current format of /proc/stat has all the cpu* entries - at the front. We assume here that stays this way. */ -@@ -169,6 +240,11 @@ - } - } - -+ out: -+ cached_result = result; -+ atomic_write_barrier (); -+ timestamp = ts.tv_sec; -+ - return result; - } - weak_alias (__get_nprocs, get_nprocs) diff --git a/glibc-2.15-ifunc-trace.patch b/glibc-2.15-ifunc-trace.patch deleted file mode 100644 index 6a6409d..0000000 --- a/glibc-2.15-ifunc-trace.patch +++ /dev/null @@ -1,716 +0,0 @@ -commit 3a62d00d408e9ec19479b6c7d39e89021061f9cd -Author: Andreas Schwab -Date: Tue Oct 4 16:10:16 2011 +0200 - - Don't call ifunc functions in trace mode - -2011-10-04 Andreas Schwab - - * include/dlfcn.h (__RTLD_NOIFUNC): Define. - * elf/do-rel.h (elf_dynamic_do_rel): Add parameter skip_ifunc and - pass it down. - * elf/dynamic-link.h: Adjust prototypes of elf_machine_rel, - elf_machine_rela, elf_machine_lazy_rel. - (_ELF_DYNAMIC_DO_RELOC): Add parameter skip_ifunc and pass it down. - (ELF_DYNAMIC_DO_REL): Likewise. - (ELF_DYNAMIC_DO_RELA): Likewise. - (ELF_DYNAMIC_RELOCATE): Likewise. - * elf/dl-reloc.c (_dl_relocate_object): Pass __RTLD_NOIFUNC down - to ELF_DYNAMIC_DO_REL. - * elf/rtld.c (_dl_start): Adjust use of ELF_DYNAMIC_RELOCATE. - (dl_main): In trace mode always set __RTLD_NOIFUNC. - * elf/dl-conflict.c (_dl_resolve_conflicts): Adjust call to - elf_machine_rela. - * sysdeps/i386/dl-machine.h (elf_machine_rel): Add parameter - skip_ifunc, don't call ifunc function if non-zero. - (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - (elf_machine_lazy_rela): Likewise. - * sysdeps/ia64/dl-machine.h (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): - Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): - Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise. - (elf_machine_lazy_rel): Likewise. - -Index: glibc-2.14/elf/dl-conflict.c -=================================================================== ---- glibc-2.14.orig/elf/dl-conflict.c -+++ glibc-2.14/elf/dl-conflict.c -@@ -1,5 +1,5 @@ - /* Resolve conflicts against already prelinked libraries. -- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2008 Free Software Foundation, Inc. -+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2008, 2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek , 2001. - -@@ -69,7 +69,8 @@ _dl_resolve_conflicts (struct link_map * - GL(dl_num_cache_relocations) += conflictend - conflict; - - for (; conflict < conflictend; ++conflict) -- elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset); -+ elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset, -+ 0); - } - #endif - } -Index: glibc-2.14/elf/dl-reloc.c -=================================================================== ---- glibc-2.14.orig/elf/dl-reloc.c -+++ glibc-2.14/elf/dl-reloc.c -@@ -162,6 +162,7 @@ _dl_relocate_object (struct link_map *l, - /* Initialize it to make the compiler happy. */ - const char *errstring = NULL; - int lazy = reloc_mode & RTLD_LAZY; -+ int skip_ifunc = reloc_mode & __RTLD_NOIFUNC; - - #ifdef SHARED - /* If we are auditing, install the same handlers we need for profiling. */ -@@ -261,7 +262,7 @@ _dl_relocate_object (struct link_map *l, - - #include "dynamic-link.h" - -- ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling); -+ ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling, skip_ifunc); - - #ifndef PROF - if (__builtin_expect (consider_profiling, 0)) -Index: glibc-2.14/elf/do-rel.h -=================================================================== ---- glibc-2.14.orig/elf/do-rel.h -+++ glibc-2.14/elf/do-rel.h -@@ -1,5 +1,5 @@ - /* Do relocations for ELF dynamic linking. -- Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc. -+ Copyright (C) 1995-2003, 2004, 2011 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 -@@ -52,7 +52,7 @@ - auto inline void __attribute__ ((always_inline)) - elf_dynamic_do_rel (struct link_map *map, - ElfW(Addr) reladdr, ElfW(Addr) relsize, -- int lazy) -+ int lazy, int skip_ifunc) - { - const ElfW(Rel) *r = (const void *) reladdr; - const ElfW(Rel) *end = (const void *) (reladdr + relsize); -@@ -66,7 +66,7 @@ elf_dynamic_do_rel (struct link_map *map - { - /* Doing lazy PLT relocations; they need very little info. */ - for (; r < end; ++r) -- elf_machine_lazy_rel (map, l_addr, r); -+ elf_machine_lazy_rel (map, l_addr, r, skip_ifunc); - } - else - #endif -@@ -119,14 +119,14 @@ elf_dynamic_do_rel (struct link_map *map - ElfW(Half) ndx = version[ELFW(R_SYM) (r->r_info)] & 0x7fff; - elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], - &map->l_versions[ndx], -- (void *) (l_addr + r->r_offset)); -+ (void *) (l_addr + r->r_offset), skip_ifunc); - } - } - #ifndef RTLD_BOOTSTRAP - else - for (; r < end; ++r) - elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], NULL, -- (void *) (l_addr + r->r_offset)); -+ (void *) (l_addr + r->r_offset), skip_ifunc); - #endif - } - } -Index: glibc-2.14/elf/dynamic-link.h -=================================================================== ---- glibc-2.14.orig/elf/dynamic-link.h -+++ glibc-2.14/elf/dynamic-link.h -@@ -60,7 +60,7 @@ int internal_function _dl_try_allocate_s - auto inline void __attribute__((always_inline)) - elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc, - const ElfW(Sym) *sym, const struct r_found_version *version, -- void *const reloc_addr); -+ void *const reloc_addr, int skip_ifunc); - auto inline void __attribute__((always_inline)) - elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, - void *const reloc_addr); -@@ -69,7 +69,7 @@ elf_machine_rel_relative (ElfW(Addr) l_a - auto inline void __attribute__((always_inline)) - elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - const ElfW(Sym) *sym, const struct r_found_version *version, -- void *const reloc_addr); -+ void *const reloc_addr, int skip_ifunc); - auto inline void __attribute__((always_inline)) - elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, - void *const reloc_addr); -@@ -77,11 +77,13 @@ elf_machine_rela_relative (ElfW(Addr) l_ - # if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL - auto inline void __attribute__((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- ElfW(Addr) l_addr, const ElfW(Rel) *reloc); -+ ElfW(Addr) l_addr, const ElfW(Rel) *reloc, -+ int skip_ifunc); - # else - auto inline void __attribute__((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- ElfW(Addr) l_addr, const ElfW(Rela) *reloc); -+ ElfW(Addr) l_addr, const ElfW(Rela) *reloc, -+ int skip_ifunc); - # endif - #endif - -@@ -254,7 +256,7 @@ elf_get_dynamic_info (struct link_map *l - not happen we do something more optimal. */ - - # ifdef ELF_MACHINE_PLTREL_OVERLAP --# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, test_rel) \ -+# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \ - do { \ - struct { ElfW(Addr) start, size; int lazy; } ranges[3]; \ - int ranges_index; \ -@@ -284,10 +286,11 @@ elf_get_dynamic_info (struct link_map *l - elf_dynamic_do_##reloc ((map), \ - ranges[ranges_index].start, \ - ranges[ranges_index].size, \ -- ranges[ranges_index].lazy); \ -+ ranges[ranges_index].lazy, \ -+ skip_ifunc); \ - } while (0) - # else --# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, test_rel) \ -+# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \ - do { \ - struct { ElfW(Addr) start, size; int lazy; } ranges[2]; \ - ranges[0].lazy = 0; \ -@@ -324,7 +327,8 @@ elf_get_dynamic_info (struct link_map *l - } \ - \ - if (ELF_DURING_STARTUP) \ -- elf_dynamic_do_##reloc ((map), ranges[0].start, ranges[0].size, 0); \ -+ elf_dynamic_do_##reloc ((map), ranges[0].start, ranges[0].size, 0, \ -+ skip_ifunc); \ - else \ - { \ - int ranges_index; \ -@@ -332,7 +336,8 @@ elf_get_dynamic_info (struct link_map *l - elf_dynamic_do_##reloc ((map), \ - ranges[ranges_index].start, \ - ranges[ranges_index].size, \ -- ranges[ranges_index].lazy); \ -+ ranges[ranges_index].lazy, \ -+ skip_ifunc); \ - } \ - } while (0) - # endif -@@ -345,29 +350,29 @@ elf_get_dynamic_info (struct link_map *l - - # if ! ELF_MACHINE_NO_REL - # include "do-rel.h" --# define ELF_DYNAMIC_DO_REL(map, lazy) \ -- _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, _ELF_CHECK_REL) -+# define ELF_DYNAMIC_DO_REL(map, lazy, skip_ifunc) \ -+ _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, skip_ifunc, _ELF_CHECK_REL) - # else --# define ELF_DYNAMIC_DO_REL(map, lazy) /* Nothing to do. */ -+# define ELF_DYNAMIC_DO_REL(map, lazy, skip_ifunc) /* Nothing to do. */ - # endif - - # if ! ELF_MACHINE_NO_RELA - # define DO_RELA - # include "do-rel.h" --# define ELF_DYNAMIC_DO_RELA(map, lazy) \ -- _ELF_DYNAMIC_DO_RELOC (RELA, rela, map, lazy, _ELF_CHECK_REL) -+# define ELF_DYNAMIC_DO_RELA(map, lazy, skip_ifunc) \ -+ _ELF_DYNAMIC_DO_RELOC (RELA, rela, map, lazy, skip_ifunc, _ELF_CHECK_REL) - # else --# define ELF_DYNAMIC_DO_RELA(map, lazy) /* Nothing to do. */ -+# define ELF_DYNAMIC_DO_RELA(map, lazy, skip_ifunc) /* Nothing to do. */ - # endif - - /* This can't just be an inline function because GCC is too dumb - to inline functions containing inlines themselves. */ --# define ELF_DYNAMIC_RELOCATE(map, lazy, consider_profile) \ -+# define ELF_DYNAMIC_RELOCATE(map, lazy, consider_profile, skip_ifunc) \ - do { \ - int edr_lazy = elf_machine_runtime_setup ((map), (lazy), \ - (consider_profile)); \ -- ELF_DYNAMIC_DO_REL ((map), edr_lazy); \ -- ELF_DYNAMIC_DO_RELA ((map), edr_lazy); \ -+ ELF_DYNAMIC_DO_REL ((map), edr_lazy, skip_ifunc); \ -+ ELF_DYNAMIC_DO_RELA ((map), edr_lazy, skip_ifunc); \ - } while (0) - - #endif -Index: glibc-2.14/elf/rtld.c -=================================================================== ---- glibc-2.14.orig/elf/rtld.c -+++ glibc-2.14/elf/rtld.c -@@ -543,7 +543,7 @@ _dl_start (void *arg) - /* Relocate ourselves so we can do normal function calls and - data access using the global offset table. */ - -- ELF_DYNAMIC_RELOCATE (&bootstrap_map, 0, 0); -+ ELF_DYNAMIC_RELOCATE (&bootstrap_map, 0, 0, 0); - } - bootstrap_map.l_relocated = 1; - -@@ -1992,8 +1992,9 @@ ERROR: ld.so: object '%s' cannot be load - - /* Relocate the main executable. */ - struct relocate_args args = { .l = l, -- .reloc_mode = (GLRO(dl_lazy) -- ? RTLD_LAZY : 0) }; -+ .reloc_mode = ((GLRO(dl_lazy) -+ ? RTLD_LAZY : 0) -+ | __RTLD_NOIFUNC) }; - _dl_receive_error (print_unresolved, relocate_doit, &args); - - /* This loop depends on the dependencies of the executable to -@@ -2070,7 +2071,8 @@ ERROR: ld.so: object '%s' cannot be load - struct relocate_args args; - struct link_map *l; - -- args.reloc_mode = GLRO(dl_lazy) ? RTLD_LAZY : 0; -+ args.reloc_mode = ((GLRO(dl_lazy) ? RTLD_LAZY : 0) -+ | __RTLD_NOIFUNC); - - l = main_map; - while (l->l_next != NULL) -@@ -2093,7 +2095,7 @@ ERROR: ld.so: object '%s' cannot be load - /* Mark the link map as not yet relocated again. */ - GL(dl_rtld_map).l_relocated = 0; - _dl_relocate_object (&GL(dl_rtld_map), -- main_map->l_scope, 0, 0); -+ main_map->l_scope, __RTLD_NOIFUNC, 0); - } - } - #define VERNEEDTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERNEED)) -Index: glibc-2.14/include/dlfcn.h -=================================================================== ---- glibc-2.14.orig/include/dlfcn.h -+++ glibc-2.14/include/dlfcn.h -@@ -10,6 +10,7 @@ - #define __RTLD_CALLMAP 0x10000000 - #define __RTLD_AUDIT 0x08000000 - #define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */ -+#define __RTLD_NOIFUNC 0x02000000 /* Suppress calling ifunc functions. */ - - #define __LM_ID_CALLER -2 - -Index: glibc-2.14/sysdeps/i386/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/i386/dl-machine.h -+++ glibc-2.14/sysdeps/i386/dl-machine.h -@@ -311,7 +311,7 @@ auto inline void - __attribute ((always_inline)) - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -347,7 +347,8 @@ elf_machine_rel (struct link_map *map, c - if (sym != NULL - && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, - 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - value = ((Elf32_Addr (*) (void)) value) (); - - switch (r_type) -@@ -490,7 +491,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -507,8 +508,8 @@ elf_machine_rela (struct link_map *map, - - if (sym != NULL - && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -- && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, -- 0)) -+ && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) -+ && __builtin_expect (!skip_ifunc, 1)) - value = ((Elf32_Addr (*) (void)) value) (); - - switch (ELF32_R_TYPE (reloc->r_info)) -@@ -655,7 +656,8 @@ elf_machine_rela_relative (Elf32_Addr l_ - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf32_Addr l_addr, const Elf32_Rel *reloc) -+ Elf32_Addr l_addr, const Elf32_Rel *reloc, -+ int skip_ifunc) - { - Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -706,19 +708,20 @@ elf_machine_lazy_rel (struct link_map *m - ElfW(Half) ndx = version[ELFW(R_SYM) (r->r_info)] & 0x7fff; - elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], - &map->l_versions[ndx], -- (void *) (l_addr + r->r_offset)); -+ (void *) (l_addr + r->r_offset), skip_ifunc); - } - # ifndef RTLD_BOOTSTRAP - else - elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], NULL, -- (void *) (l_addr + r->r_offset)); -+ (void *) (l_addr + r->r_offset), skip_ifunc); - # endif - } - } - else if (__builtin_expect (r_type == R_386_IRELATIVE, 0)) - { - Elf32_Addr value = map->l_addr + *reloc_addr; -- value = ((Elf32_Addr (*) (void)) value) (); -+ if (__builtin_expect (!skip_ifunc, 1)) -+ value = ((Elf32_Addr (*) (void)) value) (); - *reloc_addr = value; - } - else -@@ -730,7 +733,8 @@ elf_machine_lazy_rel (struct link_map *m - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rela (struct link_map *map, -- Elf32_Addr l_addr, const Elf32_Rela *reloc) -+ Elf32_Addr l_addr, const Elf32_Rela *reloc, -+ int skip_ifunc) - { - Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -747,7 +751,8 @@ elf_machine_lazy_rela (struct link_map * - else if (__builtin_expect (r_type == R_386_IRELATIVE, 0)) - { - Elf32_Addr value = map->l_addr + reloc->r_addend; -- value = ((Elf32_Addr (*) (void)) value) (); -+ if (__builtin_expect (!skip_ifunc, 1)) -+ value = ((Elf32_Addr (*) (void)) value) (); - *reloc_addr = value; - } - else -Index: glibc-2.14/sysdeps/ia64/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/ia64/dl-machine.h -+++ glibc-2.14/sysdeps/ia64/dl-machine.h -@@ -377,7 +377,8 @@ elf_machine_rela (struct link_map *map, - const Elf64_Rela *reloc, - const Elf64_Sym *sym, - const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, -+ int skip_ifunc) - { - Elf64_Addr *const reloc_addr = reloc_addr_arg; - const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); -@@ -493,7 +494,8 @@ elf_machine_rela_relative (Elf64_Addr l_ - auto inline void - __attribute ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf64_Addr l_addr, const Elf64_Rela *reloc) -+ Elf64_Addr l_addr, const Elf64_Rela *reloc, -+ int skip_ifunc) - { - Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); -Index: glibc-2.14/sysdeps/powerpc/powerpc32/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/powerpc/powerpc32/dl-machine.h -+++ glibc-2.14/sysdeps/powerpc/powerpc32/dl-machine.h -@@ -280,7 +280,7 @@ extern void _dl_reloc_overflow (struct l - auto inline void __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const Elf32_Sym *const refsym = sym; -@@ -315,7 +315,8 @@ elf_machine_rela (struct link_map *map, - - if (sym != NULL - && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - value = ((Elf32_Addr (*) (void)) value) (); - - /* A small amount of code is duplicated here for speed. In libc, -@@ -391,7 +392,8 @@ elf_machine_rela_relative (Elf32_Addr l_ - - auto inline void __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf32_Addr l_addr, const Elf32_Rela *reloc) -+ Elf32_Addr l_addr, const Elf32_Rela *reloc, -+ int skip_ifunc) - { - /* elf_machine_runtime_setup handles this. */ - } -Index: glibc-2.14/sysdeps/powerpc/powerpc64/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/powerpc/powerpc64/dl-machine.h -+++ glibc-2.14/sysdeps/powerpc/powerpc64/dl-machine.h -@@ -558,7 +558,8 @@ elf_machine_rela (struct link_map *map, - const Elf64_Rela *reloc, - const Elf64_Sym *sym, - const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, -+ int skip_ifunc) - { - Elf64_Addr *const reloc_addr = reloc_addr_arg; - const int r_type = ELF64_R_TYPE (reloc->r_info); -@@ -583,7 +584,8 @@ elf_machine_rela (struct link_map *map, - - if (sym != NULL - && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - value = resolve_ifunc (value, map, sym_map); - - /* For relocs that don't edit code, return. -@@ -596,12 +598,14 @@ elf_machine_rela (struct link_map *map, - return; - - case R_PPC64_IRELATIVE: -- value = resolve_ifunc (value, map, sym_map); -+ if (__builtin_expect (!skip_ifunc, 1)) -+ value = resolve_ifunc (value, map, sym_map); - *reloc_addr = value; - return; - - case R_PPC64_JMP_IREL: -- value = resolve_ifunc (value, map, sym_map); -+ if (__builtin_expect (!skip_ifunc, 1)) -+ value = resolve_ifunc (value, map, sym_map); - /* Fall thru */ - case R_PPC64_JMP_SLOT: - #ifdef RESOLVE_CONFLICT_FIND_MAP -@@ -852,7 +856,8 @@ elf_machine_rela (struct link_map *map, - - auto inline void __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf64_Addr l_addr, const Elf64_Rela *reloc) -+ Elf64_Addr l_addr, const Elf64_Rela *reloc, -+ int skip_ifunc) - { - /* elf_machine_runtime_setup handles this. */ - } -Index: glibc-2.14/sysdeps/s390/s390-32/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/s390/s390-32/dl-machine.h -+++ glibc-2.14/sysdeps/s390/s390-32/dl-machine.h -@@ -275,7 +275,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -434,7 +434,8 @@ elf_machine_rela_relative (Elf32_Addr l_ - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf32_Addr l_addr, const Elf32_Rela *reloc) -+ Elf32_Addr l_addr, const Elf32_Rela *reloc, -+ int skip_ifunc) - { - Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -Index: glibc-2.14/sysdeps/s390/s390-64/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/s390/s390-64/dl-machine.h -+++ glibc-2.14/sysdeps/s390/s390-64/dl-machine.h -@@ -247,7 +247,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, - const Elf64_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf64_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); -@@ -413,7 +413,8 @@ elf_machine_rela_relative (Elf64_Addr l_ - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf64_Addr l_addr, const Elf64_Rela *reloc) -+ Elf64_Addr l_addr, const Elf64_Rela *reloc, -+ int skip_ifunc) - { - Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); -Index: glibc-2.14/sysdeps/sh/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/sh/dl-machine.h -+++ glibc-2.14/sysdeps/sh/dl-machine.h -@@ -268,7 +268,7 @@ auto inline void - __attribute ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -454,7 +454,8 @@ elf_machine_rela_relative (Elf32_Addr l_ - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf32_Addr l_addr, const Elf32_Rela *reloc) -+ Elf32_Addr l_addr, const Elf32_Rela *reloc, -+ int skip_ifunc) - { - Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - /* Check for unexpected PLT reloc type. */ -Index: glibc-2.14/sysdeps/sparc/sparc32/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/sparc/sparc32/dl-machine.h -+++ glibc-2.14/sysdeps/sparc/sparc32/dl-machine.h -@@ -347,7 +347,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const Elf32_Sym *const refsym = sym; -@@ -397,7 +397,8 @@ elf_machine_rela (struct link_map *map, - - if (sym != NULL - && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - { - value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); - } -@@ -552,7 +553,8 @@ elf_machine_rela_relative (Elf32_Addr l_ - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf32_Addr l_addr, const Elf32_Rela *reloc) -+ Elf32_Addr l_addr, const Elf32_Rela *reloc, -+ int skip_ifunc) - { - Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -562,7 +564,8 @@ elf_machine_lazy_rel (struct link_map *m - else if (r_type == R_SPARC_JMP_IREL) - { - Elf32_Addr value = map->l_addr + reloc->r_addend; -- value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); -+ if (__builtin_expect (!skip_ifunc, 1)) -+ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); - sparc_fixup_plt (reloc, reloc_addr, value, 1, 1); - } - else if (r_type == R_SPARC_NONE) -Index: glibc-2.14/sysdeps/sparc/sparc64/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/sparc/sparc64/dl-machine.h -+++ glibc-2.14/sysdeps/sparc/sparc64/dl-machine.h -@@ -375,7 +375,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, - const Elf64_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf64_Addr *const reloc_addr = reloc_addr_arg; - #if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP -@@ -429,7 +429,8 @@ elf_machine_rela (struct link_map *map, - - if (sym != NULL - && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); - - switch (r_type) -@@ -647,7 +648,8 @@ elf_machine_rela_relative (Elf64_Addr l_ - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf64_Addr l_addr, const Elf64_Rela *reloc) -+ Elf64_Addr l_addr, const Elf64_Rela *reloc, -+ int skip_ifunc) - { - Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); -@@ -658,7 +660,8 @@ elf_machine_lazy_rel (struct link_map *m - || r_type == R_SPARC_IRELATIVE) - { - Elf64_Addr value = map->l_addr + reloc->r_addend; -- value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); -+ if (__builtin_expect (!skip_ifunc, 1)) -+ value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); - if (r_type == R_SPARC_JMP_IREL) - { - /* 'high' is always zero, for large PLT entries the linker -Index: glibc-2.14/sysdeps/x86_64/dl-machine.h -=================================================================== ---- glibc-2.14.orig/sysdeps/x86_64/dl-machine.h -+++ glibc-2.14/sysdeps/x86_64/dl-machine.h -@@ -261,7 +261,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, - const Elf64_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf64_Addr *const reloc_addr = reloc_addr_arg; - const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); -@@ -299,7 +299,8 @@ elf_machine_rela (struct link_map *map, - if (sym != NULL - && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, - 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - value = ((Elf64_Addr (*) (void)) value) (); - - # if defined RTLD_BOOTSTRAP && !USE___THREAD -@@ -470,7 +471,8 @@ elf_machine_rela_relative (Elf64_Addr l_ - auto inline void - __attribute ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf64_Addr l_addr, const Elf64_Rela *reloc) -+ Elf64_Addr l_addr, const Elf64_Rela *reloc, -+ int skip_ifunc) - { - Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); -@@ -497,7 +499,8 @@ elf_machine_lazy_rel (struct link_map *m - else if (__builtin_expect (r_type == R_X86_64_IRELATIVE, 0)) - { - Elf64_Addr value = map->l_addr + reloc->r_addend; -- value = ((Elf64_Addr (*) (void)) value) (); -+ if (__builtin_expect (!skip_ifunc, 1)) -+ value = ((Elf64_Addr (*) (void)) value) (); - *reloc_addr = value; - } - else diff --git a/glibc-2.15-nss_db-declarations.patch b/glibc-2.15-nss_db-declarations.patch new file mode 100644 index 0000000..74683ac --- /dev/null +++ b/glibc-2.15-nss_db-declarations.patch @@ -0,0 +1,24 @@ +diff --git a/nss/nss_db/db-init.c b/nss/nss_db/db-init.c +index 8228d61..85ac48f 100644 +--- a/nss/nss_db/db-init.c ++++ b/nss/nss_db/db-init.c +@@ -18,6 +18,7 @@ + 02111-1307 USA. */ + + #include ++#include + #include + + +diff --git a/nss/nss_db/db-initgroups.c b/nss/nss_db/db-initgroups.c +index aa8163b..1b806e5 100644 +--- a/nss/nss_db/db-initgroups.c ++++ b/nss/nss_db/db-initgroups.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #include "nss_db.h" + diff --git a/glibc-2.15-vsyscall.patch b/glibc-2.15-vsyscall.patch deleted file mode 100644 index 9ff4943..0000000 --- a/glibc-2.15-vsyscall.patch +++ /dev/null @@ -1,479 +0,0 @@ -commit 91b392a4bab0c2dc90e7e3ff914dec20b97adca8 -Author: Ulrich Drepper -Date: Sun Aug 21 13:52:28 2011 -0400 - - Use ifuncs for time and gettimeofday on x86-64 - -2011-08-21 Ulrich Drepper - - * sysdeps/unix/sysv/linux/x86_64/gettimeofday.S: Removed. - * sysdeps/unix/sysv/linux/x86_64/time.S: Removed. - * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: New file. - * sysdeps/unix/sysv/linux/x86_64/time.c: New file. - * sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h: Remove declaration - of __vdso_gettimeofday. - * sysdeps/unix/sysv/linux/x86_64/init-first.c: Remove definition of - __vdso_gettimeofday and __vdso_time. Define __vdso_getcpu with - attribute_hidden. - (_libc_vdso_platform_setup): Remove initialization of - __vdso_gettimeofday and __vdso_time. - -diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h -index d7123c9..f9bf84e 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h -+++ b/sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h -@@ -1,5 +1,5 @@ - /* Resolve function pointers to VDSO functions. -- Copyright (C) 2005, 2007 Free Software Foundation, Inc. -+ Copyright (C) 2005, 2007, 2011 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 -@@ -25,9 +25,6 @@ - - #ifdef SHARED - --extern long int (*__vdso_gettimeofday) (struct timeval *, void *) -- attribute_hidden; -- - extern long int (*__vdso_clock_gettime) (clockid_t, struct timespec *); - - #endif -diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S -deleted file mode 100644 -index f618e73..0000000 ---- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S -+++ /dev/null -@@ -1,49 +0,0 @@ --/* Copyright (C) 2002, 2003, 2007 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include --#define _ERRNO_H 1 --#include -- --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000 -- -- --ENTRY (__gettimeofday) -- /* Align stack. */ -- sub $0x8, %rsp -- cfi_adjust_cfa_offset(8) --#ifdef SHARED -- movq __vdso_gettimeofday(%rip), %rax -- PTR_DEMANGLE (%rax) --#else -- movq $VSYSCALL_ADDR_vgettimeofday, %rax --#endif -- callq *%rax -- /* Check error return. */ -- cmpl $-4095, %eax -- jae SYSCALL_ERROR_LABEL -- --L(pseudo_end): -- add $0x8, %rsp -- cfi_adjust_cfa_offset(-8) -- ret --PSEUDO_END(__gettimeofday) -- --strong_alias (__gettimeofday, __gettimeofday_internal) --weak_alias (__gettimeofday, gettimeofday) -diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -new file mode 100644 -index 0000000..1a773d6 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -@@ -0,0 +1,49 @@ -+/* Copyright (C) 2002, 2003, 2007, 2011 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+ -+ -+#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul -+ -+ -+#ifdef SHARED -+void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday"); -+ -+void * -+gettimeofday_ifunc (void) -+{ -+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); -+ -+ /* If the vDSO is not available we fall back on the old vsyscall. */ -+ return (_dl_vdso_vsym ("gettimeofday", &linux26) -+ ?: (void *) VSYSCALL_ADDR_vgettimeofday); -+} -+__asm (".type __gettimeofday, %gnu_indirect_function"); -+#else -+# include -+ -+int -+__gettimeofday (struct timeval *tv, struct timezone *tz) -+{ -+ return ((int (*) (struct timeval *, struct timezone *)) VSYSCALL_ADDR_vgettimeofday) (tv, tz); -+} -+#endif -+ -+weak_alias (__gettimeofday, gettimeofday) -+strong_alias (__gettimeofday, __gettimeofday_internal) -diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c -index e676f62..25cf08b 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/init-first.c -+++ b/sysdeps/unix/sysv/linux/x86_64/init-first.c -@@ -20,15 +20,11 @@ - # include - # include - --long int (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden; -- - long int (*__vdso_clock_gettime) (clockid_t, struct timespec *) - __attribute__ ((nocommon)); - strong_alias (__vdso_clock_gettime, __GI___vdso_clock_gettime attribute_hidden) - --long int (*__vdso_getcpu) (unsigned *, unsigned *, void *); -- --long int (*__vdso_time) (time_t *) attribute_hidden; -+long int (*__vdso_getcpu) (unsigned *, unsigned *, void *) attribute_hidden; - - - static inline void -@@ -36,15 +32,7 @@ _libc_vdso_platform_setup (void) - { - PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); - -- void *p = _dl_vdso_vsym ("gettimeofday", &linux26); -- /* If the vDSO is not available we fall back on the old vsyscall. */ --#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul -- if (p == NULL) -- p = (void *) VSYSCALL_ADDR_vgettimeofday; -- PTR_MANGLE (p); -- __vdso_gettimeofday = p; -- -- p = _dl_vdso_vsym ("clock_gettime", &linux26); -+ void *p = _dl_vdso_vsym ("clock_gettime", &linux26); - PTR_MANGLE (p); - __GI___vdso_clock_gettime = p; - -@@ -55,14 +43,6 @@ _libc_vdso_platform_setup (void) - p = (void *) VSYSCALL_ADDR_vgetcpu; - PTR_MANGLE (p); - __vdso_getcpu = p; -- -- p = _dl_vdso_vsym ("time", &linux26); -- /* If the vDSO is not available we fall back on the old vsyscall. */ --#define VSYSCALL_ADDR_vtime 0xffffffffff600400 -- if (p == NULL) -- p = (void *) VSYSCALL_ADDR_vtime; -- PTR_MANGLE (p); -- __vdso_time = p; - } - - # define VDSO_SETUP _libc_vdso_platform_setup -diff --git a/sysdeps/unix/sysv/linux/x86_64/time.S b/sysdeps/unix/sysv/linux/x86_64/time.S -deleted file mode 100644 -index 66d7498..0000000 ---- a/sysdeps/unix/sysv/linux/x86_64/time.S -+++ /dev/null -@@ -1,47 +0,0 @@ --/* Copyright (C) 2001,02, 2003, 2011 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include --#define _ERRNO_H 1 --#include -- --/* For the calculation see asm/vsyscall.h. */ --#define VSYSCALL_ADDR_vtime 0xffffffffff600400 -- -- --/* Return the current time as a `time_t' and also put it in *T if T is -- not NULL. Time is represented as seconds from Jan 1 00:00:00 1970. */ -- --ENTRY (time) -- /* Align stack. */ -- sub $0x8, %rsp -- cfi_adjust_cfa_offset(8) -- --#ifdef SHARED -- movq __vdso_time(%rip), %rax -- PTR_DEMANGLE (%rax) --#else -- movq $VSYSCALL_ADDR_vtime, %rax --#endif -- callq *%rax -- -- add $0x8, %rsp -- cfi_adjust_cfa_offset(-8) -- ret --PSEUDO_END_NOERRNO(time) --libc_hidden_def (time) -diff --git a/sysdeps/unix/sysv/linux/x86_64/time.c b/sysdeps/unix/sysv/linux/x86_64/time.c -new file mode 100644 -index 0000000..698d561 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/x86_64/time.c -@@ -0,0 +1,47 @@ -+/* Copyright (C) 2001,02, 2003, 2011 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+ -+ -+#define VSYSCALL_ADDR_vtime 0xffffffffff600400 -+ -+ -+#ifdef SHARED -+void *time_ifunc (void) __asm__ ("time"); -+ -+void * -+time_ifunc (void) -+{ -+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); -+ -+ /* If the vDSO is not available we fall back on the old vsyscall. */ -+ return _dl_vdso_vsym ("time", &linux26) ?: (void *) VSYSCALL_ADDR_vtime; -+} -+__asm (".type time, %gnu_indirect_function"); -+#else -+# include -+ -+time_t -+time (time_t *t) -+{ -+ return ((time_t (*) (time_t *)) VSYSCALL_ADDR_vtime) (t); -+} -+#endif -+ -+strong_alias (time, __GI_time) - -commit 2bc174332ba6ddbd1b855dced33889bef56e8ba3 -Author: Andreas Schwab -Date: Tue Aug 30 15:37:54 2011 +0200 - - Relocate objects in dependency order - -2011-08-30 Andreas Schwab - - * elf/rtld.c (dl_main): Relocate objects in dependency order. - -diff --git a/elf/rtld.c b/elf/rtld.c -index 87bb5f0..4f6bbfd 100644 ---- a/elf/rtld.c -+++ b/elf/rtld.c -@@ -2255,13 +2255,12 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - /* If we are profiling we also must do lazy reloaction. */ - GLRO(dl_lazy) |= consider_profiling; - -- struct link_map *l = main_map; -- while (l->l_next) -- l = l->l_next; -- - HP_TIMING_NOW (start); -- do -+ unsigned i = main_map->l_searchlist.r_nlist; -+ while (i-- > 0) - { -+ struct link_map *l = main_map->l_initfini[i]; -+ - /* While we are at it, help the memory handling a bit. We have to - mark some data structures as allocated with the fake malloc() - implementation in ld.so. */ -@@ -2280,10 +2279,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - /* Add object to slot information data if necessasy. */ - if (l->l_tls_blocksize != 0 && tls_init_tp_called) - _dl_add_to_slotinfo (l); -- -- l = l->l_prev; - } -- while (l); - HP_TIMING_NOW (stop); - - HP_TIMING_DIFF (relocate_time, start, stop); - -commit ef60624956e93df1da329a48570776ed963b1916 -Author: Ulrich Drepper -Date: Tue Sep 6 00:12:18 2011 -0400 - - Prefer real syscalls instead of vsyscalls on x86-64 outside libc.so - -2011-09-06 Ulrich Drepper - - * sysdeps/unix/sysv/linux/kernel-features.h: Add entry for getcpu - syscall on x86-64. - * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c [!SHARED]: Use real - syscall. - * sysdeps/unix/sysv/linux/x86_64/time.c: Likewise. - * sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S [!SHARED]: Use real - syscall if possible. - - -diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h -index d91f581..58f833e 100644 ---- a/sysdeps/unix/sysv/linux/kernel-features.h -+++ b/sysdeps/unix/sysv/linux/kernel-features.h -@@ -546,3 +546,8 @@ - #if __LINUX_KERNEL_VERSION >= 0x020627 - # define __ASSUME_SENDMMSG 1 - #endif -+ -+/* getcpu is a syscall for x86-64 since 3.1. */ -+#if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100 -+# define __ASSUME_GETCPU_SYSCALL 1 -+#endif -diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -index 1a773d6..56171bc 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -+++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -@@ -37,11 +37,12 @@ gettimeofday_ifunc (void) - __asm (".type __gettimeofday, %gnu_indirect_function"); - #else - # include -+# include - - int - __gettimeofday (struct timeval *tv, struct timezone *tz) - { -- return ((int (*) (struct timeval *, struct timezone *)) VSYSCALL_ADDR_vgettimeofday) (tv, tz); -+ return INLINE_SYSCALL (gettimeofday, 2, tv, tz); - } - #endif - -diff --git a/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S b/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S -index 8ec7d3f..246c955 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S -+++ b/sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S -@@ -20,6 +20,7 @@ - #include - #define _ERRNO_H 1 - #include -+#include - - /* For the calculation see asm/vsyscall.h. */ - #define VSYSCALL_ADDR_vgetcpu 0xffffffffff600800 -@@ -38,10 +39,26 @@ ENTRY (sched_getcpu) - #ifdef SHARED - movq __vdso_getcpu(%rip), %rax - PTR_DEMANGLE (%rax) -+ callq *%rax - #else -+# ifdef __NR_getcpu -+ movl $__NR_getcpu, %eax -+ syscall -+# ifndef __ASSUME_GETCPU_SYSCALL -+ cmpq $-ENOSYS, %rax -+ jne 1f -+# endif -+# endif -+# ifndef __ASSUME_GETCPU_SYSCALL - movq $VSYSCALL_ADDR_vgetcpu, %rax --#endif - callq *%rax -+1: -+# else -+# ifndef __NR_getcpu -+# error "cannot happen" -+# endif -+# endif -+#endif - - cmpq $-4095, %rax - jae SYSCALL_ERROR_LABEL -diff --git a/sysdeps/unix/sysv/linux/x86_64/time.c b/sysdeps/unix/sysv/linux/x86_64/time.c -index 698d561..c1c1a75 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/time.c -+++ b/sysdeps/unix/sysv/linux/x86_64/time.c -@@ -36,11 +36,13 @@ time_ifunc (void) - __asm (".type time, %gnu_indirect_function"); - #else - # include -+# include - - time_t - time (time_t *t) - { -- return ((time_t (*) (time_t *)) VSYSCALL_ADDR_vtime) (t); -+ INTERNAL_SYSCALL_DECL (err); -+ return INTERNAL_SYSCALL (time, err, 1, t); - } - #endif - -2011-09-06 Andreas Jaeger - - * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: Include - to fix build. - -Index: glibc-2.14/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -=================================================================== ---- glibc-2.14.orig/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -+++ glibc-2.14/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -@@ -36,6 +36,7 @@ gettimeofday_ifunc (void) - } - __asm (".type __gettimeofday, %gnu_indirect_function"); - #else -+# include - # include - # include - diff --git a/glibc-2.3.3-amd64-s_ceil.diff b/glibc-2.3.3-amd64-s_ceil.diff deleted file mode 100644 index f04a03b..0000000 --- a/glibc-2.3.3-amd64-s_ceil.diff +++ /dev/null @@ -1,37 +0,0 @@ - -This fixes ceil (x) for -1.0 < x < 0. - -Index: sysdeps/x86_64/fpu/s_ceil.c -=================================================================== ---- sysdeps/x86_64/fpu/s_ceil.c.orig -+++ sysdeps/x86_64/fpu/s_ceil.c -@@ -34,7 +34,11 @@ double __ceil(double x) - /* x is +zero or -zero; return the same zero */ - return x; - else if (xneg) /* x < 0.0 */ -- return 0.0; -+ { -+ /* Return zero with the sign of x */ -+ PUT_BITS_DP64(SIGNBIT_DP64, x); -+ return x; -+ } - else - return 1.0; - } -Index: sysdeps/x86_64/fpu/s_ceilf.c -=================================================================== ---- sysdeps/x86_64/fpu/s_ceilf.c.orig -+++ sysdeps/x86_64/fpu/s_ceilf.c -@@ -34,7 +34,11 @@ float __ceilf(float x) - /* x is +zero or -zero; return the same zero */ - return x; - else if (xneg) /* x < 0.0 */ -- return 0.0F; -+ { -+ /* Return zero with the sign of x */ -+ PUT_BITS_SP32(SIGNBIT_SP32, x); -+ return x; -+ } - else - return 1.0F; - } diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index c0ec50b..8d3240d 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -4,9 +4,11 @@ Index: nscd/nscd.h =================================================================== ---- nscd/nscd.h.orig +diff --git a/nscd/nscd.h b/nscd/nscd.h +index fdaf01b..23b6a94 100644 +--- nscd/nscd.h +++ nscd/nscd.h -@@ -105,10 +105,10 @@ struct database_dyn +@@ -113,11 +113,11 @@ struct database_dyn /* Paths of the file for the persistent storage. */ @@ -14,10 +16,12 @@ Index: nscd/nscd.h -#define _PATH_NSCD_GROUP_DB "/var/db/nscd/group" -#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts" -#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services" +-#define _PATH_NSCD_NETGROUP_DB "/var/db/nscd/netgroup" +#define _PATH_NSCD_PASSWD_DB "/var/run/nscd/passwd" +#define _PATH_NSCD_GROUP_DB "/var/run/nscd/group" +#define _PATH_NSCD_HOSTS_DB "/var/run/nscd/hosts" +#define _PATH_NSCD_SERVICES_DB "/var/run/nscd/services" ++#define _PATH_NSCD_NETGROUP_DB "/var/run/nscd/netgroup" /* Path used when not using persistent storage. */ #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" diff --git a/glibc-2.3.5-nscd-zeronegtimeout.diff b/glibc-2.3.5-nscd-zeronegtimeout.diff deleted file mode 100644 index 1aa6a5d..0000000 --- a/glibc-2.3.5-nscd-zeronegtimeout.diff +++ /dev/null @@ -1,122 +0,0 @@ -Send to libc-alpha on 2011-07-01, will be part of glibc 2.15. - -commit id: 445b4a53ea9d6c457c5f4ac1538102d8be0a5d89 - -2011-07-01 Thorsten Kukuk - - * nscd/pwdcache.c (cache_addpw): Handle zero negtimeout. - * nscd/initgrcache.c (addinitgroupsX): Likewise. - * nscd/hstcache.c (cache_addhst): Likewise. - * nscd/grpcache.c (cache_addgr): Likewise. - * nscd/aicache.c (addhstaiX): Likewise. - -Index: nscd/aicache.c -=================================================================== ---- nscd/aicache.c.orig -+++ nscd/aicache.c -@@ -504,9 +504,15 @@ next_nip: - if (fd != -1) - TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); - -- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1); - /* If we cannot permanently store the result, so be it. */ -- if (dataset != NULL) -+ if (db->negtimeout == 0) -+ { -+ /* Mark the old entry as obsolete. */ -+ if (dh != NULL) -+ dh->usable = false; -+ dataset = NULL; -+ } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) - { - dataset->head.allocsize = sizeof (struct dataset) + req->key_len; - dataset->head.recsize = total; -Index: nscd/grpcache.c -=================================================================== ---- nscd/grpcache.c.orig -+++ nscd/grpcache.c -@@ -113,10 +113,14 @@ cache_addgr (struct database_dyn *db, in - written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, - MSG_NOSIGNAL)); - -- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- 1); - /* If we cannot permanently store the result, so be it. */ -- if (dataset != NULL) -+ if (db->negtimeout == 0) -+ { -+ /* Mark the old entry as obsolete. */ -+ if (dh != NULL) -+ dh->usable = false; -+ } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) - { - dataset->head.allocsize = sizeof (struct dataset) + req->key_len; - dataset->head.recsize = total; -Index: nscd/hstcache.c -=================================================================== ---- nscd/hstcache.c.orig -+++ nscd/hstcache.c -@@ -119,10 +119,14 @@ cache_addhst (struct database_dyn *db, i - MSG_NOSIGNAL)) != total) - all_written = false; - -- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- 1); - /* If we cannot permanently store the result, so be it. */ -- if (dataset != NULL) -+ if (db->negtimeout == 0) -+ { -+ /* Mark the old entry as obsolete. */ -+ if (dh != NULL) -+ dh->usable = false; -+ } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) - { - dataset->head.allocsize = sizeof (struct dataset) + req->key_len; - dataset->head.recsize = total; -Index: nscd/initgrcache.c -=================================================================== ---- nscd/initgrcache.c.orig -+++ nscd/initgrcache.c -@@ -197,10 +197,14 @@ addinitgroupsX (struct database_dyn *db, - written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, - MSG_NOSIGNAL)); - -- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- 1); - /* If we cannot permanently store the result, so be it. */ -- if (dataset != NULL) -+ if (db->negtimeout == 0) -+ { -+ /* Mark the old entry as obsolete. */ -+ if (dh != NULL) -+ dh->usable = false; -+ } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) - { - dataset->head.allocsize = sizeof (struct dataset) + req->key_len; - dataset->head.recsize = total; -Index: nscd/pwdcache.c -=================================================================== ---- nscd/pwdcache.c.orig -+++ nscd/pwdcache.c -@@ -120,10 +120,14 @@ cache_addpw (struct database_dyn *db, in - written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, - MSG_NOSIGNAL)); - -- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, -- 1); - /* If we cannot permanently store the result, so be it. */ -- if (dataset != NULL) -+ if (db->negtimeout == 0) -+ { -+ /* Mark the old entry as obsolete. */ -+ if (dh != NULL) -+ dh->usable = false; -+ } -+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) - { - dataset->head.allocsize = sizeof (struct dataset) + req->key_len; - dataset->head.recsize = total; diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff index 43a66dc..1d13214 100644 --- a/glibc-2.4.90-nscd.diff +++ b/glibc-2.4.90-nscd.diff @@ -1,95 +1,3 @@ -Index: nscd/cache.c -=================================================================== ---- nscd/cache.c.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/cache.c 2010-02-14 14:58:08.000000000 +0100 -@@ -267,27 +267,29 @@ - if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) - { - struct stat64 st; -+ time_t mtime; - -- if (stat64 (table->filename, &st) < 0) -+ mtime = stat64 (table->filename, &st) ? LONG_MAX : st.st_mtime; -+ if (mtime != table->file_mtime) - { -- char buf[128]; -- /* We cannot stat() the file, disable file checking if the -- file does not exist. */ -- dbg_log (_("cannot stat() file `%s': %s"), -- table->filename, strerror_r (errno, buf, sizeof (buf))); -- if (errno == ENOENT) -- table->check_file = 0; -+ /* The file changed. Invalidate all entries. */ -+ now = LONG_MAX; -+ table->file_mtime = mtime; - } -- else -+ if (*table->filename2) - { -- if (st.st_mtime != table->file_mtime) -+ mtime = stat64 (table->filename2, &st) ? LONG_MAX : st.st_mtime; -+ if (mtime != table->file_mtime2) - { - /* The file changed. Invalidate all entries. */ - now = LONG_MAX; -- table->file_mtime = st.st_mtime; -+ table->file_mtime2 = mtime; - } - } - } -+ /* now == 0 means just check for changed files */ -+ if (now == (time_t)0) -+ return 0; - - /* We run through the table and find values which are not valid anymore. - -Index: nscd/connections.c -=================================================================== ---- nscd/connections.c.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/connections.c 2010-02-14 14:58:08.000000000 +0100 -@@ -119,6 +119,7 @@ struct database_dyn dbs[lastdb] = - .suggested_module = DEFAULT_SUGGESTED_MODULE, - .reset_res = 0, - .filename = "/etc/passwd", -+ .filename2 = "", - .db_filename = _PATH_NSCD_PASSWD_DB, - .disabled_iov = &pwd_iov_disabled, - .postimeout = 3600, -@@ -140,6 +141,7 @@ struct database_dyn dbs[lastdb] = - .suggested_module = DEFAULT_SUGGESTED_MODULE, - .reset_res = 0, - .filename = "/etc/group", -+ .filename2 = "", - .db_filename = _PATH_NSCD_GROUP_DB, - .disabled_iov = &grp_iov_disabled, - .postimeout = 3600, -@@ -161,6 +163,7 @@ struct database_dyn dbs[lastdb] = - .suggested_module = DEFAULT_SUGGESTED_MODULE, - .reset_res = 1, - .filename = "/etc/hosts", -+ .filename2 = "/etc/resolv.conf", - .db_filename = _PATH_NSCD_HOSTS_DB, - .disabled_iov = &hst_iov_disabled, - .postimeout = 3600, -@@ -855,15 +858,9 @@ cannot set socket to close on exec: %s; - /* We need the modification date of the file. */ - struct stat64 st; - -- if (stat64 (dbs[cnt].filename, &st) < 0) -- { -- /* We cannot stat() the file, disable file checking. */ -- dbg_log (_("cannot stat() file `%s': %s"), -- dbs[cnt].filename, strerror (errno)); -- dbs[cnt].check_file = 0; -- } -- else -- dbs[cnt].file_mtime = st.st_mtime; -+ dbs[cnt].file_mtime = stat64 (dbs[cnt].filename, &st) ? LONG_MAX : st.st_mtime; -+ if (*dbs[cnt].filename2) -+ dbs[cnt].file_mtime2 = stat64 (dbs[cnt].filename2, &st) ? LONG_MAX : st.st_mtime; - } - } - Index: nscd/nscd.conf =================================================================== --- nscd/nscd.conf.orig 2010-01-18 18:01:41.000000000 +0100 @@ -109,21 +17,6 @@ Index: nscd/nscd.conf shared hosts yes max-db-size hosts 33554432 -Index: nscd/nscd.h -=================================================================== ---- nscd/nscd.h.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/nscd.h 2010-02-14 14:59:07.000000000 +0100 -@@ -80,8 +80,10 @@ struct database_dyn - int propagate; - int reset_res; - const char filename[16]; -+ const char filename2[17]; - const char *db_filename; - time_t file_mtime; -+ time_t file_mtime2; - size_t suggested_module; - size_t max_db_size; - Index: nscd/nscd_stat.c =================================================================== --- nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 @@ -143,12 +36,3 @@ Index: nscd/nscd_stat.c /* Statistic data for one database. */ struct dbstat -@@ -302,7 +307,7 @@ receive_print_stats (void) - data.dbs[i].maxnsearched, - data.dbs[i].rdlockdelayed, - data.dbs[i].wrlockdelayed, -- data.dbs[i].addfailed, check_file, dbnames[i]); -+ data.dbs[i].addfailed, check_file, (strcmp(dbnames[i], "hosts") ? dbnames[i] : "{hosts,resolv.conf}")); - } - - if (selinux_enabled) diff --git a/glibc-arm-clone-unwind-fix.diff b/glibc-arm-clone-unwind-fix.diff deleted file mode 100644 index 67ff4fd..0000000 --- a/glibc-arm-clone-unwind-fix.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- ports/sysdeps/unix/sysv/linux/arm/clone.S -+++ ports/sysdeps/unix/sysv/linux/arm/clone.S -@@ -81,8 +81,11 @@ - RETINSTR(, lr) - - cfi_startproc -- cfi_undefined (lr) -+PSEUDO_END (__clone) -+ - 1: -+ .fnstart -+ .cantunwind - #ifdef RESET_PID - tst ip, #CLONE_THREAD - bne 3f -@@ -116,6 +119,6 @@ - @ and we are done, passing the return value through r0 - b PLTJMP(HIDDEN_JUMPTARGET(_exit)) - --PSEUDO_END (__clone) -+ .fnend - - weak_alias (__clone, clone) diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff index 31c3efb..7428de9 100644 --- a/glibc-compiled-binaries.diff +++ b/glibc-compiled-binaries.diff @@ -21,9 +21,9 @@ Index: config.make.in # Build tools. Index: configure.in =================================================================== ---- configure.in.orig 2011-05-20 15:39:31.237690293 +0200 -+++ configure.in 2011-05-20 15:43:55.595111363 +0200 -@@ -16,6 +16,7 @@ +--- configure.in.orig ++++ configure.in +@@ -16,6 +16,7 @@ if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) @@ -33,9 +33,9 @@ Index: configure.in AC_PROG_CXX Index: configure =================================================================== ---- configure.orig 2011-05-20 15:46:40.675628746 +0200 -+++ configure 2011-05-20 15:40:52.292884126 +0200 -@@ -545,6 +545,7 @@ +--- configure.orig ++++ configure +@@ -554,6 +554,7 @@ ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no @@ -43,7 +43,7 @@ Index: configure subdirs= MFLAGS= MAKEFLAGS= -@@ -697,6 +696,7 @@ +@@ -706,6 +707,7 @@ CXXFLAGS CXX CPP cross_compiling @@ -51,7 +51,7 @@ Index: configure BUILD_CC OBJEXT ac_ct_CC -@@ -1244,6 +1242,13 @@ +@@ -1250,6 +1252,13 @@ do as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done @@ -65,7 +65,7 @@ Index: configure # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. -@@ -1266,6 +1257,7 @@ +@@ -1265,6 +1274,7 @@ if test "x$host_alias" != x; then If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -73,9 +73,9 @@ Index: configure fi fi -@@ -1454,6 +1444,9 @@ - --enable-experimental-malloc - enable experimental malloc features +@@ -1450,6 +1460,9 @@ Optional Features: + --enable-multi-arch enable single DSO with optimizations for multiple + architectures --enable-nss-crypt enable libcrypt to use nss + --enable-runbinaries the compiled binaries should run on the buildhost because + it happens to have a compatible cpu @@ -87,7 +87,7 @@ Index: posix/Makefile =================================================================== --- posix/Makefile.orig +++ posix/Makefile -@@ -302,7 +302,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi +@@ -320,7 +320,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi done < $(objpfx)getconf.speclist $(objpfx)getconf.speclist: $(objpfx)getconf @@ -100,7 +100,7 @@ Index: sunrpc/Makefile =================================================================== --- sunrpc/Makefile.orig +++ sunrpc/Makefile -@@ -98,7 +98,7 @@ otherlibs += $(nssobjdir)/libnss_files.a +@@ -108,7 +108,7 @@ otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libresolv.a endif diff --git a/glibc-fix-rwlock-stack-imbalance.patch b/glibc-fix-rwlock-stack-imbalance.patch deleted file mode 100644 index 3accb5f..0000000 --- a/glibc-fix-rwlock-stack-imbalance.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -index f5d055c..8f3c68c 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock: - cfi_restore(%r12) - retq - --#ifdef __ASSUME_PRIVATE_FUTEX -+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME - cfi_adjust_cfa_offset(16) - cfi_rel_offset(%r12, 8) - cfi_rel_offset(%r13, 0) -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -index 6ed8b49..9aaaeba 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock: - - 7: movq %rdx, %rax - --#ifndef __ASSUME_PRIVATE_FUTEX -+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME - addq $16, %rsp - cfi_adjust_cfa_offset(-16) - popq %r14 -@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock: - cfi_restore(%r12) - retq - --#ifdef __ASSUME_PRIVATE_FUTEX -+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME - cfi_adjust_cfa_offset(16) - cfi_rel_offset(%r12, 8) - cfi_rel_offset(%r13, 0) diff --git a/glibc-gconvcache-s390.diff b/glibc-gconvcache-s390.diff deleted file mode 100644 index a09308d..0000000 --- a/glibc-gconvcache-s390.diff +++ /dev/null @@ -1,27 +0,0 @@ -2011-06-21 Andreas Jaeger - - * sysdeps/s390/s390-64/Makefile ($(inst_gconvdir)/gconv-modules): - Copy rule from iconvdata/Makefile. - -Index: glibc/sysdeps/s390/s390-64/Makefile -=================================================================== ---- sysdeps/s390/s390-64/Makefile 2009-08-03 10:18:31.000000000 +0200 -+++ sysdeps/s390/s390-64/Makefile 2010-04-07 10:01:35.000000000 +0200 -@@ -74,5 +74,17 @@ $(objpfx)gconv-modules-s390: gconv-modul - - $(inst_gconvdir)/gconv-modules: $(objpfx)gconv-modules-s390 $(+force) - $(do-install) -+ifeq (no,$(cross-compiling)) -+# Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary -+# if this libc has more gconv modules than the previously installed one. -+ if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \ -+ LC_ALL=C LANGUAGE=C \ -+ $(common-objpfx)elf/ld.so --library-path $(rpath-link) \ -+ $(common-objpfx)iconv/iconvconfig \ -+ $(addprefix --prefix=,$(install_root)); \ -+ fi -+else -+ @echo '*@*@*@ You should recreate $(inst_gconvdir)/gconv-modules.cache' -+endif - - endif diff --git a/glibc-malloc-arena-max.diff b/glibc-malloc-arena-max.diff deleted file mode 100644 index 37347fe..0000000 --- a/glibc-malloc-arena-max.diff +++ /dev/null @@ -1,236 +0,0 @@ -Allow M_ARENA_MAX / MALLOC_ARENA_MAX limit even with PER_THREAD disabled - -With the new PER_THREAD compile-time option, the allocator also offers -a way to limit the total number of arenas using MALLOC_ARENA_MAX -environment variable or mallopt(M_ARENA_MAX). - -In principle, this feature is not tied to the PER_THREAD option. This -patch makes it possible to use it even with the default compilation -settings. - -One motivation to limit the number of arenas may be libhugetlbfs users -that rely on its __morecore hook providing hugetlbfs-backed memory for -the allocator - this can work only with a single arena and multi-threaded -programs wishing to use this feature need a way to limit the allocator -to a single arena. Another motivation is avoiding pathological behavior -in extremely thread-intensive applications. - - -2011-02-04 Petr Baudis - - * malloc/arena.c: Define and manage narenas even ifndef - PER_THREAD. - * malloc/arena.c (ptmalloc_init_minimal): Likewise. - * malloc/arena.c (_int_new_arena): Likewise. - * malloc/arena.c (ptmalloc_init): Implement MALLOC_ARENA_MAX - even ifndef PER_THREAD. - * malloc/arena.c (reused_arena): Split off get_narenas_limit(), - define even ifndef PER_THREAD. - * malloc/arena.c (arena_get2): Adjust for get_narenas_limit() - split, call reused_arena even ifndef PER_THREAD. - * malloc/hooks.c (public_gET_STATe): Set arena_max, narenas - even ifndef PER_THREAD. - * malloc/hooks.c (public_sET_STATe): Likewise. - * malloc/malloc.c (malloc_par): Define arena_max even ifndef - PER_THREAD. - * malloc/malloc.c (mALLOPt): Implement M_ARENA_MAX even ifndef - PER_THREAD. - * malloc/malloc.c: Remove redundant M_* defines. - -Index: glibc-2.13/malloc/arena.c -=================================================================== ---- glibc-2.13.orig/malloc/arena.c -+++ glibc-2.13/malloc/arena.c -@@ -78,8 +78,8 @@ extern int sanity_check_heap_info_alignm - - static tsd_key_t arena_key; - static mutex_t list_lock; --#ifdef PER_THREAD - static size_t narenas; -+#ifdef PER_THREAD - static mstate free_list; - #endif - -@@ -416,8 +416,8 @@ ptmalloc_init_minimal (void) - #ifdef PER_THREAD - # define NARENAS_FROM_NCORES(n) ((n) * (sizeof(long) == 4 ? 2 : 8)) - mp_.arena_test = NARENAS_FROM_NCORES (1); -- narenas = 1; - #endif -+ narenas = 1; - } - - -@@ -574,10 +574,8 @@ ptmalloc_init (void) - { - if (memcmp (envline, "MMAP_MAX_", 9) == 0) - mALLOPt(M_MMAP_MAX, atoi(&envline[10])); --#ifdef PER_THREAD - else if (memcmp (envline, "ARENA_MAX", 9) == 0) - mALLOPt(M_ARENA_MAX, atoi(&envline[10])); --#endif - } - break; - #ifdef PER_THREAD -@@ -946,9 +944,9 @@ _int_new_arena(size_t size) - atomic_write_barrier (); - main_arena.next = a; - --#ifdef PER_THREAD - ++narenas; - -+#ifdef PER_THREAD - (void)mutex_unlock(&list_lock); - #endif - -@@ -982,13 +980,10 @@ get_free_list (void) - return result; - } - -- --static mstate --reused_arena (void) -+static int get_narenas_limit (void) __attribute__((pure)); -+static int -+get_narenas_limit (void) - { -- if (narenas <= mp_.arena_test) -- return NULL; -- - static int narenas_limit; - if (narenas_limit == 0) - { -@@ -1006,10 +1001,16 @@ reused_arena (void) - narenas_limit = NARENAS_FROM_NCORES (2); - } - } -+ return narenas_limit; -+} -+#endif - -- if (narenas < narenas_limit) -- return NULL; - -+/* Reuse and return one of the existing arenas; if all arenas are busy, -+ * pick one in a round-robin fashion and block until it becomes available. */ -+static mstate -+reused_arena (void) -+{ - mstate result; - static mstate next_to_use; - if (next_to_use == NULL) -@@ -1035,7 +1036,6 @@ reused_arena (void) - - return result; - } --#endif - - static mstate - internal_function -@@ -1048,10 +1048,15 @@ arena_get2(a_tsd, size) mstate a_tsd; si - mstate a; - - #ifdef PER_THREAD -- if ((a = get_free_list ()) == NULL -- && (a = reused_arena ()) == NULL) -- /* Nothing immediately available, so generate a new arena. */ -- a = _int_new_arena(size); -+ if ((a = get_free_list ()) == NULL) -+ { -+ if (narenas > mp_.arena_test && narenas >= get_narenas_limit()) -+ a = reused_arena (); -+ else -+ /* Nothing immediately available, but we can still generate more -+ * arenas, so get a new one. */ -+ a = _int_new_arena(size); -+ } - #else - if(!a_tsd) - a = a_tsd = &main_arena; -@@ -1093,8 +1098,14 @@ arena_get2(a_tsd, size) mstate a_tsd; si - goto repeat; - } - -- /* Nothing immediately available, so generate a new arena. */ -- a = _int_new_arena(size); -+ if (__builtin_expect(mp_.arena_max > 0, 0) && narenas >= mp_.arena_max) -+ /* Try again, this time blocking in case we are still unable to find -+ * a free arena. */ -+ a = reused_arena(); -+ else -+ /* Nothing immediately available, so generate a new arena. */ -+ a = _int_new_arena(size); -+ - (void)mutex_unlock(&list_lock); - #endif - -Index: glibc-2.13/malloc/hooks.c -=================================================================== ---- glibc-2.13.orig/malloc/hooks.c -+++ glibc-2.13/malloc/hooks.c -@@ -579,9 +579,9 @@ public_gET_STATe(void) - ms->max_fast = get_max_fast(); - #ifdef PER_THREAD - ms->arena_test = mp_.arena_test; -+#endif - ms->arena_max = mp_.arena_max; - ms->narenas = narenas; --#endif - (void)mutex_unlock(&main_arena.mutex); - return (Void_t*)ms; - } -@@ -683,9 +683,9 @@ public_sET_STATe(Void_t* msptr) - if (ms->version >= 4) { - #ifdef PER_THREAD - mp_.arena_test = ms->arena_test; -+#endif - mp_.arena_max = ms->arena_max; - narenas = ms->narenas; --#endif - } - check_malloc_state(&main_arena); - -Index: glibc-2.13/malloc/malloc.c -=================================================================== ---- glibc-2.13.orig/malloc/malloc.c -+++ glibc-2.13/malloc/malloc.c -@@ -2405,9 +2405,10 @@ struct malloc_par { - INTERNAL_SIZE_T top_pad; - INTERNAL_SIZE_T mmap_threshold; - #ifdef PER_THREAD -+ /* Lower bound for arena_max. */ - INTERNAL_SIZE_T arena_test; -- INTERNAL_SIZE_T arena_max; - #endif -+ INTERNAL_SIZE_T arena_max; - - /* Memory map support */ - int n_mmaps; -@@ -2445,13 +2446,6 @@ static struct malloc_state main_arena; - static struct malloc_par mp_; - - --#ifdef PER_THREAD --/* Non public mallopt parameters. */ --#define M_ARENA_TEST -7 --#define M_ARENA_MAX -8 --#endif -- -- - /* Maximum size of memory handled in fastbins. */ - static INTERNAL_SIZE_T global_max_fast; - -@@ -6111,12 +6105,12 @@ int mALLOPt(param_number, value) int par - if (value > 0) - mp_.arena_test = value; - break; -+#endif - - case M_ARENA_MAX: - if (value > 0) - mp_.arena_max = value; - break; --#endif - } - (void)mutex_unlock(&av->mutex); - return res; diff --git a/glibc-ports-2.14.1.tar.bz2 b/glibc-ports-2.14.1.tar.bz2 deleted file mode 100644 index bc7b5bb..0000000 --- a/glibc-ports-2.14.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1c830afb6d4aa166edaa09ec539580377ecbb16ba655d0aad6f5cb5a9a269aa9 -size 630641 diff --git a/glibc-ports-2.15-8a70b2dcabbf.tar.bz2 b/glibc-ports-2.15-8a70b2dcabbf.tar.bz2 new file mode 100644 index 0000000..7b943d5 --- /dev/null +++ b/glibc-ports-2.15-8a70b2dcabbf.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b7f32252c98467893d3352a57955943e6fd0e7ea606ef4765fe4985df9d7d08 +size 549483 diff --git a/glibc-ports-2.15-ifunc-trace.patch b/glibc-ports-2.15-ifunc-trace.patch deleted file mode 100644 index ae5861c..0000000 --- a/glibc-ports-2.15-ifunc-trace.patch +++ /dev/null @@ -1,95 +0,0 @@ -commit 0507f293c9b67d8eec92e8178308d72f1ed88449 -Author: Andreas Schwab -Date: Wed Oct 5 11:51:41 2011 +0200 - - arm: don't call ifunc functions in trace mode - ---- a/sysdeps/arm/dl-machine.h -+++ b/sysdeps/arm/dl-machine.h -@@ -335,7 +335,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -369,9 +369,9 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, - Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; - - if (sym != NULL -- && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, -- 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - value = ((Elf32_Addr (*) (void)) value) (); - - switch (r_type) -@@ -430,7 +430,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, - } - case R_ARM_TLS_DESC: - { -- struct tlsdesc volatile *td = -+ struct tlsdesc volatile *td = - (struct tlsdesc volatile *)reloc_addr; - - # ifndef RTLD_BOOTSTRAP -@@ -454,10 +454,10 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, - else - # endif - # endif -- { -+ { - td->argument.value = value + sym_map->l_tls_offset; - td->entry = _dl_tlsdesc_return; -- } -+ } - } - } - break; -@@ -525,7 +525,7 @@ auto inline void - __attribute__ ((always_inline)) - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, - const Elf32_Sym *sym, const struct r_found_version *version, -- void *const reloc_addr_arg) -+ void *const reloc_addr_arg, int skip_ifunc) - { - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -543,9 +543,9 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, - Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; - - if (sym != NULL -- && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, -- 0) -- && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) -+ && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) -+ && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) -+ && __builtin_expect (!skip_ifunc, 1)) - value = ((Elf32_Addr (*) (void)) value) (); - - switch (r_type) -@@ -656,7 +656,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, - auto inline void - __attribute__ ((always_inline)) - elf_machine_lazy_rel (struct link_map *map, -- Elf32_Addr l_addr, const Elf32_Rel *reloc) -+ Elf32_Addr l_addr, const Elf32_Rel *reloc, -+ int skip_ifunc) - { - Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); -@@ -674,8 +675,8 @@ elf_machine_lazy_rel (struct link_map *map, - (struct tlsdesc volatile *)reloc_addr; - - /* The linker must have given us the parameter we need in the -- first GOT entry, and left the second one empty. We fill the -- last with the resolver address */ -+ first GOT entry, and left the second one empty. We fill the -+ last with the resolver address */ - assert (td->entry == 0); - td->entry = (void*)(D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_PLT)]) - + map->l_addr); diff --git a/glibc-strict-aliasing.diff b/glibc-strict-aliasing.diff index e8287e9..51de5a7 100644 --- a/glibc-strict-aliasing.diff +++ b/glibc-strict-aliasing.diff @@ -10,78 +10,3 @@ Index: elf/Makefile endif before-compile = $(objpfx)trusted-dirs.h -Index: inet/Makefile -=================================================================== ---- inet/Makefile.orig -+++ inet/Makefile -@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa - - include ../Rules - -+CFLAGS-tst-inet6_rth.c = -fno-strict-aliasing -+ - ifeq ($(have-thread-library),yes) - - CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions -Index: nis/Makefile -=================================================================== ---- nis/Makefile.orig -+++ nis/Makefile -@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out - - include ../Rules - -+CFLAGS-nis_findserv.c = -fno-strict-aliasing -+CFLAGS-ypclnt.c = -fno-strict-aliasing - - $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) - $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ -Index: nss/Makefile -=================================================================== ---- nss/Makefile.orig -+++ nss/Makefile -@@ -75,6 +75,7 @@ endif - - include ../Rules - -+CFLAGS-files-hosts.c = -fno-strict-aliasing - - ifeq (yes,$(build-static-nss)) - $(objpfx)getent: $(objpfx)libnss_files.a -Index: resolv/Makefile -=================================================================== ---- resolv/Makefile.orig -+++ resolv/Makefile -@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostb - -Dgetnetbyaddr=res_getnetbyaddr - - CFLAGS-res_hconf.c = -fexceptions -+CFLAGS-res_send.c = -fno-strict-aliasing - - # The BIND code elicits some harmless warnings. - +cflags += -Wno-strict-prototypes -Wno-write-strings -Index: sunrpc/Makefile -=================================================================== ---- sunrpc/Makefile.orig -+++ sunrpc/Makefile -@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions - - CPPFLAGS += -D_RPC_THREAD_SAFE_ - -+CFLAGS-clnt_tcp.c = -fno-strict-aliasing -+CFLAGS-clnt_udp.c = -fno-strict-aliasing -+CFLAGS-clnt_unix.c = -fno-strict-aliasing -+ - $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so -Index: sysdeps/powerpc/powerpc64/elf/Makefile -=================================================================== ---- sysdeps/powerpc/powerpc64/elf/Makefile.orig -+++ sysdeps/powerpc/powerpc64/elf/Makefile -@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re - CFLAGS-rtld-memmove.os = $(no-special-regs) - CFLAGS-rtld-memchr.os = $(no-special-regs) - CFLAGS-rtld-strnlen.os = $(no-special-regs) -+ -+CFLAGS-gmon-start.c = -fno-strict-aliasing diff --git a/glibc-x86-bits-sigcontext.patch b/glibc-x86-bits-sigcontext.patch deleted file mode 100644 index 4acfa3d..0000000 --- a/glibc-x86-bits-sigcontext.patch +++ /dev/null @@ -1,35 +0,0 @@ - -http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6e502e19455c6110dd4487d91b7b7d6d8121f9ba - -commit 6e502e19455c6110dd4487d91b7b7d6d8121f9ba -Author: Ulrich Drepper -Date: Wed Jun 22 08:32:55 2011 -0400 - - Clean up after kernel sigcontext header mess - - -2011-06-21 Andreas Jaeger - - * sysdeps/unix/sysv/linux/bits/sigcontext.h: Fix definition of - NULL after inclusion of kernel headers. - - -diff --git a/sysdeps/unix/sysv/linux/bits/sigcontext.h b/sysdeps/unix/sysv/linux/bits/sigcontext.h -index 67dcf94..0f5b607 100644 ---- a/sysdeps/unix/sysv/linux/bits/sigcontext.h -+++ b/sysdeps/unix/sysv/linux/bits/sigcontext.h -@@ -1,4 +1,4 @@ --/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. -+/* Copyright (C) 1996, 1997, 1998, 2011 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 -@@ -26,4 +26,8 @@ - # define sigcontext_struct sigcontext - - # include -+ -+/* The Linux kernel headers redefine NULL wrongly, so cleanup afterwards. */ -+# define __need_NULL -+# include - #endif diff --git a/glibc.changes b/glibc.changes index 6e89ab5..c5dcb54 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de + +- Compile unwind-dw2-fde-glibc.c with -fno-strict-aliasing + (patch glibc-strict-aliasing.diff) +- Build on i686 a separate library for usage under Xen. + +------------------------------------------------------------------- +Tue Jan 3 15:36:12 UTC 2012 - aj@suse.de + +- Only use -mno-tls-direct-seg-refs on 32-bit x86, it's not needed + on x86-64. + +------------------------------------------------------------------- +Tue Jan 3 14:37:48 UTC 2012 - aj@suse.de + +- Cleanup spec file: + - experimental malloc is not experimental anymore and only option + (drop patch glibc-malloc-arena-max.diff) + - remove obsolete configure flags + +------------------------------------------------------------------- +Tue Jan 3 08:40:28 UTC 2012 - aj@suse.de + +- Update to 2ba92745c36e: + - Update copyright years + - Fix miscompilation of posix/regex_internal.c with GCC 4.7. + +------------------------------------------------------------------- +Tue Jan 3 08:23:44 UTC 2012 - aj@suse.de + +- Revert pthread-cond-wait change for now since it causes hangs + (patch pthread-cond-wait-revert.patch). + +------------------------------------------------------------------- +Mon Dec 26 12:53:55 UTC 2011 - aj@suse.de + +- Update to c0da14cdda1f (glibc-ports: 8a70b2dcabbf): + - new locales + - many bugfixes + - glibc 2.15 + - obsoletes tzfile-corruption-fix.patch, + glibc-2.14-32args-printf.patch + ------------------------------------------------------------------- Thu Dec 21 15:16:42 CET 2011 - meissner@suse.de @@ -9,6 +53,16 @@ Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de - Fix timezone loader overflow (bnc#735850,CVE-2009-5029) (patch tzfile-corruption-fix.patch) +------------------------------------------------------------------- +Mon Dec 5 09:29:32 UTC 2011 - aj@suse.de + +- Update to 52ad36a21973 (glibc-ports: 4a40b38f6355): + * fix many warnings + * bugfixes + * obsolete patches glibc-strict-aliasing.diff and + glibc-arm-clone-unwind-fix.diff + + ------------------------------------------------------------------- Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com @@ -29,6 +83,21 @@ Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de - Remove duplicated locales from glibc-2.3.locales.diff.bz2 +------------------------------------------------------------------- +Tue Nov 15 12:49:56 UTC 2011 - aj@suse.de + +- nscd now monitors resolv.conf, so simplify glibc-2.4.90-nscd.diff + patch and re-enable it +- Adjust and re-enable glibc-2.3.3-nscd-db-path.diff + +------------------------------------------------------------------- +Tue Nov 15 12:10:32 UTC 2011 - aj@suse.de + +- Update to 09f93bd3d6b1: + - Clean up internal fopen uses to always use close-on-exec + - Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32 + - bugfixes + ------------------------------------------------------------------- Mon Nov 14 12:02:06 CET 2011 - ro@suse.de @@ -57,6 +126,35 @@ Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. - Fix unwinding crash when using clone() +------------------------------------------------------------------- +Wed Nov 2 13:52:36 UTC 2011 - aj@suse.de + +- Update to d35dce5213b3: + - caching of network information for getaddrinfo + - bugfixes + +------------------------------------------------------------------- +Sat Oct 29 18:37:46 UTC 2011 - aj@suse.de + +- Update to 21b64b153631: + - various bugfixes + +------------------------------------------------------------------- +Thu Oct 27 08:44:14 UTC 2011 - aj@suse.de + +- Update to 804791474dc1: + - more libm optimizations +- Remove AMD libm routines due to new upstream libm optimizations + and interfaces. +- Fix build on x86. + +------------------------------------------------------------------- +Mon Oct 24 19:02:46 UTC 2011 - aj@suse.de + +- Update to a201fbcf9cc3: + - More libm optimizations + - Optimize wcslen, strnlen + ------------------------------------------------------------------- Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de @@ -68,6 +166,20 @@ Wed Oct 19 12:07:41 UTC 2011 - aj@suse.de - Provide glibc-static from glibc-devel-static to make packaging easier. glibc-static is the Fedora name. +------------------------------------------------------------------- +Tue Oct 18 07:42:40 UTC 2011 - aj@suse.de + +- Update to glibc head 99ce7b04edf1: + - Optimize many libm functions + - Optimize access to isXYZ and toXYZ tables + - Optimized memcmp and wmemcmp for x86-64 and x86-32 + - Add parameter annotation to modf + - Support optimized isXXX functions in C++ code + - Optimized memchr, memrchr, rawmemchr for x86-32 + - Add nscd netgroupcache +- Disable libm-x86-64.diff.bz2 since it needs changes following the + libm optimzations. + ------------------------------------------------------------------- Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de @@ -97,6 +209,18 @@ Fri Sep 30 17:14:04 CEST 2011 - dmueller@suse.de - avoid build failure on %%arm +------------------------------------------------------------------- +Thu Sep 29 12:58:59 UTC 2011 - aj@suse.de + +- Update to 68577918437e: + * Obsoleted patches: glibc-gconvcache-s390.diff, + glibc-2.3.5-nscd-zeronegtimeout.diff, + glibc-x86-bits-sigcontext.patch, + glibc-2.15-getsysstats-speedup.patch, glibc-2.13-warnings.fix, + glibc-2.13-localedef.patch, + glibc-fix-rwlock-stack-imbalance.patch, glibc-2.15-vsyscall.patch, + glibc-2.15-avoid-vsyscall.patch + ------------------------------------------------------------------- Thu Sep 29 07:40:25 UTC 2011 - adrian@suse.de diff --git a/glibc.spec b/glibc.spec index 49d6890..4fd0217 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -56,14 +56,6 @@ BuildRequires: libstdc++-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel # since many SUSE build machines have it %define enablekernel 2.6.16 -%ifarch ppc ppc64 -# On PowerPC we got a memory corruption during building, disabling -# exp_malloc fixed it. Disable it until we have found and fixed the -# root cause. -%define exp_malloc 0 -%else -%define exp_malloc 1 -%endif # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -77,15 +69,16 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -Version: 2.14.1 -Release: 0 -%define git_id 4f2b767fef50 -%define glibc_ports_ver %version +Version: 2.15 +Release: 11 +%define git_id 2ba92745c36e +%define glibc_ports_ver 2.15 +%define ports_git_id 8a70b2dcabbf Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.bz2 %define glibc_ports_dir glibc-ports-%{glibc_ports_ver} -Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{glibc_ports_ver}.tar.bz2 +Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source8: nsswitch.conf @@ -130,23 +123,17 @@ Patch8: glibc-2.4.90-revert-only-euro.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch12: glibc-2.3.2.no_archive.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch13: libm-x86-64.diff.bz2 -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch14: glibc-2.3.90-bindresvport.blacklist.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch16: glibc-2.4.90-no_NO.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch18: glibc-2.3.3-amd64-s_ceil.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch20: glibc-2.4-china.diff # PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 -# PATCH-FIX-OPENSUSE Handle +# PATCH-FIX-OPENSUSE Handle timestamp, adjust nscd.conf Patch22: glibc-2.4.90-nscd.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Fix path for nscd databases Patch23: glibc-2.3.3-nscd-db-path.diff -# PATCH-FIX-UPSTREAM - handle zero negative timeout, committed for glibc 2.15 -Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch25: glibc-2.3.90-langpackdir.diff # PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de @@ -161,8 +148,6 @@ Patch33: glibc-compiled-binaries.diff Patch36: glibc-no-unwind-tables.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de Patch38: glibc-cpusetsize.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch40: libm-x86-64-exceptions.diff # PATCH-FIX-OPENSUSE - Allow compilation with -altivec aj@suse.de Patch41: glibc-uio-cell.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -172,25 +157,11 @@ Patch46: glibc-resolv-mdnshint.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch47: glibc-nscd-hconf.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch48: glibc-malloc-arena-max.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch49: glibc-fini-unwind.diff -# PATCH-FIX-UPSTREAM install gconv-modules aj@suse.de -Patch50: glibc-gconvcache-s390.diff # PATCH-FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff -# PATCH-FIX-UPSTREAM fix x86 aj@suse.de -Patch60: glibc-x86-bits-sigcontext.patch -# PATCH-FEATURE-UPSTREAM Speedup getsysstats call aj@suse.de -Patch61: glibc-2.15-getsysstats-speedup.patch -# PATCH-FIX-UPSTREAM Fix gcc 4.6 warnings aj@suse.de -Patch62: glibc-2.13-warnings.fix -# PATCH-FIX-OPENSUSE Fix localedef locale-archive creation bso#10855 aj@suse.de -Patch63: glibc-2.13-localedef.patch -# PATCH-FIX-UPSTREAM Fix futex bug bso#12403 aj@suse.de -Patch64: glibc-fix-rwlock-stack-imbalance.patch # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch65: glibc-fix-double-loopback.diff # PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de @@ -199,36 +170,26 @@ Patch66: glibc2.14-revert-sunrpc-removal.patch Patch67: glibc-revert-fseek-on-fclose.diff # PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140 matz@suse.de Patch68: glibc-fix-lookup-crash.patch -# PATCH-FIX-UPSTREAM Add vdso support to support Linux 3.1, fix order of relocations aj@suse.de -Patch70: glibc-2.15-vsyscall.patch # PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de Patch71: x86-cpuid-level2.patch -# PATCH-FIX-UPSTREAM Avoid use of vsyscall aj@suse.de -Patch72: glibc-2.15-avoid-vsyscall.patch # PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) Patch73: glibc-resolv-assert.diff # PATCH-FIX-OPENSUSE Run ctors (bnc#717671) aj@suse.de Patch74: glibc-2.14-fix-ctors.patch -# PATCH-FIX-UPSTREAM Fix trace and ifuncs aj@suse.de -Patch75: glibc-2.15-ifunc-trace.patch -# PATCH-FIX-UPSTREAM Fix trace and ifuncs (talk to aj@suse.de) -Patch76: glibc-ports-2.15-ifunc-trace.patch +# PATCH-FIX-OPENSUSE Fix missing declarations +Patch75: glibc-2.15-nss_db-declarations.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de Patch81: crypt_blowfish-1.2-versioning.diff # PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de Patch82: crypt_blowfish-1.2-hack_around_arm.diff -# PATCH-FIX-UPSTREAM fix unwinding when using clone() -Patch83: glibc-arm-clone-unwind-fix.diff # PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail Patch84: nscd-avoid-gcc-warning.diff -# PATCH-FIX-OPENSUSE fix printf with > 32 args and printf specifiers bnc#733140, bso#13446 -Patch85: glibc-2.14-32args-printf.patch -# PATCH-FIX-UPSTREAM fix tzfile heap overrun bnc#735850 - aj@suse.de -Patch86: tzfile-corruption-fix.patch # PATCH-FIX-OPENSUSE fixed build-compare by omitting one more date - meissner@suse.de Patch87: glibc-nodate.patch +# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs +Patch88: pthread-cond-wait-revert.patch %description The GNU C Library provides the most important standard libraries used @@ -387,17 +348,7 @@ versions of your software. %endif %prep -%ifarch %arm -# add glibc-ports for arm %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 -pushd %glibc_ports_dir -%patch76 -p1 -%patch83 -p1 -popd -%else -# any other leave out ports -%setup -n glibc-%{version} -q -a 3 -a 4 -%endif # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} @@ -418,12 +369,8 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ %patch7 %patch8 %patch12 -%patch13 -E -# We have s_sincos.c in patch13, remove duplicate -rm sysdeps/x86_64/fpu/s_sincos.S %patch14 %patch16 -%patch18 %patch20 # XXX Did not patch for 2.14: #%patch21 @@ -432,7 +379,6 @@ rm sysdeps/x86_64/fpu/s_sincos.S touch -r nscd/nscd_stat.c nscd/s-stamp %patch22 %patch23 -%patch24 touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch25 @@ -442,37 +388,24 @@ rm nscd/s-stamp %patch33 %patch36 %patch38 -%patch40 %patch41 -p1 %patch45 %patch46 -p1 %patch47 -p1 -%if !%{exp_malloc} -%patch48 -p1 -%endif %patch49 -%patch50 %patch52 %patch58 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 %patch65 -p1 %patch66 -p1 %patch67 -p1 %patch68 -p1 -%patch70 -p1 %patch71 -p1 -%patch72 -p1 %patch73 -p1 %patch74 -p1 %patch75 -p1 %patch84 -%patch85 -%patch86 -p1 %patch87 -p0 +%patch88 -p1 -R # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -552,7 +485,9 @@ PARALLEL="%{?_smp_mflags}" %ifarch hppa BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" %endif -%ifarch %ix86 x86_64 +%ifarch i386 i486 i586 +# Add this to avoid performance penalty on Xen for 32-bit x86 +# Note on i686 we build a special library BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" %endif # Add flags for all plattforms except AXP @@ -579,7 +514,7 @@ configure_and_build_glibc() { cd "cc-$dirname" %ifarch %arm # remove asynchronous-unwind-tables during configure as it causes - # some checks to fail spuriously on %arm + # some checks to fail spuriously on arm conf_cflags="${cflags/-fasynchronous-unwind-tables/}" conf_cflags="${conf_cflags/-funwind-tables/}" %else @@ -588,7 +523,7 @@ configure_and_build_glibc() { CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ - --enable-add-ons=nptl$addons --without-cvs --enable-profile \ + --enable-add-ons=nptl$addons --enable-profile \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ @@ -600,10 +535,7 @@ configure_and_build_glibc() { %ifarch mipsel --without-fp \ %endif -%if %{exp_malloc} - --enable-experimental-malloc \ -%endif - --with-tls --with-__thread --enable-kernel=%{enablekernel} \ + --enable-kernel=%{enablekernel} \ --enable-bind-now # Should we enable --enable-nss-crypt to build use freebl3 hash functions? # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) @@ -616,6 +548,9 @@ configure_and_build_glibc() { # Build base glibc # configure_and_build_glibc base "$BuildFlags" "$add_ons" +%ifarch i686 + configure_and_build_glibc nosegneg "$BuildFlags -mno-tls-direct-seg-refs" "$add_ons" +%endif %else # # Build POWER-optimized glibc @@ -729,45 +664,64 @@ touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache # Do not install in parallel, timezone Makefile will fail make install_root=%{buildroot} install -C cc-base +install_optimized_variant() { + local dirname="$1"; shift + local subdir="$1"; shift + local subdir_up="$1"; shift + +cd "cc-$dirname" +destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir +mkdir -p $destdir +# Don't run a complete make install, we know which libraries +# we want +for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db +do + libbase=${lib#*/} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Only install if different from base lib + if cmp -s ${lib}.so ../cc-base/${lib}.so; then + ln -sf $subdir_up/$libbaseso $destdir/$libbaseso + else + cp -a ${lib}.so $destdir/$libbaseso + fi + # Emulate ldconfig + ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) +done +cd .. +} +# Install i686 glibc for Xen +%ifarch i686 +install_optimized_variant nosegneg i686/nosegneg "../.." +%endif + # Install power-optimized glibc %if %{optimize_power} - # run ldconfig to create the library symlinks - # do not use the new ldconfig from the build directory because - # it may contain instructions not suitable for the cpu on the builhost - my_ldconfig=/sbin/ldconfig - for pcpu in \ %if %{powerpc_optimize_cpu_power4} - power4 \ + install_optimized_variant power4 power4 ".." %endif %if %{powerpc_optimize_cpu_power6} - power6 \ + install_optimized_variant power6 power6 ".." %endif %if %{powerpc_optimize_cpu_power7} - power7 \ + install_optimized_variant power7 power7 ".." %endif %if %{powerpc_optimize_cpu_cell} - ppc-cell-be \ + install_optimized_variant ppc-cell-be ppc-cell-be ".." %endif - ; do - make install_root=%{buildroot}/$pcpu install -C cc-$pcpu - mkdir -p %{buildroot}/%{_lib}/$pcpu - for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version}; do - mv %{buildroot}/$pcpu/%{_lib}/$i.so %{buildroot}/%{_lib}/$pcpu - done - $my_ldconfig -n %{buildroot}/%{_lib}/$pcpu/ - rm -rf %{buildroot}/$pcpu - done %if %{powerpc_optimize_cpu_power6} - # power6 is compatible with power6x - # doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir - if test -d %{buildroot}/%{_lib}/power6; then - mkdir -p %{buildroot}/%{_lib}/power6x - for i in %{buildroot}/%{_lib}/power6/*.so; do - b=`basename $i` - ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - done - $my_ldconfig -n %{buildroot}/%{_lib}/power6x/ - fi + # power6 is compatible with power6x + # doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir + if test -d %{buildroot}/%{_lib}/power6; then + mkdir -p %{buildroot}/%{_lib}/power6x + for i in %{buildroot}/%{_lib}/power6/*.so; do + b=`basename $i` + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b + libbase=${b%.so} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Emulate ldconfig + ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) + done + fi %endif %endif # optimize_power @@ -988,6 +942,8 @@ exit 0 /%{_lib}/libnsl.so.1 /%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 +/%{_lib}/libnss_db-%{version}.so +/%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 /%{_lib}/libnss_files-%{version}.so @@ -1008,19 +964,24 @@ exit 0 /%{_lib}/libthread_db.so.1 /%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 +%define optimized_libs() \ + %dir %attr(0755,root,root) /%{_lib}/%1\ + /%{_lib}/%1/libc-%{version}.so\ + /%{_lib}/%1/libc.so.6*\ + /%{_lib}/%1/libm-%{version}.so\ + /%{_lib}/%1/libm.so.6*\ + /%{_lib}/%1/libpthread-%{version}.so\ + /%{_lib}/%1/libpthread.so.0\ + /%{_lib}/%1/librt-%{version}.so\ + /%{_lib}/%1/librt.so.1\ + /%{_lib}/%1/libthread_db-1.0.so\ + /%{_lib}/%1/libthread_db.so.1 + +%ifarch i686 +%dir %attr(0755,root,root) /%{_lib}/i686 +%{optimized_libs i686/nosegneg} +%endif %if %{optimize_power} - %define optimized_libs() \ - %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{version}.so\ - /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{version}.so\ - /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{version}.so\ - /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{version}.so\ - /%{_lib}/%1/librt.so.1\ - /%{_lib}/%1/libthread_db-1.0.so\ - /%{_lib}/%1/libthread_db.so.1 %if %{powerpc_optimize_cpu_power4} %{optimized_libs power4} %endif @@ -1047,11 +1008,14 @@ exit 0 %endif %{_bindir}/locale %{_bindir}/localedef +%{_bindir}/makedb %verify(not mode caps) %attr(4755,root,root) %{_libdir}/pt_chown %dir %attr(0755,root,root) %{_libdir}/getconf %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig +%dir /var/db +/var/db/Makefile %ifarch %ix86 @@ -1073,7 +1037,7 @@ exit 0 %files devel %defattr(-,root,root) -%doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE +%doc COPYING COPYING.LIB FAQ NEWS NOTES README BUGS CONFORMANCE %doc %{_mandir}/man1/catchsegv.1.gz %doc %{_mandir}/man1/rpcgen.1.gz %doc %{_mandir}/man1/sprof.1.gz @@ -1170,5 +1134,6 @@ exit 0 %{_bindir}/pcprofiledump %{_bindir}/sotruss %{_bindir}/xtrace +%{_bindir}/pldd %changelog diff --git a/libm-x86-64-exceptions.diff b/libm-x86-64-exceptions.diff deleted file mode 100644 index df76b2e..0000000 --- a/libm-x86-64-exceptions.diff +++ /dev/null @@ -1,569 +0,0 @@ -Index: sysdeps/x86_64/fpu/libm_inlines_amd.h -=================================================================== ---- sysdeps/x86_64/fpu/libm_inlines_amd.h.orig -+++ sysdeps/x86_64/fpu/libm_inlines_amd.h -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -254,6 +254,33 @@ static inline void clear_fpsw_flags(int - - - #if defined(USE_RAISE_FPSW_FLAGS) -+static inline void raise_fp_exc(int flags) -+{ -+ if((flags & AMD_F_UNDERFLOW) == AMD_F_UNDERFLOW) -+ { -+ double a = 0x1.0p-1022; -+ __asm __volatile ("mulsd %1, %0" : "+x" (a)); -+ } -+ -+ if((flags & AMD_F_OVERFLOW) == AMD_F_OVERFLOW) -+ { -+ double a = 0x1.fffffffffffffp1023; -+ __asm __volatile ("mulsd %1, %0" : "+x" (a)); -+ } -+ -+ if((flags & AMD_F_DIVBYZERO) == AMD_F_DIVBYZERO) -+ { -+ double a = 1.0, b = 0.0; -+ __asm __volatile ("divsd %1, %0" : "+x" (a) : "x" (b)); -+ } -+ -+ if((flags & AMD_F_INVALID) == AMD_F_INVALID) -+ { -+ double a = 0.0; -+ __asm __volatile ("divsd %1, %0" : "+x" (a)); -+ } -+} -+ - /* Raises floating-point status flags. The argument should be - the bitwise or of the flags to be raised, from the - list above, e.g. -@@ -269,11 +296,7 @@ static inline void raise_fpsw_flags(int - /* Put the floating-point environment back */ - __asm fldenv fenv; - #elif defined(linux) -- unsigned int cw; -- /* Get the current floating-point control/status word */ -- asm volatile ("STMXCSR %0" : "=m" (cw)); -- cw |= flags; -- asm volatile ("LDMXCSR %0" : : "m" (cw)); -+ raise_fp_exc(flags); - #else - #error Unknown machine - #endif -Index: sysdeps/x86_64/fpu/s_atan2.c -=================================================================== ---- sysdeps/x86_64/fpu/s_atan2.c.orig -+++ sysdeps/x86_64/fpu/s_atan2.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -595,6 +595,14 @@ double __atan2(double y, double x) - if (yneg) return val_with_flags(-piby2,AMD_F_INEXACT); - else val_with_flags(piby2,AMD_F_INEXACT); - } -+ else if((!xneg) && xinf && (!yinf) && (!yzero)) -+ { -+ if(yneg) -+ return -0.0; -+ else -+ return 0.0; -+ } -+ - - /* Scale up both x and y if they are both below 1/4. - This avoids any possible later denormalised arithmetic. */ -Index: sysdeps/x86_64/fpu/s_atan2f.c -=================================================================== ---- sysdeps/x86_64/fpu/s_atan2f.c.orig -+++ sysdeps/x86_64/fpu/s_atan2f.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -349,6 +349,14 @@ float __atan2f(float fy, float fx) - if (yneg) return val_with_flags(-piby2,AMD_F_INEXACT); - else val_with_flags(piby2,AMD_F_INEXACT); - } -+ else if((!xneg) && xinf && (!yinf) && (!yzero)) -+ { -+ if(yneg) -+ return -0.0; -+ else -+ return 0.0; -+ } -+ - - if (diffexp > 26) - { /* abs(y)/abs(x) > 2^26 => arctan(x/y) -Index: sysdeps/x86_64/fpu/s_atan.c -=================================================================== ---- sysdeps/x86_64/fpu/s_atan.c.orig -+++ sysdeps/x86_64/fpu/s_atan.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -67,7 +67,7 @@ double __atan (double x) - if (aux == 0) /* if x=0, then result is precise */ - return x; - else -- return val_with_flags(x, AMD_F_INEXACT); -+ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); - } - - /* Argument reduction to range [-7/16,7/16] */ -Index: sysdeps/x86_64/fpu/s_atanf.c -=================================================================== ---- sysdeps/x86_64/fpu/s_atanf.c.orig -+++ sysdeps/x86_64/fpu/s_atanf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -68,7 +68,7 @@ float __atanf (float fx) - if (aux == 0) /* if x=0, then result is precise */ - return fx; - else -- return valf_with_flags(fx, AMD_F_INEXACT); -+ return valf_with_flags(fx, AMD_F_INEXACT | AMD_F_UNDERFLOW); - } - - v = x; -Index: sysdeps/x86_64/fpu/s_sincos.c -=================================================================== ---- sysdeps/x86_64/fpu/s_sincos.c.orig -+++ sysdeps/x86_64/fpu/s_sincos.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. --** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS -- AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+(C) 2002, 2009 Advanced Micro Devices, Inc. -+** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS -+ AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -97,7 +97,7 @@ void __sincos(double x, double *s, doubl - } - else - { -- *s = x; -+ *s = val_with_flags(x, AMD_F_INEXACT); - *c = val_with_flags(1.0, AMD_F_INEXACT); - } - } -Index: sysdeps/x86_64/fpu/s_sincosf.c -=================================================================== ---- sysdeps/x86_64/fpu/s_sincosf.c.orig -+++ sysdeps/x86_64/fpu/s_sincosf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. --** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS -- AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+(C) 2002 Advanced Micro Devices, Inc. -+** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS -+ AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+ LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -Index: sysdeps/x86_64/fpu/s_tanf.c -=================================================================== ---- sysdeps/x86_64/fpu/s_tanf.c.orig -+++ sysdeps/x86_64/fpu/s_tanf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. --** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS -- AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+(C) 2002 Advanced Micro Devices, Inc. -+** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS -+ AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -+ LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -18,7 +18,7 @@ - #undef USE_NAN_WITH_FLAGS - #undef USE_REMAINDER_PIBY2F_INLINE - --/* tan(x) approximation valid on the interval [-pi/4,pi/4]. -+/* tan(x) approximation valid on the interval [-pi/4,pi/4]. - If recip is true return -1/tan(x) instead. */ - static inline double tanf_piby4(double x, int recip) - { -Index: sysdeps/x86_64/fpu/w_asin.c -=================================================================== ---- sysdeps/x86_64/fpu/w_asin.c.orig -+++ sysdeps/x86_64/fpu/w_asin.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -76,7 +76,8 @@ double __asin(double x) - - if (xexp < -28) - { /* y small enough that arcsin(x) = x */ -- return val_with_flags(x, AMD_F_INEXACT); -+ if(aux == 0) return x; -+ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); - } - else if (xnan) return x + x; - else if (xexp >= 0) -Index: sysdeps/x86_64/fpu/w_asinf.c -=================================================================== ---- sysdeps/x86_64/fpu/w_asinf.c.orig -+++ sysdeps/x86_64/fpu/w_asinf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -75,8 +75,11 @@ float __asinf(float x) - /* Special cases */ - - if (xexp < -14) -+ { - /* y small enough that arcsin(x) = x */ -- return valf_with_flags(x, AMD_F_INEXACT); -+ if(aux == 0 ) return x; -+ return valf_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); -+ } - else if (xnan) return x + x; - else if (xexp >= 0) - { -Index: sysdeps/x86_64/fpu/w_hypotf.c -=================================================================== ---- sysdeps/x86_64/fpu/w_hypotf.c.orig -+++ sysdeps/x86_64/fpu/w_hypotf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -79,6 +79,20 @@ float __hypotf(float x, float y) - return retval; - } - -+ /* Set x = abs(x) and y = abs(y) */ -+ if (ux == 0) -+ { -+ /* x is zero */ -+ PUT_BITS_DP64(avy, dy); -+ return dy; -+ } -+ if (uy == 0) -+ { -+ /* y is zero */ -+ PUT_BITS_DP64(avx, dx); -+ return dx; -+ } -+ - dr = (dx*dx + dy*dy); - - #if USE_SOFTWARE_SQRT -Index: sysdeps/x86_64/fpu/w_pow.c -=================================================================== ---- sysdeps/x86_64/fpu/w_pow.c.orig -+++ sysdeps/x86_64/fpu/w_pow.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -364,8 +364,20 @@ double __pow(double x, double y) - { - /* y is -ve */ - if (ax == 0) -- /* abs(x) = 0.0. Return +infinity. */ -- return retval_errno_edom(argx, argy, 1); -+ { -+ if(yinf) -+ { -+ /* Return +infinity with no flags */ -+ double sz; -+ PUT_BITS_DP64(PINFBITPATT_DP64, sz); -+ return sz; -+ } -+ else -+ { -+ /* abs(x) = 0.0. Return +infinity. */ -+ return retval_errno_edom(argx, argy, 1); -+ } -+ } - else if (ax < 0x3ff0000000000000) - { - /* abs(x) < 1.0; return +infinity. */ -Index: sysdeps/x86_64/fpu/w_powf.c -=================================================================== ---- sysdeps/x86_64/fpu/w_powf.c.orig -+++ sysdeps/x86_64/fpu/w_powf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -175,8 +175,20 @@ float __powf(float x, float y) - { - /* y is -ve */ - if (ax == 0) -- /* abs(x) = 0.0. Return +infinity. */ -- return retval_errno_edom(x, y, 1); -+ { -+ if(yinf) -+ { -+ /* Return +infinity with no flags */ -+ float sz; -+ PUT_BITS_SP32(PINFBITPATT_SP32, sz); -+ return sz; -+ } -+ else -+ { -+ /* abs(x) = 0.0. Return +infinity. */ -+ return retval_errno_edom(x, y, 1); -+ } -+ } - else if (ax < 0x3f800000) - { - /* abs(x) < 1.0; return +infinity. */ -Index: sysdeps/x86_64/fpu/w_remainder.c -=================================================================== ---- sysdeps/x86_64/fpu/w_remainder.c.orig -+++ sysdeps/x86_64/fpu/w_remainder.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -69,11 +69,31 @@ double __remainder(double x, double y) - { - /* x is NaN or infinity */ - if (ux & MANTBITS_DP64) -- /* x is NaN */ -- return dx + dx; /* Raise invalid if it is a signalling NaN */ -+ { -+ if( (yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64) ) -+ { -+ /* y is also NaN */ -+ return dx + dy; -+ } -+ else -+ { -+ /* x is NaN */ -+ return dx + dx; /* Raise invalid if it is a signalling NaN */ -+ } -+ } - else -- /* x is infinity; result is NaN */ -- return nan_with_flags(AMD_F_INVALID); -+ { -+ if((yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64)) -+ { -+ /* y is NaN */ -+ return dy+dy; -+ } -+ else -+ { -+ /* x is infinity; result is NaN */ -+ return nan_with_flags(AMD_F_INVALID); -+ } -+ } - } - else if (yexp > BIASEDEMAX_DP64) - { -Index: sysdeps/x86_64/fpu/w_remainderf.c -=================================================================== ---- sysdeps/x86_64/fpu/w_remainderf.c.orig -+++ sysdeps/x86_64/fpu/w_remainderf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -50,11 +50,31 @@ float __remainderf(float x, float y) - { - /* x is NaN or infinity */ - if (ux & MANTBITS_DP64) -- /* x is NaN */ -- return dx + dx; /* Raise invalid if it is a signalling NaN */ -+ { -+ if((yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64)) -+ { -+ /* y is also NaN */ -+ return dx + dy; -+ } -+ else -+ { -+ /* x is NaN */ -+ return dx + dx; /* Raise invalid if it is a signalling NaN */ -+ } -+ } - else -- /* x is infinity; result is NaN */ -- return nan_with_flags(AMD_F_INVALID); -+ { -+ if((yexp > BIASEDEMAX_DP64) && (uy & MANTBITS_DP64)) -+ { -+ /* y is NaN */ -+ return dy+dy; -+ } -+ else -+ { -+ /* x is infinity; result is NaN */ -+ return nan_with_flags(AMD_F_INVALID); -+ } -+ } - } - else if (yexp > BIASEDEMAX_DP64) - { -Index: sysdeps/x86_64/fpu/w_sinh.c -=================================================================== ---- sysdeps/x86_64/fpu/w_sinh.c.orig -+++ sysdeps/x86_64/fpu/w_sinh.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -249,7 +249,7 @@ double __sinh(double x) - /* with no inexact */ - return x; - else -- return val_with_flags(x, AMD_F_INEXACT); -+ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); - } - else if (aux >= 0x7ff0000000000000) /* |x| is NaN or Inf */ - return x + x; -Index: sysdeps/x86_64/fpu/w_sinhf.c -=================================================================== ---- sysdeps/x86_64/fpu/w_sinhf.c.orig -+++ sysdeps/x86_64/fpu/w_sinhf.c -@@ -1,8 +1,8 @@ - /* --(C) 2002 Advanced Micro Devices, Inc. -+(C) 2002, 2009 Advanced Micro Devices, Inc. - ** YOUR USE OF THIS LIBRARY IS SUBJECT TO THE TERMS - AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC -- LICENSE FOUND IN THE "README" FILE THAT IS INCLUDED WITH -+ LICENSE FOUND IN THE "LICENSE" FILE THAT IS INCLUDED WITH - THIS LIBRARY** - */ - -@@ -13,11 +13,13 @@ - #define USE_SCALEDOUBLE_1 - #define USE_SCALEDOUBLE_2 - #define USE_INFINITY_WITH_FLAGS -+#define USE_VAL_WITH_FLAGS - #include "libm_inlines_amd.h" - #undef USE_SPLITEXP - #undef USE_SCALEDOUBLE_1 - #undef USE_SCALEDOUBLE_2 - #undef USE_INFINITY_WITH_FLAGS -+#undef USE_VAL_WITH_FLAGS - - /* Deal with errno for out-of-range result */ - #include "libm_errno_amd.h" -@@ -166,7 +168,8 @@ float __sinhf(float fx) - if (aux < 0x3f10000000000000) /* |x| small enough that sinh(x) = x */ - { - if (aux == 0) return x; /* with no inexact */ -- if (LAMBDA_DP64 + x > 1.0) return x; /* with inexact */ -+ else -+ return val_with_flags(x, AMD_F_INEXACT | AMD_F_UNDERFLOW); /* with inexact */ - } - else if (aux >= 0x7ff0000000000000) /* |x| is NaN or Inf */ - return x + x; diff --git a/libm-x86-64.diff.bz2 b/libm-x86-64.diff.bz2 deleted file mode 100644 index 109de13..0000000 --- a/libm-x86-64.diff.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65537d54c9f89d1d54123b450e39975177decba4131fb99f3392981b10887bcb -size 75446 diff --git a/pthread-cond-wait-revert.patch b/pthread-cond-wait-revert.patch new file mode 100644 index 0000000..5f70d87 --- /dev/null +++ b/pthread-cond-wait-revert.patch @@ -0,0 +1,252 @@ +http://sourceware.org/ml/libc-alpha/2012-01/msg00002.html + +The following patch: +Has been reported as causing numerous problems in Fedora & Debian. I +don't think anyone has done any serious analysis of the issue, but the +patch has been pulled from both distributions because of the +instability it's introduced. + +https://bugzilla.redhat.com/show_bug.cgi?id=769421 +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651899 + + +commit c5a0802a682dba23f92d47f0f99775aebfbe2539 +Author: Andreas Schwab +Date: Mon Nov 28 13:38:19 2011 +0100 + + Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI + +2011-11-28 Andreas Schwab + + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle + EAGAIN from FUTEX_WAIT_REQUEUE_PI. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. + +diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +index 53970d7..54590b7 100644 +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +@@ -134,6 +134,7 @@ __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 +@@ -147,6 +148,9 @@ __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 +@@ -391,6 +395,78 @@ __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) +@@ -563,6 +639,10 @@ __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 +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +index 7535baa..d837d15 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + #include + +@@ -133,11 +134,14 @@ __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 +@@ -324,6 +328,70 @@ __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) +@@ -476,11 +544,15 @@ __condvar_cleanup1: + .uleb128 .LcleanupSTART-.LSTARTCODE + .uleb128 .LcleanupEND-.LcleanupSTART + .uleb128 __condvar_cleanup1-.LSTARTCODE +- .uleb128 0 ++ .uleb128 0 ++ .uleb128 .LcleanupSTART2-.LSTARTCODE ++ .uleb128 .LcleanupEND2-.LcleanupSTART2 ++ .uleb128 __condvar_cleanup1-.LSTARTCODE ++ .uleb128 0 + .uleb128 .LcallUR-.LSTARTCODE + .uleb128 .LENDCODE-.LcallUR + .uleb128 0 +- .uleb128 0 ++ .uleb128 0 + .Lcstend: + + diff --git a/tzfile-corruption-fix.patch b/tzfile-corruption-fix.patch deleted file mode 100644 index b50b726..0000000 --- a/tzfile-corruption-fix.patch +++ /dev/null @@ -1,100 +0,0 @@ -2011-12-17 Ulrich Drepper - - [BZ #13506] - * time/tzfile.c (__tzfile_read): Check values from file header. - -diff --git a/time/tzfile.c b/time/tzfile.c -index 144e20b..402389c 100644 ---- a/time/tzfile.c -+++ b/time/tzfile.c -@@ -234,23 +234,58 @@ __tzfile_read (const char *file, size_t extra, char **extrap) - goto read_again; - } - -+ if (__builtin_expect (num_transitions -+ > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1)) -+ / (sizeof (time_t) + 1)), 0)) -+ goto lose; - total_size = num_transitions * (sizeof (time_t) + 1); - total_size = ((total_size + __alignof__ (struct ttinfo) - 1) - & ~(__alignof__ (struct ttinfo) - 1)); - types_idx = total_size; -- total_size += num_types * sizeof (struct ttinfo) + chars; -+ if (__builtin_expect (num_types -+ > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0)) -+ goto lose; -+ total_size += num_types * sizeof (struct ttinfo); -+ if (__builtin_expect (chars > SIZE_MAX - total_size, 0)) -+ goto lose; -+ total_size += chars; -+ if (__builtin_expect (__alignof__ (struct leap) - 1 -+ > SIZE_MAX - total_size, 0)) -+ goto lose; - total_size = ((total_size + __alignof__ (struct leap) - 1) - & ~(__alignof__ (struct leap) - 1)); - leaps_idx = total_size; -+ if (__builtin_expect (num_leaps -+ > (SIZE_MAX - total_size) / sizeof (struct leap), 0)) -+ goto lose; - total_size += num_leaps * sizeof (struct leap); -- tzspec_len = (sizeof (time_t) == 8 && trans_width == 8 -- ? st.st_size - (ftello (f) -- + num_transitions * (8 + 1) -- + num_types * 6 -- + chars -- + num_leaps * 12 -- + num_isstd -- + num_isgmt) - 1 : 0); -+ tzspec_len = 0; -+ if (sizeof (time_t) == 8 && trans_width == 8) -+ { -+ off_t rem = st.st_size - ftello (f); -+ if (__builtin_expect (rem < 0 -+ || (size_t) rem < (num_transitions * (8 + 1) -+ + num_types * 6 -+ + chars), 0)) -+ goto lose; -+ tzspec_len = (size_t) rem - (num_transitions * (8 + 1) -+ + num_types * 6 -+ + chars); -+ if (__builtin_expect (num_leaps > SIZE_MAX / 12 -+ || tzspec_len < num_leaps * 12, 0)) -+ goto lose; -+ tzspec_len -= num_leaps * 12; -+ 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)) -+ goto lose; -+ tzspec_len -= num_isgmt + 1; -+ if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0)) -+ goto lose; -+ } -+ if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0)) -+ goto lose; - - /* Allocate enough memory including the extra block requested by the - caller. */ - - -And fix the previous patch ... - ---- a/time/tzfile.c.orig 2011-12-19 10:58:26.000000000 +0100 -+++ b/time/tzfile.c 2011-12-19 10:59:35.000000000 +0100 -@@ -19,6 +19,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -278,7 +279,7 @@ - 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)) From 5d86c7cf54c1c207aa7cdb5e1d6eb5c6c3fc0b1abd957813dac563a524faeaeb Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 11 Jan 2012 14:36:28 +0000 Subject: [PATCH 096/204] Accepting request 99613 from Base:System Fix for bnc#740109 (forwarded request 99612 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/99613 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=101 --- gb18030.patch.bz2 | 3 + glibc-2.15-math64crash.patch | 187 +++++++++++++++++++++++++ glibc-2.16-scanf.patch | 31 ++++ glibc-2.3.4-gb18030-big5hkscs.diff.bz2 | 3 - glibc-ppc-getcontext.patch | 40 ++++++ glibc.changes | 25 ++++ glibc.spec | 20 ++- 7 files changed, 302 insertions(+), 7 deletions(-) create mode 100644 gb18030.patch.bz2 create mode 100644 glibc-2.15-math64crash.patch create mode 100644 glibc-2.16-scanf.patch delete mode 100644 glibc-2.3.4-gb18030-big5hkscs.diff.bz2 create mode 100644 glibc-ppc-getcontext.patch diff --git a/gb18030.patch.bz2 b/gb18030.patch.bz2 new file mode 100644 index 0000000..2bf0402 --- /dev/null +++ b/gb18030.patch.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6d06c85b314ec365a1430a47d2867bf1191ce5d3771d9647bc3bcf31873228a +size 299733 diff --git a/glibc-2.15-math64crash.patch b/glibc-2.15-math64crash.patch new file mode 100644 index 0000000..5bcfe5e --- /dev/null +++ b/glibc-2.15-math64crash.patch @@ -0,0 +1,187 @@ +The following patch comes from Arch Linux - and is just a workaround +until the real problem is fixed. + +diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile +index be68903..a032da8 100644 +--- a/sysdeps/x86_64/fpu/multiarch/Makefile ++++ b/sysdeps/x86_64/fpu/multiarch/Makefile +@@ -1,5 +1,5 @@ + ifeq ($(subdir),math) +-libm-sysdep_routines += s_floor-c s_ceil-c s_floorf-c s_ceilf-c \ ++libm-sysdep_routines += s_floorf-c s_ceilf-c \ + s_rint-c s_rintf-c s_nearbyint-c s_nearbyintf-c + + ifeq ($(have-mfma4),yes) +diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c b/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c +deleted file mode 100644 +index 6a5ea3f..0000000 +--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define __ceil __ceil_c +-#include +diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil.S b/sysdeps/x86_64/fpu/multiarch/s_ceil.S +deleted file mode 100644 +index d0f8da3..0000000 +--- a/sysdeps/x86_64/fpu/multiarch/s_ceil.S ++++ /dev/null +@@ -1,40 +0,0 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 2011. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#include +- +- +-ENTRY(__ceil) +- .type __ceil, @gnu_indirect_function +- call __get_cpu_features@plt +- movq %rax, %rdx +- leaq __ceil_sse41(%rip), %rax +- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx) +- jnz 2f +- leaq __ceil_c(%rip), %rax +-2: ret +-END(__ceil) +-weak_alias (__ceil, ceil) +- +- +-ENTRY(__ceil_sse41) +- roundsd $2, %xmm0, %xmm0 +- ret +-END(__ceil_sse41) +diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c b/sysdeps/x86_64/fpu/multiarch/s_floor-c.c +deleted file mode 100644 +index 68733b6..0000000 +--- a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c ++++ /dev/null +@@ -1,3 +0,0 @@ +-#undef __floor +-#define __floor __floor_c +-#include +diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor.S b/sysdeps/x86_64/fpu/multiarch/s_floor.S +deleted file mode 100644 +index 514ea95..0000000 +--- a/sysdeps/x86_64/fpu/multiarch/s_floor.S ++++ /dev/null +@@ -1,40 +0,0 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 2011. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#include +- +- +-ENTRY(__floor) +- .type __floor, @gnu_indirect_function +- call __get_cpu_features@plt +- movq %rax, %rdx +- leaq __floor_sse41(%rip), %rax +- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx) +- jnz 2f +- leaq __floor_c(%rip), %rax +-2: ret +-END(__floor) +-weak_alias (__floor, floor) +- +- +-ENTRY(__floor_sse41) +- roundsd $1, %xmm0, %xmm0 +- ret +-END(__floor_sse41) +diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c +deleted file mode 100644 +index 1ba9dbc..0000000 +--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c ++++ /dev/null +@@ -1,31 +0,0 @@ +-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT +-# include +-# include +-# undef NAN +- +-extern double __cos_sse2 (double); +-extern double __sin_sse2 (double); +-extern double __cos_avx (double); +-extern double __sin_avx (double); +-# ifdef HAVE_FMA4_SUPPORT +-extern double __cos_fma4 (double); +-extern double __sin_fma4 (double); +-# else +-# undef HAS_FMA4 +-# define HAS_FMA4 0 +-# define __cos_fma4 ((void *) 0) +-# define __sin_fma4 ((void *) 0) +-# endif +- +-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); +-weak_alias (__cos, cos) +- +-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); +-weak_alias (__sin, sin) +- +-# define __cos __cos_sse2 +-# define __sin __sin_sse2 +-#endif +- +- +-#include +diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c +deleted file mode 100644 +index 8f6601e..0000000 +--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c ++++ /dev/null +@@ -1,21 +0,0 @@ +-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT +-# include +-# include +- +-extern double __tan_sse2 (double); +-extern double __tan_avx (double); +-# ifdef HAVE_FMA4_SUPPORT +-extern double __tan_fma4 (double); +-# else +-# undef HAS_FMA4 +-# define HAS_FMA4 0 +-# define __tan_fma4 ((void *) 0) +-# endif +- +-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); +- +-# define tan __tan_sse2 +-#endif +- +- +-#include diff --git a/glibc-2.16-scanf.patch b/glibc-2.16-scanf.patch new file mode 100644 index 0000000..940a341 --- /dev/null +++ b/glibc-2.16-scanf.patch @@ -0,0 +1,31 @@ +commit 20b38e0301279a37a3f1e769843933bcc0d5f736 +Author: Paul Pluzhnikov +Date: Sun Jan 8 20:13:35 2012 -0500 + + sscanf always calls realloc + + +2012-01-05 Paul Pluzhnikov + + * stdio-common/vfscanf.c (_IO_vfscanf_internal): Use alloca when + appropriate. + +diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c +index 0e71deb..e18a6c3 100644 +--- a/stdio-common/vfscanf.c ++++ b/stdio-common/vfscanf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-2006, 2007, 2010, 2011 Free Software Foundation, Inc. ++/* Copyright (C) 1991-2007, 2010, 2011, 2012 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 +@@ -274,7 +274,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, + CHAR_T *old = wp; \ + size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \ + ? UCHAR_MAX + 1 : 2 * wpmax); \ +- if (use_malloc || __libc_use_alloca (newsize)) \ ++ if (use_malloc || !__libc_use_alloca (newsize)) \ + { \ + wp = realloc (use_malloc ? wp : NULL, newsize); \ + if (wp == NULL) \ diff --git a/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 b/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 deleted file mode 100644 index 939c711..0000000 --- a/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b9ad9e58edeea033b1e06ae3648f6adfce0dbf3f3e84b6ec77dda9fa5cf3a58d -size 1034566 diff --git a/glibc-ppc-getcontext.patch b/glibc-ppc-getcontext.patch new file mode 100644 index 0000000..adbfdb5 --- /dev/null +++ b/glibc-ppc-getcontext.patch @@ -0,0 +1,40 @@ +commit d1f741e9120669883c6fc0f6fc53b9d35e5015ce +Author: Will Schmidt +Date: Sun Jan 8 21:32:57 2012 -0500 + + Fix typo in Linux/PPC32 getcontext + +2011-01-05 Will Schmidt + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Fix a + typo #include statement. + + + * include/sys/cdefs.h: Define __attribute_alloc_size. +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S +index dad1074..46f3dea 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S +@@ -1,5 +1,5 @@ + /* Save current context. +- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004, 2005, 2012 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 +@@ -54,12 +54,12 @@ versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4) + + #if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + compat_text_section +- +-# undef __CONTEXT_FUNC_NAME ++ ++# undef __CONTEXT_FUNC_NAME + # define __CONTEXT_FUNC_NAME __novec_getcontext + # undef __CONTEXT_ENABLE_VRS + +-# clude "getcontext-common.S" ++# include "getcontext-common.S" + + .previous + diff --git a/glibc.changes b/glibc.changes index c5dcb54..abdb862 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Tue Jan 10 12:31:14 UTC 2012 - aj@suse.de + +- Remove all math ifuncs on x86-64. + +------------------------------------------------------------------- +Tue Jan 10 09:53:58 UTC 2012 - aj@suse.de + +- Remove math ifuncs that cause crashes in apache2 and + gdk-pixbuf-query-loaders-64 (bnc#740109) for now + (glibc-2.15-math64crash.patch). +- nscd needs the same glibc version, add require. + +------------------------------------------------------------------- +Mon Jan 9 08:17:08 UTC 2012 - aj@suse.de + +- Fix realloc usage in vfscanf (glibc-2.16-scanf.patch) +- Fix getcontext on powerpc 32-bit (glibc-ppc-getcontext.patch) + +------------------------------------------------------------------- +Wed Jan 4 09:34:28 UTC 2012 - aj@suse.de + +- Remove patch glibc-2.3.4-gb18030-big5hkscs.diff.bz2 and + replace it by gb18030.patch.bz2 (synced with Fedora 16). + ------------------------------------------------------------------- Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 4fd0217..0ab50e7 100644 --- a/glibc.spec +++ b/glibc.spec @@ -129,7 +129,7 @@ Patch16: glibc-2.4.90-no_NO.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch20: glibc-2.4-china.diff # PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 -Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 +Patch21: gb18030.patch.bz2 # PATCH-FIX-OPENSUSE Handle timestamp, adjust nscd.conf Patch22: glibc-2.4.90-nscd.diff # PATCH-FIX-OPENSUSE Fix path for nscd databases @@ -188,8 +188,14 @@ Patch82: crypt_blowfish-1.2-hack_around_arm.diff Patch84: nscd-avoid-gcc-warning.diff # PATCH-FIX-OPENSUSE fixed build-compare by omitting one more date - meissner@suse.de Patch87: glibc-nodate.patch -# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs +# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de Patch88: pthread-cond-wait-revert.patch +# PATCH-FIX-UPSTREAM Fix realloc usage in vfscanf - aj@suse.de +Patch89: glibc-2.16-scanf.patch +# PATCH-FIX-UPSTREAM Fix getcontext on 32-bit powerpc - aj@suse.de +Patch90: glibc-ppc-getcontext.patch +# PATCH-FIX-OPENSUSE Revert some math ifuncs (bnc#740109) - aj@suse.de +Patch91: glibc-2.15-math64crash.patch %description The GNU C Library provides the most important standard libraries used @@ -256,6 +262,7 @@ License: LGPL-2.1+ Group: System/Daemons Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd +Requires: glibc = %{version} Requires(preun): %insserv_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq @@ -372,8 +379,7 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ %patch14 %patch16 %patch20 -# XXX Did not patch for 2.14: -#%patch21 +%patch21 -p1 # avoid changing nscd_stat.c mtime to avoid code generation # differences on each rebuild touch -r nscd/nscd_stat.c nscd/s-stamp @@ -406,6 +412,9 @@ rm nscd/s-stamp %patch84 %patch87 -p0 %patch88 -p1 -R +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -505,6 +514,9 @@ PARALLEL="%{?_smp_mflags}" # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif +# Remove completely, these give some strange crashes with dlopen +# See bnc#740109 +rm -rf sysdeps/x86_64/fpu/multiarch configure_and_build_glibc() { local dirname="$1"; shift From eb31e932401d5e2228c8d0ffdfea84f100f2cb8e1fe3ac413a74ffb4b361c178 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 19 Jan 2012 09:34:43 +0000 Subject: [PATCH 097/204] Accepting request 100533 from Base:System Update license (forwarded request 100532 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/100533 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=102 --- glibc-revert-netlink-cache.patch | 801 +++++++++++++++++++++++++++++++ glibc.changes | 23 + glibc.spec | 65 ++- 3 files changed, 872 insertions(+), 17 deletions(-) create mode 100644 glibc-revert-netlink-cache.patch diff --git a/glibc-revert-netlink-cache.patch b/glibc-revert-netlink-cache.patch new file mode 100644 index 0000000..d008a0d --- /dev/null +++ b/glibc-revert-netlink-cache.patch @@ -0,0 +1,801 @@ +commit 432d41ceecf5df8cfbc5a1db0cee9190f07ec1ca +Author: Ulrich Drepper +Date: Tue Nov 1 08:43:33 2011 -0400 + + Use kernel headers for netlink definitions + +2011-11-01 Ulrich Drepper + + * nscd/connections.c: Use kernel headers instead of . + +diff --git a/nscd/connections.c b/nscd/connections.c +index 1b8a9bd..c741996 100644 +--- a/nscd/connections.c ++++ b/nscd/connections.c +@@ -34,7 +34,8 @@ + #include + #include + #ifdef HAVE_NETLINK +-# include ++# include ++# include + #endif + #ifdef HAVE_EPOLL + # include + +commit a501a01e069619676990454abd43c4d2bf4527f4 +Author: Ulrich Drepper +Date: Tue Nov 15 07:18:15 2011 -0500 + + Pretty printing + +diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c +index 895dc2a..0738a70 100644 +--- a/sysdeps/unix/sysv/linux/check_pf.c ++++ b/sysdeps/unix/sysv/linux/check_pf.c +@@ -273,7 +273,7 @@ make_request (int fd, pid_t pid) + } + else + { +- atomic_add(&noai6ai_cached.usecnt, 2); ++ atomic_add (&noai6ai_cached.usecnt, 2); + noai6ai_cached.seen_ipv4 = seen_ipv4; + noai6ai_cached.seen_ipv6 = seen_ipv6; + result = &noai6ai_cached; + + +commit 09f93bd3d6b1c41370432e6b7a3c88d0fc482881 +Author: Andreas Schwab +Date: Tue Nov 15 10:32:18 2011 +0100 + + Fix reference counting in network interface information cache + +2011-11-15 Andreas Schwab + + * sysdeps/unix/sysv/linux/check_pf.c (make_request): Properly + count references to noai6ai_cached. + +diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c +index 1f66684..895dc2a 100644 +--- a/sysdeps/unix/sysv/linux/check_pf.c ++++ b/sysdeps/unix/sysv/linux/check_pf.c +@@ -58,7 +58,7 @@ struct cached_data + + static struct cached_data noai6ai_cached = + { +- .usecnt = 3, /* Make sure we never try to delete this entry. */ ++ .usecnt = 1, /* Make sure we never try to delete this entry. */ + .in6ailen = 0 + }; + +@@ -273,6 +273,7 @@ make_request (int fd, pid_t pid) + } + else + { ++ atomic_add(&noai6ai_cached.usecnt, 2); + noai6ai_cached.seen_ipv4 = seen_ipv4; + noai6ai_cached.seen_ipv6 = seen_ipv6; + result = &noai6ai_cached; + +commit 3a2c02424d9824f5cdea4ebd32ff929b2b1f49c6 +Author: Ulrich Drepper +Date: Mon Oct 31 01:51:16 2011 -0400 + + Cache network interface information + + Whenever getaddrinfo needed network interface information it used the + netlink interface to read the information every single time. The + problem is that this information can change at any time. + + The patch implements monitoring of the network interfaces through + nscd. If no change is detected the previously read information can + be reused (which is the norm). This timestamp information is also + made available to other processes using the shared memory segment + between nscd and those processes. + +2011-10-31 Ulrich Drepper + + * include/ifaddrs.h: Declare __free_in6ai and __bump_nl_timestamp. + * inet/check_pf.c: Provide dummy versions of __free_in6ai and + __bump_nl_timestamp. + * nscd/connections (nscd_init): When host database is served open + netlink socket and request notification about configuration changes. + (main_loop_poll): Track netlink file descriptor and bump timestamp + in case data becomes available. + (main_loop_epoll): Likewise. + * nscd/nscd-client.h (DB_VERSION): Bump to 2. + (database_pers_head): Add extra_data fileds. + Declare __nscd_get_mapping and __nscd_get_nl_timestamp. + * nscd/nscd_gethst_r.c (__nscd_get_nl_timestamp): New function. + * nscd/nscd_helper.c (__nscd_get_mapping): Renamed from get_mapping. + Adjust caller. + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't call free on + in6ai data, call __free_in6ai. + * sysdeps/unix/sysv/linux/Makefile [subdir=nscd] (sysdep-CFLAGS): + Add -DHAVE_NETLINK. + * sysdeps/unix/sysv/linux/check_pf.c: Major rewrite. Cache the + interface information. Reuse previous data if netlink timestamp + is not changed. + (__bump_nl_timestamp): New function. + (__free_in6ai): New function. + + * sysdeps/unix/sysv/linux/check_pf.c (make_request): Don't call + +diff --git a/include/ifaddrs.h b/include/ifaddrs.h +index 50e4c48..e1c6cac 100644 +--- a/include/ifaddrs.h ++++ b/include/ifaddrs.h +@@ -21,8 +21,13 @@ struct in6addrinfo + extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6, + struct in6addrinfo **in6ai, size_t *in6ailen) + attribute_hidden; ++extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden; + extern void __check_native (uint32_t a1_index, int *a1_native, + uint32_t a2_index, int *a2_native) + attribute_hidden; + ++#ifdef IS_IN_nscd ++extern uint32_t __bump_nl_timestamp (void) attribute_hidden; ++#endif ++ + #endif /* ifaddrs.h */ +diff --git a/inet/check_pf.c b/inet/check_pf.c +index b015432..0fa34cc 100644 +--- a/inet/check_pf.c ++++ b/inet/check_pf.c +@@ -1,5 +1,5 @@ + /* Determine protocol families for which interfaces exist. Generic version. +- Copyright (C) 2003, 2006 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2006, 2011 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 +@@ -54,3 +54,19 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + + (void) freeifaddrs (ifa); + } ++ ++ ++void ++__free_in6ai (struct in6addrinfo *in6ai) ++{ ++ /* Nothing to do. */ ++} ++ ++ ++#ifdef IS_IN_nscd ++uint32_t ++__bump_nl_timestamp (void) ++{ ++ return 0; ++} ++#endif +diff --git a/nscd/connections.c b/nscd/connections.c +index 2b5c7ef..1b8a9bd 100644 +--- a/nscd/connections.c ++++ b/nscd/connections.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -32,6 +33,9 @@ + #include + #include + #include ++#ifdef HAVE_NETLINK ++# include ++#endif + #ifdef HAVE_EPOLL + # include + #endif +@@ -247,6 +251,11 @@ static int sock; + int inotify_fd = -1; + #endif + ++#ifdef HAVE_NETLINK ++/* Descriptor for netlink status updates. */ ++static int nl_status_fd = -1; ++#endif ++ + #ifndef __ASSUME_SOCK_CLOEXEC + /* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero + before be know the result. */ +@@ -903,6 +912,65 @@ cannot set socket to close on exec: %s; disabling paranoia mode"), + exit (1); + } + ++#ifdef HAVE_NETLINK ++ if (dbs[hstdb].enabled) ++ { ++ /* Try to open netlink socket to monitor network setting changes. */ ++ nl_status_fd = socket (AF_NETLINK, ++ SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, ++ NETLINK_ROUTE); ++ if (nl_status_fd != -1) ++ { ++ struct sockaddr_nl snl; ++ memset (&snl, '\0', sizeof (snl)); ++ snl.nl_family = AF_NETLINK; ++ /* XXX Is this the best set to use? */ ++ snl.nl_groups = (RTMGRP_IPV4_IFADDR | RTMGRP_TC | RTMGRP_IPV4_MROUTE ++ | RTMGRP_IPV4_ROUTE | RTMGRP_IPV4_RULE ++ | RTMGRP_IPV6_IFADDR | RTMGRP_IPV6_MROUTE ++ | RTMGRP_IPV6_ROUTE | RTMGRP_IPV6_IFINFO ++ | RTMGRP_IPV6_PREFIX); ++ ++ if (bind (nl_status_fd, (struct sockaddr *) &snl, sizeof (snl)) != 0) ++ { ++ close (nl_status_fd); ++ nl_status_fd = -1; ++ } ++ else ++ { ++ /* Start the timestamp process. */ ++ dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] ++ = __bump_nl_timestamp (); ++ ++# ifndef __ASSUME_SOCK_CLOEXEC ++ if (have_sock_cloexec < 0) ++ { ++ /* We don't want to get stuck on accept. */ ++ int fl = fcntl (nl_status_fd, F_GETFL); ++ if (fl == -1 ++ || fcntl (nl_status_fd, F_SETFL, fl | O_NONBLOCK) == -1) ++ { ++ dbg_log (_("\ ++cannot change socket to nonblocking mode: %s"), ++ strerror (errno)); ++ exit (1); ++ } ++ ++ /* The descriptor needs to be closed on exec. */ ++ if (paranoia ++ && fcntl (nl_status_fd, F_SETFD, FD_CLOEXEC) == -1) ++ { ++ dbg_log (_("cannot set socket to close on exec: %s"), ++ strerror (errno)); ++ exit (1); ++ } ++ } ++# endif ++ } ++ } ++ } ++#endif ++ + /* Change to unprivileged uid/gid/groups if specified in config file */ + if (server_user != NULL) + finish_drop_privileges (); +@@ -1826,6 +1894,18 @@ main_loop_poll (void) + } + #endif + ++#ifdef HAVE_NETLINK ++ size_t idx_nl_status_fd = 0; ++ if (nl_status_fd != -1) ++ { ++ idx_nl_status_fd = nused; ++ conns[nused].fd = nl_status_fd; ++ conns[nused].events = POLLRDNORM; ++ ++nused; ++ firstfree = nused; ++ } ++#endif ++ + while (1) + { + /* Wait for any event. We wait at most a couple of seconds so +@@ -1968,6 +2048,20 @@ disabled inotify after read error %d"), + } + #endif + ++#ifdef HAVE_NETLINK ++ if (idx_nl_status_fd != 0 && conns[idx_nl_status_fd].revents != 0) ++ { ++ char buf[4096]; ++ /* Read all the data. We do not interpret it here. */ ++ while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, ++ sizeof (buf))) != -1) ++ ; ++ ++ dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] ++ = __bump_nl_timestamp (); ++ } ++#endif ++ + for (size_t cnt = first; cnt < nused && n > 0; ++cnt) + if (conns[cnt].revents != 0) + { +@@ -2046,6 +2140,17 @@ main_loop_epoll (int efd) + } + # endif + ++# ifdef HAVE_NETLINK ++ if (nl_status_fd != -1) ++ { ++ ev.events = EPOLLRDNORM; ++ ev.data.fd = nl_status_fd; ++ if (epoll_ctl (efd, EPOLL_CTL_ADD, nl_status_fd, &ev) == -1) ++ /* We cannot use epoll. */ ++ return; ++ } ++# endif ++ + while (1) + { + struct epoll_event revs[100]; +@@ -2162,6 +2267,18 @@ main_loop_epoll (int efd) + } + } + # endif ++# ifdef HAVE_NETLINK ++ else if (revs[cnt].data.fd == nl_status_fd) ++ { ++ char buf[4096]; ++ /* Read all the data. We do not interpret it here. */ ++ while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, ++ sizeof (buf))) != -1) ++ ; ++ ++ __bump_nl_timestamp (); ++ } ++# endif + else + { + /* Remove the descriptor from the epoll descriptor. */ +@@ -2185,6 +2302,7 @@ main_loop_epoll (int efd) + time_t laststart = now - ACCEPT_TIMEOUT; + assert (starttime[sock] == 0); + assert (inotify_fd == -1 || starttime[inotify_fd] == 0); ++ assert (nl_status_fd == -1 || starttime[nl_status_fd] == 0); + for (int cnt = highest; cnt > STDERR_FILENO; --cnt) + if (starttime[cnt] != 0 && starttime[cnt] < laststart) + { +diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h +index caad26a..b5cd2d2 100644 +--- a/nscd/nscd-client.h ++++ b/nscd/nscd-client.h +@@ -260,12 +260,17 @@ struct hashentry + + + /* Current persistent database version. */ +-#define DB_VERSION 1 ++#define DB_VERSION 2 + + /* Maximum time allowed between updates of the timestamp. */ + #define MAPPING_TIMEOUT (5 * 60) + + ++/* Used indices for the EXTRA_DATA element of 'database_pers_head'. ++ Each database has its own indices. */ ++#define NSCD_HST_IDX_CONF_TIMESTAMP 0 ++ ++ + /* Header of persistent database file. */ + struct database_pers_head + { +@@ -274,6 +279,8 @@ struct database_pers_head + volatile int32_t gc_cycle; + volatile int32_t nscd_certainly_running; + volatile nscd_time_t timestamp; ++ /* Room for extensions. */ ++ volatile uint32_t extra_data[4]; + + nscd_ssize_t module; + nscd_ssize_t data_size; +@@ -322,6 +329,12 @@ extern int __nscd_open_socket (const char *key, size_t keylen, + request_type type, void *response, + size_t responselen) attribute_hidden; + ++/* Try to get a file descriptor for the shared meory segment ++ containing the database. */ ++extern struct mapped_database *__nscd_get_mapping (request_type type, ++ const char *key, ++ struct mapped_database **mappedp) attribute_hidden; ++ + /* Get reference of mapping. */ + extern struct mapped_database *__nscd_get_map_ref (request_type type, + const char *name, +@@ -371,4 +384,7 @@ extern ssize_t writeall (int fd, const void *buf, size_t len) + extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len) + attribute_hidden; + ++/* Get netlink timestamp counter from mapped area or zero. */ ++extern uint32_t __nscd_get_nl_timestamp (void); ++ + #endif /* nscd.h */ +diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c +index 70631fa..6ee142d 100644 +--- a/nscd/nscd_gethst_r.c ++++ b/nscd/nscd_gethst_r.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009 ++/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1998. +@@ -98,6 +98,27 @@ libc_freeres_fn (hst_map_free) + } + + ++uint32_t ++__nscd_get_nl_timestamp (void) ++{ ++ if (__nss_not_use_nscd_hosts != 0) ++ return 0; ++ ++ struct mapped_database *map = __hst_map_handle.mapped; ++ ++ if (map == NULL ++ || (map != NO_MAPPING ++ && map->head->nscd_certainly_running == 0 ++ && map->head->timestamp + MAPPING_TIMEOUT < time (NULL))) ++ map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped); ++ ++ if (map == NO_MAPPING) ++ return 0; ++ ++ return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; ++} ++ ++ + int __nss_have_localdomain attribute_hidden; + + static int +diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c +index fe63f9a..365b599 100644 +--- a/nscd/nscd_helper.c ++++ b/nscd/nscd_helper.c +@@ -277,9 +277,9 @@ __nscd_unmap (struct mapped_database *mapped) + + /* Try to get a file descriptor for the shared meory segment + containing the database. */ +-static struct mapped_database * +-get_mapping (request_type type, const char *key, +- struct mapped_database **mappedp) ++struct mapped_database * ++__nscd_get_mapping (request_type type, const char *key, ++ struct mapped_database **mappedp) + { + struct mapped_database *result = NO_MAPPING; + #ifdef SCM_RIGHTS +@@ -449,8 +449,8 @@ __nscd_get_map_ref (request_type type, const char *name, + || (cur->head->nscd_certainly_running == 0 + && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL)) + || cur->head->data_size > cur->datasize) +- cur = get_mapping (type, name, +- (struct mapped_database **) &mapptr->mapped); ++ cur = __nscd_get_mapping (type, name, ++ (struct mapped_database **) &mapptr->mapped); + + if (__builtin_expect (cur != NO_MAPPING, 1)) + { +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index a5aafe9..216c9cc 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -2386,7 +2386,7 @@ getaddrinfo (const char *name, const char *service, + || (hints->ai_family == PF_INET6 && ! seen_ipv6)) + { + /* We cannot possibly return a valid answer. */ +- free (in6ai); ++ __free_in6ai (in6ai); + return EAI_NONAME; + } + } +@@ -2400,7 +2400,7 @@ getaddrinfo (const char *name, const char *service, + { + if (hints->ai_flags & AI_NUMERICSERV) + { +- free (in6ai); ++ __free_in6ai (in6ai); + return EAI_NONAME; + } + +@@ -2422,7 +2422,7 @@ getaddrinfo (const char *name, const char *service, + if (last_i != 0) + { + freeaddrinfo (p); +- free (in6ai); ++ __free_in6ai (in6ai); + + return -(last_i & GAIH_EAI); + } +@@ -2434,7 +2434,7 @@ getaddrinfo (const char *name, const char *service, + } + else + { +- free (in6ai); ++ __free_in6ai (in6ai); + return EAI_FAMILY; + } + +@@ -2622,7 +2622,7 @@ getaddrinfo (const char *name, const char *service, + p->ai_canonname = canonname; + } + +- free (in6ai); ++ __free_in6ai (in6ai); + + if (p) + { +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index af53f70..3032026 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -161,6 +161,6 @@ CFLAGS-mq_receive.c += -fexceptions + endif + + ifeq ($(subdir),nscd) +-sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY ++sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK + CFLAGS-gai.c += -DNEED_NETLINK + endif +diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c +index d5ad7ea..1f66684 100644 +--- a/sysdeps/unix/sysv/linux/check_pf.c ++++ b/sysdeps/unix/sysv/linux/check_pf.c +@@ -1,5 +1,5 @@ + /* Determine protocol families for which interfaces exist. Linux version. +- Copyright (C) 2003, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2006-2008, 2010, 2011 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 +@@ -33,6 +33,9 @@ + + #include + #include ++#include ++#include ++#include + + + #ifndef IFA_F_HOMEADDRESS +@@ -43,9 +46,42 @@ + #endif + + +-static int +-make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, +- struct in6addrinfo **in6ai, size_t *in6ailen) ++struct cached_data ++{ ++ uint32_t timestamp; ++ uint32_t usecnt; ++ bool seen_ipv4; ++ bool seen_ipv6; ++ size_t in6ailen; ++ struct in6addrinfo in6ai[0]; ++}; ++ ++static struct cached_data noai6ai_cached = ++ { ++ .usecnt = 3, /* Make sure we never try to delete this entry. */ ++ .in6ailen = 0 ++ }; ++ ++static struct cached_data *cache; ++__libc_lock_define_initialized (static, lock); ++ ++ ++#ifdef IS_IN_nscd ++static uint32_t nl_timestamp; ++ ++uint32_t ++__bump_nl_timestamp (void) ++{ ++ if (atomic_increment_val (&nl_timestamp) == 0) ++ atomic_increment (&nl_timestamp); ++ ++ return nl_timestamp; ++} ++#endif ++ ++ ++static struct cached_data * ++make_request (int fd, pid_t pid) + { + struct req + { +@@ -99,9 +135,6 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, + sizeof (nladdr))) < 0) + goto out_fail; + +- *seen_ipv4 = false; +- *seen_ipv6 = false; +- + bool done = false; + struct in6ailist + { +@@ -109,6 +142,8 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, + struct in6ailist *next; + } *in6ailist = NULL; + size_t in6ailistlen = 0; ++ bool seen_ipv4 = false; ++ bool seen_ipv6 = false; + + do + { +@@ -172,12 +207,12 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, + { + if (*(const in_addr_t *) address + != htonl (INADDR_LOOPBACK)) +- *seen_ipv4 = true; ++ seen_ipv4 = true; + } + else + { + if (!IN6_IS_ADDR_LOOPBACK (address)) +- *seen_ipv6 = true; ++ seen_ipv6 = true; + } + } + +@@ -211,30 +246,46 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, + } + while (! done); + +- if (*seen_ipv6 && in6ailist != NULL) ++ struct cached_data *result; ++ if (seen_ipv6 && in6ailist != NULL) + { +- *in6ai = malloc (in6ailistlen * sizeof (**in6ai)); +- if (*in6ai == NULL) ++ result = malloc (sizeof (*result) ++ + in6ailistlen * sizeof (struct in6addrinfo)); ++ if (result == NULL) + goto out_fail; + +- *in6ailen = in6ailistlen; ++#ifdef IS_IN_nscd ++ result->timestamp = nl_timestamp; ++#else ++ result->timestamp = __nscd_get_nl_timestamp (); ++#endif ++ result->usecnt = 2; ++ result->seen_ipv4 = seen_ipv4; ++ result->seen_ipv6 = true; ++ result->in6ailen = in6ailistlen; + + do + { +- (*in6ai)[--in6ailistlen] = in6ailist->info; ++ result->in6ai[--in6ailistlen] = in6ailist->info; + in6ailist = in6ailist->next; + } + while (in6ailist != NULL); + } ++ else ++ { ++ noai6ai_cached.seen_ipv4 = seen_ipv4; ++ noai6ai_cached.seen_ipv6 = seen_ipv6; ++ result = &noai6ai_cached; ++ } + + if (use_malloc) + free (buf); +- return 0; ++ return result; + + out_fail: + if (use_malloc) + free (buf); +- return -1; ++ return NULL; + } + + +@@ -258,28 +309,65 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + + if (! __no_netlink_support) + { +- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); ++ struct cached_data *olddata = NULL; ++ struct cached_data *data = NULL; ++ ++ __libc_lock_lock (lock); + +- if (__builtin_expect (fd >= 0, 1)) ++#ifdef IS_IN_nscd ++# define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp ++#else ++# define cache_valid() \ ++ ({ uint32_t val = __nscd_get_nl_timestamp (); \ ++ val != 0 && cache->timestamp == val; }) ++#endif ++ if (cache != NULL && cache_valid ()) ++ { ++ data = cache; ++ atomic_increment (&cache->usecnt); ++ } ++ else + { +- struct sockaddr_nl nladdr; +- memset (&nladdr, '\0', sizeof (nladdr)); +- nladdr.nl_family = AF_NETLINK; ++ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); ++ ++ if (__builtin_expect (fd >= 0, 1)) ++ { ++ struct sockaddr_nl nladdr; ++ memset (&nladdr, '\0', sizeof (nladdr)); ++ nladdr.nl_family = AF_NETLINK; ++ ++ socklen_t addr_len = sizeof (nladdr); ++ ++ if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 ++ && __getsockname (fd, (struct sockaddr *) &nladdr, ++ &addr_len) == 0) ++ data = make_request (fd, nladdr.nl_pid); ++ ++ close_not_cancel_no_status (fd); ++ } ++ ++ if (data != NULL) ++ { ++ olddata = cache; ++ cache = data; ++ } ++ } + +- socklen_t addr_len = sizeof (nladdr); ++ __libc_lock_unlock (lock); + +- bool success +- = (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 +- && __getsockname (fd, (struct sockaddr *) &nladdr, +- &addr_len) == 0 +- && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6, +- in6ai, in6ailen) == 0); ++ if (data != NULL) ++ { ++ /* It worked. */ ++ *seen_ipv4 = data->seen_ipv4; ++ *seen_ipv6 = data->seen_ipv6; ++ *in6ailen = data->in6ailen; ++ *in6ai = data->in6ai; + +- close_not_cancel_no_status (fd); ++ if (olddata != NULL && olddata->usecnt > 0 ++ && atomic_add_zero (&olddata->usecnt, -1)) ++ free (olddata); + +- if (success) +- /* It worked. */ +- return; ++ return; + } + + #if __ASSUME_NETLINK_SUPPORT == 0 +@@ -318,3 +406,26 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + (void) freeifaddrs (ifa); + #endif + } ++ ++ ++void ++__free_in6ai (struct in6addrinfo *ai) ++{ ++ if (ai != NULL) ++ { ++ struct cached_data *data = ++ (struct cached_data *) ((char *) ai ++ - offsetof (struct cached_data, in6ai)); ++ ++ if (atomic_add_zero (&data->usecnt, -1)) ++ { ++ __libc_lock_lock (lock); ++ ++ if (data->usecnt == 0) ++ /* Still unused. */ ++ free (data); ++ ++ __libc_lock_unlock (lock); ++ } ++ } ++} diff --git a/glibc.changes b/glibc.changes index abdb862..93c823f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Wed Jan 18 09:29:24 UTC 2012 - aj@suse.de + +- Update license strings in spec file. + +------------------------------------------------------------------- +Mon Jan 16 13:19:43 UTC 2012 - aj@suse.de + +- Split up new subpackage glibc-extra and move makedb with its + dependency on libselinux to it. (bnc#741525) +- Use lua script for verifyscript to not have a dependency on bash + +------------------------------------------------------------------- +Thu Jan 12 15:42:36 UTC 2012 - aj@suse.de + +- Disable netlink caching (bnc#741021). + +------------------------------------------------------------------- +Thu Jan 12 11:01:41 UTC 2012 - aj@suse.de + +- Use _target_cpu instead of _build and _host. This makes the + i686 library really build for i686. + ------------------------------------------------------------------- Tue Jan 10 12:31:14 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 0ab50e7..3bb206f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -20,7 +20,7 @@ Name: glibc Summary: Standard Shared Libraries (from the GNU C Library) -License: GPL-2.0+ +License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries BuildRequires: gcc-c++ BuildRequires: libselinux-devel @@ -96,6 +96,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version} Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign Requires(pre): filesystem +Recommends: glibc-extra Provides: rtld(GNU_HASH) BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %_target_cpu == "i686" @@ -196,6 +197,8 @@ Patch89: glibc-2.16-scanf.patch Patch90: glibc-ppc-getcontext.patch # PATCH-FIX-OPENSUSE Revert some math ifuncs (bnc#740109) - aj@suse.de Patch91: glibc-2.15-math64crash.patch +# PATCH-FIX-OPENSUSE Remove netlink optimization (bnc#741021) - aj@suse.de +Patch92: glibc-revert-netlink-cache.patch %description The GNU C Library provides the most important standard libraries used @@ -205,7 +208,7 @@ without these libraries. %package info Summary: Info Files for the GNU C Library -License: GPL-2.0+ +License: GFDL-1.1 Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} @@ -218,7 +221,7 @@ complete and is partially out of date. %package html Summary: HTML Documentation for the GNU C Library -License: GPL-2.0+ ; LGPL-2.1+ +License: GFDL-1.1 Group: Documentation/HTML BuildArch: noarch @@ -229,7 +232,7 @@ partially out of date. %package i18ndata Summary: Database Sources for 'locale' -License: LGPL-2.1+ +License: GPL-2.0+ and MIT Group: System/Libraries BuildArch: noarch @@ -241,7 +244,7 @@ created. %package locale Summary: Locale Data for Localized Programs -License: GPL-2.0+ ; LGPL-2.1+ +License: GPL-2.0+ and MIT and LGPL-2.1+ Group: System/Libraries Requires(post): /bin/cat Requires: glibc = %{version} @@ -258,7 +261,7 @@ Locale data for the internationalisation features of the GNU C library. %package -n nscd Summary: Name Service Caching Daemon -License: LGPL-2.1+ +License: GPL-2.0+ Group: System/Daemons Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd @@ -273,7 +276,7 @@ performance with NIS, NIS+, and LDAP. %package profile Summary: Libc Profiling and Debugging Versions -License: LGPL-2.1+ +License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: Development/Libraries/C and C++ Requires: glibc = %{version} # bug437293 @@ -290,7 +293,7 @@ necessary for profiling and debugging. %package devel Summary: Include Files and Libraries Mandatory for Development -License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ +License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 Provides: epoll < 1.0 @@ -310,7 +313,7 @@ library. %package devel-static Summary: C library static libraries for -static linking -License: GPL-2.0+ +License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier @@ -323,7 +326,7 @@ which is highly discouraged. %package utils Summary: Development utilities from GNU C library -License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ +License: LGPL-2.1+ Group: Development/Languages/C and C++ Requires: glibc = %{version} @@ -334,11 +337,25 @@ debugging. If you are unsure if you need this, don't install this package. +# makedb requires libselinux. We add this program in a separate +# package so that glibc does not require libselinux. +%package extra +Summary: Extra binaries from GNU C Library +License: LGPL-2.1+ +Group: Development/Languages/C and C++ +Requires: glibc = %{version} + +%description extra +The glibc-extra package contains some extra binaries for glibc that +are not essential but recommend to use. + +makedb: A program to create a database for nss + %ifarch %ix86 %package obsolete Summary: Obsolete Shared Libraries from the GNU C Library -License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ +License: LGPL-2.0+ Group: System/Libraries Requires: glibc = %{version} @@ -415,6 +432,7 @@ rm nscd/s-stamp %patch89 -p1 %patch90 -p1 %patch91 -p1 +%patch92 -p1 -R # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -451,6 +469,10 @@ fi uptime || : ulimit -a nice +# We do not want configure to figure out the system its building one +# to support a common ground and thus set build and host to the +# target_cpu. +%define target %{_target_cpu}-suse-linux # Adjust glibc version.h echo "#define CONFHOST \"%{_target_cpu}-suse-linux\"" >> version.h echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h @@ -540,7 +562,7 @@ configure_and_build_glibc() { %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif - --build=%{_build} --host=%{_host} \ + --build=%{target} --host=%{target} \ %ifarch ppc ppc64 %{ix86} x86_64 --enable-multi-arch \ %endif @@ -857,6 +879,15 @@ install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system %post -p %{_sbindir}/glibc_post_upgrade +# Enabling the following lines will generate a +# requires on /bin/sh but glibc should not require any other binary +# packages. Therefore we do the change with the build-in lua: +# %verifyscript +# %verify_permissions -e %{_libdir}/pt_chown + +%verifyscript -p +os.execute("/usr/bin/chkstat -n --warn --system -e %{_libdir}/pt_chown") + %postun -p /sbin/ldconfig %post locale @@ -885,9 +916,6 @@ mkdir -p /var/run/nscd %insserv_cleanup exit 0 -%verifyscript -%verify_permissions -e %{_libdir}/pt_chown - ####################################################################### ### ### FILES @@ -1020,14 +1048,12 @@ exit 0 %endif %{_bindir}/locale %{_bindir}/localedef -%{_bindir}/makedb %verify(not mode caps) %attr(4755,root,root) %{_libdir}/pt_chown %dir %attr(0755,root,root) %{_libdir}/getconf %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig %dir /var/db -/var/db/Makefile %ifarch %ix86 @@ -1148,4 +1174,9 @@ exit 0 %{_bindir}/xtrace %{_bindir}/pldd +%files extra +%defattr(-,root,root) +%{_bindir}/makedb +/var/db/Makefile + %changelog From 488b9a367bcaf7a9c74bd8c21922326c91b84bbf86849e5165f2c3c5f518a104 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 3 Feb 2012 09:22:38 +0000 Subject: [PATCH 098/204] Accepting request 102220 from Base:System Fix checks for AVX (patch glibc-2.16-avx.patch) (forwarded request 102219 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/102220 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=103 --- check-build.sh | 8 +- glibc-2.15-math64crash.patch | 187 -------- glibc-2.16-avx.patch | 846 +++++++++++++++++++++++++++++++++++ glibc-ifunc-2.16.patch | 278 ++++++++++++ glibc.changes | 23 +- glibc.spec | 25 +- 6 files changed, 1170 insertions(+), 197 deletions(-) delete mode 100644 glibc-2.15-math64crash.patch create mode 100644 glibc-2.16-avx.patch create mode 100644 glibc-ifunc-2.16.patch diff --git a/check-build.sh b/check-build.sh index fed8e7f..3f33595 100644 --- a/check-build.sh +++ b/check-build.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (c) 2003, 2004, 2011 SUSE Linux Products GmbH, Germany. All rights reserved. +# Copyright (c) 2003, 2004, 2011,2012 SUSE Linux Products GmbH, Germany. All rights reserved. # # Authors: Thorsten Kukuk # @@ -13,12 +13,18 @@ fi # get kernel version OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" +ARCH=(`uname -m`) if test ${version[0]} -gt 2 ; then : # okay elif test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then echo "FATAL: kernel too old, need kernel >= 2.6.16 for this package" 1>&2 exit 1 +elif $ARCH -eq 'x86_64' ; then + if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 32 ; then + echo "FATAL: kernel too old, need kernel >= 2.6.32 for this package" 1>&2 + exit 1 + fi fi diff --git a/glibc-2.15-math64crash.patch b/glibc-2.15-math64crash.patch deleted file mode 100644 index 5bcfe5e..0000000 --- a/glibc-2.15-math64crash.patch +++ /dev/null @@ -1,187 +0,0 @@ -The following patch comes from Arch Linux - and is just a workaround -until the real problem is fixed. - -diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile -index be68903..a032da8 100644 ---- a/sysdeps/x86_64/fpu/multiarch/Makefile -+++ b/sysdeps/x86_64/fpu/multiarch/Makefile -@@ -1,5 +1,5 @@ - ifeq ($(subdir),math) --libm-sysdep_routines += s_floor-c s_ceil-c s_floorf-c s_ceilf-c \ -+libm-sysdep_routines += s_floorf-c s_ceilf-c \ - s_rint-c s_rintf-c s_nearbyint-c s_nearbyintf-c - - ifeq ($(have-mfma4),yes) -diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c b/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c -deleted file mode 100644 -index 6a5ea3f..0000000 ---- a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c -+++ /dev/null -@@ -1,2 +0,0 @@ --#define __ceil __ceil_c --#include -diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil.S b/sysdeps/x86_64/fpu/multiarch/s_ceil.S -deleted file mode 100644 -index d0f8da3..0000000 ---- a/sysdeps/x86_64/fpu/multiarch/s_ceil.S -+++ /dev/null -@@ -1,40 +0,0 @@ --/* Copyright (C) 2011 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Ulrich Drepper , 2011. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include --#include -- -- --ENTRY(__ceil) -- .type __ceil, @gnu_indirect_function -- call __get_cpu_features@plt -- movq %rax, %rdx -- leaq __ceil_sse41(%rip), %rax -- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx) -- jnz 2f -- leaq __ceil_c(%rip), %rax --2: ret --END(__ceil) --weak_alias (__ceil, ceil) -- -- --ENTRY(__ceil_sse41) -- roundsd $2, %xmm0, %xmm0 -- ret --END(__ceil_sse41) -diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c b/sysdeps/x86_64/fpu/multiarch/s_floor-c.c -deleted file mode 100644 -index 68733b6..0000000 ---- a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c -+++ /dev/null -@@ -1,3 +0,0 @@ --#undef __floor --#define __floor __floor_c --#include -diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor.S b/sysdeps/x86_64/fpu/multiarch/s_floor.S -deleted file mode 100644 -index 514ea95..0000000 ---- a/sysdeps/x86_64/fpu/multiarch/s_floor.S -+++ /dev/null -@@ -1,40 +0,0 @@ --/* Copyright (C) 2011 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Ulrich Drepper , 2011. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include --#include -- -- --ENTRY(__floor) -- .type __floor, @gnu_indirect_function -- call __get_cpu_features@plt -- movq %rax, %rdx -- leaq __floor_sse41(%rip), %rax -- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx) -- jnz 2f -- leaq __floor_c(%rip), %rax --2: ret --END(__floor) --weak_alias (__floor, floor) -- -- --ENTRY(__floor_sse41) -- roundsd $1, %xmm0, %xmm0 -- ret --END(__floor_sse41) -diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c -deleted file mode 100644 -index 1ba9dbc..0000000 ---- a/sysdeps/x86_64/fpu/multiarch/s_sin.c -+++ /dev/null -@@ -1,31 +0,0 @@ --#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT --# include --# include --# undef NAN -- --extern double __cos_sse2 (double); --extern double __sin_sse2 (double); --extern double __cos_avx (double); --extern double __sin_avx (double); --# ifdef HAVE_FMA4_SUPPORT --extern double __cos_fma4 (double); --extern double __sin_fma4 (double); --# else --# undef HAS_FMA4 --# define HAS_FMA4 0 --# define __cos_fma4 ((void *) 0) --# define __sin_fma4 ((void *) 0) --# endif -- --libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); --weak_alias (__cos, cos) -- --libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); --weak_alias (__sin, sin) -- --# define __cos __cos_sse2 --# define __sin __sin_sse2 --#endif -- -- --#include -diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c -deleted file mode 100644 -index 8f6601e..0000000 ---- a/sysdeps/x86_64/fpu/multiarch/s_tan.c -+++ /dev/null -@@ -1,21 +0,0 @@ --#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT --# include --# include -- --extern double __tan_sse2 (double); --extern double __tan_avx (double); --# ifdef HAVE_FMA4_SUPPORT --extern double __tan_fma4 (double); --# else --# undef HAS_FMA4 --# define HAS_FMA4 0 --# define __tan_fma4 ((void *) 0) --# endif -- --libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); -- --# define tan __tan_sse2 --#endif -- -- --#include diff --git a/glibc-2.16-avx.patch b/glibc-2.16-avx.patch new file mode 100644 index 0000000..31e699e --- /dev/null +++ b/glibc-2.16-avx.patch @@ -0,0 +1,846 @@ +commit afc5ed09cbce5d6fd48b3a8c5ec427b31f996880 +Author: Ulrich Drepper +Date: Thu Jan 26 07:45:14 2012 -0500 + + Reset bit_AVX in __cpu_features is OS support is missing + +2012-01-26 Ulrich Drepper + + [BZ #13583] + * sysdeps/x86_64/multiarch/init-arch.h: Define bit_OSXSAVE. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): If + bit_AVX is set also check OSXAVE/XCR0 and reset bit_AVX if necessary. + + 2012-01-25 Joseph Myers + + * elf/tst-unique3.cc (gets): Remove declaration. +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index 65b0ee9..4fabbee 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -1,6 +1,6 @@ + /* Initialize CPU feature data. + This file is part of the GNU C Library. +- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + Contributed by Ulrich Drepper . + + The GNU C Library is free software; you can redistribute it and/or +@@ -144,6 +144,18 @@ __init_cpu_features (void) + else + kind = arch_kind_other; + ++ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) ++ { ++ /* Reset the AVX bit in case OSXSAVE is disabled. */ ++ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) == 0 ++ || ({ unsigned int xcrlow; ++ unsigned int xcrhigh; ++ asm ("xgetbv" ++ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); ++ (xcrlow & 6) != 6; })) ++ __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; ++ } ++ + __cpu_features.family = family; + __cpu_features.model = model; + atomic_write_barrier (); +diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h +index 2a1df39..408e5ae 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.h ++++ b/sysdeps/x86_64/multiarch/init-arch.h +@@ -1,5 +1,5 @@ + /* This file is part of the GNU C Library. +- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -27,6 +27,7 @@ + #define bit_SSSE3 (1 << 9) + #define bit_SSE4_1 (1 << 19) + #define bit_SSE4_2 (1 << 20) ++#define bit_OSXSAVE (1 << 27) + #define bit_AVX (1 << 28) + #define bit_POPCOUNT (1 << 23) + #define bit_FMA (1 << 12) + +commit 08cf777f9e7f6d826658a99c7d77a359f73a45bf +Author: Ulrich Drepper +Date: Thu Jan 26 09:45:54 2012 -0500 + + Really fix AVX tests + + There is no problem with strcmp, it doesn't use the YMM registers. + The math routines might since gcc perhaps generates such code. + Introduce bit_YMM_USBALE and use it in the math routines. + + [BZ #13583] + * sysdeps/x86_64/multiarch/init-arch.h: Define bit_OSXSAVE. + Clean up HAS_* macros. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): If + bit_AVX is set also check OSXAVE/XCR0 and set bit_YMM_Usable if + possible. + * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Use HAS_YMM_USABLE, not + HAS_AVX. + * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise. + +diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +index 6867c6e..3a615fc 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); + + libm_ifunc (__ieee754_atan2, + HAS_FMA4 ? __ieee754_atan2_fma4 +- : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); ++ : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); + strong_alias (__ieee754_atan2, __atan2_finite) + + # define __ieee754_atan2 __ieee754_atan2_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c +index 3c65028..7b2320a 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c +@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); + + libm_ifunc (__ieee754_exp, + HAS_FMA4 ? __ieee754_exp_fma4 +- : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); ++ : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); + strong_alias (__ieee754_exp, __exp_finite) + + # define __ieee754_exp __ieee754_exp_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c +index 3b468d0..ab277d6 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_log.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c +@@ -14,7 +14,7 @@ extern double __ieee754_log_fma4 (double); + + libm_ifunc (__ieee754_log, + HAS_FMA4 ? __ieee754_log_fma4 +- : (HAS_AVX ? __ieee754_log_avx ++ : (HAS_YMM_USABLE ? __ieee754_log_avx + : __ieee754_log_sse2)); + strong_alias (__ieee754_log, __log_finite) + +diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c +index 3160201..78c7e09 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c +@@ -12,7 +12,8 @@ extern double __atan_fma4 (double); + # define __atan_fma4 ((void *) 0) + # endif + +-libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); ++libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : ++ HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); + + # define atan __atan_sse2 + #endif +diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c +index 1ba9dbc..417acd0 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c +@@ -17,10 +17,12 @@ extern double __sin_fma4 (double); + # define __sin_fma4 ((void *) 0) + # endif + +-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); ++libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : ++ HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); + weak_alias (__cos, cos) + +-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); ++libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : ++ HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); + weak_alias (__sin, sin) + + # define __cos __cos_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c +index 8f6601e..3047155 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c +@@ -12,7 +12,8 @@ extern double __tan_fma4 (double); + # define __tan_fma4 ((void *) 0) + # endif + +-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); ++libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : ++ HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); + + # define tan __tan_sse2 + #endif +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index 4fabbee..76d146c 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -147,13 +147,13 @@ __init_cpu_features (void) + if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) + { + /* Reset the AVX bit in case OSXSAVE is disabled. */ +- if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) == 0 +- || ({ unsigned int xcrlow; +- unsigned int xcrhigh; +- asm ("xgetbv" +- : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); +- (xcrlow & 6) != 6; })) +- __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; ++ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0 ++ && ({ unsigned int xcrlow; ++ unsigned int xcrhigh; ++ asm ("xgetbv" ++ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); ++ (xcrlow & 6) == 6; })) ++ __cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable; + } + + __cpu_features.family = family; +diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h +index 408e5ae..2dc75ab 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.h ++++ b/sysdeps/x86_64/multiarch/init-arch.h +@@ -22,6 +22,7 @@ + #define bit_Prefer_SSE_for_memop (1 << 3) + #define bit_Fast_Unaligned_Load (1 << 4) + #define bit_Prefer_PMINUB_for_stringop (1 << 5) ++#define bit_YMM_Usable (1 << 6) + + #define bit_SSE2 (1 << 26) + #define bit_SSSE3 (1 << 9) +@@ -49,6 +50,7 @@ + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE + # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE + # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE ++# define index_YMM_Usable FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ + +@@ -93,7 +95,7 @@ extern struct cpu_features + + + extern void __init_cpu_features (void) attribute_hidden; +-#define INIT_ARCH()\ ++# define INIT_ARCH() \ + do \ + if (__cpu_features.kind == arch_kind_unknown) \ + __init_cpu_features (); \ +@@ -126,23 +128,21 @@ extern const struct cpu_features *__get_cpu_features (void) + # define index_Slow_BSF FEATURE_INDEX_1 + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 + # define index_Fast_Unaligned_Load FEATURE_INDEX_1 ++# define index_YMM_Usable FEATURE_INDEX_1 + +-#define HAS_ARCH_FEATURE(idx, bit) \ +- ((__get_cpu_features ()->feature[idx] & (bit)) != 0) ++# define HAS_ARCH_FEATURE(name) \ ++ ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0) + +-#define HAS_FAST_REP_STRING \ +- HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String) ++# define HAS_FAST_REP_STRING HAS_ARCH_FEATURE (Fast_Rep_String) + +-#define HAS_FAST_COPY_BACKWARD \ +- HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward) ++# define HAS_FAST_COPY_BACKWARD HAS_ARCH_FEATURE (Fast_Copy_Backward) + +-#define HAS_SLOW_BSF \ +- HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF) ++# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF) + +-#define HAS_PREFER_SSE_FOR_MEMOP \ +- HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) ++# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop) + +-#define HAS_FAST_UNALIGNED_LOAD \ +- HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load) ++# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load) ++ ++# define HAS_YMM_USABLE HAS_ARCH_FEATURE (YMM_Usable) + + #endif /* __ASSEMBLER__ */ + +commit 73139a7628c424c82eb9297ccb5505c0bc5b65aa +Author: Ulrich Drepper +Date: Sat Jan 28 11:19:06 2012 -0500 + + Simplify use of AVX instructions in internal math macros + +2012-01-28 Ulrich Drepper + + * sysdeps/x86_64/fpu/math_private.h: Simplify use of AVX instructions. + +diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h +index 7f52d5e..50f765f 100644 +--- a/sysdeps/x86_64/fpu/math_private.h ++++ b/sysdeps/x86_64/fpu/math_private.h +@@ -21,8 +21,12 @@ + + #ifdef __AVX__ + # define MOVD "vmovd" ++# define STMXCSR "vstmxcsr" ++# define LDMXCSR "vldmxcsr" + #else + # define MOVD "movd" ++# define STMXCSR "stmxcsr" ++# define LDMXCSR "ldmxcsr" + #endif + + /* Direct movement of float into integer register. */ +@@ -173,7 +177,7 @@ + #define libc_fegetround() \ + ({ \ + unsigned int mxcsr; \ +- asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ + (mxcsr & 0x6000) >> 3; \ + }) + #undef libc_fegetroundf +@@ -184,106 +188,63 @@ + #define libc_fesetround(r) \ + do { \ + unsigned int mxcsr; \ +- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ + mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ +- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ + } while (0) + #undef libc_fesetroundf + #define libc_fesetroundf(r) libc_fesetround (r) + // #define libc_fesetroundl(r) (void) fesetround (r) + + #undef libc_feholdexcept +-#ifdef __AVX__ +-# define libc_feholdexcept(e) \ +- do { \ +- unsigned int mxcsr; \ +- asm ("vstmxcsr %0" : "=m" (*&mxcsr)); \ +- (e)->__mxcsr = mxcsr; \ +- mxcsr = (mxcsr | 0x1f80) & ~0x3f; \ +- asm volatile ("vldmxcsr %0" : : "m" (*&mxcsr)); \ +- } while (0) +-#else +-# define libc_feholdexcept(e) \ ++#define libc_feholdexcept(e) \ + do { \ + unsigned int mxcsr; \ +- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ + (e)->__mxcsr = mxcsr; \ + mxcsr = (mxcsr | 0x1f80) & ~0x3f; \ +- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ + } while (0) +-#endif + #undef libc_feholdexceptf + #define libc_feholdexceptf(e) libc_feholdexcept (e) + // #define libc_feholdexceptl(e) (void) feholdexcept (e) + + #undef libc_feholdexcept_setround +-#ifdef __AVX__ +-# define libc_feholdexcept_setround(e, r) \ +- do { \ +- unsigned int mxcsr; \ +- asm ("vstmxcsr %0" : "=m" (*&mxcsr)); \ +- (e)->__mxcsr = mxcsr; \ +- mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ +- asm volatile ("vldmxcsr %0" : : "m" (*&mxcsr)); \ +- } while (0) +-#else +-# define libc_feholdexcept_setround(e, r) \ ++#define libc_feholdexcept_setround(e, r) \ + do { \ + unsigned int mxcsr; \ +- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ + (e)->__mxcsr = mxcsr; \ + mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ +- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ + } while (0) +-#endif + #undef libc_feholdexcept_setroundf + #define libc_feholdexcept_setroundf(e, r) libc_feholdexcept_setround (e, r) + // #define libc_feholdexcept_setroundl(e, r) ... + + #undef libc_fetestexcept +-#ifdef __AVX__ +-# define libc_fetestexcept(e) \ +- ({ unsigned int mxcsr; asm volatile ("vstmxcsr %0" : "=m" (*&mxcsr)); \ +- mxcsr & (e) & FE_ALL_EXCEPT; }) +-#else +-# define libc_fetestexcept(e) \ +- ({ unsigned int mxcsr; asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++#define libc_fetestexcept(e) \ ++ ({ unsigned int mxcsr; asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ + mxcsr & (e) & FE_ALL_EXCEPT; }) +-#endif + #undef libc_fetestexceptf + #define libc_fetestexceptf(e) libc_fetestexcept (e) + // #define libc_fetestexceptl(e) fetestexcept (e) + + #undef libc_fesetenv +-#ifdef __AVX__ +-# define libc_fesetenv(e) \ +- asm volatile ("vldmxcsr %0" : : "m" ((e)->__mxcsr)) +-#else +-# define libc_fesetenv(e) \ +- asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)) +-#endif ++#define libc_fesetenv(e) \ ++ asm volatile (LDMXCSR " %0" : : "m" ((e)->__mxcsr)) + #undef libc_fesetenvf + #define libc_fesetenvf(e) libc_fesetenv (e) + // #define libc_fesetenvl(e) (void) fesetenv (e) + + #undef libc_feupdateenv +-#ifdef __AVX__ +-# define libc_feupdateenv(e) \ ++#define libc_feupdateenv(e) \ + do { \ + unsigned int mxcsr; \ +- asm volatile ("vstmxcsr %0" : "=m" (*&mxcsr)); \ +- asm volatile ("vldmxcsr %0" : : "m" ((e)->__mxcsr)); \ ++ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ ++ asm volatile (LDMXCSR " %0" : : "m" ((e)->__mxcsr)); \ + __feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ + } while (0) +-#else +-# define libc_feupdateenv(e) \ +- do { \ +- unsigned int mxcsr; \ +- asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ +- asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)); \ +- __feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ +- } while (0) +-#endif + #undef libc_feupdateenvf + #define libc_feupdateenvf(e) libc_feupdateenv (e) + // #define libc_feupdateenvl(e) (void) feupdateenv (e) + +commit 56f6f6a2403cfa7267cad722597113be35ecf70d +Author: Ulrich Drepper +Date: Sat Jan 28 14:48:46 2012 -0500 + + Use -msse2avx option for x86-64 libm functions + +2012-01-28 Ulrich Drepper + + * config.h.in: Define HAVE_SSE2AVX_SUPPORT. + * math/math_private.h: Remove libc_fegetround* and + libc_fesetround*. + * sysdeps/i386/configure.in: Check for -msse2avx. + * sysdeps/x86_64/fpu/math_private.h: Use VEX-encoded instructions + also if SSE2AVX is defined. + Remove libc_fegetround* and libc_fesetround*. + * sysdeps/x86_64/fpu/multiarch/Makefile: Compile *-avx functions + if config-cflags-sse2avx is yes. Also add -DSSE2AVX to defines. + * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Use HAS_AVX again instead + of HAS_YMM_USABLE. + * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise. + + 2012-01-19 Adhemerval Zanella +diff --git a/config.h.in b/config.h.in +index 50d53d4..1489476 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -90,7 +90,7 @@ + certain registers (CR0, MQ, CTR, LR) in asm statements. */ + #undef BROKEN_PPC_ASM_CR0 + +-/* Defined on SPARC if ld doesn't handle R_SPARC_WDISP22 against .hidden ++/* Defined on SPARC if ld does not handle R_SPARC_WDISP22 against .hidden + symbol. sysdeps/sparc/sparc32/elf/configure. */ + #undef BROKEN_SPARC_WDISP22 + +@@ -106,17 +106,20 @@ + /* Define if gcc supports AVX. */ + #undef HAVE_AVX_SUPPORT + ++/* Define if gcc supports VEX encoding. */ ++#undef HAVE_SSE2AVX_SUPPORT ++ + /* Define if gcc supports FMA4. */ + #undef HAVE_FMA4_SUPPORT + +-/* Define if the compiler's exception support is based on libunwind. */ ++/* Define if the compiler\'s exception support is based on libunwind. */ + #undef HAVE_CC_WITH_LIBUNWIND + + /* Define if the access to static and hidden variables is position independent + and does not need relocations. */ + #undef PI_STATIC_AND_HIDDEN + +-/* Define this to disable the `hidden_proto' et al macros in ++/* Define this to disable the 'hidden_proto' et al macros in + include/libc-symbols.h that avoid PLT slots in the shared objects. */ + #undef NO_HIDDEN + +diff --git a/math/math_private.h b/math/math_private.h +index 602a271..e4108d8 100644 +--- a/math/math_private.h ++++ b/math/math_private.h +@@ -365,14 +365,6 @@ extern void __docos (double __x, double __dx, double __v[]); + know what operations are going to be performed. Therefore we + define additional interfaces. By default they refer to the normal + interfaces. */ +-#define libc_fegetround() fegetround () +-#define libc_fegetroundf() fegetround () +-#define libc_fegetroundl() fegetround () +- +-#define libc_fesetround(r) (void) fesetround (r) +-#define libc_fesetroundf(r) (void) fesetround (r) +-#define libc_fesetroundl(r) (void) fesetround (r) +- + #define libc_feholdexcept(e) (void) feholdexcept (e) + #define libc_feholdexceptf(e) (void) feholdexcept (e) + #define libc_feholdexceptl(e) (void) feholdexcept (e) +diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure +index ae494e2..bc7900e 100644 +--- a/sysdeps/i386/configure ++++ b/sysdeps/i386/configure +@@ -756,6 +756,29 @@ if test $libc_cv_cc_avx = yes; then + + fi + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5 ++$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; } ++if ${libc_cv_cc_sse2avx+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if { ac_try='${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; }; then ++ libc_cv_cc_sse2avx=yes ++else ++ libc_cv_cc_sse2avx=no ++fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse2avx" >&5 ++$as_echo "$libc_cv_cc_sse2avx" >&6; } ++if test $libc_cv_cc_sse2avx = yes; then ++ $as_echo "#define HAVE_SSE2AVX_SUPPORT 1" >>confdefs.h ++ ++fi ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5 + $as_echo_n "checking for FMA4 support... " >&6; } + if ${libc_cv_cc_fma4+:} false; then : +diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in +index 5a9840e..59a4cd6 100644 +--- a/sysdeps/i386/configure.in ++++ b/sysdeps/i386/configure.in +@@ -67,6 +67,17 @@ if test $libc_cv_cc_avx = yes; then + AC_DEFINE(HAVE_AVX_SUPPORT) + fi + ++dnl Check if -msse2avx works. ++AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl ++if AC_TRY_COMMAND([${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null]); then ++ libc_cv_cc_sse2avx=yes ++else ++ libc_cv_cc_sse2avx=no ++fi]) ++if test $libc_cv_cc_sse2avx = yes; then ++ AC_DEFINE(HAVE_SSE2AVX_SUPPORT) ++fi ++ + dnl Check if -mfma4 works. + AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl + if AC_TRY_COMMAND([${CC-cc} -mfma4 -xc /dev/null -S -o /dev/null]); then +diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h +index 50f765f..8e79718 100644 +--- a/sysdeps/x86_64/fpu/math_private.h ++++ b/sysdeps/x86_64/fpu/math_private.h +@@ -19,7 +19,7 @@ + + /* We can do a few things better on x86-64. */ + +-#ifdef __AVX__ ++#if defined __AVX__ || defined SSE2AVX + # define MOVD "vmovd" + # define STMXCSR "vstmxcsr" + # define LDMXCSR "vldmxcsr" +@@ -90,7 +90,7 @@ + ({ int __di; GET_FLOAT_WORD (__di, (float) d); \ + (__di & 0x7fffffff) < 0x7f800000; }) + +-#ifdef __AVX__ ++#if defined __AVX__ || defined SSE2AVX + # define __ieee754_sqrt(d) \ + ({ double __res; \ + asm ("vsqrtsd %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ +@@ -116,7 +116,7 @@ + + #ifdef __SSE4_1__ + # ifndef __rint +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __rint(d) \ + ({ double __res; \ + asm ("vroundsd $4, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ +@@ -129,7 +129,7 @@ + # endif + # endif + # ifndef __rintf +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __rintf(d) \ + ({ float __res; \ + asm ("vroundss $4, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ +@@ -143,7 +143,7 @@ + # endif + + # ifndef __floor +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __floor(d) \ + ({ double __res; \ + asm ("vroundsd $1, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ +@@ -156,7 +156,7 @@ + # endif + # endif + # ifndef __floorf +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __floorf(d) \ + ({ float __res; \ + asm ("vroundss $1, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ +@@ -173,29 +173,6 @@ + + /* Specialized variants of the interfaces which only handle + either the FPU or the SSE unit. */ +-#undef libc_fegetround +-#define libc_fegetround() \ +- ({ \ +- unsigned int mxcsr; \ +- asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ +- (mxcsr & 0x6000) >> 3; \ +- }) +-#undef libc_fegetroundf +-#define libc_fegetroundf() libc_fegetround () +-// #define libc_fegetroundl() fegetround () +- +-#undef libc_fesetround +-#define libc_fesetround(r) \ +- do { \ +- unsigned int mxcsr; \ +- asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ +- mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ +- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ +- } while (0) +-#undef libc_fesetroundf +-#define libc_fesetroundf(r) libc_fesetround (r) +-// #define libc_fesetroundl(r) (void) fesetround (r) +- + #undef libc_feholdexcept + #define libc_feholdexcept(e) \ + do { \ +@@ -224,7 +201,8 @@ + + #undef libc_fetestexcept + #define libc_fetestexcept(e) \ +- ({ unsigned int mxcsr; asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ ++ ({ unsigned int mxcsr; \ ++ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ + mxcsr & (e) & FE_ALL_EXCEPT; }) + #undef libc_fetestexceptf + #define libc_fetestexceptf(e) libc_fetestexcept (e) +diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile +index be68903..4b5c173 100644 +--- a/sysdeps/x86_64/fpu/multiarch/Makefile ++++ b/sysdeps/x86_64/fpu/multiarch/Makefile +@@ -34,21 +34,21 @@ CFLAGS-s_sin-fma4.c = -mfma4 + CFLAGS-s_tan-fma4.c = -mfma4 + endif + +-ifeq ($(config-cflags-avx),yes) ++ifeq ($(config-cflags-sse2avx),yes) + libm-sysdep_routines += e_exp-avx e_log-avx s_atan-avx \ + e_atan2-avx s_sin-avx s_tan-avx \ + mplog-avx mpa-avx slowexp-avx \ + mpexp-avx + +-CFLAGS-e_atan2-avx.c = -mavx +-CFLAGS-e_exp-avx.c = -mavx +-CFLAGS-e_log-avx.c = -mavx +-CFLAGS-mpa-avx.c = -mavx +-CFLAGS-mpexp-avx.c = -mavx +-CFLAGS-mplog-avx.c = -mavx +-CFLAGS-s_atan-avx.c = -mavx +-CFLAGS-s_sin-avx.c = -mavx +-CFLAGS-slowexp-avx.c = -mavx +-CFLAGS-s_tan-avx.c = -mavx ++CFLAGS-e_atan2-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-e_exp-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-e_log-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-mpa-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX ++CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX + endif + endif +diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +index 3a615fc..6867c6e 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); + + libm_ifunc (__ieee754_atan2, + HAS_FMA4 ? __ieee754_atan2_fma4 +- : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); ++ : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); + strong_alias (__ieee754_atan2, __atan2_finite) + + # define __ieee754_atan2 __ieee754_atan2_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c +index 7b2320a..3c65028 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c +@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); + + libm_ifunc (__ieee754_exp, + HAS_FMA4 ? __ieee754_exp_fma4 +- : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); ++ : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); + strong_alias (__ieee754_exp, __exp_finite) + + # define __ieee754_exp __ieee754_exp_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c +index ab277d6..05f3668 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_log.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c +@@ -14,8 +14,7 @@ extern double __ieee754_log_fma4 (double); + + libm_ifunc (__ieee754_log, + HAS_FMA4 ? __ieee754_log_fma4 +- : (HAS_YMM_USABLE ? __ieee754_log_avx +- : __ieee754_log_sse2)); ++ : (HAS_AVX ? __ieee754_log_avx : __ieee754_log_sse2)); + strong_alias (__ieee754_log, __log_finite) + + # define __ieee754_log __ieee754_log_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c +index 78c7e09..ae16d7c 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c +@@ -13,7 +13,7 @@ extern double __atan_fma4 (double); + # endif + + libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : +- HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); ++ HAS_AVX ? __atan_avx : __atan_sse2)); + + # define atan __atan_sse2 + #endif +diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c +index 417acd0..a0c2521 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c +@@ -18,11 +18,11 @@ extern double __sin_fma4 (double); + # endif + + libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : +- HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); ++ HAS_AVX ? __cos_avx : __cos_sse2)); + weak_alias (__cos, cos) + + libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : +- HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); ++ HAS_AVX ? __sin_avx : __sin_sse2)); + weak_alias (__sin, sin) + + # define __cos __cos_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c +index 3047155..904308f 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c +@@ -13,7 +13,7 @@ extern double __tan_fma4 (double); + # endif + + libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : +- HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); ++ HAS_AVX ? __tan_avx : __tan_sse2)); + + # define tan __tan_sse2 + #endif + +commit 3b1004624e54cc2fefd034ff80d5dea4b6db764f +Author: Joseph Myers +Date: Mon Jan 30 19:55:15 2012 +0000 + + Fix makefile/configure problems with sse2avx changes. + +2012-01-30 Joseph Myers + + * configure.in (libc_cv_cc_sse2avx): AC_SUBST. + * configure: Regenerate. + * config.make.in (config-cflags-sse2avx): Define. + * sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-slowexp-avx.c): + Fix typo. + + * scripts/config.guess: Update from upstream config git repository. +diff --git a/config.make.in b/config.make.in +index d937952..75061f6 100644 +--- a/config.make.in ++++ b/config.make.in +@@ -36,6 +36,7 @@ asflags-cpu = @libc_cv_cc_submachine@ + + config-cflags-sse4 = @libc_cv_cc_sse4@ + config-cflags-avx = @libc_cv_cc_avx@ ++config-cflags-sse2avx = @libc_cv_cc_sse2avx@ + config-cflags-novzeroupper = @libc_cv_cc_novzeroupper@ + config-asflags-i686 = @libc_cv_as_i686@ + +diff --git a/configure b/configure +index 71e8de1..508e1bb 100755 +--- a/configure ++++ b/configure +@@ -620,6 +620,7 @@ use_ldconfig + libc_cv_as_i686 + libc_cv_cc_fma4 + libc_cv_cc_novzeroupper ++libc_cv_cc_sse2avx + libc_cv_cc_avx + libc_cv_cc_sse4 + libc_cv_cpp_asm_debuginfo +diff --git a/configure.in b/configure.in +index 5fd6d85..0499d3c 100644 +--- a/configure.in ++++ b/configure.in +@@ -2154,6 +2154,7 @@ dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests + AC_SUBST(libc_cv_cpp_asm_debuginfo) + AC_SUBST(libc_cv_cc_sse4) + AC_SUBST(libc_cv_cc_avx) ++AC_SUBST(libc_cv_cc_sse2avx) + AC_SUBST(libc_cv_cc_novzeroupper) + AC_SUBST(libc_cv_cc_fma4) + AC_SUBST(libc_cv_as_i686) +diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile +index 4b5c173..2a38ffc 100644 +--- a/sysdeps/x86_64/fpu/multiarch/Makefile ++++ b/sysdeps/x86_64/fpu/multiarch/Makefile +@@ -48,7 +48,7 @@ CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX + CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX + CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX + CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX +-CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX ++CFLAGS-slowexp-avx.c = -msse2avx -DSSE2AVX + CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX + endif + endif diff --git a/glibc-ifunc-2.16.patch b/glibc-ifunc-2.16.patch new file mode 100644 index 0000000..b565dbf --- /dev/null +++ b/glibc-ifunc-2.16.patch @@ -0,0 +1,278 @@ +commit 6ee65ed6ddbf04402fad0bec6aa9c73b9d982ae4 +Author: Ulrich Drepper +Date: Fri Jan 27 15:05:19 2012 -0500 + + Sort objects before relocations + +2012-01-27 Ulrich Drepper + + [BZ #13618] + * elf/dl-open.c (dl_open_worker): Sort objects by dependency before + relocation. + * Makeconfig (libm): Define. + * elf/Makefile: Add rules to build and run tst-relsort1. + * elf/tst-relsort1.c: New file. + * elf/tst-relsort1mod1.c: New file. + * elf/tst-relsort1mod2.c: New file. + +diff --git a/Makeconfig b/Makeconfig +index 8195245..185afbb 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -950,6 +950,12 @@ libdl = + endif + endif + ++ifeq ($(build-shared),yes) ++libm = $(common-objpfx)math/libm.so$(libm.so-version) ++else ++libm = $(common-objpfx)math/libm.a ++endif ++ + # These are the subdirectories containing the library source. The order + # is more or less arbitrary. The sorting step will take care of the + # dependencies. +diff --git a/elf/Makefile b/elf/Makefile +index 052e763..3f1772a 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -124,7 +124,8 @@ distribute := rtld-Rules \ + tst-initordera1.c tst-initordera2.c tst-initorderb1.c \ + tst-initorderb2.c tst-initordera3.c tst-initordera4.c \ + tst-initorder.c \ +- tst-initorder2.c ++ tst-initorder2.c \ ++ tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c + + CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables + CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables +@@ -227,7 +228,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \ + tst-audit1 tst-audit2 \ + tst-stackguard1 tst-addr1 tst-thrlock \ + tst-unique1 tst-unique2 tst-unique3 tst-unique4 \ +- tst-initorder tst-initorder2 ++ tst-initorder tst-initorder2 tst-relsort1 + # reldep9 + test-srcs = tst-pathopt + selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) +@@ -290,7 +291,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ + tst-initordera1 tst-initorderb1 \ + tst-initordera2 tst-initorderb2 \ + tst-initordera3 tst-initordera4 \ +- tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d ++ tst-initorder2a tst-initorder2b tst-initorder2c \ ++ tst-initorder2d \ ++ tst-relsort1mod1 tst-relsort1mod2 + ifeq (yes,$(have-initfini-array)) + modules-names += tst-array2dep tst-array5dep + endif +@@ -1195,3 +1198,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) + endif ++ ++$(objpfx)tst-relsort1: $(libdl) ++$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so ++$(objpfx)tst-relsort1mod2.so: $(libm) ++$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ ++ $(objpfx)tst-relsort1mod2.so +diff --git a/elf/dl-open.c b/elf/dl-open.c +index a0b5c50..a56bdc1 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -1,5 +1,5 @@ + /* Load a shared object at runtime, relocate it, and run its initializer. +- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1996-2007, 2009, 2010, 2011, 2012 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 +@@ -302,45 +302,109 @@ dl_open_worker (void *a) + if (GLRO(dl_lazy)) + reloc_mode |= mode & RTLD_LAZY; + +- /* Relocate the objects loaded. We do this in reverse order so that copy +- relocs of earlier objects overwrite the data written by later objects. */ +- ++ /* Sort the objects by dependency for the relocation process. This ++ allows IFUNC relocations to work and it also means copy ++ relocation of dependencies are if necessary overwritten. */ ++ size_t nmaps = 0; + struct link_map *l = new; +- while (l->l_next) +- l = l->l_next; +- while (1) ++ do ++ { ++ if (! l->l_real->l_relocated) ++ ++nmaps; ++ l = l->l_next; ++ } ++ while (l != NULL); ++ struct link_map *maps[nmaps]; ++ nmaps = 0; ++ l = new; ++ do + { + if (! l->l_real->l_relocated) ++ maps[nmaps++] = l; ++ l = l->l_next; ++ } ++ while (l != NULL); ++ if (nmaps > 1) ++ { ++ char seen[nmaps]; ++ memset (seen, '\0', nmaps); ++ size_t i = 0; ++ while (1) + { +-#ifdef SHARED +- if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) ++ ++seen[i]; ++ struct link_map *thisp = maps[i]; ++ ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ size_t k = nmaps - 1; ++ while (k > i) + { +- /* If this here is the shared object which we want to profile +- make sure the profile is started. We can find out whether +- this is necessary or not by observing the `_dl_profile_map' +- variable. If was NULL but is not NULL afterwars we must +- start the profiling. */ +- struct link_map *old_profile_map = GL(dl_profile_map); ++ struct link_map **runp = maps[k]->l_initfini; ++ if (runp != NULL) ++ /* Look through the dependencies of the object. */ ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == thisp, 0)) ++ { ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ memmove (&maps[i], &maps[i + 1], ++ (k - i) * sizeof (maps[0])); ++ maps[k] = thisp; + +- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); ++ if (seen[i + 1] > 1) ++ { ++ ++i; ++ goto next_clear; ++ } + +- if (old_profile_map == NULL && GL(dl_profile_map) != NULL) +- { +- /* We must prepare the profiling. */ +- _dl_start_profile (); ++ char this_seen = seen[i]; ++ memmove (&seen[i], &seen[i + 1], ++ (k - i) * sizeof (seen[0])); ++ seen[k] = this_seen; + +- /* Prevent unloading the object. */ +- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; +- } ++ goto next; ++ } ++ ++ --k; + } +- else +-#endif +- _dl_relocate_object (l, l->l_scope, reloc_mode, 0); ++ ++ if (++i == nmaps) ++ break; ++ next_clear: ++ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); ++ next:; + } ++ } ++ ++ for (size_t i = nmaps; i-- > 0; ) ++ { ++ l = maps[i]; ++ ++#ifdef SHARED ++ if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) ++ { ++ /* If this here is the shared object which we want to profile ++ make sure the profile is started. We can find out whether ++ this is necessary or not by observing the `_dl_profile_map' ++ variable. If it was NULL but is not NULL afterwars we must ++ start the profiling. */ ++ struct link_map *old_profile_map = GL(dl_profile_map); ++ ++ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); + +- if (l == new) +- break; +- l = l->l_prev; ++ if (old_profile_map == NULL && GL(dl_profile_map) != NULL) ++ { ++ /* We must prepare the profiling. */ ++ _dl_start_profile (); ++ ++ /* Prevent unloading the object. */ ++ GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; ++ } ++ } ++ else ++#endif ++ _dl_relocate_object (l, l->l_scope, reloc_mode, 0); + } + + /* If the file is not loaded now as a dependency, add the search +diff --git a/elf/tst-relsort1.c b/elf/tst-relsort1.c +new file mode 100644 +index 0000000..972100c +--- /dev/null ++++ b/elf/tst-relsort1.c +@@ -0,0 +1,19 @@ ++#include ++#include ++ ++ ++static int ++do_test () ++{ ++ const char lib[] = "$ORIGIN/tst-relsort1mod1.so"; ++ void *h = dlopen (lib, RTLD_NOW); ++ if (h == NULL) ++ { ++ puts (dlerror ()); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c +new file mode 100644 +index 0000000..9e4a943 +--- /dev/null ++++ b/elf/tst-relsort1mod1.c +@@ -0,0 +1,7 @@ ++extern int foo (double); ++ ++int ++bar (void) ++{ ++ return foo (1.2); ++} +diff --git a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c +new file mode 100644 +index 0000000..a2c3e55 +--- /dev/null ++++ b/elf/tst-relsort1mod2.c +@@ -0,0 +1,7 @@ ++#include ++ ++int ++foo (double d) ++{ ++ return floor (d) != 0.0; ++} diff --git a/glibc.changes b/glibc.changes index 93c823f..795b8de 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Jan 31 13:20:37 UTC 2012 - aj@suse.de + +- Fix checks for AVX (patch glibc-2.16-avx.patch) + +------------------------------------------------------------------- +Tue Jan 31 09:44:07 UTC 2012 - aj@suse.de + +- Use Linux 2.6.32 on x86_64 as oldest supported kernel + +------------------------------------------------------------------- +Tue Jan 31 08:57:15 UTC 2012 - aj@suse.de + +- Fix relocation ordering to fix ifunc crash (bnc#740109). + +------------------------------------------------------------------- +Sun Jan 29 22:47:18 CET 2012 - dmueller@suse.de + +- set abi back to gnueabi for ARM (regression from Jan 12) + ------------------------------------------------------------------- Wed Jan 18 09:29:24 UTC 2012 - aj@suse.de @@ -44,7 +64,8 @@ Mon Jan 9 08:17:08 UTC 2012 - aj@suse.de Wed Jan 4 09:34:28 UTC 2012 - aj@suse.de - Remove patch glibc-2.3.4-gb18030-big5hkscs.diff.bz2 and - replace it by gb18030.patch.bz2 (synced with Fedora 16). + replace it by gb18030.patch.bz2 (synced with Fedora 16) + (bnc#743617). ------------------------------------------------------------------- Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 3bb206f..9247e54 100644 --- a/glibc.spec +++ b/glibc.spec @@ -53,9 +53,14 @@ BuildRequires: libstdc++-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 +%ifarch x86_64 +# 2.6.32 is the SLES 11 SP1 kernel +# 2.6.34 is the openSUSE 11.3 kernel +%define enablekernel 2.6.32 +%else # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel -# since many SUSE build machines have it %define enablekernel 2.6.16 +%endif # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -70,7 +75,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.15 -Release: 11 +Release: 0 %define git_id 2ba92745c36e %define glibc_ports_ver 2.15 %define ports_git_id 8a70b2dcabbf @@ -195,10 +200,12 @@ Patch88: pthread-cond-wait-revert.patch Patch89: glibc-2.16-scanf.patch # PATCH-FIX-UPSTREAM Fix getcontext on 32-bit powerpc - aj@suse.de Patch90: glibc-ppc-getcontext.patch -# PATCH-FIX-OPENSUSE Revert some math ifuncs (bnc#740109) - aj@suse.de -Patch91: glibc-2.15-math64crash.patch +# PATCH-FIX-UPSTREAM Fix ifunc relocations (bnc#740109) - aj@suse.de +Patch91: glibc-ifunc-2.16.patch # PATCH-FIX-OPENSUSE Remove netlink optimization (bnc#741021) - aj@suse.de Patch92: glibc-revert-netlink-cache.patch +# PATCH-FIX-UPSTREAM Fix tests for AVX features - aj@suse.de +Patch93: glibc-2.16-avx.patch %description The GNU C Library provides the most important standard libraries used @@ -433,6 +440,7 @@ rm nscd/s-stamp %patch90 -p1 %patch91 -p1 %patch92 -p1 -R +%patch93 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -472,9 +480,13 @@ nice # We do not want configure to figure out the system its building one # to support a common ground and thus set build and host to the # target_cpu. +%ifarch %arm +%define target %{_target_cpu}-suse-linux-gnueabi +%else %define target %{_target_cpu}-suse-linux +%endif # Adjust glibc version.h -echo "#define CONFHOST \"%{_target_cpu}-suse-linux\"" >> version.h +echo "#define CONFHOST \"%{target}\"" >> version.h echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h # # Default CFLAGS and Compiler @@ -536,9 +548,6 @@ PARALLEL="%{?_smp_mflags}" # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif -# Remove completely, these give some strange crashes with dlopen -# See bnc#740109 -rm -rf sysdeps/x86_64/fpu/multiarch configure_and_build_glibc() { local dirname="$1"; shift From 415b57529a7aef9fcc9c6b886f77d2c5a47d767e4abb27c2d13af3ef061d0ecd Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 7 Mar 2012 19:09:12 +0000 Subject: [PATCH 099/204] Accepting request 107800 from Base:System vfprintf: validate nargs and maybe allocate from heap (bnc#747768) (forwarded request 107799 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/107800 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=104 --- glibc.changes | 5 ++ glibc.spec | 3 + vfprintf-nargs.patch | 207 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 215 insertions(+) create mode 100644 vfprintf-nargs.patch diff --git a/glibc.changes b/glibc.changes index 795b8de..6a46fed 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Mar 2 17:01:55 UTC 2012 - aj@suse.de + +- vfprintf: validate nargs and maybe allocate from heap (bnc#747768) + ------------------------------------------------------------------- Tue Jan 31 13:20:37 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 9247e54..813df2b 100644 --- a/glibc.spec +++ b/glibc.spec @@ -206,6 +206,8 @@ Patch91: glibc-ifunc-2.16.patch Patch92: glibc-revert-netlink-cache.patch # PATCH-FIX-UPSTREAM Fix tests for AVX features - aj@suse.de Patch93: glibc-2.16-avx.patch +# PATCH-FIX-UPSTREAM vfprintf: validate nargs and maybe allocate from heap bnc#747768 - aj@suse.de +Patch94: vfprintf-nargs.patch %description The GNU C Library provides the most important standard libraries used @@ -441,6 +443,7 @@ rm nscd/s-stamp %patch91 -p1 %patch92 -p1 -R %patch93 -p1 +%patch94 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! diff --git a/vfprintf-nargs.patch b/vfprintf-nargs.patch new file mode 100644 index 0000000..4152bb6 --- /dev/null +++ b/vfprintf-nargs.patch @@ -0,0 +1,207 @@ +Date: Thu, 16 Feb 2012 08:16:13 -0800 +From: Kees Cook +To: "Ryan S. Arnold" +Cc: libc-alpha@sourceware.org, Paul Eggert , + Roland McGrath , + Andreas Schwab +Subject: Re: [PATCH] vfprintf: validate nargs and maybe allocate from heap + +The nargs value can overflow when doing allocations, allowing arbitrary +memory writes via format strings, bypassing _FORTIFY_SOURCE: +http://www.phrack.org/issues.html?issue=67&id=9 + +This checks for nargs overflow and possibly allocates from heap instead of +stack, and adds a regression test for the situation. + +I have FSF assignment via Google. (Sent from @outflux since that's how I'm +subscribed here, but CL shows @chromium.org as part of my Google work.) + +This version disables the useless test on non-32-bit platforms. + +2012-02-16 Kees Cook + + [BZ #13656] + * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and + possibly allocate from heap instead of stack. + * stdio-common/bug-vfprintf-nargs.c: New file. + * stdio-common/Makefile (tests): Add nargs overflow test. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a847b28..080badc 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -59,7 +59,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 ++ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ ++ bug-vfprintf-nargs + + test-srcs = tst-unbputc tst-printf + +diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c +new file mode 100644 +index 0000000..13c66c0 +--- /dev/null ++++ b/stdio-common/bug-vfprintf-nargs.c +@@ -0,0 +1,78 @@ ++/* Test for vfprintf nargs allocation overflow (BZ #13656). ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Kees Cook , 2012. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++format_failed (const char *fmt, const char *expected) ++{ ++ char output[80]; ++ ++ printf ("%s : ", fmt); ++ ++ memset (output, 0, sizeof output); ++ /* Having sprintf itself detect a failure is good. */ ++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 ++ && strcmp (output, expected) != 0) ++ { ++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); ++ return 1; ++ } ++ puts ("ok"); ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ int rc = 0; ++ char buf[64]; ++ ++ /* Regular positionals work. */ ++ if (format_failed ("%1$d", "1") != 0) ++ rc = 1; ++ ++ /* Regular width positionals work. */ ++ if (format_failed ("%1$*2$d", " 1") != 0) ++ rc = 1; ++ ++ /* Positional arguments are constructed via read_int, so nargs can only ++ overflow on 32-bit systems. On 64-bit systems, it will attempt to ++ allocate a giant amount of memory and possibly crash, which is the ++ expected situation. Since the 64-bit behavior is arch-specific, only ++ test this on 32-bit systems. */ ++ if (sizeof (long int) == 4) ++ { ++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); ++ if (format_failed (buf, "1 %$d") != 0) ++ rc = 1; ++ } ++ ++ return rc; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +index 863cd5d..022e72b 100644 +--- a/stdio-common/vfprintf.c ++++ b/stdio-common/vfprintf.c +@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) + 0 if unknown. */ + int readonly_format = 0; + ++ /* For the argument descriptions, which may be allocated on the heap. */ ++ void *args_malloced = NULL; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1647,9 +1650,10 @@ do_positional: + determine the size of the array needed to store the argument + attributes. */ + size_t nargs = 0; +- int *args_type; +- union printf_arg *args_value = NULL; ++ size_t bytes_per_arg; ++ union printf_arg *args_value; + int *args_size; ++ int *args_type; + + /* Positional parameters refer to arguments directly. This could + also determine the maximum number of arguments. Track the +@@ -1698,13 +1702,33 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type); ++ ++ /* Check for potential integer overflow. */ ++ if (nargs > SIZE_MAX / bytes_per_arg) ++ { ++ done = -1; ++ goto all_done; ++ } + + /* Allocate memory for the argument descriptions. */ +- args_type = alloca (nargs * sizeof (int)); ++ if (__libc_use_alloca (nargs * bytes_per_arg)) ++ args_value = alloca (nargs * bytes_per_arg); ++ else ++ { ++ args_value = args_malloced = malloc (nargs * bytes_per_arg); ++ if (args_value == NULL) ++ { ++ done = -1; ++ goto all_done; ++ } ++ } ++ ++ args_size = &args_value[nargs].pa_int; ++ args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', +- nargs * sizeof (int)); +- args_value = alloca (nargs * sizeof (union printf_arg)); +- args_size = alloca (nargs * sizeof (int)); ++ nargs * sizeof (*args_type)); + + /* XXX Could do sanity check here: If any element in ARGS_TYPE is + still zero after this loop, format is invalid. For now we +@@ -1973,8 +1997,8 @@ do_positional: + } + + all_done: +- if (__builtin_expect (workstart != NULL, 0)) +- free (workstart); ++ free (args_malloced); ++ free (workstart); + /* Unlock the stream. */ + _IO_funlockfile (s); + _IO_cleanup_region_end (0); +-- +1.7.5.4 + +-- +Kees Cook @outflux.net From 7f152ecbf8fcbabc8a5b7f04e573dea09ef5c7a5f852563e76c80cb16ef223e6 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 18 Apr 2012 10:34:21 +0000 Subject: [PATCH 100/204] Accepting request 114164 from Base:System Lots of fixes for glibc and cleanup of spec file. (forwarded request 114163 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/114164 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=105 --- armhf-ld-so.patch | 10 + cycle-detection.patch | 64 + getaddrinfo-ipv6-sanity.diff | 16 +- glibc-2.14-crypt-versioning.diff | 14 +- glibc-2.16-avx.patch | 725 +++----- glibc-2.16-fix-check-abi.patch | 1786 ++++++++++++++++++++ glibc-2.16-fix-check-localplt.patch | 33 + glibc-2.2-sunrpc.diff | 10 +- glibc-2.3.90-bindresvport.blacklist.diff | 2 +- glibc-2.3.90-noversion.diff | 8 +- glibc-2.4-china.diff | 6 +- glibc-2.4.90-no_NO.diff | 18 +- glibc-2.8-getconf.diff | 2 +- glibc-add-arm-dependency-libmemusage.patch | 32 + glibc-compiled-binaries.diff | 42 +- glibc-fix-noload.patch | 149 ++ glibc-ifunc-2.16.patch | 80 +- glibc-ld-profile.patch | 79 + glibc-no-unwind-tables.diff | 20 +- glibc-nodate.patch | 8 +- glibc-nscd-crash-bso13594.patch | 48 + glibc-revert-netlink-cache.patch | 801 --------- glibc-strict-aliasing.diff | 8 +- glibc-sw13618-2.patch | 29 + glibc.changes | 70 + glibc.rpmlintrc | 2 + glibc.spec | 263 ++- glibc2.14-revert-sunrpc-removal.patch | 28 +- nscd-avoid-gcc-warning.diff | 8 +- nss-db-path.patch | 41 + vfprintf-nargs.patch | 352 ++-- x86-cpuid-level2.patch | 8 +- 32 files changed, 3086 insertions(+), 1676 deletions(-) create mode 100644 armhf-ld-so.patch create mode 100644 cycle-detection.patch create mode 100644 glibc-2.16-fix-check-abi.patch create mode 100644 glibc-2.16-fix-check-localplt.patch create mode 100644 glibc-add-arm-dependency-libmemusage.patch create mode 100644 glibc-fix-noload.patch create mode 100644 glibc-ld-profile.patch create mode 100644 glibc-nscd-crash-bso13594.patch delete mode 100644 glibc-revert-netlink-cache.patch create mode 100644 glibc-sw13618-2.patch create mode 100644 nss-db-path.patch diff --git a/armhf-ld-so.patch b/armhf-ld-so.patch new file mode 100644 index 0000000..541a9ec --- /dev/null +++ b/armhf-ld-so.patch @@ -0,0 +1,10 @@ +diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions +index 491dd0a..5464959 100644 +--- a/glibc-ports-2.15/sysdeps/arm/shlib-versions ++++ b/glibc-ports-2.15/sysdeps/arm/shlib-versions +@@ -1,4 +1,4 @@ + arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4 + +-arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 ++arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 + arm.*-.*-linux.* ld=ld-linux.so.2 diff --git a/cycle-detection.patch b/cycle-detection.patch new file mode 100644 index 0000000..118d134 --- /dev/null +++ b/cycle-detection.patch @@ -0,0 +1,64 @@ +2012-01-19 Jeff Law + + * elf/dl-deps.c (_dl_map_object_deps): Fix cycle detection. + * elf/dl-fini.c (_dl_sort_fini): Likewise + + +Index: glibc-2.15/elf/dl-deps.c +=================================================================== +--- glibc-2.15.orig/elf/dl-deps.c ++++ glibc-2.15/elf/dl-deps.c +@@ -634,7 +634,7 @@ Filters not supported with LD_TRACE_PREL + /* We can skip looking for the binary itself which is at the front + of the search list. */ + i = 1; +- char seen[nlist]; ++ unsigned short seen[nlist]; + memset (seen, 0, nlist * sizeof (seen[0])); + while (1) + { +@@ -660,13 +660,13 @@ Filters not supported with LD_TRACE_PREL + (k - i) * sizeof (l_initfini[0])); + l_initfini[k] = thisp; + +- if (seen[i + 1] > 1) ++ if (seen[i + 1] > nlist - i - 1) + { + ++i; + goto next_clear; + } + +- char this_seen = seen[i]; ++ unsigned short this_seen = seen[i]; + memmove (&seen[i], &seen[i + 1], + (k - i) * sizeof (seen[0])); + seen[k] = this_seen; +Index: glibc-2.15/elf/dl-fini.c +=================================================================== +--- glibc-2.15.orig/elf/dl-fini.c ++++ glibc-2.15/elf/dl-fini.c +@@ -39,7 +39,7 @@ _dl_sort_fini (struct link_map **maps, s + /* We can skip looking for the binary itself which is at the front + of the search list for the main namespace. */ + unsigned int i = ns == LM_ID_BASE; +- char seen[nmaps]; ++ unsigned short seen[nmaps]; + memset (seen, 0, nmaps * sizeof (seen[0])); + while (1) + { +@@ -79,13 +79,13 @@ _dl_sort_fini (struct link_map **maps, s + used[k] = here_used; + } + +- if (seen[i + 1] > 1) ++ if (seen[i + 1] > nmaps - i - 1) + { + ++i; + goto next_clear; + } + +- char this_seen = seen[i]; ++ unsigned short this_seen = seen[i]; + memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); + seen[k] = this_seen; + diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index c14fab4..2e3a350 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -13,7 +13,19 @@ Index: sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -935,7 +935,7 @@ gaih_inet (const char *name, const struc +@@ -832,7 +832,10 @@ gaih_inet (const char *name, const struc + no_data = 0; + nss_gethostbyname4_r fct4 + = __nss_lookup_function (nip, "gethostbyname4_r"); +- if (fct4 != NULL) ++ /* If we don't want ipv6, don't use gethostbyname4_r, ++ as it's using T_UNSPEC to libc_res_nsearch, which always ++ create T_A and T_AAAA queries. */ ++ if (usable_ipv6 && fct4 != NULL) + { + int herrno; + +@@ -935,7 +938,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -22,7 +34,7 @@ Index: sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2418,7 +2418,7 @@ getaddrinfo (const char *name, const cha +@@ -2418,7 +2421,7 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/glibc-2.14-crypt-versioning.diff b/glibc-2.14-crypt-versioning.diff index dfbb258..ee84157 100644 --- a/glibc-2.14-crypt-versioning.diff +++ b/glibc-2.14-crypt-versioning.diff @@ -1,8 +1,8 @@ -Index: glibc-2.14/Versions.def +Index: glibc-2.15/Versions.def =================================================================== ---- glibc-2.14.orig/Versions.def -+++ glibc-2.14/Versions.def -@@ -41,6 +41,7 @@ libc { +--- glibc-2.15.orig/Versions.def ++++ glibc-2.15/Versions.def +@@ -40,6 +40,7 @@ libc { } libcrypt { GLIBC_2.0 @@ -10,10 +10,10 @@ Index: glibc-2.14/Versions.def } libdl { GLIBC_2.0 -Index: glibc-2.14/crypt/Versions +Index: glibc-2.15/crypt/Versions =================================================================== ---- glibc-2.14.orig/crypt/Versions -+++ glibc-2.14/crypt/Versions +--- glibc-2.15.orig/crypt/Versions ++++ glibc-2.15/crypt/Versions @@ -3,4 +3,7 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; diff --git a/glibc-2.16-avx.patch b/glibc-2.16-avx.patch index 31e699e..80eaaf4 100644 --- a/glibc-2.16-avx.patch +++ b/glibc-2.16-avx.patch @@ -14,10 +14,10 @@ Date: Thu Jan 26 07:45:14 2012 -0500 2012-01-25 Joseph Myers * elf/tst-unique3.cc (gets): Remove declaration. -diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c -index 65b0ee9..4fabbee 100644 ---- a/sysdeps/x86_64/multiarch/init-arch.c -+++ b/sysdeps/x86_64/multiarch/init-arch.c +Index: glibc-2.15/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.15/sysdeps/x86_64/multiarch/init-arch.c @@ -1,6 +1,6 @@ /* Initialize CPU feature data. This file is part of the GNU C Library. @@ -33,163 +33,6 @@ index 65b0ee9..4fabbee 100644 + if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) + { + /* Reset the AVX bit in case OSXSAVE is disabled. */ -+ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) == 0 -+ || ({ unsigned int xcrlow; -+ unsigned int xcrhigh; -+ asm ("xgetbv" -+ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); -+ (xcrlow & 6) != 6; })) -+ __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; -+ } -+ - __cpu_features.family = family; - __cpu_features.model = model; - atomic_write_barrier (); -diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h -index 2a1df39..408e5ae 100644 ---- a/sysdeps/x86_64/multiarch/init-arch.h -+++ b/sysdeps/x86_64/multiarch/init-arch.h -@@ -1,5 +1,5 @@ - /* This file is part of the GNU C Library. -- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public -@@ -27,6 +27,7 @@ - #define bit_SSSE3 (1 << 9) - #define bit_SSE4_1 (1 << 19) - #define bit_SSE4_2 (1 << 20) -+#define bit_OSXSAVE (1 << 27) - #define bit_AVX (1 << 28) - #define bit_POPCOUNT (1 << 23) - #define bit_FMA (1 << 12) - -commit 08cf777f9e7f6d826658a99c7d77a359f73a45bf -Author: Ulrich Drepper -Date: Thu Jan 26 09:45:54 2012 -0500 - - Really fix AVX tests - - There is no problem with strcmp, it doesn't use the YMM registers. - The math routines might since gcc perhaps generates such code. - Introduce bit_YMM_USBALE and use it in the math routines. - - [BZ #13583] - * sysdeps/x86_64/multiarch/init-arch.h: Define bit_OSXSAVE. - Clean up HAS_* macros. - * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): If - bit_AVX is set also check OSXAVE/XCR0 and set bit_YMM_Usable if - possible. - * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Use HAS_YMM_USABLE, not - HAS_AVX. - * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise. - -diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c -index 6867c6e..3a615fc 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c -@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); - - libm_ifunc (__ieee754_atan2, - HAS_FMA4 ? __ieee754_atan2_fma4 -- : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); -+ : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); - strong_alias (__ieee754_atan2, __atan2_finite) - - # define __ieee754_atan2 __ieee754_atan2_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c -index 3c65028..7b2320a 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_exp.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c -@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); - - libm_ifunc (__ieee754_exp, - HAS_FMA4 ? __ieee754_exp_fma4 -- : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); -+ : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); - strong_alias (__ieee754_exp, __exp_finite) - - # define __ieee754_exp __ieee754_exp_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c -index 3b468d0..ab277d6 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_log.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_log.c -@@ -14,7 +14,7 @@ extern double __ieee754_log_fma4 (double); - - libm_ifunc (__ieee754_log, - HAS_FMA4 ? __ieee754_log_fma4 -- : (HAS_AVX ? __ieee754_log_avx -+ : (HAS_YMM_USABLE ? __ieee754_log_avx - : __ieee754_log_sse2)); - strong_alias (__ieee754_log, __log_finite) - -diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c -index 3160201..78c7e09 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_atan.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c -@@ -12,7 +12,8 @@ extern double __atan_fma4 (double); - # define __atan_fma4 ((void *) 0) - # endif - --libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); -+libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : -+ HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); - - # define atan __atan_sse2 - #endif -diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c -index 1ba9dbc..417acd0 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_sin.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c -@@ -17,10 +17,12 @@ extern double __sin_fma4 (double); - # define __sin_fma4 ((void *) 0) - # endif - --libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); -+libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : -+ HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); - weak_alias (__cos, cos) - --libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); -+libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : -+ HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); - weak_alias (__sin, sin) - - # define __cos __cos_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c -index 8f6601e..3047155 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_tan.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c -@@ -12,7 +12,8 @@ extern double __tan_fma4 (double); - # define __tan_fma4 ((void *) 0) - # endif - --libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); -+libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : -+ HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); - - # define tan __tan_sse2 - #endif -diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c -index 4fabbee..76d146c 100644 ---- a/sysdeps/x86_64/multiarch/init-arch.c -+++ b/sysdeps/x86_64/multiarch/init-arch.c -@@ -147,13 +147,13 @@ __init_cpu_features (void) - if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) - { - /* Reset the AVX bit in case OSXSAVE is disabled. */ -- if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) == 0 -- || ({ unsigned int xcrlow; -- unsigned int xcrhigh; -- asm ("xgetbv" -- : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); -- (xcrlow & 6) != 6; })) -- __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; + if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0 + && ({ unsigned int xcrlow; + unsigned int xcrhigh; @@ -197,14 +40,23 @@ index 4fabbee..76d146c 100644 + : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); + (xcrlow & 6) == 6; })) + __cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable; - } - ++ } ++ __cpu_features.family = family; -diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h -index 408e5ae..2dc75ab 100644 ---- a/sysdeps/x86_64/multiarch/init-arch.h -+++ b/sysdeps/x86_64/multiarch/init-arch.h -@@ -22,6 +22,7 @@ + __cpu_features.model = model; + atomic_write_barrier (); +Index: glibc-2.15/sysdeps/x86_64/multiarch/init-arch.h +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/multiarch/init-arch.h ++++ glibc-2.15/sysdeps/x86_64/multiarch/init-arch.h +@@ -1,5 +1,5 @@ + /* This file is part of the GNU C Library. +- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -22,11 +22,13 @@ #define bit_Prefer_SSE_for_memop (1 << 3) #define bit_Fast_Unaligned_Load (1 << 4) #define bit_Prefer_PMINUB_for_stringop (1 << 5) @@ -212,7 +64,13 @@ index 408e5ae..2dc75ab 100644 #define bit_SSE2 (1 << 26) #define bit_SSSE3 (1 << 9) -@@ -49,6 +50,7 @@ + #define bit_SSE4_1 (1 << 19) + #define bit_SSE4_2 (1 << 20) ++#define bit_OSXSAVE (1 << 27) + #define bit_AVX (1 << 28) + #define bit_POPCOUNT (1 << 23) + #define bit_FMA (1 << 12) +@@ -48,6 +50,7 @@ # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE @@ -220,7 +78,7 @@ index 408e5ae..2dc75ab 100644 #else /* __ASSEMBLER__ */ -@@ -93,7 +95,7 @@ extern struct cpu_features +@@ -92,7 +95,7 @@ extern struct cpu_features extern void __init_cpu_features (void) attribute_hidden; @@ -229,7 +87,7 @@ index 408e5ae..2dc75ab 100644 do \ if (__cpu_features.kind == arch_kind_unknown) \ __init_cpu_features (); \ -@@ -126,23 +128,21 @@ extern const struct cpu_features *__get_cpu_features (void) +@@ -125,23 +128,21 @@ extern const struct cpu_features *__get_ # define index_Slow_BSF FEATURE_INDEX_1 # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 # define index_Fast_Unaligned_Load FEATURE_INDEX_1 @@ -263,24 +121,77 @@ index 408e5ae..2dc75ab 100644 +# define HAS_YMM_USABLE HAS_ARCH_FEATURE (YMM_Usable) #endif /* __ASSEMBLER__ */ - -commit 73139a7628c424c82eb9297ccb5505c0bc5b65aa -Author: Ulrich Drepper -Date: Sat Jan 28 11:19:06 2012 -0500 - - Simplify use of AVX instructions in internal math macros - -2012-01-28 Ulrich Drepper - - * sysdeps/x86_64/fpu/math_private.h: Simplify use of AVX instructions. - -diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h -index 7f52d5e..50f765f 100644 ---- a/sysdeps/x86_64/fpu/math_private.h -+++ b/sysdeps/x86_64/fpu/math_private.h -@@ -21,8 +21,12 @@ +Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/e_log.c +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/e_log.c ++++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/e_log.c +@@ -14,8 +14,7 @@ extern double __ieee754_log_fma4 (double - #ifdef __AVX__ + libm_ifunc (__ieee754_log, + HAS_FMA4 ? __ieee754_log_fma4 +- : (HAS_AVX ? __ieee754_log_avx +- : __ieee754_log_sse2)); ++ : (HAS_AVX ? __ieee754_log_avx : __ieee754_log_sse2)); + strong_alias (__ieee754_log, __log_finite) + + # define __ieee754_log __ieee754_log_sse2 +Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_atan.c +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/s_atan.c ++++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_atan.c +@@ -12,7 +12,8 @@ extern double __atan_fma4 (double); + # define __atan_fma4 ((void *) 0) + # endif + +-libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); ++libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : ++ HAS_AVX ? __atan_avx : __atan_sse2)); + + # define atan __atan_sse2 + #endif +Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_sin.c +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/s_sin.c ++++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_sin.c +@@ -17,10 +17,12 @@ extern double __sin_fma4 (double); + # define __sin_fma4 ((void *) 0) + # endif + +-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); ++libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : ++ HAS_AVX ? __cos_avx : __cos_sse2)); + weak_alias (__cos, cos) + +-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); ++libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : ++ HAS_AVX ? __sin_avx : __sin_sse2)); + weak_alias (__sin, sin) + + # define __cos __cos_sse2 +Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_tan.c +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/s_tan.c ++++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_tan.c +@@ -12,7 +12,8 @@ extern double __tan_fma4 (double); + # define __tan_fma4 ((void *) 0) + # endif + +-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); ++libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : ++ HAS_AVX ? __tan_avx : __tan_sse2)); + + # define tan __tan_sse2 + #endif +Index: glibc-2.15/sysdeps/x86_64/fpu/math_private.h +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/fpu/math_private.h ++++ glibc-2.15/sysdeps/x86_64/fpu/math_private.h +@@ -19,10 +19,14 @@ + + /* We can do a few things better on x86-64. */ + +-#ifdef __AVX__ ++#if defined __AVX__ || defined SSE2AVX # define MOVD "vmovd" +# define STMXCSR "vstmxcsr" +# define LDMXCSR "vldmxcsr" @@ -291,29 +202,78 @@ index 7f52d5e..50f765f 100644 #endif /* Direct movement of float into integer register. */ -@@ -173,7 +177,7 @@ - #define libc_fegetround() \ - ({ \ - unsigned int mxcsr; \ -- asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ -+ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ - (mxcsr & 0x6000) >> 3; \ - }) - #undef libc_fegetroundf -@@ -184,106 +188,63 @@ - #define libc_fesetround(r) \ - do { \ - unsigned int mxcsr; \ -- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ -+ asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ - mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ -- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ -+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ - } while (0) - #undef libc_fesetroundf - #define libc_fesetroundf(r) libc_fesetround (r) - // #define libc_fesetroundl(r) (void) fesetround (r) +@@ -86,7 +90,7 @@ + ({ int __di; GET_FLOAT_WORD (__di, (float) d); \ + (__di & 0x7fffffff) < 0x7f800000; }) +-#ifdef __AVX__ ++#if defined __AVX__ || defined SSE2AVX + # define __ieee754_sqrt(d) \ + ({ double __res; \ + asm ("vsqrtsd %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ +@@ -112,7 +116,7 @@ + + #ifdef __SSE4_1__ + # ifndef __rint +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __rint(d) \ + ({ double __res; \ + asm ("vroundsd $4, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ +@@ -125,7 +129,7 @@ + # endif + # endif + # ifndef __rintf +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __rintf(d) \ + ({ float __res; \ + asm ("vroundss $4, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ +@@ -139,7 +143,7 @@ + # endif + + # ifndef __floor +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __floor(d) \ + ({ double __res; \ + asm ("vroundsd $1, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ +@@ -152,7 +156,7 @@ + # endif + # endif + # ifndef __floorf +-# ifdef __AVX__ ++# if defined __AVX__ || defined SSE2AVX + # define __floorf(d) \ + ({ float __res; \ + asm ("vroundss $1, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ +@@ -169,121 +173,56 @@ + + /* Specialized variants of the interfaces which only handle + either the FPU or the SSE unit. */ +-#undef libc_fegetround +-#define libc_fegetround() \ +- ({ \ +- unsigned int mxcsr; \ +- asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ +- (mxcsr & 0x6000) >> 3; \ +- }) +-#undef libc_fegetroundf +-#define libc_fegetroundf() libc_fegetround () +-// #define libc_fegetroundl() fegetround () +- +-#undef libc_fesetround +-#define libc_fesetround(r) \ +- do { \ +- unsigned int mxcsr; \ +- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ +- mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ +- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ +- } while (0) +-#undef libc_fesetroundf +-#define libc_fesetroundf(r) libc_fesetround (r) +-// #define libc_fesetroundl(r) (void) fesetround (r) +- #undef libc_feholdexcept -#ifdef __AVX__ -# define libc_feholdexcept(e) \ @@ -344,25 +304,25 @@ index 7f52d5e..50f765f 100644 #undef libc_feholdexcept_setround -#ifdef __AVX__ -# define libc_feholdexcept_setround(e, r) \ -- do { \ -- unsigned int mxcsr; \ -- asm ("vstmxcsr %0" : "=m" (*&mxcsr)); \ -- (e)->__mxcsr = mxcsr; \ -- mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ -- asm volatile ("vldmxcsr %0" : : "m" (*&mxcsr)); \ -- } while (0) --#else --# define libc_feholdexcept_setround(e, r) \ +#define libc_feholdexcept_setround(e, r) \ do { \ unsigned int mxcsr; \ -- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ +- asm ("vstmxcsr %0" : "=m" (*&mxcsr)); \ + asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ (e)->__mxcsr = mxcsr; \ mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ -- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ +- asm volatile ("vldmxcsr %0" : : "m" (*&mxcsr)); \ + asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ } while (0) +-#else +-# define libc_feholdexcept_setround(e, r) \ +- do { \ +- unsigned int mxcsr; \ +- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ +- (e)->__mxcsr = mxcsr; \ +- mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ +- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ +- } while (0) -#endif #undef libc_feholdexcept_setroundf #define libc_feholdexcept_setroundf(e, r) libc_feholdexcept_setround (e, r) @@ -372,13 +332,14 @@ index 7f52d5e..50f765f 100644 -#ifdef __AVX__ -# define libc_fetestexcept(e) \ - ({ unsigned int mxcsr; asm volatile ("vstmxcsr %0" : "=m" (*&mxcsr)); \ -- mxcsr & (e) & FE_ALL_EXCEPT; }) ++#define libc_fetestexcept(e) \ ++ ({ unsigned int mxcsr; \ ++ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ + mxcsr & (e) & FE_ALL_EXCEPT; }) -#else -# define libc_fetestexcept(e) \ - ({ unsigned int mxcsr; asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ -+#define libc_fetestexcept(e) \ -+ ({ unsigned int mxcsr; asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ - mxcsr & (e) & FE_ALL_EXCEPT; }) +- mxcsr & (e) & FE_ALL_EXCEPT; }) -#endif #undef libc_fetestexceptf #define libc_fetestexceptf(e) libc_fetestexcept (e) @@ -422,38 +383,11 @@ index 7f52d5e..50f765f 100644 #undef libc_feupdateenvf #define libc_feupdateenvf(e) libc_feupdateenv (e) // #define libc_feupdateenvl(e) (void) feupdateenv (e) - -commit 56f6f6a2403cfa7267cad722597113be35ecf70d -Author: Ulrich Drepper -Date: Sat Jan 28 14:48:46 2012 -0500 - - Use -msse2avx option for x86-64 libm functions - -2012-01-28 Ulrich Drepper - - * config.h.in: Define HAVE_SSE2AVX_SUPPORT. - * math/math_private.h: Remove libc_fegetround* and - libc_fesetround*. - * sysdeps/i386/configure.in: Check for -msse2avx. - * sysdeps/x86_64/fpu/math_private.h: Use VEX-encoded instructions - also if SSE2AVX is defined. - Remove libc_fegetround* and libc_fesetround*. - * sysdeps/x86_64/fpu/multiarch/Makefile: Compile *-avx functions - if config-cflags-sse2avx is yes. Also add -DSSE2AVX to defines. - * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Use HAS_AVX again instead - of HAS_YMM_USABLE. - * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise. - - 2012-01-19 Adhemerval Zanella -diff --git a/config.h.in b/config.h.in -index 50d53d4..1489476 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -90,7 +90,7 @@ +Index: glibc-2.15/config.h.in +=================================================================== +--- glibc-2.15.orig/config.h.in ++++ glibc-2.15/config.h.in +@@ -102,7 +102,7 @@ certain registers (CR0, MQ, CTR, LR) in asm statements. */ #undef BROKEN_PPC_ASM_CR0 @@ -462,7 +396,7 @@ index 50d53d4..1489476 100644 symbol. sysdeps/sparc/sparc32/elf/configure. */ #undef BROKEN_SPARC_WDISP22 -@@ -106,17 +106,20 @@ +@@ -118,17 +118,20 @@ /* Define if gcc supports AVX. */ #undef HAVE_AVX_SUPPORT @@ -485,11 +419,11 @@ index 50d53d4..1489476 100644 include/libc-symbols.h that avoid PLT slots in the shared objects. */ #undef NO_HIDDEN -diff --git a/math/math_private.h b/math/math_private.h -index 602a271..e4108d8 100644 ---- a/math/math_private.h -+++ b/math/math_private.h -@@ -365,14 +365,6 @@ extern void __docos (double __x, double __dx, double __v[]); +Index: glibc-2.15/math/math_private.h +=================================================================== +--- glibc-2.15.orig/math/math_private.h ++++ glibc-2.15/math/math_private.h +@@ -365,14 +365,6 @@ extern void __docos (double __x, double know what operations are going to be performed. Therefore we define additional interfaces. By default they refer to the normal interfaces. */ @@ -504,10 +438,10 @@ index 602a271..e4108d8 100644 #define libc_feholdexcept(e) (void) feholdexcept (e) #define libc_feholdexceptf(e) (void) feholdexcept (e) #define libc_feholdexceptl(e) (void) feholdexcept (e) -diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure -index ae494e2..bc7900e 100644 ---- a/sysdeps/i386/configure -+++ b/sysdeps/i386/configure +Index: glibc-2.15/sysdeps/i386/configure +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/configure ++++ glibc-2.15/sysdeps/i386/configure @@ -756,6 +756,29 @@ if test $libc_cv_cc_avx = yes; then fi @@ -538,10 +472,10 @@ index ae494e2..bc7900e 100644 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5 $as_echo_n "checking for FMA4 support... " >&6; } if ${libc_cv_cc_fma4+:} false; then : -diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in -index 5a9840e..59a4cd6 100644 ---- a/sysdeps/i386/configure.in -+++ b/sysdeps/i386/configure.in +Index: glibc-2.15/sysdeps/i386/configure.in +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/configure.in ++++ glibc-2.15/sysdeps/i386/configure.in @@ -67,6 +67,17 @@ if test $libc_cv_cc_avx = yes; then AC_DEFINE(HAVE_AVX_SUPPORT) fi @@ -560,108 +494,10 @@ index 5a9840e..59a4cd6 100644 dnl Check if -mfma4 works. AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl if AC_TRY_COMMAND([${CC-cc} -mfma4 -xc /dev/null -S -o /dev/null]); then -diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h -index 50f765f..8e79718 100644 ---- a/sysdeps/x86_64/fpu/math_private.h -+++ b/sysdeps/x86_64/fpu/math_private.h -@@ -19,7 +19,7 @@ - - /* We can do a few things better on x86-64. */ - --#ifdef __AVX__ -+#if defined __AVX__ || defined SSE2AVX - # define MOVD "vmovd" - # define STMXCSR "vstmxcsr" - # define LDMXCSR "vldmxcsr" -@@ -90,7 +90,7 @@ - ({ int __di; GET_FLOAT_WORD (__di, (float) d); \ - (__di & 0x7fffffff) < 0x7f800000; }) - --#ifdef __AVX__ -+#if defined __AVX__ || defined SSE2AVX - # define __ieee754_sqrt(d) \ - ({ double __res; \ - asm ("vsqrtsd %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ -@@ -116,7 +116,7 @@ - - #ifdef __SSE4_1__ - # ifndef __rint --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __rint(d) \ - ({ double __res; \ - asm ("vroundsd $4, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ -@@ -129,7 +129,7 @@ - # endif - # endif - # ifndef __rintf --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __rintf(d) \ - ({ float __res; \ - asm ("vroundss $4, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ -@@ -143,7 +143,7 @@ - # endif - - # ifndef __floor --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __floor(d) \ - ({ double __res; \ - asm ("vroundsd $1, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ -@@ -156,7 +156,7 @@ - # endif - # endif - # ifndef __floorf --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __floorf(d) \ - ({ float __res; \ - asm ("vroundss $1, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ -@@ -173,29 +173,6 @@ - - /* Specialized variants of the interfaces which only handle - either the FPU or the SSE unit. */ --#undef libc_fegetround --#define libc_fegetround() \ -- ({ \ -- unsigned int mxcsr; \ -- asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ -- (mxcsr & 0x6000) >> 3; \ -- }) --#undef libc_fegetroundf --#define libc_fegetroundf() libc_fegetround () --// #define libc_fegetroundl() fegetround () -- --#undef libc_fesetround --#define libc_fesetround(r) \ -- do { \ -- unsigned int mxcsr; \ -- asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ -- mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ -- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ -- } while (0) --#undef libc_fesetroundf --#define libc_fesetroundf(r) libc_fesetround (r) --// #define libc_fesetroundl(r) (void) fesetround (r) -- - #undef libc_feholdexcept - #define libc_feholdexcept(e) \ - do { \ -@@ -224,7 +201,8 @@ - - #undef libc_fetestexcept - #define libc_fetestexcept(e) \ -- ({ unsigned int mxcsr; asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ -+ ({ unsigned int mxcsr; \ -+ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ - mxcsr & (e) & FE_ALL_EXCEPT; }) - #undef libc_fetestexceptf - #define libc_fetestexceptf(e) libc_fetestexcept (e) -diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile -index be68903..4b5c173 100644 ---- a/sysdeps/x86_64/fpu/multiarch/Makefile -+++ b/sysdeps/x86_64/fpu/multiarch/Makefile +Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/Makefile +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/Makefile ++++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/Makefile @@ -34,21 +34,21 @@ CFLAGS-s_sin-fma4.c = -mfma4 CFLAGS-s_tan-fma4.c = -mfma4 endif @@ -691,114 +527,14 @@ index be68903..4b5c173 100644 +CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX +CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX +CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX ++CFLAGS-slowexp-avx.c = -msse2avx -DSSE2AVX +CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX endif endif -diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c -index 3a615fc..6867c6e 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c -@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); - - libm_ifunc (__ieee754_atan2, - HAS_FMA4 ? __ieee754_atan2_fma4 -- : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); -+ : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); - strong_alias (__ieee754_atan2, __atan2_finite) - - # define __ieee754_atan2 __ieee754_atan2_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c -index 7b2320a..3c65028 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_exp.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c -@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); - - libm_ifunc (__ieee754_exp, - HAS_FMA4 ? __ieee754_exp_fma4 -- : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); -+ : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); - strong_alias (__ieee754_exp, __exp_finite) - - # define __ieee754_exp __ieee754_exp_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c -index ab277d6..05f3668 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_log.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_log.c -@@ -14,8 +14,7 @@ extern double __ieee754_log_fma4 (double); - - libm_ifunc (__ieee754_log, - HAS_FMA4 ? __ieee754_log_fma4 -- : (HAS_YMM_USABLE ? __ieee754_log_avx -- : __ieee754_log_sse2)); -+ : (HAS_AVX ? __ieee754_log_avx : __ieee754_log_sse2)); - strong_alias (__ieee754_log, __log_finite) - - # define __ieee754_log __ieee754_log_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c -index 78c7e09..ae16d7c 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_atan.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c -@@ -13,7 +13,7 @@ extern double __atan_fma4 (double); - # endif - - libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : -- HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); -+ HAS_AVX ? __atan_avx : __atan_sse2)); - - # define atan __atan_sse2 - #endif -diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c -index 417acd0..a0c2521 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_sin.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c -@@ -18,11 +18,11 @@ extern double __sin_fma4 (double); - # endif - - libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : -- HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); -+ HAS_AVX ? __cos_avx : __cos_sse2)); - weak_alias (__cos, cos) - - libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : -- HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); -+ HAS_AVX ? __sin_avx : __sin_sse2)); - weak_alias (__sin, sin) - - # define __cos __cos_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c -index 3047155..904308f 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_tan.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c -@@ -13,7 +13,7 @@ extern double __tan_fma4 (double); - # endif - - libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : -- HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); -+ HAS_AVX ? __tan_avx : __tan_sse2)); - - # define tan __tan_sse2 - #endif - -commit 3b1004624e54cc2fefd034ff80d5dea4b6db764f -Author: Joseph Myers -Date: Mon Jan 30 19:55:15 2012 +0000 - - Fix makefile/configure problems with sse2avx changes. - -2012-01-30 Joseph Myers - - * configure.in (libc_cv_cc_sse2avx): AC_SUBST. - * configure: Regenerate. - * config.make.in (config-cflags-sse2avx): Define. - * sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-slowexp-avx.c): - Fix typo. - - * scripts/config.guess: Update from upstream config git repository. -diff --git a/config.make.in b/config.make.in -index d937952..75061f6 100644 ---- a/config.make.in -+++ b/config.make.in +Index: glibc-2.15/config.make.in +=================================================================== +--- glibc-2.15.orig/config.make.in ++++ glibc-2.15/config.make.in @@ -36,6 +36,7 @@ asflags-cpu = @libc_cv_cc_submachine@ config-cflags-sse4 = @libc_cv_cc_sse4@ @@ -807,11 +543,11 @@ index d937952..75061f6 100644 config-cflags-novzeroupper = @libc_cv_cc_novzeroupper@ config-asflags-i686 = @libc_cv_as_i686@ -diff --git a/configure b/configure -index 71e8de1..508e1bb 100755 ---- a/configure -+++ b/configure -@@ -620,6 +620,7 @@ use_ldconfig +Index: glibc-2.15/configure +=================================================================== +--- glibc-2.15.orig/configure ++++ glibc-2.15/configure +@@ -625,6 +625,7 @@ use_ldconfig libc_cv_as_i686 libc_cv_cc_fma4 libc_cv_cc_novzeroupper @@ -819,11 +555,11 @@ index 71e8de1..508e1bb 100755 libc_cv_cc_avx libc_cv_cc_sse4 libc_cv_cpp_asm_debuginfo -diff --git a/configure.in b/configure.in -index 5fd6d85..0499d3c 100644 ---- a/configure.in -+++ b/configure.in -@@ -2154,6 +2154,7 @@ dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests +Index: glibc-2.15/configure.in +=================================================================== +--- glibc-2.15.orig/configure.in ++++ glibc-2.15/configure.in +@@ -2338,6 +2338,7 @@ dnl sysdeps/CPU/configure.in checks set AC_SUBST(libc_cv_cpp_asm_debuginfo) AC_SUBST(libc_cv_cc_sse4) AC_SUBST(libc_cv_cc_avx) @@ -831,16 +567,3 @@ index 5fd6d85..0499d3c 100644 AC_SUBST(libc_cv_cc_novzeroupper) AC_SUBST(libc_cv_cc_fma4) AC_SUBST(libc_cv_as_i686) -diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile -index 4b5c173..2a38ffc 100644 ---- a/sysdeps/x86_64/fpu/multiarch/Makefile -+++ b/sysdeps/x86_64/fpu/multiarch/Makefile -@@ -48,7 +48,7 @@ CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX - CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX - CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX - CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX --CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX -+CFLAGS-slowexp-avx.c = -msse2avx -DSSE2AVX - CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX - endif - endif diff --git a/glibc-2.16-fix-check-abi.patch b/glibc-2.16-fix-check-abi.patch new file mode 100644 index 0000000..4cd7d56 --- /dev/null +++ b/glibc-2.16-fix-check-abi.patch @@ -0,0 +1,1786 @@ +commit 00bbd29b35717f0de8b97e5b1e6fd3e979808ec3 +Author: Ulrich Drepper +Date: Sat Jan 7 19:23:45 2012 -0500 + + Update ABI information + + 2012-01-07 Ulrich Drepper + + * argp/Versions: Remove _argp_unlock_xxx. + + [BZ #13559] + * abilist/ld.abilist: Update. Adjust for removal of tls option. + * abilist/libBrokenLocale.abilist: Likewise. + * abilist/libanl.abilist: Likewise. + * abilist/libc.abilist: Likewise. + * abilist/libcrypt.abilist: Likewise. + * abilist/libdl.abilist: Likewise. + * abilist/libm.abilist: Likewise. + * abilist/libnsl.abilist: Likewise. + * abilist/libpthread.abilist: Likewise. + * abilist/libresolv.abilist: Likewise. + * abilist/librt.abilist: Likewise. + * abilist/libthread_db.abilist: Likewise. + * abilist/libutil.abilist: Likewise. + * abilist/libnss_db.abilist: New file. + + * scripts/abilist.awk: Add support for indirect functions. + +Index: glibc-2.15/abilist/ld.abilist +=================================================================== +--- glibc-2.15.orig/abilist/ld.abilist ++++ glibc-2.15/abilist/ld.abilist +@@ -1,35 +1,42 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.0 A + _r_debug D 0x14 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __libc_memalign F + calloc F + free F + malloc F + realloc F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1 A +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++ _dl_mcount F ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _dl_mcount F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread ++ __libc_stack_end D 0x4 ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _r_debug D 0x28 +-GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.2 s390x-.*-linux.*/thread + GLIBC_2.2 A +-GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++ __libc_stack_end D 0x8 ++GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3 A +-GLIBC_2.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls ++GLIBC_2.3 i.86-.*-linux.*/thread + ___tls_get_addr F +-GLIBC_2.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread x86_64-.*-linux.*/tls ++GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread x86_64-.*-linux.*/thread + __tls_get_addr F +-GLIBC_2.3 s390-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.3 s390-.*-linux.*/thread s390x-.*-linux.*/thread + __tls_get_offset F ++GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.4 A +Index: glibc-2.15/abilist/libBrokenLocale.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libBrokenLocale.abilist ++++ glibc-2.15/abilist/libBrokenLocale.abilist +@@ -1,13 +1,13 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.0 A +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __ctype_get_mb_cur_max F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2 A + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A +Index: glibc-2.15/abilist/libanl.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libanl.abilist ++++ glibc-2.15/abilist/libanl.abilist +@@ -1,13 +1,13 @@ +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2.3 A +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + gai_cancel F + gai_error F + gai_suspend F + getaddrinfo_a F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A +Index: glibc-2.15/abilist/libc.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libc.abilist ++++ glibc-2.15/abilist/libc.abilist +@@ -1,13 +1,13 @@ +-GCC_3.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GCC_3.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GCC_3.0 A + _Unwind_Find_FDE F + __deregister_frame_info_bases F + __register_frame_info_bases F + __register_frame_info_table_bases F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread + __fpu_control D 0x2 + vm86 F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.0 A + _IO_stderr_ D 0x50 + _IO_stdin_ D 0x50 +@@ -20,10 +20,10 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + sys_errlist D 0x1ec + sys_sigabbrev D 0x80 + sys_siglist D 0x80 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + getaliasbyname_r F + getaliasent_r F +@@ -51,17 +51,17 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + getservent_r F + getspent_r F + getspnam_r F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + _sys_nerr D 0x4 + sys_nerr D 0x4 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_do_write F + _IO_fclose F +@@ -88,21 +88,21 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + popen F + pthread_attr_init F + tmpfile F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + chown F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + fnmatch F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_fgetpos F + _IO_fsetpos F +@@ -115,28 +115,29 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + semctl F + setrlimit F + shmctl F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + re_max_failures D 0x4 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + pthread_cond_broadcast F ++ pthread_cond_timedwait F + pthread_cond_destroy F + pthread_cond_init F + pthread_cond_signal F + pthread_cond_wait F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + realpath F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_adjust_column F + _IO_default_doallocate F +@@ -1298,41 +1299,40 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + xencrypt F + xprt_register F + xprt_unregister F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __fork F + _nl_default_dirname D 0x12 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __bzero F + __clone F + clone F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + __divdi3 F + __moddi3 F + __udivdi3 F + __umoddi3 F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + atexit F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + __deregister_frame F + __frame_state_for F + __register_frame F + __register_frame_info_table F + __register_frame_table F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + __deregister_frame_info F + __register_frame_info F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2 sh[34].*-.*-linux.*/thread + _IO_file_jumps D 0x54 + _IO_list_all D 0x4 + __after_morecore_hook D 0x4 +@@ -1376,36 +1376,31 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + svcauthdes_stats D 0xc + timezone D 0x4 + tzname D 0x8 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls s390-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread s390-.*-linux.*/thread + ___brk_addr D 0x4 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + mcount F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + ioperm F + iopl F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls ++GLIBC_2.0 i.86-.*-linux.*/threads powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + _errno D 0x4 + _h_errno D 0x4 + errno D 0x4 + h_errno D 0x4 +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2 sh[34].*-.*-linux.*/notls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + _res D 0x200 +-GLIBC_2.0 m68.*-.*-linux.*/notls +- _res D 0x1fe +- cacheflush F +-GLIBC_2.0 m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __fpu_control D 0x4 +-GLIBC_2.0 powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++ __fpu_control D 0x2 ++GLIBC_2.0 powerpc-.*-linux.*/thread + __ashldi3 F + __ashrdi3 F + __cmpdi2 F +@@ -1417,17 +1412,21 @@ GLIBC_2.0 powerpc-.*-linux.*/notls power + __floatdisf F + __lshrdi3 F + __ucmpdi2 F +-GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ++GLIBC_2.1.1 i.86-.*-linux.*/thread + __memcpy_by2 F + __memcpy_by4 F ++ __memcpy_c F + __memcpy_g F + __mempcpy_by2 F + __mempcpy_by4 F + __mempcpy_byn F ++ __memset_cc F + __memset_ccn_by2 F + __memset_ccn_by4 F ++ __memset_cg F + __memset_gcn_by2 F + __memset_gcn_by4 F ++ __memset_gg F + __stpcpy_g F + __strcat_c F + __strcat_g F +@@ -1454,11 +1453,11 @@ GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-. + __strspn_g F + __strstr_cg F + __strstr_g F +-GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1.1 A +-GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _Exit F + __mempcpy_small F +@@ -1489,37 +1488,36 @@ GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-. + xdr_u_hyper F + xdr_u_longlong_t F + xdr_uint64_t F +-GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1.2 A +-GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __vfork F +-GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1.3 A +-GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __cxa_atexit F + __cxa_finalize F + __sigsuspend F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls ++GLIBC_2.1 i.86-.*-linux.*/thread + scalbln F + scalblnf F + scalblnl F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1 A +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.2 ia64-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + wordexp F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_fgetpos64 F + _IO_fsetpos64 F +@@ -1532,20 +1530,20 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + readdir64 F + readdir64_r F + scandir64 F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + glob64 F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + alphasort64 F + versionsort64 F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_file_finish F + _IO_getline_info F +@@ -1625,7 +1623,6 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + __wcstoull_l F + __wcsxfrm_l F + __wctype_l F +- _argp_unlock_xxx F + _authenticate F + _dl_mcount_wrapper F + _dl_mcount_wrapper_check F +@@ -1791,8 +1788,8 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + xdr_uint32_t F + xdr_uint8_t F + xdr_unixcred F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2 sh[34].*-.*-linux.*/thread + __key_decryptsession_pk_LOCAL D 0x4 + __key_encryptsession_pk_LOCAL D 0x4 + __key_gendes_LOCAL D 0x4 +@@ -1804,61 +1801,60 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + sys_errlist D 0x1f4 + sys_sigabbrev D 0x100 + sys_siglist D 0x100 +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + __signbitl F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls +-| GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread ++| GLIBC_2.2 sh[34].*-.*-linux.*/thread + _IO_2_1_stderr_ D 0x98 + _IO_2_1_stdin_ D 0x98 + _IO_2_1_stdout_ D 0x98 +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + modify_ldt F +-GLIBC_2.1 powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1 powerpc-.*-linux.*/thread s390-.*-linux.*/thread + _IO_2_1_stderr_ D 0xa0 + _IO_2_1_stdin_ D 0xa0 + _IO_2_1_stdout_ D 0xa0 +-GLIBC_2.1 s390-.*-linux.*/tls ++GLIBC_2.1 s390-.*-linux.*/thread + __chown F +-GLIBC_2.2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2.1 A +-GLIBC_2.2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + pivot_root F + posix_openpt F +-GLIBC_2.2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2.2 A +-GLIBC_2.2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __nss_hostname_digits_dots F +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2.3 A +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __rpc_thread_createerr F + __rpc_thread_svc_fdset F + __rpc_thread_svc_max_pollfd F + __rpc_thread_svc_pollfd F + sprofil F +-GLIBC_2.2.4 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2.4 A +-GLIBC_2.2.4 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + dl_iterate_phdr F + getgrouplist F + sockatmark F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A + __arch_prctl F + arch_prctl F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_adjust_wcolumn F + _IO_free_wbackup_area F +@@ -2006,8 +2002,8 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls + wmempcpy F + wprintf F + wscanf F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + __ctype32_b D 0x8 + __ctype32_tolower D 0x8 + __ctype32_toupper D 0x8 +@@ -2017,8 +2013,8 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls + _res D 0x238 + _sys_errlist D 0x3e8 + sys_errlist D 0x3e8 +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_2_1_stderr_ D 0xe0 + _IO_2_1_stdin_ D 0xe0 +@@ -2074,68 +2070,67 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls + sys_siglist D 0x200 + timezone D 0x8 + tzname D 0x10 +-GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.2.6 A +-GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __nanosleep F +-GLIBC_2.2.6 ia64-.*-linux.*/tls +- getunwind F +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2 A +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + __ctype32_tolower D 0x4 + __ctype32_toupper D 0x4 + _res_hconf D 0x30 + svc_pollfd D 0x4 +-GLIBC_2.2 i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + _IO_wfile_jumps D 0x54 +-GLIBC_2.2 ia64-.*-linux.*/tls +- __clone2 F +- __divdf3 F +- __divsf3 F +- __divtf3 F +- __multi3 F +- _inb F +- _inl F +- _inw F +- _outb F +- _outl F +- _outw F +- inb F +- inl F +- inw F +- outb F +- outw F +- pciconfig_read F +- pciconfig_write F +-GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls ++GLIBC_2.2 s390x-.*-linux.*/thread + ___brk_addr D 0x8 +-GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 sh[34].*-.*-linux.*/thread + _nl_default_dirname D 0x20 +-GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3.2 A + __register_atfork F + lchmod F +- sched_getaffinity F +- sched_setaffinity F + strptime_l F +-GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread + epoll_create F + epoll_ctl F + epoll_wait F +-GLIBC_2.3.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3.3 A + remap_file_pages F +-GLIBC_2.3.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls +- _sys_siglist D 0x104 ++GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread + sys_sigabbrev D 0x104 ++ _sys_siglist D 0x104 + sys_siglist D 0x104 +-GLIBC_2.3.3 ia64-.*-linux.*/tls powerpc64-.*-linux.*/thread s390x-.*-linux.*/tls x86_64-.*-linux.*/tls +-| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.3.3 x86_64-.*-linux.*/thread ++ sys_sigabbrev D 0x208 ++ _sys_siglist D 0x208 ++ sys_siglist D 0x208 ++GLIBC_2.3.3 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread ++| GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + strtoll_l F + strtoull_l F +-GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ sched_getaffinity F ++ sched_setaffinity F ++ semtimedop F ++ gnu_dev_major F ++ gnu_dev_makedev F ++ gnu_dev_minor F ++ inet6_option_alloc F ++ inet6_option_append F ++ inet6_option_find F ++ inet6_option_init F ++ inet6_option_next F ++ inet6_option_space F ++ nftw F ++ nftw64 F ++GLIBC_2.3.3 i.86-.*-linux.*/thread ++ posix_fadvise64 F ++ posix_fallocate64 F ++GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3 A + __ctype_b_loc F + __ctype_tolower_loc F +@@ -2223,9 +2218,276 @@ GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*- + wcsxfrm_l F + wctrans_l F + wctype_l F +-GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + _sys_errlist D 0x1f8 + sys_errlist D 0x1f8 +-GLIBC_2.3 ia64-.*-linux.*/tls powerpc64-.*-linux.*/thread s390x-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread + _sys_errlist D 0x3f0 + sys_errlist D 0x3f0 ++GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.3.4 A ++ __chk_fail F ++ __fprintf_chk F ++ __gets_chk F ++ __memcpy_chk F ++ __memmove_chk F ++ __mempcpy_chk F ++ __memset_chk F ++ __printf_chk F ++ __snprintf_chk F ++ __sprintf_chk F ++ __stpcpy_chk F ++ __strcat_chk F ++ __strcpy_chk F ++ __strncat_chk F ++ __strncpy_chk F ++ __vfprintf_chk F ++ __vprintf_chk F ++ __vsnprintf_chk F ++ __vsprintf_chk F ++ __xpg_strerror_r F ++ getipv4sourcefilter F ++ getsourcefilter F ++ regexec F ++ sched_getaffinity F ++ sched_setaffinity F ++ setipv4sourcefilter F ++ setsourcefilter F ++ xdr_quad_t F ++ xdr_u_quad_t F ++GLIBC_2.3.4 i.86-.*-linux.*/thread ++ vm86 F ++GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.4 A ++ __confstr_chk F ++ __fgets_chk F ++ __fgets_unlocked_chk F ++ __fgetws_chk F ++ __fgetws_unlocked_chk F ++ __fwprintf_chk F ++ __fxstatat F ++ __fxstatat64 F ++ __getcwd_chk F ++ __getdomainname_chk F ++ __getgroups_chk F ++ __gethostname_chk F ++ __getlogin_r_chk F ++ __getwd_chk F ++ __mbsnrtowcs_chk F ++ __mbsrtowcs_chk F ++ __mbstowcs_chk F ++ __pread64_chk F ++ __pread_chk F ++ __ptsname_r_chk F ++ __read_chk F ++ __readlink_chk F ++ __realpath_chk F ++ __recv_chk F ++ __recvfrom_chk F ++ __stack_chk_fail F ++ __stpncpy_chk F ++ __swprintf_chk F ++ __syslog_chk F ++ __ttyname_r_chk F ++ __vfwprintf_chk F ++ __vswprintf_chk F ++ __vsyslog_chk F ++ __vwprintf_chk F ++ __wcpcpy_chk F ++ __wcpncpy_chk F ++ __wcrtomb_chk F ++ __wcscat_chk F ++ __wcscpy_chk F ++ __wcsncat_chk F ++ __wcsncpy_chk F ++ __wcsnrtombs_chk F ++ __wcsrtombs_chk F ++ __wcstombs_chk F ++ __wctomb_chk F ++ __wmemcpy_chk F ++ __wmemmove_chk F ++ __wmempcpy_chk F ++ __wmemset_chk F ++ __wprintf_chk F ++ __xmknodat F ++ _sys_nerr D 0x4 ++ eaccess F ++ faccessat F ++ fchmodat F ++ fchownat F ++ fdopendir F ++ futimesat F ++ inotify_add_watch F ++ inotify_init F ++ inotify_rm_watch F ++ linkat F ++ mkdirat F ++ mkfifoat F ++ open_wmemstream F ++ openat F ++ openat64 F ++ ppoll F ++ readlinkat F ++ renameat F ++ symlinkat F ++ sys_nerr D 0x4 ++ unlinkat F ++ unshare F ++GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++ _sys_errlist D 0x210 ++ sys_errlist D 0x210 ++GLIBC_2.4 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread ++ _sys_errlist D 0x420 ++ sys_errlist D 0x420 ++GLIBC_2.5 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.5 A ++ __readlinkat_chk F ++ inet6_opt_append F ++ inet6_opt_find F ++ inet6_opt_finish F ++ inet6_opt_get_val F ++ inet6_opt_init F ++ inet6_opt_next F ++ inet6_opt_set_val F ++ inet6_rth_add F ++ inet6_rth_getaddr F ++ inet6_rth_init F ++ inet6_rth_reverse F ++ inet6_rth_segments F ++ inet6_rth_space F ++ splice F ++ tee F ++ vmsplice F ++GLIBC_2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.6 A ++ __sched_cpucount F ++ epoll_pwait F ++ futimens F ++ sched_getcpu F ++ strerror_l F ++ sync_file_range F ++ utimensat F ++GLIBC_2.7 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.7 A ++ __fread_chk F ++ __fread_unlocked_chk F ++ __isoc99_fscanf F ++ __isoc99_fwscanf F ++ __isoc99_scanf F ++ __isoc99_sscanf F ++ __isoc99_swscanf F ++ __isoc99_vfscanf F ++ __isoc99_vfwscanf F ++ __isoc99_vscanf F ++ __isoc99_vsscanf F ++ __isoc99_vswscanf F ++ __isoc99_vwscanf F ++ __isoc99_wscanf F ++ __open64_2 F ++ __open_2 F ++ __openat64_2 F ++ __openat_2 F ++ __sched_cpualloc F ++ __sched_cpufree F ++ eventfd F ++ eventfd_read F ++ eventfd_write F ++ mkostemp F ++ mkostemp64 F ++ signalfd F ++GLIBC_2.8 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.8 A ++ __asprintf_chk F ++ __dprintf_chk F ++ __obstack_printf_chk F ++ __obstack_vprintf_chk F ++ __vasprintf_chk F ++ __vdprintf_chk F ++ qsort_r F ++ timerfd_create F ++ timerfd_gettime F ++ timerfd_settime F ++GLIBC_2.9 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.9 A ++ dup3 F ++ epoll_create1 F ++ inotify_init1 F ++ pipe2 F ++GLIBC_2.10 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.10 A ++ __cxa_at_quick_exit F ++ __posix_getopt F ++ accept4 F ++ endsgent F ++ fallocate F ++ fgetsgent F ++ fgetsgent_r F ++ getsgent F ++ getsgent_r F ++ getsgnam F ++ getsgnam_r F ++ malloc_info F ++ preadv F ++ preadv64 F ++ psiginfo F ++ putsgent F ++ pwritev F ++ pwritev64 F ++ quick_exit F ++ register_printf_modifier F ++ register_printf_specifier F ++ register_printf_type F ++ setsgent F ++ sgetsgent F ++ sgetsgent_r F ++GLIBC_2.10 powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ fallocate64 F ++GLIBC_2.11 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.11 A ++ __longjmp_chk F ++ execvpe F ++ mkostemps F ++ mkostemps64 F ++ mkstemps F ++ mkstemps64 F ++GLIBC_2.11 i.86-.*-linux.*/thread ++ fallocate64 F ++GLIBC_2.12 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.12 A ++ _sys_nerr D 0x4 ++ ntp_gettimex F ++ recvmmsg F ++ sys_nerr D 0x4 ++GLIBC_2.12 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++ _sys_errlist D 0x21c ++ sys_errlist D 0x21c ++GLIBC_2.12 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread ++ _sys_errlist D 0x438 ++ sys_errlist D 0x438 ++GLIBC_2.13 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.13 A ++ __fentry__ F ++ fanotify_init F ++ fanotify_mark F ++ prlimit F ++ prlimit64 F ++GLIBC_2.14 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.14 A ++ clock_adjtime F ++ name_to_handle_at F ++ open_by_handle_at F ++ sendmmsg F ++ setns F ++ syncfs F ++GLIBC_2.14 x86_64-.*-linux.*/thread ++ memcpy F ++GLIBC_2.15 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.15 A ++ __fdelt_chk F ++ __fdelt_warn F ++ posix_spawn F ++ posix_spawnp F ++ process_vm_readv F ++ process_vm_writev F ++ scandirat F ++ scandirat64 F +Index: glibc-2.15/abilist/libcrypt.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libcrypt.abilist ++++ glibc-2.15/abilist/libcrypt.abilist +@@ -1,19 +1,32 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.0 A +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.2 s390x-.*-linux.*/thread + GLIBC_2.2 A + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A ++OW_CRYPT_1.0 .*-linux.*/thread ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F ++ +Index: glibc-2.15/abilist/libdl.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libdl.abilist ++++ glibc-2.15/abilist/libdl.abilist +@@ -1,33 +1,36 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.0 A +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + dlopen F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + dladdr F + dlclose F + dlerror F + dlsym F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.1 A +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + dlvsym F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.2 s390x-.*-linux.*/thread + GLIBC_2.2 A +-GLIBC_2.3.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3.3 A + dladdr1 F + dlinfo F + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A ++GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.3.4 A ++ dlmopen F +Index: glibc-2.15/abilist/libm.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libm.abilist ++++ glibc-2.15/abilist/libm.abilist +@@ -1,8 +1,8 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.0 A +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _LIB_VERSION D 0x4 + acos F +@@ -160,11 +160,11 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + yn F + ynf F + ynl F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1 A +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + feclearexcept F + fegetenv F +@@ -173,9 +173,9 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + fesetenv F + fesetexceptflag F + feupdateenv F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __clog10 F + __clog10f F +@@ -322,34 +322,114 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + trunc F + truncf F + truncl F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + __fpclassifyl F + __signbitl F + exp2l F +-GLIBC_2.1 powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls ++GLIBC_2.1 powerpc-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __fe_dfl_env D 0x8 + __fe_enabled_env D 0x8 + __fe_nomask_env F + __fe_nonieee_env D 0x8 +-GLIBC_2.2.3 ia64-.*-linux.*/tls +- GLIBC_2.2.3 A +- matherrf F +- matherrl F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + fedisableexcept F + feenableexcept F + fegetexcept F +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread + __expl F + __expm1l F +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2 A + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A ++GLIBC_2.4 i.86-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.4 A ++GLIBC_2.15 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread x86_64-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread powerpc64-.*-linux.*/thread ++ GLIBC_2.15 A ++ __acos_finite F ++ __acosf_finite F ++ __acosh_finite F ++ __acoshf_finite F ++ __acoshl_finite F ++ __acosl_finite F ++ __asin_finite F ++ __asinf_finite F ++ __asinl_finite F ++ __atan2_finite F ++ __atan2f_finite F ++ __atan2l_finite F ++ __atanh_finite F ++ __atanhf_finite F ++ __atanhl_finite F ++ __cosh_finite F ++ __coshf_finite F ++ __coshl_finite F ++ __exp10_finite F ++ __exp10f_finite F ++ __exp10l_finite F ++ __exp2_finite F ++ __exp2f_finite F ++ __exp2l_finite F ++ __expl_finite F ++ __exp_finite F ++ __expf_finite F ++ __fmod_finite F ++ __fmodf_finite F ++ __fmodl_finite F ++ __gamma_r_finite F ++ __gammaf_r_finite F ++ __gammal_r_finite F ++ __hypot_finite F ++ __hypotf_finite F ++ __hypotl_finite F ++ __j0_finite F ++ __j0f_finite F ++ __j0l_finite F ++ __j1_finite F ++ __j1f_finite F ++ __j1l_finite F ++ __jn_finite F ++ __jnf_finite F ++ __jnl_finite F ++ __lgamma_r_finite F ++ __lgammaf_r_finite F ++ __lgammal_r_finite F ++ __log10_finite F ++ __log10f_finite F ++ __log10l_finite F ++ __log2_finite F ++ __log2f_finite F ++ __log2l_finite F ++ __log_finite F ++ __logf_finite F ++ __logl_finite F ++ __pow_finite F ++ __powf_finite F ++ __powl_finite F ++ __remainder_finite F ++ __remainderf_finite F ++ __remainderl_finite F ++ __scalb_finite F ++ __scalbf_finite F ++ __scalbl_finite F ++ __sinh_finite F ++ __sinhf_finite F ++ __sinhl_finite F ++ __sqrt_finite F ++ __sqrtf_finite F ++ __sqrtl_finite F ++ __y0_finite F ++ __y0f_finite F ++ __y0l_finite F ++ __y1_finite F ++ __y1f_finite F ++ __y1l_finite F ++ __yn_finite F ++ __ynf_finite F ++ __ynl_finite F +Index: glibc-2.15/abilist/libnsl.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libnsl.abilist ++++ glibc-2.15/abilist/libnsl.abilist +@@ -1,8 +1,8 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.0 A +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __yp_check F + xdr_domainname F +@@ -47,11 +47,11 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + ypbinderr_string F + yperr_string F + ypprot_err F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.1 A +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __free_fdresult F + __nis_default_access F +@@ -130,13 +130,13 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + writeColdStartFile F + xdr_cback_data F + xdr_obj_p F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + xdr_ypall F +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2 A + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A +Index: glibc-2.15/abilist/libpthread.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libpthread.abilist ++++ glibc-2.15/abilist/libpthread.abilist +@@ -1,9 +1,9 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.0 A +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + pthread_attr_init F + pthread_create F +@@ -13,14 +13,14 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + sem_post F + sem_trywait F + sem_wait F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + pthread_atfork F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + pthread_cond_broadcast F + pthread_cond_destroy F +@@ -28,9 +28,9 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + pthread_cond_signal F + pthread_cond_timedwait F + pthread_cond_wait F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + _IO_flockfile F + _IO_ftrylockfile F +@@ -137,27 +137,27 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + wait F + waitpid F + write F +-GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1.1 A +-GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + sem_close F + sem_open F + sem_unlink F +-GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1.2 A +-GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __vfork F +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread + GLIBC_2.1 A +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __libc_allocate_rtsig F + __libc_current_sigrtmax F +@@ -185,16 +185,16 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + pthread_rwlockattr_setkind_np F + pthread_rwlockattr_setpshared F + pthread_setconcurrency F +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2.3 A +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + pthread_getattr_np F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __open64 F + __pread64 F +@@ -236,21 +236,59 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls + pwrite F + pwrite64 F + sem_timedwait F +-GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.2.6 A +-GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __nanosleep F +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2 A +-GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3.2 A +-GLIBC_2.3.3 i.86-.*-linux.*/thread sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.3.3 i.86-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3.3 A ++ __pthread_cleanup_routine F ++ __pthread_register_cancel F ++ __pthread_register_cancel_defer F ++ __pthread_unregister_cancel F ++ __pthread_unregister_cancel_restore F ++ __pthread_unwind_next F ++ pthread_attr_getaffinity_np F ++ pthread_attr_setaffinity_np F + pthread_barrierattr_getpshared F + pthread_condattr_getclock F + pthread_condattr_setclock F ++ pthread_getaffinity_np F ++ pthread_setaffinity_np F + pthread_timedjoin_np F + pthread_tryjoin_np F + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A ++GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.3.4 A ++ pthread_attr_getaffinity_np F ++ pthread_attr_setaffinity_np F ++ pthread_getaffinity_np F ++ pthread_setaffinity_np F ++ pthread_setschedprio F ++GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.4 A ++ pthread_mutex_consistent_np F ++ pthread_mutex_getprioceiling F ++ pthread_mutex_setprioceiling F ++ pthread_mutexattr_getprioceiling F ++ pthread_mutexattr_getprotocol F ++ pthread_mutexattr_getrobust_np F ++ pthread_mutexattr_setprioceiling F ++ pthread_mutexattr_setprotocol F ++ pthread_mutexattr_setrobust_np F ++GLIBC_2.11 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.11 A ++ pthread_sigqueue F ++GLIBC_2.12 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.12 A ++ pthread_getname_np F ++ pthread_mutex_consistent F ++ pthread_mutexattr_getrobust F ++ pthread_mutexattr_setrobust F ++ pthread_setname_np F +Index: glibc-2.15/abilist/libresolv.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libresolv.abilist ++++ glibc-2.15/abilist/libresolv.abilist +@@ -1,13 +1,13 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.0 A + dn_expand F + res_mkquery F + res_query F + res_querydomain F + res_search F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __b64_ntop F + __b64_pton F +@@ -59,21 +59,20 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + res_gethostbyname2 F + res_send_setqhook F + res_send_setrhook F +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + __p_class_syms D 0x54 +- __p_type_syms D 0x21c ++ __p_type_syms D 0x228 + _res_opcodes D 0x40 +-GLIBC_2.0 ia64-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __p_class_syms D 0xa8 +- __p_type_syms D 0x438 ++ __p_type_syms D 0x450 + _res_opcodes D 0x80 +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + __dn_expand F + __res_hostalias F +@@ -86,10 +85,38 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls + __res_query F + __res_querydomain F + __res_search F +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2 A +-GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3.2 A + __p_rcode F + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A ++GLIBC_2.9 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.9 A ++ ns_datetosecs F ++ ns_format_ttl F ++ ns_get16 F ++ ns_get32 F ++ ns_initparse F ++ ns_makecanon F ++ ns_msg_getflag F ++ ns_name_compress F ++ ns_name_ntol F ++ ns_name_ntop F ++ ns_name_pack F ++ ns_name_pton F ++ ns_name_rollback F ++ ns_name_skip F ++ ns_name_uncompress F ++ ns_name_unpack F ++ ns_parse_ttl F ++ ns_parserr F ++ ns_put16 F ++ ns_put32 F ++ ns_samedomain F ++ ns_samename F ++ ns_skiprr F ++ ns_sprintrr F ++ ns_sprintrrf F ++ ns_subdomain F +Index: glibc-2.15/abilist/librt.abilist +=================================================================== +--- glibc-2.15.orig/abilist/librt.abilist ++++ glibc-2.15/abilist/librt.abilist +@@ -1,8 +1,8 @@ +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.1 A +-GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + aio_cancel F + aio_cancel64 F +@@ -21,10 +21,10 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- + aio_write64 F + lio_listio F + lio_listio64 F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + clock_getcpuclockid F + clock_getres F +@@ -38,7 +38,33 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls + timer_getoverrun F + timer_gettime F + timer_settime F +-GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2 A + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A ++GLIBC_2.3.3 powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.3.3 A ++ timer_create F ++ timer_delete F ++ timer_getoverrun F ++ timer_gettime F ++ timer_settime F ++GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.3.4 A ++ mq_close F ++ mq_getattr F ++ mq_notify F ++ mq_open F ++ mq_receive F ++ mq_send F ++ mq_setattr F ++ mq_timedreceive F ++ mq_timedsend F ++ mq_unlink F ++GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.4 A ++ lio_listio F ++ lio_listio64 F ++GLIBC_2.7 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread ++ GLIBC_2.7 A ++ __mq_open_2 F +Index: glibc-2.15/abilist/libthread_db.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libthread_db.abilist ++++ glibc-2.15/abilist/libthread_db.abilist +@@ -1,8 +1,8 @@ +-GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.1.3 A +-GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + td_init F + td_log F +@@ -41,19 +41,19 @@ GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-. + td_thr_sigsetmask F + td_thr_tsd F + td_thr_validate F +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.2.3 A +-GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + td_symbol_list F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.2 s390x-.*-linux.*/thread + GLIBC_2.2 A +-GLIBC_2.3.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3.3 A + td_thr_tlsbase F +-GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls ++GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread + GLIBC_2.3 A + td_thr_tls_get_addr F +Index: glibc-2.15/abilist/libutil.abilist +=================================================================== +--- glibc-2.15.orig/abilist/libutil.abilist ++++ glibc-2.15/abilist/libutil.abilist +@@ -1,8 +1,8 @@ +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread + GLIBC_2.0 A +-GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls +-| GLIBC_2.2.5 x86_64-.*-linux.*/tls +-| GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread ++| GLIBC_2.2.5 x86_64-.*-linux.*/thread ++| GLIBC_2.2 s390x-.*-linux.*/thread + | GLIBC_2.3 powerpc64-.*-linux.*/thread + forkpty F + login F +@@ -10,9 +10,9 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- + logout F + logwtmp F + openpty F +-GLIBC_2.2.5 x86_64-.*-linux.*/tls ++GLIBC_2.2.5 x86_64-.*-linux.*/thread + GLIBC_2.2.5 A +-GLIBC_2.2 s390x-.*-linux.*/tls ++GLIBC_2.2 s390x-.*-linux.*/thread + GLIBC_2.2 A + GLIBC_2.3 powerpc64-.*-linux.*/thread + GLIBC_2.3 A +Index: glibc-2.15/argp/Versions +=================================================================== +--- glibc-2.15.orig/argp/Versions ++++ glibc-2.15/argp/Versions +@@ -7,8 +7,5 @@ libc { + # a* + argp_error; argp_failure; argp_help; argp_parse; argp_state_help; + argp_usage; +- +- # kludge for recursive argp callers that know the magic. +- _argp_unlock_xxx; + } + } +Index: glibc-2.15/scripts/abilist.awk +=================================================================== +--- glibc-2.15.orig/scripts/abilist.awk ++++ glibc-2.15/scripts/abilist.awk +@@ -74,6 +74,11 @@ $2 == "g" || $2 == "w" && NF == 7 { + type = "F"; + size = ""; + } ++ else if (type == "iD" && $4 == ".text") { ++ # Indirect functions. ++ type = "F"; ++ size = ""; ++ } + else { + desc = symbol " " version " " weak " ? " type " " $4 " " $5; + } diff --git a/glibc-2.16-fix-check-localplt.patch b/glibc-2.16-fix-check-localplt.patch new file mode 100644 index 0000000..187cf9f --- /dev/null +++ b/glibc-2.16-fix-check-localplt.patch @@ -0,0 +1,33 @@ +commit 7c35ffedf144417ba2787322c7b75b4db5c3cb7a +Author: Thomas Schwinge +Date: Fri Feb 10 21:05:54 2012 +0100 + + Fix x86 PLT slot usage for feraiseexcept. + + Then we're elf/check-localplt.out-clean again. + +2012-02-10 Thomas Schwinge + + * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv) Invoke __feraiseexcept + instead of feraiseexcept. + +diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c +index 70f9ee2..6e2ce35 100644 +--- a/sysdeps/i386/fpu/feupdateenv.c ++++ b/sysdeps/i386/fpu/feupdateenv.c +@@ -1,5 +1,5 @@ + /* Install given floating-point environment and raise exceptions. +- Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc. ++ Copyright (C) 1997,99,2000,01,07,2010,2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + +@@ -44,7 +44,7 @@ __feupdateenv (const fenv_t *envp) + /* Raise the saved exception. Incidently for us the implementation + defined format of the values in objects of type fexcept_t is the + same as the ones specified using the FE_* constants. */ +- feraiseexcept ((int) temp); ++ __feraiseexcept ((int) temp); + + /* Success. */ + return 0; diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index c8ab99b..7c28ff3 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -2,11 +2,11 @@ For details see: http://sourceware.org/bugzilla/show_bug.cgi?id=5379 -Index: sunrpc/clnt_udp.c +Index: glibc-2.15/sunrpc/clnt_udp.c =================================================================== ---- sunrpc/clnt_udp.c.orig -+++ sunrpc/clnt_udp.c -@@ -301,6 +301,7 @@ clntudp_call (cl, proc, xargs, argsp, xr +--- glibc-2.15.orig/sunrpc/clnt_udp.c ++++ glibc-2.15/sunrpc/clnt_udp.c +@@ -307,6 +307,7 @@ clntudp_call (cl, proc, xargs, argsp, xr XDR *xdrs; int outlen = 0; int inlen; @@ -14,7 +14,7 @@ Index: sunrpc/clnt_udp.c socklen_t fromlen; struct pollfd fd; int milliseconds = (cu->cu_wait.tv_sec * 1000) + -@@ -371,37 +372,36 @@ send_again: +@@ -377,37 +378,36 @@ send_again: anyup = 0; for (;;) { diff --git a/glibc-2.3.90-bindresvport.blacklist.diff b/glibc-2.3.90-bindresvport.blacklist.diff index 11ea6df..1eb65f3 100644 --- a/glibc-2.3.90-bindresvport.blacklist.diff +++ b/glibc-2.3.90-bindresvport.blacklist.diff @@ -44,7 +44,7 @@ Index: sunrpc/bindrsvprt.c + if (NULL == fp) + return; + -+ while (!feof (fp)) ++ while (!feof_unlocked (fp)) + { + unsigned long port; + char *tmp, *cp; diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index b3a6c9f..1d0057d 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,8 +1,8 @@ -Index: elf/rtld.c +Index: glibc-2.15/elf/rtld.c =================================================================== ---- elf/rtld.c.orig -+++ elf/rtld.c -@@ -1761,6 +1761,53 @@ ERROR: ld.so: object '%s' cannot be load +--- glibc-2.15.orig/elf/rtld.c ++++ glibc-2.15/elf/rtld.c +@@ -1802,6 +1802,53 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-2.4-china.diff b/glibc-2.4-china.diff index c0b68b6..e0d0159 100644 --- a/glibc-2.4-china.diff +++ b/glibc-2.4-china.diff @@ -1,7 +1,7 @@ -Index: localedata/locales/zh_TW +Index: glibc-2.15/localedata/locales/zh_TW =================================================================== ---- localedata/locales/zh_TW.orig -+++ localedata/locales/zh_TW +--- glibc-2.15.orig/localedata/locales/zh_TW ++++ glibc-2.15/localedata/locales/zh_TW @@ -1,7 +1,7 @@ comment_char % escape_char / diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff index 24aaa14..2ef75b5 100644 --- a/glibc-2.4.90-no_NO.diff +++ b/glibc-2.4.90-no_NO.diff @@ -1,7 +1,7 @@ -Index: intl/locale.alias +Index: glibc-2.15/intl/locale.alias =================================================================== ---- intl/locale.alias.orig -+++ intl/locale.alias +--- glibc-2.15.orig/intl/locale.alias ++++ glibc-2.15/intl/locale.alias @@ -57,8 +57,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR @@ -11,10 +11,10 @@ Index: intl/locale.alias norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 -Index: localedata/locales/no_NO +Index: glibc-2.15/localedata/locales/no_NO =================================================================== --- /dev/null -+++ localedata/locales/no_NO ++++ glibc-2.15/localedata/locales/no_NO @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -85,11 +85,11 @@ Index: localedata/locales/no_NO +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS -Index: localedata/SUPPORTED +Index: glibc-2.15/localedata/SUPPORTED =================================================================== ---- localedata/SUPPORTED.orig -+++ localedata/SUPPORTED -@@ -305,6 +305,8 @@ nl_NL/ISO-8859-1 \ +--- glibc-2.15.orig/localedata/SUPPORTED ++++ glibc-2.15/localedata/SUPPORTED +@@ -316,6 +316,8 @@ nl_NL/ISO-8859-1 \ nl_NL@euro/ISO-8859-15 \ nn_NO.UTF-8/UTF-8 \ nn_NO/ISO-8859-1 \ diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff index fdf9c05..f778bf3 100644 --- a/glibc-2.8-getconf.diff +++ b/glibc-2.8-getconf.diff @@ -6,7 +6,7 @@ Index: posix/Makefile =================================================================== --- posix/Makefile.orig +++ posix/Makefile -@@ -298,8 +298,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi +@@ -316,8 +316,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi $(addprefix $(..)./scripts/mkinstalldirs ,\ $(filter-out $(wildcard $@),$@)) while read spec; do \ diff --git a/glibc-add-arm-dependency-libmemusage.patch b/glibc-add-arm-dependency-libmemusage.patch new file mode 100644 index 0000000..e747838 --- /dev/null +++ b/glibc-add-arm-dependency-libmemusage.patch @@ -0,0 +1,32 @@ +From 2d80bda39073a35af4b904d27fa1511cd309b26f Mon Sep 17 00:00:00 2001 +From: Nathan Sidwell +Date: Fri, 6 Jan 2012 20:14:44 +0000 +Subject: [PATCH 696/712] Add ARM dependency of libmemusage.so on + libc_nonshared.a. + +--- + ChangeLog.arm | 6 ++++++ + sysdeps/arm/Makefile | 5 +++++ + 2 files changed, 11 insertions(+), 0 deletions(-) + +2012-01-05 Nathan Sidwell + Tom de Vries + + * sysdeps/arm/Makefile (libmemusage.so): Add libc_nonshared.a + dependency. + +diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile +--- a/glibc-ports-2.15/sysdeps/arm/Makefile ++++ b/glibc-ports-2.15/sysdeps/arm/Makefile +@@ -7,3 +7,8 @@ endif + ifeq ($(subdir),csu) + gen-as-const-headers += tlsdesc.sym + endif ++ ++# to pull in __aeabi_read_tp, needed for tls ++ifeq ($(subdir),malloc) ++$(objpfx)libmemusage.so: $(common-objpfx)libc_nonshared.a ++endif +-- +1.7.6.5 + diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff index 7428de9..13770ec 100644 --- a/glibc-compiled-binaries.diff +++ b/glibc-compiled-binaries.diff @@ -7,11 +7,11 @@ timezone/Makefile | 2 +- 6 files changed, 20 insertions(+), 4 deletions(-) -Index: config.make.in +Index: glibc-2.15/config.make.in =================================================================== ---- config.make.in.orig -+++ config.make.in -@@ -99,6 +99,7 @@ add-ons = @add_ons@ +--- glibc-2.15.orig/config.make.in ++++ glibc-2.15/config.make.in +@@ -100,6 +100,7 @@ add-ons = @add_ons@ add-on-subdirs = @add_on_subdirs@ sysdeps-add-ons = @sysdeps_add_ons@ cross-compiling = @cross_compiling@ @@ -19,11 +19,11 @@ Index: config.make.in force-install = @force_install@ # Build tools. -Index: configure.in +Index: glibc-2.15/configure.in =================================================================== ---- configure.in.orig -+++ configure.in -@@ -16,6 +16,7 @@ if test $host != $build; then +--- glibc-2.15.orig/configure.in ++++ glibc-2.15/configure.in +@@ -15,6 +15,7 @@ if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) @@ -31,11 +31,11 @@ Index: configure.in AC_PROG_CPP # We need the C++ compiler only for testing. AC_PROG_CXX -Index: configure +Index: glibc-2.15/configure =================================================================== ---- configure.orig -+++ configure -@@ -554,6 +554,7 @@ ac_clean_files= +--- glibc-2.15.orig/configure ++++ glibc-2.15/configure +@@ -553,6 +553,7 @@ ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no @@ -83,10 +83,10 @@ Index: configure Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -Index: posix/Makefile +Index: glibc-2.15/posix/Makefile =================================================================== ---- posix/Makefile.orig -+++ posix/Makefile +--- glibc-2.15.orig/posix/Makefile ++++ glibc-2.15/posix/Makefile @@ -320,7 +320,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi done < $(objpfx)getconf.speclist @@ -96,10 +96,10 @@ Index: posix/Makefile LC_ALL=C GETCONF_DIR=/dev/null \ $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new LC_ALL=C GETCONF_DIR=/dev/null \ -Index: sunrpc/Makefile +Index: glibc-2.15/sunrpc/Makefile =================================================================== ---- sunrpc/Makefile.orig -+++ sunrpc/Makefile +--- glibc-2.15.orig/sunrpc/Makefile ++++ glibc-2.15/sunrpc/Makefile @@ -108,7 +108,7 @@ otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libresolv.a endif @@ -109,10 +109,10 @@ Index: sunrpc/Makefile # We can only build this library if we can run the rpcgen we build. headers += $(rpcsvc:%.x=rpcsvc/%.h) extra-libs := librpcsvc -Index: timezone/Makefile +Index: glibc-2.15/timezone/Makefile =================================================================== ---- timezone/Makefile.orig -+++ timezone/Makefile +--- glibc-2.15.orig/timezone/Makefile ++++ glibc-2.15/timezone/Makefile @@ -69,7 +69,7 @@ installed-posixrules-file := $(firstword $(addprefix $(inst_zonedir)/, \ $(posixrules-file))) diff --git a/glibc-fix-noload.patch b/glibc-fix-noload.patch new file mode 100644 index 0000000..faebf14 --- /dev/null +++ b/glibc-fix-noload.patch @@ -0,0 +1,149 @@ +commit 675155e9084e060fd0e1e637b843f14e82898aa5 +Author: Andreas Schwab +Date: Wed Sep 22 12:06:30 2010 +0200 + + Fix memory leak on init/fini dependency list + + 2010-09-27 Andreas Schwab + + * include/link.h (struct link_map): Add l_free_initfini. + * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning + l_initfini. + * elf/rtld.c (dl_main): Clear it on all objects loaded on startup. + * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is + set. + +Index: glibc-2.15/elf/dl-close.c +=================================================================== +--- glibc-2.15.orig/elf/dl-close.c ++++ glibc-2.15/elf/dl-close.c +@@ -1,5 +1,5 @@ + /* Close a shared object opened by `_dl_open'. +- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1996-2007, 2009, 2010 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 +@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) + if (map->l_direct_opencount > 0 || map->l_type != lt_loaded + || dl_close_state != not_pending) + { +- if (map->l_direct_opencount == 0) +- { +- if (map->l_type == lt_loaded) +- dl_close_state = rerun; +- else if (map->l_type == lt_library) +- { +- struct link_map **oldp = map->l_initfini; +- map->l_initfini = map->l_orig_initfini; +- _dl_scope_free (oldp); +- } +- } ++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded) ++ dl_close_state = rerun; + + /* There are still references to this object. Do nothing more. */ + if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) +Index: glibc-2.15/elf/dl-libc.c +=================================================================== +--- glibc-2.15.orig/elf/dl-libc.c ++++ glibc-2.15/elf/dl-libc.c +@@ -270,13 +270,13 @@ libc_freeres_fn (free_mem) + + for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) + { +- /* Remove all additional names added to the objects. */ + for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) + { + struct libname_list *lnp = l->l_libname->next; + + l->l_libname->next = NULL; + ++ /* Remove all additional names added to the objects. */ + while (lnp != NULL) + { + struct libname_list *old = lnp; +@@ -284,6 +284,10 @@ libc_freeres_fn (free_mem) + if (! old->dont_free) + free (old); + } ++ ++ /* Free the initfini dependency list. */ ++ if (l->l_free_initfini) ++ free (l->l_initfini); + } + + if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 +Index: glibc-2.15/elf/rtld.c +=================================================================== +--- glibc-2.15.orig/elf/rtld.c ++++ glibc-2.15/elf/rtld.c +@@ -2323,6 +2323,7 @@ ERROR: ld.so: object '%s' cannot be load + lnp->dont_free = 1; + lnp = lnp->next; + } ++ l->l_free_initfini = 0; + + if (l != &GL(dl_rtld_map)) + _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, +Index: glibc-2.15/include/link.h +=================================================================== +--- glibc-2.15.orig/include/link.h ++++ glibc-2.15/include/link.h +@@ -1,6 +1,6 @@ + /* Data structure for communication from the run-time dynamic linker for + loaded ELF shared objects. +- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1995-2006, 2007, 2009, 2010 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 +@@ -192,6 +192,9 @@ struct link_map + during LD_TRACE_PRELINKING=1 + contains any DT_SYMBOLIC + libraries. */ ++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be ++ freed, ie. not allocated with ++ the dummy malloc in ld.so. */ + + /* Collected information about own RPATH directories. */ + struct r_search_path_struct l_rpath_dirs; +@@ -240,9 +243,6 @@ struct link_map + + /* List of object in order of the init and fini calls. */ + struct link_map **l_initfini; +- /* The init and fini list generated at startup, saved when the +- object is also loaded dynamically. */ +- struct link_map **l_orig_initfini; + + /* List of the dependencies introduced through symbol binding. */ + struct link_map_reldeps +Index: glibc-2.15/elf/dl-deps.c +=================================================================== +--- glibc-2.15.orig/elf/dl-deps.c ++++ glibc-2.15/elf/dl-deps.c +@@ -489,6 +489,7 @@ _dl_map_object_deps (struct link_map *ma + nneeded * sizeof needed[0]); + atomic_write_barrier (); + l->l_initfini = l_initfini; ++ l->l_free_initfini = 1; + } + + /* If we have no auxiliary objects just go on to the next map. */ +@@ -689,6 +690,7 @@ Filters not supported with LD_TRACE_PREL + l_initfini[nlist] = NULL; + atomic_write_barrier (); + map->l_initfini = l_initfini; ++ map->l_free_initfini = 1; + if (l_reldeps != NULL) + { + atomic_write_barrier (); +@@ -697,7 +699,7 @@ Filters not supported with LD_TRACE_PREL + _dl_scope_free (old_l_reldeps); + } + if (old_l_initfini != NULL) +- map->l_orig_initfini = old_l_initfini; ++ _dl_scope_free (old_l_initfini); + + if (errno_reason) + _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname, diff --git a/glibc-ifunc-2.16.patch b/glibc-ifunc-2.16.patch index b565dbf..9bbf931 100644 --- a/glibc-ifunc-2.16.patch +++ b/glibc-ifunc-2.16.patch @@ -15,10 +15,10 @@ Date: Fri Jan 27 15:05:19 2012 -0500 * elf/tst-relsort1mod1.c: New file. * elf/tst-relsort1mod2.c: New file. -diff --git a/Makeconfig b/Makeconfig -index 8195245..185afbb 100644 ---- a/Makeconfig -+++ b/Makeconfig +Index: glibc-2.15/Makeconfig +=================================================================== +--- glibc-2.15.orig/Makeconfig ++++ glibc-2.15/Makeconfig @@ -950,6 +950,12 @@ libdl = endif endif @@ -32,10 +32,10 @@ index 8195245..185afbb 100644 # These are the subdirectories containing the library source. The order # is more or less arbitrary. The sorting step will take care of the # dependencies. -diff --git a/elf/Makefile b/elf/Makefile -index 052e763..3f1772a 100644 ---- a/elf/Makefile -+++ b/elf/Makefile +Index: glibc-2.15/elf/Makefile +=================================================================== +--- glibc-2.15.orig/elf/Makefile ++++ glibc-2.15/elf/Makefile @@ -124,7 +124,8 @@ distribute := rtld-Rules \ tst-initordera1.c tst-initordera2.c tst-initorderb1.c \ tst-initorderb2.c tst-initordera3.c tst-initordera4.c \ @@ -46,7 +46,7 @@ index 052e763..3f1772a 100644 CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables -@@ -227,7 +228,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \ +@@ -230,7 +231,7 @@ tests += loadtest restest1 preloadtest l tst-audit1 tst-audit2 \ tst-stackguard1 tst-addr1 tst-thrlock \ tst-unique1 tst-unique2 tst-unique3 tst-unique4 \ @@ -55,7 +55,7 @@ index 052e763..3f1772a 100644 # reldep9 test-srcs = tst-pathopt selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) -@@ -290,7 +291,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ +@@ -293,7 +294,9 @@ modules-names = testobj1 testobj2 testob tst-initordera1 tst-initorderb1 \ tst-initordera2 tst-initorderb2 \ tst-initordera3 tst-initordera4 \ @@ -66,7 +66,7 @@ index 052e763..3f1772a 100644 ifeq (yes,$(have-initfini-array)) modules-names += tst-array2dep tst-array5dep endif -@@ -1195,3 +1198,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) +@@ -1198,3 +1201,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) endif @@ -76,10 +76,10 @@ index 052e763..3f1772a 100644 +$(objpfx)tst-relsort1mod2.so: $(libm) +$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ + $(objpfx)tst-relsort1mod2.so -diff --git a/elf/dl-open.c b/elf/dl-open.c -index a0b5c50..a56bdc1 100644 ---- a/elf/dl-open.c -+++ b/elf/dl-open.c +Index: glibc-2.15/elf/dl-open.c +=================================================================== +--- glibc-2.15.orig/elf/dl-open.c ++++ glibc-2.15/elf/dl-open.c @@ -1,5 +1,5 @@ /* Load a shared object at runtime, relocate it, and run its initializer. - Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. @@ -143,6 +143,17 @@ index a0b5c50..a56bdc1 100644 - variable. If was NULL but is not NULL afterwars we must - start the profiling. */ - struct link_map *old_profile_map = GL(dl_profile_map); +- +- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); +- +- if (old_profile_map == NULL && GL(dl_profile_map) != NULL) +- { +- /* We must prepare the profiling. */ +- _dl_start_profile (); +- +- /* Prevent unloading the object. */ +- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; +- } + struct link_map **runp = maps[k]->l_initfini; + if (runp != NULL) + /* Look through the dependencies of the object. */ @@ -154,26 +165,18 @@ index a0b5c50..a56bdc1 100644 + memmove (&maps[i], &maps[i + 1], + (k - i) * sizeof (maps[0])); + maps[k] = thisp; - -- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); ++ + if (seen[i + 1] > 1) + { + ++i; + goto next_clear; + } - -- if (old_profile_map == NULL && GL(dl_profile_map) != NULL) -- { -- /* We must prepare the profiling. */ -- _dl_start_profile (); ++ + char this_seen = seen[i]; + memmove (&seen[i], &seen[i + 1], + (k - i) * sizeof (seen[0])); + seen[k] = this_seen; - -- /* Prevent unloading the object. */ -- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; -- } ++ + goto next; + } + @@ -204,12 +207,12 @@ index a0b5c50..a56bdc1 100644 + variable. If it was NULL but is not NULL afterwars we must + start the profiling. */ + struct link_map *old_profile_map = GL(dl_profile_map); -+ -+ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); - if (l == new) - break; - l = l->l_prev; ++ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); ++ + if (old_profile_map == NULL && GL(dl_profile_map) != NULL) + { + /* We must prepare the profiling. */ @@ -225,11 +228,10 @@ index a0b5c50..a56bdc1 100644 } /* If the file is not loaded now as a dependency, add the search -diff --git a/elf/tst-relsort1.c b/elf/tst-relsort1.c -new file mode 100644 -index 0000000..972100c +Index: glibc-2.15/elf/tst-relsort1.c +=================================================================== --- /dev/null -+++ b/elf/tst-relsort1.c ++++ glibc-2.15/elf/tst-relsort1.c @@ -0,0 +1,19 @@ +#include +#include @@ -250,11 +252,10 @@ index 0000000..972100c + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" -diff --git a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c -new file mode 100644 -index 0000000..9e4a943 +Index: glibc-2.15/elf/tst-relsort1mod1.c +=================================================================== --- /dev/null -+++ b/elf/tst-relsort1mod1.c ++++ glibc-2.15/elf/tst-relsort1mod1.c @@ -0,0 +1,7 @@ +extern int foo (double); + @@ -263,11 +264,10 @@ index 0000000..9e4a943 +{ + return foo (1.2); +} -diff --git a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c -new file mode 100644 -index 0000000..a2c3e55 +Index: glibc-2.15/elf/tst-relsort1mod2.c +=================================================================== --- /dev/null -+++ b/elf/tst-relsort1mod2.c ++++ glibc-2.15/elf/tst-relsort1mod2.c @@ -0,0 +1,7 @@ +#include + diff --git a/glibc-ld-profile.patch b/glibc-ld-profile.patch new file mode 100644 index 0000000..65247874 --- /dev/null +++ b/glibc-ld-profile.patch @@ -0,0 +1,79 @@ +glibc bug #13818 + +2012-03-07 Jeff Law + + * elf/dl-reloc.c (_dl_relocate_object): Move code to allocate + l_reloc_result prior to calling ELF_DYNAMIC_RELOCATE. + +diff -rup a/elf/dl-reloc.c b/elf/dl-reloc.c +--- a/elf/dl-reloc.c 2012-01-01 05:16:32.000000000 -0700 ++++ b/elf/dl-reloc.c 2012-03-06 15:41:56.486242640 -0700 +@@ -238,32 +238,9 @@ _dl_relocate_object (struct link_map *l, + /* String table object symbols. */ + const char *strtab = (const void *) D_PTR (l, l_info[DT_STRTAB]); + +- /* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */ +-#define RESOLVE_MAP(ref, version, r_type) \ +- (ELFW(ST_BIND) ((*ref)->st_info) != STB_LOCAL \ +- ? ((__builtin_expect ((*ref) == l->l_lookup_cache.sym, 0) \ +- && elf_machine_type_class (r_type) == l->l_lookup_cache.type_class) \ +- ? (bump_num_cache_relocations (), \ +- (*ref) = l->l_lookup_cache.ret, \ +- l->l_lookup_cache.value) \ +- : ({ lookup_t _lr; \ +- int _tc = elf_machine_type_class (r_type); \ +- l->l_lookup_cache.type_class = _tc; \ +- l->l_lookup_cache.sym = (*ref); \ +- const struct r_found_version *v = NULL; \ +- if ((version) != NULL && (version)->hash != 0) \ +- v = (version); \ +- _lr = _dl_lookup_symbol_x (strtab + (*ref)->st_name, l, (ref), \ +- scope, v, _tc, \ +- DL_LOOKUP_ADD_DEPENDENCY, NULL); \ +- l->l_lookup_cache.ret = (*ref); \ +- l->l_lookup_cache.value = _lr; })) \ +- : l) +- +-#include "dynamic-link.h" +- +- ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling, skip_ifunc); +- ++ /* ELF_DYNAMIC_RELOCATE may need to examine l_reloc_result ++ when handling MACHINE_IRELATIVE relocs. So we must ++ allocate l_reloc_result prior to calling ELF_DYNAMIC_RELOCATE. */ + #ifndef PROF + if (__builtin_expect (consider_profiling, 0)) + { +@@ -290,6 +267,32 @@ _dl_relocate_object (struct link_map *l, + } + } + #endif ++ ++ /* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */ ++#define RESOLVE_MAP(ref, version, r_type) \ ++ (ELFW(ST_BIND) ((*ref)->st_info) != STB_LOCAL \ ++ ? ((__builtin_expect ((*ref) == l->l_lookup_cache.sym, 0) \ ++ && elf_machine_type_class (r_type) == l->l_lookup_cache.type_class) \ ++ ? (bump_num_cache_relocations (), \ ++ (*ref) = l->l_lookup_cache.ret, \ ++ l->l_lookup_cache.value) \ ++ : ({ lookup_t _lr; \ ++ int _tc = elf_machine_type_class (r_type); \ ++ l->l_lookup_cache.type_class = _tc; \ ++ l->l_lookup_cache.sym = (*ref); \ ++ const struct r_found_version *v = NULL; \ ++ if ((version) != NULL && (version)->hash != 0) \ ++ v = (version); \ ++ _lr = _dl_lookup_symbol_x (strtab + (*ref)->st_name, l, (ref), \ ++ scope, v, _tc, \ ++ DL_LOOKUP_ADD_DEPENDENCY, NULL); \ ++ l->l_lookup_cache.ret = (*ref); \ ++ l->l_lookup_cache.value = _lr; })) \ ++ : l) ++ ++#include "dynamic-link.h" ++ ++ ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling, skip_ifunc); + } + + /* Mark the object so we know this work has been done. */ diff --git a/glibc-no-unwind-tables.diff b/glibc-no-unwind-tables.diff index 7962e55..a3775e0 100644 --- a/glibc-no-unwind-tables.diff +++ b/glibc-no-unwind-tables.diff @@ -1,10 +1,10 @@ initfini.c is compiled to assembly and further processed and split, we can't have unwind tables therein. -Index: csu/Makefile +Index: glibc-2.15/csu/Makefile =================================================================== ---- csu/Makefile.orig -+++ csu/Makefile +--- glibc-2.15.orig/csu/Makefile ++++ glibc-2.15/csu/Makefile @@ -93,7 +93,7 @@ omit-deps += $(crtstuff) $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h $(compile.S) -g0 $(ASFLAGS-.os) -o $@ @@ -14,11 +14,11 @@ Index: csu/Makefile vpath initfini.c $(sysdirs) -Index: nptl/Makefile +Index: glibc-2.15/nptl/Makefile =================================================================== ---- nptl/Makefile.orig -+++ nptl/Makefile -@@ -339,7 +339,7 @@ endif +--- glibc-2.15.orig/nptl/Makefile ++++ glibc-2.15/nptl/Makefile +@@ -342,7 +342,7 @@ endif extra-objs += $(crti-objs) $(crtn-objs) omit-deps += crti crtn @@ -27,10 +27,10 @@ Index: nptl/Makefile endif CFLAGS-flockfile.c = -D_IO_MTSAFE_IO -Index: nptl/sysdeps/unix/sysv/linux/x86_64/Makefile +Index: glibc-2.15/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile =================================================================== ---- nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.orig -+++ nptl/sysdeps/unix/sysv/linux/x86_64/Makefile +--- glibc-2.15.orig/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile ++++ glibc-2.15/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile @@ -1,4 +1,4 @@ ifeq ($(subdir),nptl) CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions \ diff --git a/glibc-nodate.patch b/glibc-nodate.patch index 566a7e5..875e196 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,6 +1,8 @@ ---- csu/Makefile.nodate 2011-12-15 17:27:21.000000000 +0100 -+++ csu/Makefile 2011-12-15 17:27:30.000000000 +0100 -@@ -234,8 +234,8 @@ +Index: glibc-2.15/csu/Makefile +=================================================================== +--- glibc-2.15.orig/csu/Makefile ++++ glibc-2.15/csu/Makefile +@@ -234,8 +234,8 @@ $(objpfx)version-info.h: $(common-objpfx if [ -z "$$os" ]; then \ os=Linux; \ fi; \ diff --git a/glibc-nscd-crash-bso13594.patch b/glibc-nscd-crash-bso13594.patch new file mode 100644 index 0000000..876a5cc --- /dev/null +++ b/glibc-nscd-crash-bso13594.patch @@ -0,0 +1,48 @@ +diff -rup c/nscd/nscd_gethst_r.c d/nscd/nscd_gethst_r.c +--- c/nscd/nscd_gethst_r.c 2012-01-01 05:16:32.000000000 -0700 ++++ d/nscd/nscd_gethst_r.c 2012-03-28 10:45:51.546600822 -0600 +@@ -101,9 +101,27 @@ libc_freeres_fn (hst_map_free) + uint32_t + __nscd_get_nl_timestamp (void) + { ++ uint32_t retval; + if (__nss_not_use_nscd_hosts != 0) + return 0; + ++ int cnt = 0; ++ /* __nscd_get_mapping can change hst_map_handle.mapped to NO_MAPPING. ++ However, __nscd_get_mapping assumes the prior value was not NO_MAPPING. ++ Thus we have to acquire the lock to prevent this thread from changing ++ hst_map_handle.mapped to NO_MAPPING while another thread is inside ++ __nscd_get_mapping. */ ++ while (__builtin_expect ++ (atomic_compare_and_exchange_val_acq (&__hst_map_handle.lock, ++ 1, 0) != 0, 0)) ++ { ++ // XXX Best number of rounds? ++ if (__builtin_expect (++cnt > 5, 0)) ++ return 0; ++ ++ atomic_delay (); ++ } ++ + struct mapped_database *map = __hst_map_handle.mapped; + + if (map == NULL +@@ -113,9 +131,14 @@ __nscd_get_nl_timestamp (void) + map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped); + + if (map == NO_MAPPING) +- return 0; ++ retval = 0; ++ else ++ retval = map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; ++ ++ /* Release the lock. */ ++ __hst_map_handle.lock = 0; + +- return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; ++ return retval; + } + + diff --git a/glibc-revert-netlink-cache.patch b/glibc-revert-netlink-cache.patch deleted file mode 100644 index d008a0d..0000000 --- a/glibc-revert-netlink-cache.patch +++ /dev/null @@ -1,801 +0,0 @@ -commit 432d41ceecf5df8cfbc5a1db0cee9190f07ec1ca -Author: Ulrich Drepper -Date: Tue Nov 1 08:43:33 2011 -0400 - - Use kernel headers for netlink definitions - -2011-11-01 Ulrich Drepper - - * nscd/connections.c: Use kernel headers instead of . - -diff --git a/nscd/connections.c b/nscd/connections.c -index 1b8a9bd..c741996 100644 ---- a/nscd/connections.c -+++ b/nscd/connections.c -@@ -34,7 +34,8 @@ - #include - #include - #ifdef HAVE_NETLINK --# include -+# include -+# include - #endif - #ifdef HAVE_EPOLL - # include - -commit a501a01e069619676990454abd43c4d2bf4527f4 -Author: Ulrich Drepper -Date: Tue Nov 15 07:18:15 2011 -0500 - - Pretty printing - -diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c -index 895dc2a..0738a70 100644 ---- a/sysdeps/unix/sysv/linux/check_pf.c -+++ b/sysdeps/unix/sysv/linux/check_pf.c -@@ -273,7 +273,7 @@ make_request (int fd, pid_t pid) - } - else - { -- atomic_add(&noai6ai_cached.usecnt, 2); -+ atomic_add (&noai6ai_cached.usecnt, 2); - noai6ai_cached.seen_ipv4 = seen_ipv4; - noai6ai_cached.seen_ipv6 = seen_ipv6; - result = &noai6ai_cached; - - -commit 09f93bd3d6b1c41370432e6b7a3c88d0fc482881 -Author: Andreas Schwab -Date: Tue Nov 15 10:32:18 2011 +0100 - - Fix reference counting in network interface information cache - -2011-11-15 Andreas Schwab - - * sysdeps/unix/sysv/linux/check_pf.c (make_request): Properly - count references to noai6ai_cached. - -diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c -index 1f66684..895dc2a 100644 ---- a/sysdeps/unix/sysv/linux/check_pf.c -+++ b/sysdeps/unix/sysv/linux/check_pf.c -@@ -58,7 +58,7 @@ struct cached_data - - static struct cached_data noai6ai_cached = - { -- .usecnt = 3, /* Make sure we never try to delete this entry. */ -+ .usecnt = 1, /* Make sure we never try to delete this entry. */ - .in6ailen = 0 - }; - -@@ -273,6 +273,7 @@ make_request (int fd, pid_t pid) - } - else - { -+ atomic_add(&noai6ai_cached.usecnt, 2); - noai6ai_cached.seen_ipv4 = seen_ipv4; - noai6ai_cached.seen_ipv6 = seen_ipv6; - result = &noai6ai_cached; - -commit 3a2c02424d9824f5cdea4ebd32ff929b2b1f49c6 -Author: Ulrich Drepper -Date: Mon Oct 31 01:51:16 2011 -0400 - - Cache network interface information - - Whenever getaddrinfo needed network interface information it used the - netlink interface to read the information every single time. The - problem is that this information can change at any time. - - The patch implements monitoring of the network interfaces through - nscd. If no change is detected the previously read information can - be reused (which is the norm). This timestamp information is also - made available to other processes using the shared memory segment - between nscd and those processes. - -2011-10-31 Ulrich Drepper - - * include/ifaddrs.h: Declare __free_in6ai and __bump_nl_timestamp. - * inet/check_pf.c: Provide dummy versions of __free_in6ai and - __bump_nl_timestamp. - * nscd/connections (nscd_init): When host database is served open - netlink socket and request notification about configuration changes. - (main_loop_poll): Track netlink file descriptor and bump timestamp - in case data becomes available. - (main_loop_epoll): Likewise. - * nscd/nscd-client.h (DB_VERSION): Bump to 2. - (database_pers_head): Add extra_data fileds. - Declare __nscd_get_mapping and __nscd_get_nl_timestamp. - * nscd/nscd_gethst_r.c (__nscd_get_nl_timestamp): New function. - * nscd/nscd_helper.c (__nscd_get_mapping): Renamed from get_mapping. - Adjust caller. - * sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't call free on - in6ai data, call __free_in6ai. - * sysdeps/unix/sysv/linux/Makefile [subdir=nscd] (sysdep-CFLAGS): - Add -DHAVE_NETLINK. - * sysdeps/unix/sysv/linux/check_pf.c: Major rewrite. Cache the - interface information. Reuse previous data if netlink timestamp - is not changed. - (__bump_nl_timestamp): New function. - (__free_in6ai): New function. - - * sysdeps/unix/sysv/linux/check_pf.c (make_request): Don't call - -diff --git a/include/ifaddrs.h b/include/ifaddrs.h -index 50e4c48..e1c6cac 100644 ---- a/include/ifaddrs.h -+++ b/include/ifaddrs.h -@@ -21,8 +21,13 @@ struct in6addrinfo - extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6, - struct in6addrinfo **in6ai, size_t *in6ailen) - attribute_hidden; -+extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden; - extern void __check_native (uint32_t a1_index, int *a1_native, - uint32_t a2_index, int *a2_native) - attribute_hidden; - -+#ifdef IS_IN_nscd -+extern uint32_t __bump_nl_timestamp (void) attribute_hidden; -+#endif -+ - #endif /* ifaddrs.h */ -diff --git a/inet/check_pf.c b/inet/check_pf.c -index b015432..0fa34cc 100644 ---- a/inet/check_pf.c -+++ b/inet/check_pf.c -@@ -1,5 +1,5 @@ - /* Determine protocol families for which interfaces exist. Generic version. -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. -+ Copyright (C) 2003, 2006, 2011 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 -@@ -54,3 +54,19 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, - - (void) freeifaddrs (ifa); - } -+ -+ -+void -+__free_in6ai (struct in6addrinfo *in6ai) -+{ -+ /* Nothing to do. */ -+} -+ -+ -+#ifdef IS_IN_nscd -+uint32_t -+__bump_nl_timestamp (void) -+{ -+ return 0; -+} -+#endif -diff --git a/nscd/connections.c b/nscd/connections.c -index 2b5c7ef..1b8a9bd 100644 ---- a/nscd/connections.c -+++ b/nscd/connections.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -32,6 +33,9 @@ - #include - #include - #include -+#ifdef HAVE_NETLINK -+# include -+#endif - #ifdef HAVE_EPOLL - # include - #endif -@@ -247,6 +251,11 @@ static int sock; - int inotify_fd = -1; - #endif - -+#ifdef HAVE_NETLINK -+/* Descriptor for netlink status updates. */ -+static int nl_status_fd = -1; -+#endif -+ - #ifndef __ASSUME_SOCK_CLOEXEC - /* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero - before be know the result. */ -@@ -903,6 +912,65 @@ cannot set socket to close on exec: %s; disabling paranoia mode"), - exit (1); - } - -+#ifdef HAVE_NETLINK -+ if (dbs[hstdb].enabled) -+ { -+ /* Try to open netlink socket to monitor network setting changes. */ -+ nl_status_fd = socket (AF_NETLINK, -+ SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, -+ NETLINK_ROUTE); -+ if (nl_status_fd != -1) -+ { -+ struct sockaddr_nl snl; -+ memset (&snl, '\0', sizeof (snl)); -+ snl.nl_family = AF_NETLINK; -+ /* XXX Is this the best set to use? */ -+ snl.nl_groups = (RTMGRP_IPV4_IFADDR | RTMGRP_TC | RTMGRP_IPV4_MROUTE -+ | RTMGRP_IPV4_ROUTE | RTMGRP_IPV4_RULE -+ | RTMGRP_IPV6_IFADDR | RTMGRP_IPV6_MROUTE -+ | RTMGRP_IPV6_ROUTE | RTMGRP_IPV6_IFINFO -+ | RTMGRP_IPV6_PREFIX); -+ -+ if (bind (nl_status_fd, (struct sockaddr *) &snl, sizeof (snl)) != 0) -+ { -+ close (nl_status_fd); -+ nl_status_fd = -1; -+ } -+ else -+ { -+ /* Start the timestamp process. */ -+ dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] -+ = __bump_nl_timestamp (); -+ -+# ifndef __ASSUME_SOCK_CLOEXEC -+ if (have_sock_cloexec < 0) -+ { -+ /* We don't want to get stuck on accept. */ -+ int fl = fcntl (nl_status_fd, F_GETFL); -+ if (fl == -1 -+ || fcntl (nl_status_fd, F_SETFL, fl | O_NONBLOCK) == -1) -+ { -+ dbg_log (_("\ -+cannot change socket to nonblocking mode: %s"), -+ strerror (errno)); -+ exit (1); -+ } -+ -+ /* The descriptor needs to be closed on exec. */ -+ if (paranoia -+ && fcntl (nl_status_fd, F_SETFD, FD_CLOEXEC) == -1) -+ { -+ dbg_log (_("cannot set socket to close on exec: %s"), -+ strerror (errno)); -+ exit (1); -+ } -+ } -+# endif -+ } -+ } -+ } -+#endif -+ - /* Change to unprivileged uid/gid/groups if specified in config file */ - if (server_user != NULL) - finish_drop_privileges (); -@@ -1826,6 +1894,18 @@ main_loop_poll (void) - } - #endif - -+#ifdef HAVE_NETLINK -+ size_t idx_nl_status_fd = 0; -+ if (nl_status_fd != -1) -+ { -+ idx_nl_status_fd = nused; -+ conns[nused].fd = nl_status_fd; -+ conns[nused].events = POLLRDNORM; -+ ++nused; -+ firstfree = nused; -+ } -+#endif -+ - while (1) - { - /* Wait for any event. We wait at most a couple of seconds so -@@ -1968,6 +2048,20 @@ disabled inotify after read error %d"), - } - #endif - -+#ifdef HAVE_NETLINK -+ if (idx_nl_status_fd != 0 && conns[idx_nl_status_fd].revents != 0) -+ { -+ char buf[4096]; -+ /* Read all the data. We do not interpret it here. */ -+ while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, -+ sizeof (buf))) != -1) -+ ; -+ -+ dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] -+ = __bump_nl_timestamp (); -+ } -+#endif -+ - for (size_t cnt = first; cnt < nused && n > 0; ++cnt) - if (conns[cnt].revents != 0) - { -@@ -2046,6 +2140,17 @@ main_loop_epoll (int efd) - } - # endif - -+# ifdef HAVE_NETLINK -+ if (nl_status_fd != -1) -+ { -+ ev.events = EPOLLRDNORM; -+ ev.data.fd = nl_status_fd; -+ if (epoll_ctl (efd, EPOLL_CTL_ADD, nl_status_fd, &ev) == -1) -+ /* We cannot use epoll. */ -+ return; -+ } -+# endif -+ - while (1) - { - struct epoll_event revs[100]; -@@ -2162,6 +2267,18 @@ main_loop_epoll (int efd) - } - } - # endif -+# ifdef HAVE_NETLINK -+ else if (revs[cnt].data.fd == nl_status_fd) -+ { -+ char buf[4096]; -+ /* Read all the data. We do not interpret it here. */ -+ while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, -+ sizeof (buf))) != -1) -+ ; -+ -+ __bump_nl_timestamp (); -+ } -+# endif - else - { - /* Remove the descriptor from the epoll descriptor. */ -@@ -2185,6 +2302,7 @@ main_loop_epoll (int efd) - time_t laststart = now - ACCEPT_TIMEOUT; - assert (starttime[sock] == 0); - assert (inotify_fd == -1 || starttime[inotify_fd] == 0); -+ assert (nl_status_fd == -1 || starttime[nl_status_fd] == 0); - for (int cnt = highest; cnt > STDERR_FILENO; --cnt) - if (starttime[cnt] != 0 && starttime[cnt] < laststart) - { -diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h -index caad26a..b5cd2d2 100644 ---- a/nscd/nscd-client.h -+++ b/nscd/nscd-client.h -@@ -260,12 +260,17 @@ struct hashentry - - - /* Current persistent database version. */ --#define DB_VERSION 1 -+#define DB_VERSION 2 - - /* Maximum time allowed between updates of the timestamp. */ - #define MAPPING_TIMEOUT (5 * 60) - - -+/* Used indices for the EXTRA_DATA element of 'database_pers_head'. -+ Each database has its own indices. */ -+#define NSCD_HST_IDX_CONF_TIMESTAMP 0 -+ -+ - /* Header of persistent database file. */ - struct database_pers_head - { -@@ -274,6 +279,8 @@ struct database_pers_head - volatile int32_t gc_cycle; - volatile int32_t nscd_certainly_running; - volatile nscd_time_t timestamp; -+ /* Room for extensions. */ -+ volatile uint32_t extra_data[4]; - - nscd_ssize_t module; - nscd_ssize_t data_size; -@@ -322,6 +329,12 @@ extern int __nscd_open_socket (const char *key, size_t keylen, - request_type type, void *response, - size_t responselen) attribute_hidden; - -+/* Try to get a file descriptor for the shared meory segment -+ containing the database. */ -+extern struct mapped_database *__nscd_get_mapping (request_type type, -+ const char *key, -+ struct mapped_database **mappedp) attribute_hidden; -+ - /* Get reference of mapping. */ - extern struct mapped_database *__nscd_get_map_ref (request_type type, - const char *name, -@@ -371,4 +384,7 @@ extern ssize_t writeall (int fd, const void *buf, size_t len) - extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len) - attribute_hidden; - -+/* Get netlink timestamp counter from mapped area or zero. */ -+extern uint32_t __nscd_get_nl_timestamp (void); -+ - #endif /* nscd.h */ -diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c -index 70631fa..6ee142d 100644 ---- a/nscd/nscd_gethst_r.c -+++ b/nscd/nscd_gethst_r.c -@@ -1,4 +1,4 @@ --/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009 -+/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. -@@ -98,6 +98,27 @@ libc_freeres_fn (hst_map_free) - } - - -+uint32_t -+__nscd_get_nl_timestamp (void) -+{ -+ if (__nss_not_use_nscd_hosts != 0) -+ return 0; -+ -+ struct mapped_database *map = __hst_map_handle.mapped; -+ -+ if (map == NULL -+ || (map != NO_MAPPING -+ && map->head->nscd_certainly_running == 0 -+ && map->head->timestamp + MAPPING_TIMEOUT < time (NULL))) -+ map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped); -+ -+ if (map == NO_MAPPING) -+ return 0; -+ -+ return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; -+} -+ -+ - int __nss_have_localdomain attribute_hidden; - - static int -diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c -index fe63f9a..365b599 100644 ---- a/nscd/nscd_helper.c -+++ b/nscd/nscd_helper.c -@@ -277,9 +277,9 @@ __nscd_unmap (struct mapped_database *mapped) - - /* Try to get a file descriptor for the shared meory segment - containing the database. */ --static struct mapped_database * --get_mapping (request_type type, const char *key, -- struct mapped_database **mappedp) -+struct mapped_database * -+__nscd_get_mapping (request_type type, const char *key, -+ struct mapped_database **mappedp) - { - struct mapped_database *result = NO_MAPPING; - #ifdef SCM_RIGHTS -@@ -449,8 +449,8 @@ __nscd_get_map_ref (request_type type, const char *name, - || (cur->head->nscd_certainly_running == 0 - && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL)) - || cur->head->data_size > cur->datasize) -- cur = get_mapping (type, name, -- (struct mapped_database **) &mapptr->mapped); -+ cur = __nscd_get_mapping (type, name, -+ (struct mapped_database **) &mapptr->mapped); - - if (__builtin_expect (cur != NO_MAPPING, 1)) - { -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index a5aafe9..216c9cc 100644 ---- a/sysdeps/posix/getaddrinfo.c -+++ b/sysdeps/posix/getaddrinfo.c -@@ -2386,7 +2386,7 @@ getaddrinfo (const char *name, const char *service, - || (hints->ai_family == PF_INET6 && ! seen_ipv6)) - { - /* We cannot possibly return a valid answer. */ -- free (in6ai); -+ __free_in6ai (in6ai); - return EAI_NONAME; - } - } -@@ -2400,7 +2400,7 @@ getaddrinfo (const char *name, const char *service, - { - if (hints->ai_flags & AI_NUMERICSERV) - { -- free (in6ai); -+ __free_in6ai (in6ai); - return EAI_NONAME; - } - -@@ -2422,7 +2422,7 @@ getaddrinfo (const char *name, const char *service, - if (last_i != 0) - { - freeaddrinfo (p); -- free (in6ai); -+ __free_in6ai (in6ai); - - return -(last_i & GAIH_EAI); - } -@@ -2434,7 +2434,7 @@ getaddrinfo (const char *name, const char *service, - } - else - { -- free (in6ai); -+ __free_in6ai (in6ai); - return EAI_FAMILY; - } - -@@ -2622,7 +2622,7 @@ getaddrinfo (const char *name, const char *service, - p->ai_canonname = canonname; - } - -- free (in6ai); -+ __free_in6ai (in6ai); - - if (p) - { -diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile -index af53f70..3032026 100644 ---- a/sysdeps/unix/sysv/linux/Makefile -+++ b/sysdeps/unix/sysv/linux/Makefile -@@ -161,6 +161,6 @@ CFLAGS-mq_receive.c += -fexceptions - endif - - ifeq ($(subdir),nscd) --sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -+sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK - CFLAGS-gai.c += -DNEED_NETLINK - endif -diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c -index d5ad7ea..1f66684 100644 ---- a/sysdeps/unix/sysv/linux/check_pf.c -+++ b/sysdeps/unix/sysv/linux/check_pf.c -@@ -1,5 +1,5 @@ - /* Determine protocol families for which interfaces exist. Linux version. -- Copyright (C) 2003, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2003, 2006-2008, 2010, 2011 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 -@@ -33,6 +33,9 @@ - - #include - #include -+#include -+#include -+#include - - - #ifndef IFA_F_HOMEADDRESS -@@ -43,9 +46,42 @@ - #endif - - --static int --make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, -- struct in6addrinfo **in6ai, size_t *in6ailen) -+struct cached_data -+{ -+ uint32_t timestamp; -+ uint32_t usecnt; -+ bool seen_ipv4; -+ bool seen_ipv6; -+ size_t in6ailen; -+ struct in6addrinfo in6ai[0]; -+}; -+ -+static struct cached_data noai6ai_cached = -+ { -+ .usecnt = 3, /* Make sure we never try to delete this entry. */ -+ .in6ailen = 0 -+ }; -+ -+static struct cached_data *cache; -+__libc_lock_define_initialized (static, lock); -+ -+ -+#ifdef IS_IN_nscd -+static uint32_t nl_timestamp; -+ -+uint32_t -+__bump_nl_timestamp (void) -+{ -+ if (atomic_increment_val (&nl_timestamp) == 0) -+ atomic_increment (&nl_timestamp); -+ -+ return nl_timestamp; -+} -+#endif -+ -+ -+static struct cached_data * -+make_request (int fd, pid_t pid) - { - struct req - { -@@ -99,9 +135,6 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, - sizeof (nladdr))) < 0) - goto out_fail; - -- *seen_ipv4 = false; -- *seen_ipv6 = false; -- - bool done = false; - struct in6ailist - { -@@ -109,6 +142,8 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, - struct in6ailist *next; - } *in6ailist = NULL; - size_t in6ailistlen = 0; -+ bool seen_ipv4 = false; -+ bool seen_ipv6 = false; - - do - { -@@ -172,12 +207,12 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, - { - if (*(const in_addr_t *) address - != htonl (INADDR_LOOPBACK)) -- *seen_ipv4 = true; -+ seen_ipv4 = true; - } - else - { - if (!IN6_IS_ADDR_LOOPBACK (address)) -- *seen_ipv6 = true; -+ seen_ipv6 = true; - } - } - -@@ -211,30 +246,46 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, - } - while (! done); - -- if (*seen_ipv6 && in6ailist != NULL) -+ struct cached_data *result; -+ if (seen_ipv6 && in6ailist != NULL) - { -- *in6ai = malloc (in6ailistlen * sizeof (**in6ai)); -- if (*in6ai == NULL) -+ result = malloc (sizeof (*result) -+ + in6ailistlen * sizeof (struct in6addrinfo)); -+ if (result == NULL) - goto out_fail; - -- *in6ailen = in6ailistlen; -+#ifdef IS_IN_nscd -+ result->timestamp = nl_timestamp; -+#else -+ result->timestamp = __nscd_get_nl_timestamp (); -+#endif -+ result->usecnt = 2; -+ result->seen_ipv4 = seen_ipv4; -+ result->seen_ipv6 = true; -+ result->in6ailen = in6ailistlen; - - do - { -- (*in6ai)[--in6ailistlen] = in6ailist->info; -+ result->in6ai[--in6ailistlen] = in6ailist->info; - in6ailist = in6ailist->next; - } - while (in6ailist != NULL); - } -+ else -+ { -+ noai6ai_cached.seen_ipv4 = seen_ipv4; -+ noai6ai_cached.seen_ipv6 = seen_ipv6; -+ result = &noai6ai_cached; -+ } - - if (use_malloc) - free (buf); -- return 0; -+ return result; - - out_fail: - if (use_malloc) - free (buf); -- return -1; -+ return NULL; - } - - -@@ -258,28 +309,65 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, - - if (! __no_netlink_support) - { -- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); -+ struct cached_data *olddata = NULL; -+ struct cached_data *data = NULL; -+ -+ __libc_lock_lock (lock); - -- if (__builtin_expect (fd >= 0, 1)) -+#ifdef IS_IN_nscd -+# define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp -+#else -+# define cache_valid() \ -+ ({ uint32_t val = __nscd_get_nl_timestamp (); \ -+ val != 0 && cache->timestamp == val; }) -+#endif -+ if (cache != NULL && cache_valid ()) -+ { -+ data = cache; -+ atomic_increment (&cache->usecnt); -+ } -+ else - { -- struct sockaddr_nl nladdr; -- memset (&nladdr, '\0', sizeof (nladdr)); -- nladdr.nl_family = AF_NETLINK; -+ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); -+ -+ if (__builtin_expect (fd >= 0, 1)) -+ { -+ struct sockaddr_nl nladdr; -+ memset (&nladdr, '\0', sizeof (nladdr)); -+ nladdr.nl_family = AF_NETLINK; -+ -+ socklen_t addr_len = sizeof (nladdr); -+ -+ if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 -+ && __getsockname (fd, (struct sockaddr *) &nladdr, -+ &addr_len) == 0) -+ data = make_request (fd, nladdr.nl_pid); -+ -+ close_not_cancel_no_status (fd); -+ } -+ -+ if (data != NULL) -+ { -+ olddata = cache; -+ cache = data; -+ } -+ } - -- socklen_t addr_len = sizeof (nladdr); -+ __libc_lock_unlock (lock); - -- bool success -- = (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 -- && __getsockname (fd, (struct sockaddr *) &nladdr, -- &addr_len) == 0 -- && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6, -- in6ai, in6ailen) == 0); -+ if (data != NULL) -+ { -+ /* It worked. */ -+ *seen_ipv4 = data->seen_ipv4; -+ *seen_ipv6 = data->seen_ipv6; -+ *in6ailen = data->in6ailen; -+ *in6ai = data->in6ai; - -- close_not_cancel_no_status (fd); -+ if (olddata != NULL && olddata->usecnt > 0 -+ && atomic_add_zero (&olddata->usecnt, -1)) -+ free (olddata); - -- if (success) -- /* It worked. */ -- return; -+ return; - } - - #if __ASSUME_NETLINK_SUPPORT == 0 -@@ -318,3 +406,26 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, - (void) freeifaddrs (ifa); - #endif - } -+ -+ -+void -+__free_in6ai (struct in6addrinfo *ai) -+{ -+ if (ai != NULL) -+ { -+ struct cached_data *data = -+ (struct cached_data *) ((char *) ai -+ - offsetof (struct cached_data, in6ai)); -+ -+ if (atomic_add_zero (&data->usecnt, -1)) -+ { -+ __libc_lock_lock (lock); -+ -+ if (data->usecnt == 0) -+ /* Still unused. */ -+ free (data); -+ -+ __libc_lock_unlock (lock); -+ } -+ } -+} diff --git a/glibc-strict-aliasing.diff b/glibc-strict-aliasing.diff index 51de5a7..5a8ecc5 100644 --- a/glibc-strict-aliasing.diff +++ b/glibc-strict-aliasing.diff @@ -1,8 +1,8 @@ -Index: elf/Makefile +Index: glibc-2.15/elf/Makefile =================================================================== ---- elf/Makefile.orig -+++ elf/Makefile -@@ -133,6 +133,7 @@ include ../Makeconfig +--- glibc-2.15.orig/elf/Makefile ++++ glibc-2.15/elf/Makefile +@@ -135,6 +135,7 @@ include ../Makeconfig ifeq ($(unwind-find-fde),yes) routines += unwind-dw2-fde-glibc shared-only-routines += unwind-dw2-fde-glibc diff --git a/glibc-sw13618-2.patch b/glibc-sw13618-2.patch new file mode 100644 index 0000000..026de0f --- /dev/null +++ b/glibc-sw13618-2.patch @@ -0,0 +1,29 @@ +Index: glibc-2.15/elf/dl-open.c +=================================================================== +--- glibc-2.15.orig/elf/dl-open.c ++++ glibc-2.15/elf/dl-open.c +@@ -326,7 +326,7 @@ dl_open_worker (void *a) + while (l != NULL); + if (nmaps > 1) + { +- char seen[nmaps]; ++ uint16_t seen[nmaps]; + memset (seen, '\0', nmaps); + size_t i = 0; + while (1) +@@ -352,13 +352,13 @@ dl_open_worker (void *a) + (k - i) * sizeof (maps[0])); + maps[k] = thisp; + +- if (seen[i + 1] > 1) ++ if (seen[i + 1] > nmaps - i) + { + ++i; + goto next_clear; + } + +- char this_seen = seen[i]; ++ uint16_t this_seen = seen[i]; + memmove (&seen[i], &seen[i + 1], + (k - i) * sizeof (seen[0])); + seen[k] = this_seen; diff --git a/glibc.changes b/glibc.changes index 6a46fed..4f0ed0f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,73 @@ +------------------------------------------------------------------- +Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de + +- Build for power4 only, don't support power3 anymore. +- Add option to build glibc a bit more quickly for testing purposes. +- Remove disabled patch glibc-revert-netlink-cache.patch. +- Start renumbering patches. + +------------------------------------------------------------------- +Mon Apr 16 14:31:38 UTC 2012 - aj@suse.de + +- Do not build locales and profile for i686 since we only ship + the base and glibc-devel packages. + +------------------------------------------------------------------- +Fri Apr 13 09:35:49 UTC 2012 - aj@suse.de + +- Fix check-abi to succeed. +- Use feof_unlocked in glibc-2.3.90-bindresvport.blacklist.diff. +- Make x86 to be elf/check-localplt clean again +- Refresh some patches to apply without fuzz. + +------------------------------------------------------------------- +Fri Apr 6 09:19:11 UTC 2012 - aj@suse.de + +- Disable building with as-needed since it breaks glibc + (testsuite will fail, even if testsuite does not use as-needed) + +------------------------------------------------------------------- +Thu Apr 5 18:48:06 UTC 2012 - aj@suse.de + +- Another fix for dynamic linking. + +------------------------------------------------------------------- +Thu Apr 5 18:22:36 UTC 2012 - aj@suse.de + +- Properly fix dl_lookup_x crash (glibc-fix-noload.patch), disable + glibc-fix-lookup-crash.patch. + +------------------------------------------------------------------- +Mon Apr 2 09:30:24 UTC 2012 - aj@suse.de + +- Fix building on Armv5 (glibc-add-arm-dependency-libmemusage.patch) + +------------------------------------------------------------------- +Thu Mar 29 07:51:43 UTC 2012 - aj@suse.de + +- Fix crash when nscd is not running (bnc#741021) properly + and disable patch glibc-revert-netlink-cache.patch + +------------------------------------------------------------------- +Fri Mar 23 11:07:32 UTC 2012 - aj@suse.de + +- Fix path for nss_db (bnc#753657). + +------------------------------------------------------------------- +Thu Mar 22 09:41:48 UTC 2012 - aj@suse.de + +- Fix LD_PROFILE invocation. + +------------------------------------------------------------------- +Wed Mar 21 08:45:12 UTC 2012 - aj@suse.de + +- Fix cycle detection in loading of dynamic objects. + +------------------------------------------------------------------- +Wed Mar 14 08:26:52 UTC 2012 - aj@suse.de + +- Update getaddrinfo-ipv6-sanity.diff (bnc#684534). + ------------------------------------------------------------------- Fri Mar 2 17:01:55 UTC 2012 - aj@suse.de diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index 6ddd33d..42302a2 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -14,3 +14,5 @@ addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown addFilter("glibc\..*: permissions-missing-requires") # We will not rename glibc to follow the shlib policy addFilter("shlib-policy-missing-suffix") +# The dynamic linker and libnsl call exit - this is fine +addFilter(".*shared-lib-calls-exit.*") \ No newline at end of file diff --git a/glibc.spec b/glibc.spec index 813df2b..21fd5b9 100644 --- a/glibc.spec +++ b/glibc.spec @@ -16,6 +16,13 @@ # +# The full testsuite is only run with osc --with=glibc_run_testsuite +%bcond_with glibc_run_testsuite +# Run with osc --with=fast_build to have a shorter turnaround +# It will avoid building some parts of glibc and will not run the +# testsuite +%bcond_with fast_build + %define crypt_bf_version 1.2 Name: glibc @@ -25,23 +32,50 @@ Group: System/Libraries BuildRequires: gcc-c++ BuildRequires: libselinux-devel BuildRequires: libstdc++-devel + %define _filter_GLIBC_PRIVATE 1 +%if %_target_cpu == "i686" +# For i686 we ship only glibc and glibc-devel, so +# let's not build everything +%define build_profile 0 +%define build_locales 0 +%define build_html 0 +%else +%if %{with fast_build} +%define build_profile 0 +%define build_locales 0 +%define build_html 0 +%else +# Default: +%define build_profile 1 %define build_locales 1 +%define build_html 1 +%endif +%endif +# Enable testsuite runs for local builds +%if %{with fast_build} %define run_testsuite 0 +%else +%if %{with glibc_run_testsuite} +%define run_testsuite 1 +%else +%define run_testsuite 0 +%endif +%endif + %define disable_assert 0 %define enable_stackguard_randomization 1 %ifarch ppc ppc64 %define optimize_power 1 %ifarch ppc - %define powerpc_optimize_base power3 - %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 1 + %define powerpc_optimize_base power4 + %define powerpc_optimize_tune power4 %else %define powerpc_optimize_base power4 %define powerpc_optimize_tune power5 - %define powerpc_optimize_cpu_power4 0 %endif # We are not building Power CPU specific optimizations for openSUSE. + %define powerpc_optimize_cpu_power4 0 %define powerpc_optimize_cpu_power6 0 %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 @@ -110,6 +144,17 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build NoSource: 0 %endif # + +### +# Patches are ordered as: +# Patches that we will never upstream or which have not been looked at: 0000-0999 +# Patches taken from upstream: 1000-2000 +# Patches that are going upstream, waiting approval: 2000-3000 +### + +### +# Patches that upstream will not accept +### # PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de Patch0: glibc-testsuite.patch # PATCH-FIX-OPENSUSE handle glibc binaries @@ -148,14 +193,12 @@ Patch28: glibc-2.2-sunrpc.diff Patch29: glibc-2.8-getconf.diff # PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 Patch30: getaddrinfo-ipv6-sanity.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries Patch33: glibc-compiled-binaries.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch36: glibc-no-unwind-tables.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de Patch38: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE - Allow compilation with -altivec aj@suse.de -Patch41: glibc-uio-cell.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch45: glibc-gai-private4.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -164,7 +207,7 @@ Patch46: glibc-resolv-mdnshint.diff Patch47: glibc-nscd-hconf.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch49: glibc-fini-unwind.diff -# PATCH-FIX-OPENSUSE bnc#657627 +# PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 Patch52: glibc-elf-localscope.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff @@ -174,16 +217,14 @@ Patch65: glibc-fix-double-loopback.diff Patch66: glibc2.14-revert-sunrpc-removal.patch # PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de Patch67: glibc-revert-fseek-on-fclose.diff -# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140 matz@suse.de +# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de Patch68: glibc-fix-lookup-crash.patch +# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de +Patch69: glibc-fix-noload.patch # PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de Patch71: x86-cpuid-level2.patch -# PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) -Patch73: glibc-resolv-assert.diff # PATCH-FIX-OPENSUSE Run ctors (bnc#717671) aj@suse.de Patch74: glibc-2.14-fix-ctors.patch -# PATCH-FIX-OPENSUSE Fix missing declarations -Patch75: glibc-2.15-nss_db-declarations.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de @@ -196,18 +237,48 @@ Patch84: nscd-avoid-gcc-warning.diff Patch87: glibc-nodate.patch # PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de Patch88: pthread-cond-wait-revert.patch +# PATCH-FIX-OPENSUSE Fix cycle detection - aj@suse.de +Patch95: cycle-detection.patch +# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +Patch96: glibc-ld-profile.patch +# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de +Patch97: nss-db-path.patch +# PATCH-FIX-OPENSUSE Fix cycle detection 2 (from Fedora) - aj@suse.de +Patch100: glibc-sw13618-2.patch + +### +# Patches from upstream +### +# PATCH-FIX-UPSTREAM Fix missing declarations +Patch1000: glibc-2.15-nss_db-declarations.patch # PATCH-FIX-UPSTREAM Fix realloc usage in vfscanf - aj@suse.de -Patch89: glibc-2.16-scanf.patch +Patch1001: glibc-2.16-scanf.patch # PATCH-FIX-UPSTREAM Fix getcontext on 32-bit powerpc - aj@suse.de -Patch90: glibc-ppc-getcontext.patch +Patch1002: glibc-ppc-getcontext.patch # PATCH-FIX-UPSTREAM Fix ifunc relocations (bnc#740109) - aj@suse.de -Patch91: glibc-ifunc-2.16.patch -# PATCH-FIX-OPENSUSE Remove netlink optimization (bnc#741021) - aj@suse.de -Patch92: glibc-revert-netlink-cache.patch +Patch1003: glibc-ifunc-2.16.patch # PATCH-FIX-UPSTREAM Fix tests for AVX features - aj@suse.de -Patch93: glibc-2.16-avx.patch +Patch1004: glibc-2.16-avx.patch # PATCH-FIX-UPSTREAM vfprintf: validate nargs and maybe allocate from heap bnc#747768 - aj@suse.de -Patch94: vfprintf-nargs.patch +Patch1005: vfprintf-nargs.patch +# PATCH-FIX-UPSTREAM Add Arm dependency on libmemusage - bwiedemann@suse.de +Patch1006: glibc-add-arm-dependency-libmemusage.patch +# PATCH-FIX-UPSTREAM Fix check abi - aj@suse.de +Patch1007: glibc-2.16-fix-check-abi.patch +# PATCH-FIX-UPSTREAM Fix check-localelfplt - aj@suse.de +Patch1008: glibc-2.16-fix-check-localplt.patch +# PATCH-FIX-UPSTREAM - Allow compilation with -altivec aj@suse.de +Patch1009: glibc-uio-cell.diff + +### +# Patches awaiting upstream approval +### +# PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) +Patch2001: glibc-resolv-assert.diff +# PATCH-FIX-UPSTREAM Use new common path for ARMv7 hardware float linker - aj@suse.de +Patch2002: armhf-ld-so.patch +# PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de +Patch2003: glibc-nscd-crash-bso13594.patch %description The GNU C Library provides the most important standard libraries used @@ -228,6 +299,7 @@ This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not complete and is partially out of date. +%if %{build_html} %package html Summary: HTML Documentation for the GNU C Library License: GFDL-1.1 @@ -238,6 +310,7 @@ BuildArch: noarch This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is partially out of date. +%endif %package i18ndata Summary: Database Sources for 'locale' @@ -283,6 +356,7 @@ Requires(postun): %insserv_prereq Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. +%if %{build_profile} %package profile Summary: Libc Profiling and Debugging Versions License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ @@ -299,6 +373,7 @@ Obsoletes: glibc-profile-32bit %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. +%endif %package devel Summary: Include Files and Libraries Mandatory for Development @@ -394,7 +469,7 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ # %patch0 # libNoVersion part is only active on ix86 -%patch1 +%patch1 -p1 %patch3 %patch4 %patch5 -p1 @@ -403,8 +478,8 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ %patch8 %patch12 %patch14 -%patch16 -%patch20 +%patch16 -p1 +%patch20 -p1 %patch21 -p1 # avoid changing nscd_stat.c mtime to avoid code generation # differences on each rebuild @@ -414,36 +489,51 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch25 -%patch28 +%patch28 -p1 %patch29 %patch30 -%patch33 -%patch36 +%patch33 -p1 +%patch36 -p1 %patch38 -%patch41 -p1 +%patch1009 -p1 %patch45 %patch46 -p1 %patch47 -p1 %patch49 +# XXX: Does not pass testsuite, still there's no better solution yet %patch52 -%patch58 +%patch58 -p1 %patch65 -p1 %patch66 -p1 %patch67 -p1 -%patch68 -p1 +# XXX Patch 69 replaces 68, remove soon +#%patch68 -p1 +%patch69 -p1 %patch71 -p1 -%patch73 -p1 +%patch2001 -p1 %patch74 -p1 -%patch75 -p1 -%patch84 -%patch87 -p0 +%patch1000 -p1 +%patch84 -p1 +%patch87 -p1 %patch88 -p1 -R -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 -R -%patch93 -p1 -%patch94 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch95 -p1 +# XXX Disable, it breaks the testsuite, test elf/tst-audit2 +# %patch96 -p1 +%patch97 -p1 +%patch2003 -p1 +%patch1006 -p1 +%patch100 -p1 +%patch1007 -p1 +%patch1008 -p1 +%ifarch armv7l +# Disable for now +#%patch2002 -p1 +%endif # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -472,6 +562,9 @@ find . -name configure | xargs touch ####################################################################### %build +%if %{with glibc_run_testsuite} +echo glibc_run_testsuite is set +%endif if [ -x /bin/uname.bin ]; then /bin/uname.bin -a else @@ -488,6 +581,10 @@ nice %else %define target %{_target_cpu}-suse-linux %endif +# Don't use as-needed, it breaks glibc assumptions +# Before enabling it, run the testsuite and verify that it +# passes completely +export SUSE_ASNEEDED=0 # Adjust glibc version.h echo "#define CONFHOST \"%{target}\"" >> version.h echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h @@ -566,10 +663,14 @@ configure_and_build_glibc() { %else conf_cflags="$cflags" %endif + CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ - --enable-add-ons=nptl$addons --enable-profile \ + --enable-add-ons=nptl$addons \ +%if %{build_profile} + --enable-profile \ +%endif "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ @@ -633,7 +734,9 @@ configure_and_build_glibc() { # # Build html documentation # +%if %{build_html} make -C cc-base html +%endif # # Build glibc_post_upgrade binary @@ -669,6 +772,8 @@ popd ####################################################################### %check +# The testsuite will fail if asneeded is used +export SUSE_ASNEEDED=0 %if %{run_testsuite} # Increase timeout export TIMEOUTFACTOR=16 @@ -682,7 +787,17 @@ popd make -C cc-base check %endif %endif -make -C cc-base check-abi || echo check-abi failed +# File was not created as empty file by patch 101 +touch abilist/libnss_dns.abilist abilist/libnss_db.abilist +# This has to pass on x86 and x86-64 +# Exceptions: +# ARM: There's no check-abi data for arm at all +# s390, s390x, ppc, ppc64: Outdated check-abi data +%ifnarch %arm s390 s390x ppc ppc64 +make -C cc-base check-abi +#%else +#make -C cc-base check-abi || echo check-abi failed +%endif ####################################################################### ### @@ -812,8 +927,10 @@ mkdir -p %{buildroot}%{_includedir}/resolv install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ +%if %{build_html} mkdir -p %{buildroot}%{_datadir}/doc/glibc cp -p manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc +%endif cd manpages; make install_root=%{buildroot} install; cd .. @@ -879,6 +996,11 @@ mkdir -p %{buildroot}/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/lib/systemd/system install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system +%ifarch armv7l +# Provide compatibility link +# XXX ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +%endif + ####################################################################### ### ### ... @@ -951,30 +1073,37 @@ exit 0 %doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* /%{_lib}/ld-%{version}.so -%ifarch ppc s390 mips hppa - /%{_lib}/ld.so.1 + +# Each architecture has a different name for the dynamic linker: +%ifarch %arm +%ifarch armv7l +#XXX /%{_lib}/ld-linux-armhf.so.3 +# Keep compatibility link +/%{_lib}/ld-linux.so.3 %else - %ifarch ia64 - /%{_lib}/ld-linux-ia64.so.2 - %else - %ifarch s390x ppc64 - /%{_lib}/ld64.so.1 - %ifarch s390x - /lib/ld64.so.1 - %endif - %else - %ifarch x86_64 - /%{_lib}/ld-linux-x86-64.so.2 - %else - %ifarch %arm - /%{_lib}/ld-linux.so.3 - %else - /%{_lib}/ld-linux.so.2 - %endif - %endif - %endif - %endif +/%{_lib}/ld-linux.so.2 %endif +%endif +%ifarch ia64 +/%{_lib}/ld-linux-ia64.so.2 +%endif +%ifarch ppc s390 mips hppa +/%{_lib}/ld.so.1 +%endif +%ifarch ppc64 +/%{_lib}/ld64.so.1 +%endif +%ifarch s390x +/lib/ld64.so.1 +/%{_lib}/ld64.so.1 +%endif +%ifarch x86_64 +/%{_lib}/ld-linux-x86-64.so.2 +%endif +%ifarch %ix86 +/%{_lib}/ld-linux.so.2 +%endif + /%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so @@ -1065,7 +1194,7 @@ exit 0 %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig -%dir /var/db +#%dir /var/db %ifarch %ix86 @@ -1131,9 +1260,11 @@ exit 0 %doc %{_infodir}/libc.info-?.gz %doc %{_infodir}/libc.info-??.gz +%if %{build_html} %files html %defattr(-,root,root) %doc %{_prefix}/share/doc/glibc +%endif %files i18ndata %defattr(-,root,root) @@ -1156,6 +1287,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +%if %{build_profile} %files profile %defattr(-,root,root) %{_libdir}/libc_p.a @@ -1170,6 +1302,7 @@ exit 0 %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a %{_libdir}/libdl_p.a +%endif %files utils %defattr(-,root,root) @@ -1189,6 +1322,6 @@ exit 0 %files extra %defattr(-,root,root) %{_bindir}/makedb -/var/db/Makefile +/var/lib/misc/Makefile %changelog diff --git a/glibc2.14-revert-sunrpc-removal.patch b/glibc2.14-revert-sunrpc-removal.patch index fe14b5f..6ce828a 100644 --- a/glibc2.14-revert-sunrpc-removal.patch +++ b/glibc2.14-revert-sunrpc-removal.patch @@ -1,7 +1,7 @@ -Index: glibc-2.14/nis/Makefile +Index: glibc-2.15/nis/Makefile =================================================================== ---- glibc-2.14.orig/nis/Makefile -+++ glibc-2.14/nis/Makefile +--- glibc-2.15.orig/nis/Makefile ++++ glibc-2.15/nis/Makefile @@ -23,9 +23,9 @@ subdir := nis aux := nis_hash @@ -14,11 +14,11 @@ Index: glibc-2.14/nis/Makefile # These are the databases available for the nis (and perhaps later nisplus) # service. This must be a superset of the services in nss. -Index: glibc-2.14/NEWS +Index: glibc-2.15/NEWS =================================================================== ---- glibc-2.14.orig/NEWS -+++ glibc-2.14/NEWS -@@ -20,16 +20,6 @@ Version 2.14 +--- glibc-2.15.orig/NEWS ++++ glibc-2.15/NEWS +@@ -84,16 +84,6 @@ Version 2.14 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792, 12795, 12811, 12813, 12814, 12841 @@ -35,11 +35,11 @@ Index: glibc-2.14/NEWS * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at, syncfs, setns, sendmmsg -Index: glibc-2.14/include/libc-symbols.h +Index: glibc-2.15/include/libc-symbols.h =================================================================== ---- glibc-2.14.orig/include/libc-symbols.h -+++ glibc-2.14/include/libc-symbols.h -@@ -635,7 +635,7 @@ for linking") +--- glibc-2.15.orig/include/libc-symbols.h ++++ glibc-2.15/include/libc-symbols.h +@@ -626,7 +626,7 @@ for linking") # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) # define libc_hidden_def(name) hidden_def (name) # define libc_hidden_weak(name) hidden_weak (name) @@ -48,10 +48,10 @@ Index: glibc-2.14/include/libc-symbols.h # define libc_hidden_ver(local, name) hidden_ver (local, name) # define libc_hidden_data_def(name) hidden_data_def (name) # define libc_hidden_data_weak(name) hidden_data_weak (name) -Index: glibc-2.14/sunrpc/Makefile +Index: glibc-2.15/sunrpc/Makefile =================================================================== ---- glibc-2.14.orig/sunrpc/Makefile -+++ glibc-2.14/sunrpc/Makefile +--- glibc-2.15.orig/sunrpc/Makefile ++++ glibc-2.15/sunrpc/Makefile @@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth des_crypt.h) headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ diff --git a/nscd-avoid-gcc-warning.diff b/nscd-avoid-gcc-warning.diff index 2737722..3c926fb 100644 --- a/nscd-avoid-gcc-warning.diff +++ b/nscd-avoid-gcc-warning.diff @@ -1,6 +1,8 @@ ---- nscd/connections.c -+++ nscd/connections.c -@@ -1717,6 +1717,8 @@ +Index: glibc-2.15/nscd/connections.c +=================================================================== +--- glibc-2.15.orig/nscd/connections.c ++++ glibc-2.15/nscd/connections.c +@@ -1805,6 +1805,8 @@ handle_request: request received (Versio ++nready; } /* NOTREACHED */ diff --git a/nss-db-path.patch b/nss-db-path.patch new file mode 100644 index 0000000..5bff82c --- /dev/null +++ b/nss-db-path.patch @@ -0,0 +1,41 @@ +Use /var/db for nss_db + +Index: glibc-2.15/nss/db-Makefile +=================================================================== +--- glibc-2.15.orig/nss/db-Makefile ++++ glibc-2.15/nss/db-Makefile +@@ -23,7 +23,7 @@ DATABASES = $(wildcard /etc/passwd /etc/ + /etc/rpc /etc/services /etc/shadow /etc/gshadow \ + /etc/netgroup) + +-VAR_DB = /var/db ++VAR_DB = /var/lib/misc + + AWK = awk + MAKEDB = makedb --quiet +Index: glibc-2.15/sysdeps/unix/sysv/linux/paths.h +=================================================================== +--- glibc-2.15.orig/sysdeps/unix/sysv/linux/paths.h ++++ glibc-2.15/sysdeps/unix/sysv/linux/paths.h +@@ -68,7 +68,7 @@ + /* Provide trailing slash, since mostly used for building pathnames. */ + #define _PATH_DEV "/dev/" + #define _PATH_TMP "/tmp/" +-#define _PATH_VARDB "/var/db/" ++#define _PATH_VARDB "/var/lib/misc/" + #define _PATH_VARRUN "/var/run/" + #define _PATH_VARTMP "/var/tmp/" + +Index: glibc-2.15/Makeconfig +=================================================================== +--- glibc-2.15.orig/Makeconfig ++++ glibc-2.15/Makeconfig +@@ -293,7 +293,7 @@ inst_sysconfdir = $(install_root)$(sysco + + # Directory for the database files and Makefile for nss_db. + ifndef vardbdir +-vardbdir = /var/db ++vardbdir = /var/lib/misc + endif + inst_vardbdir = $(install_root)$(vardbdir) + diff --git a/vfprintf-nargs.patch b/vfprintf-nargs.patch index 4152bb6..17d3563 100644 --- a/vfprintf-nargs.patch +++ b/vfprintf-nargs.patch @@ -26,182 +26,176 @@ This version disables the useless test on non-32-bit platforms. * stdio-common/bug-vfprintf-nargs.c: New file. * stdio-common/Makefile (tests): Add nargs overflow test. -diff --git a/stdio-common/Makefile b/stdio-common/Makefile -index a847b28..080badc 100644 ---- a/stdio-common/Makefile -+++ b/stdio-common/Makefile -@@ -59,7 +59,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ - tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ - tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ - bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ -- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 -+ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ -+ bug-vfprintf-nargs - - test-srcs = tst-unbputc tst-printf - -diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c -new file mode 100644 -index 0000000..13c66c0 ---- /dev/null -+++ b/stdio-common/bug-vfprintf-nargs.c -@@ -0,0 +1,78 @@ -+/* Test for vfprintf nargs allocation overflow (BZ #13656). -+ Copyright (C) 2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Kees Cook , 2012. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int -+format_failed (const char *fmt, const char *expected) -+{ -+ char output[80]; -+ -+ printf ("%s : ", fmt); -+ -+ memset (output, 0, sizeof output); -+ /* Having sprintf itself detect a failure is good. */ -+ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 -+ && strcmp (output, expected) != 0) -+ { -+ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); -+ return 1; -+ } -+ puts ("ok"); -+ return 0; -+} -+ -+static int -+do_test (void) -+{ -+ int rc = 0; -+ char buf[64]; -+ -+ /* Regular positionals work. */ -+ if (format_failed ("%1$d", "1") != 0) -+ rc = 1; -+ -+ /* Regular width positionals work. */ -+ if (format_failed ("%1$*2$d", " 1") != 0) -+ rc = 1; -+ -+ /* Positional arguments are constructed via read_int, so nargs can only -+ overflow on 32-bit systems. On 64-bit systems, it will attempt to -+ allocate a giant amount of memory and possibly crash, which is the -+ expected situation. Since the 64-bit behavior is arch-specific, only -+ test this on 32-bit systems. */ -+ if (sizeof (long int) == 4) -+ { -+ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); -+ if (format_failed (buf, "1 %$d") != 0) -+ rc = 1; -+ } -+ -+ return rc; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c -index 863cd5d..022e72b 100644 ---- a/stdio-common/vfprintf.c -+++ b/stdio-common/vfprintf.c -@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) - 0 if unknown. */ - int readonly_format = 0; - -+ /* For the argument descriptions, which may be allocated on the heap. */ -+ void *args_malloced = NULL; -+ - /* This table maps a character into a number representing a - class. In each step there is a destination label for each - class. */ -@@ -1647,9 +1650,10 @@ do_positional: - determine the size of the array needed to store the argument - attributes. */ - size_t nargs = 0; -- int *args_type; -- union printf_arg *args_value = NULL; -+ size_t bytes_per_arg; -+ union printf_arg *args_value; - int *args_size; -+ int *args_type; - - /* Positional parameters refer to arguments directly. This could - also determine the maximum number of arguments. Track the -@@ -1698,13 +1702,33 @@ do_positional: - - /* Determine the number of arguments the format string consumes. */ - nargs = MAX (nargs, max_ref_arg); -+ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) -+ + sizeof (*args_type); -+ -+ /* Check for potential integer overflow. */ -+ if (nargs > SIZE_MAX / bytes_per_arg) -+ { -+ done = -1; -+ goto all_done; -+ } - - /* Allocate memory for the argument descriptions. */ -- args_type = alloca (nargs * sizeof (int)); -+ if (__libc_use_alloca (nargs * bytes_per_arg)) -+ args_value = alloca (nargs * bytes_per_arg); -+ else -+ { -+ args_value = args_malloced = malloc (nargs * bytes_per_arg); -+ if (args_value == NULL) -+ { -+ done = -1; -+ goto all_done; -+ } -+ } -+ -+ args_size = &args_value[nargs].pa_int; -+ args_type = &args_size[nargs]; - memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', -- nargs * sizeof (int)); -- args_value = alloca (nargs * sizeof (union printf_arg)); -- args_size = alloca (nargs * sizeof (int)); -+ nargs * sizeof (*args_type)); - - /* XXX Could do sanity check here: If any element in ARGS_TYPE is - still zero after this loop, format is invalid. For now we -@@ -1973,8 +1997,8 @@ do_positional: - } - - all_done: -- if (__builtin_expect (workstart != NULL, 0)) -- free (workstart); -+ free (args_malloced); -+ free (workstart); - /* Unlock the stream. */ - _IO_funlockfile (s); - _IO_cleanup_region_end (0); --- -1.7.5.4 - --- -Kees Cook @outflux.net +Index: glibc-2.15/stdio-common/Makefile +=================================================================== +--- glibc-2.15.orig/stdio-common/Makefile ++++ glibc-2.15/stdio-common/Makefile +@@ -60,7 +60,8 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 ++ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ ++ bug-vfprintf-nargs + + test-srcs = tst-unbputc tst-printf + +Index: glibc-2.15/stdio-common/bug-vfprintf-nargs.c +=================================================================== +--- /dev/null ++++ glibc-2.15/stdio-common/bug-vfprintf-nargs.c +@@ -0,0 +1,78 @@ ++/* Test for vfprintf nargs allocation overflow (BZ #13656). ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Kees Cook , 2012. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++format_failed (const char *fmt, const char *expected) ++{ ++ char output[80]; ++ ++ printf ("%s : ", fmt); ++ ++ memset (output, 0, sizeof output); ++ /* Having sprintf itself detect a failure is good. */ ++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 ++ && strcmp (output, expected) != 0) ++ { ++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); ++ return 1; ++ } ++ puts ("ok"); ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ int rc = 0; ++ char buf[64]; ++ ++ /* Regular positionals work. */ ++ if (format_failed ("%1$d", "1") != 0) ++ rc = 1; ++ ++ /* Regular width positionals work. */ ++ if (format_failed ("%1$*2$d", " 1") != 0) ++ rc = 1; ++ ++ /* Positional arguments are constructed via read_int, so nargs can only ++ overflow on 32-bit systems. On 64-bit systems, it will attempt to ++ allocate a giant amount of memory and possibly crash, which is the ++ expected situation. Since the 64-bit behavior is arch-specific, only ++ test this on 32-bit systems. */ ++ if (sizeof (long int) == 4) ++ { ++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); ++ if (format_failed (buf, "1 %$d") != 0) ++ rc = 1; ++ } ++ ++ return rc; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.15/stdio-common/vfprintf.c +=================================================================== +--- glibc-2.15.orig/stdio-common/vfprintf.c ++++ glibc-2.15/stdio-common/vfprintf.c +@@ -236,6 +236,9 @@ vfprintf (FILE *s, const CHAR_T *format, + 0 if unknown. */ + int readonly_format = 0; + ++ /* For the argument descriptions, which may be allocated on the heap. */ ++ void *args_malloced = NULL; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1648,9 +1651,10 @@ do_positional: + determine the size of the array needed to store the argument + attributes. */ + size_t nargs = 0; +- int *args_type; +- union printf_arg *args_value = NULL; ++ size_t bytes_per_arg; ++ union printf_arg *args_value; + int *args_size; ++ int *args_type; + + /* Positional parameters refer to arguments directly. This could + also determine the maximum number of arguments. Track the +@@ -1699,13 +1703,33 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type); ++ ++ /* Check for potential integer overflow. */ ++ if (nargs > SIZE_MAX / bytes_per_arg) ++ { ++ done = -1; ++ goto all_done; ++ } + + /* Allocate memory for the argument descriptions. */ +- args_type = alloca (nargs * sizeof (int)); ++ if (__libc_use_alloca (nargs * bytes_per_arg)) ++ args_value = alloca (nargs * bytes_per_arg); ++ else ++ { ++ args_value = args_malloced = malloc (nargs * bytes_per_arg); ++ if (args_value == NULL) ++ { ++ done = -1; ++ goto all_done; ++ } ++ } ++ ++ args_size = &args_value[nargs].pa_int; ++ args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', +- nargs * sizeof (int)); +- args_value = alloca (nargs * sizeof (union printf_arg)); +- args_size = alloca (nargs * sizeof (int)); ++ nargs * sizeof (*args_type)); + + /* XXX Could do sanity check here: If any element in ARGS_TYPE is + still zero after this loop, format is invalid. For now we +@@ -1974,8 +1998,8 @@ do_positional: + } + + all_done: +- if (__builtin_expect (workstart != NULL, 0)) +- free (workstart); ++ free (args_malloced); ++ free (workstart); + /* Unlock the stream. */ + _IO_funlockfile (s); + _IO_cleanup_region_end (0); diff --git a/x86-cpuid-level2.patch b/x86-cpuid-level2.patch index a6d9c10..39586f3 100644 --- a/x86-cpuid-level2.patch +++ b/x86-cpuid-level2.patch @@ -8,9 +8,11 @@ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=584748 sysdeps/x86_64/cacheinfo.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) ---- a/sysdeps/x86_64/cacheinfo.c -+++ b/sysdeps/x86_64/cacheinfo.c -@@ -254,7 +254,13 @@ +Index: glibc-2.15/sysdeps/x86_64/cacheinfo.c +=================================================================== +--- glibc-2.15.orig/sysdeps/x86_64/cacheinfo.c ++++ glibc-2.15/sysdeps/x86_64/cacheinfo.c +@@ -305,7 +305,13 @@ intel_check_word (int name, unsigned int static long int __attribute__ ((noinline)) handle_intel (int name, unsigned int maxidx) { From 197ba6a3b67f34e17cbec9df5f5b9b92f49d41bb1a79455f4dda1a79b76a8307 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 23 Apr 2012 14:10:37 +0000 Subject: [PATCH 101/204] Accepting request 114966 from Base:System Fix building for PowerPC and GCC 4.7 (forwarded request 114965 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/114966 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=106 --- armhf-ld-so.patch | 24 + getaddrinfo-ipv6-sanity.diff | 6 +- glibc-2.14-fix-ctors.patch | 30 - glibc-2.16-fix-check-localplt.patch | 10 +- glibc-2.16-powerpc-initfini.patch | 795 +++++++++++++++++++++++ glibc-2.3.2.no_archive.diff | 6 +- glibc-2.3.3-nscd-db-path.diff | 8 +- glibc-2.3.90-bindresvport.blacklist.diff | 6 +- glibc-2.3.90-langpackdir.diff | 6 +- glibc-2.3.locales.diff.bz2 | 4 +- glibc-2.4.90-nscd.diff | 38 -- glibc-2.4.90-revert-only-euro.diff | 6 +- glibc-2.8-getconf.diff | 6 +- glibc-cpusetsize.diff | 12 +- glibc-elf-localscope.diff | 11 +- glibc-fini-unwind.diff | 6 +- glibc-fix-lookup-crash.patch | 19 - glibc-gai-private4.diff | 6 +- glibc-nodate.patch | 20 + glibc-nscd-hconf.diff | 20 +- glibc-nscd.conf.patch | 19 + glibc-resolv-mdnshint.diff | 10 +- glibc-resolv-reload.diff | 12 +- glibc-testsuite.patch | 6 +- glibc-uio-cell.diff | 5 - glibc-version.diff | 16 +- glibc.changes | 32 + glibc.spec | 331 +++++----- 28 files changed, 1141 insertions(+), 329 deletions(-) delete mode 100644 glibc-2.14-fix-ctors.patch create mode 100644 glibc-2.16-powerpc-initfini.patch delete mode 100644 glibc-2.4.90-nscd.diff delete mode 100644 glibc-fix-lookup-crash.patch create mode 100644 glibc-nscd.conf.patch diff --git a/armhf-ld-so.patch b/armhf-ld-so.patch index 541a9ec..ce66dfb 100644 --- a/armhf-ld-so.patch +++ b/armhf-ld-so.patch @@ -1,3 +1,9 @@ +For backward compatibility with armhf binaries built with the +old linker SONAME, we need to fake out the linker to believe +the new is the old, until such a point as everything is rebuilt. + +Patch for elf/dl-load.c taken from Debian. + diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions index 491dd0a..5464959 100644 --- a/glibc-ports-2.15/sysdeps/arm/shlib-versions @@ -8,3 +14,21 @@ index 491dd0a..5464959 100644 -arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 +arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 arm.*-.*-linux.* ld=ld-linux.so.2 + +--- glibc-2.15/elf/dl-load.c.~1~ 2011-12-30 23:13:56.000000000 +0100 ++++ glibc-2.15/elf/dl-load.c 2012-04-18 15:05:33.203485389 +0200 +@@ -2082,10 +2082,13 @@ + soname = ((const char *) D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[DT_SONAME]->d_un.d_val); + if (strcmp (name, soname) != 0) ++#ifdef __arm__ ++ if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3")) ++#endif + continue; + + /* We have a match on a new name -- cache it. */ +- add_name_to_object (l, soname); ++ add_name_to_object (l, name); + l->l_soname_added = 1; + } + diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index 2e3a350..87653bb 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -1,9 +1,9 @@ References: bnc#361697 -Index: sysdeps/posix/getaddrinfo.c +Index: glibc-2.15/sysdeps/posix/getaddrinfo.c =================================================================== ---- sysdeps/posix/getaddrinfo.c.orig -+++ sysdeps/posix/getaddrinfo.c +--- glibc-2.15.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.15/sysdeps/posix/getaddrinfo.c @@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas static int gaih_inet (const char *name, const struct gaih_service *service, diff --git a/glibc-2.14-fix-ctors.patch b/glibc-2.14-fix-ctors.patch deleted file mode 100644 index 33867e0..0000000 --- a/glibc-2.14-fix-ctors.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: glibc-2.14/elf/soinit.c -=================================================================== ---- glibc-2.14.orig/elf/soinit.c -+++ glibc-2.14/elf/soinit.c -@@ -26,7 +26,11 @@ void - __libc_global_ctors (void) - { - /* Call constructor functions. */ -- run_hooks (__CTOR_LIST__); -+ void (**tem)(); -+ asm ("" : "=r" (tem) : "0" (__CTOR_LIST__)); -+ /* Call destructor functions. */ -+ -+ run_hooks (tem); - } - - -@@ -36,7 +40,11 @@ void - __libc_fini (void) - { - /* Call destructor functions. */ -- run_hooks (__DTOR_LIST__); -+ void (**tem)(); -+ asm ("" : "=r" (tem) : "0" (__DTOR_LIST__)); -+ /* Call destructor functions. */ -+ -+ run_hooks (tem); - } - - void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) diff --git a/glibc-2.16-fix-check-localplt.patch b/glibc-2.16-fix-check-localplt.patch index 187cf9f..d01b106 100644 --- a/glibc-2.16-fix-check-localplt.patch +++ b/glibc-2.16-fix-check-localplt.patch @@ -11,10 +11,10 @@ Date: Fri Feb 10 21:05:54 2012 +0100 * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv) Invoke __feraiseexcept instead of feraiseexcept. -diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c -index 70f9ee2..6e2ce35 100644 ---- a/sysdeps/i386/fpu/feupdateenv.c -+++ b/sysdeps/i386/fpu/feupdateenv.c +Index: glibc-2.15/sysdeps/i386/fpu/feupdateenv.c +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/fpu/feupdateenv.c ++++ glibc-2.15/sysdeps/i386/fpu/feupdateenv.c @@ -1,5 +1,5 @@ /* Install given floating-point environment and raise exceptions. - Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc. @@ -22,7 +22,7 @@ index 70f9ee2..6e2ce35 100644 This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. -@@ -44,7 +44,7 @@ __feupdateenv (const fenv_t *envp) +@@ -45,7 +45,7 @@ __feupdateenv (const fenv_t *envp) /* Raise the saved exception. Incidently for us the implementation defined format of the values in objects of type fexcept_t is the same as the ones specified using the FE_* constants. */ diff --git a/glibc-2.16-powerpc-initfini.patch b/glibc-2.16-powerpc-initfini.patch new file mode 100644 index 0000000..4153398 --- /dev/null +++ b/glibc-2.16-powerpc-initfini.patch @@ -0,0 +1,795 @@ +commit 3add8e1353d62d77fdd9b4ca363cdfe7006b0efb +Author: Joseph Myers +Date: Wed Feb 8 01:45:26 2012 +0000 + + Support crti.S and crtn.S provided directly by architectures. + +2012-02-08 Joseph Myers + + Support crti.S and crtn.S provided directly by architectures. + * csu/Makefile [crti.S in sysdirs] (generated): Do not append. + [crti.S in sysdirs] (omit-deps): Likewise. + [crti.S in sysdirs] (CFLAGS-initfini.s): Do not define variable. + [crti.S in sysdirs] ($(crtstuff:%=$(objpfx)%.o)): Disable rule. + [crti.S in sysdirs] ($(objpfx)initfini.s): Likewise. + [crti.S in sysdirs] ($(objpfx)crti.S): Likewise. + [crti.S in sysdirs] ($(objpfx)crtn.S): Likewise. + [crti.S in sysdirs] ($(patsubst %,$(objpfx)crt%.o,i n)): Likewise. + [crti.S in sysdirs] ($(objpfx)defs.h): Likewise. + [crti.S in sysdirs] (initfini.c): Remove vpath directive. + * sysdeps/i386/crti.S, sysdeps/i386/crtn.S: New files, based on + compiler output for sysdeps/generic/initfini.c. + * sysdeps/i386/elf/Makefile: Remove file. + * sysdeps/i386/Makefile (CFLAGS-initfini.s): Remove variable. + +Index: glibc-2.15/csu/Makefile +=================================================================== +--- glibc-2.15.orig/csu/Makefile ++++ glibc-2.15/csu/Makefile +@@ -75,10 +75,6 @@ before-compile += $(objpfx)abi-tag.h + generated += abi-tag.h + endif + +-ifeq ($(have-initfini),yes) +- +-CPPFLAGS += -DHAVE_INITFINI +- + # These are the special initializer/finalizer files. They are always the + # first and last file in the link. crti.o ... crtn.o define the global + # "functions" _init and _fini to run the .init and .fini sections. +@@ -86,6 +82,13 @@ crtstuff = crti crtn + + install-lib += $(crtstuff:=.o) + extra-objs += $(crtstuff:=.o) ++ ++# Conditionals on the existence of a sysdeps version of crti.S are ++# temporary until all targets either have such a file or have been ++# removed, after which the old approach of postprocessing compiler ++# output will be removed. ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) ++ + generated += $(crtstuff:=.S) initfini.s defs.h + omit-deps += $(crtstuff) + +Index: glibc-2.15/nptl/Makefile +=================================================================== +--- glibc-2.15.orig/nptl/Makefile ++++ glibc-2.15/nptl/Makefile +@@ -335,15 +335,22 @@ ifneq (,$(patsubst .,,$(multidir))) + generated-dirs := $(firstword $(subst /, , $(multidir))) + crti-objs += $(multidir)/crti.o + crtn-objs += $(multidir)/crtn.o ++# Conditionals on the existence of a sysdeps version of crti.S are ++# temporary until all targets either have such a file or have been ++# removed, after which the old approach of postprocessing compiler ++# output will be removed. ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) + omit-deps += $(multidir)/crti $(multidir)/crtn ++endif + $(objpfx)$(multidir): + mkdir -p $@ + endif + extra-objs += $(crti-objs) $(crtn-objs) ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) + omit-deps += crti crtn +- + CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables + endif ++endif + + CFLAGS-flockfile.c = -D_IO_MTSAFE_IO + CFLAGS-ftrylockfile.c = -D_IO_MTSAFE_IO +@@ -543,15 +550,24 @@ $(addprefix $(objpfx),$(tests) $(test-sr + endif + + ifeq ($(build-shared),yes) ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) + vpath pt-initfini.c $(sysdirs) + + $(objpfx)pt-initfini.s: pt-initfini.c + $(compile.c) -S $(CFLAGS-pt-initfini.s) -finhibit-size-directive \ + $(patsubst -f%,-fno-%,$(exceptions)) -o $@ ++endif + + $(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0 + $(make-test-out) 2>&1 | cmp - tst-cleanup0.expect > $@ + ++ifneq (,$(wildcard $(sysdirs:%=%/crti.S))) ++ ++$(objpfx)crti.o: $(objpfx)pt-crti.o ++ ln -f $< $@ ++ ++else ++ + # We only have one kind of startup code files. Static binaries and + # shared libraries are build using the PIC version. + $(objpfx)crti.S: $(objpfx)pt-initfini.s +@@ -573,6 +589,8 @@ $(objpfx)crti.o: $(objpfx)crti.S $(objpf + $(objpfx)crtn.o: $(objpfx)crtn.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + ++endif ++ + ifneq ($(multidir),.) + $(objpfx)$(multidir)/crti.o: $(objpfx)crti.o $(objpfx)$(multidir)/ + ln -f $< $@ +Index: glibc-2.15/nptl/pt-crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/nptl/pt-crti.S +@@ -0,0 +1,44 @@ ++/* Special .init and .fini section support for libpthread. ++ Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Arrange for __pthread_initialize_minimal_internal to be called at ++ libpthread startup, instead of conditionally calling ++ __gmon_start__. */ ++ ++#define PREINIT_FUNCTION __pthread_initialize_minimal_internal ++#define PREINIT_FUNCTION_WEAK 0 ++ ++#include +Index: glibc-2.15/sysdeps/i386/Makefile +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/Makefile ++++ glibc-2.15/sysdeps/i386/Makefile +@@ -5,12 +5,6 @@ asm-CPPFLAGS += -DGAS_SYNTAX + # The i386 `long double' is a distinct type we support. + long-double-fcts = yes + +-ifeq ($(subdir),csu) +-# On i686 we must avoid generating the trampoline functions generated +-# to get the GOT pointer. +-CFLAGS-initfini.s += -march=i386 -mtune=i386 +-endif +- + ifeq ($(subdir),gmon) + sysdep_routines += i386-mcount + endif +Index: glibc-2.15/sysdeps/i386/crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/i386/crti.S +@@ -0,0 +1,85 @@ ++/* Special .init and .fini section support for x86. ++ Copyright (C) 1995-2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crti.S puts a function prologue at the beginning of the .init and ++ .fini sections and defines global symbols for those addresses, so ++ they can be called as functions. The symbols _init and _fini are ++ magic and cause the linker to emit DT_INIT and DT_FINI. */ ++ ++#include ++#include ++ ++#ifndef PREINIT_FUNCTION ++# define PREINIT_FUNCTION __gmon_start__ ++#endif ++ ++#ifndef PREINIT_FUNCTION_WEAK ++# define PREINIT_FUNCTION_WEAK 1 ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ weak_extern (PREINIT_FUNCTION) ++#else ++ .hidden PREINIT_FUNCTION ++#endif ++ ++ .section .init,"ax",@progbits ++ .p2align 2 ++ .globl _init ++ .type _init, @function ++_init: ++ pushl %ebx ++ /* Maintain 16-byte stack alignment for called functions. */ ++ subl $8, %esp ++ LOAD_PIC_REG (bx) ++#if PREINIT_FUNCTION_WEAK ++ movl PREINIT_FUNCTION@GOT(%ebx), %eax ++ testl %eax, %eax ++ je .Lno_weak_fn ++ call PREINIT_FUNCTION@PLT ++.Lno_weak_fn: ++#else ++ call PREINIT_FUNCTION ++#endif ++ ++ .section .fini,"ax",@progbits ++ .p2align 2 ++ .globl _fini ++ .type _fini, @function ++_fini: ++ pushl %ebx ++ subl $8, %esp ++ LOAD_PIC_REG (bx) +Index: glibc-2.15/sysdeps/i386/crtn.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/i386/crtn.S +@@ -0,0 +1,48 @@ ++/* Special .init and .fini section support for x86. ++ Copyright (C) 1995-2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crtn.S puts function epilogues in the .init and .fini sections ++ corresponding to the prologues in crti.S. */ ++ ++ .section .init,"ax",@progbits ++ addl $8, %esp ++ popl %ebx ++ ret ++ ++ .section .fini,"ax",@progbits ++ addl $8, %esp ++ popl %ebx ++ ret +Index: glibc-2.15/sysdeps/i386/elf/Makefile +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/elf/Makefile ++++ /dev/null +@@ -1,4 +0,0 @@ +-ifeq ($(subdir),csu) +-# Turn off -fasynchronous-unwind-tables +-CFLAGS-initfini.s += -fno-asynchronous-unwind-tables +-endif +Index: glibc-2.15/Makeconfig +=================================================================== +--- glibc-2.15.orig/Makeconfig ++++ glibc-2.15/Makeconfig +@@ -394,11 +394,6 @@ ifndef asm-CPPFLAGS + asm-CPPFLAGS = + endif + +-# ELF always supports init/fini sections +-ifeq ($(elf),yes) +-have-initfini = yes +-endif +- + ifeq ($(have-as-needed),yes) + as-needed := -Wl,--as-needed + no-as-needed := -Wl,--no-as-needed +@@ -412,14 +407,8 @@ no-whole-archive = -Wl,--no-whole-archiv + whole-archive = -Wl,--whole-archive + + # Installed name of the startup code. +-ifneq ($(have-initfini),yes) +-# When not having init/fini, there is just one startfile, called crt0.o. +-start-installed-name = crt0.o +-else +-# On systems having init/fini, crt0.o is called crt1.o, and there are +-# some additional bizarre files. ++# The ELF convention is that the startfile is called crt1.o + start-installed-name = crt1.o +-endif + # On systems that do not need a special startfile for statically linked + # binaries, simply set it to the normal name. + ifndef static-start-installed-name +Index: glibc-2.15/config.h.in +=================================================================== +--- glibc-2.15.orig/config.h.in ++++ glibc-2.15/config.h.in +@@ -42,9 +42,6 @@ + assembler instructions per line. Default is `;' */ + #undef ASM_LINE_SEP + +-/* Define if not using ELF, but `.init' and `.fini' sections are available. */ +-#undef HAVE_INITFINI +- + /* Define if __attribute__((section("foo"))) puts quotes around foo. */ + #undef HAVE_SECTION_QUOTES + +Index: glibc-2.15/config.make.in +=================================================================== +--- glibc-2.15.orig/config.make.in ++++ glibc-2.15/config.make.in +@@ -48,11 +48,9 @@ all-warnings = @all_warnings@ + elf = @elf@ + have-z-combreloc = @libc_cv_z_combreloc@ + have-z-execstack = @libc_cv_z_execstack@ +-have-initfini = @libc_cv_have_initfini@ + have-Bgroup = @libc_cv_Bgroup@ + have-as-needed = @libc_cv_as_needed@ + libgcc_s_suffix = @libc_cv_libgcc_s_suffix@ +-need-nopic-initfini = @nopic_initfini@ + with-fp = @with_fp@ + old-glibc-headers = @old_glibc_headers@ + unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ +Index: glibc-2.15/configure +=================================================================== +--- glibc-2.15.orig/configure ++++ glibc-2.15/configure +@@ -610,7 +610,6 @@ RELEASE + VERSION + mach_interface_list + DEFINES +-nopic_initfini + static_nss + bounded + omitfp +@@ -7995,7 +7994,6 @@ $as_echo "$libc_cv_pic_default" >&6; } + + + +- + + + +Index: glibc-2.15/configure.in +=================================================================== +--- glibc-2.15.orig/configure.in ++++ glibc-2.15/configure.in +@@ -2377,7 +2377,6 @@ AC_SUBST(profile) + AC_SUBST(omitfp) + AC_SUBST(bounded) + AC_SUBST(static_nss) +-AC_SUBST(nopic_initfini) + + AC_SUBST(DEFINES) + +Index: glibc-2.15/csu/gmon-start.c +=================================================================== +--- glibc-2.15.orig/csu/gmon-start.c ++++ glibc-2.15/csu/gmon-start.c +@@ -1,5 +1,5 @@ + /* Code to enable profiling at program startup. +- Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. ++ Copyright (C) 1995,1996,1997,2000,2001,2002,2012 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 +@@ -43,23 +43,14 @@ extern char etext[]; + # endif + #endif + +-#ifndef HAVE_INITFINI +-/* This function gets called at startup by the normal constructor +- mechanism. We link this file together with start.o to produce gcrt1.o, +- so this constructor will be first in the list. */ +- +-extern void __gmon_start__ (void) __attribute__ ((constructor)); +-#else +-/* In ELF and COFF, we cannot use the normal constructor mechanism to call ++/* We cannot use the normal constructor mechanism to call + __gmon_start__ because gcrt1.o appears before crtbegin.o in the link. +- Instead crti.o calls it specially (see initfini.c). */ ++ Instead crti.o calls it specially. */ + extern void __gmon_start__ (void); +-#endif + + void + __gmon_start__ (void) + { +-#ifdef HAVE_INITFINI + /* Protect from being called more than once. Since crti.o is linked + into every shared library, each of their init functions will call us. */ + static int called; +@@ -68,7 +59,6 @@ __gmon_start__ (void) + return; + + called = 1; +-#endif + + /* Start keeping profiling records. */ + __monstartup ((u_long) TEXT_START, (u_long) &etext); +Index: glibc-2.15/sysdeps/powerpc/powerpc32/crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc32/crti.S +@@ -0,0 +1,90 @@ ++/* Special .init and .fini section support for PowerPC. ++ Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crti.S puts a function prologue at the beginning of the .init and ++ .fini sections and defines global symbols for those addresses, so ++ they can be called as functions. The symbols _init and _fini are ++ magic and cause the linker to emit DT_INIT and DT_FINI. */ ++ ++#include ++#include ++ ++#ifndef PREINIT_FUNCTION ++# define PREINIT_FUNCTION __gmon_start__ ++#endif ++ ++#ifndef PREINIT_FUNCTION_WEAK ++# define PREINIT_FUNCTION_WEAK 1 ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ weak_extern (PREINIT_FUNCTION) ++#else ++ .hidden PREINIT_FUNCTION ++#endif ++ ++ .section .init,"ax",@progbits ++ .align 2 ++ .globl _init ++ .type _init, @function ++_init: ++ stwu r1, -16(r1) ++ mflr r0 ++ stw r0, 20(r1) ++ stw r30, 8(r1) ++ SETUP_GOT_ACCESS (r30, .Lgot_label_i) ++ addis r30, r30, _GLOBAL_OFFSET_TABLE_-.Lgot_label_i@ha ++ addi r30, r30, _GLOBAL_OFFSET_TABLE_-.Lgot_label_i@l ++#if PREINIT_FUNCTION_WEAK ++ lwz r0, PREINIT_FUNCTION@got(r30) ++ cmpwi cr7, r0, 0 ++ beq+ cr7, 1f ++ bl PREINIT_FUNCTION@plt ++1: ++#else ++ bl PREINIT_FUNCTION@local ++#endif ++ ++ .section .fini,"ax",@progbits ++ .align 2 ++ .globl _fini ++ .type _fini, @function ++_fini: ++ stwu r1, -16(r1) ++ mflr r0 ++ stw r0, 20(r1) ++ stw r30, 8(r1) ++ SETUP_GOT_ACCESS (r30, .Lgot_label_f) +Index: glibc-2.15/sysdeps/powerpc/powerpc32/crtn.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc32/crtn.S +@@ -0,0 +1,54 @@ ++/* Special .init and .fini section support for PowerPC. ++ Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crtn.S puts function epilogues in the .init and .fini sections ++ corresponding to the prologues in crti.S. */ ++ ++#include ++ ++ .section .init,"ax",@progbits ++ lwz r0, 20(r1) ++ mtlr r0 ++ lwz r30, 8(r1) ++ addi r1, r1, 16 ++ blr ++ ++ .section .fini,"ax",@progbits ++ lwz r0, 20(r1) ++ mtlr r0 ++ lwz r30, 8(r1) ++ addi r1, r1, 16 ++ blr +Index: glibc-2.15/sysdeps/powerpc/powerpc64/crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc64/crti.S +@@ -0,0 +1,107 @@ ++/* Special .init and .fini section support for PowerPC64. ++ Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crti.S puts a function prologue at the beginning of the .init and ++ .fini sections and defines global symbols for those addresses, so ++ they can be called as functions. The symbols _init and _fini are ++ magic and cause the linker to emit DT_INIT and DT_FINI. */ ++ ++#include ++#include ++ ++#ifndef PREINIT_FUNCTION ++# define PREINIT_FUNCTION __gmon_start__ ++#endif ++ ++#ifndef PREINIT_FUNCTION_WEAK ++# define PREINIT_FUNCTION_WEAK 1 ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ weak_extern (PREINIT_FUNCTION) ++#else ++ .hidden PREINIT_FUNCTION ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ .section ".toc", "aw" ++.LC0: ++ .tc PREINIT_FUNCTION[TC], PREINIT_FUNCTION ++#endif ++ .type BODY_LABEL (_init), @function ++ .globl _init ++ .section ".opd", "aw" ++ .align 3 ++_init: OPD_ENT (_init) ++#ifdef HAVE_ASM_GLOBAL_DOT_NAME ++ .globl BODY_LABEL (_init) ++ .size _init, 24 ++#else ++ .type _init, @function ++#endif ++ .section ".init", "ax", @progbits ++ .align ALIGNARG (2) ++BODY_LABEL (_init): ++ mflr 0 ++ std 0, 16(r1) ++ stdu r1, -112(r1) ++#if PREINIT_FUNCTION_WEAK ++ addis r9, r2, .LC0@toc@ha ++ ld r0, .LC0@toc@l(r9) ++ cmpdi cr7, r0, 0 ++ beq+ cr7, 1f ++#endif ++ bl JUMPTARGET (PREINIT_FUNCTION) ++ nop ++1: ++ ++ .type BODY_LABEL (_fini), @function ++ .globl _fini ++ .section ".opd", "aw" ++ .align 3 ++_fini: OPD_ENT (_fini) ++#ifdef HAVE_ASM_GLOBAL_DOT_NAME ++ .globl BODY_LABEL (_fini) ++ .size _fini, 24 ++#else ++ .type _fini, @function ++#endif ++ .section ".fini", "ax", @progbits ++ .align ALIGNARG (2) ++BODY_LABEL (_fini): ++ mflr 0 ++ std 0, 16(r1) ++ stdu r1, -112(r1) +Index: glibc-2.15/sysdeps/powerpc/powerpc64/crtn.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc64/crtn.S +@@ -0,0 +1,52 @@ ++/* Special .init and .fini section support for PowerPC64. ++ Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crtn.S puts function epilogues in the .init and .fini sections ++ corresponding to the prologues in crti.S. */ ++ ++#include ++ ++ .section .init,"ax",@progbits ++ addi r1, r1, 112 ++ ld r0, 16(r1) ++ mtlr r0 ++ blr ++ ++ .section .fini,"ax",@progbits ++ addi r1, r1, 112 ++ ld r0, 16(r1) ++ mtlr r0 ++ blr diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff index da3351d..d0a6eb7 100644 --- a/glibc-2.3.2.no_archive.diff +++ b/glibc-2.3.2.no_archive.diff @@ -3,10 +3,10 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - Make --no-archive default for localedef -Index: locale/programs/localedef.c +Index: glibc-2.15/locale/programs/localedef.c =================================================================== ---- locale/programs/localedef.c.orig -+++ locale/programs/localedef.c +--- glibc-2.15.orig/locale/programs/localedef.c ++++ glibc-2.15/locale/programs/localedef.c @@ -82,7 +82,7 @@ const char *alias_file; static struct localedef_t *locales; diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index 8d3240d..aefd49d 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -2,12 +2,10 @@ * nscd/nscd.h: Move persistent storage back to /var/run/nscd -Index: nscd/nscd.h +Index: glibc-2.15/nscd/nscd.h =================================================================== -diff --git a/nscd/nscd.h b/nscd/nscd.h -index fdaf01b..23b6a94 100644 ---- nscd/nscd.h -+++ nscd/nscd.h +--- glibc-2.15.orig/nscd/nscd.h ++++ glibc-2.15/nscd/nscd.h @@ -113,11 +113,11 @@ struct database_dyn diff --git a/glibc-2.3.90-bindresvport.blacklist.diff b/glibc-2.3.90-bindresvport.blacklist.diff index 1eb65f3..65adc21 100644 --- a/glibc-2.3.90-bindresvport.blacklist.diff +++ b/glibc-2.3.90-bindresvport.blacklist.diff @@ -1,7 +1,7 @@ -Index: sunrpc/bindrsvprt.c +Index: glibc-2.15/sunrpc/bindrsvprt.c =================================================================== ---- sunrpc/bindrsvprt.c.orig -+++ sunrpc/bindrsvprt.c +--- glibc-2.15.orig/sunrpc/bindrsvprt.c ++++ glibc-2.15/sunrpc/bindrsvprt.c @@ -29,28 +29,108 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index 013b862..e9b5112 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -1,7 +1,7 @@ -Index: intl/loadmsgcat.c +Index: glibc-2.15/intl/loadmsgcat.c =================================================================== ---- intl/loadmsgcat.c.orig -+++ intl/loadmsgcat.c +--- glibc-2.15.orig/intl/loadmsgcat.c ++++ glibc-2.15/intl/loadmsgcat.c @@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind if (domain_file->filename == NULL) goto out; diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 43f21af..6fad673 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23c4a947e7dee14c05556bc30c1dded5458a7b9ba8b306cb7bce93dd57fb9b96 -size 329206 +oid sha256:fe966fc1d1082da024fda16d4ad1e8e2b73f30d646701d24a27882ec653b5807 +size 329247 diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff deleted file mode 100644 index 1d13214..0000000 --- a/glibc-2.4.90-nscd.diff +++ /dev/null @@ -1,38 +0,0 @@ -Index: nscd/nscd.conf -=================================================================== ---- nscd/nscd.conf.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/nscd.conf 2010-02-14 14:58:08.000000000 +0100 -@@ -61,11 +61,11 @@ - auto-propagate group yes - - enable-cache hosts yes -- positive-time-to-live hosts 3600 -- negative-time-to-live hosts 20 -+ positive-time-to-live hosts 600 -+ negative-time-to-live hosts 0 - suggested-size hosts 211 - check-files hosts yes -- persistent hosts yes -+ persistent hosts no - shared hosts yes - max-db-size hosts 33554432 - -Index: nscd/nscd_stat.c -=================================================================== ---- nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/nscd_stat.c 2010-02-14 15:02:41.000000000 +0100 -@@ -37,8 +37,13 @@ - #endif /* HAVE_SELINUX */ - - --/* We use this to make sure the receiver is the same. */ -+/* We use this to make sure the receiver is the same. Capture mtime -+ of this file if possible. */ -+#if defined(__TIMESTAMP__) -+static const char compilation[21] = __TIMESTAMP__; -+#else - static const char compilation[21] = __DATE__ " " __TIME__; -+#endif - - /* Statistic data for one database. */ - struct dbstat diff --git a/glibc-2.4.90-revert-only-euro.diff b/glibc-2.4.90-revert-only-euro.diff index 13dd342..45a2284 100644 --- a/glibc-2.4.90-revert-only-euro.diff +++ b/glibc-2.4.90-revert-only-euro.diff @@ -1,7 +1,7 @@ -Index: locale/iso-4217.def +Index: glibc-2.15/locale/iso-4217.def =================================================================== ---- locale/iso-4217.def.orig -+++ locale/iso-4217.def +--- glibc-2.15.orig/locale/iso-4217.def ++++ glibc-2.15/locale/iso-4217.def @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff index f778bf3..20789c7 100644 --- a/glibc-2.8-getconf.diff +++ b/glibc-2.8-getconf.diff @@ -2,10 +2,10 @@ This is required for too noisy rpmlint: glibc.i586: E: hardlink-across-partition (Badness: 10000) /usr/lib/getconf/POSIX_V7_ILP32_OFFBIG /usr/bin/getconf -Index: posix/Makefile +Index: glibc-2.15/posix/Makefile =================================================================== ---- posix/Makefile.orig -+++ posix/Makefile +--- glibc-2.15.orig/posix/Makefile ++++ glibc-2.15/posix/Makefile @@ -316,8 +316,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi $(addprefix $(..)./scripts/mkinstalldirs ,\ $(filter-out $(wildcard $@),$@)) diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff index 4049a3f..a540bc9 100644 --- a/glibc-cpusetsize.diff +++ b/glibc-cpusetsize.diff @@ -1,7 +1,7 @@ -Index: bits/sched.h +Index: glibc-2.15/bits/sched.h =================================================================== ---- bits/sched.h.orig -+++ bits/sched.h +--- glibc-2.15.orig/bits/sched.h ++++ glibc-2.15/bits/sched.h @@ -54,7 +54,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined @@ -11,10 +11,10 @@ Index: bits/sched.h # define __NCPUBITS (8 * sizeof (__cpu_mask)) /* Type for array elements in 'cpu_set_t'. */ -Index: sysdeps/unix/sysv/linux/bits/sched.h +Index: glibc-2.15/sysdeps/unix/sysv/linux/bits/sched.h =================================================================== ---- sysdeps/unix/sysv/linux/bits/sched.h.orig -+++ sysdeps/unix/sysv/linux/bits/sched.h +--- glibc-2.15.orig/sysdeps/unix/sysv/linux/bits/sched.h ++++ glibc-2.15/sysdeps/unix/sysv/linux/bits/sched.h @@ -113,7 +113,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined diff --git a/glibc-elf-localscope.diff b/glibc-elf-localscope.diff index edcd44a..4e5e536 100644 --- a/glibc-elf-localscope.diff +++ b/glibc-elf-localscope.diff @@ -1,7 +1,8 @@ -diff -ru elf~/dl-close.c elf/dl-close.c ---- elf~/dl-close.c 2011-02-04 00:35:03.000000000 +0100 -+++ elf/dl-close.c 2011-02-22 02:16:12.367883000 +0100 -@@ -180,24 +186,28 @@ +Index: glibc-2.15/elf/dl-close.c +=================================================================== +--- glibc-2.15.orig/elf/dl-close.c ++++ glibc-2.15/elf/dl-close.c +@@ -180,24 +180,28 @@ _dl_close_worker (struct link_map *map) /* Signal the object is still needed. */ l->l_idx = IDX_STILL_USED; @@ -42,7 +43,7 @@ diff -ru elf~/dl-close.c elf/dl-close.c ++lp; } } -@@ -206,19 +216,25 @@ +@@ -206,19 +210,25 @@ _dl_close_worker (struct link_map *map) for (unsigned int j = 0; j < l->l_reldeps->act; ++j) { struct link_map *jmap = l->l_reldeps->list[j]; diff --git a/glibc-fini-unwind.diff b/glibc-fini-unwind.diff index e2da629..b27fe9d 100644 --- a/glibc-fini-unwind.diff +++ b/glibc-fini-unwind.diff @@ -1,7 +1,7 @@ -Index: sysdeps/x86_64/elf/initfini.c +Index: glibc-2.15/sysdeps/x86_64/elf/initfini.c =================================================================== ---- sysdeps/x86_64/elf/initfini.c.orig 2004-08-16 06:50:55.000000000 +0200 -+++ sysdeps/x86_64/elf/initfini.c 2010-04-16 16:41:11.000000000 +0200 +--- glibc-2.15.orig/sysdeps/x86_64/elf/initfini.c ++++ glibc-2.15/sysdeps/x86_64/elf/initfini.c @@ -44,6 +44,25 @@ * crtn.s puts the corresponding function epilogues in the .init and .fini sections. */ diff --git a/glibc-fix-lookup-crash.patch b/glibc-fix-lookup-crash.patch deleted file mode 100644 index d4aaf5c..0000000 --- a/glibc-fix-lookup-crash.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: glibc-2.11.3/elf/dl-close.c -=================================================================== ---- glibc-2.11.3.orig/elf/dl-close.c 2011-05-27 15:08:23.000000000 +0200 -+++ glibc-2.11.3/elf/dl-close.c 2011-07-13 19:28:52.000000000 +0200 -@@ -127,7 +127,13 @@ _dl_close_worker (struct link_map *map) - { - struct link_map **oldp = map->l_initfini; - map->l_initfini = map->l_orig_initfini; -- _dl_scope_free (oldp); -+ /* We can't remove the l_initfini memory because -+ it's shared with l_searchlist.r_list. We don't clear -+ the latter so when we dlopen this object again that -+ entry would point to stale memory. And we don't want -+ to recompute it as it would involve a new call to -+ map_object_deps. -+ _dl_scope_free (oldp); */ - } - } - diff --git a/glibc-gai-private4.diff b/glibc-gai-private4.diff index a6a1ee8..028e953 100644 --- a/glibc-gai-private4.diff +++ b/glibc-gai-private4.diff @@ -1,5 +1,7 @@ ---- posix/gai.conf~ 2010-05-12 04:10:58.087661000 +0200 -+++ posix/gai.conf 2010-05-12 04:14:40.638820000 +0200 +Index: glibc-2.15/posix/gai.conf +=================================================================== +--- glibc-2.15.orig/posix/gai.conf ++++ glibc-2.15/posix/gai.conf @@ -67,11 +67,66 @@ #scopev4 ::ffff:192.168.0.0/112 5 #scopev4 ::ffff:0.0.0.0/96 14 diff --git a/glibc-nodate.patch b/glibc-nodate.patch index 875e196..3f3a443 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,3 +1,23 @@ +Index: glibc-2.15/nscd/nscd_stat.c +=================================================================== +--- glibc-2.15/nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 ++++ glibc-2.15/nscd/nscd_stat.c 2010-02-14 15:02:41.000000000 +0100 +@@ -37,8 +37,13 @@ + #endif /* HAVE_SELINUX */ + + +-/* We use this to make sure the receiver is the same. */ ++/* We use this to make sure the receiver is the same. Capture mtime ++ of this file if possible. */ ++#if defined(__TIMESTAMP__) ++static const char compilation[21] = __TIMESTAMP__; ++#else + static const char compilation[21] = __DATE__ " " __TIME__; ++#endif + + /* Statistic data for one database. */ + struct dbstat + Index: glibc-2.15/csu/Makefile =================================================================== --- glibc-2.15.orig/csu/Makefile diff --git a/glibc-nscd-hconf.diff b/glibc-nscd-hconf.diff index 1c360c4..3d01d4f 100644 --- a/glibc-nscd-hconf.diff +++ b/glibc-nscd-hconf.diff @@ -1,10 +1,10 @@ See: http://sourceware.org/bugzilla/show_bug.cgi?id=11928 -diff --git a/nscd/aicache.c b/nscd/aicache.c -index 3cb2208..2e92929 100644 ---- a/nscd/aicache.c -+++ b/nscd/aicache.c +Index: glibc-2.15/nscd/aicache.c +=================================================================== +--- glibc-2.15.orig/nscd/aicache.c ++++ glibc-2.15/nscd/aicache.c @@ -26,6 +26,7 @@ #include #include @@ -13,7 +13,7 @@ index 3cb2208..2e92929 100644 #include "dbg_log.h" #include "nscd.h" -@@ -103,6 +104,8 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, +@@ -103,6 +104,8 @@ addhstaiX (struct database_dyn *db, int if (__res_maybe_init (&_res, 0) == -1) no_more = 1; @@ -22,11 +22,11 @@ index 3cb2208..2e92929 100644 /* If we are looking for both IPv4 and IPv6 address we don't want the lookup functions to automatically promote IPv4 addresses to -diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c -index ed55bec..c79b85a 100644 ---- a/resolv/res_hconf.c -+++ b/resolv/res_hconf.c -@@ -84,7 +84,9 @@ static const struct cmd +Index: glibc-2.15/resolv/res_hconf.c +=================================================================== +--- glibc-2.15.orig/resolv/res_hconf.c ++++ glibc-2.15/resolv/res_hconf.c +@@ -83,7 +83,9 @@ static const struct cmd }; /* Structure containing the state. */ diff --git a/glibc-nscd.conf.patch b/glibc-nscd.conf.patch new file mode 100644 index 0000000..81bedb3 --- /dev/null +++ b/glibc-nscd.conf.patch @@ -0,0 +1,19 @@ +Index: glibc-2.15/nscd/nscd.conf +=================================================================== +--- glibc-2.15.orig/nscd/nscd.conf ++++ glibc-2.15/nscd/nscd.conf +@@ -61,11 +61,11 @@ + auto-propagate group yes + + enable-cache hosts yes +- positive-time-to-live hosts 3600 +- negative-time-to-live hosts 20 ++ positive-time-to-live hosts 600 ++ negative-time-to-live hosts 0 + suggested-size hosts 211 + check-files hosts yes +- persistent hosts yes ++ persistent hosts no + shared hosts yes + max-db-size hosts 33554432 + diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff index fec8d52..69ea77a 100644 --- a/glibc-resolv-mdnshint.diff +++ b/glibc-resolv-mdnshint.diff @@ -1,8 +1,8 @@ -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) +Index: glibc-2.15/resolv/res_hconf.c +=================================================================== +--- glibc-2.15.orig/resolv/res_hconf.c ++++ glibc-2.15/resolv/res_hconf.c +@@ -242,9 +242,12 @@ parse_line (const char *fname, int line_ if (c == NULL) { char *buf; diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff index 0011838..37dcd6d 100644 --- a/glibc-resolv-reload.diff +++ b/glibc-resolv-reload.diff @@ -72,9 +72,10 @@ Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="glibc-2.5-resolvconf.patch" -diff -ur resolv.orig/res_libc.c resolv/res_libc.c ---- resolv.orig/res_libc.c 2005-11-01 01:06:40.000000000 +0100 -+++ resolv/res_libc.c 2010-03-15 14:13:18.000000000 +0100 +Index: glibc-2.15/resolv/res_libc.c +=================================================================== +--- glibc-2.15.orig/resolv/res_libc.c ++++ glibc-2.15/resolv/res_libc.c @@ -22,7 +22,7 @@ #include #include @@ -84,7 +85,7 @@ diff -ur resolv.orig/res_libc.c resolv/res_libc.c /* The following bit is copied from res_data.c (where it is #ifdef'ed out) since res_init() should go into libc.so but the rest of that -@@ -89,12 +89,34 @@ +@@ -89,12 +89,34 @@ res_init(void) { return (__res_vinit(&_res, 1)); } @@ -119,6 +120,3 @@ diff -ur resolv.orig/res_libc.c resolv/res_libc.c if (__res_initstamp != resp->_u._ext.initstamp) { if (resp->nscount > 0) __res_iclose (resp, true); - - ---------------060407080409020101000002-- diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch index c9c4a53..c26b3c4 100644 --- a/glibc-testsuite.patch +++ b/glibc-testsuite.patch @@ -1,9 +1,9 @@ test-lfs runs for ever on ReiserFS. Let's disable it completely. -Index: io/Makefile +Index: glibc-2.15/io/Makefile =================================================================== ---- io/Makefile.orig -+++ io/Makefile +--- glibc-2.15.orig/io/Makefile ++++ glibc-2.15/io/Makefile @@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat others := pwd diff --git a/glibc-uio-cell.diff b/glibc-uio-cell.diff index 265fc5d..6bbbfe3 100644 --- a/glibc-uio-cell.diff +++ b/glibc-uio-cell.diff @@ -1,8 +1,3 @@ -Refused by Ulrich Drepper: -http://sourceware.org/ml/libc-alpha/2011-07/msg00046.html - -We have to keep it until gcc handles this better. - 2009-11-06 Petr Baudis * include/sys/uio.h: Change __vector to __iovec to avoid clash diff --git a/glibc-version.diff b/glibc-version.diff index 09ccbda..39c2ba6 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -1,8 +1,8 @@ -Index: csu/version.c +Index: glibc-2.15/csu/version.c =================================================================== ---- csu/version.c.orig -+++ csu/version.c -@@ -25,19 +25,20 @@ static const char __libc_release[] = REL +--- glibc-2.15.orig/csu/version.c ++++ glibc-2.15/csu/version.c +@@ -25,11 +25,12 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = @@ -16,11 +16,3 @@ Index: csu/version.c Compiled by GNU CC version "__VERSION__".\n" #include "version-info.h" #ifdef LIBC_ABIS_STRING - LIBC_ABIS_STRING - #endif - #ifdef GLIBC_OLDEST_ABI - "The oldest ABI supported: " GLIBC_OLDEST_ABI ".\n" - #endif - "For bug reporting instructions, please see:\n\ - .\n"; - diff --git a/glibc.changes b/glibc.changes index 4f0ed0f..0115fb2 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,35 @@ +------------------------------------------------------------------- +Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de + +- gcc 4.7 does not build crt files properly on powerpc64, backport + patch from upstream to handle this + (glibc-2.16-powerpc-initfini.patch) + +------------------------------------------------------------------- +Fri Apr 20 18:28:18 UTC 2012 - aj@suse.de + +- Disable patch x86-cpuid-level2.patch, this should be fixed in + valgrind now. + +------------------------------------------------------------------- +Thu Apr 19 11:12:43 UTC 2012 - aj@suse.de + +- Reorder patches, refresh to apply cleanly with -p1. + +------------------------------------------------------------------- +Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de + +- Build profiled libs only for base. +- Cleanup patches. +- Remove glibc-2.14-fix-ctors.patch, we have proper support in + binutils now. + +------------------------------------------------------------------- +Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de + +- The dynamic linker for armv7 hardware float is called + /lib/ld-linux-armhf.so.3. Provide symlink for old location. + ------------------------------------------------------------------- Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 21fd5b9..53f8166 100644 --- a/glibc.spec +++ b/glibc.spec @@ -120,17 +120,17 @@ Source: glibc-%{version}-%{git_id}.tar.bz2 Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 -Source8: nsswitch.conf -Source9: nscd.init -Source10: bindresvport.blacklist -Source12: glibc_post_upgrade.c -Source15: glibc.rpmlintrc -Source16: baselibs.conf +Source5: nsswitch.conf +Source6: nscd.init +Source7: bindresvport.blacklist +Source8: glibc_post_upgrade.c +Source9: glibc.rpmlintrc +Source10: baselibs.conf # For systemd Source20: nscd.conf Source21: nscd.service Source22: nscd.socket -# +# crypt_blowfish Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign @@ -146,8 +146,8 @@ NoSource: 0 # ### -# Patches are ordered as: -# Patches that we will never upstream or which have not been looked at: 0000-0999 +# Patches are ordered in the following groups: +# Patches that we will never upstream or which have not been looked at: 0-999 # Patches taken from upstream: 1000-2000 # Patches that are going upstream, waiting approval: 2000-3000 ### @@ -155,96 +155,95 @@ NoSource: 0 ### # Patches that upstream will not accept ### -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch0: glibc-testsuite.patch -# PATCH-FIX-OPENSUSE handle glibc binaries -Patch1: glibc-2.3.90-noversion.diff -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch3: glibc-resolv-reload.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch4: glibc-2.3.locales.diff.bz2 + +### +# openSUSE specific patches - won't go upstream +### +### openSUSE extensions, configuration # PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 -Patch5: glibc-2.14-crypt.diff +Patch1: glibc-2.14-crypt.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch6: glibc-2.14-crypt-versioning.diff -# PATCH-FIX-OPENSUSE add some extra information to version output - kukuk@suse.de -Patch7: glibc-version.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch8: glibc-2.4.90-revert-only-euro.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch12: glibc-2.3.2.no_archive.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch14: glibc-2.3.90-bindresvport.blacklist.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch16: glibc-2.4.90-no_NO.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch20: glibc-2.4-china.diff -# PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 -Patch21: gb18030.patch.bz2 -# PATCH-FIX-OPENSUSE Handle timestamp, adjust nscd.conf -Patch22: glibc-2.4.90-nscd.diff -# PATCH-FIX-OPENSUSE Fix path for nscd databases -Patch23: glibc-2.3.3-nscd-db-path.diff -# PATCH-FIX-OPENSUSE prefer -lang rpm packages -Patch25: glibc-2.3.90-langpackdir.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch28: glibc-2.2-sunrpc.diff -# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf -Patch29: glibc-2.8-getconf.diff -# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 -Patch30: getaddrinfo-ipv6-sanity.diff -# PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries -Patch33: glibc-compiled-binaries.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch36: glibc-no-unwind-tables.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de -Patch38: glibc-cpusetsize.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch45: glibc-gai-private4.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch46: glibc-resolv-mdnshint.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch47: glibc-nscd-hconf.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch49: glibc-fini-unwind.diff -# PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 -Patch52: glibc-elf-localscope.diff -# FIX-OPENSUSE compile some files with -fno-strict-aliasing -Patch58: glibc-strict-aliasing.diff -# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 -Patch65: glibc-fix-double-loopback.diff -# PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de -Patch66: glibc2.14-revert-sunrpc-removal.patch -# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de -Patch67: glibc-revert-fseek-on-fclose.diff -# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de -Patch68: glibc-fix-lookup-crash.patch -# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de -Patch69: glibc-fix-noload.patch -# PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de -Patch71: x86-cpuid-level2.patch -# PATCH-FIX-OPENSUSE Run ctors (bnc#717671) aj@suse.de -Patch74: glibc-2.14-fix-ctors.patch +Patch2: glibc-2.14-crypt-versioning.diff # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de -Patch80: crypt_blowfish-1.2-sha.diff +Patch3: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch81: crypt_blowfish-1.2-versioning.diff +Patch4: crypt_blowfish-1.2-versioning.diff # PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de -Patch82: crypt_blowfish-1.2-hack_around_arm.diff -# PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail -Patch84: nscd-avoid-gcc-warning.diff -# PATCH-FIX-OPENSUSE fixed build-compare by omitting one more date - meissner@suse.de -Patch87: glibc-nodate.patch -# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de -Patch88: pthread-cond-wait-revert.patch -# PATCH-FIX-OPENSUSE Fix cycle detection - aj@suse.de -Patch95: cycle-detection.patch -# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de -Patch96: glibc-ld-profile.patch +Patch5: crypt_blowfish-1.2-hack_around_arm.diff +# PATCH-FIX-OPENSUSE Fix path for nscd databases +Patch6: glibc-2.3.3-nscd-db-path.diff # PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de -Patch97: nss-db-path.patch -# PATCH-FIX-OPENSUSE Fix cycle detection 2 (from Fedora) - aj@suse.de -Patch100: glibc-sw13618-2.patch +Patch7: nss-db-path.patch +# PATCH-FIX-OPENSUSE adjust nscd.conf +Patch8: glibc-nscd.conf.patch +# PATCH-FIX-OPENSUSE do not use compile time in binaries +Patch9: glibc-nodate.patch +# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de +Patch10: glibc-version.diff +# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de +Patch11: glibc-testsuite.patch +# PATCH-FIX-OPENSUSE handle old glibc binaries +Patch12: glibc-2.3.90-noversion.diff +# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de +Patch13: glibc-2.3.2.no_archive.diff +# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport +Patch14: glibc-2.3.90-bindresvport.blacklist.diff +# PATCH-FIX-OPENSUSE prefer -lang rpm packages +Patch15: glibc-2.3.90-langpackdir.diff +# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf +Patch16: glibc-2.8-getconf.diff +# PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries +Patch17: glibc-compiled-binaries.diff +# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) +Patch18: glibc-cpusetsize.diff +# PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de +# According the the Debian bug report, this is fixed in valgrind now, so disable +# this patch. +Patch19: x86-cpuid-level2.patch + +### Locale related patches +# PATCH-FIX-OPENSUSE Add additional locales +Patch100: glibc-2.3.locales.diff.bz2 +# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) +Patch101: glibc-2.4.90-revert-only-euro.diff +# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) +Patch102: glibc-2.4.90-no_NO.diff +# PATCH-FIX-OPENSUSE -- Renames for China +Patch103: glibc-2.4-china.diff +# PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 +Patch104: gb18030.patch.bz2 + +### Broken patches in glibc that we revert for now: +# PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de +Patch200: glibc2.14-revert-sunrpc-removal.patch +# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de +Patch201: glibc-revert-fseek-on-fclose.diff +# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de +Patch202: pthread-cond-wait-revert.patch + +### Network related patches +# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change +Patch300: glibc-resolv-reload.diff +# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de +Patch301: glibc-2.2-sunrpc.diff +# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 +Patch302: getaddrinfo-ipv6-sanity.diff +# PATCH-FIX-OPENSUSE Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] +Patch303: glibc-gai-private4.diff +# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv +Patch304: glibc-resolv-mdnshint.diff +# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 +Patch305: glibc-nscd-hconf.diff +# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 +Patch306: glibc-fix-double-loopback.diff + +### Misc patches +# PATCH-FIX-OPENSUSE don't use unwind tables for initfini (solved differently for glibc 2.16) +Patch400: glibc-no-unwind-tables.diff +# FIX-OPENSUSE compile some files with -fno-strict-aliasing +Patch401: glibc-strict-aliasing.diff +# PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail +Patch402: nscd-avoid-gcc-warning.diff ### # Patches from upstream @@ -269,6 +268,8 @@ Patch1007: glibc-2.16-fix-check-abi.patch Patch1008: glibc-2.16-fix-check-localplt.patch # PATCH-FIX-UPSTREAM - Allow compilation with -altivec aj@suse.de Patch1009: glibc-uio-cell.diff +# PATCH-FIX-UPSTREAM - do not use initfini anymore +Patch1010: glibc-2.16-powerpc-initfini.patch ### # Patches awaiting upstream approval @@ -279,6 +280,18 @@ Patch2001: glibc-resolv-assert.diff Patch2002: armhf-ld-so.patch # PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de Patch2003: glibc-nscd-crash-bso13594.patch +# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de +Patch2004: glibc-fix-noload.patch +# PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 +Patch2005: glibc-elf-localscope.diff +# PATCH-FIX-OPENSUSE Fix cycle detection - aj@suse.de +Patch2006: cycle-detection.patch +# PATCH-FIX-OPENSUSE Fix cycle detection 2 (from Fedora) - aj@suse.de +Patch2007: glibc-sw13618-2.patch +# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +Patch2008: glibc-ld-profile.patch +# PATCH-FIX-OPENSUSE _fini does not have proper unwinding information on x86_64 bso#11610 +Patch2009: glibc-fini-unwind.diff %description The GNU C Library provides the most important standard libraries used @@ -460,81 +473,87 @@ versions of your software. # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} -%patch80 -p1 -%patch81 -p1 -%patch82 +%patch3 -p1 +%patch4 -p1 +%patch5 popd mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ # -%patch0 -# libNoVersion part is only active on ix86 %patch1 -p1 -%patch3 -%patch4 -%patch5 -p1 +%patch2 -p1 %patch6 -p1 -%patch7 -%patch8 -%patch12 -%patch14 -%patch16 -p1 -%patch20 -p1 -%patch21 -p1 +%patch7 -p1 +%patch8 -p1 # avoid changing nscd_stat.c mtime to avoid code generation # differences on each rebuild touch -r nscd/nscd_stat.c nscd/s-stamp -%patch22 -%patch23 +%patch9 -p1 touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp -%patch25 -%patch28 -p1 -%patch29 -%patch30 -%patch33 -p1 -%patch36 -p1 -%patch38 -%patch1009 -p1 -%patch45 -%patch46 -p1 -%patch47 -p1 -%patch49 -# XXX: Does not pass testsuite, still there's no better solution yet -%patch52 -%patch58 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -# XXX Patch 69 replaces 68, remove soon -#%patch68 -p1 -%patch69 -p1 -%patch71 -p1 -%patch2001 -p1 -%patch74 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +# This should be fixed in valgrind now +#%patch19 -p1 + +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 + +%patch200 -p1 +%patch201 -p1 +%patch202 -p1 -R + +%patch300 -p1 +%patch301 -p1 +%patch302 -p1 +%patch303 -p1 +%patch304 -p1 +%patch305 -p1 +%patch306 -p1 + +%patch400 -p1 +%patch401 -p1 +%patch402 -p1 + %patch1000 -p1 -%patch84 -p1 -%patch87 -p1 -%patch88 -p1 -R %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch95 -p1 -# XXX Disable, it breaks the testsuite, test elf/tst-audit2 -# %patch96 -p1 -%patch97 -p1 -%patch2003 -p1 %patch1006 -p1 -%patch100 -p1 %patch1007 -p1 %patch1008 -p1 -%ifarch armv7l -# Disable for now -#%patch2002 -p1 +%patch1009 -p1 +%ifarch ppc ppc64 +# to support further architectures, some more changes are needed +%patch1010 -p1 %endif +%patch2001 -p1 +%ifarch armv7l +%patch2002 -p1 +%endif +%patch2003 -p1 +%patch2004 -p1 +# XXX: Does not pass testsuite, still there's no better solution yet +%patch2005 -p1 +%patch2006 -p1 +%patch2007 -p1 +# XXX Disable, it breaks the testsuite, test elf/tst-audit2 +# %patch2008 -p1 +%patch2009 -p1 + # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -664,13 +683,17 @@ configure_and_build_glibc() { conf_cflags="$cflags" %endif + profile="--disable-profile" +%if %{build_profile} + if [ "$dirname" = "base" ] ; then + profile="--enable-profile" + fi +%endif CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ -%if %{build_profile} - --enable-profile \ -%endif + $profile \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ @@ -916,8 +939,8 @@ cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} -install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist %{buildroot}/etc -install -m 644 $RPM_SOURCE_DIR/nsswitch.conf %{buildroot}/etc +install -m 644 %{SOURCE7} %{buildroot}/etc +install -m 644 %{SOURCE5} %{buildroot}/etc install -m 644 posix/gai.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/default @@ -944,7 +967,7 @@ popd cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d -install -m 755 $RPM_SOURCE_DIR/nscd.init %{buildroot}/etc/init.d/nscd +install -m 755 %{SOURCE6} %{buildroot}/etc/init.d/nscd ln -sf /etc/init.d/nscd %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/var/run/nscd touch %{buildroot}/var/run/nscd/{passwd,group,hosts} @@ -998,7 +1021,7 @@ install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system %ifarch armv7l # Provide compatibility link -# XXX ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif ####################################################################### @@ -1077,7 +1100,7 @@ exit 0 # Each architecture has a different name for the dynamic linker: %ifarch %arm %ifarch armv7l -#XXX /%{_lib}/ld-linux-armhf.so.3 +/%{_lib}/ld-linux-armhf.so.3 # Keep compatibility link /%{_lib}/ld-linux.so.3 %else From 66fd20c1407b16a5638a8604a5d594968a7d25a9577afbd8aaabe3c83b8a38ad Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 8 May 2012 04:45:24 +0000 Subject: [PATCH 102/204] Accepting request 116361 from Base:System Fix name of dynamic linker for ARMv5 (forwarded request 116358 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/116361 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=107 --- glibc-2.16-mcheck.patch | 25 +++++++++++++++++++++++++ glibc.changes | 20 ++++++++++++++++++++ glibc.spec | 16 ++++++++++++---- 3 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 glibc-2.16-mcheck.patch diff --git a/glibc-2.16-mcheck.patch b/glibc-2.16-mcheck.patch new file mode 100644 index 0000000..a2287c2 --- /dev/null +++ b/glibc-2.16-mcheck.patch @@ -0,0 +1,25 @@ +diff --git a/malloc/mcheck.c b/malloc/mcheck.c +index 9213740..7491c49 100644 +--- a/malloc/mcheck.c ++++ b/malloc/mcheck.c +@@ -370,6 +370,12 @@ mabort (enum mcheck_status status) + #endif + } + ++#ifndef malloc_opt_barrier ++#define malloc_opt_barrier(x) \ ++({ __typeof (x) __x = x; __asm ("" : "+m" (__x)); __x; }) ++#define malloc_force_eval(x) __asm __volatile ("" : : "m" (x)) ++#endif ++ + int + mcheck (func) + void (*func) (enum mcheck_status); +@@ -381,6 +387,7 @@ mcheck (func) + { + /* We call malloc() once here to ensure it is initialized. */ + void *p = malloc (0); ++ p = malloc_opt_barrier (p); + free (p); + + old_free_hook = __free_hook; diff --git a/glibc.changes b/glibc.changes index 0115fb2..1f3006a 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Thu May 3 11:05:36 UTC 2012 - aj@suse.de + +- Fix dynamic linker name for ARMv5. + +------------------------------------------------------------------- +Thu Apr 26 14:02:37 UTC 2012 - aj@suse.de + +- Fix mcheck (optimization problem with gcc 4.7) + +------------------------------------------------------------------- +Wed Apr 25 10:40:20 UTC 2012 - aj@suse.de + +- Also check for armv7hl. + +------------------------------------------------------------------- +Wed Apr 25 08:47:22 UTC 2012 - adrian@suse.de + +- provide old ld-linux.so.3 on armv7, not catched by find.provides + ------------------------------------------------------------------- Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 53f8166..c917b47 100644 --- a/glibc.spec +++ b/glibc.spec @@ -108,6 +108,11 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif +%ifarch armv7l armv7hl +# The old runtime linker link gets not provided by rpm find.provides, but it exists +Provides: ld-linux.so.3 +Provides: ld-linux.so.3(GLIBC_2.4) +%endif Version: 2.15 Release: 0 %define git_id 2ba92745c36e @@ -292,6 +297,8 @@ Patch2007: glibc-sw13618-2.patch Patch2008: glibc-ld-profile.patch # PATCH-FIX-OPENSUSE _fini does not have proper unwinding information on x86_64 bso#11610 Patch2009: glibc-fini-unwind.diff +# PATCH-FIX-OPENSUSE malloc(0);free gets optimized out +Patch2010: glibc-2.16-mcheck.patch %description The GNU C Library provides the most important standard libraries used @@ -541,7 +548,7 @@ rm nscd/s-stamp %endif %patch2001 -p1 -%ifarch armv7l +%ifarch armv7l armv7hl %patch2002 -p1 %endif %patch2003 -p1 @@ -553,6 +560,7 @@ rm nscd/s-stamp # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 %patch2009 -p1 +%patch2010 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -1019,7 +1027,7 @@ mkdir -p %{buildroot}/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/lib/systemd/system install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system -%ifarch armv7l +%ifarch armv7l armv7hl # Provide compatibility link ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif @@ -1099,12 +1107,12 @@ exit 0 # Each architecture has a different name for the dynamic linker: %ifarch %arm -%ifarch armv7l +%ifarch armv7l armv7hl /%{_lib}/ld-linux-armhf.so.3 # Keep compatibility link /%{_lib}/ld-linux.so.3 %else -/%{_lib}/ld-linux.so.2 +/%{_lib}/ld-linux.so.3 %endif %endif %ifarch ia64 From 7404e0cda52a673f4ac74824b2718d9aa8f8662f0bbde598c2f0027fa6f205bc Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 9 May 2012 05:25:03 +0000 Subject: [PATCH 103/204] Accepting request 116779 from Base:System Refresh glibc-2.16-avx.patch and handle FMA4. (forwarded request 116778 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/116779 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=108 --- glibc-2.16-avx.patch | 395 ++++------------------------------------ glibc-2.16-mcheck.patch | 12 +- glibc.changes | 5 + 3 files changed, 48 insertions(+), 364 deletions(-) diff --git a/glibc-2.16-avx.patch b/glibc-2.16-avx.patch index 80eaaf4..3784f23 100644 --- a/glibc-2.16-avx.patch +++ b/glibc-2.16-avx.patch @@ -1,4 +1,4 @@ -commit afc5ed09cbce5d6fd48b3a8c5ec427b31f996880 +qcommit afc5ed09cbce5d6fd48b3a8c5ec427b31f996880 Author: Ulrich Drepper Date: Thu Jan 26 07:45:14 2012 -0500 @@ -11,13 +11,13 @@ Date: Thu Jan 26 07:45:14 2012 -0500 * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): If bit_AVX is set also check OSXAVE/XCR0 and reset bit_AVX if necessary. - 2012-01-25 Joseph Myers - - * elf/tst-unique3.cc (gets): Remove declaration. -Index: glibc-2.15/sysdeps/x86_64/multiarch/init-arch.c -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/multiarch/init-arch.c -+++ glibc-2.15/sysdeps/x86_64/multiarch/init-arch.c +Also contains selected changes from commits 08cf777f9e7f6d826658a99c7d77a359f73a45bf +and 56f6f6a2403cfa7267cad722597113be35ecf70d. + +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index 65b0ee9..4fabbee 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c @@ -1,6 +1,6 @@ /* Initialize CPU feature data. This file is part of the GNU C Library. @@ -33,22 +33,22 @@ Index: glibc-2.15/sysdeps/x86_64/multiarch/init-arch.c + if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) + { + /* Reset the AVX bit in case OSXSAVE is disabled. */ -+ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0 -+ && ({ unsigned int xcrlow; -+ unsigned int xcrhigh; -+ asm ("xgetbv" -+ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); -+ (xcrlow & 6) == 6; })) -+ __cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable; ++ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) == 0 ++ || ({ unsigned int xcrlow; ++ unsigned int xcrhigh; ++ asm ("xgetbv" ++ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); ++ (xcrlow & 6) != 6; })) ++ __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; + } + __cpu_features.family = family; __cpu_features.model = model; atomic_write_barrier (); -Index: glibc-2.15/sysdeps/x86_64/multiarch/init-arch.h -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/multiarch/init-arch.h -+++ glibc-2.15/sysdeps/x86_64/multiarch/init-arch.h +diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h +index 2a1df39..408e5ae 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.h ++++ b/sysdeps/x86_64/multiarch/init-arch.h @@ -1,5 +1,5 @@ /* This file is part of the GNU C Library. - Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. @@ -56,13 +56,7 @@ Index: glibc-2.15/sysdeps/x86_64/multiarch/init-arch.h The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public -@@ -22,11 +22,13 @@ - #define bit_Prefer_SSE_for_memop (1 << 3) - #define bit_Fast_Unaligned_Load (1 << 4) - #define bit_Prefer_PMINUB_for_stringop (1 << 5) -+#define bit_YMM_Usable (1 << 6) - - #define bit_SSE2 (1 << 26) +@@ -27,6 +27,7 @@ #define bit_SSSE3 (1 << 9) #define bit_SSE4_1 (1 << 19) #define bit_SSE4_2 (1 << 20) @@ -70,319 +64,7 @@ Index: glibc-2.15/sysdeps/x86_64/multiarch/init-arch.h #define bit_AVX (1 << 28) #define bit_POPCOUNT (1 << 23) #define bit_FMA (1 << 12) -@@ -48,6 +50,7 @@ - # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE - # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE - # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE -+# define index_YMM_Usable FEATURE_INDEX_1*FEATURE_SIZE - - #else /* __ASSEMBLER__ */ - -@@ -92,7 +95,7 @@ extern struct cpu_features - - - extern void __init_cpu_features (void) attribute_hidden; --#define INIT_ARCH()\ -+# define INIT_ARCH() \ - do \ - if (__cpu_features.kind == arch_kind_unknown) \ - __init_cpu_features (); \ -@@ -125,23 +128,21 @@ extern const struct cpu_features *__get_ - # define index_Slow_BSF FEATURE_INDEX_1 - # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 - # define index_Fast_Unaligned_Load FEATURE_INDEX_1 -+# define index_YMM_Usable FEATURE_INDEX_1 - --#define HAS_ARCH_FEATURE(idx, bit) \ -- ((__get_cpu_features ()->feature[idx] & (bit)) != 0) -+# define HAS_ARCH_FEATURE(name) \ -+ ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0) - --#define HAS_FAST_REP_STRING \ -- HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String) -+# define HAS_FAST_REP_STRING HAS_ARCH_FEATURE (Fast_Rep_String) - --#define HAS_FAST_COPY_BACKWARD \ -- HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward) -+# define HAS_FAST_COPY_BACKWARD HAS_ARCH_FEATURE (Fast_Copy_Backward) - --#define HAS_SLOW_BSF \ -- HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF) -+# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF) - --#define HAS_PREFER_SSE_FOR_MEMOP \ -- HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) -+# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop) - --#define HAS_FAST_UNALIGNED_LOAD \ -- HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load) -+# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load) -+ -+# define HAS_YMM_USABLE HAS_ARCH_FEATURE (YMM_Usable) - - #endif /* __ASSEMBLER__ */ -Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/e_log.c -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/e_log.c -+++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/e_log.c -@@ -14,8 +14,7 @@ extern double __ieee754_log_fma4 (double - - libm_ifunc (__ieee754_log, - HAS_FMA4 ? __ieee754_log_fma4 -- : (HAS_AVX ? __ieee754_log_avx -- : __ieee754_log_sse2)); -+ : (HAS_AVX ? __ieee754_log_avx : __ieee754_log_sse2)); - strong_alias (__ieee754_log, __log_finite) - - # define __ieee754_log __ieee754_log_sse2 -Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_atan.c -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/s_atan.c -+++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_atan.c -@@ -12,7 +12,8 @@ extern double __atan_fma4 (double); - # define __atan_fma4 ((void *) 0) - # endif - --libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); -+libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : -+ HAS_AVX ? __atan_avx : __atan_sse2)); - - # define atan __atan_sse2 - #endif -Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_sin.c -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/s_sin.c -+++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_sin.c -@@ -17,10 +17,12 @@ extern double __sin_fma4 (double); - # define __sin_fma4 ((void *) 0) - # endif - --libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); -+libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : -+ HAS_AVX ? __cos_avx : __cos_sse2)); - weak_alias (__cos, cos) - --libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); -+libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : -+ HAS_AVX ? __sin_avx : __sin_sse2)); - weak_alias (__sin, sin) - - # define __cos __cos_sse2 -Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_tan.c -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/s_tan.c -+++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/s_tan.c -@@ -12,7 +12,8 @@ extern double __tan_fma4 (double); - # define __tan_fma4 ((void *) 0) - # endif - --libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); -+libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : -+ HAS_AVX ? __tan_avx : __tan_sse2)); - - # define tan __tan_sse2 - #endif -Index: glibc-2.15/sysdeps/x86_64/fpu/math_private.h -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/fpu/math_private.h -+++ glibc-2.15/sysdeps/x86_64/fpu/math_private.h -@@ -19,10 +19,14 @@ - - /* We can do a few things better on x86-64. */ - --#ifdef __AVX__ -+#if defined __AVX__ || defined SSE2AVX - # define MOVD "vmovd" -+# define STMXCSR "vstmxcsr" -+# define LDMXCSR "vldmxcsr" - #else - # define MOVD "movd" -+# define STMXCSR "stmxcsr" -+# define LDMXCSR "ldmxcsr" - #endif - - /* Direct movement of float into integer register. */ -@@ -86,7 +90,7 @@ - ({ int __di; GET_FLOAT_WORD (__di, (float) d); \ - (__di & 0x7fffffff) < 0x7f800000; }) - --#ifdef __AVX__ -+#if defined __AVX__ || defined SSE2AVX - # define __ieee754_sqrt(d) \ - ({ double __res; \ - asm ("vsqrtsd %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ -@@ -112,7 +116,7 @@ - - #ifdef __SSE4_1__ - # ifndef __rint --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __rint(d) \ - ({ double __res; \ - asm ("vroundsd $4, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ -@@ -125,7 +129,7 @@ - # endif - # endif - # ifndef __rintf --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __rintf(d) \ - ({ float __res; \ - asm ("vroundss $4, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ -@@ -139,7 +143,7 @@ - # endif - - # ifndef __floor --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __floor(d) \ - ({ double __res; \ - asm ("vroundsd $1, %1, %0, %0" : "=x" (__res) : "xm" ((double) (d))); \ -@@ -152,7 +156,7 @@ - # endif - # endif - # ifndef __floorf --# ifdef __AVX__ -+# if defined __AVX__ || defined SSE2AVX - # define __floorf(d) \ - ({ float __res; \ - asm ("vroundss $1, %1, %0, %0" : "=x" (__res) : "xm" ((float) (d))); \ -@@ -169,121 +173,56 @@ - - /* Specialized variants of the interfaces which only handle - either the FPU or the SSE unit. */ --#undef libc_fegetround --#define libc_fegetround() \ -- ({ \ -- unsigned int mxcsr; \ -- asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ -- (mxcsr & 0x6000) >> 3; \ -- }) --#undef libc_fegetroundf --#define libc_fegetroundf() libc_fegetround () --// #define libc_fegetroundl() fegetround () -- --#undef libc_fesetround --#define libc_fesetround(r) \ -- do { \ -- unsigned int mxcsr; \ -- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ -- mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ -- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ -- } while (0) --#undef libc_fesetroundf --#define libc_fesetroundf(r) libc_fesetround (r) --// #define libc_fesetroundl(r) (void) fesetround (r) -- - #undef libc_feholdexcept --#ifdef __AVX__ --# define libc_feholdexcept(e) \ -- do { \ -- unsigned int mxcsr; \ -- asm ("vstmxcsr %0" : "=m" (*&mxcsr)); \ -- (e)->__mxcsr = mxcsr; \ -- mxcsr = (mxcsr | 0x1f80) & ~0x3f; \ -- asm volatile ("vldmxcsr %0" : : "m" (*&mxcsr)); \ -- } while (0) --#else --# define libc_feholdexcept(e) \ -+#define libc_feholdexcept(e) \ - do { \ - unsigned int mxcsr; \ -- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ -+ asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ - (e)->__mxcsr = mxcsr; \ - mxcsr = (mxcsr | 0x1f80) & ~0x3f; \ -- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ -+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ - } while (0) --#endif - #undef libc_feholdexceptf - #define libc_feholdexceptf(e) libc_feholdexcept (e) - // #define libc_feholdexceptl(e) (void) feholdexcept (e) - - #undef libc_feholdexcept_setround --#ifdef __AVX__ --# define libc_feholdexcept_setround(e, r) \ -+#define libc_feholdexcept_setround(e, r) \ - do { \ - unsigned int mxcsr; \ -- asm ("vstmxcsr %0" : "=m" (*&mxcsr)); \ -+ asm (STMXCSR " %0" : "=m" (*&mxcsr)); \ - (e)->__mxcsr = mxcsr; \ - mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ -- asm volatile ("vldmxcsr %0" : : "m" (*&mxcsr)); \ -+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); \ - } while (0) --#else --# define libc_feholdexcept_setround(e, r) \ -- do { \ -- unsigned int mxcsr; \ -- asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ -- (e)->__mxcsr = mxcsr; \ -- mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ -- asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ -- } while (0) --#endif - #undef libc_feholdexcept_setroundf - #define libc_feholdexcept_setroundf(e, r) libc_feholdexcept_setround (e, r) - // #define libc_feholdexcept_setroundl(e, r) ... - - #undef libc_fetestexcept --#ifdef __AVX__ --# define libc_fetestexcept(e) \ -- ({ unsigned int mxcsr; asm volatile ("vstmxcsr %0" : "=m" (*&mxcsr)); \ -+#define libc_fetestexcept(e) \ -+ ({ unsigned int mxcsr; \ -+ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ - mxcsr & (e) & FE_ALL_EXCEPT; }) --#else --# define libc_fetestexcept(e) \ -- ({ unsigned int mxcsr; asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ -- mxcsr & (e) & FE_ALL_EXCEPT; }) --#endif - #undef libc_fetestexceptf - #define libc_fetestexceptf(e) libc_fetestexcept (e) - // #define libc_fetestexceptl(e) fetestexcept (e) - - #undef libc_fesetenv --#ifdef __AVX__ --# define libc_fesetenv(e) \ -- asm volatile ("vldmxcsr %0" : : "m" ((e)->__mxcsr)) --#else --# define libc_fesetenv(e) \ -- asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)) --#endif -+#define libc_fesetenv(e) \ -+ asm volatile (LDMXCSR " %0" : : "m" ((e)->__mxcsr)) - #undef libc_fesetenvf - #define libc_fesetenvf(e) libc_fesetenv (e) - // #define libc_fesetenvl(e) (void) fesetenv (e) - - #undef libc_feupdateenv --#ifdef __AVX__ --# define libc_feupdateenv(e) \ -+#define libc_feupdateenv(e) \ - do { \ - unsigned int mxcsr; \ -- asm volatile ("vstmxcsr %0" : "=m" (*&mxcsr)); \ -- asm volatile ("vldmxcsr %0" : : "m" ((e)->__mxcsr)); \ -+ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr)); \ -+ asm volatile (LDMXCSR " %0" : : "m" ((e)->__mxcsr)); \ - __feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ - } while (0) --#else --# define libc_feupdateenv(e) \ -- do { \ -- unsigned int mxcsr; \ -- asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ -- asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)); \ -- __feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ -- } while (0) --#endif - #undef libc_feupdateenvf - #define libc_feupdateenvf(e) libc_feupdateenv (e) - // #define libc_feupdateenvl(e) (void) feupdateenv (e) + Index: glibc-2.15/config.h.in =================================================================== --- glibc-2.15.orig/config.h.in @@ -419,25 +101,6 @@ Index: glibc-2.15/config.h.in include/libc-symbols.h that avoid PLT slots in the shared objects. */ #undef NO_HIDDEN -Index: glibc-2.15/math/math_private.h -=================================================================== ---- glibc-2.15.orig/math/math_private.h -+++ glibc-2.15/math/math_private.h -@@ -365,14 +365,6 @@ extern void __docos (double __x, double - know what operations are going to be performed. Therefore we - define additional interfaces. By default they refer to the normal - interfaces. */ --#define libc_fegetround() fegetround () --#define libc_fegetroundf() fegetround () --#define libc_fegetroundl() fegetround () -- --#define libc_fesetround(r) (void) fesetround (r) --#define libc_fesetroundf(r) (void) fesetround (r) --#define libc_fesetroundl(r) (void) fesetround (r) -- - #define libc_feholdexcept(e) (void) feholdexcept (e) - #define libc_feholdexceptf(e) (void) feholdexcept (e) - #define libc_feholdexceptl(e) (void) feholdexcept (e) Index: glibc-2.15/sysdeps/i386/configure =================================================================== --- glibc-2.15.orig/sysdeps/i386/configure @@ -567,3 +230,19 @@ Index: glibc-2.15/configure.in AC_SUBST(libc_cv_cc_novzeroupper) AC_SUBST(libc_cv_cc_fma4) AC_SUBST(libc_cv_as_i686) + + +--- eglibc-2.15-fma4-orig/sysdeps/x86_64/multiarch/init-arch.c 2012-05-07 10:02:38.869334673 -0700 ++++ eglibc-2.15-fma4-orig/sysdeps/x86_64/multiarch/init-arch.c 2012-05-07 10:01:16.217334959 -0700 +@@ -156,6 +156,11 @@ + __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; + } + ++ /* FMA4 depends on AVX support */ ++ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_80000001].ecx & bit_FMA4 ++ && (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) == 0) ++ __cpu_features.cpuid[COMMON_CPUID_INDEX_80000001].ecx &= ~bit_FMA4; ++ + __cpu_features.family = family; + __cpu_features.model = model; + atomic_write_barrier (); diff --git a/glibc-2.16-mcheck.patch b/glibc-2.16-mcheck.patch index a2287c2..48860fa 100644 --- a/glibc-2.16-mcheck.patch +++ b/glibc-2.16-mcheck.patch @@ -1,8 +1,8 @@ -diff --git a/malloc/mcheck.c b/malloc/mcheck.c -index 9213740..7491c49 100644 ---- a/malloc/mcheck.c -+++ b/malloc/mcheck.c -@@ -370,6 +370,12 @@ mabort (enum mcheck_status status) +Index: glibc-2.15/malloc/mcheck.c +=================================================================== +--- glibc-2.15.orig/malloc/mcheck.c ++++ glibc-2.15/malloc/mcheck.c +@@ -371,6 +371,12 @@ mabort (enum mcheck_status status) #endif } @@ -15,7 +15,7 @@ index 9213740..7491c49 100644 int mcheck (func) void (*func) (enum mcheck_status); -@@ -381,6 +387,7 @@ mcheck (func) +@@ -382,6 +388,7 @@ mcheck (func) { /* We call malloc() once here to ensure it is initialized. */ void *p = malloc (0); diff --git a/glibc.changes b/glibc.changes index 1f3006a..26fb8f7 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue May 8 14:00:52 UTC 2012 - aj@suse.de + +- Refresh glibc-2.16-avx.patch and handle FMA4. + ------------------------------------------------------------------- Thu May 3 11:05:36 UTC 2012 - aj@suse.de From 62b7ae98def70e9eca0a6b424e01e169d2e82428e32d7864c45e2fa8fb43f878 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 21 May 2012 05:55:21 +0000 Subject: [PATCH 104/204] Accepting request 120887 from Base:System Add nscd --foreground option. (forwarded request 120884 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/120887 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=109 --- armhf-ld-so.patch | 23 --------- glibc-armhf-compat.patch | 22 +++++++++ glibc-nscd-foreground.patch | 98 +++++++++++++++++++++++++++++++++++++ glibc.changes | 6 +++ glibc.spec | 16 ++++-- nscd.service | 9 ++-- 6 files changed, 143 insertions(+), 31 deletions(-) create mode 100644 glibc-armhf-compat.patch create mode 100644 glibc-nscd-foreground.patch diff --git a/armhf-ld-so.patch b/armhf-ld-so.patch index ce66dfb..c616b53 100644 --- a/armhf-ld-so.patch +++ b/armhf-ld-so.patch @@ -1,9 +1,3 @@ -For backward compatibility with armhf binaries built with the -old linker SONAME, we need to fake out the linker to believe -the new is the old, until such a point as everything is rebuilt. - -Patch for elf/dl-load.c taken from Debian. - diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions index 491dd0a..5464959 100644 --- a/glibc-ports-2.15/sysdeps/arm/shlib-versions @@ -15,20 +9,3 @@ index 491dd0a..5464959 100644 +arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 arm.*-.*-linux.* ld=ld-linux.so.2 ---- glibc-2.15/elf/dl-load.c.~1~ 2011-12-30 23:13:56.000000000 +0100 -+++ glibc-2.15/elf/dl-load.c 2012-04-18 15:05:33.203485389 +0200 -@@ -2082,10 +2082,13 @@ - soname = ((const char *) D_PTR (l, l_info[DT_STRTAB]) - + l->l_info[DT_SONAME]->d_un.d_val); - if (strcmp (name, soname) != 0) -+#ifdef __arm__ -+ if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3")) -+#endif - continue; - - /* We have a match on a new name -- cache it. */ -- add_name_to_object (l, soname); -+ add_name_to_object (l, name); - l->l_soname_added = 1; - } - diff --git a/glibc-armhf-compat.patch b/glibc-armhf-compat.patch new file mode 100644 index 0000000..01e656f --- /dev/null +++ b/glibc-armhf-compat.patch @@ -0,0 +1,22 @@ +Patch for elf/dl-load.c taken from Debian: +For backward compatibility with armhf binaries built with the +old linker SONAME, we need to fake out the linker to believe +the new is the old, until such a point as everything is rebuilt. + +--- glibc-2.15/elf/dl-load.c.~1~ 2011-12-30 23:13:56.000000000 +0100 ++++ glibc-2.15/elf/dl-load.c 2012-04-18 15:05:33.203485389 +0200 +@@ -2082,10 +2082,13 @@ + soname = ((const char *) D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[DT_SONAME]->d_un.d_val); + if (strcmp (name, soname) != 0) ++#ifdef __arm__ ++ if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3")) ++#endif + continue; + + /* We have a match on a new name -- cache it. */ +- add_name_to_object (l, soname); ++ add_name_to_object (l, name); + l->l_soname_added = 1; + } + diff --git a/glibc-nscd-foreground.patch b/glibc-nscd-foreground.patch new file mode 100644 index 0000000..f1ab742 --- /dev/null +++ b/glibc-nscd-foreground.patch @@ -0,0 +1,98 @@ +diff -rup a/nscd/nscd.c b/nscd/nscd.c +--- a/nscd/nscd.c 2012-01-01 05:16:32.000000000 -0700 ++++ b/nscd/nscd.c 2012-02-03 13:07:50.509740586 -0700 +@@ -72,7 +72,12 @@ thread_info_t thread_info; + int do_shutdown; + int disabled_passwd; + int disabled_group; +-int go_background = 1; ++ ++/* Default is to daemonize. Set to 1 to run in foreground in ++ debugging mode, or negative to run in foreground but otherwise ++ behave like a daemon, i.e., detach from terminal and use ++ syslog. */ ++static int run_in_foreground = 0; + + static const char *conffile = _PATH_NSCDCONF; + +@@ -104,6 +109,8 @@ static const struct argp_option options[ + N_("Read configuration data from NAME") }, + { "debug", 'd', NULL, 0, + N_("Do not fork and display messages on the current tty") }, ++ { "foreground", 'F', NULL, 0, ++ N_("Do not fork, but otherwise behave like a deamon") }, + { "nthreads", 't', N_("NUMBER"), 0, N_("Start NUMBER threads") }, + { "shutdown", 'K', NULL, 0, N_("Shut the server down") }, + { "statistics", 'g', NULL, 0, N_("Print current configuration statistics") }, +@@ -174,16 +181,22 @@ main (int argc, char **argv) + /* Determine page size. */ + pagesize_m1 = getpagesize () - 1; + +- /* Behave like a daemon. */ +- if (go_background) ++ if (run_in_foreground <= 0) + { + int i; ++ pid_t pid; + +- pid_t pid = fork (); +- if (pid == -1) +- error (EXIT_FAILURE, errno, _("cannot fork")); +- if (pid != 0) +- exit (0); ++ /* Behave like a daemon. */ ++ if (!run_in_foreground) ++ { ++ pid = fork (); ++ if (pid == -1) ++ error (EXIT_FAILURE, errno, _("cannot fork")); ++ if (pid != 0) ++ exit (0); ++ } ++ else ++ fprintf (stderr, _("further output sent to syslog\n")); + + int nullfd = open (_PATH_DEVNULL, O_RDWR); + if (nullfd != -1) +@@ -234,11 +247,14 @@ main (int argc, char **argv) + for (i = min_close_fd; i < getdtablesize (); i++) + close (i); + +- pid = fork (); +- if (pid == -1) +- error (EXIT_FAILURE, errno, _("cannot fork")); +- if (pid != 0) +- exit (0); ++ if (!run_in_foreground) ++ { ++ pid = fork (); ++ if (pid == -1) ++ error (EXIT_FAILURE, errno, _("cannot fork")); ++ if (pid != 0) ++ exit (0); ++ } + + setsid (); + +@@ -260,7 +276,7 @@ main (int argc, char **argv) + signal (SIGTSTP, SIG_IGN); + } + else +- /* In foreground mode we are not paranoid. */ ++ /* In debug mode we are not paranoid. */ + paranoia = 0; + + signal (SIGINT, termination_handler); +@@ -309,7 +325,11 @@ parse_opt (int key, char *arg, struct ar + { + case 'd': + ++debug_level; +- go_background = 0; ++ run_in_foreground = 1; ++ break; ++ ++ case 'F': ++ run_in_foreground = -1; + break; + + case 'f': diff --git a/glibc.changes b/glibc.changes index 26fb8f7..d68494b 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed May 9 07:30:36 UTC 2012 - aj@suse.de + +- Split out glibc-armhf-compat.patch from armhf-ld-so.patch. +- Run nscd in the foreground with systemd (glibc-nscd-foreground-patch) + ------------------------------------------------------------------- Tue May 8 14:00:52 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index c917b47..6067293 100644 --- a/glibc.spec +++ b/glibc.spec @@ -205,6 +205,8 @@ Patch18: glibc-cpusetsize.diff # According the the Debian bug report, this is fixed in valgrind now, so disable # this patch. Patch19: x86-cpuid-level2.patch +# PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de +Patch20: glibc-armhf-compat.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -275,14 +277,16 @@ Patch1008: glibc-2.16-fix-check-localplt.patch Patch1009: glibc-uio-cell.diff # PATCH-FIX-UPSTREAM - do not use initfini anymore Patch1010: glibc-2.16-powerpc-initfini.patch +# PATCH-FIX-UPSTREAM Use new common path for ARMv7 hardware float linker - aj@suse.de +Patch1011: armhf-ld-so.patch +# PATCH-FIX-UPSTREAM Add --foreground for nscd (from Fedora) - aj@suse.de +Patch1012: glibc-nscd-foreground.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) Patch2001: glibc-resolv-assert.diff -# PATCH-FIX-UPSTREAM Use new common path for ARMv7 hardware float linker - aj@suse.de -Patch2002: armhf-ld-so.patch # PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de Patch2003: glibc-nscd-crash-bso13594.patch # PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de @@ -546,11 +550,13 @@ rm nscd/s-stamp # to support further architectures, some more changes are needed %patch1010 -p1 %endif +%ifarch armv7l armv7hl +%patch1011 -p1 +%patch20 -p1 +%endif +%patch1012 -p1 %patch2001 -p1 -%ifarch armv7l armv7hl -%patch2002 -p1 -%endif %patch2003 -p1 %patch2004 -p1 # XXX: Does not pass testsuite, still there's no better solution yet diff --git a/nscd.service b/nscd.service index 80e7626..a4a25d0 100644 --- a/nscd.service +++ b/nscd.service @@ -3,11 +3,14 @@ Description=Name Service Cache Daemon After=syslog.target [Service] -Type=forking -ExecStart=/usr/sbin/nscd +ExecStart=/usr/sbin/nscd --foreground ExecStop=/usr/sbin/nscd --shutdown +ExecReload=/usr/sbin/nscd -i passwd +ExecReload=/usr/sbin/nscd -i group +ExecReload=/usr/sbin/nscd -i hosts +ExecReload=/usr/sbin/nscd -i services +ExecReload=/usr/sbin/nscd -i netgroup Restart=always -PIDFile=/var/run/nscd/nscd.pid [Install] WantedBy=multi-user.target From 1ec5829bafaa007f9d77d4d36c1a98c12eef8f91ffb8f11e945764c2cde624fa Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 26 May 2012 10:59:12 +0000 Subject: [PATCH 105/204] Accepting request 122033 from Base:System Update to current 2.15 branch (forwarded request 122032 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/122033 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=110 --- baselibs.conf | 1 + confstr.patch | 304 +++++++++++++++++++++++ glibc-2.15-2ba92745c36e.tar.bz2 | 3 - glibc-2.15-60ff996420f9.tar.bz2 | 3 + glibc-2.15-avx2.patch | 369 ++++++++++++++++++++++++++++ glibc-2.16-avx.patch | 248 ------------------- glibc-2.16-fix-check-localplt.patch | 33 --- glibc-version.diff | 2 +- glibc.changes | 18 ++ glibc.spec | 72 +++--- tr_TR.patch | 13 + 11 files changed, 747 insertions(+), 319 deletions(-) create mode 100644 confstr.patch delete mode 100644 glibc-2.15-2ba92745c36e.tar.bz2 create mode 100644 glibc-2.15-60ff996420f9.tar.bz2 create mode 100644 glibc-2.15-avx2.patch delete mode 100644 glibc-2.16-avx.patch delete mode 100644 glibc-2.16-fix-check-localplt.patch create mode 100644 tr_TR.patch diff --git a/baselibs.conf b/baselibs.conf index e5677f6..e243c27 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -6,6 +6,7 @@ glibc targettype ia32 +/etc/ld.so.conf targettype ia32 "/lib/ld-linux.so.2 -> /lib/ld-linux.so.2" prereq -glibc-x86 + +/usr/lib/getconf/[^g] glibc-locale arch i586 block! +/usr/lib(64)?/gconv/gconv-modules diff --git a/confstr.patch b/confstr.patch new file mode 100644 index 0000000..279721d --- /dev/null +++ b/confstr.patch @@ -0,0 +1,304 @@ +diff --git a/posix/confstr.c b/posix/confstr.c +index 3c9566d..cad6561 100644 +--- a/posix/confstr.c ++++ b/posix/confstr.c +@@ -1,5 +1,4 @@ +-/* Copyright (C) 1991,1996,1997,2000-2004,2009,2010 Free +- Software Foundation, Inc. ++/* Copyright (C) 1991-2012 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 +@@ -35,6 +34,10 @@ confstr (name, buf, len) + const char *string = ""; + size_t string_len = 1; + ++ /* Note that this buffer must be large enough for the longest strings ++ used below. */ ++ char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; ++ + switch (name) + { + case _CS_PATH: +@@ -53,59 +56,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _POSIX_V7_ILP32_OFF32 +- if (__sysconf (_SC_V7_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_V7_ILP32_OFF32) > 0) + #endif + #if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", +- sizeof "POSIX_V7_ILP32_OFF32" - 1); +- string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", ++ sizeof "POSIX_V7_ILP32_OFF32" - 1); ++ string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _POSIX_V7_ILP32_OFFBIG +- if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) + #endif + #if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", +- sizeof "POSIX_V7_ILP32_OFFBIG" - 1); +- string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", ++ sizeof "POSIX_V7_ILP32_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _POSIX_V7_LP64_OFF64 +- if (__sysconf (_SC_V7_LP64_OFF64) > 0) ++ if (__sysconf (_SC_V7_LP64_OFF64) > 0) + #endif + #if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", +- sizeof "POSIX_V7_LP64_OFF64" - 1); +- string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", ++ sizeof "POSIX_V7_LP64_OFF64" - 1); ++ string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; ++ } + #endif + #ifndef _POSIX_V7_LPBIG_OFFBIG +- if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) + #endif + #if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", +- sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); +- string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", ++ sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_V6_WIDTH_RESTRICTED_ENVS: +@@ -116,59 +115,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "POSIX_V6_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _POSIX_V6_ILP32_OFF32 +- if (__sysconf (_SC_V6_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_V6_ILP32_OFF32) > 0) + #endif + #if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", +- sizeof "POSIX_V6_ILP32_OFF32" - 1); +- string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", ++ sizeof "POSIX_V6_ILP32_OFF32" - 1); ++ string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _POSIX_V6_ILP32_OFFBIG +- if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) + #endif + #if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", +- sizeof "POSIX_V6_ILP32_OFFBIG" - 1); +- string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", ++ sizeof "POSIX_V6_ILP32_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _POSIX_V6_LP64_OFF64 +- if (__sysconf (_SC_V6_LP64_OFF64) > 0) ++ if (__sysconf (_SC_V6_LP64_OFF64) > 0) + #endif + #if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", +- sizeof "POSIX_V6_LP64_OFF64" - 1); +- string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", ++ sizeof "POSIX_V6_LP64_OFF64" - 1); ++ string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; ++ } + #endif + #ifndef _POSIX_V6_LPBIG_OFFBIG +- if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) + #endif + #if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", +- sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); +- string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", ++ sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_V5_WIDTH_RESTRICTED_ENVS: +@@ -179,59 +174,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "XBS5_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _XBS5_ILP32_OFF32 +- if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) + #endif + #if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", +- sizeof "XBS5_ILP32_OFF32" - 1); +- string_len += sizeof "XBS5_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", ++ sizeof "XBS5_ILP32_OFF32" - 1); ++ string_len += sizeof "XBS5_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _XBS5_ILP32_OFFBIG +- if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) + #endif + #if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", +- sizeof "XBS5_ILP32_OFFBIG" - 1); +- string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", ++ sizeof "XBS5_ILP32_OFFBIG" - 1); ++ string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _XBS5_LP64_OFF64 +- if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) ++ if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) + #endif + #if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_LP64_OFF64", +- sizeof "XBS5_LP64_OFF64" - 1); +- string_len += sizeof "XBS5_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_LP64_OFF64", ++ sizeof "XBS5_LP64_OFF64" - 1); ++ string_len += sizeof "XBS5_LP64_OFF64" - 1; ++ } + #endif + #ifndef _XBS5_LPBIG_OFFBIG +- if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) + #endif + #if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", +- sizeof "XBS5_LPBIG_OFFBIG" - 1); +- string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", ++ sizeof "XBS5_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_XBS5_ILP32_OFF32_CFLAGS: diff --git a/glibc-2.15-2ba92745c36e.tar.bz2 b/glibc-2.15-2ba92745c36e.tar.bz2 deleted file mode 100644 index 17609ea..0000000 --- a/glibc-2.15-2ba92745c36e.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65aacbb4b5218b686da63994150e7e34e71d85c45cc7c264b1d6ee55207d0b05 -size 15776871 diff --git a/glibc-2.15-60ff996420f9.tar.bz2 b/glibc-2.15-60ff996420f9.tar.bz2 new file mode 100644 index 0000000..cba4008 --- /dev/null +++ b/glibc-2.15-60ff996420f9.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb9ee564d4afe68d4dceac5f07cc6cbd155df2cd5a021a795b92d7877bf32ef +size 15778016 diff --git a/glibc-2.15-avx2.patch b/glibc-2.15-avx2.patch new file mode 100644 index 0000000..4719179 --- /dev/null +++ b/glibc-2.15-avx2.patch @@ -0,0 +1,369 @@ +commit 56f6f6a2403cfa7267cad722597113be35ecf70d +Author: Ulrich Drepper +Date: Sat Jan 28 14:48:46 2012 -0500 + + Use -msse2avx option for x86-64 libm functions + + 2012-01-28 Ulrich Drepper + + * config.h.in: Define HAVE_SSE2AVX_SUPPORT. + * math/math_private.h: Remove libc_fegetround* and + libc_fesetround*. + * sysdeps/i386/configure.in: Check for -msse2avx. + * sysdeps/x86_64/fpu/math_private.h: Use VEX-encoded instructions + also if SSE2AVX is defined. + Remove libc_fegetround* and libc_fesetround*. + * sysdeps/x86_64/fpu/multiarch/Makefile: Compile *-avx functions + if config-cflags-sse2avx is yes. Also add -DSSE2AVX to defines. + * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Use HAS_AVX again instead + of HAS_YMM_USABLE. + * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise. + * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise. + +diff --git a/config.h.in b/config.h.in +index 50d53d4..1489476 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -90,7 +90,7 @@ + certain registers (CR0, MQ, CTR, LR) in asm statements. */ + #undef BROKEN_PPC_ASM_CR0 + +-/* Defined on SPARC if ld doesn't handle R_SPARC_WDISP22 against .hidden ++/* Defined on SPARC if ld does not handle R_SPARC_WDISP22 against .hidden + symbol. sysdeps/sparc/sparc32/elf/configure. */ + #undef BROKEN_SPARC_WDISP22 + +@@ -106,17 +106,20 @@ + /* Define if gcc supports AVX. */ + #undef HAVE_AVX_SUPPORT + ++/* Define if gcc supports VEX encoding. */ ++#undef HAVE_SSE2AVX_SUPPORT ++ + /* Define if gcc supports FMA4. */ + #undef HAVE_FMA4_SUPPORT + +-/* Define if the compiler's exception support is based on libunwind. */ ++/* Define if the compiler\'s exception support is based on libunwind. */ + #undef HAVE_CC_WITH_LIBUNWIND + + /* Define if the access to static and hidden variables is position independent + and does not need relocations. */ + #undef PI_STATIC_AND_HIDDEN + +-/* Define this to disable the `hidden_proto' et al macros in ++/* Define this to disable the 'hidden_proto' et al macros in + include/libc-symbols.h that avoid PLT slots in the shared objects. */ + #undef NO_HIDDEN + +diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure +index ae494e2..bc7900e 100644 +--- a/sysdeps/i386/configure ++++ b/sysdeps/i386/configure +@@ -756,6 +756,29 @@ if test $libc_cv_cc_avx = yes; then + + fi + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5 ++$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; } ++if ${libc_cv_cc_sse2avx+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if { ac_try='${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; }; then ++ libc_cv_cc_sse2avx=yes ++else ++ libc_cv_cc_sse2avx=no ++fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse2avx" >&5 ++$as_echo "$libc_cv_cc_sse2avx" >&6; } ++if test $libc_cv_cc_sse2avx = yes; then ++ $as_echo "#define HAVE_SSE2AVX_SUPPORT 1" >>confdefs.h ++ ++fi ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5 + $as_echo_n "checking for FMA4 support... " >&6; } + if ${libc_cv_cc_fma4+:} false; then : +diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in +index 5a9840e..59a4cd6 100644 +--- a/sysdeps/i386/configure.in ++++ b/sysdeps/i386/configure.in +@@ -67,6 +67,17 @@ if test $libc_cv_cc_avx = yes; then + AC_DEFINE(HAVE_AVX_SUPPORT) + fi + ++dnl Check if -msse2avx works. ++AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl ++if AC_TRY_COMMAND([${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null]); then ++ libc_cv_cc_sse2avx=yes ++else ++ libc_cv_cc_sse2avx=no ++fi]) ++if test $libc_cv_cc_sse2avx = yes; then ++ AC_DEFINE(HAVE_SSE2AVX_SUPPORT) ++fi ++ + dnl Check if -mfma4 works. + AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl + if AC_TRY_COMMAND([${CC-cc} -mfma4 -xc /dev/null -S -o /dev/null]); then +diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile +index be68903..4b5c173 100644 +--- a/sysdeps/x86_64/fpu/multiarch/Makefile ++++ b/sysdeps/x86_64/fpu/multiarch/Makefile +@@ -34,21 +34,21 @@ CFLAGS-s_sin-fma4.c = -mfma4 + CFLAGS-s_tan-fma4.c = -mfma4 + endif + +-ifeq ($(config-cflags-avx),yes) ++ifeq ($(config-cflags-sse2avx),yes) + libm-sysdep_routines += e_exp-avx e_log-avx s_atan-avx \ + e_atan2-avx s_sin-avx s_tan-avx \ + mplog-avx mpa-avx slowexp-avx \ + mpexp-avx + +-CFLAGS-e_atan2-avx.c = -mavx +-CFLAGS-e_exp-avx.c = -mavx +-CFLAGS-e_log-avx.c = -mavx +-CFLAGS-mpa-avx.c = -mavx +-CFLAGS-mpexp-avx.c = -mavx +-CFLAGS-mplog-avx.c = -mavx +-CFLAGS-s_atan-avx.c = -mavx +-CFLAGS-s_sin-avx.c = -mavx +-CFLAGS-slowexp-avx.c = -mavx +-CFLAGS-s_tan-avx.c = -mavx ++CFLAGS-e_atan2-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-e_exp-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-e_log-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-mpa-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX ++CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX ++CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX + endif + endif +diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +index 3a615fc..6867c6e 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); + + libm_ifunc (__ieee754_atan2, + HAS_FMA4 ? __ieee754_atan2_fma4 +- : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); ++ : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); + strong_alias (__ieee754_atan2, __atan2_finite) + + # define __ieee754_atan2 __ieee754_atan2_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c +index 7b2320a..3c65028 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c +@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); + + libm_ifunc (__ieee754_exp, + HAS_FMA4 ? __ieee754_exp_fma4 +- : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); ++ : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); + strong_alias (__ieee754_exp, __exp_finite) + + # define __ieee754_exp __ieee754_exp_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c +index ab277d6..05f3668 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_log.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c +@@ -14,8 +14,7 @@ extern double __ieee754_log_fma4 (double); + + libm_ifunc (__ieee754_log, + HAS_FMA4 ? __ieee754_log_fma4 +- : (HAS_YMM_USABLE ? __ieee754_log_avx +- : __ieee754_log_sse2)); ++ : (HAS_AVX ? __ieee754_log_avx : __ieee754_log_sse2)); + strong_alias (__ieee754_log, __log_finite) + + # define __ieee754_log __ieee754_log_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c +index 78c7e09..ae16d7c 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c +@@ -13,7 +13,7 @@ extern double __atan_fma4 (double); + # endif + + libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : +- HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); ++ HAS_AVX ? __atan_avx : __atan_sse2)); + + # define atan __atan_sse2 + #endif +diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c +index 417acd0..a0c2521 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c +@@ -18,11 +18,11 @@ extern double __sin_fma4 (double); + # endif + + libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : +- HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); ++ HAS_AVX ? __cos_avx : __cos_sse2)); + weak_alias (__cos, cos) + + libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : +- HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); ++ HAS_AVX ? __sin_avx : __sin_sse2)); + weak_alias (__sin, sin) + + # define __cos __cos_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c +index 3047155..904308f 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c +@@ -13,7 +13,7 @@ extern double __tan_fma4 (double); + # endif + + libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : +- HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); ++ HAS_AVX ? __tan_avx : __tan_sse2)); + + # define tan __tan_sse2 + #endif +commit 7998fa7899a29803ad4512002636332dfee48451 +Author: Andreas Schwab +Date: Fri Mar 16 16:07:57 2012 +0100 + + Disable use of FMA instructions in branred + +2012-03-21 Andreas Schwab + + * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines): + Remove brandred-fma4. + (CFLAGS-brandred-fma4.c): Remove. + * sysdeps/x86_64/fpu/multiarch/brandred-fma4.c: Remove. + * sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c (__branred): Don't + define. + * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (__branred): Don't + define. + + + * stdio-common/_itoa.c: Check _ITOA_NEEDED instead of + +diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile +index 2a38ffc..12b0526 100644 +--- a/sysdeps/x86_64/fpu/multiarch/Makefile ++++ b/sysdeps/x86_64/fpu/multiarch/Makefile +@@ -7,10 +7,9 @@ libm-sysdep_routines += e_exp-fma4 e_log-fma4 e_pow-fma4 s_atan-fma4 \ + e_asin-fma4 e_atan2-fma4 s_sin-fma4 s_tan-fma4 \ + mplog-fma4 mpa-fma4 slowexp-fma4 slowpow-fma4 \ + sincos32-fma4 doasin-fma4 dosincos-fma4 \ +- brandred-fma4 halfulp-fma4 mpexp-fma4 \ ++ halfulp-fma4 mpexp-fma4 \ + mpatan2-fma4 mpatan-fma4 mpsqrt-fma4 mptan-fma4 + +-CFLAGS-brandred-fma4.c = -mfma4 + CFLAGS-doasin-fma4.c = -mfma4 + CFLAGS-dosincos-fma4.c = -mfma4 + CFLAGS-e_asin-fma4.c = -mfma4 +diff --git a/sysdeps/x86_64/fpu/multiarch/brandred-fma4.c b/sysdeps/x86_64/fpu/multiarch/brandred-fma4.c +deleted file mode 100644 +index f4f68ac..0000000 +--- a/sysdeps/x86_64/fpu/multiarch/brandred-fma4.c ++++ /dev/null +@@ -1,4 +0,0 @@ +-#define __branred __branred_fma4 +-#define SECTION __attribute__ ((section (".text.fma4"))) +- +-#include +diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c b/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c +index 2501af9..4c35739 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c +@@ -1,6 +1,5 @@ + #define __cos __cos_fma4 + #define __sin __sin_fma4 +-#define __branred __branred_fma4 + #define __docos __docos_fma4 + #define __dubsin __dubsin_fma4 + #define __mpcos __mpcos_fma4 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c b/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c +index d7dab3c..a805440 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c +@@ -1,5 +1,4 @@ + #define tan __tan_fma4 +-#define __branred __branred_fma4 + #define __dbl_mp __dbl_mp_fma4 + #define __mpranred __mpranred_fma4 + #define __mptan __mptan_fma4 +commit 3b1004624e54cc2fefd034ff80d5dea4b6db764f +Author: Joseph Myers +Date: Mon Jan 30 19:55:15 2012 +0000 + + Fix makefile/configure problems with sse2avx changes. + +2012-01-30 Joseph Myers + + * configure.in (libc_cv_cc_sse2avx): AC_SUBST. + * configure: Regenerate. + * config.make.in (config-cflags-sse2avx): Define. + * sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-slowexp-avx.c): + Fix typo. + + * scripts/config.guess: Update from upstream config git repository. +diff --git a/config.make.in b/config.make.in +index d937952..75061f6 100644 +--- a/config.make.in ++++ b/config.make.in +@@ -36,6 +36,7 @@ asflags-cpu = @libc_cv_cc_submachine@ + + config-cflags-sse4 = @libc_cv_cc_sse4@ + config-cflags-avx = @libc_cv_cc_avx@ ++config-cflags-sse2avx = @libc_cv_cc_sse2avx@ + config-cflags-novzeroupper = @libc_cv_cc_novzeroupper@ + config-asflags-i686 = @libc_cv_as_i686@ + +diff --git a/configure b/configure +index 71e8de1..508e1bb 100755 +--- a/configure ++++ b/configure +@@ -620,6 +620,7 @@ use_ldconfig + libc_cv_as_i686 + libc_cv_cc_fma4 + libc_cv_cc_novzeroupper ++libc_cv_cc_sse2avx + libc_cv_cc_avx + libc_cv_cc_sse4 + libc_cv_cpp_asm_debuginfo +diff --git a/configure.in b/configure.in +index 5fd6d85..0499d3c 100644 +--- a/configure.in ++++ b/configure.in +@@ -2154,6 +2154,7 @@ dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests + AC_SUBST(libc_cv_cpp_asm_debuginfo) + AC_SUBST(libc_cv_cc_sse4) + AC_SUBST(libc_cv_cc_avx) ++AC_SUBST(libc_cv_cc_sse2avx) + AC_SUBST(libc_cv_cc_novzeroupper) + AC_SUBST(libc_cv_cc_fma4) + AC_SUBST(libc_cv_as_i686) +diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile +index 4b5c173..2a38ffc 100644 +--- a/sysdeps/x86_64/fpu/multiarch/Makefile ++++ b/sysdeps/x86_64/fpu/multiarch/Makefile +@@ -48,7 +48,7 @@ CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX + CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX + CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX + CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX +-CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX ++CFLAGS-slowexp-avx.c = -msse2avx -DSSE2AVX + CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX + endif + endif diff --git a/glibc-2.16-avx.patch b/glibc-2.16-avx.patch deleted file mode 100644 index 3784f23..0000000 --- a/glibc-2.16-avx.patch +++ /dev/null @@ -1,248 +0,0 @@ -qcommit afc5ed09cbce5d6fd48b3a8c5ec427b31f996880 -Author: Ulrich Drepper -Date: Thu Jan 26 07:45:14 2012 -0500 - - Reset bit_AVX in __cpu_features is OS support is missing - -2012-01-26 Ulrich Drepper - - [BZ #13583] - * sysdeps/x86_64/multiarch/init-arch.h: Define bit_OSXSAVE. - * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): If - bit_AVX is set also check OSXAVE/XCR0 and reset bit_AVX if necessary. - -Also contains selected changes from commits 08cf777f9e7f6d826658a99c7d77a359f73a45bf -and 56f6f6a2403cfa7267cad722597113be35ecf70d. - -diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c -index 65b0ee9..4fabbee 100644 ---- a/sysdeps/x86_64/multiarch/init-arch.c -+++ b/sysdeps/x86_64/multiarch/init-arch.c -@@ -1,6 +1,6 @@ - /* Initialize CPU feature data. - This file is part of the GNU C Library. -- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. - Contributed by Ulrich Drepper . - - The GNU C Library is free software; you can redistribute it and/or -@@ -144,6 +144,18 @@ __init_cpu_features (void) - else - kind = arch_kind_other; - -+ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) -+ { -+ /* Reset the AVX bit in case OSXSAVE is disabled. */ -+ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) == 0 -+ || ({ unsigned int xcrlow; -+ unsigned int xcrhigh; -+ asm ("xgetbv" -+ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); -+ (xcrlow & 6) != 6; })) -+ __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; -+ } -+ - __cpu_features.family = family; - __cpu_features.model = model; - atomic_write_barrier (); -diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h -index 2a1df39..408e5ae 100644 ---- a/sysdeps/x86_64/multiarch/init-arch.h -+++ b/sysdeps/x86_64/multiarch/init-arch.h -@@ -1,5 +1,5 @@ - /* This file is part of the GNU C Library. -- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public -@@ -27,6 +27,7 @@ - #define bit_SSSE3 (1 << 9) - #define bit_SSE4_1 (1 << 19) - #define bit_SSE4_2 (1 << 20) -+#define bit_OSXSAVE (1 << 27) - #define bit_AVX (1 << 28) - #define bit_POPCOUNT (1 << 23) - #define bit_FMA (1 << 12) - -Index: glibc-2.15/config.h.in -=================================================================== ---- glibc-2.15.orig/config.h.in -+++ glibc-2.15/config.h.in -@@ -102,7 +102,7 @@ - certain registers (CR0, MQ, CTR, LR) in asm statements. */ - #undef BROKEN_PPC_ASM_CR0 - --/* Defined on SPARC if ld doesn't handle R_SPARC_WDISP22 against .hidden -+/* Defined on SPARC if ld does not handle R_SPARC_WDISP22 against .hidden - symbol. sysdeps/sparc/sparc32/elf/configure. */ - #undef BROKEN_SPARC_WDISP22 - -@@ -118,17 +118,20 @@ - /* Define if gcc supports AVX. */ - #undef HAVE_AVX_SUPPORT - -+/* Define if gcc supports VEX encoding. */ -+#undef HAVE_SSE2AVX_SUPPORT -+ - /* Define if gcc supports FMA4. */ - #undef HAVE_FMA4_SUPPORT - --/* Define if the compiler's exception support is based on libunwind. */ -+/* Define if the compiler\'s exception support is based on libunwind. */ - #undef HAVE_CC_WITH_LIBUNWIND - - /* Define if the access to static and hidden variables is position independent - and does not need relocations. */ - #undef PI_STATIC_AND_HIDDEN - --/* Define this to disable the `hidden_proto' et al macros in -+/* Define this to disable the 'hidden_proto' et al macros in - include/libc-symbols.h that avoid PLT slots in the shared objects. */ - #undef NO_HIDDEN - -Index: glibc-2.15/sysdeps/i386/configure -=================================================================== ---- glibc-2.15.orig/sysdeps/i386/configure -+++ glibc-2.15/sysdeps/i386/configure -@@ -756,6 +756,29 @@ if test $libc_cv_cc_avx = yes; then - - fi - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5 -+$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; } -+if ${libc_cv_cc_sse2avx+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if { ac_try='${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; }; then -+ libc_cv_cc_sse2avx=yes -+else -+ libc_cv_cc_sse2avx=no -+fi -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse2avx" >&5 -+$as_echo "$libc_cv_cc_sse2avx" >&6; } -+if test $libc_cv_cc_sse2avx = yes; then -+ $as_echo "#define HAVE_SSE2AVX_SUPPORT 1" >>confdefs.h -+ -+fi -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5 - $as_echo_n "checking for FMA4 support... " >&6; } - if ${libc_cv_cc_fma4+:} false; then : -Index: glibc-2.15/sysdeps/i386/configure.in -=================================================================== ---- glibc-2.15.orig/sysdeps/i386/configure.in -+++ glibc-2.15/sysdeps/i386/configure.in -@@ -67,6 +67,17 @@ if test $libc_cv_cc_avx = yes; then - AC_DEFINE(HAVE_AVX_SUPPORT) - fi - -+dnl Check if -msse2avx works. -+AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl -+if AC_TRY_COMMAND([${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null]); then -+ libc_cv_cc_sse2avx=yes -+else -+ libc_cv_cc_sse2avx=no -+fi]) -+if test $libc_cv_cc_sse2avx = yes; then -+ AC_DEFINE(HAVE_SSE2AVX_SUPPORT) -+fi -+ - dnl Check if -mfma4 works. - AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl - if AC_TRY_COMMAND([${CC-cc} -mfma4 -xc /dev/null -S -o /dev/null]); then -Index: glibc-2.15/sysdeps/x86_64/fpu/multiarch/Makefile -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/fpu/multiarch/Makefile -+++ glibc-2.15/sysdeps/x86_64/fpu/multiarch/Makefile -@@ -34,21 +34,21 @@ CFLAGS-s_sin-fma4.c = -mfma4 - CFLAGS-s_tan-fma4.c = -mfma4 - endif - --ifeq ($(config-cflags-avx),yes) -+ifeq ($(config-cflags-sse2avx),yes) - libm-sysdep_routines += e_exp-avx e_log-avx s_atan-avx \ - e_atan2-avx s_sin-avx s_tan-avx \ - mplog-avx mpa-avx slowexp-avx \ - mpexp-avx - --CFLAGS-e_atan2-avx.c = -mavx --CFLAGS-e_exp-avx.c = -mavx --CFLAGS-e_log-avx.c = -mavx --CFLAGS-mpa-avx.c = -mavx --CFLAGS-mpexp-avx.c = -mavx --CFLAGS-mplog-avx.c = -mavx --CFLAGS-s_atan-avx.c = -mavx --CFLAGS-s_sin-avx.c = -mavx --CFLAGS-slowexp-avx.c = -mavx --CFLAGS-s_tan-avx.c = -mavx -+CFLAGS-e_atan2-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-e_exp-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-e_log-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-mpa-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-slowexp-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX - endif - endif -Index: glibc-2.15/config.make.in -=================================================================== ---- glibc-2.15.orig/config.make.in -+++ glibc-2.15/config.make.in -@@ -36,6 +36,7 @@ asflags-cpu = @libc_cv_cc_submachine@ - - config-cflags-sse4 = @libc_cv_cc_sse4@ - config-cflags-avx = @libc_cv_cc_avx@ -+config-cflags-sse2avx = @libc_cv_cc_sse2avx@ - config-cflags-novzeroupper = @libc_cv_cc_novzeroupper@ - config-asflags-i686 = @libc_cv_as_i686@ - -Index: glibc-2.15/configure -=================================================================== ---- glibc-2.15.orig/configure -+++ glibc-2.15/configure -@@ -625,6 +625,7 @@ use_ldconfig - libc_cv_as_i686 - libc_cv_cc_fma4 - libc_cv_cc_novzeroupper -+libc_cv_cc_sse2avx - libc_cv_cc_avx - libc_cv_cc_sse4 - libc_cv_cpp_asm_debuginfo -Index: glibc-2.15/configure.in -=================================================================== ---- glibc-2.15.orig/configure.in -+++ glibc-2.15/configure.in -@@ -2338,6 +2338,7 @@ dnl sysdeps/CPU/configure.in checks set - AC_SUBST(libc_cv_cpp_asm_debuginfo) - AC_SUBST(libc_cv_cc_sse4) - AC_SUBST(libc_cv_cc_avx) -+AC_SUBST(libc_cv_cc_sse2avx) - AC_SUBST(libc_cv_cc_novzeroupper) - AC_SUBST(libc_cv_cc_fma4) - AC_SUBST(libc_cv_as_i686) - - ---- eglibc-2.15-fma4-orig/sysdeps/x86_64/multiarch/init-arch.c 2012-05-07 10:02:38.869334673 -0700 -+++ eglibc-2.15-fma4-orig/sysdeps/x86_64/multiarch/init-arch.c 2012-05-07 10:01:16.217334959 -0700 -@@ -156,6 +156,11 @@ - __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX; - } - -+ /* FMA4 depends on AVX support */ -+ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_80000001].ecx & bit_FMA4 -+ && (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) == 0) -+ __cpu_features.cpuid[COMMON_CPUID_INDEX_80000001].ecx &= ~bit_FMA4; -+ - __cpu_features.family = family; - __cpu_features.model = model; - atomic_write_barrier (); diff --git a/glibc-2.16-fix-check-localplt.patch b/glibc-2.16-fix-check-localplt.patch deleted file mode 100644 index d01b106..0000000 --- a/glibc-2.16-fix-check-localplt.patch +++ /dev/null @@ -1,33 +0,0 @@ -commit 7c35ffedf144417ba2787322c7b75b4db5c3cb7a -Author: Thomas Schwinge -Date: Fri Feb 10 21:05:54 2012 +0100 - - Fix x86 PLT slot usage for feraiseexcept. - - Then we're elf/check-localplt.out-clean again. - -2012-02-10 Thomas Schwinge - - * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv) Invoke __feraiseexcept - instead of feraiseexcept. - -Index: glibc-2.15/sysdeps/i386/fpu/feupdateenv.c -=================================================================== ---- glibc-2.15.orig/sysdeps/i386/fpu/feupdateenv.c -+++ glibc-2.15/sysdeps/i386/fpu/feupdateenv.c -@@ -1,5 +1,5 @@ - /* Install given floating-point environment and raise exceptions. -- Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc. -+ Copyright (C) 1997,99,2000,01,07,2010,2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1997. - -@@ -45,7 +45,7 @@ __feupdateenv (const fenv_t *envp) - /* Raise the saved exception. Incidently for us the implementation - defined format of the values in objects of type fexcept_t is the - same as the ones specified using the FE_* constants. */ -- feraiseexcept ((int) temp); -+ __feraiseexcept ((int) temp); - - /* Success. */ - return 0; diff --git a/glibc-version.diff b/glibc-version.diff index 39c2ba6..eef08d1 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -8,7 +8,7 @@ Index: glibc-2.15/csu/version.c static const char banner[] = -"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\ - Copyright (C) 2011 Free Software Foundation, Inc.\n\ + Copyright (C) 2012 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index d68494b..effbad9 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed May 23 20:00:55 UTC 2012 - aj@suse.de + +- Update to current git of glibc 2.15 branch: + * obsoletes glibc-2.16-avx.patch, + glibc-2.16-fix-check-localplt.patch + * Fixes for math functions. + +------------------------------------------------------------------- +Wed May 23 11:51:02 UTC 2012 - aj@suse.de + +- Fix first_weekday for tr_TR locale (tr_TR.patch) + +------------------------------------------------------------------- +Wed May 16 08:37:57 UTC 2012 - schwab@linux-m68k.org + +- Fix confstr use of local buffer outside its extent + ------------------------------------------------------------------- Wed May 9 07:30:36 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 6067293..8448706 100644 --- a/glibc.spec +++ b/glibc.spec @@ -115,7 +115,8 @@ Provides: ld-linux.so.3(GLIBC_2.4) %endif Version: 2.15 Release: 0 -%define git_id 2ba92745c36e +%define glibc_major_version 2.15 +%define git_id 60ff996420f9 %define glibc_ports_ver 2.15 %define ports_git_id 8a70b2dcabbf Url: http://www.gnu.org/software/libc/libc.html @@ -263,16 +264,12 @@ Patch1001: glibc-2.16-scanf.patch Patch1002: glibc-ppc-getcontext.patch # PATCH-FIX-UPSTREAM Fix ifunc relocations (bnc#740109) - aj@suse.de Patch1003: glibc-ifunc-2.16.patch -# PATCH-FIX-UPSTREAM Fix tests for AVX features - aj@suse.de -Patch1004: glibc-2.16-avx.patch # PATCH-FIX-UPSTREAM vfprintf: validate nargs and maybe allocate from heap bnc#747768 - aj@suse.de Patch1005: vfprintf-nargs.patch # PATCH-FIX-UPSTREAM Add Arm dependency on libmemusage - bwiedemann@suse.de Patch1006: glibc-add-arm-dependency-libmemusage.patch # PATCH-FIX-UPSTREAM Fix check abi - aj@suse.de Patch1007: glibc-2.16-fix-check-abi.patch -# PATCH-FIX-UPSTREAM Fix check-localelfplt - aj@suse.de -Patch1008: glibc-2.16-fix-check-localplt.patch # PATCH-FIX-UPSTREAM - Allow compilation with -altivec aj@suse.de Patch1009: glibc-uio-cell.diff # PATCH-FIX-UPSTREAM - do not use initfini anymore @@ -281,6 +278,10 @@ Patch1010: glibc-2.16-powerpc-initfini.patch Patch1011: armhf-ld-so.patch # PATCH-FIX-UPSTREAM Add --foreground for nscd (from Fedora) - aj@suse.de Patch1012: glibc-nscd-foreground.patch +# PATCH-FIX-UPSTREAM Fix confstr use of local buffer outside its extent +Patch1013: confstr.patch +# PATCH-FIX-UPSTREAM Use HAS_AVX - aj@suse.de +Patch1014: glibc-2.15-avx2.patch ### # Patches awaiting upstream approval @@ -303,6 +304,8 @@ Patch2008: glibc-ld-profile.patch Patch2009: glibc-fini-unwind.diff # PATCH-FIX-OPENSUSE malloc(0);free gets optimized out Patch2010: glibc-2.16-mcheck.patch +# PATCH-FIX-OPENSUSE Correct first_weekday for tr_TR (glibc bug#13223) - aj@suse.de +Patch2011: tr_TR.patch %description The GNU C Library provides the most important standard libraries used @@ -540,11 +543,9 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 -%patch1004 -p1 %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 -%patch1008 -p1 %patch1009 -p1 %ifarch ppc ppc64 # to support further architectures, some more changes are needed @@ -555,6 +556,8 @@ rm nscd/s-stamp %patch20 -p1 %endif %patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 %patch2001 -p1 %patch2003 -p1 @@ -567,6 +570,7 @@ rm nscd/s-stamp # %patch2008 -p1 %patch2009 -p1 %patch2010 -p1 +%patch2011 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -946,7 +950,7 @@ cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h %ifarch s390x # s390x is different ... mkdir %{buildroot}/lib - ln -sf ../%{_lib}/ld-%{version}.so %{buildroot}/lib/ld64.so.1 + ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 %endif # Miscelanna: @@ -1035,7 +1039,7 @@ install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system %ifarch armv7l armv7hl # Provide compatibility link -ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 %endif ####################################################################### @@ -1109,7 +1113,7 @@ exit 0 %doc %{_mandir}/man1/getent.1.gz %doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{version}.so +/%{_lib}/ld-%{glibc_major_version}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1141,56 +1145,56 @@ exit 0 /%{_lib}/ld-linux.so.2 %endif -/%{_lib}/libBrokenLocale-%{version}.so +/%{_lib}/libBrokenLocale-%{glibc_major_version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{version}.so +/%{_lib}/libanl-%{glibc_major_version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{version}.so +/%{_lib}/libc-%{glibc_major_version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{version}.so +/%{_lib}/libcidn-%{glibc_major_version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{version}.so +/%{_lib}/libcrypt-%{glibc_major_version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libdl-%{version}.so +/%{_lib}/libdl-%{glibc_major_version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{version}.so +/%{_lib}/libm-%{glibc_major_version}.so /%{_lib}/libm.so.6* -/%{_lib}/libnsl-%{version}.so +/%{_lib}/libnsl-%{glibc_major_version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{version}.so +/%{_lib}/libnss_compat-%{glibc_major_version}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{version}.so +/%{_lib}/libnss_db-%{glibc_major_version}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{version}.so +/%{_lib}/libnss_dns-%{glibc_major_version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{version}.so +/%{_lib}/libnss_files-%{glibc_major_version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{version}.so +/%{_lib}/libnss_hesiod-%{glibc_major_version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{version}.so +/%{_lib}/libnss_nis-%{glibc_major_version}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{version}.so +/%{_lib}/libnss_nisplus-%{glibc_major_version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{version}.so +/%{_lib}/libpthread-%{glibc_major_version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{version}.so +/%{_lib}/libresolv-%{glibc_major_version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{version}.so +/%{_lib}/librt-%{glibc_major_version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{version}.so +/%{_lib}/libutil-%{glibc_major_version}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{version}.so\ + /%{_lib}/%1/libc-%{glibc_major_version}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{version}.so\ + /%{_lib}/%1/libm-%{glibc_major_version}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{version}.so\ + /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{version}.so\ + /%{_lib}/%1/librt-%{glibc_major_version}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 @@ -1239,7 +1243,7 @@ exit 0 %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ %dir /%{_lib}/obsolete/noversion - /%{_lib}/obsolete/noversion/libNoVersion-%{version}.so + /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so /%{_lib}/obsolete/noversion/libNoVersion.so.1 %endif diff --git a/tr_TR.patch b/tr_TR.patch new file mode 100644 index 0000000..fce6faa --- /dev/null +++ b/tr_TR.patch @@ -0,0 +1,13 @@ +Index: glibc-2.15/localedata/locales/tr_TR +=================================================================== +--- glibc-2.15.orig/localedata/locales/tr_TR ++++ glibc-2.15/localedata/locales/tr_TR +@@ -3540,6 +3540,8 @@ t_fmt_ampm " + date_fmt "/ + / + " ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_PAPER From d9de58261527c455651386e7674fb8b6b1da12ad9c31c231053b8909c00fd71f Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 26 Jun 2012 13:43:41 +0000 Subject: [PATCH 106/204] Accepting request 126084 from Base:System Fix fmod, strcasecmp_l. (forwarded request 126083 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/126084 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=112 --- glibc-2.15-60ff996420f9.tar.bz2 | 3 - glibc-2.15-avx2.patch | 369 ---------------------- glibc-2.15-b640404bd8c9.tar.xz | 3 + glibc-2.16-expf-underflow-exception.patch | 31 ++ glibc.changes | 24 ++ glibc.spec | 44 ++- nscd.service | 2 +- nscd.socket | 8 - 8 files changed, 80 insertions(+), 404 deletions(-) delete mode 100644 glibc-2.15-60ff996420f9.tar.bz2 delete mode 100644 glibc-2.15-avx2.patch create mode 100644 glibc-2.15-b640404bd8c9.tar.xz create mode 100644 glibc-2.16-expf-underflow-exception.patch delete mode 100644 nscd.socket diff --git a/glibc-2.15-60ff996420f9.tar.bz2 b/glibc-2.15-60ff996420f9.tar.bz2 deleted file mode 100644 index cba4008..0000000 --- a/glibc-2.15-60ff996420f9.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cb9ee564d4afe68d4dceac5f07cc6cbd155df2cd5a021a795b92d7877bf32ef -size 15778016 diff --git a/glibc-2.15-avx2.patch b/glibc-2.15-avx2.patch deleted file mode 100644 index 4719179..0000000 --- a/glibc-2.15-avx2.patch +++ /dev/null @@ -1,369 +0,0 @@ -commit 56f6f6a2403cfa7267cad722597113be35ecf70d -Author: Ulrich Drepper -Date: Sat Jan 28 14:48:46 2012 -0500 - - Use -msse2avx option for x86-64 libm functions - - 2012-01-28 Ulrich Drepper - - * config.h.in: Define HAVE_SSE2AVX_SUPPORT. - * math/math_private.h: Remove libc_fegetround* and - libc_fesetround*. - * sysdeps/i386/configure.in: Check for -msse2avx. - * sysdeps/x86_64/fpu/math_private.h: Use VEX-encoded instructions - also if SSE2AVX is defined. - Remove libc_fegetround* and libc_fesetround*. - * sysdeps/x86_64/fpu/multiarch/Makefile: Compile *-avx functions - if config-cflags-sse2avx is yes. Also add -DSSE2AVX to defines. - * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Use HAS_AVX again instead - of HAS_YMM_USABLE. - * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise. - * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise. - -diff --git a/config.h.in b/config.h.in -index 50d53d4..1489476 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -90,7 +90,7 @@ - certain registers (CR0, MQ, CTR, LR) in asm statements. */ - #undef BROKEN_PPC_ASM_CR0 - --/* Defined on SPARC if ld doesn't handle R_SPARC_WDISP22 against .hidden -+/* Defined on SPARC if ld does not handle R_SPARC_WDISP22 against .hidden - symbol. sysdeps/sparc/sparc32/elf/configure. */ - #undef BROKEN_SPARC_WDISP22 - -@@ -106,17 +106,20 @@ - /* Define if gcc supports AVX. */ - #undef HAVE_AVX_SUPPORT - -+/* Define if gcc supports VEX encoding. */ -+#undef HAVE_SSE2AVX_SUPPORT -+ - /* Define if gcc supports FMA4. */ - #undef HAVE_FMA4_SUPPORT - --/* Define if the compiler's exception support is based on libunwind. */ -+/* Define if the compiler\'s exception support is based on libunwind. */ - #undef HAVE_CC_WITH_LIBUNWIND - - /* Define if the access to static and hidden variables is position independent - and does not need relocations. */ - #undef PI_STATIC_AND_HIDDEN - --/* Define this to disable the `hidden_proto' et al macros in -+/* Define this to disable the 'hidden_proto' et al macros in - include/libc-symbols.h that avoid PLT slots in the shared objects. */ - #undef NO_HIDDEN - -diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure -index ae494e2..bc7900e 100644 ---- a/sysdeps/i386/configure -+++ b/sysdeps/i386/configure -@@ -756,6 +756,29 @@ if test $libc_cv_cc_avx = yes; then - - fi - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5 -+$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; } -+if ${libc_cv_cc_sse2avx+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if { ac_try='${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; }; then -+ libc_cv_cc_sse2avx=yes -+else -+ libc_cv_cc_sse2avx=no -+fi -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse2avx" >&5 -+$as_echo "$libc_cv_cc_sse2avx" >&6; } -+if test $libc_cv_cc_sse2avx = yes; then -+ $as_echo "#define HAVE_SSE2AVX_SUPPORT 1" >>confdefs.h -+ -+fi -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5 - $as_echo_n "checking for FMA4 support... " >&6; } - if ${libc_cv_cc_fma4+:} false; then : -diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in -index 5a9840e..59a4cd6 100644 ---- a/sysdeps/i386/configure.in -+++ b/sysdeps/i386/configure.in -@@ -67,6 +67,17 @@ if test $libc_cv_cc_avx = yes; then - AC_DEFINE(HAVE_AVX_SUPPORT) - fi - -+dnl Check if -msse2avx works. -+AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl -+if AC_TRY_COMMAND([${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null]); then -+ libc_cv_cc_sse2avx=yes -+else -+ libc_cv_cc_sse2avx=no -+fi]) -+if test $libc_cv_cc_sse2avx = yes; then -+ AC_DEFINE(HAVE_SSE2AVX_SUPPORT) -+fi -+ - dnl Check if -mfma4 works. - AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl - if AC_TRY_COMMAND([${CC-cc} -mfma4 -xc /dev/null -S -o /dev/null]); then -diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile -index be68903..4b5c173 100644 ---- a/sysdeps/x86_64/fpu/multiarch/Makefile -+++ b/sysdeps/x86_64/fpu/multiarch/Makefile -@@ -34,21 +34,21 @@ CFLAGS-s_sin-fma4.c = -mfma4 - CFLAGS-s_tan-fma4.c = -mfma4 - endif - --ifeq ($(config-cflags-avx),yes) -+ifeq ($(config-cflags-sse2avx),yes) - libm-sysdep_routines += e_exp-avx e_log-avx s_atan-avx \ - e_atan2-avx s_sin-avx s_tan-avx \ - mplog-avx mpa-avx slowexp-avx \ - mpexp-avx - --CFLAGS-e_atan2-avx.c = -mavx --CFLAGS-e_exp-avx.c = -mavx --CFLAGS-e_log-avx.c = -mavx --CFLAGS-mpa-avx.c = -mavx --CFLAGS-mpexp-avx.c = -mavx --CFLAGS-mplog-avx.c = -mavx --CFLAGS-s_atan-avx.c = -mavx --CFLAGS-s_sin-avx.c = -mavx --CFLAGS-slowexp-avx.c = -mavx --CFLAGS-s_tan-avx.c = -mavx -+CFLAGS-e_atan2-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-e_exp-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-e_log-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-mpa-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX -+CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX -+CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX - endif - endif -diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c -index 3a615fc..6867c6e 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c -@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); - - libm_ifunc (__ieee754_atan2, - HAS_FMA4 ? __ieee754_atan2_fma4 -- : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); -+ : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); - strong_alias (__ieee754_atan2, __atan2_finite) - - # define __ieee754_atan2 __ieee754_atan2_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c -index 7b2320a..3c65028 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_exp.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c -@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); - - libm_ifunc (__ieee754_exp, - HAS_FMA4 ? __ieee754_exp_fma4 -- : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); -+ : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); - strong_alias (__ieee754_exp, __exp_finite) - - # define __ieee754_exp __ieee754_exp_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c -index ab277d6..05f3668 100644 ---- a/sysdeps/x86_64/fpu/multiarch/e_log.c -+++ b/sysdeps/x86_64/fpu/multiarch/e_log.c -@@ -14,8 +14,7 @@ extern double __ieee754_log_fma4 (double); - - libm_ifunc (__ieee754_log, - HAS_FMA4 ? __ieee754_log_fma4 -- : (HAS_YMM_USABLE ? __ieee754_log_avx -- : __ieee754_log_sse2)); -+ : (HAS_AVX ? __ieee754_log_avx : __ieee754_log_sse2)); - strong_alias (__ieee754_log, __log_finite) - - # define __ieee754_log __ieee754_log_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c -index 78c7e09..ae16d7c 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_atan.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c -@@ -13,7 +13,7 @@ extern double __atan_fma4 (double); - # endif - - libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : -- HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); -+ HAS_AVX ? __atan_avx : __atan_sse2)); - - # define atan __atan_sse2 - #endif -diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c -index 417acd0..a0c2521 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_sin.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c -@@ -18,11 +18,11 @@ extern double __sin_fma4 (double); - # endif - - libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : -- HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); -+ HAS_AVX ? __cos_avx : __cos_sse2)); - weak_alias (__cos, cos) - - libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : -- HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); -+ HAS_AVX ? __sin_avx : __sin_sse2)); - weak_alias (__sin, sin) - - # define __cos __cos_sse2 -diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c -index 3047155..904308f 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_tan.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c -@@ -13,7 +13,7 @@ extern double __tan_fma4 (double); - # endif - - libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : -- HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); -+ HAS_AVX ? __tan_avx : __tan_sse2)); - - # define tan __tan_sse2 - #endif -commit 7998fa7899a29803ad4512002636332dfee48451 -Author: Andreas Schwab -Date: Fri Mar 16 16:07:57 2012 +0100 - - Disable use of FMA instructions in branred - -2012-03-21 Andreas Schwab - - * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines): - Remove brandred-fma4. - (CFLAGS-brandred-fma4.c): Remove. - * sysdeps/x86_64/fpu/multiarch/brandred-fma4.c: Remove. - * sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c (__branred): Don't - define. - * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (__branred): Don't - define. - - - * stdio-common/_itoa.c: Check _ITOA_NEEDED instead of - -diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile -index 2a38ffc..12b0526 100644 ---- a/sysdeps/x86_64/fpu/multiarch/Makefile -+++ b/sysdeps/x86_64/fpu/multiarch/Makefile -@@ -7,10 +7,9 @@ libm-sysdep_routines += e_exp-fma4 e_log-fma4 e_pow-fma4 s_atan-fma4 \ - e_asin-fma4 e_atan2-fma4 s_sin-fma4 s_tan-fma4 \ - mplog-fma4 mpa-fma4 slowexp-fma4 slowpow-fma4 \ - sincos32-fma4 doasin-fma4 dosincos-fma4 \ -- brandred-fma4 halfulp-fma4 mpexp-fma4 \ -+ halfulp-fma4 mpexp-fma4 \ - mpatan2-fma4 mpatan-fma4 mpsqrt-fma4 mptan-fma4 - --CFLAGS-brandred-fma4.c = -mfma4 - CFLAGS-doasin-fma4.c = -mfma4 - CFLAGS-dosincos-fma4.c = -mfma4 - CFLAGS-e_asin-fma4.c = -mfma4 -diff --git a/sysdeps/x86_64/fpu/multiarch/brandred-fma4.c b/sysdeps/x86_64/fpu/multiarch/brandred-fma4.c -deleted file mode 100644 -index f4f68ac..0000000 ---- a/sysdeps/x86_64/fpu/multiarch/brandred-fma4.c -+++ /dev/null -@@ -1,4 +0,0 @@ --#define __branred __branred_fma4 --#define SECTION __attribute__ ((section (".text.fma4"))) -- --#include -diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c b/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c -index 2501af9..4c35739 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_sin-fma4.c -@@ -1,6 +1,5 @@ - #define __cos __cos_fma4 - #define __sin __sin_fma4 --#define __branred __branred_fma4 - #define __docos __docos_fma4 - #define __dubsin __dubsin_fma4 - #define __mpcos __mpcos_fma4 -diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c b/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c -index d7dab3c..a805440 100644 ---- a/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c -+++ b/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c -@@ -1,5 +1,4 @@ - #define tan __tan_fma4 --#define __branred __branred_fma4 - #define __dbl_mp __dbl_mp_fma4 - #define __mpranred __mpranred_fma4 - #define __mptan __mptan_fma4 -commit 3b1004624e54cc2fefd034ff80d5dea4b6db764f -Author: Joseph Myers -Date: Mon Jan 30 19:55:15 2012 +0000 - - Fix makefile/configure problems with sse2avx changes. - -2012-01-30 Joseph Myers - - * configure.in (libc_cv_cc_sse2avx): AC_SUBST. - * configure: Regenerate. - * config.make.in (config-cflags-sse2avx): Define. - * sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-slowexp-avx.c): - Fix typo. - - * scripts/config.guess: Update from upstream config git repository. -diff --git a/config.make.in b/config.make.in -index d937952..75061f6 100644 ---- a/config.make.in -+++ b/config.make.in -@@ -36,6 +36,7 @@ asflags-cpu = @libc_cv_cc_submachine@ - - config-cflags-sse4 = @libc_cv_cc_sse4@ - config-cflags-avx = @libc_cv_cc_avx@ -+config-cflags-sse2avx = @libc_cv_cc_sse2avx@ - config-cflags-novzeroupper = @libc_cv_cc_novzeroupper@ - config-asflags-i686 = @libc_cv_as_i686@ - -diff --git a/configure b/configure -index 71e8de1..508e1bb 100755 ---- a/configure -+++ b/configure -@@ -620,6 +620,7 @@ use_ldconfig - libc_cv_as_i686 - libc_cv_cc_fma4 - libc_cv_cc_novzeroupper -+libc_cv_cc_sse2avx - libc_cv_cc_avx - libc_cv_cc_sse4 - libc_cv_cpp_asm_debuginfo -diff --git a/configure.in b/configure.in -index 5fd6d85..0499d3c 100644 ---- a/configure.in -+++ b/configure.in -@@ -2154,6 +2154,7 @@ dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests - AC_SUBST(libc_cv_cpp_asm_debuginfo) - AC_SUBST(libc_cv_cc_sse4) - AC_SUBST(libc_cv_cc_avx) -+AC_SUBST(libc_cv_cc_sse2avx) - AC_SUBST(libc_cv_cc_novzeroupper) - AC_SUBST(libc_cv_cc_fma4) - AC_SUBST(libc_cv_as_i686) -diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile -index 4b5c173..2a38ffc 100644 ---- a/sysdeps/x86_64/fpu/multiarch/Makefile -+++ b/sysdeps/x86_64/fpu/multiarch/Makefile -@@ -48,7 +48,7 @@ CFLAGS-mpexp-avx.c = -msse2avx -DSSE2AVX - CFLAGS-mplog-avx.c = -msse2avx -DSSE2AVX - CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX - CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX --CFLAGS-slowexp-avx.c = -sse2mavx -DSSE2AVX -+CFLAGS-slowexp-avx.c = -msse2avx -DSSE2AVX - CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX - endif - endif diff --git a/glibc-2.15-b640404bd8c9.tar.xz b/glibc-2.15-b640404bd8c9.tar.xz new file mode 100644 index 0000000..5a16917 --- /dev/null +++ b/glibc-2.15-b640404bd8c9.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52470be67846a71f161cd3c77bc8c1768e43c0205cafea86f4317d885e3d83eb +size 10355188 diff --git a/glibc-2.16-expf-underflow-exception.patch b/glibc-2.16-expf-underflow-exception.patch new file mode 100644 index 0000000..bf94ab6 --- /dev/null +++ b/glibc-2.16-expf-underflow-exception.patch @@ -0,0 +1,31 @@ +commit f77f12320635155da728a3c1adb75ff9914cf686 +Author: Aurelien Jarno +Date: Sun Apr 8 22:45:13 2012 +0000 + + Use __kernel_standard instead of __kernel_standard_f in exp wrapper (bug 13705). + +2012-04-08 Aurelien Jarno + + [BZ #13705] + * sysdeps/ieee754/dbl-64/w_exp.c (__exp): Use __kernel_standard + instead of __kernel_standard_f. + +diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c +index b584ed8..aa8ff76 100644 +--- a/sysdeps/ieee754/dbl-64/w_exp.c ++++ b/sysdeps/ieee754/dbl-64/w_exp.c +@@ -31,12 +31,12 @@ __exp (double x) + if (__builtin_expect (isgreater (x, o_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) +- return __kernel_standard_f (x, x, 6); ++ return __kernel_standard (x, x, 6); + } + else if (__builtin_expect (isless (x, u_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) +- return __kernel_standard_f (x, x, 7); ++ return __kernel_standard (x, x, 7); + } + + return __ieee754_exp (x); diff --git a/glibc.changes b/glibc.changes index effbad9..b0bd8c1 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Tue Jun 26 07:11:49 UTC 2012 - aj@suse.de + +- Update to glibc 2.15 branch (git id b640404bd8c9): + * Fix fmod implementation that returned NaN for some values. + * Fix strcase_cmp_l x86 multiarch implementation. + * Remove glibc-2.15-avx2.patch, merged now. + +------------------------------------------------------------------- +Thu Jun 21 11:44:59 UTC 2012 - aj@suse.de + +- Fix Bogus FP exception on underflow for exp(double) (bnc#767956) + +------------------------------------------------------------------- +Mon Jun 18 11:04:37 UTC 2012 - aj@suse.de + +- Remove nscd.socket since nscd does not support socket + activation. + +------------------------------------------------------------------- +Wed Jun 13 11:07:15 UTC 2012 - aj@suse.de + +- Build power3 libs on 32-bit PowerPC (bnc#765165). + ------------------------------------------------------------------- Wed May 23 20:00:55 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 8448706..7727735 100644 --- a/glibc.spec +++ b/glibc.spec @@ -68,14 +68,15 @@ BuildRequires: libstdc++-devel %ifarch ppc ppc64 %define optimize_power 1 %ifarch ppc - %define powerpc_optimize_base power4 - %define powerpc_optimize_tune power4 + %define powerpc_optimize_base power3 + %define powerpc_optimize_tune power3 + %define powerpc_optimize_cpu_power4 1 %else %define powerpc_optimize_base power4 %define powerpc_optimize_tune power5 + %define powerpc_optimize_cpu_power4 0 %endif # We are not building Power CPU specific optimizations for openSUSE. - %define powerpc_optimize_cpu_power4 0 %define powerpc_optimize_cpu_power6 0 %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 @@ -116,12 +117,12 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.15 Release: 0 %define glibc_major_version 2.15 -%define git_id 60ff996420f9 +%define git_id b640404bd8c9 %define glibc_ports_ver 2.15 %define ports_git_id 8a70b2dcabbf Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.bz2 +Source: glibc-%{version}-%{git_id}.tar.xz %define glibc_ports_dir glibc-ports-%{glibc_ports_ver} Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2 Source3: noversion.tar.bz2 @@ -135,7 +136,6 @@ Source10: baselibs.conf # For systemd Source20: nscd.conf Source21: nscd.service -Source22: nscd.socket # crypt_blowfish Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign @@ -218,8 +218,6 @@ Patch101: glibc-2.4.90-revert-only-euro.diff Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China Patch103: glibc-2.4-china.diff -# PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 -Patch104: gb18030.patch.bz2 ### Broken patches in glibc that we revert for now: # PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de @@ -280,16 +278,22 @@ Patch1011: armhf-ld-so.patch Patch1012: glibc-nscd-foreground.patch # PATCH-FIX-UPSTREAM Fix confstr use of local buffer outside its extent Patch1013: confstr.patch -# PATCH-FIX-UPSTREAM Use HAS_AVX - aj@suse.de -Patch1014: glibc-2.15-avx2.patch +# PATCH-FIX-UPSTREAM Bogus FPE on underflow for exp(double) bnc#767956 - aj@suse.de +Patch1015: glibc-2.16-expf-underflow-exception.patch +# PATCH-FIX-UPSTREAM Fix gb18030 code bnc#54080 +Patch1016: gb18030.patch.bz2 +# PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de +Patch1017: glibc-nscd-crash-bso13594.patch +# PATCH-FIX-UPSTREAM malloc(0);free gets optimized out +Patch1018: glibc-2.16-mcheck.patch +# PATCH-FIX-UPSTREAM Correct first_weekday for tr_TR (glibc bug#13223) - aj@suse.de +Patch1019: tr_TR.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) Patch2001: glibc-resolv-assert.diff -# PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de -Patch2003: glibc-nscd-crash-bso13594.patch # PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de Patch2004: glibc-fix-noload.patch # PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 @@ -302,10 +306,6 @@ Patch2007: glibc-sw13618-2.patch Patch2008: glibc-ld-profile.patch # PATCH-FIX-OPENSUSE _fini does not have proper unwinding information on x86_64 bso#11610 Patch2009: glibc-fini-unwind.diff -# PATCH-FIX-OPENSUSE malloc(0);free gets optimized out -Patch2010: glibc-2.16-mcheck.patch -# PATCH-FIX-OPENSUSE Correct first_weekday for tr_TR (glibc bug#13223) - aj@suse.de -Patch2011: tr_TR.patch %description The GNU C Library provides the most important standard libraries used @@ -521,7 +521,6 @@ rm nscd/s-stamp %patch101 -p1 %patch102 -p1 %patch103 -p1 -%patch104 -p1 %patch200 -p1 %patch201 -p1 @@ -557,10 +556,13 @@ rm nscd/s-stamp %endif %patch1012 -p1 %patch1013 -p1 -%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 %patch2001 -p1 -%patch2003 -p1 %patch2004 -p1 # XXX: Does not pass testsuite, still there's no better solution yet %patch2005 -p1 @@ -569,8 +571,6 @@ rm nscd/s-stamp # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 %patch2009 -p1 -%patch2010 -p1 -%patch2011 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -1035,7 +1035,6 @@ mkdir -p %{buildroot}/usr/lib/tmpfiles.d/ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ mkdir -p %{buildroot}/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/lib/systemd/system -install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system %ifarch armv7l armv7hl # Provide compatibility link @@ -1318,7 +1317,6 @@ exit 0 %{_sbindir}/nscd %{_sbindir}/rcnscd /lib/systemd/system/nscd.service -/lib/systemd/system/nscd.socket %dir /usr/lib/tmpfiles.d /usr/lib/tmpfiles.d/nscd.conf %dir %attr(0755,root,root) %ghost /var/run/nscd diff --git a/nscd.service b/nscd.service index a4a25d0..4734948 100644 --- a/nscd.service +++ b/nscd.service @@ -14,4 +14,4 @@ Restart=always [Install] WantedBy=multi-user.target -Also=nscd.socket + diff --git a/nscd.socket b/nscd.socket deleted file mode 100644 index cec9134..0000000 --- a/nscd.socket +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Name Service Cache Daemon Socket - -[Socket] -ListenDatagram=/var/run/nscd/socket - -[Install] -WantedBy=sockets.target From a44bbd8212add4c889fc83d827819c0fac34eeed9d15e1b03f72d3417bd4e800 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 28 Jun 2012 15:24:50 +0000 Subject: [PATCH 107/204] Accepting request 126451 from Base:System Fix cosh bug (forwarded request 126450 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/126451 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=113 --- glibc-2.15-725b8ee08aff.tar.xz | 3 +++ glibc-2.15-b640404bd8c9.tar.xz | 3 --- glibc.changes | 11 +++++++++++ glibc.spec | 4 ++-- 4 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 glibc-2.15-725b8ee08aff.tar.xz delete mode 100644 glibc-2.15-b640404bd8c9.tar.xz diff --git a/glibc-2.15-725b8ee08aff.tar.xz b/glibc-2.15-725b8ee08aff.tar.xz new file mode 100644 index 0000000..6e695ae --- /dev/null +++ b/glibc-2.15-725b8ee08aff.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f975b80a8fb0fe9984d7dc3e97d2ab1af652c2228ec6d90c36789e71e17ff37b +size 10376824 diff --git a/glibc-2.15-b640404bd8c9.tar.xz b/glibc-2.15-b640404bd8c9.tar.xz deleted file mode 100644 index 5a16917..0000000 --- a/glibc-2.15-b640404bd8c9.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52470be67846a71f161cd3c77bc8c1768e43c0205cafea86f4317d885e3d83eb -size 10355188 diff --git a/glibc.changes b/glibc.changes index b0bd8c1..7dc494a 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Thu Jun 28 12:33:50 UTC 2012 - aj@suse.de + +- Update to glibc 2.15-branch (git id 725b8ee08aff): + * Fix regression in cosh (bso#14273) + +------------------------------------------------------------------- +Wed Jun 27 07:34:15 UTC 2012 - aj@suse.de + +- Testsuite is ok to fail on arm + ------------------------------------------------------------------- Tue Jun 26 07:11:49 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 7727735..ecc0995 100644 --- a/glibc.spec +++ b/glibc.spec @@ -117,7 +117,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.15 Release: 0 %define glibc_major_version 2.15 -%define git_id b640404bd8c9 +%define git_id 725b8ee08aff %define glibc_ports_ver 2.15 %define ports_git_id 8a70b2dcabbf Url: http://www.gnu.org/software/libc/libc.html @@ -818,7 +818,7 @@ export SUSE_ASNEEDED=0 %if %{run_testsuite} # Increase timeout export TIMEOUTFACTOR=16 - %ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 + %ifarch %arm alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 # ix86: tst-cputimer? fails # ia64: tst-timer4 fails # ppc64: tst-pselect, ftwtest fails From db7019c583d8ef033afb503ca5b38623f45ebe5d29c2fcc16ea12c93d01c2749 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 29 Jun 2012 08:19:33 +0000 Subject: [PATCH 108/204] Accepting request 126487 from Base:System Remove nscd.socket (forwarded request 126486 from <bound method Request.get_creator of <osc.core.Request instance at 0x7fb26e755cf8>>) OBS-URL: https://build.opensuse.org/request/show/126487 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=114 --- glibc.changes | 5 +++++ glibc.spec | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/glibc.changes b/glibc.changes index 7dc494a..c59a978 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jun 28 18:46:30 UTC 2012 - aj@suse.de + +- Remove not anymore existing nscd.socket. + ------------------------------------------------------------------- Thu Jun 28 12:33:50 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index ecc0995..2a78fdc 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1079,11 +1079,18 @@ done %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz %preun -n nscd + %stop_on_removal nscd %post -n nscd %{insserv_force_if_yast nscd} mkdir -p /var/run/nscd +# Previously we had nscd.socket, remove it +test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket || : +test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket || : +# Hard removal in case the above did not work +rm -f /etc/systemd/system/sockets.target.wants/nscd.socket +exit 0 %postun -n nscd %restart_on_update nscd From 82f33256ad4c8fe350875d725a6c6cd2d33075cafab4b324e8cd0f44e598478e Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 3 Jul 2012 18:25:51 +0000 Subject: [PATCH 109/204] Accepting request 126931 from Base:System - Backport *context patch for ARM from 2.16, so we have a working libpth (forwarded request 126930 from algraf) OBS-URL: https://build.opensuse.org/request/show/126931 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=115 --- glibc-2.16-arm-context.patch | 452 +++++++++++++++++++++++++++++++++++ glibc.changes | 5 + glibc.spec | 3 + 3 files changed, 460 insertions(+) create mode 100644 glibc-2.16-arm-context.patch diff --git a/glibc-2.16-arm-context.patch b/glibc-2.16-arm-context.patch new file mode 100644 index 0000000..42e3bdd --- /dev/null +++ b/glibc-2.16-arm-context.patch @@ -0,0 +1,452 @@ +From 402a76b62dded0ee93cfec0471aaeccb989196d2 Mon Sep 17 00:00:00 2001 +From: Michael Hope +Date: Mon, 5 Mar 2012 17:58:13 -0500 +Subject: [PATCH] ARM: Implement *context routines. + + * sysdeps/unix/sysv/linux/arm/eabi/getcontext.S: New file. + * sysdeps/unix/sysv/linux/arm/eabi/makecontext.c: New file. + * sysdeps/unix/sysv/linux/arm/eabi/setcontext.S: New file. + * sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S: New file. + * sysdeps/unix/sysv/linux/arm/ucontext_i.sym: New file. + * sysdeps/unix/sysv/linux/arm/Makefile (gen-as-const-headers): Add + ucontext_i.sym. +--- + ChangeLog.arm | 10 ++ + sysdeps/unix/sysv/linux/arm/Makefile | 4 + + sysdeps/unix/sysv/linux/arm/eabi/getcontext.S | 113 ++++++++++++++++++++++++ + sysdeps/unix/sysv/linux/arm/eabi/makecontext.c | 73 +++++++++++++++ + sysdeps/unix/sysv/linux/arm/eabi/setcontext.S | 101 +++++++++++++++++++++ + sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S | 63 +++++++++++++ + sysdeps/unix/sysv/linux/arm/ucontext_i.sym | 30 ++++++ + 7 files changed, 394 insertions(+), 0 deletions(-) + create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/getcontext.S + create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/makecontext.c + create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/setcontext.S + create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S + create mode 100644 sysdeps/unix/sysv/linux/arm/ucontext_i.sym + +diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile +index d91b968..a981736 100644 +--- a/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/Makefile ++++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/Makefile +@@ -20,3 +20,7 @@ endif + ifeq ($(subdir),resource) + sysdep_routines += oldgetrlimit64 + endif ++ ++ifeq ($(subdir),stdlib) ++gen-as-const-headers += ucontext_i.sym ++endif +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S b/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S +new file mode 100644 +index 0000000..435eb12 +--- /dev/null ++++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S +@@ -0,0 +1,113 @@ ++/* Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include "ucontext_i.h" ++ ++ .syntax unified ++ .text ++ ++/* int getcontext (ucontext_t *ucp) */ ++ ++ENTRY(__getcontext) ++ /* No need to save r0-r3, d0-d7, or d16-d31. */ ++ add r1, r0, #MCONTEXT_ARM_R4 ++ stmia r1, {r4-r11} ++ ++ /* Save R13 separately as Thumb can't STM it. */ ++ str r13, [r0, #MCONTEXT_ARM_SP] ++ str r14, [r0, #MCONTEXT_ARM_LR] ++ /* Return to LR */ ++ str r14, [r0, #MCONTEXT_ARM_PC] ++ /* Return zero */ ++ mov r2, #0 ++ str r2, [r0, #MCONTEXT_ARM_R0] ++ ++ /* Save ucontext_t * across the next call. */ ++ mov r4, r0 ++ ++ /* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */ ++ mov r0, #SIG_BLOCK ++ mov r1, #0 ++ add r2, r4, #UCONTEXT_SIGMASK ++ bl PLTJMP(__sigprocmask) ++ ++ /* Store FP regs. Much of the FP code is copied from arm/eabi/setjmp.S. */ ++ ++#ifdef PIC ++ ldr r2, 1f ++ ldr r1, Lrtld_global_ro ++0: add r2, pc, r2 ++ ldr r2, [r2, r1] ++ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] ++#else ++ ldr r2, Lhwcap ++ ldr r2, [r2, #0] ++#endif ++ ++ add r0, r4, #UCONTEXT_REGSPACE ++ ++ tst r2, #HWCAP_ARM_VFP ++ beq Lno_vfp ++ ++ /* Store the VFP registers. ++ Don't use VFP instructions directly because this code ++ is used in non-VFP multilibs. */ ++ /* Following instruction is vstmia r0!, {d8-d15}. */ ++ stc p11, cr8, [r0], #64 ++ /* Store the floating-point status register. */ ++ /* Following instruction is vmrs r1, fpscr. */ ++ mrc p10, 7, r1, cr1, cr0, 0 ++ str r1, [r0], #4 ++Lno_vfp: ++ ++ tst r2, #HWCAP_ARM_IWMMXT ++ beq Lno_iwmmxt ++ ++ /* Save the call-preserved iWMMXt registers. */ ++ /* Following instructions are wstrd wr10, [r0], #8 (etc.) */ ++ stcl p1, cr10, [r0], #8 ++ stcl p1, cr11, [r0], #8 ++ stcl p1, cr12, [r0], #8 ++ stcl p1, cr13, [r0], #8 ++ stcl p1, cr14, [r0], #8 ++ stcl p1, cr15, [r0], #8 ++Lno_iwmmxt: ++ ++ /* Restore the clobbered R4 and LR. */ ++ ldr r14, [r4, #MCONTEXT_ARM_LR] ++ ldr r4, [r4, #MCONTEXT_ARM_R4] ++ ++ mov r0, #0 ++ ++ DO_RET(r14) ++ ++END(__getcontext) ++ ++#ifdef PIC ++1: .long _GLOBAL_OFFSET_TABLE_ - 0b - 8 ++Lrtld_global_ro: ++ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT) ++#else ++Lhwcap: ++ .long C_SYMBOL_NAME(_dl_hwcap) ++#endif ++ ++ ++weak_alias(__getcontext, getcontext) +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c b/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c +new file mode 100644 +index 0000000..d6ae6f0 +--- /dev/null ++++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c +@@ -0,0 +1,73 @@ ++/* Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++/* Number of arguments that go in registers. */ ++#define NREG_ARGS 4 ++ ++/* Take a context previously prepared via getcontext() and set to ++ call func() with the given int only args. */ ++void ++__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) ++{ ++ extern void __startcontext (void); ++ unsigned long *funcstack; ++ va_list vl; ++ unsigned long *regptr; ++ unsigned int reg; ++ int misaligned; ++ ++ /* Start at the top of stack. */ ++ funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); ++ ++ /* Ensure the stack stays eight byte aligned. */ ++ misaligned = ((unsigned long) funcstack & 4) != 0; ++ ++ if ((argc > NREG_ARGS) && (argc & 1) != 0) ++ misaligned = !misaligned; ++ ++ if (misaligned) ++ funcstack -= 1; ++ ++ va_start (vl, argc); ++ ++ /* Reserve space for the on-stack arguments. */ ++ if (argc > NREG_ARGS) ++ funcstack -= (argc - NREG_ARGS); ++ ++ ucp->uc_mcontext.arm_sp = (unsigned long) funcstack; ++ ucp->uc_mcontext.arm_pc = (unsigned long) func; ++ ++ /* Exit to startcontext() with the next context in R4 */ ++ ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link; ++ ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext; ++ ++ /* The first four arguments go into registers. */ ++ regptr = &(ucp->uc_mcontext.arm_r0); ++ ++ for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++) ++ *regptr++ = va_arg (vl, unsigned long); ++ ++ /* And the remainder on the stack. */ ++ for (; reg < argc; reg++) ++ *funcstack++ = va_arg (vl, unsigned long); ++ ++ va_end (vl); ++} ++weak_alias (__makecontext, makecontext) +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S b/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S +new file mode 100644 +index 0000000..78003f5 +--- /dev/null ++++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S +@@ -0,0 +1,101 @@ ++/* Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include "ucontext_i.h" ++ ++ .syntax unified ++ .text ++ ++/* int setcontext (const ucontext_t *ucp) */ ++ ++ENTRY(__setcontext) ++ mov r4, r0 ++ add r0, r0, #UCONTEXT_REGSPACE ++ ++ /* Restore the VFP registers. Copied from arm/eabi/__longjmp.S. */ ++#ifdef PIC ++ ldr r2, 1f ++ ldr r1, Lrtld_global_ro ++0: add r2, pc, r2 ++ ldr r2, [r2, r1] ++ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] ++#else ++ ldr r2, Lhwcap ++ ldr r2, [r2, #0] ++#endif ++ ++ tst r2, #HWCAP_ARM_VFP ++ beq Lno_vfp_sc ++ ++ /* Following instruction is vldmia r0!, {d8-d15}. */ ++ ldc p11, cr8, [r0], #64 ++ /* Restore the floating-point status register. */ ++ ldr r1, [r0], #4 ++ /* Following instruction is fmxr fpscr, r1. */ ++ mcr p10, 7, r1, cr1, cr0, 0 ++Lno_vfp_sc: ++ tst r2, #HWCAP_ARM_IWMMXT ++ beq Lno_iwmmxt_sc ++ ++ /* Restore the call-preserved iWMMXt registers. */ ++ /* Following instructions are wldrd wr10, [r0], #8 (etc.) */ ++ ldcl p1, cr10, [r0], #8 ++ ldcl p1, cr11, [r0], #8 ++ ldcl p1, cr12, [r0], #8 ++ ldcl p1, cr13, [r0], #8 ++ ldcl p1, cr14, [r0], #8 ++ ldcl p1, cr15, [r0], #8 ++Lno_iwmmxt_sc: ++ ++ /* Now bring back the signal status. */ ++ mov r0, #SIG_SETMASK ++ add r1, r4, #UCONTEXT_SIGMASK ++ mov r2, #0 ++ bl PLTJMP(__sigprocmask) ++ ++ /* Loading r0-r3 makes makecontext easier. */ ++ add r14, r4, #MCONTEXT_ARM_R0 ++ ldmia r14, {r0-r12} ++ ldr r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)] ++ add r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0) ++ ldmia r14, {r14, pc} ++ ++END(setcontext) ++weak_alias(__setcontext, setcontext) ++ ++ /* Called when a makecontext() context returns. Start the ++ context in R4 or fall through to exit(). */ ++ENTRY(__startcontext) ++ movs r0, r4 ++ bne PLTJMP(__setcontext) ++ ++ @ New context was 0 - exit ++ b PLTJMP(_exit) ++END(__startcontext) ++ ++#ifdef PIC ++1: .long _GLOBAL_OFFSET_TABLE_ - 0b - 8 ++Lrtld_global_ro: ++ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT) ++#else ++Lhwcap: ++ .long C_SYMBOL_NAME(_dl_hwcap) ++#endif ++ +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S b/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S +new file mode 100644 +index 0000000..09492d0 +--- /dev/null ++++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S +@@ -0,0 +1,63 @@ ++/* Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include "ucontext_i.h" ++ ++ .syntax unified ++ .text ++ ++/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */ ++ ++ENTRY(swapcontext) ++ ++ /* Have getcontext() do most of the work then fix up ++ LR afterwards. Save R3 to keep the stack aligned. */ ++ push {r0,r1,r3,r14} ++ cfi_adjust_cfa_offset (16) ++ cfi_rel_offset (r0,0) ++ cfi_rel_offset (r1,4) ++ cfi_rel_offset (r3,8) ++ cfi_rel_offset (r14,12) ++ ++ bl __getcontext ++ mov r4, r0 ++ ++ pop {r0,r1,r3,r14} ++ cfi_adjust_cfa_offset (-16) ++ cfi_restore (r0) ++ cfi_restore (r1) ++ cfi_restore (r3) ++ cfi_restore (r14) ++ ++ /* Exit if getcontext() failed. */ ++ cmp r4, #0 ++ itt ne ++ movne r0, r4 ++ RETINSTR(ne, r14) ++ ++ /* Fix up LR and the PC. */ ++ str r13,[r0, #MCONTEXT_ARM_SP] ++ str r14,[r0, #MCONTEXT_ARM_LR] ++ str r14,[r0, #MCONTEXT_ARM_PC] ++ ++ /* And swap using swapcontext(). */ ++ mov r0, r1 ++ b __setcontext ++ ++END(swapcontext) +diff --git a/sysdeps/unix/sysv/linux/arm/ucontext_i.sym b/sysdeps/unix/sysv/linux/arm/ucontext_i.sym +new file mode 100644 +index 0000000..306292f +--- /dev/null ++++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/ucontext_i.sym +@@ -0,0 +1,30 @@ ++#include ++#include ++#include ++#include ++ ++SIG_BLOCK ++SIG_SETMASK ++ ++-- Offsets of the fields in the ucontext_t structure. ++#define ucontext(member) offsetof (ucontext_t, member) ++#define mcontext(member) ucontext (uc_mcontext.member) ++ ++UCONTEXT_FLAGS ucontext (uc_flags) ++UCONTEXT_LINK ucontext (uc_link) ++UCONTEXT_STACK ucontext (uc_stack) ++UCONTEXT_MCONTEXT ucontext (uc_mcontext) ++UCONTEXT_SIGMASK ucontext (uc_sigmask) ++ ++UCONTEXT_REGSPACE ucontext (uc_regspace) ++ ++MCONTEXT_TRAP_NO mcontext (trap_no) ++MCONTEXT_ERROR_CODE mcontext (error_code) ++MCONTEXT_OLDMASK mcontext (oldmask) ++MCONTEXT_ARM_R0 mcontext (arm_r0) ++MCONTEXT_ARM_R4 mcontext (arm_r4) ++MCONTEXT_ARM_SP mcontext (arm_sp) ++MCONTEXT_ARM_LR mcontext (arm_lr) ++MCONTEXT_ARM_PC mcontext (arm_pc) ++MCONTEXT_ARM_CPSR mcontext (arm_cpsr) ++MCONTEXT_FAULT_ADDRESS mcontext (fault_address) +-- +1.7.3.4 + diff --git a/glibc.changes b/glibc.changes index c59a978..5f1687a 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jul 2 16:23:15 UTC 2012 - agraf@suse.com + +- Backport *context patch for ARM from 2.16, so we have a working libpth + ------------------------------------------------------------------- Thu Jun 28 18:46:30 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 2a78fdc..36a925d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -288,6 +288,8 @@ Patch1017: glibc-nscd-crash-bso13594.patch Patch1018: glibc-2.16-mcheck.patch # PATCH-FIX-UPSTREAM Correct first_weekday for tr_TR (glibc bug#13223) - aj@suse.de Patch1019: tr_TR.patch +# PATCH-FIX-UPSTREAM implement *context on ARM - agraf@suse.de +Patch1020: glibc-2.16-arm-context.patch ### # Patches awaiting upstream approval @@ -561,6 +563,7 @@ rm nscd/s-stamp %patch1017 -p1 %patch1018 -p1 %patch1019 -p1 +%patch1020 -p1 %patch2001 -p1 %patch2004 -p1 From 8d13ce1a5a8a3effff74283cd51976aae8fde3cffb066ca25128467bdac59249 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 9 Jul 2012 11:27:38 +0000 Subject: [PATCH 110/204] Accepting request 127123 from Base:System Fix two bugs in name resolving. (forwarded request 127122 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/127123 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=116 --- getaddrinfo-ipv6-sanity.diff | 22 +++++---- glibc-2.16-getaddrinfo-buffer.patch | 77 +++++++++++++++++++++++++++++ glibc.changes | 7 +++ glibc.spec | 3 ++ 4 files changed, 99 insertions(+), 10 deletions(-) create mode 100644 glibc-2.16-getaddrinfo-buffer.patch diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index 87653bb..28eb26b 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -1,10 +1,8 @@ -References: bnc#361697 - -Index: glibc-2.15/sysdeps/posix/getaddrinfo.c -=================================================================== ---- glibc-2.15.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.15/sysdeps/posix/getaddrinfo.c -@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index 1a023f9..c8af8b9 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_database attribute_hidden; static int gaih_inet (const char *name, const struct gaih_service *service, const struct addrinfo *req, struct addrinfo **pai, @@ -13,7 +11,7 @@ Index: glibc-2.15/sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -832,7 +832,10 @@ gaih_inet (const char *name, const struc +@@ -832,7 +832,10 @@ gaih_inet (const char *name, const struct gaih_service *service, no_data = 0; nss_gethostbyname4_r fct4 = __nss_lookup_function (nip, "gethostbyname4_r"); @@ -25,7 +23,7 @@ Index: glibc-2.15/sysdeps/posix/getaddrinfo.c { int herrno; -@@ -935,7 +938,7 @@ gaih_inet (const char *name, const struc +@@ -935,7 +938,7 @@ gaih_inet (const char *name, const struct gaih_service *service, if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -34,11 +32,15 @@ Index: glibc-2.15/sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2418,7 +2421,7 @@ getaddrinfo (const char *name, const cha +@@ -2418,7 +2421,11 @@ getaddrinfo (const char *name, const char *service, if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { - last_i = gaih_inet (name, pservice, hints, end, &naddrs); ++ if (!check_pf_called) ++ __check_pf (&seen_ipv4, &seen_ipv6, &in6ai, &in6ailen); ++ check_pf_called = true; ++ + last_i = gaih_inet (name, pservice, hints, end, &naddrs, seen_ipv6); if (last_i != 0) { diff --git a/glibc-2.16-getaddrinfo-buffer.patch b/glibc-2.16-getaddrinfo-buffer.patch new file mode 100644 index 0000000..ffd0b25 --- /dev/null +++ b/glibc-2.16-getaddrinfo-buffer.patch @@ -0,0 +1,77 @@ +2012-07-02 Jeroen van Bemmel + + [BZ #14307] + [BZ #13904] + * sysdeps/posix/getaddrinfo.c ( gaih_inet ): Increase the size of + the temporary buffer used to invoke __gethostbyname2_r, + __gethostbyaddr_r and gethostbyname4_r to make room for struct + host_data / struct gaih_addrtuple. + * resolv/nss_dns/dns-host.c (global scope): Move definition of + implementation constants MAX_NR_ALIASES and MAX_NR_ADDRS to + header file nss/nsswitch.h. + * nss/nsswitch.h (global scope): Add definition of implementation + constants MAX_NR_ALIASES and MAX_NR_ADDRS (moved from + resolv/nss_dns/dns-host.c). + +diff --git glibc/nss/nsswitch.h glibc/nss/nsswitch.h +index 90e208b..8965819 100644 +--- glibc/nss/nsswitch.h ++++ glibc/nss/nsswitch.h +@@ -198,4 +198,8 @@ extern int __nss_hostname_digits_dots (const char *name, + int *h_errnop); + libc_hidden_proto (__nss_hostname_digits_dots) + ++/* Maximum number of aliases we allow. */ ++#define MAX_NR_ALIASES 48 ++#define MAX_NR_ADDRS 48 ++ + #endif /* nsswitch.h */ +diff --git glibc/resolv/nss_dns/dns-host.c glibc/resolv/nss_dns/dns-host.c +index a924d40..6b62c05 100644 +--- glibc/resolv/nss_dns/dns-host.c ++++ glibc/resolv/nss_dns/dns-host.c +@@ -88,10 +88,6 @@ + + #define RESOLVSORT + +-/* Maximum number of aliases we allow. */ +-#define MAX_NR_ALIASES 48 +-#define MAX_NR_ADDRS 48 +- + #if PACKETSZ > 65536 + # define MAXPACKET PACKETSZ + #else +diff --git glibc/sysdeps/posix/getaddrinfo.c glibc/sysdeps/posix/getaddrinfo.c +index 2eca2ae..efb0423 100644 +--- glibc/sysdeps/posix/getaddrinfo.c ++++ glibc/sysdeps/posix/getaddrinfo.c +@@ -568,7 +568,8 @@ gaih_inet (const char *name, const struct gaih_service *service, + IPv6 scope ids. */ + if (req->ai_family == AF_INET) + { +- size_t tmpbuflen = 512; ++ /* Allocate additional room for struct host_data in getanswer_r */ ++ size_t tmpbuflen = 512 + MAX_NR_ALIASES * sizeof(char*) + 16 * sizeof(char); + assert (tmpbuf == NULL); + tmpbuf = alloca_account (tmpbuflen, alloca_used); + int rc; +@@ -811,7 +812,7 @@ gaih_inet (const char *name, const struct gaih_service *service, + old_res_options = _res.options; + _res.options &= ~RES_USE_INET6; + +- size_t tmpbuflen = 1024; ++ size_t tmpbuflen = 1024 + sizeof(struct gaih_addrtuple); + malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen); + assert (tmpbuf == NULL); + if (!malloc_tmpbuf) +@@ -1113,7 +1114,9 @@ gaih_inet (const char *name, const struct gaih_service *service, + struct hostent *h = NULL; + int herrno; + struct hostent th; +- size_t tmpbuf2len = 512; ++ /* Add room for struct host_data in resolv/nss_dns/dns-host.c */ ++ size_t tmpbuf2len = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*) ++ + 16 * sizeof(char); + + do + { diff --git a/glibc.changes b/glibc.changes index 5f1687a..13dd49d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jul 4 13:36:17 UTC 2012 - aj@suse.de + +- Add glibc-2.16-getaddrinfo-buffer.patch to not use a too small + buffer for dns queries on 64-bit systems (bso#14307,bso#13904). +- Fix getaddrinfo-ipv6-sanity.diff (bnc#767125). + ------------------------------------------------------------------- Mon Jul 2 16:23:15 UTC 2012 - agraf@suse.com diff --git a/glibc.spec b/glibc.spec index 36a925d..3ea284b 100644 --- a/glibc.spec +++ b/glibc.spec @@ -290,6 +290,8 @@ Patch1018: glibc-2.16-mcheck.patch Patch1019: tr_TR.patch # PATCH-FIX-UPSTREAM implement *context on ARM - agraf@suse.de Patch1020: glibc-2.16-arm-context.patch +# PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de +Patch1021: glibc-2.16-getaddrinfo-buffer.patch ### # Patches awaiting upstream approval @@ -564,6 +566,7 @@ rm nscd/s-stamp %patch1018 -p1 %patch1019 -p1 %patch1020 -p1 +%patch1021 -p1 %patch2001 -p1 %patch2004 -p1 From 7ca571cd124f4c35edcdc6d512d0f149b3996da2a2df19be3b140ede76a0f149 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 18 Jul 2012 15:15:17 +0000 Subject: [PATCH 111/204] Accepting request 128172 from Base:System Add buildrequire on makeinfo. (forwarded request 128171 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/128172 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=117 --- glibc.changes | 6 ++++++ glibc.spec | 1 + 2 files changed, 7 insertions(+) diff --git a/glibc.changes b/glibc.changes index 13dd49d..1c8f84f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jul 17 12:22:29 UTC 2012 - aj@suse.de + +- Add makeinfo as build requires to be able to generate the info + pages. + ------------------------------------------------------------------- Wed Jul 4 13:36:17 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 3ea284b..0820973 100644 --- a/glibc.spec +++ b/glibc.spec @@ -32,6 +32,7 @@ Group: System/Libraries BuildRequires: gcc-c++ BuildRequires: libselinux-devel BuildRequires: libstdc++-devel +BuildRequires: makeinfo %define _filter_GLIBC_PRIVATE 1 %if %_target_cpu == "i686" From 3d1fec0ff97ef64e9898572b6bde03a268714e31f7b50fe13c2d87133c7b7bf0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 23 Jul 2012 08:00:13 +0000 Subject: [PATCH 112/204] Accepting request 128494 from Base:System - Add commit 10f62770e115d9f (glibc-sparc-fxstatat64.diff) from upstream to resolve rpmlint-induced packaging abort due to (previously) "no-return-in-nonvoid" - Add xz as explicit BuildRequires for openSUSE_12.1 (forwarded request 128487 from jengelh) OBS-URL: https://build.opensuse.org/request/show/128494 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=118 --- glibc-sparc-fxstatat64.diff | 25 +++++++++++++++++++++++++ glibc.changes | 13 +++++++++++++ glibc.spec | 6 +++++- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 glibc-sparc-fxstatat64.diff diff --git a/glibc-sparc-fxstatat64.diff b/glibc-sparc-fxstatat64.diff new file mode 100644 index 0000000..0fa799c --- /dev/null +++ b/glibc-sparc-fxstatat64.diff @@ -0,0 +1,25 @@ +From 10f62770e115d9f16a67a974f79fa9b100cf827b Mon Sep 17 00:00:00 2001 +From: "David S. Miller" +Date: Tue, 13 Mar 2012 00:45:34 -0700 +Subject: [PATCH] Use correct implementation for dl-fxstatat64 on sparc64. + + * sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c: New file. + + +[rediffed for glibc-2.15 for openSUSE] +--- + sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c | 6 ++++++ + 1 file changed, 6 insertions(+) + create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c + +Index: glibc-2.15/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c +@@ -0,0 +1,6 @@ ++/* In this implementation we do not really care whether the call fails ++ because of missing kernel support since we do not even call the ++ function in this case. */ ++#undef __ASSUME_ATFCTS ++#define __ASSUME_ATFCTS 1 ++#include "fxstatat.c" diff --git a/glibc.changes b/glibc.changes index 1c8f84f..cddfd15 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri Jul 20 15:06:49 UTC 2012 - jengelh@inai.de + +- Add commit 10f62770e115d9f (glibc-sparc-fxstatat64.diff) from + upstream to resolve rpmlint-induced packaging abort due to + (previously) "no-return-in-nonvoid" +- Add xz as explicit BuildRequires for openSUSE_12.1 + +------------------------------------------------------------------- +Thu Jul 19 23:42:46 UTC 2012 - jengelh@inai.de + +- Do package ld-linux.so.2 on SPARC as well + ------------------------------------------------------------------- Tue Jul 17 12:22:29 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 0820973..e231376 100644 --- a/glibc.spec +++ b/glibc.spec @@ -33,6 +33,7 @@ BuildRequires: gcc-c++ BuildRequires: libselinux-devel BuildRequires: libstdc++-devel BuildRequires: makeinfo +BuildRequires: xz %define _filter_GLIBC_PRIVATE 1 %if %_target_cpu == "i686" @@ -293,6 +294,8 @@ Patch1019: tr_TR.patch Patch1020: glibc-2.16-arm-context.patch # PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de Patch1021: glibc-2.16-getaddrinfo-buffer.patch +# PATCH-FIX_UPSTREAM Use correct implementation of fxstatat64 on sparc64 +Patch1022: glibc-sparc-fxstatat64.diff ### # Patches awaiting upstream approval @@ -568,6 +571,7 @@ rm nscd/s-stamp %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch -P 1022 -p1 %patch2001 -p1 %patch2004 -p1 @@ -1154,7 +1158,7 @@ exit 0 %ifarch x86_64 /%{_lib}/ld-linux-x86-64.so.2 %endif -%ifarch %ix86 +%ifarch %ix86 %sparc /%{_lib}/ld-linux.so.2 %endif From 5fabd52a67072729958f65aca8882bfca38346bc8d3cc7868dbea10d2e79d7d6 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 31 Aug 2012 07:27:30 +0000 Subject: [PATCH 113/204] Accepting request 132085 from Base:System Order changes; update to glibc 2.16 (forwarded request 132084 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/132085 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=119 --- armhf-ld-so.patch | 11 - confstr.patch | 304 ---- cycle-detection.patch | 64 - gb18030.patch.bz2 | 3 - glibc-2.14-crypt-versioning.diff | 14 +- glibc-2.14-crypt.diff | 33 +- glibc-2.15-725b8ee08aff.tar.xz | 3 - glibc-2.15-nss_db-declarations.patch | 24 - glibc-2.16-arm-context.patch | 452 ----- glibc-2.16-da1f43196321.tar.xz | 3 + glibc-2.16-expf-underflow-exception.patch | 31 - glibc-2.16-fix-check-abi.patch | 1786 -------------------- glibc-2.16-mcheck.patch | 25 - glibc-2.16-powerpc-initfini.patch | 795 --------- glibc-2.16-ppc32-mcount.patch | 157 ++ glibc-2.16-scanf.patch | 31 - glibc-2.3.2.no_archive.diff | 14 +- glibc-2.3.3-nscd-db-path.diff | 8 +- glibc-2.3.90-langpackdir.diff | 8 +- glibc-2.3.90-noversion.diff | 8 +- glibc-2.4.90-no_NO.diff | 20 +- glibc-2.8-getconf.diff | 8 +- glibc-add-arm-dependency-libmemusage.patch | 32 - glibc-compiled-binaries.diff | 74 +- glibc-cpusetsize.diff | 16 +- glibc-elf-localscope.diff | 10 +- glibc-fini-unwind.diff | 60 - glibc-fix-check-abi.patch | 183 ++ glibc-fix-double-loopback.diff | 8 +- glibc-fix-noload.patch | 149 -- glibc-ifunc-2.16.patch | 278 --- glibc-no-unwind-tables.diff | 39 - glibc-nodate.patch | 17 +- glibc-nscd-crash-bso13594.patch | 48 - glibc-nscd-foreground.patch | 98 -- glibc-nscd-hconf.diff | 18 +- glibc-ports-2.15-8a70b2dcabbf.tar.bz2 | 3 - glibc-ports-2.16-a20c2b3c87ae.tar.xz | 3 + glibc-ppc-getcontext.patch | 40 - glibc-resolv-mdnshint.diff | 8 +- glibc-revert-fseek-on-fclose.diff | 38 +- glibc-sparc-fxstatat64.diff | 25 - glibc-strict-aliasing.diff | 21 +- glibc-sw13618-2.patch | 29 - glibc-testsuite.patch | 8 +- glibc-uio-cell.diff | 26 - glibc-version.diff | 8 +- glibc.changes | 39 + glibc.rpmlintrc | 9 +- glibc.spec | 168 +- glibc2.14-revert-sunrpc-removal.patch | 63 - manpages.tar.bz2 | 4 +- nscd-avoid-gcc-warning.diff | 8 +- nss-db-path.patch | 24 +- pthread-cond-wait-revert.patch | 350 ++-- tr_TR.patch | 13 - vfprintf-nargs.patch | 201 --- x86-cpuid-level2.patch | 29 - 58 files changed, 789 insertions(+), 5160 deletions(-) delete mode 100644 armhf-ld-so.patch delete mode 100644 confstr.patch delete mode 100644 cycle-detection.patch delete mode 100644 gb18030.patch.bz2 delete mode 100644 glibc-2.15-725b8ee08aff.tar.xz delete mode 100644 glibc-2.15-nss_db-declarations.patch delete mode 100644 glibc-2.16-arm-context.patch create mode 100644 glibc-2.16-da1f43196321.tar.xz delete mode 100644 glibc-2.16-expf-underflow-exception.patch delete mode 100644 glibc-2.16-fix-check-abi.patch delete mode 100644 glibc-2.16-mcheck.patch delete mode 100644 glibc-2.16-powerpc-initfini.patch create mode 100644 glibc-2.16-ppc32-mcount.patch delete mode 100644 glibc-2.16-scanf.patch delete mode 100644 glibc-add-arm-dependency-libmemusage.patch delete mode 100644 glibc-fini-unwind.diff create mode 100644 glibc-fix-check-abi.patch delete mode 100644 glibc-fix-noload.patch delete mode 100644 glibc-ifunc-2.16.patch delete mode 100644 glibc-no-unwind-tables.diff delete mode 100644 glibc-nscd-crash-bso13594.patch delete mode 100644 glibc-nscd-foreground.patch delete mode 100644 glibc-ports-2.15-8a70b2dcabbf.tar.bz2 create mode 100644 glibc-ports-2.16-a20c2b3c87ae.tar.xz delete mode 100644 glibc-ppc-getcontext.patch delete mode 100644 glibc-sparc-fxstatat64.diff delete mode 100644 glibc-sw13618-2.patch delete mode 100644 glibc-uio-cell.diff delete mode 100644 glibc2.14-revert-sunrpc-removal.patch delete mode 100644 tr_TR.patch delete mode 100644 vfprintf-nargs.patch delete mode 100644 x86-cpuid-level2.patch diff --git a/armhf-ld-so.patch b/armhf-ld-so.patch deleted file mode 100644 index c616b53..0000000 --- a/armhf-ld-so.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions -index 491dd0a..5464959 100644 ---- a/glibc-ports-2.15/sysdeps/arm/shlib-versions -+++ b/glibc-ports-2.15/sysdeps/arm/shlib-versions -@@ -1,4 +1,4 @@ - arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4 - --arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 -+arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 - arm.*-.*-linux.* ld=ld-linux.so.2 - diff --git a/confstr.patch b/confstr.patch deleted file mode 100644 index 279721d..0000000 --- a/confstr.patch +++ /dev/null @@ -1,304 +0,0 @@ -diff --git a/posix/confstr.c b/posix/confstr.c -index 3c9566d..cad6561 100644 ---- a/posix/confstr.c -+++ b/posix/confstr.c -@@ -1,5 +1,4 @@ --/* Copyright (C) 1991,1996,1997,2000-2004,2009,2010 Free -- Software Foundation, Inc. -+/* Copyright (C) 1991-2012 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 -@@ -35,6 +34,10 @@ confstr (name, buf, len) - const char *string = ""; - size_t string_len = 1; - -+ /* Note that this buffer must be large enough for the longest strings -+ used below. */ -+ char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; -+ - switch (name) - { - case _CS_PATH: -@@ -53,59 +56,55 @@ confstr (name, buf, len) - wint_t types are no greater than the width of type long. - - Currently this means all environment which the system allows. */ -- { -- char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; -- -- string_len = 0; -+ string_len = 0; - #ifndef _POSIX_V7_ILP32_OFF32 -- if (__sysconf (_SC_V7_ILP32_OFF32) > 0) -+ if (__sysconf (_SC_V7_ILP32_OFF32) > 0) - #endif - #if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0 -- { -- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", -- sizeof "POSIX_V7_ILP32_OFF32" - 1); -- string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; -- } -+ { -+ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", -+ sizeof "POSIX_V7_ILP32_OFF32" - 1); -+ string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; -+ } - #endif - #ifndef _POSIX_V7_ILP32_OFFBIG -- if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) -+ if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) - #endif - #if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", -- sizeof "POSIX_V7_ILP32_OFFBIG" - 1); -- string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", -+ sizeof "POSIX_V7_ILP32_OFFBIG" - 1); -+ string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; -+ } - #endif - #ifndef _POSIX_V7_LP64_OFF64 -- if (__sysconf (_SC_V7_LP64_OFF64) > 0) -+ if (__sysconf (_SC_V7_LP64_OFF64) > 0) - #endif - #if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", -- sizeof "POSIX_V7_LP64_OFF64" - 1); -- string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", -+ sizeof "POSIX_V7_LP64_OFF64" - 1); -+ string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; -+ } - #endif - #ifndef _POSIX_V7_LPBIG_OFFBIG -- if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) -+ if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) - #endif - #if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", -- sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); -- string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; -- } --#endif -- restenvs[string_len++] = '\0'; -- string = restenvs; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", -+ sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); -+ string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; -+ } -+#endif -+ restenvs[string_len++] = '\0'; -+ string = restenvs; - break; - - case _CS_V6_WIDTH_RESTRICTED_ENVS: -@@ -116,59 +115,55 @@ confstr (name, buf, len) - wint_t types are no greater than the width of type long. - - Currently this means all environment which the system allows. */ -- { -- char restenvs[4 * sizeof "POSIX_V6_LPBIG_OFFBIG"]; -- -- string_len = 0; -+ string_len = 0; - #ifndef _POSIX_V6_ILP32_OFF32 -- if (__sysconf (_SC_V6_ILP32_OFF32) > 0) -+ if (__sysconf (_SC_V6_ILP32_OFF32) > 0) - #endif - #if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0 -- { -- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", -- sizeof "POSIX_V6_ILP32_OFF32" - 1); -- string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; -- } -+ { -+ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", -+ sizeof "POSIX_V6_ILP32_OFF32" - 1); -+ string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; -+ } - #endif - #ifndef _POSIX_V6_ILP32_OFFBIG -- if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) -+ if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) - #endif - #if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", -- sizeof "POSIX_V6_ILP32_OFFBIG" - 1); -- string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", -+ sizeof "POSIX_V6_ILP32_OFFBIG" - 1); -+ string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; -+ } - #endif - #ifndef _POSIX_V6_LP64_OFF64 -- if (__sysconf (_SC_V6_LP64_OFF64) > 0) -+ if (__sysconf (_SC_V6_LP64_OFF64) > 0) - #endif - #if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", -- sizeof "POSIX_V6_LP64_OFF64" - 1); -- string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", -+ sizeof "POSIX_V6_LP64_OFF64" - 1); -+ string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; -+ } - #endif - #ifndef _POSIX_V6_LPBIG_OFFBIG -- if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) -+ if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) - #endif - #if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", -- sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); -- string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; -- } --#endif -- restenvs[string_len++] = '\0'; -- string = restenvs; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", -+ sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); -+ string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; -+ } -+#endif -+ restenvs[string_len++] = '\0'; -+ string = restenvs; - break; - - case _CS_V5_WIDTH_RESTRICTED_ENVS: -@@ -179,59 +174,55 @@ confstr (name, buf, len) - wint_t types are no greater than the width of type long. - - Currently this means all environment which the system allows. */ -- { -- char restenvs[4 * sizeof "XBS5_LPBIG_OFFBIG"]; -- -- string_len = 0; -+ string_len = 0; - #ifndef _XBS5_ILP32_OFF32 -- if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) -+ if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) - #endif - #if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0 -- { -- memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", -- sizeof "XBS5_ILP32_OFF32" - 1); -- string_len += sizeof "XBS5_ILP32_OFF32" - 1; -- } -+ { -+ memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", -+ sizeof "XBS5_ILP32_OFF32" - 1); -+ string_len += sizeof "XBS5_ILP32_OFF32" - 1; -+ } - #endif - #ifndef _XBS5_ILP32_OFFBIG -- if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) -+ if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) - #endif - #if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", -- sizeof "XBS5_ILP32_OFFBIG" - 1); -- string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", -+ sizeof "XBS5_ILP32_OFFBIG" - 1); -+ string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; -+ } - #endif - #ifndef _XBS5_LP64_OFF64 -- if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) -+ if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) - #endif - #if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "XBS5_LP64_OFF64", -- sizeof "XBS5_LP64_OFF64" - 1); -- string_len += sizeof "XBS5_LP64_OFF64" - 1; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "XBS5_LP64_OFF64", -+ sizeof "XBS5_LP64_OFF64" - 1); -+ string_len += sizeof "XBS5_LP64_OFF64" - 1; -+ } - #endif - #ifndef _XBS5_LPBIG_OFFBIG -- if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) -+ if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) - #endif - #if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0 -- { -- if (string_len) -- restenvs[string_len++] = '\n'; -- memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", -- sizeof "XBS5_LPBIG_OFFBIG" - 1); -- string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; -- } --#endif -- restenvs[string_len++] = '\0'; -- string = restenvs; -- } -+ { -+ if (string_len) -+ restenvs[string_len++] = '\n'; -+ memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", -+ sizeof "XBS5_LPBIG_OFFBIG" - 1); -+ string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; -+ } -+#endif -+ restenvs[string_len++] = '\0'; -+ string = restenvs; - break; - - case _CS_XBS5_ILP32_OFF32_CFLAGS: diff --git a/cycle-detection.patch b/cycle-detection.patch deleted file mode 100644 index 118d134..0000000 --- a/cycle-detection.patch +++ /dev/null @@ -1,64 +0,0 @@ -2012-01-19 Jeff Law - - * elf/dl-deps.c (_dl_map_object_deps): Fix cycle detection. - * elf/dl-fini.c (_dl_sort_fini): Likewise - - -Index: glibc-2.15/elf/dl-deps.c -=================================================================== ---- glibc-2.15.orig/elf/dl-deps.c -+++ glibc-2.15/elf/dl-deps.c -@@ -634,7 +634,7 @@ Filters not supported with LD_TRACE_PREL - /* We can skip looking for the binary itself which is at the front - of the search list. */ - i = 1; -- char seen[nlist]; -+ unsigned short seen[nlist]; - memset (seen, 0, nlist * sizeof (seen[0])); - while (1) - { -@@ -660,13 +660,13 @@ Filters not supported with LD_TRACE_PREL - (k - i) * sizeof (l_initfini[0])); - l_initfini[k] = thisp; - -- if (seen[i + 1] > 1) -+ if (seen[i + 1] > nlist - i - 1) - { - ++i; - goto next_clear; - } - -- char this_seen = seen[i]; -+ unsigned short this_seen = seen[i]; - memmove (&seen[i], &seen[i + 1], - (k - i) * sizeof (seen[0])); - seen[k] = this_seen; -Index: glibc-2.15/elf/dl-fini.c -=================================================================== ---- glibc-2.15.orig/elf/dl-fini.c -+++ glibc-2.15/elf/dl-fini.c -@@ -39,7 +39,7 @@ _dl_sort_fini (struct link_map **maps, s - /* We can skip looking for the binary itself which is at the front - of the search list for the main namespace. */ - unsigned int i = ns == LM_ID_BASE; -- char seen[nmaps]; -+ unsigned short seen[nmaps]; - memset (seen, 0, nmaps * sizeof (seen[0])); - while (1) - { -@@ -79,13 +79,13 @@ _dl_sort_fini (struct link_map **maps, s - used[k] = here_used; - } - -- if (seen[i + 1] > 1) -+ if (seen[i + 1] > nmaps - i - 1) - { - ++i; - goto next_clear; - } - -- char this_seen = seen[i]; -+ unsigned short this_seen = seen[i]; - memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); - seen[k] = this_seen; - diff --git a/gb18030.patch.bz2 b/gb18030.patch.bz2 deleted file mode 100644 index 2bf0402..0000000 --- a/gb18030.patch.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d6d06c85b314ec365a1430a47d2867bf1191ce5d3771d9647bc3bcf31873228a -size 299733 diff --git a/glibc-2.14-crypt-versioning.diff b/glibc-2.14-crypt-versioning.diff index ee84157..9bd18d1 100644 --- a/glibc-2.14-crypt-versioning.diff +++ b/glibc-2.14-crypt-versioning.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/Versions.def +Index: glibc-2.15.90/Versions.def =================================================================== ---- glibc-2.15.orig/Versions.def -+++ glibc-2.15/Versions.def -@@ -40,6 +40,7 @@ libc { +--- glibc-2.15.90.orig/Versions.def ++++ glibc-2.15.90/Versions.def +@@ -41,6 +41,7 @@ libc { } libcrypt { GLIBC_2.0 @@ -10,10 +10,10 @@ Index: glibc-2.15/Versions.def } libdl { GLIBC_2.0 -Index: glibc-2.15/crypt/Versions +Index: glibc-2.15.90/crypt/Versions =================================================================== ---- glibc-2.15.orig/crypt/Versions -+++ glibc-2.15/crypt/Versions +--- glibc-2.15.90.orig/crypt/Versions ++++ glibc-2.15.90/crypt/Versions @@ -3,4 +3,7 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index b1e19fe..c2a5e9f 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,7 +1,8 @@ -diff -urp glibc-2.14.orig/crypt/Makefile glibc-2.14/crypt/Makefile ---- glibc-2.14.orig/crypt/Makefile 2011-05-31 04:12:33 +0000 -+++ glibc-2.14/crypt/Makefile 2011-07-16 21:40:56 +0000 -@@ -22,6 +22,7 @@ +Index: glibc-2.15.90/crypt/Makefile +=================================================================== +--- glibc-2.15.90.orig/crypt/Makefile ++++ glibc-2.15.90/crypt/Makefile +@@ -21,6 +21,7 @@ subdir := crypt headers := crypt.h @@ -9,7 +10,7 @@ diff -urp glibc-2.14.orig/crypt/Makefile glibc-2.14/crypt/Makefile extra-libs := libcrypt extra-libs-others := $(extra-libs) -@@ -29,6 +30,8 @@ extra-libs-others := $(extra-libs) +@@ -28,6 +29,8 @@ extra-libs-others := $(extra-libs) libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ crypt_util @@ -17,10 +18,11 @@ diff -urp glibc-2.14.orig/crypt/Makefile glibc-2.14/crypt/Makefile + tests := cert md5c-test sha256c-test sha512c-test - distribute := ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \ -diff -urp glibc-2.14.orig/crypt/Versions glibc-2.14/crypt/Versions ---- glibc-2.14.orig/crypt/Versions 2011-05-31 04:12:33 +0000 -+++ glibc-2.14/crypt/Versions 2011-07-16 21:40:56 +0000 + include ../Makeconfig +Index: glibc-2.15.90/crypt/Versions +=================================================================== +--- glibc-2.15.90.orig/crypt/Versions ++++ glibc-2.15.90/crypt/Versions @@ -1,5 +1,6 @@ libcrypt { GLIBC_2.0 { @@ -28,10 +30,11 @@ diff -urp glibc-2.14.orig/crypt/Versions glibc-2.14/crypt/Versions + crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; } } -diff -urp glibc-2.14.orig/crypt/crypt-entry.c glibc-2.14/crypt/crypt-entry.c ---- glibc-2.14.orig/crypt/crypt-entry.c 2011-05-31 04:12:33 +0000 -+++ glibc-2.14/crypt/crypt-entry.c 2011-07-16 21:40:56 +0000 -@@ -82,7 +82,7 @@ extern struct crypt_data _ufc_foobar; +Index: glibc-2.15.90/crypt/crypt-entry.c +=================================================================== +--- glibc-2.15.90.orig/crypt/crypt-entry.c ++++ glibc-2.15.90/crypt/crypt-entry.c +@@ -79,7 +79,7 @@ extern struct crypt_data _ufc_foobar; */ char * @@ -40,7 +43,7 @@ diff -urp glibc-2.14.orig/crypt/crypt-entry.c glibc-2.14/crypt/crypt-entry.c const char *key; const char *salt; struct crypt_data * __restrict data; -@@ -137,6 +137,7 @@ __crypt_r (key, salt, data) +@@ -134,6 +134,7 @@ __crypt_r (key, salt, data) _ufc_output_conversion_r (res[0], res[1], salt, data); return data->crypt_3_buf; } @@ -48,7 +51,7 @@ diff -urp glibc-2.14.orig/crypt/crypt-entry.c glibc-2.14/crypt/crypt-entry.c weak_alias (__crypt_r, crypt_r) char * -@@ -177,3 +178,4 @@ __fcrypt (key, salt) +@@ -174,3 +175,4 @@ __fcrypt (key, salt) return crypt (key, salt); } #endif diff --git a/glibc-2.15-725b8ee08aff.tar.xz b/glibc-2.15-725b8ee08aff.tar.xz deleted file mode 100644 index 6e695ae..0000000 --- a/glibc-2.15-725b8ee08aff.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f975b80a8fb0fe9984d7dc3e97d2ab1af652c2228ec6d90c36789e71e17ff37b -size 10376824 diff --git a/glibc-2.15-nss_db-declarations.patch b/glibc-2.15-nss_db-declarations.patch deleted file mode 100644 index 74683ac..0000000 --- a/glibc-2.15-nss_db-declarations.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/nss/nss_db/db-init.c b/nss/nss_db/db-init.c -index 8228d61..85ac48f 100644 ---- a/nss/nss_db/db-init.c -+++ b/nss/nss_db/db-init.c -@@ -18,6 +18,7 @@ - 02111-1307 USA. */ - - #include -+#include - #include - - -diff --git a/nss/nss_db/db-initgroups.c b/nss/nss_db/db-initgroups.c -index aa8163b..1b806e5 100644 ---- a/nss/nss_db/db-initgroups.c -+++ b/nss/nss_db/db-initgroups.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "nss_db.h" - diff --git a/glibc-2.16-arm-context.patch b/glibc-2.16-arm-context.patch deleted file mode 100644 index 42e3bdd..0000000 --- a/glibc-2.16-arm-context.patch +++ /dev/null @@ -1,452 +0,0 @@ -From 402a76b62dded0ee93cfec0471aaeccb989196d2 Mon Sep 17 00:00:00 2001 -From: Michael Hope -Date: Mon, 5 Mar 2012 17:58:13 -0500 -Subject: [PATCH] ARM: Implement *context routines. - - * sysdeps/unix/sysv/linux/arm/eabi/getcontext.S: New file. - * sysdeps/unix/sysv/linux/arm/eabi/makecontext.c: New file. - * sysdeps/unix/sysv/linux/arm/eabi/setcontext.S: New file. - * sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S: New file. - * sysdeps/unix/sysv/linux/arm/ucontext_i.sym: New file. - * sysdeps/unix/sysv/linux/arm/Makefile (gen-as-const-headers): Add - ucontext_i.sym. ---- - ChangeLog.arm | 10 ++ - sysdeps/unix/sysv/linux/arm/Makefile | 4 + - sysdeps/unix/sysv/linux/arm/eabi/getcontext.S | 113 ++++++++++++++++++++++++ - sysdeps/unix/sysv/linux/arm/eabi/makecontext.c | 73 +++++++++++++++ - sysdeps/unix/sysv/linux/arm/eabi/setcontext.S | 101 +++++++++++++++++++++ - sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S | 63 +++++++++++++ - sysdeps/unix/sysv/linux/arm/ucontext_i.sym | 30 ++++++ - 7 files changed, 394 insertions(+), 0 deletions(-) - create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/getcontext.S - create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/makecontext.c - create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/setcontext.S - create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S - create mode 100644 sysdeps/unix/sysv/linux/arm/ucontext_i.sym - -diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile -index d91b968..a981736 100644 ---- a/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/Makefile -+++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/Makefile -@@ -20,3 +20,7 @@ endif - ifeq ($(subdir),resource) - sysdep_routines += oldgetrlimit64 - endif -+ -+ifeq ($(subdir),stdlib) -+gen-as-const-headers += ucontext_i.sym -+endif -diff --git a/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S b/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S -new file mode 100644 -index 0000000..435eb12 ---- /dev/null -+++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S -@@ -0,0 +1,113 @@ -+/* Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#include "ucontext_i.h" -+ -+ .syntax unified -+ .text -+ -+/* int getcontext (ucontext_t *ucp) */ -+ -+ENTRY(__getcontext) -+ /* No need to save r0-r3, d0-d7, or d16-d31. */ -+ add r1, r0, #MCONTEXT_ARM_R4 -+ stmia r1, {r4-r11} -+ -+ /* Save R13 separately as Thumb can't STM it. */ -+ str r13, [r0, #MCONTEXT_ARM_SP] -+ str r14, [r0, #MCONTEXT_ARM_LR] -+ /* Return to LR */ -+ str r14, [r0, #MCONTEXT_ARM_PC] -+ /* Return zero */ -+ mov r2, #0 -+ str r2, [r0, #MCONTEXT_ARM_R0] -+ -+ /* Save ucontext_t * across the next call. */ -+ mov r4, r0 -+ -+ /* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */ -+ mov r0, #SIG_BLOCK -+ mov r1, #0 -+ add r2, r4, #UCONTEXT_SIGMASK -+ bl PLTJMP(__sigprocmask) -+ -+ /* Store FP regs. Much of the FP code is copied from arm/eabi/setjmp.S. */ -+ -+#ifdef PIC -+ ldr r2, 1f -+ ldr r1, Lrtld_global_ro -+0: add r2, pc, r2 -+ ldr r2, [r2, r1] -+ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] -+#else -+ ldr r2, Lhwcap -+ ldr r2, [r2, #0] -+#endif -+ -+ add r0, r4, #UCONTEXT_REGSPACE -+ -+ tst r2, #HWCAP_ARM_VFP -+ beq Lno_vfp -+ -+ /* Store the VFP registers. -+ Don't use VFP instructions directly because this code -+ is used in non-VFP multilibs. */ -+ /* Following instruction is vstmia r0!, {d8-d15}. */ -+ stc p11, cr8, [r0], #64 -+ /* Store the floating-point status register. */ -+ /* Following instruction is vmrs r1, fpscr. */ -+ mrc p10, 7, r1, cr1, cr0, 0 -+ str r1, [r0], #4 -+Lno_vfp: -+ -+ tst r2, #HWCAP_ARM_IWMMXT -+ beq Lno_iwmmxt -+ -+ /* Save the call-preserved iWMMXt registers. */ -+ /* Following instructions are wstrd wr10, [r0], #8 (etc.) */ -+ stcl p1, cr10, [r0], #8 -+ stcl p1, cr11, [r0], #8 -+ stcl p1, cr12, [r0], #8 -+ stcl p1, cr13, [r0], #8 -+ stcl p1, cr14, [r0], #8 -+ stcl p1, cr15, [r0], #8 -+Lno_iwmmxt: -+ -+ /* Restore the clobbered R4 and LR. */ -+ ldr r14, [r4, #MCONTEXT_ARM_LR] -+ ldr r4, [r4, #MCONTEXT_ARM_R4] -+ -+ mov r0, #0 -+ -+ DO_RET(r14) -+ -+END(__getcontext) -+ -+#ifdef PIC -+1: .long _GLOBAL_OFFSET_TABLE_ - 0b - 8 -+Lrtld_global_ro: -+ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT) -+#else -+Lhwcap: -+ .long C_SYMBOL_NAME(_dl_hwcap) -+#endif -+ -+ -+weak_alias(__getcontext, getcontext) -diff --git a/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c b/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c -new file mode 100644 -index 0000000..d6ae6f0 ---- /dev/null -+++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c -@@ -0,0 +1,73 @@ -+/* Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+/* Number of arguments that go in registers. */ -+#define NREG_ARGS 4 -+ -+/* Take a context previously prepared via getcontext() and set to -+ call func() with the given int only args. */ -+void -+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) -+{ -+ extern void __startcontext (void); -+ unsigned long *funcstack; -+ va_list vl; -+ unsigned long *regptr; -+ unsigned int reg; -+ int misaligned; -+ -+ /* Start at the top of stack. */ -+ funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); -+ -+ /* Ensure the stack stays eight byte aligned. */ -+ misaligned = ((unsigned long) funcstack & 4) != 0; -+ -+ if ((argc > NREG_ARGS) && (argc & 1) != 0) -+ misaligned = !misaligned; -+ -+ if (misaligned) -+ funcstack -= 1; -+ -+ va_start (vl, argc); -+ -+ /* Reserve space for the on-stack arguments. */ -+ if (argc > NREG_ARGS) -+ funcstack -= (argc - NREG_ARGS); -+ -+ ucp->uc_mcontext.arm_sp = (unsigned long) funcstack; -+ ucp->uc_mcontext.arm_pc = (unsigned long) func; -+ -+ /* Exit to startcontext() with the next context in R4 */ -+ ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link; -+ ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext; -+ -+ /* The first four arguments go into registers. */ -+ regptr = &(ucp->uc_mcontext.arm_r0); -+ -+ for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++) -+ *regptr++ = va_arg (vl, unsigned long); -+ -+ /* And the remainder on the stack. */ -+ for (; reg < argc; reg++) -+ *funcstack++ = va_arg (vl, unsigned long); -+ -+ va_end (vl); -+} -+weak_alias (__makecontext, makecontext) -diff --git a/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S b/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S -new file mode 100644 -index 0000000..78003f5 ---- /dev/null -+++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S -@@ -0,0 +1,101 @@ -+/* Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#include "ucontext_i.h" -+ -+ .syntax unified -+ .text -+ -+/* int setcontext (const ucontext_t *ucp) */ -+ -+ENTRY(__setcontext) -+ mov r4, r0 -+ add r0, r0, #UCONTEXT_REGSPACE -+ -+ /* Restore the VFP registers. Copied from arm/eabi/__longjmp.S. */ -+#ifdef PIC -+ ldr r2, 1f -+ ldr r1, Lrtld_global_ro -+0: add r2, pc, r2 -+ ldr r2, [r2, r1] -+ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] -+#else -+ ldr r2, Lhwcap -+ ldr r2, [r2, #0] -+#endif -+ -+ tst r2, #HWCAP_ARM_VFP -+ beq Lno_vfp_sc -+ -+ /* Following instruction is vldmia r0!, {d8-d15}. */ -+ ldc p11, cr8, [r0], #64 -+ /* Restore the floating-point status register. */ -+ ldr r1, [r0], #4 -+ /* Following instruction is fmxr fpscr, r1. */ -+ mcr p10, 7, r1, cr1, cr0, 0 -+Lno_vfp_sc: -+ tst r2, #HWCAP_ARM_IWMMXT -+ beq Lno_iwmmxt_sc -+ -+ /* Restore the call-preserved iWMMXt registers. */ -+ /* Following instructions are wldrd wr10, [r0], #8 (etc.) */ -+ ldcl p1, cr10, [r0], #8 -+ ldcl p1, cr11, [r0], #8 -+ ldcl p1, cr12, [r0], #8 -+ ldcl p1, cr13, [r0], #8 -+ ldcl p1, cr14, [r0], #8 -+ ldcl p1, cr15, [r0], #8 -+Lno_iwmmxt_sc: -+ -+ /* Now bring back the signal status. */ -+ mov r0, #SIG_SETMASK -+ add r1, r4, #UCONTEXT_SIGMASK -+ mov r2, #0 -+ bl PLTJMP(__sigprocmask) -+ -+ /* Loading r0-r3 makes makecontext easier. */ -+ add r14, r4, #MCONTEXT_ARM_R0 -+ ldmia r14, {r0-r12} -+ ldr r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)] -+ add r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0) -+ ldmia r14, {r14, pc} -+ -+END(setcontext) -+weak_alias(__setcontext, setcontext) -+ -+ /* Called when a makecontext() context returns. Start the -+ context in R4 or fall through to exit(). */ -+ENTRY(__startcontext) -+ movs r0, r4 -+ bne PLTJMP(__setcontext) -+ -+ @ New context was 0 - exit -+ b PLTJMP(_exit) -+END(__startcontext) -+ -+#ifdef PIC -+1: .long _GLOBAL_OFFSET_TABLE_ - 0b - 8 -+Lrtld_global_ro: -+ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT) -+#else -+Lhwcap: -+ .long C_SYMBOL_NAME(_dl_hwcap) -+#endif -+ -diff --git a/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S b/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S -new file mode 100644 -index 0000000..09492d0 ---- /dev/null -+++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S -@@ -0,0 +1,63 @@ -+/* Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#include "ucontext_i.h" -+ -+ .syntax unified -+ .text -+ -+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */ -+ -+ENTRY(swapcontext) -+ -+ /* Have getcontext() do most of the work then fix up -+ LR afterwards. Save R3 to keep the stack aligned. */ -+ push {r0,r1,r3,r14} -+ cfi_adjust_cfa_offset (16) -+ cfi_rel_offset (r0,0) -+ cfi_rel_offset (r1,4) -+ cfi_rel_offset (r3,8) -+ cfi_rel_offset (r14,12) -+ -+ bl __getcontext -+ mov r4, r0 -+ -+ pop {r0,r1,r3,r14} -+ cfi_adjust_cfa_offset (-16) -+ cfi_restore (r0) -+ cfi_restore (r1) -+ cfi_restore (r3) -+ cfi_restore (r14) -+ -+ /* Exit if getcontext() failed. */ -+ cmp r4, #0 -+ itt ne -+ movne r0, r4 -+ RETINSTR(ne, r14) -+ -+ /* Fix up LR and the PC. */ -+ str r13,[r0, #MCONTEXT_ARM_SP] -+ str r14,[r0, #MCONTEXT_ARM_LR] -+ str r14,[r0, #MCONTEXT_ARM_PC] -+ -+ /* And swap using swapcontext(). */ -+ mov r0, r1 -+ b __setcontext -+ -+END(swapcontext) -diff --git a/sysdeps/unix/sysv/linux/arm/ucontext_i.sym b/sysdeps/unix/sysv/linux/arm/ucontext_i.sym -new file mode 100644 -index 0000000..306292f ---- /dev/null -+++ b/glibc-ports-2.15/sysdeps/unix/sysv/linux/arm/ucontext_i.sym -@@ -0,0 +1,30 @@ -+#include -+#include -+#include -+#include -+ -+SIG_BLOCK -+SIG_SETMASK -+ -+-- Offsets of the fields in the ucontext_t structure. -+#define ucontext(member) offsetof (ucontext_t, member) -+#define mcontext(member) ucontext (uc_mcontext.member) -+ -+UCONTEXT_FLAGS ucontext (uc_flags) -+UCONTEXT_LINK ucontext (uc_link) -+UCONTEXT_STACK ucontext (uc_stack) -+UCONTEXT_MCONTEXT ucontext (uc_mcontext) -+UCONTEXT_SIGMASK ucontext (uc_sigmask) -+ -+UCONTEXT_REGSPACE ucontext (uc_regspace) -+ -+MCONTEXT_TRAP_NO mcontext (trap_no) -+MCONTEXT_ERROR_CODE mcontext (error_code) -+MCONTEXT_OLDMASK mcontext (oldmask) -+MCONTEXT_ARM_R0 mcontext (arm_r0) -+MCONTEXT_ARM_R4 mcontext (arm_r4) -+MCONTEXT_ARM_SP mcontext (arm_sp) -+MCONTEXT_ARM_LR mcontext (arm_lr) -+MCONTEXT_ARM_PC mcontext (arm_pc) -+MCONTEXT_ARM_CPSR mcontext (arm_cpsr) -+MCONTEXT_FAULT_ADDRESS mcontext (fault_address) --- -1.7.3.4 - diff --git a/glibc-2.16-da1f43196321.tar.xz b/glibc-2.16-da1f43196321.tar.xz new file mode 100644 index 0000000..b5b35d2 --- /dev/null +++ b/glibc-2.16-da1f43196321.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:563674686eeff7d8473724f511a12506cfe4d40aca43c78f6156e75a84790c51 +size 10168980 diff --git a/glibc-2.16-expf-underflow-exception.patch b/glibc-2.16-expf-underflow-exception.patch deleted file mode 100644 index bf94ab6..0000000 --- a/glibc-2.16-expf-underflow-exception.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit f77f12320635155da728a3c1adb75ff9914cf686 -Author: Aurelien Jarno -Date: Sun Apr 8 22:45:13 2012 +0000 - - Use __kernel_standard instead of __kernel_standard_f in exp wrapper (bug 13705). - -2012-04-08 Aurelien Jarno - - [BZ #13705] - * sysdeps/ieee754/dbl-64/w_exp.c (__exp): Use __kernel_standard - instead of __kernel_standard_f. - -diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c -index b584ed8..aa8ff76 100644 ---- a/sysdeps/ieee754/dbl-64/w_exp.c -+++ b/sysdeps/ieee754/dbl-64/w_exp.c -@@ -31,12 +31,12 @@ __exp (double x) - if (__builtin_expect (isgreater (x, o_threshold), 0)) - { - if (_LIB_VERSION != _IEEE_) -- return __kernel_standard_f (x, x, 6); -+ return __kernel_standard (x, x, 6); - } - else if (__builtin_expect (isless (x, u_threshold), 0)) - { - if (_LIB_VERSION != _IEEE_) -- return __kernel_standard_f (x, x, 7); -+ return __kernel_standard (x, x, 7); - } - - return __ieee754_exp (x); diff --git a/glibc-2.16-fix-check-abi.patch b/glibc-2.16-fix-check-abi.patch deleted file mode 100644 index 4cd7d56..0000000 --- a/glibc-2.16-fix-check-abi.patch +++ /dev/null @@ -1,1786 +0,0 @@ -commit 00bbd29b35717f0de8b97e5b1e6fd3e979808ec3 -Author: Ulrich Drepper -Date: Sat Jan 7 19:23:45 2012 -0500 - - Update ABI information - - 2012-01-07 Ulrich Drepper - - * argp/Versions: Remove _argp_unlock_xxx. - - [BZ #13559] - * abilist/ld.abilist: Update. Adjust for removal of tls option. - * abilist/libBrokenLocale.abilist: Likewise. - * abilist/libanl.abilist: Likewise. - * abilist/libc.abilist: Likewise. - * abilist/libcrypt.abilist: Likewise. - * abilist/libdl.abilist: Likewise. - * abilist/libm.abilist: Likewise. - * abilist/libnsl.abilist: Likewise. - * abilist/libpthread.abilist: Likewise. - * abilist/libresolv.abilist: Likewise. - * abilist/librt.abilist: Likewise. - * abilist/libthread_db.abilist: Likewise. - * abilist/libutil.abilist: Likewise. - * abilist/libnss_db.abilist: New file. - - * scripts/abilist.awk: Add support for indirect functions. - -Index: glibc-2.15/abilist/ld.abilist -=================================================================== ---- glibc-2.15.orig/abilist/ld.abilist -+++ glibc-2.15/abilist/ld.abilist -@@ -1,35 +1,42 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.0 A - _r_debug D 0x14 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __libc_memalign F - calloc F - free F - malloc F - realloc F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1 A --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+ _dl_mcount F -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _dl_mcount F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread -+ __libc_stack_end D 0x4 -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _r_debug D 0x28 --GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.2 s390x-.*-linux.*/thread - GLIBC_2.2 A --GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+ __libc_stack_end D 0x8 -+GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3 A --GLIBC_2.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls -+GLIBC_2.3 i.86-.*-linux.*/thread - ___tls_get_addr F --GLIBC_2.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread x86_64-.*-linux.*/tls -+GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread x86_64-.*-linux.*/thread - __tls_get_addr F --GLIBC_2.3 s390-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.3 s390-.*-linux.*/thread s390x-.*-linux.*/thread - __tls_get_offset F -+GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.4 A -Index: glibc-2.15/abilist/libBrokenLocale.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libBrokenLocale.abilist -+++ glibc-2.15/abilist/libBrokenLocale.abilist -@@ -1,13 +1,13 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.0 A --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __ctype_get_mb_cur_max F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2 A - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -Index: glibc-2.15/abilist/libanl.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libanl.abilist -+++ glibc-2.15/abilist/libanl.abilist -@@ -1,13 +1,13 @@ --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2.3 A --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - gai_cancel F - gai_error F - gai_suspend F - getaddrinfo_a F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -Index: glibc-2.15/abilist/libc.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libc.abilist -+++ glibc-2.15/abilist/libc.abilist -@@ -1,13 +1,13 @@ --GCC_3.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GCC_3.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GCC_3.0 A - _Unwind_Find_FDE F - __deregister_frame_info_bases F - __register_frame_info_bases F - __register_frame_info_table_bases F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread - __fpu_control D 0x2 - vm86 F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.0 A - _IO_stderr_ D 0x50 - _IO_stdin_ D 0x50 -@@ -20,10 +20,10 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - sys_errlist D 0x1ec - sys_sigabbrev D 0x80 - sys_siglist D 0x80 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - getaliasbyname_r F - getaliasent_r F -@@ -51,17 +51,17 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - getservent_r F - getspent_r F - getspnam_r F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - _sys_nerr D 0x4 - sys_nerr D 0x4 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_do_write F - _IO_fclose F -@@ -88,21 +88,21 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - popen F - pthread_attr_init F - tmpfile F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - chown F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - fnmatch F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_fgetpos F - _IO_fsetpos F -@@ -115,28 +115,29 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - semctl F - setrlimit F - shmctl F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - re_max_failures D 0x4 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - pthread_cond_broadcast F -+ pthread_cond_timedwait F - pthread_cond_destroy F - pthread_cond_init F - pthread_cond_signal F - pthread_cond_wait F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - realpath F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_adjust_column F - _IO_default_doallocate F -@@ -1298,41 +1299,40 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - xencrypt F - xprt_register F - xprt_unregister F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __fork F - _nl_default_dirname D 0x12 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __bzero F - __clone F - clone F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - __divdi3 F - __moddi3 F - __udivdi3 F - __umoddi3 F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - atexit F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - __deregister_frame F - __frame_state_for F - __register_frame F - __register_frame_info_table F - __register_frame_table F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - __deregister_frame_info F - __register_frame_info F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2 sh[34].*-.*-linux.*/thread - _IO_file_jumps D 0x54 - _IO_list_all D 0x4 - __after_morecore_hook D 0x4 -@@ -1376,36 +1376,31 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - svcauthdes_stats D 0xc - timezone D 0x4 - tzname D 0x8 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls s390-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread s390-.*-linux.*/thread - ___brk_addr D 0x4 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - mcount F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - ioperm F - iopl F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls -+GLIBC_2.0 i.86-.*-linux.*/threads powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - _errno D 0x4 - _h_errno D 0x4 - errno D 0x4 - h_errno D 0x4 --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2 sh[34].*-.*-linux.*/notls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - _res D 0x200 --GLIBC_2.0 m68.*-.*-linux.*/notls -- _res D 0x1fe -- cacheflush F --GLIBC_2.0 m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __fpu_control D 0x4 --GLIBC_2.0 powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+ __fpu_control D 0x2 -+GLIBC_2.0 powerpc-.*-linux.*/thread - __ashldi3 F - __ashrdi3 F - __cmpdi2 F -@@ -1417,17 +1412,21 @@ GLIBC_2.0 powerpc-.*-linux.*/notls power - __floatdisf F - __lshrdi3 F - __ucmpdi2 F --GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls -+GLIBC_2.1.1 i.86-.*-linux.*/thread - __memcpy_by2 F - __memcpy_by4 F -+ __memcpy_c F - __memcpy_g F - __mempcpy_by2 F - __mempcpy_by4 F - __mempcpy_byn F -+ __memset_cc F - __memset_ccn_by2 F - __memset_ccn_by4 F -+ __memset_cg F - __memset_gcn_by2 F - __memset_gcn_by4 F -+ __memset_gg F - __stpcpy_g F - __strcat_c F - __strcat_g F -@@ -1454,11 +1453,11 @@ GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-. - __strspn_g F - __strstr_cg F - __strstr_g F --GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1.1 A --GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _Exit F - __mempcpy_small F -@@ -1489,37 +1488,36 @@ GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-. - xdr_u_hyper F - xdr_u_longlong_t F - xdr_uint64_t F --GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1.2 A --GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __vfork F --GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1.3 A --GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __cxa_atexit F - __cxa_finalize F - __sigsuspend F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls -+GLIBC_2.1 i.86-.*-linux.*/thread - scalbln F - scalblnf F - scalblnl F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1 A --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.2 ia64-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - wordexp F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_fgetpos64 F - _IO_fsetpos64 F -@@ -1532,20 +1530,20 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - readdir64 F - readdir64_r F - scandir64 F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - glob64 F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - alphasort64 F - versionsort64 F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_file_finish F - _IO_getline_info F -@@ -1625,7 +1623,6 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - __wcstoull_l F - __wcsxfrm_l F - __wctype_l F -- _argp_unlock_xxx F - _authenticate F - _dl_mcount_wrapper F - _dl_mcount_wrapper_check F -@@ -1791,8 +1788,8 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - xdr_uint32_t F - xdr_uint8_t F - xdr_unixcred F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2 sh[34].*-.*-linux.*/thread - __key_decryptsession_pk_LOCAL D 0x4 - __key_encryptsession_pk_LOCAL D 0x4 - __key_gendes_LOCAL D 0x4 -@@ -1804,61 +1801,60 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - sys_errlist D 0x1f4 - sys_sigabbrev D 0x100 - sys_siglist D 0x100 --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - __signbitl F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls --| GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread -+| GLIBC_2.2 sh[34].*-.*-linux.*/thread - _IO_2_1_stderr_ D 0x98 - _IO_2_1_stdin_ D 0x98 - _IO_2_1_stdout_ D 0x98 --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - modify_ldt F --GLIBC_2.1 powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1 powerpc-.*-linux.*/thread s390-.*-linux.*/thread - _IO_2_1_stderr_ D 0xa0 - _IO_2_1_stdin_ D 0xa0 - _IO_2_1_stdout_ D 0xa0 --GLIBC_2.1 s390-.*-linux.*/tls -+GLIBC_2.1 s390-.*-linux.*/thread - __chown F --GLIBC_2.2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2.1 A --GLIBC_2.2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - pivot_root F - posix_openpt F --GLIBC_2.2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2.2 A --GLIBC_2.2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __nss_hostname_digits_dots F --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2.3 A --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __rpc_thread_createerr F - __rpc_thread_svc_fdset F - __rpc_thread_svc_max_pollfd F - __rpc_thread_svc_pollfd F - sprofil F --GLIBC_2.2.4 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2.4 A --GLIBC_2.2.4 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - dl_iterate_phdr F - getgrouplist F - sockatmark F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A - __arch_prctl F - arch_prctl F --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_adjust_wcolumn F - _IO_free_wbackup_area F -@@ -2006,8 +2002,8 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls - wmempcpy F - wprintf F - wscanf F --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - __ctype32_b D 0x8 - __ctype32_tolower D 0x8 - __ctype32_toupper D 0x8 -@@ -2017,8 +2013,8 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls - _res D 0x238 - _sys_errlist D 0x3e8 - sys_errlist D 0x3e8 --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_2_1_stderr_ D 0xe0 - _IO_2_1_stdin_ D 0xe0 -@@ -2074,68 +2070,67 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls - sys_siglist D 0x200 - timezone D 0x8 - tzname D 0x10 --GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.2.6 A --GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __nanosleep F --GLIBC_2.2.6 ia64-.*-linux.*/tls -- getunwind F --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2 A --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - __ctype32_tolower D 0x4 - __ctype32_toupper D 0x4 - _res_hconf D 0x30 - svc_pollfd D 0x4 --GLIBC_2.2 i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - _IO_wfile_jumps D 0x54 --GLIBC_2.2 ia64-.*-linux.*/tls -- __clone2 F -- __divdf3 F -- __divsf3 F -- __divtf3 F -- __multi3 F -- _inb F -- _inl F -- _inw F -- _outb F -- _outl F -- _outw F -- inb F -- inl F -- inw F -- outb F -- outw F -- pciconfig_read F -- pciconfig_write F --GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls -+GLIBC_2.2 s390x-.*-linux.*/thread - ___brk_addr D 0x8 --GLIBC_2.2 sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 sh[34].*-.*-linux.*/thread - _nl_default_dirname D 0x20 --GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3.2 A - __register_atfork F - lchmod F -- sched_getaffinity F -- sched_setaffinity F - strptime_l F --GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread - epoll_create F - epoll_ctl F - epoll_wait F --GLIBC_2.3.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3.3 A - remap_file_pages F --GLIBC_2.3.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls -- _sys_siglist D 0x104 -+GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread - sys_sigabbrev D 0x104 -+ _sys_siglist D 0x104 - sys_siglist D 0x104 --GLIBC_2.3.3 ia64-.*-linux.*/tls powerpc64-.*-linux.*/thread s390x-.*-linux.*/tls x86_64-.*-linux.*/tls --| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.3.3 x86_64-.*-linux.*/thread -+ sys_sigabbrev D 0x208 -+ _sys_siglist D 0x208 -+ sys_siglist D 0x208 -+GLIBC_2.3.3 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread -+| GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - strtoll_l F - strtoull_l F --GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ sched_getaffinity F -+ sched_setaffinity F -+ semtimedop F -+ gnu_dev_major F -+ gnu_dev_makedev F -+ gnu_dev_minor F -+ inet6_option_alloc F -+ inet6_option_append F -+ inet6_option_find F -+ inet6_option_init F -+ inet6_option_next F -+ inet6_option_space F -+ nftw F -+ nftw64 F -+GLIBC_2.3.3 i.86-.*-linux.*/thread -+ posix_fadvise64 F -+ posix_fallocate64 F -+GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3 A - __ctype_b_loc F - __ctype_tolower_loc F -@@ -2223,9 +2218,276 @@ GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*- - wcsxfrm_l F - wctrans_l F - wctype_l F --GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - _sys_errlist D 0x1f8 - sys_errlist D 0x1f8 --GLIBC_2.3 ia64-.*-linux.*/tls powerpc64-.*-linux.*/thread s390x-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread - _sys_errlist D 0x3f0 - sys_errlist D 0x3f0 -+GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.3.4 A -+ __chk_fail F -+ __fprintf_chk F -+ __gets_chk F -+ __memcpy_chk F -+ __memmove_chk F -+ __mempcpy_chk F -+ __memset_chk F -+ __printf_chk F -+ __snprintf_chk F -+ __sprintf_chk F -+ __stpcpy_chk F -+ __strcat_chk F -+ __strcpy_chk F -+ __strncat_chk F -+ __strncpy_chk F -+ __vfprintf_chk F -+ __vprintf_chk F -+ __vsnprintf_chk F -+ __vsprintf_chk F -+ __xpg_strerror_r F -+ getipv4sourcefilter F -+ getsourcefilter F -+ regexec F -+ sched_getaffinity F -+ sched_setaffinity F -+ setipv4sourcefilter F -+ setsourcefilter F -+ xdr_quad_t F -+ xdr_u_quad_t F -+GLIBC_2.3.4 i.86-.*-linux.*/thread -+ vm86 F -+GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.4 A -+ __confstr_chk F -+ __fgets_chk F -+ __fgets_unlocked_chk F -+ __fgetws_chk F -+ __fgetws_unlocked_chk F -+ __fwprintf_chk F -+ __fxstatat F -+ __fxstatat64 F -+ __getcwd_chk F -+ __getdomainname_chk F -+ __getgroups_chk F -+ __gethostname_chk F -+ __getlogin_r_chk F -+ __getwd_chk F -+ __mbsnrtowcs_chk F -+ __mbsrtowcs_chk F -+ __mbstowcs_chk F -+ __pread64_chk F -+ __pread_chk F -+ __ptsname_r_chk F -+ __read_chk F -+ __readlink_chk F -+ __realpath_chk F -+ __recv_chk F -+ __recvfrom_chk F -+ __stack_chk_fail F -+ __stpncpy_chk F -+ __swprintf_chk F -+ __syslog_chk F -+ __ttyname_r_chk F -+ __vfwprintf_chk F -+ __vswprintf_chk F -+ __vsyslog_chk F -+ __vwprintf_chk F -+ __wcpcpy_chk F -+ __wcpncpy_chk F -+ __wcrtomb_chk F -+ __wcscat_chk F -+ __wcscpy_chk F -+ __wcsncat_chk F -+ __wcsncpy_chk F -+ __wcsnrtombs_chk F -+ __wcsrtombs_chk F -+ __wcstombs_chk F -+ __wctomb_chk F -+ __wmemcpy_chk F -+ __wmemmove_chk F -+ __wmempcpy_chk F -+ __wmemset_chk F -+ __wprintf_chk F -+ __xmknodat F -+ _sys_nerr D 0x4 -+ eaccess F -+ faccessat F -+ fchmodat F -+ fchownat F -+ fdopendir F -+ futimesat F -+ inotify_add_watch F -+ inotify_init F -+ inotify_rm_watch F -+ linkat F -+ mkdirat F -+ mkfifoat F -+ open_wmemstream F -+ openat F -+ openat64 F -+ ppoll F -+ readlinkat F -+ renameat F -+ symlinkat F -+ sys_nerr D 0x4 -+ unlinkat F -+ unshare F -+GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+ _sys_errlist D 0x210 -+ sys_errlist D 0x210 -+GLIBC_2.4 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread -+ _sys_errlist D 0x420 -+ sys_errlist D 0x420 -+GLIBC_2.5 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.5 A -+ __readlinkat_chk F -+ inet6_opt_append F -+ inet6_opt_find F -+ inet6_opt_finish F -+ inet6_opt_get_val F -+ inet6_opt_init F -+ inet6_opt_next F -+ inet6_opt_set_val F -+ inet6_rth_add F -+ inet6_rth_getaddr F -+ inet6_rth_init F -+ inet6_rth_reverse F -+ inet6_rth_segments F -+ inet6_rth_space F -+ splice F -+ tee F -+ vmsplice F -+GLIBC_2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.6 A -+ __sched_cpucount F -+ epoll_pwait F -+ futimens F -+ sched_getcpu F -+ strerror_l F -+ sync_file_range F -+ utimensat F -+GLIBC_2.7 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.7 A -+ __fread_chk F -+ __fread_unlocked_chk F -+ __isoc99_fscanf F -+ __isoc99_fwscanf F -+ __isoc99_scanf F -+ __isoc99_sscanf F -+ __isoc99_swscanf F -+ __isoc99_vfscanf F -+ __isoc99_vfwscanf F -+ __isoc99_vscanf F -+ __isoc99_vsscanf F -+ __isoc99_vswscanf F -+ __isoc99_vwscanf F -+ __isoc99_wscanf F -+ __open64_2 F -+ __open_2 F -+ __openat64_2 F -+ __openat_2 F -+ __sched_cpualloc F -+ __sched_cpufree F -+ eventfd F -+ eventfd_read F -+ eventfd_write F -+ mkostemp F -+ mkostemp64 F -+ signalfd F -+GLIBC_2.8 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.8 A -+ __asprintf_chk F -+ __dprintf_chk F -+ __obstack_printf_chk F -+ __obstack_vprintf_chk F -+ __vasprintf_chk F -+ __vdprintf_chk F -+ qsort_r F -+ timerfd_create F -+ timerfd_gettime F -+ timerfd_settime F -+GLIBC_2.9 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.9 A -+ dup3 F -+ epoll_create1 F -+ inotify_init1 F -+ pipe2 F -+GLIBC_2.10 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.10 A -+ __cxa_at_quick_exit F -+ __posix_getopt F -+ accept4 F -+ endsgent F -+ fallocate F -+ fgetsgent F -+ fgetsgent_r F -+ getsgent F -+ getsgent_r F -+ getsgnam F -+ getsgnam_r F -+ malloc_info F -+ preadv F -+ preadv64 F -+ psiginfo F -+ putsgent F -+ pwritev F -+ pwritev64 F -+ quick_exit F -+ register_printf_modifier F -+ register_printf_specifier F -+ register_printf_type F -+ setsgent F -+ sgetsgent F -+ sgetsgent_r F -+GLIBC_2.10 powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ fallocate64 F -+GLIBC_2.11 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.11 A -+ __longjmp_chk F -+ execvpe F -+ mkostemps F -+ mkostemps64 F -+ mkstemps F -+ mkstemps64 F -+GLIBC_2.11 i.86-.*-linux.*/thread -+ fallocate64 F -+GLIBC_2.12 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.12 A -+ _sys_nerr D 0x4 -+ ntp_gettimex F -+ recvmmsg F -+ sys_nerr D 0x4 -+GLIBC_2.12 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+ _sys_errlist D 0x21c -+ sys_errlist D 0x21c -+GLIBC_2.12 powerpc64-.*-linux.*/thread s390x-.*-linux.*/thread x86_64-.*-linux.*/thread -+ _sys_errlist D 0x438 -+ sys_errlist D 0x438 -+GLIBC_2.13 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.13 A -+ __fentry__ F -+ fanotify_init F -+ fanotify_mark F -+ prlimit F -+ prlimit64 F -+GLIBC_2.14 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.14 A -+ clock_adjtime F -+ name_to_handle_at F -+ open_by_handle_at F -+ sendmmsg F -+ setns F -+ syncfs F -+GLIBC_2.14 x86_64-.*-linux.*/thread -+ memcpy F -+GLIBC_2.15 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.15 A -+ __fdelt_chk F -+ __fdelt_warn F -+ posix_spawn F -+ posix_spawnp F -+ process_vm_readv F -+ process_vm_writev F -+ scandirat F -+ scandirat64 F -Index: glibc-2.15/abilist/libcrypt.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libcrypt.abilist -+++ glibc-2.15/abilist/libcrypt.abilist -@@ -1,19 +1,32 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.0 A --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.2 s390x-.*-linux.*/thread - GLIBC_2.2 A - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -+OW_CRYPT_1.0 .*-linux.*/thread -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -+ -Index: glibc-2.15/abilist/libdl.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libdl.abilist -+++ glibc-2.15/abilist/libdl.abilist -@@ -1,33 +1,36 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.0 A --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - dlopen F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - dladdr F - dlclose F - dlerror F - dlsym F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.1 A --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - dlvsym F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.2 s390x-.*-linux.*/thread - GLIBC_2.2 A --GLIBC_2.3.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3.3 A - dladdr1 F - dlinfo F - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -+GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.3.4 A -+ dlmopen F -Index: glibc-2.15/abilist/libm.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libm.abilist -+++ glibc-2.15/abilist/libm.abilist -@@ -1,8 +1,8 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.0 A --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _LIB_VERSION D 0x4 - acos F -@@ -160,11 +160,11 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - yn F - ynf F - ynl F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1 A --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - feclearexcept F - fegetenv F -@@ -173,9 +173,9 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - fesetenv F - fesetexceptflag F - feupdateenv F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __clog10 F - __clog10f F -@@ -322,34 +322,114 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - trunc F - truncf F - truncl F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - __fpclassifyl F - __signbitl F - exp2l F --GLIBC_2.1 powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls -+GLIBC_2.1 powerpc-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __fe_dfl_env D 0x8 - __fe_enabled_env D 0x8 - __fe_nomask_env F - __fe_nonieee_env D 0x8 --GLIBC_2.2.3 ia64-.*-linux.*/tls -- GLIBC_2.2.3 A -- matherrf F -- matherrl F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - fedisableexcept F - feenableexcept F - fegetexcept F --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread - __expl F - __expm1l F --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2 A - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -+GLIBC_2.4 i.86-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.4 A -+GLIBC_2.15 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread x86_64-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread powerpc64-.*-linux.*/thread -+ GLIBC_2.15 A -+ __acos_finite F -+ __acosf_finite F -+ __acosh_finite F -+ __acoshf_finite F -+ __acoshl_finite F -+ __acosl_finite F -+ __asin_finite F -+ __asinf_finite F -+ __asinl_finite F -+ __atan2_finite F -+ __atan2f_finite F -+ __atan2l_finite F -+ __atanh_finite F -+ __atanhf_finite F -+ __atanhl_finite F -+ __cosh_finite F -+ __coshf_finite F -+ __coshl_finite F -+ __exp10_finite F -+ __exp10f_finite F -+ __exp10l_finite F -+ __exp2_finite F -+ __exp2f_finite F -+ __exp2l_finite F -+ __expl_finite F -+ __exp_finite F -+ __expf_finite F -+ __fmod_finite F -+ __fmodf_finite F -+ __fmodl_finite F -+ __gamma_r_finite F -+ __gammaf_r_finite F -+ __gammal_r_finite F -+ __hypot_finite F -+ __hypotf_finite F -+ __hypotl_finite F -+ __j0_finite F -+ __j0f_finite F -+ __j0l_finite F -+ __j1_finite F -+ __j1f_finite F -+ __j1l_finite F -+ __jn_finite F -+ __jnf_finite F -+ __jnl_finite F -+ __lgamma_r_finite F -+ __lgammaf_r_finite F -+ __lgammal_r_finite F -+ __log10_finite F -+ __log10f_finite F -+ __log10l_finite F -+ __log2_finite F -+ __log2f_finite F -+ __log2l_finite F -+ __log_finite F -+ __logf_finite F -+ __logl_finite F -+ __pow_finite F -+ __powf_finite F -+ __powl_finite F -+ __remainder_finite F -+ __remainderf_finite F -+ __remainderl_finite F -+ __scalb_finite F -+ __scalbf_finite F -+ __scalbl_finite F -+ __sinh_finite F -+ __sinhf_finite F -+ __sinhl_finite F -+ __sqrt_finite F -+ __sqrtf_finite F -+ __sqrtl_finite F -+ __y0_finite F -+ __y0f_finite F -+ __y0l_finite F -+ __y1_finite F -+ __y1f_finite F -+ __y1l_finite F -+ __yn_finite F -+ __ynf_finite F -+ __ynl_finite F -Index: glibc-2.15/abilist/libnsl.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libnsl.abilist -+++ glibc-2.15/abilist/libnsl.abilist -@@ -1,8 +1,8 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.0 A --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __yp_check F - xdr_domainname F -@@ -47,11 +47,11 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - ypbinderr_string F - yperr_string F - ypprot_err F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.1 A --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __free_fdresult F - __nis_default_access F -@@ -130,13 +130,13 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - writeColdStartFile F - xdr_cback_data F - xdr_obj_p F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - xdr_ypall F --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2 A - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -Index: glibc-2.15/abilist/libpthread.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libpthread.abilist -+++ glibc-2.15/abilist/libpthread.abilist -@@ -1,9 +1,9 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.0 A --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - pthread_attr_init F - pthread_create F -@@ -13,14 +13,14 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - sem_post F - sem_trywait F - sem_wait F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - pthread_atfork F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - pthread_cond_broadcast F - pthread_cond_destroy F -@@ -28,9 +28,9 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - pthread_cond_signal F - pthread_cond_timedwait F - pthread_cond_wait F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - _IO_flockfile F - _IO_ftrylockfile F -@@ -137,27 +137,27 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - wait F - waitpid F - write F --GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1.1 A --GLIBC_2.1.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - sem_close F - sem_open F - sem_unlink F --GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1.2 A --GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __vfork F --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread - GLIBC_2.1 A --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __libc_allocate_rtsig F - __libc_current_sigrtmax F -@@ -185,16 +185,16 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - pthread_rwlockattr_setkind_np F - pthread_rwlockattr_setpshared F - pthread_setconcurrency F --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2.3 A --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - pthread_getattr_np F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __open64 F - __pread64 F -@@ -236,21 +236,59 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls - pwrite F - pwrite64 F - sem_timedwait F --GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.2.6 A --GLIBC_2.2.6 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.2.6 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __nanosleep F --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2 A --GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3.2 A --GLIBC_2.3.3 i.86-.*-linux.*/thread sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.3.3 i.86-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3.3 A -+ __pthread_cleanup_routine F -+ __pthread_register_cancel F -+ __pthread_register_cancel_defer F -+ __pthread_unregister_cancel F -+ __pthread_unregister_cancel_restore F -+ __pthread_unwind_next F -+ pthread_attr_getaffinity_np F -+ pthread_attr_setaffinity_np F - pthread_barrierattr_getpshared F - pthread_condattr_getclock F - pthread_condattr_setclock F -+ pthread_getaffinity_np F -+ pthread_setaffinity_np F - pthread_timedjoin_np F - pthread_tryjoin_np F - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -+GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.3.4 A -+ pthread_attr_getaffinity_np F -+ pthread_attr_setaffinity_np F -+ pthread_getaffinity_np F -+ pthread_setaffinity_np F -+ pthread_setschedprio F -+GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.4 A -+ pthread_mutex_consistent_np F -+ pthread_mutex_getprioceiling F -+ pthread_mutex_setprioceiling F -+ pthread_mutexattr_getprioceiling F -+ pthread_mutexattr_getprotocol F -+ pthread_mutexattr_getrobust_np F -+ pthread_mutexattr_setprioceiling F -+ pthread_mutexattr_setprotocol F -+ pthread_mutexattr_setrobust_np F -+GLIBC_2.11 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.11 A -+ pthread_sigqueue F -+GLIBC_2.12 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.12 A -+ pthread_getname_np F -+ pthread_mutex_consistent F -+ pthread_mutexattr_getrobust F -+ pthread_mutexattr_setrobust F -+ pthread_setname_np F -Index: glibc-2.15/abilist/libresolv.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libresolv.abilist -+++ glibc-2.15/abilist/libresolv.abilist -@@ -1,13 +1,13 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.0 A - dn_expand F - res_mkquery F - res_query F - res_querydomain F - res_search F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __b64_ntop F - __b64_pton F -@@ -59,21 +59,20 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - res_gethostbyname2 F - res_send_setqhook F - res_send_setrhook F --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - __p_class_syms D 0x54 -- __p_type_syms D 0x21c -+ __p_type_syms D 0x228 - _res_opcodes D 0x40 --GLIBC_2.0 ia64-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __p_class_syms D 0xa8 -- __p_type_syms D 0x438 -+ __p_type_syms D 0x450 - _res_opcodes D 0x80 --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - __dn_expand F - __res_hostalias F -@@ -86,10 +85,38 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls - __res_query F - __res_querydomain F - __res_search F --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2 A --GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3.2 A - __p_rcode F - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -+GLIBC_2.9 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.9 A -+ ns_datetosecs F -+ ns_format_ttl F -+ ns_get16 F -+ ns_get32 F -+ ns_initparse F -+ ns_makecanon F -+ ns_msg_getflag F -+ ns_name_compress F -+ ns_name_ntol F -+ ns_name_ntop F -+ ns_name_pack F -+ ns_name_pton F -+ ns_name_rollback F -+ ns_name_skip F -+ ns_name_uncompress F -+ ns_name_unpack F -+ ns_parse_ttl F -+ ns_parserr F -+ ns_put16 F -+ ns_put32 F -+ ns_samedomain F -+ ns_samename F -+ ns_skiprr F -+ ns_sprintrr F -+ ns_sprintrrf F -+ ns_subdomain F -Index: glibc-2.15/abilist/librt.abilist -=================================================================== ---- glibc-2.15.orig/abilist/librt.abilist -+++ glibc-2.15/abilist/librt.abilist -@@ -1,8 +1,8 @@ --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.1 A --GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.1 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - aio_cancel F - aio_cancel64 F -@@ -21,10 +21,10 @@ GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*- - aio_write64 F - lio_listio F - lio_listio64 F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - clock_getcpuclockid F - clock_getres F -@@ -38,7 +38,33 @@ GLIBC_2.2.5 x86_64-.*-linux.*/tls - timer_getoverrun F - timer_gettime F - timer_settime F --GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2 A - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -+GLIBC_2.3.3 powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.3.3 A -+ timer_create F -+ timer_delete F -+ timer_getoverrun F -+ timer_gettime F -+ timer_settime F -+GLIBC_2.3.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.3.4 A -+ mq_close F -+ mq_getattr F -+ mq_notify F -+ mq_open F -+ mq_receive F -+ mq_send F -+ mq_setattr F -+ mq_timedreceive F -+ mq_timedsend F -+ mq_unlink F -+GLIBC_2.4 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.4 A -+ lio_listio F -+ lio_listio64 F -+GLIBC_2.7 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread -+ GLIBC_2.7 A -+ __mq_open_2 F -Index: glibc-2.15/abilist/libthread_db.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libthread_db.abilist -+++ glibc-2.15/abilist/libthread_db.abilist -@@ -1,8 +1,8 @@ --GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.1.3 A --GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.1.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - td_init F - td_log F -@@ -41,19 +41,19 @@ GLIBC_2.1.3 i.86-.*-linux.*/notls i.86-. - td_thr_sigsetmask F - td_thr_tsd F - td_thr_validate F --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.2.3 A --GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - td_symbol_list F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.2 s390x-.*-linux.*/thread - GLIBC_2.2 A --GLIBC_2.3.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3.3 A - td_thr_tlsbase F --GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls -+GLIBC_2.3 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread powerpc64-.*-linux.*/thread s390-.*-linux.*/thread s390x-.*-linux.*/thread sh[34].*-.*-linux.*/thread x86_64-.*-linux.*/thread - GLIBC_2.3 A - td_thr_tls_get_addr F -Index: glibc-2.15/abilist/libutil.abilist -=================================================================== ---- glibc-2.15.orig/abilist/libutil.abilist -+++ glibc-2.15/abilist/libutil.abilist -@@ -1,8 +1,8 @@ --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread - GLIBC_2.0 A --GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls --| GLIBC_2.2.5 x86_64-.*-linux.*/tls --| GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.0 i.86-.*-linux.*/thread powerpc-.*-linux.*/thread s390-.*-linux.*/thread sh[34].*-.*-linux.*/thread -+| GLIBC_2.2.5 x86_64-.*-linux.*/thread -+| GLIBC_2.2 s390x-.*-linux.*/thread - | GLIBC_2.3 powerpc64-.*-linux.*/thread - forkpty F - login F -@@ -10,9 +10,9 @@ GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*- - logout F - logwtmp F - openpty F --GLIBC_2.2.5 x86_64-.*-linux.*/tls -+GLIBC_2.2.5 x86_64-.*-linux.*/thread - GLIBC_2.2.5 A --GLIBC_2.2 s390x-.*-linux.*/tls -+GLIBC_2.2 s390x-.*-linux.*/thread - GLIBC_2.2 A - GLIBC_2.3 powerpc64-.*-linux.*/thread - GLIBC_2.3 A -Index: glibc-2.15/argp/Versions -=================================================================== ---- glibc-2.15.orig/argp/Versions -+++ glibc-2.15/argp/Versions -@@ -7,8 +7,5 @@ libc { - # a* - argp_error; argp_failure; argp_help; argp_parse; argp_state_help; - argp_usage; -- -- # kludge for recursive argp callers that know the magic. -- _argp_unlock_xxx; - } - } -Index: glibc-2.15/scripts/abilist.awk -=================================================================== ---- glibc-2.15.orig/scripts/abilist.awk -+++ glibc-2.15/scripts/abilist.awk -@@ -74,6 +74,11 @@ $2 == "g" || $2 == "w" && NF == 7 { - type = "F"; - size = ""; - } -+ else if (type == "iD" && $4 == ".text") { -+ # Indirect functions. -+ type = "F"; -+ size = ""; -+ } - else { - desc = symbol " " version " " weak " ? " type " " $4 " " $5; - } diff --git a/glibc-2.16-mcheck.patch b/glibc-2.16-mcheck.patch deleted file mode 100644 index 48860fa..0000000 --- a/glibc-2.16-mcheck.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: glibc-2.15/malloc/mcheck.c -=================================================================== ---- glibc-2.15.orig/malloc/mcheck.c -+++ glibc-2.15/malloc/mcheck.c -@@ -371,6 +371,12 @@ mabort (enum mcheck_status status) - #endif - } - -+#ifndef malloc_opt_barrier -+#define malloc_opt_barrier(x) \ -+({ __typeof (x) __x = x; __asm ("" : "+m" (__x)); __x; }) -+#define malloc_force_eval(x) __asm __volatile ("" : : "m" (x)) -+#endif -+ - int - mcheck (func) - void (*func) (enum mcheck_status); -@@ -382,6 +388,7 @@ mcheck (func) - { - /* We call malloc() once here to ensure it is initialized. */ - void *p = malloc (0); -+ p = malloc_opt_barrier (p); - free (p); - - old_free_hook = __free_hook; diff --git a/glibc-2.16-powerpc-initfini.patch b/glibc-2.16-powerpc-initfini.patch deleted file mode 100644 index 4153398..0000000 --- a/glibc-2.16-powerpc-initfini.patch +++ /dev/null @@ -1,795 +0,0 @@ -commit 3add8e1353d62d77fdd9b4ca363cdfe7006b0efb -Author: Joseph Myers -Date: Wed Feb 8 01:45:26 2012 +0000 - - Support crti.S and crtn.S provided directly by architectures. - -2012-02-08 Joseph Myers - - Support crti.S and crtn.S provided directly by architectures. - * csu/Makefile [crti.S in sysdirs] (generated): Do not append. - [crti.S in sysdirs] (omit-deps): Likewise. - [crti.S in sysdirs] (CFLAGS-initfini.s): Do not define variable. - [crti.S in sysdirs] ($(crtstuff:%=$(objpfx)%.o)): Disable rule. - [crti.S in sysdirs] ($(objpfx)initfini.s): Likewise. - [crti.S in sysdirs] ($(objpfx)crti.S): Likewise. - [crti.S in sysdirs] ($(objpfx)crtn.S): Likewise. - [crti.S in sysdirs] ($(patsubst %,$(objpfx)crt%.o,i n)): Likewise. - [crti.S in sysdirs] ($(objpfx)defs.h): Likewise. - [crti.S in sysdirs] (initfini.c): Remove vpath directive. - * sysdeps/i386/crti.S, sysdeps/i386/crtn.S: New files, based on - compiler output for sysdeps/generic/initfini.c. - * sysdeps/i386/elf/Makefile: Remove file. - * sysdeps/i386/Makefile (CFLAGS-initfini.s): Remove variable. - -Index: glibc-2.15/csu/Makefile -=================================================================== ---- glibc-2.15.orig/csu/Makefile -+++ glibc-2.15/csu/Makefile -@@ -75,10 +75,6 @@ before-compile += $(objpfx)abi-tag.h - generated += abi-tag.h - endif - --ifeq ($(have-initfini),yes) -- --CPPFLAGS += -DHAVE_INITFINI -- - # These are the special initializer/finalizer files. They are always the - # first and last file in the link. crti.o ... crtn.o define the global - # "functions" _init and _fini to run the .init and .fini sections. -@@ -86,6 +82,13 @@ crtstuff = crti crtn - - install-lib += $(crtstuff:=.o) - extra-objs += $(crtstuff:=.o) -+ -+# Conditionals on the existence of a sysdeps version of crti.S are -+# temporary until all targets either have such a file or have been -+# removed, after which the old approach of postprocessing compiler -+# output will be removed. -+ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) -+ - generated += $(crtstuff:=.S) initfini.s defs.h - omit-deps += $(crtstuff) - -Index: glibc-2.15/nptl/Makefile -=================================================================== ---- glibc-2.15.orig/nptl/Makefile -+++ glibc-2.15/nptl/Makefile -@@ -335,15 +335,22 @@ ifneq (,$(patsubst .,,$(multidir))) - generated-dirs := $(firstword $(subst /, , $(multidir))) - crti-objs += $(multidir)/crti.o - crtn-objs += $(multidir)/crtn.o -+# Conditionals on the existence of a sysdeps version of crti.S are -+# temporary until all targets either have such a file or have been -+# removed, after which the old approach of postprocessing compiler -+# output will be removed. -+ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) - omit-deps += $(multidir)/crti $(multidir)/crtn -+endif - $(objpfx)$(multidir): - mkdir -p $@ - endif - extra-objs += $(crti-objs) $(crtn-objs) -+ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) - omit-deps += crti crtn -- - CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables - endif -+endif - - CFLAGS-flockfile.c = -D_IO_MTSAFE_IO - CFLAGS-ftrylockfile.c = -D_IO_MTSAFE_IO -@@ -543,15 +550,24 @@ $(addprefix $(objpfx),$(tests) $(test-sr - endif - - ifeq ($(build-shared),yes) -+ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) - vpath pt-initfini.c $(sysdirs) - - $(objpfx)pt-initfini.s: pt-initfini.c - $(compile.c) -S $(CFLAGS-pt-initfini.s) -finhibit-size-directive \ - $(patsubst -f%,-fno-%,$(exceptions)) -o $@ -+endif - - $(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0 - $(make-test-out) 2>&1 | cmp - tst-cleanup0.expect > $@ - -+ifneq (,$(wildcard $(sysdirs:%=%/crti.S))) -+ -+$(objpfx)crti.o: $(objpfx)pt-crti.o -+ ln -f $< $@ -+ -+else -+ - # We only have one kind of startup code files. Static binaries and - # shared libraries are build using the PIC version. - $(objpfx)crti.S: $(objpfx)pt-initfini.s -@@ -573,6 +589,8 @@ $(objpfx)crti.o: $(objpfx)crti.S $(objpf - $(objpfx)crtn.o: $(objpfx)crtn.S $(objpfx)defs.h - $(compile.S) -g0 $(ASFLAGS-.os) -o $@ - -+endif -+ - ifneq ($(multidir),.) - $(objpfx)$(multidir)/crti.o: $(objpfx)crti.o $(objpfx)$(multidir)/ - ln -f $< $@ -Index: glibc-2.15/nptl/pt-crti.S -=================================================================== ---- /dev/null -+++ glibc-2.15/nptl/pt-crti.S -@@ -0,0 +1,44 @@ -+/* Special .init and .fini section support for libpthread. -+ Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The GNU Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ Note that people who make modified versions of this file are not -+ obligated to grant this special exception for their modified -+ versions; it is their choice whether to do so. The GNU Lesser -+ General Public License gives permission to release a modified -+ version without this exception; this exception also makes it -+ possible to release a modified version which carries forward this -+ exception. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* Arrange for __pthread_initialize_minimal_internal to be called at -+ libpthread startup, instead of conditionally calling -+ __gmon_start__. */ -+ -+#define PREINIT_FUNCTION __pthread_initialize_minimal_internal -+#define PREINIT_FUNCTION_WEAK 0 -+ -+#include -Index: glibc-2.15/sysdeps/i386/Makefile -=================================================================== ---- glibc-2.15.orig/sysdeps/i386/Makefile -+++ glibc-2.15/sysdeps/i386/Makefile -@@ -5,12 +5,6 @@ asm-CPPFLAGS += -DGAS_SYNTAX - # The i386 `long double' is a distinct type we support. - long-double-fcts = yes - --ifeq ($(subdir),csu) --# On i686 we must avoid generating the trampoline functions generated --# to get the GOT pointer. --CFLAGS-initfini.s += -march=i386 -mtune=i386 --endif -- - ifeq ($(subdir),gmon) - sysdep_routines += i386-mcount - endif -Index: glibc-2.15/sysdeps/i386/crti.S -=================================================================== ---- /dev/null -+++ glibc-2.15/sysdeps/i386/crti.S -@@ -0,0 +1,85 @@ -+/* Special .init and .fini section support for x86. -+ Copyright (C) 1995-2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The GNU Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ Note that people who make modified versions of this file are not -+ obligated to grant this special exception for their modified -+ versions; it is their choice whether to do so. The GNU Lesser -+ General Public License gives permission to release a modified -+ version without this exception; this exception also makes it -+ possible to release a modified version which carries forward this -+ exception. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* crti.S puts a function prologue at the beginning of the .init and -+ .fini sections and defines global symbols for those addresses, so -+ they can be called as functions. The symbols _init and _fini are -+ magic and cause the linker to emit DT_INIT and DT_FINI. */ -+ -+#include -+#include -+ -+#ifndef PREINIT_FUNCTION -+# define PREINIT_FUNCTION __gmon_start__ -+#endif -+ -+#ifndef PREINIT_FUNCTION_WEAK -+# define PREINIT_FUNCTION_WEAK 1 -+#endif -+ -+#if PREINIT_FUNCTION_WEAK -+ weak_extern (PREINIT_FUNCTION) -+#else -+ .hidden PREINIT_FUNCTION -+#endif -+ -+ .section .init,"ax",@progbits -+ .p2align 2 -+ .globl _init -+ .type _init, @function -+_init: -+ pushl %ebx -+ /* Maintain 16-byte stack alignment for called functions. */ -+ subl $8, %esp -+ LOAD_PIC_REG (bx) -+#if PREINIT_FUNCTION_WEAK -+ movl PREINIT_FUNCTION@GOT(%ebx), %eax -+ testl %eax, %eax -+ je .Lno_weak_fn -+ call PREINIT_FUNCTION@PLT -+.Lno_weak_fn: -+#else -+ call PREINIT_FUNCTION -+#endif -+ -+ .section .fini,"ax",@progbits -+ .p2align 2 -+ .globl _fini -+ .type _fini, @function -+_fini: -+ pushl %ebx -+ subl $8, %esp -+ LOAD_PIC_REG (bx) -Index: glibc-2.15/sysdeps/i386/crtn.S -=================================================================== ---- /dev/null -+++ glibc-2.15/sysdeps/i386/crtn.S -@@ -0,0 +1,48 @@ -+/* Special .init and .fini section support for x86. -+ Copyright (C) 1995-2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The GNU Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ Note that people who make modified versions of this file are not -+ obligated to grant this special exception for their modified -+ versions; it is their choice whether to do so. The GNU Lesser -+ General Public License gives permission to release a modified -+ version without this exception; this exception also makes it -+ possible to release a modified version which carries forward this -+ exception. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* crtn.S puts function epilogues in the .init and .fini sections -+ corresponding to the prologues in crti.S. */ -+ -+ .section .init,"ax",@progbits -+ addl $8, %esp -+ popl %ebx -+ ret -+ -+ .section .fini,"ax",@progbits -+ addl $8, %esp -+ popl %ebx -+ ret -Index: glibc-2.15/sysdeps/i386/elf/Makefile -=================================================================== ---- glibc-2.15.orig/sysdeps/i386/elf/Makefile -+++ /dev/null -@@ -1,4 +0,0 @@ --ifeq ($(subdir),csu) --# Turn off -fasynchronous-unwind-tables --CFLAGS-initfini.s += -fno-asynchronous-unwind-tables --endif -Index: glibc-2.15/Makeconfig -=================================================================== ---- glibc-2.15.orig/Makeconfig -+++ glibc-2.15/Makeconfig -@@ -394,11 +394,6 @@ ifndef asm-CPPFLAGS - asm-CPPFLAGS = - endif - --# ELF always supports init/fini sections --ifeq ($(elf),yes) --have-initfini = yes --endif -- - ifeq ($(have-as-needed),yes) - as-needed := -Wl,--as-needed - no-as-needed := -Wl,--no-as-needed -@@ -412,14 +407,8 @@ no-whole-archive = -Wl,--no-whole-archiv - whole-archive = -Wl,--whole-archive - - # Installed name of the startup code. --ifneq ($(have-initfini),yes) --# When not having init/fini, there is just one startfile, called crt0.o. --start-installed-name = crt0.o --else --# On systems having init/fini, crt0.o is called crt1.o, and there are --# some additional bizarre files. -+# The ELF convention is that the startfile is called crt1.o - start-installed-name = crt1.o --endif - # On systems that do not need a special startfile for statically linked - # binaries, simply set it to the normal name. - ifndef static-start-installed-name -Index: glibc-2.15/config.h.in -=================================================================== ---- glibc-2.15.orig/config.h.in -+++ glibc-2.15/config.h.in -@@ -42,9 +42,6 @@ - assembler instructions per line. Default is `;' */ - #undef ASM_LINE_SEP - --/* Define if not using ELF, but `.init' and `.fini' sections are available. */ --#undef HAVE_INITFINI -- - /* Define if __attribute__((section("foo"))) puts quotes around foo. */ - #undef HAVE_SECTION_QUOTES - -Index: glibc-2.15/config.make.in -=================================================================== ---- glibc-2.15.orig/config.make.in -+++ glibc-2.15/config.make.in -@@ -48,11 +48,9 @@ all-warnings = @all_warnings@ - elf = @elf@ - have-z-combreloc = @libc_cv_z_combreloc@ - have-z-execstack = @libc_cv_z_execstack@ --have-initfini = @libc_cv_have_initfini@ - have-Bgroup = @libc_cv_Bgroup@ - have-as-needed = @libc_cv_as_needed@ - libgcc_s_suffix = @libc_cv_libgcc_s_suffix@ --need-nopic-initfini = @nopic_initfini@ - with-fp = @with_fp@ - old-glibc-headers = @old_glibc_headers@ - unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ -Index: glibc-2.15/configure -=================================================================== ---- glibc-2.15.orig/configure -+++ glibc-2.15/configure -@@ -610,7 +610,6 @@ RELEASE - VERSION - mach_interface_list - DEFINES --nopic_initfini - static_nss - bounded - omitfp -@@ -7995,7 +7994,6 @@ $as_echo "$libc_cv_pic_default" >&6; } - - - -- - - - -Index: glibc-2.15/configure.in -=================================================================== ---- glibc-2.15.orig/configure.in -+++ glibc-2.15/configure.in -@@ -2377,7 +2377,6 @@ AC_SUBST(profile) - AC_SUBST(omitfp) - AC_SUBST(bounded) - AC_SUBST(static_nss) --AC_SUBST(nopic_initfini) - - AC_SUBST(DEFINES) - -Index: glibc-2.15/csu/gmon-start.c -=================================================================== ---- glibc-2.15.orig/csu/gmon-start.c -+++ glibc-2.15/csu/gmon-start.c -@@ -1,5 +1,5 @@ - /* Code to enable profiling at program startup. -- Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. -+ Copyright (C) 1995,1996,1997,2000,2001,2002,2012 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 -@@ -43,23 +43,14 @@ extern char etext[]; - # endif - #endif - --#ifndef HAVE_INITFINI --/* This function gets called at startup by the normal constructor -- mechanism. We link this file together with start.o to produce gcrt1.o, -- so this constructor will be first in the list. */ -- --extern void __gmon_start__ (void) __attribute__ ((constructor)); --#else --/* In ELF and COFF, we cannot use the normal constructor mechanism to call -+/* We cannot use the normal constructor mechanism to call - __gmon_start__ because gcrt1.o appears before crtbegin.o in the link. -- Instead crti.o calls it specially (see initfini.c). */ -+ Instead crti.o calls it specially. */ - extern void __gmon_start__ (void); --#endif - - void - __gmon_start__ (void) - { --#ifdef HAVE_INITFINI - /* Protect from being called more than once. Since crti.o is linked - into every shared library, each of their init functions will call us. */ - static int called; -@@ -68,7 +59,6 @@ __gmon_start__ (void) - return; - - called = 1; --#endif - - /* Start keeping profiling records. */ - __monstartup ((u_long) TEXT_START, (u_long) &etext); -Index: glibc-2.15/sysdeps/powerpc/powerpc32/crti.S -=================================================================== ---- /dev/null -+++ glibc-2.15/sysdeps/powerpc/powerpc32/crti.S -@@ -0,0 +1,90 @@ -+/* Special .init and .fini section support for PowerPC. -+ Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The GNU Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ Note that people who make modified versions of this file are not -+ obligated to grant this special exception for their modified -+ versions; it is their choice whether to do so. The GNU Lesser -+ General Public License gives permission to release a modified -+ version without this exception; this exception also makes it -+ possible to release a modified version which carries forward this -+ exception. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* crti.S puts a function prologue at the beginning of the .init and -+ .fini sections and defines global symbols for those addresses, so -+ they can be called as functions. The symbols _init and _fini are -+ magic and cause the linker to emit DT_INIT and DT_FINI. */ -+ -+#include -+#include -+ -+#ifndef PREINIT_FUNCTION -+# define PREINIT_FUNCTION __gmon_start__ -+#endif -+ -+#ifndef PREINIT_FUNCTION_WEAK -+# define PREINIT_FUNCTION_WEAK 1 -+#endif -+ -+#if PREINIT_FUNCTION_WEAK -+ weak_extern (PREINIT_FUNCTION) -+#else -+ .hidden PREINIT_FUNCTION -+#endif -+ -+ .section .init,"ax",@progbits -+ .align 2 -+ .globl _init -+ .type _init, @function -+_init: -+ stwu r1, -16(r1) -+ mflr r0 -+ stw r0, 20(r1) -+ stw r30, 8(r1) -+ SETUP_GOT_ACCESS (r30, .Lgot_label_i) -+ addis r30, r30, _GLOBAL_OFFSET_TABLE_-.Lgot_label_i@ha -+ addi r30, r30, _GLOBAL_OFFSET_TABLE_-.Lgot_label_i@l -+#if PREINIT_FUNCTION_WEAK -+ lwz r0, PREINIT_FUNCTION@got(r30) -+ cmpwi cr7, r0, 0 -+ beq+ cr7, 1f -+ bl PREINIT_FUNCTION@plt -+1: -+#else -+ bl PREINIT_FUNCTION@local -+#endif -+ -+ .section .fini,"ax",@progbits -+ .align 2 -+ .globl _fini -+ .type _fini, @function -+_fini: -+ stwu r1, -16(r1) -+ mflr r0 -+ stw r0, 20(r1) -+ stw r30, 8(r1) -+ SETUP_GOT_ACCESS (r30, .Lgot_label_f) -Index: glibc-2.15/sysdeps/powerpc/powerpc32/crtn.S -=================================================================== ---- /dev/null -+++ glibc-2.15/sysdeps/powerpc/powerpc32/crtn.S -@@ -0,0 +1,54 @@ -+/* Special .init and .fini section support for PowerPC. -+ Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The GNU Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ Note that people who make modified versions of this file are not -+ obligated to grant this special exception for their modified -+ versions; it is their choice whether to do so. The GNU Lesser -+ General Public License gives permission to release a modified -+ version without this exception; this exception also makes it -+ possible to release a modified version which carries forward this -+ exception. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* crtn.S puts function epilogues in the .init and .fini sections -+ corresponding to the prologues in crti.S. */ -+ -+#include -+ -+ .section .init,"ax",@progbits -+ lwz r0, 20(r1) -+ mtlr r0 -+ lwz r30, 8(r1) -+ addi r1, r1, 16 -+ blr -+ -+ .section .fini,"ax",@progbits -+ lwz r0, 20(r1) -+ mtlr r0 -+ lwz r30, 8(r1) -+ addi r1, r1, 16 -+ blr -Index: glibc-2.15/sysdeps/powerpc/powerpc64/crti.S -=================================================================== ---- /dev/null -+++ glibc-2.15/sysdeps/powerpc/powerpc64/crti.S -@@ -0,0 +1,107 @@ -+/* Special .init and .fini section support for PowerPC64. -+ Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The GNU Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ Note that people who make modified versions of this file are not -+ obligated to grant this special exception for their modified -+ versions; it is their choice whether to do so. The GNU Lesser -+ General Public License gives permission to release a modified -+ version without this exception; this exception also makes it -+ possible to release a modified version which carries forward this -+ exception. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* crti.S puts a function prologue at the beginning of the .init and -+ .fini sections and defines global symbols for those addresses, so -+ they can be called as functions. The symbols _init and _fini are -+ magic and cause the linker to emit DT_INIT and DT_FINI. */ -+ -+#include -+#include -+ -+#ifndef PREINIT_FUNCTION -+# define PREINIT_FUNCTION __gmon_start__ -+#endif -+ -+#ifndef PREINIT_FUNCTION_WEAK -+# define PREINIT_FUNCTION_WEAK 1 -+#endif -+ -+#if PREINIT_FUNCTION_WEAK -+ weak_extern (PREINIT_FUNCTION) -+#else -+ .hidden PREINIT_FUNCTION -+#endif -+ -+#if PREINIT_FUNCTION_WEAK -+ .section ".toc", "aw" -+.LC0: -+ .tc PREINIT_FUNCTION[TC], PREINIT_FUNCTION -+#endif -+ .type BODY_LABEL (_init), @function -+ .globl _init -+ .section ".opd", "aw" -+ .align 3 -+_init: OPD_ENT (_init) -+#ifdef HAVE_ASM_GLOBAL_DOT_NAME -+ .globl BODY_LABEL (_init) -+ .size _init, 24 -+#else -+ .type _init, @function -+#endif -+ .section ".init", "ax", @progbits -+ .align ALIGNARG (2) -+BODY_LABEL (_init): -+ mflr 0 -+ std 0, 16(r1) -+ stdu r1, -112(r1) -+#if PREINIT_FUNCTION_WEAK -+ addis r9, r2, .LC0@toc@ha -+ ld r0, .LC0@toc@l(r9) -+ cmpdi cr7, r0, 0 -+ beq+ cr7, 1f -+#endif -+ bl JUMPTARGET (PREINIT_FUNCTION) -+ nop -+1: -+ -+ .type BODY_LABEL (_fini), @function -+ .globl _fini -+ .section ".opd", "aw" -+ .align 3 -+_fini: OPD_ENT (_fini) -+#ifdef HAVE_ASM_GLOBAL_DOT_NAME -+ .globl BODY_LABEL (_fini) -+ .size _fini, 24 -+#else -+ .type _fini, @function -+#endif -+ .section ".fini", "ax", @progbits -+ .align ALIGNARG (2) -+BODY_LABEL (_fini): -+ mflr 0 -+ std 0, 16(r1) -+ stdu r1, -112(r1) -Index: glibc-2.15/sysdeps/powerpc/powerpc64/crtn.S -=================================================================== ---- /dev/null -+++ glibc-2.15/sysdeps/powerpc/powerpc64/crtn.S -@@ -0,0 +1,52 @@ -+/* Special .init and .fini section support for PowerPC64. -+ Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ In addition to the permissions in the GNU Lesser General Public -+ License, the Free Software Foundation gives you unlimited -+ permission to link the compiled version of this file with other -+ programs, and to distribute those programs without any restriction -+ coming from the use of this file. (The GNU Lesser General Public -+ License restrictions do apply in other respects; for example, they -+ cover modification of the file, and distribution when not linked -+ into another program.) -+ -+ Note that people who make modified versions of this file are not -+ obligated to grant this special exception for their modified -+ versions; it is their choice whether to do so. The GNU Lesser -+ General Public License gives permission to release a modified -+ version without this exception; this exception also makes it -+ possible to release a modified version which carries forward this -+ exception. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* crtn.S puts function epilogues in the .init and .fini sections -+ corresponding to the prologues in crti.S. */ -+ -+#include -+ -+ .section .init,"ax",@progbits -+ addi r1, r1, 112 -+ ld r0, 16(r1) -+ mtlr r0 -+ blr -+ -+ .section .fini,"ax",@progbits -+ addi r1, r1, 112 -+ ld r0, 16(r1) -+ mtlr r0 -+ blr diff --git a/glibc-2.16-ppc32-mcount.patch b/glibc-2.16-ppc32-mcount.patch new file mode 100644 index 0000000..82cb74d --- /dev/null +++ b/glibc-2.16-ppc32-mcount.patch @@ -0,0 +1,157 @@ +From schwab@linux-m68k.org Wed, 02 May 2012 17:13:26 +0200 +Return-Path: +Received: from imap.suse.de ([unix socket]) + by imap-int (Cyrus v2.2.12) with LMTPA; + Wed, 02 May 2012 17:13:51 +0200 +X-Sieve: CMU Sieve 2.2 +Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) + (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) + (Client CN "relay.suse.de", Issuer "CAcert Class 3 Root" (verified OK)) + by imap.suse.de (Postfix) with ESMTPS id F17483C5339B + for ; Wed, 2 May 2012 17:13:51 +0200 (CEST) +Received: by relay2.suse.de (Postfix) + id E8E6A18552B2; Wed, 2 May 2012 17:13:51 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by relay2.suse.de (Postfix) with ESMTP id DD16818552B4 + for ; Wed, 2 May 2012 17:13:51 +0200 (CEST) +Received: from relay2.suse.de ([127.0.0.1]) + by localhost (localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP + id 02496-01 for ; Wed, 2 May 2012 17:13:49 +0200 (CEST) +Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) + (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) + (No client certificate requested) + by relay2.suse.de (Postfix) with ESMTPS id DBBF518552B2 + for ; Wed, 2 May 2012 17:13:49 +0200 (CEST) +Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) + by mx2.suse.de (Postfix) with SMTP id 47EFA90F2E + for ; Wed, 2 May 2012 17:13:48 +0200 (CEST) +Comment: DKIM? See http://www.dkim.org +DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; + d=sourceware.org; s=default; x=1336576429; h=Comment: + DomainKey-Signature:Received:Received:From:To:Cc:Subject: + References:Date:In-Reply-To:Message-ID:User-Agent:MIME-Version: + Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe: + List-Subscribe:List-Archive:List-Post:List-Help:Sender: + Delivered-To; bh=0y95/HSsnyw1ABh4V7CAeeORO5U=; b=scLVxQl2KjsaCsA + HlTbKP4b4DlOrh0JbNdDKP3JDs40rI/X02fBsblbArg/QrsiZO9TtF6iehIuw+Sa + /d57G5/oKoaZwV46wT3pzH6BUuKDP+BH1ZMp+TMQRYn4C0Asq5wgY+DeEZhF41gK + f7wsOFVFEQouRtp3QC3k/eN3yUSY= +Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys +DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; + s=default; d=sourceware.org; + h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:From:To:Cc:Subject:References:X-Yow:Date:In-Reply-To:Message-ID:User-Agent:MIME-Version:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; + b=miVyTadt4ff79bxj8elDpRttJ/wxuYnbsl6ZvownzuoJh+HWi+P3S33l/J51gL + /k0F6BLmQ0KXBE9/F8Dxpl9sgt1gBlj440D8gh/jh5cPXeP98VBe0g8f13Rz4j/8 + DiRjxjzQbo8WPJlpbeWWdk/pYQSELCdRi45cxnxRItt7o=; +Received: (qmail 23763 invoked by alias); 2 May 2012 15:13:43 -0000 +Received: (qmail 23753 invoked by uid 22791); 2 May 2012 15:13:41 -0000 +X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 + tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,TW_LW +X-Spam-Check-By: sourceware.org +From: Andreas Schwab +To: Alan Modra +Cc: libc-alpha@sourceware.org +Subject: [PATCH v2] Fix missing _mcount@GLIBC_2.0 on powerpc32 +References: + <20120502113123.GC635@bubble.grove.modra.org> +X-Yow: I want to read my new poem about pork brains and outer space... +Date: Wed, 02 May 2012 17:13:26 +0200 +In-Reply-To: <20120502113123.GC635@bubble.grove.modra.org> (Alan Modra's + message of "Wed, 2 May 2012 21:01:23 +0930") +Message-ID: +User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux) +MIME-Version: 1.0 +Content-Type: text/plain +Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm +Precedence: bulk +List-Id: +List-Unsubscribe: +List-Subscribe: +List-Archive: +List-Post: +List-Help: , +Sender: libc-alpha-owner@sourceware.org +Delivered-To: mailing list libc-alpha@sourceware.org +X-Virus-Scanned: by amavisd-new at localhost +X-Spam-Status: No, score=-7.599 tagged_above=-20 required=5 + tests=[BAYES_00=-2.599, MY_LINUX=-1, RCVD_IN_DNSWL_MED=-4] +X-Spam-Score: -7.599 +X-Spam-Level: + + [BZ #14042] + * sysdeps/powerpc/powerpc32/ppc-mcount.S [SHARED]: Don't use PLT + for call to __mcount_internal. + * sysdeps/powerpc/powerpc32/Makefile (sysdep_routines) + (shared-only-routines) [$(subdir) = gmon]: Add compat-ppc-mcount. + * sysdeps/powerpc/powerpc32/compat-ppc-mcount.S: New file. +--- + sysdeps/powerpc/powerpc32/Makefile | 3 ++- + sysdeps/powerpc/powerpc32/compat-ppc-mcount.S | 11 +++++++++++ + sysdeps/powerpc/powerpc32/ppc-mcount.S | 6 +++++- + 3 files changed, 18 insertions(+), 2 deletions(-) + create mode 100644 sysdeps/powerpc/powerpc32/compat-ppc-mcount.S + +diff --git a/sysdeps/powerpc/powerpc32/Makefile b/sysdeps/powerpc/powerpc32/Makefile +index aa2d0b9..64f7900 100644 +--- a/sysdeps/powerpc/powerpc32/Makefile ++++ b/sysdeps/powerpc/powerpc32/Makefile +@@ -6,8 +6,9 @@ sysdep-LDFLAGS += -msoft-float + endif + + ifeq ($(subdir),gmon) +-sysdep_routines += ppc-mcount ++sysdep_routines += ppc-mcount compat-ppc-mcount + static-only-routines += ppc-mcount ++shared-only-routines += compat-ppc-mcount + endif + + ifeq ($(subdir),misc) +diff --git a/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S b/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S +new file mode 100644 +index 0000000..2a9cb24 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S +@@ -0,0 +1,11 @@ ++#include ++ ++#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_15) ++ ++ compat_text_section ++# define _mcount __compat_mcount ++# include "ppc-mcount.S" ++# undef _mcount ++ ++compat_symbol (libc, __compat_mcount, _mcount, GLIBC_2_0) ++#endif +diff --git a/sysdeps/powerpc/powerpc32/ppc-mcount.S b/sysdeps/powerpc/powerpc32/ppc-mcount.S +index 9a3c041..911638b 100644 +--- a/sysdeps/powerpc/powerpc32/ppc-mcount.S ++++ b/sysdeps/powerpc/powerpc32/ppc-mcount.S +@@ -1,5 +1,5 @@ + /* PowerPC-specific implementation of profiling support. +- Copyright (C) 1997, 1999, 2005, 2006 Free Software Foundation, Inc. ++ Copyright (C) 1997-2012 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 +@@ -57,7 +57,11 @@ ENTRY(_mcount) + stw r4, 44(r1) + cfi_offset (lr, -4) + stw r5, 8(r1) ++#ifndef SHARED + bl JUMPTARGET(__mcount_internal) ++#else ++ bl __mcount_internal@local ++#endif + /* Restore the registers... */ + lwz r6, 8(r1) + lwz r0, 44(r1) +-- +1.7.10.1 + + +-- +Andreas Schwab, schwab@linux-m68k.org +GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 +"And now for something completely different." + diff --git a/glibc-2.16-scanf.patch b/glibc-2.16-scanf.patch deleted file mode 100644 index 940a341..0000000 --- a/glibc-2.16-scanf.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit 20b38e0301279a37a3f1e769843933bcc0d5f736 -Author: Paul Pluzhnikov -Date: Sun Jan 8 20:13:35 2012 -0500 - - sscanf always calls realloc - - -2012-01-05 Paul Pluzhnikov - - * stdio-common/vfscanf.c (_IO_vfscanf_internal): Use alloca when - appropriate. - -diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c -index 0e71deb..e18a6c3 100644 ---- a/stdio-common/vfscanf.c -+++ b/stdio-common/vfscanf.c -@@ -1,4 +1,4 @@ --/* Copyright (C) 1991-2006, 2007, 2010, 2011 Free Software Foundation, Inc. -+/* Copyright (C) 1991-2007, 2010, 2011, 2012 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 -@@ -274,7 +274,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, - CHAR_T *old = wp; \ - size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \ - ? UCHAR_MAX + 1 : 2 * wpmax); \ -- if (use_malloc || __libc_use_alloca (newsize)) \ -+ if (use_malloc || !__libc_use_alloca (newsize)) \ - { \ - wp = realloc (use_malloc ? wp : NULL, newsize); \ - if (wp == NULL) \ diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff index d0a6eb7..1bc6883 100644 --- a/glibc-2.3.2.no_archive.diff +++ b/glibc-2.3.2.no_archive.diff @@ -3,11 +3,11 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - Make --no-archive default for localedef -Index: glibc-2.15/locale/programs/localedef.c +Index: glibc-2.15.90/locale/programs/localedef.c =================================================================== ---- glibc-2.15.orig/locale/programs/localedef.c -+++ glibc-2.15/locale/programs/localedef.c -@@ -82,7 +82,7 @@ const char *alias_file; +--- glibc-2.15.90.orig/locale/programs/localedef.c ++++ glibc-2.15.90/locale/programs/localedef.c +@@ -81,7 +81,7 @@ const char *alias_file; static struct localedef_t *locales; /* If true don't add locale data to archive. */ @@ -16,7 +16,7 @@ Index: glibc-2.15/locale/programs/localedef.c /* If true add named locales to archive. */ static bool add_to_archive; -@@ -113,6 +113,7 @@ void (*argp_program_version_hook) (FILE +@@ -112,6 +112,7 @@ void (*argp_program_version_hook) (FILE #define OPT_REPLACE 307 #define OPT_DELETE_FROM_ARCHIVE 308 #define OPT_LIST_ARCHIVE 309 @@ -24,7 +24,7 @@ Index: glibc-2.15/locale/programs/localedef.c /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = -@@ -134,6 +135,8 @@ static const struct argp_option options[ +@@ -133,6 +134,8 @@ static const struct argp_option options[ N_("Suppress warnings and information messages") }, { "verbose", 'v', NULL, 0, N_("Print more messages") }, { NULL, 0, NULL, 0, N_("Archive control:") }, @@ -33,7 +33,7 @@ Index: glibc-2.15/locale/programs/localedef.c { "no-archive", OPT_NO_ARCHIVE, NULL, 0, N_("Don't add new data to archive") }, { "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0, -@@ -314,6 +317,9 @@ parse_opt (int key, char *arg, struct ar +@@ -310,6 +313,9 @@ parse_opt (int key, char *arg, struct ar case OPT_PREFIX: output_prefix = arg; break; diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index aefd49d..840809f 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -2,11 +2,11 @@ * nscd/nscd.h: Move persistent storage back to /var/run/nscd -Index: glibc-2.15/nscd/nscd.h +Index: glibc-2.15.90/nscd/nscd.h =================================================================== ---- glibc-2.15.orig/nscd/nscd.h -+++ glibc-2.15/nscd/nscd.h -@@ -113,11 +113,11 @@ struct database_dyn +--- glibc-2.15.90.orig/nscd/nscd.h ++++ glibc-2.15.90/nscd/nscd.h +@@ -112,11 +112,11 @@ struct database_dyn /* Paths of the file for the persistent storage. */ diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index e9b5112..48a59c5 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/intl/loadmsgcat.c +Index: glibc-2.15.90/intl/loadmsgcat.c =================================================================== ---- glibc-2.15.orig/intl/loadmsgcat.c -+++ glibc-2.15/intl/loadmsgcat.c -@@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind +--- glibc-2.15.90.orig/intl/loadmsgcat.c ++++ glibc-2.15.90/intl/loadmsgcat.c +@@ -805,8 +805,52 @@ _nl_load_domain (domain_file, domainbind if (domain_file->filename == NULL) goto out; diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index 1d0057d..2f9a18a 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/elf/rtld.c +Index: glibc-2.15.90/elf/rtld.c =================================================================== ---- glibc-2.15.orig/elf/rtld.c -+++ glibc-2.15/elf/rtld.c -@@ -1802,6 +1802,53 @@ ERROR: ld.so: object '%s' cannot be load +--- glibc-2.15.90.orig/elf/rtld.c ++++ glibc-2.15.90/elf/rtld.c +@@ -1813,6 +1813,53 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff index 2ef75b5..61fc728 100644 --- a/glibc-2.4.90-no_NO.diff +++ b/glibc-2.4.90-no_NO.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/intl/locale.alias +Index: glibc-2.15.90/intl/locale.alias =================================================================== ---- glibc-2.15.orig/intl/locale.alias -+++ glibc-2.15/intl/locale.alias -@@ -57,8 +57,6 @@ korean ko_KR.eucKR +--- glibc-2.15.90.orig/intl/locale.alias ++++ glibc-2.15.90/intl/locale.alias +@@ -56,8 +56,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR lithuanian lt_LT.ISO-8859-13 @@ -11,10 +11,10 @@ Index: glibc-2.15/intl/locale.alias norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 -Index: glibc-2.15/localedata/locales/no_NO +Index: glibc-2.15.90/localedata/locales/no_NO =================================================================== --- /dev/null -+++ glibc-2.15/localedata/locales/no_NO ++++ glibc-2.15.90/localedata/locales/no_NO @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -85,11 +85,11 @@ Index: glibc-2.15/localedata/locales/no_NO +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS -Index: glibc-2.15/localedata/SUPPORTED +Index: glibc-2.15.90/localedata/SUPPORTED =================================================================== ---- glibc-2.15.orig/localedata/SUPPORTED -+++ glibc-2.15/localedata/SUPPORTED -@@ -316,6 +316,8 @@ nl_NL/ISO-8859-1 \ +--- glibc-2.15.90.orig/localedata/SUPPORTED ++++ glibc-2.15.90/localedata/SUPPORTED +@@ -317,6 +317,8 @@ nl_NL/ISO-8859-1 \ nl_NL@euro/ISO-8859-15 \ nn_NO.UTF-8/UTF-8 \ nn_NO/ISO-8859-1 \ diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff index 20789c7..5a7643b 100644 --- a/glibc-2.8-getconf.diff +++ b/glibc-2.8-getconf.diff @@ -2,11 +2,11 @@ This is required for too noisy rpmlint: glibc.i586: E: hardlink-across-partition (Badness: 10000) /usr/lib/getconf/POSIX_V7_ILP32_OFFBIG /usr/bin/getconf -Index: glibc-2.15/posix/Makefile +Index: glibc-2.15.90/posix/Makefile =================================================================== ---- glibc-2.15.orig/posix/Makefile -+++ glibc-2.15/posix/Makefile -@@ -316,8 +316,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi +--- glibc-2.15.90.orig/posix/Makefile ++++ glibc-2.15.90/posix/Makefile +@@ -301,8 +301,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi $(addprefix $(..)./scripts/mkinstalldirs ,\ $(filter-out $(wildcard $@),$@)) while read spec; do \ diff --git a/glibc-add-arm-dependency-libmemusage.patch b/glibc-add-arm-dependency-libmemusage.patch deleted file mode 100644 index e747838..0000000 --- a/glibc-add-arm-dependency-libmemusage.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 2d80bda39073a35af4b904d27fa1511cd309b26f Mon Sep 17 00:00:00 2001 -From: Nathan Sidwell -Date: Fri, 6 Jan 2012 20:14:44 +0000 -Subject: [PATCH 696/712] Add ARM dependency of libmemusage.so on - libc_nonshared.a. - ---- - ChangeLog.arm | 6 ++++++ - sysdeps/arm/Makefile | 5 +++++ - 2 files changed, 11 insertions(+), 0 deletions(-) - -2012-01-05 Nathan Sidwell - Tom de Vries - - * sysdeps/arm/Makefile (libmemusage.so): Add libc_nonshared.a - dependency. - -diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile ---- a/glibc-ports-2.15/sysdeps/arm/Makefile -+++ b/glibc-ports-2.15/sysdeps/arm/Makefile -@@ -7,3 +7,8 @@ endif - ifeq ($(subdir),csu) - gen-as-const-headers += tlsdesc.sym - endif -+ -+# to pull in __aeabi_read_tp, needed for tls -+ifeq ($(subdir),malloc) -+$(objpfx)libmemusage.so: $(common-objpfx)libc_nonshared.a -+endif --- -1.7.6.5 - diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff index 13770ec..54ed1f2 100644 --- a/glibc-compiled-binaries.diff +++ b/glibc-compiled-binaries.diff @@ -3,27 +3,25 @@ configure | 16 +++++++++++++++- configure.in | 1 + posix/Makefile | 2 +- - sunrpc/Makefile | 2 +- - timezone/Makefile | 2 +- 6 files changed, 20 insertions(+), 4 deletions(-) -Index: glibc-2.15/config.make.in +Index: glibc-2.15.90/config.make.in =================================================================== ---- glibc-2.15.orig/config.make.in -+++ glibc-2.15/config.make.in -@@ -100,6 +100,7 @@ add-ons = @add_ons@ +--- glibc-2.15.90.orig/config.make.in ++++ glibc-2.15.90/config.make.in +@@ -97,6 +97,7 @@ add-ons = @add_ons@ add-on-subdirs = @add_on_subdirs@ sysdeps-add-ons = @sysdeps_add_ons@ cross-compiling = @cross_compiling@ +compiled-binaries-can-run-on-buildhost = @compiled_binaries_can_run_on_buildhost@ force-install = @force_install@ + link-obsolete-rpc = @link_obsolete_rpc@ - # Build tools. -Index: glibc-2.15/configure.in +Index: glibc-2.15.90/configure.in =================================================================== ---- glibc-2.15.orig/configure.in -+++ glibc-2.15/configure.in -@@ -15,6 +15,7 @@ if test $host != $build; then +--- glibc-2.15.90.orig/configure.in ++++ glibc-2.15.90/configure.in +@@ -20,6 +20,7 @@ if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) @@ -31,10 +29,10 @@ Index: glibc-2.15/configure.in AC_PROG_CPP # We need the C++ compiler only for testing. AC_PROG_CXX -Index: glibc-2.15/configure +Index: glibc-2.15.90/configure =================================================================== ---- glibc-2.15.orig/configure -+++ glibc-2.15/configure +--- glibc-2.15.90.orig/configure ++++ glibc-2.15.90/configure @@ -553,6 +553,7 @@ ac_clean_files= ac_config_libobj_dir=. LIBOBJS= @@ -43,7 +41,7 @@ Index: glibc-2.15/configure subdirs= MFLAGS= MAKEFLAGS= -@@ -706,6 +707,7 @@ CXXFLAGS +@@ -667,6 +668,7 @@ CXXFLAGS CXX CPP cross_compiling @@ -51,7 +49,7 @@ Index: glibc-2.15/configure BUILD_CC OBJEXT ac_ct_CC -@@ -1250,6 +1252,13 @@ do +@@ -1208,6 +1210,13 @@ do as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done @@ -65,7 +63,7 @@ Index: glibc-2.15/configure # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. -@@ -1265,6 +1274,7 @@ if test "x$host_alias" != x; then +@@ -1223,6 +1232,7 @@ if test "x$host_alias" != x; then If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -73,21 +71,21 @@ Index: glibc-2.15/configure fi fi -@@ -1450,6 +1460,9 @@ Optional Features: - --enable-multi-arch enable single DSO with optimizations for multiple - architectures - --enable-nss-crypt enable libcrypt to use nss +@@ -1407,6 +1417,9 @@ Optional Features: + --enable-obsolete-rpc build and install the obsolete RPC code for + link-time usage + --enable-systemtap enable systemtap static probe points [default=no] + --enable-runbinaries the compiled binaries should run on the buildhost because + it happens to have a compatible cpu + Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -Index: glibc-2.15/posix/Makefile +Index: glibc-2.15.90/posix/Makefile =================================================================== ---- glibc-2.15.orig/posix/Makefile -+++ glibc-2.15/posix/Makefile -@@ -320,7 +320,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi +--- glibc-2.15.90.orig/posix/Makefile ++++ glibc-2.15.90/posix/Makefile +@@ -305,7 +305,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi done < $(objpfx)getconf.speclist $(objpfx)getconf.speclist: $(objpfx)getconf @@ -96,29 +94,3 @@ Index: glibc-2.15/posix/Makefile LC_ALL=C GETCONF_DIR=/dev/null \ $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new LC_ALL=C GETCONF_DIR=/dev/null \ -Index: glibc-2.15/sunrpc/Makefile -=================================================================== ---- glibc-2.15.orig/sunrpc/Makefile -+++ glibc-2.15/sunrpc/Makefile -@@ -108,7 +108,7 @@ otherlibs += $(nssobjdir)/libnss_files.a - $(resolvobjdir)/libresolv.a - endif - --ifeq (no,$(cross-compiling)) -+ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) - # We can only build this library if we can run the rpcgen we build. - headers += $(rpcsvc:%.x=rpcsvc/%.h) - extra-libs := librpcsvc -Index: glibc-2.15/timezone/Makefile -=================================================================== ---- glibc-2.15.orig/timezone/Makefile -+++ glibc-2.15/timezone/Makefile -@@ -69,7 +69,7 @@ installed-posixrules-file := $(firstword - $(addprefix $(inst_zonedir)/, \ - $(posixrules-file))) - --ifeq ($(cross-compiling),no) -+ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) - # Don't try to install the zoneinfo files since we can't run zic. - install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \ - $(zonenames:%=posix/%) \ diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff index a540bc9..dca2eb4 100644 --- a/glibc-cpusetsize.diff +++ b/glibc-cpusetsize.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/bits/sched.h +Index: glibc-2.15.90/bits/sched.h =================================================================== ---- glibc-2.15.orig/bits/sched.h -+++ glibc-2.15/bits/sched.h -@@ -54,7 +54,7 @@ struct __sched_param +--- glibc-2.15.90.orig/bits/sched.h ++++ glibc-2.15.90/bits/sched.h +@@ -53,7 +53,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined /* Size definition for CPU sets. */ @@ -11,11 +11,11 @@ Index: glibc-2.15/bits/sched.h # define __NCPUBITS (8 * sizeof (__cpu_mask)) /* Type for array elements in 'cpu_set_t'. */ -Index: glibc-2.15/sysdeps/unix/sysv/linux/bits/sched.h +Index: glibc-2.15.90/sysdeps/unix/sysv/linux/bits/sched.h =================================================================== ---- glibc-2.15.orig/sysdeps/unix/sysv/linux/bits/sched.h -+++ glibc-2.15/sysdeps/unix/sysv/linux/bits/sched.h -@@ -113,7 +113,7 @@ struct __sched_param +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/bits/sched.h ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/bits/sched.h +@@ -112,7 +112,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined /* Size definition for CPU sets. */ diff --git a/glibc-elf-localscope.diff b/glibc-elf-localscope.diff index 4e5e536..3b79d68 100644 --- a/glibc-elf-localscope.diff +++ b/glibc-elf-localscope.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/elf/dl-close.c +Index: glibc-2.15.90/elf/dl-close.c =================================================================== ---- glibc-2.15.orig/elf/dl-close.c -+++ glibc-2.15/elf/dl-close.c -@@ -180,24 +180,28 @@ _dl_close_worker (struct link_map *map) +--- glibc-2.15.90.orig/elf/dl-close.c ++++ glibc-2.15.90/elf/dl-close.c +@@ -179,24 +179,28 @@ _dl_close_worker (struct link_map *map) /* Signal the object is still needed. */ l->l_idx = IDX_STILL_USED; @@ -43,7 +43,7 @@ Index: glibc-2.15/elf/dl-close.c ++lp; } } -@@ -206,19 +210,25 @@ _dl_close_worker (struct link_map *map) +@@ -205,19 +209,25 @@ _dl_close_worker (struct link_map *map) for (unsigned int j = 0; j < l->l_reldeps->act; ++j) { struct link_map *jmap = l->l_reldeps->list[j]; diff --git a/glibc-fini-unwind.diff b/glibc-fini-unwind.diff deleted file mode 100644 index b27fe9d..0000000 --- a/glibc-fini-unwind.diff +++ /dev/null @@ -1,60 +0,0 @@ -Index: glibc-2.15/sysdeps/x86_64/elf/initfini.c -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/elf/initfini.c -+++ glibc-2.15/sysdeps/x86_64/elf/initfini.c -@@ -44,6 +44,25 @@ - * crtn.s puts the corresponding function epilogues - in the .init and .fini sections. */ - -+/* The unwind annotation for _fini is peculiar for good reasons: -+ (a) We need a real function that isn't constructed separately -+ (i.e. one which has a .size directive) in order to attach unwind -+ info to it. Hence _fini is a wrapper around _real_fini, the -+ former being a normal function, the latter being the first -+ instruction of the traditional _fini. -+ (b) We must not fiddle with the stack pointer in _real_fini, -+ as we wouldn't be able to describe the effects in unwind info -+ (c) some versions of GCC have no correct unwind info for -+ __do_global_dtors_aux, meaning they can't properly restore %rbp -+ (unwinding through it is possible but later up when we next -+ need %rbp we can't access it anymore) -+ Therefore we save/restore it in _fini for uses later up the call chain. -+ But we don't make the CFA use that register (that would lead to -+ the above problem) -+ (d) We want an 16-aligned stack pointer at _real_fini. Because of (a) -+ we can't align it in _real_fini, hence we do it in the caller by -+ subtracting 8, making in 8mod16 which the call then make 0mod16 -+ again. */ - __asm__ ("\n\ - #include \"defs.h\"\n\ - \n\ -@@ -88,16 +107,28 @@ _init:\n\ - .globl _fini\n\ - .type _fini,@function\n\ - _fini:\n\ -+ .cfi_startproc\n\ -+ push %rbp\n\ -+ .cfi_def_cfa_offset 16\n\ -+ .cfi_offset 6,-16\n\ - subq $8, %rsp\n\ -+ .cfi_def_cfa_offset 24\n\ -+ call _real_fini\n\ -+ addq $8, %rsp\n\ -+ .cfi_def_cfa_offset 16\n\ -+ pop %rbp\n\ -+ ret\n\ -+ .cfi_endproc\n\ - ALIGN\n\ - END_FINI\n\ -+.size _fini, .-_fini\n\ -+_real_fini:\n\ - \n\ - /*@_fini_PROLOG_ENDS*/\n\ - call i_am_not_a_leaf@PLT\n\ - \n\ - /*@_fini_EPILOG_BEGINS*/\n\ - .section .fini\n\ -- addq $8, %rsp\n\ - ret\n\ - END_FINI\n\ - \n\ diff --git a/glibc-fix-check-abi.patch b/glibc-fix-check-abi.patch new file mode 100644 index 0000000..5f1f920 --- /dev/null +++ b/glibc-fix-check-abi.patch @@ -0,0 +1,183 @@ + +Index: glibc-2.-15.90/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.3 + GLIBC_2.3 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.2 + GLIBC_2.2 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.15.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.2.5 + GLIBC_2.2.5 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.15.90/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.15.90.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist ++++ glibc-2.15.90/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.4 + GLIBC_2.4 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F diff --git a/glibc-fix-double-loopback.diff b/glibc-fix-double-loopback.diff index f59a70d..cd0b3a5 100644 --- a/glibc-fix-double-loopback.diff +++ b/glibc-fix-double-loopback.diff @@ -7,11 +7,11 @@ Remapping ::1 to 127.0.0.1 is bogus when /etc/hosts is correct. bnc #684534, #606980 http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980 -Index: glibc-2.11.3/nss/nss_files/files-hosts.c +Index: glibc-2.15.90/nss/nss_files/files-hosts.c =================================================================== ---- glibc-2.11.3.orig/nss/nss_files/files-hosts.c 2011-05-27 15:08:23.000000000 +0200 -+++ glibc-2.11.3/nss/nss_files/files-hosts.c 2011-07-20 17:15:26.000000000 +0200 -@@ -69,11 +69,6 @@ LINE_PARSER +--- glibc-2.15.90.orig/nss/nss_files/files-hosts.c ++++ glibc-2.15.90/nss/nss_files/files-hosts.c +@@ -68,11 +68,6 @@ LINE_PARSER { if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr)) memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ); diff --git a/glibc-fix-noload.patch b/glibc-fix-noload.patch deleted file mode 100644 index faebf14..0000000 --- a/glibc-fix-noload.patch +++ /dev/null @@ -1,149 +0,0 @@ -commit 675155e9084e060fd0e1e637b843f14e82898aa5 -Author: Andreas Schwab -Date: Wed Sep 22 12:06:30 2010 +0200 - - Fix memory leak on init/fini dependency list - - 2010-09-27 Andreas Schwab - - * include/link.h (struct link_map): Add l_free_initfini. - * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning - l_initfini. - * elf/rtld.c (dl_main): Clear it on all objects loaded on startup. - * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is - set. - -Index: glibc-2.15/elf/dl-close.c -=================================================================== ---- glibc-2.15.orig/elf/dl-close.c -+++ glibc-2.15/elf/dl-close.c -@@ -1,5 +1,5 @@ - /* Close a shared object opened by `_dl_open'. -- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1996-2007, 2009, 2010 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 -@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) - if (map->l_direct_opencount > 0 || map->l_type != lt_loaded - || dl_close_state != not_pending) - { -- if (map->l_direct_opencount == 0) -- { -- if (map->l_type == lt_loaded) -- dl_close_state = rerun; -- else if (map->l_type == lt_library) -- { -- struct link_map **oldp = map->l_initfini; -- map->l_initfini = map->l_orig_initfini; -- _dl_scope_free (oldp); -- } -- } -+ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded) -+ dl_close_state = rerun; - - /* There are still references to this object. Do nothing more. */ - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) -Index: glibc-2.15/elf/dl-libc.c -=================================================================== ---- glibc-2.15.orig/elf/dl-libc.c -+++ glibc-2.15/elf/dl-libc.c -@@ -270,13 +270,13 @@ libc_freeres_fn (free_mem) - - for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) - { -- /* Remove all additional names added to the objects. */ - for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) - { - struct libname_list *lnp = l->l_libname->next; - - l->l_libname->next = NULL; - -+ /* Remove all additional names added to the objects. */ - while (lnp != NULL) - { - struct libname_list *old = lnp; -@@ -284,6 +284,10 @@ libc_freeres_fn (free_mem) - if (! old->dont_free) - free (old); - } -+ -+ /* Free the initfini dependency list. */ -+ if (l->l_free_initfini) -+ free (l->l_initfini); - } - - if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 -Index: glibc-2.15/elf/rtld.c -=================================================================== ---- glibc-2.15.orig/elf/rtld.c -+++ glibc-2.15/elf/rtld.c -@@ -2323,6 +2323,7 @@ ERROR: ld.so: object '%s' cannot be load - lnp->dont_free = 1; - lnp = lnp->next; - } -+ l->l_free_initfini = 0; - - if (l != &GL(dl_rtld_map)) - _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, -Index: glibc-2.15/include/link.h -=================================================================== ---- glibc-2.15.orig/include/link.h -+++ glibc-2.15/include/link.h -@@ -1,6 +1,6 @@ - /* Data structure for communication from the run-time dynamic linker for - loaded ELF shared objects. -- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1995-2006, 2007, 2009, 2010 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 -@@ -192,6 +192,9 @@ struct link_map - during LD_TRACE_PRELINKING=1 - contains any DT_SYMBOLIC - libraries. */ -+ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be -+ freed, ie. not allocated with -+ the dummy malloc in ld.so. */ - - /* Collected information about own RPATH directories. */ - struct r_search_path_struct l_rpath_dirs; -@@ -240,9 +243,6 @@ struct link_map - - /* List of object in order of the init and fini calls. */ - struct link_map **l_initfini; -- /* The init and fini list generated at startup, saved when the -- object is also loaded dynamically. */ -- struct link_map **l_orig_initfini; - - /* List of the dependencies introduced through symbol binding. */ - struct link_map_reldeps -Index: glibc-2.15/elf/dl-deps.c -=================================================================== ---- glibc-2.15.orig/elf/dl-deps.c -+++ glibc-2.15/elf/dl-deps.c -@@ -489,6 +489,7 @@ _dl_map_object_deps (struct link_map *ma - nneeded * sizeof needed[0]); - atomic_write_barrier (); - l->l_initfini = l_initfini; -+ l->l_free_initfini = 1; - } - - /* If we have no auxiliary objects just go on to the next map. */ -@@ -689,6 +690,7 @@ Filters not supported with LD_TRACE_PREL - l_initfini[nlist] = NULL; - atomic_write_barrier (); - map->l_initfini = l_initfini; -+ map->l_free_initfini = 1; - if (l_reldeps != NULL) - { - atomic_write_barrier (); -@@ -697,7 +699,7 @@ Filters not supported with LD_TRACE_PREL - _dl_scope_free (old_l_reldeps); - } - if (old_l_initfini != NULL) -- map->l_orig_initfini = old_l_initfini; -+ _dl_scope_free (old_l_initfini); - - if (errno_reason) - _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname, diff --git a/glibc-ifunc-2.16.patch b/glibc-ifunc-2.16.patch deleted file mode 100644 index 9bbf931..0000000 --- a/glibc-ifunc-2.16.patch +++ /dev/null @@ -1,278 +0,0 @@ -commit 6ee65ed6ddbf04402fad0bec6aa9c73b9d982ae4 -Author: Ulrich Drepper -Date: Fri Jan 27 15:05:19 2012 -0500 - - Sort objects before relocations - -2012-01-27 Ulrich Drepper - - [BZ #13618] - * elf/dl-open.c (dl_open_worker): Sort objects by dependency before - relocation. - * Makeconfig (libm): Define. - * elf/Makefile: Add rules to build and run tst-relsort1. - * elf/tst-relsort1.c: New file. - * elf/tst-relsort1mod1.c: New file. - * elf/tst-relsort1mod2.c: New file. - -Index: glibc-2.15/Makeconfig -=================================================================== ---- glibc-2.15.orig/Makeconfig -+++ glibc-2.15/Makeconfig -@@ -950,6 +950,12 @@ libdl = - endif - endif - -+ifeq ($(build-shared),yes) -+libm = $(common-objpfx)math/libm.so$(libm.so-version) -+else -+libm = $(common-objpfx)math/libm.a -+endif -+ - # These are the subdirectories containing the library source. The order - # is more or less arbitrary. The sorting step will take care of the - # dependencies. -Index: glibc-2.15/elf/Makefile -=================================================================== ---- glibc-2.15.orig/elf/Makefile -+++ glibc-2.15/elf/Makefile -@@ -124,7 +124,8 @@ distribute := rtld-Rules \ - tst-initordera1.c tst-initordera2.c tst-initorderb1.c \ - tst-initorderb2.c tst-initordera3.c tst-initordera4.c \ - tst-initorder.c \ -- tst-initorder2.c -+ tst-initorder2.c \ -+ tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c - - CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables - CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables -@@ -230,7 +231,7 @@ tests += loadtest restest1 preloadtest l - tst-audit1 tst-audit2 \ - tst-stackguard1 tst-addr1 tst-thrlock \ - tst-unique1 tst-unique2 tst-unique3 tst-unique4 \ -- tst-initorder tst-initorder2 -+ tst-initorder tst-initorder2 tst-relsort1 - # reldep9 - test-srcs = tst-pathopt - selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) -@@ -293,7 +294,9 @@ modules-names = testobj1 testobj2 testob - tst-initordera1 tst-initorderb1 \ - tst-initordera2 tst-initorderb2 \ - tst-initordera3 tst-initordera4 \ -- tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d -+ tst-initorder2a tst-initorder2b tst-initorder2c \ -+ tst-initorder2d \ -+ tst-relsort1mod1 tst-relsort1mod2 - ifeq (yes,$(have-initfini-array)) - modules-names += tst-array2dep tst-array5dep - endif -@@ -1198,3 +1201,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) - endif -+ -+$(objpfx)tst-relsort1: $(libdl) -+$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so -+$(objpfx)tst-relsort1mod2.so: $(libm) -+$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ -+ $(objpfx)tst-relsort1mod2.so -Index: glibc-2.15/elf/dl-open.c -=================================================================== ---- glibc-2.15.orig/elf/dl-open.c -+++ glibc-2.15/elf/dl-open.c -@@ -1,5 +1,5 @@ - /* Load a shared object at runtime, relocate it, and run its initializer. -- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1996-2007, 2009, 2010, 2011, 2012 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 -@@ -302,45 +302,109 @@ dl_open_worker (void *a) - if (GLRO(dl_lazy)) - reloc_mode |= mode & RTLD_LAZY; - -- /* Relocate the objects loaded. We do this in reverse order so that copy -- relocs of earlier objects overwrite the data written by later objects. */ -- -+ /* Sort the objects by dependency for the relocation process. This -+ allows IFUNC relocations to work and it also means copy -+ relocation of dependencies are if necessary overwritten. */ -+ size_t nmaps = 0; - struct link_map *l = new; -- while (l->l_next) -- l = l->l_next; -- while (1) -+ do -+ { -+ if (! l->l_real->l_relocated) -+ ++nmaps; -+ l = l->l_next; -+ } -+ while (l != NULL); -+ struct link_map *maps[nmaps]; -+ nmaps = 0; -+ l = new; -+ do - { - if (! l->l_real->l_relocated) -+ maps[nmaps++] = l; -+ l = l->l_next; -+ } -+ while (l != NULL); -+ if (nmaps > 1) -+ { -+ char seen[nmaps]; -+ memset (seen, '\0', nmaps); -+ size_t i = 0; -+ while (1) - { --#ifdef SHARED -- if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) -+ ++seen[i]; -+ struct link_map *thisp = maps[i]; -+ -+ /* Find the last object in the list for which the current one is -+ a dependency and move the current object behind the object -+ with the dependency. */ -+ size_t k = nmaps - 1; -+ while (k > i) - { -- /* If this here is the shared object which we want to profile -- make sure the profile is started. We can find out whether -- this is necessary or not by observing the `_dl_profile_map' -- variable. If was NULL but is not NULL afterwars we must -- start the profiling. */ -- struct link_map *old_profile_map = GL(dl_profile_map); -- -- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); -- -- if (old_profile_map == NULL && GL(dl_profile_map) != NULL) -- { -- /* We must prepare the profiling. */ -- _dl_start_profile (); -- -- /* Prevent unloading the object. */ -- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; -- } -+ struct link_map **runp = maps[k]->l_initfini; -+ if (runp != NULL) -+ /* Look through the dependencies of the object. */ -+ while (*runp != NULL) -+ if (__builtin_expect (*runp++ == thisp, 0)) -+ { -+ /* Move the current object to the back past the last -+ object with it as the dependency. */ -+ memmove (&maps[i], &maps[i + 1], -+ (k - i) * sizeof (maps[0])); -+ maps[k] = thisp; -+ -+ if (seen[i + 1] > 1) -+ { -+ ++i; -+ goto next_clear; -+ } -+ -+ char this_seen = seen[i]; -+ memmove (&seen[i], &seen[i + 1], -+ (k - i) * sizeof (seen[0])); -+ seen[k] = this_seen; -+ -+ goto next; -+ } -+ -+ --k; - } -- else --#endif -- _dl_relocate_object (l, l->l_scope, reloc_mode, 0); -+ -+ if (++i == nmaps) -+ break; -+ next_clear: -+ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); -+ next:; - } -+ } -+ -+ for (size_t i = nmaps; i-- > 0; ) -+ { -+ l = maps[i]; -+ -+#ifdef SHARED -+ if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) -+ { -+ /* If this here is the shared object which we want to profile -+ make sure the profile is started. We can find out whether -+ this is necessary or not by observing the `_dl_profile_map' -+ variable. If it was NULL but is not NULL afterwars we must -+ start the profiling. */ -+ struct link_map *old_profile_map = GL(dl_profile_map); - -- if (l == new) -- break; -- l = l->l_prev; -+ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); -+ -+ if (old_profile_map == NULL && GL(dl_profile_map) != NULL) -+ { -+ /* We must prepare the profiling. */ -+ _dl_start_profile (); -+ -+ /* Prevent unloading the object. */ -+ GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; -+ } -+ } -+ else -+#endif -+ _dl_relocate_object (l, l->l_scope, reloc_mode, 0); - } - - /* If the file is not loaded now as a dependency, add the search -Index: glibc-2.15/elf/tst-relsort1.c -=================================================================== ---- /dev/null -+++ glibc-2.15/elf/tst-relsort1.c -@@ -0,0 +1,19 @@ -+#include -+#include -+ -+ -+static int -+do_test () -+{ -+ const char lib[] = "$ORIGIN/tst-relsort1mod1.so"; -+ void *h = dlopen (lib, RTLD_NOW); -+ if (h == NULL) -+ { -+ puts (dlerror ()); -+ return 1; -+ } -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.15/elf/tst-relsort1mod1.c -=================================================================== ---- /dev/null -+++ glibc-2.15/elf/tst-relsort1mod1.c -@@ -0,0 +1,7 @@ -+extern int foo (double); -+ -+int -+bar (void) -+{ -+ return foo (1.2); -+} -Index: glibc-2.15/elf/tst-relsort1mod2.c -=================================================================== ---- /dev/null -+++ glibc-2.15/elf/tst-relsort1mod2.c -@@ -0,0 +1,7 @@ -+#include -+ -+int -+foo (double d) -+{ -+ return floor (d) != 0.0; -+} diff --git a/glibc-no-unwind-tables.diff b/glibc-no-unwind-tables.diff deleted file mode 100644 index a3775e0..0000000 --- a/glibc-no-unwind-tables.diff +++ /dev/null @@ -1,39 +0,0 @@ -initfini.c is compiled to assembly and further processed and split, -we can't have unwind tables therein. - -Index: glibc-2.15/csu/Makefile -=================================================================== ---- glibc-2.15.orig/csu/Makefile -+++ glibc-2.15/csu/Makefile -@@ -93,7 +93,7 @@ omit-deps += $(crtstuff) - $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h - $(compile.S) -g0 $(ASFLAGS-.os) -o $@ - --CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -+CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables - - vpath initfini.c $(sysdirs) - -Index: glibc-2.15/nptl/Makefile -=================================================================== ---- glibc-2.15.orig/nptl/Makefile -+++ glibc-2.15/nptl/Makefile -@@ -342,7 +342,7 @@ endif - extra-objs += $(crti-objs) $(crtn-objs) - omit-deps += crti crtn - --CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -+CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables - endif - - CFLAGS-flockfile.c = -D_IO_MTSAFE_IO -Index: glibc-2.15/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile -=================================================================== ---- glibc-2.15.orig/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile -+++ glibc-2.15/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile -@@ -1,4 +1,4 @@ - ifeq ($(subdir),nptl) - CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions \ -- -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) -+ -fno-unwind-tables -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) - endif diff --git a/glibc-nodate.patch b/glibc-nodate.patch index 3f3a443..5bc985a 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,8 +1,8 @@ -Index: glibc-2.15/nscd/nscd_stat.c +Index: glibc-2.15.90/nscd/nscd_stat.c =================================================================== ---- glibc-2.15/nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 -+++ glibc-2.15/nscd/nscd_stat.c 2010-02-14 15:02:41.000000000 +0100 -@@ -37,8 +37,13 @@ +--- glibc-2.15.90.orig/nscd/nscd_stat.c ++++ glibc-2.15.90/nscd/nscd_stat.c +@@ -36,8 +36,13 @@ #endif /* HAVE_SELINUX */ @@ -17,12 +17,11 @@ Index: glibc-2.15/nscd/nscd_stat.c /* Statistic data for one database. */ struct dbstat - -Index: glibc-2.15/csu/Makefile +Index: glibc-2.15.90/csu/Makefile =================================================================== ---- glibc-2.15.orig/csu/Makefile -+++ glibc-2.15/csu/Makefile -@@ -234,8 +234,8 @@ $(objpfx)version-info.h: $(common-objpfx +--- glibc-2.15.90.orig/csu/Makefile ++++ glibc-2.15.90/csu/Makefile +@@ -171,8 +171,8 @@ $(objpfx)version-info.h: $(common-objpfx if [ -z "$$os" ]; then \ os=Linux; \ fi; \ diff --git a/glibc-nscd-crash-bso13594.patch b/glibc-nscd-crash-bso13594.patch deleted file mode 100644 index 876a5cc..0000000 --- a/glibc-nscd-crash-bso13594.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -rup c/nscd/nscd_gethst_r.c d/nscd/nscd_gethst_r.c ---- c/nscd/nscd_gethst_r.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/nscd/nscd_gethst_r.c 2012-03-28 10:45:51.546600822 -0600 -@@ -101,9 +101,27 @@ libc_freeres_fn (hst_map_free) - uint32_t - __nscd_get_nl_timestamp (void) - { -+ uint32_t retval; - if (__nss_not_use_nscd_hosts != 0) - return 0; - -+ int cnt = 0; -+ /* __nscd_get_mapping can change hst_map_handle.mapped to NO_MAPPING. -+ However, __nscd_get_mapping assumes the prior value was not NO_MAPPING. -+ Thus we have to acquire the lock to prevent this thread from changing -+ hst_map_handle.mapped to NO_MAPPING while another thread is inside -+ __nscd_get_mapping. */ -+ while (__builtin_expect -+ (atomic_compare_and_exchange_val_acq (&__hst_map_handle.lock, -+ 1, 0) != 0, 0)) -+ { -+ // XXX Best number of rounds? -+ if (__builtin_expect (++cnt > 5, 0)) -+ return 0; -+ -+ atomic_delay (); -+ } -+ - struct mapped_database *map = __hst_map_handle.mapped; - - if (map == NULL -@@ -113,9 +131,14 @@ __nscd_get_nl_timestamp (void) - map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped); - - if (map == NO_MAPPING) -- return 0; -+ retval = 0; -+ else -+ retval = map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; -+ -+ /* Release the lock. */ -+ __hst_map_handle.lock = 0; - -- return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; -+ return retval; - } - - diff --git a/glibc-nscd-foreground.patch b/glibc-nscd-foreground.patch deleted file mode 100644 index f1ab742..0000000 --- a/glibc-nscd-foreground.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff -rup a/nscd/nscd.c b/nscd/nscd.c ---- a/nscd/nscd.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nscd/nscd.c 2012-02-03 13:07:50.509740586 -0700 -@@ -72,7 +72,12 @@ thread_info_t thread_info; - int do_shutdown; - int disabled_passwd; - int disabled_group; --int go_background = 1; -+ -+/* Default is to daemonize. Set to 1 to run in foreground in -+ debugging mode, or negative to run in foreground but otherwise -+ behave like a daemon, i.e., detach from terminal and use -+ syslog. */ -+static int run_in_foreground = 0; - - static const char *conffile = _PATH_NSCDCONF; - -@@ -104,6 +109,8 @@ static const struct argp_option options[ - N_("Read configuration data from NAME") }, - { "debug", 'd', NULL, 0, - N_("Do not fork and display messages on the current tty") }, -+ { "foreground", 'F', NULL, 0, -+ N_("Do not fork, but otherwise behave like a deamon") }, - { "nthreads", 't', N_("NUMBER"), 0, N_("Start NUMBER threads") }, - { "shutdown", 'K', NULL, 0, N_("Shut the server down") }, - { "statistics", 'g', NULL, 0, N_("Print current configuration statistics") }, -@@ -174,16 +181,22 @@ main (int argc, char **argv) - /* Determine page size. */ - pagesize_m1 = getpagesize () - 1; - -- /* Behave like a daemon. */ -- if (go_background) -+ if (run_in_foreground <= 0) - { - int i; -+ pid_t pid; - -- pid_t pid = fork (); -- if (pid == -1) -- error (EXIT_FAILURE, errno, _("cannot fork")); -- if (pid != 0) -- exit (0); -+ /* Behave like a daemon. */ -+ if (!run_in_foreground) -+ { -+ pid = fork (); -+ if (pid == -1) -+ error (EXIT_FAILURE, errno, _("cannot fork")); -+ if (pid != 0) -+ exit (0); -+ } -+ else -+ fprintf (stderr, _("further output sent to syslog\n")); - - int nullfd = open (_PATH_DEVNULL, O_RDWR); - if (nullfd != -1) -@@ -234,11 +247,14 @@ main (int argc, char **argv) - for (i = min_close_fd; i < getdtablesize (); i++) - close (i); - -- pid = fork (); -- if (pid == -1) -- error (EXIT_FAILURE, errno, _("cannot fork")); -- if (pid != 0) -- exit (0); -+ if (!run_in_foreground) -+ { -+ pid = fork (); -+ if (pid == -1) -+ error (EXIT_FAILURE, errno, _("cannot fork")); -+ if (pid != 0) -+ exit (0); -+ } - - setsid (); - -@@ -260,7 +276,7 @@ main (int argc, char **argv) - signal (SIGTSTP, SIG_IGN); - } - else -- /* In foreground mode we are not paranoid. */ -+ /* In debug mode we are not paranoid. */ - paranoia = 0; - - signal (SIGINT, termination_handler); -@@ -309,7 +325,11 @@ parse_opt (int key, char *arg, struct ar - { - case 'd': - ++debug_level; -- go_background = 0; -+ run_in_foreground = 1; -+ break; -+ -+ case 'F': -+ run_in_foreground = -1; - break; - - case 'f': diff --git a/glibc-nscd-hconf.diff b/glibc-nscd-hconf.diff index 3d01d4f..6baa4fa 100644 --- a/glibc-nscd-hconf.diff +++ b/glibc-nscd-hconf.diff @@ -1,11 +1,11 @@ See: http://sourceware.org/bugzilla/show_bug.cgi?id=11928 -Index: glibc-2.15/nscd/aicache.c +Index: glibc-2.15.90/nscd/aicache.c =================================================================== ---- glibc-2.15.orig/nscd/aicache.c -+++ glibc-2.15/nscd/aicache.c -@@ -26,6 +26,7 @@ +--- glibc-2.15.90.orig/nscd/aicache.c ++++ glibc-2.15.90/nscd/aicache.c +@@ -25,6 +25,7 @@ #include #include #include @@ -13,7 +13,7 @@ Index: glibc-2.15/nscd/aicache.c #include "dbg_log.h" #include "nscd.h" -@@ -103,6 +104,8 @@ addhstaiX (struct database_dyn *db, int +@@ -102,6 +103,8 @@ addhstaiX (struct database_dyn *db, int if (__res_maybe_init (&_res, 0) == -1) no_more = 1; @@ -22,11 +22,11 @@ Index: glibc-2.15/nscd/aicache.c /* If we are looking for both IPv4 and IPv6 address we don't want the lookup functions to automatically promote IPv4 addresses to -Index: glibc-2.15/resolv/res_hconf.c +Index: glibc-2.15.90/resolv/res_hconf.c =================================================================== ---- glibc-2.15.orig/resolv/res_hconf.c -+++ glibc-2.15/resolv/res_hconf.c -@@ -83,7 +83,9 @@ static const struct cmd +--- glibc-2.15.90.orig/resolv/res_hconf.c ++++ glibc-2.15.90/resolv/res_hconf.c +@@ -82,7 +82,9 @@ static const struct cmd }; /* Structure containing the state. */ diff --git a/glibc-ports-2.15-8a70b2dcabbf.tar.bz2 b/glibc-ports-2.15-8a70b2dcabbf.tar.bz2 deleted file mode 100644 index 7b943d5..0000000 --- a/glibc-ports-2.15-8a70b2dcabbf.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b7f32252c98467893d3352a57955943e6fd0e7ea606ef4765fe4985df9d7d08 -size 549483 diff --git a/glibc-ports-2.16-a20c2b3c87ae.tar.xz b/glibc-ports-2.16-a20c2b3c87ae.tar.xz new file mode 100644 index 0000000..9f9579f --- /dev/null +++ b/glibc-ports-2.16-a20c2b3c87ae.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4afc22409c53c5d55a86fc8e5fc1f029dd7d42d3d19d61b64c98e4110f52c829 +size 946700 diff --git a/glibc-ppc-getcontext.patch b/glibc-ppc-getcontext.patch deleted file mode 100644 index adbfdb5..0000000 --- a/glibc-ppc-getcontext.patch +++ /dev/null @@ -1,40 +0,0 @@ -commit d1f741e9120669883c6fc0f6fc53b9d35e5015ce -Author: Will Schmidt -Date: Sun Jan 8 21:32:57 2012 -0500 - - Fix typo in Linux/PPC32 getcontext - -2011-01-05 Will Schmidt - - * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Fix a - typo #include statement. - - - * include/sys/cdefs.h: Define __attribute_alloc_size. -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S -index dad1074..46f3dea 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S -@@ -1,5 +1,5 @@ - /* Save current context. -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. -+ Copyright (C) 2002, 2004, 2005, 2012 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 -@@ -54,12 +54,12 @@ versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4) - - #if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) - compat_text_section -- --# undef __CONTEXT_FUNC_NAME -+ -+# undef __CONTEXT_FUNC_NAME - # define __CONTEXT_FUNC_NAME __novec_getcontext - # undef __CONTEXT_ENABLE_VRS - --# clude "getcontext-common.S" -+# include "getcontext-common.S" - - .previous - diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff index 69ea77a..284d1a8 100644 --- a/glibc-resolv-mdnshint.diff +++ b/glibc-resolv-mdnshint.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/resolv/res_hconf.c +Index: glibc-2.15.90/resolv/res_hconf.c =================================================================== ---- glibc-2.15.orig/resolv/res_hconf.c -+++ glibc-2.15/resolv/res_hconf.c -@@ -242,9 +242,12 @@ parse_line (const char *fname, int line_ +--- glibc-2.15.90.orig/resolv/res_hconf.c ++++ glibc-2.15.90/resolv/res_hconf.c +@@ -241,9 +241,12 @@ parse_line (const char *fname, int line_ if (c == NULL) { char *buf; diff --git a/glibc-revert-fseek-on-fclose.diff b/glibc-revert-fseek-on-fclose.diff index 6bf0be3..5732763 100644 --- a/glibc-revert-fseek-on-fclose.diff +++ b/glibc-revert-fseek-on-fclose.diff @@ -17,17 +17,11 @@ git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!' 2011-05-12 Ulrich Drepper [BZ #12511] -diff --git b/libio/Makefile a/libio/Makefile -index ec30904..83b9458 100644 ---- b/libio/Makefile -+++ a/libio/Makefile -@@ -1,4 +1,4 @@ --# Copyright (C) 1995-2004,2006-2009,2011 Free Software Foundation, Inc. -+# Copyright (C) 1995-2004,2006,2007,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 -@@ -58,7 +58,7 @@ tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ +Index: glibc-2.15.90/libio/Makefile +=================================================================== +--- glibc-2.15.90.orig/libio/Makefile ++++ glibc-2.15.90/libio/Makefile +@@ -57,7 +57,7 @@ tests = tst_swprintf tst_wprintf tst_sws tst-memstream1 tst-memstream2 \ tst-wmemstream1 tst-wmemstream2 \ bug-memstream1 bug-wmemstream1 \ @@ -36,10 +30,9 @@ index ec30904..83b9458 100644 test-srcs = test-freopen all: # Make this the default target; it will be defined in Rules. -diff --git b/libio/bug-fclose1.c a/libio/bug-fclose1.c -deleted file mode 100644 -index f1e09f5..0000000 ---- b/libio/bug-fclose1.c +Index: glibc-2.15.90/libio/bug-fclose1.c +=================================================================== +--- glibc-2.15.90.orig/libio/bug-fclose1.c +++ /dev/null @@ -1,132 +0,0 @@ -// BZ #12724 @@ -174,11 +167,11 @@ index f1e09f5..0000000 - - return 0; -} -Index: glibc-2.14/libio/fileops.c +Index: glibc-2.15.90/libio/fileops.c =================================================================== ---- glibc-2.14.orig/libio/fileops.c -+++ glibc-2.14/libio/fileops.c -@@ -160,28 +160,20 @@ int +--- glibc-2.15.90.orig/libio/fileops.c ++++ glibc-2.15.90/libio/fileops.c +@@ -155,21 +155,13 @@ int _IO_new_file_close_it (fp) _IO_FILE *fp; { @@ -203,10 +196,3 @@ Index: glibc-2.14/libio/fileops.c else write_status = 0; - INTUSE(_IO_unsave_markers) (fp); - - int close_status = ((fp->_flags2 & _IO_FLAGS2_NOCLOSE) == 0 - ? _IO_SYSCLOSE (fp) : 0); - - /* Free buffer. */ - #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T diff --git a/glibc-sparc-fxstatat64.diff b/glibc-sparc-fxstatat64.diff deleted file mode 100644 index 0fa799c..0000000 --- a/glibc-sparc-fxstatat64.diff +++ /dev/null @@ -1,25 +0,0 @@ -From 10f62770e115d9f16a67a974f79fa9b100cf827b Mon Sep 17 00:00:00 2001 -From: "David S. Miller" -Date: Tue, 13 Mar 2012 00:45:34 -0700 -Subject: [PATCH] Use correct implementation for dl-fxstatat64 on sparc64. - - * sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c: New file. - - -[rediffed for glibc-2.15 for openSUSE] ---- - sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c | 6 ++++++ - 1 file changed, 6 insertions(+) - create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c - -Index: glibc-2.15/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c -=================================================================== ---- /dev/null -+++ glibc-2.15/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c -@@ -0,0 +1,6 @@ -+/* In this implementation we do not really care whether the call fails -+ because of missing kernel support since we do not even call the -+ function in this case. */ -+#undef __ASSUME_ATFCTS -+#define __ASSUME_ATFCTS 1 -+#include "fxstatat.c" diff --git a/glibc-strict-aliasing.diff b/glibc-strict-aliasing.diff index 5a8ecc5..064e0b7 100644 --- a/glibc-strict-aliasing.diff +++ b/glibc-strict-aliasing.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/elf/Makefile +Index: glibc-2.15.90/elf/Makefile =================================================================== ---- glibc-2.15.orig/elf/Makefile -+++ glibc-2.15/elf/Makefile -@@ -135,6 +135,7 @@ include ../Makeconfig +--- glibc-2.15.90.orig/elf/Makefile ++++ glibc-2.15.90/elf/Makefile +@@ -50,6 +50,7 @@ include ../Makeconfig ifeq ($(unwind-find-fde),yes) routines += unwind-dw2-fde-glibc shared-only-routines += unwind-dw2-fde-glibc @@ -10,3 +10,16 @@ Index: glibc-2.15/elf/Makefile endif before-compile = $(objpfx)trusted-dirs.h +Index: glibc-2.15.90/sunrpc/Makefile +=================================================================== +--- glibc-2.15.90.orig/sunrpc/Makefile ++++ glibc-2.15.90/sunrpc/Makefile +@@ -145,6 +145,8 @@ CFLAGS-key_call.c = -fexceptions + CFLAGS-pmap_rmt.c = -fexceptions + CFLAGS-clnt_perr.c = -fexceptions + CFLAGS-openchild.c = -fexceptions ++CFLAGS-clnt_tcp.c = -fno-strict-aliasing ++CFLAGS-clnt_unix.c = -fno-strict-aliasing + + sunrpc-CPPFLAGS = -D_RPC_THREAD_SAFE_ + CPPFLAGS += $(sunrpc-CPPFLAGS) diff --git a/glibc-sw13618-2.patch b/glibc-sw13618-2.patch deleted file mode 100644 index 026de0f..0000000 --- a/glibc-sw13618-2.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: glibc-2.15/elf/dl-open.c -=================================================================== ---- glibc-2.15.orig/elf/dl-open.c -+++ glibc-2.15/elf/dl-open.c -@@ -326,7 +326,7 @@ dl_open_worker (void *a) - while (l != NULL); - if (nmaps > 1) - { -- char seen[nmaps]; -+ uint16_t seen[nmaps]; - memset (seen, '\0', nmaps); - size_t i = 0; - while (1) -@@ -352,13 +352,13 @@ dl_open_worker (void *a) - (k - i) * sizeof (maps[0])); - maps[k] = thisp; - -- if (seen[i + 1] > 1) -+ if (seen[i + 1] > nmaps - i) - { - ++i; - goto next_clear; - } - -- char this_seen = seen[i]; -+ uint16_t this_seen = seen[i]; - memmove (&seen[i], &seen[i + 1], - (k - i) * sizeof (seen[0])); - seen[k] = this_seen; diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch index c26b3c4..f0b40f0 100644 --- a/glibc-testsuite.patch +++ b/glibc-testsuite.patch @@ -1,10 +1,10 @@ test-lfs runs for ever on ReiserFS. Let's disable it completely. -Index: glibc-2.15/io/Makefile +Index: glibc-2.15.90/io/Makefile =================================================================== ---- glibc-2.15.orig/io/Makefile -+++ glibc-2.15/io/Makefile -@@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat +--- glibc-2.15.90.orig/io/Makefile ++++ glibc-2.15.90/io/Makefile +@@ -63,7 +63,7 @@ static-only-routines = stat fstat lstat others := pwd test-srcs := ftwtest diff --git a/glibc-uio-cell.diff b/glibc-uio-cell.diff deleted file mode 100644 index 6bbbfe3..0000000 --- a/glibc-uio-cell.diff +++ /dev/null @@ -1,26 +0,0 @@ -2009-11-06 Petr Baudis - - * include/sys/uio.h: Change __vector to __iovec to avoid clash - with altivec. - -diff --git a/include/sys/uio.h b/include/sys/uio.h -index 8c2b016..bfaec59 100644 ---- a/include/sys/uio.h -+++ b/include/sys/uio.h -@@ -2,12 +2,12 @@ - #include - - /* Now define the internal interfaces. */ --extern ssize_t __readv (int __fd, __const struct iovec *__vector, -+extern ssize_t __readv (int __fd, __const struct iovec *__iovec, - int __count); --extern ssize_t __libc_readv (int __fd, __const struct iovec *__vector, -+extern ssize_t __libc_readv (int __fd, __const struct iovec *__iovec, - int __count); --extern ssize_t __writev (int __fd, __const struct iovec *__vector, -+extern ssize_t __writev (int __fd, __const struct iovec *__iovec, - int __count); --extern ssize_t __libc_writev (int __fd, __const struct iovec *__vector, -+extern ssize_t __libc_writev (int __fd, __const struct iovec *__iovec, - int __count); - #endif diff --git a/glibc-version.diff b/glibc-version.diff index eef08d1..43b21c0 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/csu/version.c +Index: glibc-2.15.90/csu/version.c =================================================================== ---- glibc-2.15.orig/csu/version.c -+++ glibc-2.15/csu/version.c -@@ -25,11 +25,12 @@ static const char __libc_release[] = REL +--- glibc-2.15.90.orig/csu/version.c ++++ glibc-2.15.90/csu/version.c +@@ -24,11 +24,12 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = diff --git a/glibc.changes b/glibc.changes index cddfd15..42fd406 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Tue Aug 28 07:10:49 UTC 2012 - aj@suse.de + +- Update to da1f43196321, major changes: + * Fix strtod integer/buffer overflow (bso#14459). + * Fix segmentation fault in strncasecmp for i686. + * Translation updates + +------------------------------------------------------------------- +Tue Jul 24 08:39:30 UTC 2012 - aj@suse.de + +- Fix _mcount on PowerPC32. + +------------------------------------------------------------------- +Sat Jul 21 07:31:10 UTC 2012 - aj@suse.de + +- Enable parallel build for some more cases. + +------------------------------------------------------------------- +Fri Jul 20 17:00:00 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 release. + * update version numbers + * Documentation updates +- Update manpages from Debian, includes new man pages for + locale.1, mtrace.1, gencat.1 iconvconfig.8. +- Remove getent.1 man page, use the one from man-pages. + +------------------------------------------------------------------- +Fri Jul 20 16:42:42 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 trunk (git id 416bf844227d): + * Fix check-abi for arm + * Refresh some patches. + * remove merged patches + * mainly lots of bug fixes + * Support for ISO C11 + * full details in NEWS file + ------------------------------------------------------------------- Fri Jul 20 15:06:49 UTC 2012 - jengelh@inai.de diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index 42302a2..3c55cb4 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -15,4 +15,11 @@ addFilter("glibc\..*: permissions-missing-requires") # We will not rename glibc to follow the shlib policy addFilter("shlib-policy-missing-suffix") # The dynamic linker and libnsl call exit - this is fine -addFilter(".*shared-lib-calls-exit.*") \ No newline at end of file +addFilter(".*shared-lib-calls-exit.*") +# The man-pages package contains a number of man pages for programs that come +# with glibc, therefore do not warn about them +addFilter(".*glibc.*no-manual-page-for-binary getent") +addFilter(".*glibc.*no-manual-page-for-binary iconv") +addFilter(".*glibc.*no-manual-page-for-binary ldd") +addFilter(".*glibc.*no-manual-page-for-binary ldconfig") +addFilter(".*nscd.*no-manual-page-for-binary nscd") diff --git a/glibc.spec b/glibc.spec index e231376..ff5fdde 100644 --- a/glibc.spec +++ b/glibc.spec @@ -29,11 +29,14 @@ Name: glibc Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries -BuildRequires: gcc-c++ +BuildRequires: fdupes BuildRequires: libselinux-devel -BuildRequires: libstdc++-devel BuildRequires: makeinfo BuildRequires: xz +%if %{with glibc_run_testsuite} +BuildRequires: gcc-c++ +BuildRequires: libstdc++-devel +%endif %define _filter_GLIBC_PRIVATE 1 %if %_target_cpu == "i686" @@ -116,17 +119,17 @@ Obsoletes: glibc-32bit Provides: ld-linux.so.3 Provides: ld-linux.so.3(GLIBC_2.4) %endif -Version: 2.15 +Version: 2.16 Release: 0 -%define glibc_major_version 2.15 -%define git_id 725b8ee08aff -%define glibc_ports_ver 2.15 -%define ports_git_id 8a70b2dcabbf +%define glibc_major_version 2.16 +%define git_id da1f43196321 +%define glibc_ports_ver 2.16 +%define ports_git_id a20c2b3c87ae Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz %define glibc_ports_dir glibc-ports-%{glibc_ports_ver} -Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2 +Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -204,12 +207,10 @@ Patch16: glibc-2.8-getconf.diff Patch17: glibc-compiled-binaries.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de -# According the the Debian bug report, this is fixed in valgrind now, so disable -# this patch. -Patch19: x86-cpuid-level2.patch # PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de Patch20: glibc-armhf-compat.patch +# PATCH-FIX-OPENSUSE Fix check abi for crypt additions +Patch21: glibc-fix-check-abi.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -222,8 +223,6 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de -Patch200: glibc2.14-revert-sunrpc-removal.patch # PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de Patch201: glibc-revert-fseek-on-fclose.diff # PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de @@ -246,8 +245,6 @@ Patch305: glibc-nscd-hconf.diff Patch306: glibc-fix-double-loopback.diff ### Misc patches -# PATCH-FIX-OPENSUSE don't use unwind tables for initfini (solved differently for glibc 2.16) -Patch400: glibc-no-unwind-tables.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch401: glibc-strict-aliasing.diff # PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail @@ -256,64 +253,20 @@ Patch402: nscd-avoid-gcc-warning.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix missing declarations -Patch1000: glibc-2.15-nss_db-declarations.patch -# PATCH-FIX-UPSTREAM Fix realloc usage in vfscanf - aj@suse.de -Patch1001: glibc-2.16-scanf.patch -# PATCH-FIX-UPSTREAM Fix getcontext on 32-bit powerpc - aj@suse.de -Patch1002: glibc-ppc-getcontext.patch -# PATCH-FIX-UPSTREAM Fix ifunc relocations (bnc#740109) - aj@suse.de -Patch1003: glibc-ifunc-2.16.patch -# PATCH-FIX-UPSTREAM vfprintf: validate nargs and maybe allocate from heap bnc#747768 - aj@suse.de -Patch1005: vfprintf-nargs.patch -# PATCH-FIX-UPSTREAM Add Arm dependency on libmemusage - bwiedemann@suse.de -Patch1006: glibc-add-arm-dependency-libmemusage.patch -# PATCH-FIX-UPSTREAM Fix check abi - aj@suse.de -Patch1007: glibc-2.16-fix-check-abi.patch -# PATCH-FIX-UPSTREAM - Allow compilation with -altivec aj@suse.de -Patch1009: glibc-uio-cell.diff -# PATCH-FIX-UPSTREAM - do not use initfini anymore -Patch1010: glibc-2.16-powerpc-initfini.patch -# PATCH-FIX-UPSTREAM Use new common path for ARMv7 hardware float linker - aj@suse.de -Patch1011: armhf-ld-so.patch -# PATCH-FIX-UPSTREAM Add --foreground for nscd (from Fedora) - aj@suse.de -Patch1012: glibc-nscd-foreground.patch -# PATCH-FIX-UPSTREAM Fix confstr use of local buffer outside its extent -Patch1013: confstr.patch -# PATCH-FIX-UPSTREAM Bogus FPE on underflow for exp(double) bnc#767956 - aj@suse.de -Patch1015: glibc-2.16-expf-underflow-exception.patch -# PATCH-FIX-UPSTREAM Fix gb18030 code bnc#54080 -Patch1016: gb18030.patch.bz2 -# PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de -Patch1017: glibc-nscd-crash-bso13594.patch -# PATCH-FIX-UPSTREAM malloc(0);free gets optimized out -Patch1018: glibc-2.16-mcheck.patch -# PATCH-FIX-UPSTREAM Correct first_weekday for tr_TR (glibc bug#13223) - aj@suse.de -Patch1019: tr_TR.patch -# PATCH-FIX-UPSTREAM implement *context on ARM - agraf@suse.de -Patch1020: glibc-2.16-arm-context.patch # PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de Patch1021: glibc-2.16-getaddrinfo-buffer.patch -# PATCH-FIX_UPSTREAM Use correct implementation of fxstatat64 on sparc64 -Patch1022: glibc-sparc-fxstatat64.diff ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) Patch2001: glibc-resolv-assert.diff -# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de -Patch2004: glibc-fix-noload.patch # PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 Patch2005: glibc-elf-localscope.diff -# PATCH-FIX-OPENSUSE Fix cycle detection - aj@suse.de -Patch2006: cycle-detection.patch -# PATCH-FIX-OPENSUSE Fix cycle detection 2 (from Fedora) - aj@suse.de -Patch2007: glibc-sw13618-2.patch # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE _fini does not have proper unwinding information on x86_64 bso#11610 -Patch2009: glibc-fini-unwind.diff +# PATCH-FIX-OPENSUSE Fix mcount on PowerPC32 - aj@suse.de +Patch2009: glibc-2.16-ppc32-mcount.patch %description The GNU C Library provides the most important standard libraries used @@ -522,17 +475,15 @@ rm nscd/s-stamp %patch16 -p1 %patch17 -p1 %patch18 -p1 -# This should be fixed in valgrind now -#%patch19 -p1 +%patch21 -p1 %patch100 -p1 %patch101 -p1 %patch102 -p1 %patch103 -p1 -%patch200 -p1 %patch201 -p1 -%patch202 -p1 -R +%patch202 -p1 %patch300 -p1 %patch301 -p1 @@ -542,43 +493,18 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%patch400 -p1 %patch401 -p1 %patch402 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1009 -p1 -%ifarch ppc ppc64 -# to support further architectures, some more changes are needed -%patch1010 -p1 -%endif %ifarch armv7l armv7hl -%patch1011 -p1 %patch20 -p1 %endif -%patch1012 -p1 -%patch1013 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 %patch1021 -p1 -%patch -P 1022 -p1 %patch2001 -p1 -%patch2004 -p1 # XXX: Does not pass testsuite, still there's no better solution yet +# XXX: Test elf/tst-dlmodcount.out fails with patch2005 %patch2005 -p1 -%patch2006 -p1 -%patch2007 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 %patch2009 -p1 @@ -644,7 +570,6 @@ BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify= BuildCC="%__cc" BuildCCplus="%__cxx" add_ons=",libidn" -PARALLEL="%{?_smp_mflags}" # #now overwrite for some architectures # @@ -691,8 +616,10 @@ PARALLEL="%{?_smp_mflags}" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm mipsel +%ifarch %arm mipsel ia64 add_ons=$add_ons,%glibc_ports_dir +%endif +%ifarch %arm mipsel # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif @@ -718,7 +645,8 @@ configure_and_build_glibc() { profile="--enable-profile" fi %endif - CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ + CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ @@ -735,10 +663,11 @@ configure_and_build_glibc() { --without-fp \ %endif --enable-kernel=%{enablekernel} \ - --enable-bind-now + --enable-bind-now --enable-obsolete-rpc +# Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) - make $PARALLEL CFLAGS="$cflags" + make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags" cd .. } @@ -829,27 +758,24 @@ export SUSE_ASNEEDED=0 %if %{run_testsuite} # Increase timeout export TIMEOUTFACTOR=16 - %ifarch %arm alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 + %ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 # ix86: tst-cputimer? fails # ia64: tst-timer4 fails # ppc64: tst-pselect, ftwtest fails # s390,s390x: tst-timer* fails - make -C cc-base -k check || echo make check failed + make %{?_smp_mflags} -C cc-base -k check || echo make check failed %else - make -C cc-base check + make %{?_smp_mflags} -C cc-base check %endif %endif -# File was not created as empty file by patch 101 -touch abilist/libnss_dns.abilist abilist/libnss_db.abilist -# This has to pass on x86 and x86-64 +# This has to pass on all platforms! # Exceptions: -# ARM: There's no check-abi data for arm at all -# s390, s390x, ppc, ppc64: Outdated check-abi data -%ifnarch %arm s390 s390x ppc ppc64 -make -C cc-base check-abi +# PowerPC32: _mcount +#%ifnarch ppc +make %{?_smp_mflags} -C cc-base check-abi #%else -#make -C cc-base check-abi || echo check-abi failed -%endif +#make %{?_smp_mflags} -C cc-base check-abi || echo check-abi failed +#%endif ####################################################################### ### @@ -874,8 +800,7 @@ mkdir -p %{buildroot}%{_libdir}/gconv touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache # Install base glibc -# Do not install in parallel, timezone Makefile will fail -make install_root=%{buildroot} install -C cc-base +make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base install_optimized_variant() { local dirname="$1"; shift @@ -940,9 +865,16 @@ install_optimized_variant nosegneg i686/nosegneg "../.." # Install locales %if %{build_locales} - # Do not install locales in parallel! + # XXX Do not install locales in parallel! cd cc-base - make install_root=%{buildroot} install-locales -C ../localedata objdir=`pwd` + # localedef creates hardlinks to other locales if possible + # this will not work if we generate them in parallel. + # thus we need to run fdupes on /usr/lib/locale/ + # Still, on my system this is a speed advantage: + # non-parallel build for install-locales: 9:34mins + # parallel build with fdupes: 7:08mins + make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales + %fdupes %{buildroot}/usr/lib/locale cd .. %endif # Create file list for glibc-locale package @@ -981,7 +913,7 @@ install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ %if %{build_html} mkdir -p %{buildroot}%{_datadir}/doc/glibc -cp -p manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc +cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc %endif cd manpages; make install_root=%{buildroot} install; cd .. @@ -1126,10 +1058,12 @@ exit 0 %verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf %verify(not md5 size mtime) %config(noreplace) /etc/gai.conf %config(noreplace) /etc/default/nss +%doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz -%doc %{_mandir}/man1/getent.1.gz +%doc %{_mandir}/man1/locale.1.gz %doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* +%doc %{_mandir}/man8/iconvconfig.8.gz /%{_lib}/ld-%{glibc_major_version}.so # Each architecture has a different name for the dynamic linker: @@ -1252,7 +1186,6 @@ exit 0 %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig -#%dir /var/db %ifarch %ix86 @@ -1274,7 +1207,7 @@ exit 0 %files devel %defattr(-,root,root) -%doc COPYING COPYING.LIB FAQ NEWS NOTES README BUGS CONFORMANCE +%doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE %doc %{_mandir}/man1/catchsegv.1.gz %doc %{_mandir}/man1/rpcgen.1.gz %doc %{_mandir}/man1/sprof.1.gz @@ -1375,6 +1308,7 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd +%doc %{_mandir}/man1/mtrace.1.gz %files extra %defattr(-,root,root) diff --git a/glibc2.14-revert-sunrpc-removal.patch b/glibc2.14-revert-sunrpc-removal.patch deleted file mode 100644 index 6ce828a..0000000 --- a/glibc2.14-revert-sunrpc-removal.patch +++ /dev/null @@ -1,63 +0,0 @@ -Index: glibc-2.15/nis/Makefile -=================================================================== ---- glibc-2.15.orig/nis/Makefile -+++ glibc-2.15/nis/Makefile -@@ -23,9 +23,9 @@ subdir := nis - - aux := nis_hash - -+headers := $(wildcard rpcsvc/*.[hx]) - distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ -- nisplus-parser.h nis_xdr.h nss \ -- $(wildcard rpcsvc/*.[hx]) -+ nisplus-parser.h nis_xdr.h nss - - # These are the databases available for the nis (and perhaps later nisplus) - # service. This must be a superset of the services in nss. -Index: glibc-2.15/NEWS -=================================================================== ---- glibc-2.15.orig/NEWS -+++ glibc-2.15/NEWS -@@ -84,16 +84,6 @@ Version 2.14 - 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792, - 12795, 12811, 12813, 12814, 12841 - --* The RPC implementation in libc is obsoleted. Old programs keep working -- but new programs cannot be linked with the routines in libc anymore. -- Programs in need of RPC functionality must be linked against TI-RPC. -- The TI-RPC implementation is IPv6 enabled and there are other benefits. -- -- Visible changes of this change include (obviously) the inability to link -- programs using RPC functions without referencing the TI-RPC library and the -- removal of the RPC headers from the glibc headers. -- Implemented by Ulrich Drepper. -- - * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at, - syncfs, setns, sendmmsg - -Index: glibc-2.15/include/libc-symbols.h -=================================================================== ---- glibc-2.15.orig/include/libc-symbols.h -+++ glibc-2.15/include/libc-symbols.h -@@ -626,7 +626,7 @@ for linking") - # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) - # define libc_hidden_def(name) hidden_def (name) - # define libc_hidden_weak(name) hidden_weak (name) --# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) -+# define libc_hidden_nolink(name, version) hidden_def (name) - # define libc_hidden_ver(local, name) hidden_ver (local, name) - # define libc_hidden_data_def(name) hidden_data_def (name) - # define libc_hidden_data_weak(name) hidden_data_weak (name) -Index: glibc-2.15/sunrpc/Makefile -=================================================================== ---- glibc-2.15.orig/sunrpc/Makefile -+++ glibc-2.15/sunrpc/Makefile -@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth - des_crypt.h) - headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ - $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h --headers = rpc/netdb.h -+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc) - install-others = $(inst_sysconfdir)/rpc - generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ - $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen diff --git a/manpages.tar.bz2 b/manpages.tar.bz2 index e133d04..bcc007b 100644 --- a/manpages.tar.bz2 +++ b/manpages.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33df2d6951abd1d111570be780e3e6b265183d51b2f0a34699c6e39380b8ea4c -size 11611 +oid sha256:19a74b49f1afe63adb4e79accb214e2ed77d74af7ca0054af31322d64f3e14f1 +size 15972 diff --git a/nscd-avoid-gcc-warning.diff b/nscd-avoid-gcc-warning.diff index 3c926fb..60f78f1 100644 --- a/nscd-avoid-gcc-warning.diff +++ b/nscd-avoid-gcc-warning.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15/nscd/connections.c +Index: glibc-2.15.90/nscd/connections.c =================================================================== ---- glibc-2.15.orig/nscd/connections.c -+++ glibc-2.15/nscd/connections.c -@@ -1805,6 +1805,8 @@ handle_request: request received (Versio +--- glibc-2.15.90.orig/nscd/connections.c ++++ glibc-2.15.90/nscd/connections.c +@@ -1803,6 +1803,8 @@ handle_request: request received (Versio ++nready; } /* NOTREACHED */ diff --git a/nss-db-path.patch b/nss-db-path.patch index 5bff82c..21d5a6b 100644 --- a/nss-db-path.patch +++ b/nss-db-path.patch @@ -1,10 +1,10 @@ Use /var/db for nss_db -Index: glibc-2.15/nss/db-Makefile +Index: glibc-2.15.90/nss/db-Makefile =================================================================== ---- glibc-2.15.orig/nss/db-Makefile -+++ glibc-2.15/nss/db-Makefile -@@ -23,7 +23,7 @@ DATABASES = $(wildcard /etc/passwd /etc/ +--- glibc-2.15.90.orig/nss/db-Makefile ++++ glibc-2.15.90/nss/db-Makefile +@@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/ /etc/rpc /etc/services /etc/shadow /etc/gshadow \ /etc/netgroup) @@ -13,10 +13,10 @@ Index: glibc-2.15/nss/db-Makefile AWK = awk MAKEDB = makedb --quiet -Index: glibc-2.15/sysdeps/unix/sysv/linux/paths.h +Index: glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h =================================================================== ---- glibc-2.15.orig/sysdeps/unix/sysv/linux/paths.h -+++ glibc-2.15/sysdeps/unix/sysv/linux/paths.h +--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/paths.h ++++ glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h @@ -68,7 +68,7 @@ /* Provide trailing slash, since mostly used for building pathnames. */ #define _PATH_DEV "/dev/" @@ -26,15 +26,15 @@ Index: glibc-2.15/sysdeps/unix/sysv/linux/paths.h #define _PATH_VARRUN "/var/run/" #define _PATH_VARTMP "/var/tmp/" -Index: glibc-2.15/Makeconfig +Index: glibc-2.15.90/Makeconfig =================================================================== ---- glibc-2.15.orig/Makeconfig -+++ glibc-2.15/Makeconfig -@@ -293,7 +293,7 @@ inst_sysconfdir = $(install_root)$(sysco +--- glibc-2.15.90.orig/Makeconfig ++++ glibc-2.15.90/Makeconfig +@@ -287,7 +287,7 @@ inst_sysconfdir = $(install_root)$(sysco # Directory for the database files and Makefile for nss_db. ifndef vardbdir --vardbdir = /var/db +-vardbdir = $(localstatedir)/db +vardbdir = /var/lib/misc endif inst_vardbdir = $(install_root)$(vardbdir) diff --git a/pthread-cond-wait-revert.patch b/pthread-cond-wait-revert.patch index 5f70d87..0118e38 100644 --- a/pthread-cond-wait-revert.patch +++ b/pthread-cond-wait-revert.patch @@ -22,231 +22,223 @@ Date: Mon Nov 28 13:38:19 2011 +0100 EAGAIN from FUTEX_WAIT_REQUEUE_PI. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. -diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S -index 53970d7..54590b7 100644 ---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S -@@ -134,6 +134,7 @@ __pthread_cond_wait: + +Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +=================================================================== +--- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S ++++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +@@ -136,7 +136,6 @@ __pthread_cond_wait: cmpl $PI_BIT, %eax jne 18f -+90: +-90: movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx movl %ebp, %edx xorl %esi, %esi -@@ -147,6 +148,9 @@ __pthread_cond_wait: +@@ -150,9 +149,6 @@ __pthread_cond_wait: sete 16(%esp) je 19f -+ cmpl $-EAGAIN, %eax -+ je 91f -+ +- 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 -@@ -391,6 +395,78 @@ __pthread_cond_wait: +@@ -397,78 +393,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: -+ +- +-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) -@@ -563,6 +639,10 @@ __condvar_w_cleanup: +@@ -641,10 +565,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 .LcleanupSTART2-.LSTARTCODE +- .long .LcleanupEND2-.LcleanupSTART2 +- .long __condvar_w_cleanup-.LSTARTCODE +- .uleb128 0 .long .LcallUR-.LSTARTCODE .long .LENDCODE-.LcallUR .long 0 -diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S -index 7535baa..d837d15 100644 ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - #include - -@@ -133,11 +134,14 @@ __pthread_cond_wait: +Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +=================================================================== +--- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S ++++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +@@ -136,14 +136,11 @@ __pthread_cond_wait: cmpl $PI_BIT, %eax jne 61f -+90: +-90: movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi movl $SYS_futex, %eax syscall movl $1, %r8d -+ cmpq $-EAGAIN, %rax -+ je 91f +- cmpq $-EAGAIN, %rax +- je 91f #ifdef __ASSUME_REQUEUE_PI jmp 62f #else -@@ -324,6 +328,70 @@ __pthread_cond_wait: - +@@ -331,69 +328,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: -+ + +-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 +- LP_OP(cmp) $-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 +- LP_OP(cmp) $-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 +- mov dep_mutex(%rdi), %R8_LP +- 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) -@@ -476,11 +544,15 @@ __condvar_cleanup1: +@@ -546,15 +480,11 @@ __condvar_cleanup1: .uleb128 .LcleanupSTART-.LSTARTCODE .uleb128 .LcleanupEND-.LcleanupSTART .uleb128 __condvar_cleanup1-.LSTARTCODE -- .uleb128 0 -+ .uleb128 0 -+ .uleb128 .LcleanupSTART2-.LSTARTCODE -+ .uleb128 .LcleanupEND2-.LcleanupSTART2 -+ .uleb128 __condvar_cleanup1-.LSTARTCODE -+ .uleb128 0 +- .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 +- .uleb128 0 ++ .uleb128 0 .Lcstend: diff --git a/tr_TR.patch b/tr_TR.patch deleted file mode 100644 index fce6faa..0000000 --- a/tr_TR.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: glibc-2.15/localedata/locales/tr_TR -=================================================================== ---- glibc-2.15.orig/localedata/locales/tr_TR -+++ glibc-2.15/localedata/locales/tr_TR -@@ -3540,6 +3540,8 @@ t_fmt_ampm " - date_fmt "/ - / - " -+first_weekday 2 -+first_workday 2 - END LC_TIME - - LC_PAPER diff --git a/vfprintf-nargs.patch b/vfprintf-nargs.patch deleted file mode 100644 index 17d3563..0000000 --- a/vfprintf-nargs.patch +++ /dev/null @@ -1,201 +0,0 @@ -Date: Thu, 16 Feb 2012 08:16:13 -0800 -From: Kees Cook -To: "Ryan S. Arnold" -Cc: libc-alpha@sourceware.org, Paul Eggert , - Roland McGrath , - Andreas Schwab -Subject: Re: [PATCH] vfprintf: validate nargs and maybe allocate from heap - -The nargs value can overflow when doing allocations, allowing arbitrary -memory writes via format strings, bypassing _FORTIFY_SOURCE: -http://www.phrack.org/issues.html?issue=67&id=9 - -This checks for nargs overflow and possibly allocates from heap instead of -stack, and adds a regression test for the situation. - -I have FSF assignment via Google. (Sent from @outflux since that's how I'm -subscribed here, but CL shows @chromium.org as part of my Google work.) - -This version disables the useless test on non-32-bit platforms. - -2012-02-16 Kees Cook - - [BZ #13656] - * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and - possibly allocate from heap instead of stack. - * stdio-common/bug-vfprintf-nargs.c: New file. - * stdio-common/Makefile (tests): Add nargs overflow test. - -Index: glibc-2.15/stdio-common/Makefile -=================================================================== ---- glibc-2.15.orig/stdio-common/Makefile -+++ glibc-2.15/stdio-common/Makefile -@@ -60,7 +60,8 @@ tests := tstscanf test_rdwr test-popen t - tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ - tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ - bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ -- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 -+ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ -+ bug-vfprintf-nargs - - test-srcs = tst-unbputc tst-printf - -Index: glibc-2.15/stdio-common/bug-vfprintf-nargs.c -=================================================================== ---- /dev/null -+++ glibc-2.15/stdio-common/bug-vfprintf-nargs.c -@@ -0,0 +1,78 @@ -+/* Test for vfprintf nargs allocation overflow (BZ #13656). -+ Copyright (C) 2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Kees Cook , 2012. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int -+format_failed (const char *fmt, const char *expected) -+{ -+ char output[80]; -+ -+ printf ("%s : ", fmt); -+ -+ memset (output, 0, sizeof output); -+ /* Having sprintf itself detect a failure is good. */ -+ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 -+ && strcmp (output, expected) != 0) -+ { -+ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); -+ return 1; -+ } -+ puts ("ok"); -+ return 0; -+} -+ -+static int -+do_test (void) -+{ -+ int rc = 0; -+ char buf[64]; -+ -+ /* Regular positionals work. */ -+ if (format_failed ("%1$d", "1") != 0) -+ rc = 1; -+ -+ /* Regular width positionals work. */ -+ if (format_failed ("%1$*2$d", " 1") != 0) -+ rc = 1; -+ -+ /* Positional arguments are constructed via read_int, so nargs can only -+ overflow on 32-bit systems. On 64-bit systems, it will attempt to -+ allocate a giant amount of memory and possibly crash, which is the -+ expected situation. Since the 64-bit behavior is arch-specific, only -+ test this on 32-bit systems. */ -+ if (sizeof (long int) == 4) -+ { -+ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); -+ if (format_failed (buf, "1 %$d") != 0) -+ rc = 1; -+ } -+ -+ return rc; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.15/stdio-common/vfprintf.c -=================================================================== ---- glibc-2.15.orig/stdio-common/vfprintf.c -+++ glibc-2.15/stdio-common/vfprintf.c -@@ -236,6 +236,9 @@ vfprintf (FILE *s, const CHAR_T *format, - 0 if unknown. */ - int readonly_format = 0; - -+ /* For the argument descriptions, which may be allocated on the heap. */ -+ void *args_malloced = NULL; -+ - /* This table maps a character into a number representing a - class. In each step there is a destination label for each - class. */ -@@ -1648,9 +1651,10 @@ do_positional: - determine the size of the array needed to store the argument - attributes. */ - size_t nargs = 0; -- int *args_type; -- union printf_arg *args_value = NULL; -+ size_t bytes_per_arg; -+ union printf_arg *args_value; - int *args_size; -+ int *args_type; - - /* Positional parameters refer to arguments directly. This could - also determine the maximum number of arguments. Track the -@@ -1699,13 +1703,33 @@ do_positional: - - /* Determine the number of arguments the format string consumes. */ - nargs = MAX (nargs, max_ref_arg); -+ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) -+ + sizeof (*args_type); -+ -+ /* Check for potential integer overflow. */ -+ if (nargs > SIZE_MAX / bytes_per_arg) -+ { -+ done = -1; -+ goto all_done; -+ } - - /* Allocate memory for the argument descriptions. */ -- args_type = alloca (nargs * sizeof (int)); -+ if (__libc_use_alloca (nargs * bytes_per_arg)) -+ args_value = alloca (nargs * bytes_per_arg); -+ else -+ { -+ args_value = args_malloced = malloc (nargs * bytes_per_arg); -+ if (args_value == NULL) -+ { -+ done = -1; -+ goto all_done; -+ } -+ } -+ -+ args_size = &args_value[nargs].pa_int; -+ args_type = &args_size[nargs]; - memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', -- nargs * sizeof (int)); -- args_value = alloca (nargs * sizeof (union printf_arg)); -- args_size = alloca (nargs * sizeof (int)); -+ nargs * sizeof (*args_type)); - - /* XXX Could do sanity check here: If any element in ARGS_TYPE is - still zero after this loop, format is invalid. For now we -@@ -1974,8 +1998,8 @@ do_positional: - } - - all_done: -- if (__builtin_expect (workstart != NULL, 0)) -- free (workstart); -+ free (args_malloced); -+ free (workstart); - /* Unlock the stream. */ - _IO_funlockfile (s); - _IO_cleanup_region_end (0); diff --git a/x86-cpuid-level2.patch b/x86-cpuid-level2.patch deleted file mode 100644 index 39586f3..0000000 --- a/x86-cpuid-level2.patch +++ /dev/null @@ -1,29 +0,0 @@ -openSUSE bug report: -https://bugzilla.novell.com/show_bug.cgi?id=681398 - -Patch from Debian, see -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=584748 - ---- - sysdeps/x86_64/cacheinfo.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -Index: glibc-2.15/sysdeps/x86_64/cacheinfo.c -=================================================================== ---- glibc-2.15.orig/sysdeps/x86_64/cacheinfo.c -+++ glibc-2.15/sysdeps/x86_64/cacheinfo.c -@@ -305,7 +305,13 @@ intel_check_word (int name, unsigned int - static long int __attribute__ ((noinline)) - handle_intel (int name, unsigned int maxidx) - { -- assert (maxidx >= 2); -+ if (maxidx <= 2) -+ { -+ /* This should never happen as all Intel i686 CPU support a CPUID -+ level of 2 minimum. However valgrind sometimes load the i686 -+ library with a P55C CPUID. Return 0 in that case. */ -+ return 0; -+ } - - /* OK, we can use the CPUID instruction to get all info about the - caches. */ From 5a95ba9ef68078ff91276abd1ba0e6318578089a5a405ff91208003ed1779675 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 10 Sep 2012 13:20:21 +0000 Subject: [PATCH 114/204] Accepting request 132572 from Base:System Small fixes by Andreas Schwab OBS-URL: https://build.opensuse.org/request/show/132572 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=120 --- glibc-2.8-getconf.diff | 18 ------------------ glibc.changes | 7 +++++++ glibc.spec | 25 +++++++++++++------------ glibc_post_upgrade.c | 5 ++--- 4 files changed, 22 insertions(+), 33 deletions(-) delete mode 100644 glibc-2.8-getconf.diff diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff deleted file mode 100644 index 5a7643b..0000000 --- a/glibc-2.8-getconf.diff +++ /dev/null @@ -1,18 +0,0 @@ -This is required for too noisy rpmlint: -glibc.i586: E: hardlink-across-partition (Badness: 10000) /usr/lib/getconf/POSIX_V7_ILP32_OFFBIG /usr/bin/getconf - - -Index: glibc-2.15.90/posix/Makefile -=================================================================== ---- glibc-2.15.90.orig/posix/Makefile -+++ glibc-2.15.90/posix/Makefile -@@ -301,8 +301,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi - $(addprefix $(..)./scripts/mkinstalldirs ,\ - $(filter-out $(wildcard $@),$@)) - while read spec; do \ -- ln -f $< $@/$$spec.new || $(INSTALL_PROGRAM) $< $@/$$spec.new; \ -- mv -f $@/$$spec.new $@/$$spec; \ -+ ln -s ../../bin/getconf $@/$$spec; \ - done < $(objpfx)getconf.speclist - - $(objpfx)getconf.speclist: $(objpfx)getconf diff --git a/glibc.changes b/glibc.changes index 42fd406..cd1a267 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Sep 4 11:08:53 UTC 2012 - schwab@linux-m68k.org + +- Move pt_chown to %{_libexecdir} so that baselibs can find it. +- Do create hardlinks to getconf so that baselibs use the correct binary + and getconf -v works (obsoletes patch glibc-2.8-getconf.diff). + ------------------------------------------------------------------- Tue Aug 28 07:10:49 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index ff5fdde..fd9c365 100644 --- a/glibc.spec +++ b/glibc.spec @@ -201,8 +201,6 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-2.3.90-bindresvport.blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf -Patch16: glibc-2.8-getconf.diff # PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries Patch17: glibc-compiled-binaries.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) @@ -472,7 +470,6 @@ rm nscd/s-stamp %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch16 -p1 %patch17 -p1 %patch18 -p1 %patch21 -p1 @@ -648,7 +645,7 @@ configure_and_build_glibc() { CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ - --libexecdir=%{_libdir} --infodir=%{_infodir} \ + --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ $profile \ "$@" \ @@ -984,6 +981,10 @@ install -m 644 %{SOURCE21} %{buildroot}/lib/systemd/system ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 %endif +# Move getconf to %{_libexecdir}/getconf/ to avoid cross device link +mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf +ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf + ####################################################################### ### ### ... @@ -991,19 +992,19 @@ ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 ####################################################################### # Note: glibc_post_upgrade does: -# %%set_permissions %%{_libdir}/pt_chown +# %%set_permissions %%{_libexecdir}/pt_chown # since we cannot do it in our own post section %post -p %{_sbindir}/glibc_post_upgrade # Enabling the following lines will generate a # requires on /bin/sh but glibc should not require any other binary -# packages. Therefore we do the change with the build-in lua: -# %verifyscript -# %verify_permissions -e %{_libdir}/pt_chown +# packages. Therefore we do the change with the built-in lua: +# %%verifyscript +# %%verify_permissions -e %%{_libexecdir}/pt_chown %verifyscript -p -os.execute("/usr/bin/chkstat -n --warn --system -e %{_libdir}/pt_chown") +os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") %postun -p /sbin/ldconfig @@ -1181,9 +1182,9 @@ exit 0 %endif %{_bindir}/locale %{_bindir}/localedef -%verify(not mode caps) %attr(4755,root,root) %{_libdir}/pt_chown -%dir %attr(0755,root,root) %{_libdir}/getconf -%{_libdir}/getconf/* +%verify(not mode caps) %attr(4755,root,root) %{_libexecdir}/pt_chown +%dir %attr(0755,root,root) %{_libexecdir}/getconf +%{_libexecdir}/getconf/* %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index f351234..9e97c79 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -128,11 +128,10 @@ main (void) "--nostdlib", GCONV_MODULES_DIR); } - /* Implement %set_permissions %{_libdir}/pt_chown. */ + /* Implement %set_permissions %{_libexecdir}/pt_chown. */ if (access ("/usr/bin/chkstat", X_OK) == 0) verbose_exec (114, 1, "/usr/bin/chkstat", "/usr/bin/chkstat", - "-n", "--set", "--system", "/usr/lib/pt_chown", - "/usr/lib64/pt_chown"); + "-n", "--set", "--system", "/usr/lib/pt_chown"); /* Check if telinit is available and the init fifo as well. */ if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK)) From 3a24c35320b668e95049fbf12ea7305135226a05b89fb729729ee26e627ae014 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 3 Oct 2012 05:16:59 +0000 Subject: [PATCH 115/204] Accepting request 136315 from Base:System Fix sparc build (forwarded request 136314 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/136315 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=121 --- glibc-fix-check-abi.patch | 692 ++++++++++++++++++++++++++++++-------- glibc.changes | 12 + glibc.spec | 3 + sparc-bind-now.patch | 31 ++ 4 files changed, 602 insertions(+), 136 deletions(-) create mode 100644 sparc-bind-now.patch diff --git a/glibc-fix-check-abi.patch b/glibc-fix-check-abi.patch index 5f1f920..361b585 100644 --- a/glibc-fix-check-abi.patch +++ b/glibc-fix-check-abi.patch @@ -1,8 +1,36 @@ -Index: glibc-2.-15.90/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +The addition of the Blowfish cipher functions also requires updating +the ABI check list for all targets. + +--- + glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++ + glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist | 12 ++++++++++ + sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist | 12 ++++++++++ + 22 files changed, 264 insertions(+) + +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist =================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -25,140 +53,10 @@ Index: glibc-2.-15.90/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist =================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.3 - GLIBC_2.3 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.2 - GLIBC_2.2 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.15.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.2.5 - GLIBC_2.2.5 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.15.90/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.15.90.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -+++ glibc-2.15.90/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.4 GLIBC_2.4 A @@ -181,3 +79,525 @@ Index: glibc-2.15.90/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt. + crypt_gensalt_rn F + crypt_ra F + crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.4 + GLIBC_2.4 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +@@ -1,7 +1,12 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F +@@ -9,3 +14,10 @@ GLIBC_2.0 + setkey_r F + _gp_disp + _gp_disp A ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.12 + GLIBC_2.12 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.12 + GLIBC_2.12 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist ++++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.12 + GLIBC_2.12 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.3 + GLIBC_2.3 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.2 + GLIBC_2.2 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.0 + GLIBC_2.0 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.2.5 + GLIBC_2.2.5 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.16/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.16.orig/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist ++++ glibc-2.16/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist +@@ -1,9 +1,21 @@ + GLIBC_2.16 + GLIBC_2.16 A + crypt F ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F + crypt_r F ++ crypt_ra F ++ crypt_rn F + encrypt F + encrypt_r F + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F diff --git a/glibc.changes b/glibc.changes index cd1a267..b5f723f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri Sep 28 07:47:33 UTC 2012 - aj@suse.de + +- Fix crash in relocation on sparc with bind-now (swo#14376) + (patch sparc-bind-now.patch). + +------------------------------------------------------------------- +Thu Sep 27 12:20:11 UTC 2012 - aj@suse.de + +- Fix check-abi on more architectures (bnc#780696), patch by Jan + Engelhardt (updated patch glibc-fix-check-abi.patch). + ------------------------------------------------------------------- Tue Sep 4 11:08:53 UTC 2012 - schwab@linux-m68k.org diff --git a/glibc.spec b/glibc.spec index fd9c365..b110147 100644 --- a/glibc.spec +++ b/glibc.spec @@ -253,6 +253,8 @@ Patch402: nscd-avoid-gcc-warning.diff ### # PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de Patch1021: glibc-2.16-getaddrinfo-buffer.patch +# PATCH-FIX-UPSTREAM Fix sparc dynamic linker triggered by bind-now swo#14376 - aj@suse.de +Patch1022: sparc-bind-now.patch ### # Patches awaiting upstream approval @@ -497,6 +499,7 @@ rm nscd/s-stamp %patch20 -p1 %endif %patch1021 -p1 +%patch1022 -p1 %patch2001 -p1 # XXX: Does not pass testsuite, still there's no better solution yet diff --git a/sparc-bind-now.patch b/sparc-bind-now.patch new file mode 100644 index 0000000..6608d77 --- /dev/null +++ b/sparc-bind-now.patch @@ -0,0 +1,31 @@ +commit aa9bbfe6a79fce593ab3d298bb0e880d77eb7f71 +Author: David S. Miller +Date: Thu Sep 27 21:33:54 2012 -0700 + + Fix sparc64 crashes with LD_BIND_NOW and --enable-bind-now. + + [BZ #14376] + * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Do not + pass reloc->r_addend in as the 'high' argument to + sparc64_fixup_plt when handling R_SPARC_JMP_IREL relocations. + +diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h +index 35c24d1..2f8bbe1 100644 +--- a/sysdeps/sparc/sparc64/dl-machine.h ++++ b/sysdeps/sparc/sparc64/dl-machine.h +@@ -458,7 +458,14 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, + break; + case R_SPARC_JMP_IREL: + value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); +- /* Fall thru */ ++ /* 'high' is always zero, for large PLT entries the linker ++ emits an R_SPARC_IRELATIVE. */ ++#ifdef RESOLVE_CONFLICT_FIND_MAP ++ sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0); ++#else ++ sparc64_fixup_plt (map, reloc, reloc_addr, value, 0, 0); ++#endif ++ break; + case R_SPARC_JMP_SLOT: + #ifdef RESOLVE_CONFLICT_FIND_MAP + /* R_SPARC_JMP_SLOT conflicts against .plt[32768+] From 2d71f441f26f57385cd7943f6df37aa9fa9b750960cd2976bac9703def8b4263 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 12 Oct 2012 06:03:44 +0000 Subject: [PATCH 116/204] Accepting request 137566 from Base:System Update to current 2.16 tree, various bugfixes. (forwarded request 137557 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/137566 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=122 --- baselibs.conf | 1 + glibc-2.16-a5cfcf08ffaa.tar.xz | 3 + glibc-2.16-da1f43196321.tar.xz | 3 - glibc.changes | 18 ++++ glibc.spec | 12 ++- malloc-check-size.patch | 176 +++++++++++++++++++++++++++++++++ 6 files changed, 206 insertions(+), 7 deletions(-) create mode 100644 glibc-2.16-a5cfcf08ffaa.tar.xz delete mode 100644 glibc-2.16-da1f43196321.tar.xz create mode 100644 malloc-check-size.patch diff --git a/baselibs.conf b/baselibs.conf index e243c27..7bca21d 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -12,6 +12,7 @@ glibc-locale +/usr/lib(64)?/gconv/gconv-modules targettype x86 -/usr/lib(64)?/gconv/gconv-modules glibc-devel + requires "glibc- = %version" arch i586 block! +^/usr/include/gnu/stubs-.*\.h$ glibc-devel-static diff --git a/glibc-2.16-a5cfcf08ffaa.tar.xz b/glibc-2.16-a5cfcf08ffaa.tar.xz new file mode 100644 index 0000000..e2b93fc --- /dev/null +++ b/glibc-2.16-a5cfcf08ffaa.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e578681e4f61512a8ff4b1e1f9918e1b641e09401fdf4940a61827977fbac75f +size 10145468 diff --git a/glibc-2.16-da1f43196321.tar.xz b/glibc-2.16-da1f43196321.tar.xz deleted file mode 100644 index b5b35d2..0000000 --- a/glibc-2.16-da1f43196321.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:563674686eeff7d8473724f511a12506cfe4d40aca43c78f6156e75a84790c51 -size 10168980 diff --git a/glibc.changes b/glibc.changes index b5f723f..06d752a 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Tue Oct 9 07:15:12 UTC 2012 - aj@suse.de + +- Fix malloc_usable_size (swo#1349, bnc#745247) (patch + malloc-check-size.patch). + +- Update to current glibc 2.16 (git a5cfcf08ffaa): + * fix fma detection + * Don't parse %s format argument as multibyte string + * Use size_t instead of int for internal variables in glob + * Properly handle fencepost with MALLOC_ALIGN_MASK + +------------------------------------------------------------------- +Sat Oct 6 08:51:46 UTC 2012 - meissner@suse.com + +- make glibc-devel- require glibc- just + like glibc-devel + ------------------------------------------------------------------- Fri Sep 28 07:47:33 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index b110147..a88643a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -122,7 +122,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.16 Release: 0 %define glibc_major_version 2.16 -%define git_id da1f43196321 +%define git_id a5cfcf08ffaa %define glibc_ports_ver 2.16 %define ports_git_id a20c2b3c87ae Url: http://www.gnu.org/software/libc/libc.html @@ -251,6 +251,11 @@ Patch402: nscd-avoid-gcc-warning.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix malloc_usable_size swo#1349, bnc#745247 - aj@suse.de +Patch1001: malloc-check-size.patch +# PATCH-FIX-UPSTREAM Fix mcount on PowerPC32 - aj@suse.de +Patch1002: glibc-2.16-ppc32-mcount.patch + # PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de Patch1021: glibc-2.16-getaddrinfo-buffer.patch # PATCH-FIX-UPSTREAM Fix sparc dynamic linker triggered by bind-now swo#14376 - aj@suse.de @@ -265,8 +270,6 @@ Patch2001: glibc-resolv-assert.diff Patch2005: glibc-elf-localscope.diff # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE Fix mcount on PowerPC32 - aj@suse.de -Patch2009: glibc-2.16-ppc32-mcount.patch %description The GNU C Library provides the most important standard libraries used @@ -498,6 +501,8 @@ rm nscd/s-stamp %ifarch armv7l armv7hl %patch20 -p1 %endif +%patch1001 -p1 +%patch1002 -p1 %patch1021 -p1 %patch1022 -p1 @@ -507,7 +512,6 @@ rm nscd/s-stamp %patch2005 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 -%patch2009 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! diff --git a/malloc-check-size.patch b/malloc-check-size.patch new file mode 100644 index 0000000..92c2ab1 --- /dev/null +++ b/malloc-check-size.patch @@ -0,0 +1,176 @@ +commit 6ef9cc37f0ea151a54e5c8a19950a6d5b6ff8a96 +Author: Siddhesh Poyarekar +Date: Wed Sep 5 21:49:00 2012 +0530 + + Return requested size for malloc_usable_size when MALLOC_CHECK_ > 0 + + [BZ #1349] + + malloc_usable_size returns the usable size in an allocated chunk, + which may be >= the requested size. In the case of MALLOC_CHECK_ being + exported to > 0 however, only the requested size is usable, since a + magic value is written at the end of the request size to trap writes + beyond request bounds. Hence, when MALLOC_CHECK_ is exported to > 0, + malloc_usable_size() should return the request size. + +2012-09-05 Siddhesh Poyarekar + + [BZ #1349] + * malloc/Makefile (tests): Add tst-malloc-usable test case. + (tst-malloc-usable-ENV): Set environment for test case. + * malloc/hooks.c (malloc_check_get_size): New function to get + requested size. + * malloc/malloc.c (musable): Use malloc_check_get_size. + * malloc/tst-malloc-usable.c: New test case. + +diff --git a/malloc/Makefile b/malloc/Makefile +index 5d6d716..55c675b 100644 +--- a/malloc/Makefile ++++ b/malloc/Makefile +@@ -1,5 +1,4 @@ +-# Copyright (C) 1991-2003, 2005, 2006, 2007, 2009, 2011, 2012 +-# Free Software Foundation, Inc. ++# Copyright (C) 1991-2012 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 +@@ -26,7 +25,7 @@ all: + dist-headers := malloc.h + headers := $(dist-headers) obstack.h mcheck.h + tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \ +- tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 ++ tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 tst-malloc-usable + test-srcs = tst-mtrace + + routines = malloc morecore mcheck mtrace obstack +@@ -116,6 +115,7 @@ endif + endif + + tst-mcheck-ENV = MALLOC_CHECK_=3 ++tst-malloc-usable-ENV = MALLOC_CHECK_=3 + + CPPFLAGS-malloc.c += -DPER_THREAD + # Uncomment this for test releases. For public releases it is too expensive. +diff --git a/malloc/hooks.c b/malloc/hooks.c +index 8a34c78..b38dffb 100644 +--- a/malloc/hooks.c ++++ b/malloc/hooks.c +@@ -1,5 +1,5 @@ + /* Malloc implementation for multiple threads without lock contention. +- Copyright (C) 2001-2009, 2011, 2012 Free Software Foundation, Inc. ++ Copyright (C) 2001-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Wolfram Gloger , 2001. + +@@ -89,6 +89,35 @@ __malloc_check_init() + + #define MAGICBYTE(p) ( ( ((size_t)p >> 3) ^ ((size_t)p >> 11)) & 0xFF ) + ++/* Visualize the chunk as being partitioned into blocks of 256 bytes from the ++ highest address of the chunk, downwards. The beginning of each block tells ++ us the size of the previous block, up to the actual size of the requested ++ memory. Our magic byte is right at the end of the requested size, so we ++ must reach it with this iteration, otherwise we have witnessed a memory ++ corruption. */ ++static size_t ++malloc_check_get_size(mchunkptr p) ++{ ++ size_t size; ++ unsigned char c; ++ unsigned char magic = MAGICBYTE(p); ++ ++ assert(using_malloc_checking == 1); ++ ++ for (size = chunksize(p) - 1 + (chunk_is_mmapped(p) ? 0 : SIZE_SZ); ++ (c = ((unsigned char*)p)[size]) != magic; ++ size -= c) { ++ if(c<=0 || size<(c+2*SIZE_SZ)) { ++ malloc_printerr(check_action, "malloc_check_get_size: memory corruption", ++ chunk2mem(p)); ++ return 0; ++ } ++ } ++ ++ /* chunk2mem size. */ ++ return size - 2*SIZE_SZ; ++} ++ + /* Instrument a chunk with overrun detector byte(s) and convert it + into a user pointer with requested size sz. */ + +diff --git a/malloc/malloc.c b/malloc/malloc.c +index 0f1796c..bd562df 100644 +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -1,5 +1,5 @@ + /* Malloc implementation for multiple threads without lock contention. +- Copyright (C) 1996-2009, 2010, 2011, 2012 Free Software Foundation, Inc. ++ Copyright (C) 1996-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Wolfram Gloger + and Doug Lea , 2001. +@@ -4563,6 +4563,9 @@ musable(void* mem) + mchunkptr p; + if (mem != 0) { + p = mem2chunk(mem); ++ ++ if (__builtin_expect(using_malloc_checking == 1, 0)) ++ return malloc_check_get_size(p); + if (chunk_is_mmapped(p)) + return chunksize(p) - 2*SIZE_SZ; + else if (inuse(p)) +diff --git a/malloc/tst-malloc-usable.c b/malloc/tst-malloc-usable.c +new file mode 100644 +index 0000000..18decd8 +--- /dev/null ++++ b/malloc/tst-malloc-usable.c +@@ -0,0 +1,49 @@ ++/* Ensure that malloc_usable_size returns the request size with ++ MALLOC_CHECK_ exported to a positive value. ++ ++ Copyright (C) 2012 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ size_t usable_size; ++ void *p = malloc (7); ++ if (!p) ++ { ++ printf ("memory allocation failed\n"); ++ return 1; ++ } ++ ++ usable_size = malloc_usable_size (p); ++ if (usable_size != 7) ++ { ++ printf ("malloc_usable_size: expected 7 but got %zu\n", usable_size); ++ return 1; ++ } ++ ++ memset (p, 0, usable_size); ++ free (p); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" From 944164bda3d409a69ec2635db71f9320ca49b4a955c6b2911875ea0152f871fd Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 27 Oct 2012 11:23:04 +0000 Subject: [PATCH 117/204] Accepting request 139323 from Base:System Update to current 2.16 git, drop some patches (forwarded request 139246 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/139323 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=123 --- glibc-2.16-a5cfcf08ffaa.tar.xz | 3 - glibc-2.16-c3b96f90c9c1.tar.xz | 3 + glibc-2.16-ppc32-mcount.patch | 157 --------------------------------- glibc-elf-localscope.diff | 83 ----------------- glibc.changes | 9 ++ glibc.spec | 12 +-- 6 files changed, 14 insertions(+), 253 deletions(-) delete mode 100644 glibc-2.16-a5cfcf08ffaa.tar.xz create mode 100644 glibc-2.16-c3b96f90c9c1.tar.xz delete mode 100644 glibc-2.16-ppc32-mcount.patch delete mode 100644 glibc-elf-localscope.diff diff --git a/glibc-2.16-a5cfcf08ffaa.tar.xz b/glibc-2.16-a5cfcf08ffaa.tar.xz deleted file mode 100644 index e2b93fc..0000000 --- a/glibc-2.16-a5cfcf08ffaa.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e578681e4f61512a8ff4b1e1f9918e1b641e09401fdf4940a61827977fbac75f -size 10145468 diff --git a/glibc-2.16-c3b96f90c9c1.tar.xz b/glibc-2.16-c3b96f90c9c1.tar.xz new file mode 100644 index 0000000..216088a --- /dev/null +++ b/glibc-2.16-c3b96f90c9c1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20d50dad9b65e8ed9936825f71a5cd6dc45f5cdefecd76290b4f744a1ed1e5f1 +size 10145504 diff --git a/glibc-2.16-ppc32-mcount.patch b/glibc-2.16-ppc32-mcount.patch deleted file mode 100644 index 82cb74d..0000000 --- a/glibc-2.16-ppc32-mcount.patch +++ /dev/null @@ -1,157 +0,0 @@ -From schwab@linux-m68k.org Wed, 02 May 2012 17:13:26 +0200 -Return-Path: -Received: from imap.suse.de ([unix socket]) - by imap-int (Cyrus v2.2.12) with LMTPA; - Wed, 02 May 2012 17:13:51 +0200 -X-Sieve: CMU Sieve 2.2 -Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) - (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) - (Client CN "relay.suse.de", Issuer "CAcert Class 3 Root" (verified OK)) - by imap.suse.de (Postfix) with ESMTPS id F17483C5339B - for ; Wed, 2 May 2012 17:13:51 +0200 (CEST) -Received: by relay2.suse.de (Postfix) - id E8E6A18552B2; Wed, 2 May 2012 17:13:51 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by relay2.suse.de (Postfix) with ESMTP id DD16818552B4 - for ; Wed, 2 May 2012 17:13:51 +0200 (CEST) -Received: from relay2.suse.de ([127.0.0.1]) - by localhost (localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP - id 02496-01 for ; Wed, 2 May 2012 17:13:49 +0200 (CEST) -Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) - (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) - (No client certificate requested) - by relay2.suse.de (Postfix) with ESMTPS id DBBF518552B2 - for ; Wed, 2 May 2012 17:13:49 +0200 (CEST) -Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) - by mx2.suse.de (Postfix) with SMTP id 47EFA90F2E - for ; Wed, 2 May 2012 17:13:48 +0200 (CEST) -Comment: DKIM? See http://www.dkim.org -DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; - d=sourceware.org; s=default; x=1336576429; h=Comment: - DomainKey-Signature:Received:Received:From:To:Cc:Subject: - References:Date:In-Reply-To:Message-ID:User-Agent:MIME-Version: - Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe: - List-Subscribe:List-Archive:List-Post:List-Help:Sender: - Delivered-To; bh=0y95/HSsnyw1ABh4V7CAeeORO5U=; b=scLVxQl2KjsaCsA - HlTbKP4b4DlOrh0JbNdDKP3JDs40rI/X02fBsblbArg/QrsiZO9TtF6iehIuw+Sa - /d57G5/oKoaZwV46wT3pzH6BUuKDP+BH1ZMp+TMQRYn4C0Asq5wgY+DeEZhF41gK - f7wsOFVFEQouRtp3QC3k/eN3yUSY= -Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys -DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; - s=default; d=sourceware.org; - h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:From:To:Cc:Subject:References:X-Yow:Date:In-Reply-To:Message-ID:User-Agent:MIME-Version:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; - b=miVyTadt4ff79bxj8elDpRttJ/wxuYnbsl6ZvownzuoJh+HWi+P3S33l/J51gL - /k0F6BLmQ0KXBE9/F8Dxpl9sgt1gBlj440D8gh/jh5cPXeP98VBe0g8f13Rz4j/8 - DiRjxjzQbo8WPJlpbeWWdk/pYQSELCdRi45cxnxRItt7o=; -Received: (qmail 23763 invoked by alias); 2 May 2012 15:13:43 -0000 -Received: (qmail 23753 invoked by uid 22791); 2 May 2012 15:13:41 -0000 -X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 - tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,TW_LW -X-Spam-Check-By: sourceware.org -From: Andreas Schwab -To: Alan Modra -Cc: libc-alpha@sourceware.org -Subject: [PATCH v2] Fix missing _mcount@GLIBC_2.0 on powerpc32 -References: - <20120502113123.GC635@bubble.grove.modra.org> -X-Yow: I want to read my new poem about pork brains and outer space... -Date: Wed, 02 May 2012 17:13:26 +0200 -In-Reply-To: <20120502113123.GC635@bubble.grove.modra.org> (Alan Modra's - message of "Wed, 2 May 2012 21:01:23 +0930") -Message-ID: -User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux) -MIME-Version: 1.0 -Content-Type: text/plain -Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm -Precedence: bulk -List-Id: -List-Unsubscribe: -List-Subscribe: -List-Archive: -List-Post: -List-Help: , -Sender: libc-alpha-owner@sourceware.org -Delivered-To: mailing list libc-alpha@sourceware.org -X-Virus-Scanned: by amavisd-new at localhost -X-Spam-Status: No, score=-7.599 tagged_above=-20 required=5 - tests=[BAYES_00=-2.599, MY_LINUX=-1, RCVD_IN_DNSWL_MED=-4] -X-Spam-Score: -7.599 -X-Spam-Level: - - [BZ #14042] - * sysdeps/powerpc/powerpc32/ppc-mcount.S [SHARED]: Don't use PLT - for call to __mcount_internal. - * sysdeps/powerpc/powerpc32/Makefile (sysdep_routines) - (shared-only-routines) [$(subdir) = gmon]: Add compat-ppc-mcount. - * sysdeps/powerpc/powerpc32/compat-ppc-mcount.S: New file. ---- - sysdeps/powerpc/powerpc32/Makefile | 3 ++- - sysdeps/powerpc/powerpc32/compat-ppc-mcount.S | 11 +++++++++++ - sysdeps/powerpc/powerpc32/ppc-mcount.S | 6 +++++- - 3 files changed, 18 insertions(+), 2 deletions(-) - create mode 100644 sysdeps/powerpc/powerpc32/compat-ppc-mcount.S - -diff --git a/sysdeps/powerpc/powerpc32/Makefile b/sysdeps/powerpc/powerpc32/Makefile -index aa2d0b9..64f7900 100644 ---- a/sysdeps/powerpc/powerpc32/Makefile -+++ b/sysdeps/powerpc/powerpc32/Makefile -@@ -6,8 +6,9 @@ sysdep-LDFLAGS += -msoft-float - endif - - ifeq ($(subdir),gmon) --sysdep_routines += ppc-mcount -+sysdep_routines += ppc-mcount compat-ppc-mcount - static-only-routines += ppc-mcount -+shared-only-routines += compat-ppc-mcount - endif - - ifeq ($(subdir),misc) -diff --git a/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S b/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S -new file mode 100644 -index 0000000..2a9cb24 ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S -@@ -0,0 +1,11 @@ -+#include -+ -+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_15) -+ -+ compat_text_section -+# define _mcount __compat_mcount -+# include "ppc-mcount.S" -+# undef _mcount -+ -+compat_symbol (libc, __compat_mcount, _mcount, GLIBC_2_0) -+#endif -diff --git a/sysdeps/powerpc/powerpc32/ppc-mcount.S b/sysdeps/powerpc/powerpc32/ppc-mcount.S -index 9a3c041..911638b 100644 ---- a/sysdeps/powerpc/powerpc32/ppc-mcount.S -+++ b/sysdeps/powerpc/powerpc32/ppc-mcount.S -@@ -1,5 +1,5 @@ - /* PowerPC-specific implementation of profiling support. -- Copyright (C) 1997, 1999, 2005, 2006 Free Software Foundation, Inc. -+ Copyright (C) 1997-2012 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 -@@ -57,7 +57,11 @@ ENTRY(_mcount) - stw r4, 44(r1) - cfi_offset (lr, -4) - stw r5, 8(r1) -+#ifndef SHARED - bl JUMPTARGET(__mcount_internal) -+#else -+ bl __mcount_internal@local -+#endif - /* Restore the registers... */ - lwz r6, 8(r1) - lwz r0, 44(r1) --- -1.7.10.1 - - --- -Andreas Schwab, schwab@linux-m68k.org -GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 -"And now for something completely different." - diff --git a/glibc-elf-localscope.diff b/glibc-elf-localscope.diff deleted file mode 100644 index 3b79d68..0000000 --- a/glibc-elf-localscope.diff +++ /dev/null @@ -1,83 +0,0 @@ -Index: glibc-2.15.90/elf/dl-close.c -=================================================================== ---- glibc-2.15.90.orig/elf/dl-close.c -+++ glibc-2.15.90/elf/dl-close.c -@@ -179,24 +179,28 @@ _dl_close_worker (struct link_map *map) - /* Signal the object is still needed. */ - l->l_idx = IDX_STILL_USED; - -+#define mark_used(dmap) \ -+ do { \ -+ if ((dmap)->l_idx != IDX_STILL_USED) \ -+ { \ -+ assert ((dmap)->l_idx >= 0 && (dmap)->l_idx < nloaded); \ -+ \ -+ if (!used[(dmap)->l_idx]) \ -+ { \ -+ used[(dmap)->l_idx] = 1; \ -+ if ((dmap)->l_idx - 1 < done_index) \ -+ done_index = (dmap)->l_idx - 1; \ -+ } \ -+ } \ -+ } while (0) -+ - /* Mark all dependencies as used. */ - if (l->l_initfini != NULL) - { - struct link_map **lp = &l->l_initfini[1]; - while (*lp != NULL) - { -- if ((*lp)->l_idx != IDX_STILL_USED) -- { -- assert ((*lp)->l_idx >= 0 && (*lp)->l_idx < nloaded); -- -- if (!used[(*lp)->l_idx]) -- { -- used[(*lp)->l_idx] = 1; -- if ((*lp)->l_idx - 1 < done_index) -- done_index = (*lp)->l_idx - 1; -- } -- } -- -+ mark_used(*lp); - ++lp; - } - } -@@ -205,19 +209,25 @@ _dl_close_worker (struct link_map *map) - for (unsigned int j = 0; j < l->l_reldeps->act; ++j) - { - struct link_map *jmap = l->l_reldeps->list[j]; -- -- if (jmap->l_idx != IDX_STILL_USED) -- { -- assert (jmap->l_idx >= 0 && jmap->l_idx < nloaded); -- -- if (!used[jmap->l_idx]) -- { -- used[jmap->l_idx] = 1; -- if (jmap->l_idx - 1 < done_index) -- done_index = jmap->l_idx - 1; -- } -- } -+ mark_used(jmap); - } -+ /* And the same for owners of our scopes; normally, our last -+ scope provider would render us unused, but this can be -+ prevented by the NODELETE flag. */ -+ if (__builtin_expect(l->l_type == lt_loaded -+ && (l->l_flags_1 & DF_1_NODELETE), 0)) -+ for (size_t cnt = 0; l->l_scope[cnt] != NULL; ++cnt) -+ /* This relies on l_scope[] entries being always set either -+ to its own l_symbolic_searchlist address, or some map's -+ l_searchlist address. */ -+ if (l->l_scope[cnt] != &l->l_symbolic_searchlist) -+ { -+ struct link_map *ls = (struct link_map *) -+ ((char *) l->l_scope[cnt] -+ - offsetof (struct link_map, l_searchlist)); -+ assert (ls->l_ns == nsid); -+ mark_used(ls); -+ } - } - - /* Sort the entries. */ diff --git a/glibc.changes b/glibc.changes index 06d752a..2b82404 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Oct 25 07:30:04 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 c3b96f90c9c1: + - Fix missing _mcount@GLIBC_2.0 on powerpc32 (replaces + patch glibc-2.16-ppc32-mcount.patch) +- Drop patch glibc-elf-localscope.diff, fixed upstream in 2.16 + in a different way. + ------------------------------------------------------------------- Tue Oct 9 07:15:12 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index a88643a..d957b76 100644 --- a/glibc.spec +++ b/glibc.spec @@ -122,7 +122,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.16 Release: 0 %define glibc_major_version 2.16 -%define git_id a5cfcf08ffaa +%define git_id c3b96f90c9c1 %define glibc_ports_ver 2.16 %define ports_git_id a20c2b3c87ae Url: http://www.gnu.org/software/libc/libc.html @@ -253,8 +253,6 @@ Patch402: nscd-avoid-gcc-warning.diff ### # PATCH-FIX-UPSTREAM Fix malloc_usable_size swo#1349, bnc#745247 - aj@suse.de Patch1001: malloc-check-size.patch -# PATCH-FIX-UPSTREAM Fix mcount on PowerPC32 - aj@suse.de -Patch1002: glibc-2.16-ppc32-mcount.patch # PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de Patch1021: glibc-2.16-getaddrinfo-buffer.patch @@ -266,8 +264,6 @@ Patch1022: sparc-bind-now.patch ### # PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) Patch2001: glibc-resolv-assert.diff -# PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 -Patch2005: glibc-elf-localscope.diff # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch @@ -502,14 +498,10 @@ rm nscd/s-stamp %patch20 -p1 %endif %patch1001 -p1 -%patch1002 -p1 %patch1021 -p1 %patch1022 -p1 %patch2001 -p1 -# XXX: Does not pass testsuite, still there's no better solution yet -# XXX: Test elf/tst-dlmodcount.out fails with patch2005 -%patch2005 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 @@ -774,7 +766,7 @@ export SUSE_ASNEEDED=0 %endif # This has to pass on all platforms! # Exceptions: -# PowerPC32: _mcount +# None! #%ifnarch ppc make %{?_smp_mflags} -C cc-base check-abi #%else From c1aeaefb24f4fb3f6a3e305ccb11ac18f5dd284c4636e2955e7382a686421a14 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 10 Nov 2012 15:54:21 +0000 Subject: [PATCH 118/204] Accepting request 140571 from Base:System - Avoid shell comment leaking into %post. (forwarded request 140570 from zxyyz) OBS-URL: https://build.opensuse.org/request/show/140571 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=124 --- glibc.changes | 5 +++++ glibc.spec | 2 ++ 2 files changed, 7 insertions(+) diff --git a/glibc.changes b/glibc.changes index 2b82404..5a27821 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de + +- Avoid shell comment leaking into %post. + ------------------------------------------------------------------- Thu Oct 25 07:30:04 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index d957b76..c054295 100644 --- a/glibc.spec +++ b/glibc.spec @@ -996,11 +996,13 @@ ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf %post -p %{_sbindir}/glibc_post_upgrade +%if 0 # Enabling the following lines will generate a # requires on /bin/sh but glibc should not require any other binary # packages. Therefore we do the change with the built-in lua: # %%verifyscript # %%verify_permissions -e %%{_libexecdir}/pt_chown +%endif %verifyscript -p os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") From fb4de980bc4a5c4442bb62adbcbc9aa70b17dd668481dc425266e1a513d1b381 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 22 Nov 2012 15:12:48 +0000 Subject: [PATCH 119/204] Accepting request 142317 from Base:System Really remove glibc-compiled-binaries.diff (forwarded request 142316 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/142317 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=125 --- glibc-2.14-crypt-versioning.diff | 14 +- glibc-2.14-crypt.diff | 26 +-- glibc-2.16-c3b96f90c9c1.tar.xz | 3 - glibc-2.16-getaddrinfo-buffer.patch | 77 ------- glibc-2.16.90-f59cba71d848.tar.xz | 3 + glibc-2.3.90-bindresvport.blacklist.diff | 24 ++- glibc-2.3.90-noversion.diff | 8 +- glibc-compiled-binaries.diff | 96 --------- glibc-fix-check-abi.patch | 96 ++++----- glibc-gai-private4.diff | 78 -------- glibc-ports-2.16-a20c2b3c87ae.tar.xz | 3 - glibc-revert-fseek-on-fclose.diff | 28 +-- glibc-version.diff | 10 +- glibc.changes | 39 ++++ glibc.spec | 43 +--- malloc-check-size.patch | 176 ---------------- nss-db-path.patch | 20 +- pthread-cond-wait-revert.patch | 244 ----------------------- sparc-bind-now.patch | 31 --- 19 files changed, 167 insertions(+), 852 deletions(-) delete mode 100644 glibc-2.16-c3b96f90c9c1.tar.xz delete mode 100644 glibc-2.16-getaddrinfo-buffer.patch create mode 100644 glibc-2.16.90-f59cba71d848.tar.xz delete mode 100644 glibc-compiled-binaries.diff delete mode 100644 glibc-gai-private4.diff delete mode 100644 glibc-ports-2.16-a20c2b3c87ae.tar.xz delete mode 100644 malloc-check-size.patch delete mode 100644 pthread-cond-wait-revert.patch delete mode 100644 sparc-bind-now.patch diff --git a/glibc-2.14-crypt-versioning.diff b/glibc-2.14-crypt-versioning.diff index 9bd18d1..e98e68d 100644 --- a/glibc-2.14-crypt-versioning.diff +++ b/glibc-2.14-crypt-versioning.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15.90/Versions.def +Index: glibc-2.16.90/Versions.def =================================================================== ---- glibc-2.15.90.orig/Versions.def -+++ glibc-2.15.90/Versions.def -@@ -41,6 +41,7 @@ libc { +--- glibc-2.16.90.orig/Versions.def ++++ glibc-2.16.90/Versions.def +@@ -42,6 +42,7 @@ libc { } libcrypt { GLIBC_2.0 @@ -10,10 +10,10 @@ Index: glibc-2.15.90/Versions.def } libdl { GLIBC_2.0 -Index: glibc-2.15.90/crypt/Versions +Index: glibc-2.16.90/crypt/Versions =================================================================== ---- glibc-2.15.90.orig/crypt/Versions -+++ glibc-2.15.90/crypt/Versions +--- glibc-2.16.90.orig/crypt/Versions ++++ glibc-2.16.90/crypt/Versions @@ -3,4 +3,7 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index c2a5e9f..8ee6549 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,7 +1,7 @@ -Index: glibc-2.15.90/crypt/Makefile +Index: glibc-2.16.90/crypt/Makefile =================================================================== ---- glibc-2.15.90.orig/crypt/Makefile -+++ glibc-2.15.90/crypt/Makefile +--- glibc-2.16.90.orig/crypt/Makefile ++++ glibc-2.16.90/crypt/Makefile @@ -21,6 +21,7 @@ subdir := crypt @@ -16,13 +16,13 @@ Index: glibc-2.15.90/crypt/Makefile +libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper + - tests := cert md5c-test sha256c-test sha512c-test + tests := cert md5c-test sha256c-test sha512c-test badsalttest include ../Makeconfig -Index: glibc-2.15.90/crypt/Versions +Index: glibc-2.16.90/crypt/Versions =================================================================== ---- glibc-2.15.90.orig/crypt/Versions -+++ glibc-2.15.90/crypt/Versions +--- glibc-2.16.90.orig/crypt/Versions ++++ glibc-2.16.90/crypt/Versions @@ -1,5 +1,6 @@ libcrypt { GLIBC_2.0 { @@ -30,11 +30,11 @@ Index: glibc-2.15.90/crypt/Versions + crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; } } -Index: glibc-2.15.90/crypt/crypt-entry.c +Index: glibc-2.16.90/crypt/crypt-entry.c =================================================================== ---- glibc-2.15.90.orig/crypt/crypt-entry.c -+++ glibc-2.15.90/crypt/crypt-entry.c -@@ -79,7 +79,7 @@ extern struct crypt_data _ufc_foobar; +--- glibc-2.16.90.orig/crypt/crypt-entry.c ++++ glibc-2.16.90/crypt/crypt-entry.c +@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; */ char * @@ -43,7 +43,7 @@ Index: glibc-2.15.90/crypt/crypt-entry.c const char *key; const char *salt; struct crypt_data * __restrict data; -@@ -134,6 +134,7 @@ __crypt_r (key, salt, data) +@@ -155,6 +155,7 @@ __crypt_r (key, salt, data) _ufc_output_conversion_r (res[0], res[1], salt, data); return data->crypt_3_buf; } @@ -51,7 +51,7 @@ Index: glibc-2.15.90/crypt/crypt-entry.c weak_alias (__crypt_r, crypt_r) char * -@@ -174,3 +175,4 @@ __fcrypt (key, salt) +@@ -197,3 +198,4 @@ __fcrypt (key, salt) return crypt (key, salt); } #endif diff --git a/glibc-2.16-c3b96f90c9c1.tar.xz b/glibc-2.16-c3b96f90c9c1.tar.xz deleted file mode 100644 index 216088a..0000000 --- a/glibc-2.16-c3b96f90c9c1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:20d50dad9b65e8ed9936825f71a5cd6dc45f5cdefecd76290b4f744a1ed1e5f1 -size 10145504 diff --git a/glibc-2.16-getaddrinfo-buffer.patch b/glibc-2.16-getaddrinfo-buffer.patch deleted file mode 100644 index ffd0b25..0000000 --- a/glibc-2.16-getaddrinfo-buffer.patch +++ /dev/null @@ -1,77 +0,0 @@ -2012-07-02 Jeroen van Bemmel - - [BZ #14307] - [BZ #13904] - * sysdeps/posix/getaddrinfo.c ( gaih_inet ): Increase the size of - the temporary buffer used to invoke __gethostbyname2_r, - __gethostbyaddr_r and gethostbyname4_r to make room for struct - host_data / struct gaih_addrtuple. - * resolv/nss_dns/dns-host.c (global scope): Move definition of - implementation constants MAX_NR_ALIASES and MAX_NR_ADDRS to - header file nss/nsswitch.h. - * nss/nsswitch.h (global scope): Add definition of implementation - constants MAX_NR_ALIASES and MAX_NR_ADDRS (moved from - resolv/nss_dns/dns-host.c). - -diff --git glibc/nss/nsswitch.h glibc/nss/nsswitch.h -index 90e208b..8965819 100644 ---- glibc/nss/nsswitch.h -+++ glibc/nss/nsswitch.h -@@ -198,4 +198,8 @@ extern int __nss_hostname_digits_dots (const char *name, - int *h_errnop); - libc_hidden_proto (__nss_hostname_digits_dots) - -+/* Maximum number of aliases we allow. */ -+#define MAX_NR_ALIASES 48 -+#define MAX_NR_ADDRS 48 -+ - #endif /* nsswitch.h */ -diff --git glibc/resolv/nss_dns/dns-host.c glibc/resolv/nss_dns/dns-host.c -index a924d40..6b62c05 100644 ---- glibc/resolv/nss_dns/dns-host.c -+++ glibc/resolv/nss_dns/dns-host.c -@@ -88,10 +88,6 @@ - - #define RESOLVSORT - --/* Maximum number of aliases we allow. */ --#define MAX_NR_ALIASES 48 --#define MAX_NR_ADDRS 48 -- - #if PACKETSZ > 65536 - # define MAXPACKET PACKETSZ - #else -diff --git glibc/sysdeps/posix/getaddrinfo.c glibc/sysdeps/posix/getaddrinfo.c -index 2eca2ae..efb0423 100644 ---- glibc/sysdeps/posix/getaddrinfo.c -+++ glibc/sysdeps/posix/getaddrinfo.c -@@ -568,7 +568,8 @@ gaih_inet (const char *name, const struct gaih_service *service, - IPv6 scope ids. */ - if (req->ai_family == AF_INET) - { -- size_t tmpbuflen = 512; -+ /* Allocate additional room for struct host_data in getanswer_r */ -+ size_t tmpbuflen = 512 + MAX_NR_ALIASES * sizeof(char*) + 16 * sizeof(char); - assert (tmpbuf == NULL); - tmpbuf = alloca_account (tmpbuflen, alloca_used); - int rc; -@@ -811,7 +812,7 @@ gaih_inet (const char *name, const struct gaih_service *service, - old_res_options = _res.options; - _res.options &= ~RES_USE_INET6; - -- size_t tmpbuflen = 1024; -+ size_t tmpbuflen = 1024 + sizeof(struct gaih_addrtuple); - malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen); - assert (tmpbuf == NULL); - if (!malloc_tmpbuf) -@@ -1113,7 +1114,9 @@ gaih_inet (const char *name, const struct gaih_service *service, - struct hostent *h = NULL; - int herrno; - struct hostent th; -- size_t tmpbuf2len = 512; -+ /* Add room for struct host_data in resolv/nss_dns/dns-host.c */ -+ size_t tmpbuf2len = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*) -+ + 16 * sizeof(char); - - do - { diff --git a/glibc-2.16.90-f59cba71d848.tar.xz b/glibc-2.16.90-f59cba71d848.tar.xz new file mode 100644 index 0000000..2ea8663 --- /dev/null +++ b/glibc-2.16.90-f59cba71d848.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06e746e24a1b764fe87c9143db6666fad6a0c1135c400f56f63a8e243880d5fd +size 11138300 diff --git a/glibc-2.3.90-bindresvport.blacklist.diff b/glibc-2.3.90-bindresvport.blacklist.diff index 65adc21..d97e597 100644 --- a/glibc-2.3.90-bindresvport.blacklist.diff +++ b/glibc-2.3.90-bindresvport.blacklist.diff @@ -1,20 +1,20 @@ -Index: glibc-2.15/sunrpc/bindrsvprt.c +Index: glibc-2.16.90/sunrpc/bindrsvprt.c =================================================================== ---- glibc-2.15.orig/sunrpc/bindrsvprt.c -+++ glibc-2.15/sunrpc/bindrsvprt.c -@@ -29,28 +29,108 @@ +--- glibc-2.16.90.orig/sunrpc/bindrsvprt.c ++++ glibc-2.16.90/sunrpc/bindrsvprt.c +@@ -29,6 +29,9 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include +#include - #include +#include + #include #include #include - #include - #include - #include +@@ -42,21 +45,102 @@ + */ + __libc_lock_define_initialized (static, lock); +#define STARTPORT 600 +#define LOWPORT 512 @@ -38,6 +38,7 @@ Index: glibc-2.15/sunrpc/bindrsvprt.c + size_t buflen = 0; + int size = 0, ptr = 0; + ++ __libc_lock_lock (lock); + blacklist_read = 1; + + fp = fopen ("/etc/bindresvport.blacklist", "r"); @@ -93,7 +94,10 @@ Index: glibc-2.15/sunrpc/bindrsvprt.c + free (buf); + + list_size = ptr; ++ ++ __libc_lock_unlock (lock); +} ++ + /* * Bind a socket to a privileged IP port @@ -116,7 +120,7 @@ Index: glibc-2.15/sunrpc/bindrsvprt.c if (sin == (struct sockaddr_in *) 0) { -@@ -69,6 +149,7 @@ bindresvport (int sd, struct sockaddr_in +@@ -75,6 +159,7 @@ bindresvport (int sd, struct sockaddr_in port = (__getpid () % NPORTS) + STARTPORT; } @@ -124,7 +128,7 @@ Index: glibc-2.15/sunrpc/bindrsvprt.c /* Initialize to make gcc happy. */ int res = -1; -@@ -77,12 +158,22 @@ bindresvport (int sd, struct sockaddr_in +@@ -86,12 +171,22 @@ bindresvport (int sd, struct sockaddr_in again: for (i = 0; i < nports; ++i) { diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index 2f9a18a..fbe8ac8 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15.90/elf/rtld.c +Index: glibc-2.16.90/elf/rtld.c =================================================================== ---- glibc-2.15.90.orig/elf/rtld.c -+++ glibc-2.15.90/elf/rtld.c -@@ -1813,6 +1813,53 @@ ERROR: ld.so: object '%s' cannot be load +--- glibc-2.16.90.orig/elf/rtld.c ++++ glibc-2.16.90/elf/rtld.c +@@ -1717,6 +1717,53 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff deleted file mode 100644 index 54ed1f2..0000000 --- a/glibc-compiled-binaries.diff +++ /dev/null @@ -1,96 +0,0 @@ ---- - config.make.in | 1 + - configure | 16 +++++++++++++++- - configure.in | 1 + - posix/Makefile | 2 +- - 6 files changed, 20 insertions(+), 4 deletions(-) - -Index: glibc-2.15.90/config.make.in -=================================================================== ---- glibc-2.15.90.orig/config.make.in -+++ glibc-2.15.90/config.make.in -@@ -97,6 +97,7 @@ add-ons = @add_ons@ - add-on-subdirs = @add_on_subdirs@ - sysdeps-add-ons = @sysdeps_add_ons@ - cross-compiling = @cross_compiling@ -+compiled-binaries-can-run-on-buildhost = @compiled_binaries_can_run_on_buildhost@ - force-install = @force_install@ - link-obsolete-rpc = @link_obsolete_rpc@ - -Index: glibc-2.15.90/configure.in -=================================================================== ---- glibc-2.15.90.orig/configure.in -+++ glibc-2.15.90/configure.in -@@ -20,6 +20,7 @@ if test $host != $build; then - AC_CHECK_PROGS(BUILD_CC, gcc cc) - fi - AC_SUBST(cross_compiling) -+AC_SUBST(compiled_binaries_can_run_on_buildhost) - AC_PROG_CPP - # We need the C++ compiler only for testing. - AC_PROG_CXX -Index: glibc-2.15.90/configure -=================================================================== ---- glibc-2.15.90.orig/configure -+++ glibc-2.15.90/configure -@@ -553,6 +553,7 @@ ac_clean_files= - ac_config_libobj_dir=. - LIBOBJS= - cross_compiling=no -+compiled_binaries_can_run_on_buildhost=yes - subdirs= - MFLAGS= - MAKEFLAGS= -@@ -667,6 +668,7 @@ CXXFLAGS - CXX - CPP - cross_compiling -+compiled_binaries_can_run_on_buildhost - BUILD_CC - OBJEXT - ac_ct_CC -@@ -1208,6 +1210,13 @@ do - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" - done - -+# Check whether --enable-runbinaries was given. -+if test "${enable_runbinaries+set}" = set; then -+ enableval=$enable_runbinaries; compiled_binaries_can_run_on_buildhost=$enableval -+else -+ compiled_binaries_can_run_on_buildhost=yes -+fi -+ - # There might be people who depend on the old broken behavior: `$host' - # used to hold the argument of --host etc. - # FIXME: To remove some day. -@@ -1223,6 +1232,7 @@ if test "x$host_alias" != x; then - If a cross compiler is detected then cross compile mode will be used" >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes -+ compiled_binaries_can_run_on_buildhost=no - fi - fi - -@@ -1407,6 +1417,9 @@ Optional Features: - --enable-obsolete-rpc build and install the obsolete RPC code for - link-time usage - --enable-systemtap enable systemtap static probe points [default=no] -+ --enable-runbinaries the compiled binaries should run on the buildhost because -+ it happens to have a compatible cpu -+ - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -Index: glibc-2.15.90/posix/Makefile -=================================================================== ---- glibc-2.15.90.orig/posix/Makefile -+++ glibc-2.15.90/posix/Makefile -@@ -305,7 +305,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi - done < $(objpfx)getconf.speclist - - $(objpfx)getconf.speclist: $(objpfx)getconf --ifeq (no,$(cross-compiling)) -+ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) - LC_ALL=C GETCONF_DIR=/dev/null \ - $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new - LC_ALL=C GETCONF_DIR=/dev/null \ diff --git a/glibc-fix-check-abi.patch b/glibc-fix-check-abi.patch index 361b585..f755a04 100644 --- a/glibc-fix-check-abi.patch +++ b/glibc-fix-check-abi.patch @@ -3,18 +3,18 @@ The addition of the Blowfish cipher functions also requires updating the ABI check list for all targets. --- - glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++ - glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++ + ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++ sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist | 12 ++++++++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist | 12 ++++++++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist | 12 ++++++++++ @@ -27,10 +27,10 @@ the ABI check list for all targets. sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist | 12 ++++++++++ 22 files changed, 264 insertions(+) -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -53,10 +53,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.a + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.4 GLIBC_2.4 A @@ -79,10 +79,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abi + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -105,10 +105,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.ab + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.4 GLIBC_2.4 A @@ -131,10 +131,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/li + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -157,10 +157,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist @@ -1,7 +1,12 @@ GLIBC_2.0 GLIBC_2.0 A @@ -185,10 +185,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -211,10 +211,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/ + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -237,10 +237,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/ + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -263,10 +263,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nof + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.12 GLIBC_2.12 A @@ -289,10 +289,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.12 GLIBC_2.12 A @@ -315,10 +315,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist ++++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.12 GLIBC_2.12 A diff --git a/glibc-gai-private4.diff b/glibc-gai-private4.diff deleted file mode 100644 index 028e953..0000000 --- a/glibc-gai-private4.diff +++ /dev/null @@ -1,78 +0,0 @@ -Index: glibc-2.15/posix/gai.conf -=================================================================== ---- glibc-2.15.orig/posix/gai.conf -+++ glibc-2.15/posix/gai.conf -@@ -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 -+# operational problems that's hindering the deployment of IPv6 for content -+# providers. -+# -+# The problem scenario is the following: -+# -+# An end user is located in a network numbered with private (RFC 1918) IPv4 -+# addresses and transitional 6to4 (RFC 3056) IPv6 addresses. The network is -+# connected to the internet by a CPE/SOHO device implementing NAT for IPv4 and -+# anycasted 6to4 (RFC 3068) for IPv6. -+# -+# When the user attempts to connect to a server whose hostname has both IPv4 -+# and IPv6 addresses published in DNS, an IPv6 connection using the -+# transitional 6to4 service will be preferred. This happens because the scope -+# comparison fails for IPv4, the RFC 1918 addresses are assumed to have -+# site-local scope, which is smaller than the global scope of the server's IPv4 -+# address. For IPv6, both the server's and the client's (6to4) address have -+# global scope. -+# -+# Unfortunately, the operational reality is that a transitional technique such -+# as 6to4 is much less reliable than IPv4. The relay routers might be located -+# far away from the optimal IPv4 path, and thus cause a significant latency -+# increase, or they might not even work optimally (they're usually operated by -+# voulenteering third parties on a best-effort basis), and finally some ISPs -+# simply filter away all proto-41 traffic. Transitional techniques are useful -+# to give end users with IPv4-only service a real shot at accessing IPv6-only -+# content, but it should never be preferred over IPv4 service when accessing -+# dual-stacked content. -+# -+# RFC 3484 even acknowledges this, by saying to "avoid the use of transitional -+# addresses when native addresses are available". -+# -+# An IETF draft document which describes the problem in a much more detailed -+# manner than I have is available here: -+# -+# http://tools.ietf.org/html/draft-denis-v6ops-nat-addrsel-00 -+# -+# There's also an IETF draft that aims to revise RFC 3484 in order to fix this -+# problem (amongst others): -+# -+# http://tools.ietf.org/html/draft-arifumi-6man-rfc3484-revise-02 -+# -+# Quoting from this document: -+# -+# > 2.7. To change private IPv4 address scope -+# > -+# > As detailed in Remi's draft [I-D.denis-v6ops-nat-addrsel], when a -+# > host is in NATed site, and has a private IPv4 address and -+# > transitional addresses like 6to4 and Teredo, the host chooses -+# > transitional IPv6 address to access most of the dual-stack servers. -+# > -+# > This is because private IPv4 address is defined to be site-local -+# > scope, and as in RFC 3484, the scope matching rules (Rule 2) set -+# > lower priority for private IPv4 address. -+# > -+# > 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-ports-2.16-a20c2b3c87ae.tar.xz b/glibc-ports-2.16-a20c2b3c87ae.tar.xz deleted file mode 100644 index 9f9579f..0000000 --- a/glibc-ports-2.16-a20c2b3c87ae.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4afc22409c53c5d55a86fc8e5fc1f029dd7d42d3d19d61b64c98e4110f52c829 -size 946700 diff --git a/glibc-revert-fseek-on-fclose.diff b/glibc-revert-fseek-on-fclose.diff index 5732763..8708041 100644 --- a/glibc-revert-fseek-on-fclose.diff +++ b/glibc-revert-fseek-on-fclose.diff @@ -17,22 +17,22 @@ git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!' 2011-05-12 Ulrich Drepper [BZ #12511] -Index: glibc-2.15.90/libio/Makefile +Index: glibc-2.16.90/libio/Makefile =================================================================== ---- glibc-2.15.90.orig/libio/Makefile -+++ glibc-2.15.90/libio/Makefile -@@ -57,7 +57,7 @@ tests = tst_swprintf tst_wprintf tst_sws +--- glibc-2.16.90.orig/libio/Makefile ++++ glibc-2.16.90/libio/Makefile +@@ -59,7 +59,7 @@ tests = tst_swprintf tst_wprintf tst_sws tst-memstream1 tst-memstream2 \ tst-wmemstream1 tst-wmemstream2 \ bug-memstream1 bug-wmemstream1 \ -- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 -+ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos - test-srcs = test-freopen - - all: # Make this the default target; it will be defined in Rules. -Index: glibc-2.15.90/libio/bug-fclose1.c +- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 tst-fseek ++ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek + ifeq (yes,$(build-shared)) + # Add test-fopenloc only if shared library is enabled since it depends on + # shared localedata objects. +Index: glibc-2.16.90/libio/bug-fclose1.c =================================================================== ---- glibc-2.15.90.orig/libio/bug-fclose1.c +--- glibc-2.16.90.orig/libio/bug-fclose1.c +++ /dev/null @@ -1,132 +0,0 @@ -// BZ #12724 @@ -167,10 +167,10 @@ Index: glibc-2.15.90/libio/bug-fclose1.c - - return 0; -} -Index: glibc-2.15.90/libio/fileops.c +Index: glibc-2.16.90/libio/fileops.c =================================================================== ---- glibc-2.15.90.orig/libio/fileops.c -+++ glibc-2.15.90/libio/fileops.c +--- glibc-2.16.90.orig/libio/fileops.c ++++ glibc-2.16.90/libio/fileops.c @@ -155,21 +155,13 @@ int _IO_new_file_close_it (fp) _IO_FILE *fp; diff --git a/glibc-version.diff b/glibc-version.diff index 43b21c0..d713b45 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -1,13 +1,13 @@ -Index: glibc-2.15.90/csu/version.c +Index: glibc-2.16.90/csu/version.c =================================================================== ---- glibc-2.15.90.orig/csu/version.c -+++ glibc-2.15.90/csu/version.c +--- glibc-2.16.90.orig/csu/version.c ++++ glibc-2.16.90/csu/version.c @@ -24,11 +24,12 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = --"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ -+"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\ +-"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ ++"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ Copyright (C) 2012 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ diff --git a/glibc.changes b/glibc.changes index 5a27821..8bdb31c 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de + +- Update to f59cba71d848: + * Various bug fixes + * Add new locales szl_PL, ayc_PE, nhn_MX, doi_IN, mni_IN, sat_IN. + * Remove patch glibc-compiled-binaries.diff since getconf can not be + cross-compiled + * Refresh patch glibc-2.3.90-bindresvport.blacklist.diff + +------------------------------------------------------------------- +Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de + +- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c): + * Upstream changes: + + ports is now part of main tarball + + Add port to ARM AArch64 + + New function secure_getenv + + Systemtap static probes + + The `clock_*' suite of functions (declared in ) is now + available directly in the main C library. + + The `crypt' function now fails if passed salt bytes that violate the + specification for those values. On Linux, the `crypt' function will + consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is + enabled, and fail on encrypted strings using the MD5 or DES algorithm + when the mode is enabled. + + Optimzations and bug fixes + * remove upstream patches malloc-check-size.patch, + glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch, + pthread-cond-wait-revert.patch + * Remove now obsolete patch glibc-gai-private4.diff + * Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff, + glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff, + glibc-revert-fseek-on-fclose.diff + * Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff + and glibc-gai-private4.diff. + * Use git id instead of ChangeLog date in version output (patch glibc-version.diff) + * Enable multi-arch on all architectures that support it. + ------------------------------------------------------------------- Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index c054295..b0f3c98 100644 --- a/glibc.spec +++ b/glibc.spec @@ -119,17 +119,13 @@ Obsoletes: glibc-32bit Provides: ld-linux.so.3 Provides: ld-linux.so.3(GLIBC_2.4) %endif -Version: 2.16 +Version: 2.16.90 Release: 0 -%define glibc_major_version 2.16 -%define git_id c3b96f90c9c1 -%define glibc_ports_ver 2.16 -%define ports_git_id a20c2b3c87ae +%define glibc_major_version 2.16.90 +%define git_id f59cba71d848 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz -%define glibc_ports_dir glibc-ports-%{glibc_ports_ver} -Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -201,8 +197,6 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-2.3.90-bindresvport.blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries -Patch17: glibc-compiled-binaries.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff # PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de @@ -223,8 +217,6 @@ Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: # PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de Patch201: glibc-revert-fseek-on-fclose.diff -# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de -Patch202: pthread-cond-wait-revert.patch ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -233,8 +225,6 @@ Patch300: glibc-resolv-reload.diff Patch301: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 Patch302: getaddrinfo-ipv6-sanity.diff -# PATCH-FIX-OPENSUSE Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] -Patch303: glibc-gai-private4.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 @@ -251,13 +241,6 @@ Patch402: nscd-avoid-gcc-warning.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix malloc_usable_size swo#1349, bnc#745247 - aj@suse.de -Patch1001: malloc-check-size.patch - -# PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de -Patch1021: glibc-2.16-getaddrinfo-buffer.patch -# PATCH-FIX-UPSTREAM Fix sparc dynamic linker triggered by bind-now swo#14376 - aj@suse.de -Patch1022: sparc-bind-now.patch ### # Patches awaiting upstream approval @@ -443,7 +426,7 @@ versions of your software. %endif %prep -%setup -n glibc-%{version} -q -a 2 -a 3 -a 4 +%setup -n glibc-%{version} -q -a 3 -a 4 # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} @@ -471,7 +454,6 @@ rm nscd/s-stamp %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch17 -p1 %patch18 -p1 %patch21 -p1 @@ -481,12 +463,10 @@ rm nscd/s-stamp %patch103 -p1 %patch201 -p1 -%patch202 -p1 %patch300 -p1 %patch301 -p1 -%patch302 -p1 -%patch303 -p1 +#%patch302 -p1 %patch304 -p1 %patch305 -p1 %patch306 -p1 @@ -497,9 +477,6 @@ rm nscd/s-stamp %ifarch armv7l armv7hl %patch20 -p1 %endif -%patch1001 -p1 -%patch1021 -p1 -%patch1022 -p1 %patch2001 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 @@ -557,7 +534,7 @@ nice export SUSE_ASNEEDED=0 # Adjust glibc version.h echo "#define CONFHOST \"%{target}\"" >> version.h -echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h +echo "#define GITID \"%{git_id}\"" >> version.h # # Default CFLAGS and Compiler # @@ -613,7 +590,7 @@ add_ons=",libidn" add_ons=$add_ons,noversion %endif %ifarch %arm mipsel ia64 - add_ons=$add_ons,%glibc_ports_dir + add_ons=$add_ons,ports %endif %ifarch %arm mipsel # fails to build otherwise - need to recheck and fix @@ -652,7 +629,7 @@ configure_and_build_glibc() { --enable-stackguard-randomization \ %endif --build=%{target} --host=%{target} \ -%ifarch ppc ppc64 %{ix86} x86_64 +%ifarch %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -700,11 +677,11 @@ configure_and_build_glibc() { %endif ; do configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \ - --with-cpu=$pcpu --disable-runbinaries + --with-cpu=$pcpu done # Eventually, special Cell variant: %if %{powerpc_optimize_cpu_cell} - configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" --disable-runbinaries + configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" %endif %endif # optimize_power diff --git a/malloc-check-size.patch b/malloc-check-size.patch deleted file mode 100644 index 92c2ab1..0000000 --- a/malloc-check-size.patch +++ /dev/null @@ -1,176 +0,0 @@ -commit 6ef9cc37f0ea151a54e5c8a19950a6d5b6ff8a96 -Author: Siddhesh Poyarekar -Date: Wed Sep 5 21:49:00 2012 +0530 - - Return requested size for malloc_usable_size when MALLOC_CHECK_ > 0 - - [BZ #1349] - - malloc_usable_size returns the usable size in an allocated chunk, - which may be >= the requested size. In the case of MALLOC_CHECK_ being - exported to > 0 however, only the requested size is usable, since a - magic value is written at the end of the request size to trap writes - beyond request bounds. Hence, when MALLOC_CHECK_ is exported to > 0, - malloc_usable_size() should return the request size. - -2012-09-05 Siddhesh Poyarekar - - [BZ #1349] - * malloc/Makefile (tests): Add tst-malloc-usable test case. - (tst-malloc-usable-ENV): Set environment for test case. - * malloc/hooks.c (malloc_check_get_size): New function to get - requested size. - * malloc/malloc.c (musable): Use malloc_check_get_size. - * malloc/tst-malloc-usable.c: New test case. - -diff --git a/malloc/Makefile b/malloc/Makefile -index 5d6d716..55c675b 100644 ---- a/malloc/Makefile -+++ b/malloc/Makefile -@@ -1,5 +1,4 @@ --# Copyright (C) 1991-2003, 2005, 2006, 2007, 2009, 2011, 2012 --# Free Software Foundation, Inc. -+# Copyright (C) 1991-2012 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 -@@ -26,7 +25,7 @@ all: - dist-headers := malloc.h - headers := $(dist-headers) obstack.h mcheck.h - tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \ -- tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 -+ tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 tst-malloc-usable - test-srcs = tst-mtrace - - routines = malloc morecore mcheck mtrace obstack -@@ -116,6 +115,7 @@ endif - endif - - tst-mcheck-ENV = MALLOC_CHECK_=3 -+tst-malloc-usable-ENV = MALLOC_CHECK_=3 - - CPPFLAGS-malloc.c += -DPER_THREAD - # Uncomment this for test releases. For public releases it is too expensive. -diff --git a/malloc/hooks.c b/malloc/hooks.c -index 8a34c78..b38dffb 100644 ---- a/malloc/hooks.c -+++ b/malloc/hooks.c -@@ -1,5 +1,5 @@ - /* Malloc implementation for multiple threads without lock contention. -- Copyright (C) 2001-2009, 2011, 2012 Free Software Foundation, Inc. -+ Copyright (C) 2001-2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Wolfram Gloger , 2001. - -@@ -89,6 +89,35 @@ __malloc_check_init() - - #define MAGICBYTE(p) ( ( ((size_t)p >> 3) ^ ((size_t)p >> 11)) & 0xFF ) - -+/* Visualize the chunk as being partitioned into blocks of 256 bytes from the -+ highest address of the chunk, downwards. The beginning of each block tells -+ us the size of the previous block, up to the actual size of the requested -+ memory. Our magic byte is right at the end of the requested size, so we -+ must reach it with this iteration, otherwise we have witnessed a memory -+ corruption. */ -+static size_t -+malloc_check_get_size(mchunkptr p) -+{ -+ size_t size; -+ unsigned char c; -+ unsigned char magic = MAGICBYTE(p); -+ -+ assert(using_malloc_checking == 1); -+ -+ for (size = chunksize(p) - 1 + (chunk_is_mmapped(p) ? 0 : SIZE_SZ); -+ (c = ((unsigned char*)p)[size]) != magic; -+ size -= c) { -+ if(c<=0 || size<(c+2*SIZE_SZ)) { -+ malloc_printerr(check_action, "malloc_check_get_size: memory corruption", -+ chunk2mem(p)); -+ return 0; -+ } -+ } -+ -+ /* chunk2mem size. */ -+ return size - 2*SIZE_SZ; -+} -+ - /* Instrument a chunk with overrun detector byte(s) and convert it - into a user pointer with requested size sz. */ - -diff --git a/malloc/malloc.c b/malloc/malloc.c -index 0f1796c..bd562df 100644 ---- a/malloc/malloc.c -+++ b/malloc/malloc.c -@@ -1,5 +1,5 @@ - /* Malloc implementation for multiple threads without lock contention. -- Copyright (C) 1996-2009, 2010, 2011, 2012 Free Software Foundation, Inc. -+ Copyright (C) 1996-2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Wolfram Gloger - and Doug Lea , 2001. -@@ -4563,6 +4563,9 @@ musable(void* mem) - mchunkptr p; - if (mem != 0) { - p = mem2chunk(mem); -+ -+ if (__builtin_expect(using_malloc_checking == 1, 0)) -+ return malloc_check_get_size(p); - if (chunk_is_mmapped(p)) - return chunksize(p) - 2*SIZE_SZ; - else if (inuse(p)) -diff --git a/malloc/tst-malloc-usable.c b/malloc/tst-malloc-usable.c -new file mode 100644 -index 0000000..18decd8 ---- /dev/null -+++ b/malloc/tst-malloc-usable.c -@@ -0,0 +1,49 @@ -+/* Ensure that malloc_usable_size returns the request size with -+ MALLOC_CHECK_ exported to a positive value. -+ -+ Copyright (C) 2012 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ size_t usable_size; -+ void *p = malloc (7); -+ if (!p) -+ { -+ printf ("memory allocation failed\n"); -+ return 1; -+ } -+ -+ usable_size = malloc_usable_size (p); -+ if (usable_size != 7) -+ { -+ printf ("malloc_usable_size: expected 7 but got %zu\n", usable_size); -+ return 1; -+ } -+ -+ memset (p, 0, usable_size); -+ free (p); -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/nss-db-path.patch b/nss-db-path.patch index 21d5a6b..6560151 100644 --- a/nss-db-path.patch +++ b/nss-db-path.patch @@ -1,9 +1,9 @@ Use /var/db for nss_db -Index: glibc-2.15.90/nss/db-Makefile +Index: glibc-2.16.90/nss/db-Makefile =================================================================== ---- glibc-2.15.90.orig/nss/db-Makefile -+++ glibc-2.15.90/nss/db-Makefile +--- glibc-2.16.90.orig/nss/db-Makefile ++++ glibc-2.16.90/nss/db-Makefile @@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/ /etc/rpc /etc/services /etc/shadow /etc/gshadow \ /etc/netgroup) @@ -13,10 +13,10 @@ Index: glibc-2.15.90/nss/db-Makefile AWK = awk MAKEDB = makedb --quiet -Index: glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h +Index: glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h =================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/paths.h -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h +--- glibc-2.16.90.orig/sysdeps/unix/sysv/linux/paths.h ++++ glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h @@ -68,7 +68,7 @@ /* Provide trailing slash, since mostly used for building pathnames. */ #define _PATH_DEV "/dev/" @@ -26,11 +26,11 @@ Index: glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h #define _PATH_VARRUN "/var/run/" #define _PATH_VARTMP "/var/tmp/" -Index: glibc-2.15.90/Makeconfig +Index: glibc-2.16.90/Makeconfig =================================================================== ---- glibc-2.15.90.orig/Makeconfig -+++ glibc-2.15.90/Makeconfig -@@ -287,7 +287,7 @@ inst_sysconfdir = $(install_root)$(sysco +--- glibc-2.16.90.orig/Makeconfig ++++ glibc-2.16.90/Makeconfig +@@ -250,7 +250,7 @@ inst_sysconfdir = $(install_root)$(sysco # Directory for the database files and Makefile for nss_db. ifndef vardbdir diff --git a/pthread-cond-wait-revert.patch b/pthread-cond-wait-revert.patch deleted file mode 100644 index 0118e38..0000000 --- a/pthread-cond-wait-revert.patch +++ /dev/null @@ -1,244 +0,0 @@ -http://sourceware.org/ml/libc-alpha/2012-01/msg00002.html - -The following patch: -Has been reported as causing numerous problems in Fedora & Debian. I -don't think anyone has done any serious analysis of the issue, but the -patch has been pulled from both distributions because of the -instability it's introduced. - -https://bugzilla.redhat.com/show_bug.cgi?id=769421 -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651899 - - -commit c5a0802a682dba23f92d47f0f99775aebfbe2539 -Author: Andreas Schwab -Date: Mon Nov 28 13:38:19 2011 +0100 - - Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI - -2011-11-28 Andreas Schwab - - * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle - EAGAIN from FUTEX_WAIT_REQUEUE_PI. - * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. - - -Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S -=================================================================== ---- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S -+++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S -@@ -136,7 +136,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 -@@ -150,9 +149,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 -@@ -397,78 +393,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) -@@ -641,10 +565,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 -Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S -=================================================================== ---- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S -+++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S -@@ -136,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,69 +328,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 -- LP_OP(cmp) $-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 -- LP_OP(cmp) $-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 -- mov dep_mutex(%rdi), %R8_LP -- 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) -@@ -546,15 +480,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: - - diff --git a/sparc-bind-now.patch b/sparc-bind-now.patch deleted file mode 100644 index 6608d77..0000000 --- a/sparc-bind-now.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit aa9bbfe6a79fce593ab3d298bb0e880d77eb7f71 -Author: David S. Miller -Date: Thu Sep 27 21:33:54 2012 -0700 - - Fix sparc64 crashes with LD_BIND_NOW and --enable-bind-now. - - [BZ #14376] - * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Do not - pass reloc->r_addend in as the 'high' argument to - sparc64_fixup_plt when handling R_SPARC_JMP_IREL relocations. - -diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h -index 35c24d1..2f8bbe1 100644 ---- a/sysdeps/sparc/sparc64/dl-machine.h -+++ b/sysdeps/sparc/sparc64/dl-machine.h -@@ -458,7 +458,14 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, - break; - case R_SPARC_JMP_IREL: - value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap)); -- /* Fall thru */ -+ /* 'high' is always zero, for large PLT entries the linker -+ emits an R_SPARC_IRELATIVE. */ -+#ifdef RESOLVE_CONFLICT_FIND_MAP -+ sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0); -+#else -+ sparc64_fixup_plt (map, reloc, reloc_addr, value, 0, 0); -+#endif -+ break; - case R_SPARC_JMP_SLOT: - #ifdef RESOLVE_CONFLICT_FIND_MAP - /* R_SPARC_JMP_SLOT conflicts against .plt[32768+] From 94b4a8728f34c17d6b784ab3f71fbd90bde5ef9474fd28ac67011e06d1726b3c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 26 Nov 2012 17:54:44 +0000 Subject: [PATCH 120/204] Accepting request 142718 from Base:System Remove nscd init script, use systemd files. (forwarded request 142717 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/142718 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=126 --- getaddrinfo-ipv6-sanity.diff | 22 +++--- glibc.changes | 10 +++ glibc.spec | 24 +++---- nscd.init | 125 ----------------------------------- 4 files changed, 31 insertions(+), 150 deletions(-) delete mode 100644 nscd.init diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index 28eb26b..dfd99d3 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -1,8 +1,8 @@ -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index 1a023f9..c8af8b9 100644 ---- a/sysdeps/posix/getaddrinfo.c -+++ b/sysdeps/posix/getaddrinfo.c -@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_database attribute_hidden; +Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.16.90.orig/sysdeps/posix/getaddrinfo.c 2012-11-20 03:45:45.000000000 +0100 ++++ glibc-2.16.90/sysdeps/posix/getaddrinfo.c 2012-11-23 15:32:33.000000000 +0100 +@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas static int gaih_inet (const char *name, const struct gaih_service *service, const struct addrinfo *req, struct addrinfo **pai, @@ -11,10 +11,10 @@ index 1a023f9..c8af8b9 100644 { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -832,7 +832,10 @@ gaih_inet (const char *name, const struct gaih_service *service, - no_data = 0; - nss_gethostbyname4_r fct4 - = __nss_lookup_function (nip, "gethostbyname4_r"); +@@ -839,7 +839,10 @@ gaih_inet (const char *name, const struc + if (req->ai_family == PF_UNSPEC) + fct4 = __nss_lookup_function (nip, "gethostbyname4_r"); + - if (fct4 != NULL) + /* If we don't want ipv6, don't use gethostbyname4_r, + as it's using T_UNSPEC to libc_res_nsearch, which always @@ -23,7 +23,7 @@ index 1a023f9..c8af8b9 100644 { int herrno; -@@ -935,7 +938,7 @@ gaih_inet (const char *name, const struct gaih_service *service, +@@ -942,7 +945,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -32,7 +32,7 @@ index 1a023f9..c8af8b9 100644 { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2418,7 +2421,11 @@ getaddrinfo (const char *name, const char *service, +@@ -2462,7 +2465,11 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/glibc.changes b/glibc.changes index 8bdb31c..89f9887 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Sat Nov 24 13:48:40 UTC 2012 - aj@suse.de + +- Remove nscd init script, use systemd files. + +------------------------------------------------------------------- +Fri Nov 23 14:33:37 UTC 2012 - matz@suse.com + +- Fix getaddrinfo-ipv6-sanity.diff to apply again. + ------------------------------------------------------------------- Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index b0f3c98..c9bd842 100644 --- a/glibc.spec +++ b/glibc.spec @@ -33,6 +33,7 @@ BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo BuildRequires: xz +BuildRequires: pkgconfig(systemd) %if %{with glibc_run_testsuite} BuildRequires: gcc-c++ BuildRequires: libstdc++-devel @@ -129,7 +130,6 @@ Source: glibc-%{version}-%{git_id}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf -Source6: nscd.init Source7: bindresvport.blacklist Source8: glibc_post_upgrade.c Source9: glibc.rpmlintrc @@ -315,12 +315,9 @@ Locale data for the internationalisation features of the GNU C library. Summary: Name Service Caching Daemon License: GPL-2.0+ Group: System/Daemons -Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd Requires: glibc = %{version} -Requires(preun): %insserv_prereq -Requires(post): %insserv_prereq -Requires(postun): %insserv_prereq +%{?systemd_requires} %description -n nscd Nscd caches name service lookups and can dramatically improve @@ -466,7 +463,7 @@ rm nscd/s-stamp %patch300 -p1 %patch301 -p1 -#%patch302 -p1 +%patch302 -p1 %patch304 -p1 %patch305 -p1 %patch306 -p1 @@ -901,8 +898,7 @@ popd cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d -install -m 755 %{SOURCE6} %{buildroot}/etc/init.d/nscd -ln -sf /etc/init.d/nscd %{buildroot}/usr/sbin/rcnscd +ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/var/run/nscd touch %{buildroot}/var/run/nscd/{passwd,group,hosts} touch %{buildroot}/var/run/nscd/{socket,nscd.pid} @@ -1000,12 +996,14 @@ done %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz -%preun -n nscd +%pre -n nscd +%service_add_pre nscd.service -%stop_on_removal nscd +%preun -n nscd +%service_del_preun nscd.service %post -n nscd -%{insserv_force_if_yast nscd} +%service_add_post nscd.service mkdir -p /var/run/nscd # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket || : @@ -1015,8 +1013,7 @@ rm -f /etc/systemd/system/sockets.target.wants/nscd.socket exit 0 %postun -n nscd -%restart_on_update nscd -%insserv_cleanup +%service_del_postun nscd.service exit 0 ####################################################################### @@ -1243,7 +1240,6 @@ exit 0 %files -n nscd %defattr(-,root,root) %config(noreplace) /etc/nscd.conf -%config /etc/init.d/nscd %{_sbindir}/nscd %{_sbindir}/rcnscd /lib/systemd/system/nscd.service diff --git a/nscd.init b/nscd.init deleted file mode 100644 index 52c960e..0000000 --- a/nscd.init +++ /dev/null @@ -1,125 +0,0 @@ -#! /bin/sh -# Copyright (c) 1995-2004 SuSE Linux AG, Nuernberg, Germany. -# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany. -# All rights reserved. -# -# Author: Ruediger Oertel -# Thorsten Kukuk -# -# Please send feedback to http://www.suse.de/feedback -# -# init.d/nscd -# -# and symbolic its link -# -# /usr/sbin/rcnscd -# -# System startup script for the NIS daemon -# -### BEGIN INIT INFO -# Provides: nscd -# Required-Start: $remote_fs $time -# Should-Start: $syslog $named winbind -# Should-Stop: $null -# Required-Stop: $null -# Default-Start: 3 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Start Name Service Cache Daemon -# Description: Start Name Service Cache Daemon -### END INIT INFO - -# Source SuSE config -. /etc/rc.status - -NSCD_BIN=/usr/sbin/nscd -test -x $NSCD_BIN || { echo "$NSCD_BIN not installed"; - if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } - -NSCD_CONFIG=/etc/nscd.conf -test -r $NSCD_CONFIG || { echo "$NSCD_CONFIG not existing"; - if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; } - -NSCD_PID=/var/run/nscd/nscd.pid - -# Shell functions sourced from /etc/rc.status: -# rc_check check and set local and overall rc status -# rc_status check and set local and overall rc status -# rc_status -v ditto but be verbose in local rc status -# rc_status -v -r ditto and clear the local rc status -# rc_failed set local and overall rc status to failed -# rc_reset clear local rc status (overall remains) -# rc_exit exit appropriate to overall rc status - -# First reset status of this service -rc_reset - -# Return values acc. to LSB for all commands but status: -# 0 - success -# 1 - misc error -# 2 - invalid or excess args -# 3 - unimplemented feature (e.g. reload) -# 4 - insufficient privilege -# 5 - program not installed -# 6 - program not configured -# - -case "$1" in - start) - echo -n "Starting Name Service Cache Daemon" - # /var/run might be on tmpfs - [ -d /var/run/nscd ] || mkdir /var/run/nscd - /sbin/startproc -p $NSCD_PID $NSCD_BIN - rc_status -v - ;; - stop) - echo -n "Shutting down Name Service Cache Daemon" - /sbin/killproc -p $NSCD_PID -TERM $NSCD_BIN - # if nscd does not run as root, it cannot remove this files: - rm -f /var/run/nscd/socket $NSCD_PID - rc_status -v - ;; - try-restart|condrestart) - ## RH has a similar command named condrestart. - if test "$1" = "condrestart"; then - echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" - fi - $0 status - if test $? = 0; then - $0 restart - else - rc_reset # Not running is not a failure. - fi - rc_status - ;; - restart) - ## Stop the service and regardless of whether it was - ## running or not, start it again. - $0 stop - $0 start - rc_status - ;; - force-reload) - echo "Reload Name Service Cache Daemon" - $0 try-restart - rc_status - ;; - reload) - # nscd does not support SIGHUP, so fail. - echo -n "Reload Name Service Cache Daemon" - rc_failed 3 - rc_status -v - ;; - status) - echo -n "Checking for Name Service Cache Daemon: " - /sbin/checkproc -p $NSCD_PID $NSCD_BIN - rc_status -v - ;; - probe) - test $NSCD_CONFIG -nt $NSCD_PID && echo restart - ;; - *) - echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" - exit 1 - ;; -esac -rc_exit From 574559ae29e32db7e504f54c676ee4a04f400596fd3ec9f64af0ac0f5bcfcb4c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 28 Nov 2012 09:25:04 +0000 Subject: [PATCH 121/204] Accepting request 143355 from Base:System Update to current git HEAD, fix fwrite bug. (forwarded request 143342 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/143355 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=127 --- glibc-2.16.90-de2fd463b1c0.tar.xz | 3 +++ glibc-2.16.90-f59cba71d848.tar.xz | 3 --- glibc-revert-fseek-on-fclose.diff | 6 +++--- glibc.changes | 11 +++++++++++ glibc.spec | 2 +- 5 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 glibc-2.16.90-de2fd463b1c0.tar.xz delete mode 100644 glibc-2.16.90-f59cba71d848.tar.xz diff --git a/glibc-2.16.90-de2fd463b1c0.tar.xz b/glibc-2.16.90-de2fd463b1c0.tar.xz new file mode 100644 index 0000000..9fb7295 --- /dev/null +++ b/glibc-2.16.90-de2fd463b1c0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:954cdcd1a7c963357086f2caa109ac6ad7bea15e03f1ae930bd7b541d778166b +size 11128040 diff --git a/glibc-2.16.90-f59cba71d848.tar.xz b/glibc-2.16.90-f59cba71d848.tar.xz deleted file mode 100644 index 2ea8663..0000000 --- a/glibc-2.16.90-f59cba71d848.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06e746e24a1b764fe87c9143db6666fad6a0c1135c400f56f63a8e243880d5fd -size 11138300 diff --git a/glibc-revert-fseek-on-fclose.diff b/glibc-revert-fseek-on-fclose.diff index 8708041..a3113c4 100644 --- a/glibc-revert-fseek-on-fclose.diff +++ b/glibc-revert-fseek-on-fclose.diff @@ -25,11 +25,11 @@ Index: glibc-2.16.90/libio/Makefile tst-memstream1 tst-memstream2 \ tst-wmemstream1 tst-wmemstream2 \ bug-memstream1 bug-wmemstream1 \ -- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 tst-fseek -+ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek +- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 tst-fseek \ ++ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \ + tst-fwrite-error ifeq (yes,$(build-shared)) # Add test-fopenloc only if shared library is enabled since it depends on - # shared localedata objects. Index: glibc-2.16.90/libio/bug-fclose1.c =================================================================== --- glibc-2.16.90.orig/libio/bug-fclose1.c diff --git a/glibc.changes b/glibc.changes index 89f9887..bc0416d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Tue Nov 27 21:34:15 UTC 2012 - aj@suse.de + +- Update to de2fd463b1c0: + Various bugfixes including: + * Fix fwrite bug causing grep etc testsuite failure + * sotruss: fix argument parsing + * Check supported DF_1_XXX bits + Add new locales niu_NU and niu_NZ +- Refresh patch glibc-revert-fseek-on-fclose.diff + ------------------------------------------------------------------- Sat Nov 24 13:48:40 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index c9bd842..d63cf87 100644 --- a/glibc.spec +++ b/glibc.spec @@ -123,7 +123,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.16.90 Release: 0 %define glibc_major_version 2.16.90 -%define git_id f59cba71d848 +%define git_id de2fd463b1c0 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz From 1c42f97ac58f3ed47b946ab9fbe736f1113ca93ef90739fa43478484be0e5c2b Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 29 Nov 2012 09:12:50 +0000 Subject: [PATCH 122/204] Accepting request 143491 from Base:System Update to git head, fix nscd systemd file. (forwarded request 143490 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/143491 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=128 --- glibc-2.16.90-de2fd463b1c0.tar.xz | 3 --- glibc-2.16.90-e3c6aa3a5848.tar.xz | 3 +++ glibc.changes | 13 +++++++++++++ glibc.spec | 10 +++++----- 4 files changed, 21 insertions(+), 8 deletions(-) delete mode 100644 glibc-2.16.90-de2fd463b1c0.tar.xz create mode 100644 glibc-2.16.90-e3c6aa3a5848.tar.xz diff --git a/glibc-2.16.90-de2fd463b1c0.tar.xz b/glibc-2.16.90-de2fd463b1c0.tar.xz deleted file mode 100644 index 9fb7295..0000000 --- a/glibc-2.16.90-de2fd463b1c0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:954cdcd1a7c963357086f2caa109ac6ad7bea15e03f1ae930bd7b541d778166b -size 11128040 diff --git a/glibc-2.16.90-e3c6aa3a5848.tar.xz b/glibc-2.16.90-e3c6aa3a5848.tar.xz new file mode 100644 index 0000000..447ac69 --- /dev/null +++ b/glibc-2.16.90-e3c6aa3a5848.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bd758d05a8abeb05258a9f5c253969c201ad76e6f6c6bebdc4e8883a3cf2443 +size 11142916 diff --git a/glibc.changes b/glibc.changes index bc0416d..e825d12 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Wed Nov 28 15:48:32 UTC 2012 - aj@suse.de + +- Update to e3c6aa3a5848: + * Fix powerpc64 make abi check failure + * bugfixes +- Install nscd.socket to new /usr location + +------------------------------------------------------------------- +Wed Nov 28 09:31:11 UTC 2012 - schwab@suse.de + +- Reenable multi-arch on ppc ppc64 + ------------------------------------------------------------------- Tue Nov 27 21:34:15 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index d63cf87..d39c49a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -123,7 +123,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.16.90 Release: 0 %define glibc_major_version 2.16.90 -%define git_id de2fd463b1c0 +%define git_id e3c6aa3a5848 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -626,7 +626,7 @@ configure_and_build_glibc() { --enable-stackguard-randomization \ %endif --build=%{target} --host=%{target} \ -%ifarch %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -945,8 +945,8 @@ done mkdir -p %{buildroot}/usr/lib/tmpfiles.d/ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ -mkdir -p %{buildroot}/lib/systemd/system -install -m 644 %{SOURCE21} %{buildroot}/lib/systemd/system +mkdir -p %{buildroot}/usr/lib/systemd/system +install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv7l armv7hl # Provide compatibility link @@ -1242,7 +1242,7 @@ exit 0 %config(noreplace) /etc/nscd.conf %{_sbindir}/nscd %{_sbindir}/rcnscd -/lib/systemd/system/nscd.service +/usr/lib/systemd/system/nscd.service %dir /usr/lib/tmpfiles.d /usr/lib/tmpfiles.d/nscd.conf %dir %attr(0755,root,root) %ghost /var/run/nscd From 6be2c2808db8d0c3ea49446667333cb994e049e2bf14a37b1117d35cdb51fea0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 3 Dec 2012 08:35:02 +0000 Subject: [PATCH 123/204] Accepting request 143762 from Base:System Update to current git head. (forwarded request 143761 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/143762 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=129 --- glibc-2.16.90-e3c6aa3a5848.tar.xz | 3 -- glibc-2.16.90-f638872ab422.tar.xz | 3 ++ glibc-resolv-assert.diff | 59 ------------------------------- glibc-strict-aliasing.diff | 25 ------------- glibc.changes | 24 +++++++++++++ glibc.spec | 14 +------- nscd-avoid-gcc-warning.diff | 13 ------- 7 files changed, 28 insertions(+), 113 deletions(-) delete mode 100644 glibc-2.16.90-e3c6aa3a5848.tar.xz create mode 100644 glibc-2.16.90-f638872ab422.tar.xz delete mode 100644 glibc-resolv-assert.diff delete mode 100644 glibc-strict-aliasing.diff delete mode 100644 nscd-avoid-gcc-warning.diff diff --git a/glibc-2.16.90-e3c6aa3a5848.tar.xz b/glibc-2.16.90-e3c6aa3a5848.tar.xz deleted file mode 100644 index 447ac69..0000000 --- a/glibc-2.16.90-e3c6aa3a5848.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0bd758d05a8abeb05258a9f5c253969c201ad76e6f6c6bebdc4e8883a3cf2443 -size 11142916 diff --git a/glibc-2.16.90-f638872ab422.tar.xz b/glibc-2.16.90-f638872ab422.tar.xz new file mode 100644 index 0000000..797110e --- /dev/null +++ b/glibc-2.16.90-f638872ab422.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f470c705a84e326a17e07c600897bd7ad9a5a23a7a42c8c640cf7399a35f6390 +size 11157404 diff --git a/glibc-resolv-assert.diff b/glibc-resolv-assert.diff deleted file mode 100644 index fcb478e..0000000 --- a/glibc-resolv-assert.diff +++ /dev/null @@ -1,59 +0,0 @@ -2011-07-21 Aurelien Jarno - - * resolv/res_query.c(__libc_res_nquery): Assign hp and hp2 - depending n and resplen2 to catch cases where answer - equals answerp2. - -diff --git a/resolv/res_query.c b/resolv/res_query.c -index 2f7cfaa..405fa68 100644 ---- a/resolv/res_query.c -+++ b/resolv/res_query.c -@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp, - int *resplen2) - { - HEADER *hp = (HEADER *) answer; -+ HEADER *hp2; - int n, use_malloc = 0; - u_int oflags = statp->_flags; - -@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp, - /* __libc_res_nsend might have reallocated the buffer. */ - hp = (HEADER *) *answerp; - -- /* We simplify the following tests by assigning HP to HP2. It -- is easy to verify that this is the same as ignoring all -- tests of HP2. */ -- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp; -- -- if (n < (int) sizeof (HEADER) && answerp2 != NULL -- && *resplen2 > (int) sizeof (HEADER)) -+ /* We simplify the following tests by assigning HP to HP2 or -+ vice versa. It is easy to verify that this is the same as -+ ignoring all tests of HP or HP2. */ -+ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER)) - { -- /* Special case of partial answer. */ -- assert (hp != hp2); -- hp = hp2; -+ hp2 = hp; - } -- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER) -- && n > (int) sizeof (HEADER)) -+ else - { -- /* Special case of partial answer. */ -- assert (hp != hp2); -- hp2 = hp; -+ hp2 = (HEADER *) *answerp2; -+ if (n < (int) sizeof (HEADER)) -+ { -+ hp = hp2; -+ } - } - -+ /* Make sure both hp and hp2 are defined */ -+ assert((hp != NULL) && (hp2 != NULL)); -+ - if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0) - && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) { - #ifdef DEBUG diff --git a/glibc-strict-aliasing.diff b/glibc-strict-aliasing.diff deleted file mode 100644 index 064e0b7..0000000 --- a/glibc-strict-aliasing.diff +++ /dev/null @@ -1,25 +0,0 @@ -Index: glibc-2.15.90/elf/Makefile -=================================================================== ---- glibc-2.15.90.orig/elf/Makefile -+++ glibc-2.15.90/elf/Makefile -@@ -50,6 +50,7 @@ include ../Makeconfig - ifeq ($(unwind-find-fde),yes) - routines += unwind-dw2-fde-glibc - shared-only-routines += unwind-dw2-fde-glibc -+CFLAGS-unwind-dw2-fde-glibc.c = -fno-strict-aliasing - endif - - before-compile = $(objpfx)trusted-dirs.h -Index: glibc-2.15.90/sunrpc/Makefile -=================================================================== ---- glibc-2.15.90.orig/sunrpc/Makefile -+++ glibc-2.15.90/sunrpc/Makefile -@@ -145,6 +145,8 @@ CFLAGS-key_call.c = -fexceptions - CFLAGS-pmap_rmt.c = -fexceptions - CFLAGS-clnt_perr.c = -fexceptions - CFLAGS-openchild.c = -fexceptions -+CFLAGS-clnt_tcp.c = -fno-strict-aliasing -+CFLAGS-clnt_unix.c = -fno-strict-aliasing - - sunrpc-CPPFLAGS = -D_RPC_THREAD_SAFE_ - CPPFLAGS += $(sunrpc-CPPFLAGS) diff --git a/glibc.changes b/glibc.changes index e825d12..d1d64f0 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Sat Dec 1 08:55:05 UTC 2012 - aj@suse.de + +- Update to f638872ab422: + Fix regression introduced with last update in sunrpc code + Fix assertion failure in resolver + Bug fixes +- Remove upstreamed patch glibc-resolv-assert.diff + +------------------------------------------------------------------- +Fri Nov 30 09:15:15 UTC 2012 - aj@suse.de + +- Update to c93ec1f091ec: + Warn about unsupported DT_FLAGS_1 flags + Add Interlingua locale + Bug fixes + +------------------------------------------------------------------- +Thu Nov 29 14:30:11 UTC 2012 - schwab@suse.de + +- Remove obsolete patches: + glibc-strict-aliasing.diff + nscd-avoid-gcc-warning.diff + ------------------------------------------------------------------- Wed Nov 28 15:48:32 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index d39c49a..3369737 100644 --- a/glibc.spec +++ b/glibc.spec @@ -123,7 +123,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.16.90 Release: 0 %define glibc_major_version 2.16.90 -%define git_id e3c6aa3a5848 +%define git_id f638872ab422 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -232,12 +232,6 @@ Patch305: glibc-nscd-hconf.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch306: glibc-fix-double-loopback.diff -### Misc patches -# FIX-OPENSUSE compile some files with -fno-strict-aliasing -Patch401: glibc-strict-aliasing.diff -# PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail -Patch402: nscd-avoid-gcc-warning.diff - ### # Patches from upstream ### @@ -245,8 +239,6 @@ Patch402: nscd-avoid-gcc-warning.diff ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) -Patch2001: glibc-resolv-assert.diff # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch @@ -468,14 +460,10 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%patch401 -p1 -%patch402 -p1 - %ifarch armv7l armv7hl %patch20 -p1 %endif -%patch2001 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/nscd-avoid-gcc-warning.diff b/nscd-avoid-gcc-warning.diff deleted file mode 100644 index 60f78f1..0000000 --- a/nscd-avoid-gcc-warning.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: glibc-2.15.90/nscd/connections.c -=================================================================== ---- glibc-2.15.90.orig/nscd/connections.c -+++ glibc-2.15.90/nscd/connections.c -@@ -1803,6 +1803,8 @@ handle_request: request received (Versio - ++nready; - } - /* NOTREACHED */ -+ assert(0); -+ return 0; - } - - From f41159a486a6da9f0f9fe8a31cb5e45a6186650f02cf4d1e80a719fccbbaf69a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 10 Dec 2012 16:16:01 +0000 Subject: [PATCH 124/204] Accepting request 144728 from Base:System Update to current git head. (forwarded request 144726 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/144728 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=130 --- glibc-2.16.90-56e7d3ad5c2f.tar.xz | 3 + glibc-2.16.90-f638872ab422.tar.xz | 3 - glibc-revert-fseek-on-fclose.diff | 198 ------------------------------ glibc.changes | 21 ++++ glibc.spec | 30 +---- 5 files changed, 29 insertions(+), 226 deletions(-) create mode 100644 glibc-2.16.90-56e7d3ad5c2f.tar.xz delete mode 100644 glibc-2.16.90-f638872ab422.tar.xz delete mode 100644 glibc-revert-fseek-on-fclose.diff diff --git a/glibc-2.16.90-56e7d3ad5c2f.tar.xz b/glibc-2.16.90-56e7d3ad5c2f.tar.xz new file mode 100644 index 0000000..220fd19 --- /dev/null +++ b/glibc-2.16.90-56e7d3ad5c2f.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bbe236fe37232839b0232f826b4cbadd09d688cabc63530a6d124a9039d2378 +size 11132824 diff --git a/glibc-2.16.90-f638872ab422.tar.xz b/glibc-2.16.90-f638872ab422.tar.xz deleted file mode 100644 index 797110e..0000000 --- a/glibc-2.16.90-f638872ab422.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f470c705a84e326a17e07c600897bd7ad9a5a23a7a42c8c640cf7399a35f6390 -size 11157404 diff --git a/glibc-revert-fseek-on-fclose.diff b/glibc-revert-fseek-on-fclose.diff deleted file mode 100644 index a3113c4..0000000 --- a/glibc-revert-fseek-on-fclose.diff +++ /dev/null @@ -1,198 +0,0 @@ -This reverts the following patch from upstream PR 12724, -which can cause surprising changes in fclose behaviour when multiple -file handles refer to the same file (fclose on one changes file position -on the other). -See bnc #711829. - -git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!' - -2011-05-13 Ulrich Drepper - - [BZ #12724] - * libio/fileops.c (_IO_new_file_close_it): Always flush when - currently writing and seek to current position when not. - * libio/Makefile (tests): Add bug-fclose1. - * libio/bug-fclose1.c: New file. - - 2011-05-12 Ulrich Drepper - - [BZ #12511] -Index: glibc-2.16.90/libio/Makefile -=================================================================== ---- glibc-2.16.90.orig/libio/Makefile -+++ glibc-2.16.90/libio/Makefile -@@ -59,7 +59,7 @@ tests = tst_swprintf tst_wprintf tst_sws - tst-memstream1 tst-memstream2 \ - tst-wmemstream1 tst-wmemstream2 \ - bug-memstream1 bug-wmemstream1 \ -- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 tst-fseek \ -+ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \ - tst-fwrite-error - ifeq (yes,$(build-shared)) - # Add test-fopenloc only if shared library is enabled since it depends on -Index: glibc-2.16.90/libio/bug-fclose1.c -=================================================================== ---- glibc-2.16.90.orig/libio/bug-fclose1.c -+++ /dev/null -@@ -1,132 +0,0 @@ --// BZ #12724 -- --static void do_prepare (void); --#define PREPARE(argc, argv) do_prepare () --static int do_test (void); --#define TEST_FUNCTION do_test() --#include "../test-skeleton.c" -- -- --static int fd; -- -- --static void --do_prepare (void) --{ -- fd = create_temp_file ("bug-fclose1.", NULL); -- if (fd == -1) -- { -- printf ("cannot create temporary file: %m\n"); -- exit (1); -- } --} -- -- --static int --do_test (void) --{ -- static const char pattern[] = "hello world"; -- -- /* Prepare a seekable file. */ -- if (write (fd, pattern, sizeof pattern) != sizeof pattern) -- { -- printf ("cannot write pattern: %m\n"); -- return 1; -- } -- if (lseek (fd, 1, SEEK_SET) != 1) -- { -- printf ("cannot seek after write: %m\n"); -- return 1; -- } -- -- /* Create an output stream visiting the file; when it is closed, all -- other file descriptors visiting the file must see the new file -- position. */ -- int fd2 = dup (fd); -- if (fd2 < 0) -- { -- printf ("cannot duplicate descriptor for writing: %m\n"); -- return 1; -- } -- FILE *f = fdopen (fd2, "w"); -- if (f == NULL) -- { -- printf ("first fdopen failed: %m\n"); -- return 1; -- } -- if (fputc (pattern[1], f) != pattern[1]) -- { -- printf ("fputc failed: %m\n"); -- return 1; -- } -- if (fclose (f) != 0) -- { -- printf ("first fclose failed: %m\n"); -- return 1; -- } -- errno = 0; -- if (lseek (fd2, 0, SEEK_CUR) != -1) -- { -- printf ("lseek after fclose after write did not fail\n"); -- return 1; -- } -- if (errno != EBADF) -- { -- printf ("lseek after fclose after write did not fail with EBADF: %m\n"); -- return 1; -- } -- off_t o = lseek (fd, 0, SEEK_CUR); -- if (o != 2) -- { -- printf ("\ --lseek on original descriptor after first fclose returned %ld, expected 2\n", -- (long int) o); -- return 1; -- } -- -- /* Likewise for an input stream. */ -- fd2 = dup (fd); -- if (fd2 < 0) -- { -- printf ("cannot duplicate descriptor for reading: %m\n"); -- return 1; -- } -- f = fdopen (fd2, "r"); -- if (f == NULL) -- { -- printf ("second fdopen failed: %m\n"); -- return 1; -- } -- char c = fgetc (f); -- if (c != pattern[2]) -- { -- printf ("getc returned %c, expected %c\n", c, pattern[2]); -- return 1; -- } -- if (fclose (f) != 0) -- { -- printf ("second fclose failed: %m\n"); -- return 1; -- } -- errno = 0; -- if (lseek (fd2, 0, SEEK_CUR) != -1) -- { -- printf ("lseek after fclose after read did not fail\n"); -- return 1; -- } -- if (errno != EBADF) -- { -- printf ("lseek after fclose after read did not fail with EBADF: %m\n"); -- return 1; -- } -- o = lseek (fd, 0, SEEK_CUR); -- if (o != 3) -- { -- printf ("\ --lseek on original descriptor after second fclose returned %ld, expected 3\n", -- (long int) o); -- return 1; -- } -- -- return 0; --} -Index: glibc-2.16.90/libio/fileops.c -=================================================================== ---- glibc-2.16.90.orig/libio/fileops.c -+++ glibc-2.16.90/libio/fileops.c -@@ -155,21 +155,13 @@ int - _IO_new_file_close_it (fp) - _IO_FILE *fp; - { -+ int write_status; - if (!_IO_file_is_open (fp)) - return EOF; - -- int write_status; -- if (_IO_in_put_mode (fp)) -+ if ((fp->_flags & _IO_NO_WRITES) == 0 -+ && (fp->_flags & _IO_CURRENTLY_PUTTING) != 0) - write_status = _IO_do_flush (fp); -- else if (fp->_offset != _IO_pos_BAD && fp->_IO_read_base != NULL -- && !_IO_in_backup (fp)) -- { -- off64_t o = _IO_SEEKOFF (fp, 0, _IO_seek_cur, 0); -- if (o == WEOF) -- write_status = EOF; -- else -- write_status = _IO_SYSSEEK (fp, o, SEEK_SET) < 0 ? EOF : 0; -- } - else - write_status = 0; - diff --git a/glibc.changes b/glibc.changes index d1d64f0..62c338c 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de + +- Update to 56e7d3ad5c2f: + * Bugfixes + * Fix warnings building glibc +- Remove upstreamed patch glibc-revert-fseek-on-fclose.diff + +------------------------------------------------------------------- +Mon Dec 3 15:45:08 UTC 2012 - aj@suse.de + +- Remove nosegneg i686 library, it's only used for a 32-bit Xen + hypervisor (not for a 32-bit guest running under 64-bit hypervisor), + and since the 32-bit Xen hypervisor is not part of openSUSE anymore, + it is unneeded (bnc#789607). + +------------------------------------------------------------------- +Mon Dec 3 14:47:22 UTC 2012 - schwab@suse.de + +- Suppress error message from systemctl in %post -n nscd (bnc#792333) + ------------------------------------------------------------------- Sat Dec 1 08:55:05 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 3369737..27ea49a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -123,7 +123,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.16.90 Release: 0 %define glibc_major_version 2.16.90 -%define git_id f638872ab422 +%define git_id 56e7d3ad5c2f Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -215,8 +215,7 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de -Patch201: glibc-revert-fseek-on-fclose.diff +# None ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -451,8 +450,6 @@ rm nscd/s-stamp %patch102 -p1 %patch103 -p1 -%patch201 -p1 - %patch300 -p1 %patch301 -p1 %patch302 -p1 @@ -559,11 +556,6 @@ add_ons=",libidn" %ifarch hppa BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" %endif -%ifarch i386 i486 i586 -# Add this to avoid performance penalty on Xen for 32-bit x86 -# Note on i686 we build a special library - BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" -%endif # Add flags for all plattforms except AXP %ifnarch alpha BuildFlags="$BuildFlags -g" @@ -634,9 +626,6 @@ configure_and_build_glibc() { # Build base glibc # configure_and_build_glibc base "$BuildFlags" "$add_ons" -%ifarch i686 - configure_and_build_glibc nosegneg "$BuildFlags -mno-tls-direct-seg-refs" "$add_ons" -%endif %else # # Build POWER-optimized glibc @@ -785,10 +774,6 @@ do done cd .. } -# Install i686 glibc for Xen -%ifarch i686 -install_optimized_variant nosegneg i686/nosegneg "../.." -%endif # Install power-optimized glibc %if %{optimize_power} @@ -994,8 +979,8 @@ done %service_add_post nscd.service mkdir -p /var/run/nscd # Previously we had nscd.socket, remove it -test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket || : -test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket || : +test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : +test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : # Hard removal in case the above did not work rm -f /etc/systemd/system/sockets.target.wants/nscd.socket exit 0 @@ -1004,6 +989,7 @@ exit 0 %service_del_postun nscd.service exit 0 +%files ####################################################################### ### ### FILES @@ -1011,8 +997,6 @@ exit 0 ####################################################################### # glibc - -%files %defattr(-,root,root) %doc LICENSES %config(noreplace) /etc/bindresvport.blacklist @@ -1114,10 +1098,6 @@ exit 0 /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 -%ifarch i686 -%dir %attr(0755,root,root) /%{_lib}/i686 -%{optimized_libs i686/nosegneg} -%endif %if %{optimize_power} %if %{powerpc_optimize_cpu_power4} %{optimized_libs power4} From 66ac5d709f60827abe51d0d63a0a482a70c868af6422dd68ae13466c05f0cb47 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 14 Dec 2012 05:54:00 +0000 Subject: [PATCH 125/204] Accepting request 145179 from Base:System Update to current git. (forwarded request 145178 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/145179 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=131 --- glibc-2.16.90-4641d57e1e00.tar.xz | 3 + glibc-2.16.90-56e7d3ad5c2f.tar.xz | 3 - glibc.changes | 16 + glibc.spec | 8 +- nscd-short-write.patch | 178 ++++++++++ pthread-cond-timedwait-i486.patch | 526 ++++++++++++++++++++++++++++++ 6 files changed, 730 insertions(+), 4 deletions(-) create mode 100644 glibc-2.16.90-4641d57e1e00.tar.xz delete mode 100644 glibc-2.16.90-56e7d3ad5c2f.tar.xz create mode 100644 nscd-short-write.patch create mode 100644 pthread-cond-timedwait-i486.patch diff --git a/glibc-2.16.90-4641d57e1e00.tar.xz b/glibc-2.16.90-4641d57e1e00.tar.xz new file mode 100644 index 0000000..7576275 --- /dev/null +++ b/glibc-2.16.90-4641d57e1e00.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71986496690c30d7b37cd140bda4e5a471c5c32d2ade05348fe6eacee1de235e +size 11130856 diff --git a/glibc-2.16.90-56e7d3ad5c2f.tar.xz b/glibc-2.16.90-56e7d3ad5c2f.tar.xz deleted file mode 100644 index 220fd19..0000000 --- a/glibc-2.16.90-56e7d3ad5c2f.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3bbe236fe37232839b0232f826b4cbadd09d688cabc63530a6d124a9039d2378 -size 11132824 diff --git a/glibc.changes b/glibc.changes index 62c338c..8f4469e 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Wed Dec 12 08:32:53 UTC 2012 - aj@suse.de + +- Update to 4641d57e1e00: + * Updated translations + * bug fixes + +------------------------------------------------------------------- +Mon Dec 10 13:08:01 UTC 2012 - schwab@suse.de + +- pthread-cond-timedwait-i486.patch: + Extend i486 pthread_cond_timedwait to use futex syscall with absolute + timeout +- nscd-short-write.patch: + Properly check for short writes when sending the response in nscd + ------------------------------------------------------------------- Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 27ea49a..90eabab 100644 --- a/glibc.spec +++ b/glibc.spec @@ -123,7 +123,7 @@ Provides: ld-linux.so.3(GLIBC_2.4) Version: 2.16.90 Release: 0 %define glibc_major_version 2.16.90 -%define git_id 56e7d3ad5c2f +%define git_id 4641d57e1e00 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -240,6 +240,10 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch +# PATCH-FIX-OPENSUSE Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout +Patch2009: pthread-cond-timedwait-i486.patch +# PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd +Patch2010: nscd-short-write.patch %description The GNU C Library provides the most important standard libraries used @@ -463,6 +467,8 @@ rm nscd/s-stamp # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 +%patch2009 -p1 +%patch2010 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! diff --git a/nscd-short-write.patch b/nscd-short-write.patch new file mode 100644 index 0000000..6734e4a --- /dev/null +++ b/nscd-short-write.patch @@ -0,0 +1,178 @@ +From 5a7b70c87c5ba03a122db0372e87ecb550ee4b38 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Tue, 4 Dec 2012 16:14:13 +0100 +Subject: [PATCH] Properly check for short writes when sending the response in + nscd + + * nscd/grpcache.c (cache_addgr): Properly check for short write. + * nscd/initgrcache.c (addinitgroupsX): Likewise. + * nscd/pwdcache.c (cache_addpw): Likewise. + * nscd/servicescache.c (cache_addserv): Likewise. Don't write + more than recsize. +--- + nscd/grpcache.c | 6 +++++- + nscd/initgrcache.c | 7 ++++++- + nscd/pwdcache.c | 8 ++++++-- + nscd/servicescache.c | 12 ++++++++---- + 4 files changed, 25 insertions(+), 8 deletions(-) + +diff --git a/nscd/grpcache.c b/nscd/grpcache.c +index f0dad4d..696162f 100644 +--- a/nscd/grpcache.c ++++ b/nscd/grpcache.c +@@ -75,6 +75,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, + const void *key, struct group *grp, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) + { ++ bool all_written = true; + ssize_t total; + ssize_t written; + time_t t = time (NULL); +@@ -342,6 +343,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, + # endif + #endif + written = writeall (fd, &dataset->resp, dataset->head.recsize); ++ ++ if (written != dataset->head.recsize) ++ all_written = false; + } + + /* Add the record to the database. But only if it has not been +@@ -401,7 +405,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, + } + } + +- if (__builtin_expect (written != total, 0) && debug_level > 0) ++ if (__builtin_expect (!all_written, 0) && debug_level > 0) + { + char buf[256]; + dbg_log (_("short write in %s: %s"), __FUNCTION__, +diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c +index 255b121..13ee86e 100644 +--- a/nscd/initgrcache.c ++++ b/nscd/initgrcache.c +@@ -171,10 +171,12 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + nip = nip->next; + } + ++ bool all_written; + ssize_t total; + ssize_t written; + time_t timeout; + out: ++ all_written = true; + timeout = MAX_TIMEOUT_VALUE; + if (!any_success) + { +@@ -379,6 +381,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + # endif + #endif + written = writeall (fd, &dataset->resp, dataset->head.recsize); ++ ++ if (written != dataset->head.recsize) ++ all_written = false; + } + + +@@ -405,7 +410,7 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + + free (groups); + +- if (__builtin_expect (written != total, 0) && debug_level > 0) ++ if (__builtin_expect (!all_written, 0) && debug_level > 0) + { + char buf[256]; + dbg_log (_("short write in %s: %s"), __FUNCTION__, +diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c +index a8ea407..d6b91ef 100644 +--- a/nscd/pwdcache.c ++++ b/nscd/pwdcache.c +@@ -81,6 +81,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, + const void *key, struct passwd *pwd, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) + { ++ bool all_written = true; + ssize_t total; + ssize_t written; + time_t t = time (NULL); +@@ -306,7 +307,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, + + db->head->data_size)); + written = sendfileall (fd, db->wr_fd, + (char *) &dataset->resp +- - (char *) db->head, dataset->head.recsize ); ++ - (char *) db->head, dataset->head.recsize); + # ifndef __ASSUME_SENDFILE + if (written == -1 && errno == ENOSYS) + goto use_write; +@@ -318,6 +319,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, + # endif + #endif + written = writeall (fd, &dataset->resp, dataset->head.recsize); ++ ++ if (written != dataset->head.recsize) ++ all_written = false; + } + + +@@ -377,7 +381,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, + } + } + +- if (__builtin_expect (written != total, 0) && debug_level > 0) ++ if (__builtin_expect (!all_written, 0) && debug_level > 0) + { + char buf[256]; + dbg_log (_("short write in %s: %s"), __FUNCTION__, +diff --git a/nscd/servicescache.c b/nscd/servicescache.c +index 0e7520d..917daa4 100644 +--- a/nscd/servicescache.c ++++ b/nscd/servicescache.c +@@ -65,6 +65,7 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, + const void *key, struct servent *serv, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) + { ++ bool all_written = true; + ssize_t total; + ssize_t written; + time_t t = time (NULL); +@@ -290,14 +291,14 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +- assert ((char *) &dataset->resp - (char *) db->head ++ assert ((char *) dataset - (char *) db->head + + total + <= (sizeof (struct database_pers_head) + + db->head->module * sizeof (ref_t) + + db->head->data_size)); + written = sendfileall (fd, db->wr_fd, + (char *) &dataset->resp +- - (char *) db->head, total); ++ - (char *) db->head, dataset->head.recsize); + # ifndef __ASSUME_SENDFILE + if (written == -1 && errno == ENOSYS) + goto use_write; +@@ -308,7 +309,10 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, + use_write: + # endif + #endif +- written = writeall (fd, &dataset->resp, total); ++ written = writeall (fd, &dataset->resp, dataset->head.recsize); ++ ++ if (written != dataset->head.recsize) ++ all_written = false; + } + + /* Add the record to the database. But only if it has not been +@@ -332,7 +336,7 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, + } + } + +- if (__builtin_expect (written != total, 0) && debug_level > 0) ++ if (__builtin_expect (!all_written, 0) && debug_level > 0) + { + char buf[256]; + dbg_log (_("short write in %s: %s"), __FUNCTION__, +-- +1.8.0.1 + diff --git a/pthread-cond-timedwait-i486.patch b/pthread-cond-timedwait-i486.patch new file mode 100644 index 0000000..1295d93 --- /dev/null +++ b/pthread-cond-timedwait-i486.patch @@ -0,0 +1,526 @@ +From b8a72d0c4ca74e52ea06fa4e56489499489ec158 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Thu, 22 Nov 2012 12:57:37 +0100 +Subject: [PATCH] Extend i486 pthread_cond_timedwait to use futex syscall with + absolute timeout + + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S + (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to + directly use absolute timeout. +--- + .../sysv/linux/i386/i486/pthread_cond_timedwait.S | 381 +++++++++++++++++---- + 1 file changed, 315 insertions(+), 66 deletions(-) + +diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +index 6011f69..b9dbe6b 100644 +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +@@ -66,6 +66,34 @@ __pthread_cond_timedwait: + movl $EINVAL, %eax + jae 18f + ++ /* Stack frame: ++ ++ esp + 32 ++ +--------------------------+ ++ esp + 24 | timeout value | ++ +--------------------------+ ++ esp + 20 | futex pointer | ++ +--------------------------+ ++ esp + 16 | pi-requeued flag | ++ +--------------------------+ ++ esp + 12 | old broadcast_seq value | ++ +--------------------------+ ++ esp + 4 | old wake_seq value | ++ +--------------------------+ ++ esp + 0 | old cancellation mode | ++ +--------------------------+ ++ */ ++ ++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME ++# ifdef PIC ++ LOAD_PIC_REG (cx) ++ cmpl $0, __have_futex_clock_realtime@GOTOFF(%ecx) ++# else ++ cmpl $0, __have_futex_clock_realtime ++# endif ++ je .Lreltmo ++#endif ++ + /* Get internal lock. */ + movl $1, %edx + xorl %eax, %eax +@@ -96,7 +124,11 @@ __pthread_cond_timedwait: + addl $1, cond_futex(%ebx) + addl $(1 << nwaiters_shift), cond_nwaiters(%ebx) + +-#define FRAME_SIZE 32 ++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME ++# define FRAME_SIZE 24 ++#else ++# define FRAME_SIZE 32 ++#endif + subl $FRAME_SIZE, %esp + cfi_adjust_cfa_offset(FRAME_SIZE) + cfi_remember_state +@@ -105,60 +137,19 @@ __pthread_cond_timedwait: + movl wakeup_seq(%ebx), %edi + movl wakeup_seq+4(%ebx), %edx + movl broadcast_seq(%ebx), %eax +- movl %edi, 12(%esp) +- movl %edx, 16(%esp) +- movl %eax, 20(%esp) ++ movl %edi, 4(%esp) ++ movl %edx, 8(%esp) ++ movl %eax, 12(%esp) + + /* Reset the pi-requeued flag. */ +-8: movl $0, 24(%esp) +- /* Get the current time. */ +- movl %ebx, %edx +-#ifdef __NR_clock_gettime +- /* Get the clock number. */ +- movl cond_nwaiters(%ebx), %ebx +- andl $((1 << nwaiters_shift) - 1), %ebx +- /* Only clocks 0 and 1 are allowed so far. Both are handled in the +- kernel. */ +- leal 4(%esp), %ecx +- movl $__NR_clock_gettime, %eax +- ENTER_KERNEL +- movl %edx, %ebx +- +- /* Compute relative timeout. */ +- movl (%ebp), %ecx +- movl 4(%ebp), %edx +- subl 4(%esp), %ecx +- subl 8(%esp), %edx +-#else +- /* Get the current time. */ +- leal 4(%esp), %ebx +- xorl %ecx, %ecx +- movl $__NR_gettimeofday, %eax +- ENTER_KERNEL +- movl %edx, %ebx ++ movl $0, 16(%esp) + +- /* Compute relative timeout. */ +- movl 8(%esp), %eax +- movl $1000, %edx +- mul %edx /* Milli seconds to nano seconds. */ +- movl (%ebp), %ecx +- movl 4(%ebp), %edx +- subl 4(%esp), %ecx +- subl %eax, %edx +-#endif +- jns 12f +- addl $1000000000, %edx +- subl $1, %ecx +-12: testl %ecx, %ecx ++ cmpl $0, (%ebp) + movl $-ETIMEDOUT, %esi + js 6f + +- /* Store relative timeout. */ +-21: movl %ecx, 4(%esp) +- movl %edx, 8(%esp) +- +- movl cond_futex(%ebx), %edi +- movl %edi, 28(%esp) ++8: movl cond_futex(%ebx), %edi ++ movl %edi, 20(%esp) + + /* Unlock. */ + LOCK +@@ -173,6 +164,7 @@ __pthread_cond_timedwait: + 4: call __pthread_enable_asynccancel + movl %eax, (%esp) + ++ leal (%ebp), %esi + #if FUTEX_PRIVATE_FLAG > 255 + xorl %ecx, %ecx + #endif +@@ -196,9 +188,7 @@ __pthread_cond_timedwait: + jne 42f + orl $FUTEX_CLOCK_REALTIME, %ecx + +- /* Requeue-PI uses absolute timeout */ +-42: leal (%ebp), %esi +- movl 28(%esp), %edx ++42: movl 20(%esp), %edx + addl $cond_futex, %ebx + .Ladd_cond_futex_pi: + movl $SYS_futex, %eax +@@ -209,12 +199,12 @@ __pthread_cond_timedwait: + /* Set the pi-requeued flag only if the kernel has returned 0. The + kernel does not hold the mutex on ETIMEDOUT or any other error. */ + cmpl $0, %eax +- sete 24(%esp) ++ sete 16(%esp) + je 41f + + /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns + successfully, it has already locked the mutex for us and the +- pi_flag (24(%esp)) is set to denote that fact. However, if another ++ pi_flag (16(%esp)) is set to denote that fact. However, if another + thread changed the futex value before we entered the wait, the + syscall may return an EAGAIN and the mutex is not locked. We go + ahead with a success anyway since later we look at the pi_flag to +@@ -234,22 +224,28 @@ __pthread_cond_timedwait: + xorl %ecx, %ecx + + 40: subl $1, %ecx ++ movl $0, 16(%esp) + #ifdef __ASSUME_PRIVATE_FUTEX + andl $FUTEX_PRIVATE_FLAG, %ecx + #else + andl %gs:PRIVATE_FUTEX, %ecx + #endif +-#if FUTEX_WAIT != 0 +- addl $FUTEX_WAIT, %ecx +-#endif +- leal 4(%esp), %esi +- movl 28(%esp), %edx ++ addl $FUTEX_WAIT_BITSET, %ecx ++ /* The following only works like this because we only support ++ two clocks, represented using a single bit. */ ++ testl $1, cond_nwaiters(%ebx) ++ jne 30f ++ orl $FUTEX_CLOCK_REALTIME, %ecx ++30: ++ movl 20(%esp), %edx ++ movl $0xffffffff, %ebp + addl $cond_futex, %ebx + .Ladd_cond_futex: + movl $SYS_futex, %eax + ENTER_KERNEL + subl $cond_futex, %ebx + .Lsub_cond_futex: ++ movl 28+FRAME_SIZE(%esp), %ebp + movl %eax, %esi + + 41: movl (%esp), %eax +@@ -268,7 +264,7 @@ __pthread_cond_timedwait: + jnz 5f + + 6: movl broadcast_seq(%ebx), %eax +- cmpl 20(%esp), %eax ++ cmpl 12(%esp), %eax + jne 23f + + movl woken_seq(%ebx), %eax +@@ -277,9 +273,9 @@ __pthread_cond_timedwait: + movl wakeup_seq(%ebx), %edi + movl wakeup_seq+4(%ebx), %edx + +- cmpl 16(%esp), %edx ++ cmpl 8(%esp), %edx + jne 7f +- cmpl 12(%esp), %edi ++ cmpl 4(%esp), %edi + je 15f + + 7: cmpl %ecx, %edx +@@ -292,7 +288,7 @@ __pthread_cond_timedwait: + + /* We need to go back to futex_wait. If we're using requeue_pi, then + release the mutex we had acquired and go back. */ +- movl 24(%esp), %edx ++ movl 16(%esp), %edx + test %edx, %edx + jz 8b + +@@ -357,13 +353,13 @@ __pthread_cond_timedwait: + + 11: movl 24+FRAME_SIZE(%esp), %eax + /* With requeue_pi, the mutex lock is held in the kernel. */ +- movl 24(%esp), %ecx ++ movl 16(%esp), %ecx + testl %ecx, %ecx + jnz 27f + + call __pthread_mutex_cond_lock + 26: addl $FRAME_SIZE, %esp +- cfi_adjust_cfa_offset(-FRAME_SIZE); ++ cfi_adjust_cfa_offset(-FRAME_SIZE) + + /* We return the result of the mutex_lock operation if it failed. */ + testl %eax, %eax +@@ -509,6 +505,245 @@ __pthread_cond_timedwait: + #endif + call __lll_unlock_wake + jmp 11b ++ cfi_adjust_cfa_offset(-FRAME_SIZE) ++ ++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME ++.Lreltmo: ++ /* Get internal lock. */ ++ movl $1, %edx ++ xorl %eax, %eax ++ LOCK ++# if cond_lock == 0 ++ cmpxchgl %edx, (%ebx) ++# else ++ cmpxchgl %edx, cond_lock(%ebx) ++# endif ++ jnz 101f ++ ++ /* Store the reference to the mutex. If there is already a ++ different value in there this is a bad user bug. */ ++102: cmpl $-1, dep_mutex(%ebx) ++ movl 24(%esp), %eax ++ je 117f ++ movl %eax, dep_mutex(%ebx) ++ ++ /* Unlock the mutex. */ ++117: xorl %edx, %edx ++ call __pthread_mutex_unlock_usercnt ++ ++ testl %eax, %eax ++ jne 16b ++ ++ addl $1, total_seq(%ebx) ++ adcl $0, total_seq+4(%ebx) ++ addl $1, cond_futex(%ebx) ++ addl $(1 << nwaiters_shift), cond_nwaiters(%ebx) ++ ++ subl $FRAME_SIZE, %esp ++ cfi_adjust_cfa_offset(FRAME_SIZE) ++ ++ /* Get and store current wakeup_seq value. */ ++ movl wakeup_seq(%ebx), %edi ++ movl wakeup_seq+4(%ebx), %edx ++ movl broadcast_seq(%ebx), %eax ++ movl %edi, 4(%esp) ++ movl %edx, 8(%esp) ++ movl %eax, 12(%esp) ++ ++ /* Reset the pi-requeued flag. */ ++ movl $0, 16(%esp) ++ ++ /* Get the current time. */ ++108: movl %ebx, %edx ++# ifdef __NR_clock_gettime ++ /* Get the clock number. */ ++ movl cond_nwaiters(%ebx), %ebx ++ andl $((1 << nwaiters_shift) - 1), %ebx ++ /* Only clocks 0 and 1 are allowed so far. Both are handled in the ++ kernel. */ ++ leal 24(%esp), %ecx ++ movl $__NR_clock_gettime, %eax ++ ENTER_KERNEL ++ movl %edx, %ebx ++ ++ /* Compute relative timeout. */ ++ movl (%ebp), %ecx ++ movl 4(%ebp), %edx ++ subl 24(%esp), %ecx ++ subl 28(%esp), %edx ++# else ++ /* Get the current time. */ ++ leal 24(%esp), %ebx ++ xorl %ecx, %ecx ++ movl $__NR_gettimeofday, %eax ++ ENTER_KERNEL ++ movl %edx, %ebx ++ ++ /* Compute relative timeout. */ ++ movl 28(%esp), %eax ++ movl $1000, %edx ++ mul %edx /* Milli seconds to nano seconds. */ ++ movl (%ebp), %ecx ++ movl 4(%ebp), %edx ++ subl 24(%esp), %ecx ++ subl %eax, %edx ++# endif ++ jns 112f ++ addl $1000000000, %edx ++ subl $1, %ecx ++112: testl %ecx, %ecx ++ movl $-ETIMEDOUT, %esi ++ js 106f ++ ++ /* Store relative timeout. */ ++121: movl %ecx, 24(%esp) ++ movl %edx, 28(%esp) ++ ++ movl cond_futex(%ebx), %edi ++ movl %edi, 20(%esp) ++ ++ /* Unlock. */ ++ LOCK ++# if cond_lock == 0 ++ subl $1, (%ebx) ++# else ++ subl $1, cond_lock(%ebx) ++# endif ++ jne 103f ++ ++.LcleanupSTART2: ++104: call __pthread_enable_asynccancel ++ movl %eax, (%esp) ++ ++ leal 24(%esp), %esi ++# if FUTEX_PRIVATE_FLAG > 255 ++ xorl %ecx, %ecx ++# endif ++ cmpl $-1, dep_mutex(%ebx) ++ sete %cl ++ subl $1, %ecx ++# ifdef __ASSUME_PRIVATE_FUTEX ++ andl $FUTEX_PRIVATE_FLAG, %ecx ++# else ++ andl %gs:PRIVATE_FUTEX, %ecx ++# endif ++# if FUTEX_WAIT != 0 ++ addl $FUTEX_WAIT, %ecx ++# endif ++ movl 20(%esp), %edx ++ addl $cond_futex, %ebx ++.Ladd_cond_futex2: ++ movl $SYS_futex, %eax ++ ENTER_KERNEL ++ subl $cond_futex, %ebx ++.Lsub_cond_futex2: ++ movl %eax, %esi ++ ++141: movl (%esp), %eax ++ call __pthread_disable_asynccancel ++.LcleanupEND2: ++ ++ ++ /* Lock. */ ++ movl $1, %edx ++ xorl %eax, %eax ++ LOCK ++# if cond_lock == 0 ++ cmpxchgl %edx, (%ebx) ++# else ++ cmpxchgl %edx, cond_lock(%ebx) ++# endif ++ jnz 105f ++ ++106: movl broadcast_seq(%ebx), %eax ++ cmpl 12(%esp), %eax ++ jne 23b ++ ++ movl woken_seq(%ebx), %eax ++ movl woken_seq+4(%ebx), %ecx ++ ++ movl wakeup_seq(%ebx), %edi ++ movl wakeup_seq+4(%ebx), %edx ++ ++ cmpl 8(%esp), %edx ++ jne 107f ++ cmpl 4(%esp), %edi ++ je 115f ++ ++107: cmpl %ecx, %edx ++ jne 9b ++ cmp %eax, %edi ++ jne 9b ++ ++115: cmpl $-ETIMEDOUT, %esi ++ je 28b ++ ++ jmp 8b ++ ++ cfi_adjust_cfa_offset(-FRAME_SIZE) ++ /* Initial locking failed. */ ++101: ++# 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 ++ jmp 102b ++ ++ cfi_adjust_cfa_offset(FRAME_SIZE) ++ ++ /* Unlock in loop requires wakeup. */ ++103: ++# 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 ++ jmp 104b ++ ++ /* Locking in loop failed. */ ++105: ++# 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 ++ jmp 106b ++ cfi_adjust_cfa_offset(-FRAME_SIZE) ++#endif + + .size __pthread_cond_timedwait, .-__pthread_cond_timedwait + versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait, +@@ -552,7 +787,7 @@ __condvar_tw_cleanup: + call __lll_lock_wait + + 1: movl broadcast_seq(%ebx), %eax +- cmpl 20(%esp), %eax ++ cmpl 12(%esp), %eax + jne 3f + + /* We increment the wakeup_seq counter only if it is lower than +@@ -706,6 +941,20 @@ __condvar_tw_cleanup: + .long .LcleanupEND-.Lsub_cond_futex + .long __condvar_tw_cleanup-.LSTARTCODE + .uleb128 0 ++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME ++ .long .LcleanupSTART2-.LSTARTCODE ++ .long .Ladd_cond_futex2-.LcleanupSTART2 ++ .long __condvar_tw_cleanup-.LSTARTCODE ++ .uleb128 0 ++ .long .Ladd_cond_futex2-.LSTARTCODE ++ .long .Lsub_cond_futex2-.Ladd_cond_futex2 ++ .long __condvar_tw_cleanup2-.LSTARTCODE ++ .uleb128 0 ++ .long .Lsub_cond_futex2-.LSTARTCODE ++ .long .LcleanupEND2-.Lsub_cond_futex2 ++ .long __condvar_tw_cleanup-.LSTARTCODE ++ .uleb128 0 ++#endif + .long .LcallUR-.LSTARTCODE + .long .LENDCODE-.LcallUR + .long 0 +-- +1.8.0.1 + From 7bac81a61b702a5ed186c7d2fac436979f95a5d565944031a274353724693005 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 19 Dec 2012 13:47:43 +0000 Subject: [PATCH 126/204] Accepting request 145659 from Base:System Split off glibc-testsuite package (forwarded request 145658 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/145659 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=132 --- glibc-testsuite.changes | 6567 +++++++++++++++++++++++++++++++++++++++ glibc-testsuite.spec | 1249 ++++++++ glibc.changes | 10 + glibc.spec | 74 +- pre_checkin.sh | 7 + 5 files changed, 7861 insertions(+), 46 deletions(-) create mode 100644 glibc-testsuite.changes create mode 100644 glibc-testsuite.spec create mode 100644 pre_checkin.sh diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes new file mode 100644 index 0000000..3c45cba --- /dev/null +++ b/glibc-testsuite.changes @@ -0,0 +1,6567 @@ +------------------------------------------------------------------- +Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de + +- Split off glibc-testsuite package + +------------------------------------------------------------------- +Fri Dec 14 19:31:45 UTC 2012 - aj@suse.de + +- Build profile and locale packages for i686 as well. + +------------------------------------------------------------------- +Wed Dec 12 08:32:53 UTC 2012 - aj@suse.de + +- Update to 4641d57e1e00: + * Updated translations + * bug fixes + +------------------------------------------------------------------- +Mon Dec 10 13:08:01 UTC 2012 - schwab@suse.de + +- pthread-cond-timedwait-i486.patch: + Extend i486 pthread_cond_timedwait to use futex syscall with absolute + timeout +- nscd-short-write.patch: + Properly check for short writes when sending the response in nscd + +------------------------------------------------------------------- +Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de + +- Update to 56e7d3ad5c2f: + * Bugfixes + * Fix warnings building glibc +- Remove upstreamed patch glibc-revert-fseek-on-fclose.diff + +------------------------------------------------------------------- +Mon Dec 3 15:45:08 UTC 2012 - aj@suse.de + +- Remove nosegneg i686 library, it's only used for a 32-bit Xen + hypervisor (not for a 32-bit guest running under 64-bit hypervisor), + and since the 32-bit Xen hypervisor is not part of openSUSE anymore, + it is unneeded (bnc#789607). + +------------------------------------------------------------------- +Mon Dec 3 14:47:22 UTC 2012 - schwab@suse.de + +- Suppress error message from systemctl in %post -n nscd (bnc#792333) + +------------------------------------------------------------------- +Sat Dec 1 08:55:05 UTC 2012 - aj@suse.de + +- Update to f638872ab422: + Fix regression introduced with last update in sunrpc code + Fix assertion failure in resolver + Bug fixes +- Remove upstreamed patch glibc-resolv-assert.diff + +------------------------------------------------------------------- +Fri Nov 30 09:15:15 UTC 2012 - aj@suse.de + +- Update to c93ec1f091ec: + Warn about unsupported DT_FLAGS_1 flags + Add Interlingua locale + Bug fixes + +------------------------------------------------------------------- +Thu Nov 29 14:30:11 UTC 2012 - schwab@suse.de + +- Remove obsolete patches: + glibc-strict-aliasing.diff + nscd-avoid-gcc-warning.diff + +------------------------------------------------------------------- +Wed Nov 28 15:48:32 UTC 2012 - aj@suse.de + +- Update to e3c6aa3a5848: + * Fix powerpc64 make abi check failure + * bugfixes +- Install nscd.socket to new /usr location + +------------------------------------------------------------------- +Wed Nov 28 09:31:11 UTC 2012 - schwab@suse.de + +- Reenable multi-arch on ppc ppc64 + +------------------------------------------------------------------- +Tue Nov 27 21:34:15 UTC 2012 - aj@suse.de + +- Update to de2fd463b1c0: + Various bugfixes including: + * Fix fwrite bug causing grep etc testsuite failure + * sotruss: fix argument parsing + * Check supported DF_1_XXX bits + Add new locales niu_NU and niu_NZ +- Refresh patch glibc-revert-fseek-on-fclose.diff + +------------------------------------------------------------------- +Sat Nov 24 13:48:40 UTC 2012 - aj@suse.de + +- Remove nscd init script, use systemd files. + +------------------------------------------------------------------- +Fri Nov 23 14:33:37 UTC 2012 - matz@suse.com + +- Fix getaddrinfo-ipv6-sanity.diff to apply again. + +------------------------------------------------------------------- +Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de + +- Update to f59cba71d848: + * Various bug fixes + * Add new locales szl_PL, ayc_PE, nhn_MX, doi_IN, mni_IN, sat_IN. + * Remove patch glibc-compiled-binaries.diff since getconf can not be + cross-compiled + * Refresh patch glibc-2.3.90-bindresvport.blacklist.diff + +------------------------------------------------------------------- +Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de + +- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c): + * Upstream changes: + + ports is now part of main tarball + + Add port to ARM AArch64 + + New function secure_getenv + + Systemtap static probes + + The `clock_*' suite of functions (declared in ) is now + available directly in the main C library. + + The `crypt' function now fails if passed salt bytes that violate the + specification for those values. On Linux, the `crypt' function will + consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is + enabled, and fail on encrypted strings using the MD5 or DES algorithm + when the mode is enabled. + + Optimzations and bug fixes + * remove upstream patches malloc-check-size.patch, + glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch, + pthread-cond-wait-revert.patch + * Remove now obsolete patch glibc-gai-private4.diff + * Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff, + glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff, + glibc-revert-fseek-on-fclose.diff + * Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff + and glibc-gai-private4.diff. + * Use git id instead of ChangeLog date in version output (patch glibc-version.diff) + * Enable multi-arch on all architectures that support it. + +------------------------------------------------------------------- +Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de + +- Avoid shell comment leaking into %post. + +------------------------------------------------------------------- +Thu Oct 25 07:30:04 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 c3b96f90c9c1: + - Fix missing _mcount@GLIBC_2.0 on powerpc32 (replaces + patch glibc-2.16-ppc32-mcount.patch) +- Drop patch glibc-elf-localscope.diff, fixed upstream in 2.16 + in a different way. + +------------------------------------------------------------------- +Tue Oct 9 07:15:12 UTC 2012 - aj@suse.de + +- Fix malloc_usable_size (swo#1349, bnc#745247) (patch + malloc-check-size.patch). + +- Update to current glibc 2.16 (git a5cfcf08ffaa): + * fix fma detection + * Don't parse %s format argument as multibyte string + * Use size_t instead of int for internal variables in glob + * Properly handle fencepost with MALLOC_ALIGN_MASK + +------------------------------------------------------------------- +Sat Oct 6 08:51:46 UTC 2012 - meissner@suse.com + +- make glibc-devel- require glibc- just + like glibc-devel + +------------------------------------------------------------------- +Fri Sep 28 07:47:33 UTC 2012 - aj@suse.de + +- Fix crash in relocation on sparc with bind-now (swo#14376) + (patch sparc-bind-now.patch). + +------------------------------------------------------------------- +Thu Sep 27 12:20:11 UTC 2012 - aj@suse.de + +- Fix check-abi on more architectures (bnc#780696), patch by Jan + Engelhardt (updated patch glibc-fix-check-abi.patch). + +------------------------------------------------------------------- +Tue Sep 4 11:08:53 UTC 2012 - schwab@linux-m68k.org + +- Move pt_chown to %{_libexecdir} so that baselibs can find it. +- Do create hardlinks to getconf so that baselibs use the correct binary + and getconf -v works (obsoletes patch glibc-2.8-getconf.diff). + +------------------------------------------------------------------- +Tue Aug 28 07:10:49 UTC 2012 - aj@suse.de + +- Update to da1f43196321, major changes: + * Fix strtod integer/buffer overflow (bso#14459). + * Fix segmentation fault in strncasecmp for i686. + * Translation updates + +------------------------------------------------------------------- +Tue Jul 24 08:39:30 UTC 2012 - aj@suse.de + +- Fix _mcount on PowerPC32. + +------------------------------------------------------------------- +Sat Jul 21 07:31:10 UTC 2012 - aj@suse.de + +- Enable parallel build for some more cases. + +------------------------------------------------------------------- +Fri Jul 20 17:00:00 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 release. + * update version numbers + * Documentation updates +- Update manpages from Debian, includes new man pages for + locale.1, mtrace.1, gencat.1 iconvconfig.8. +- Remove getent.1 man page, use the one from man-pages. + +------------------------------------------------------------------- +Fri Jul 20 16:42:42 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 trunk (git id 416bf844227d): + * Fix check-abi for arm + * Refresh some patches. + * remove merged patches + * mainly lots of bug fixes + * Support for ISO C11 + * full details in NEWS file + +------------------------------------------------------------------- +Fri Jul 20 15:06:49 UTC 2012 - jengelh@inai.de + +- Add commit 10f62770e115d9f (glibc-sparc-fxstatat64.diff) from + upstream to resolve rpmlint-induced packaging abort due to + (previously) "no-return-in-nonvoid" +- Add xz as explicit BuildRequires for openSUSE_12.1 + +------------------------------------------------------------------- +Thu Jul 19 23:42:46 UTC 2012 - jengelh@inai.de + +- Do package ld-linux.so.2 on SPARC as well + +------------------------------------------------------------------- +Tue Jul 17 12:22:29 UTC 2012 - aj@suse.de + +- Add makeinfo as build requires to be able to generate the info + pages. + +------------------------------------------------------------------- +Wed Jul 4 13:36:17 UTC 2012 - aj@suse.de + +- Add glibc-2.16-getaddrinfo-buffer.patch to not use a too small + buffer for dns queries on 64-bit systems (bso#14307,bso#13904). +- Fix getaddrinfo-ipv6-sanity.diff (bnc#767125). + +------------------------------------------------------------------- +Mon Jul 2 16:23:15 UTC 2012 - agraf@suse.com + +- Backport *context patch for ARM from 2.16, so we have a working libpth + +------------------------------------------------------------------- +Thu Jun 28 18:46:30 UTC 2012 - aj@suse.de + +- Remove not anymore existing nscd.socket. + +------------------------------------------------------------------- +Thu Jun 28 12:33:50 UTC 2012 - aj@suse.de + +- Update to glibc 2.15-branch (git id 725b8ee08aff): + * Fix regression in cosh (bso#14273) + +------------------------------------------------------------------- +Wed Jun 27 07:34:15 UTC 2012 - aj@suse.de + +- Testsuite is ok to fail on arm + +------------------------------------------------------------------- +Tue Jun 26 07:11:49 UTC 2012 - aj@suse.de + +- Update to glibc 2.15 branch (git id b640404bd8c9): + * Fix fmod implementation that returned NaN for some values. + * Fix strcase_cmp_l x86 multiarch implementation. + * Remove glibc-2.15-avx2.patch, merged now. + +------------------------------------------------------------------- +Thu Jun 21 11:44:59 UTC 2012 - aj@suse.de + +- Fix Bogus FP exception on underflow for exp(double) (bnc#767956) + +------------------------------------------------------------------- +Mon Jun 18 11:04:37 UTC 2012 - aj@suse.de + +- Remove nscd.socket since nscd does not support socket + activation. + +------------------------------------------------------------------- +Wed Jun 13 11:07:15 UTC 2012 - aj@suse.de + +- Build power3 libs on 32-bit PowerPC (bnc#765165). + +------------------------------------------------------------------- +Wed May 23 20:00:55 UTC 2012 - aj@suse.de + +- Update to current git of glibc 2.15 branch: + * obsoletes glibc-2.16-avx.patch, + glibc-2.16-fix-check-localplt.patch + * Fixes for math functions. + +------------------------------------------------------------------- +Wed May 23 11:51:02 UTC 2012 - aj@suse.de + +- Fix first_weekday for tr_TR locale (tr_TR.patch) + +------------------------------------------------------------------- +Wed May 16 08:37:57 UTC 2012 - schwab@linux-m68k.org + +- Fix confstr use of local buffer outside its extent + +------------------------------------------------------------------- +Wed May 9 07:30:36 UTC 2012 - aj@suse.de + +- Split out glibc-armhf-compat.patch from armhf-ld-so.patch. +- Run nscd in the foreground with systemd (glibc-nscd-foreground-patch) + +------------------------------------------------------------------- +Tue May 8 14:00:52 UTC 2012 - aj@suse.de + +- Refresh glibc-2.16-avx.patch and handle FMA4. + +------------------------------------------------------------------- +Thu May 3 11:05:36 UTC 2012 - aj@suse.de + +- Fix dynamic linker name for ARMv5. + +------------------------------------------------------------------- +Thu Apr 26 14:02:37 UTC 2012 - aj@suse.de + +- Fix mcheck (optimization problem with gcc 4.7) + +------------------------------------------------------------------- +Wed Apr 25 10:40:20 UTC 2012 - aj@suse.de + +- Also check for armv7hl. + +------------------------------------------------------------------- +Wed Apr 25 08:47:22 UTC 2012 - adrian@suse.de + +- provide old ld-linux.so.3 on armv7, not catched by find.provides + +------------------------------------------------------------------- +Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de + +- gcc 4.7 does not build crt files properly on powerpc64, backport + patch from upstream to handle this + (glibc-2.16-powerpc-initfini.patch) + +------------------------------------------------------------------- +Fri Apr 20 18:28:18 UTC 2012 - aj@suse.de + +- Disable patch x86-cpuid-level2.patch, this should be fixed in + valgrind now. + +------------------------------------------------------------------- +Thu Apr 19 11:12:43 UTC 2012 - aj@suse.de + +- Reorder patches, refresh to apply cleanly with -p1. + +------------------------------------------------------------------- +Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de + +- Build profiled libs only for base. +- Cleanup patches. +- Remove glibc-2.14-fix-ctors.patch, we have proper support in + binutils now. + +------------------------------------------------------------------- +Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de + +- The dynamic linker for armv7 hardware float is called + /lib/ld-linux-armhf.so.3. Provide symlink for old location. + +------------------------------------------------------------------- +Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de + +- Build for power4 only, don't support power3 anymore. +- Add option to build glibc a bit more quickly for testing purposes. +- Remove disabled patch glibc-revert-netlink-cache.patch. +- Start renumbering patches. + +------------------------------------------------------------------- +Mon Apr 16 14:31:38 UTC 2012 - aj@suse.de + +- Do not build locales and profile for i686 since we only ship + the base and glibc-devel packages. + +------------------------------------------------------------------- +Fri Apr 13 09:35:49 UTC 2012 - aj@suse.de + +- Fix check-abi to succeed. +- Use feof_unlocked in glibc-2.3.90-bindresvport.blacklist.diff. +- Make x86 to be elf/check-localplt clean again +- Refresh some patches to apply without fuzz. + +------------------------------------------------------------------- +Fri Apr 6 09:19:11 UTC 2012 - aj@suse.de + +- Disable building with as-needed since it breaks glibc + (testsuite will fail, even if testsuite does not use as-needed) + +------------------------------------------------------------------- +Thu Apr 5 18:48:06 UTC 2012 - aj@suse.de + +- Another fix for dynamic linking. + +------------------------------------------------------------------- +Thu Apr 5 18:22:36 UTC 2012 - aj@suse.de + +- Properly fix dl_lookup_x crash (glibc-fix-noload.patch), disable + glibc-fix-lookup-crash.patch. + +------------------------------------------------------------------- +Mon Apr 2 09:30:24 UTC 2012 - aj@suse.de + +- Fix building on Armv5 (glibc-add-arm-dependency-libmemusage.patch) + +------------------------------------------------------------------- +Thu Mar 29 07:51:43 UTC 2012 - aj@suse.de + +- Fix crash when nscd is not running (bnc#741021) properly + and disable patch glibc-revert-netlink-cache.patch + +------------------------------------------------------------------- +Fri Mar 23 11:07:32 UTC 2012 - aj@suse.de + +- Fix path for nss_db (bnc#753657). + +------------------------------------------------------------------- +Thu Mar 22 09:41:48 UTC 2012 - aj@suse.de + +- Fix LD_PROFILE invocation. + +------------------------------------------------------------------- +Wed Mar 21 08:45:12 UTC 2012 - aj@suse.de + +- Fix cycle detection in loading of dynamic objects. + +------------------------------------------------------------------- +Wed Mar 14 08:26:52 UTC 2012 - aj@suse.de + +- Update getaddrinfo-ipv6-sanity.diff (bnc#684534). + +------------------------------------------------------------------- +Fri Mar 2 17:01:55 UTC 2012 - aj@suse.de + +- vfprintf: validate nargs and maybe allocate from heap (bnc#747768) + +------------------------------------------------------------------- +Tue Jan 31 13:20:37 UTC 2012 - aj@suse.de + +- Fix checks for AVX (patch glibc-2.16-avx.patch) + +------------------------------------------------------------------- +Tue Jan 31 09:44:07 UTC 2012 - aj@suse.de + +- Use Linux 2.6.32 on x86_64 as oldest supported kernel + +------------------------------------------------------------------- +Tue Jan 31 08:57:15 UTC 2012 - aj@suse.de + +- Fix relocation ordering to fix ifunc crash (bnc#740109). + +------------------------------------------------------------------- +Sun Jan 29 22:47:18 CET 2012 - dmueller@suse.de + +- set abi back to gnueabi for ARM (regression from Jan 12) + +------------------------------------------------------------------- +Wed Jan 18 09:29:24 UTC 2012 - aj@suse.de + +- Update license strings in spec file. + +------------------------------------------------------------------- +Mon Jan 16 13:19:43 UTC 2012 - aj@suse.de + +- Split up new subpackage glibc-extra and move makedb with its + dependency on libselinux to it. (bnc#741525) +- Use lua script for verifyscript to not have a dependency on bash + +------------------------------------------------------------------- +Thu Jan 12 15:42:36 UTC 2012 - aj@suse.de + +- Disable netlink caching (bnc#741021). + +------------------------------------------------------------------- +Thu Jan 12 11:01:41 UTC 2012 - aj@suse.de + +- Use _target_cpu instead of _build and _host. This makes the + i686 library really build for i686. + +------------------------------------------------------------------- +Tue Jan 10 12:31:14 UTC 2012 - aj@suse.de + +- Remove all math ifuncs on x86-64. + +------------------------------------------------------------------- +Tue Jan 10 09:53:58 UTC 2012 - aj@suse.de + +- Remove math ifuncs that cause crashes in apache2 and + gdk-pixbuf-query-loaders-64 (bnc#740109) for now + (glibc-2.15-math64crash.patch). +- nscd needs the same glibc version, add require. + +------------------------------------------------------------------- +Mon Jan 9 08:17:08 UTC 2012 - aj@suse.de + +- Fix realloc usage in vfscanf (glibc-2.16-scanf.patch) +- Fix getcontext on powerpc 32-bit (glibc-ppc-getcontext.patch) + +------------------------------------------------------------------- +Wed Jan 4 09:34:28 UTC 2012 - aj@suse.de + +- Remove patch glibc-2.3.4-gb18030-big5hkscs.diff.bz2 and + replace it by gb18030.patch.bz2 (synced with Fedora 16) + (bnc#743617). + +------------------------------------------------------------------- +Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de + +- Compile unwind-dw2-fde-glibc.c with -fno-strict-aliasing + (patch glibc-strict-aliasing.diff) +- Build on i686 a separate library for usage under Xen. + +------------------------------------------------------------------- +Tue Jan 3 15:36:12 UTC 2012 - aj@suse.de + +- Only use -mno-tls-direct-seg-refs on 32-bit x86, it's not needed + on x86-64. + +------------------------------------------------------------------- +Tue Jan 3 14:37:48 UTC 2012 - aj@suse.de + +- Cleanup spec file: + - experimental malloc is not experimental anymore and only option + (drop patch glibc-malloc-arena-max.diff) + - remove obsolete configure flags + +------------------------------------------------------------------- +Tue Jan 3 08:40:28 UTC 2012 - aj@suse.de + +- Update to 2ba92745c36e: + - Update copyright years + - Fix miscompilation of posix/regex_internal.c with GCC 4.7. + +------------------------------------------------------------------- +Tue Jan 3 08:23:44 UTC 2012 - aj@suse.de + +- Revert pthread-cond-wait change for now since it causes hangs + (patch pthread-cond-wait-revert.patch). + +------------------------------------------------------------------- +Mon Dec 26 12:53:55 UTC 2011 - aj@suse.de + +- Update to c0da14cdda1f (glibc-ports: 8a70b2dcabbf): + - new locales + - many bugfixes + - glibc 2.15 + - obsoletes tzfile-corruption-fix.patch, + glibc-2.14-32args-printf.patch + +------------------------------------------------------------------- +Thu Dec 21 15:16:42 CET 2011 - meissner@suse.de + +- Do not mention the buildtime anymore to make build-compare work. + +------------------------------------------------------------------- +Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de + +- Fix timezone loader overflow (bnc#735850,CVE-2009-5029) (patch + tzfile-corruption-fix.patch) + +------------------------------------------------------------------- +Mon Dec 5 09:29:32 UTC 2011 - aj@suse.de + +- Update to 52ad36a21973 (glibc-ports: 4a40b38f6355): + * fix many warnings + * bugfixes + * obsolete patches glibc-strict-aliasing.diff and + glibc-arm-clone-unwind-fix.diff + + +------------------------------------------------------------------- +Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com + +- fix printf with many args and printf arg specifiers (bnc#733140) + +------------------------------------------------------------------- +Thu Nov 24 14:02:55 UTC 2011 - aj@suse.de + +- Updated glibc-ports-2.14.1.tar.bz2 from ftp.gnu.org. + +------------------------------------------------------------------- +Thu Nov 24 09:25:14 UTC 2011 - aj@suse.com + +- Create glibc-devel-static baselibs (bnc#732349). + +------------------------------------------------------------------- +Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de + +- Remove duplicated locales from glibc-2.3.locales.diff.bz2 + +------------------------------------------------------------------- +Tue Nov 15 12:49:56 UTC 2011 - aj@suse.de + +- nscd now monitors resolv.conf, so simplify glibc-2.4.90-nscd.diff + patch and re-enable it +- Adjust and re-enable glibc-2.3.3-nscd-db-path.diff + +------------------------------------------------------------------- +Tue Nov 15 12:10:32 UTC 2011 - aj@suse.de + +- Update to 09f93bd3d6b1: + - Clean up internal fopen uses to always use close-on-exec + - Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32 + - bugfixes + +------------------------------------------------------------------- +Mon Nov 14 12:02:06 CET 2011 - ro@suse.de + +- check-build.sh: accept kernel 3.x + +------------------------------------------------------------------- +Tue Nov 8 22:55:40 CET 2011 - dmueller@suse.de + +- make glibc-static provide versioned + +------------------------------------------------------------------- +Tue Nov 8 18:20:39 CET 2011 - dmueller@suse.de + +- fix building with ports again: + * ifuncs tracing backport requires adjustments + +- avoid using asynchronous-unwind-tables only during configure, + but still built the library with unwind tables enabled +- replace arm build hack with a proper solution + +------------------------------------------------------------------ +Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de + +- update glibc-ports to 2.14.1: + * Align the constant pool in start.S to 4 bytes. + * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. +- Fix unwinding crash when using clone() + +------------------------------------------------------------------- +Wed Nov 2 13:52:36 UTC 2011 - aj@suse.de + +- Update to d35dce5213b3: + - caching of network information for getaddrinfo + - bugfixes + +------------------------------------------------------------------- +Sat Oct 29 18:37:46 UTC 2011 - aj@suse.de + +- Update to 21b64b153631: + - various bugfixes + +------------------------------------------------------------------- +Thu Oct 27 08:44:14 UTC 2011 - aj@suse.de + +- Update to 804791474dc1: + - more libm optimizations +- Remove AMD libm routines due to new upstream libm optimizations + and interfaces. +- Fix build on x86. + +------------------------------------------------------------------- +Mon Oct 24 19:02:46 UTC 2011 - aj@suse.de + +- Update to a201fbcf9cc3: + - More libm optimizations + - Optimize wcslen, strnlen + +------------------------------------------------------------------- +Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de + +- Ignore failure of chkstat (bnc#725145). + +------------------------------------------------------------------- +Wed Oct 19 12:07:41 UTC 2011 - aj@suse.de + +- Provide glibc-static from glibc-devel-static to make packaging + easier. glibc-static is the Fedora name. + +------------------------------------------------------------------- +Tue Oct 18 07:42:40 UTC 2011 - aj@suse.de + +- Update to glibc head 99ce7b04edf1: + - Optimize many libm functions + - Optimize access to isXYZ and toXYZ tables + - Optimized memcmp and wmemcmp for x86-64 and x86-32 + - Add parameter annotation to modf + - Support optimized isXXX functions in C++ code + - Optimized memchr, memrchr, rawmemchr for x86-32 + - Add nscd netgroupcache +- Disable libm-x86-64.diff.bz2 since it needs changes following the + libm optimzations. + +------------------------------------------------------------------- +Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de + +- Remove fma, fmaf from libm-x86-64.diff.bz2, they are not accurate + (bso#13304). + +------------------------------------------------------------------- +Tue Oct 11 09:51:46 UTC 2011 - aj@suse.de + +- Update to current git 4f2b767fef50 + * Correctly reparse group line after enlarging the buffer + * 2.14.1 release + +------------------------------------------------------------------- +Mon Oct 10 14:07:44 UTC 2011 - aj@suse.de + +- Fix tracing with ifuncs. + +------------------------------------------------------------------- +Tue Oct 4 14:10:13 UTC 2011 - uli@suse.com + +- cross-build: use %__cc, %__cxx, %_build, %_host +- mipsel: install ports, disable FP + +------------------------------------------------------------------- +Fri Sep 30 17:14:04 CEST 2011 - dmueller@suse.de + +- avoid build failure on %%arm + +------------------------------------------------------------------- +Thu Sep 29 12:58:59 UTC 2011 - aj@suse.de + +- Update to 68577918437e: + * Obsoleted patches: glibc-gconvcache-s390.diff, + glibc-2.3.5-nscd-zeronegtimeout.diff, + glibc-x86-bits-sigcontext.patch, + glibc-2.15-getsysstats-speedup.patch, glibc-2.13-warnings.fix, + glibc-2.13-localedef.patch, + glibc-fix-rwlock-stack-imbalance.patch, glibc-2.15-vsyscall.patch, + glibc-2.15-avoid-vsyscall.patch + +------------------------------------------------------------------- +Thu Sep 29 07:40:25 UTC 2011 - adrian@suse.de + +- just use %arm for right arm architectures + +------------------------------------------------------------------- +Tue Sep 27 11:24:02 UTC 2011 - aj@suse.de + +- Update to 2.14 git version 8bd683657e8a, it contains backports from + glibc trunk: + + Avoid race between {,__de}allocate_stack and __reclaim_stacks + during fork +- Add glibc-2.14-fix-ctors.patch to run ctors (bnc#717671), gcc 4.6 + optimized these away. + +------------------------------------------------------------------- +Mon Sep 26 12:30:09 UTC 2011 - adrian@suse.de + +- don't use -fasynchronous-unwind-tables on arm, it breaks the build + +------------------------------------------------------------------- +Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de + +- fix ports build + +------------------------------------------------------------------- +Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de + +- don't enforce armv5tel for all arm architectures anymore +- armv8l architecture does not exist + +------------------------------------------------------------------- +Tue Sep 20 07:54:21 UTC 2011 - aj@suse.de + +- Cleanup spec file: remove some tags + +------------------------------------------------------------------- +Mon Sep 19 08:09:40 UTC 2011 - opensuse@cboltz.de + +- move usr.sbin.nscd apparmor profile back to apparmor-profiles package + (bnc#647718) + +------------------------------------------------------------------- +Mon Sep 19 07:45:36 UTC 2011 - aj@suse.de + +- Update to 2.14 git version 69c1dfc1a796, it contains backports from + glibc trunk: + + Fix setxid race handling exiting threads + + Fix cfi directives in x86-64 and i386 code + + Fix scope handling during dl_close + + Fix spurious nop at start of __strspn_ia32 + + Correct cycle detection during dependency sorting + + Fix fopen (non-existing-file, "re") errno (Obsoletes patch + fopen-close-exec.patch) + +------------------------------------------------------------------- +Fri Sep 16 11:20:29 UTC 2011 - mmarek@suse.cz + +- Fix assertion error in res_query.c, triggered by Firefox + (bso#13013). + +------------------------------------------------------------------- +Wed Sep 7 07:17:16 UTC 2011 - aj@suse.de + +- Avoid usage of vsyscalls inside glibc. + +------------------------------------------------------------------- +Tue Sep 6 09:53:24 CEST 2011 - aj@suse.de + +- Prefer real syscalls instead of vsyscalls on x86-64 outside + libc.so + +------------------------------------------------------------------- +Mon Sep 5 10:06:23 UTC 2011 - aj@suse.de + +- Do not not trigger an abort when an i586 Intel CPU is running the + i686 library, as valgrind does. [bnc#681398] + +------------------------------------------------------------------- +Mon Sep 5 08:26:24 UTC 2011 - aj@suse.de + +- Readd vdso support. +- Add patch to relocate objects in dependency order, this fixes the + vdso support. + +------------------------------------------------------------------- +Sat Sep 3 19:39:03 UTC 2011 - aj@suse.de + +- Revert last change, it caused some breakage. [bnc#715854] + +------------------------------------------------------------------- +Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de + +- Add support for new vdso (3.1 kernel) and only then + for vsyscall which is not anymore in 3.1 kernel + (patch glibc-2.15-vsyscall.patch) + +------------------------------------------------------------------- +Thu Aug 25 09:44:37 UTC 2011 - lnussel@suse.de + +- use symbol version OW_CRYPT_1.0 for the Owl extensions + (crypt_r[an], crypt_gensalt.*) +- refactor sha2 gensalt patch +- document sha2 hashes in man page + +------------------------------------------------------------------- +Mon Aug 22 13:12:18 UTC 2011 - aj@suse.de + +- Update AppArmor profile of nscd [bnc#647718] + +------------------------------------------------------------------- +Fri Aug 19 13:26:11 UTC 2011 - aj@suse.de + +- Fix fopen("non-existing-file", "re") errno [bnc#713146]. + +------------------------------------------------------------------- +Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de + +- Mark glibc-info, glibc-html and glibc-i18ndata as noarch packages. + +------------------------------------------------------------------- +Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de + +- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] + +------------------------------------------------------------------- +Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de + +- Enhance rpmlintrc to ignore shlib policy violation. +- Remove obsolete patches glibc-fnmatch-multibyte.diff, + glibc-2.3.1.localedef.diff, glibc-2.10-nscd-nostack.diff. + +------------------------------------------------------------------- +Wed Aug 17 14:47:11 UTC 2011 - aj@suse.de + +- Update to current 2.14 branch: Various bugfixes. + Remove upstreamed patches missing-include-build-fix.diff, + glibc-2.14-res_send.patch, glibc-dl-fxstatat64.patch) + +------------------------------------------------------------------- +Wed Aug 17 14:09:50 UTC 2011 - aj@suse.de + +- Revert removal of sunrpc code (patch glibc2.14-revert-sunrpc-removal.patch). + +------------------------------------------------------------------- +Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de + +- Revert seeking on fclose, incomplete implementation of POSIX + behaviour can confuse current users. [bnc #711829] + (patch glibc-revert-fseek-on-fclose.diff) + +------------------------------------------------------------------- +Fri Jul 22 13:47:23 UTC 2011 - lnussel@suse.de + +- fix signature of sha2 functions + +------------------------------------------------------------------- +Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de + +- Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. + (bnc#684534, bnc#706719) + (patch glibc-fix-double-loopback.diff) + +------------------------------------------------------------------- +Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de + +- install crypt_blowfish man pages + +------------------------------------------------------------------- +Tue Jul 19 12:19:22 UTC 2011 - aj@suse.de + +- Back to old glibc-2.2-sunrpc.diff for now. + +------------------------------------------------------------------- +Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de + +- update crypt_blowfish to version 1.2 (bnc#700876) + * due to the signedness bug fix 2a hashes are incompatible with + previous versions if the password contains 8bit chracters! + * libcrypt now exports crypt_gensalt + +------------------------------------------------------------------- +Fri Jul 15 07:54:46 UTC 2011 - aj@suse.de + +- Update to glibc 2.14: + * The RPC implementation in libc is obsoleted. Old programs keep working + but new programs cannot be linked with the routines in libc anymore. + Programs in need of RPC functionality must be linked against TI-RPC. + The TI-RPC implementation is IPv6 enabled and there are other benefits. + * Various bugfixes, new locales, new linux kernel interfaces. + * New program sotruss to traces calls through PLTs + * Removed the following obsoleted patches: glibc-2.6-configure.diff, + glibc-disable-backward-memcpy.diff, glibc-static-memcpy.diff, + glibc-zarch-longlong.diff, glibc-bso-12454.diff, + glibc-vfprintf-positional.diff +- Build without -fno-strict-aliasing. + +------------------------------------------------------------------- +Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de + +- Remove ppc-atomic.diff after discussion with glibc PPC experts + since it does not bring any real benefit. + +------------------------------------------------------------------- +Thu Jul 7 14:50:15 UTC 2011 - aj@suse.de + +- Update glibc-2.2-sunrpc.diff with newer patch from sourceware + bugzilla (bs#bso#5379). + +------------------------------------------------------------------- +Wed Jul 6 08:24:45 UTC 2011 - lnussel@suse.de + +- enable glibc-2.8-getconf.diff again to fix build failure + +------------------------------------------------------------------- +Tue Jul 5 20:22:50 UTC 2011 - aj@suse.de + +- Add systemd configuration for nscd. + +------------------------------------------------------------------- +Tue Jul 5 08:03:26 UTC 2011 - aj@suse.de + +- Remove glibc-statfs64-ia64.diff since current ia32el has the bug + fixed. +- Remove glibc-ppc64-vdso-time.diff (bnc#590216). + +------------------------------------------------------------------- +Mon Jul 4 10:00:46 UTC 2011 - aj@suse.de + +- Further cleanup of ld.so.conf to remove duplicate directories + and allow override of system directories (bnc#671725) +- Fix futex bug (added patch glibc-fix-rwlock-stack-imbalance.patch + from sourceware bug #12403). + +------------------------------------------------------------------- +Fri Jul 1 16:09:14 UTC 2011 - aj@suse.de + +- Remove glibc-2.10.99-ia64-include.diff, it's not needed anymore. +- Disable obsolete patches glibc-fnmatch-multibyte.diff, + glibc-2.10-nscd-nostack.diff, glibc-2.3.1.localedef.diff +- Add glibc-2.13-localedef.patch to fix alignment problem. +- Adjust glibc-version.diff, FLOATING_STACKS variable is obsolete. + +------------------------------------------------------------------- +Thu Jun 30 12:17:33 UTC 2011 - aj@suse.de + +- Remove old ARM patches as it's unclear why those are needed and arm + support is anyhow broken according to comments here and in spec + files. + +------------------------------------------------------------------- +Thu Jun 30 11:22:02 UTC 2011 - aj@suse.de + +- Back to kernel 2.6.16 as minimal kernel version. + +------------------------------------------------------------------- +Tue Jun 28 12:30:34 UTC 2011 - aj@suse.de + +- Only apply glibc-statfs64-ia64.diff on SLE but not on openSUSE. + +------------------------------------------------------------------- +Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de + +- Disable exp_malloc on PPC platforms for now since it caused a + build failure. + +------------------------------------------------------------------- +Mon Jun 27 11:00:33 UTC 2011 - aj@suse.de + +- Update glibc-x86-bits-sigcontext.patch with version accepted + upstream. +- Add glibc-2.15-getsysstats-speedup.patch to "Fix Linux + sysconf(_SC_NPROCESSORS_[CONF|ONLN]) performance problem" +- Fix warning about potential array subscript out of bounds + (glibc-2.13-wranings.fix). +- Fix some rpmlint warnings. + +------------------------------------------------------------------- +Tue Jun 21 10:59:33 UTC 2011 - aj@suse.de + +- Cleanup spec file, change PreReqs. +- Remove obsolete patches: glibc-2.3.90-ld.so-madvise.diff, + glibc-suse-note.diff, glibc-2.3-regcomp.diff. +- Rename glibc-2.3-SuSE.diff to glibc-testsuite.patch, remove obsolete + parts. + +------------------------------------------------------------------- +Mon Jun 20 12:47:46 UTC 2011 - aj@suse.de + +- Enhance rpmlintrc. +- move summary,license and group out of the not-ppc if (by Marcus + Meissner). + +------------------------------------------------------------------- +Mon Jun 20 11:02:01 UTC 2011 - aj@suse.de + +- Remove PreReq on permissions to avoid a cycle that gives leads to + an uninstallable system (bnc#700925). +- Fix on x86 - fixes scpm compilation + (bnc#700784). + +------------------------------------------------------------------- +Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de + +- Cleanup ld.so.conf list, move kde directories to + kdelibs3 (bnc#671725). + +------------------------------------------------------------------- +Fri Jun 17 07:07:37 UTC 2011 - aj@suse.de + +- Do not package memusage and memusagestat since they require + lib-gd and that grows the build cycle. + +------------------------------------------------------------------- +Thu Jun 16 18:37:19 UTC 2011 - aj@suse.de + +- Fix handling of shared library preloading. + +------------------------------------------------------------------- +Thu Jun 16 13:33:23 UTC 2011 - aj@suse.de + +- Fix getaddrinfo IPv6 code (bnc#684534). +- Split up glibc-devel-static subpackage (bnc#655261). + +------------------------------------------------------------------- +Thu Jun 16 12:23:32 UTC 2011 - aj@suse.de + +- Reorder ld.so.conf library list (bnc#671725). + +------------------------------------------------------------------- +Wed Jun 15 07:08:35 UTC 2011 - aj@suse.de + +- Split up package glibc-utils with some debugging tools, add memusage + and memusagestat programs +- Fix compile warnings. +- Silence some rpmlint warnings. +- Remove obsolete patches glibc-2.3.2-revert_tcsetattr.diff, + glibc-2.8-clone.diff, glibc-nptl-2.4-nofixsyscallnr.diff +- Cleanup spec file. +- Use new permission handling for pt_chown. +- Build without -fno-strict-aliasing. + +------------------------------------------------------------------- +Mon Jun 6 14:19:26 UTC 2011 - aj@suse.de + +- Fix typos in /etc/gai.conf (bnc#651912). + +------------------------------------------------------------------- +Fri Jun 3 08:40:55 UTC 2011 - aj@suse.de + +- Use 2.6.5 as oldest supported kernel on all archs besides x86 and + x86-64 (reverting partially a change). + +------------------------------------------------------------------- +Fri May 27 11:55:35 UTC 2011 - aj@suse.de + +- Remove patches that are not needed anymore: + * glibc-selinux.diff + * glibc-check-native-missing-include.diff + * glibc-2.3.3-execstack.diff +- Disable the following patches, they look obsolete by now but leave them + in to easy enable them again: + * glibc-2.3-SuSE.diff + * glibc-2.3-regcomp.diff + * glibc-2.8-clone.diff + * glibc-2.3.2-revert_tcsetattr.diff +- Do not package glibc-obsolete with empty directory on archs that + don't need it. + +------------------------------------------------------------------- +Thu May 26 07:53:51 UTC 2011 - aj@suse.de + +- Add glibc-static-memcpy.diff to fix static compiles. + +------------------------------------------------------------------- +Wed May 25 15:28:37 UTC 2011 - aj@suse.de + +- Run on kernel 2.6.32 or newer only - and optimize thus. +- Enable malloc implementation that is be less memory efficient + but higher performing in multi-threaded programs. +- Use --enable-bind-now to avoid lazy binding in ld.so + and libc.so + +------------------------------------------------------------------- +Wed May 25 14:38:58 UTC 2011 - aj@suse.de + +- Add glibc-bso-12454.diff to not create assert running dynamic linker + in some cases. +- Disable backwards memcpy for x86-64. + +------------------------------------------------------------------- +Wed May 25 07:59:27 UTC 2011 - aj@suse.de + +- Add glibc-dl-signal-error.diff to not crash the dynamic linker + if dependencies are missing. + +------------------------------------------------------------------- +Mon May 23 08:44:47 UTC 2011 - rguenther@novell.com + +- Update longlong.h from GCC sources. Fixes s390 build with -mzarch. + [bnc#695102] + +------------------------------------------------------------------- +Fri May 20 14:45:44 UTC 2011 - aj@suse.de + +- Fix obsoletes and provides. +- Update to glibc 2.13 +- Drop ld-prelink-unique.diff, it is part of 2.13. + +------------------------------------------------------------------- +Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz + +- Fix potential removal of required local scope from shared objects + marked as NODELETE [bnc#657627] + +------------------------------------------------------------------- +Fri Feb 4 00:46:40 CET 2011 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.3-b72646ad0c41 + - Random assortion of bugfixes, some #defines for new kernels +- Retired patches: + - glibc-2.11.3-bnc658509.diff + - glibc-2.11.3-bso12397.diff + - glibc-sparc64-fxstat.diff +- Remove the NSS hack of opening modules using RTLD_DEEPBIND. + This was useful for nss_ldap, since some applications used a different + LDAP library with clashing symbol names. However, it also created + many headaches, especially with the NSS modules not respecting + malloc() overrides. Now, sssd is used by default for LDAP resolutions + and we can therefore safely get rid of the hack. [bnc#477061] +- Remove the currently disabled AMD string function overrides. + Benchmarking did not unearth any differences that would make + convincing case for keeping the functions with all the associated + maintenance headaches; AMD does not recommend keeping their custom + versions of the functions either. +- Introduce MALLOC_ARENA_MAX and M_ARENA_MAX support [bnc#659090] +- Fixed stack unwinding past glibc _fini function (proper showing + of destructor backtraces) [bnc#585879] +- Fix gconv cache generation on s390 [bnc#592944] +- Add missing iconvconfig for refreshing gconv.cache to glibc-locale %post +- Fixed stack corruption in *printf() with large number of positional + specifiers [bnc#666179] + +------------------------------------------------------------------- +Fri Jan 28 14:53:35 UTC 2011 - rguenther@novell.com + +- Fix ENOSYS detection for mkdirat. [bso#12397] + +------------------------------------------------------------------- +Thu Dec 9 12:33:35 UTC 2010 - rguenther@novell.com + +- Drop restrict qualifiers from memmove and bcopy fortify wrappers. + [bnc#658509] + +------------------------------------------------------------------- +Tue Nov 30 01:53:42 CET 2010 - pbaudis@suse.cz + +- Upgrade to glibc-2.11.3 + - Just few more bugfixes since the latest upgrade + +------------------------------------------------------------------- +Tue Nov 16 04:03:01 CET 2010 - pbaudis@suse.cz + +- Remove explicit support for nss SPLIT_GROUPS setting; glibc from + 2.11 on should handle this automagically. + +------------------------------------------------------------------- +Mon Nov 15 18:43:35 CET 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.2-dd2fde461e30 + - Candidate tree for glibc-2.11.3 + - Multitude of various bug fixes + +------------------------------------------------------------------- +Mon Nov 15 18:29:49 CET 2010 - pbaudis@suse.cz + +- Enable multi-arch routines support for ppc, ppc64, i686 and x86_64. + + Temporarily, AMD-optimized string routines are disabled. We will + selectively re-enable them after some more careful benchmarking + in the next few days. + + Note: In this glibc version, multi-arch routines DO NOT include + the controversial backwards-copy memcpy(). + +------------------------------------------------------------------- +Wed Oct 27 03:14:37 CEST 2010 - pbaudis@suse.cz + +- Fix missing hconf setup in nscd - this meant `multi on` in + /etc/host.conf was ignored when nscd was used, breaking e.g. + resolving of multi-AF records in /etc/hosts [bnc#572188] +- Fix two LD_AUDIT security vulnerabilities: spurious $ORIGIN expansion + and missing setuid library check when running as setuid [bnc#646960] + +------------------------------------------------------------------- +Mon Sep 13 14:36:26 UTC 2010 - aj@suse.de + +- Fix build in manual with make 3.82. + +------------------------------------------------------------------- +Sun Sep 12 08:00:57 UTC 2010 - aj@suse.de + +- Work around shortest-stem feature in make 3.82+ (patch + glibc-make-3.82.patch) + +------------------------------------------------------------------- +Wed Jul 7 04:12:05 CEST 2010 - pbaudis@suse.cz + +- Fix NIS-compat initgroups routine to work reliably over multiple + invocations [bnc#607064] + +------------------------------------------------------------------- +Thu Jul 1 19:52:56 UTC 2010 - jengelh@medozas.de + +- SPARC: restore fxstat functionality in sparc64 mode + +------------------------------------------------------------------- +Sat Jun 26 10:26:17 UTC 2010 - jengelh@medozas.de + +- Use %_smp_mflags + +------------------------------------------------------------------- +Fri Jun 11 15:41:07 CEST 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.2-21580967038a + - Fix buggy x86 CPU family and model check + - Fix sunrpc error condition handling + - Fix crash on unresolved weak symbol reference + +------------------------------------------------------------------- +Tue Jun 1 03:38:28 CEST 2010 - pbaudis@suse.cz + +- Fix ldconfig -r failing on aux cache [bnc#609345] + +------------------------------------------------------------------- +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 + +- Handle /var/run on tmpfs + +------------------------------------------------------------------- +Mon Apr 26 22:09:40 CEST 2010 - pbaudis@suse.cz + +- Remove stale resolv.dynamic.diff patch file + +------------------------------------------------------------------- +Thu Apr 22 08:30:50 CEST 2010 - meissner@suse.de + +- for powerpc32 build a generic library and also a power4 library + to allow older 32bit powerpc to work. bnc#596271 + +------------------------------------------------------------------- +Tue Apr 20 13:15:19 CEST 2010 - pbaudis@suse.cz + +- Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] + +------------------------------------------------------------------- +Wed Mar 24 13:04:12 CET 2010 - pbaudis@suse.cz + +- Fix get_nprocs() large CPU count handling [bnc#590665] + +------------------------------------------------------------------- +Tue Mar 23 15:09:09 CET 2010 - pbaudis@suse.cz + +- Fix interference of STB_GNU_UNIQUE and prelink [bnc#586979] +- Make time() use VDSO on PPC64 [bnc#590216] +- Make pthread_cond_timedway() use VDSO on PPC64 [bnc#590517] + +------------------------------------------------------------------- +Thu Mar 18 14:45:34 CET 2010 - pbaudis@suse.cz + +- Add PreReq for cat to glibc-locale [bnc#588997] + +------------------------------------------------------------------- +Thu Mar 18 14:29:42 CET 2010 - pbaudis@suse.cz + +- Fix /etc/resolv.conf change detection for multi-threaded applications + (by Sebastian Kienzl) + +------------------------------------------------------------------- +Fri Mar 5 12:59:44 CET 2010 - pbaudis@suse.cz + +- Fix spurious mapping from lowercase sharp s to uppercase sharp S + which is less standard and causes problems for ISO encodings [bnc#541773] + +------------------------------------------------------------------- +Mon Mar 1 18:55:37 CET 2010 - pbaudis@suse.cz + +- Fix spurious overflow messages on some R_X86_64_PC32 relocations, + patch by Richard Guenther [bnc#583019] + +------------------------------------------------------------------- +Wed Feb 24 11:53:41 CET 2010 - pbaudis@suse.cz + +- Fix assertion failures within valloc(), patch by Michael Matz + [bnc#581391] + +------------------------------------------------------------------- +Wed Feb 17 12:02:24 CET 2010 - pbaudis@suse.cz + +- S/390: Disable two UTF conversion instructions due to the hardware + mishandling some error conditions in the input stream [bnc#579871] + +------------------------------------------------------------------- +Mon Feb 15 22:34:29 CET 2010 - pbaudis@suse.cz + +- Further fix previous power5 fix + +------------------------------------------------------------------- +Sun Feb 14 15:33:33 CET 2010 - rguenther@suse.de + +- avoid spurious differences in nscd on rebuilds. + +------------------------------------------------------------------- +Thu Feb 11 21:36:32 CET 2010 - pbaudis@suse.cz + +- Fix another upgrade problem on power5 and older - correctly remove + the old optimized libraries; found out by matz@suse.de [bnc#563978] + +------------------------------------------------------------------- +Fri Feb 5 21:07:54 CET 2010 - pbaudis@suse.cz + +- Final fix for memchr() overflow on IA64 provided by upstream + [bnc#567516] + +------------------------------------------------------------------- +Thu Jan 28 17:11:59 CET 2010 - pbaudis@suse.cz + +- Fix another memchr() overflow on IA64; another known one still + remains a mystery [bnc#567516] + +------------------------------------------------------------------- +Wed Jan 27 02:49:46 CET 2010 - pbaudis@suse.cz + +- Remove now-obsolete powerpc-cpu addon usage [bnc#572819] +- Fix statfs64() on IA64 in 32-bit mode ia32el [bnc#534828] + +------------------------------------------------------------------- +Tue Jan 26 03:33:38 CET 2010 - pbaudis@suse.cz + +- Fix upgrade from previous distributions on power5 and older [bnc#563978] + +------------------------------------------------------------------- +Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de + +- ignore power6, power7 and cell specific Power CPU optimizations + on openSUSE. + +------------------------------------------------------------------- +Tue Jan 19 02:42:40 CET 2010 - pbaudis@suse.cz + +- Disable AMD-optimized strncmp() on x86_64 that is getting miscompiled + by the assembler [bnc#540647] + +------------------------------------------------------------------- +Mon Jan 18 18:22:32 CET 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.1-11c19d374bd4 + - Just trivial changes - version bump to 2.11.1, NIS-related + resolver fixes, ELF lookup race, .h typo fix and regcomp + out-of-memory handling miss + - Few more bugfixes, weekday updated in three locales +- Retired patches: + glibc-ia64-memchr.diff + +------------------------------------------------------------------- +Mon Dec 14 23:49:33 CET 2009 - jengelh@medozas.de + +- add baselibs.conf as a source + +------------------------------------------------------------------- +Fri Dec 11 13:13:01 CET 2009 - jengelh@medozas.de + +- libnldbl_nonshared is only built for sparc32 + +------------------------------------------------------------------- +Tue Dec 8 20:50:26 CET 2009 - jengelh@medozas.de + +- package libnldbl_nonshared for SPARC + +------------------------------------------------------------------- +Fri Nov 20 01:55:16 CET 2009 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11-1bc1954c7357: + - This snapshot is slated to become 2.11.1 if all goes well + - Mix of fixes for various recently found out issues +- Retired patches: + glibc-ifunc-dlsym-fixup.diff +- [IA64] Fix memchr() on mmap(MAP_SHARED) boundary [fix lighttpd crashes] +- Again use 127.0.0.1 as default nameserver in case of empty + /etc/resolv.conf [bnc#473308] + +------------------------------------------------------------------- +Thu Nov 19 13:15:41 CET 2009 - pbaudis@suse.cz + +- Add 623 and 664 to /etc/bindresvport.blacklist to fix problems with + port conflict on some IPMI network cards [bnc#513961] +- Allow external additions to /usr/share/locale/locale.alias and + /usr/lib/gconv/gconv-modules, required for the SAP-locales package. +- Add delimiter in front of external additions to locale/gconv lists +- Remove AMD-provided strlen(), upstream is faster. + +- Keep .symtab and .strtab for all glibc-related .so libraries [FATE#307090] + [bnc#545721] +- [ppc,ppc64] Enable optimized builds for power7; no separate power4, power5 + builds are generated anymore, instead default glibc is built for power4 + at least, tuned for power5 execution [FATE#307021] +- Large clean-up of the specfile + +------------------------------------------------------------------- +Fri Nov 13 22:47:47 CET 2009 - pbaudis@suse.cz + +- Upgrade to Git HEAD as of 20091105 - glibc-2.11-13f6812ffb5b: + * New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps, + mkostemps64 + Implemented by Ulrich Drepper. + + * Checking version of longjmp added that fails if an uninitialized stack + frame would be created. Implemented by Ulrich Drepper. + + * STT_GNU_IFUNC is now supported in static executables. + Implemented by H.J. Lu. + + * STT_GNU_IFUNC implemented for PPC by Alan Modra. + + * New optimized string functions for x86-64: strstr, strcasestr, memcmp, + strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2), + strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2). + Contributed by H.J. Lu. + + strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3). + Implemented by Ulrich Drepper. + + * New optimized string functions for x86: strlen, strcspn, strspn, strpbrk, + strstr, strcasestr. + Contributed by H.J. Lu. + + * Support for fma instruction in AVX on x86-64. + Implemented by H.J. Lu and Ulrich Drepper. + + * AVX support in x86-64 auditing support in ld.so. + Implemented by H.J. Lu. + + * STB_GNU_UNIQUE support added. + Implemented by Ulrich Drepper. + + * Implement second fallback mode for optimized DNS lookup for even more + broken environments. If two requests from the same port are not + handled correctly close the socket and open a new one before sending + the second request. The 'single-request-reopen' option in /etc/resolv.conf + can be used to select this mode right away, instead of rediscovering the + necessity is every process again. + Implemented by Ulrich Drepper. + + * New resolver flag RES_USE_DNSSEC to enable use of verified lookup. + Implemented by Adam Tkac. + + * Optimized iconv conversions for S390x. + Implemented by Andreas Krebbel. + + * Using condvars with PI mutexes is now more efficient due to kernel + support for requeueing to PI futexes. NPTL support added for x86-64. + Implemented by Ulrich Drepper. + + * New locales: ps_AF, my_MM +- Retired patches: + glibc-utmp-timeout-raise.diff + glibc-nscd-assert.diff + glibc-2.10-mcheck-free-race.diff + glibc-nscd-prune-ret.diff +- Made ifunc compile on IA64 using patch by H.J.Lu +- Fixed compilation on PPC Cell +- Lowered utmp locking timeout from 30s to 10s to be compatible + with upstream +- Allow external additions to /usr/share/locale/locale.alias and + /usr/lib/gconv/gconv-modules, required for the SAP-locales package. +- Remove AMD-provided strlen(), upstream is faster. +- ARM is currently non-functional + +------------------------------------------------------------------- +Fri Nov 13 20:18:27 CET 2009 - pbaudis@suse.cz + +- Rediff patches to apply with fuzz 0 + +------------------------------------------------------------------- +Sat Sep 19 14:13:43 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-44dbdf3777 of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + +------------------------------------------------------------------- +Fri Sep 18 21:40:04 CEST 2009 - coolo@novell.com + +- add /etc/apparmor.d to the nscd file list + +------------------------------------------------------------------- +Mon Sep 14 23:53:20 CEST 2009 - pbaudis@suse.cz + +- define _filter_GLIBC_PRIVATE so that our glibc is not marked to + provide these symbols [bnc#468748] +- Fix exception behaviour of various libm functions by AMD optimized + for x86_64 [bnc#487576] + +------------------------------------------------------------------- +Tue Sep 8 13:15:04 CEST 2009 - pbaudis@suse.cz + +- Provide the /etc/apparmor.d/usr.sbin.nscd file [bnc#535467] +- Blowfish: Enable BF_SCALE even on x86_64 + +------------------------------------------------------------------- +Sat Sep 5 23:19:51 CEST 2009 - pbaudis@suse.cz + +- Raise utmp locking timeout from 1s to 30s to ensure logins get recorded + even on heavily loaded systems [bnc#486631] +- Fix invalid pointer handling in some nscd assertions and the code to send + data to the client [bnc#513617] +- Radically trim down the Blowfish support patch - keeps only crypt_blowfish + from the original OWL patch, but does the rest within the current glibc + crypt infrastructure [bnc#529495] + +------------------------------------------------------------------- +Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de + +- make patch0 usage consistent + +------------------------------------------------------------------- +Thu Aug 20 19:02:31 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-aa152ec6ad of release/2.10/master branch + (Still the same source is used for glibc-ports.) - random minor fixes + * REVERTED invalid fix of broken locking within nscd [bnc#510788] +- Fix nscd handling of zero negative timeout for some databases + [bnc#523154,bnc#510788] + +------------------------------------------------------------------- +Fri Jul 17 01:14:16 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-4253a1e0b2 of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + * Fix broken locking within nscd [bnc#510788] +- Fix compilation with 2.6.30 kernel headers on IA64 + +------------------------------------------------------------------- +Thu Jun 18 00:58:47 CEST 2009 - pbaudis@suse.cz + +- Fix a dead-lock introduced by the bnc#509398 fix +- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + +------------------------------------------------------------------- +Fri Jun 12 12:19:34 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) + * Fix 100% CPU usage by Java apps because of bad futex calls [bnc#509096] + +------------------------------------------------------------------- +Mon Jun 8 17:58:50 CEST 2009 - pbaudis@suse.cz + +- Fix race condition in the mcheck free() hook [bnc#509398] + +------------------------------------------------------------------- +Fri Jun 5 00:46:59 CEST 2009 - pbaudis@suse.cz + +- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 + +------------------------------------------------------------------- +Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch + maintained by me at repo.or.cz; contains backports of various bugfixes. + (Still the same source is used for glibc-ports.) +- Stop using separate tarball for nptl. +- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. + +------------------------------------------------------------------- +Fri May 15 22:13:33 CEST 2009 - pbaudis@suse.cz + +- Add support for multiple group records for a single group + when using nss_compat (configurable in /etc/default/nss) [bnc#480991] + +------------------------------------------------------------------- +Sun May 10 21:42:37 CEST 2009 - pbaudis@suse.cz + +- Update to 2009051021, glibc-2.10.1: + * Add missing cacheinfo entry for a recent Intel processor + * Fix ABI issue with the gshadow interface + +------------------------------------------------------------------- +Sun May 10 11:20:12 CEST 2009 - pbaudis@suse.cz + +- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: + * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS + servers (the case e.g. for many ADSL users), you may experience long + timeouts, once for each process (but eventually your request will be + resolved) - the solution is to run nscd (default on SUSE) and/or + put 'options single-request' in /etc/resolv.conf. + + * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info + Implemented by Ulrich Drepper. + + * New Linux interfaces: accept4, fallocate, fallocate64. + Implemented by Ulrich Drepper. + + * Correct declarations of string function when used in C++ code. This + could lead to compile errors for invalid C++ code. + + * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are + now in POSIX. + + * New POSIX 2008 interface: psiginfo + Implemented by Ulrich Drepper. + + * New ISO C++1x interfaces: quick_exit, at_quick_exit + Implemented by Ulrich Drepper. + + * Support for selecting between multiple function definitions at runtime + using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. + + * The libcrypt library can now use the hash function implementations in + NSS. Implemented by Ulrich Drepper. + + * The malloc implementation can be compiled to be less memory efficient + but higher performing in multi-threaded programs. + Implemented by Ulrich Drepper. + + * New locales: nan_TW@latin, ks_IN + + * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. + Implemented by Ulrich Drepper. + + * Extended printf hook support. It is possible to use user-defined types + and extend existing format specifiers. + Implemented by Ulrich Drepper. + + * Handling for group shadow files has been added. + Implemented by Ulrich Drepper. +- Retired: + glibc-2.10-dns-fixpack.diff + glibc-2.10-dns-no-gethostbyname4.diff + glibc-2.10-locale-tuesday.diff + glibc-2.10-nscd-gc-dataofs.diff + glibc-2.10-nscd-prunerace.diff + glibc-2.10-ppc32-setcontext-fp.diff + glibc-2.10-unsetenv.diff + glibc-2.4.90-mdns-resolver.diff + glibc-2.9-fortify.diff + glibc-getgroups-fortify.diff + glibc-ldscript.diff + glibc-mtfsf.diff + glibc-2.10-nscd-meminflight.diff + getaddrinfo-ipv6-sanity.diff + glibc-2.10-nis-hosts.diff +- Several other modified + +------------------------------------------------------------------- +Fri Apr 17 16:49:52 CEST 2009 - pbaudis@suse.cz + +- Fix defaulting to localhost in case of no nameserver entries + in /etc/resolv.conf [bnc#473308] + +------------------------------------------------------------------- +Mon Mar 23 15:32:01 CET 2009 - rguenther@suse.de + +- Add missing libc_hidden_builtin_def (memcmp) to + glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. + +------------------------------------------------------------------- +Fri Feb 27 16:21:17 CET 2009 - rguenther@suse.de + +- Make sure to mark fortified inline routines with + __attribute__((__artificial__)). + +------------------------------------------------------------------- +Wed Feb 18 16:18:19 CET 2009 - adrian@suse.de + +- Build i686 glibc src rpm as nosrc to get both versions on the + media [bnc#474338] + +------------------------------------------------------------------- +Thu Jan 22 14:10:25 CET 2009 - schwab@suse.de + +- Fix use of mtfsf insn. + +------------------------------------------------------------------- +Wed Jan 21 20:26:05 CET 2009 - schwab@suse.de + +- Fix ldscript mangling. + +------------------------------------------------------------------- +Wed Jan 21 01:18:59 CET 2009 - pbaudis@suse.cz + +- Re-enable the DNS fixpack, add real fix for bnc#441947 +- nscd: Fix gc he_data overflow and turn of alloca usage [bnc#387202] +- Normalize the patch queue +- Increate CPU_SETSIZE from 1024 to 4096 - for large SGI machines + and compatibility with SLE10SP2 [bnc#464667] + +------------------------------------------------------------------- +Fri Jan 16 22:33:21 CET 2009 - pbaudis@suse.cz + +- Disable the DNS fixpack from CVS, breaks nscd resolving [bnc#441947] + +------------------------------------------------------------------- +Fri Jan 9 13:12:21 CET 2009 - pbaudis@suse.cz + +- Fix unsetenv() crashing after clearenv() +- Backport various DNS-related fixes from CVS +- Disable parallel A-AAAA queries - revert to the glibc-2.9 behaviour + of sending the queries sequentially [bnc#442572] +- Fix fp register protection on power6 setcontext() [bnc#464738] + +------------------------------------------------------------------- +Mon Dec 8 01:25:57 CET 2008 - pbaudis@suse.cz + +- Fix crash when parsing NIS hosts file [bnc#448702] + +------------------------------------------------------------------- +Thu Dec 4 04:07:11 CET 2008 - pbaudis@suse.cz + +- Fix nscd gc-cacheadd and prune-invalidate races [bnc#446233] +- Remove obsolete and disabled nscd patch +- Fix /etc/bindresvport.blacklist parsing [bnc#439146] +- Fix en_GB and csb_PL locales having weeks start on Tuesdays [bnc#449186] + +------------------------------------------------------------------- +Sun Nov 23 14:55:40 CET 2008 - pbaudis@suse.cz + +- clean up patch filenames + +------------------------------------------------------------------- +Fri Nov 21 14:04:16 CET 2008 - olh@suse.de + +- fix check-build.sh to actually allow building on ppc* again + +------------------------------------------------------------------- +Fri Nov 21 13:36:05 CET 2008 - olh@suse.de + +- do not run compiled binaries with cputuned libraries [bnc#445911] + the buildhost only generates them, but must not execute them + +------------------------------------------------------------------- +Mon Nov 17 14:34:45 CET 2008 - pbaudis@suse.cz + +- Update to glibc-2.9 final + +------------------------------------------------------------------- +Thu Nov 6 18:25:09 CET 2008 - jjolly@suse.de + +- Added patch to fix s390x 64bit stack frame problem + +------------------------------------------------------------------- +Fri Oct 31 19:51:08 CET 2008 - matz@suse.de + +- Fix atomics on s390/s390x, leading to failures in pthread mutexes. + +------------------------------------------------------------------- +Tue Oct 28 18:08:32 CET 2008 - schwab@suse.de + +- Restore alignment patch. + +------------------------------------------------------------------- +Tue Oct 28 09:45:22 CET 2008 - olh@suse.de + +- symlink power5/power5+ to power4 on ppc32 + +------------------------------------------------------------------- +Thu Oct 23 22:20:28 CEST 2008 - ro@suse.de + +- only do obsoletes for XXbit packages on ppc, not on x86 + +------------------------------------------------------------------- +Wed Oct 23 13:46:25 CEST 2008 - matz@suse.de + +- Deactivate unwind tables for initfini.c. + +------------------------------------------------------------------- +Thu Oct 23 10:56:50 CEST 2008 - olh@suse.de + +- obsolete glibc{,-devel,-locale,-profile} -XXbit packages [bnc#437293] +- update last change to handle empty rpmspec defines + +------------------------------------------------------------------- +Tue Oct 21 09:54:06 CEST 2008 - olh@suse.de + +- update glibc_post_upgrade to handle power7 and ppc-cell-be +- remove libs unconditionally on powerpc to handle libs in + subdirectories for which we do not ship optimized versions [bnc#437209] + +------------------------------------------------------------------- +Thu Oct 16 14:42:59 CEST 2008 - olh@suse.de + +- enable cpu-tuned libraries for power4, power6 and ppc-cell-be + on ppc32 [fate#304000,bnc#408808] + +------------------------------------------------------------------- +Mon Oct 13 14:51:11 CEST 2008 - matz@suse.de + +- Update to trunk from 20081013, no longer export paccept, + obsoletes some patches (lowlevellock and res_send). + Fix overflow in nscd patch. + +------------------------------------------------------------------- +Mon Oct 13 00:03:18 CEST 2008 - dmueller@suse.de + +- also strip .comment.SUSE.OPTs from the static libs +- add missing-include-build-fix.diff + +------------------------------------------------------------------- +Tue Oct 7 09:44:20 CEST 2008 - schwab@suse.de + +- Fix alignment in resolver. + +------------------------------------------------------------------- +Tue Sep 30 09:41:01 CEST 2008 - olh@suse.de + +- symlink tuned libs because rpmlint is unable to handle hardlinks + +------------------------------------------------------------------- +Wed Sep 29 11:01:41 CEST 2008 - olh@suse.de + +- enable cpu-tuned libraries for power6 and ppc-cell-be [fate#304000,bnc#408808] +- remove -mtune G4/RS64 from CFLAGS on ppc/ppc64 + +------------------------------------------------------------------- +Thu Sep 18 11:39:53 CEST 2008 - rguenther@suse.de + +- Change .comment.SuSE.OPTs to .comment.SUSE.OPTs. Also strip from + crti.o and crtn.o. +- Adjust getgroups fortify check. [bnc#426958] + +------------------------------------------------------------------- +Thu Sep 18 10:19:51 CEST 2008 - schwab@suse.de + +- Fix alignment in resolver. + +------------------------------------------------------------------- +Mon Sep 15 11:55:18 CEST 2008 - adrian@suse.de + +- do not run glibc_post_upgrade in XEN builds + +------------------------------------------------------------------- +Sat Sep 13 21:49:44 CEST 2008 - rguenther@suse.de + +- strip .note.gnu.build-id from crt1.o. + +------------------------------------------------------------------- +Sat Sep 13 10:20:47 CEST 2008 - dmueller@suse.de + +- only strip comment from crt1.o + +------------------------------------------------------------------- +Fri Sep 12 17:49:39 CEST 2008 - mls@suse.de + +- block baselibs generation for i586 (use i686 instead) + +------------------------------------------------------------------- +Fri Sep 12 17:34:06 CEST 2008 - dmueller@suse.de + +- strip suse opts comments from crt.o (fate #300498) + +------------------------------------------------------------------- +Mon Sep 8 13:38:36 CEST 2008 - rguenther@suse.de + +- Add a patch to fix wrong asm constraints in the i386 lowlevel + futex lock implementation. + +------------------------------------------------------------------- +Thu Sep 4 19:46:22 CEST 2008 - matz@suse.de + +- Update to current trunk snapshot (2008-09-04), makes s390 build. + +------------------------------------------------------------------- +Wed Aug 27 16:12:01 CEST 2008 - matz@suse.de + +- Add a patch to use RTLD_DEEPBIND to load nss modules. [bnc #157078] + +------------------------------------------------------------------- +Mon Aug 25 15:09:37 CEST 2008 - matz@suse.de + +- Update to current trunk snapshot (2008-08-25). + +------------------------------------------------------------------- +Fri Aug 22 17:18:23 CEST 2008 - prusnak@suse.cz + +- enabled SELinux support [Fate#303662] + +------------------------------------------------------------------- +Fri Aug 15 10:37:10 CEST 2008 - aj@suse.de + +- Fix nscd init script for new checks. +- package empty ld.so.cache. + +------------------------------------------------------------------- +Fri Jul 25 08:16:40 CEST 2008 - aj@suse.de + +- Add directory /var/cache/ldconfig to filelist. + +------------------------------------------------------------------- +Wed Jun 25 15:38:25 CEST 2008 - pbaudis@suse.cz + +- Fix strptime() %EY era support [bnc#355887] + +------------------------------------------------------------------- +Wed Jun 25 13:30:42 CEST 2008 - rguenther@suse.de +- Add patch to fix unwinding through clone for x86_64 and i386. + [bnc#290807, bnc#403464] + +------------------------------------------------------------------- +Fri May 30 23:57:54 CEST 2008 - schwab@suse.de + +- Fix ppc atomic ops. + +------------------------------------------------------------------- +Fri Apr 25 13:30:50 CEST 2008 - pbaudis@suse.cz + +- Update to glibc-2.8 CVS branch as of 2008042513 (post-glibc-2.8): + * Faster sqrt and sqrtf implemention for some PPC variants. + +------------------------------------------------------------------- +Thu Apr 10 23:57:44 CEST 2008 - pbaudis@suse.cz + +- Build fix after the revert + +------------------------------------------------------------------- +Thu Apr 10 23:05:17 CEST 2008 - pbaudis@suse.cz + +- Temporarily revert a namespace leakage cleanup in glibc-2.8 since + it causes a lot of build failures + +------------------------------------------------------------------- +Thu Apr 10 16:29:34 CEST 2008 - pbaudis@suse.cz + +- Update to CVS HEAD as of 2008041002 (almost glibc-2.8): + * New locales: bo_CN, bo_IN. + + * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. + + * Sorting rules for some Indian languages (Devanagari and Gujarati). + Implemented by Pravin Satpute. + + * IPV6 addresses in /etc/resolv.conf can now have a scope ID + + * nscd caches now all timeouts for DNS entries + Implemented by Ulrich Drepper. + + * nscd is more efficient and wakes up less often. + Implemented by Ulrich Drepper. + + * More checking functions: asprintf, dprintf, obstack_printf, vasprintf, + vdprintf, and obstack_vprintf. + Implemented by Jakub Jelinek. + + * Faster memset for x86-64. + Implemented by Harsha Jagasia and H.J. Lu. + + * Faster memcpy on x86. + Implemented by Ulrich Drepper. + + * ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX). + Implemented by Ulrich Drepper. + +- memset() implementation from AMD replaced by new upstream + implementation + +- Enable stackguard randomization + +------------------------------------------------------------------- +Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de + +- added baselibs.conf file to build xxbit packages + for multilib support + +------------------------------------------------------------------- +Thu Mar 13 13:48:49 CET 2008 - dmueller@suse.de + +- don't try to use ipv6 in getaddrinfo() unconditionally (bnc#361697) + +------------------------------------------------------------------- +Sat Jan 26 13:19:41 CET 2008 - aj@suse.de + +- Add fixes from 2.8 branch for string.h and headers. The string.h + changes should fix sysvinit compilation. +- Fix some rpmlint warnings: + * Add versioned provides and obsoletes. + * Use %check section. + +------------------------------------------------------------------- +Fri Jan 18 14:03:43 CET 2008 - schwab@suse.de + +- Fix use of fnstsw. + +------------------------------------------------------------------- +Wed Nov 21 05:35:36 CET 2007 - pbaudis@suse.cz + +- Update to CVS branch glibc_2.7 as of today +- Remove the ::1 hack again +- Fix nscd race condition between mempool_alloc() and gc() [#288910] +- Fix nscd stack overflow in gc() when the number of cache entries + gets too large [#288910] +- Fix sunrpc udp client [#257745] +- Fix initgroups() crash in nss_compat [#310544] + +------------------------------------------------------------------- +Thu Sep 27 15:46:30 CEST 2007 - matz@suse.de + +- Remove broken x86_64 bcopy function. [#328486] + +------------------------------------------------------------------- +Sun Sep 16 14:04:30 CEST 2007 - aj@suse.de + +- Install gai.conf on all archs. + +------------------------------------------------------------------- +Thu Sep 13 17:20:58 CEST 2007 - pbaudis@suse.cz + +- Install the default gai.conf to /etc instead of docdir +- Do not return ::1 /etc/hosts records for 127.0.0.1 queries [#288879] + +------------------------------------------------------------------- +Wed Sep 5 03:07:39 CEST 2007 - pbaudis@suse.cz + +- Fix pthread_mutex_unlock() internal lock handling for incorrectly + written applications +- Fix nscd assertion failure when opening persistent db failed [#288910] + +------------------------------------------------------------------- +Mon Sep 3 20:10:39 CEST 2007 - mls@suse.de + +- fix typos in mdns patch [#206247], [#256690] + +------------------------------------------------------------------- +Fri Aug 31 17:38:02 CEST 2007 - aj@suse.de + +- Add /usr/share/locale-bundle/ as fallback directory for usage + with bundle-lang packages (see bug #302270). + +------------------------------------------------------------------- +Tue Aug 21 22:31:54 CEST 2007 - pbaudis@suse.cz + +- Reintroduce errorneously omitted AMD64 optimizations + (and fix them to compile again) + +------------------------------------------------------------------- +Thu Aug 16 09:47:53 CEST 2007 - aj@suse.de + +- Fix static linking (#233835). +- Silence rpmlint for profile package. +- Add Short-Description to nscd init script. + +------------------------------------------------------------------- +Mon Aug 13 19:09:31 CEST 2007 - aj@suse.de + +- Backport: + * Update kernel-features.h. + * Fix sched_getcpu error path on x86-64. + * Use upstreamed version of ldconfig cache speed ups. + +------------------------------------------------------------------- +Fri Aug 3 15:46:35 CEST 2007 - pbaudis@suse.cz + +- Remove the dynamic linker support for direct bindings (-Bdirect); + according to Michael Meeks, the performance improvement is too small +- Split timezone package to a separate physical package +- Update glibc to version 2.6.1 + +------------------------------------------------------------------- +Fri Jul 27 11:32:54 CEST 2007 - aj@suse.de + +- Use fdupes to reduce timezone data size. + +------------------------------------------------------------------- +Fri Jul 13 18:27:49 CEST 2007 - schwab@suse.de + +- Update to head of glibc-2.6 branch. +- Fix update on ppc. + +------------------------------------------------------------------- +Thu Jun 28 14:59:55 CEST 2007 - matz@suse.de + +- Add a provide for "rtld(GNU_HASH)". + +------------------------------------------------------------------- +Sun Jun 17 12:30:26 CEST 2007 - schwab@suse.de + +- Fix section selection in crt objects. + +------------------------------------------------------------------- +Thu Jun 7 02:43:29 CEST 2007 - pbaudis@suse.cz + +- Backport fix for crashing printf() of some invalid ldouble values + +------------------------------------------------------------------- +Wed May 30 04:40:25 CEST 2007 - pbaudis@suse.cz + +- Added few fixes from 2.6 CVS before 2.6.1 gets released + +------------------------------------------------------------------- +Fri May 18 23:14:42 CEST 2007 - pbaudis@suse.cz + +- Update glibc to version 2.6 +- Update tzdata to version 2007f + +------------------------------------------------------------------- +Fri May 4 11:24:53 CEST 2007 - schwab@suse.de + +- Update build checks. + +------------------------------------------------------------------- +Fri Apr 20 13:13:52 CEST 2007 - dmueller@suse.de + +- only keep symtab for libpthread* + +------------------------------------------------------------------- +Thu Apr 19 23:22:35 CEST 2007 - pbaudis@suse.cz + +- Fix strtod() exponent limit calculations [#230909] +- Fix random nscd crashes under very heavy passwd/group queries + load [#192391] +- Add some enums from CVS to sys/personality.h [#253710] +- Fix pthread_atfork()-induced hangs in threaded programs [#256237] +- Fix llrintl() on ppc64 [#241183] +- Fix makecontext() segfault [#249780] +- Fix potential dladdr() breakage [#241464] +- Fix some races in client programs with nscd garbage collection [#252138] + +------------------------------------------------------------------- +Fri Mar 30 02:54:06 CEST 2007 - pbaudis@suse.cz + +- Update localtime during timezone update [#239888] + +------------------------------------------------------------------- +Sun Mar 25 10:00:59 CEST 2007 - olh@suse.de + +- temporary disable powerpc cputuned libs to reduce turnaround time + +------------------------------------------------------------------- +Fri Feb 9 15:03:50 CET 2007 - pbaudis@suse.cz + +- Update to the latest upstream timezone data [#231833] + +------------------------------------------------------------------- +Fri Feb 2 11:42:51 CET 2007 - schwab@suse.de + +- Remove -ffortify. + +------------------------------------------------------------------- +Thu Feb 1 13:43:54 CET 2007 - schwab@suse.de + +- Remove -fstack-protector. + +------------------------------------------------------------------- +Mon Jan 29 16:13:09 CET 2007 - sbrabec@suse.cz + +- Removed references to /opt/gnome. + +------------------------------------------------------------------- +Thu Jan 25 21:14:58 CET 2007 - olh@suse.de + +- link power4 to ppc970, link power6 to power6x +- Update the powerpc cpu-tuned environment to v0.05 + +------------------------------------------------------------------- +Mon Jan 22 14:43:40 CET 2007 - schwab@suse.de + +- Update ppc build check. + +------------------------------------------------------------------- +Fri Nov 24 12:45:26 CET 2006 - pbaudis@suse.cz + +- Fix for Brazilian and Wester Australia timezone DSTs [#213375,#223196] + +------------------------------------------------------------------- +Thu Nov 16 21:59:06 CET 2006 - pbaudis@suse.cz + +- Disable power6 optimization for 10.2, not all pieces are there + [#219962] + +------------------------------------------------------------------- +Wed Oct 25 22:23:48 CEST 2006 - pbaudis@suse.cz + +- Change ld.so madvise() call to posix_fadvise() +- Fix mallopt(M_MXFAST,0) behaviour [#198760] +- Update the powerpc cpu-tuned environment to v0.04 [#215117] + +------------------------------------------------------------------- +Sun Oct 22 21:59:49 CEST 2006 - pbaudis@suse.cz + +- Update the powerpc cpu-tuned environment to v0.03 [#212549] +- Improve glibc powerpc optimization [#212548,#212580,#214282] + +------------------------------------------------------------------- +Tue Oct 17 21:03:54 CEST 2006 - mls@suse.de + +- add ldconfig-old-cache patch to speed up ldconfig + +------------------------------------------------------------------- +Sat Oct 14 12:23:53 CEST 2006 - olh@suse.de + +- dont use uninitialized (and wrong) variable in glibc-2.4.90-bdirect.diff + [#212470] + +------------------------------------------------------------------- +Thu Oct 12 02:33:58 CEST 2006 - pbaudis@suse.cz + +- Update to the latest 2.5 CVS +- More friendly -Bdirect behaviour in case of missing libraries +- Fix 2.4.90-nscd patch wrt. new gcc + +------------------------------------------------------------------- +Mon Oct 2 13:37:26 CEST 2006 - aj@suse.de + +- Fix warnings in testsuite (patch from CVS). + +------------------------------------------------------------------- +Fri Sep 29 22:06:43 CEST 2006 - pbaudis@suse.cz + +- Update to 2.5 CVS - official release (only minimal changes in CVS + since the last update) +- Fix a thinko in the -Bdirect patch + +------------------------------------------------------------------- +Fri Sep 29 19:51:24 CEST 2006 - dmueller@suse.de + +- fix devel requires + +------------------------------------------------------------------- +Fri Sep 29 04:27:40 CEST 2006 - pbaudis@suse.cz + +- Make the dynamic linker support direct bindings (Michael Meeks' + Solaris-like -Bdirect with minor changes by me) +- Split the kernel headers to a new package (linux-kernel-headers) + +------------------------------------------------------------------- +Wed Sep 27 14:59:32 CEST 2006 - schwab@suse.de + +- Fix broken assertion [#208189]. + +------------------------------------------------------------------- +Tue Sep 26 18:10:38 CEST 2006 - pbaudis@suse.cz + +- Fix mistake when removing some patches + +------------------------------------------------------------------- +Mon Sep 25 21:15:15 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS + +------------------------------------------------------------------- +Sat Sep 23 04:36:58 CEST 2006 - pbaudis@suse.cz + +- Fix 64bit-cleanliness gcc warnings + +------------------------------------------------------------------- +Thu Sep 21 23:52:13 CEST 2006 - pbaudis@suse.cz + +- Add /usr/lib{,64}/Xaw3d to /etc/ld.so.conf (by schwab@suse.de, + from original STABLE) [#205169] +- Fix chown() instead of lchown() called in fchownat() emulation + [#201751] +- Fix glob() overflowing stack when producing massive number of + matches [#190458] +- Update to current CVS + +------------------------------------------------------------------- +Wed Sep 20 23:48:20 CEST 2006 - pbaudis@suse.cz + +- Fix cut'n'paste error in a last-minute change + +------------------------------------------------------------------- +Wed Sep 20 22:07:59 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS +- Fix powerpc-cpu tarball extension +- Move crypt-blowfish to a patch so that quilt works on the tree + +------------------------------------------------------------------- +Sat Sep 2 19:01:21 CEST 2006 - schwab@suse.de + +- Use asm-powerpc for ppc and ppc64. +- Fix chroot check in glibc_post_upgrade. + +------------------------------------------------------------------- +Mon Aug 28 01:24:24 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS, should fix false positive heap overflow + trigger from malloc() causing gcc to hang [#201724] + +------------------------------------------------------------------- +Wed Aug 23 23:56:35 CEST 2006 - pbaudis@suse.cz + +- Update the powerpc cpu-tuned environment to v0.02 [#199274] +- Update to current CVS +- Drop pthread_mutexattr_getprioceiling() out of range fix + +------------------------------------------------------------------- +Thu Aug 10 20:10:04 CEST 2006 - pbaudis@suse.cz + +Ported from STABLE: +- Remove libc5 reference from /etc/ld.so.conf, shlibs5 is no longer + supported [#181947] +- Fix name of a dummy ia64 header from offsets.h to asm-offsets.h + [#191394] + +------------------------------------------------------------------- +Sun Jul 30 23:33:04 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS snapshot (highlight: support for .gnu.hash + fast linking support) + +------------------------------------------------------------------- +Wed Jul 12 03:15:08 CEST 2006 - pbaudis@suse.cz + +- pthread_mutexattr_getprioceiling() was returning prioceiling out + of range [#182782] + +------------------------------------------------------------------- +Wed Jul 12 02:39:22 CEST 2006 - pbaudis@suse.cz + +- Fix the HTML documentation missing an index [#190585] + +------------------------------------------------------------------- +Sat Jun 24 18:32:42 CEST 2006 - kukuk@suse.de + +- Update to current CVS snapshot +- Update to kernel-headers 2.6.17 +- Remove HZ define (sysconf(_SC_CLK_TCK) instead) + +------------------------------------------------------------------- +Tue Jun 13 11:49:43 CEST 2006 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue May 2 14:10:41 CEST 2006 - pbaudis@suse.cz + +- Fix bad memset() size in NTPL code [#159184] + +------------------------------------------------------------------- +Tue May 2 10:42:55 CEST 2006 - kukuk@suse.de + +- asm-powerpc/page.h: Don't move #ifdef __KERNEL__ [#171010] +- bits/mman.h: Fix value of MADV_REMOVE [#170734] + +------------------------------------------------------------------- +Mon Apr 24 12:04:12 CEST 2006 - kukuk@suse.de + +- Fix china timezone mess [#163674] +- Don't include linux/stddef.h [#167964] + +------------------------------------------------------------------- +Tue Apr 18 14:38:57 CEST 2006 - schwab@suse.de + +- Sanitize . + +------------------------------------------------------------------- +Thu Apr 13 13:34:07 CEST 2006 - kukuk@suse.de + +- Add /usr/include/linux/taskstats.h [#141936] + +------------------------------------------------------------------- +Tue Apr 11 12:20:57 CEST 2006 - kukuk@suse.de + +- nptl/init.c (sigcancel_handler): Compare with correct PID even + if the thread is in the middle of a fork call. + (sighandler_setxid): Likewise. + +------------------------------------------------------------------- +Sun Apr 9 16:27:20 CEST 2006 - ihno@suse.de + +- S390 fix for startupcode. Part of it was not PIC. + +------------------------------------------------------------------- +Fri Apr 7 13:42:20 CEST 2006 - kukuk@suse.de + +- Don't hardcode syscall numbers at our own + +------------------------------------------------------------------- +Tue Apr 4 22:10:47 CEST 2006 - schwab@suse.de + +- Fix readlink declaration. + +------------------------------------------------------------------- +Mon Apr 3 13:40:54 CEST 2006 - kukuk@suse.de + +- Update from CVS: + - nscd bug fixes + - Match return value of readlink to what POSIX says + - Fix NIS+ checks for NULL pointer + +------------------------------------------------------------------- +Sun Apr 2 20:53:17 CEST 2006 - dmueller@suse.de + +- Fix clients crash if nscd is unresponsive (glibc-#2501) +- Fix fd leak in nscd daemon (glibc-#2498) + +------------------------------------------------------------------- +Sat Apr 1 21:48:54 CEST 2006 - schwab@suse.de + +- Fix on ppc64. + +------------------------------------------------------------------- +Fri Mar 31 15:50:25 CEST 2006 - schwab@suse.de + +- Extend last change also to ppc64. + +------------------------------------------------------------------- +Sun Mar 26 21:08:58 CEST 2006 - schwab@suse.de + +- Terminate FDE before clone syscall. + +------------------------------------------------------------------- +Fri Mar 24 14:58:29 CET 2006 - ro@suse.de + +- kernel-headers: asm-powerpc: define PAGE_MASK in page.h + +------------------------------------------------------------------- +Mon Mar 20 13:57:27 CET 2006 - kukuk@suse.de + +- Update to final 2.6.16 kernel headers +- Update to current CVS: + - Don't use TLS before setting it up. + - Fix rounding of long doubles on ppc64. + - Correct usage of cfi_offset on ppc/ppc64. + - Fix memory leak in dlopen. + +------------------------------------------------------------------- +Tue Mar 14 17:08:27 CET 2006 - schwab@suse.de + +- Update fnmatch patch. + +------------------------------------------------------------------- +Fri Mar 10 13:36:38 CET 2006 - kukuk@suse.de + +- Disable unshare() syscall (request of kernel developer) + +------------------------------------------------------------------- +Fri Mar 10 08:30:53 CET 2006 - kukuk@suse.de + +- Don't include linux/interrupt.h from linux/rtc.h +- Revert last change to linux/input.h, disable struct +- Update to current CVS (nptl/ia64 fix) + +------------------------------------------------------------------- +Thu Mar 9 07:58:20 CET 2006 - kukuk@suse.de + +- Fix linux/input.h for userspace inclusion + +------------------------------------------------------------------- +Wed Mar 8 22:06:11 CET 2006 - kukuk@suse.de + +- Update kernel headers to 2.6.16-rc5 + +------------------------------------------------------------------- +Mon Mar 6 13:41:08 CET 2006 - kukuk@suse.de + +- Update to 2.4 CVS + - official release + - Fix free on ppc [#155374] + - Various sysconf() fixes + +------------------------------------------------------------------- +Sat Mar 4 18:12:36 CET 2006 - kukuk@suse.de + +- Update to CVS + - ldconfig/prelink fixes + +------------------------------------------------------------------- +Fri Mar 3 17:32:56 CET 2006 - aj@suse.de + +- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). + +------------------------------------------------------------------- +Fri Mar 3 10:58:02 CET 2006 - kukuk@suse.de + +- Update to CVS + - Fix ftw test suite failures + - Fix alignment of malloc for long double + +------------------------------------------------------------------- +Thu Mar 2 09:56:59 CET 2006 - kukuk@suse.de + +- Update to 2.3.91 CVS + - Fix 6arg syscall on s390x + - memccpy fix on IA64 + +------------------------------------------------------------------- +Wed Mar 1 08:54:53 CET 2006 - kukuk@suse.de + +- Update to CVS + - New linkat interface + - Update from tzdata2006b + - Define MADV_DONTFORK and MADV_DOFORK. + - Add robust mutex to NPTL + +------------------------------------------------------------------- +Thu Feb 23 15:26:29 CET 2006 - kukuk@suse.de + +- Reenable power optimized code again [#142839] + +------------------------------------------------------------------- +Sun Feb 12 09:45:39 CET 2006 - kukuk@suse.de + +- Disable power optimized code + +------------------------------------------------------------------- +Thu Feb 9 10:50:12 CET 2006 - kukuk@suse.de + +- Update to CVS + - Add unshare prototype + - Add memory barrier on i386/NPTL + +------------------------------------------------------------------- +Wed Feb 8 10:50:07 CET 2006 - kukuk@suse.de + +- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] + +------------------------------------------------------------------- +Mon Feb 6 16:58:50 CET 2006 - kukuk@suse.de + +- Update to current CVS +- Fix alternate locale search path patch [#147685] + +------------------------------------------------------------------- +Thu Feb 2 12:13:19 CET 2006 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Mon Jan 30 16:10:35 CET 2006 - schwab@suse.de + +- Fix the fix. + +------------------------------------------------------------------- +Sat Jan 28 18:42:08 CET 2006 - kukuk@suse.de + +- Fix seg.fault in __atfct_seterrno if called from futimesat() +- Apply patches for CPU-Tuned Environment on Power [#142839] + +------------------------------------------------------------------- +Fri Jan 27 12:10:55 CET 2006 - kukuk@suse.de + +- Cleanup ld.so.conf + +------------------------------------------------------------------- +Thu Jan 26 08:53:33 CET 2006 - kukuk@suse.de + +- Add alternate directory for translations [#144073] + +------------------------------------------------------------------- +Thu Jan 26 00:41:37 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Mon Jan 23 17:44:50 CET 2006 - kukuk@suse.de + +- Update to CVS +- Fix build_locales + +------------------------------------------------------------------- +Sat Jan 21 10:24:02 CET 2006 - kukuk@suse.de + +- Update to CVS +- Fix inclusion of sys/poll.h with _GNU_SOURCE defined + +------------------------------------------------------------------- +Fri Jan 20 15:02:35 CET 2006 - kukuk@suse.de + +- Update to CVS + +------------------------------------------------------------------- +Sun Jan 15 08:28:26 CET 2006 - kukuk@suse.de + +- Update to CVS (fix long double configure check) + +------------------------------------------------------------------- +Sun Jan 15 01:59:54 CET 2006 - schwab@suse.de + +- Readd , , . + +------------------------------------------------------------------- +Sun Jan 15 01:08:22 CET 2006 - schwab@suse.de + +- Readd . + +------------------------------------------------------------------- +Sat Jan 14 22:33:32 CET 2006 - kukuk@suse.de + +- Update to current CVS (long double support) + +------------------------------------------------------------------- +Fri Jan 13 09:17:17 CET 2006 - aj@suse.de + +- Fix x86-64 w_exp to not use extra plt. + +------------------------------------------------------------------- +Thu Jan 12 22:39:01 CET 2006 - kukuk@suse.de + +- Fix asm-s390/setup.h for userspace inclusion +- nsswitch.conf: Add nis to netgroup and automount entry +- Fix sys/procfs.h for ppc64 + +------------------------------------------------------------------- +Mon Jan 9 23:20:14 CET 2006 - kukuk@suse.de + +- Update to current CVS (fix for pthread.h with -std=c99) +- Define PAGE_SIZE on POWER +- Don't include linux/sched.h in asm-power/elf.h + +------------------------------------------------------------------- +Sun Jan 8 17:58:11 CET 2006 - kukuk@suse.de + +- Fix linux/acct.h for userland inclusion + +------------------------------------------------------------------- +Sun Jan 8 11:48:58 CET 2006 - kukuk@suse.de + +- Update to current CVS +- Remove CHILD_MAX from kernel-headers +- Copy subdirectories of asm-power, too. +- Remove da_DK@euro (does not exist) + +------------------------------------------------------------------- +Sat Jan 7 10:02:43 CET 2006 - kukuk@suse.de + +- Fix ext2 kernel headers +- Update to current CVS + +------------------------------------------------------------------- +Fri Jan 6 12:28:10 CET 2006 - kukuk@suse.de + +- Update to kernel headers 2.6.15 + +------------------------------------------------------------------- +Fri Jan 6 00:58:28 CET 2006 - kukuk@suse.de + +- Update crypt_blowfish to version 1.0 +- Update to current CVS +- Adjust nscd patches + +------------------------------------------------------------------- +Tue Jan 3 17:19:36 CET 2006 - aj@suse.de + +- Update to current CVS to fix pthread.h on 64-bit systems for C++. + +------------------------------------------------------------------- +Tue Jan 3 06:04:26 CET 2006 - aj@suse.de + +- Enable string patch again. +- Update to current CVS. + +------------------------------------------------------------------- +Wed Dec 21 15:11:14 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Fix ldconfig + +------------------------------------------------------------------- +Sat Dec 17 09:49:18 CET 2005 - kukuk@suse.de + +- Remove /usr/lib/zoneinfo +- Add /etc/localtime to filelist +- Update to current CVS +- Fix glibc #1978: statvfs does not know about current filesystems +- Fix wrong error return code of time() on x86 +- Remove nscd_nischeck +- Remove audit from nfb +- Remove LinuxThreads + +------------------------------------------------------------------- +Wed Dec 14 18:00:59 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Remove nscd_nischeck +- Remove audit from nfb + +------------------------------------------------------------------- +Mon Dec 5 12:07:05 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Disable SELinux + +------------------------------------------------------------------- +Thu Nov 24 15:54:27 CET 2005 - kukuk@suse.de + +- Remove obsolete patches: + - glibc-2.3.asprintf-error_handling.diff + - glibc-2.3.90-missing-string_h.diff + +------------------------------------------------------------------- +Wed Nov 23 17:20:10 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Don't install in parallel + +------------------------------------------------------------------- +Fri Nov 18 13:42:43 CET 2005 - kukuk@suse.de + +- Update to current CVS to fix compiling with new binutils + +------------------------------------------------------------------- +Wed Nov 16 18:33:57 CET 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Sat Nov 5 14:44:07 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Disable linuxthreads on POWER and Itanium +- Fix kernel-headers for userland inclusion + +------------------------------------------------------------------- +Wed Nov 2 17:12:36 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Update to kernel-headers 2.6.14 + +------------------------------------------------------------------- +Tue Oct 18 17:37:08 CEST 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Sat Oct 1 23:00:04 CEST 2005 - schwab@suse.de + +- Update libm ULPs. +- Fix limit in getcwd. + +------------------------------------------------------------------- +Thu Sep 15 16:13:50 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- Update to final 2.6.13 kernel headers +- Adjust bindresvport.blacklist patch to check already ports >= 512 + +------------------------------------------------------------------- +Fri Aug 26 16:41:56 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- init.d/nscd: Remove -S support (was removed from nscd) + +------------------------------------------------------------------- +Fri Aug 19 18:28:24 CEST 2005 - schwab@suse.de + +- Fix comment. + +------------------------------------------------------------------- +Fri Aug 19 17:36:24 CEST 2005 - matz@suse.de + +- Change .note.SuSE format [#105825]. + +------------------------------------------------------------------- +Fri Aug 19 17:13:21 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- Move all obsolete libraries into own subpackage and document + them as obsolete + +------------------------------------------------------------------- +Fri Aug 5 10:32:38 CEST 2005 - schwab@suse.de + +- -mno-tls-direct-seg-refs is x86-only + +------------------------------------------------------------------- +Tue Aug 2 14:54:01 CEST 2005 - kukuk@suse.de + +- Update to 2.3.x CVS branch +- Compile with -mno-tls-direct-seg-refs + +------------------------------------------------------------------- +Fri Jul 29 11:12:02 CEST 2005 - kukuk@suse.de + +- Update to current CVS head + +------------------------------------------------------------------- +Wed Jul 27 23:13:04 CEST 2005 - schwab@suse.de + +- Update libm ULPs for ia64. +- Add linuxthreads stack guard support for ia64. + +------------------------------------------------------------------- +Sat Jul 23 10:05:16 CEST 2005 - kukuk@suse.de + +- Update to current CVS head (adds bits/wchar2.h) +- Move LinuxThreads version to obsolete/linuxthreads + +------------------------------------------------------------------- +Thu Jul 21 15:04:31 CEST 2005 - kukuk@suse.de + +- Update to current CVS head + +------------------------------------------------------------------- +Fri Jul 15 15:45:35 CEST 2005 - schwab@suse.de + +- Fix file list. + +------------------------------------------------------------------- +Fri Jul 15 12:09:08 CEST 2005 - aj@suse.de + +- Fix amd64 string routines and math routines. + +------------------------------------------------------------------- +Fri Jul 15 08:45:27 CEST 2005 - kukuk@suse.de + +- Use old LinuxThreads only for runtime and remove static version + and headers +- Update to current CVS head +- Remove own texi2html + +------------------------------------------------------------------- +Mon Jul 11 11:00:47 CEST 2005 - kukuk@suse.de + +- Install generic stdio-lock.h header file + +------------------------------------------------------------------- +Sat Jul 9 18:46:46 CEST 2005 - kukuk@suse.de + +- Temporary disable AMD64 string optimization + +------------------------------------------------------------------- +Wed Jul 6 09:58:39 CEST 2005 - kukuk@suse.de + +- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] + +------------------------------------------------------------------- +Mon Jul 4 20:41:47 CEST 2005 - kukuk@suse.de + +- nss_compat: Preserve original return value [Bug #95033] +- Cleanup old Obsoletes/Requires + +------------------------------------------------------------------- +Mon Jun 27 13:49:38 CEST 2005 - kukuk@suse.de + +- Update to current gilbc CVS snapshot + +------------------------------------------------------------------- +Thu Jun 23 23:25:42 CEST 2005 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Adjust nscd patch +- Enable SELinux/audit support for nscd +- Update .note.SuSE version + +------------------------------------------------------------------- +Mon Jun 20 12:35:20 CEST 2005 - kukuk@suse.de + +- Update to final 2.6.12 kernel headers +- Update to current glibc CVS snapshot + +------------------------------------------------------------------- +Thu Jun 16 17:03:43 CEST 2005 - kukuk@suse.de + +- Update linux/audit.h header +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Jun 13 14:48:53 CEST 2005 - kukuk@suse.de + +- Don't terminate strings twice in nis/netgroup code. +- netinet/if_tr.h: don't include kernel headers. + +------------------------------------------------------------------- +Wed Jun 8 16:26:21 CEST 2005 - kukuk@suse.de + +- Update to kernel-headers 2.6.12-rc6 +- Fix build on s390 and s390x + +------------------------------------------------------------------- +Wed Jun 8 12:08:49 CEST 2005 - matz@suse.de + +- Don't strip .symtab from libpthread.so.0 (and other libs). + Fixes debugging of threaded programs (#81253). + +------------------------------------------------------------------- +Mon Jun 6 18:47:22 CEST 2005 - kukuk@suse.de + +- Update to current CVS head +- Update to kernel-headers 2.6.12-rc5 + +------------------------------------------------------------------- +Thu May 26 20:07:11 CEST 2005 - schwab@suse.de + +- No longer build loadlocale.c with -fno-unit-at-a-time. + +------------------------------------------------------------------- +Tue May 24 11:09:00 CEST 2005 - kukuk@suse.de + +- Update to current CVS head, obsoletes: + - glibc-2.3.90-libm.diff + - glibc-2.3.90-i386-sysdep.diff + - warn.diff + - dl-osinfo.diff + Adjusted: + - glibc-2.3.90-bindresvport.blacklist.diff + +------------------------------------------------------------------- +Sun May 22 01:53:44 CEST 2005 - schwab@suse.de + +- Fix missing include. + +------------------------------------------------------------------- +Tue May 17 23:46:19 CEST 2005 - schwab@suse.de + +- Fix warning. + +------------------------------------------------------------------- +Fri Apr 29 15:11:22 CEST 2005 - kukuk@suse.de + +- Update to latest CVS snapshost + +------------------------------------------------------------------- +Sat Apr 23 17:05:58 CEST 2005 - kukuk@suse.de + +- Fix all the archs using wrong FLAGS + +------------------------------------------------------------------- +Sat Apr 23 08:02:31 CEST 2005 - kukuk@suse.de + +- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS + +------------------------------------------------------------------- +Fri Apr 22 13:05:40 CEST 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Fri Apr 22 12:45:26 CEST 2005 - kukuk@suse.de + +- Check if nice value does not conflict with test suite + +------------------------------------------------------------------- +Tue Apr 19 13:54:03 CEST 2005 - mls@suse.de + +- resolv: trigger re-read of /etc/resolv.conf for all threads if + a change is detected +- nscd: support a negative timeout of zero, used by hosts cache + +------------------------------------------------------------------- +Mon Apr 18 17:31:23 CEST 2005 - meissner@suse.de + +- Enable fortify possibility even for GCC 4.0, we apply + the necessary patch to the SUSE GCC 4.0. + +------------------------------------------------------------------- +Sat Apr 16 12:16:13 CEST 2005 - aj@suse.de + +- Apply amd64 string diff again. + +------------------------------------------------------------------- +Tue Apr 12 11:35:46 CEST 2005 - kukuk@suse.de + +- Update kernel-headers to 2.6.10 +- Update to current CVS snapshot + +------------------------------------------------------------------- +Wed Apr 6 18:33:32 CEST 2005 - schwab@suse.de + +- Cleanup neededforbuild. + +------------------------------------------------------------------- +Tue Apr 5 22:02:25 CEST 2005 - aj@suse.de + +- Add gettext-devel to neededforbuild. + +------------------------------------------------------------------- +Tue Apr 5 16:45:06 CEST 2005 - aj@suse.de + +- Do not build on xen machines. +- Adjust libm ULPs for PowerPC. + +------------------------------------------------------------------- +Fri Apr 1 14:20:45 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue Mar 29 10:57:40 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot +- Fix compiler warnings on ix86 + +------------------------------------------------------------------- +Mon Mar 28 17:27:44 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot +- Disable Noversion Patch on i386 temporary + +------------------------------------------------------------------- +Fri Mar 18 14:33:22 CET 2005 - ro@suse.de + +- check-build.sh: require 2.6.11 on x86,x86_64 for build + +------------------------------------------------------------------- +Thu Mar 17 13:57:22 CET 2005 - mls@suse.de + +- nscd: enable hosts cache +- nscd: also watch /etc/resolv.conf +- nscd: check files every 3 seconds +- nscd: deal correctly with missing files + +------------------------------------------------------------------- +Tue Mar 15 15:50:12 CET 2005 - kukuk@suse.de + +- Update to current CVS snapshot. + +------------------------------------------------------------------- +Sat Feb 12 02:49:56 CET 2005 - schwab@suse.de + +- Remove const from __pthread_internal_tsd_address. + +------------------------------------------------------------------- +Fri Feb 11 15:44:31 CET 2005 - schwab@suse.de + +- Update to current CVS. +- Link glibc_post_upgrade against new libc. +- Fix build error with gcc4. + +------------------------------------------------------------------- +Wed Feb 9 10:40:29 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Fix bindresvport blacklist handling. +- Increase buffer in tst-cancel17 to match new kernel buffer size + [#50277] +- Enable LinuxThreads again +- Remove ia64-audit patch (is upstream) + +------------------------------------------------------------------- +Mon Feb 7 13:15:58 CET 2005 - aj@suse.de + +- Add patch to allow compilation with gcc4. + +------------------------------------------------------------------- +Mon Jan 31 16:33:47 CET 2005 - schwab@suse.de + +- Readd support for LD_AUDIT on ia64. + +------------------------------------------------------------------- +Mon Jan 31 14:32:01 CET 2005 - kukuk@suse.de + +- Add memory clobber to string inline assemblies on s390 [#50284]. + +------------------------------------------------------------------- +Mon Jan 31 12:55:59 CET 2005 - kukuk@suse.de + +- Fix filelist on i686 if we build NPTL only version + +------------------------------------------------------------------- +Mon Jan 31 09:17:33 CET 2005 - aj@suse.de + +- Generate new ULPs file for i386 needed by GCC 4. + +------------------------------------------------------------------- +Sun Jan 30 12:43:56 CET 2005 - kukuk@suse.de + +- Include own copy of texi2html +- Add glibc_pst_upgrade program (based on version from FC3) +- Update to current CVS + +------------------------------------------------------------------- +Thu Jan 27 23:28:57 CET 2005 - kukuk@suse.de + +- Re-add patch for timezone/zic.c (got lost with last merge) + +------------------------------------------------------------------- +Wed Jan 26 11:34:36 CET 2005 - kukuk@suse.de + +- Update timezone data to 2005c release (fixes zdump crash on + 64bit architectures) + +------------------------------------------------------------------- +Sat Jan 22 15:45:25 CET 2005 - schwab@suse.de + +- Add basic (incomplete) support for LD_AUDIT on ia64. + +------------------------------------------------------------------- +Fri Jan 21 11:00:08 CET 2005 - kukuk@suse.de + +- Enable patch for [Bug #49833] +- Allow to build NPTL only glibc +- Update to CVS from Jan 16, 2005, containing: +- Fix execlp argument in SunRPC code [glibc #681] +- Fix errno return values for futimes [glibc #633] +- Update FPU function on PPC/PPC64 [Bug #49764] + +------------------------------------------------------------------- +Mon Jan 17 10:40:24 CET 2005 - aj@suse.de + +- Enable amd64 string patch again after fixing failing hunks. +- Handle missing cpuid better for amd64 string functions. [#49803] + +------------------------------------------------------------------- +Sat Jan 15 16:05:36 CET 2005 - aj@suse.de + +- Fix amd64 string patch to use correct datatype. + +------------------------------------------------------------------- +Fri Jan 14 14:06:43 CET 2005 - kukuk@suse.de + +- Fix memory corruption in getgrouplist function [Bug #49833] + +------------------------------------------------------------------- +Tue Jan 11 11:01:26 CET 2005 - kukuk@suse.de + +- Enable all LinuxThreads tests again +- Finalize getconf -a patch (make it compatible with Solaris) +- Rewrite getconf manual page and mention new option +- Merge GB18030 patches into one. + +------------------------------------------------------------------- +Thu Dec 30 10:57:40 CET 2004 - kukuk@suse.de + +- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with + kernel-headers.SuSE.diff +- Revert nscd paths on old SuSE Linux distributions + +------------------------------------------------------------------- +Wed Dec 29 22:33:00 CET 2004 - kukuk@suse.de + +- Update to glibc 2.3.90 CVS branch +- Remove alarm-round.patch (merged upstream) + +------------------------------------------------------------------- +Thu Dec 9 14:19:05 CET 2004 - kukuk@suse.de + +- Update to current CVS +- Move nscd persistent database files back to /var/run/nscd + +------------------------------------------------------------------- +Mon Dec 6 15:43:08 CET 2004 - kukuk@suse.de + +- Update to current CVS +- Fix more kernel headers for userland inclusion + +------------------------------------------------------------------- +Fri Nov 26 14:33:20 CET 2004 - ro@suse.de + +- kernel-headers.diff: define __force in compiler.h + +------------------------------------------------------------------- +Thu Nov 25 17:52:39 CET 2004 - schwab@suse.de + +- Add Intel libm update. + +------------------------------------------------------------------- +Thu Nov 25 12:08:17 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS +- Update kernel headers to 2.6.9 + +------------------------------------------------------------------- +Thu Nov 18 15:11:32 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS + +------------------------------------------------------------------- +Mon Nov 15 14:11:27 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS + +------------------------------------------------------------------- +Mon Nov 8 10:50:27 CET 2004 - kukuk@suse.de + +- Blacklist port 921 (lwresd) for usage by bindresvport() +- Update to current glibc CVS +- Add /var/run/nscd/* files as ghost entries + +------------------------------------------------------------------- +Mon Oct 18 13:54:04 CEST 2004 - aj@suse.de + +- Don't use special fdim functions for x86-64 since those give + wrong results for fdim (inf,inf). +- Fix ppc64 rebuild issue with ppc32 system [#47325]. + +------------------------------------------------------------------- +Wed Oct 13 14:06:55 CEST 2004 - kukuk@suse.de + +- Fix symlink librt.so -> tls/librt.so.1 +- Backout last glob changes +- Disable nptl as default for linking + +------------------------------------------------------------------- +Tue Oct 12 21:12:15 CEST 2004 - kukuk@suse.de + +- Install kernel-headers after merging linuxthreads/NPTL headers + +------------------------------------------------------------------- +Tue Oct 12 09:36:48 CEST 2004 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Oct 11 15:11:03 CEST 2004 - kukuk@suse.de + +- Make NPTL default for linking + +------------------------------------------------------------------- +Fri Oct 1 13:34:49 CEST 2004 - kukuk@suse.de + +- Update to current CVS snapshot +- Add workaround for linuxthreads/without-__threads bug +- Remove KDE/ldconfig workaround +- Set SuSE ABI note to 9.3 + +------------------------------------------------------------------- +Sun Sep 26 16:56:19 CEST 2004 - kukuk@suse.de + +- Add lib/nptl/librt.so symlink to tls/librt.so.1 +- Update to current CVS + +------------------------------------------------------------------- +Sat Sep 25 13:43:09 CEST 2004 - kukuk@suse.de + +- Implement mq support for rtkaio and enable it again + +------------------------------------------------------------------- +Fri Sep 24 15:37:08 CEST 2004 - kukuk@suse.de + +- Add zh_SG.UTF-8 [Bug #46024] + +------------------------------------------------------------------- +Thu Sep 23 16:22:33 CEST 2004 - kukuk@suse.de + +- Sync sys/mount.h and linux/fs.h + +------------------------------------------------------------------- +Wed Sep 22 15:33:10 CEST 2004 - kukuk@suse.de + +- Make mdns support configurable in /etc/host.conf + +------------------------------------------------------------------- +Mon Sep 20 17:58:13 CEST 2004 - kukuk@suse.de + +- Fix invalidating of nscd caches and getaddrinfo() + +------------------------------------------------------------------- +Fri Sep 17 07:13:01 CEST 2004 - kukuk@suse.de + +- Update to current CVS (nscd and glob.h fixes) + +------------------------------------------------------------------- +Thu Sep 16 16:37:45 CEST 2004 - kukuk@suse.de + +- Fix getaddrinfo/nscd support + +------------------------------------------------------------------- +Wed Sep 15 14:11:29 CEST 2004 - kukuk@suse.de + +- Update to current CVS, remove merged patches + +------------------------------------------------------------------- +Sun Sep 12 09:06:31 CEST 2004 - kukuk@suse.de + +- Update to CVS: Fix nscd crash if one service is disabled +- glob.h: Add workaround for invalid prototypes +- nss_compat: Check that buffer is larger than 0 bytes + +------------------------------------------------------------------- +Sat Sep 11 00:50:47 CEST 2004 - kukuk@suse.de + +- Update to CVS: Fix cdefs.h for C++ usage + +------------------------------------------------------------------- +Fri Sep 10 14:31:47 CEST 2004 - kukuk@suse.de + +- Add lwres to hosts search order in nsswitch.conf +- Update to current CVS +- Use new nscd paths for socket/pid file +- Enable NPTL on i586 +- Add --print-all option to getconf + +------------------------------------------------------------------- +Thu Sep 2 11:13:48 CEST 2004 - kukuk@suse.de + +- Fix NPTL header files on x86-64 for 32bit compilation +- Apply various fixes from CVS +- Remove pre-Install for -devel package (no longer necessary) + +------------------------------------------------------------------- +Wed Aug 25 16:16:32 CEST 2004 - kukuk@suse.de + +- Don't compile in eval.c + +------------------------------------------------------------------- +Mon Aug 23 10:20:09 CEST 2004 - kukuk@suse.de + +- Update to current CVS: + - Use CVS version for last fix. + - Add malloc sanity checks for double free. + +------------------------------------------------------------------- +Sat Aug 21 00:06:58 CEST 2004 - schwab@suse.de + +- Fix cancellable syscalls in librt w/ linuxthreads. + +------------------------------------------------------------------- +Fri Aug 20 20:40:38 CEST 2004 - kukuk@suse.de + +- Update to current CVS [#43993] + +------------------------------------------------------------------- +Thu Aug 19 13:56:15 CEST 2004 - schwab@suse.de + +- Better fix for asm-ia64/gcc_intrin.h. + +------------------------------------------------------------------- +Wed Aug 18 14:53:47 CEST 2004 - kukuk@suse.de + +- Update to current CVS +- Workaround linux/ixjuser.h problem not including compiler.h +- Workaround linux/capi.h problem not including compiler.h + +------------------------------------------------------------------- +Tue Aug 17 18:32:29 CEST 2004 - schwab@suse.de + +- Fix asm-ia64/gcc_intrin.h. + +------------------------------------------------------------------- +Tue Aug 17 12:13:41 CEST 2004 - kukuk@suse.de + +- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] + +------------------------------------------------------------------- +Mon Aug 16 11:51:37 CEST 2004 - kukuk@suse.de + +- Update to current CVS version and update to + kernel-headers 2.6.8.1 to fix NPTL deadlock problems +- Disable linuxthreads/tst-clock1, does not work on i586 and lower + +------------------------------------------------------------------- +Fri Aug 13 14:45:31 CEST 2004 - kukuk@suse.de + +- Update to current CVS version +- Cleanup/adjust all patches + +------------------------------------------------------------------- +Thu Jun 17 12:12:31 CEST 2004 - kukuk@suse.de + +- Fix sched_setaffinity return/errno code in error case [#42124] + +------------------------------------------------------------------- +Wed Jun 16 07:45:07 CEST 2004 - meissner@suse.de + +- Updated altivec set/get/swapcontext patch to fix + more problems on altivec capable machines [#42039]. +- glibc is also able to build on -pmac64 kernels. + +------------------------------------------------------------------- +Mon Jun 14 20:12:00 CEST 2004 - kukuk@suse.de + +- Add fixes from CVS: + - sysconf return value fixes + - nscd host caching deadlock + - backtrace for s390/s390x/ia64 static linked binaries + +------------------------------------------------------------------- +Mon Jun 14 18:54:05 CEST 2004 - kukuk@suse.de + +- Increase listen backlog in RPC code [#41955] + +------------------------------------------------------------------- +Wed Jun 9 16:21:30 CEST 2004 - meissner@suse.de + +- Fixed typos in powerpc* *context functions to not destroy the r19 + register and save the v19 register correctly. [#41790] + +------------------------------------------------------------------- +Sat Jun 5 08:40:29 CEST 2004 - aj@suse.de + +- Fix makecontext with more than 6 arguments on x86-64 [#40546]. + +------------------------------------------------------------------- +Mon May 24 18:04:38 CEST 2004 - kukuk@suse.de + +- Update to kernel-headers 2.6.6 +- Update to current glibc CVS +- Disable rtkaio temporary + +------------------------------------------------------------------- +Sun May 23 21:44:19 CEST 2004 - kukuk@suse.de + +- Fix pthread_cond_wait on not ix86 and x86-64 architectures + +------------------------------------------------------------------- +Thu May 20 14:11:47 CEST 2004 - kukuk@suse.de + +- Add PPC64 kernel header file fixes [#40831,#40870] + +------------------------------------------------------------------- +Wed May 19 16:18:37 CEST 2004 - kukuk@suse.de + +- Add additional NPTL fixes from CVS + +------------------------------------------------------------------- +Tue May 18 10:52:27 CEST 2004 - schwab@suse.de + +- Fix mapping of DSOs with holes. + +------------------------------------------------------------------- +Fri May 14 13:50:37 CEST 2004 - schwab@suse.de + +- Fix rounding in alarm [#40552]. + +------------------------------------------------------------------- +Wed May 12 11:43:38 CEST 2004 - schwab@suse.de + +- Fix uninitialized array in regexp compiler [#40009]. + +------------------------------------------------------------------- +Tue May 11 11:45:08 CEST 2004 - kukuk@suse.de + +- Apply lot of fixes from current CVS +- Fix alignment of stack for makecontext on x86-64 [Bug #39413] +- Make XTABS identical to TABDLY on PPC + +------------------------------------------------------------------- +Wed May 5 13:50:51 CEST 2004 - kukuk@suse.de + +- Add some header fixes to match POSIX + +------------------------------------------------------------------- +Tue May 4 11:27:15 CEST 2004 - meissner@suse.de + +- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) + +------------------------------------------------------------------- +Mon May 3 13:42:12 CEST 2004 - kukuk@suse.de + +- Port --mlock option for ld.so from UL1 [Bug #39569] + +------------------------------------------------------------------- +Tue Apr 20 11:23:55 CEST 2004 - kukuk@suse.de + +- Add execstack fix for s390 + +------------------------------------------------------------------- +Mon Apr 19 13:11:27 CEST 2004 - kukuk@suse.de + +- Update to current CVS version (fix problems with new binutils + and gcc) + +------------------------------------------------------------------- +Mon Apr 19 08:29:42 CEST 2004 - kukuk@suse.de + +- Add pthread_getattr_np and syslog fixes from CVS +- Update gb18030 and big5hkscs gconv modules [Bug #39080] + +------------------------------------------------------------------- +Sat Apr 17 17:42:48 CEST 2004 - schwab@suse.de + +- Pacify autobuild. + +------------------------------------------------------------------- +Thu Apr 15 10:07:19 CEST 2004 - kukuk@suse.de + +- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf +- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] + +------------------------------------------------------------------- +Thu Apr 15 00:37:28 CEST 2004 - schwab@suse.de + +- Remove /usr/i386-linux from ld.so.conf, + +------------------------------------------------------------------- +Wed Apr 14 11:49:05 CEST 2004 - kukuk@suse.de + +- Fix linux/compiler.h for glibc inclusion +- Really fix ffsl on s390x + +------------------------------------------------------------------- +Sat Apr 10 00:42:04 CEST 2004 - schwab@suse.de + +- Fix syntax error in memcmp. + +------------------------------------------------------------------- +Fri Apr 9 16:22:31 CEST 2004 - kukuk@suse.de + +- Update from CVS: linuxthread debug fixes +- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) +- Fix ffsl weak alias on s390x +- Update to 2.6.5 kernel headers + +------------------------------------------------------------------- +Thu Apr 8 00:24:46 CEST 2004 - meissner@suse.de + +- forward umount to umount2 on ppc64 because umount syscall + does not exist + +------------------------------------------------------------------- +Mon Apr 5 14:40:18 CEST 2004 - kukuk@suse.de + +- Sync with current CVS (which is nearly identical with most of + our latest patches) + +------------------------------------------------------------------- +Fri Apr 2 14:18:11 CEST 2004 - kukuk@suse.de + +- Make fstatvfs64 working on 32bit architectures +- Add fwrite LFS fix from aj +- Add powerpc fixes from CVS +- Fix wrong errno code for shm_unlink [Bug #38013] + +------------------------------------------------------------------- +Wed Mar 31 09:31:56 CEST 2004 - kukuk@suse.de + +- Add three fixes from CVS: + - Call __nptl_deallocate_tsd for main thread, too + - setgroups: optimizations for huge number of groups + - initgroups: Limit the initial allocation to 64 entries + +------------------------------------------------------------------- +Tue Mar 30 17:36:18 CEST 2004 - kukuk@suse.de + +- Add IUTF8 to bits/termios.h [Bug #34725] +- *affinitiy.c: Prepend GLIBC_ to version names + +------------------------------------------------------------------- +Sat Mar 27 09:52:53 CET 2004 - kukuk@suse.de + +- Fix wrong return value of getXXbyYY_r in case key was not + found [Bug #37181] +- Fix typo in dl-open +- Don't set errno in NSS NIS module if group was not found + +------------------------------------------------------------------- +Fri Mar 26 12:39:27 CET 2004 - aj@suse.de + +- Add pow10/pow10f aliases for AMD64. + +------------------------------------------------------------------- +Thu Mar 25 16:42:57 CET 2004 - kukuk@suse.de + +- Update to latest CVS snapshot + +------------------------------------------------------------------- +Sat Mar 20 07:49:49 CET 2004 - aj@suse.de + +- Fix further problems with sched_[sg]etaffinity calls. + +------------------------------------------------------------------- +Fri Mar 19 19:57:35 CET 2004 - aj@suse.de + +- Fix sched_setaffinity compile problem. + +------------------------------------------------------------------- +Fri Mar 19 19:44:32 CET 2004 - kukuk@suse.de + +- Remove conflict with special aaa_base version (rpm will handle + this with file conflict) + +------------------------------------------------------------------- +Fri Mar 19 15:43:19 CET 2004 - kukuk@suse.de + +- Add SuSE abi note +- Add madvise patch +- Update to current CVS + +------------------------------------------------------------------- +Wed Mar 17 13:59:14 CET 2004 - kukuk@suse.de + +- Use official NPTL version fix +- Add LD_DEBUG=statistic for x86-64 +- Fix two JB_SIZE redefinitions on PPC +- Add two fixes for execstack + +------------------------------------------------------------------- +Mon Mar 15 08:11:33 CET 2004 - kukuk@suse.de + +- Require kernel 2.6.4 for glibc/NPTL +- Remove siginfo_t/si_band patch (needs to be fixed in kernel) +- Update linuxthreads_db and nptl_db +- Add libidn fixes from CVS + +------------------------------------------------------------------- +Sat Mar 13 19:53:58 CET 2004 - kukuk@suse.de + +- Adjust filelist (remove libcidn.a and libcidn_p.a) + +------------------------------------------------------------------- +Sat Mar 13 16:01:42 CET 2004 - kukuk@suse.de + +- Update to current CVS (merge of patches) +- Fix siginfo_t/si_band [Bug #34330] + +------------------------------------------------------------------- +Thu Mar 11 18:35:05 CET 2004 - mls@suse.de + +- Add mdns support to resolver library + +------------------------------------------------------------------- +Thu Mar 11 16:01:43 CET 2004 - kukuk@suse.de + +- Update kernel headers to 2.6.4 +- Update to current glibc CVS + +------------------------------------------------------------------- +Wed Mar 10 15:44:25 CET 2004 - bg@suse.de + +- Update hppa patches. + +------------------------------------------------------------------- +Mon Mar 8 15:19:01 CET 2004 - kukuk@suse.de + +- Fix vDSO on IA64 + +------------------------------------------------------------------- +Mon Mar 8 13:25:48 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Add libidn + - Lot of dynamic loader changes + +------------------------------------------------------------------- +Thu Mar 4 10:50:09 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Fix posix_fadvise vs. posix_fadvise64 + +------------------------------------------------------------------- +Tue Mar 2 16:51:44 CET 2004 - kukuk@suse.de + +- Fix PPC kernel header files +- Update from glibc CVS + - NPTL fixes + - nscd fixes + +------------------------------------------------------------------- +Tue Mar 2 12:11:38 CET 2004 - schwab@suse.de + +- Fix ppc32 to always use stat64 syscall. + +------------------------------------------------------------------- +Sat Feb 28 17:30:17 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Fix compiler warnings + - NPTL: Don't use CLONE_STOPPED + - Revert vDSO changes + +------------------------------------------------------------------- +Fri Feb 27 10:05:48 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Real NGROUP_MAX fix + - Lot of NPTL fixes + - clock_settime fix +- Add no_NO back (required by OpenI18N spec and [Bug #34745]) + +------------------------------------------------------------------- +Thu Feb 26 14:52:07 CET 2004 - kukuk@suse.de + +- Workaround broken NGROUP_MAX function + +------------------------------------------------------------------- +Thu Feb 26 12:10:37 CET 2004 - kukuk@suse.de + +- Add insserv PreRequires for nscd +- Update from CVS: NPTL and getaddrinfo memory leak fixes, + Get NGROUP_MAX from /proc filesystem + +------------------------------------------------------------------- +Sat Feb 21 06:22:23 CET 2004 - kukuk@suse.de + +- Update from CVS: IA64 relo fix, lot of PPC fixes +- Fix linux/mod_devicetable.h for userland inclusion +- Enable NPTL on Alpha + +------------------------------------------------------------------- +Fri Feb 20 01:08:26 CET 2004 - schwab@suse.de + +- Fix pthread_barrier_wait. + +------------------------------------------------------------------- +Thu Feb 19 09:46:46 CET 2004 - kukuk@suse.de + +- Update from CVS: More NPTL fixes +- nscd.init: Cleanups + +------------------------------------------------------------------- +Wed Feb 18 15:49:09 CET 2004 - kukuk@suse.de + +- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and + asm-ppc/bitops.h for userland inclusion. + +------------------------------------------------------------------- +Wed Feb 18 11:24:35 CET 2004 - bg@suse.de + +- Update hppa patches for current glibc +- Add workaround for ICE in hppa + +------------------------------------------------------------------- +Tue Feb 17 13:54:28 CET 2004 - kukuk@suse.de + +- Update from CVS: + - PPC nptl compatiblity fix + - NSCD patches merged + - ld.so.preload: Igreno missing files + - getaddrinfo: Fix problem with IPv6 addresses + +------------------------------------------------------------------- +Tue Feb 17 11:42:59 CET 2004 - aj@suse.de + +- Fix string optimizations init code on AMD64. + +------------------------------------------------------------------- +Sat Feb 14 07:10:42 CET 2004 - kukuk@suse.de + +- Update from CVS (for NPTL fixes and new PPC longjmp) +- Fix nscd deadlock with kernel 2.6 [Bug #34507] + +------------------------------------------------------------------- +Fri Feb 13 14:19:25 CET 2004 - aj@suse.de + +- Add more string/memory optimizations for AMD64. + +------------------------------------------------------------------- +Thu Feb 12 17:07:08 CET 2004 - kukuk@suse.de + +- Fix regex bug with invalid UTF-8 strings + +------------------------------------------------------------------- +Thu Feb 12 16:31:51 CET 2004 - aj@suse.de + +- Add more string optimizations for AMD64. + +------------------------------------------------------------------- +Wed Feb 11 16:14:53 CET 2004 - kukuk@suse.de + +- Update to current CVS snapshot +- Fix _IOC_TYPECHECK on s390/s390x/parisc +- Compile rtkaio only with NPTL +- Remove glibcbug (was dropped since glibc uses bugzilla now) +- Disable parallel build on s390x + +------------------------------------------------------------------- +Tue Feb 10 15:38:37 CET 2004 - schwab@suse.de + +- Work around invalid use of kernel headers in some packages. + +------------------------------------------------------------------- +Fri Feb 6 19:57:04 CET 2004 - kukuk@suse.de + +- Add kernel stat fix for PPC +- Add fix for off-by-one error in regex code + +------------------------------------------------------------------- +Thu Feb 5 18:04:45 CET 2004 - kukuk@suse.de + +- Update kernel header files to 2.6.2 + +------------------------------------------------------------------- +Tue Feb 3 17:14:38 CET 2004 - bg@suse.de + +- Update hppa patch + +------------------------------------------------------------------- +Tue Feb 3 16:24:47 CET 2004 - kukuk@suse.de + +- Fix ypclnt speedup patch +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Jan 26 13:44:39 CET 2004 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Wed Jan 21 10:23:42 CET 2004 - aj@suse.de + +- Do not run in parallel on s390. + +------------------------------------------------------------------- +Mon Jan 19 15:49:51 CET 2004 - ro@suse.de + +- really fix linux/percpu.h to compile in userland + +------------------------------------------------------------------- +Fri Jan 16 11:14:49 CET 2004 - kukuk@suse.de + +- Update version.h to 2.6.1 +- Fix linux/percpu.h to compile in userland +- Update to current CVS snapshot +- Revert nscd path changes + +------------------------------------------------------------------- +Wed Jan 14 12:06:13 CET 2004 - kukuk@suse.de + +- Update to Kernel Headers 2.6.1 +- Update to current CVS snapshot +- Don't ignore make check on IA64 any longer + +------------------------------------------------------------------- +Sat Jan 10 01:56:48 CET 2004 - schwab@suse.de + +- Locale no_NO has been renamed to nb_NO. + +------------------------------------------------------------------- +Fri Jan 9 14:09:01 CET 2004 - kukuk@suse.de + +- Temporary ignore make check on IA64 and PPC + (known kernel/compiler bugs) + +------------------------------------------------------------------- +Fri Jan 9 00:36:51 CET 2004 - stepan@suse.de + +- fix v4l2 headers + +------------------------------------------------------------------- +Wed Jan 7 13:09:26 CET 2004 - kukuk@suse.de + +- Update to glibc CVS from 20040107 +- Remove manual pages which are now part of man-pages + +------------------------------------------------------------------- +Thu Dec 18 13:41:37 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031218 +- Update ot final 2.6.0 kernel headers +- Fix syntax error in spec file +- Update HPPA patch + +------------------------------------------------------------------- +Mon Dec 15 19:19:08 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031215 + +------------------------------------------------------------------- +Fri Dec 12 10:19:52 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031212 +- disable rtkaio (does not work with kernel 2.6 yet) + +------------------------------------------------------------------- +Fri Dec 5 10:00:28 CET 2003 - kukuk@suse.de + +- Update to glibc 2.3.3 CVS +- Make an extra sub package for nscd + +------------------------------------------------------------------- +Thu Nov 27 13:08:32 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031127 +- Add nsswitch.conf (moved from aaa_base) +- Add ld.so.conf (moved from aaa_base) [Bug #33277] +- Fix ceil on AMD64 + +------------------------------------------------------------------- +Fri Nov 21 14:40:29 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031121 +- Obsolete epoll (glibc-devel contains now this header files) + +------------------------------------------------------------------- +Wed Nov 19 15:54:58 CET 2003 - kukuk@suse.de + +- Add patch so that ld.so supports linuxthreads and nptl +- PPC64 requires kernel 2.4.21 +- Update to glibc CVS from 20031119 + +------------------------------------------------------------------- +Fri Nov 14 14:05:38 CET 2003 - bg@suse.de + +- Add hppa patches for current glibc. + +------------------------------------------------------------------- +Fri Nov 14 13:32:06 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031114 +- Remove PPC64 symbol version patch + +------------------------------------------------------------------- +Thu Nov 13 12:10:15 CET 2003 - schwab@suse.de + +- Fix last change covering libNoVersion. + +------------------------------------------------------------------- +Mon Nov 10 16:52:09 CET 2003 - schwab@suse.de + +- Specfile cleanup. + +------------------------------------------------------------------- +Thu Nov 6 14:10:17 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031106 + +------------------------------------------------------------------- +Wed Nov 5 15:26:06 CET 2003 - uli@suse.de + +- added a number of ARM fixes (glibc-2.3.2-armformat.patch, + glibc-armisa.patch, glibc-sjlj.patch) + +------------------------------------------------------------------- +Mon Oct 27 21:13:09 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031027 +- kernel headers: update to 2.6.0-test9 +- nptl: Use -fno-unit-at-a-time on AMD64, too + +------------------------------------------------------------------- +Thu Oct 23 13:34:25 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Wed Oct 22 19:01:37 CEST 2003 - kukuk@suse.de + +- nptl: Fix prototype in configure script +- nptl: Use -fno-unit-at-a-time +- locale: Add nb_NO + +------------------------------------------------------------------- +Fri Oct 17 16:56:58 CEST 2003 - kukuk@suse.de + +- Increase timeout for make check on overloaded architectures + +------------------------------------------------------------------- +Thu Oct 16 18:19:13 CEST 2003 - kukuk@suse.de + +- Fix building as normal user + +------------------------------------------------------------------- +Wed Oct 15 16:31:32 CEST 2003 - kukuk@suse.de + +- Fix putpwent/putgrent +- Make build as normal user + +------------------------------------------------------------------- +Tue Oct 14 21:13:25 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031014 + +------------------------------------------------------------------- +Tue Oct 14 13:26:06 CEST 2003 - aj@suse.de + +- Fix w_acosf for AMD64. + +------------------------------------------------------------------- +Tue Oct 14 10:49:36 CEST 2003 - kukuk@suse.de + +- Fix asm-sparc/kbio.h to compile kbdrate/X11 + +------------------------------------------------------------------- +Mon Oct 13 12:11:53 CEST 2003 - kukuk@suse.de + +- Update to kernel header files from 2.6.0-test7 + +------------------------------------------------------------------- +Fri Oct 10 17:11:01 CEST 2003 - schwab@suse.de + +- Fix misnamed syscalls. + +------------------------------------------------------------------- +Tue Oct 7 21:13:09 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031007 + +------------------------------------------------------------------- +Fri Oct 3 09:12:38 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031003 +- Fix kernel ioctl header files for PPC/PPC64 +- Removed dl-reloc.c fix, merged upstream + +------------------------------------------------------------------- +Wed Oct 1 16:49:19 CEST 2003 - kukuk@suse.de + +- Update to glibc cvs from 20031001 +- Remove sysmacros.h fix, merged upstream +- Add dl-reloc.c fix for compiler warnings + +------------------------------------------------------------------- +Mon Sep 29 11:49:19 CEST 2003 - kukuk@suse.de + +- Update kernel-headers to 2.6.0-test6 +- Fix sysmacros.h to compile with -ansi + +------------------------------------------------------------------- +Sat Sep 27 20:58:07 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030927 +- Remove SO_BSDCOMPAT (obsoleted by kernel) +- Make _IOC_TYPECHECK useable for userland programs + +------------------------------------------------------------------- +Fri Sep 26 10:01:15 CEST 2003 - kukuk@suse.de + +- Remove obsolete patches +- Update to crypt_blowfish 0.4.5 + +------------------------------------------------------------------- +Fri Sep 26 08:51:10 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030926 +- Update to nptl 0.60 + +------------------------------------------------------------------- +Sat Sep 20 21:13:04 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030920 +- Update to nptl 0.59 + +------------------------------------------------------------------- +Wed Sep 17 12:13:35 CEST 2003 - kukuk@suse.de + +- Disable TLS for i586 glibc [Bug #31034] + +------------------------------------------------------------------- +Tue Sep 16 15:38:19 CEST 2003 - kukuk@suse.de + +- Remove db1.85 + +------------------------------------------------------------------- +Mon Sep 15 21:30:51 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030915 + +------------------------------------------------------------------- +Mon Sep 15 18:43:19 CEST 2003 - kukuk@suse.de + +- Update to kernel 2.6.0-test5 header files + +------------------------------------------------------------------- +Sat Sep 13 07:01:40 CEST 2003 - kukuk@suse.de + +- Add librtkaio, a librt using kernel aio + +------------------------------------------------------------------- +Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de + +- Update to current CVS +- Remove patches which are merged in CVS +- Update to nptl-0.58 +- Remove _POSIX_VERSION hack + +------------------------------------------------------------------- +Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de + +- version.h: Fix comment how to compile kernel modules + +------------------------------------------------------------------- +Wed Sep 10 19:27:05 CEST 2003 - aj@suse.de + +- Install en_US.ISO-8859-15 under this name [#30373]. + +------------------------------------------------------------------- +Tue Sep 9 14:22:02 CEST 2003 - aj@suse.de + +- Fix last patch. + +------------------------------------------------------------------- +Mon Sep 8 18:20:56 CEST 2003 - aj@suse.de + +- Fix setting up of user signal handler in linuxthreads on x86_64. + +------------------------------------------------------------------- +Fri Sep 5 13:44:13 CEST 2003 - kukuk@suse.de + +- Add dl-tls.c to fix out of memory with static TLS errors + +------------------------------------------------------------------- +Wed Sep 3 21:03:13 CEST 2003 - kukuk@suse.de + +- Update glibc-linuxthreads +- Set _POSIX_VERSION back to 199209 + +------------------------------------------------------------------- +Mon Sep 1 18:23:49 CEST 2003 - kukuk@suse.de + +- Fix typo in nss_compat patch + +------------------------------------------------------------------- +Mon Sep 1 09:13:14 CEST 2003 - kukuk@suse.de + +- Add opendir fix for usage with NPTL +- Fix getspnam/getspent in nss_compat [Bug #29689] +- Set _POSIX2_VERSION back to 199209 + +------------------------------------------------------------------- +Wed Aug 27 15:22:40 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Mon Aug 25 09:35:41 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Mon Aug 18 21:17:25 CEST 2003 - aj@suse.de + +- increase stack size for linuxthreads/set-context. + +------------------------------------------------------------------ +Mon Aug 18 13:23:00 CEST 2003 - aj@suse.de + +- Fix mathinline.h for i386 to compile under C++ without warnings. + +------------------------------------------------------------------- +Sun Aug 17 09:59:25 CEST 2003 - ro@suse.de + +- kernel-headers.dif: don't include device.h from videodev.h + +------------------------------------------------------------------- +Fri Aug 15 10:39:49 CEST 2003 - kukuk@suse.de + +- Update to current cvs (fixes assert usage in C++ source code) + +------------------------------------------------------------------- +Thu Aug 14 10:34:27 CEST 2003 - kukuk@suse.de + +- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] +- On i686, include glibc with and without floating stack enabled +- Update to current cvs +- Update to nptl 0.56 + +------------------------------------------------------------------- +Thu Jul 31 16:57:36 CEST 2003 - kukuk@suse.de + +- Reenable new quota.h + +------------------------------------------------------------------- +Wed Jul 30 09:59:21 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Update kernel headers to 2.6.0-test2 +- Disable sys/quota.h update +- Enable TLS on AMD64 again + +------------------------------------------------------------------- +Mon Jul 28 17:18:33 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Disable TLS on AMD64 temporary +- Update sys/quota.h to match new kernel implementation + +------------------------------------------------------------------- +Fri Jul 25 10:14:44 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Update kernel headers to 2.6.0-test1 +- Update to nptl 0.55 +- Change minimal symbol version on PPC64 back to 2.2.5 + +------------------------------------------------------------------- +Wed Jul 23 18:13:40 CEST 2003 - meissner@suse.de + +- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just + merging over the asm-ppc64 things). + +------------------------------------------------------------------- +Wed Jul 23 12:59:04 CEST 2003 - aj@suse.de + +- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without + rpath. +- Fix bugs exposed by unit-at-a-time option. + +------------------------------------------------------------------- +Fri Jul 18 07:27:47 CEST 2003 - aj@suse.de + +- Fix compilation with unit-at-a-time enabled compiler. +- Enlarge stack for tst-setcontext test. + +------------------------------------------------------------------- +Mon Jun 30 13:09:25 CEST 2003 - kukuk@suse.de + +- Update to current CVS (includes if_arp.h and nss_compat changes) +- Update to nptl 0.50 +- Kernel header fixes for userland inclusion + +------------------------------------------------------------------- +Wed Jun 25 09:34:17 CEST 2003 - kukuk@suse.de + +- Update to current CVS +- Add target host and CVS checkout to glibc version printout +- Adjust fnmatch fix +- Update kernel headers to 2.5.73 + +------------------------------------------------------------------- +Tue Jun 24 23:09:11 CEST 2003 - kukuk@suse.de + +- Fix typos in syscalls.list on Alpha + +------------------------------------------------------------------- +Mon Jun 23 10:53:41 CEST 2003 - kukuk@suse.de + +- fix typo in linuxthreads on SPARC +- Update to current CVS +- Update to nptl 0.48 + +------------------------------------------------------------------- +Thu Jun 19 11:10:55 CEST 2003 - kukuk@suse.de + +- Disable nss_compat patch again + +------------------------------------------------------------------- +Wed Jun 18 10:51:07 CEST 2003 - kukuk@suse.de + +- Fix reading of locale.alias file +- Update to current CVS snapshot +- Update to nptl 0.47 +- Some kernel header file fixes for PPC64/IA64 +- Update nss_compat patch + +------------------------------------------------------------------- +Thu Jun 12 23:42:09 CEST 2003 - kukuk@suse.de + +- Update to current CVS snapshot +- Finish patch for printing linker warning + +------------------------------------------------------------------- +Wed Jun 11 11:45:42 CEST 2003 - kukuk@suse.de + +- Update to nptl 0.45 +- Update to current CVS snapshot +- Add patch to print linker warning, if a static binary calls + functions using NSS + +------------------------------------------------------------------- +Tue Jun 10 16:46:47 CEST 2003 - kukuk@suse.de + +- Use %find_lang macro and cleanup glibc-locale filelist + +------------------------------------------------------------------- +Thu Jun 5 17:28:36 CEST 2003 - kukuk@suse.de + +- Complete mathinline.h fixes + +------------------------------------------------------------------- +Thu Jun 5 10:10:02 CEST 2003 - kukuk@suse.de + +- linux/compiler.h: Define all inline variants to __inline__ + +------------------------------------------------------------------- +Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.43 +- More kernel header fixes +- Make --no-archive default for localedef + +------------------------------------------------------------------- +Tue May 27 14:09:31 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.40 +- Disable nss_compat patch +- Update to kernel headers from 2.5.70 + +------------------------------------------------------------------- +Fri May 23 10:50:37 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Add patches to make nss_compat work with every service + +------------------------------------------------------------------- +Mon May 19 10:57:13 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Add patch for better binary compatibility (errno, h_errno) + +------------------------------------------------------------------- +Fri May 16 09:32:39 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.39 +- Add URL tag +- asm-i386/byteorder.h: fix asm vs. __asm__ + +------------------------------------------------------------------- +Wed May 14 22:31:52 CEST 2003 - schwab@suse.de + +- Fix missing syscall numbers on ia64. + +------------------------------------------------------------------- +Wed May 14 08:59:09 CEST 2003 - kukuk@suse.de + +- More kernel headers fixes for i386, ia64, ppc and s390 + +------------------------------------------------------------------- +Mon May 12 16:49:51 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Fix lot of more kernel headers +- Adjust netinet/igmp.h patch +- Copy linux/version.h in place before compiling glibc + +------------------------------------------------------------------- +Fri May 9 13:25:08 CEST 2003 - kukuk@suse.de + +- Fix bits/stdio.h +- Fix lot of kernel headers to work in userspace +- Fix netinet/igmp.h +- Enable TLS on PPC + +------------------------------------------------------------------- +Wed May 7 10:58:25 CEST 2003 - kukuk@suse.de + +- Update CVS snapshot +- Enable TLS on IA64 +- Update to nptl 0.37 +- Update kernel-headers to 2.5.69 + +------------------------------------------------------------------- +Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de + +- fix install_info --delete call and move from preun to postun + +------------------------------------------------------------------- +Fri Apr 11 06:32:25 CEST 2003 - aj@suse.de + +- Do not build locales in parallel. + +------------------------------------------------------------------- +Tue Apr 8 16:12:36 CEST 2003 - kukuk@suse.de + +- Disable TLS for PPC + +------------------------------------------------------------------- +Mon Apr 7 14:16:03 CEST 2003 - kukuk@suse.de + +- Update CVS snapshot + +------------------------------------------------------------------- +Sat Apr 5 09:55:15 CEST 2003 - kukuk@suse.de + +- Disable TLS for ia64 +- Update to nptl 0.34 +- Update to CVS snapshot + +------------------------------------------------------------------- +Fri Apr 4 16:23:39 CEST 2003 - kukuk@suse.de + +- Remove libNoVersion from filelist on alpha +- Add nptl docu + +------------------------------------------------------------------- +Fri Apr 4 10:23:35 CEST 2003 - kukuk@suse.de + +- Update to nptl 0.33 +- Run ldconfig after installation +- Update to CVS snapshot + +------------------------------------------------------------------- +Sat Mar 29 17:47:56 CET 2003 - kukuk@suse.de + +- Update to CVS snapshot +- Add USAGI patches for kernel-headers +- Add nptl on i686 +- Enable --with-tls +- Implement NI_NUMSERICSCOPE for getnameinfo +- Implement AI_V4MAPPED/AI_ALL for getaddrinfo +- Implement AI_ADDRCONFIG for getaddrinfo +- Add USAGI patch for kernel headers + +------------------------------------------------------------------- +Mon Mar 24 21:46:45 CET 2003 - schwab@suse.de + +- Sanitize . + +------------------------------------------------------------------- +Mon Mar 17 08:45:27 CET 2003 - aj@suse.de + +- Fix tst-aio7 testcase and enable it again. +- Enable %fs for x86-64. +- Install en_US.ISO-8859-15 for libstdc++. +- Fix bits/syscalls.h for x86-64. + +------------------------------------------------------------------- +Thu Mar 13 10:36:24 CET 2003 - kukuk@suse.de + +- Revert tcgetattr change [Bug #25173/#25174] + +------------------------------------------------------------------- +Tue Mar 4 15:15:33 CET 2003 - aj@suse.de + +- Fix lround/lrint functions. + +------------------------------------------------------------------- +Sat Mar 1 07:24:22 CET 2003 - aj@suse.de + +- Update to 2.3.2 release. + +------------------------------------------------------------------- +Wed Feb 26 21:45:36 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot (fixes OOo and mysql problems) + +------------------------------------------------------------------- +Mon Feb 24 17:52:02 CET 2003 - kukuk@suse.de + +- Disable aio7 test on s390(x), too. + +------------------------------------------------------------------- +Mon Feb 24 14:19:20 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot (post 2.3.2-pre1) +- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS +- Remove libc23-ppc64-cvshead20021210.patch + +------------------------------------------------------------------- +Thu Feb 20 16:19:21 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot +- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be + included already. + +------------------------------------------------------------------- +Wed Feb 19 11:45:35 CET 2003 - olh@suse.de + +- add glibc-2.3-ppc32-textrel.patch + glibc-2.3-ppc64-vfork-20030214.patch + +------------------------------------------------------------------- +Fri Feb 14 14:51:11 CET 2003 - kukuk@suse.de + +- Extend getent to print all IP addresses of one host + +------------------------------------------------------------------- +Thu Feb 13 18:34:50 CET 2003 - kukuk@suse.de + +- Update to current snapshot + +------------------------------------------------------------------- +Wed Feb 12 11:50:54 CET 2003 - kukuk@suse.de + +- Update to current snapshot (contains official fix for #23513) + +------------------------------------------------------------------- +Tue Feb 11 15:28:16 CET 2003 - kukuk@suse.de + +- Update to current snapshot +- Fix corruption of internal data in gethostbyname2 [Bug #23513] + +------------------------------------------------------------------- +Sun Feb 9 12:20:55 CET 2003 - aj@suse.de + +- Fix cancellation of system calls on x86-64. + +------------------------------------------------------------------- +Sat Feb 8 10:43:02 CET 2003 - kukuk@suse.de + +- Fix wrong logic in dynamic resolv.conf patch + +------------------------------------------------------------------- +Fri Feb 7 17:35:12 CET 2003 - kukuk@suse.de + +- Fix access of _res symbol in multithreaded programs +- Add "dynamic resolv.conf" patch to libnss_dns, too. +- Remove obsolete db2 manual pages +- Update to current snapshot (fixes [Bug #23363]) + +------------------------------------------------------------------- +Thu Feb 6 18:06:36 CET 2003 - kukuk@suse.de + +- Update to current snapshot +- Use install-info for info pages + +------------------------------------------------------------------- +Tue Feb 4 20:12:51 CET 2003 - schwab@suse.de + +- Fix regexp parsing. + +------------------------------------------------------------------- +Mon Feb 3 14:44:21 CET 2003 - meissner@suse.de + +- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for + ppc and ppc64 kernel headers. + +------------------------------------------------------------------- +Fri Jan 31 22:12:03 CET 2003 - schwab@suse.de + +- Fix building on s390[x]. + +------------------------------------------------------------------- +Fri Jan 31 15:20:00 CET 2003 - kukuk@suse.de + +- Update to current glibc cvs + +------------------------------------------------------------------- +Thu Jan 30 16:05:32 CET 2003 - aj@suse.de + +- Fix one build problem on sparc. +- Fix asm-x86_64/mtrr.h. + +------------------------------------------------------------------- +Wed Jan 29 12:57:23 CET 2003 - kukuk@suse.de + +- Update to current glibc cvs +- Fix libm-ulps for x86-64 and ia64 + +------------------------------------------------------------------- +Thu Jan 23 16:47:33 CET 2003 - schwab@suse.de + +- Fix use of DT_FINI_ARRAY. +- Temporarily disable tst-aio7 test on ia64. + +------------------------------------------------------------------- +Tue Jan 14 22:41:33 CET 2003 - schwab@suse.de + +- Fix ia64 for non-tls build. + +------------------------------------------------------------------- +Tue Jan 14 21:51:24 CET 2003 - aj@suse.de + +- Package libpthread_nonshared.a. + +------------------------------------------------------------------- +Mon Jan 13 10:29:36 CET 2003 - kukuk@suse.de + +- Add fixed version of x86-64-linuxthreads-disable-fs.diff +- Readd parts of libm-x86-64.diff +- Update to current cvs snapshot +- Add fix for errno compatibility +- Add s390(x) vfork fixes + +------------------------------------------------------------------- +Sun Jan 12 19:16:13 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot + +------------------------------------------------------------------- +Fri Jan 3 19:09:36 CET 2003 - bg@suse.de + +- removed obsolete patch for hppa + +------------------------------------------------------------------- +Fri Dec 20 23:15:48 CET 2002 - kukuk@suse.de + +- Update to current cvs snapshot +- Obsoletes glibc-2.3-setjmp-ppc64.diff +- Obsoletes build-alpha.diff +- Obsoletes libm-x86-64.diff +- Disable activate-spinlocks.diff temporary +- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) + +------------------------------------------------------------------- +Tue Dec 17 16:01:13 CET 2002 - olh@suse.de + +- remove glibc-2.2.5-ppc64-bits-socket_h.diff + add glibc-2.3-setjmp-ppc64.diff + add libc23-ppc64-cvshead20021210.patch + dont run configure in subshell, it can fail and rpm cant catch it + +------------------------------------------------------------------- +Fri Dec 13 20:01:30 CET 2002 - schwab@suse.de + +- Add more ia64 syscalls. + +------------------------------------------------------------------- +Fri Dec 6 22:06:41 CET 2002 - olh@suse.de + +- build also the locals parallel + do not fail with parallel calculation on lowmem systems + +------------------------------------------------------------------- +Tue Dec 3 11:16:30 CET 2002 - aj@suse.de + +- Build parallel on x86-64. +- Activate fast spinlocks in malloc for x86 and x86-64. +- Integrate new math library from AMD for x86-64. + +------------------------------------------------------------------- +Fri Nov 29 11:08:03 CET 2002 - bg@suse.de + +- Fix build on hppa. + +------------------------------------------------------------------- +Thu Nov 28 21:31:09 CET 2002 - aj@suse.de + +- Fix build on alpha. + +------------------------------------------------------------------- +Thu Nov 28 15:45:09 CET 2002 - aj@suse.de + +- Update to CVS version from 2002-11-28. +- Do not use %fs for threads for now on x86-64. +- Fix fnmatch bug with multibyte strings. + +------------------------------------------------------------------- +Tue Nov 12 12:41:17 CET 2002 - bg@suse.de + +- Updated hppa patches + +------------------------------------------------------------------- +Thu Nov 7 14:00:04 CET 2002 - kukuk@suse.de + +- getaddrinfo(): get host information for AF_INET and AF_INET6 only + from the same service [Bug #21237] + +------------------------------------------------------------------- +Thu Nov 7 12:11:29 CET 2002 - bg@suse.de + +- Fix build of linuxthreads for hppa + +------------------------------------------------------------------- +Tue Nov 5 16:31:11 CET 2002 - bg@suse.de + +- Use current kernel-headers for parisc +- Add support for hppa + +------------------------------------------------------------------- +Tue Nov 5 15:29:32 CET 2002 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue Oct 22 16:21:34 CEST 2002 - schwab@suse.de + +- Fix ia64 syscall numbers. + +------------------------------------------------------------------- +Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de + +- Fix alignment in locale-archive. + +------------------------------------------------------------------- +Mon Oct 21 17:16:51 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3.1 cvs 20021021 +- Remove nss_dns6 patch + +------------------------------------------------------------------- +Tue Oct 15 14:58:34 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3.1 cvs 20021015 + +------------------------------------------------------------------- +Wed Oct 2 14:06:31 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3 cvs 20021002 +- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) + +------------------------------------------------------------------- +Wed Sep 25 11:43:08 CEST 2002 - mls@suse.de + +- build with -finline-limit=2000 on mips/armv4l + +------------------------------------------------------------------- +Tue Sep 17 14:54:26 CEST 2002 - schwab@suse.de + +- Add new ia64 syscall numbers. + +------------------------------------------------------------------- +Mon Sep 16 17:24:01 CEST 2002 - meissner@suse.de + +- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. +- Aligned powerpc bits/sem.h to be the same as the other 64bit + archs, keeping the 32bit layout. +- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. + +------------------------------------------------------------------- +Thu Sep 12 15:56:07 CEST 2002 - meissner@suse.de + +- ppc/ppc64: added more biarch things to the SystemV IPC headers + which are needed to get 64bit ipc / IPC_STAT to work. + +------------------------------------------------------------------- +Mon Sep 9 18:52:53 CEST 2002 - bk@suse.de + +- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) +- s390x: requires 64-bit kernel + +------------------------------------------------------------------- +Mon Sep 9 15:40:23 CEST 2002 - kukuk@suse.de + +- Increase minimum value of MAXPACKET in libnss_dns, too + +------------------------------------------------------------------- +Mon Sep 9 14:31:04 CEST 2002 - uli@suse.de + +- all architectures are created equal, but some are more equal + than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, + ia64, s390x and ppc64 to fit 64 bit __ino_t type + +------------------------------------------------------------------- +Fri Sep 6 17:26:53 MEST 2002 - mls@suse.de + +- fix squeeze bug in db-1.85: set dirty flag after page modification + +------------------------------------------------------------------- +Fri Sep 6 15:44:17 CEST 2002 - kukuk@suse.de + +- Increase minimum value of MAXPACKET + +------------------------------------------------------------------- +Mon Sep 2 10:38:40 CEST 2002 - kukuk@suse.de + +- Fix asm header files for sparc/sparc64 + +------------------------------------------------------------------- +Fri Aug 30 13:18:51 CEST 2002 - aj@suse.de + +- Revert linuxthreads for x86-64 for now. + +------------------------------------------------------------------- +Wed Aug 28 16:15:18 CEST 2002 - aj@suse.de + +- Add optimized math routines for x86-64. + +------------------------------------------------------------------- +Tue Aug 27 15:52:49 CEST 2002 - olh@suse.de + +- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" + +------------------------------------------------------------------- +Mon Aug 26 21:56:22 CEST 2002 - olh@suse.de + +- add ppc64_glibc_2.2.5_sunrpc-fix.patch + * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds + __powerpc64__ specific fields and adjust size/alignment for 64-bit. + +------------------------------------------------------------------- +Fri Aug 23 17:04:38 CEST 2002 - aj@suse.de + +- Use floating stacks for x86-64. +- Add LICENSE file. +- Fix profiling code on x86-64. +- Add strcspn, strpbrk and strspn optimizations for x86-64. +- Fix makecontext for x86-64. + +------------------------------------------------------------------- +Thu Aug 15 08:59:16 CEST 2002 - aj@suse.de + +- Use biarch headers already for building so that bits/syscalls.h is + build correctly. +- Fix bits/syscalls.h for x86-64. +- Remove *xattr patches. + +------------------------------------------------------------------- +Thu Aug 8 16:59:27 CEST 2002 - kukuk@suse.de + +- Update to current cvs (calloc variable overflow fixed) +- Apply fix for calloc fix +- Add *xattr system calls and error number + +------------------------------------------------------------------- +Tue Aug 6 12:45:06 CEST 2002 - kukuk@suse.de + +- Update to current cvs (IPv6 fixes) + +------------------------------------------------------------------- +Mon Aug 5 12:29:59 CEST 2002 - aj@suse.de + +- Implement *context functions for x86-64. + +------------------------------------------------------------------- +Sat Aug 3 16:01:07 CEST 2002 - kukuk@suse.de + +- Update kernel-headers to version 2.4.19 +- Add PreRequires "filesystem". + +------------------------------------------------------------------- +Thu Aug 1 18:23:37 CEST 2002 - bk@suse.de + +- added s390-may2002.diff with some chunks from may2002 drop +- give make check a second chance on s390(x), but fail if not(race) + +------------------------------------------------------------------- +Tue Jul 30 11:40:41 CEST 2002 - kukuk@suse.de + +- sunrpc/xdr_array.c: Check for variable overflow +- Ignore failed make check on s390(x) + +------------------------------------------------------------------- +Tue Jul 30 08:31:24 CEST 2002 - aj@suse.de + +- Add optimisations for x86-64. + +------------------------------------------------------------------- +Mon Jul 29 09:38:04 CEST 2002 - kukuk@suse.de + +- Don't allocate/free category name in setlocale() unnecessarily + (for IBM Java [Bug #17065]). + +------------------------------------------------------------------- +Tue Jul 23 13:36:31 CEST 2002 - kukuk@suse.de + +- Update to current glibc cvs (pread/pwrite fixes) +- Remove extra de.po, is in official tarball now. + +------------------------------------------------------------------- +Sat Jul 20 07:14:26 CEST 2002 - aj@suse.de + +- Fix profiling for x86-64. + +------------------------------------------------------------------- +Fri Jul 19 16:26:26 CEST 2002 - meissner@suse.de + +- Fixed the PPC64 patch, several superflous files removed. +- Reenabled make check for ppc64. + +------------------------------------------------------------------- +Wed Jul 17 14:13:58 CEST 2002 - kukuk@suse.de + +- Update to current glibc cvs +- Fix kernel headers for s390/s390x +- Move some binaries/shell scripts and manual pages to the + correct subpackage + +------------------------------------------------------------------- +Tue Jul 16 14:51:48 CEST 2002 - meissner@suse.de + +- Merged latest PowerPC patch from IBM. + * Lots of ppc64 related fixes. + * Start of biarch support. + * Changed struct stat in 64bit ABI. + +------------------------------------------------------------------- +Fri Jul 12 18:29:17 CEST 2002 - aj@suse.de + +- Add biarch patch for s390 and s390x. + +------------------------------------------------------------------- +Mon Jul 8 10:45:49 CEST 2002 - aj@suse.de + +- Add some optimized x86-64 math routines and a fixed lgammal + implementation. +- Testsuite on x86-64 should pass now. +- Run ldconfig in postinstall. +- Fix memleak in catgets. + +------------------------------------------------------------------- +Sat Jul 6 13:38:48 CEST 2002 - kukuk@suse.de + +- Fix typo in create_biarch_asm.sh (asm-sparc path) + +------------------------------------------------------------------- +Thu Jul 4 21:59:43 CEST 2002 - kukuk@suse.de + +- Fix typo in manpages/Makefile +- Fix filelist (on some archs ld-linux.so.2 was missing) + +------------------------------------------------------------------- +Thu Jul 4 10:02:46 CEST 2002 - kukuk@suse.de + +- Revert mktime patch (check for year < 70) +- Replace ifarch i386 with ix86 +- Add patch for arm +- Include pt_chown again + +------------------------------------------------------------------- +Wed Jul 3 16:05:05 CEST 2002 - kukuk@suse.de + +- Add more new manual pages +- Fix spec file (renaming of ld-*, creating of include/asm header + files) +- Update to current CVS version +- Fix kernel-headers for x86-64 (don't overwrite patched version) +- Rename Equador -> Ecuador [Bug #16648] +- Add hint about security problem of host caching with nscd to + config file. + +------------------------------------------------------------------- +Tue Jun 25 14:29:14 CEST 2002 - aj@suse.de + +- Fix dl-machine.h for x86-64 to compile with new binutils. +- Fix mtrr.h header for x86-64. +- Do not package pt_chown. + +------------------------------------------------------------------- +Tue Jun 18 14:28:40 CEST 2002 - sf@suse.de + +- reverted changes from Tue Jun 11 10:04:55 CEST 2002 + (took the kernel-headers from before, readded patch9) +- add new archive with kernel-headers for x86_64 +- add autofs patch + +------------------------------------------------------------------- +Mon Jun 17 17:12:39 CEST 2002 - bk@suse.de + +- remove s390* from the list of archs that ignore check fail + +------------------------------------------------------------------- +Thu Jun 13 20:38:00 CEST 2002 - uli@suse.de + +- fixed typos in spec + +------------------------------------------------------------------- +Thu Jun 13 13:35:43 CEST 2002 - schwab@suse.de + +- Fix ssize_t and __ipc_pid_t for ppc64. + +------------------------------------------------------------------- +Wed Jun 12 09:47:12 CEST 2002 - uli@suse.de + +- fix errlist.c for ARM as well + +------------------------------------------------------------------- +Tue Jun 11 10:04:55 CEST 2002 - sf@suse.de + +- made new kernel-header archive from kernel-source +- added asm-ppc64 to kernel-headers +- removed patch9 as it is obsoleted by the new kernel-headers + +------------------------------------------------------------------- +Fri Jun 7 14:29:30 CEST 2002 - olh@suse.de + +- update asm-ppc64/ioctls.h, missing TIOCGDEV + +------------------------------------------------------------------- +Thu Jun 6 17:57:41 CEST 2002 - olh@suse.de + +- fix glibc-ppc64 patch + +------------------------------------------------------------------- +Thu Jun 6 15:09:16 CEST 2002 - olh@suse.de + +- update ppc64_glibc_ldconfig.diff + +------------------------------------------------------------------- +Thu Jun 6 10:09:24 CEST 2002 - ke@suse.de + +- Update de.po from + http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. +- Use only translated entries to make the testsuite happy; call + msgattrib on de.po and hu.po [# 16438]. + +------------------------------------------------------------------- +Mon Jun 3 09:58:54 CEST 2002 - aj@suse.de + +- Clean up generation of asm includes for bi-arch systems. +- Enable profiling for x86-64. + +------------------------------------------------------------------- +Mon Jun 3 08:52:38 CEST 2002 - kukuk@suse.de + +- Add fix for weak declaration "_old_sys_nerr" +- Remove already disabled alpha patch +- Update to current CVS + +------------------------------------------------------------------- +Sat Jun 1 10:54:41 CEST 2002 - olh@suse.de + +- fix stat for real, wrong size for st_nlink + +------------------------------------------------------------------- +Wed May 29 18:24:57 CEST 2002 - olh@suse.de + +- add ppc64_glibc_2.2.5-types.diff, fixes stat() + +------------------------------------------------------------------- +Wed May 29 10:38:34 CEST 2002 - olh@suse.de + +- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance + +------------------------------------------------------------------- +Thu May 23 08:32:00 MEST 2002 - aj@suse.de + +- Rename __thread to fix problems with GCC 3.2. + +------------------------------------------------------------------- +Mon May 20 11:37:42 CEST 2002 - olh@suse.de + +- add ppc64 kernel headers + add create_ppc_asm.sh + update ppc64 patch, use /lib64/ld64.so.1 + move generic syscalls.list to ppc64/32 + set/getrlimit GLIBC2.0 is ppc32 only + use parallel make on ppc and ppc64 + do not chroot as user + cleanup nested ifarch for dynamic linker + +------------------------------------------------------------------- +Wed May 15 10:25:45 CEST 2002 - aj@suse.de + +- Fix building of linuxthreads with current GCC. + +------------------------------------------------------------------- +Mon May 13 10:04:37 CEST 2002 - olh@suse.de + +- fix ppc64 RTLDLIST ld64.so rewrite + +------------------------------------------------------------------- +Sat May 11 02:09:06 CEST 2002 - schwab@suse.de + +- Add div/mod compatibility functions for ia64. + +------------------------------------------------------------------- +Fri May 10 13:56:59 CEST 2002 - olh@suse.de + +- add ppc64 support + +------------------------------------------------------------------- +Thu May 9 10:06:19 CEST 2002 - aj@suse.de + +- Add sys/io.h for x86-64. + +------------------------------------------------------------------- +Mon May 6 18:12:51 CEST 2002 - ihno@suse.de + +- corrected memory calculation for parallel build + +------------------------------------------------------------------- +Fri May 3 16:28:23 CEST 2002 - kukuk@suse.de + +- Add fix to compile math.h on SPARC with g++ + +------------------------------------------------------------------- +Thu May 2 11:29:29 CEST 2002 - kukuk@suse.de + +- Update to current CVS 2.2 branch +- Add x86-64 fix for crti.o and /usr/lib64 with libpthread + +------------------------------------------------------------------- +Fri Apr 26 16:51:48 CEST 2002 - kukuk@suse.de + +- define sqrtl alias for PowerPC + +------------------------------------------------------------------- +Mon Apr 22 07:56:00 CEST 2002 - aj@suse.de + +- Fix vfork for x86-64. +- Fix handling of ld.so.cache for x86-64. + +------------------------------------------------------------------- +Thu Apr 18 09:16:58 CEST 2002 - aj@suse.de + +- Allow testsuite to fail for x86-64. +- Add ULPs for x86-64. + +------------------------------------------------------------------- +Wed Apr 17 16:36:51 CEST 2002 - kukuk@suse.de + +- Update to current snapshot (mktime and dl fixes) +- Update hu.po +- Do not build a profiled glibc for x86-64 + +------------------------------------------------------------------- +Fri Apr 12 10:33:31 CEST 2002 - kukuk@suse.de + +- Update to current snapshot (fix SPARC compile) +- Revert do-lookup.h patch on Alpha (does not work here) + +------------------------------------------------------------------- +Wed Apr 10 15:09:33 CEST 2002 - aj@suse.de + +- Fix linuxthreads for x86-64. + +------------------------------------------------------------------- +Wed Apr 10 13:02:48 CEST 2002 - aj@suse.de + +- Add x86-64.diff to fix glob64. + +------------------------------------------------------------------- +Wed Apr 10 10:26:22 CEST 2002 - kukuk@suse.de + +- Update kernel-headers to 2.4.19pre4 (with x86-64 support) +- Update glibc to current cvs snapshot +- Allow old currencies (before EUR) + +------------------------------------------------------------------- +Tue Apr 2 15:58:49 CEST 2002 - aj@suse.de + +- Update ULPs. + +------------------------------------------------------------------- +Thu Mar 21 16:18:58 CET 2002 - kukuk@suse.de + +- Create html pages after installation of info pages [Bug #15283] + +------------------------------------------------------------------- +Tue Mar 12 16:09:51 CET 2002 - kukuk@suse.de + +- Add db1 fix if blocksize is not ^2 + +------------------------------------------------------------------- +Sat Mar 2 18:18:15 CET 2002 - kukuk@suse.de + +- Add fix for format string bug + +------------------------------------------------------------------- +Sat Mar 2 10:44:31 CET 2002 - kukuk@suse.de + +- Fix return value of nice wrapper + +------------------------------------------------------------------- +Fri Mar 1 14:33:09 CET 2002 - kukuk@suse.de + +- Add fix for corrupt ut_line +- Add fix for current gcc 3.1 +- Add patch for nice return values + +------------------------------------------------------------------- +Thu Feb 28 14:53:42 CET 2002 - kukuk@suse.de + +- Add fix for rtime, swscanf and ia64 + +------------------------------------------------------------------- +Mon Feb 18 13:22:05 CET 2002 - kukuk@suse.de + +- When a dlopened module references a weak symbol from another + dlopened module (loaded with RTLD_GLOBAL) no dependency was + generated for this fact, so the second module was unloaded even + if the first one was still around. + +------------------------------------------------------------------- +Sun Feb 17 10:51:53 CET 2002 - kukuk@suse.de + +- Add pthread/signal bugfix [Bug #13280] +- Fix directory file list (don't include /usr/include) + +------------------------------------------------------------------- +Thu Feb 14 19:46:04 CET 2002 - kukuk@suse.de + +- Use defattr in spec file to avoid problems with not existing + UIDs and rpm. + +------------------------------------------------------------------- +Thu Feb 14 13:22:13 CET 2002 - aj@suse.de + +- Update ULPs for GCC 3.1. + +------------------------------------------------------------------- +Wed Feb 13 16:03:20 CET 2002 - kukuk@suse.de + +- Apply db1 patch from mls@suse.de to fix rpm problems + +------------------------------------------------------------------- +Tue Feb 12 02:01:42 CET 2002 - ro@suse.de + +- fix owner/group for kernel headers + +------------------------------------------------------------------- +Mon Feb 11 15:17:18 CET 2002 - kukuk@suse.de + +- Add another solution for the glob problem + +------------------------------------------------------------------- +Thu Feb 7 16:20:49 CET 2002 - kukuk@suse.de + +- Add fix for glob (glob should not call globfree) +- Add fix for innetgr + +------------------------------------------------------------------- +Wed Feb 6 22:01:29 CET 2002 - kukuk@suse.de + +- Use correct BuildRoot + +------------------------------------------------------------------- +Wed Feb 6 16:40:49 CET 2002 - kukuk@suse.de + +- Update hu.po + +------------------------------------------------------------------- +Wed Feb 6 15:36:56 CET 2002 - kukuk@suse.de + +- Set LC_CTYPE for error messages in localedef [Bug #12878] + +------------------------------------------------------------------- +Mon Feb 4 14:26:48 CET 2002 - kukuk@suse.de + +- Add fixes from CVS: dynamic loader, readv and writev seg.fault + and various architecture fixes for alpha and mips +- Don't compile with -g on Alpha +- Add fix for possible endless loop fix + +------------------------------------------------------------------- +Fri Feb 1 15:58:41 CET 2002 - bk@suse.de + +- merged s390x lib64 patch and spec file changes + +------------------------------------------------------------------- +Wed Jan 23 15:39:02 CET 2002 - kukuk@suse.de + +- Split glibc into glibc and glibc-locale +- Create more UTF8 locale + +------------------------------------------------------------------- +Mon Jan 21 10:45:19 CET 2002 - kukuk@suse.de + +- Update to official glibc 2.2.5 + +------------------------------------------------------------------- +Wed Jan 16 18:29:33 CET 2002 - kukuk@suse.de + +- Remove /var/adm/setup/setup.timeconfig + +------------------------------------------------------------------- +Wed Jan 16 17:22:52 CET 2002 - kukuk@suse.de + +- Apply S390 fix + +------------------------------------------------------------------- +Wed Jan 9 15:33:49 CET 2002 - kukuk@suse.de + +- Update to glibc 2.2.5pre1 + +------------------------------------------------------------------- +Tue Jan 8 18:41:29 CET 2002 - egmont@suselinux.hu + +- Added partial Hungarian translation + +------------------------------------------------------------------- +Tue Jan 8 13:52:51 CET 2002 - kukuk@suse.de + +- Add patch to pass math tests with gcc 3.x +- Update to current CVS version + +------------------------------------------------------------------- +Thu Jan 3 18:05:48 CET 2002 - kukuk@suse.de + +- Update kernel header files to 2.4.17 + +------------------------------------------------------------------- +Tue Jan 1 10:55:34 CET 2002 - kukuk@suse.de + +- Update current CVS version, add final fixes for LSB test suite + +------------------------------------------------------------------- +Tue Dec 18 15:27:42 CET 2001 - poeml@suse.de + +- Install ja_JP.SJIS locale. + +------------------------------------------------------------------- +Sat Dec 15 15:27:12 CET 2001 - schwab@suse.de + +- Fix missing declaration of md5_uintptr. + +------------------------------------------------------------------- +Fri Dec 14 10:11:17 CET 2001 - kukuk@suse.de + +- Update to correct CVS branch + +------------------------------------------------------------------- +Thu Dec 13 14:50:25 CET 2001 - kukuk@suse.de + +- Update to current CVS +- Increase PATH_MAX to 4096 (including the leading zero) +- Clear pointer if asprintf fails +- pthread_key_delete should not contact thread manager before it + is created. + +------------------------------------------------------------------- +Tue Dec 11 22:35:07 CET 2001 - kukuk@suse.de + +- Fix prelink patch + +------------------------------------------------------------------- +Tue Dec 11 18:53:12 CET 2001 - kukuk@suse.de + +- Add fixes for LSB.os test suite (ftw, grantpt and ftok) +- Update to current CVS +- Add prelink patch + +------------------------------------------------------------------- +Fri Dec 7 19:16:30 CET 2001 - kukuk@suse.de + +- Merge with current CVS +- Add blowfish crypt + +------------------------------------------------------------------- +Fri Nov 23 11:55:14 CET 2001 - uli@suse.de + +- added armv4l arch to spec +- added arm kernel headers +- added trivial fix for dl-machine.h from CVS (see arm.dif) + +------------------------------------------------------------------- +Thu Nov 15 10:29:33 CET 2001 - adrian@suse.de + +- add mips architecture to spec file +- apply further mips fixes for ld +- activate %clean again + +------------------------------------------------------------------- +Sun Nov 11 12:12:03 CET 2001 - kukuk@suse.de + +- Fix lost permissions of shell script on SPARC + +------------------------------------------------------------------- +Thu Nov 8 18:40:33 CET 2001 - kukuk@suse.de + +- Add 32bit UID fixes + +------------------------------------------------------------------- +Thu Nov 8 11:47:21 CET 2001 - kukuk@suse.de + +- More fixes for asm-ia64 header files + +------------------------------------------------------------------- +Thu Nov 8 10:50:13 CET 2001 - kukuk@suse.de + +- Fix asm-i386/processor.h (don't align struct) +- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) +- Correct version number in version.h + +------------------------------------------------------------------- +Wed Nov 7 14:07:21 CET 2001 - uli@suse.de + +- fixed sys/io.h, sysmacros.h for icc + +------------------------------------------------------------------- +Tue Nov 6 16:53:04 CET 2001 - kukuk@suse.de + +- Update kernel-headers to 2.4.14 + +------------------------------------------------------------------- +Thu Nov 1 11:34:56 CET 2001 - kukuk@suse.de + +- Use again old rules to generate html files + +------------------------------------------------------------------- +Sun Oct 21 22:55:24 CEST 2001 - schwab@suse.de + +- Fix inttypes.h for C++. + +------------------------------------------------------------------- +Fri Oct 19 13:31:53 CEST 2001 - aj@suse.de + +- Fix typo in inttypes.h that presents compilation by non-GCC compilers. + +------------------------------------------------------------------- +Tue Oct 16 10:56:52 CEST 2001 - aj@suse.de + +- Update elf.h to include x86-64 defines since those are needed + by some other tools. + +------------------------------------------------------------------- +Fri Sep 28 15:59:19 CEST 2001 - schwab@suse.de + +- Readd patch from 2001-09-10 with corrections. +- Add compatibility patch for GCC 3. This allows to build glibc + with GCC 3. +- Require that make check succeeds on ia64. + +------------------------------------------------------------------- +Thu Sep 13 15:58:31 CEST 2001 - aj@suse.de + +- Add a better version of the threads-fork patch that fixes some + more places where interrupts can occur and does this a bit cleaner. + +------------------------------------------------------------------- +Tue Sep 11 13:50:37 CEST 2001 - aj@suse.de + +- Remove patch from 2001-09-10 since it breaks the dynamic linker. + +------------------------------------------------------------------- +Tue Sep 11 10:51:11 CEST 2001 - aj@suse.de + +- Fix bug in linuxthreads where manager and threads could + get out of synch due to an interrupted read call. + +------------------------------------------------------------------- +Mon Sep 10 18:20:32 CEST 2001 - schwab@suse.de + +- Fix handling of dependent dynamic objects for dlopen/dlclose. + +------------------------------------------------------------------- +Sat Sep 8 21:02:38 CEST 2001 - kukuk@suse.de + +- Don't create gconv cache (else iconv --list seg.faults) + +------------------------------------------------------------------- +Tue Aug 28 13:39:37 MEST 2001 - aj@suse.de + +- Improve dynamic linker to relocate dynamic objects faster. This + implies a small cache for symbol lookups and handling the ld -z combreloc + feature if binaries are linked this way. + +------------------------------------------------------------------- +Fri Aug 24 14:26:33 CEST 2001 - kukuk@suse.de + +- Add fix for handling of %l[] in vfscanf +- ldconfig removes stale links now +- Remove susehelp config files, now in susehelp itself + +------------------------------------------------------------------- +Wed Aug 22 15:26:06 CEST 2001 - aj@suse.de + +- Update s390 patch from IBM. + +------------------------------------------------------------------- +Fri Aug 17 14:11:16 CEST 2001 - kukuk@suse.de + +- Adjust dns6 patch for 2.2.4 +- Fix spec file (include lost libnss_dns6.so) +- Fix versionnumber in version.h [Bug #9759] +- Update kernel-header to 2.4.9 + +------------------------------------------------------------------- +Thu Aug 16 09:32:39 MEST 2001 - aj@suse.de + +- Update to 2.2.4 final. Add s390-ucontext patch. + +------------------------------------------------------------------- +Fri Aug 10 12:04:14 CEST 2001 - aj@suse.de + +- Update to current glibc version. Do not use the hardlink program + for compatification since localedef will do this itself now. + Create gconv cache. + +------------------------------------------------------------------- +Wed Aug 1 15:31:50 CEST 2001 - aj@suse.de + +- Add patch for zic to create copy of the timezone instead + of a symbolic link so that the file exists even if /usr is not + mounted. + Use i486 instead of i386 as default architecture for i386. + +------------------------------------------------------------------- +Sat Jul 28 08:36:27 CEST 2001 - kukuk@suse.de + +- Fix problem with linux/spinlock.h + +------------------------------------------------------------------- +Fri Jul 27 09:30:01 CEST 2001 - kukuk@suse.de + +- Update kernel-header files to 2.4.7 + +------------------------------------------------------------------- +Thu Jul 26 14:04:15 CEST 2001 - froh@suse.de + +- add fix for failing tst-setcontext on s390 + +------------------------------------------------------------------- +Wed Jul 25 09:29:38 CEST 2001 - aj@suse.de + +- Add patch to fix loading of dynamic libs in static programs for PPC. + +------------------------------------------------------------------- +Fri Jul 20 13:44:30 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Disable tst-regex and test-lfs + +------------------------------------------------------------------- +Fri Jul 6 15:26:54 CEST 2001 - kukuk@suse.de + +- Add da_DK@euro and da_DK.UTF-8 + +------------------------------------------------------------------- +Thu Jul 5 14:34:02 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Remove obsolete cvs patch +- Fix DNS/IPv6 patch +- Hardlink equal locale files + +------------------------------------------------------------------- +Fri Jun 22 15:59:21 CEST 2001 - olh@suse.de + +- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check + +------------------------------------------------------------------- +Tue Jun 19 06:41:03 EDT 2001 - bk@suse.de + +- added s390x support to spec file + +------------------------------------------------------------------- +Tue Jun 19 10:27:38 CEST 2001 - aj@suse.de + +- Fix profiling on PowerPC. + +------------------------------------------------------------------- +Fri Jun 15 17:58:22 CEST 2001 - schwab@suse.de + +- Fixup asm-ia64/atomic.h for user-space inclusion. + +------------------------------------------------------------------- +Tue Jun 12 11:14:08 CEST 2001 - aj@suse.de + +- Fix testsuite for sparc. + +------------------------------------------------------------------- +Mon Jun 11 13:56:16 CEST 2001 - aj@suse.de + +- Fix testsuite for powerpc and S390, build again on alpha. + +------------------------------------------------------------------- +Tue May 22 15:43:24 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] + +------------------------------------------------------------------- +Sun May 13 15:19:42 CEST 2001 - kukuk@suse.de + +- Don't use absolute paths in pre-install-section + +------------------------------------------------------------------- +Fri May 4 19:20:10 CEST 2001 - kukuk@suse.de + +- Add special version.h which fails on compiling kernel modules + +------------------------------------------------------------------- +Sat Apr 28 18:32:51 CEST 2001 - kukuk@suse.de + +- Update to glibc 2.2.3, kernel-headers-2.4.4 + +------------------------------------------------------------------- +Tue Apr 24 16:04:32 CEST 2001 - schwab@suse.de + +- Fix feenableexcept on ia64. + +------------------------------------------------------------------- +Tue Apr 24 15:48:34 CEST 2001 - aj@suse.de + +- Install some more UTF-8 locales, fix tr_TR locale. + +------------------------------------------------------------------- +Thu Apr 12 17:42:08 CEST 2001 - kukuk@suse.de + +- Include our own texi2html + +------------------------------------------------------------------- +Wed Apr 11 18:50:12 CEST 2001 - kukuk@suse.de + +- Add fixes from SuSE kernel header files +- Add patch to reload /etc/resolv.conf if there was changes +- Add glibc.conf for susehelp (glibc-html pages) + +------------------------------------------------------------------- +Mon Apr 9 17:39:18 CEST 2001 - schwab@suse.de + +- Fix ld.so for kernel 2.4.3 on ia64. + +------------------------------------------------------------------- +Thu Apr 5 17:39:44 CEST 2001 - kukuk@suse.de + +- Add more fixes from CVS + +------------------------------------------------------------------- +Tue Apr 3 15:40:58 CEST 2001 - kukuk@suse.de + +- Fix isdn header files from kernel-headers + +------------------------------------------------------------------- +Fri Mar 30 18:40:09 CEST 2001 - kukuk@suse.de + +- Update kernel header files to 2.4.3 + +------------------------------------------------------------------- +Fri Mar 30 17:22:54 CEST 2001 - kukuk@suse.de + +- Merge s390 patches +- Fix rcmd_af() (allow PF_UNSPEC) + +------------------------------------------------------------------- +Fri Mar 30 08:52:32 CEST 2001 - aj@suse.de + +- Add some small fixes, fix spec file for removal of man-pages. + +------------------------------------------------------------------- +Thu Mar 29 18:16:09 CEST 2001 - kukuk@suse.de + +- Don't provide kernel_headers any longer +- Remove some man-pages which are now official in the man-pages + package + +------------------------------------------------------------------- +Thu Mar 29 08:33:19 CEST 2001 - aj@suse.de + +- Fix shmfs recognition. + +------------------------------------------------------------------- +Thu Mar 29 01:18:52 CEST 2001 - ro@suse.de + +- added db-splitmask fix from mls (hopefully work around bug in db1) + +------------------------------------------------------------------- +Wed Mar 28 09:02:54 CEST 2001 - aj@suse.de + +- Fix s390 to not generate wrong relocations, work around compiler + error. + +------------------------------------------------------------------- +Wed Mar 21 14:46:25 CET 2001 - kukuk@suse.de + +- glibc-devel obsoletes and provides linclude + +------------------------------------------------------------------- +Tue Mar 20 12:38:28 CET 2001 - kukuk@suse.de + +- Add strtok and other fixes from CVS +- Add yp_all fix + +------------------------------------------------------------------- +Tue Mar 13 13:57:16 CET 2001 - kukuk@suse.de + +- Add more s390 string.h fixes + +------------------------------------------------------------------- +Mon Mar 12 10:05:30 CET 2001 - aj@suse.de + +- Add fixes for s390, don't run testsuite on s390 for now. + +------------------------------------------------------------------- +Fri Mar 9 17:05:27 CET 2001 - kukuk@suse.de + +- Fix linux/init.h header file + +------------------------------------------------------------------- +Fri Mar 9 16:01:15 CET 2001 - aj@suse.de + +- Handle new EM_S390 value. + +------------------------------------------------------------------- +Fri Mar 9 15:33:55 CET 2001 - kukuk@suse.de + +- kernel-heaer fixes to build on Alpha + +------------------------------------------------------------------- +Thu Mar 8 16:02:45 CET 2001 - ro@suse.de + +- update kernel-headers to 2.4.2 + +------------------------------------------------------------------- +Thu Mar 8 12:53:56 CET 2001 - ro@suse.de + +- kernel-header fixes to build on s390 + +------------------------------------------------------------------- +Thu Feb 22 11:22:08 CET 2001 - schwab@suse.de + +- More kernel header fixes for IA64. + +------------------------------------------------------------------- +Tue Feb 20 11:18:53 CET 2001 - kukuk@suse.de + +- Remove optimisation not supported on all plattforms + +------------------------------------------------------------------- +Mon Feb 19 09:48:02 CET 2001 - kukuk@suse.de + +- Fix Optimization of glibc build +- Add Optimization for alphaev6 and sparcv9 + +------------------------------------------------------------------- +Sat Feb 17 17:19:40 CET 2001 - kukuk@suse.de + +- Update to glibc 2.2.2 from CVS + +------------------------------------------------------------------- +Thu Feb 15 16:51:12 CET 2001 - kukuk@suse.de + +- kernel header fixes for SPARC and IA64 + +------------------------------------------------------------------- +Tue Feb 13 14:19:43 CET 2001 - kukuk@suse.de + +- Make optimization for i686 work +- Add manual page for ldd + +------------------------------------------------------------------- +Mon Feb 12 16:05:23 CET 2001 - kukuk@suse.de + +- Fix more kernel headers + +------------------------------------------------------------------- +Thu Feb 8 16:34:27 CET 2001 - kukuk@suse.de + +- Fix more kernel-headers + +------------------------------------------------------------------- +Wed Feb 7 17:17:03 CET 2001 - kukuk@suse.de + +- Delete links in pre install section for glibc-devel + +------------------------------------------------------------------- +Wed Feb 7 01:08:26 CET 2001 - kukuk@suse.de + +- Fix kernel-header includes + +------------------------------------------------------------------- +Tue Feb 6 09:29:04 CET 2001 - kukuk@suse.de + +- Fix creating of /usr/include/asm on SPARC +- Add more CVS patches + +------------------------------------------------------------------- +Mon Feb 5 18:58:08 CET 2001 - kukuk@suse.de + +- Add some patches from CVS +- Include our own kernel header files + +------------------------------------------------------------------- +Mon Jan 22 18:47:24 CET 2001 - aj@suse.de + +- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. + +------------------------------------------------------------------- +Mon Jan 22 10:26:42 CET 2001 - aj@suse.de + +- Fix mmap64 on powerpc. + +------------------------------------------------------------------- +Tue Jan 16 08:42:33 CET 2001 - aj@suse.de + +- Fix sunrpc-udp.diff, add mman.h fix for powerpc. + +------------------------------------------------------------------- +Wed Jan 10 14:49:30 CET 2001 - aj@suse.de + +- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. + +------------------------------------------------------------------- +Tue Jan 9 09:01:41 CET 2001 - aj@suse.de + +- Add glibc-2.2.secure.diff to close some security holes. + +------------------------------------------------------------------- +Wed Jan 3 15:26:45 CET 2001 - schwab@suse.de + +- Fix strtol and friends on 64 bit platforms. +- Use 8192 as default pagesize on ia64. +- Scan AUX vector also in statically linked programs. + +------------------------------------------------------------------- +Wed Jan 3 15:20:45 CET 2001 - aj@suse.de + +- Build some UTF-8 locales using a patch from Markus Kuhn. + +------------------------------------------------------------------- +Wed Dec 13 15:52:13 CET 2000 - aj@suse.de + +- Add compatibility patch for IPv6 and Linux 2.2. + +------------------------------------------------------------------- +Wed Dec 13 15:48:56 CET 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Sat Dec 9 13:30:23 CET 2000 - kukuk@suse.de + +- Fix resolver bug + +------------------------------------------------------------------- +Fri Dec 1 13:16:07 CET 2000 - kukuk@suse.de + +- Add bug fixes for setlocale and strncat +- strip gconv modules + +------------------------------------------------------------------- +Fri Nov 24 07:43:08 CET 2000 - kukuk@suse.de + +- Fix typo in spec file + +------------------------------------------------------------------- +Thu Nov 23 23:22:36 CET 2000 - kukuk@suse.de + +- Add hack for POWER3 + +------------------------------------------------------------------- +Wed Nov 22 13:03:19 CET 2000 - kukuk@suse.de + +- Add strncat bugfix for S/390 + +------------------------------------------------------------------- +Tue Nov 21 10:53:31 CET 2000 - kukuk@suse.de + +- Don't bulid 32bit compat packages + +------------------------------------------------------------------- +Mon Nov 20 15:46:44 CET 2000 - schwab@suse.de + +- Remove use of getpagesize syscall on ia64. +- Follow DT_INIT/DT_FINI change in compiler. + +------------------------------------------------------------------- +Sun Nov 19 22:43:40 CET 2000 - kukuk@suse.de + +- Minor specfile fixes + +------------------------------------------------------------------- +Thu Nov 16 17:38:47 CET 2000 - kukuk@suse.de + +- Add lot of more bug fixes + +------------------------------------------------------------------- +Tue Nov 14 16:52:59 CET 2000 - kukuk@suse.de + +- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de + +------------------------------------------------------------------- +Mon Nov 13 14:52:05 CET 2000 - aj@suse.de + +- Fix noversion.diff and spec file. + +------------------------------------------------------------------- +Sat Nov 11 08:40:42 CET 2000 - kukuk@suse.de + +- Fix nssv1 on PowerPC +- no libNoVersion on SPARC + +------------------------------------------------------------------- +Fri Nov 10 21:47:16 CET 2000 - kukuk@suse.de + +- Disable make check on PowerPC and Alpha + +------------------------------------------------------------------- +Fri Nov 10 17:09:57 CET 2000 - kukuk@suse.de + +- Update to final glibc 2.2 + +------------------------------------------------------------------- +Fri Nov 3 10:44:46 CET 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001103 (glibc-2.1.97) +- Don't install libNoVersion on PowerPC +- Rename nssv1 -> glibc-nssv1 +- Rename libd -> glibc-profile, move libg.a to libc +- Rename libcinfo -> glibc-info +- Rename libchtml -> glibc-html +- Rename localedb -> glibc-i18ndata +- Rename libc -> glibc-devel +- Rename shlibs -> glibc + +------------------------------------------------------------------- +Sat Oct 28 09:10:07 CEST 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001028 +- Enable more checks + +------------------------------------------------------------------- +Fri Oct 27 15:39:17 CEST 2000 - aj@suse.de + +- Fix NoVersion patch + +------------------------------------------------------------------- +Wed Oct 25 16:47:22 CEST 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001025 + +------------------------------------------------------------------- +Sun Oct 22 16:31:32 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20001021 +- Update glibc-db to 2.1.95 +- Update ia64 patch + +------------------------------------------------------------------- +Fri Oct 20 15:54:24 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20001020 +- Add s390 spec file changes + +------------------------------------------------------------------- +Tue Oct 10 13:46:03 CEST 2000 - schwab@suse.de + +- Update to glibc 2.2-20001009. +- Fix TRAMPOLINE_TEMPLATE for ia64. + +------------------------------------------------------------------- +Sun Oct 1 17:08:32 CEST 2000 - schwab@suse.de + +- Export more ia64 specific symbols. + +------------------------------------------------------------------- +Tue Sep 26 12:14:37 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20000926 + +------------------------------------------------------------------- +Mon Sep 25 14:02:07 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20000925 snapshot + +------------------------------------------------------------------- +Thu Sep 14 11:43:51 CEST 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Fri Sep 8 19:44:17 CEST 2000 - bk@suse.de + +- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) + +------------------------------------------------------------------- +Wed Sep 6 09:44:36 CEST 2000 - fober@suse.de + +- merge s390-7.0 with STABLE: + - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 + - added new changes from IBM s390 codedrop + - removed glibc-dlopen-2.1.3-s390.diff which is + incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now + +------------------------------------------------------------------- +Tue Sep 5 18:19:46 CEST 2000 - kukuk@suse.de + +- Add glibc-2.1.security.dif + +------------------------------------------------------------------- +Fri Sep 1 11:14:25 CEST 2000 - olh@suse.de + +- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc + +------------------------------------------------------------------- +Wed Aug 30 16:16:04 CEST 2000 - olh@suse.de + +- remove sysdeps/powerpc/memset.S on ppc for POWER3 + +------------------------------------------------------------------- +Mon Aug 28 17:12:41 CEST 2000 - olh@suse.de + +- add glibc-2.1.sgi_fam.dif +- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 + +------------------------------------------------------------------- +Mon Aug 21 19:56:06 CEST 2000 - garloff@suse.de + +- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) + +------------------------------------------------------------------- +Tue Jul 25 08:41:48 CEST 2000 - kukuk@suse.de + +- Add mmap fix for PowerPC + +------------------------------------------------------------------- +Tue Jul 11 10:02:41 CEST 2000 - kukuk@suse.de + +- Remove "mutex is owned by current thread" bugfix for IBMs jdk + +------------------------------------------------------------------- +Mon Jun 26 16:47:54 CEST 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Tue Jun 20 15:33:43 CEST 2000 - kukuk@suse.de + +- Move html docu in extra package +- Update ia64 patch + +------------------------------------------------------------------- +Wed May 31 14:35:00 CEST 2000 - kukuk@suse.de + +- Remove LICENSE file, it's the same as COPYING.LIB +- Add libc docu as html + +------------------------------------------------------------------- +Sun May 28 14:44:42 CEST 2000 - kukuk@suse.de + +- Fix ldconfig on PPC and IA64 + +------------------------------------------------------------------- +Sat May 27 15:25:13 CEST 2000 - kukuk@suse.de + +- Merge new ldconfig fixes + +------------------------------------------------------------------- +Fri May 26 18:16:52 CEST 2000 - kukuk@suse.de + +- Update ia64 patch + +------------------------------------------------------------------- +Fri May 26 11:07:39 CEST 2000 - kukuk@suse.de + +- Fix (f)truncate64 and xdr_uint8_t + +------------------------------------------------------------------- +Wed May 24 22:23:12 CEST 2000 - kukuk@suse.de + +- Fix ldconfig.8 manual page + +------------------------------------------------------------------- +Thu May 18 17:53:09 CEST 2000 - bk@suse.de + +- added s390 dlopen fix + +------------------------------------------------------------------- +Tue May 16 16:48:13 CEST 2000 - bk@suse.de + +- updated s390 patches to match IBM_codedrop_2000_05_15 + +------------------------------------------------------------------- +Fri May 12 15:47:08 CEST 2000 - kukuk@suse.de + +- Fix netinet/in.h IPv6 compare + +------------------------------------------------------------------- +Fri May 12 14:47:15 CEST 2000 - schwab@suse.de + +- Update ia64 patches. + +------------------------------------------------------------------- +Fri May 12 14:22:11 CEST 2000 - kukuk@suse.de + +- Don't apply LFS patch + +------------------------------------------------------------------- +Tue May 9 22:21:23 CEST 2000 - kukuk@suse.de + +- Add LFS patches + +------------------------------------------------------------------- +Mon May 8 11:59:48 CEST 2000 - kukuk@suse.de + +- Add lot of bug fixes from CVS + +------------------------------------------------------------------- +Tue Apr 25 14:20:43 CEST 2000 - kukuk@suse.de + +- Fix nscd/getgrnam bug + +------------------------------------------------------------------- +Thu Apr 20 16:38:26 CEST 2000 - kukuk@suse.de + +- Remove /var/mail -> /var/spool/mail patch +- Update nscd.conf.5 manual page + +------------------------------------------------------------------- +Wed Apr 12 16:18:55 CEST 2000 - kukuk@suse.de + +- Add nscd patch from Chris Wing + +------------------------------------------------------------------- +Wed Apr 12 15:52:55 CEST 2000 - kukuk@suse.de + +- Add ldconfig fix from aj@suse.de + +------------------------------------------------------------------- +Wed Apr 12 11:33:02 CEST 2000 - schwab@suse.de + +- More ia64 patches. +- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. + +------------------------------------------------------------------- +Mon Apr 10 17:55:46 CEST 2000 - kukuk@suse.de + +- Support asm-sparc64 and asm-sparc on SPARC + +------------------------------------------------------------------- +Mon Apr 10 15:46:35 CEST 2000 - kukuk@suse.de + +- Create /etc/ld.so.cache always with permissions 0644 +- Update ia64 patches + +------------------------------------------------------------------- +Thu Apr 6 11:27:20 CEST 2000 - schwab@suse.de + +- Fix dynamic linker bug in ia64. +- Add ia64 spinlocks for db2. + +------------------------------------------------------------------- +Tue Apr 4 16:16:21 CEST 2000 - schwab@suse.de + +- New IA64 patches. +- Fix ldconfig -p. + +------------------------------------------------------------------- +Mon Apr 3 14:42:03 MEST 2000 - bk@suse.de + +- s390 team added s390 patches + +------------------------------------------------------------------- +Wed Mar 22 12:10:02 CET 2000 - kukuk@suse.de + +- Fix last SPARC patch + +------------------------------------------------------------------- +Tue Mar 21 17:48:01 CET 2000 - kukuk@suse.de + +- Add SPARC patches +- Add IA64 patches + +------------------------------------------------------------------- +Wed Mar 15 14:35:47 CET 2000 - kukuk@suse.de + +- Remove personality call (problematic on Alpha) +- Fix typo in localeconv +- alpha/ioperm.c> Add entry for "Nautilus". + +------------------------------------------------------------------- +Tue Mar 7 18:17:07 CET 2000 - kukuk@suse.de + +- Add locale SIGSEGV fix +- Fix getdate bug + +------------------------------------------------------------------- +Fri Feb 25 10:53:47 CET 2000 - kukuk@suse.de + +- Update to final glibc 2.1.3 + fix for bigendian machines + +------------------------------------------------------------------- +Thu Feb 24 16:12:39 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot +- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. + Old libnss_dns.so.2 will only make IPv4 lookups. + +------------------------------------------------------------------- +Tue Feb 22 16:40:35 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot (2.1.3pre4) + +------------------------------------------------------------------- +Sat Feb 5 14:40:33 CET 2000 - kukuk@suse.de + +- Add missing defines for SPARC bits/termios.h + +------------------------------------------------------------------- +Thu Feb 3 18:25:12 CET 2000 - kukuk@suse.de + +- Add regex patch from Andreas Schwab + +------------------------------------------------------------------- +Wed Feb 2 11:37:52 CET 2000 - kukuk@suse.de + +- Add ldconfig fix +- Update to current glibc cvs snapshot +- Fix sys/io.h on Intel (C++) + +------------------------------------------------------------------- +Mon Jan 24 17:01:13 CET 2000 - kukuk@suse.de + +- Fix duplicate setrlimit + +------------------------------------------------------------------- +Mon Jan 24 12:01:27 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot + +------------------------------------------------------------------- +Wed Jan 19 15:53:18 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot + +------------------------------------------------------------------- +Sat Jan 15 01:31:16 CET 2000 - ro@suse.de + +-fixed ppc db2-patch + +------------------------------------------------------------------- +Fri Jan 14 16:54:26 CET 2000 - kukuk@suse.de + +- Add patches for Intel and PPC + +------------------------------------------------------------------- +Fri Jan 14 00:27:03 CET 2000 - kukuk@suse.de + +- Add patch for SPARC + +------------------------------------------------------------------- +Thu Jan 13 15:23:54 CET 2000 - kukuk@suse.de + +- Move info pages to /usr/share/info + +------------------------------------------------------------------- +Mon Jan 10 14:49:14 CET 2000 - kukuk@suse.de + +- Add ipv6 patches for getent + +------------------------------------------------------------------- +Mon Jan 10 11:23:57 CET 2000 - kukuk@suse.de + +- Move manual pages for applications and config files into + shlibs package +- Update to current glibc 2.1.3 snapshot + +------------------------------------------------------------------- +Fri Dec 17 17:06:45 MET 1999 - kukuk@suse.de + +- Add new ldconfig patches +- Add aio patch +- Add fix for bits/string2.h + +------------------------------------------------------------------- +Wed Dec 15 16:37:02 MET 1999 - kukuk@suse.de + +- add ldconfig.8 + +------------------------------------------------------------------- +Wed Dec 15 10:00:53 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot +- Fix get/setrlimit problems + +------------------------------------------------------------------- +Thu Dec 9 20:00:16 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot +- Add new ldconfig + +------------------------------------------------------------------- +Sun Dec 5 11:50:42 MET 1999 - kukuk@suse.de + +- Disable make check for SPARC (kernel bug) +- Add setrlimit patches +- Update to current glibc 2.1.3 snapshot + +------------------------------------------------------------------- +Fri Nov 26 12:09:07 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot. + +------------------------------------------------------------------- +Tue Oct 26 13:54:55 MEST 1999 - kukuk@suse.de + +- Add fix for correct accounting of needed bytes (gethnamaddr.c) +- Remove not exported, public names from internal md5 functions + +------------------------------------------------------------------- +Mon Oct 25 19:03:56 MEST 1999 - kukuk@suse.de + +- Add fix for missing nexttowardl aliase + +------------------------------------------------------------------- +Tue Oct 19 09:56:47 MEST 1999 - kukuk@suse.de + +- Add security fix for iruserok + +------------------------------------------------------------------- +Sat Oct 16 16:29:44 MEST 1999 - kukuk@suse.de + +- Build libNoVersion.so.1 on every platform + +------------------------------------------------------------------- +Mon Oct 11 19:19:00 MEST 1999 - kukuk@suse.de + +- Add linuxthreads/signals.c fix from Andreas Schwab +- Remove dangling symlink (Bug #544) +- Add more bug fixes + +------------------------------------------------------------------- +Fri Oct 8 22:07:24 MEST 1999 - kukuk@suse.de + +- Add timezone update + +------------------------------------------------------------------- +Fri Oct 8 17:42:22 MEST 1999 - kukuk@suse.de + +- Add NIS+ shadow parser fix + +------------------------------------------------------------------- +Thu Oct 7 11:46:27 MEST 1999 - kukuk@suse.de + +- Update to official glibc 2.1.2, add important fixes +- Update nscd, add manual pages for it + +------------------------------------------------------------------- +Mon Sep 20 18:14:13 CEST 1999 - ro@suse.de + +- libc: added requires kernel_headers + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +------------------------------------------------------------------- +Mon Sep 6 10:25:03 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot +- Remove use auf automake in spec file + +------------------------------------------------------------------- +Fri Sep 3 14:35:42 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot +- Use RPM macros for configure + +------------------------------------------------------------------- +Wed Aug 25 17:07:09 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot + +------------------------------------------------------------------- +Thu Aug 19 15:20:26 MEST 1999 - kukuk@suse.de + +- Add PowerPC patches from Uli Hecht +- Cleanup of SPEC file +- Create a profiling version + +------------------------------------------------------------------- +Sat Aug 14 19:58:45 MEST 1999 - kukuk@suse.de + +- disable nscd hosts caching by default +- Apply patch from HJL for broken gethostbyname_r in libnss_dns + +------------------------------------------------------------------- +Fri Jul 16 17:01:51 MEST 1999 - kukuk@suse.de + +- Add header fix for autoconf/g++ +- Move pt_chown and gconv modules from libc to shlibs + +------------------------------------------------------------------- +Wed Jul 14 16:05:14 MEST 1999 - kukuk@suse.de + +- Remove /etc/localtime from filelist + +------------------------------------------------------------------- +Mon Jul 12 09:54:43 MEST 1999 - kukuk@suse.de + +- Add more bug fixes from cvs +- Add ld.so bug fix from Andreas Schwab + +------------------------------------------------------------------- +Thu Jul 8 17:25:43 MEST 1999 - kukuk@suse.de + +- configure for i386-unknown-linux + +------------------------------------------------------------------- +Wed Jul 7 12:28:43 MEST 1999 - kukuk@suse.de + +- Remove alpha patch, it's now in glibc 2.1.2 cvs +- Add more bug fixes from cvs +- Remove malloc patch (breaks StarOffice) + +------------------------------------------------------------------- +Tue Jul 6 18:08:26 MEST 1999 - kukuk@suse.de + +- Add openpty patch from Andreas Schwab + (openpty now works if /dev/pts is not mounted) + +------------------------------------------------------------------- +Fri Jul 2 12:04:47 MEST 1999 - kukuk@suse.de + +- Remove warning von zic about symlinks. + +------------------------------------------------------------------- +Mon Jun 28 19:49:44 MEST 1999 - kukuk@suse.de + +- Remove ndbm links, now in gdbm + +------------------------------------------------------------------- +Fri Jun 25 16:16:20 MEST 1999 - kukuk@suse.de + +- Add a lot of more fixes +- Add nscd fixes and enable nscd on alpha + +------------------------------------------------------------------- +Mon Jun 14 09:17:26 MEST 1999 - kukuk@suse.de + +- Add nss_dns and fget* fixes. +- Add nscd patches for NIS+ + +------------------------------------------------------------------- +Thu Jun 10 10:04:11 MEST 1999 - kukuk@suse.de + +- Fix daemon() for MT programs +- Add libio fixes + +------------------------------------------------------------------- +Fri May 28 08:53:20 MEST 1999 - kukuk@suse.de + +- Add fix for docu +- Disable nscd for alpha again + +------------------------------------------------------------------- +Wed May 26 09:42:54 MEST 1999 - kukuk@suse.de + +- Update to version 2.1.1 + +------------------------------------------------------------------- +Mon May 17 16:49:35 MEST 1999 - kukuk@suse.de + +- Update to snapshot from 16.5.1999 +- Add manpages +- Add __setfpucw to libNoVersion (intel) +- Add COPYING and COPYING.LIB + +------------------------------------------------------------------- +Fri May 7 18:57:20 MEST 1999 - kukuk@suse.de + +- Update to snapshot from 6.5.1999 +- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps +- Add patch for Alpha RX164 +- Add workaround for nscd on Alpha + +------------------------------------------------------------------- +Wed Apr 28 17:48:51 MEST 1999 - kukuk@suse.de + +- Remove latest fnmatch patches from Uli Drepper + +------------------------------------------------------------------- +Tue Apr 27 11:48:46 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 26 1999 +- fix pmap_set/pmap_unset for DHCP clients +- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create + the symbolic links. + +------------------------------------------------------------------- +Tue Apr 20 13:57:07 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 20 1999 +- remove sunrpc.diff +- fix nssv1 package +- only include nscd on intel +- install /etc/nscd.conf + +------------------------------------------------------------------- +Mon Apr 12 09:52:58 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 11 1999 +- Fix paths in paths.h +- install linuxthreads man pages and documentation +- Add sunrpc patch for Alpha and security fixes +- added links for el_GR and ru_RU.KOI8-R in usr/share/locale + +------------------------------------------------------------------- +Wed Mar 31 13:21:02 MEST 1999 - bs@suse.de + +- don't use lx_hack for build + +------------------------------------------------------------------- +Tue Mar 16 08:33:57 MET 1999 - ro@suse.de + +- libc.texinfo: changed to build with stable texinfo version + +------------------------------------------------------------------- +Mon Mar 15 23:49:51 MET 1999 - ro@suse.de + +- update to 2.1.1 (cvs of Mar 15 1999) +- update nssv1 to 2.0.2 + +------------------------------------------------------------------- +Sat Feb 20 19:29:32 MET 1999 - ro@suse.de + +- fixed specfile (lddlibc4 not built on alpha) + +------------------------------------------------------------------- +Sat Feb 20 18:41:22 MET 1999 - ro@suse.de + +- fixed specfile ... + +------------------------------------------------------------------- +Sat Feb 20 18:31:30 MET 1999 - ro@suse.de + +- added automake to neededforbuild + +------------------------------------------------------------------- +Sat Feb 20 18:15:44 MET 1999 - ro@suse.de + +- added nss-v1 modules (to keep old rpm happy with file owners) + +------------------------------------------------------------------- +Fri Feb 19 14:35:38 MET 1999 - ro@suse.de + +- update to cvs-version of 1999/02/18 + +------------------------------------------------------------------- +Fri Sep 25 18:58:28 MEST 1998 - ro@suse.de + +- fixed specfile + +------------------------------------------------------------------- +Fri Sep 25 12:15:13 MEST 1998 - ro@suse.de + +- update: use cvs-version of 980925 + edited db/Makefile to ignore messed up target-dependency + +------------------------------------------------------------------- +Mon Sep 21 19:43:16 MEST 1998 - ro@suse.de + +- update: use cvs-version of 980921 + +------------------------------------------------------------------- +Mon Sep 14 14:28:21 MEST 1998 - ro@suse.de + +- update: use today's cvs-version + +------------------------------------------------------------------- +Wed Sep 2 16:56:04 MEST 1998 - ro@suse.de + +- build for 586 since egcs generates code for 686 that does NOT run + on 586 !!! (eg strtok) + +------------------------------------------------------------------- +Sat Aug 22 00:43:48 MEST 1998 - ro@suse.de + +- updated to cvs-version 20.8.98 + added gettext as neededforbuild (so configure shuts up) + glibc-linuxthreads is contained in main archive now + +------------------------------------------------------------------- +Tue Jun 16 18:41:51 MEST 1998 - ro@suse.de + +- added symlink usr/include/X11 + +------------------------------------------------------------------- +Thu May 28 11:36:49 MEST 1998 - ro@suse.de + +- added symlinks to linux include files + +------------------------------------------------------------------- +Thu May 28 10:58:09 MEST 1998 - bs@suse.de + +- moved ".so" Links to package libc. + +------------------------------------------------------------------- +Wed May 27 16:26:15 MEST 1998 - bs@suse.de + +- changed version do `date` + +------------------------------------------------------------------- +Wed May 27 12:16:14 MEST 1998 - ro@suse.de + +- created specfile to build libc, shlibs, libd, libcinfo + localedb, timezone, + +- former libc renamed to libc5. diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec new file mode 100644 index 0000000..3c80336 --- /dev/null +++ b/glibc-testsuite.spec @@ -0,0 +1,1249 @@ +# +# spec file for package glibc-testsuite +# +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +# PLEASE run pre_checkin.sh in this directory before submitting +# this package. Otherwise the .spec and .changes for glibc-testsuite +# aren't updated. + +# Run with osc --with=fast_build to have a shorter turnaround +# It will avoid building some parts of glibc +%bcond_with fast_build + +%define crypt_bf_version 1.2 + +Name: glibc-testsuite +%define testsuite_build ("%{name}" == "glibc-testsuite") +Summary: Standard Shared Libraries (from the GNU C Library) +License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +Group: System/Libraries +BuildRequires: fdupes +BuildRequires: libselinux-devel +BuildRequires: makeinfo +BuildRequires: xz +BuildRequires: pkgconfig(systemd) +%if %{testsuite_build} +BuildRequires: gcc-c++ +BuildRequires: libstdc++-devel +%endif + +%define _filter_GLIBC_PRIVATE 1 +%if %_target_cpu == "i686" +# For i686 let's only build what's different from i586, so +# no need to build documentation +%define build_profile 1 +%define build_locales 1 +%define build_html 0 +%else +%if %{with fast_build} +%define build_profile 0 +%define build_locales 0 +%define build_html 0 +%else +# Default: +%define build_profile 1 +%define build_locales 1 +%define build_html 1 +%endif +%endif + +%define disable_assert 0 +%define enable_stackguard_randomization 1 +%ifarch ppc ppc64 + %define optimize_power 1 + %ifarch ppc + %define powerpc_optimize_base power3 + %define powerpc_optimize_tune power3 + %define powerpc_optimize_cpu_power4 1 + %else + %define powerpc_optimize_base power4 + %define powerpc_optimize_tune power5 + %define powerpc_optimize_cpu_power4 0 + %endif + # We are not building Power CPU specific optimizations for openSUSE. + %define powerpc_optimize_cpu_power6 0 + %define powerpc_optimize_cpu_power7 0 + %define powerpc_optimize_cpu_cell 0 +%else + %define optimize_power 0 + %define powerpc_optimize_base 0 + %define powerpc_optimize_cpu_power4 0 + %define powerpc_optimize_cpu_power6 0 + %define powerpc_optimize_cpu_power7 0 + %define powerpc_optimize_cpu_cell 0 +%endif # ppc, ppc64 +%ifarch x86_64 +# 2.6.32 is the SLES 11 SP1 kernel +# 2.6.34 is the openSUSE 11.3 kernel +%define enablekernel 2.6.32 +%else +# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel +%define enablekernel 2.6.16 +%endif +# ngpt was used in 8.1 and SLES8 +Obsoletes: ngpt < 2.2.2 +Obsoletes: ngpt-devel < 2.2.2 +Provides: ngpt = 2.2.2 +Provides: ngpt-devel = 2.2.2 +Conflicts: kernel < %{enablekernel} +# bug437293 - handle update from SLES10 on PowerPC +%ifarch ppc64 +Obsoletes: glibc-64bit +%endif +%ifarch ppc +Obsoletes: glibc-32bit +%endif +%ifarch armv7l armv7hl +# The old runtime linker link gets not provided by rpm find.provides, but it exists +Provides: ld-linux.so.3 +Provides: ld-linux.so.3(GLIBC_2.4) +%endif +Version: 2.16.90 +Release: 0 +%define glibc_major_version 2.16.90 +%define git_id 4641d57e1e00 +Url: http://www.gnu.org/software/libc/libc.html +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: glibc-%{version}-%{git_id}.tar.xz +Source3: noversion.tar.bz2 +Source4: manpages.tar.bz2 +Source5: nsswitch.conf +Source7: bindresvport.blacklist +Source8: glibc_post_upgrade.c +Source9: glibc.rpmlintrc +Source10: baselibs.conf +# For systemd +Source20: nscd.conf +Source21: nscd.service +# crypt_blowfish +Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz +Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign + +Requires(pre): filesystem +Recommends: glibc-extra +Provides: rtld(GNU_HASH) +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if %_target_cpu == "i686" +# We need to avoid to have only the src rpm from i686 on the media, +# since it does not work on other architectures. +NoSource: 0 +%endif +# + +### +# Patches are ordered in the following groups: +# Patches that we will never upstream or which have not been looked at: 0-999 +# Patches taken from upstream: 1000-2000 +# Patches that are going upstream, waiting approval: 2000-3000 +### + +### +# Patches that upstream will not accept +### + +### +# openSUSE specific patches - won't go upstream +### +### openSUSE extensions, configuration +# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 +Patch1: glibc-2.14-crypt.diff +# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de +Patch2: glibc-2.14-crypt-versioning.diff +# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de +Patch3: crypt_blowfish-1.2-sha.diff +# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de +Patch4: crypt_blowfish-1.2-versioning.diff +# PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de +Patch5: crypt_blowfish-1.2-hack_around_arm.diff +# PATCH-FIX-OPENSUSE Fix path for nscd databases +Patch6: glibc-2.3.3-nscd-db-path.diff +# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de +Patch7: nss-db-path.patch +# PATCH-FIX-OPENSUSE adjust nscd.conf +Patch8: glibc-nscd.conf.patch +# PATCH-FIX-OPENSUSE do not use compile time in binaries +Patch9: glibc-nodate.patch +# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de +Patch10: glibc-version.diff +# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de +Patch11: glibc-testsuite.patch +# PATCH-FIX-OPENSUSE handle old glibc binaries +Patch12: glibc-2.3.90-noversion.diff +# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de +Patch13: glibc-2.3.2.no_archive.diff +# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport +Patch14: glibc-2.3.90-bindresvport.blacklist.diff +# PATCH-FIX-OPENSUSE prefer -lang rpm packages +Patch15: glibc-2.3.90-langpackdir.diff +# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) +Patch18: glibc-cpusetsize.diff +# PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de +Patch20: glibc-armhf-compat.patch +# PATCH-FIX-OPENSUSE Fix check abi for crypt additions +Patch21: glibc-fix-check-abi.patch + +### Locale related patches +# PATCH-FIX-OPENSUSE Add additional locales +Patch100: glibc-2.3.locales.diff.bz2 +# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) +Patch101: glibc-2.4.90-revert-only-euro.diff +# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) +Patch102: glibc-2.4.90-no_NO.diff +# PATCH-FIX-OPENSUSE -- Renames for China +Patch103: glibc-2.4-china.diff + +### Broken patches in glibc that we revert for now: +# None + +### Network related patches +# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change +Patch300: glibc-resolv-reload.diff +# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de +Patch301: glibc-2.2-sunrpc.diff +# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 +Patch302: getaddrinfo-ipv6-sanity.diff +# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv +Patch304: glibc-resolv-mdnshint.diff +# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 +Patch305: glibc-nscd-hconf.diff +# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 +Patch306: glibc-fix-double-loopback.diff + +### +# Patches from upstream +### + +### +# Patches awaiting upstream approval +### +# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +Patch2008: glibc-ld-profile.patch +# PATCH-FIX-OPENSUSE Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout +Patch2009: pthread-cond-timedwait-i486.patch +# PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd +Patch2010: nscd-short-write.patch + +%description +The GNU C Library provides the most important standard libraries used +by nearly all programs: the standard C library, the standard math +library, and the POSIX thread library. A system is not functional +without these libraries. + +%package info +Summary: Info Files for the GNU C Library +License: GFDL-1.1 +Group: Documentation/Other +Requires(post): %{install_info_prereq} +Requires(postun): %{install_info_prereq} +BuildArch: noarch + +%description info +This package contains the documentation for the GNU C library stored as +info files. Due to a lack of resources, this documentation is not +complete and is partially out of date. + +%package html +Summary: HTML Documentation for the GNU C Library +License: GFDL-1.1 +Group: Documentation/HTML +BuildArch: noarch + +%description html +This package contains the HTML documentation for the GNU C library. Due +to a lack of resources, this documentation is not complete and is +partially out of date. + +%package i18ndata +Summary: Database Sources for 'locale' +License: GPL-2.0+ and MIT +Group: System/Libraries +BuildArch: noarch + +%description i18ndata +This package contains the data needed to build the locale data files to +use the internationalization features of the GNU libc. It is normally +not necessary to install this packages, the data files are already +created. + +%package locale +Summary: Locale Data for Localized Programs +License: GPL-2.0+ and MIT and LGPL-2.1+ +Group: System/Libraries +Requires(post): /bin/cat +Requires: glibc = %{version} +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-locale-64bit +%endif +%ifarch ppc +Obsoletes: glibc-locale-32bit +%endif + +%description locale +Locale data for the internationalisation features of the GNU C library. + +%package -n nscd +Summary: Name Service Caching Daemon +License: GPL-2.0+ +Group: System/Daemons +Provides: glibc:/usr/sbin/nscd +Requires: glibc = %{version} +%{?systemd_requires} + +%description -n nscd +Nscd caches name service lookups and can dramatically improve +performance with NIS, NIS+, and LDAP. + +%package profile +Summary: Libc Profiling and Debugging Versions +License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +Group: Development/Libraries/C and C++ +Requires: glibc = %{version} +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-profile-64bit +%endif +%ifarch ppc +Obsoletes: glibc-profile-32bit +%endif + +%description profile +This package contains special versions of the GNU C library which are +necessary for profiling and debugging. + +%package devel +Summary: Include Files and Libraries Mandatory for Development +License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +Group: Development/Libraries/C and C++ +Obsoletes: epoll = 1.0 +Provides: epoll < 1.0 +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-devel-64bit +%endif +%ifarch ppc +Obsoletes: glibc-devel-32bit +%endif +Requires: glibc = %{version} +Requires: linux-kernel-headers + +%description devel +These libraries are needed to develop programs which use the standard C +library. + +%package devel-static +Summary: C library static libraries for -static linking +License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +Group: Development/Libraries/C and C++ +Requires: %{name}-devel = %{version} +# Provide Fedora name for package to make packaging easier +Provides: %{name}-static = %version + +%description devel-static +The glibc-devel-static package contains the C library static libraries +for -static linking. You don't need these, unless you link statically, +which is highly discouraged. + +%package utils +Summary: Development utilities from GNU C library +License: LGPL-2.1+ +Group: Development/Languages/C and C++ +Requires: glibc = %{version} + +%description utils +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. + +If you are unsure if you need this, don't install this package. + +# makedb requires libselinux. We add this program in a separate +# package so that glibc does not require libselinux. +%package extra +Summary: Extra binaries from GNU C Library +License: LGPL-2.1+ +Group: Development/Languages/C and C++ +Requires: glibc = %{version} + +%description extra +The glibc-extra package contains some extra binaries for glibc that +are not essential but recommend to use. + +makedb: A program to create a database for nss + +%package obsolete +Summary: Obsolete Shared Libraries from the GNU C Library +License: LGPL-2.0+ +Group: System/Libraries +Requires: glibc = %{version} + +%description obsolete +This package provides some old libraries from the GNU C Library which +are no longer supported. Additional it provides a compatibility library +for old binaries linked against glibc 2.0. + +Install this package if you need one of this libraries to get old +binaries working, but since this libraries are not supported and there +is no gurantee that they work for you, you should try to get newer +versions of your software. + +%prep +%setup -n glibc-%{version} -q -a 3 -a 4 +# Owl crypt_blowfish +tar -xzf %SOURCE50 +pushd crypt_blowfish-%{crypt_bf_version} +%patch3 -p1 +%patch4 -p1 +%patch5 +popd +mv crypt/{crypt.h,gnu-crypt.h} +mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ +# +%patch1 -p1 +%patch2 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +# avoid changing nscd_stat.c mtime to avoid code generation +# differences on each rebuild +touch -r nscd/nscd_stat.c nscd/s-stamp +%patch9 -p1 +touch -r nscd/s-stamp nscd/nscd_stat.c +rm nscd/s-stamp +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch18 -p1 +%patch21 -p1 + +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 + +%patch300 -p1 +%patch301 -p1 +%patch302 -p1 +%patch304 -p1 +%patch305 -p1 +%patch306 -p1 + +%ifarch armv7l armv7hl +%patch20 -p1 +%endif + +# XXX Disable, it breaks the testsuite, test elf/tst-audit2 +# %patch2008 -p1 +%patch2009 -p1 +%patch2010 -p1 + +# +# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! +# +# Glibc 2.8 introduced the HP_TIMING element to the rtld_global_ro struct # definition. +# If the base is built without power4 the loader won't have this element in +# the struct whereas the power4/5/6/... libc will, so there will be a disconnect +# between the size of the rtld_global_ro struct between the two and dl_close +# ends up getting called incorrectly when it's actually attempting to call a +# resolver function. This is because the GLRO() macro simply attempts to +# compute an offset and gets the wrong one. +# Building the base glibc with --with-cpu=power4 solves this problem. +# But: ppc32 can not default to -mcpu=power4 because it would emit instructions +# which are not available on G3, G4 etc. +# +# We simply remove the power4 files, and build the base glibc for a generic powerpc cpu +# Additional cputuned libs can now be used on powerpc32 +# +rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h +find . -name configure | xargs touch + +####################################################################### +### +### BUILD +### +####################################################################### + +%build +if [ -x /bin/uname.bin ]; then + /bin/uname.bin -a +else + uname -a +fi +uptime || : +ulimit -a +nice +# We do not want configure to figure out the system its building one +# to support a common ground and thus set build and host to the +# target_cpu. +%ifarch %arm +%define target %{_target_cpu}-suse-linux-gnueabi +%else +%define target %{_target_cpu}-suse-linux +%endif +# Don't use as-needed, it breaks glibc assumptions +# Before enabling it, run the testsuite and verify that it +# passes completely +export SUSE_ASNEEDED=0 +# Adjust glibc version.h +echo "#define CONFHOST \"%{target}\"" >> version.h +echo "#define GITID \"%{git_id}\"" >> version.h +# +# Default CFLAGS and Compiler +# +BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" +BuildCC="%__cc" +BuildCCplus="%__cxx" +add_ons=",libidn" +# +#now overwrite for some architectures +# +%ifarch sparc64 + BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" + BuildCC="gcc -m64" + BuildCCplus="$BuildCCplus -m64" +%endif +%ifarch sparc + BuildFlags="$BuildFlags -fcall-used-g6" + BuildCC="gcc -m32" + BuildCCplus="$BuildCCplus -m32" +%endif +%ifarch sparcv9 + BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" + BuildCC="gcc -m32" + BuildCCplus="$BuildCCplus -m32" +%endif +%ifarch alphaev6 + BuildFlags="-mcpu=ev6" +%endif +%ifarch ppc ppc64 + BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" +%endif +%ifarch ppc64 + BuildCC="$BuildCC -m64" + BuildCCplus="$BuildCCplus -m64" +%endif +%ifarch hppa + BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" +%endif +# Add flags for all plattforms except AXP +%ifnarch alpha + BuildFlags="$BuildFlags -g" +%endif +%if %{disable_assert} + BuildFlags="$BuildFlags -DNDEBUG=1" +%endif +%ifarch %ix86 + add_ons=$add_ons,noversion +%endif +%ifarch %arm mipsel ia64 + add_ons=$add_ons,ports +%endif +%ifarch %arm mipsel + # fails to build otherwise - need to recheck and fix + %define enable_stackguard_randomization 0 +%endif + +configure_and_build_glibc() { + local dirname="$1"; shift + local cflags="$1"; shift + local addons="$1"; shift + mkdir "cc-$dirname" + cd "cc-$dirname" +%ifarch %arm + # remove asynchronous-unwind-tables during configure as it causes + # some checks to fail spuriously on arm + conf_cflags="${cflags/-fasynchronous-unwind-tables/}" + conf_cflags="${conf_cflags/-funwind-tables/}" +%else + conf_cflags="$cflags" +%endif + + profile="--disable-profile" +%if %{build_profile} + if [ "$dirname" = "base" ] ; then + profile="--enable-profile" + fi +%endif + CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ + CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + --prefix=%{_prefix} \ + --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ + --enable-add-ons=nptl$addons \ + $profile \ + "$@" \ +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + --build=%{target} --host=%{target} \ +%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x + --enable-multi-arch \ +%endif +%ifarch mipsel + --without-fp \ +%endif + --enable-kernel=%{enablekernel} \ + --enable-bind-now --enable-obsolete-rpc +# Should we enable --enable-systemtap? +# Should we enable --enable-nss-crypt to build use freebl3 hash functions? + # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) + make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags" + cd .. +} + +%if !%{optimize_power} + # + # Build base glibc + # + configure_and_build_glibc base "$BuildFlags" "$add_ons" +%else + # + # Build POWER-optimized glibc + # + # First, base build: + pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}" + %if %{powerpc_optimize_base} != "power3" + configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} + %else + # Use no default CPU + configure_and_build_glibc base "$pBuildFlags" "$add_ons" + %endif + # Then other power variants: + for pcpu in \ + %if %{powerpc_optimize_cpu_power4} + power4 \ + %endif + %if %{powerpc_optimize_cpu_power6} + power6 \ + %endif + %if %{powerpc_optimize_cpu_power7} + power7 \ + %endif + ; do + configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \ + --with-cpu=$pcpu + done + # Eventually, special Cell variant: + %if %{powerpc_optimize_cpu_cell} + configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" + %endif +%endif # optimize_power + +# +# Build html documentation +# +%if %{build_html} +make -C cc-base html +%endif + +# +# Build glibc_post_upgrade binary +# +$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ + -Lcc-base -Bcc-base/csu \ + '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ +%ifarch ppc ppc64 + %if !%{powerpc_optimize_cpu_power4} + '-DREMOVE_PPC_OPTIMIZE_POWER4' \ + %endif + %if !%{powerpc_optimize_cpu_power6} + '-DREMOVE_PPC_OPTIMIZE_POWER6' \ + %endif + %if !%{powerpc_optimize_cpu_power7} + '-DREMOVE_PPC_OPTIMIZE_POWER7' \ + %endif + %if !%{powerpc_optimize_cpu_cell} + '-DREMOVE_PPC_OPTIMIZE_CELL' \ + %endif +%endif + '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' + +# crypt_blowfish man pages +pushd crypt_blowfish-%{crypt_bf_version} +make man +popd + +####################################################################### +### +### CHECK +### +####################################################################### + +%check +# The testsuite will fail if asneeded is used +export SUSE_ASNEEDED=0 +%if %{testsuite_build} +# Increase timeout +export TIMEOUTFACTOR=16 +%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 + # ix86: tst-cputimer? fails + # ia64: tst-timer4 fails + # ppc64: tst-pselect, ftwtest fails + # s390,s390x: tst-timer* fails + make %{?_smp_mflags} -C cc-base -k check || echo make check failed +%else + make %{?_smp_mflags} -C cc-base check +%endif +%endif +# This has to pass on all platforms! +# Exceptions: +# None! +make %{?_smp_mflags} -C cc-base check-abi + +####################################################################### +### +### INSTALL +### +####################################################################### + +%install +%if !%{testsuite_build} +# We don't want to strip the .symtab from our libraries in find-debuginfo.sh, +# certainly not from libpthread.so.* because it is used by libthread_db to find +# some non-exported symbols in order to detect if threading support +# should be enabled. These symbols are _not_ exported, and we can't easily +# export them retroactively without changing the ABI. So we have to +# continue to "export" them via .symtab, instead of .dynsym :-( +# But we also want to keep .symtab and .strtab of other libraries since some +# debugging tools currently require these sections directly inside the main +# files - specifically valgrind and PurifyPlus. +export STRIP_KEEP_SYMTAB=*.so* + +# Make sure we will create the gconv-modules.cache +mkdir -p %{buildroot}%{_libdir}/gconv +touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache + +# Install base glibc +make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base + +install_optimized_variant() { + local dirname="$1"; shift + local subdir="$1"; shift + local subdir_up="$1"; shift + +cd "cc-$dirname" +destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir +mkdir -p $destdir +# Don't run a complete make install, we know which libraries +# we want +for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db +do + libbase=${lib#*/} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Only install if different from base lib + if cmp -s ${lib}.so ../cc-base/${lib}.so; then + ln -sf $subdir_up/$libbaseso $destdir/$libbaseso + else + cp -a ${lib}.so $destdir/$libbaseso + fi + # Emulate ldconfig + ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) +done +cd .. +} + +# Install power-optimized glibc +%if %{optimize_power} + %if %{powerpc_optimize_cpu_power4} + install_optimized_variant power4 power4 ".." + %endif + %if %{powerpc_optimize_cpu_power6} + install_optimized_variant power6 power6 ".." + %endif + %if %{powerpc_optimize_cpu_power7} + install_optimized_variant power7 power7 ".." + %endif + %if %{powerpc_optimize_cpu_cell} + install_optimized_variant ppc-cell-be ppc-cell-be ".." + %endif + %if %{powerpc_optimize_cpu_power6} + # power6 is compatible with power6x + # doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir + if test -d %{buildroot}/%{_lib}/power6; then + mkdir -p %{buildroot}/%{_lib}/power6x + for i in %{buildroot}/%{_lib}/power6/*.so; do + b=`basename $i` + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b + libbase=${b%.so} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Emulate ldconfig + ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) + done + fi + %endif +%endif # optimize_power + +# Install locales +%if %{build_locales} + # XXX Do not install locales in parallel! + cd cc-base + # localedef creates hardlinks to other locales if possible + # this will not work if we generate them in parallel. + # thus we need to run fdupes on /usr/lib/locale/ + # Still, on my system this is a speed advantage: + # non-parallel build for install-locales: 9:34mins + # parallel build with fdupes: 7:08mins + make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales + %fdupes %{buildroot}/usr/lib/locale + cd .. +%endif +# Create file list for glibc-locale package +%{find_lang} libc + +# Prepare obsolete/, used only on some architectures: +export RPM_BUILD_ROOT +%ifarch %ix86 +mkdir -p %{buildroot}/%{_lib}/obsolete +%endif + +# NPTL is not usable outside of glibc, so include +# the generic one (RH#162634) +cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h + +%ifarch s390x + # s390x is different ... + mkdir %{buildroot}/lib + ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 +%endif + +# Miscelanna: + +install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} + +install -m 644 %{SOURCE7} %{buildroot}/etc +install -m 644 %{SOURCE5} %{buildroot}/etc +install -m 644 posix/gai.conf %{buildroot}/etc + +mkdir -p %{buildroot}/etc/default +install -m 644 nis/nss %{buildroot}/etc/default/ + +mkdir -p %{buildroot}%{_includedir}/resolv +install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ +install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ + +%if %{build_html} +mkdir -p %{buildroot}%{_datadir}/doc/glibc +cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc +%endif + +cd manpages; make install_root=%{buildroot} install; cd .. + +# crypt_blowfish man pages +pushd crypt_blowfish-%{crypt_bf_version} +install -m755 -d %{buildroot}%{_mandir}/man3 +install -m644 *.3 %{buildroot}%{_mandir}/man3 +popd + +# nscd tools: + +cp nscd/nscd.conf %{buildroot}/etc +mkdir -p %{buildroot}/etc/init.d +ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd +mkdir -p %{buildroot}/var/run/nscd +touch %{buildroot}/var/run/nscd/{passwd,group,hosts} +touch %{buildroot}/var/run/nscd/{socket,nscd.pid} + +# +# Create ld.so.conf +# +cat > %{buildroot}/etc/ld.so.conf < +os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") + +%postun -p /sbin/ldconfig + +%post locale +for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do + [ -d "$l.d" ] || continue + echo "###X# The following is autogenerated from extra files in the .d directory:" >>"$l" + cat "$l.d"/* >>"$l" +done +/usr/sbin/iconvconfig + +%post info +%install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz + +%postun info +%install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz + +%pre -n nscd +%service_add_pre nscd.service + +%preun -n nscd +%service_del_preun nscd.service + +%post -n nscd +%service_add_post nscd.service +mkdir -p /var/run/nscd +# Previously we had nscd.socket, remove it +test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : +test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : +# Hard removal in case the above did not work +rm -f /etc/systemd/system/sockets.target.wants/nscd.socket +exit 0 + +%postun -n nscd +%service_del_postun nscd.service +exit 0 + +%if !%{testsuite_build} +%files +####################################################################### +### +### FILES +### +####################################################################### + +# glibc +%defattr(-,root,root) +%doc LICENSES +%config(noreplace) /etc/bindresvport.blacklist +%config /etc/ld.so.conf +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache +%config(noreplace) /etc/rpc +%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf +%verify(not md5 size mtime) %config(noreplace) /etc/gai.conf +%config(noreplace) /etc/default/nss +%doc %{_mandir}/man1/gencat.1.gz +%doc %{_mandir}/man1/getconf.1.gz +%doc %{_mandir}/man1/locale.1.gz +%doc %{_mandir}/man1/localedef.1.gz +%doc %{_mandir}/man5/* +%doc %{_mandir}/man8/iconvconfig.8.gz +/%{_lib}/ld-%{glibc_major_version}.so + +# Each architecture has a different name for the dynamic linker: +%ifarch %arm +%ifarch armv7l armv7hl +/%{_lib}/ld-linux-armhf.so.3 +# Keep compatibility link +/%{_lib}/ld-linux.so.3 +%else +/%{_lib}/ld-linux.so.3 +%endif +%endif +%ifarch ia64 +/%{_lib}/ld-linux-ia64.so.2 +%endif +%ifarch ppc s390 mips hppa +/%{_lib}/ld.so.1 +%endif +%ifarch ppc64 +/%{_lib}/ld64.so.1 +%endif +%ifarch s390x +/lib/ld64.so.1 +/%{_lib}/ld64.so.1 +%endif +%ifarch x86_64 +/%{_lib}/ld-linux-x86-64.so.2 +%endif +%ifarch %ix86 %sparc +/%{_lib}/ld-linux.so.2 +%endif + +/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale.so.1 +/%{_lib}/libSegFault.so +/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl.so.1 +/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc.so.6* +/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn.so.1 +/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt.so.1 +/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl.so.2* +/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm.so.6* +/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl.so.1 +/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat.so.2 +/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db.so.2 +/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns.so.2 +/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files.so.2 +/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod.so.2 +/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis.so.2 +/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus.so.2 +/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread.so.0 +/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv.so.2 +/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt.so.1 +/%{_lib}/libthread_db-1.0.so +/%{_lib}/libthread_db.so.1 +/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil.so.1 +%define optimized_libs() \ + %dir %attr(0755,root,root) /%{_lib}/%1\ + /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc.so.6*\ + /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm.so.6*\ + /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread.so.0\ + /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt.so.1\ + /%{_lib}/%1/libthread_db-1.0.so\ + /%{_lib}/%1/libthread_db.so.1 + +%if %{optimize_power} + %if %{powerpc_optimize_cpu_power4} + %{optimized_libs power4} + %endif + %if %{powerpc_optimize_cpu_power6} + %{optimized_libs power6} + %{optimized_libs power6x} + %endif + %if %{powerpc_optimize_cpu_power7} + %{optimized_libs power7} + %endif + %if %{powerpc_optimize_cpu_cell} + %{optimized_libs ppc-cell-be} + %endif +%endif # optimize_power +%dir %attr(0700,root,root) /var/cache/ldconfig +/sbin/ldconfig +%{_bindir}/gencat +%{_bindir}/getconf +%{_bindir}/getent +%{_bindir}/iconv +%attr(755,root,root) %{_bindir}/ldd +%ifarch %ix86 sparc sparcv9 + %{_bindir}/lddlibc4 +%endif +%{_bindir}/locale +%{_bindir}/localedef +%verify(not mode caps) %attr(4755,root,root) %{_libexecdir}/pt_chown +%dir %attr(0755,root,root) %{_libexecdir}/getconf +%{_libexecdir}/getconf/* +%{_sbindir}/glibc_post_upgrade +%{_sbindir}/iconvconfig + +%ifarch %ix86 + +%files obsolete +%defattr (755,root,root,755) +%dir /%{_lib}/obsolete/ + %dir /%{_lib}/obsolete/noversion + /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so + /%{_lib}/obsolete/noversion/libNoVersion.so.1 +%endif + +%files locale -f libc.lang +%defattr(-,root,root) +%{_datadir}/locale/locale.alias +%if %{build_locales} + /usr/lib/locale +%endif +%{_libdir}/gconv + +%files devel +%defattr(-,root,root) +%doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE +%doc %{_mandir}/man1/catchsegv.1.gz +%doc %{_mandir}/man1/rpcgen.1.gz +%doc %{_mandir}/man1/sprof.1.gz +%doc %{_mandir}/man3/* +%{_bindir}/catchsegv +%{_bindir}/rpcgen +%{_bindir}/sprof +%{_includedir}/* +%{_libdir}/*.o +%{_libdir}/*.so +# These static libraries are needed even for shared builds +%{_libdir}/libbsd-compat.a +%{_libdir}/libc_nonshared.a +%{_libdir}/libg.a +%{_libdir}/libieee.a +%ifarch ppc ppc64 s390 s390x sparc sparcv8 sparcv9 sparcv9v +# This is not built on sparc64. + %{_libdir}/libnldbl_nonshared.a +%endif +%{_libdir}/libmcheck.a +%{_libdir}/libpthread_nonshared.a +%{_libdir}/librpcsvc.a + +%files devel-static +%defattr(-,root,root) +%{_libdir}/libBrokenLocale.a +%{_libdir}/libanl.a +%{_libdir}/libc.a +%{_libdir}/libcrypt.a +%{_libdir}/libdl.a +%{_libdir}/libm.a +%{_libdir}/libnsl.a +%{_libdir}/libpthread.a +%{_libdir}/libresolv.a +%{_libdir}/librt.a +%{_libdir}/libutil.a + +%files info +%defattr(-,root,root) +%doc %{_infodir}/libc.info.gz +%doc %{_infodir}/libc.info-?.gz +%doc %{_infodir}/libc.info-??.gz + +%if %{build_html} +%files html +%defattr(-,root,root) +%doc %{_prefix}/share/doc/glibc +%endif + +%files i18ndata +%defattr(-,root,root) +%{_prefix}/share/i18n + +%files -n nscd +%defattr(-,root,root) +%config(noreplace) /etc/nscd.conf +%{_sbindir}/nscd +%{_sbindir}/rcnscd +/usr/lib/systemd/system/nscd.service +%dir /usr/lib/tmpfiles.d +/usr/lib/tmpfiles.d/nscd.conf +%dir %attr(0755,root,root) %ghost /var/run/nscd +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid +%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts + +%if %{build_profile} +%files profile +%defattr(-,root,root) +%{_libdir}/libc_p.a +%{_libdir}/libBrokenLocale_p.a +%{_libdir}/libanl_p.a +%{_libdir}/libm_p.a +%{_libdir}/libcrypt_p.a +%{_libdir}/libpthread_p.a +%{_libdir}/libresolv_p.a +%{_libdir}/libnsl_p.a +%{_libdir}/librt_p.a +%{_libdir}/librpcsvc_p.a +%{_libdir}/libutil_p.a +%{_libdir}/libdl_p.a +%endif + +%files utils +%defattr(-,root,root) +/%{_lib}/libmemusage.so +/%{_lib}/libpcprofile.so +%dir /%{_libdir}/audit +/%{_libdir}/audit/sotruss-lib.so +# These need gd-devel for building +# %%{_bindir}/memusage +# %%{_bindir}/memusagestat +%{_bindir}/mtrace +%{_bindir}/pcprofiledump +%{_bindir}/sotruss +%{_bindir}/xtrace +%{_bindir}/pldd +%doc %{_mandir}/man1/mtrace.1.gz + +%files extra +%defattr(-,root,root) +%{_bindir}/makedb +/var/lib/misc/Makefile + +%endif # !%{testsuite_build} + +%changelog diff --git a/glibc.changes b/glibc.changes index 8f4469e..3c45cba 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de + +- Split off glibc-testsuite package + +------------------------------------------------------------------- +Fri Dec 14 19:31:45 UTC 2012 - aj@suse.de + +- Build profile and locale packages for i686 as well. + ------------------------------------------------------------------- Wed Dec 12 08:32:53 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 90eabab..8c0977f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -16,16 +16,18 @@ # -# The full testsuite is only run with osc --with=glibc_run_testsuite -%bcond_with glibc_run_testsuite +# PLEASE run pre_checkin.sh in this directory before submitting +# this package. Otherwise the .spec and .changes for glibc-testsuite +# aren't updated. + # Run with osc --with=fast_build to have a shorter turnaround -# It will avoid building some parts of glibc and will not run the -# testsuite +# It will avoid building some parts of glibc %bcond_with fast_build %define crypt_bf_version 1.2 Name: glibc +%define testsuite_build ("%{name}" == "glibc-testsuite") Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries @@ -34,17 +36,17 @@ BuildRequires: libselinux-devel BuildRequires: makeinfo BuildRequires: xz BuildRequires: pkgconfig(systemd) -%if %{with glibc_run_testsuite} +%if %{testsuite_build} BuildRequires: gcc-c++ BuildRequires: libstdc++-devel %endif %define _filter_GLIBC_PRIVATE 1 %if %_target_cpu == "i686" -# For i686 we ship only glibc and glibc-devel, so -# let's not build everything -%define build_profile 0 -%define build_locales 0 +# For i686 let's only build what's different from i586, so +# no need to build documentation +%define build_profile 1 +%define build_locales 1 %define build_html 0 %else %if %{with fast_build} @@ -58,16 +60,6 @@ BuildRequires: libstdc++-devel %define build_html 1 %endif %endif -# Enable testsuite runs for local builds -%if %{with fast_build} -%define run_testsuite 0 -%else -%if %{with glibc_run_testsuite} -%define run_testsuite 1 -%else -%define run_testsuite 0 -%endif -%endif %define disable_assert 0 %define enable_stackguard_randomization 1 @@ -264,7 +256,6 @@ This package contains the documentation for the GNU C library stored as info files. Due to a lack of resources, this documentation is not complete and is partially out of date. -%if %{build_html} %package html Summary: HTML Documentation for the GNU C Library License: GFDL-1.1 @@ -275,7 +266,6 @@ BuildArch: noarch This package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is partially out of date. -%endif %package i18ndata Summary: Database Sources for 'locale' @@ -318,7 +308,6 @@ Requires: glibc = %{version} Nscd caches name service lookups and can dramatically improve performance with NIS, NIS+, and LDAP. -%if %{build_profile} %package profile Summary: Libc Profiling and Debugging Versions License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ @@ -335,7 +324,6 @@ Obsoletes: glibc-profile-32bit %description profile This package contains special versions of the GNU C library which are necessary for profiling and debugging. -%endif %package devel Summary: Include Files and Libraries Mandatory for Development @@ -397,8 +385,6 @@ are not essential but recommend to use. makedb: A program to create a database for nss -%ifarch %ix86 - %package obsolete Summary: Obsolete Shared Libraries from the GNU C Library License: LGPL-2.0+ @@ -415,8 +401,6 @@ binaries working, but since this libraries are not supported and there is no gurantee that they work for you, you should try to get newer versions of your software. -%endif - %prep %setup -n glibc-%{version} -q -a 3 -a 4 # Owl crypt_blowfish @@ -497,9 +481,6 @@ find . -name configure | xargs touch ####################################################################### %build -%if %{with glibc_run_testsuite} -echo glibc_run_testsuite is set -%endif if [ -x /bin/uname.bin ]; then /bin/uname.bin -a else @@ -708,27 +689,23 @@ popd %check # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 -%if %{run_testsuite} - # Increase timeout - export TIMEOUTFACTOR=16 - %ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 - # ix86: tst-cputimer? fails - # ia64: tst-timer4 fails - # ppc64: tst-pselect, ftwtest fails - # s390,s390x: tst-timer* fails - make %{?_smp_mflags} -C cc-base -k check || echo make check failed - %else - make %{?_smp_mflags} -C cc-base check - %endif +%if %{testsuite_build} +# Increase timeout +export TIMEOUTFACTOR=16 +%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 + # ix86: tst-cputimer? fails + # ia64: tst-timer4 fails + # ppc64: tst-pselect, ftwtest fails + # s390,s390x: tst-timer* fails + make %{?_smp_mflags} -C cc-base -k check || echo make check failed +%else + make %{?_smp_mflags} -C cc-base check +%endif %endif # This has to pass on all platforms! # Exceptions: # None! -#%ifnarch ppc make %{?_smp_mflags} -C cc-base check-abi -#%else -#make %{?_smp_mflags} -C cc-base check-abi || echo check-abi failed -#%endif ####################################################################### ### @@ -737,6 +714,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install +%if !%{testsuite_build} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -935,6 +913,7 @@ ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf +%endif # !%{testsuite_build} ####################################################################### ### @@ -995,6 +974,7 @@ exit 0 %service_del_postun nscd.service exit 0 +%if !%{testsuite_build} %files ####################################################################### ### @@ -1264,4 +1244,6 @@ exit 0 %{_bindir}/makedb /var/lib/misc/Makefile +%endif # !%{testsuite_build} + %changelog diff --git a/pre_checkin.sh b/pre_checkin.sh new file mode 100644 index 0000000..94fe221 --- /dev/null +++ b/pre_checkin.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# This script is called automatically during autobuild checkin. +sed -e 's/^Name:.*glibc/&-testsuite/' glibc.spec > glibc-testsuite.spec +cp glibc.changes glibc-testsuite.changes + +osc service localrun format_spec_file + From c368103f27ba9c084ebe55888f6e638752e94e209a9ac8b94588f2097e3788a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Sun, 30 Dec 2012 11:19:16 +0000 Subject: [PATCH 127/204] Accepting request 146380 from Base:System Update to 2.17 release (forwarded request 146379 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/146380 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=133 --- baselibs.conf | 1 - glibc-2.16.90-4641d57e1e00.tar.xz | 3 - glibc-2.17-c758a6861537.tar.xz | 3 + glibc-testsuite.changes | 15 + glibc-testsuite.spec | 141 +- glibc-utils.changes | 6582 +++++++++++++++++++++++++++++ glibc-utils.spec | 1280 ++++++ glibc.changes | 15 + glibc.spec | 141 +- pre_checkin.sh | 22 + 10 files changed, 8089 insertions(+), 114 deletions(-) delete mode 100644 glibc-2.16.90-4641d57e1e00.tar.xz create mode 100644 glibc-2.17-c758a6861537.tar.xz create mode 100644 glibc-utils.changes create mode 100644 glibc-utils.spec diff --git a/baselibs.conf b/baselibs.conf index 7bca21d..42676f4 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -20,4 +20,3 @@ glibc-devel-static glibc-profile arch i586 block! glibc-utils - arch i586 block! diff --git a/glibc-2.16.90-4641d57e1e00.tar.xz b/glibc-2.16.90-4641d57e1e00.tar.xz deleted file mode 100644 index 7576275..0000000 --- a/glibc-2.16.90-4641d57e1e00.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:71986496690c30d7b37cd140bda4e5a471c5c32d2ade05348fe6eacee1de235e -size 11130856 diff --git a/glibc-2.17-c758a6861537.tar.xz b/glibc-2.17-c758a6861537.tar.xz new file mode 100644 index 0000000..d2c0509 --- /dev/null +++ b/glibc-2.17-c758a6861537.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0ad63189c3d0799ee671b0b565f8d113c43d1759894c9002ba58bf212af8abf +size 11173392 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 3c45cba..e221597 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de + +- Update to glibc 2.17 release (git id c758a6861537): + * bump version number + * update translations + +------------------------------------------------------------------- +Tue Dec 18 10:28:01 UTC 2012 - schwab@suse.de + +- Move glibc-utils subpackage to own specfile and enable programs that + require libgd +- Filter GLIBC_PRIVATE symbols +- Don't stop at first error in testsuite run + ------------------------------------------------------------------- Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 3c80336..6ca082e 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -18,7 +18,7 @@ # PLEASE run pre_checkin.sh in this directory before submitting # this package. Otherwise the .spec and .changes for glibc-testsuite -# aren't updated. +# and glibc-utils aren't updated. # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc @@ -27,10 +27,14 @@ %define crypt_bf_version 1.2 Name: glibc-testsuite +%define normal_build ("%{name}" == "glibc") +%define utils_build ("%{name}" == "glibc-utils") %define testsuite_build ("%{name}" == "glibc-testsuite") +# UTILS-SUMMARY-BEGIN Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries +# UTILS-SUMMARY-END BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo @@ -40,8 +44,11 @@ BuildRequires: pkgconfig(systemd) BuildRequires: gcc-c++ BuildRequires: libstdc++-devel %endif +%if %{utils_build} +BuildRequires: gd-devel +%endif -%define _filter_GLIBC_PRIVATE 1 +%define __filter_GLIBC_PRIVATE 1 %if %_target_cpu == "i686" # For i686 let's only build what's different from i586, so # no need to build documentation @@ -49,7 +56,7 @@ BuildRequires: libstdc++-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} +%if %{with fast_build} || %{utils_build} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -68,7 +75,7 @@ BuildRequires: libstdc++-devel %ifarch ppc %define powerpc_optimize_base power3 %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 1 + %define powerpc_optimize_cpu_power4 %{normal_build} %else %define powerpc_optimize_base power4 %define powerpc_optimize_tune power5 @@ -94,6 +101,28 @@ BuildRequires: libstdc++-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif +Version: 2.17 +Release: 0 +%define glibc_major_version 2.17 +%define git_id c758a6861537 +Url: http://www.gnu.org/software/libc/libc.html +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: glibc-%{version}-%{git_id}.tar.xz +Source3: noversion.tar.bz2 +Source4: manpages.tar.bz2 +Source5: nsswitch.conf +Source7: bindresvport.blacklist +Source8: glibc_post_upgrade.c +Source9: glibc.rpmlintrc +Source10: baselibs.conf +# For systemd +Source20: nscd.conf +Source21: nscd.service +# crypt_blowfish +Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz +Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign + +%if %{normal_build} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -112,30 +141,13 @@ Obsoletes: glibc-32bit Provides: ld-linux.so.3 Provides: ld-linux.so.3(GLIBC_2.4) %endif -Version: 2.16.90 -Release: 0 -%define glibc_major_version 2.16.90 -%define git_id 4641d57e1e00 -Url: http://www.gnu.org/software/libc/libc.html -BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz -Source3: noversion.tar.bz2 -Source4: manpages.tar.bz2 -Source5: nsswitch.conf -Source7: bindresvport.blacklist -Source8: glibc_post_upgrade.c -Source9: glibc.rpmlintrc -Source10: baselibs.conf -# For systemd -Source20: nscd.conf -Source21: nscd.service -# crypt_blowfish -Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign - Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) +%endif # %{normal_build} +%if %{utils_build} +Requires: glibc = %{version} +%endif BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %_target_cpu == "i686" # We need to avoid to have only the src rpm from i686 on the media, @@ -358,19 +370,6 @@ The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, which is highly discouraged. -%package utils -Summary: Development utilities from GNU C library -License: LGPL-2.1+ -Group: Development/Languages/C and C++ -Requires: glibc = %{version} - -%description utils -The glibc-utils package contains mtrace, a memory leak tracer and -xtrace, a function call tracer which can be helpful during program -debugging. - -If you are unsure if you need this, don't install this package. - # makedb requires libselinux. We add this program in a separate # package so that glibc does not require libselinux. %package extra @@ -699,7 +698,7 @@ export TIMEOUTFACTOR=16 # s390,s390x: tst-timer* fails make %{?_smp_mflags} -C cc-base -k check || echo make check failed %else - make %{?_smp_mflags} -C cc-base check + make %{?_smp_mflags} -C cc-base -k check %endif %endif # This has to pass on all platforms! @@ -714,7 +713,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if !%{testsuite_build} +%if %{normal_build} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -913,7 +912,35 @@ ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf -%endif # !%{testsuite_build} + +# Remove unwanted files (packaged in glibc-utils) +rm -f %{buildroot}/%{_lib}/libmemusage* +rm -f %{buildroot}/%{_lib}/libpcprofile* +rm -f %{buildroot}%{_bindir}/memusage* +rm -f %{buildroot}%{_bindir}/mtrace +rm -f %{buildroot}%{_bindir}/pcprofiledump +rm -f %{buildroot}%{_bindir}/sotruss +rm -f %{buildroot}%{_bindir}/xtrace +rm -f %{buildroot}%{_bindir}/pldd +rm -f %{buildroot}%{_mandir}/man1/mtrace.* +rm -rf %{buildroot}%{_libdir}/audit + +%endif # %{normal_build} + +%if %{utils_build} + +make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ + subdirs='malloc debug elf' +cd manpages; make install_root=%{buildroot} install; cd .. +# Remove unwanted files +rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* +rm -f %{buildroot}%{_libdir}/lib* +rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} +rm -f %{buildroot}%{_mandir}/man1/[!m]* +rm -rf %{buildroot}%{_mandir}/man[!1] +rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} + +%endif # %{utils_build} ####################################################################### ### @@ -921,6 +948,7 @@ ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf ### ####################################################################### +%if %{normal_build} # Note: glibc_post_upgrade does: # %%set_permissions %%{_libexecdir}/pt_chown # since we cannot do it in our own post section @@ -940,6 +968,8 @@ os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") %postun -p /sbin/ldconfig +%endif # %{normal_build} + %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -974,7 +1004,7 @@ exit 0 %service_del_postun nscd.service exit 0 -%if !%{testsuite_build} +%if %{normal_build} %files ####################################################################### ### @@ -1223,27 +1253,28 @@ exit 0 %{_libdir}/libdl_p.a %endif -%files utils +%files extra +%defattr(-,root,root) +%{_bindir}/makedb +/var/lib/misc/Makefile + +%endif # %{normal_build} + +%if %{utils_build} +%files %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so -%dir /%{_libdir}/audit -/%{_libdir}/audit/sotruss-lib.so -# These need gd-devel for building -# %%{_bindir}/memusage -# %%{_bindir}/memusagestat +%dir %{_libdir}/audit +%{_libdir}/audit/sotruss-lib.so +%{_bindir}/memusage +%{_bindir}/memusagestat %{_bindir}/mtrace %{_bindir}/pcprofiledump %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd %doc %{_mandir}/man1/mtrace.1.gz - -%files extra -%defattr(-,root,root) -%{_bindir}/makedb -/var/lib/misc/Makefile - -%endif # !%{testsuite_build} +%endif # %{utils_build} %changelog diff --git a/glibc-utils.changes b/glibc-utils.changes new file mode 100644 index 0000000..e221597 --- /dev/null +++ b/glibc-utils.changes @@ -0,0 +1,6582 @@ +------------------------------------------------------------------- +Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de + +- Update to glibc 2.17 release (git id c758a6861537): + * bump version number + * update translations + +------------------------------------------------------------------- +Tue Dec 18 10:28:01 UTC 2012 - schwab@suse.de + +- Move glibc-utils subpackage to own specfile and enable programs that + require libgd +- Filter GLIBC_PRIVATE symbols +- Don't stop at first error in testsuite run + +------------------------------------------------------------------- +Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de + +- Split off glibc-testsuite package + +------------------------------------------------------------------- +Fri Dec 14 19:31:45 UTC 2012 - aj@suse.de + +- Build profile and locale packages for i686 as well. + +------------------------------------------------------------------- +Wed Dec 12 08:32:53 UTC 2012 - aj@suse.de + +- Update to 4641d57e1e00: + * Updated translations + * bug fixes + +------------------------------------------------------------------- +Mon Dec 10 13:08:01 UTC 2012 - schwab@suse.de + +- pthread-cond-timedwait-i486.patch: + Extend i486 pthread_cond_timedwait to use futex syscall with absolute + timeout +- nscd-short-write.patch: + Properly check for short writes when sending the response in nscd + +------------------------------------------------------------------- +Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de + +- Update to 56e7d3ad5c2f: + * Bugfixes + * Fix warnings building glibc +- Remove upstreamed patch glibc-revert-fseek-on-fclose.diff + +------------------------------------------------------------------- +Mon Dec 3 15:45:08 UTC 2012 - aj@suse.de + +- Remove nosegneg i686 library, it's only used for a 32-bit Xen + hypervisor (not for a 32-bit guest running under 64-bit hypervisor), + and since the 32-bit Xen hypervisor is not part of openSUSE anymore, + it is unneeded (bnc#789607). + +------------------------------------------------------------------- +Mon Dec 3 14:47:22 UTC 2012 - schwab@suse.de + +- Suppress error message from systemctl in %post -n nscd (bnc#792333) + +------------------------------------------------------------------- +Sat Dec 1 08:55:05 UTC 2012 - aj@suse.de + +- Update to f638872ab422: + Fix regression introduced with last update in sunrpc code + Fix assertion failure in resolver + Bug fixes +- Remove upstreamed patch glibc-resolv-assert.diff + +------------------------------------------------------------------- +Fri Nov 30 09:15:15 UTC 2012 - aj@suse.de + +- Update to c93ec1f091ec: + Warn about unsupported DT_FLAGS_1 flags + Add Interlingua locale + Bug fixes + +------------------------------------------------------------------- +Thu Nov 29 14:30:11 UTC 2012 - schwab@suse.de + +- Remove obsolete patches: + glibc-strict-aliasing.diff + nscd-avoid-gcc-warning.diff + +------------------------------------------------------------------- +Wed Nov 28 15:48:32 UTC 2012 - aj@suse.de + +- Update to e3c6aa3a5848: + * Fix powerpc64 make abi check failure + * bugfixes +- Install nscd.socket to new /usr location + +------------------------------------------------------------------- +Wed Nov 28 09:31:11 UTC 2012 - schwab@suse.de + +- Reenable multi-arch on ppc ppc64 + +------------------------------------------------------------------- +Tue Nov 27 21:34:15 UTC 2012 - aj@suse.de + +- Update to de2fd463b1c0: + Various bugfixes including: + * Fix fwrite bug causing grep etc testsuite failure + * sotruss: fix argument parsing + * Check supported DF_1_XXX bits + Add new locales niu_NU and niu_NZ +- Refresh patch glibc-revert-fseek-on-fclose.diff + +------------------------------------------------------------------- +Sat Nov 24 13:48:40 UTC 2012 - aj@suse.de + +- Remove nscd init script, use systemd files. + +------------------------------------------------------------------- +Fri Nov 23 14:33:37 UTC 2012 - matz@suse.com + +- Fix getaddrinfo-ipv6-sanity.diff to apply again. + +------------------------------------------------------------------- +Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de + +- Update to f59cba71d848: + * Various bug fixes + * Add new locales szl_PL, ayc_PE, nhn_MX, doi_IN, mni_IN, sat_IN. + * Remove patch glibc-compiled-binaries.diff since getconf can not be + cross-compiled + * Refresh patch glibc-2.3.90-bindresvport.blacklist.diff + +------------------------------------------------------------------- +Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de + +- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c): + * Upstream changes: + + ports is now part of main tarball + + Add port to ARM AArch64 + + New function secure_getenv + + Systemtap static probes + + The `clock_*' suite of functions (declared in ) is now + available directly in the main C library. + + The `crypt' function now fails if passed salt bytes that violate the + specification for those values. On Linux, the `crypt' function will + consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is + enabled, and fail on encrypted strings using the MD5 or DES algorithm + when the mode is enabled. + + Optimzations and bug fixes + * remove upstream patches malloc-check-size.patch, + glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch, + pthread-cond-wait-revert.patch + * Remove now obsolete patch glibc-gai-private4.diff + * Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff, + glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff, + glibc-revert-fseek-on-fclose.diff + * Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff + and glibc-gai-private4.diff. + * Use git id instead of ChangeLog date in version output (patch glibc-version.diff) + * Enable multi-arch on all architectures that support it. + +------------------------------------------------------------------- +Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de + +- Avoid shell comment leaking into %post. + +------------------------------------------------------------------- +Thu Oct 25 07:30:04 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 c3b96f90c9c1: + - Fix missing _mcount@GLIBC_2.0 on powerpc32 (replaces + patch glibc-2.16-ppc32-mcount.patch) +- Drop patch glibc-elf-localscope.diff, fixed upstream in 2.16 + in a different way. + +------------------------------------------------------------------- +Tue Oct 9 07:15:12 UTC 2012 - aj@suse.de + +- Fix malloc_usable_size (swo#1349, bnc#745247) (patch + malloc-check-size.patch). + +- Update to current glibc 2.16 (git a5cfcf08ffaa): + * fix fma detection + * Don't parse %s format argument as multibyte string + * Use size_t instead of int for internal variables in glob + * Properly handle fencepost with MALLOC_ALIGN_MASK + +------------------------------------------------------------------- +Sat Oct 6 08:51:46 UTC 2012 - meissner@suse.com + +- make glibc-devel- require glibc- just + like glibc-devel + +------------------------------------------------------------------- +Fri Sep 28 07:47:33 UTC 2012 - aj@suse.de + +- Fix crash in relocation on sparc with bind-now (swo#14376) + (patch sparc-bind-now.patch). + +------------------------------------------------------------------- +Thu Sep 27 12:20:11 UTC 2012 - aj@suse.de + +- Fix check-abi on more architectures (bnc#780696), patch by Jan + Engelhardt (updated patch glibc-fix-check-abi.patch). + +------------------------------------------------------------------- +Tue Sep 4 11:08:53 UTC 2012 - schwab@linux-m68k.org + +- Move pt_chown to %{_libexecdir} so that baselibs can find it. +- Do create hardlinks to getconf so that baselibs use the correct binary + and getconf -v works (obsoletes patch glibc-2.8-getconf.diff). + +------------------------------------------------------------------- +Tue Aug 28 07:10:49 UTC 2012 - aj@suse.de + +- Update to da1f43196321, major changes: + * Fix strtod integer/buffer overflow (bso#14459). + * Fix segmentation fault in strncasecmp for i686. + * Translation updates + +------------------------------------------------------------------- +Tue Jul 24 08:39:30 UTC 2012 - aj@suse.de + +- Fix _mcount on PowerPC32. + +------------------------------------------------------------------- +Sat Jul 21 07:31:10 UTC 2012 - aj@suse.de + +- Enable parallel build for some more cases. + +------------------------------------------------------------------- +Fri Jul 20 17:00:00 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 release. + * update version numbers + * Documentation updates +- Update manpages from Debian, includes new man pages for + locale.1, mtrace.1, gencat.1 iconvconfig.8. +- Remove getent.1 man page, use the one from man-pages. + +------------------------------------------------------------------- +Fri Jul 20 16:42:42 UTC 2012 - aj@suse.de + +- Update to glibc 2.16 trunk (git id 416bf844227d): + * Fix check-abi for arm + * Refresh some patches. + * remove merged patches + * mainly lots of bug fixes + * Support for ISO C11 + * full details in NEWS file + +------------------------------------------------------------------- +Fri Jul 20 15:06:49 UTC 2012 - jengelh@inai.de + +- Add commit 10f62770e115d9f (glibc-sparc-fxstatat64.diff) from + upstream to resolve rpmlint-induced packaging abort due to + (previously) "no-return-in-nonvoid" +- Add xz as explicit BuildRequires for openSUSE_12.1 + +------------------------------------------------------------------- +Thu Jul 19 23:42:46 UTC 2012 - jengelh@inai.de + +- Do package ld-linux.so.2 on SPARC as well + +------------------------------------------------------------------- +Tue Jul 17 12:22:29 UTC 2012 - aj@suse.de + +- Add makeinfo as build requires to be able to generate the info + pages. + +------------------------------------------------------------------- +Wed Jul 4 13:36:17 UTC 2012 - aj@suse.de + +- Add glibc-2.16-getaddrinfo-buffer.patch to not use a too small + buffer for dns queries on 64-bit systems (bso#14307,bso#13904). +- Fix getaddrinfo-ipv6-sanity.diff (bnc#767125). + +------------------------------------------------------------------- +Mon Jul 2 16:23:15 UTC 2012 - agraf@suse.com + +- Backport *context patch for ARM from 2.16, so we have a working libpth + +------------------------------------------------------------------- +Thu Jun 28 18:46:30 UTC 2012 - aj@suse.de + +- Remove not anymore existing nscd.socket. + +------------------------------------------------------------------- +Thu Jun 28 12:33:50 UTC 2012 - aj@suse.de + +- Update to glibc 2.15-branch (git id 725b8ee08aff): + * Fix regression in cosh (bso#14273) + +------------------------------------------------------------------- +Wed Jun 27 07:34:15 UTC 2012 - aj@suse.de + +- Testsuite is ok to fail on arm + +------------------------------------------------------------------- +Tue Jun 26 07:11:49 UTC 2012 - aj@suse.de + +- Update to glibc 2.15 branch (git id b640404bd8c9): + * Fix fmod implementation that returned NaN for some values. + * Fix strcase_cmp_l x86 multiarch implementation. + * Remove glibc-2.15-avx2.patch, merged now. + +------------------------------------------------------------------- +Thu Jun 21 11:44:59 UTC 2012 - aj@suse.de + +- Fix Bogus FP exception on underflow for exp(double) (bnc#767956) + +------------------------------------------------------------------- +Mon Jun 18 11:04:37 UTC 2012 - aj@suse.de + +- Remove nscd.socket since nscd does not support socket + activation. + +------------------------------------------------------------------- +Wed Jun 13 11:07:15 UTC 2012 - aj@suse.de + +- Build power3 libs on 32-bit PowerPC (bnc#765165). + +------------------------------------------------------------------- +Wed May 23 20:00:55 UTC 2012 - aj@suse.de + +- Update to current git of glibc 2.15 branch: + * obsoletes glibc-2.16-avx.patch, + glibc-2.16-fix-check-localplt.patch + * Fixes for math functions. + +------------------------------------------------------------------- +Wed May 23 11:51:02 UTC 2012 - aj@suse.de + +- Fix first_weekday for tr_TR locale (tr_TR.patch) + +------------------------------------------------------------------- +Wed May 16 08:37:57 UTC 2012 - schwab@linux-m68k.org + +- Fix confstr use of local buffer outside its extent + +------------------------------------------------------------------- +Wed May 9 07:30:36 UTC 2012 - aj@suse.de + +- Split out glibc-armhf-compat.patch from armhf-ld-so.patch. +- Run nscd in the foreground with systemd (glibc-nscd-foreground-patch) + +------------------------------------------------------------------- +Tue May 8 14:00:52 UTC 2012 - aj@suse.de + +- Refresh glibc-2.16-avx.patch and handle FMA4. + +------------------------------------------------------------------- +Thu May 3 11:05:36 UTC 2012 - aj@suse.de + +- Fix dynamic linker name for ARMv5. + +------------------------------------------------------------------- +Thu Apr 26 14:02:37 UTC 2012 - aj@suse.de + +- Fix mcheck (optimization problem with gcc 4.7) + +------------------------------------------------------------------- +Wed Apr 25 10:40:20 UTC 2012 - aj@suse.de + +- Also check for armv7hl. + +------------------------------------------------------------------- +Wed Apr 25 08:47:22 UTC 2012 - adrian@suse.de + +- provide old ld-linux.so.3 on armv7, not catched by find.provides + +------------------------------------------------------------------- +Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de + +- gcc 4.7 does not build crt files properly on powerpc64, backport + patch from upstream to handle this + (glibc-2.16-powerpc-initfini.patch) + +------------------------------------------------------------------- +Fri Apr 20 18:28:18 UTC 2012 - aj@suse.de + +- Disable patch x86-cpuid-level2.patch, this should be fixed in + valgrind now. + +------------------------------------------------------------------- +Thu Apr 19 11:12:43 UTC 2012 - aj@suse.de + +- Reorder patches, refresh to apply cleanly with -p1. + +------------------------------------------------------------------- +Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de + +- Build profiled libs only for base. +- Cleanup patches. +- Remove glibc-2.14-fix-ctors.patch, we have proper support in + binutils now. + +------------------------------------------------------------------- +Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de + +- The dynamic linker for armv7 hardware float is called + /lib/ld-linux-armhf.so.3. Provide symlink for old location. + +------------------------------------------------------------------- +Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de + +- Build for power4 only, don't support power3 anymore. +- Add option to build glibc a bit more quickly for testing purposes. +- Remove disabled patch glibc-revert-netlink-cache.patch. +- Start renumbering patches. + +------------------------------------------------------------------- +Mon Apr 16 14:31:38 UTC 2012 - aj@suse.de + +- Do not build locales and profile for i686 since we only ship + the base and glibc-devel packages. + +------------------------------------------------------------------- +Fri Apr 13 09:35:49 UTC 2012 - aj@suse.de + +- Fix check-abi to succeed. +- Use feof_unlocked in glibc-2.3.90-bindresvport.blacklist.diff. +- Make x86 to be elf/check-localplt clean again +- Refresh some patches to apply without fuzz. + +------------------------------------------------------------------- +Fri Apr 6 09:19:11 UTC 2012 - aj@suse.de + +- Disable building with as-needed since it breaks glibc + (testsuite will fail, even if testsuite does not use as-needed) + +------------------------------------------------------------------- +Thu Apr 5 18:48:06 UTC 2012 - aj@suse.de + +- Another fix for dynamic linking. + +------------------------------------------------------------------- +Thu Apr 5 18:22:36 UTC 2012 - aj@suse.de + +- Properly fix dl_lookup_x crash (glibc-fix-noload.patch), disable + glibc-fix-lookup-crash.patch. + +------------------------------------------------------------------- +Mon Apr 2 09:30:24 UTC 2012 - aj@suse.de + +- Fix building on Armv5 (glibc-add-arm-dependency-libmemusage.patch) + +------------------------------------------------------------------- +Thu Mar 29 07:51:43 UTC 2012 - aj@suse.de + +- Fix crash when nscd is not running (bnc#741021) properly + and disable patch glibc-revert-netlink-cache.patch + +------------------------------------------------------------------- +Fri Mar 23 11:07:32 UTC 2012 - aj@suse.de + +- Fix path for nss_db (bnc#753657). + +------------------------------------------------------------------- +Thu Mar 22 09:41:48 UTC 2012 - aj@suse.de + +- Fix LD_PROFILE invocation. + +------------------------------------------------------------------- +Wed Mar 21 08:45:12 UTC 2012 - aj@suse.de + +- Fix cycle detection in loading of dynamic objects. + +------------------------------------------------------------------- +Wed Mar 14 08:26:52 UTC 2012 - aj@suse.de + +- Update getaddrinfo-ipv6-sanity.diff (bnc#684534). + +------------------------------------------------------------------- +Fri Mar 2 17:01:55 UTC 2012 - aj@suse.de + +- vfprintf: validate nargs and maybe allocate from heap (bnc#747768) + +------------------------------------------------------------------- +Tue Jan 31 13:20:37 UTC 2012 - aj@suse.de + +- Fix checks for AVX (patch glibc-2.16-avx.patch) + +------------------------------------------------------------------- +Tue Jan 31 09:44:07 UTC 2012 - aj@suse.de + +- Use Linux 2.6.32 on x86_64 as oldest supported kernel + +------------------------------------------------------------------- +Tue Jan 31 08:57:15 UTC 2012 - aj@suse.de + +- Fix relocation ordering to fix ifunc crash (bnc#740109). + +------------------------------------------------------------------- +Sun Jan 29 22:47:18 CET 2012 - dmueller@suse.de + +- set abi back to gnueabi for ARM (regression from Jan 12) + +------------------------------------------------------------------- +Wed Jan 18 09:29:24 UTC 2012 - aj@suse.de + +- Update license strings in spec file. + +------------------------------------------------------------------- +Mon Jan 16 13:19:43 UTC 2012 - aj@suse.de + +- Split up new subpackage glibc-extra and move makedb with its + dependency on libselinux to it. (bnc#741525) +- Use lua script for verifyscript to not have a dependency on bash + +------------------------------------------------------------------- +Thu Jan 12 15:42:36 UTC 2012 - aj@suse.de + +- Disable netlink caching (bnc#741021). + +------------------------------------------------------------------- +Thu Jan 12 11:01:41 UTC 2012 - aj@suse.de + +- Use _target_cpu instead of _build and _host. This makes the + i686 library really build for i686. + +------------------------------------------------------------------- +Tue Jan 10 12:31:14 UTC 2012 - aj@suse.de + +- Remove all math ifuncs on x86-64. + +------------------------------------------------------------------- +Tue Jan 10 09:53:58 UTC 2012 - aj@suse.de + +- Remove math ifuncs that cause crashes in apache2 and + gdk-pixbuf-query-loaders-64 (bnc#740109) for now + (glibc-2.15-math64crash.patch). +- nscd needs the same glibc version, add require. + +------------------------------------------------------------------- +Mon Jan 9 08:17:08 UTC 2012 - aj@suse.de + +- Fix realloc usage in vfscanf (glibc-2.16-scanf.patch) +- Fix getcontext on powerpc 32-bit (glibc-ppc-getcontext.patch) + +------------------------------------------------------------------- +Wed Jan 4 09:34:28 UTC 2012 - aj@suse.de + +- Remove patch glibc-2.3.4-gb18030-big5hkscs.diff.bz2 and + replace it by gb18030.patch.bz2 (synced with Fedora 16) + (bnc#743617). + +------------------------------------------------------------------- +Tue Jan 3 19:42:17 UTC 2012 - aj@suse.de + +- Compile unwind-dw2-fde-glibc.c with -fno-strict-aliasing + (patch glibc-strict-aliasing.diff) +- Build on i686 a separate library for usage under Xen. + +------------------------------------------------------------------- +Tue Jan 3 15:36:12 UTC 2012 - aj@suse.de + +- Only use -mno-tls-direct-seg-refs on 32-bit x86, it's not needed + on x86-64. + +------------------------------------------------------------------- +Tue Jan 3 14:37:48 UTC 2012 - aj@suse.de + +- Cleanup spec file: + - experimental malloc is not experimental anymore and only option + (drop patch glibc-malloc-arena-max.diff) + - remove obsolete configure flags + +------------------------------------------------------------------- +Tue Jan 3 08:40:28 UTC 2012 - aj@suse.de + +- Update to 2ba92745c36e: + - Update copyright years + - Fix miscompilation of posix/regex_internal.c with GCC 4.7. + +------------------------------------------------------------------- +Tue Jan 3 08:23:44 UTC 2012 - aj@suse.de + +- Revert pthread-cond-wait change for now since it causes hangs + (patch pthread-cond-wait-revert.patch). + +------------------------------------------------------------------- +Mon Dec 26 12:53:55 UTC 2011 - aj@suse.de + +- Update to c0da14cdda1f (glibc-ports: 8a70b2dcabbf): + - new locales + - many bugfixes + - glibc 2.15 + - obsoletes tzfile-corruption-fix.patch, + glibc-2.14-32args-printf.patch + +------------------------------------------------------------------- +Thu Dec 21 15:16:42 CET 2011 - meissner@suse.de + +- Do not mention the buildtime anymore to make build-compare work. + +------------------------------------------------------------------- +Mon Dec 19 10:01:56 UTC 2011 - aj@suse.de + +- Fix timezone loader overflow (bnc#735850,CVE-2009-5029) (patch + tzfile-corruption-fix.patch) + +------------------------------------------------------------------- +Mon Dec 5 09:29:32 UTC 2011 - aj@suse.de + +- Update to 52ad36a21973 (glibc-ports: 4a40b38f6355): + * fix many warnings + * bugfixes + * obsolete patches glibc-strict-aliasing.diff and + glibc-arm-clone-unwind-fix.diff + + +------------------------------------------------------------------- +Tue Nov 29 03:09:56 UTC 2011 - rcoe@wi.rr.com + +- fix printf with many args and printf arg specifiers (bnc#733140) + +------------------------------------------------------------------- +Thu Nov 24 14:02:55 UTC 2011 - aj@suse.de + +- Updated glibc-ports-2.14.1.tar.bz2 from ftp.gnu.org. + +------------------------------------------------------------------- +Thu Nov 24 09:25:14 UTC 2011 - aj@suse.com + +- Create glibc-devel-static baselibs (bnc#732349). + +------------------------------------------------------------------- +Thu Nov 17 10:27:31 UTC 2011 - aj@suse.de + +- Remove duplicated locales from glibc-2.3.locales.diff.bz2 + +------------------------------------------------------------------- +Tue Nov 15 12:49:56 UTC 2011 - aj@suse.de + +- nscd now monitors resolv.conf, so simplify glibc-2.4.90-nscd.diff + patch and re-enable it +- Adjust and re-enable glibc-2.3.3-nscd-db-path.diff + +------------------------------------------------------------------- +Tue Nov 15 12:10:32 UTC 2011 - aj@suse.de + +- Update to 09f93bd3d6b1: + - Clean up internal fopen uses to always use close-on-exec + - Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32 + - bugfixes + +------------------------------------------------------------------- +Mon Nov 14 12:02:06 CET 2011 - ro@suse.de + +- check-build.sh: accept kernel 3.x + +------------------------------------------------------------------- +Tue Nov 8 22:55:40 CET 2011 - dmueller@suse.de + +- make glibc-static provide versioned + +------------------------------------------------------------------- +Tue Nov 8 18:20:39 CET 2011 - dmueller@suse.de + +- fix building with ports again: + * ifuncs tracing backport requires adjustments + +- avoid using asynchronous-unwind-tables only during configure, + but still built the library with unwind tables enabled +- replace arm build hack with a proper solution + +------------------------------------------------------------------ +Mon Nov 7 21:06:32 CET 2011 - dmueller@suse.de + +- update glibc-ports to 2.14.1: + * Align the constant pool in start.S to 4 bytes. + * sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New. +- Fix unwinding crash when using clone() + +------------------------------------------------------------------- +Wed Nov 2 13:52:36 UTC 2011 - aj@suse.de + +- Update to d35dce5213b3: + - caching of network information for getaddrinfo + - bugfixes + +------------------------------------------------------------------- +Sat Oct 29 18:37:46 UTC 2011 - aj@suse.de + +- Update to 21b64b153631: + - various bugfixes + +------------------------------------------------------------------- +Thu Oct 27 08:44:14 UTC 2011 - aj@suse.de + +- Update to 804791474dc1: + - more libm optimizations +- Remove AMD libm routines due to new upstream libm optimizations + and interfaces. +- Fix build on x86. + +------------------------------------------------------------------- +Mon Oct 24 19:02:46 UTC 2011 - aj@suse.de + +- Update to a201fbcf9cc3: + - More libm optimizations + - Optimize wcslen, strnlen + +------------------------------------------------------------------- +Thu Oct 20 08:58:47 UTC 2011 - aj@suse.de + +- Ignore failure of chkstat (bnc#725145). + +------------------------------------------------------------------- +Wed Oct 19 12:07:41 UTC 2011 - aj@suse.de + +- Provide glibc-static from glibc-devel-static to make packaging + easier. glibc-static is the Fedora name. + +------------------------------------------------------------------- +Tue Oct 18 07:42:40 UTC 2011 - aj@suse.de + +- Update to glibc head 99ce7b04edf1: + - Optimize many libm functions + - Optimize access to isXYZ and toXYZ tables + - Optimized memcmp and wmemcmp for x86-64 and x86-32 + - Add parameter annotation to modf + - Support optimized isXXX functions in C++ code + - Optimized memchr, memrchr, rawmemchr for x86-32 + - Add nscd netgroupcache +- Disable libm-x86-64.diff.bz2 since it needs changes following the + libm optimzations. + +------------------------------------------------------------------- +Mon Oct 17 07:47:54 UTC 2011 - aj@suse.de + +- Remove fma, fmaf from libm-x86-64.diff.bz2, they are not accurate + (bso#13304). + +------------------------------------------------------------------- +Tue Oct 11 09:51:46 UTC 2011 - aj@suse.de + +- Update to current git 4f2b767fef50 + * Correctly reparse group line after enlarging the buffer + * 2.14.1 release + +------------------------------------------------------------------- +Mon Oct 10 14:07:44 UTC 2011 - aj@suse.de + +- Fix tracing with ifuncs. + +------------------------------------------------------------------- +Tue Oct 4 14:10:13 UTC 2011 - uli@suse.com + +- cross-build: use %__cc, %__cxx, %_build, %_host +- mipsel: install ports, disable FP + +------------------------------------------------------------------- +Fri Sep 30 17:14:04 CEST 2011 - dmueller@suse.de + +- avoid build failure on %%arm + +------------------------------------------------------------------- +Thu Sep 29 12:58:59 UTC 2011 - aj@suse.de + +- Update to 68577918437e: + * Obsoleted patches: glibc-gconvcache-s390.diff, + glibc-2.3.5-nscd-zeronegtimeout.diff, + glibc-x86-bits-sigcontext.patch, + glibc-2.15-getsysstats-speedup.patch, glibc-2.13-warnings.fix, + glibc-2.13-localedef.patch, + glibc-fix-rwlock-stack-imbalance.patch, glibc-2.15-vsyscall.patch, + glibc-2.15-avoid-vsyscall.patch + +------------------------------------------------------------------- +Thu Sep 29 07:40:25 UTC 2011 - adrian@suse.de + +- just use %arm for right arm architectures + +------------------------------------------------------------------- +Tue Sep 27 11:24:02 UTC 2011 - aj@suse.de + +- Update to 2.14 git version 8bd683657e8a, it contains backports from + glibc trunk: + + Avoid race between {,__de}allocate_stack and __reclaim_stacks + during fork +- Add glibc-2.14-fix-ctors.patch to run ctors (bnc#717671), gcc 4.6 + optimized these away. + +------------------------------------------------------------------- +Mon Sep 26 12:30:09 UTC 2011 - adrian@suse.de + +- don't use -fasynchronous-unwind-tables on arm, it breaks the build + +------------------------------------------------------------------- +Thu Sep 22 21:07:43 CEST 2011 - dmueller@suse.de + +- fix ports build + +------------------------------------------------------------------- +Thu Sep 22 13:10:02 UTC 2011 - adrian@suse.de + +- don't enforce armv5tel for all arm architectures anymore +- armv8l architecture does not exist + +------------------------------------------------------------------- +Tue Sep 20 07:54:21 UTC 2011 - aj@suse.de + +- Cleanup spec file: remove some tags + +------------------------------------------------------------------- +Mon Sep 19 08:09:40 UTC 2011 - opensuse@cboltz.de + +- move usr.sbin.nscd apparmor profile back to apparmor-profiles package + (bnc#647718) + +------------------------------------------------------------------- +Mon Sep 19 07:45:36 UTC 2011 - aj@suse.de + +- Update to 2.14 git version 69c1dfc1a796, it contains backports from + glibc trunk: + + Fix setxid race handling exiting threads + + Fix cfi directives in x86-64 and i386 code + + Fix scope handling during dl_close + + Fix spurious nop at start of __strspn_ia32 + + Correct cycle detection during dependency sorting + + Fix fopen (non-existing-file, "re") errno (Obsoletes patch + fopen-close-exec.patch) + +------------------------------------------------------------------- +Fri Sep 16 11:20:29 UTC 2011 - mmarek@suse.cz + +- Fix assertion error in res_query.c, triggered by Firefox + (bso#13013). + +------------------------------------------------------------------- +Wed Sep 7 07:17:16 UTC 2011 - aj@suse.de + +- Avoid usage of vsyscalls inside glibc. + +------------------------------------------------------------------- +Tue Sep 6 09:53:24 CEST 2011 - aj@suse.de + +- Prefer real syscalls instead of vsyscalls on x86-64 outside + libc.so + +------------------------------------------------------------------- +Mon Sep 5 10:06:23 UTC 2011 - aj@suse.de + +- Do not not trigger an abort when an i586 Intel CPU is running the + i686 library, as valgrind does. [bnc#681398] + +------------------------------------------------------------------- +Mon Sep 5 08:26:24 UTC 2011 - aj@suse.de + +- Readd vdso support. +- Add patch to relocate objects in dependency order, this fixes the + vdso support. + +------------------------------------------------------------------- +Sat Sep 3 19:39:03 UTC 2011 - aj@suse.de + +- Revert last change, it caused some breakage. [bnc#715854] + +------------------------------------------------------------------- +Thu Sep 1 20:49:16 UTC 2011 - aj@suse.de + +- Add support for new vdso (3.1 kernel) and only then + for vsyscall which is not anymore in 3.1 kernel + (patch glibc-2.15-vsyscall.patch) + +------------------------------------------------------------------- +Thu Aug 25 09:44:37 UTC 2011 - lnussel@suse.de + +- use symbol version OW_CRYPT_1.0 for the Owl extensions + (crypt_r[an], crypt_gensalt.*) +- refactor sha2 gensalt patch +- document sha2 hashes in man page + +------------------------------------------------------------------- +Mon Aug 22 13:12:18 UTC 2011 - aj@suse.de + +- Update AppArmor profile of nscd [bnc#647718] + +------------------------------------------------------------------- +Fri Aug 19 13:26:11 UTC 2011 - aj@suse.de + +- Fix fopen("non-existing-file", "re") errno [bnc#713146]. + +------------------------------------------------------------------- +Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de + +- Mark glibc-info, glibc-html and glibc-i18ndata as noarch packages. + +------------------------------------------------------------------- +Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de + +- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] + +------------------------------------------------------------------- +Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de + +- Enhance rpmlintrc to ignore shlib policy violation. +- Remove obsolete patches glibc-fnmatch-multibyte.diff, + glibc-2.3.1.localedef.diff, glibc-2.10-nscd-nostack.diff. + +------------------------------------------------------------------- +Wed Aug 17 14:47:11 UTC 2011 - aj@suse.de + +- Update to current 2.14 branch: Various bugfixes. + Remove upstreamed patches missing-include-build-fix.diff, + glibc-2.14-res_send.patch, glibc-dl-fxstatat64.patch) + +------------------------------------------------------------------- +Wed Aug 17 14:09:50 UTC 2011 - aj@suse.de + +- Revert removal of sunrpc code (patch glibc2.14-revert-sunrpc-removal.patch). + +------------------------------------------------------------------- +Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de + +- Revert seeking on fclose, incomplete implementation of POSIX + behaviour can confuse current users. [bnc #711829] + (patch glibc-revert-fseek-on-fclose.diff) + +------------------------------------------------------------------- +Fri Jul 22 13:47:23 UTC 2011 - lnussel@suse.de + +- fix signature of sha2 functions + +------------------------------------------------------------------- +Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de + +- Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. + (bnc#684534, bnc#706719) + (patch glibc-fix-double-loopback.diff) + +------------------------------------------------------------------- +Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de + +- install crypt_blowfish man pages + +------------------------------------------------------------------- +Tue Jul 19 12:19:22 UTC 2011 - aj@suse.de + +- Back to old glibc-2.2-sunrpc.diff for now. + +------------------------------------------------------------------- +Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de + +- update crypt_blowfish to version 1.2 (bnc#700876) + * due to the signedness bug fix 2a hashes are incompatible with + previous versions if the password contains 8bit chracters! + * libcrypt now exports crypt_gensalt + +------------------------------------------------------------------- +Fri Jul 15 07:54:46 UTC 2011 - aj@suse.de + +- Update to glibc 2.14: + * The RPC implementation in libc is obsoleted. Old programs keep working + but new programs cannot be linked with the routines in libc anymore. + Programs in need of RPC functionality must be linked against TI-RPC. + The TI-RPC implementation is IPv6 enabled and there are other benefits. + * Various bugfixes, new locales, new linux kernel interfaces. + * New program sotruss to traces calls through PLTs + * Removed the following obsoleted patches: glibc-2.6-configure.diff, + glibc-disable-backward-memcpy.diff, glibc-static-memcpy.diff, + glibc-zarch-longlong.diff, glibc-bso-12454.diff, + glibc-vfprintf-positional.diff +- Build without -fno-strict-aliasing. + +------------------------------------------------------------------- +Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de + +- Remove ppc-atomic.diff after discussion with glibc PPC experts + since it does not bring any real benefit. + +------------------------------------------------------------------- +Thu Jul 7 14:50:15 UTC 2011 - aj@suse.de + +- Update glibc-2.2-sunrpc.diff with newer patch from sourceware + bugzilla (bs#bso#5379). + +------------------------------------------------------------------- +Wed Jul 6 08:24:45 UTC 2011 - lnussel@suse.de + +- enable glibc-2.8-getconf.diff again to fix build failure + +------------------------------------------------------------------- +Tue Jul 5 20:22:50 UTC 2011 - aj@suse.de + +- Add systemd configuration for nscd. + +------------------------------------------------------------------- +Tue Jul 5 08:03:26 UTC 2011 - aj@suse.de + +- Remove glibc-statfs64-ia64.diff since current ia32el has the bug + fixed. +- Remove glibc-ppc64-vdso-time.diff (bnc#590216). + +------------------------------------------------------------------- +Mon Jul 4 10:00:46 UTC 2011 - aj@suse.de + +- Further cleanup of ld.so.conf to remove duplicate directories + and allow override of system directories (bnc#671725) +- Fix futex bug (added patch glibc-fix-rwlock-stack-imbalance.patch + from sourceware bug #12403). + +------------------------------------------------------------------- +Fri Jul 1 16:09:14 UTC 2011 - aj@suse.de + +- Remove glibc-2.10.99-ia64-include.diff, it's not needed anymore. +- Disable obsolete patches glibc-fnmatch-multibyte.diff, + glibc-2.10-nscd-nostack.diff, glibc-2.3.1.localedef.diff +- Add glibc-2.13-localedef.patch to fix alignment problem. +- Adjust glibc-version.diff, FLOATING_STACKS variable is obsolete. + +------------------------------------------------------------------- +Thu Jun 30 12:17:33 UTC 2011 - aj@suse.de + +- Remove old ARM patches as it's unclear why those are needed and arm + support is anyhow broken according to comments here and in spec + files. + +------------------------------------------------------------------- +Thu Jun 30 11:22:02 UTC 2011 - aj@suse.de + +- Back to kernel 2.6.16 as minimal kernel version. + +------------------------------------------------------------------- +Tue Jun 28 12:30:34 UTC 2011 - aj@suse.de + +- Only apply glibc-statfs64-ia64.diff on SLE but not on openSUSE. + +------------------------------------------------------------------- +Mon Jun 27 12:19:47 UTC 2011 - aj@suse.de + +- Disable exp_malloc on PPC platforms for now since it caused a + build failure. + +------------------------------------------------------------------- +Mon Jun 27 11:00:33 UTC 2011 - aj@suse.de + +- Update glibc-x86-bits-sigcontext.patch with version accepted + upstream. +- Add glibc-2.15-getsysstats-speedup.patch to "Fix Linux + sysconf(_SC_NPROCESSORS_[CONF|ONLN]) performance problem" +- Fix warning about potential array subscript out of bounds + (glibc-2.13-wranings.fix). +- Fix some rpmlint warnings. + +------------------------------------------------------------------- +Tue Jun 21 10:59:33 UTC 2011 - aj@suse.de + +- Cleanup spec file, change PreReqs. +- Remove obsolete patches: glibc-2.3.90-ld.so-madvise.diff, + glibc-suse-note.diff, glibc-2.3-regcomp.diff. +- Rename glibc-2.3-SuSE.diff to glibc-testsuite.patch, remove obsolete + parts. + +------------------------------------------------------------------- +Mon Jun 20 12:47:46 UTC 2011 - aj@suse.de + +- Enhance rpmlintrc. +- move summary,license and group out of the not-ppc if (by Marcus + Meissner). + +------------------------------------------------------------------- +Mon Jun 20 11:02:01 UTC 2011 - aj@suse.de + +- Remove PreReq on permissions to avoid a cycle that gives leads to + an uninstallable system (bnc#700925). +- Fix on x86 - fixes scpm compilation + (bnc#700784). + +------------------------------------------------------------------- +Fri Jun 17 09:50:19 UTC 2011 - aj@suse.de + +- Cleanup ld.so.conf list, move kde directories to + kdelibs3 (bnc#671725). + +------------------------------------------------------------------- +Fri Jun 17 07:07:37 UTC 2011 - aj@suse.de + +- Do not package memusage and memusagestat since they require + lib-gd and that grows the build cycle. + +------------------------------------------------------------------- +Thu Jun 16 18:37:19 UTC 2011 - aj@suse.de + +- Fix handling of shared library preloading. + +------------------------------------------------------------------- +Thu Jun 16 13:33:23 UTC 2011 - aj@suse.de + +- Fix getaddrinfo IPv6 code (bnc#684534). +- Split up glibc-devel-static subpackage (bnc#655261). + +------------------------------------------------------------------- +Thu Jun 16 12:23:32 UTC 2011 - aj@suse.de + +- Reorder ld.so.conf library list (bnc#671725). + +------------------------------------------------------------------- +Wed Jun 15 07:08:35 UTC 2011 - aj@suse.de + +- Split up package glibc-utils with some debugging tools, add memusage + and memusagestat programs +- Fix compile warnings. +- Silence some rpmlint warnings. +- Remove obsolete patches glibc-2.3.2-revert_tcsetattr.diff, + glibc-2.8-clone.diff, glibc-nptl-2.4-nofixsyscallnr.diff +- Cleanup spec file. +- Use new permission handling for pt_chown. +- Build without -fno-strict-aliasing. + +------------------------------------------------------------------- +Mon Jun 6 14:19:26 UTC 2011 - aj@suse.de + +- Fix typos in /etc/gai.conf (bnc#651912). + +------------------------------------------------------------------- +Fri Jun 3 08:40:55 UTC 2011 - aj@suse.de + +- Use 2.6.5 as oldest supported kernel on all archs besides x86 and + x86-64 (reverting partially a change). + +------------------------------------------------------------------- +Fri May 27 11:55:35 UTC 2011 - aj@suse.de + +- Remove patches that are not needed anymore: + * glibc-selinux.diff + * glibc-check-native-missing-include.diff + * glibc-2.3.3-execstack.diff +- Disable the following patches, they look obsolete by now but leave them + in to easy enable them again: + * glibc-2.3-SuSE.diff + * glibc-2.3-regcomp.diff + * glibc-2.8-clone.diff + * glibc-2.3.2-revert_tcsetattr.diff +- Do not package glibc-obsolete with empty directory on archs that + don't need it. + +------------------------------------------------------------------- +Thu May 26 07:53:51 UTC 2011 - aj@suse.de + +- Add glibc-static-memcpy.diff to fix static compiles. + +------------------------------------------------------------------- +Wed May 25 15:28:37 UTC 2011 - aj@suse.de + +- Run on kernel 2.6.32 or newer only - and optimize thus. +- Enable malloc implementation that is be less memory efficient + but higher performing in multi-threaded programs. +- Use --enable-bind-now to avoid lazy binding in ld.so + and libc.so + +------------------------------------------------------------------- +Wed May 25 14:38:58 UTC 2011 - aj@suse.de + +- Add glibc-bso-12454.diff to not create assert running dynamic linker + in some cases. +- Disable backwards memcpy for x86-64. + +------------------------------------------------------------------- +Wed May 25 07:59:27 UTC 2011 - aj@suse.de + +- Add glibc-dl-signal-error.diff to not crash the dynamic linker + if dependencies are missing. + +------------------------------------------------------------------- +Mon May 23 08:44:47 UTC 2011 - rguenther@novell.com + +- Update longlong.h from GCC sources. Fixes s390 build with -mzarch. + [bnc#695102] + +------------------------------------------------------------------- +Fri May 20 14:45:44 UTC 2011 - aj@suse.de + +- Fix obsoletes and provides. +- Update to glibc 2.13 +- Drop ld-prelink-unique.diff, it is part of 2.13. + +------------------------------------------------------------------- +Tue Feb 22 12:57:07 CET 2011 - pbaudis@suse.cz + +- Fix potential removal of required local scope from shared objects + marked as NODELETE [bnc#657627] + +------------------------------------------------------------------- +Fri Feb 4 00:46:40 CET 2011 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.3-b72646ad0c41 + - Random assortion of bugfixes, some #defines for new kernels +- Retired patches: + - glibc-2.11.3-bnc658509.diff + - glibc-2.11.3-bso12397.diff + - glibc-sparc64-fxstat.diff +- Remove the NSS hack of opening modules using RTLD_DEEPBIND. + This was useful for nss_ldap, since some applications used a different + LDAP library with clashing symbol names. However, it also created + many headaches, especially with the NSS modules not respecting + malloc() overrides. Now, sssd is used by default for LDAP resolutions + and we can therefore safely get rid of the hack. [bnc#477061] +- Remove the currently disabled AMD string function overrides. + Benchmarking did not unearth any differences that would make + convincing case for keeping the functions with all the associated + maintenance headaches; AMD does not recommend keeping their custom + versions of the functions either. +- Introduce MALLOC_ARENA_MAX and M_ARENA_MAX support [bnc#659090] +- Fixed stack unwinding past glibc _fini function (proper showing + of destructor backtraces) [bnc#585879] +- Fix gconv cache generation on s390 [bnc#592944] +- Add missing iconvconfig for refreshing gconv.cache to glibc-locale %post +- Fixed stack corruption in *printf() with large number of positional + specifiers [bnc#666179] + +------------------------------------------------------------------- +Fri Jan 28 14:53:35 UTC 2011 - rguenther@novell.com + +- Fix ENOSYS detection for mkdirat. [bso#12397] + +------------------------------------------------------------------- +Thu Dec 9 12:33:35 UTC 2010 - rguenther@novell.com + +- Drop restrict qualifiers from memmove and bcopy fortify wrappers. + [bnc#658509] + +------------------------------------------------------------------- +Tue Nov 30 01:53:42 CET 2010 - pbaudis@suse.cz + +- Upgrade to glibc-2.11.3 + - Just few more bugfixes since the latest upgrade + +------------------------------------------------------------------- +Tue Nov 16 04:03:01 CET 2010 - pbaudis@suse.cz + +- Remove explicit support for nss SPLIT_GROUPS setting; glibc from + 2.11 on should handle this automagically. + +------------------------------------------------------------------- +Mon Nov 15 18:43:35 CET 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.2-dd2fde461e30 + - Candidate tree for glibc-2.11.3 + - Multitude of various bug fixes + +------------------------------------------------------------------- +Mon Nov 15 18:29:49 CET 2010 - pbaudis@suse.cz + +- Enable multi-arch routines support for ppc, ppc64, i686 and x86_64. + + Temporarily, AMD-optimized string routines are disabled. We will + selectively re-enable them after some more careful benchmarking + in the next few days. + + Note: In this glibc version, multi-arch routines DO NOT include + the controversial backwards-copy memcpy(). + +------------------------------------------------------------------- +Wed Oct 27 03:14:37 CEST 2010 - pbaudis@suse.cz + +- Fix missing hconf setup in nscd - this meant `multi on` in + /etc/host.conf was ignored when nscd was used, breaking e.g. + resolving of multi-AF records in /etc/hosts [bnc#572188] +- Fix two LD_AUDIT security vulnerabilities: spurious $ORIGIN expansion + and missing setuid library check when running as setuid [bnc#646960] + +------------------------------------------------------------------- +Mon Sep 13 14:36:26 UTC 2010 - aj@suse.de + +- Fix build in manual with make 3.82. + +------------------------------------------------------------------- +Sun Sep 12 08:00:57 UTC 2010 - aj@suse.de + +- Work around shortest-stem feature in make 3.82+ (patch + glibc-make-3.82.patch) + +------------------------------------------------------------------- +Wed Jul 7 04:12:05 CEST 2010 - pbaudis@suse.cz + +- Fix NIS-compat initgroups routine to work reliably over multiple + invocations [bnc#607064] + +------------------------------------------------------------------- +Thu Jul 1 19:52:56 UTC 2010 - jengelh@medozas.de + +- SPARC: restore fxstat functionality in sparc64 mode + +------------------------------------------------------------------- +Sat Jun 26 10:26:17 UTC 2010 - jengelh@medozas.de + +- Use %_smp_mflags + +------------------------------------------------------------------- +Fri Jun 11 15:41:07 CEST 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.2-21580967038a + - Fix buggy x86 CPU family and model check + - Fix sunrpc error condition handling + - Fix crash on unresolved weak symbol reference + +------------------------------------------------------------------- +Tue Jun 1 03:38:28 CEST 2010 - pbaudis@suse.cz + +- Fix ldconfig -r failing on aux cache [bnc#609345] + +------------------------------------------------------------------- +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 + +- Handle /var/run on tmpfs + +------------------------------------------------------------------- +Mon Apr 26 22:09:40 CEST 2010 - pbaudis@suse.cz + +- Remove stale resolv.dynamic.diff patch file + +------------------------------------------------------------------- +Thu Apr 22 08:30:50 CEST 2010 - meissner@suse.de + +- for powerpc32 build a generic library and also a power4 library + to allow older 32bit powerpc to work. bnc#596271 + +------------------------------------------------------------------- +Tue Apr 20 13:15:19 CEST 2010 - pbaudis@suse.cz + +- Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] + +------------------------------------------------------------------- +Wed Mar 24 13:04:12 CET 2010 - pbaudis@suse.cz + +- Fix get_nprocs() large CPU count handling [bnc#590665] + +------------------------------------------------------------------- +Tue Mar 23 15:09:09 CET 2010 - pbaudis@suse.cz + +- Fix interference of STB_GNU_UNIQUE and prelink [bnc#586979] +- Make time() use VDSO on PPC64 [bnc#590216] +- Make pthread_cond_timedway() use VDSO on PPC64 [bnc#590517] + +------------------------------------------------------------------- +Thu Mar 18 14:45:34 CET 2010 - pbaudis@suse.cz + +- Add PreReq for cat to glibc-locale [bnc#588997] + +------------------------------------------------------------------- +Thu Mar 18 14:29:42 CET 2010 - pbaudis@suse.cz + +- Fix /etc/resolv.conf change detection for multi-threaded applications + (by Sebastian Kienzl) + +------------------------------------------------------------------- +Fri Mar 5 12:59:44 CET 2010 - pbaudis@suse.cz + +- Fix spurious mapping from lowercase sharp s to uppercase sharp S + which is less standard and causes problems for ISO encodings [bnc#541773] + +------------------------------------------------------------------- +Mon Mar 1 18:55:37 CET 2010 - pbaudis@suse.cz + +- Fix spurious overflow messages on some R_X86_64_PC32 relocations, + patch by Richard Guenther [bnc#583019] + +------------------------------------------------------------------- +Wed Feb 24 11:53:41 CET 2010 - pbaudis@suse.cz + +- Fix assertion failures within valloc(), patch by Michael Matz + [bnc#581391] + +------------------------------------------------------------------- +Wed Feb 17 12:02:24 CET 2010 - pbaudis@suse.cz + +- S/390: Disable two UTF conversion instructions due to the hardware + mishandling some error conditions in the input stream [bnc#579871] + +------------------------------------------------------------------- +Mon Feb 15 22:34:29 CET 2010 - pbaudis@suse.cz + +- Further fix previous power5 fix + +------------------------------------------------------------------- +Sun Feb 14 15:33:33 CET 2010 - rguenther@suse.de + +- avoid spurious differences in nscd on rebuilds. + +------------------------------------------------------------------- +Thu Feb 11 21:36:32 CET 2010 - pbaudis@suse.cz + +- Fix another upgrade problem on power5 and older - correctly remove + the old optimized libraries; found out by matz@suse.de [bnc#563978] + +------------------------------------------------------------------- +Fri Feb 5 21:07:54 CET 2010 - pbaudis@suse.cz + +- Final fix for memchr() overflow on IA64 provided by upstream + [bnc#567516] + +------------------------------------------------------------------- +Thu Jan 28 17:11:59 CET 2010 - pbaudis@suse.cz + +- Fix another memchr() overflow on IA64; another known one still + remains a mystery [bnc#567516] + +------------------------------------------------------------------- +Wed Jan 27 02:49:46 CET 2010 - pbaudis@suse.cz + +- Remove now-obsolete powerpc-cpu addon usage [bnc#572819] +- Fix statfs64() on IA64 in 32-bit mode ia32el [bnc#534828] + +------------------------------------------------------------------- +Tue Jan 26 03:33:38 CET 2010 - pbaudis@suse.cz + +- Fix upgrade from previous distributions on power5 and older [bnc#563978] + +------------------------------------------------------------------- +Mon Jan 25 17:35:25 CET 2010 - meissner@suse.de + +- ignore power6, power7 and cell specific Power CPU optimizations + on openSUSE. + +------------------------------------------------------------------- +Tue Jan 19 02:42:40 CET 2010 - pbaudis@suse.cz + +- Disable AMD-optimized strncmp() on x86_64 that is getting miscompiled + by the assembler [bnc#540647] + +------------------------------------------------------------------- +Mon Jan 18 18:22:32 CET 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.1-11c19d374bd4 + - Just trivial changes - version bump to 2.11.1, NIS-related + resolver fixes, ELF lookup race, .h typo fix and regcomp + out-of-memory handling miss + - Few more bugfixes, weekday updated in three locales +- Retired patches: + glibc-ia64-memchr.diff + +------------------------------------------------------------------- +Mon Dec 14 23:49:33 CET 2009 - jengelh@medozas.de + +- add baselibs.conf as a source + +------------------------------------------------------------------- +Fri Dec 11 13:13:01 CET 2009 - jengelh@medozas.de + +- libnldbl_nonshared is only built for sparc32 + +------------------------------------------------------------------- +Tue Dec 8 20:50:26 CET 2009 - jengelh@medozas.de + +- package libnldbl_nonshared for SPARC + +------------------------------------------------------------------- +Fri Nov 20 01:55:16 CET 2009 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11-1bc1954c7357: + - This snapshot is slated to become 2.11.1 if all goes well + - Mix of fixes for various recently found out issues +- Retired patches: + glibc-ifunc-dlsym-fixup.diff +- [IA64] Fix memchr() on mmap(MAP_SHARED) boundary [fix lighttpd crashes] +- Again use 127.0.0.1 as default nameserver in case of empty + /etc/resolv.conf [bnc#473308] + +------------------------------------------------------------------- +Thu Nov 19 13:15:41 CET 2009 - pbaudis@suse.cz + +- Add 623 and 664 to /etc/bindresvport.blacklist to fix problems with + port conflict on some IPMI network cards [bnc#513961] +- Allow external additions to /usr/share/locale/locale.alias and + /usr/lib/gconv/gconv-modules, required for the SAP-locales package. +- Add delimiter in front of external additions to locale/gconv lists +- Remove AMD-provided strlen(), upstream is faster. + +- Keep .symtab and .strtab for all glibc-related .so libraries [FATE#307090] + [bnc#545721] +- [ppc,ppc64] Enable optimized builds for power7; no separate power4, power5 + builds are generated anymore, instead default glibc is built for power4 + at least, tuned for power5 execution [FATE#307021] +- Large clean-up of the specfile + +------------------------------------------------------------------- +Fri Nov 13 22:47:47 CET 2009 - pbaudis@suse.cz + +- Upgrade to Git HEAD as of 20091105 - glibc-2.11-13f6812ffb5b: + * New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps, + mkostemps64 + Implemented by Ulrich Drepper. + + * Checking version of longjmp added that fails if an uninitialized stack + frame would be created. Implemented by Ulrich Drepper. + + * STT_GNU_IFUNC is now supported in static executables. + Implemented by H.J. Lu. + + * STT_GNU_IFUNC implemented for PPC by Alan Modra. + + * New optimized string functions for x86-64: strstr, strcasestr, memcmp, + strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2), + strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2). + Contributed by H.J. Lu. + + strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3). + Implemented by Ulrich Drepper. + + * New optimized string functions for x86: strlen, strcspn, strspn, strpbrk, + strstr, strcasestr. + Contributed by H.J. Lu. + + * Support for fma instruction in AVX on x86-64. + Implemented by H.J. Lu and Ulrich Drepper. + + * AVX support in x86-64 auditing support in ld.so. + Implemented by H.J. Lu. + + * STB_GNU_UNIQUE support added. + Implemented by Ulrich Drepper. + + * Implement second fallback mode for optimized DNS lookup for even more + broken environments. If two requests from the same port are not + handled correctly close the socket and open a new one before sending + the second request. The 'single-request-reopen' option in /etc/resolv.conf + can be used to select this mode right away, instead of rediscovering the + necessity is every process again. + Implemented by Ulrich Drepper. + + * New resolver flag RES_USE_DNSSEC to enable use of verified lookup. + Implemented by Adam Tkac. + + * Optimized iconv conversions for S390x. + Implemented by Andreas Krebbel. + + * Using condvars with PI mutexes is now more efficient due to kernel + support for requeueing to PI futexes. NPTL support added for x86-64. + Implemented by Ulrich Drepper. + + * New locales: ps_AF, my_MM +- Retired patches: + glibc-utmp-timeout-raise.diff + glibc-nscd-assert.diff + glibc-2.10-mcheck-free-race.diff + glibc-nscd-prune-ret.diff +- Made ifunc compile on IA64 using patch by H.J.Lu +- Fixed compilation on PPC Cell +- Lowered utmp locking timeout from 30s to 10s to be compatible + with upstream +- Allow external additions to /usr/share/locale/locale.alias and + /usr/lib/gconv/gconv-modules, required for the SAP-locales package. +- Remove AMD-provided strlen(), upstream is faster. +- ARM is currently non-functional + +------------------------------------------------------------------- +Fri Nov 13 20:18:27 CET 2009 - pbaudis@suse.cz + +- Rediff patches to apply with fuzz 0 + +------------------------------------------------------------------- +Sat Sep 19 14:13:43 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-44dbdf3777 of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + +------------------------------------------------------------------- +Fri Sep 18 21:40:04 CEST 2009 - coolo@novell.com + +- add /etc/apparmor.d to the nscd file list + +------------------------------------------------------------------- +Mon Sep 14 23:53:20 CEST 2009 - pbaudis@suse.cz + +- define _filter_GLIBC_PRIVATE so that our glibc is not marked to + provide these symbols [bnc#468748] +- Fix exception behaviour of various libm functions by AMD optimized + for x86_64 [bnc#487576] + +------------------------------------------------------------------- +Tue Sep 8 13:15:04 CEST 2009 - pbaudis@suse.cz + +- Provide the /etc/apparmor.d/usr.sbin.nscd file [bnc#535467] +- Blowfish: Enable BF_SCALE even on x86_64 + +------------------------------------------------------------------- +Sat Sep 5 23:19:51 CEST 2009 - pbaudis@suse.cz + +- Raise utmp locking timeout from 1s to 30s to ensure logins get recorded + even on heavily loaded systems [bnc#486631] +- Fix invalid pointer handling in some nscd assertions and the code to send + data to the client [bnc#513617] +- Radically trim down the Blowfish support patch - keeps only crypt_blowfish + from the original OWL patch, but does the rest within the current glibc + crypt infrastructure [bnc#529495] + +------------------------------------------------------------------- +Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de + +- make patch0 usage consistent + +------------------------------------------------------------------- +Thu Aug 20 19:02:31 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-aa152ec6ad of release/2.10/master branch + (Still the same source is used for glibc-ports.) - random minor fixes + * REVERTED invalid fix of broken locking within nscd [bnc#510788] +- Fix nscd handling of zero negative timeout for some databases + [bnc#523154,bnc#510788] + +------------------------------------------------------------------- +Fri Jul 17 01:14:16 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-4253a1e0b2 of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + * Fix broken locking within nscd [bnc#510788] +- Fix compilation with 2.6.30 kernel headers on IA64 + +------------------------------------------------------------------- +Thu Jun 18 00:58:47 CEST 2009 - pbaudis@suse.cz + +- Fix a dead-lock introduced by the bnc#509398 fix +- Update to glibc-2.10.1-d0f6ed789f of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) - random minor fixes + +------------------------------------------------------------------- +Fri Jun 12 12:19:34 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-9cf557216c of glibc/pb-stable.git glibc-2.10-branch + (Still the same source is used for glibc-ports.) + * Fix 100% CPU usage by Java apps because of bad futex calls [bnc#509096] + +------------------------------------------------------------------- +Mon Jun 8 17:58:50 CEST 2009 - pbaudis@suse.cz + +- Fix race condition in the mcheck free() hook [bnc#509398] + +------------------------------------------------------------------- +Fri Jun 5 00:46:59 CEST 2009 - pbaudis@suse.cz + +- Remove temporary revert of a namespace leakage cleanup in glibc-2.8 + +------------------------------------------------------------------- +Fri May 22 22:45:10 CEST 2009 - pbaudis@suse.cz + +- Update to glibc-2.10.1-e38af591a8 of glibc/pb-stable.git glibc-2.10-branch + maintained by me at repo.or.cz; contains backports of various bugfixes. + (Still the same source is used for glibc-ports.) +- Stop using separate tarball for nptl. +- Add ARM support, pulling in glibc-ports snapshot when compiling for ARM. + +------------------------------------------------------------------- +Fri May 15 22:13:33 CEST 2009 - pbaudis@suse.cz + +- Add support for multiple group records for a single group + when using nss_compat (configurable in /etc/default/nss) [bnc#480991] + +------------------------------------------------------------------- +Sun May 10 21:42:37 CEST 2009 - pbaudis@suse.cz + +- Update to 2009051021, glibc-2.10.1: + * Add missing cacheinfo entry for a recent Intel processor + * Fix ABI issue with the gshadow interface + +------------------------------------------------------------------- +Sun May 10 11:20:12 CEST 2009 - pbaudis@suse.cz + +- Upgrade to CVS HEAD as of 2009051010 - glibc-2.10: + * DNS IPv4-IPv6 lookup changed back to parallel version; with broken DNS + servers (the case e.g. for many ADSL users), you may experience long + timeouts, once for each process (but eventually your request will be + resolved) - the solution is to run nscd (default on SUSE) and/or + put 'options single-request' in /etc/resolv.conf. + + * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info + Implemented by Ulrich Drepper. + + * New Linux interfaces: accept4, fallocate, fallocate64. + Implemented by Ulrich Drepper. + + * Correct declarations of string function when used in C++ code. This + could lead to compile errors for invalid C++ code. + + * XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are + now in POSIX. + + * New POSIX 2008 interface: psiginfo + Implemented by Ulrich Drepper. + + * New ISO C++1x interfaces: quick_exit, at_quick_exit + Implemented by Ulrich Drepper. + + * Support for selecting between multiple function definitions at runtime + using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper. + + * The libcrypt library can now use the hash function implementations in + NSS. Implemented by Ulrich Drepper. + + * The malloc implementation can be compiled to be less memory efficient + but higher performing in multi-threaded programs. + Implemented by Ulrich Drepper. + + * New locales: nan_TW@latin, ks_IN + + * Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64. + Implemented by Ulrich Drepper. + + * Extended printf hook support. It is possible to use user-defined types + and extend existing format specifiers. + Implemented by Ulrich Drepper. + + * Handling for group shadow files has been added. + Implemented by Ulrich Drepper. +- Retired: + glibc-2.10-dns-fixpack.diff + glibc-2.10-dns-no-gethostbyname4.diff + glibc-2.10-locale-tuesday.diff + glibc-2.10-nscd-gc-dataofs.diff + glibc-2.10-nscd-prunerace.diff + glibc-2.10-ppc32-setcontext-fp.diff + glibc-2.10-unsetenv.diff + glibc-2.4.90-mdns-resolver.diff + glibc-2.9-fortify.diff + glibc-getgroups-fortify.diff + glibc-ldscript.diff + glibc-mtfsf.diff + glibc-2.10-nscd-meminflight.diff + getaddrinfo-ipv6-sanity.diff + glibc-2.10-nis-hosts.diff +- Several other modified + +------------------------------------------------------------------- +Fri Apr 17 16:49:52 CEST 2009 - pbaudis@suse.cz + +- Fix defaulting to localhost in case of no nameserver entries + in /etc/resolv.conf [bnc#473308] + +------------------------------------------------------------------- +Mon Mar 23 15:32:01 CET 2009 - rguenther@suse.de + +- Add missing libc_hidden_builtin_def (memcmp) to + glibc-2.3.3-amd64-string.diff. Fixes build with GCC 4.4. + +------------------------------------------------------------------- +Fri Feb 27 16:21:17 CET 2009 - rguenther@suse.de + +- Make sure to mark fortified inline routines with + __attribute__((__artificial__)). + +------------------------------------------------------------------- +Wed Feb 18 16:18:19 CET 2009 - adrian@suse.de + +- Build i686 glibc src rpm as nosrc to get both versions on the + media [bnc#474338] + +------------------------------------------------------------------- +Thu Jan 22 14:10:25 CET 2009 - schwab@suse.de + +- Fix use of mtfsf insn. + +------------------------------------------------------------------- +Wed Jan 21 20:26:05 CET 2009 - schwab@suse.de + +- Fix ldscript mangling. + +------------------------------------------------------------------- +Wed Jan 21 01:18:59 CET 2009 - pbaudis@suse.cz + +- Re-enable the DNS fixpack, add real fix for bnc#441947 +- nscd: Fix gc he_data overflow and turn of alloca usage [bnc#387202] +- Normalize the patch queue +- Increate CPU_SETSIZE from 1024 to 4096 - for large SGI machines + and compatibility with SLE10SP2 [bnc#464667] + +------------------------------------------------------------------- +Fri Jan 16 22:33:21 CET 2009 - pbaudis@suse.cz + +- Disable the DNS fixpack from CVS, breaks nscd resolving [bnc#441947] + +------------------------------------------------------------------- +Fri Jan 9 13:12:21 CET 2009 - pbaudis@suse.cz + +- Fix unsetenv() crashing after clearenv() +- Backport various DNS-related fixes from CVS +- Disable parallel A-AAAA queries - revert to the glibc-2.9 behaviour + of sending the queries sequentially [bnc#442572] +- Fix fp register protection on power6 setcontext() [bnc#464738] + +------------------------------------------------------------------- +Mon Dec 8 01:25:57 CET 2008 - pbaudis@suse.cz + +- Fix crash when parsing NIS hosts file [bnc#448702] + +------------------------------------------------------------------- +Thu Dec 4 04:07:11 CET 2008 - pbaudis@suse.cz + +- Fix nscd gc-cacheadd and prune-invalidate races [bnc#446233] +- Remove obsolete and disabled nscd patch +- Fix /etc/bindresvport.blacklist parsing [bnc#439146] +- Fix en_GB and csb_PL locales having weeks start on Tuesdays [bnc#449186] + +------------------------------------------------------------------- +Sun Nov 23 14:55:40 CET 2008 - pbaudis@suse.cz + +- clean up patch filenames + +------------------------------------------------------------------- +Fri Nov 21 14:04:16 CET 2008 - olh@suse.de + +- fix check-build.sh to actually allow building on ppc* again + +------------------------------------------------------------------- +Fri Nov 21 13:36:05 CET 2008 - olh@suse.de + +- do not run compiled binaries with cputuned libraries [bnc#445911] + the buildhost only generates them, but must not execute them + +------------------------------------------------------------------- +Mon Nov 17 14:34:45 CET 2008 - pbaudis@suse.cz + +- Update to glibc-2.9 final + +------------------------------------------------------------------- +Thu Nov 6 18:25:09 CET 2008 - jjolly@suse.de + +- Added patch to fix s390x 64bit stack frame problem + +------------------------------------------------------------------- +Fri Oct 31 19:51:08 CET 2008 - matz@suse.de + +- Fix atomics on s390/s390x, leading to failures in pthread mutexes. + +------------------------------------------------------------------- +Tue Oct 28 18:08:32 CET 2008 - schwab@suse.de + +- Restore alignment patch. + +------------------------------------------------------------------- +Tue Oct 28 09:45:22 CET 2008 - olh@suse.de + +- symlink power5/power5+ to power4 on ppc32 + +------------------------------------------------------------------- +Thu Oct 23 22:20:28 CEST 2008 - ro@suse.de + +- only do obsoletes for XXbit packages on ppc, not on x86 + +------------------------------------------------------------------- +Wed Oct 23 13:46:25 CEST 2008 - matz@suse.de + +- Deactivate unwind tables for initfini.c. + +------------------------------------------------------------------- +Thu Oct 23 10:56:50 CEST 2008 - olh@suse.de + +- obsolete glibc{,-devel,-locale,-profile} -XXbit packages [bnc#437293] +- update last change to handle empty rpmspec defines + +------------------------------------------------------------------- +Tue Oct 21 09:54:06 CEST 2008 - olh@suse.de + +- update glibc_post_upgrade to handle power7 and ppc-cell-be +- remove libs unconditionally on powerpc to handle libs in + subdirectories for which we do not ship optimized versions [bnc#437209] + +------------------------------------------------------------------- +Thu Oct 16 14:42:59 CEST 2008 - olh@suse.de + +- enable cpu-tuned libraries for power4, power6 and ppc-cell-be + on ppc32 [fate#304000,bnc#408808] + +------------------------------------------------------------------- +Mon Oct 13 14:51:11 CEST 2008 - matz@suse.de + +- Update to trunk from 20081013, no longer export paccept, + obsoletes some patches (lowlevellock and res_send). + Fix overflow in nscd patch. + +------------------------------------------------------------------- +Mon Oct 13 00:03:18 CEST 2008 - dmueller@suse.de + +- also strip .comment.SUSE.OPTs from the static libs +- add missing-include-build-fix.diff + +------------------------------------------------------------------- +Tue Oct 7 09:44:20 CEST 2008 - schwab@suse.de + +- Fix alignment in resolver. + +------------------------------------------------------------------- +Tue Sep 30 09:41:01 CEST 2008 - olh@suse.de + +- symlink tuned libs because rpmlint is unable to handle hardlinks + +------------------------------------------------------------------- +Wed Sep 29 11:01:41 CEST 2008 - olh@suse.de + +- enable cpu-tuned libraries for power6 and ppc-cell-be [fate#304000,bnc#408808] +- remove -mtune G4/RS64 from CFLAGS on ppc/ppc64 + +------------------------------------------------------------------- +Thu Sep 18 11:39:53 CEST 2008 - rguenther@suse.de + +- Change .comment.SuSE.OPTs to .comment.SUSE.OPTs. Also strip from + crti.o and crtn.o. +- Adjust getgroups fortify check. [bnc#426958] + +------------------------------------------------------------------- +Thu Sep 18 10:19:51 CEST 2008 - schwab@suse.de + +- Fix alignment in resolver. + +------------------------------------------------------------------- +Mon Sep 15 11:55:18 CEST 2008 - adrian@suse.de + +- do not run glibc_post_upgrade in XEN builds + +------------------------------------------------------------------- +Sat Sep 13 21:49:44 CEST 2008 - rguenther@suse.de + +- strip .note.gnu.build-id from crt1.o. + +------------------------------------------------------------------- +Sat Sep 13 10:20:47 CEST 2008 - dmueller@suse.de + +- only strip comment from crt1.o + +------------------------------------------------------------------- +Fri Sep 12 17:49:39 CEST 2008 - mls@suse.de + +- block baselibs generation for i586 (use i686 instead) + +------------------------------------------------------------------- +Fri Sep 12 17:34:06 CEST 2008 - dmueller@suse.de + +- strip suse opts comments from crt.o (fate #300498) + +------------------------------------------------------------------- +Mon Sep 8 13:38:36 CEST 2008 - rguenther@suse.de + +- Add a patch to fix wrong asm constraints in the i386 lowlevel + futex lock implementation. + +------------------------------------------------------------------- +Thu Sep 4 19:46:22 CEST 2008 - matz@suse.de + +- Update to current trunk snapshot (2008-09-04), makes s390 build. + +------------------------------------------------------------------- +Wed Aug 27 16:12:01 CEST 2008 - matz@suse.de + +- Add a patch to use RTLD_DEEPBIND to load nss modules. [bnc #157078] + +------------------------------------------------------------------- +Mon Aug 25 15:09:37 CEST 2008 - matz@suse.de + +- Update to current trunk snapshot (2008-08-25). + +------------------------------------------------------------------- +Fri Aug 22 17:18:23 CEST 2008 - prusnak@suse.cz + +- enabled SELinux support [Fate#303662] + +------------------------------------------------------------------- +Fri Aug 15 10:37:10 CEST 2008 - aj@suse.de + +- Fix nscd init script for new checks. +- package empty ld.so.cache. + +------------------------------------------------------------------- +Fri Jul 25 08:16:40 CEST 2008 - aj@suse.de + +- Add directory /var/cache/ldconfig to filelist. + +------------------------------------------------------------------- +Wed Jun 25 15:38:25 CEST 2008 - pbaudis@suse.cz + +- Fix strptime() %EY era support [bnc#355887] + +------------------------------------------------------------------- +Wed Jun 25 13:30:42 CEST 2008 - rguenther@suse.de +- Add patch to fix unwinding through clone for x86_64 and i386. + [bnc#290807, bnc#403464] + +------------------------------------------------------------------- +Fri May 30 23:57:54 CEST 2008 - schwab@suse.de + +- Fix ppc atomic ops. + +------------------------------------------------------------------- +Fri Apr 25 13:30:50 CEST 2008 - pbaudis@suse.cz + +- Update to glibc-2.8 CVS branch as of 2008042513 (post-glibc-2.8): + * Faster sqrt and sqrtf implemention for some PPC variants. + +------------------------------------------------------------------- +Thu Apr 10 23:57:44 CEST 2008 - pbaudis@suse.cz + +- Build fix after the revert + +------------------------------------------------------------------- +Thu Apr 10 23:05:17 CEST 2008 - pbaudis@suse.cz + +- Temporarily revert a namespace leakage cleanup in glibc-2.8 since + it causes a lot of build failures + +------------------------------------------------------------------- +Thu Apr 10 16:29:34 CEST 2008 - pbaudis@suse.cz + +- Update to CVS HEAD as of 2008041002 (almost glibc-2.8): + * New locales: bo_CN, bo_IN. + + * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. + + * Sorting rules for some Indian languages (Devanagari and Gujarati). + Implemented by Pravin Satpute. + + * IPV6 addresses in /etc/resolv.conf can now have a scope ID + + * nscd caches now all timeouts for DNS entries + Implemented by Ulrich Drepper. + + * nscd is more efficient and wakes up less often. + Implemented by Ulrich Drepper. + + * More checking functions: asprintf, dprintf, obstack_printf, vasprintf, + vdprintf, and obstack_vprintf. + Implemented by Jakub Jelinek. + + * Faster memset for x86-64. + Implemented by Harsha Jagasia and H.J. Lu. + + * Faster memcpy on x86. + Implemented by Ulrich Drepper. + + * ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX). + Implemented by Ulrich Drepper. + +- memset() implementation from AMD replaced by new upstream + implementation + +- Enable stackguard randomization + +------------------------------------------------------------------- +Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de + +- added baselibs.conf file to build xxbit packages + for multilib support + +------------------------------------------------------------------- +Thu Mar 13 13:48:49 CET 2008 - dmueller@suse.de + +- don't try to use ipv6 in getaddrinfo() unconditionally (bnc#361697) + +------------------------------------------------------------------- +Sat Jan 26 13:19:41 CET 2008 - aj@suse.de + +- Add fixes from 2.8 branch for string.h and headers. The string.h + changes should fix sysvinit compilation. +- Fix some rpmlint warnings: + * Add versioned provides and obsoletes. + * Use %check section. + +------------------------------------------------------------------- +Fri Jan 18 14:03:43 CET 2008 - schwab@suse.de + +- Fix use of fnstsw. + +------------------------------------------------------------------- +Wed Nov 21 05:35:36 CET 2007 - pbaudis@suse.cz + +- Update to CVS branch glibc_2.7 as of today +- Remove the ::1 hack again +- Fix nscd race condition between mempool_alloc() and gc() [#288910] +- Fix nscd stack overflow in gc() when the number of cache entries + gets too large [#288910] +- Fix sunrpc udp client [#257745] +- Fix initgroups() crash in nss_compat [#310544] + +------------------------------------------------------------------- +Thu Sep 27 15:46:30 CEST 2007 - matz@suse.de + +- Remove broken x86_64 bcopy function. [#328486] + +------------------------------------------------------------------- +Sun Sep 16 14:04:30 CEST 2007 - aj@suse.de + +- Install gai.conf on all archs. + +------------------------------------------------------------------- +Thu Sep 13 17:20:58 CEST 2007 - pbaudis@suse.cz + +- Install the default gai.conf to /etc instead of docdir +- Do not return ::1 /etc/hosts records for 127.0.0.1 queries [#288879] + +------------------------------------------------------------------- +Wed Sep 5 03:07:39 CEST 2007 - pbaudis@suse.cz + +- Fix pthread_mutex_unlock() internal lock handling for incorrectly + written applications +- Fix nscd assertion failure when opening persistent db failed [#288910] + +------------------------------------------------------------------- +Mon Sep 3 20:10:39 CEST 2007 - mls@suse.de + +- fix typos in mdns patch [#206247], [#256690] + +------------------------------------------------------------------- +Fri Aug 31 17:38:02 CEST 2007 - aj@suse.de + +- Add /usr/share/locale-bundle/ as fallback directory for usage + with bundle-lang packages (see bug #302270). + +------------------------------------------------------------------- +Tue Aug 21 22:31:54 CEST 2007 - pbaudis@suse.cz + +- Reintroduce errorneously omitted AMD64 optimizations + (and fix them to compile again) + +------------------------------------------------------------------- +Thu Aug 16 09:47:53 CEST 2007 - aj@suse.de + +- Fix static linking (#233835). +- Silence rpmlint for profile package. +- Add Short-Description to nscd init script. + +------------------------------------------------------------------- +Mon Aug 13 19:09:31 CEST 2007 - aj@suse.de + +- Backport: + * Update kernel-features.h. + * Fix sched_getcpu error path on x86-64. + * Use upstreamed version of ldconfig cache speed ups. + +------------------------------------------------------------------- +Fri Aug 3 15:46:35 CEST 2007 - pbaudis@suse.cz + +- Remove the dynamic linker support for direct bindings (-Bdirect); + according to Michael Meeks, the performance improvement is too small +- Split timezone package to a separate physical package +- Update glibc to version 2.6.1 + +------------------------------------------------------------------- +Fri Jul 27 11:32:54 CEST 2007 - aj@suse.de + +- Use fdupes to reduce timezone data size. + +------------------------------------------------------------------- +Fri Jul 13 18:27:49 CEST 2007 - schwab@suse.de + +- Update to head of glibc-2.6 branch. +- Fix update on ppc. + +------------------------------------------------------------------- +Thu Jun 28 14:59:55 CEST 2007 - matz@suse.de + +- Add a provide for "rtld(GNU_HASH)". + +------------------------------------------------------------------- +Sun Jun 17 12:30:26 CEST 2007 - schwab@suse.de + +- Fix section selection in crt objects. + +------------------------------------------------------------------- +Thu Jun 7 02:43:29 CEST 2007 - pbaudis@suse.cz + +- Backport fix for crashing printf() of some invalid ldouble values + +------------------------------------------------------------------- +Wed May 30 04:40:25 CEST 2007 - pbaudis@suse.cz + +- Added few fixes from 2.6 CVS before 2.6.1 gets released + +------------------------------------------------------------------- +Fri May 18 23:14:42 CEST 2007 - pbaudis@suse.cz + +- Update glibc to version 2.6 +- Update tzdata to version 2007f + +------------------------------------------------------------------- +Fri May 4 11:24:53 CEST 2007 - schwab@suse.de + +- Update build checks. + +------------------------------------------------------------------- +Fri Apr 20 13:13:52 CEST 2007 - dmueller@suse.de + +- only keep symtab for libpthread* + +------------------------------------------------------------------- +Thu Apr 19 23:22:35 CEST 2007 - pbaudis@suse.cz + +- Fix strtod() exponent limit calculations [#230909] +- Fix random nscd crashes under very heavy passwd/group queries + load [#192391] +- Add some enums from CVS to sys/personality.h [#253710] +- Fix pthread_atfork()-induced hangs in threaded programs [#256237] +- Fix llrintl() on ppc64 [#241183] +- Fix makecontext() segfault [#249780] +- Fix potential dladdr() breakage [#241464] +- Fix some races in client programs with nscd garbage collection [#252138] + +------------------------------------------------------------------- +Fri Mar 30 02:54:06 CEST 2007 - pbaudis@suse.cz + +- Update localtime during timezone update [#239888] + +------------------------------------------------------------------- +Sun Mar 25 10:00:59 CEST 2007 - olh@suse.de + +- temporary disable powerpc cputuned libs to reduce turnaround time + +------------------------------------------------------------------- +Fri Feb 9 15:03:50 CET 2007 - pbaudis@suse.cz + +- Update to the latest upstream timezone data [#231833] + +------------------------------------------------------------------- +Fri Feb 2 11:42:51 CET 2007 - schwab@suse.de + +- Remove -ffortify. + +------------------------------------------------------------------- +Thu Feb 1 13:43:54 CET 2007 - schwab@suse.de + +- Remove -fstack-protector. + +------------------------------------------------------------------- +Mon Jan 29 16:13:09 CET 2007 - sbrabec@suse.cz + +- Removed references to /opt/gnome. + +------------------------------------------------------------------- +Thu Jan 25 21:14:58 CET 2007 - olh@suse.de + +- link power4 to ppc970, link power6 to power6x +- Update the powerpc cpu-tuned environment to v0.05 + +------------------------------------------------------------------- +Mon Jan 22 14:43:40 CET 2007 - schwab@suse.de + +- Update ppc build check. + +------------------------------------------------------------------- +Fri Nov 24 12:45:26 CET 2006 - pbaudis@suse.cz + +- Fix for Brazilian and Wester Australia timezone DSTs [#213375,#223196] + +------------------------------------------------------------------- +Thu Nov 16 21:59:06 CET 2006 - pbaudis@suse.cz + +- Disable power6 optimization for 10.2, not all pieces are there + [#219962] + +------------------------------------------------------------------- +Wed Oct 25 22:23:48 CEST 2006 - pbaudis@suse.cz + +- Change ld.so madvise() call to posix_fadvise() +- Fix mallopt(M_MXFAST,0) behaviour [#198760] +- Update the powerpc cpu-tuned environment to v0.04 [#215117] + +------------------------------------------------------------------- +Sun Oct 22 21:59:49 CEST 2006 - pbaudis@suse.cz + +- Update the powerpc cpu-tuned environment to v0.03 [#212549] +- Improve glibc powerpc optimization [#212548,#212580,#214282] + +------------------------------------------------------------------- +Tue Oct 17 21:03:54 CEST 2006 - mls@suse.de + +- add ldconfig-old-cache patch to speed up ldconfig + +------------------------------------------------------------------- +Sat Oct 14 12:23:53 CEST 2006 - olh@suse.de + +- dont use uninitialized (and wrong) variable in glibc-2.4.90-bdirect.diff + [#212470] + +------------------------------------------------------------------- +Thu Oct 12 02:33:58 CEST 2006 - pbaudis@suse.cz + +- Update to the latest 2.5 CVS +- More friendly -Bdirect behaviour in case of missing libraries +- Fix 2.4.90-nscd patch wrt. new gcc + +------------------------------------------------------------------- +Mon Oct 2 13:37:26 CEST 2006 - aj@suse.de + +- Fix warnings in testsuite (patch from CVS). + +------------------------------------------------------------------- +Fri Sep 29 22:06:43 CEST 2006 - pbaudis@suse.cz + +- Update to 2.5 CVS - official release (only minimal changes in CVS + since the last update) +- Fix a thinko in the -Bdirect patch + +------------------------------------------------------------------- +Fri Sep 29 19:51:24 CEST 2006 - dmueller@suse.de + +- fix devel requires + +------------------------------------------------------------------- +Fri Sep 29 04:27:40 CEST 2006 - pbaudis@suse.cz + +- Make the dynamic linker support direct bindings (Michael Meeks' + Solaris-like -Bdirect with minor changes by me) +- Split the kernel headers to a new package (linux-kernel-headers) + +------------------------------------------------------------------- +Wed Sep 27 14:59:32 CEST 2006 - schwab@suse.de + +- Fix broken assertion [#208189]. + +------------------------------------------------------------------- +Tue Sep 26 18:10:38 CEST 2006 - pbaudis@suse.cz + +- Fix mistake when removing some patches + +------------------------------------------------------------------- +Mon Sep 25 21:15:15 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS + +------------------------------------------------------------------- +Sat Sep 23 04:36:58 CEST 2006 - pbaudis@suse.cz + +- Fix 64bit-cleanliness gcc warnings + +------------------------------------------------------------------- +Thu Sep 21 23:52:13 CEST 2006 - pbaudis@suse.cz + +- Add /usr/lib{,64}/Xaw3d to /etc/ld.so.conf (by schwab@suse.de, + from original STABLE) [#205169] +- Fix chown() instead of lchown() called in fchownat() emulation + [#201751] +- Fix glob() overflowing stack when producing massive number of + matches [#190458] +- Update to current CVS + +------------------------------------------------------------------- +Wed Sep 20 23:48:20 CEST 2006 - pbaudis@suse.cz + +- Fix cut'n'paste error in a last-minute change + +------------------------------------------------------------------- +Wed Sep 20 22:07:59 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS +- Fix powerpc-cpu tarball extension +- Move crypt-blowfish to a patch so that quilt works on the tree + +------------------------------------------------------------------- +Sat Sep 2 19:01:21 CEST 2006 - schwab@suse.de + +- Use asm-powerpc for ppc and ppc64. +- Fix chroot check in glibc_post_upgrade. + +------------------------------------------------------------------- +Mon Aug 28 01:24:24 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS, should fix false positive heap overflow + trigger from malloc() causing gcc to hang [#201724] + +------------------------------------------------------------------- +Wed Aug 23 23:56:35 CEST 2006 - pbaudis@suse.cz + +- Update the powerpc cpu-tuned environment to v0.02 [#199274] +- Update to current CVS +- Drop pthread_mutexattr_getprioceiling() out of range fix + +------------------------------------------------------------------- +Thu Aug 10 20:10:04 CEST 2006 - pbaudis@suse.cz + +Ported from STABLE: +- Remove libc5 reference from /etc/ld.so.conf, shlibs5 is no longer + supported [#181947] +- Fix name of a dummy ia64 header from offsets.h to asm-offsets.h + [#191394] + +------------------------------------------------------------------- +Sun Jul 30 23:33:04 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS snapshot (highlight: support for .gnu.hash + fast linking support) + +------------------------------------------------------------------- +Wed Jul 12 03:15:08 CEST 2006 - pbaudis@suse.cz + +- pthread_mutexattr_getprioceiling() was returning prioceiling out + of range [#182782] + +------------------------------------------------------------------- +Wed Jul 12 02:39:22 CEST 2006 - pbaudis@suse.cz + +- Fix the HTML documentation missing an index [#190585] + +------------------------------------------------------------------- +Sat Jun 24 18:32:42 CEST 2006 - kukuk@suse.de + +- Update to current CVS snapshot +- Update to kernel-headers 2.6.17 +- Remove HZ define (sysconf(_SC_CLK_TCK) instead) + +------------------------------------------------------------------- +Tue Jun 13 11:49:43 CEST 2006 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue May 2 14:10:41 CEST 2006 - pbaudis@suse.cz + +- Fix bad memset() size in NTPL code [#159184] + +------------------------------------------------------------------- +Tue May 2 10:42:55 CEST 2006 - kukuk@suse.de + +- asm-powerpc/page.h: Don't move #ifdef __KERNEL__ [#171010] +- bits/mman.h: Fix value of MADV_REMOVE [#170734] + +------------------------------------------------------------------- +Mon Apr 24 12:04:12 CEST 2006 - kukuk@suse.de + +- Fix china timezone mess [#163674] +- Don't include linux/stddef.h [#167964] + +------------------------------------------------------------------- +Tue Apr 18 14:38:57 CEST 2006 - schwab@suse.de + +- Sanitize . + +------------------------------------------------------------------- +Thu Apr 13 13:34:07 CEST 2006 - kukuk@suse.de + +- Add /usr/include/linux/taskstats.h [#141936] + +------------------------------------------------------------------- +Tue Apr 11 12:20:57 CEST 2006 - kukuk@suse.de + +- nptl/init.c (sigcancel_handler): Compare with correct PID even + if the thread is in the middle of a fork call. + (sighandler_setxid): Likewise. + +------------------------------------------------------------------- +Sun Apr 9 16:27:20 CEST 2006 - ihno@suse.de + +- S390 fix for startupcode. Part of it was not PIC. + +------------------------------------------------------------------- +Fri Apr 7 13:42:20 CEST 2006 - kukuk@suse.de + +- Don't hardcode syscall numbers at our own + +------------------------------------------------------------------- +Tue Apr 4 22:10:47 CEST 2006 - schwab@suse.de + +- Fix readlink declaration. + +------------------------------------------------------------------- +Mon Apr 3 13:40:54 CEST 2006 - kukuk@suse.de + +- Update from CVS: + - nscd bug fixes + - Match return value of readlink to what POSIX says + - Fix NIS+ checks for NULL pointer + +------------------------------------------------------------------- +Sun Apr 2 20:53:17 CEST 2006 - dmueller@suse.de + +- Fix clients crash if nscd is unresponsive (glibc-#2501) +- Fix fd leak in nscd daemon (glibc-#2498) + +------------------------------------------------------------------- +Sat Apr 1 21:48:54 CEST 2006 - schwab@suse.de + +- Fix on ppc64. + +------------------------------------------------------------------- +Fri Mar 31 15:50:25 CEST 2006 - schwab@suse.de + +- Extend last change also to ppc64. + +------------------------------------------------------------------- +Sun Mar 26 21:08:58 CEST 2006 - schwab@suse.de + +- Terminate FDE before clone syscall. + +------------------------------------------------------------------- +Fri Mar 24 14:58:29 CET 2006 - ro@suse.de + +- kernel-headers: asm-powerpc: define PAGE_MASK in page.h + +------------------------------------------------------------------- +Mon Mar 20 13:57:27 CET 2006 - kukuk@suse.de + +- Update to final 2.6.16 kernel headers +- Update to current CVS: + - Don't use TLS before setting it up. + - Fix rounding of long doubles on ppc64. + - Correct usage of cfi_offset on ppc/ppc64. + - Fix memory leak in dlopen. + +------------------------------------------------------------------- +Tue Mar 14 17:08:27 CET 2006 - schwab@suse.de + +- Update fnmatch patch. + +------------------------------------------------------------------- +Fri Mar 10 13:36:38 CET 2006 - kukuk@suse.de + +- Disable unshare() syscall (request of kernel developer) + +------------------------------------------------------------------- +Fri Mar 10 08:30:53 CET 2006 - kukuk@suse.de + +- Don't include linux/interrupt.h from linux/rtc.h +- Revert last change to linux/input.h, disable struct +- Update to current CVS (nptl/ia64 fix) + +------------------------------------------------------------------- +Thu Mar 9 07:58:20 CET 2006 - kukuk@suse.de + +- Fix linux/input.h for userspace inclusion + +------------------------------------------------------------------- +Wed Mar 8 22:06:11 CET 2006 - kukuk@suse.de + +- Update kernel headers to 2.6.16-rc5 + +------------------------------------------------------------------- +Mon Mar 6 13:41:08 CET 2006 - kukuk@suse.de + +- Update to 2.4 CVS + - official release + - Fix free on ppc [#155374] + - Various sysconf() fixes + +------------------------------------------------------------------- +Sat Mar 4 18:12:36 CET 2006 - kukuk@suse.de + +- Update to CVS + - ldconfig/prelink fixes + +------------------------------------------------------------------- +Fri Mar 3 17:32:56 CET 2006 - aj@suse.de + +- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). + +------------------------------------------------------------------- +Fri Mar 3 10:58:02 CET 2006 - kukuk@suse.de + +- Update to CVS + - Fix ftw test suite failures + - Fix alignment of malloc for long double + +------------------------------------------------------------------- +Thu Mar 2 09:56:59 CET 2006 - kukuk@suse.de + +- Update to 2.3.91 CVS + - Fix 6arg syscall on s390x + - memccpy fix on IA64 + +------------------------------------------------------------------- +Wed Mar 1 08:54:53 CET 2006 - kukuk@suse.de + +- Update to CVS + - New linkat interface + - Update from tzdata2006b + - Define MADV_DONTFORK and MADV_DOFORK. + - Add robust mutex to NPTL + +------------------------------------------------------------------- +Thu Feb 23 15:26:29 CET 2006 - kukuk@suse.de + +- Reenable power optimized code again [#142839] + +------------------------------------------------------------------- +Sun Feb 12 09:45:39 CET 2006 - kukuk@suse.de + +- Disable power optimized code + +------------------------------------------------------------------- +Thu Feb 9 10:50:12 CET 2006 - kukuk@suse.de + +- Update to CVS + - Add unshare prototype + - Add memory barrier on i386/NPTL + +------------------------------------------------------------------- +Wed Feb 8 10:50:07 CET 2006 - kukuk@suse.de + +- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] + +------------------------------------------------------------------- +Mon Feb 6 16:58:50 CET 2006 - kukuk@suse.de + +- Update to current CVS +- Fix alternate locale search path patch [#147685] + +------------------------------------------------------------------- +Thu Feb 2 12:13:19 CET 2006 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Mon Jan 30 16:10:35 CET 2006 - schwab@suse.de + +- Fix the fix. + +------------------------------------------------------------------- +Sat Jan 28 18:42:08 CET 2006 - kukuk@suse.de + +- Fix seg.fault in __atfct_seterrno if called from futimesat() +- Apply patches for CPU-Tuned Environment on Power [#142839] + +------------------------------------------------------------------- +Fri Jan 27 12:10:55 CET 2006 - kukuk@suse.de + +- Cleanup ld.so.conf + +------------------------------------------------------------------- +Thu Jan 26 08:53:33 CET 2006 - kukuk@suse.de + +- Add alternate directory for translations [#144073] + +------------------------------------------------------------------- +Thu Jan 26 00:41:37 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Mon Jan 23 17:44:50 CET 2006 - kukuk@suse.de + +- Update to CVS +- Fix build_locales + +------------------------------------------------------------------- +Sat Jan 21 10:24:02 CET 2006 - kukuk@suse.de + +- Update to CVS +- Fix inclusion of sys/poll.h with _GNU_SOURCE defined + +------------------------------------------------------------------- +Fri Jan 20 15:02:35 CET 2006 - kukuk@suse.de + +- Update to CVS + +------------------------------------------------------------------- +Sun Jan 15 08:28:26 CET 2006 - kukuk@suse.de + +- Update to CVS (fix long double configure check) + +------------------------------------------------------------------- +Sun Jan 15 01:59:54 CET 2006 - schwab@suse.de + +- Readd , , . + +------------------------------------------------------------------- +Sun Jan 15 01:08:22 CET 2006 - schwab@suse.de + +- Readd . + +------------------------------------------------------------------- +Sat Jan 14 22:33:32 CET 2006 - kukuk@suse.de + +- Update to current CVS (long double support) + +------------------------------------------------------------------- +Fri Jan 13 09:17:17 CET 2006 - aj@suse.de + +- Fix x86-64 w_exp to not use extra plt. + +------------------------------------------------------------------- +Thu Jan 12 22:39:01 CET 2006 - kukuk@suse.de + +- Fix asm-s390/setup.h for userspace inclusion +- nsswitch.conf: Add nis to netgroup and automount entry +- Fix sys/procfs.h for ppc64 + +------------------------------------------------------------------- +Mon Jan 9 23:20:14 CET 2006 - kukuk@suse.de + +- Update to current CVS (fix for pthread.h with -std=c99) +- Define PAGE_SIZE on POWER +- Don't include linux/sched.h in asm-power/elf.h + +------------------------------------------------------------------- +Sun Jan 8 17:58:11 CET 2006 - kukuk@suse.de + +- Fix linux/acct.h for userland inclusion + +------------------------------------------------------------------- +Sun Jan 8 11:48:58 CET 2006 - kukuk@suse.de + +- Update to current CVS +- Remove CHILD_MAX from kernel-headers +- Copy subdirectories of asm-power, too. +- Remove da_DK@euro (does not exist) + +------------------------------------------------------------------- +Sat Jan 7 10:02:43 CET 2006 - kukuk@suse.de + +- Fix ext2 kernel headers +- Update to current CVS + +------------------------------------------------------------------- +Fri Jan 6 12:28:10 CET 2006 - kukuk@suse.de + +- Update to kernel headers 2.6.15 + +------------------------------------------------------------------- +Fri Jan 6 00:58:28 CET 2006 - kukuk@suse.de + +- Update crypt_blowfish to version 1.0 +- Update to current CVS +- Adjust nscd patches + +------------------------------------------------------------------- +Tue Jan 3 17:19:36 CET 2006 - aj@suse.de + +- Update to current CVS to fix pthread.h on 64-bit systems for C++. + +------------------------------------------------------------------- +Tue Jan 3 06:04:26 CET 2006 - aj@suse.de + +- Enable string patch again. +- Update to current CVS. + +------------------------------------------------------------------- +Wed Dec 21 15:11:14 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Fix ldconfig + +------------------------------------------------------------------- +Sat Dec 17 09:49:18 CET 2005 - kukuk@suse.de + +- Remove /usr/lib/zoneinfo +- Add /etc/localtime to filelist +- Update to current CVS +- Fix glibc #1978: statvfs does not know about current filesystems +- Fix wrong error return code of time() on x86 +- Remove nscd_nischeck +- Remove audit from nfb +- Remove LinuxThreads + +------------------------------------------------------------------- +Wed Dec 14 18:00:59 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Remove nscd_nischeck +- Remove audit from nfb + +------------------------------------------------------------------- +Mon Dec 5 12:07:05 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Disable SELinux + +------------------------------------------------------------------- +Thu Nov 24 15:54:27 CET 2005 - kukuk@suse.de + +- Remove obsolete patches: + - glibc-2.3.asprintf-error_handling.diff + - glibc-2.3.90-missing-string_h.diff + +------------------------------------------------------------------- +Wed Nov 23 17:20:10 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Don't install in parallel + +------------------------------------------------------------------- +Fri Nov 18 13:42:43 CET 2005 - kukuk@suse.de + +- Update to current CVS to fix compiling with new binutils + +------------------------------------------------------------------- +Wed Nov 16 18:33:57 CET 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Sat Nov 5 14:44:07 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Disable linuxthreads on POWER and Itanium +- Fix kernel-headers for userland inclusion + +------------------------------------------------------------------- +Wed Nov 2 17:12:36 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Update to kernel-headers 2.6.14 + +------------------------------------------------------------------- +Tue Oct 18 17:37:08 CEST 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Sat Oct 1 23:00:04 CEST 2005 - schwab@suse.de + +- Update libm ULPs. +- Fix limit in getcwd. + +------------------------------------------------------------------- +Thu Sep 15 16:13:50 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- Update to final 2.6.13 kernel headers +- Adjust bindresvport.blacklist patch to check already ports >= 512 + +------------------------------------------------------------------- +Fri Aug 26 16:41:56 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- init.d/nscd: Remove -S support (was removed from nscd) + +------------------------------------------------------------------- +Fri Aug 19 18:28:24 CEST 2005 - schwab@suse.de + +- Fix comment. + +------------------------------------------------------------------- +Fri Aug 19 17:36:24 CEST 2005 - matz@suse.de + +- Change .note.SuSE format [#105825]. + +------------------------------------------------------------------- +Fri Aug 19 17:13:21 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- Move all obsolete libraries into own subpackage and document + them as obsolete + +------------------------------------------------------------------- +Fri Aug 5 10:32:38 CEST 2005 - schwab@suse.de + +- -mno-tls-direct-seg-refs is x86-only + +------------------------------------------------------------------- +Tue Aug 2 14:54:01 CEST 2005 - kukuk@suse.de + +- Update to 2.3.x CVS branch +- Compile with -mno-tls-direct-seg-refs + +------------------------------------------------------------------- +Fri Jul 29 11:12:02 CEST 2005 - kukuk@suse.de + +- Update to current CVS head + +------------------------------------------------------------------- +Wed Jul 27 23:13:04 CEST 2005 - schwab@suse.de + +- Update libm ULPs for ia64. +- Add linuxthreads stack guard support for ia64. + +------------------------------------------------------------------- +Sat Jul 23 10:05:16 CEST 2005 - kukuk@suse.de + +- Update to current CVS head (adds bits/wchar2.h) +- Move LinuxThreads version to obsolete/linuxthreads + +------------------------------------------------------------------- +Thu Jul 21 15:04:31 CEST 2005 - kukuk@suse.de + +- Update to current CVS head + +------------------------------------------------------------------- +Fri Jul 15 15:45:35 CEST 2005 - schwab@suse.de + +- Fix file list. + +------------------------------------------------------------------- +Fri Jul 15 12:09:08 CEST 2005 - aj@suse.de + +- Fix amd64 string routines and math routines. + +------------------------------------------------------------------- +Fri Jul 15 08:45:27 CEST 2005 - kukuk@suse.de + +- Use old LinuxThreads only for runtime and remove static version + and headers +- Update to current CVS head +- Remove own texi2html + +------------------------------------------------------------------- +Mon Jul 11 11:00:47 CEST 2005 - kukuk@suse.de + +- Install generic stdio-lock.h header file + +------------------------------------------------------------------- +Sat Jul 9 18:46:46 CEST 2005 - kukuk@suse.de + +- Temporary disable AMD64 string optimization + +------------------------------------------------------------------- +Wed Jul 6 09:58:39 CEST 2005 - kukuk@suse.de + +- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] + +------------------------------------------------------------------- +Mon Jul 4 20:41:47 CEST 2005 - kukuk@suse.de + +- nss_compat: Preserve original return value [Bug #95033] +- Cleanup old Obsoletes/Requires + +------------------------------------------------------------------- +Mon Jun 27 13:49:38 CEST 2005 - kukuk@suse.de + +- Update to current gilbc CVS snapshot + +------------------------------------------------------------------- +Thu Jun 23 23:25:42 CEST 2005 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Adjust nscd patch +- Enable SELinux/audit support for nscd +- Update .note.SuSE version + +------------------------------------------------------------------- +Mon Jun 20 12:35:20 CEST 2005 - kukuk@suse.de + +- Update to final 2.6.12 kernel headers +- Update to current glibc CVS snapshot + +------------------------------------------------------------------- +Thu Jun 16 17:03:43 CEST 2005 - kukuk@suse.de + +- Update linux/audit.h header +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Jun 13 14:48:53 CEST 2005 - kukuk@suse.de + +- Don't terminate strings twice in nis/netgroup code. +- netinet/if_tr.h: don't include kernel headers. + +------------------------------------------------------------------- +Wed Jun 8 16:26:21 CEST 2005 - kukuk@suse.de + +- Update to kernel-headers 2.6.12-rc6 +- Fix build on s390 and s390x + +------------------------------------------------------------------- +Wed Jun 8 12:08:49 CEST 2005 - matz@suse.de + +- Don't strip .symtab from libpthread.so.0 (and other libs). + Fixes debugging of threaded programs (#81253). + +------------------------------------------------------------------- +Mon Jun 6 18:47:22 CEST 2005 - kukuk@suse.de + +- Update to current CVS head +- Update to kernel-headers 2.6.12-rc5 + +------------------------------------------------------------------- +Thu May 26 20:07:11 CEST 2005 - schwab@suse.de + +- No longer build loadlocale.c with -fno-unit-at-a-time. + +------------------------------------------------------------------- +Tue May 24 11:09:00 CEST 2005 - kukuk@suse.de + +- Update to current CVS head, obsoletes: + - glibc-2.3.90-libm.diff + - glibc-2.3.90-i386-sysdep.diff + - warn.diff + - dl-osinfo.diff + Adjusted: + - glibc-2.3.90-bindresvport.blacklist.diff + +------------------------------------------------------------------- +Sun May 22 01:53:44 CEST 2005 - schwab@suse.de + +- Fix missing include. + +------------------------------------------------------------------- +Tue May 17 23:46:19 CEST 2005 - schwab@suse.de + +- Fix warning. + +------------------------------------------------------------------- +Fri Apr 29 15:11:22 CEST 2005 - kukuk@suse.de + +- Update to latest CVS snapshost + +------------------------------------------------------------------- +Sat Apr 23 17:05:58 CEST 2005 - kukuk@suse.de + +- Fix all the archs using wrong FLAGS + +------------------------------------------------------------------- +Sat Apr 23 08:02:31 CEST 2005 - kukuk@suse.de + +- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS + +------------------------------------------------------------------- +Fri Apr 22 13:05:40 CEST 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Fri Apr 22 12:45:26 CEST 2005 - kukuk@suse.de + +- Check if nice value does not conflict with test suite + +------------------------------------------------------------------- +Tue Apr 19 13:54:03 CEST 2005 - mls@suse.de + +- resolv: trigger re-read of /etc/resolv.conf for all threads if + a change is detected +- nscd: support a negative timeout of zero, used by hosts cache + +------------------------------------------------------------------- +Mon Apr 18 17:31:23 CEST 2005 - meissner@suse.de + +- Enable fortify possibility even for GCC 4.0, we apply + the necessary patch to the SUSE GCC 4.0. + +------------------------------------------------------------------- +Sat Apr 16 12:16:13 CEST 2005 - aj@suse.de + +- Apply amd64 string diff again. + +------------------------------------------------------------------- +Tue Apr 12 11:35:46 CEST 2005 - kukuk@suse.de + +- Update kernel-headers to 2.6.10 +- Update to current CVS snapshot + +------------------------------------------------------------------- +Wed Apr 6 18:33:32 CEST 2005 - schwab@suse.de + +- Cleanup neededforbuild. + +------------------------------------------------------------------- +Tue Apr 5 22:02:25 CEST 2005 - aj@suse.de + +- Add gettext-devel to neededforbuild. + +------------------------------------------------------------------- +Tue Apr 5 16:45:06 CEST 2005 - aj@suse.de + +- Do not build on xen machines. +- Adjust libm ULPs for PowerPC. + +------------------------------------------------------------------- +Fri Apr 1 14:20:45 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue Mar 29 10:57:40 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot +- Fix compiler warnings on ix86 + +------------------------------------------------------------------- +Mon Mar 28 17:27:44 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot +- Disable Noversion Patch on i386 temporary + +------------------------------------------------------------------- +Fri Mar 18 14:33:22 CET 2005 - ro@suse.de + +- check-build.sh: require 2.6.11 on x86,x86_64 for build + +------------------------------------------------------------------- +Thu Mar 17 13:57:22 CET 2005 - mls@suse.de + +- nscd: enable hosts cache +- nscd: also watch /etc/resolv.conf +- nscd: check files every 3 seconds +- nscd: deal correctly with missing files + +------------------------------------------------------------------- +Tue Mar 15 15:50:12 CET 2005 - kukuk@suse.de + +- Update to current CVS snapshot. + +------------------------------------------------------------------- +Sat Feb 12 02:49:56 CET 2005 - schwab@suse.de + +- Remove const from __pthread_internal_tsd_address. + +------------------------------------------------------------------- +Fri Feb 11 15:44:31 CET 2005 - schwab@suse.de + +- Update to current CVS. +- Link glibc_post_upgrade against new libc. +- Fix build error with gcc4. + +------------------------------------------------------------------- +Wed Feb 9 10:40:29 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Fix bindresvport blacklist handling. +- Increase buffer in tst-cancel17 to match new kernel buffer size + [#50277] +- Enable LinuxThreads again +- Remove ia64-audit patch (is upstream) + +------------------------------------------------------------------- +Mon Feb 7 13:15:58 CET 2005 - aj@suse.de + +- Add patch to allow compilation with gcc4. + +------------------------------------------------------------------- +Mon Jan 31 16:33:47 CET 2005 - schwab@suse.de + +- Readd support for LD_AUDIT on ia64. + +------------------------------------------------------------------- +Mon Jan 31 14:32:01 CET 2005 - kukuk@suse.de + +- Add memory clobber to string inline assemblies on s390 [#50284]. + +------------------------------------------------------------------- +Mon Jan 31 12:55:59 CET 2005 - kukuk@suse.de + +- Fix filelist on i686 if we build NPTL only version + +------------------------------------------------------------------- +Mon Jan 31 09:17:33 CET 2005 - aj@suse.de + +- Generate new ULPs file for i386 needed by GCC 4. + +------------------------------------------------------------------- +Sun Jan 30 12:43:56 CET 2005 - kukuk@suse.de + +- Include own copy of texi2html +- Add glibc_pst_upgrade program (based on version from FC3) +- Update to current CVS + +------------------------------------------------------------------- +Thu Jan 27 23:28:57 CET 2005 - kukuk@suse.de + +- Re-add patch for timezone/zic.c (got lost with last merge) + +------------------------------------------------------------------- +Wed Jan 26 11:34:36 CET 2005 - kukuk@suse.de + +- Update timezone data to 2005c release (fixes zdump crash on + 64bit architectures) + +------------------------------------------------------------------- +Sat Jan 22 15:45:25 CET 2005 - schwab@suse.de + +- Add basic (incomplete) support for LD_AUDIT on ia64. + +------------------------------------------------------------------- +Fri Jan 21 11:00:08 CET 2005 - kukuk@suse.de + +- Enable patch for [Bug #49833] +- Allow to build NPTL only glibc +- Update to CVS from Jan 16, 2005, containing: +- Fix execlp argument in SunRPC code [glibc #681] +- Fix errno return values for futimes [glibc #633] +- Update FPU function on PPC/PPC64 [Bug #49764] + +------------------------------------------------------------------- +Mon Jan 17 10:40:24 CET 2005 - aj@suse.de + +- Enable amd64 string patch again after fixing failing hunks. +- Handle missing cpuid better for amd64 string functions. [#49803] + +------------------------------------------------------------------- +Sat Jan 15 16:05:36 CET 2005 - aj@suse.de + +- Fix amd64 string patch to use correct datatype. + +------------------------------------------------------------------- +Fri Jan 14 14:06:43 CET 2005 - kukuk@suse.de + +- Fix memory corruption in getgrouplist function [Bug #49833] + +------------------------------------------------------------------- +Tue Jan 11 11:01:26 CET 2005 - kukuk@suse.de + +- Enable all LinuxThreads tests again +- Finalize getconf -a patch (make it compatible with Solaris) +- Rewrite getconf manual page and mention new option +- Merge GB18030 patches into one. + +------------------------------------------------------------------- +Thu Dec 30 10:57:40 CET 2004 - kukuk@suse.de + +- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with + kernel-headers.SuSE.diff +- Revert nscd paths on old SuSE Linux distributions + +------------------------------------------------------------------- +Wed Dec 29 22:33:00 CET 2004 - kukuk@suse.de + +- Update to glibc 2.3.90 CVS branch +- Remove alarm-round.patch (merged upstream) + +------------------------------------------------------------------- +Thu Dec 9 14:19:05 CET 2004 - kukuk@suse.de + +- Update to current CVS +- Move nscd persistent database files back to /var/run/nscd + +------------------------------------------------------------------- +Mon Dec 6 15:43:08 CET 2004 - kukuk@suse.de + +- Update to current CVS +- Fix more kernel headers for userland inclusion + +------------------------------------------------------------------- +Fri Nov 26 14:33:20 CET 2004 - ro@suse.de + +- kernel-headers.diff: define __force in compiler.h + +------------------------------------------------------------------- +Thu Nov 25 17:52:39 CET 2004 - schwab@suse.de + +- Add Intel libm update. + +------------------------------------------------------------------- +Thu Nov 25 12:08:17 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS +- Update kernel headers to 2.6.9 + +------------------------------------------------------------------- +Thu Nov 18 15:11:32 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS + +------------------------------------------------------------------- +Mon Nov 15 14:11:27 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS + +------------------------------------------------------------------- +Mon Nov 8 10:50:27 CET 2004 - kukuk@suse.de + +- Blacklist port 921 (lwresd) for usage by bindresvport() +- Update to current glibc CVS +- Add /var/run/nscd/* files as ghost entries + +------------------------------------------------------------------- +Mon Oct 18 13:54:04 CEST 2004 - aj@suse.de + +- Don't use special fdim functions for x86-64 since those give + wrong results for fdim (inf,inf). +- Fix ppc64 rebuild issue with ppc32 system [#47325]. + +------------------------------------------------------------------- +Wed Oct 13 14:06:55 CEST 2004 - kukuk@suse.de + +- Fix symlink librt.so -> tls/librt.so.1 +- Backout last glob changes +- Disable nptl as default for linking + +------------------------------------------------------------------- +Tue Oct 12 21:12:15 CEST 2004 - kukuk@suse.de + +- Install kernel-headers after merging linuxthreads/NPTL headers + +------------------------------------------------------------------- +Tue Oct 12 09:36:48 CEST 2004 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Oct 11 15:11:03 CEST 2004 - kukuk@suse.de + +- Make NPTL default for linking + +------------------------------------------------------------------- +Fri Oct 1 13:34:49 CEST 2004 - kukuk@suse.de + +- Update to current CVS snapshot +- Add workaround for linuxthreads/without-__threads bug +- Remove KDE/ldconfig workaround +- Set SuSE ABI note to 9.3 + +------------------------------------------------------------------- +Sun Sep 26 16:56:19 CEST 2004 - kukuk@suse.de + +- Add lib/nptl/librt.so symlink to tls/librt.so.1 +- Update to current CVS + +------------------------------------------------------------------- +Sat Sep 25 13:43:09 CEST 2004 - kukuk@suse.de + +- Implement mq support for rtkaio and enable it again + +------------------------------------------------------------------- +Fri Sep 24 15:37:08 CEST 2004 - kukuk@suse.de + +- Add zh_SG.UTF-8 [Bug #46024] + +------------------------------------------------------------------- +Thu Sep 23 16:22:33 CEST 2004 - kukuk@suse.de + +- Sync sys/mount.h and linux/fs.h + +------------------------------------------------------------------- +Wed Sep 22 15:33:10 CEST 2004 - kukuk@suse.de + +- Make mdns support configurable in /etc/host.conf + +------------------------------------------------------------------- +Mon Sep 20 17:58:13 CEST 2004 - kukuk@suse.de + +- Fix invalidating of nscd caches and getaddrinfo() + +------------------------------------------------------------------- +Fri Sep 17 07:13:01 CEST 2004 - kukuk@suse.de + +- Update to current CVS (nscd and glob.h fixes) + +------------------------------------------------------------------- +Thu Sep 16 16:37:45 CEST 2004 - kukuk@suse.de + +- Fix getaddrinfo/nscd support + +------------------------------------------------------------------- +Wed Sep 15 14:11:29 CEST 2004 - kukuk@suse.de + +- Update to current CVS, remove merged patches + +------------------------------------------------------------------- +Sun Sep 12 09:06:31 CEST 2004 - kukuk@suse.de + +- Update to CVS: Fix nscd crash if one service is disabled +- glob.h: Add workaround for invalid prototypes +- nss_compat: Check that buffer is larger than 0 bytes + +------------------------------------------------------------------- +Sat Sep 11 00:50:47 CEST 2004 - kukuk@suse.de + +- Update to CVS: Fix cdefs.h for C++ usage + +------------------------------------------------------------------- +Fri Sep 10 14:31:47 CEST 2004 - kukuk@suse.de + +- Add lwres to hosts search order in nsswitch.conf +- Update to current CVS +- Use new nscd paths for socket/pid file +- Enable NPTL on i586 +- Add --print-all option to getconf + +------------------------------------------------------------------- +Thu Sep 2 11:13:48 CEST 2004 - kukuk@suse.de + +- Fix NPTL header files on x86-64 for 32bit compilation +- Apply various fixes from CVS +- Remove pre-Install for -devel package (no longer necessary) + +------------------------------------------------------------------- +Wed Aug 25 16:16:32 CEST 2004 - kukuk@suse.de + +- Don't compile in eval.c + +------------------------------------------------------------------- +Mon Aug 23 10:20:09 CEST 2004 - kukuk@suse.de + +- Update to current CVS: + - Use CVS version for last fix. + - Add malloc sanity checks for double free. + +------------------------------------------------------------------- +Sat Aug 21 00:06:58 CEST 2004 - schwab@suse.de + +- Fix cancellable syscalls in librt w/ linuxthreads. + +------------------------------------------------------------------- +Fri Aug 20 20:40:38 CEST 2004 - kukuk@suse.de + +- Update to current CVS [#43993] + +------------------------------------------------------------------- +Thu Aug 19 13:56:15 CEST 2004 - schwab@suse.de + +- Better fix for asm-ia64/gcc_intrin.h. + +------------------------------------------------------------------- +Wed Aug 18 14:53:47 CEST 2004 - kukuk@suse.de + +- Update to current CVS +- Workaround linux/ixjuser.h problem not including compiler.h +- Workaround linux/capi.h problem not including compiler.h + +------------------------------------------------------------------- +Tue Aug 17 18:32:29 CEST 2004 - schwab@suse.de + +- Fix asm-ia64/gcc_intrin.h. + +------------------------------------------------------------------- +Tue Aug 17 12:13:41 CEST 2004 - kukuk@suse.de + +- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] + +------------------------------------------------------------------- +Mon Aug 16 11:51:37 CEST 2004 - kukuk@suse.de + +- Update to current CVS version and update to + kernel-headers 2.6.8.1 to fix NPTL deadlock problems +- Disable linuxthreads/tst-clock1, does not work on i586 and lower + +------------------------------------------------------------------- +Fri Aug 13 14:45:31 CEST 2004 - kukuk@suse.de + +- Update to current CVS version +- Cleanup/adjust all patches + +------------------------------------------------------------------- +Thu Jun 17 12:12:31 CEST 2004 - kukuk@suse.de + +- Fix sched_setaffinity return/errno code in error case [#42124] + +------------------------------------------------------------------- +Wed Jun 16 07:45:07 CEST 2004 - meissner@suse.de + +- Updated altivec set/get/swapcontext patch to fix + more problems on altivec capable machines [#42039]. +- glibc is also able to build on -pmac64 kernels. + +------------------------------------------------------------------- +Mon Jun 14 20:12:00 CEST 2004 - kukuk@suse.de + +- Add fixes from CVS: + - sysconf return value fixes + - nscd host caching deadlock + - backtrace for s390/s390x/ia64 static linked binaries + +------------------------------------------------------------------- +Mon Jun 14 18:54:05 CEST 2004 - kukuk@suse.de + +- Increase listen backlog in RPC code [#41955] + +------------------------------------------------------------------- +Wed Jun 9 16:21:30 CEST 2004 - meissner@suse.de + +- Fixed typos in powerpc* *context functions to not destroy the r19 + register and save the v19 register correctly. [#41790] + +------------------------------------------------------------------- +Sat Jun 5 08:40:29 CEST 2004 - aj@suse.de + +- Fix makecontext with more than 6 arguments on x86-64 [#40546]. + +------------------------------------------------------------------- +Mon May 24 18:04:38 CEST 2004 - kukuk@suse.de + +- Update to kernel-headers 2.6.6 +- Update to current glibc CVS +- Disable rtkaio temporary + +------------------------------------------------------------------- +Sun May 23 21:44:19 CEST 2004 - kukuk@suse.de + +- Fix pthread_cond_wait on not ix86 and x86-64 architectures + +------------------------------------------------------------------- +Thu May 20 14:11:47 CEST 2004 - kukuk@suse.de + +- Add PPC64 kernel header file fixes [#40831,#40870] + +------------------------------------------------------------------- +Wed May 19 16:18:37 CEST 2004 - kukuk@suse.de + +- Add additional NPTL fixes from CVS + +------------------------------------------------------------------- +Tue May 18 10:52:27 CEST 2004 - schwab@suse.de + +- Fix mapping of DSOs with holes. + +------------------------------------------------------------------- +Fri May 14 13:50:37 CEST 2004 - schwab@suse.de + +- Fix rounding in alarm [#40552]. + +------------------------------------------------------------------- +Wed May 12 11:43:38 CEST 2004 - schwab@suse.de + +- Fix uninitialized array in regexp compiler [#40009]. + +------------------------------------------------------------------- +Tue May 11 11:45:08 CEST 2004 - kukuk@suse.de + +- Apply lot of fixes from current CVS +- Fix alignment of stack for makecontext on x86-64 [Bug #39413] +- Make XTABS identical to TABDLY on PPC + +------------------------------------------------------------------- +Wed May 5 13:50:51 CEST 2004 - kukuk@suse.de + +- Add some header fixes to match POSIX + +------------------------------------------------------------------- +Tue May 4 11:27:15 CEST 2004 - meissner@suse.de + +- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) + +------------------------------------------------------------------- +Mon May 3 13:42:12 CEST 2004 - kukuk@suse.de + +- Port --mlock option for ld.so from UL1 [Bug #39569] + +------------------------------------------------------------------- +Tue Apr 20 11:23:55 CEST 2004 - kukuk@suse.de + +- Add execstack fix for s390 + +------------------------------------------------------------------- +Mon Apr 19 13:11:27 CEST 2004 - kukuk@suse.de + +- Update to current CVS version (fix problems with new binutils + and gcc) + +------------------------------------------------------------------- +Mon Apr 19 08:29:42 CEST 2004 - kukuk@suse.de + +- Add pthread_getattr_np and syslog fixes from CVS +- Update gb18030 and big5hkscs gconv modules [Bug #39080] + +------------------------------------------------------------------- +Sat Apr 17 17:42:48 CEST 2004 - schwab@suse.de + +- Pacify autobuild. + +------------------------------------------------------------------- +Thu Apr 15 10:07:19 CEST 2004 - kukuk@suse.de + +- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf +- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] + +------------------------------------------------------------------- +Thu Apr 15 00:37:28 CEST 2004 - schwab@suse.de + +- Remove /usr/i386-linux from ld.so.conf, + +------------------------------------------------------------------- +Wed Apr 14 11:49:05 CEST 2004 - kukuk@suse.de + +- Fix linux/compiler.h for glibc inclusion +- Really fix ffsl on s390x + +------------------------------------------------------------------- +Sat Apr 10 00:42:04 CEST 2004 - schwab@suse.de + +- Fix syntax error in memcmp. + +------------------------------------------------------------------- +Fri Apr 9 16:22:31 CEST 2004 - kukuk@suse.de + +- Update from CVS: linuxthread debug fixes +- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) +- Fix ffsl weak alias on s390x +- Update to 2.6.5 kernel headers + +------------------------------------------------------------------- +Thu Apr 8 00:24:46 CEST 2004 - meissner@suse.de + +- forward umount to umount2 on ppc64 because umount syscall + does not exist + +------------------------------------------------------------------- +Mon Apr 5 14:40:18 CEST 2004 - kukuk@suse.de + +- Sync with current CVS (which is nearly identical with most of + our latest patches) + +------------------------------------------------------------------- +Fri Apr 2 14:18:11 CEST 2004 - kukuk@suse.de + +- Make fstatvfs64 working on 32bit architectures +- Add fwrite LFS fix from aj +- Add powerpc fixes from CVS +- Fix wrong errno code for shm_unlink [Bug #38013] + +------------------------------------------------------------------- +Wed Mar 31 09:31:56 CEST 2004 - kukuk@suse.de + +- Add three fixes from CVS: + - Call __nptl_deallocate_tsd for main thread, too + - setgroups: optimizations for huge number of groups + - initgroups: Limit the initial allocation to 64 entries + +------------------------------------------------------------------- +Tue Mar 30 17:36:18 CEST 2004 - kukuk@suse.de + +- Add IUTF8 to bits/termios.h [Bug #34725] +- *affinitiy.c: Prepend GLIBC_ to version names + +------------------------------------------------------------------- +Sat Mar 27 09:52:53 CET 2004 - kukuk@suse.de + +- Fix wrong return value of getXXbyYY_r in case key was not + found [Bug #37181] +- Fix typo in dl-open +- Don't set errno in NSS NIS module if group was not found + +------------------------------------------------------------------- +Fri Mar 26 12:39:27 CET 2004 - aj@suse.de + +- Add pow10/pow10f aliases for AMD64. + +------------------------------------------------------------------- +Thu Mar 25 16:42:57 CET 2004 - kukuk@suse.de + +- Update to latest CVS snapshot + +------------------------------------------------------------------- +Sat Mar 20 07:49:49 CET 2004 - aj@suse.de + +- Fix further problems with sched_[sg]etaffinity calls. + +------------------------------------------------------------------- +Fri Mar 19 19:57:35 CET 2004 - aj@suse.de + +- Fix sched_setaffinity compile problem. + +------------------------------------------------------------------- +Fri Mar 19 19:44:32 CET 2004 - kukuk@suse.de + +- Remove conflict with special aaa_base version (rpm will handle + this with file conflict) + +------------------------------------------------------------------- +Fri Mar 19 15:43:19 CET 2004 - kukuk@suse.de + +- Add SuSE abi note +- Add madvise patch +- Update to current CVS + +------------------------------------------------------------------- +Wed Mar 17 13:59:14 CET 2004 - kukuk@suse.de + +- Use official NPTL version fix +- Add LD_DEBUG=statistic for x86-64 +- Fix two JB_SIZE redefinitions on PPC +- Add two fixes for execstack + +------------------------------------------------------------------- +Mon Mar 15 08:11:33 CET 2004 - kukuk@suse.de + +- Require kernel 2.6.4 for glibc/NPTL +- Remove siginfo_t/si_band patch (needs to be fixed in kernel) +- Update linuxthreads_db and nptl_db +- Add libidn fixes from CVS + +------------------------------------------------------------------- +Sat Mar 13 19:53:58 CET 2004 - kukuk@suse.de + +- Adjust filelist (remove libcidn.a and libcidn_p.a) + +------------------------------------------------------------------- +Sat Mar 13 16:01:42 CET 2004 - kukuk@suse.de + +- Update to current CVS (merge of patches) +- Fix siginfo_t/si_band [Bug #34330] + +------------------------------------------------------------------- +Thu Mar 11 18:35:05 CET 2004 - mls@suse.de + +- Add mdns support to resolver library + +------------------------------------------------------------------- +Thu Mar 11 16:01:43 CET 2004 - kukuk@suse.de + +- Update kernel headers to 2.6.4 +- Update to current glibc CVS + +------------------------------------------------------------------- +Wed Mar 10 15:44:25 CET 2004 - bg@suse.de + +- Update hppa patches. + +------------------------------------------------------------------- +Mon Mar 8 15:19:01 CET 2004 - kukuk@suse.de + +- Fix vDSO on IA64 + +------------------------------------------------------------------- +Mon Mar 8 13:25:48 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Add libidn + - Lot of dynamic loader changes + +------------------------------------------------------------------- +Thu Mar 4 10:50:09 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Fix posix_fadvise vs. posix_fadvise64 + +------------------------------------------------------------------- +Tue Mar 2 16:51:44 CET 2004 - kukuk@suse.de + +- Fix PPC kernel header files +- Update from glibc CVS + - NPTL fixes + - nscd fixes + +------------------------------------------------------------------- +Tue Mar 2 12:11:38 CET 2004 - schwab@suse.de + +- Fix ppc32 to always use stat64 syscall. + +------------------------------------------------------------------- +Sat Feb 28 17:30:17 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Fix compiler warnings + - NPTL: Don't use CLONE_STOPPED + - Revert vDSO changes + +------------------------------------------------------------------- +Fri Feb 27 10:05:48 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Real NGROUP_MAX fix + - Lot of NPTL fixes + - clock_settime fix +- Add no_NO back (required by OpenI18N spec and [Bug #34745]) + +------------------------------------------------------------------- +Thu Feb 26 14:52:07 CET 2004 - kukuk@suse.de + +- Workaround broken NGROUP_MAX function + +------------------------------------------------------------------- +Thu Feb 26 12:10:37 CET 2004 - kukuk@suse.de + +- Add insserv PreRequires for nscd +- Update from CVS: NPTL and getaddrinfo memory leak fixes, + Get NGROUP_MAX from /proc filesystem + +------------------------------------------------------------------- +Sat Feb 21 06:22:23 CET 2004 - kukuk@suse.de + +- Update from CVS: IA64 relo fix, lot of PPC fixes +- Fix linux/mod_devicetable.h for userland inclusion +- Enable NPTL on Alpha + +------------------------------------------------------------------- +Fri Feb 20 01:08:26 CET 2004 - schwab@suse.de + +- Fix pthread_barrier_wait. + +------------------------------------------------------------------- +Thu Feb 19 09:46:46 CET 2004 - kukuk@suse.de + +- Update from CVS: More NPTL fixes +- nscd.init: Cleanups + +------------------------------------------------------------------- +Wed Feb 18 15:49:09 CET 2004 - kukuk@suse.de + +- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and + asm-ppc/bitops.h for userland inclusion. + +------------------------------------------------------------------- +Wed Feb 18 11:24:35 CET 2004 - bg@suse.de + +- Update hppa patches for current glibc +- Add workaround for ICE in hppa + +------------------------------------------------------------------- +Tue Feb 17 13:54:28 CET 2004 - kukuk@suse.de + +- Update from CVS: + - PPC nptl compatiblity fix + - NSCD patches merged + - ld.so.preload: Igreno missing files + - getaddrinfo: Fix problem with IPv6 addresses + +------------------------------------------------------------------- +Tue Feb 17 11:42:59 CET 2004 - aj@suse.de + +- Fix string optimizations init code on AMD64. + +------------------------------------------------------------------- +Sat Feb 14 07:10:42 CET 2004 - kukuk@suse.de + +- Update from CVS (for NPTL fixes and new PPC longjmp) +- Fix nscd deadlock with kernel 2.6 [Bug #34507] + +------------------------------------------------------------------- +Fri Feb 13 14:19:25 CET 2004 - aj@suse.de + +- Add more string/memory optimizations for AMD64. + +------------------------------------------------------------------- +Thu Feb 12 17:07:08 CET 2004 - kukuk@suse.de + +- Fix regex bug with invalid UTF-8 strings + +------------------------------------------------------------------- +Thu Feb 12 16:31:51 CET 2004 - aj@suse.de + +- Add more string optimizations for AMD64. + +------------------------------------------------------------------- +Wed Feb 11 16:14:53 CET 2004 - kukuk@suse.de + +- Update to current CVS snapshot +- Fix _IOC_TYPECHECK on s390/s390x/parisc +- Compile rtkaio only with NPTL +- Remove glibcbug (was dropped since glibc uses bugzilla now) +- Disable parallel build on s390x + +------------------------------------------------------------------- +Tue Feb 10 15:38:37 CET 2004 - schwab@suse.de + +- Work around invalid use of kernel headers in some packages. + +------------------------------------------------------------------- +Fri Feb 6 19:57:04 CET 2004 - kukuk@suse.de + +- Add kernel stat fix for PPC +- Add fix for off-by-one error in regex code + +------------------------------------------------------------------- +Thu Feb 5 18:04:45 CET 2004 - kukuk@suse.de + +- Update kernel header files to 2.6.2 + +------------------------------------------------------------------- +Tue Feb 3 17:14:38 CET 2004 - bg@suse.de + +- Update hppa patch + +------------------------------------------------------------------- +Tue Feb 3 16:24:47 CET 2004 - kukuk@suse.de + +- Fix ypclnt speedup patch +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Jan 26 13:44:39 CET 2004 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Wed Jan 21 10:23:42 CET 2004 - aj@suse.de + +- Do not run in parallel on s390. + +------------------------------------------------------------------- +Mon Jan 19 15:49:51 CET 2004 - ro@suse.de + +- really fix linux/percpu.h to compile in userland + +------------------------------------------------------------------- +Fri Jan 16 11:14:49 CET 2004 - kukuk@suse.de + +- Update version.h to 2.6.1 +- Fix linux/percpu.h to compile in userland +- Update to current CVS snapshot +- Revert nscd path changes + +------------------------------------------------------------------- +Wed Jan 14 12:06:13 CET 2004 - kukuk@suse.de + +- Update to Kernel Headers 2.6.1 +- Update to current CVS snapshot +- Don't ignore make check on IA64 any longer + +------------------------------------------------------------------- +Sat Jan 10 01:56:48 CET 2004 - schwab@suse.de + +- Locale no_NO has been renamed to nb_NO. + +------------------------------------------------------------------- +Fri Jan 9 14:09:01 CET 2004 - kukuk@suse.de + +- Temporary ignore make check on IA64 and PPC + (known kernel/compiler bugs) + +------------------------------------------------------------------- +Fri Jan 9 00:36:51 CET 2004 - stepan@suse.de + +- fix v4l2 headers + +------------------------------------------------------------------- +Wed Jan 7 13:09:26 CET 2004 - kukuk@suse.de + +- Update to glibc CVS from 20040107 +- Remove manual pages which are now part of man-pages + +------------------------------------------------------------------- +Thu Dec 18 13:41:37 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031218 +- Update ot final 2.6.0 kernel headers +- Fix syntax error in spec file +- Update HPPA patch + +------------------------------------------------------------------- +Mon Dec 15 19:19:08 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031215 + +------------------------------------------------------------------- +Fri Dec 12 10:19:52 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031212 +- disable rtkaio (does not work with kernel 2.6 yet) + +------------------------------------------------------------------- +Fri Dec 5 10:00:28 CET 2003 - kukuk@suse.de + +- Update to glibc 2.3.3 CVS +- Make an extra sub package for nscd + +------------------------------------------------------------------- +Thu Nov 27 13:08:32 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031127 +- Add nsswitch.conf (moved from aaa_base) +- Add ld.so.conf (moved from aaa_base) [Bug #33277] +- Fix ceil on AMD64 + +------------------------------------------------------------------- +Fri Nov 21 14:40:29 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031121 +- Obsolete epoll (glibc-devel contains now this header files) + +------------------------------------------------------------------- +Wed Nov 19 15:54:58 CET 2003 - kukuk@suse.de + +- Add patch so that ld.so supports linuxthreads and nptl +- PPC64 requires kernel 2.4.21 +- Update to glibc CVS from 20031119 + +------------------------------------------------------------------- +Fri Nov 14 14:05:38 CET 2003 - bg@suse.de + +- Add hppa patches for current glibc. + +------------------------------------------------------------------- +Fri Nov 14 13:32:06 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031114 +- Remove PPC64 symbol version patch + +------------------------------------------------------------------- +Thu Nov 13 12:10:15 CET 2003 - schwab@suse.de + +- Fix last change covering libNoVersion. + +------------------------------------------------------------------- +Mon Nov 10 16:52:09 CET 2003 - schwab@suse.de + +- Specfile cleanup. + +------------------------------------------------------------------- +Thu Nov 6 14:10:17 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031106 + +------------------------------------------------------------------- +Wed Nov 5 15:26:06 CET 2003 - uli@suse.de + +- added a number of ARM fixes (glibc-2.3.2-armformat.patch, + glibc-armisa.patch, glibc-sjlj.patch) + +------------------------------------------------------------------- +Mon Oct 27 21:13:09 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031027 +- kernel headers: update to 2.6.0-test9 +- nptl: Use -fno-unit-at-a-time on AMD64, too + +------------------------------------------------------------------- +Thu Oct 23 13:34:25 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Wed Oct 22 19:01:37 CEST 2003 - kukuk@suse.de + +- nptl: Fix prototype in configure script +- nptl: Use -fno-unit-at-a-time +- locale: Add nb_NO + +------------------------------------------------------------------- +Fri Oct 17 16:56:58 CEST 2003 - kukuk@suse.de + +- Increase timeout for make check on overloaded architectures + +------------------------------------------------------------------- +Thu Oct 16 18:19:13 CEST 2003 - kukuk@suse.de + +- Fix building as normal user + +------------------------------------------------------------------- +Wed Oct 15 16:31:32 CEST 2003 - kukuk@suse.de + +- Fix putpwent/putgrent +- Make build as normal user + +------------------------------------------------------------------- +Tue Oct 14 21:13:25 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031014 + +------------------------------------------------------------------- +Tue Oct 14 13:26:06 CEST 2003 - aj@suse.de + +- Fix w_acosf for AMD64. + +------------------------------------------------------------------- +Tue Oct 14 10:49:36 CEST 2003 - kukuk@suse.de + +- Fix asm-sparc/kbio.h to compile kbdrate/X11 + +------------------------------------------------------------------- +Mon Oct 13 12:11:53 CEST 2003 - kukuk@suse.de + +- Update to kernel header files from 2.6.0-test7 + +------------------------------------------------------------------- +Fri Oct 10 17:11:01 CEST 2003 - schwab@suse.de + +- Fix misnamed syscalls. + +------------------------------------------------------------------- +Tue Oct 7 21:13:09 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031007 + +------------------------------------------------------------------- +Fri Oct 3 09:12:38 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031003 +- Fix kernel ioctl header files for PPC/PPC64 +- Removed dl-reloc.c fix, merged upstream + +------------------------------------------------------------------- +Wed Oct 1 16:49:19 CEST 2003 - kukuk@suse.de + +- Update to glibc cvs from 20031001 +- Remove sysmacros.h fix, merged upstream +- Add dl-reloc.c fix for compiler warnings + +------------------------------------------------------------------- +Mon Sep 29 11:49:19 CEST 2003 - kukuk@suse.de + +- Update kernel-headers to 2.6.0-test6 +- Fix sysmacros.h to compile with -ansi + +------------------------------------------------------------------- +Sat Sep 27 20:58:07 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030927 +- Remove SO_BSDCOMPAT (obsoleted by kernel) +- Make _IOC_TYPECHECK useable for userland programs + +------------------------------------------------------------------- +Fri Sep 26 10:01:15 CEST 2003 - kukuk@suse.de + +- Remove obsolete patches +- Update to crypt_blowfish 0.4.5 + +------------------------------------------------------------------- +Fri Sep 26 08:51:10 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030926 +- Update to nptl 0.60 + +------------------------------------------------------------------- +Sat Sep 20 21:13:04 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030920 +- Update to nptl 0.59 + +------------------------------------------------------------------- +Wed Sep 17 12:13:35 CEST 2003 - kukuk@suse.de + +- Disable TLS for i586 glibc [Bug #31034] + +------------------------------------------------------------------- +Tue Sep 16 15:38:19 CEST 2003 - kukuk@suse.de + +- Remove db1.85 + +------------------------------------------------------------------- +Mon Sep 15 21:30:51 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030915 + +------------------------------------------------------------------- +Mon Sep 15 18:43:19 CEST 2003 - kukuk@suse.de + +- Update to kernel 2.6.0-test5 header files + +------------------------------------------------------------------- +Sat Sep 13 07:01:40 CEST 2003 - kukuk@suse.de + +- Add librtkaio, a librt using kernel aio + +------------------------------------------------------------------- +Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de + +- Update to current CVS +- Remove patches which are merged in CVS +- Update to nptl-0.58 +- Remove _POSIX_VERSION hack + +------------------------------------------------------------------- +Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de + +- version.h: Fix comment how to compile kernel modules + +------------------------------------------------------------------- +Wed Sep 10 19:27:05 CEST 2003 - aj@suse.de + +- Install en_US.ISO-8859-15 under this name [#30373]. + +------------------------------------------------------------------- +Tue Sep 9 14:22:02 CEST 2003 - aj@suse.de + +- Fix last patch. + +------------------------------------------------------------------- +Mon Sep 8 18:20:56 CEST 2003 - aj@suse.de + +- Fix setting up of user signal handler in linuxthreads on x86_64. + +------------------------------------------------------------------- +Fri Sep 5 13:44:13 CEST 2003 - kukuk@suse.de + +- Add dl-tls.c to fix out of memory with static TLS errors + +------------------------------------------------------------------- +Wed Sep 3 21:03:13 CEST 2003 - kukuk@suse.de + +- Update glibc-linuxthreads +- Set _POSIX_VERSION back to 199209 + +------------------------------------------------------------------- +Mon Sep 1 18:23:49 CEST 2003 - kukuk@suse.de + +- Fix typo in nss_compat patch + +------------------------------------------------------------------- +Mon Sep 1 09:13:14 CEST 2003 - kukuk@suse.de + +- Add opendir fix for usage with NPTL +- Fix getspnam/getspent in nss_compat [Bug #29689] +- Set _POSIX2_VERSION back to 199209 + +------------------------------------------------------------------- +Wed Aug 27 15:22:40 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Mon Aug 25 09:35:41 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Mon Aug 18 21:17:25 CEST 2003 - aj@suse.de + +- increase stack size for linuxthreads/set-context. + +------------------------------------------------------------------ +Mon Aug 18 13:23:00 CEST 2003 - aj@suse.de + +- Fix mathinline.h for i386 to compile under C++ without warnings. + +------------------------------------------------------------------- +Sun Aug 17 09:59:25 CEST 2003 - ro@suse.de + +- kernel-headers.dif: don't include device.h from videodev.h + +------------------------------------------------------------------- +Fri Aug 15 10:39:49 CEST 2003 - kukuk@suse.de + +- Update to current cvs (fixes assert usage in C++ source code) + +------------------------------------------------------------------- +Thu Aug 14 10:34:27 CEST 2003 - kukuk@suse.de + +- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] +- On i686, include glibc with and without floating stack enabled +- Update to current cvs +- Update to nptl 0.56 + +------------------------------------------------------------------- +Thu Jul 31 16:57:36 CEST 2003 - kukuk@suse.de + +- Reenable new quota.h + +------------------------------------------------------------------- +Wed Jul 30 09:59:21 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Update kernel headers to 2.6.0-test2 +- Disable sys/quota.h update +- Enable TLS on AMD64 again + +------------------------------------------------------------------- +Mon Jul 28 17:18:33 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Disable TLS on AMD64 temporary +- Update sys/quota.h to match new kernel implementation + +------------------------------------------------------------------- +Fri Jul 25 10:14:44 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Update kernel headers to 2.6.0-test1 +- Update to nptl 0.55 +- Change minimal symbol version on PPC64 back to 2.2.5 + +------------------------------------------------------------------- +Wed Jul 23 18:13:40 CEST 2003 - meissner@suse.de + +- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just + merging over the asm-ppc64 things). + +------------------------------------------------------------------- +Wed Jul 23 12:59:04 CEST 2003 - aj@suse.de + +- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without + rpath. +- Fix bugs exposed by unit-at-a-time option. + +------------------------------------------------------------------- +Fri Jul 18 07:27:47 CEST 2003 - aj@suse.de + +- Fix compilation with unit-at-a-time enabled compiler. +- Enlarge stack for tst-setcontext test. + +------------------------------------------------------------------- +Mon Jun 30 13:09:25 CEST 2003 - kukuk@suse.de + +- Update to current CVS (includes if_arp.h and nss_compat changes) +- Update to nptl 0.50 +- Kernel header fixes for userland inclusion + +------------------------------------------------------------------- +Wed Jun 25 09:34:17 CEST 2003 - kukuk@suse.de + +- Update to current CVS +- Add target host and CVS checkout to glibc version printout +- Adjust fnmatch fix +- Update kernel headers to 2.5.73 + +------------------------------------------------------------------- +Tue Jun 24 23:09:11 CEST 2003 - kukuk@suse.de + +- Fix typos in syscalls.list on Alpha + +------------------------------------------------------------------- +Mon Jun 23 10:53:41 CEST 2003 - kukuk@suse.de + +- fix typo in linuxthreads on SPARC +- Update to current CVS +- Update to nptl 0.48 + +------------------------------------------------------------------- +Thu Jun 19 11:10:55 CEST 2003 - kukuk@suse.de + +- Disable nss_compat patch again + +------------------------------------------------------------------- +Wed Jun 18 10:51:07 CEST 2003 - kukuk@suse.de + +- Fix reading of locale.alias file +- Update to current CVS snapshot +- Update to nptl 0.47 +- Some kernel header file fixes for PPC64/IA64 +- Update nss_compat patch + +------------------------------------------------------------------- +Thu Jun 12 23:42:09 CEST 2003 - kukuk@suse.de + +- Update to current CVS snapshot +- Finish patch for printing linker warning + +------------------------------------------------------------------- +Wed Jun 11 11:45:42 CEST 2003 - kukuk@suse.de + +- Update to nptl 0.45 +- Update to current CVS snapshot +- Add patch to print linker warning, if a static binary calls + functions using NSS + +------------------------------------------------------------------- +Tue Jun 10 16:46:47 CEST 2003 - kukuk@suse.de + +- Use %find_lang macro and cleanup glibc-locale filelist + +------------------------------------------------------------------- +Thu Jun 5 17:28:36 CEST 2003 - kukuk@suse.de + +- Complete mathinline.h fixes + +------------------------------------------------------------------- +Thu Jun 5 10:10:02 CEST 2003 - kukuk@suse.de + +- linux/compiler.h: Define all inline variants to __inline__ + +------------------------------------------------------------------- +Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.43 +- More kernel header fixes +- Make --no-archive default for localedef + +------------------------------------------------------------------- +Tue May 27 14:09:31 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.40 +- Disable nss_compat patch +- Update to kernel headers from 2.5.70 + +------------------------------------------------------------------- +Fri May 23 10:50:37 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Add patches to make nss_compat work with every service + +------------------------------------------------------------------- +Mon May 19 10:57:13 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Add patch for better binary compatibility (errno, h_errno) + +------------------------------------------------------------------- +Fri May 16 09:32:39 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.39 +- Add URL tag +- asm-i386/byteorder.h: fix asm vs. __asm__ + +------------------------------------------------------------------- +Wed May 14 22:31:52 CEST 2003 - schwab@suse.de + +- Fix missing syscall numbers on ia64. + +------------------------------------------------------------------- +Wed May 14 08:59:09 CEST 2003 - kukuk@suse.de + +- More kernel headers fixes for i386, ia64, ppc and s390 + +------------------------------------------------------------------- +Mon May 12 16:49:51 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Fix lot of more kernel headers +- Adjust netinet/igmp.h patch +- Copy linux/version.h in place before compiling glibc + +------------------------------------------------------------------- +Fri May 9 13:25:08 CEST 2003 - kukuk@suse.de + +- Fix bits/stdio.h +- Fix lot of kernel headers to work in userspace +- Fix netinet/igmp.h +- Enable TLS on PPC + +------------------------------------------------------------------- +Wed May 7 10:58:25 CEST 2003 - kukuk@suse.de + +- Update CVS snapshot +- Enable TLS on IA64 +- Update to nptl 0.37 +- Update kernel-headers to 2.5.69 + +------------------------------------------------------------------- +Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de + +- fix install_info --delete call and move from preun to postun + +------------------------------------------------------------------- +Fri Apr 11 06:32:25 CEST 2003 - aj@suse.de + +- Do not build locales in parallel. + +------------------------------------------------------------------- +Tue Apr 8 16:12:36 CEST 2003 - kukuk@suse.de + +- Disable TLS for PPC + +------------------------------------------------------------------- +Mon Apr 7 14:16:03 CEST 2003 - kukuk@suse.de + +- Update CVS snapshot + +------------------------------------------------------------------- +Sat Apr 5 09:55:15 CEST 2003 - kukuk@suse.de + +- Disable TLS for ia64 +- Update to nptl 0.34 +- Update to CVS snapshot + +------------------------------------------------------------------- +Fri Apr 4 16:23:39 CEST 2003 - kukuk@suse.de + +- Remove libNoVersion from filelist on alpha +- Add nptl docu + +------------------------------------------------------------------- +Fri Apr 4 10:23:35 CEST 2003 - kukuk@suse.de + +- Update to nptl 0.33 +- Run ldconfig after installation +- Update to CVS snapshot + +------------------------------------------------------------------- +Sat Mar 29 17:47:56 CET 2003 - kukuk@suse.de + +- Update to CVS snapshot +- Add USAGI patches for kernel-headers +- Add nptl on i686 +- Enable --with-tls +- Implement NI_NUMSERICSCOPE for getnameinfo +- Implement AI_V4MAPPED/AI_ALL for getaddrinfo +- Implement AI_ADDRCONFIG for getaddrinfo +- Add USAGI patch for kernel headers + +------------------------------------------------------------------- +Mon Mar 24 21:46:45 CET 2003 - schwab@suse.de + +- Sanitize . + +------------------------------------------------------------------- +Mon Mar 17 08:45:27 CET 2003 - aj@suse.de + +- Fix tst-aio7 testcase and enable it again. +- Enable %fs for x86-64. +- Install en_US.ISO-8859-15 for libstdc++. +- Fix bits/syscalls.h for x86-64. + +------------------------------------------------------------------- +Thu Mar 13 10:36:24 CET 2003 - kukuk@suse.de + +- Revert tcgetattr change [Bug #25173/#25174] + +------------------------------------------------------------------- +Tue Mar 4 15:15:33 CET 2003 - aj@suse.de + +- Fix lround/lrint functions. + +------------------------------------------------------------------- +Sat Mar 1 07:24:22 CET 2003 - aj@suse.de + +- Update to 2.3.2 release. + +------------------------------------------------------------------- +Wed Feb 26 21:45:36 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot (fixes OOo and mysql problems) + +------------------------------------------------------------------- +Mon Feb 24 17:52:02 CET 2003 - kukuk@suse.de + +- Disable aio7 test on s390(x), too. + +------------------------------------------------------------------- +Mon Feb 24 14:19:20 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot (post 2.3.2-pre1) +- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS +- Remove libc23-ppc64-cvshead20021210.patch + +------------------------------------------------------------------- +Thu Feb 20 16:19:21 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot +- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be + included already. + +------------------------------------------------------------------- +Wed Feb 19 11:45:35 CET 2003 - olh@suse.de + +- add glibc-2.3-ppc32-textrel.patch + glibc-2.3-ppc64-vfork-20030214.patch + +------------------------------------------------------------------- +Fri Feb 14 14:51:11 CET 2003 - kukuk@suse.de + +- Extend getent to print all IP addresses of one host + +------------------------------------------------------------------- +Thu Feb 13 18:34:50 CET 2003 - kukuk@suse.de + +- Update to current snapshot + +------------------------------------------------------------------- +Wed Feb 12 11:50:54 CET 2003 - kukuk@suse.de + +- Update to current snapshot (contains official fix for #23513) + +------------------------------------------------------------------- +Tue Feb 11 15:28:16 CET 2003 - kukuk@suse.de + +- Update to current snapshot +- Fix corruption of internal data in gethostbyname2 [Bug #23513] + +------------------------------------------------------------------- +Sun Feb 9 12:20:55 CET 2003 - aj@suse.de + +- Fix cancellation of system calls on x86-64. + +------------------------------------------------------------------- +Sat Feb 8 10:43:02 CET 2003 - kukuk@suse.de + +- Fix wrong logic in dynamic resolv.conf patch + +------------------------------------------------------------------- +Fri Feb 7 17:35:12 CET 2003 - kukuk@suse.de + +- Fix access of _res symbol in multithreaded programs +- Add "dynamic resolv.conf" patch to libnss_dns, too. +- Remove obsolete db2 manual pages +- Update to current snapshot (fixes [Bug #23363]) + +------------------------------------------------------------------- +Thu Feb 6 18:06:36 CET 2003 - kukuk@suse.de + +- Update to current snapshot +- Use install-info for info pages + +------------------------------------------------------------------- +Tue Feb 4 20:12:51 CET 2003 - schwab@suse.de + +- Fix regexp parsing. + +------------------------------------------------------------------- +Mon Feb 3 14:44:21 CET 2003 - meissner@suse.de + +- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for + ppc and ppc64 kernel headers. + +------------------------------------------------------------------- +Fri Jan 31 22:12:03 CET 2003 - schwab@suse.de + +- Fix building on s390[x]. + +------------------------------------------------------------------- +Fri Jan 31 15:20:00 CET 2003 - kukuk@suse.de + +- Update to current glibc cvs + +------------------------------------------------------------------- +Thu Jan 30 16:05:32 CET 2003 - aj@suse.de + +- Fix one build problem on sparc. +- Fix asm-x86_64/mtrr.h. + +------------------------------------------------------------------- +Wed Jan 29 12:57:23 CET 2003 - kukuk@suse.de + +- Update to current glibc cvs +- Fix libm-ulps for x86-64 and ia64 + +------------------------------------------------------------------- +Thu Jan 23 16:47:33 CET 2003 - schwab@suse.de + +- Fix use of DT_FINI_ARRAY. +- Temporarily disable tst-aio7 test on ia64. + +------------------------------------------------------------------- +Tue Jan 14 22:41:33 CET 2003 - schwab@suse.de + +- Fix ia64 for non-tls build. + +------------------------------------------------------------------- +Tue Jan 14 21:51:24 CET 2003 - aj@suse.de + +- Package libpthread_nonshared.a. + +------------------------------------------------------------------- +Mon Jan 13 10:29:36 CET 2003 - kukuk@suse.de + +- Add fixed version of x86-64-linuxthreads-disable-fs.diff +- Readd parts of libm-x86-64.diff +- Update to current cvs snapshot +- Add fix for errno compatibility +- Add s390(x) vfork fixes + +------------------------------------------------------------------- +Sun Jan 12 19:16:13 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot + +------------------------------------------------------------------- +Fri Jan 3 19:09:36 CET 2003 - bg@suse.de + +- removed obsolete patch for hppa + +------------------------------------------------------------------- +Fri Dec 20 23:15:48 CET 2002 - kukuk@suse.de + +- Update to current cvs snapshot +- Obsoletes glibc-2.3-setjmp-ppc64.diff +- Obsoletes build-alpha.diff +- Obsoletes libm-x86-64.diff +- Disable activate-spinlocks.diff temporary +- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) + +------------------------------------------------------------------- +Tue Dec 17 16:01:13 CET 2002 - olh@suse.de + +- remove glibc-2.2.5-ppc64-bits-socket_h.diff + add glibc-2.3-setjmp-ppc64.diff + add libc23-ppc64-cvshead20021210.patch + dont run configure in subshell, it can fail and rpm cant catch it + +------------------------------------------------------------------- +Fri Dec 13 20:01:30 CET 2002 - schwab@suse.de + +- Add more ia64 syscalls. + +------------------------------------------------------------------- +Fri Dec 6 22:06:41 CET 2002 - olh@suse.de + +- build also the locals parallel + do not fail with parallel calculation on lowmem systems + +------------------------------------------------------------------- +Tue Dec 3 11:16:30 CET 2002 - aj@suse.de + +- Build parallel on x86-64. +- Activate fast spinlocks in malloc for x86 and x86-64. +- Integrate new math library from AMD for x86-64. + +------------------------------------------------------------------- +Fri Nov 29 11:08:03 CET 2002 - bg@suse.de + +- Fix build on hppa. + +------------------------------------------------------------------- +Thu Nov 28 21:31:09 CET 2002 - aj@suse.de + +- Fix build on alpha. + +------------------------------------------------------------------- +Thu Nov 28 15:45:09 CET 2002 - aj@suse.de + +- Update to CVS version from 2002-11-28. +- Do not use %fs for threads for now on x86-64. +- Fix fnmatch bug with multibyte strings. + +------------------------------------------------------------------- +Tue Nov 12 12:41:17 CET 2002 - bg@suse.de + +- Updated hppa patches + +------------------------------------------------------------------- +Thu Nov 7 14:00:04 CET 2002 - kukuk@suse.de + +- getaddrinfo(): get host information for AF_INET and AF_INET6 only + from the same service [Bug #21237] + +------------------------------------------------------------------- +Thu Nov 7 12:11:29 CET 2002 - bg@suse.de + +- Fix build of linuxthreads for hppa + +------------------------------------------------------------------- +Tue Nov 5 16:31:11 CET 2002 - bg@suse.de + +- Use current kernel-headers for parisc +- Add support for hppa + +------------------------------------------------------------------- +Tue Nov 5 15:29:32 CET 2002 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue Oct 22 16:21:34 CEST 2002 - schwab@suse.de + +- Fix ia64 syscall numbers. + +------------------------------------------------------------------- +Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de + +- Fix alignment in locale-archive. + +------------------------------------------------------------------- +Mon Oct 21 17:16:51 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3.1 cvs 20021021 +- Remove nss_dns6 patch + +------------------------------------------------------------------- +Tue Oct 15 14:58:34 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3.1 cvs 20021015 + +------------------------------------------------------------------- +Wed Oct 2 14:06:31 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3 cvs 20021002 +- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) + +------------------------------------------------------------------- +Wed Sep 25 11:43:08 CEST 2002 - mls@suse.de + +- build with -finline-limit=2000 on mips/armv4l + +------------------------------------------------------------------- +Tue Sep 17 14:54:26 CEST 2002 - schwab@suse.de + +- Add new ia64 syscall numbers. + +------------------------------------------------------------------- +Mon Sep 16 17:24:01 CEST 2002 - meissner@suse.de + +- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. +- Aligned powerpc bits/sem.h to be the same as the other 64bit + archs, keeping the 32bit layout. +- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. + +------------------------------------------------------------------- +Thu Sep 12 15:56:07 CEST 2002 - meissner@suse.de + +- ppc/ppc64: added more biarch things to the SystemV IPC headers + which are needed to get 64bit ipc / IPC_STAT to work. + +------------------------------------------------------------------- +Mon Sep 9 18:52:53 CEST 2002 - bk@suse.de + +- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) +- s390x: requires 64-bit kernel + +------------------------------------------------------------------- +Mon Sep 9 15:40:23 CEST 2002 - kukuk@suse.de + +- Increase minimum value of MAXPACKET in libnss_dns, too + +------------------------------------------------------------------- +Mon Sep 9 14:31:04 CEST 2002 - uli@suse.de + +- all architectures are created equal, but some are more equal + than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, + ia64, s390x and ppc64 to fit 64 bit __ino_t type + +------------------------------------------------------------------- +Fri Sep 6 17:26:53 MEST 2002 - mls@suse.de + +- fix squeeze bug in db-1.85: set dirty flag after page modification + +------------------------------------------------------------------- +Fri Sep 6 15:44:17 CEST 2002 - kukuk@suse.de + +- Increase minimum value of MAXPACKET + +------------------------------------------------------------------- +Mon Sep 2 10:38:40 CEST 2002 - kukuk@suse.de + +- Fix asm header files for sparc/sparc64 + +------------------------------------------------------------------- +Fri Aug 30 13:18:51 CEST 2002 - aj@suse.de + +- Revert linuxthreads for x86-64 for now. + +------------------------------------------------------------------- +Wed Aug 28 16:15:18 CEST 2002 - aj@suse.de + +- Add optimized math routines for x86-64. + +------------------------------------------------------------------- +Tue Aug 27 15:52:49 CEST 2002 - olh@suse.de + +- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" + +------------------------------------------------------------------- +Mon Aug 26 21:56:22 CEST 2002 - olh@suse.de + +- add ppc64_glibc_2.2.5_sunrpc-fix.patch + * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds + __powerpc64__ specific fields and adjust size/alignment for 64-bit. + +------------------------------------------------------------------- +Fri Aug 23 17:04:38 CEST 2002 - aj@suse.de + +- Use floating stacks for x86-64. +- Add LICENSE file. +- Fix profiling code on x86-64. +- Add strcspn, strpbrk and strspn optimizations for x86-64. +- Fix makecontext for x86-64. + +------------------------------------------------------------------- +Thu Aug 15 08:59:16 CEST 2002 - aj@suse.de + +- Use biarch headers already for building so that bits/syscalls.h is + build correctly. +- Fix bits/syscalls.h for x86-64. +- Remove *xattr patches. + +------------------------------------------------------------------- +Thu Aug 8 16:59:27 CEST 2002 - kukuk@suse.de + +- Update to current cvs (calloc variable overflow fixed) +- Apply fix for calloc fix +- Add *xattr system calls and error number + +------------------------------------------------------------------- +Tue Aug 6 12:45:06 CEST 2002 - kukuk@suse.de + +- Update to current cvs (IPv6 fixes) + +------------------------------------------------------------------- +Mon Aug 5 12:29:59 CEST 2002 - aj@suse.de + +- Implement *context functions for x86-64. + +------------------------------------------------------------------- +Sat Aug 3 16:01:07 CEST 2002 - kukuk@suse.de + +- Update kernel-headers to version 2.4.19 +- Add PreRequires "filesystem". + +------------------------------------------------------------------- +Thu Aug 1 18:23:37 CEST 2002 - bk@suse.de + +- added s390-may2002.diff with some chunks from may2002 drop +- give make check a second chance on s390(x), but fail if not(race) + +------------------------------------------------------------------- +Tue Jul 30 11:40:41 CEST 2002 - kukuk@suse.de + +- sunrpc/xdr_array.c: Check for variable overflow +- Ignore failed make check on s390(x) + +------------------------------------------------------------------- +Tue Jul 30 08:31:24 CEST 2002 - aj@suse.de + +- Add optimisations for x86-64. + +------------------------------------------------------------------- +Mon Jul 29 09:38:04 CEST 2002 - kukuk@suse.de + +- Don't allocate/free category name in setlocale() unnecessarily + (for IBM Java [Bug #17065]). + +------------------------------------------------------------------- +Tue Jul 23 13:36:31 CEST 2002 - kukuk@suse.de + +- Update to current glibc cvs (pread/pwrite fixes) +- Remove extra de.po, is in official tarball now. + +------------------------------------------------------------------- +Sat Jul 20 07:14:26 CEST 2002 - aj@suse.de + +- Fix profiling for x86-64. + +------------------------------------------------------------------- +Fri Jul 19 16:26:26 CEST 2002 - meissner@suse.de + +- Fixed the PPC64 patch, several superflous files removed. +- Reenabled make check for ppc64. + +------------------------------------------------------------------- +Wed Jul 17 14:13:58 CEST 2002 - kukuk@suse.de + +- Update to current glibc cvs +- Fix kernel headers for s390/s390x +- Move some binaries/shell scripts and manual pages to the + correct subpackage + +------------------------------------------------------------------- +Tue Jul 16 14:51:48 CEST 2002 - meissner@suse.de + +- Merged latest PowerPC patch from IBM. + * Lots of ppc64 related fixes. + * Start of biarch support. + * Changed struct stat in 64bit ABI. + +------------------------------------------------------------------- +Fri Jul 12 18:29:17 CEST 2002 - aj@suse.de + +- Add biarch patch for s390 and s390x. + +------------------------------------------------------------------- +Mon Jul 8 10:45:49 CEST 2002 - aj@suse.de + +- Add some optimized x86-64 math routines and a fixed lgammal + implementation. +- Testsuite on x86-64 should pass now. +- Run ldconfig in postinstall. +- Fix memleak in catgets. + +------------------------------------------------------------------- +Sat Jul 6 13:38:48 CEST 2002 - kukuk@suse.de + +- Fix typo in create_biarch_asm.sh (asm-sparc path) + +------------------------------------------------------------------- +Thu Jul 4 21:59:43 CEST 2002 - kukuk@suse.de + +- Fix typo in manpages/Makefile +- Fix filelist (on some archs ld-linux.so.2 was missing) + +------------------------------------------------------------------- +Thu Jul 4 10:02:46 CEST 2002 - kukuk@suse.de + +- Revert mktime patch (check for year < 70) +- Replace ifarch i386 with ix86 +- Add patch for arm +- Include pt_chown again + +------------------------------------------------------------------- +Wed Jul 3 16:05:05 CEST 2002 - kukuk@suse.de + +- Add more new manual pages +- Fix spec file (renaming of ld-*, creating of include/asm header + files) +- Update to current CVS version +- Fix kernel-headers for x86-64 (don't overwrite patched version) +- Rename Equador -> Ecuador [Bug #16648] +- Add hint about security problem of host caching with nscd to + config file. + +------------------------------------------------------------------- +Tue Jun 25 14:29:14 CEST 2002 - aj@suse.de + +- Fix dl-machine.h for x86-64 to compile with new binutils. +- Fix mtrr.h header for x86-64. +- Do not package pt_chown. + +------------------------------------------------------------------- +Tue Jun 18 14:28:40 CEST 2002 - sf@suse.de + +- reverted changes from Tue Jun 11 10:04:55 CEST 2002 + (took the kernel-headers from before, readded patch9) +- add new archive with kernel-headers for x86_64 +- add autofs patch + +------------------------------------------------------------------- +Mon Jun 17 17:12:39 CEST 2002 - bk@suse.de + +- remove s390* from the list of archs that ignore check fail + +------------------------------------------------------------------- +Thu Jun 13 20:38:00 CEST 2002 - uli@suse.de + +- fixed typos in spec + +------------------------------------------------------------------- +Thu Jun 13 13:35:43 CEST 2002 - schwab@suse.de + +- Fix ssize_t and __ipc_pid_t for ppc64. + +------------------------------------------------------------------- +Wed Jun 12 09:47:12 CEST 2002 - uli@suse.de + +- fix errlist.c for ARM as well + +------------------------------------------------------------------- +Tue Jun 11 10:04:55 CEST 2002 - sf@suse.de + +- made new kernel-header archive from kernel-source +- added asm-ppc64 to kernel-headers +- removed patch9 as it is obsoleted by the new kernel-headers + +------------------------------------------------------------------- +Fri Jun 7 14:29:30 CEST 2002 - olh@suse.de + +- update asm-ppc64/ioctls.h, missing TIOCGDEV + +------------------------------------------------------------------- +Thu Jun 6 17:57:41 CEST 2002 - olh@suse.de + +- fix glibc-ppc64 patch + +------------------------------------------------------------------- +Thu Jun 6 15:09:16 CEST 2002 - olh@suse.de + +- update ppc64_glibc_ldconfig.diff + +------------------------------------------------------------------- +Thu Jun 6 10:09:24 CEST 2002 - ke@suse.de + +- Update de.po from + http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. +- Use only translated entries to make the testsuite happy; call + msgattrib on de.po and hu.po [# 16438]. + +------------------------------------------------------------------- +Mon Jun 3 09:58:54 CEST 2002 - aj@suse.de + +- Clean up generation of asm includes for bi-arch systems. +- Enable profiling for x86-64. + +------------------------------------------------------------------- +Mon Jun 3 08:52:38 CEST 2002 - kukuk@suse.de + +- Add fix for weak declaration "_old_sys_nerr" +- Remove already disabled alpha patch +- Update to current CVS + +------------------------------------------------------------------- +Sat Jun 1 10:54:41 CEST 2002 - olh@suse.de + +- fix stat for real, wrong size for st_nlink + +------------------------------------------------------------------- +Wed May 29 18:24:57 CEST 2002 - olh@suse.de + +- add ppc64_glibc_2.2.5-types.diff, fixes stat() + +------------------------------------------------------------------- +Wed May 29 10:38:34 CEST 2002 - olh@suse.de + +- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance + +------------------------------------------------------------------- +Thu May 23 08:32:00 MEST 2002 - aj@suse.de + +- Rename __thread to fix problems with GCC 3.2. + +------------------------------------------------------------------- +Mon May 20 11:37:42 CEST 2002 - olh@suse.de + +- add ppc64 kernel headers + add create_ppc_asm.sh + update ppc64 patch, use /lib64/ld64.so.1 + move generic syscalls.list to ppc64/32 + set/getrlimit GLIBC2.0 is ppc32 only + use parallel make on ppc and ppc64 + do not chroot as user + cleanup nested ifarch for dynamic linker + +------------------------------------------------------------------- +Wed May 15 10:25:45 CEST 2002 - aj@suse.de + +- Fix building of linuxthreads with current GCC. + +------------------------------------------------------------------- +Mon May 13 10:04:37 CEST 2002 - olh@suse.de + +- fix ppc64 RTLDLIST ld64.so rewrite + +------------------------------------------------------------------- +Sat May 11 02:09:06 CEST 2002 - schwab@suse.de + +- Add div/mod compatibility functions for ia64. + +------------------------------------------------------------------- +Fri May 10 13:56:59 CEST 2002 - olh@suse.de + +- add ppc64 support + +------------------------------------------------------------------- +Thu May 9 10:06:19 CEST 2002 - aj@suse.de + +- Add sys/io.h for x86-64. + +------------------------------------------------------------------- +Mon May 6 18:12:51 CEST 2002 - ihno@suse.de + +- corrected memory calculation for parallel build + +------------------------------------------------------------------- +Fri May 3 16:28:23 CEST 2002 - kukuk@suse.de + +- Add fix to compile math.h on SPARC with g++ + +------------------------------------------------------------------- +Thu May 2 11:29:29 CEST 2002 - kukuk@suse.de + +- Update to current CVS 2.2 branch +- Add x86-64 fix for crti.o and /usr/lib64 with libpthread + +------------------------------------------------------------------- +Fri Apr 26 16:51:48 CEST 2002 - kukuk@suse.de + +- define sqrtl alias for PowerPC + +------------------------------------------------------------------- +Mon Apr 22 07:56:00 CEST 2002 - aj@suse.de + +- Fix vfork for x86-64. +- Fix handling of ld.so.cache for x86-64. + +------------------------------------------------------------------- +Thu Apr 18 09:16:58 CEST 2002 - aj@suse.de + +- Allow testsuite to fail for x86-64. +- Add ULPs for x86-64. + +------------------------------------------------------------------- +Wed Apr 17 16:36:51 CEST 2002 - kukuk@suse.de + +- Update to current snapshot (mktime and dl fixes) +- Update hu.po +- Do not build a profiled glibc for x86-64 + +------------------------------------------------------------------- +Fri Apr 12 10:33:31 CEST 2002 - kukuk@suse.de + +- Update to current snapshot (fix SPARC compile) +- Revert do-lookup.h patch on Alpha (does not work here) + +------------------------------------------------------------------- +Wed Apr 10 15:09:33 CEST 2002 - aj@suse.de + +- Fix linuxthreads for x86-64. + +------------------------------------------------------------------- +Wed Apr 10 13:02:48 CEST 2002 - aj@suse.de + +- Add x86-64.diff to fix glob64. + +------------------------------------------------------------------- +Wed Apr 10 10:26:22 CEST 2002 - kukuk@suse.de + +- Update kernel-headers to 2.4.19pre4 (with x86-64 support) +- Update glibc to current cvs snapshot +- Allow old currencies (before EUR) + +------------------------------------------------------------------- +Tue Apr 2 15:58:49 CEST 2002 - aj@suse.de + +- Update ULPs. + +------------------------------------------------------------------- +Thu Mar 21 16:18:58 CET 2002 - kukuk@suse.de + +- Create html pages after installation of info pages [Bug #15283] + +------------------------------------------------------------------- +Tue Mar 12 16:09:51 CET 2002 - kukuk@suse.de + +- Add db1 fix if blocksize is not ^2 + +------------------------------------------------------------------- +Sat Mar 2 18:18:15 CET 2002 - kukuk@suse.de + +- Add fix for format string bug + +------------------------------------------------------------------- +Sat Mar 2 10:44:31 CET 2002 - kukuk@suse.de + +- Fix return value of nice wrapper + +------------------------------------------------------------------- +Fri Mar 1 14:33:09 CET 2002 - kukuk@suse.de + +- Add fix for corrupt ut_line +- Add fix for current gcc 3.1 +- Add patch for nice return values + +------------------------------------------------------------------- +Thu Feb 28 14:53:42 CET 2002 - kukuk@suse.de + +- Add fix for rtime, swscanf and ia64 + +------------------------------------------------------------------- +Mon Feb 18 13:22:05 CET 2002 - kukuk@suse.de + +- When a dlopened module references a weak symbol from another + dlopened module (loaded with RTLD_GLOBAL) no dependency was + generated for this fact, so the second module was unloaded even + if the first one was still around. + +------------------------------------------------------------------- +Sun Feb 17 10:51:53 CET 2002 - kukuk@suse.de + +- Add pthread/signal bugfix [Bug #13280] +- Fix directory file list (don't include /usr/include) + +------------------------------------------------------------------- +Thu Feb 14 19:46:04 CET 2002 - kukuk@suse.de + +- Use defattr in spec file to avoid problems with not existing + UIDs and rpm. + +------------------------------------------------------------------- +Thu Feb 14 13:22:13 CET 2002 - aj@suse.de + +- Update ULPs for GCC 3.1. + +------------------------------------------------------------------- +Wed Feb 13 16:03:20 CET 2002 - kukuk@suse.de + +- Apply db1 patch from mls@suse.de to fix rpm problems + +------------------------------------------------------------------- +Tue Feb 12 02:01:42 CET 2002 - ro@suse.de + +- fix owner/group for kernel headers + +------------------------------------------------------------------- +Mon Feb 11 15:17:18 CET 2002 - kukuk@suse.de + +- Add another solution for the glob problem + +------------------------------------------------------------------- +Thu Feb 7 16:20:49 CET 2002 - kukuk@suse.de + +- Add fix for glob (glob should not call globfree) +- Add fix for innetgr + +------------------------------------------------------------------- +Wed Feb 6 22:01:29 CET 2002 - kukuk@suse.de + +- Use correct BuildRoot + +------------------------------------------------------------------- +Wed Feb 6 16:40:49 CET 2002 - kukuk@suse.de + +- Update hu.po + +------------------------------------------------------------------- +Wed Feb 6 15:36:56 CET 2002 - kukuk@suse.de + +- Set LC_CTYPE for error messages in localedef [Bug #12878] + +------------------------------------------------------------------- +Mon Feb 4 14:26:48 CET 2002 - kukuk@suse.de + +- Add fixes from CVS: dynamic loader, readv and writev seg.fault + and various architecture fixes for alpha and mips +- Don't compile with -g on Alpha +- Add fix for possible endless loop fix + +------------------------------------------------------------------- +Fri Feb 1 15:58:41 CET 2002 - bk@suse.de + +- merged s390x lib64 patch and spec file changes + +------------------------------------------------------------------- +Wed Jan 23 15:39:02 CET 2002 - kukuk@suse.de + +- Split glibc into glibc and glibc-locale +- Create more UTF8 locale + +------------------------------------------------------------------- +Mon Jan 21 10:45:19 CET 2002 - kukuk@suse.de + +- Update to official glibc 2.2.5 + +------------------------------------------------------------------- +Wed Jan 16 18:29:33 CET 2002 - kukuk@suse.de + +- Remove /var/adm/setup/setup.timeconfig + +------------------------------------------------------------------- +Wed Jan 16 17:22:52 CET 2002 - kukuk@suse.de + +- Apply S390 fix + +------------------------------------------------------------------- +Wed Jan 9 15:33:49 CET 2002 - kukuk@suse.de + +- Update to glibc 2.2.5pre1 + +------------------------------------------------------------------- +Tue Jan 8 18:41:29 CET 2002 - egmont@suselinux.hu + +- Added partial Hungarian translation + +------------------------------------------------------------------- +Tue Jan 8 13:52:51 CET 2002 - kukuk@suse.de + +- Add patch to pass math tests with gcc 3.x +- Update to current CVS version + +------------------------------------------------------------------- +Thu Jan 3 18:05:48 CET 2002 - kukuk@suse.de + +- Update kernel header files to 2.4.17 + +------------------------------------------------------------------- +Tue Jan 1 10:55:34 CET 2002 - kukuk@suse.de + +- Update current CVS version, add final fixes for LSB test suite + +------------------------------------------------------------------- +Tue Dec 18 15:27:42 CET 2001 - poeml@suse.de + +- Install ja_JP.SJIS locale. + +------------------------------------------------------------------- +Sat Dec 15 15:27:12 CET 2001 - schwab@suse.de + +- Fix missing declaration of md5_uintptr. + +------------------------------------------------------------------- +Fri Dec 14 10:11:17 CET 2001 - kukuk@suse.de + +- Update to correct CVS branch + +------------------------------------------------------------------- +Thu Dec 13 14:50:25 CET 2001 - kukuk@suse.de + +- Update to current CVS +- Increase PATH_MAX to 4096 (including the leading zero) +- Clear pointer if asprintf fails +- pthread_key_delete should not contact thread manager before it + is created. + +------------------------------------------------------------------- +Tue Dec 11 22:35:07 CET 2001 - kukuk@suse.de + +- Fix prelink patch + +------------------------------------------------------------------- +Tue Dec 11 18:53:12 CET 2001 - kukuk@suse.de + +- Add fixes for LSB.os test suite (ftw, grantpt and ftok) +- Update to current CVS +- Add prelink patch + +------------------------------------------------------------------- +Fri Dec 7 19:16:30 CET 2001 - kukuk@suse.de + +- Merge with current CVS +- Add blowfish crypt + +------------------------------------------------------------------- +Fri Nov 23 11:55:14 CET 2001 - uli@suse.de + +- added armv4l arch to spec +- added arm kernel headers +- added trivial fix for dl-machine.h from CVS (see arm.dif) + +------------------------------------------------------------------- +Thu Nov 15 10:29:33 CET 2001 - adrian@suse.de + +- add mips architecture to spec file +- apply further mips fixes for ld +- activate %clean again + +------------------------------------------------------------------- +Sun Nov 11 12:12:03 CET 2001 - kukuk@suse.de + +- Fix lost permissions of shell script on SPARC + +------------------------------------------------------------------- +Thu Nov 8 18:40:33 CET 2001 - kukuk@suse.de + +- Add 32bit UID fixes + +------------------------------------------------------------------- +Thu Nov 8 11:47:21 CET 2001 - kukuk@suse.de + +- More fixes for asm-ia64 header files + +------------------------------------------------------------------- +Thu Nov 8 10:50:13 CET 2001 - kukuk@suse.de + +- Fix asm-i386/processor.h (don't align struct) +- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) +- Correct version number in version.h + +------------------------------------------------------------------- +Wed Nov 7 14:07:21 CET 2001 - uli@suse.de + +- fixed sys/io.h, sysmacros.h for icc + +------------------------------------------------------------------- +Tue Nov 6 16:53:04 CET 2001 - kukuk@suse.de + +- Update kernel-headers to 2.4.14 + +------------------------------------------------------------------- +Thu Nov 1 11:34:56 CET 2001 - kukuk@suse.de + +- Use again old rules to generate html files + +------------------------------------------------------------------- +Sun Oct 21 22:55:24 CEST 2001 - schwab@suse.de + +- Fix inttypes.h for C++. + +------------------------------------------------------------------- +Fri Oct 19 13:31:53 CEST 2001 - aj@suse.de + +- Fix typo in inttypes.h that presents compilation by non-GCC compilers. + +------------------------------------------------------------------- +Tue Oct 16 10:56:52 CEST 2001 - aj@suse.de + +- Update elf.h to include x86-64 defines since those are needed + by some other tools. + +------------------------------------------------------------------- +Fri Sep 28 15:59:19 CEST 2001 - schwab@suse.de + +- Readd patch from 2001-09-10 with corrections. +- Add compatibility patch for GCC 3. This allows to build glibc + with GCC 3. +- Require that make check succeeds on ia64. + +------------------------------------------------------------------- +Thu Sep 13 15:58:31 CEST 2001 - aj@suse.de + +- Add a better version of the threads-fork patch that fixes some + more places where interrupts can occur and does this a bit cleaner. + +------------------------------------------------------------------- +Tue Sep 11 13:50:37 CEST 2001 - aj@suse.de + +- Remove patch from 2001-09-10 since it breaks the dynamic linker. + +------------------------------------------------------------------- +Tue Sep 11 10:51:11 CEST 2001 - aj@suse.de + +- Fix bug in linuxthreads where manager and threads could + get out of synch due to an interrupted read call. + +------------------------------------------------------------------- +Mon Sep 10 18:20:32 CEST 2001 - schwab@suse.de + +- Fix handling of dependent dynamic objects for dlopen/dlclose. + +------------------------------------------------------------------- +Sat Sep 8 21:02:38 CEST 2001 - kukuk@suse.de + +- Don't create gconv cache (else iconv --list seg.faults) + +------------------------------------------------------------------- +Tue Aug 28 13:39:37 MEST 2001 - aj@suse.de + +- Improve dynamic linker to relocate dynamic objects faster. This + implies a small cache for symbol lookups and handling the ld -z combreloc + feature if binaries are linked this way. + +------------------------------------------------------------------- +Fri Aug 24 14:26:33 CEST 2001 - kukuk@suse.de + +- Add fix for handling of %l[] in vfscanf +- ldconfig removes stale links now +- Remove susehelp config files, now in susehelp itself + +------------------------------------------------------------------- +Wed Aug 22 15:26:06 CEST 2001 - aj@suse.de + +- Update s390 patch from IBM. + +------------------------------------------------------------------- +Fri Aug 17 14:11:16 CEST 2001 - kukuk@suse.de + +- Adjust dns6 patch for 2.2.4 +- Fix spec file (include lost libnss_dns6.so) +- Fix versionnumber in version.h [Bug #9759] +- Update kernel-header to 2.4.9 + +------------------------------------------------------------------- +Thu Aug 16 09:32:39 MEST 2001 - aj@suse.de + +- Update to 2.2.4 final. Add s390-ucontext patch. + +------------------------------------------------------------------- +Fri Aug 10 12:04:14 CEST 2001 - aj@suse.de + +- Update to current glibc version. Do not use the hardlink program + for compatification since localedef will do this itself now. + Create gconv cache. + +------------------------------------------------------------------- +Wed Aug 1 15:31:50 CEST 2001 - aj@suse.de + +- Add patch for zic to create copy of the timezone instead + of a symbolic link so that the file exists even if /usr is not + mounted. + Use i486 instead of i386 as default architecture for i386. + +------------------------------------------------------------------- +Sat Jul 28 08:36:27 CEST 2001 - kukuk@suse.de + +- Fix problem with linux/spinlock.h + +------------------------------------------------------------------- +Fri Jul 27 09:30:01 CEST 2001 - kukuk@suse.de + +- Update kernel-header files to 2.4.7 + +------------------------------------------------------------------- +Thu Jul 26 14:04:15 CEST 2001 - froh@suse.de + +- add fix for failing tst-setcontext on s390 + +------------------------------------------------------------------- +Wed Jul 25 09:29:38 CEST 2001 - aj@suse.de + +- Add patch to fix loading of dynamic libs in static programs for PPC. + +------------------------------------------------------------------- +Fri Jul 20 13:44:30 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Disable tst-regex and test-lfs + +------------------------------------------------------------------- +Fri Jul 6 15:26:54 CEST 2001 - kukuk@suse.de + +- Add da_DK@euro and da_DK.UTF-8 + +------------------------------------------------------------------- +Thu Jul 5 14:34:02 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Remove obsolete cvs patch +- Fix DNS/IPv6 patch +- Hardlink equal locale files + +------------------------------------------------------------------- +Fri Jun 22 15:59:21 CEST 2001 - olh@suse.de + +- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check + +------------------------------------------------------------------- +Tue Jun 19 06:41:03 EDT 2001 - bk@suse.de + +- added s390x support to spec file + +------------------------------------------------------------------- +Tue Jun 19 10:27:38 CEST 2001 - aj@suse.de + +- Fix profiling on PowerPC. + +------------------------------------------------------------------- +Fri Jun 15 17:58:22 CEST 2001 - schwab@suse.de + +- Fixup asm-ia64/atomic.h for user-space inclusion. + +------------------------------------------------------------------- +Tue Jun 12 11:14:08 CEST 2001 - aj@suse.de + +- Fix testsuite for sparc. + +------------------------------------------------------------------- +Mon Jun 11 13:56:16 CEST 2001 - aj@suse.de + +- Fix testsuite for powerpc and S390, build again on alpha. + +------------------------------------------------------------------- +Tue May 22 15:43:24 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] + +------------------------------------------------------------------- +Sun May 13 15:19:42 CEST 2001 - kukuk@suse.de + +- Don't use absolute paths in pre-install-section + +------------------------------------------------------------------- +Fri May 4 19:20:10 CEST 2001 - kukuk@suse.de + +- Add special version.h which fails on compiling kernel modules + +------------------------------------------------------------------- +Sat Apr 28 18:32:51 CEST 2001 - kukuk@suse.de + +- Update to glibc 2.2.3, kernel-headers-2.4.4 + +------------------------------------------------------------------- +Tue Apr 24 16:04:32 CEST 2001 - schwab@suse.de + +- Fix feenableexcept on ia64. + +------------------------------------------------------------------- +Tue Apr 24 15:48:34 CEST 2001 - aj@suse.de + +- Install some more UTF-8 locales, fix tr_TR locale. + +------------------------------------------------------------------- +Thu Apr 12 17:42:08 CEST 2001 - kukuk@suse.de + +- Include our own texi2html + +------------------------------------------------------------------- +Wed Apr 11 18:50:12 CEST 2001 - kukuk@suse.de + +- Add fixes from SuSE kernel header files +- Add patch to reload /etc/resolv.conf if there was changes +- Add glibc.conf for susehelp (glibc-html pages) + +------------------------------------------------------------------- +Mon Apr 9 17:39:18 CEST 2001 - schwab@suse.de + +- Fix ld.so for kernel 2.4.3 on ia64. + +------------------------------------------------------------------- +Thu Apr 5 17:39:44 CEST 2001 - kukuk@suse.de + +- Add more fixes from CVS + +------------------------------------------------------------------- +Tue Apr 3 15:40:58 CEST 2001 - kukuk@suse.de + +- Fix isdn header files from kernel-headers + +------------------------------------------------------------------- +Fri Mar 30 18:40:09 CEST 2001 - kukuk@suse.de + +- Update kernel header files to 2.4.3 + +------------------------------------------------------------------- +Fri Mar 30 17:22:54 CEST 2001 - kukuk@suse.de + +- Merge s390 patches +- Fix rcmd_af() (allow PF_UNSPEC) + +------------------------------------------------------------------- +Fri Mar 30 08:52:32 CEST 2001 - aj@suse.de + +- Add some small fixes, fix spec file for removal of man-pages. + +------------------------------------------------------------------- +Thu Mar 29 18:16:09 CEST 2001 - kukuk@suse.de + +- Don't provide kernel_headers any longer +- Remove some man-pages which are now official in the man-pages + package + +------------------------------------------------------------------- +Thu Mar 29 08:33:19 CEST 2001 - aj@suse.de + +- Fix shmfs recognition. + +------------------------------------------------------------------- +Thu Mar 29 01:18:52 CEST 2001 - ro@suse.de + +- added db-splitmask fix from mls (hopefully work around bug in db1) + +------------------------------------------------------------------- +Wed Mar 28 09:02:54 CEST 2001 - aj@suse.de + +- Fix s390 to not generate wrong relocations, work around compiler + error. + +------------------------------------------------------------------- +Wed Mar 21 14:46:25 CET 2001 - kukuk@suse.de + +- glibc-devel obsoletes and provides linclude + +------------------------------------------------------------------- +Tue Mar 20 12:38:28 CET 2001 - kukuk@suse.de + +- Add strtok and other fixes from CVS +- Add yp_all fix + +------------------------------------------------------------------- +Tue Mar 13 13:57:16 CET 2001 - kukuk@suse.de + +- Add more s390 string.h fixes + +------------------------------------------------------------------- +Mon Mar 12 10:05:30 CET 2001 - aj@suse.de + +- Add fixes for s390, don't run testsuite on s390 for now. + +------------------------------------------------------------------- +Fri Mar 9 17:05:27 CET 2001 - kukuk@suse.de + +- Fix linux/init.h header file + +------------------------------------------------------------------- +Fri Mar 9 16:01:15 CET 2001 - aj@suse.de + +- Handle new EM_S390 value. + +------------------------------------------------------------------- +Fri Mar 9 15:33:55 CET 2001 - kukuk@suse.de + +- kernel-heaer fixes to build on Alpha + +------------------------------------------------------------------- +Thu Mar 8 16:02:45 CET 2001 - ro@suse.de + +- update kernel-headers to 2.4.2 + +------------------------------------------------------------------- +Thu Mar 8 12:53:56 CET 2001 - ro@suse.de + +- kernel-header fixes to build on s390 + +------------------------------------------------------------------- +Thu Feb 22 11:22:08 CET 2001 - schwab@suse.de + +- More kernel header fixes for IA64. + +------------------------------------------------------------------- +Tue Feb 20 11:18:53 CET 2001 - kukuk@suse.de + +- Remove optimisation not supported on all plattforms + +------------------------------------------------------------------- +Mon Feb 19 09:48:02 CET 2001 - kukuk@suse.de + +- Fix Optimization of glibc build +- Add Optimization for alphaev6 and sparcv9 + +------------------------------------------------------------------- +Sat Feb 17 17:19:40 CET 2001 - kukuk@suse.de + +- Update to glibc 2.2.2 from CVS + +------------------------------------------------------------------- +Thu Feb 15 16:51:12 CET 2001 - kukuk@suse.de + +- kernel header fixes for SPARC and IA64 + +------------------------------------------------------------------- +Tue Feb 13 14:19:43 CET 2001 - kukuk@suse.de + +- Make optimization for i686 work +- Add manual page for ldd + +------------------------------------------------------------------- +Mon Feb 12 16:05:23 CET 2001 - kukuk@suse.de + +- Fix more kernel headers + +------------------------------------------------------------------- +Thu Feb 8 16:34:27 CET 2001 - kukuk@suse.de + +- Fix more kernel-headers + +------------------------------------------------------------------- +Wed Feb 7 17:17:03 CET 2001 - kukuk@suse.de + +- Delete links in pre install section for glibc-devel + +------------------------------------------------------------------- +Wed Feb 7 01:08:26 CET 2001 - kukuk@suse.de + +- Fix kernel-header includes + +------------------------------------------------------------------- +Tue Feb 6 09:29:04 CET 2001 - kukuk@suse.de + +- Fix creating of /usr/include/asm on SPARC +- Add more CVS patches + +------------------------------------------------------------------- +Mon Feb 5 18:58:08 CET 2001 - kukuk@suse.de + +- Add some patches from CVS +- Include our own kernel header files + +------------------------------------------------------------------- +Mon Jan 22 18:47:24 CET 2001 - aj@suse.de + +- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. + +------------------------------------------------------------------- +Mon Jan 22 10:26:42 CET 2001 - aj@suse.de + +- Fix mmap64 on powerpc. + +------------------------------------------------------------------- +Tue Jan 16 08:42:33 CET 2001 - aj@suse.de + +- Fix sunrpc-udp.diff, add mman.h fix for powerpc. + +------------------------------------------------------------------- +Wed Jan 10 14:49:30 CET 2001 - aj@suse.de + +- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. + +------------------------------------------------------------------- +Tue Jan 9 09:01:41 CET 2001 - aj@suse.de + +- Add glibc-2.2.secure.diff to close some security holes. + +------------------------------------------------------------------- +Wed Jan 3 15:26:45 CET 2001 - schwab@suse.de + +- Fix strtol and friends on 64 bit platforms. +- Use 8192 as default pagesize on ia64. +- Scan AUX vector also in statically linked programs. + +------------------------------------------------------------------- +Wed Jan 3 15:20:45 CET 2001 - aj@suse.de + +- Build some UTF-8 locales using a patch from Markus Kuhn. + +------------------------------------------------------------------- +Wed Dec 13 15:52:13 CET 2000 - aj@suse.de + +- Add compatibility patch for IPv6 and Linux 2.2. + +------------------------------------------------------------------- +Wed Dec 13 15:48:56 CET 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Sat Dec 9 13:30:23 CET 2000 - kukuk@suse.de + +- Fix resolver bug + +------------------------------------------------------------------- +Fri Dec 1 13:16:07 CET 2000 - kukuk@suse.de + +- Add bug fixes for setlocale and strncat +- strip gconv modules + +------------------------------------------------------------------- +Fri Nov 24 07:43:08 CET 2000 - kukuk@suse.de + +- Fix typo in spec file + +------------------------------------------------------------------- +Thu Nov 23 23:22:36 CET 2000 - kukuk@suse.de + +- Add hack for POWER3 + +------------------------------------------------------------------- +Wed Nov 22 13:03:19 CET 2000 - kukuk@suse.de + +- Add strncat bugfix for S/390 + +------------------------------------------------------------------- +Tue Nov 21 10:53:31 CET 2000 - kukuk@suse.de + +- Don't bulid 32bit compat packages + +------------------------------------------------------------------- +Mon Nov 20 15:46:44 CET 2000 - schwab@suse.de + +- Remove use of getpagesize syscall on ia64. +- Follow DT_INIT/DT_FINI change in compiler. + +------------------------------------------------------------------- +Sun Nov 19 22:43:40 CET 2000 - kukuk@suse.de + +- Minor specfile fixes + +------------------------------------------------------------------- +Thu Nov 16 17:38:47 CET 2000 - kukuk@suse.de + +- Add lot of more bug fixes + +------------------------------------------------------------------- +Tue Nov 14 16:52:59 CET 2000 - kukuk@suse.de + +- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de + +------------------------------------------------------------------- +Mon Nov 13 14:52:05 CET 2000 - aj@suse.de + +- Fix noversion.diff and spec file. + +------------------------------------------------------------------- +Sat Nov 11 08:40:42 CET 2000 - kukuk@suse.de + +- Fix nssv1 on PowerPC +- no libNoVersion on SPARC + +------------------------------------------------------------------- +Fri Nov 10 21:47:16 CET 2000 - kukuk@suse.de + +- Disable make check on PowerPC and Alpha + +------------------------------------------------------------------- +Fri Nov 10 17:09:57 CET 2000 - kukuk@suse.de + +- Update to final glibc 2.2 + +------------------------------------------------------------------- +Fri Nov 3 10:44:46 CET 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001103 (glibc-2.1.97) +- Don't install libNoVersion on PowerPC +- Rename nssv1 -> glibc-nssv1 +- Rename libd -> glibc-profile, move libg.a to libc +- Rename libcinfo -> glibc-info +- Rename libchtml -> glibc-html +- Rename localedb -> glibc-i18ndata +- Rename libc -> glibc-devel +- Rename shlibs -> glibc + +------------------------------------------------------------------- +Sat Oct 28 09:10:07 CEST 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001028 +- Enable more checks + +------------------------------------------------------------------- +Fri Oct 27 15:39:17 CEST 2000 - aj@suse.de + +- Fix NoVersion patch + +------------------------------------------------------------------- +Wed Oct 25 16:47:22 CEST 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001025 + +------------------------------------------------------------------- +Sun Oct 22 16:31:32 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20001021 +- Update glibc-db to 2.1.95 +- Update ia64 patch + +------------------------------------------------------------------- +Fri Oct 20 15:54:24 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20001020 +- Add s390 spec file changes + +------------------------------------------------------------------- +Tue Oct 10 13:46:03 CEST 2000 - schwab@suse.de + +- Update to glibc 2.2-20001009. +- Fix TRAMPOLINE_TEMPLATE for ia64. + +------------------------------------------------------------------- +Sun Oct 1 17:08:32 CEST 2000 - schwab@suse.de + +- Export more ia64 specific symbols. + +------------------------------------------------------------------- +Tue Sep 26 12:14:37 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20000926 + +------------------------------------------------------------------- +Mon Sep 25 14:02:07 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20000925 snapshot + +------------------------------------------------------------------- +Thu Sep 14 11:43:51 CEST 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Fri Sep 8 19:44:17 CEST 2000 - bk@suse.de + +- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) + +------------------------------------------------------------------- +Wed Sep 6 09:44:36 CEST 2000 - fober@suse.de + +- merge s390-7.0 with STABLE: + - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 + - added new changes from IBM s390 codedrop + - removed glibc-dlopen-2.1.3-s390.diff which is + incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now + +------------------------------------------------------------------- +Tue Sep 5 18:19:46 CEST 2000 - kukuk@suse.de + +- Add glibc-2.1.security.dif + +------------------------------------------------------------------- +Fri Sep 1 11:14:25 CEST 2000 - olh@suse.de + +- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc + +------------------------------------------------------------------- +Wed Aug 30 16:16:04 CEST 2000 - olh@suse.de + +- remove sysdeps/powerpc/memset.S on ppc for POWER3 + +------------------------------------------------------------------- +Mon Aug 28 17:12:41 CEST 2000 - olh@suse.de + +- add glibc-2.1.sgi_fam.dif +- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 + +------------------------------------------------------------------- +Mon Aug 21 19:56:06 CEST 2000 - garloff@suse.de + +- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) + +------------------------------------------------------------------- +Tue Jul 25 08:41:48 CEST 2000 - kukuk@suse.de + +- Add mmap fix for PowerPC + +------------------------------------------------------------------- +Tue Jul 11 10:02:41 CEST 2000 - kukuk@suse.de + +- Remove "mutex is owned by current thread" bugfix for IBMs jdk + +------------------------------------------------------------------- +Mon Jun 26 16:47:54 CEST 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Tue Jun 20 15:33:43 CEST 2000 - kukuk@suse.de + +- Move html docu in extra package +- Update ia64 patch + +------------------------------------------------------------------- +Wed May 31 14:35:00 CEST 2000 - kukuk@suse.de + +- Remove LICENSE file, it's the same as COPYING.LIB +- Add libc docu as html + +------------------------------------------------------------------- +Sun May 28 14:44:42 CEST 2000 - kukuk@suse.de + +- Fix ldconfig on PPC and IA64 + +------------------------------------------------------------------- +Sat May 27 15:25:13 CEST 2000 - kukuk@suse.de + +- Merge new ldconfig fixes + +------------------------------------------------------------------- +Fri May 26 18:16:52 CEST 2000 - kukuk@suse.de + +- Update ia64 patch + +------------------------------------------------------------------- +Fri May 26 11:07:39 CEST 2000 - kukuk@suse.de + +- Fix (f)truncate64 and xdr_uint8_t + +------------------------------------------------------------------- +Wed May 24 22:23:12 CEST 2000 - kukuk@suse.de + +- Fix ldconfig.8 manual page + +------------------------------------------------------------------- +Thu May 18 17:53:09 CEST 2000 - bk@suse.de + +- added s390 dlopen fix + +------------------------------------------------------------------- +Tue May 16 16:48:13 CEST 2000 - bk@suse.de + +- updated s390 patches to match IBM_codedrop_2000_05_15 + +------------------------------------------------------------------- +Fri May 12 15:47:08 CEST 2000 - kukuk@suse.de + +- Fix netinet/in.h IPv6 compare + +------------------------------------------------------------------- +Fri May 12 14:47:15 CEST 2000 - schwab@suse.de + +- Update ia64 patches. + +------------------------------------------------------------------- +Fri May 12 14:22:11 CEST 2000 - kukuk@suse.de + +- Don't apply LFS patch + +------------------------------------------------------------------- +Tue May 9 22:21:23 CEST 2000 - kukuk@suse.de + +- Add LFS patches + +------------------------------------------------------------------- +Mon May 8 11:59:48 CEST 2000 - kukuk@suse.de + +- Add lot of bug fixes from CVS + +------------------------------------------------------------------- +Tue Apr 25 14:20:43 CEST 2000 - kukuk@suse.de + +- Fix nscd/getgrnam bug + +------------------------------------------------------------------- +Thu Apr 20 16:38:26 CEST 2000 - kukuk@suse.de + +- Remove /var/mail -> /var/spool/mail patch +- Update nscd.conf.5 manual page + +------------------------------------------------------------------- +Wed Apr 12 16:18:55 CEST 2000 - kukuk@suse.de + +- Add nscd patch from Chris Wing + +------------------------------------------------------------------- +Wed Apr 12 15:52:55 CEST 2000 - kukuk@suse.de + +- Add ldconfig fix from aj@suse.de + +------------------------------------------------------------------- +Wed Apr 12 11:33:02 CEST 2000 - schwab@suse.de + +- More ia64 patches. +- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. + +------------------------------------------------------------------- +Mon Apr 10 17:55:46 CEST 2000 - kukuk@suse.de + +- Support asm-sparc64 and asm-sparc on SPARC + +------------------------------------------------------------------- +Mon Apr 10 15:46:35 CEST 2000 - kukuk@suse.de + +- Create /etc/ld.so.cache always with permissions 0644 +- Update ia64 patches + +------------------------------------------------------------------- +Thu Apr 6 11:27:20 CEST 2000 - schwab@suse.de + +- Fix dynamic linker bug in ia64. +- Add ia64 spinlocks for db2. + +------------------------------------------------------------------- +Tue Apr 4 16:16:21 CEST 2000 - schwab@suse.de + +- New IA64 patches. +- Fix ldconfig -p. + +------------------------------------------------------------------- +Mon Apr 3 14:42:03 MEST 2000 - bk@suse.de + +- s390 team added s390 patches + +------------------------------------------------------------------- +Wed Mar 22 12:10:02 CET 2000 - kukuk@suse.de + +- Fix last SPARC patch + +------------------------------------------------------------------- +Tue Mar 21 17:48:01 CET 2000 - kukuk@suse.de + +- Add SPARC patches +- Add IA64 patches + +------------------------------------------------------------------- +Wed Mar 15 14:35:47 CET 2000 - kukuk@suse.de + +- Remove personality call (problematic on Alpha) +- Fix typo in localeconv +- alpha/ioperm.c> Add entry for "Nautilus". + +------------------------------------------------------------------- +Tue Mar 7 18:17:07 CET 2000 - kukuk@suse.de + +- Add locale SIGSEGV fix +- Fix getdate bug + +------------------------------------------------------------------- +Fri Feb 25 10:53:47 CET 2000 - kukuk@suse.de + +- Update to final glibc 2.1.3 + fix for bigendian machines + +------------------------------------------------------------------- +Thu Feb 24 16:12:39 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot +- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. + Old libnss_dns.so.2 will only make IPv4 lookups. + +------------------------------------------------------------------- +Tue Feb 22 16:40:35 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot (2.1.3pre4) + +------------------------------------------------------------------- +Sat Feb 5 14:40:33 CET 2000 - kukuk@suse.de + +- Add missing defines for SPARC bits/termios.h + +------------------------------------------------------------------- +Thu Feb 3 18:25:12 CET 2000 - kukuk@suse.de + +- Add regex patch from Andreas Schwab + +------------------------------------------------------------------- +Wed Feb 2 11:37:52 CET 2000 - kukuk@suse.de + +- Add ldconfig fix +- Update to current glibc cvs snapshot +- Fix sys/io.h on Intel (C++) + +------------------------------------------------------------------- +Mon Jan 24 17:01:13 CET 2000 - kukuk@suse.de + +- Fix duplicate setrlimit + +------------------------------------------------------------------- +Mon Jan 24 12:01:27 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot + +------------------------------------------------------------------- +Wed Jan 19 15:53:18 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot + +------------------------------------------------------------------- +Sat Jan 15 01:31:16 CET 2000 - ro@suse.de + +-fixed ppc db2-patch + +------------------------------------------------------------------- +Fri Jan 14 16:54:26 CET 2000 - kukuk@suse.de + +- Add patches for Intel and PPC + +------------------------------------------------------------------- +Fri Jan 14 00:27:03 CET 2000 - kukuk@suse.de + +- Add patch for SPARC + +------------------------------------------------------------------- +Thu Jan 13 15:23:54 CET 2000 - kukuk@suse.de + +- Move info pages to /usr/share/info + +------------------------------------------------------------------- +Mon Jan 10 14:49:14 CET 2000 - kukuk@suse.de + +- Add ipv6 patches for getent + +------------------------------------------------------------------- +Mon Jan 10 11:23:57 CET 2000 - kukuk@suse.de + +- Move manual pages for applications and config files into + shlibs package +- Update to current glibc 2.1.3 snapshot + +------------------------------------------------------------------- +Fri Dec 17 17:06:45 MET 1999 - kukuk@suse.de + +- Add new ldconfig patches +- Add aio patch +- Add fix for bits/string2.h + +------------------------------------------------------------------- +Wed Dec 15 16:37:02 MET 1999 - kukuk@suse.de + +- add ldconfig.8 + +------------------------------------------------------------------- +Wed Dec 15 10:00:53 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot +- Fix get/setrlimit problems + +------------------------------------------------------------------- +Thu Dec 9 20:00:16 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot +- Add new ldconfig + +------------------------------------------------------------------- +Sun Dec 5 11:50:42 MET 1999 - kukuk@suse.de + +- Disable make check for SPARC (kernel bug) +- Add setrlimit patches +- Update to current glibc 2.1.3 snapshot + +------------------------------------------------------------------- +Fri Nov 26 12:09:07 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot. + +------------------------------------------------------------------- +Tue Oct 26 13:54:55 MEST 1999 - kukuk@suse.de + +- Add fix for correct accounting of needed bytes (gethnamaddr.c) +- Remove not exported, public names from internal md5 functions + +------------------------------------------------------------------- +Mon Oct 25 19:03:56 MEST 1999 - kukuk@suse.de + +- Add fix for missing nexttowardl aliase + +------------------------------------------------------------------- +Tue Oct 19 09:56:47 MEST 1999 - kukuk@suse.de + +- Add security fix for iruserok + +------------------------------------------------------------------- +Sat Oct 16 16:29:44 MEST 1999 - kukuk@suse.de + +- Build libNoVersion.so.1 on every platform + +------------------------------------------------------------------- +Mon Oct 11 19:19:00 MEST 1999 - kukuk@suse.de + +- Add linuxthreads/signals.c fix from Andreas Schwab +- Remove dangling symlink (Bug #544) +- Add more bug fixes + +------------------------------------------------------------------- +Fri Oct 8 22:07:24 MEST 1999 - kukuk@suse.de + +- Add timezone update + +------------------------------------------------------------------- +Fri Oct 8 17:42:22 MEST 1999 - kukuk@suse.de + +- Add NIS+ shadow parser fix + +------------------------------------------------------------------- +Thu Oct 7 11:46:27 MEST 1999 - kukuk@suse.de + +- Update to official glibc 2.1.2, add important fixes +- Update nscd, add manual pages for it + +------------------------------------------------------------------- +Mon Sep 20 18:14:13 CEST 1999 - ro@suse.de + +- libc: added requires kernel_headers + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +------------------------------------------------------------------- +Mon Sep 6 10:25:03 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot +- Remove use auf automake in spec file + +------------------------------------------------------------------- +Fri Sep 3 14:35:42 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot +- Use RPM macros for configure + +------------------------------------------------------------------- +Wed Aug 25 17:07:09 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot + +------------------------------------------------------------------- +Thu Aug 19 15:20:26 MEST 1999 - kukuk@suse.de + +- Add PowerPC patches from Uli Hecht +- Cleanup of SPEC file +- Create a profiling version + +------------------------------------------------------------------- +Sat Aug 14 19:58:45 MEST 1999 - kukuk@suse.de + +- disable nscd hosts caching by default +- Apply patch from HJL for broken gethostbyname_r in libnss_dns + +------------------------------------------------------------------- +Fri Jul 16 17:01:51 MEST 1999 - kukuk@suse.de + +- Add header fix for autoconf/g++ +- Move pt_chown and gconv modules from libc to shlibs + +------------------------------------------------------------------- +Wed Jul 14 16:05:14 MEST 1999 - kukuk@suse.de + +- Remove /etc/localtime from filelist + +------------------------------------------------------------------- +Mon Jul 12 09:54:43 MEST 1999 - kukuk@suse.de + +- Add more bug fixes from cvs +- Add ld.so bug fix from Andreas Schwab + +------------------------------------------------------------------- +Thu Jul 8 17:25:43 MEST 1999 - kukuk@suse.de + +- configure for i386-unknown-linux + +------------------------------------------------------------------- +Wed Jul 7 12:28:43 MEST 1999 - kukuk@suse.de + +- Remove alpha patch, it's now in glibc 2.1.2 cvs +- Add more bug fixes from cvs +- Remove malloc patch (breaks StarOffice) + +------------------------------------------------------------------- +Tue Jul 6 18:08:26 MEST 1999 - kukuk@suse.de + +- Add openpty patch from Andreas Schwab + (openpty now works if /dev/pts is not mounted) + +------------------------------------------------------------------- +Fri Jul 2 12:04:47 MEST 1999 - kukuk@suse.de + +- Remove warning von zic about symlinks. + +------------------------------------------------------------------- +Mon Jun 28 19:49:44 MEST 1999 - kukuk@suse.de + +- Remove ndbm links, now in gdbm + +------------------------------------------------------------------- +Fri Jun 25 16:16:20 MEST 1999 - kukuk@suse.de + +- Add a lot of more fixes +- Add nscd fixes and enable nscd on alpha + +------------------------------------------------------------------- +Mon Jun 14 09:17:26 MEST 1999 - kukuk@suse.de + +- Add nss_dns and fget* fixes. +- Add nscd patches for NIS+ + +------------------------------------------------------------------- +Thu Jun 10 10:04:11 MEST 1999 - kukuk@suse.de + +- Fix daemon() for MT programs +- Add libio fixes + +------------------------------------------------------------------- +Fri May 28 08:53:20 MEST 1999 - kukuk@suse.de + +- Add fix for docu +- Disable nscd for alpha again + +------------------------------------------------------------------- +Wed May 26 09:42:54 MEST 1999 - kukuk@suse.de + +- Update to version 2.1.1 + +------------------------------------------------------------------- +Mon May 17 16:49:35 MEST 1999 - kukuk@suse.de + +- Update to snapshot from 16.5.1999 +- Add manpages +- Add __setfpucw to libNoVersion (intel) +- Add COPYING and COPYING.LIB + +------------------------------------------------------------------- +Fri May 7 18:57:20 MEST 1999 - kukuk@suse.de + +- Update to snapshot from 6.5.1999 +- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps +- Add patch for Alpha RX164 +- Add workaround for nscd on Alpha + +------------------------------------------------------------------- +Wed Apr 28 17:48:51 MEST 1999 - kukuk@suse.de + +- Remove latest fnmatch patches from Uli Drepper + +------------------------------------------------------------------- +Tue Apr 27 11:48:46 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 26 1999 +- fix pmap_set/pmap_unset for DHCP clients +- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create + the symbolic links. + +------------------------------------------------------------------- +Tue Apr 20 13:57:07 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 20 1999 +- remove sunrpc.diff +- fix nssv1 package +- only include nscd on intel +- install /etc/nscd.conf + +------------------------------------------------------------------- +Mon Apr 12 09:52:58 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 11 1999 +- Fix paths in paths.h +- install linuxthreads man pages and documentation +- Add sunrpc patch for Alpha and security fixes +- added links for el_GR and ru_RU.KOI8-R in usr/share/locale + +------------------------------------------------------------------- +Wed Mar 31 13:21:02 MEST 1999 - bs@suse.de + +- don't use lx_hack for build + +------------------------------------------------------------------- +Tue Mar 16 08:33:57 MET 1999 - ro@suse.de + +- libc.texinfo: changed to build with stable texinfo version + +------------------------------------------------------------------- +Mon Mar 15 23:49:51 MET 1999 - ro@suse.de + +- update to 2.1.1 (cvs of Mar 15 1999) +- update nssv1 to 2.0.2 + +------------------------------------------------------------------- +Sat Feb 20 19:29:32 MET 1999 - ro@suse.de + +- fixed specfile (lddlibc4 not built on alpha) + +------------------------------------------------------------------- +Sat Feb 20 18:41:22 MET 1999 - ro@suse.de + +- fixed specfile ... + +------------------------------------------------------------------- +Sat Feb 20 18:31:30 MET 1999 - ro@suse.de + +- added automake to neededforbuild + +------------------------------------------------------------------- +Sat Feb 20 18:15:44 MET 1999 - ro@suse.de + +- added nss-v1 modules (to keep old rpm happy with file owners) + +------------------------------------------------------------------- +Fri Feb 19 14:35:38 MET 1999 - ro@suse.de + +- update to cvs-version of 1999/02/18 + +------------------------------------------------------------------- +Fri Sep 25 18:58:28 MEST 1998 - ro@suse.de + +- fixed specfile + +------------------------------------------------------------------- +Fri Sep 25 12:15:13 MEST 1998 - ro@suse.de + +- update: use cvs-version of 980925 + edited db/Makefile to ignore messed up target-dependency + +------------------------------------------------------------------- +Mon Sep 21 19:43:16 MEST 1998 - ro@suse.de + +- update: use cvs-version of 980921 + +------------------------------------------------------------------- +Mon Sep 14 14:28:21 MEST 1998 - ro@suse.de + +- update: use today's cvs-version + +------------------------------------------------------------------- +Wed Sep 2 16:56:04 MEST 1998 - ro@suse.de + +- build for 586 since egcs generates code for 686 that does NOT run + on 586 !!! (eg strtok) + +------------------------------------------------------------------- +Sat Aug 22 00:43:48 MEST 1998 - ro@suse.de + +- updated to cvs-version 20.8.98 + added gettext as neededforbuild (so configure shuts up) + glibc-linuxthreads is contained in main archive now + +------------------------------------------------------------------- +Tue Jun 16 18:41:51 MEST 1998 - ro@suse.de + +- added symlink usr/include/X11 + +------------------------------------------------------------------- +Thu May 28 11:36:49 MEST 1998 - ro@suse.de + +- added symlinks to linux include files + +------------------------------------------------------------------- +Thu May 28 10:58:09 MEST 1998 - bs@suse.de + +- moved ".so" Links to package libc. + +------------------------------------------------------------------- +Wed May 27 16:26:15 MEST 1998 - bs@suse.de + +- changed version do `date` + +------------------------------------------------------------------- +Wed May 27 12:16:14 MEST 1998 - ro@suse.de + +- created specfile to build libc, shlibs, libd, libcinfo + localedb, timezone, + +- former libc renamed to libc5. diff --git a/glibc-utils.spec b/glibc-utils.spec new file mode 100644 index 0000000..9352810 --- /dev/null +++ b/glibc-utils.spec @@ -0,0 +1,1280 @@ +# +# spec file for package glibc-utils +# +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +# PLEASE run pre_checkin.sh in this directory before submitting +# this package. Otherwise the .spec and .changes for glibc-testsuite +# and glibc-utils aren't updated. + +# Run with osc --with=fast_build to have a shorter turnaround +# It will avoid building some parts of glibc +%bcond_with fast_build + +%define crypt_bf_version 1.2 + +Name: glibc-utils +%define normal_build ("%{name}" == "glibc") +%define utils_build ("%{name}" == "glibc-utils") +%define testsuite_build ("%{name}" == "glibc-testsuite") +Summary: Development utilities from GNU C library +License: LGPL-2.1+ +Group: Development/Languages/C and C++ +# UTILS-SUMMARY-END +BuildRequires: fdupes +BuildRequires: libselinux-devel +BuildRequires: makeinfo +BuildRequires: xz +BuildRequires: pkgconfig(systemd) +%if %{testsuite_build} +BuildRequires: gcc-c++ +BuildRequires: libstdc++-devel +%endif +%if %{utils_build} +BuildRequires: gd-devel +%endif + +%define __filter_GLIBC_PRIVATE 1 +%if %_target_cpu == "i686" +# For i686 let's only build what's different from i586, so +# no need to build documentation +%define build_profile 1 +%define build_locales 1 +%define build_html 0 +%else +%if %{with fast_build} || %{utils_build} +%define build_profile 0 +%define build_locales 0 +%define build_html 0 +%else +# Default: +%define build_profile 1 +%define build_locales 1 +%define build_html 1 +%endif +%endif + +%define disable_assert 0 +%define enable_stackguard_randomization 1 +%ifarch ppc ppc64 + %define optimize_power 1 + %ifarch ppc + %define powerpc_optimize_base power3 + %define powerpc_optimize_tune power3 + %define powerpc_optimize_cpu_power4 %{normal_build} + %else + %define powerpc_optimize_base power4 + %define powerpc_optimize_tune power5 + %define powerpc_optimize_cpu_power4 0 + %endif + # We are not building Power CPU specific optimizations for openSUSE. + %define powerpc_optimize_cpu_power6 0 + %define powerpc_optimize_cpu_power7 0 + %define powerpc_optimize_cpu_cell 0 +%else + %define optimize_power 0 + %define powerpc_optimize_base 0 + %define powerpc_optimize_cpu_power4 0 + %define powerpc_optimize_cpu_power6 0 + %define powerpc_optimize_cpu_power7 0 + %define powerpc_optimize_cpu_cell 0 +%endif # ppc, ppc64 +%ifarch x86_64 +# 2.6.32 is the SLES 11 SP1 kernel +# 2.6.34 is the openSUSE 11.3 kernel +%define enablekernel 2.6.32 +%else +# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel +%define enablekernel 2.6.16 +%endif +Version: 2.17 +Release: 0 +%define glibc_major_version 2.17 +%define git_id c758a6861537 +Url: http://www.gnu.org/software/libc/libc.html +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: glibc-%{version}-%{git_id}.tar.xz +Source3: noversion.tar.bz2 +Source4: manpages.tar.bz2 +Source5: nsswitch.conf +Source7: bindresvport.blacklist +Source8: glibc_post_upgrade.c +Source9: glibc.rpmlintrc +Source10: baselibs.conf +# For systemd +Source20: nscd.conf +Source21: nscd.service +# crypt_blowfish +Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz +Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign + +%if %{normal_build} +# ngpt was used in 8.1 and SLES8 +Obsoletes: ngpt < 2.2.2 +Obsoletes: ngpt-devel < 2.2.2 +Provides: ngpt = 2.2.2 +Provides: ngpt-devel = 2.2.2 +Conflicts: kernel < %{enablekernel} +# bug437293 - handle update from SLES10 on PowerPC +%ifarch ppc64 +Obsoletes: glibc-64bit +%endif +%ifarch ppc +Obsoletes: glibc-32bit +%endif +%ifarch armv7l armv7hl +# The old runtime linker link gets not provided by rpm find.provides, but it exists +Provides: ld-linux.so.3 +Provides: ld-linux.so.3(GLIBC_2.4) +%endif +Requires(pre): filesystem +Recommends: glibc-extra +Provides: rtld(GNU_HASH) +%endif # %{normal_build} +%if %{utils_build} +Requires: glibc = %{version} +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if %_target_cpu == "i686" +# We need to avoid to have only the src rpm from i686 on the media, +# since it does not work on other architectures. +NoSource: 0 +%endif +# + +### +# Patches are ordered in the following groups: +# Patches that we will never upstream or which have not been looked at: 0-999 +# Patches taken from upstream: 1000-2000 +# Patches that are going upstream, waiting approval: 2000-3000 +### + +### +# Patches that upstream will not accept +### + +### +# openSUSE specific patches - won't go upstream +### +### openSUSE extensions, configuration +# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 +Patch1: glibc-2.14-crypt.diff +# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de +Patch2: glibc-2.14-crypt-versioning.diff +# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de +Patch3: crypt_blowfish-1.2-sha.diff +# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de +Patch4: crypt_blowfish-1.2-versioning.diff +# PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de +Patch5: crypt_blowfish-1.2-hack_around_arm.diff +# PATCH-FIX-OPENSUSE Fix path for nscd databases +Patch6: glibc-2.3.3-nscd-db-path.diff +# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de +Patch7: nss-db-path.patch +# PATCH-FIX-OPENSUSE adjust nscd.conf +Patch8: glibc-nscd.conf.patch +# PATCH-FIX-OPENSUSE do not use compile time in binaries +Patch9: glibc-nodate.patch +# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de +Patch10: glibc-version.diff +# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de +Patch11: glibc-testsuite.patch +# PATCH-FIX-OPENSUSE handle old glibc binaries +Patch12: glibc-2.3.90-noversion.diff +# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de +Patch13: glibc-2.3.2.no_archive.diff +# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport +Patch14: glibc-2.3.90-bindresvport.blacklist.diff +# PATCH-FIX-OPENSUSE prefer -lang rpm packages +Patch15: glibc-2.3.90-langpackdir.diff +# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) +Patch18: glibc-cpusetsize.diff +# PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de +Patch20: glibc-armhf-compat.patch +# PATCH-FIX-OPENSUSE Fix check abi for crypt additions +Patch21: glibc-fix-check-abi.patch + +### Locale related patches +# PATCH-FIX-OPENSUSE Add additional locales +Patch100: glibc-2.3.locales.diff.bz2 +# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) +Patch101: glibc-2.4.90-revert-only-euro.diff +# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) +Patch102: glibc-2.4.90-no_NO.diff +# PATCH-FIX-OPENSUSE -- Renames for China +Patch103: glibc-2.4-china.diff + +### Broken patches in glibc that we revert for now: +# None + +### Network related patches +# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change +Patch300: glibc-resolv-reload.diff +# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de +Patch301: glibc-2.2-sunrpc.diff +# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 +Patch302: getaddrinfo-ipv6-sanity.diff +# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv +Patch304: glibc-resolv-mdnshint.diff +# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 +Patch305: glibc-nscd-hconf.diff +# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 +Patch306: glibc-fix-double-loopback.diff + +### +# Patches from upstream +### + +### +# Patches awaiting upstream approval +### +# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +Patch2008: glibc-ld-profile.patch +# PATCH-FIX-OPENSUSE Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout +Patch2009: pthread-cond-timedwait-i486.patch +# PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd +Patch2010: nscd-short-write.patch + +%description +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. + +If you are unsure if you need this, don't install this package. + +%package info +Summary: Info Files for the GNU C Library +License: GFDL-1.1 +Group: Documentation/Other +Requires(post): %{install_info_prereq} +Requires(postun): %{install_info_prereq} +BuildArch: noarch + +%description info +This package contains the documentation for the GNU C library stored as +info files. Due to a lack of resources, this documentation is not +complete and is partially out of date. + +%package html +Summary: HTML Documentation for the GNU C Library +License: GFDL-1.1 +Group: Documentation/HTML +BuildArch: noarch + +%description html +This package contains the HTML documentation for the GNU C library. Due +to a lack of resources, this documentation is not complete and is +partially out of date. + +%package i18ndata +Summary: Database Sources for 'locale' +License: GPL-2.0+ and MIT +Group: System/Libraries +BuildArch: noarch + +%description i18ndata +This package contains the data needed to build the locale data files to +use the internationalization features of the GNU libc. It is normally +not necessary to install this packages, the data files are already +created. + +%package locale +Summary: Locale Data for Localized Programs +License: GPL-2.0+ and MIT and LGPL-2.1+ +Group: System/Libraries +Requires(post): /bin/cat +Requires: glibc = %{version} +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-locale-64bit +%endif +%ifarch ppc +Obsoletes: glibc-locale-32bit +%endif + +%description locale +Locale data for the internationalisation features of the GNU C library. + +%package -n nscd +Summary: Name Service Caching Daemon +License: GPL-2.0+ +Group: System/Daemons +Provides: glibc:/usr/sbin/nscd +Requires: glibc = %{version} +%{?systemd_requires} + +%description -n nscd +Nscd caches name service lookups and can dramatically improve +performance with NIS, NIS+, and LDAP. + +%package profile +Summary: Libc Profiling and Debugging Versions +License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +Group: Development/Libraries/C and C++ +Requires: glibc = %{version} +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-profile-64bit +%endif +%ifarch ppc +Obsoletes: glibc-profile-32bit +%endif + +%description profile +This package contains special versions of the GNU C library which are +necessary for profiling and debugging. + +%package devel +Summary: Include Files and Libraries Mandatory for Development +License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +Group: Development/Libraries/C and C++ +Obsoletes: epoll = 1.0 +Provides: epoll < 1.0 +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-devel-64bit +%endif +%ifarch ppc +Obsoletes: glibc-devel-32bit +%endif +Requires: glibc = %{version} +Requires: linux-kernel-headers + +%description devel +These libraries are needed to develop programs which use the standard C +library. + +%package devel-static +Summary: C library static libraries for -static linking +License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +Group: Development/Libraries/C and C++ +Requires: %{name}-devel = %{version} +# Provide Fedora name for package to make packaging easier +Provides: %{name}-static = %version + +%description devel-static +The glibc-devel-static package contains the C library static libraries +for -static linking. You don't need these, unless you link statically, +which is highly discouraged. + +# makedb requires libselinux. We add this program in a separate +# package so that glibc does not require libselinux. +%package extra +Summary: Extra binaries from GNU C Library +License: LGPL-2.1+ +Group: Development/Languages/C and C++ +Requires: glibc = %{version} + +%description extra +The glibc-extra package contains some extra binaries for glibc that +are not essential but recommend to use. + +makedb: A program to create a database for nss + +%package obsolete +Summary: Obsolete Shared Libraries from the GNU C Library +License: LGPL-2.0+ +Group: System/Libraries +Requires: glibc = %{version} + +%description obsolete +This package provides some old libraries from the GNU C Library which +are no longer supported. Additional it provides a compatibility library +for old binaries linked against glibc 2.0. + +Install this package if you need one of this libraries to get old +binaries working, but since this libraries are not supported and there +is no gurantee that they work for you, you should try to get newer +versions of your software. + +%prep +%setup -n glibc-%{version} -q -a 3 -a 4 +# Owl crypt_blowfish +tar -xzf %SOURCE50 +pushd crypt_blowfish-%{crypt_bf_version} +%patch3 -p1 +%patch4 -p1 +%patch5 +popd +mv crypt/{crypt.h,gnu-crypt.h} +mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ +# +%patch1 -p1 +%patch2 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +# avoid changing nscd_stat.c mtime to avoid code generation +# differences on each rebuild +touch -r nscd/nscd_stat.c nscd/s-stamp +%patch9 -p1 +touch -r nscd/s-stamp nscd/nscd_stat.c +rm nscd/s-stamp +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch18 -p1 +%patch21 -p1 + +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 + +%patch300 -p1 +%patch301 -p1 +%patch302 -p1 +%patch304 -p1 +%patch305 -p1 +%patch306 -p1 + +%ifarch armv7l armv7hl +%patch20 -p1 +%endif + +# XXX Disable, it breaks the testsuite, test elf/tst-audit2 +# %patch2008 -p1 +%patch2009 -p1 +%patch2010 -p1 + +# +# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! +# +# Glibc 2.8 introduced the HP_TIMING element to the rtld_global_ro struct # definition. +# If the base is built without power4 the loader won't have this element in +# the struct whereas the power4/5/6/... libc will, so there will be a disconnect +# between the size of the rtld_global_ro struct between the two and dl_close +# ends up getting called incorrectly when it's actually attempting to call a +# resolver function. This is because the GLRO() macro simply attempts to +# compute an offset and gets the wrong one. +# Building the base glibc with --with-cpu=power4 solves this problem. +# But: ppc32 can not default to -mcpu=power4 because it would emit instructions +# which are not available on G3, G4 etc. +# +# We simply remove the power4 files, and build the base glibc for a generic powerpc cpu +# Additional cputuned libs can now be used on powerpc32 +# +rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h +find . -name configure | xargs touch + +####################################################################### +### +### BUILD +### +####################################################################### + +%build +if [ -x /bin/uname.bin ]; then + /bin/uname.bin -a +else + uname -a +fi +uptime || : +ulimit -a +nice +# We do not want configure to figure out the system its building one +# to support a common ground and thus set build and host to the +# target_cpu. +%ifarch %arm +%define target %{_target_cpu}-suse-linux-gnueabi +%else +%define target %{_target_cpu}-suse-linux +%endif +# Don't use as-needed, it breaks glibc assumptions +# Before enabling it, run the testsuite and verify that it +# passes completely +export SUSE_ASNEEDED=0 +# Adjust glibc version.h +echo "#define CONFHOST \"%{target}\"" >> version.h +echo "#define GITID \"%{git_id}\"" >> version.h +# +# Default CFLAGS and Compiler +# +BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" +BuildCC="%__cc" +BuildCCplus="%__cxx" +add_ons=",libidn" +# +#now overwrite for some architectures +# +%ifarch sparc64 + BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" + BuildCC="gcc -m64" + BuildCCplus="$BuildCCplus -m64" +%endif +%ifarch sparc + BuildFlags="$BuildFlags -fcall-used-g6" + BuildCC="gcc -m32" + BuildCCplus="$BuildCCplus -m32" +%endif +%ifarch sparcv9 + BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" + BuildCC="gcc -m32" + BuildCCplus="$BuildCCplus -m32" +%endif +%ifarch alphaev6 + BuildFlags="-mcpu=ev6" +%endif +%ifarch ppc ppc64 + BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" +%endif +%ifarch ppc64 + BuildCC="$BuildCC -m64" + BuildCCplus="$BuildCCplus -m64" +%endif +%ifarch hppa + BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" +%endif +# Add flags for all plattforms except AXP +%ifnarch alpha + BuildFlags="$BuildFlags -g" +%endif +%if %{disable_assert} + BuildFlags="$BuildFlags -DNDEBUG=1" +%endif +%ifarch %ix86 + add_ons=$add_ons,noversion +%endif +%ifarch %arm mipsel ia64 + add_ons=$add_ons,ports +%endif +%ifarch %arm mipsel + # fails to build otherwise - need to recheck and fix + %define enable_stackguard_randomization 0 +%endif + +configure_and_build_glibc() { + local dirname="$1"; shift + local cflags="$1"; shift + local addons="$1"; shift + mkdir "cc-$dirname" + cd "cc-$dirname" +%ifarch %arm + # remove asynchronous-unwind-tables during configure as it causes + # some checks to fail spuriously on arm + conf_cflags="${cflags/-fasynchronous-unwind-tables/}" + conf_cflags="${conf_cflags/-funwind-tables/}" +%else + conf_cflags="$cflags" +%endif + + profile="--disable-profile" +%if %{build_profile} + if [ "$dirname" = "base" ] ; then + profile="--enable-profile" + fi +%endif + CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ + CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + --prefix=%{_prefix} \ + --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ + --enable-add-ons=nptl$addons \ + $profile \ + "$@" \ +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + --build=%{target} --host=%{target} \ +%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x + --enable-multi-arch \ +%endif +%ifarch mipsel + --without-fp \ +%endif + --enable-kernel=%{enablekernel} \ + --enable-bind-now --enable-obsolete-rpc +# Should we enable --enable-systemtap? +# Should we enable --enable-nss-crypt to build use freebl3 hash functions? + # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) + make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags" + cd .. +} + +%if !%{optimize_power} + # + # Build base glibc + # + configure_and_build_glibc base "$BuildFlags" "$add_ons" +%else + # + # Build POWER-optimized glibc + # + # First, base build: + pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}" + %if %{powerpc_optimize_base} != "power3" + configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} + %else + # Use no default CPU + configure_and_build_glibc base "$pBuildFlags" "$add_ons" + %endif + # Then other power variants: + for pcpu in \ + %if %{powerpc_optimize_cpu_power4} + power4 \ + %endif + %if %{powerpc_optimize_cpu_power6} + power6 \ + %endif + %if %{powerpc_optimize_cpu_power7} + power7 \ + %endif + ; do + configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \ + --with-cpu=$pcpu + done + # Eventually, special Cell variant: + %if %{powerpc_optimize_cpu_cell} + configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" + %endif +%endif # optimize_power + +# +# Build html documentation +# +%if %{build_html} +make -C cc-base html +%endif + +# +# Build glibc_post_upgrade binary +# +$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ + -Lcc-base -Bcc-base/csu \ + '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ +%ifarch ppc ppc64 + %if !%{powerpc_optimize_cpu_power4} + '-DREMOVE_PPC_OPTIMIZE_POWER4' \ + %endif + %if !%{powerpc_optimize_cpu_power6} + '-DREMOVE_PPC_OPTIMIZE_POWER6' \ + %endif + %if !%{powerpc_optimize_cpu_power7} + '-DREMOVE_PPC_OPTIMIZE_POWER7' \ + %endif + %if !%{powerpc_optimize_cpu_cell} + '-DREMOVE_PPC_OPTIMIZE_CELL' \ + %endif +%endif + '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' + +# crypt_blowfish man pages +pushd crypt_blowfish-%{crypt_bf_version} +make man +popd + +####################################################################### +### +### CHECK +### +####################################################################### + +%check +# The testsuite will fail if asneeded is used +export SUSE_ASNEEDED=0 +%if %{testsuite_build} +# Increase timeout +export TIMEOUTFACTOR=16 +%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 + # ix86: tst-cputimer? fails + # ia64: tst-timer4 fails + # ppc64: tst-pselect, ftwtest fails + # s390,s390x: tst-timer* fails + make %{?_smp_mflags} -C cc-base -k check || echo make check failed +%else + make %{?_smp_mflags} -C cc-base -k check +%endif +%endif +# This has to pass on all platforms! +# Exceptions: +# None! +make %{?_smp_mflags} -C cc-base check-abi + +####################################################################### +### +### INSTALL +### +####################################################################### + +%install +%if %{normal_build} +# We don't want to strip the .symtab from our libraries in find-debuginfo.sh, +# certainly not from libpthread.so.* because it is used by libthread_db to find +# some non-exported symbols in order to detect if threading support +# should be enabled. These symbols are _not_ exported, and we can't easily +# export them retroactively without changing the ABI. So we have to +# continue to "export" them via .symtab, instead of .dynsym :-( +# But we also want to keep .symtab and .strtab of other libraries since some +# debugging tools currently require these sections directly inside the main +# files - specifically valgrind and PurifyPlus. +export STRIP_KEEP_SYMTAB=*.so* + +# Make sure we will create the gconv-modules.cache +mkdir -p %{buildroot}%{_libdir}/gconv +touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache + +# Install base glibc +make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base + +install_optimized_variant() { + local dirname="$1"; shift + local subdir="$1"; shift + local subdir_up="$1"; shift + +cd "cc-$dirname" +destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir +mkdir -p $destdir +# Don't run a complete make install, we know which libraries +# we want +for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db +do + libbase=${lib#*/} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Only install if different from base lib + if cmp -s ${lib}.so ../cc-base/${lib}.so; then + ln -sf $subdir_up/$libbaseso $destdir/$libbaseso + else + cp -a ${lib}.so $destdir/$libbaseso + fi + # Emulate ldconfig + ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) +done +cd .. +} + +# Install power-optimized glibc +%if %{optimize_power} + %if %{powerpc_optimize_cpu_power4} + install_optimized_variant power4 power4 ".." + %endif + %if %{powerpc_optimize_cpu_power6} + install_optimized_variant power6 power6 ".." + %endif + %if %{powerpc_optimize_cpu_power7} + install_optimized_variant power7 power7 ".." + %endif + %if %{powerpc_optimize_cpu_cell} + install_optimized_variant ppc-cell-be ppc-cell-be ".." + %endif + %if %{powerpc_optimize_cpu_power6} + # power6 is compatible with power6x + # doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir + if test -d %{buildroot}/%{_lib}/power6; then + mkdir -p %{buildroot}/%{_lib}/power6x + for i in %{buildroot}/%{_lib}/power6/*.so; do + b=`basename $i` + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b + libbase=${b%.so} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Emulate ldconfig + ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) + done + fi + %endif +%endif # optimize_power + +# Install locales +%if %{build_locales} + # XXX Do not install locales in parallel! + cd cc-base + # localedef creates hardlinks to other locales if possible + # this will not work if we generate them in parallel. + # thus we need to run fdupes on /usr/lib/locale/ + # Still, on my system this is a speed advantage: + # non-parallel build for install-locales: 9:34mins + # parallel build with fdupes: 7:08mins + make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales + %fdupes %{buildroot}/usr/lib/locale + cd .. +%endif +# Create file list for glibc-locale package +%{find_lang} libc + +# Prepare obsolete/, used only on some architectures: +export RPM_BUILD_ROOT +%ifarch %ix86 +mkdir -p %{buildroot}/%{_lib}/obsolete +%endif + +# NPTL is not usable outside of glibc, so include +# the generic one (RH#162634) +cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h + +%ifarch s390x + # s390x is different ... + mkdir %{buildroot}/lib + ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 +%endif + +# Miscelanna: + +install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} + +install -m 644 %{SOURCE7} %{buildroot}/etc +install -m 644 %{SOURCE5} %{buildroot}/etc +install -m 644 posix/gai.conf %{buildroot}/etc + +mkdir -p %{buildroot}/etc/default +install -m 644 nis/nss %{buildroot}/etc/default/ + +mkdir -p %{buildroot}%{_includedir}/resolv +install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ +install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ + +%if %{build_html} +mkdir -p %{buildroot}%{_datadir}/doc/glibc +cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc +%endif + +cd manpages; make install_root=%{buildroot} install; cd .. + +# crypt_blowfish man pages +pushd crypt_blowfish-%{crypt_bf_version} +install -m755 -d %{buildroot}%{_mandir}/man3 +install -m644 *.3 %{buildroot}%{_mandir}/man3 +popd + +# nscd tools: + +cp nscd/nscd.conf %{buildroot}/etc +mkdir -p %{buildroot}/etc/init.d +ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd +mkdir -p %{buildroot}/var/run/nscd +touch %{buildroot}/var/run/nscd/{passwd,group,hosts} +touch %{buildroot}/var/run/nscd/{socket,nscd.pid} + +# +# Create ld.so.conf +# +cat > %{buildroot}/etc/ld.so.conf < +os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") + +%postun -p /sbin/ldconfig + +%endif # %{normal_build} + +%post locale +for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do + [ -d "$l.d" ] || continue + echo "###X# The following is autogenerated from extra files in the .d directory:" >>"$l" + cat "$l.d"/* >>"$l" +done +/usr/sbin/iconvconfig + +%post info +%install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz + +%postun info +%install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz + +%pre -n nscd +%service_add_pre nscd.service + +%preun -n nscd +%service_del_preun nscd.service + +%post -n nscd +%service_add_post nscd.service +mkdir -p /var/run/nscd +# Previously we had nscd.socket, remove it +test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : +test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : +# Hard removal in case the above did not work +rm -f /etc/systemd/system/sockets.target.wants/nscd.socket +exit 0 + +%postun -n nscd +%service_del_postun nscd.service +exit 0 + +%if %{normal_build} +%files +####################################################################### +### +### FILES +### +####################################################################### + +# glibc +%defattr(-,root,root) +%doc LICENSES +%config(noreplace) /etc/bindresvport.blacklist +%config /etc/ld.so.conf +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache +%config(noreplace) /etc/rpc +%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf +%verify(not md5 size mtime) %config(noreplace) /etc/gai.conf +%config(noreplace) /etc/default/nss +%doc %{_mandir}/man1/gencat.1.gz +%doc %{_mandir}/man1/getconf.1.gz +%doc %{_mandir}/man1/locale.1.gz +%doc %{_mandir}/man1/localedef.1.gz +%doc %{_mandir}/man5/* +%doc %{_mandir}/man8/iconvconfig.8.gz +/%{_lib}/ld-%{glibc_major_version}.so + +# Each architecture has a different name for the dynamic linker: +%ifarch %arm +%ifarch armv7l armv7hl +/%{_lib}/ld-linux-armhf.so.3 +# Keep compatibility link +/%{_lib}/ld-linux.so.3 +%else +/%{_lib}/ld-linux.so.3 +%endif +%endif +%ifarch ia64 +/%{_lib}/ld-linux-ia64.so.2 +%endif +%ifarch ppc s390 mips hppa +/%{_lib}/ld.so.1 +%endif +%ifarch ppc64 +/%{_lib}/ld64.so.1 +%endif +%ifarch s390x +/lib/ld64.so.1 +/%{_lib}/ld64.so.1 +%endif +%ifarch x86_64 +/%{_lib}/ld-linux-x86-64.so.2 +%endif +%ifarch %ix86 %sparc +/%{_lib}/ld-linux.so.2 +%endif + +/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale.so.1 +/%{_lib}/libSegFault.so +/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl.so.1 +/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc.so.6* +/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn.so.1 +/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt.so.1 +/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl.so.2* +/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm.so.6* +/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl.so.1 +/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat.so.2 +/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db.so.2 +/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns.so.2 +/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files.so.2 +/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod.so.2 +/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis.so.2 +/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus.so.2 +/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread.so.0 +/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv.so.2 +/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt.so.1 +/%{_lib}/libthread_db-1.0.so +/%{_lib}/libthread_db.so.1 +/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil.so.1 +%define optimized_libs() \ + %dir %attr(0755,root,root) /%{_lib}/%1\ + /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc.so.6*\ + /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm.so.6*\ + /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread.so.0\ + /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt.so.1\ + /%{_lib}/%1/libthread_db-1.0.so\ + /%{_lib}/%1/libthread_db.so.1 + +%if %{optimize_power} + %if %{powerpc_optimize_cpu_power4} + %{optimized_libs power4} + %endif + %if %{powerpc_optimize_cpu_power6} + %{optimized_libs power6} + %{optimized_libs power6x} + %endif + %if %{powerpc_optimize_cpu_power7} + %{optimized_libs power7} + %endif + %if %{powerpc_optimize_cpu_cell} + %{optimized_libs ppc-cell-be} + %endif +%endif # optimize_power +%dir %attr(0700,root,root) /var/cache/ldconfig +/sbin/ldconfig +%{_bindir}/gencat +%{_bindir}/getconf +%{_bindir}/getent +%{_bindir}/iconv +%attr(755,root,root) %{_bindir}/ldd +%ifarch %ix86 sparc sparcv9 + %{_bindir}/lddlibc4 +%endif +%{_bindir}/locale +%{_bindir}/localedef +%verify(not mode caps) %attr(4755,root,root) %{_libexecdir}/pt_chown +%dir %attr(0755,root,root) %{_libexecdir}/getconf +%{_libexecdir}/getconf/* +%{_sbindir}/glibc_post_upgrade +%{_sbindir}/iconvconfig + +%ifarch %ix86 + +%files obsolete +%defattr (755,root,root,755) +%dir /%{_lib}/obsolete/ + %dir /%{_lib}/obsolete/noversion + /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so + /%{_lib}/obsolete/noversion/libNoVersion.so.1 +%endif + +%files locale -f libc.lang +%defattr(-,root,root) +%{_datadir}/locale/locale.alias +%if %{build_locales} + /usr/lib/locale +%endif +%{_libdir}/gconv + +%files devel +%defattr(-,root,root) +%doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE +%doc %{_mandir}/man1/catchsegv.1.gz +%doc %{_mandir}/man1/rpcgen.1.gz +%doc %{_mandir}/man1/sprof.1.gz +%doc %{_mandir}/man3/* +%{_bindir}/catchsegv +%{_bindir}/rpcgen +%{_bindir}/sprof +%{_includedir}/* +%{_libdir}/*.o +%{_libdir}/*.so +# These static libraries are needed even for shared builds +%{_libdir}/libbsd-compat.a +%{_libdir}/libc_nonshared.a +%{_libdir}/libg.a +%{_libdir}/libieee.a +%ifarch ppc ppc64 s390 s390x sparc sparcv8 sparcv9 sparcv9v +# This is not built on sparc64. + %{_libdir}/libnldbl_nonshared.a +%endif +%{_libdir}/libmcheck.a +%{_libdir}/libpthread_nonshared.a +%{_libdir}/librpcsvc.a + +%files devel-static +%defattr(-,root,root) +%{_libdir}/libBrokenLocale.a +%{_libdir}/libanl.a +%{_libdir}/libc.a +%{_libdir}/libcrypt.a +%{_libdir}/libdl.a +%{_libdir}/libm.a +%{_libdir}/libnsl.a +%{_libdir}/libpthread.a +%{_libdir}/libresolv.a +%{_libdir}/librt.a +%{_libdir}/libutil.a + +%files info +%defattr(-,root,root) +%doc %{_infodir}/libc.info.gz +%doc %{_infodir}/libc.info-?.gz +%doc %{_infodir}/libc.info-??.gz + +%if %{build_html} +%files html +%defattr(-,root,root) +%doc %{_prefix}/share/doc/glibc +%endif + +%files i18ndata +%defattr(-,root,root) +%{_prefix}/share/i18n + +%files -n nscd +%defattr(-,root,root) +%config(noreplace) /etc/nscd.conf +%{_sbindir}/nscd +%{_sbindir}/rcnscd +/usr/lib/systemd/system/nscd.service +%dir /usr/lib/tmpfiles.d +/usr/lib/tmpfiles.d/nscd.conf +%dir %attr(0755,root,root) %ghost /var/run/nscd +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid +%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts + +%if %{build_profile} +%files profile +%defattr(-,root,root) +%{_libdir}/libc_p.a +%{_libdir}/libBrokenLocale_p.a +%{_libdir}/libanl_p.a +%{_libdir}/libm_p.a +%{_libdir}/libcrypt_p.a +%{_libdir}/libpthread_p.a +%{_libdir}/libresolv_p.a +%{_libdir}/libnsl_p.a +%{_libdir}/librt_p.a +%{_libdir}/librpcsvc_p.a +%{_libdir}/libutil_p.a +%{_libdir}/libdl_p.a +%endif + +%files extra +%defattr(-,root,root) +%{_bindir}/makedb +/var/lib/misc/Makefile + +%endif # %{normal_build} + +%if %{utils_build} +%files +%defattr(-,root,root) +/%{_lib}/libmemusage.so +/%{_lib}/libpcprofile.so +%dir %{_libdir}/audit +%{_libdir}/audit/sotruss-lib.so +%{_bindir}/memusage +%{_bindir}/memusagestat +%{_bindir}/mtrace +%{_bindir}/pcprofiledump +%{_bindir}/sotruss +%{_bindir}/xtrace +%{_bindir}/pldd +%doc %{_mandir}/man1/mtrace.1.gz +%endif # %{utils_build} + +%changelog diff --git a/glibc.changes b/glibc.changes index 3c45cba..e221597 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de + +- Update to glibc 2.17 release (git id c758a6861537): + * bump version number + * update translations + +------------------------------------------------------------------- +Tue Dec 18 10:28:01 UTC 2012 - schwab@suse.de + +- Move glibc-utils subpackage to own specfile and enable programs that + require libgd +- Filter GLIBC_PRIVATE symbols +- Don't stop at first error in testsuite run + ------------------------------------------------------------------- Mon Dec 17 11:16:49 UTC 2012 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 8c0977f..8f2c100 100644 --- a/glibc.spec +++ b/glibc.spec @@ -18,7 +18,7 @@ # PLEASE run pre_checkin.sh in this directory before submitting # this package. Otherwise the .spec and .changes for glibc-testsuite -# aren't updated. +# and glibc-utils aren't updated. # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc @@ -27,10 +27,14 @@ %define crypt_bf_version 1.2 Name: glibc +%define normal_build ("%{name}" == "glibc") +%define utils_build ("%{name}" == "glibc-utils") %define testsuite_build ("%{name}" == "glibc-testsuite") +# UTILS-SUMMARY-BEGIN Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries +# UTILS-SUMMARY-END BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo @@ -40,8 +44,11 @@ BuildRequires: pkgconfig(systemd) BuildRequires: gcc-c++ BuildRequires: libstdc++-devel %endif +%if %{utils_build} +BuildRequires: gd-devel +%endif -%define _filter_GLIBC_PRIVATE 1 +%define __filter_GLIBC_PRIVATE 1 %if %_target_cpu == "i686" # For i686 let's only build what's different from i586, so # no need to build documentation @@ -49,7 +56,7 @@ BuildRequires: libstdc++-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} +%if %{with fast_build} || %{utils_build} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -68,7 +75,7 @@ BuildRequires: libstdc++-devel %ifarch ppc %define powerpc_optimize_base power3 %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 1 + %define powerpc_optimize_cpu_power4 %{normal_build} %else %define powerpc_optimize_base power4 %define powerpc_optimize_tune power5 @@ -94,6 +101,28 @@ BuildRequires: libstdc++-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif +Version: 2.17 +Release: 0 +%define glibc_major_version 2.17 +%define git_id c758a6861537 +Url: http://www.gnu.org/software/libc/libc.html +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: glibc-%{version}-%{git_id}.tar.xz +Source3: noversion.tar.bz2 +Source4: manpages.tar.bz2 +Source5: nsswitch.conf +Source7: bindresvport.blacklist +Source8: glibc_post_upgrade.c +Source9: glibc.rpmlintrc +Source10: baselibs.conf +# For systemd +Source20: nscd.conf +Source21: nscd.service +# crypt_blowfish +Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz +Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign + +%if %{normal_build} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -112,30 +141,13 @@ Obsoletes: glibc-32bit Provides: ld-linux.so.3 Provides: ld-linux.so.3(GLIBC_2.4) %endif -Version: 2.16.90 -Release: 0 -%define glibc_major_version 2.16.90 -%define git_id 4641d57e1e00 -Url: http://www.gnu.org/software/libc/libc.html -BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz -Source3: noversion.tar.bz2 -Source4: manpages.tar.bz2 -Source5: nsswitch.conf -Source7: bindresvport.blacklist -Source8: glibc_post_upgrade.c -Source9: glibc.rpmlintrc -Source10: baselibs.conf -# For systemd -Source20: nscd.conf -Source21: nscd.service -# crypt_blowfish -Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign - Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) +%endif # %{normal_build} +%if %{utils_build} +Requires: glibc = %{version} +%endif BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %_target_cpu == "i686" # We need to avoid to have only the src rpm from i686 on the media, @@ -358,19 +370,6 @@ The glibc-devel-static package contains the C library static libraries for -static linking. You don't need these, unless you link statically, which is highly discouraged. -%package utils -Summary: Development utilities from GNU C library -License: LGPL-2.1+ -Group: Development/Languages/C and C++ -Requires: glibc = %{version} - -%description utils -The glibc-utils package contains mtrace, a memory leak tracer and -xtrace, a function call tracer which can be helpful during program -debugging. - -If you are unsure if you need this, don't install this package. - # makedb requires libselinux. We add this program in a separate # package so that glibc does not require libselinux. %package extra @@ -699,7 +698,7 @@ export TIMEOUTFACTOR=16 # s390,s390x: tst-timer* fails make %{?_smp_mflags} -C cc-base -k check || echo make check failed %else - make %{?_smp_mflags} -C cc-base check + make %{?_smp_mflags} -C cc-base -k check %endif %endif # This has to pass on all platforms! @@ -714,7 +713,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if !%{testsuite_build} +%if %{normal_build} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -913,7 +912,35 @@ ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf -%endif # !%{testsuite_build} + +# Remove unwanted files (packaged in glibc-utils) +rm -f %{buildroot}/%{_lib}/libmemusage* +rm -f %{buildroot}/%{_lib}/libpcprofile* +rm -f %{buildroot}%{_bindir}/memusage* +rm -f %{buildroot}%{_bindir}/mtrace +rm -f %{buildroot}%{_bindir}/pcprofiledump +rm -f %{buildroot}%{_bindir}/sotruss +rm -f %{buildroot}%{_bindir}/xtrace +rm -f %{buildroot}%{_bindir}/pldd +rm -f %{buildroot}%{_mandir}/man1/mtrace.* +rm -rf %{buildroot}%{_libdir}/audit + +%endif # %{normal_build} + +%if %{utils_build} + +make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ + subdirs='malloc debug elf' +cd manpages; make install_root=%{buildroot} install; cd .. +# Remove unwanted files +rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* +rm -f %{buildroot}%{_libdir}/lib* +rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} +rm -f %{buildroot}%{_mandir}/man1/[!m]* +rm -rf %{buildroot}%{_mandir}/man[!1] +rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} + +%endif # %{utils_build} ####################################################################### ### @@ -921,6 +948,7 @@ ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf ### ####################################################################### +%if %{normal_build} # Note: glibc_post_upgrade does: # %%set_permissions %%{_libexecdir}/pt_chown # since we cannot do it in our own post section @@ -940,6 +968,8 @@ os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") %postun -p /sbin/ldconfig +%endif # %{normal_build} + %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -974,7 +1004,7 @@ exit 0 %service_del_postun nscd.service exit 0 -%if !%{testsuite_build} +%if %{normal_build} %files ####################################################################### ### @@ -1223,27 +1253,28 @@ exit 0 %{_libdir}/libdl_p.a %endif -%files utils +%files extra +%defattr(-,root,root) +%{_bindir}/makedb +/var/lib/misc/Makefile + +%endif # %{normal_build} + +%if %{utils_build} +%files %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so -%dir /%{_libdir}/audit -/%{_libdir}/audit/sotruss-lib.so -# These need gd-devel for building -# %%{_bindir}/memusage -# %%{_bindir}/memusagestat +%dir %{_libdir}/audit +%{_libdir}/audit/sotruss-lib.so +%{_bindir}/memusage +%{_bindir}/memusagestat %{_bindir}/mtrace %{_bindir}/pcprofiledump %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd %doc %{_mandir}/man1/mtrace.1.gz - -%files extra -%defattr(-,root,root) -%{_bindir}/makedb -/var/lib/misc/Makefile - -%endif # !%{testsuite_build} +%endif # %{utils_build} %changelog diff --git a/pre_checkin.sh b/pre_checkin.sh index 94fe221..a4924b6 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -2,6 +2,28 @@ # This script is called automatically during autobuild checkin. sed -e 's/^Name:.*glibc/&-testsuite/' glibc.spec > glibc-testsuite.spec cp glibc.changes glibc-testsuite.changes +awk '/^Name:/{ $0 = $0 "-utils" } +/UTILS-SUMMARY-BEGIN/ { + ignore = 1 + print "\ +Summary: Development utilities from GNU C library\n\ +License: LGPL-2.1+\n\ +Group: Development/Languages/C and C++" +} +/UTILS-SUMMARY-END/ { ignore = 0 } +/^%description$/ { + ignore = 1 + print "\ +%description\n\ +The glibc-utils package contains mtrace, a memory leak tracer and\n\ +xtrace, a function call tracer which can be helpful during program\n\ +debugging.\n\ +\n\ +If you are unsure if you need this, don'\''t install this package.\n" +} +/^%package/ { ignore = 0} +!ignore { print }' glibc.spec > glibc-utils.spec +cp glibc.changes glibc-utils.changes osc service localrun format_spec_file From 254c84f620838df9b28e550de72ae92d8c6eeb138c01be45eff7f2e618aab2e9 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 7 Jan 2013 13:47:40 +0000 Subject: [PATCH 128/204] Accepting request 146883 from Base:System Set bugurl to bugs.opensuse.org OBS-URL: https://build.opensuse.org/request/show/146883 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=134 --- glibc-testsuite.changes | 5 +++++ glibc-testsuite.spec | 1 + glibc-utils.changes | 5 +++++ glibc-utils.spec | 1 + glibc.changes | 5 +++++ glibc.spec | 1 + 6 files changed, 18 insertions(+) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index e221597..a8a0c35 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de + +- Set bugurl to bugs.opensuse.org + ------------------------------------------------------------------- Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 6ca082e..7ac0599 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -599,6 +599,7 @@ configure_and_build_glibc() { --without-fp \ %endif --enable-kernel=%{enablekernel} \ + --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? diff --git a/glibc-utils.changes b/glibc-utils.changes index e221597..a8a0c35 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de + +- Set bugurl to bugs.opensuse.org + ------------------------------------------------------------------- Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 9352810..3992e31 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -599,6 +599,7 @@ configure_and_build_glibc() { --without-fp \ %endif --enable-kernel=%{enablekernel} \ + --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? diff --git a/glibc.changes b/glibc.changes index e221597..a8a0c35 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de + +- Set bugurl to bugs.opensuse.org + ------------------------------------------------------------------- Tue Dec 25 16:50:52 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 8f2c100..e5cbca8 100644 --- a/glibc.spec +++ b/glibc.spec @@ -599,6 +599,7 @@ configure_and_build_glibc() { --without-fp \ %endif --enable-kernel=%{enablekernel} \ + --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? From 158668bc3e0f3964dc53370765e4dba848f6a6cf1aae0204c6c48dacd5f415c0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 10 Jan 2013 10:17:49 +0000 Subject: [PATCH 129/204] Accepting request 147514 from Base:System - add _constraints file to make sure glibc-testsuite only builds on big hosts. Otherwise it's running out of memory and stalls See http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_job_constraints.html for more fun options (forwarded request 147495 from coolo) OBS-URL: https://build.opensuse.org/request/show/147514 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=135 --- _constraints | 8 ++++++++ glibc-testsuite.changes | 6 ++++++ glibc-testsuite.spec | 2 +- glibc-utils.changes | 6 ++++++ glibc-utils.spec | 2 +- glibc.changes | 6 ++++++ glibc.spec | 2 +- 7 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 _constraints diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..b75d7c1 --- /dev/null +++ b/_constraints @@ -0,0 +1,8 @@ + + + + + 1500 + + + diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index a8a0c35..90e5ccc 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com + +- add _constraints file to make sure glibc-testsuite only builds on big + hosts. Otherwise it's running out of memory and stalls + ------------------------------------------------------------------- Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 7ac0599..88733e0 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/glibc-utils.changes b/glibc-utils.changes index a8a0c35..90e5ccc 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com + +- add _constraints file to make sure glibc-testsuite only builds on big + hosts. Otherwise it's running out of memory and stalls + ------------------------------------------------------------------- Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 3992e31..163f8c8 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/glibc.changes b/glibc.changes index a8a0c35..90e5ccc 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com + +- add _constraints file to make sure glibc-testsuite only builds on big + hosts. Otherwise it's running out of memory and stalls + ------------------------------------------------------------------- Thu Dec 27 12:31:13 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index e5cbca8..6d35a12 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed From 50d7509b246032efe16582ba063cb244c80492e278c5b268e71c1405ec545078 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 29 Jan 2013 05:56:03 +0000 Subject: [PATCH 130/204] Accepting request 149818 from Base:System - Don't run testsuite in parallel - Fail if testsuite fails - Disable crypt/badsalttest test (forwarded request 149817 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/149818 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=137 --- glibc-crypt-badsalttest.patch | 16 ++++++++++++++++ glibc-testsuite.changes | 7 +++++++ glibc-testsuite.spec | 16 ++++++---------- glibc-utils.changes | 7 +++++++ glibc-utils.spec | 16 ++++++---------- glibc.changes | 7 +++++++ glibc.spec | 16 ++++++---------- 7 files changed, 55 insertions(+), 30 deletions(-) create mode 100644 glibc-crypt-badsalttest.patch diff --git a/glibc-crypt-badsalttest.patch b/glibc-crypt-badsalttest.patch new file mode 100644 index 0000000..faa9ef3 --- /dev/null +++ b/glibc-crypt-badsalttest.patch @@ -0,0 +1,16 @@ +badsalttest expects that crypt fails for unknown salt, but crypt-blowfish +doesn't. + +Index: glibc-2.17/crypt/Makefile +=================================================================== +--- glibc-2.17.orig/crypt/Makefile ++++ glibc-2.17/crypt/Makefile +@@ -31,7 +31,7 @@ libcrypt-routines := crypt-entry md5-cry + + libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper + +-tests := cert md5c-test sha256c-test sha512c-test badsalttest ++tests := cert md5c-test sha256c-test sha512c-test + + include ../Makeconfig + diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 90e5ccc..66dc1e4 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de + +- Don't run testsuite in parallel +- Fail if testsuite fails +- Disable crypt/badsalttest test + ------------------------------------------------------------------- Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 88733e0..708b15e 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -207,6 +207,8 @@ Patch18: glibc-cpusetsize.diff Patch20: glibc-armhf-compat.patch # PATCH-FIX-OPENSUSE Fix check abi for crypt additions Patch21: glibc-fix-check-abi.patch +# PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail +Patch22: glibc-crypt-badsalttest.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -431,6 +433,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch101 -p1 @@ -687,25 +690,18 @@ popd ####################################################################### %check +%if %{testsuite_build} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 -%if %{testsuite_build} # Increase timeout export TIMEOUTFACTOR=16 -%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 - # ix86: tst-cputimer? fails - # ia64: tst-timer4 fails - # ppc64: tst-pselect, ftwtest fails - # s390,s390x: tst-timer* fails - make %{?_smp_mflags} -C cc-base -k check || echo make check failed +make -C cc-base -k check %else - make %{?_smp_mflags} -C cc-base -k check -%endif -%endif # This has to pass on all platforms! # Exceptions: # None! make %{?_smp_mflags} -C cc-base check-abi +%endif ####################################################################### ### diff --git a/glibc-utils.changes b/glibc-utils.changes index 90e5ccc..66dc1e4 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de + +- Don't run testsuite in parallel +- Fail if testsuite fails +- Disable crypt/badsalttest test + ------------------------------------------------------------------- Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com diff --git a/glibc-utils.spec b/glibc-utils.spec index 163f8c8..16cfc55 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -206,6 +206,8 @@ Patch18: glibc-cpusetsize.diff Patch20: glibc-armhf-compat.patch # PATCH-FIX-OPENSUSE Fix check abi for crypt additions Patch21: glibc-fix-check-abi.patch +# PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail +Patch22: glibc-crypt-badsalttest.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -431,6 +433,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch101 -p1 @@ -687,25 +690,18 @@ popd ####################################################################### %check +%if %{testsuite_build} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 -%if %{testsuite_build} # Increase timeout export TIMEOUTFACTOR=16 -%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 - # ix86: tst-cputimer? fails - # ia64: tst-timer4 fails - # ppc64: tst-pselect, ftwtest fails - # s390,s390x: tst-timer* fails - make %{?_smp_mflags} -C cc-base -k check || echo make check failed +make -C cc-base -k check %else - make %{?_smp_mflags} -C cc-base -k check -%endif -%endif # This has to pass on all platforms! # Exceptions: # None! make %{?_smp_mflags} -C cc-base check-abi +%endif ####################################################################### ### diff --git a/glibc.changes b/glibc.changes index 90e5ccc..66dc1e4 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de + +- Don't run testsuite in parallel +- Fail if testsuite fails +- Disable crypt/badsalttest test + ------------------------------------------------------------------- Tue Jan 8 09:53:38 UTC 2013 - coolo@suse.com diff --git a/glibc.spec b/glibc.spec index 6d35a12..0eb0dae 100644 --- a/glibc.spec +++ b/glibc.spec @@ -207,6 +207,8 @@ Patch18: glibc-cpusetsize.diff Patch20: glibc-armhf-compat.patch # PATCH-FIX-OPENSUSE Fix check abi for crypt additions Patch21: glibc-fix-check-abi.patch +# PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail +Patch22: glibc-crypt-badsalttest.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -431,6 +433,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch101 -p1 @@ -687,25 +690,18 @@ popd ####################################################################### %check +%if %{testsuite_build} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 -%if %{testsuite_build} # Increase timeout export TIMEOUTFACTOR=16 -%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 - # ix86: tst-cputimer? fails - # ia64: tst-timer4 fails - # ppc64: tst-pselect, ftwtest fails - # s390,s390x: tst-timer* fails - make %{?_smp_mflags} -C cc-base -k check || echo make check failed +make -C cc-base -k check %else - make %{?_smp_mflags} -C cc-base -k check -%endif -%endif # This has to pass on all platforms! # Exceptions: # None! make %{?_smp_mflags} -C cc-base check-abi +%endif ####################################################################### ### From a92ad0b165a94101e15a501b1b2d41b8ef16e1ed12f109198f971a4aca0ffecd Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 31 Jan 2013 13:47:32 +0000 Subject: [PATCH 131/204] Accepting request 150534 from Base:System - looks like testsuite runs only on kvm, so add _constraint (actually it does not build on xen, but I can't constraint that) (forwarded request 150519 from coolo) OBS-URL: https://build.opensuse.org/request/show/150534 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=138 --- _constraints | 1 + glibc-testsuite.changes | 6 ++++++ glibc-utils.changes | 6 ++++++ glibc.changes | 6 ++++++ 4 files changed, 19 insertions(+) diff --git a/_constraints b/_constraints index b75d7c1..1de74e3 100644 --- a/_constraints +++ b/_constraints @@ -5,4 +5,5 @@ 1500 + kvm diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 66dc1e4..4ce8b03 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com + +- looks like testsuite runs only on kvm, so add _constraint + (actually it does not build on xen, but I can't constraint that) + ------------------------------------------------------------------- Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.changes b/glibc-utils.changes index 66dc1e4..4ce8b03 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com + +- looks like testsuite runs only on kvm, so add _constraint + (actually it does not build on xen, but I can't constraint that) + ------------------------------------------------------------------- Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de diff --git a/glibc.changes b/glibc.changes index 66dc1e4..4ce8b03 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com + +- looks like testsuite runs only on kvm, so add _constraint + (actually it does not build on xen, but I can't constraint that) + ------------------------------------------------------------------- Thu Jan 24 16:33:04 UTC 2013 - schwab@suse.de From 78a7e846b00b9c6c9fc88c000424ff6fffeade7ec995748256b3af5f9826e99a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 1 Feb 2013 08:42:04 +0000 Subject: [PATCH 132/204] Accepting request 150613 from Base:System - Obsolete unscd to migrate back to nscd. (forwarded request 150612 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/150613 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=139 --- glibc-testsuite.changes | 5 +++++ glibc-testsuite.spec | 1 + glibc-utils.changes | 5 +++++ glibc-utils.spec | 1 + glibc.changes | 5 +++++ glibc.spec | 1 + 6 files changed, 18 insertions(+) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 4ce8b03..16460be 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de + +- Obsolete unscd to migrate back to nscd. + ------------------------------------------------------------------- Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 708b15e..6fb1aa7 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -316,6 +316,7 @@ License: GPL-2.0+ Group: System/Daemons Provides: glibc:/usr/sbin/nscd Requires: glibc = %{version} +Obsoletes: unscd <= 0.48 %{?systemd_requires} %description -n nscd diff --git a/glibc-utils.changes b/glibc-utils.changes index 4ce8b03..16460be 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de + +- Obsolete unscd to migrate back to nscd. + ------------------------------------------------------------------- Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com diff --git a/glibc-utils.spec b/glibc-utils.spec index 16cfc55..7646621 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -316,6 +316,7 @@ License: GPL-2.0+ Group: System/Daemons Provides: glibc:/usr/sbin/nscd Requires: glibc = %{version} +Obsoletes: unscd <= 0.48 %{?systemd_requires} %description -n nscd diff --git a/glibc.changes b/glibc.changes index 4ce8b03..16460be 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de + +- Obsolete unscd to migrate back to nscd. + ------------------------------------------------------------------- Thu Jan 31 09:09:06 UTC 2013 - coolo@suse.com diff --git a/glibc.spec b/glibc.spec index 0eb0dae..bdc7614 100644 --- a/glibc.spec +++ b/glibc.spec @@ -316,6 +316,7 @@ License: GPL-2.0+ Group: System/Daemons Provides: glibc:/usr/sbin/nscd Requires: glibc = %{version} +Obsoletes: unscd <= 0.48 %{?systemd_requires} %description -n nscd From 88e4abedf8ad4369646fdd17e7531babc1c504543d8a11dca12b704f7a1a32e3 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 20 Feb 2013 16:40:45 +0000 Subject: [PATCH 133/204] Accepting request 155881 from Base:System - glibc-aarch64-lib64.patch: Use lib64 for aarch64 and add link for /lib/ld-linux-aarch64.so.1 (forwarded request 155880 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/155881 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=140 --- _constraints | 9 -- crypt_blowfish-1.2-versioning.diff | 8 +- glibc-2.14-crypt-versioning.diff | 28 +++-- glibc-aarch64-lib64.patch | 53 ++++++++ glibc-fix-check-abi.patch | 186 +++++++++++++---------------- glibc-testsuite.changes | 18 +++ glibc-testsuite.spec | 20 +++- glibc-utils.changes | 18 +++ glibc-utils.spec | 20 +++- glibc.changes | 18 +++ glibc.spec | 20 +++- 11 files changed, 266 insertions(+), 132 deletions(-) delete mode 100644 _constraints create mode 100644 glibc-aarch64-lib64.patch diff --git a/_constraints b/_constraints deleted file mode 100644 index 1de74e3..0000000 --- a/_constraints +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 1500 - - - kvm - diff --git a/crypt_blowfish-1.2-versioning.diff b/crypt_blowfish-1.2-versioning.diff index 45fdaaa..2703d93 100644 --- a/crypt_blowfish-1.2-versioning.diff +++ b/crypt_blowfish-1.2-versioning.diff @@ -1,6 +1,6 @@ Index: crypt_blowfish-1.2/wrapper.c =================================================================== ---- crypt_blowfish-1.2/wrapper.c +--- crypt_blowfish-1.2.orig/wrapper.c +++ crypt_blowfish-1.2/wrapper.c @@ -38,6 +38,7 @@ #define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) @@ -10,12 +10,13 @@ Index: crypt_blowfish-1.2/wrapper.c #define __SKIP_GNU #endif #include "ow-crypt.h" -@@ -291,14 +292,34 @@ char *__crypt_gensalt(const char *prefix +@@ -286,14 +287,36 @@ char *__crypt_gensalt(const char *prefix } #if defined(__GLIBC__) && defined(_LIBC) -weak_alias(__crypt_rn, crypt_rn) -weak_alias(__crypt_ra, crypt_ra) ++#include weak_alias(__crypt_r, crypt_r) weak_alias(__crypt, crypt) -weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) @@ -24,7 +25,8 @@ Index: crypt_blowfish-1.2/wrapper.c -weak_alias(crypt, fcrypt) +weak_alias(__crypt, fcrypt) +#if SHARED -+#if 1 // Owl has crypt_gensalt as GLIBC_2_0 so keep for compatibility ++/* Owl has crypt_gensalt as GLIBC_2_0 so keep for compatibility */ ++#if SHLIB_COMPAT (libcrypt, GLIBC_2_0, GLIBC_2_14) +#define ow_compat_symbol(name) \ + compat_symbol(libcrypt, _compat_##name, name, GLIBC_2_0); \ + weak_alias(__##name, _compat_##name) diff --git a/glibc-2.14-crypt-versioning.diff b/glibc-2.14-crypt-versioning.diff index e98e68d..3aab6df 100644 --- a/glibc-2.14-crypt-versioning.diff +++ b/glibc-2.14-crypt-versioning.diff @@ -1,7 +1,7 @@ -Index: glibc-2.16.90/Versions.def +Index: glibc-2.17/Versions.def =================================================================== ---- glibc-2.16.90.orig/Versions.def -+++ glibc-2.16.90/Versions.def +--- glibc-2.17.orig/Versions.def ++++ glibc-2.17/Versions.def @@ -42,6 +42,7 @@ libc { } libcrypt { @@ -10,15 +10,23 @@ Index: glibc-2.16.90/Versions.def } libdl { GLIBC_2.0 -Index: glibc-2.16.90/crypt/Versions +Index: glibc-2.17/crypt/Versions =================================================================== ---- glibc-2.16.90.orig/crypt/Versions -+++ glibc-2.16.90/crypt/Versions -@@ -3,4 +3,7 @@ libcrypt { +--- glibc-2.17.orig/crypt/Versions ++++ glibc-2.17/crypt/Versions +@@ -1,6 +1,15 @@ ++%define SHARED ++%define IS_IN_libcrypt 1 ++%include ++ + libcrypt { + GLIBC_2.0 { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; ++%if SHLIB_COMPAT (libcrypt, GLIBC_2_0, GLIBC_2_14) ++ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; ++%endif ++ } ++ OW_CRYPT_1.0 { crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; } -+ OW_CRYPT_1.0 { -+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; -+ } } diff --git a/glibc-aarch64-lib64.patch b/glibc-aarch64-lib64.patch new file mode 100644 index 0000000..836a9b0 --- /dev/null +++ b/glibc-aarch64-lib64.patch @@ -0,0 +1,53 @@ +diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure b/ports/sysdeps/unix/sysv/linux/aarch64/configure +index 5a22126..b806d27 100644 +--- a/ports/sysdeps/unix/sysv/linux/aarch64/configure ++++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure +@@ -1,3 +1,22 @@ + # This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. + + arch_minimum_kernel=3.7.0 ++ ++case "$prefix" in ++/usr | /usr/) ++ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. ++ # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, ++ # and libc_cv_localedir. ++ test -n "$libc_cv_slibdir" || ++ case $machine in ++ aarch64*) ++ libc_cv_slibdir="/lib64" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib64'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ esac ++esac +diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in +index d1995d4..e93fb3a 100644 +--- a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in ++++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in +@@ -2,3 +2,21 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. + # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. + + arch_minimum_kernel=3.7.0 ++ ++case "$prefix" in ++/usr | /usr/) ++ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. ++ # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, ++ # and libc_cv_localedir. ++ test -n "$libc_cv_slibdir" || ++ case $machine in ++ aarch64*) ++ libc_cv_slibdir="/lib64" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib64'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ esac ++esac diff --git a/glibc-fix-check-abi.patch b/glibc-fix-check-abi.patch index f755a04..0344fd1 100644 --- a/glibc-fix-check-abi.patch +++ b/glibc-fix-check-abi.patch @@ -1,36 +1,25 @@ - The addition of the Blowfish cipher functions also requires updating the ABI check list for all targets. ---- - ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++ - ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist | 12 ++++++++++ - sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist | 12 ++++++++++ - 22 files changed, 264 insertions(+) - -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist +@@ -7,3 +7,10 @@ GLIBC_2.17 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F ++ crypt_ra F ++ crypt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -53,10 +42,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.4 GLIBC_2.4 A @@ -79,10 +68,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -105,10 +94,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.4 GLIBC_2.4 A @@ -131,10 +120,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abil + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -157,10 +146,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilis + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist @@ -1,7 +1,12 @@ GLIBC_2.0 GLIBC_2.0 A @@ -185,10 +174,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilis + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -211,10 +200,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.ab + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -237,10 +226,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.ab + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -263,10 +252,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/lib + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.12 GLIBC_2.12 A @@ -289,10 +278,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcry + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.12 GLIBC_2.12 A @@ -315,10 +304,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcry + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.12 GLIBC_2.12 A @@ -341,10 +330,10 @@ Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abili + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -367,10 +356,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -393,10 +382,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.ab + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.3 GLIBC_2.3 A @@ -419,10 +408,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilis + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -445,10 +434,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.2 GLIBC_2.2 A @@ -471,10 +460,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -497,10 +486,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -523,10 +512,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.0 GLIBC_2.0 A @@ -549,10 +538,10 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist @@ -1,9 +1,21 @@ GLIBC_2.2.5 GLIBC_2.2.5 A @@ -575,22 +564,11 @@ Index: glibc-2.16/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist + crypt_gensalt_rn F + crypt_ra F + crypt_rn F -Index: glibc-2.16/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist +Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist =================================================================== ---- glibc-2.16.orig/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -+++ glibc-2.16/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.16 - GLIBC_2.16 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist +@@ -7,3 +7,10 @@ GLIBC_2.16 fcrypt F setkey F setkey_r F diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 16460be..ea3d0ea 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de + +- Update crypt ABI for aarch64 +- glibc-aarch64-lib64.patch: + Use lib64 for aarch64 and add link for /lib/ld-linux-aarch64.so.1 +- Don't build profiling libraries for aarch64 + +------------------------------------------------------------------- +Tue Feb 5 09:28:44 UTC 2013 - schwab@suse.de + +- Move _constraints file to glibc-testsuite only + +------------------------------------------------------------------- +Sun Feb 3 00:08:54 UTC 2013 - dmueller@suse.com + +- build with ports enabled on aarch64 + ------------------------------------------------------------------- Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 6fb1aa7..bb9b51c 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -62,7 +62,12 @@ BuildRequires: gd-devel %define build_html 0 %else # Default: +%ifarch aarch64 +# aarch64 doesn't support -pg yet +%define build_profile 0 +%else %define build_profile 1 +%endif %define build_locales 1 %define build_html 1 %endif @@ -250,6 +255,8 @@ Patch2008: glibc-ld-profile.patch Patch2009: pthread-cond-timedwait-i486.patch # PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch +# PATCH-FIX-OPENSUSE Use lib64 for aarch64 +Patch2011: glibc-aarch64-lib64.patch %description The GNU C Library provides the most important standard libraries used @@ -456,6 +463,7 @@ rm nscd/s-stamp # %patch2008 -p1 %patch2009 -p1 %patch2010 -p1 +%patch2011 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -556,7 +564,7 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm mipsel ia64 +%ifarch %arm aarch64 mipsel ia64 add_ons=$add_ons,ports %endif %ifarch %arm mipsel @@ -570,7 +578,7 @@ configure_and_build_glibc() { local addons="$1"; shift mkdir "cc-$dirname" cd "cc-$dirname" -%ifarch %arm +%ifarch %arm aarch64 # remove asynchronous-unwind-tables during configure as it causes # some checks to fail spuriously on arm conf_cflags="${cflags/-fasynchronous-unwind-tables/}" @@ -819,6 +827,10 @@ cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h mkdir %{buildroot}/lib ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 %endif +%ifarch aarch64 +mkdir %{buildroot}/lib +ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux-aarch64.so.1 +%endif # Miscelanna: @@ -1057,6 +1069,10 @@ exit 0 %ifarch %ix86 %sparc /%{_lib}/ld-linux.so.2 %endif +%ifarch aarch64 +/lib/ld-linux-aarch64.so.1 +/%{_lib}/ld-linux-aarch64.so.1 +%endif /%{_lib}/libBrokenLocale-%{glibc_major_version}.so /%{_lib}/libBrokenLocale.so.1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 16460be..ea3d0ea 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de + +- Update crypt ABI for aarch64 +- glibc-aarch64-lib64.patch: + Use lib64 for aarch64 and add link for /lib/ld-linux-aarch64.so.1 +- Don't build profiling libraries for aarch64 + +------------------------------------------------------------------- +Tue Feb 5 09:28:44 UTC 2013 - schwab@suse.de + +- Move _constraints file to glibc-testsuite only + +------------------------------------------------------------------- +Sun Feb 3 00:08:54 UTC 2013 - dmueller@suse.com + +- build with ports enabled on aarch64 + ------------------------------------------------------------------- Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 7646621..e156b39 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -61,7 +61,12 @@ BuildRequires: gd-devel %define build_html 0 %else # Default: +%ifarch aarch64 +# aarch64 doesn't support -pg yet +%define build_profile 0 +%else %define build_profile 1 +%endif %define build_locales 1 %define build_html 1 %endif @@ -249,6 +254,8 @@ Patch2008: glibc-ld-profile.patch Patch2009: pthread-cond-timedwait-i486.patch # PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch +# PATCH-FIX-OPENSUSE Use lib64 for aarch64 +Patch2011: glibc-aarch64-lib64.patch %description The glibc-utils package contains mtrace, a memory leak tracer and @@ -456,6 +463,7 @@ rm nscd/s-stamp # %patch2008 -p1 %patch2009 -p1 %patch2010 -p1 +%patch2011 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -556,7 +564,7 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm mipsel ia64 +%ifarch %arm aarch64 mipsel ia64 add_ons=$add_ons,ports %endif %ifarch %arm mipsel @@ -570,7 +578,7 @@ configure_and_build_glibc() { local addons="$1"; shift mkdir "cc-$dirname" cd "cc-$dirname" -%ifarch %arm +%ifarch %arm aarch64 # remove asynchronous-unwind-tables during configure as it causes # some checks to fail spuriously on arm conf_cflags="${cflags/-fasynchronous-unwind-tables/}" @@ -819,6 +827,10 @@ cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h mkdir %{buildroot}/lib ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 %endif +%ifarch aarch64 +mkdir %{buildroot}/lib +ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux-aarch64.so.1 +%endif # Miscelanna: @@ -1057,6 +1069,10 @@ exit 0 %ifarch %ix86 %sparc /%{_lib}/ld-linux.so.2 %endif +%ifarch aarch64 +/lib/ld-linux-aarch64.so.1 +/%{_lib}/ld-linux-aarch64.so.1 +%endif /%{_lib}/libBrokenLocale-%{glibc_major_version}.so /%{_lib}/libBrokenLocale.so.1 diff --git a/glibc.changes b/glibc.changes index 16460be..ea3d0ea 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de + +- Update crypt ABI for aarch64 +- glibc-aarch64-lib64.patch: + Use lib64 for aarch64 and add link for /lib/ld-linux-aarch64.so.1 +- Don't build profiling libraries for aarch64 + +------------------------------------------------------------------- +Tue Feb 5 09:28:44 UTC 2013 - schwab@suse.de + +- Move _constraints file to glibc-testsuite only + +------------------------------------------------------------------- +Sun Feb 3 00:08:54 UTC 2013 - dmueller@suse.com + +- build with ports enabled on aarch64 + ------------------------------------------------------------------- Thu Jan 31 15:42:07 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index bdc7614..660df2f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -62,7 +62,12 @@ BuildRequires: gd-devel %define build_html 0 %else # Default: +%ifarch aarch64 +# aarch64 doesn't support -pg yet +%define build_profile 0 +%else %define build_profile 1 +%endif %define build_locales 1 %define build_html 1 %endif @@ -250,6 +255,8 @@ Patch2008: glibc-ld-profile.patch Patch2009: pthread-cond-timedwait-i486.patch # PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch +# PATCH-FIX-OPENSUSE Use lib64 for aarch64 +Patch2011: glibc-aarch64-lib64.patch %description The GNU C Library provides the most important standard libraries used @@ -456,6 +463,7 @@ rm nscd/s-stamp # %patch2008 -p1 %patch2009 -p1 %patch2010 -p1 +%patch2011 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -556,7 +564,7 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm mipsel ia64 +%ifarch %arm aarch64 mipsel ia64 add_ons=$add_ons,ports %endif %ifarch %arm mipsel @@ -570,7 +578,7 @@ configure_and_build_glibc() { local addons="$1"; shift mkdir "cc-$dirname" cd "cc-$dirname" -%ifarch %arm +%ifarch %arm aarch64 # remove asynchronous-unwind-tables during configure as it causes # some checks to fail spuriously on arm conf_cflags="${cflags/-fasynchronous-unwind-tables/}" @@ -819,6 +827,10 @@ cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h mkdir %{buildroot}/lib ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 %endif +%ifarch aarch64 +mkdir %{buildroot}/lib +ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux-aarch64.so.1 +%endif # Miscelanna: @@ -1057,6 +1069,10 @@ exit 0 %ifarch %ix86 %sparc /%{_lib}/ld-linux.so.2 %endif +%ifarch aarch64 +/lib/ld-linux-aarch64.so.1 +/%{_lib}/ld-linux-aarch64.so.1 +%endif /%{_lib}/libBrokenLocale-%{glibc_major_version}.so /%{_lib}/libBrokenLocale.so.1 From 7b8f354ba4b482369099e45c335fb55e4f2cf7c9db4b1c6a4f6de23a270f4549 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 5 Mar 2013 05:43:54 +0000 Subject: [PATCH 134/204] Accepting request 157241 from Base:System - Fix crypt ABI for aarch64 (forwarded request 157240 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/157241 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=141 --- glibc-2.14-crypt-versioning.diff | 3 ++- glibc-testsuite.changes | 11 ++++++++ glibc-testsuite.spec | 6 +++++ glibc-utils.changes | 11 ++++++++ glibc-utils.spec | 6 +++++ glibc.changes | 11 ++++++++ glibc.spec | 6 +++++ manpages.patch | 43 ++++++++++++++++++++++++++++++++ 8 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 manpages.patch diff --git a/glibc-2.14-crypt-versioning.diff b/glibc-2.14-crypt-versioning.diff index 3aab6df..a1dc9e1 100644 --- a/glibc-2.14-crypt-versioning.diff +++ b/glibc-2.14-crypt-versioning.diff @@ -2,10 +2,11 @@ Index: glibc-2.17/Versions.def =================================================================== --- glibc-2.17.orig/Versions.def +++ glibc-2.17/Versions.def -@@ -42,6 +42,7 @@ libc { +@@ -42,6 +42,8 @@ libc { } libcrypt { GLIBC_2.0 ++ GLIBC_2.14 + OW_CRYPT_1.0 } libdl { diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index ea3d0ea..893cc45 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de + +- Fix crypt ABI for aarch64 + +------------------------------------------------------------------- +Thu Feb 28 14:30:44 UTC 2013 - schwab@suse.de + +- manpages.patch: + Remove debianisms from manpages (bnc#805054) + ------------------------------------------------------------------- Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index bb9b51c..386ea6c 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -258,6 +258,10 @@ Patch2010: nscd-short-write.patch # PATCH-FIX-OPENSUSE Use lib64 for aarch64 Patch2011: glibc-aarch64-lib64.patch +# Non-glibc patches +# PATCH-FIX-OPENSUSE Remove debianisms from manpages +Patch3000: manpages.patch + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -465,6 +469,8 @@ rm nscd/s-stamp %patch2010 -p1 %patch2011 -p1 +%patch3000 + # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # diff --git a/glibc-utils.changes b/glibc-utils.changes index ea3d0ea..893cc45 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de + +- Fix crypt ABI for aarch64 + +------------------------------------------------------------------- +Thu Feb 28 14:30:44 UTC 2013 - schwab@suse.de + +- manpages.patch: + Remove debianisms from manpages (bnc#805054) + ------------------------------------------------------------------- Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index e156b39..9bb1191 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -257,6 +257,10 @@ Patch2010: nscd-short-write.patch # PATCH-FIX-OPENSUSE Use lib64 for aarch64 Patch2011: glibc-aarch64-lib64.patch +# Non-glibc patches +# PATCH-FIX-OPENSUSE Remove debianisms from manpages +Patch3000: manpages.patch + %description The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program @@ -465,6 +469,8 @@ rm nscd/s-stamp %patch2010 -p1 %patch2011 -p1 +%patch3000 + # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # diff --git a/glibc.changes b/glibc.changes index ea3d0ea..893cc45 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de + +- Fix crypt ABI for aarch64 + +------------------------------------------------------------------- +Thu Feb 28 14:30:44 UTC 2013 - schwab@suse.de + +- manpages.patch: + Remove debianisms from manpages (bnc#805054) + ------------------------------------------------------------------- Mon Feb 18 09:28:23 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 660df2f..61ceb27 100644 --- a/glibc.spec +++ b/glibc.spec @@ -258,6 +258,10 @@ Patch2010: nscd-short-write.patch # PATCH-FIX-OPENSUSE Use lib64 for aarch64 Patch2011: glibc-aarch64-lib64.patch +# Non-glibc patches +# PATCH-FIX-OPENSUSE Remove debianisms from manpages +Patch3000: manpages.patch + %description The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math @@ -465,6 +469,8 @@ rm nscd/s-stamp %patch2010 -p1 %patch2011 -p1 +%patch3000 + # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # diff --git a/manpages.patch b/manpages.patch new file mode 100644 index 0000000..504238f --- /dev/null +++ b/manpages.patch @@ -0,0 +1,43 @@ +Index: manpages/locale.1 +=================================================================== +--- manpages/locale.1.orig ++++ manpages/locale.1 +@@ -247,17 +247,6 @@ This environment variable can switch aga + \& The directory where locale data is stored. By default, /usr/lib/locale is used. + .Ve + +-.SH "FILES" +-.IX Header "FILES" +-.PP +-.PD 0 +-.TP 8 +-\fI/usr/share/i18n/SUPPORTED\fP +-List of supported values (and their associated encoding) for the locale name. +-This representation is recommended over +-\fB\-\-all\-locales\fR one, due being the system wide supported values. +-.PP +- + .SH "AUTHOR" + .IX Header "AUTHOR" + \&\fIlocale\fR was written by Ulrich Drepper for the \s-1GNU\s0 C Library. +Index: manpages/locale.alias.5 +=================================================================== +--- manpages/locale.alias.5.orig ++++ manpages/locale.alias.5 +@@ -18,7 +18,7 @@ + .SH "NAME" + locale.alias \- Locale name alias data base + .SH "DESCRIPTION" +-The locale.alias database file (/etc/locale.alias) is used by the ++The locale.alias database file (/usr/share/locale/locale.alias) is used by the + .B locale + command and the + .B X Window System +@@ -40,6 +40,6 @@ name, or simpler versions of the POSIX l + Lines beginning with Hash ("#") are treated as comments and ignored. + + .SH "SEE ALSO" +-locale(1), localedef(1), locale-gen(8), locale.gen(5) ++locale(1), localedef(1) + .SH "AUTHOR" + Alastair McKinstry From cd20f336e60bde02cd06ad9bb261a48c6ea2f5d85132f3d973c66e40c16ff8c8 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 17 Apr 2013 05:12:02 +0000 Subject: [PATCH 135/204] Accepting request 170926 from Base:System - Do not order nscd after syslog.target (forwarded request 163932 from elvigia) OBS-URL: https://build.opensuse.org/request/show/170926 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=142 --- glibc.changes | 5 +++++ nscd.service | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/glibc.changes b/glibc.changes index 893cc45..7f54fb5 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Apr 14 02:41:52 UTC 2013 - crrodriguez@opensuse.org + +- Do not order nscd after syslog.target + ------------------------------------------------------------------- Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de diff --git a/nscd.service b/nscd.service index 4734948..9c9c3eb 100644 --- a/nscd.service +++ b/nscd.service @@ -1,6 +1,5 @@ [Unit] Description=Name Service Cache Daemon -After=syslog.target [Service] ExecStart=/usr/sbin/nscd --foreground From b16cee52dbb59884c9416e64adbd080fdb21c13529312990d156b222ecdb04a9 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 16 May 2013 08:39:11 +0000 Subject: [PATCH 136/204] Accepting request 175791 from Base:System OBS-URL: https://build.opensuse.org/request/show/175791 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=143 --- glibc-testsuite.changes | 10 ++++++++++ glibc-utils.changes | 10 ++++++++++ glibc.changes | 5 +++++ glibc_post_upgrade.c | 2 +- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 893cc45..3ae05c7 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue May 7 10:00:00 UTC 2013 - schwab@suse.de + +- Fix check for XEN build in glibc_post_upgrade + +------------------------------------------------------------------- +Sun Apr 14 02:41:52 UTC 2013 - crrodriguez@opensuse.org + +- Do not order nscd after syslog.target + ------------------------------------------------------------------- Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.changes b/glibc-utils.changes index 893cc45..3ae05c7 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue May 7 10:00:00 UTC 2013 - schwab@suse.de + +- Fix check for XEN build in glibc_post_upgrade + +------------------------------------------------------------------- +Sun Apr 14 02:41:52 UTC 2013 - crrodriguez@opensuse.org + +- Do not order nscd after syslog.target + ------------------------------------------------------------------- Mon Mar 4 14:16:43 UTC 2013 - schwab@suse.de diff --git a/glibc.changes b/glibc.changes index 7f54fb5..3ae05c7 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue May 7 10:00:00 UTC 2013 - schwab@suse.de + +- Fix check for XEN build in glibc_post_upgrade + ------------------------------------------------------------------- Sun Apr 14 02:41:52 UTC 2013 - crrodriguez@opensuse.org diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index 9e97c79..ab52f16 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -140,8 +140,8 @@ main (void) timeout and leave /etc/initrunlvl. */ if (readlink ("/proc/1/exe", initpath, 256) <= 0 || readlink ("/proc/1/root", initpath, 256) <= 0 || + access ("/.buildenv", F_OK) == 0 || /* XEN build */ stat ("/proc/1/root", &init_root) < 0 || - stat ("/.buildenv", &init_root) < 0 || /* XEN build */ stat ("/", &root) < 0 || init_root.st_dev != root.st_dev || init_root.st_ino != root.st_ino) _exit (0); From 233126ce15391284aa3c2eb82f688f2a04427fb777e39b7fb926824f578f64d3 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 17 May 2013 06:26:04 +0000 Subject: [PATCH 137/204] Accepting request 175893 from Base:System - big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 - digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r - nss-database.patch: Properly cache the result from looking up the nss database config - strptime-W-week.patch: Properly handle %W in strptime - printf-overrun.patch: Revert problematic fixes for [BZ #11741] - glibc-aarch64-lib64.patch: Replace with upstream version - arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache - rtlddir.patch: Add support for rtld directory different from slib directory - regexp-overrun.patch: Fix buffer overrun in regexp matcher (CVE-2013-0242, bnc#801246) - getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many results (CVE-2013-1914, bnc#813121) - big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 - digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r - nss-database.patch: Properly cache the result from looking up the nss database config - strptime-W-week.patch: Properly handle %W in strptime - printf-overrun.patch: Revert problematic fixes for [BZ #11741] - glibc-aarch64-lib64.patch: Replace with upstream version - arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache - rtlddir.patch: Add support for rtld directory different from slib directory - regexp-overrun.patch: Fix buffer overrun in regexp matcher (CVE-2013-0242, bnc#801246) - getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many results (CVE-2013-1914, bnc#813121) (forwarded request 175892 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/175893 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=144 --- arm-ld-so-cache.patch | 94 ++++++++++++ big5-hkscs-update.patch.bz2 | 3 + digits-dots.patch | 191 ++++++++++++++++++++++++ getaddrinfo-overflow.patch | 62 ++++++++ glibc-aarch64-lib64.patch | 36 ++--- glibc-testsuite.changes | 23 +++ glibc-testsuite.spec | 51 +++++-- glibc-utils.changes | 23 +++ glibc-utils.spec | 51 +++++-- glibc.changes | 23 +++ glibc.spec | 51 +++++-- nss-database.patch | 115 ++++++++++++++ printf-overrun.patch | 179 ++++++++++++++++++++++ regexp-overrun.patch | 161 ++++++++++++++++++++ rtlddir.patch | 288 ++++++++++++++++++++++++++++++++++++ strptime-W-week.patch | 44 ++++++ 16 files changed, 1327 insertions(+), 68 deletions(-) create mode 100644 arm-ld-so-cache.patch create mode 100644 big5-hkscs-update.patch.bz2 create mode 100644 digits-dots.patch create mode 100644 getaddrinfo-overflow.patch create mode 100644 nss-database.patch create mode 100644 printf-overrun.patch create mode 100644 regexp-overrun.patch create mode 100644 rtlddir.patch create mode 100644 strptime-W-week.patch diff --git a/arm-ld-so-cache.patch b/arm-ld-so-cache.patch new file mode 100644 index 0000000..1261981 --- /dev/null +++ b/arm-ld-so-cache.patch @@ -0,0 +1,94 @@ +From b39949d21179bd0b08a083e4f7e35d0c98e11294 Mon Sep 17 00:00:00 2001 +From: Carlos O'Donell +Date: Fri, 8 Feb 2013 12:26:12 -0500 +Subject: [PATCH] ARM: Support loading unmarked objects from cache. + +ARM now supports loading unmarked objects from +the dynamic loader cache. Unmarked objects can +be used with the hard-float or soft-float ABI. +We must support loading unmarked objects during +the transition period from a binutils that does +not mark objects to one that does mark them with +the correct ELF flags. + +Signed-off-by: Carlos O'Donell +--- + ChangeLog | 5 +++++ + elf/cache.c | 4 ++++ + ports/ChangeLog.arm | 8 ++++++++ + ports/sysdeps/unix/sysv/linux/arm/dl-cache.h | 9 +++++++-- + ports/sysdeps/unix/sysv/linux/arm/readelflib.c | 6 ++++++ + sysdeps/generic/ldconfig.h | 1 + + 6 files changed, 31 insertions(+), 2 deletions(-) + +diff --git a/elf/cache.c b/elf/cache.c +index 9901952..699550b 100644 +--- a/elf/cache.c ++++ b/elf/cache.c +@@ -100,6 +100,10 @@ print_entry (const char *lib, int flag, unsigned int osversion, + case FLAG_AARCH64_LIB64: + fputs (",AArch64", stdout); + break; ++ /* Uses the ARM soft-float ABI. */ ++ case FLAG_ARM_LIBSF: ++ fputs (",soft-float", stdout); ++ break; + case 0: + break; + default: +diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h +index acc4f28..504feca 100644 +--- a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h +@@ -18,12 +18,17 @@ + + #include + ++/* In order to support the transition from unmarked objects ++ to marked objects we must treat unmarked objects as ++ compatible with either FLAG_ARM_LIBHF or FLAG_ARM_LIBSF. */ + #ifdef __ARM_PCS_VFP + # define _dl_cache_check_flags(flags) \ +- ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6)) ++ ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6) \ ++ || (flags) == FLAG_ELF_LIBC6) + #else + # define _dl_cache_check_flags(flags) \ +- ((flags) == FLAG_ELF_LIBC6) ++ ((flags) == (FLAG_ARM_LIBSF | FLAG_ELF_LIBC6) \ ++ || (flags) == FLAG_ELF_LIBC6) + #endif + + #include_next +diff --git a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c +index 81e5ccb..3efb613 100644 +--- a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c ++++ b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c +@@ -46,6 +46,12 @@ process_elf_file (const char *file_name, const char *lib, int *flag, + if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_HARD) + *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6; + else if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_SOFT) ++ *flag = FLAG_ARM_LIBSF|FLAG_ELF_LIBC6; ++ else ++ /* We must assume the unmarked objects are compatible ++ with all ABI variants. Such objects may have been ++ generated in a transitional period when the ABI ++ tags were not added to all objects. */ + *flag = FLAG_ELF_LIBC6; + } + } +diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h +index 57a9a46..91190aa 100644 +--- a/sysdeps/generic/ldconfig.h ++++ b/sysdeps/generic/ldconfig.h +@@ -36,6 +36,7 @@ + #define FLAG_X8664_LIBX32 0x0800 + #define FLAG_ARM_LIBHF 0x0900 + #define FLAG_AARCH64_LIB64 0x0a00 ++#define FLAG_ARM_LIBSF 0x0b00 + + /* Name of auxiliary cache. */ + #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache" +-- +1.8.2.3 + diff --git a/big5-hkscs-update.patch.bz2 b/big5-hkscs-update.patch.bz2 new file mode 100644 index 0000000..478e445 --- /dev/null +++ b/big5-hkscs-update.patch.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f397e09eec2ac12228659cd1b86ff93b501934bcedda6ca8e20557954694f21a +size 358200 diff --git a/digits-dots.patch b/digits-dots.patch new file mode 100644 index 0000000..033c914 --- /dev/null +++ b/digits-dots.patch @@ -0,0 +1,191 @@ +From 57847d6ed77fe969cc598e47452c76278a69f7bd Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Mon, 21 Jan 2013 17:41:28 +0100 +Subject: [PATCH] Fix parsing of numeric hosts in gethostbyname_r + + [BZ #15014] + * nss/getXXbyYY_r.c (INTERNAL (REENTRANT_NAME)) + [HANDLE_DIGITS_DOTS]: Set any_service when digits-dots parsing was + successful. + * nss/digits_dots.c (__nss_hostname_digits_dots): Remove + redundant variable declarations and reallocation of buffer when + parsing as IPv6 address. Always set NSS status when called from + reentrant functions. Use NETDB_INTERNAL instead of TRY_AGAIN when + buffer too small. Correct computation of needed size. +--- + nss/digits_dots.c | 73 +++++++++++++++---------------------------------------- + nss/getXXbyYY_r.c | 5 +++- + 2 files changed, 24 insertions(+), 54 deletions(-) + +diff --git a/nss/digits_dots.c b/nss/digits_dots.c +index 2b86295..e007ef4 100644 +--- a/nss/digits_dots.c ++++ b/nss/digits_dots.c +@@ -46,7 +46,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + { + if (h_errnop) + *h_errnop = NETDB_INTERNAL; +- *result = NULL; ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_TRYAGAIN; ++ else ++ *result = NULL; + return -1; + } + +@@ -83,14 +86,16 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + } + + size_needed = (sizeof (*host_addr) +- + sizeof (*h_addr_ptrs) + strlen (name) + 1); ++ + sizeof (*h_addr_ptrs) ++ + sizeof (*h_alias_ptr) + strlen (name) + 1); + + if (buffer_size == NULL) + { + if (buflen < size_needed) + { ++ *status = NSS_STATUS_TRYAGAIN; + if (h_errnop != NULL) +- *h_errnop = TRY_AGAIN; ++ *h_errnop = NETDB_INTERNAL; + __set_errno (ERANGE); + goto done; + } +@@ -109,7 +114,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + *buffer_size = 0; + __set_errno (save); + if (h_errnop != NULL) +- *h_errnop = TRY_AGAIN; ++ *h_errnop = NETDB_INTERNAL; + *result = NULL; + goto done; + } +@@ -149,7 +154,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + if (! ok) + { + *h_errnop = HOST_NOT_FOUND; +- if (buffer_size) ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_NOTFOUND; ++ else + *result = NULL; + goto done; + } +@@ -190,7 +197,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + if (buffer_size == NULL) + *status = NSS_STATUS_SUCCESS; + else +- *result = resbuf; ++ *result = resbuf; + goto done; + } + +@@ -201,15 +208,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + + if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':') + { +- const char *cp; +- char *hostname; +- typedef unsigned char host_addr_t[16]; +- host_addr_t *host_addr; +- typedef char *host_addr_list_t[2]; +- host_addr_list_t *h_addr_ptrs; +- size_t size_needed; +- int addr_size; +- + switch (af) + { + default: +@@ -225,7 +223,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + /* This is not possible. We cannot represent an IPv6 address + in an `struct in_addr' variable. */ + *h_errnop = HOST_NOT_FOUND; +- *result = NULL; ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_NOTFOUND; ++ else ++ *result = NULL; + goto done; + + case AF_INET6: +@@ -233,42 +234,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + break; + } + +- size_needed = (sizeof (*host_addr) +- + sizeof (*h_addr_ptrs) + strlen (name) + 1); +- +- if (buffer_size == NULL && buflen < size_needed) +- { +- if (h_errnop != NULL) +- *h_errnop = TRY_AGAIN; +- __set_errno (ERANGE); +- goto done; +- } +- else if (buffer_size != NULL && *buffer_size < size_needed) +- { +- char *new_buf; +- *buffer_size = size_needed; +- new_buf = realloc (*buffer, *buffer_size); +- +- if (new_buf == NULL) +- { +- save = errno; +- free (*buffer); +- __set_errno (save); +- *buffer = NULL; +- *buffer_size = 0; +- *result = NULL; +- goto done; +- } +- *buffer = new_buf; +- } +- +- memset (*buffer, '\0', size_needed); +- +- host_addr = (host_addr_t *) *buffer; +- h_addr_ptrs = (host_addr_list_t *) +- ((char *) host_addr + sizeof (*host_addr)); +- hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs); +- + for (cp = name;; ++cp) + { + if (!*cp) +@@ -281,7 +246,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, + if (inet_pton (AF_INET6, name, host_addr) <= 0) + { + *h_errnop = HOST_NOT_FOUND; +- if (buffer_size) ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_NOTFOUND; ++ else + *result = NULL; + goto done; + } +diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c +index 1067744..44d00f4 100644 +--- a/nss/getXXbyYY_r.c ++++ b/nss/getXXbyYY_r.c +@@ -179,6 +179,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, + case -1: + return errno; + case 1: ++#ifdef NEED_H_ERRNO ++ any_service = true; ++#endif + goto done; + } + #endif +@@ -288,7 +291,7 @@ done: + /* Either we failed to lookup the functions or the functions themselves + had a system error. Set NETDB_INTERNAL here to let the caller know + that the errno may have the real reason for failure. */ +- *h_errnop = NETDB_INTERNAL; ++ *h_errnop = NETDB_INTERNAL; + else if (status != NSS_STATUS_SUCCESS && !any_service) + /* We were not able to use any service. */ + *h_errnop = NO_RECOVERY; +-- +1.8.2.3 + diff --git a/getaddrinfo-overflow.patch b/getaddrinfo-overflow.patch new file mode 100644 index 0000000..e2ae9e6 --- /dev/null +++ b/getaddrinfo-overflow.patch @@ -0,0 +1,62 @@ +From 1cef1b19089528db11f221e938f60b9b048945d7 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Thu, 21 Mar 2013 15:50:27 +0100 +Subject: [PATCH] Fix stack overflow in getaddrinfo with many results + + [BZ #15330] + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Allocate results and + order arrays from heap if bigger than alloca cutoff. + +--- + ChangeLog | 6 ++++++ + NEWS | 5 ++++- + sysdeps/posix/getaddrinfo.c | 23 +++++++++++++++++++++-- + 3 files changed, 31 insertions(+), 3 deletions(-) + +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index d95c2d1..2309281 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -2489,11 +2489,27 @@ getaddrinfo (const char *name, const char *service, + __typeof (once) old_once = once; + __libc_once (once, gaiconf_init); + /* Sort results according to RFC 3484. */ +- struct sort_result results[nresults]; +- size_t order[nresults]; ++ struct sort_result *results; ++ size_t *order; + struct addrinfo *q; + struct addrinfo *last = NULL; + char *canonname = NULL; ++ bool malloc_results; ++ ++ malloc_results ++ = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t))); ++ if (malloc_results) ++ { ++ results = malloc (nresults * (sizeof (*results) + sizeof (size_t))); ++ if (results == NULL) ++ { ++ __free_in6ai (in6ai); ++ return EAI_MEMORY; ++ } ++ } ++ else ++ results = alloca (nresults * (sizeof (*results) + sizeof (size_t))); ++ order = (size_t *) (results + nresults); + + /* Now we definitely need the interface information. */ + if (! check_pf_called) +@@ -2664,6 +2680,9 @@ getaddrinfo (const char *name, const char *service, + + /* Fill in the canonical name into the new first entry. */ + p->ai_canonname = canonname; ++ ++ if (malloc_results) ++ free (results); + } + + __free_in6ai (in6ai); +-- +1.8.2.3 + diff --git a/glibc-aarch64-lib64.patch b/glibc-aarch64-lib64.patch index 836a9b0..f5fe3d2 100644 --- a/glibc-aarch64-lib64.patch +++ b/glibc-aarch64-lib64.patch @@ -1,21 +1,24 @@ +libc:cbc105f8b590fa5f5343160ef0a33dde6366c427 + +2013-03-14 Andreas Schwab + + * sysdeps/unix/sysv/linux/aarch64/configure.in: Set + libc_cv_slibdir, libdir and libc_cv_localedir. + * sysdeps/unix/sysv/linux/aarch64/configure: Regenerate. + diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure b/ports/sysdeps/unix/sysv/linux/aarch64/configure -index 5a22126..b806d27 100644 +index 5a22126..04b6c81 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/configure +++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure -@@ -1,3 +1,22 @@ +@@ -1,3 +1,16 @@ # This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. arch_minimum_kernel=3.7.0 + ++test -n "$libc_cv_slibdir" || +case "$prefix" in -+/usr | /usr/) -+ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. -+ # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, -+ # and libc_cv_localedir. -+ test -n "$libc_cv_slibdir" || -+ case $machine in -+ aarch64*) ++ /usr | /usr/) + libc_cv_slibdir="/lib64" + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; @@ -23,25 +26,19 @@ index 5a22126..b806d27 100644 + libc_cv_localedir='${exec_prefix}/lib/locale' + fi + ;; -+ esac +esac diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -index d1995d4..e93fb3a 100644 +index d1995d4..6596a15 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in +++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -@@ -2,3 +2,21 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +@@ -2,3 +2,15 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. arch_minimum_kernel=3.7.0 + ++test -n "$libc_cv_slibdir" || +case "$prefix" in -+/usr | /usr/) -+ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. -+ # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, -+ # and libc_cv_localedir. -+ test -n "$libc_cv_slibdir" || -+ case $machine in -+ aarch64*) ++ /usr | /usr/) + libc_cv_slibdir="/lib64" + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; @@ -49,5 +46,4 @@ index d1995d4..e93fb3a 100644 + libc_cv_localedir='${exec_prefix}/lib/locale' + fi + ;; -+ esac +esac diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 3ae05c7..682a968 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu May 16 12:02:14 UTC 2013 - schwab@suse.de + +- big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 +- digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r +- nss-database.patch: Properly cache the result from looking up the nss + database config +- strptime-W-week.patch: Properly handle %W in strptime +- printf-overrun.patch: Revert problematic fixes for [BZ #11741] +- glibc-aarch64-lib64.patch: Replace with upstream version +- arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache +- rtlddir.patch: Add support for rtld directory different from slib + directory +- regexp-overrun.patch: Fix buffer overrun in regexp matcher + (CVE-2013-0242, bnc#801246) +- getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many + results (CVE-2013-1914, bnc#813121) + +------------------------------------------------------------------- +Thu May 16 10:04:01 UTC 2013 - schwab@suse.de + +- When testsuite run fails make all test output available + ------------------------------------------------------------------- Tue May 7 10:00:00 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 386ea6c..c34c8fe 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -245,18 +245,36 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout +Patch1000: pthread-cond-timedwait-i486.patch +# PATCH-FIX-UPSTREAM Use lib64 for aarch64 +Patch1001: glibc-aarch64-lib64.patch +# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache +Patch1002: arm-ld-so-cache.patch +# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory +Patch1003: rtlddir.patch +# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher +Patch1004: regexp-overrun.patch +# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results +Patch1005: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout -Patch2009: pthread-cond-timedwait-i486.patch # PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch -# PATCH-FIX-OPENSUSE Use lib64 for aarch64 -Patch2011: glibc-aarch64-lib64.patch +# PATCH-FIX-OPENSUSE Update BIG5-HKSCS charmap to HKSCS-2008 +Patch2011: big5-hkscs-update.patch.bz2 +# PATCH-FIX-OPENSUSE Fix parsing of numeric hosts in gethostbyname_r +Patch2012: digits-dots.patch +# PATCH-FIX-OPENSUSE Properly cache the result from looking up the nss database config +Patch2013: nss-database.patch +# PATCH-FIX-OPENSUSE Properly handle %W in strptime +Patch2014: strptime-W-week.patch +# PATCH-FIX-OPENSUSE Revert problematic fixes for [BZ #11741] +Patch2015: printf-overrun.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -463,11 +481,21 @@ rm nscd/s-stamp %patch20 -p1 %endif +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 + # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 -%patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 +%patch2013 -p1 +%patch2014 -p1 +%patch2015 -p1 %patch3000 @@ -710,7 +738,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 -make -C cc-base -k check +make -C cc-base -k check || +find cc-base -name "*.out" | tar -czf - -T - | base64 %else # This has to pass on all platforms! # Exceptions: @@ -828,16 +857,6 @@ mkdir -p %{buildroot}/%{_lib}/obsolete # the generic one (RH#162634) cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h -%ifarch s390x - # s390x is different ... - mkdir %{buildroot}/lib - ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 -%endif -%ifarch aarch64 -mkdir %{buildroot}/lib -ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux-aarch64.so.1 -%endif - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} diff --git a/glibc-utils.changes b/glibc-utils.changes index 3ae05c7..682a968 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu May 16 12:02:14 UTC 2013 - schwab@suse.de + +- big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 +- digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r +- nss-database.patch: Properly cache the result from looking up the nss + database config +- strptime-W-week.patch: Properly handle %W in strptime +- printf-overrun.patch: Revert problematic fixes for [BZ #11741] +- glibc-aarch64-lib64.patch: Replace with upstream version +- arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache +- rtlddir.patch: Add support for rtld directory different from slib + directory +- regexp-overrun.patch: Fix buffer overrun in regexp matcher + (CVE-2013-0242, bnc#801246) +- getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many + results (CVE-2013-1914, bnc#813121) + +------------------------------------------------------------------- +Thu May 16 10:04:01 UTC 2013 - schwab@suse.de + +- When testsuite run fails make all test output available + ------------------------------------------------------------------- Tue May 7 10:00:00 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 9bb1191..57f475c 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -244,18 +244,36 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout +Patch1000: pthread-cond-timedwait-i486.patch +# PATCH-FIX-UPSTREAM Use lib64 for aarch64 +Patch1001: glibc-aarch64-lib64.patch +# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache +Patch1002: arm-ld-so-cache.patch +# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory +Patch1003: rtlddir.patch +# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher +Patch1004: regexp-overrun.patch +# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results +Patch1005: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout -Patch2009: pthread-cond-timedwait-i486.patch # PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch -# PATCH-FIX-OPENSUSE Use lib64 for aarch64 -Patch2011: glibc-aarch64-lib64.patch +# PATCH-FIX-OPENSUSE Update BIG5-HKSCS charmap to HKSCS-2008 +Patch2011: big5-hkscs-update.patch.bz2 +# PATCH-FIX-OPENSUSE Fix parsing of numeric hosts in gethostbyname_r +Patch2012: digits-dots.patch +# PATCH-FIX-OPENSUSE Properly cache the result from looking up the nss database config +Patch2013: nss-database.patch +# PATCH-FIX-OPENSUSE Properly handle %W in strptime +Patch2014: strptime-W-week.patch +# PATCH-FIX-OPENSUSE Revert problematic fixes for [BZ #11741] +Patch2015: printf-overrun.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -463,11 +481,21 @@ rm nscd/s-stamp %patch20 -p1 %endif +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 + # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 -%patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 +%patch2013 -p1 +%patch2014 -p1 +%patch2015 -p1 %patch3000 @@ -710,7 +738,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 -make -C cc-base -k check +make -C cc-base -k check || +find cc-base -name "*.out" | tar -czf - -T - | base64 %else # This has to pass on all platforms! # Exceptions: @@ -828,16 +857,6 @@ mkdir -p %{buildroot}/%{_lib}/obsolete # the generic one (RH#162634) cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h -%ifarch s390x - # s390x is different ... - mkdir %{buildroot}/lib - ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 -%endif -%ifarch aarch64 -mkdir %{buildroot}/lib -ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux-aarch64.so.1 -%endif - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} diff --git a/glibc.changes b/glibc.changes index 3ae05c7..682a968 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu May 16 12:02:14 UTC 2013 - schwab@suse.de + +- big5-hkscs-update.patch.bz2: Update BIG5-HKSCS charmap to HKSCS-2008 +- digits-dots.patch: Fix parsing of numeric hosts in gethostbyname_r +- nss-database.patch: Properly cache the result from looking up the nss + database config +- strptime-W-week.patch: Properly handle %W in strptime +- printf-overrun.patch: Revert problematic fixes for [BZ #11741] +- glibc-aarch64-lib64.patch: Replace with upstream version +- arm-ld-so-cache.patch: ARM: Support loading unmarked objects from cache +- rtlddir.patch: Add support for rtld directory different from slib + directory +- regexp-overrun.patch: Fix buffer overrun in regexp matcher + (CVE-2013-0242, bnc#801246) +- getaddrinfo-overflow.patch: Fix stack overflow in getaddrinfo with many + results (CVE-2013-1914, bnc#813121) + +------------------------------------------------------------------- +Thu May 16 10:04:01 UTC 2013 - schwab@suse.de + +- When testsuite run fails make all test output available + ------------------------------------------------------------------- Tue May 7 10:00:00 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 61ceb27..6de652b 100644 --- a/glibc.spec +++ b/glibc.spec @@ -245,18 +245,36 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout +Patch1000: pthread-cond-timedwait-i486.patch +# PATCH-FIX-UPSTREAM Use lib64 for aarch64 +Patch1001: glibc-aarch64-lib64.patch +# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache +Patch1002: arm-ld-so-cache.patch +# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory +Patch1003: rtlddir.patch +# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher +Patch1004: regexp-overrun.patch +# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results +Patch1005: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout -Patch2009: pthread-cond-timedwait-i486.patch # PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch -# PATCH-FIX-OPENSUSE Use lib64 for aarch64 -Patch2011: glibc-aarch64-lib64.patch +# PATCH-FIX-OPENSUSE Update BIG5-HKSCS charmap to HKSCS-2008 +Patch2011: big5-hkscs-update.patch.bz2 +# PATCH-FIX-OPENSUSE Fix parsing of numeric hosts in gethostbyname_r +Patch2012: digits-dots.patch +# PATCH-FIX-OPENSUSE Properly cache the result from looking up the nss database config +Patch2013: nss-database.patch +# PATCH-FIX-OPENSUSE Properly handle %W in strptime +Patch2014: strptime-W-week.patch +# PATCH-FIX-OPENSUSE Revert problematic fixes for [BZ #11741] +Patch2015: printf-overrun.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -463,11 +481,21 @@ rm nscd/s-stamp %patch20 -p1 %endif +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 + # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 -%patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 +%patch2013 -p1 +%patch2014 -p1 +%patch2015 -p1 %patch3000 @@ -710,7 +738,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 -make -C cc-base -k check +make -C cc-base -k check || +find cc-base -name "*.out" | tar -czf - -T - | base64 %else # This has to pass on all platforms! # Exceptions: @@ -828,16 +857,6 @@ mkdir -p %{buildroot}/%{_lib}/obsolete # the generic one (RH#162634) cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h -%ifarch s390x - # s390x is different ... - mkdir %{buildroot}/lib - ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld64.so.1 -%endif -%ifarch aarch64 -mkdir %{buildroot}/lib -ln -sf ../%{_lib}/ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux-aarch64.so.1 -%endif - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} diff --git a/nss-database.patch b/nss-database.patch new file mode 100644 index 0000000..bc51781 --- /dev/null +++ b/nss-database.patch @@ -0,0 +1,115 @@ +From a6856a042a0669ac3f8bc675e8e1de14b5d09b94 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Thu, 24 Jan 2013 12:32:09 +0100 +Subject: [PATCH] Properly cache the result from looking up the nss database + config + + [BZ #15048] + * nscd/aicache.c (addhstaiX): Properly use the cache variable for + the nss database lookup. + * nscd/initgrcache.c (addinitgroupsX): Likewise. + * sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise. +--- + nscd/aicache.c | 15 +++++++-------- + nscd/initgrcache.c | 15 +++++++-------- + sysdeps/posix/getaddrinfo.c | 14 ++++++-------- + 3 files changed, 20 insertions(+), 24 deletions(-) + +diff --git a/nscd/aicache.c b/nscd/aicache.c +index 23dcf80..17e06e7 100644 +--- a/nscd/aicache.c ++++ b/nscd/aicache.c +@@ -85,20 +85,19 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, + } + + static service_user *hosts_database; +- service_user *nip = NULL; ++ service_user *nip; + int no_more; + int rc6 = 0; + int rc4 = 0; + int herrno = 0; + +- if (hosts_database != NULL) +- { +- nip = hosts_database; +- no_more = 0; +- } +- else ++ if (hosts_database == NULL) + no_more = __nss_database_lookup ("hosts", NULL, +- "dns [!UNAVAIL=return] files", &nip); ++ "dns [!UNAVAIL=return] files", ++ &hosts_database); ++ else ++ no_more = 0; ++ nip = hosts_database; + + if (__res_maybe_init (&_res, 0) == -1) + no_more = 1; +diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c +index 462780e..4580884 100644 +--- a/nscd/initgrcache.c ++++ b/nscd/initgrcache.c +@@ -80,17 +80,16 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + } + + static service_user *group_database; +- service_user *nip = NULL; ++ service_user *nip; + int no_more; + +- if (group_database != NULL) +- { +- nip = group_database; +- no_more = 0; +- } +- else ++ if (group_database == NULL) + no_more = __nss_database_lookup ("group", NULL, +- "compat [NOTFOUND=return] files", &nip); ++ "compat [NOTFOUND=return] files", ++ &group_database); ++ else ++ no_more = 0; ++ nip = group_database; + + /* We always use sysconf even if NGROUPS_MAX is defined. That way, the + limit can be raised in the kernel configuration without having to +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index d368306..4800599 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -557,7 +557,7 @@ gaih_inet (const char *name, const struct gaih_service *service, + struct gaih_addrtuple **pat = &at; + int no_data = 0; + int no_inet6_data = 0; +- service_user *nip = NULL; ++ service_user *nip; + enum nss_status inet6_status = NSS_STATUS_UNAVAIL; + enum nss_status status = NSS_STATUS_UNAVAIL; + int no_more; +@@ -790,15 +790,13 @@ gaih_inet (const char *name, const struct gaih_service *service, + } + #endif + +- if (__nss_hosts_database != NULL) +- { +- no_more = 0; +- nip = __nss_hosts_database; +- } +- else ++ if (__nss_hosts_database == NULL) + no_more = __nss_database_lookup ("hosts", NULL, + "dns [!UNAVAIL=return] files", +- &nip); ++ &__nss_hosts_database); ++ else ++ no_more = 0; ++ nip = __nss_hosts_database; + + /* Initialize configurations. */ + if (__builtin_expect (!_res_hconf.initialized, 0)) +-- +1.8.2.3 + diff --git a/printf-overrun.patch b/printf-overrun.patch new file mode 100644 index 0000000..211c909 --- /dev/null +++ b/printf-overrun.patch @@ -0,0 +1,179 @@ +From 1aa92494e55792b568663b5aad81a58fad35490d Mon Sep 17 00:00:00 2001 +From: Eric Biggers +Date: Thu, 18 Apr 2013 17:46:08 +0200 +Subject: [PATCH] PR15362 + + [BZ #15362] + * libio/fileops.c: Revert problematic fixes for [BZ #11741] + * libio/iofwrite.c: Likewise. + * libio/iofwrite_u.c: Likewise. + * libio/iopadn.c: Likewise. + * libio/iowpadn.c: Likewise. + * stdio-common/vfprintf.c: Fix [BZ #11741] properly by checking whether + _IO_padn() returned the full count written. +--- + libio/fileops.c | 21 +++++++++------------ + libio/iofwrite.c | 10 +++++----- + libio/iofwrite_u.c | 10 +++++----- + libio/iopadn.c | 2 +- + libio/iowpadn.c | 2 +- + stdio-common/vfprintf.c | 12 ++++++------ + 6 files changed, 27 insertions(+), 30 deletions(-) + +diff --git a/libio/fileops.c b/libio/fileops.c +index 61b61b3..90d5e88 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -1245,13 +1245,12 @@ _IO_new_file_write (f, data, n) + _IO_ssize_t n; + { + _IO_ssize_t to_do = n; +- _IO_ssize_t count = 0; + while (to_do > 0) + { +- count = (__builtin_expect (f->_flags2 +- & _IO_FLAGS2_NOTCANCEL, 0) +- ? write_not_cancel (f->_fileno, data, to_do) +- : write (f->_fileno, data, to_do)); ++ _IO_ssize_t count = (__builtin_expect (f->_flags2 ++ & _IO_FLAGS2_NOTCANCEL, 0) ++ ? write_not_cancel (f->_fileno, data, to_do) ++ : write (f->_fileno, data, to_do)); + if (count < 0) + { + f->_flags |= _IO_ERR_SEEN; +@@ -1263,7 +1262,7 @@ _IO_new_file_write (f, data, n) + n -= to_do; + if (f->_offset >= 0) + f->_offset += n; +- return count < 0 ? count : n; ++ return n; + } + + _IO_size_t +@@ -1323,13 +1322,11 @@ _IO_new_file_xsputn (f, data, n) + _IO_size_t block_size, do_write; + /* Next flush the (full) buffer. */ + if (_IO_OVERFLOW (f, EOF) == EOF) +- /* If nothing else has to be written or nothing has been written, we +- must not signal the caller that the call was even partially +- successful. */ +- return (to_do == 0 || to_do == n) ? EOF : n - to_do; ++ /* If nothing else has to be written we must not signal the ++ caller that everything has been written. */ ++ return to_do == 0 ? EOF : n - to_do; + +- /* Try to maintain alignment: write a whole number of blocks. +- dont_write is what gets left over. */ ++ /* Try to maintain alignment: write a whole number of blocks. */ + block_size = f->_IO_buf_end - f->_IO_buf_base; + do_write = to_do - (block_size >= 128 ? to_do % block_size : 0); + +diff --git a/libio/iofwrite.c b/libio/iofwrite.c +index 81596a6..66542ea 100644 +--- a/libio/iofwrite.c ++++ b/libio/iofwrite.c +@@ -42,12 +42,12 @@ _IO_fwrite (buf, size, count, fp) + if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1) + written = _IO_sputn (fp, (const char *) buf, request); + _IO_release_lock (fp); +- /* We are guaranteed to have written all of the input, none of it, or +- some of it. */ +- if (written == request) ++ /* We have written all of the input in case the return value indicates ++ this or EOF is returned. The latter is a special case where we ++ simply did not manage to flush the buffer. But the data is in the ++ buffer and therefore written as far as fwrite is concerned. */ ++ if (written == request || written == EOF) + return count; +- else if (written == EOF) +- return 0; + else + return written / size; + } +diff --git a/libio/iofwrite_u.c b/libio/iofwrite_u.c +index 4a9d6ca..18dc6d0 100644 +--- a/libio/iofwrite_u.c ++++ b/libio/iofwrite_u.c +@@ -44,12 +44,12 @@ fwrite_unlocked (buf, size, count, fp) + if (_IO_fwide (fp, -1) == -1) + { + written = _IO_sputn (fp, (const char *) buf, request); +- /* We are guaranteed to have written all of the input, none of it, or +- some of it. */ +- if (written == request) ++ /* We have written all of the input in case the return value indicates ++ this or EOF is returned. The latter is a special case where we ++ simply did not manage to flush the buffer. But the data is in the ++ buffer and therefore written as far as fwrite is concerned. */ ++ if (written == request || written == EOF) + return count; +- else if (written == EOF) +- return 0; + } + + return written / size; +diff --git a/libio/iopadn.c b/libio/iopadn.c +index cc93c0f..5ebbcf4 100644 +--- a/libio/iopadn.c ++++ b/libio/iopadn.c +@@ -59,7 +59,7 @@ _IO_padn (fp, pad, count) + w = _IO_sputn (fp, padptr, PADSIZE); + written += w; + if (w != PADSIZE) +- return w == EOF ? w : written; ++ return written; + } + + if (i > 0) +diff --git a/libio/iowpadn.c b/libio/iowpadn.c +index d94db71..5600f37 100644 +--- a/libio/iowpadn.c ++++ b/libio/iowpadn.c +@@ -65,7 +65,7 @@ _IO_wpadn (fp, pad, count) + w = _IO_sputn (fp, (char *) padptr, PADSIZE); + written += w; + if (w != PADSIZE) +- return w == EOF ? w : written; ++ return written; + } + + if (i > 0) +diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +index c8bcf5a..61d9dc2 100644 +--- a/stdio-common/vfprintf.c ++++ b/stdio-common/vfprintf.c +@@ -90,13 +90,13 @@ + do { \ + if (width > 0) \ + { \ +- unsigned int d = _IO_padn (s, (Padchar), width); \ +- if (__builtin_expect (d == EOF, 0)) \ ++ _IO_ssize_t written = _IO_padn (s, (Padchar), width); \ ++ if (__builtin_expect (written != width, 0)) \ + { \ + done = -1; \ + goto all_done; \ + } \ +- done_add (d); \ ++ done_add (written); \ + } \ + } while (0) + # define PUTC(C, F) _IO_putc_unlocked (C, F) +@@ -119,13 +119,13 @@ + do { \ + if (width > 0) \ + { \ +- unsigned int d = _IO_wpadn (s, (Padchar), width); \ +- if (__builtin_expect (d == EOF, 0)) \ ++ _IO_ssize_t written = _IO_wpadn (s, (Padchar), width); \ ++ if (__builtin_expect (written != width, 0)) \ + { \ + done = -1; \ + goto all_done; \ + } \ +- done_add (d); \ ++ done_add (written); \ + } \ + } while (0) + # define PUTC(C, F) _IO_putwc_unlocked (C, F) diff --git a/regexp-overrun.patch b/regexp-overrun.patch new file mode 100644 index 0000000..8685e8a --- /dev/null +++ b/regexp-overrun.patch @@ -0,0 +1,161 @@ +From a445af0bc722d620afed7683cd320c0e4c7c6059 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Tue, 29 Jan 2013 14:45:15 +0100 +Subject: [PATCH] Fix buffer overrun in regexp matcher + + [BZ #15078] + * posix/regexec.c (extend_buffers): Add parameter min_len. + (check_matching): Pass minimum needed length. + (clean_state_log_if_needed): Likewise. + (get_subexp): Likewise. + * posix/Makefile (tests): Add bug-regex34. + (bug-regex34-ENV): Define. + * posix/bug-regex34.c: New file. + +--- + ChangeLog | 9 +++++++++ + NEWS | 3 ++- + posix/Makefile | 3 ++- + posix/bug-regex34.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ + posix/regexec.c | 16 +++++++++------- + 5 files changed, 68 insertions(+), 9 deletions(-) + create mode 100644 posix/bug-regex34.c + +diff --git a/posix/Makefile b/posix/Makefile +index 88d409f..2cacd21 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -86,7 +86,7 @@ tests := tstgetopt testfnm runtests runptests \ + tst-rfc3484-3 \ + tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ + bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ +- bug-getopt5 tst-getopt_long1 ++ bug-getopt5 tst-getopt_long1 bug-regex34 + xtests := bug-ga2 + ifeq (yes,$(build-shared)) + test-srcs := globtest +@@ -199,6 +199,7 @@ bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex32-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex33-ENV = LOCPATH=$(common-objpfx)localedata ++bug-regex34-ENV = LOCPATH=$(common-objpfx)localedata + tst-rxspencer-ARGS = --utf8 rxspencer/tests + tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata + tst-pcre-ARGS = PCRE.tests +diff --git a/posix/bug-regex34.c b/posix/bug-regex34.c +new file mode 100644 +index 0000000..bb3b613 +--- /dev/null ++++ b/posix/bug-regex34.c +@@ -0,0 +1,46 @@ ++/* Test re_search with multi-byte characters in UTF-8. ++ Copyright (C) 2013 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define _GNU_SOURCE 1 ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ struct re_pattern_buffer r; ++ /* ကျွန်ုပ်x */ ++ const char *s = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax"; ++ ++ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL) ++ { ++ puts ("setlocale failed"); ++ return 1; ++ } ++ memset (&r, 0, sizeof (r)); ++ ++ re_compile_pattern ("[^x]x", 5, &r); ++ /* This was triggering a buffer overflow. */ ++ re_search (&r, s, strlen (s), 0, strlen (s), 0); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/posix/regexec.c b/posix/regexec.c +index 7f2de85..5ca2bf6 100644 +--- a/posix/regexec.c ++++ b/posix/regexec.c +@@ -197,7 +197,7 @@ static int group_nodes_into_DFAstates (const re_dfa_t *dfa, + static int check_node_accept (const re_match_context_t *mctx, + const re_token_t *node, int idx) + internal_function; +-static reg_errcode_t extend_buffers (re_match_context_t *mctx) ++static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) + internal_function; + + /* Entry point for POSIX code. */ +@@ -1160,7 +1160,7 @@ check_matching (re_match_context_t *mctx, int fl_longest_match, + || (BE (next_char_idx >= mctx->input.valid_len, 0) + && mctx->input.valid_len < mctx->input.len)) + { +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, next_char_idx + 1); + if (BE (err != REG_NOERROR, 0)) + { + assert (err == REG_ESPACE); +@@ -1738,7 +1738,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx) + && mctx->input.valid_len < mctx->input.len)) + { + reg_errcode_t err; +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, next_state_log_idx + 1); + if (BE (err != REG_NOERROR, 0)) + return err; + } +@@ -2792,7 +2792,7 @@ get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx) + if (bkref_str_off >= mctx->input.len) + break; + +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, bkref_str_off + 1); + if (BE (err != REG_NOERROR, 0)) + return err; + +@@ -4102,7 +4102,7 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, + + static reg_errcode_t + internal_function __attribute_warn_unused_result__ +-extend_buffers (re_match_context_t *mctx) ++extend_buffers (re_match_context_t *mctx, int min_len) + { + reg_errcode_t ret; + re_string_t *pstr = &mctx->input; +@@ -4111,8 +4111,10 @@ extend_buffers (re_match_context_t *mctx) + if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0)) + return REG_ESPACE; + +- /* Double the lengthes of the buffers. */ +- ret = re_string_realloc_buffers (pstr, MIN (pstr->len, pstr->bufs_len * 2)); ++ /* Double the lengthes of the buffers, but allocate at least MIN_LEN. */ ++ ret = re_string_realloc_buffers (pstr, ++ MAX (min_len, ++ MIN (pstr->len, pstr->bufs_len * 2))); + if (BE (ret != REG_NOERROR, 0)) + return ret; + +-- +1.8.2.3 + diff --git a/rtlddir.patch b/rtlddir.patch new file mode 100644 index 0000000..6831cf8 --- /dev/null +++ b/rtlddir.patch @@ -0,0 +1,288 @@ +From aaa8cb4b43511c62b11ac6f10e9beea3d5035a68 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Mon, 18 Mar 2013 12:44:47 +0100 +Subject: [PATCH 1/3] Add support for rtld directory different from slib + directory + + * configure.in: Substitute libc_cv_rtlddir. + * configure: Regenerate. + * config.make.in (rtlddir): Set from libc_cv_rtlddir. + * Makeconfig (rtlddir, inst_rtlddir): New variables. + (rtld-LDFLAGS): Use them with $(rtld-installed-name). + * elf/Makefile (install-others, CFLAGS-interp.c) + (ldso_install, common-ldd-rewrite): Likewise. + ($(inst_rtlddir)/$(rtld-installed-name)): Renamed from + $(inst_slibdir)/$(rtld-installed-name). + * scripts/rellns-sh: Add -p option. + * Makerules (make-shlib-link): Use rellns-sh to get relative name + for source. + +--- + ChangeLog | 15 +++++++++++++++ + Makeconfig | 10 ++++++++-- + Makerules | 4 ++-- + config.make.in | 1 + + configure | 2 ++ + configure.in | 1 + + elf/Makefile | 11 ++++++----- + scripts/rellns-sh | 17 +++++++++++++++-- + 8 files changed, 50 insertions(+), 11 deletions(-) + +Index: glibc-2.17/Makeconfig +=================================================================== +--- glibc-2.17.orig/Makeconfig ++++ glibc-2.17/Makeconfig +@@ -148,12 +148,18 @@ libdir = $(exec_prefix)/lib + endif + inst_libdir = $(install_root)$(libdir) + +-# Where to install the shared library and dynamic linker. ++# Where to install the shared library. + ifndef slibdir + slibdir = $(exec_prefix)/lib + endif + inst_slibdir = $(install_root)$(slibdir) + ++# Where to install the dynamic linker. ++ifndef rtlddir ++rtlddir = $(slibdir) ++endif ++inst_rtlddir = $(install_root)$(rtlddir) ++ + # Prefix to put on files installed in $(libdir). For libraries `libNAME.a', + # the prefix is spliced between `lib' and the name, so the linker switch + # `-l$(libprefix)NAME' finds the library; for other files the prefix is +@@ -443,7 +449,7 @@ ifndef +link-bounded + endif + ifndef config-LDFLAGS + ifeq (yes,$(build-shared)) +-config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name) ++config-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name) + endif + endif + ifndef link-libc +Index: glibc-2.17/Makerules +=================================================================== +--- glibc-2.17.orig/Makerules ++++ glibc-2.17/Makerules +@@ -873,7 +873,7 @@ ifeq (no,$(cross-compiling)) + symbolic-link-prog := $(common-objpfx)elf/sln + symbolic-link-list := $(common-objpfx)elf/symlink.list + define make-shlib-link +-echo $(> $(symbolic-link-list) ++echo `$(..)scripts/rellns-sh -p $< $@` $@ >> $(symbolic-link-list) + endef + else # cross-compiling + # We need a definition that can be used by elf/Makefile's install rules. +@@ -883,7 +883,7 @@ endif + ifndef make-shlib-link + define make-shlib-link + rm -f $@ +-$(LN_S) $( $@.new + mv -f $@.new $@ + +Index: glibc-2.17/config.make.in +=================================================================== +--- glibc-2.17.orig/config.make.in ++++ glibc-2.17/config.make.in +@@ -11,6 +11,7 @@ exec_prefix = @exec_prefix@ + datadir = @datadir@ + libdir = @libdir@ + slibdir = @libc_cv_slibdir@ ++rtlddir = @libc_cv_rtlddir@ + localedir = @libc_cv_localedir@ + sysconfdir = @libc_cv_sysconfdir@ + libexecdir = @libexecdir@ +Index: glibc-2.17/configure +=================================================================== +--- glibc-2.17.orig/configure ++++ glibc-2.17/configure +@@ -594,6 +594,7 @@ libc_cv_rootsbindir + libc_cv_localstatedir + libc_cv_sysconfdir + libc_cv_localedir ++libc_cv_rtlddir + libc_cv_slibdir + old_glibc_headers + use_nscd +@@ -7584,6 +7585,7 @@ fi + + + ++ + + + +Index: glibc-2.17/configure.in +=================================================================== +--- glibc-2.17.orig/configure.in ++++ glibc-2.17/configure.in +@@ -2117,6 +2117,7 @@ fi + AC_SUBST(old_glibc_headers) + + AC_SUBST(libc_cv_slibdir) ++AC_SUBST(libc_cv_rtlddir) + AC_SUBST(libc_cv_localedir) + AC_SUBST(libc_cv_sysconfdir) + AC_SUBST(libc_cv_localstatedir) +Index: glibc-2.17/elf/Makefile +=================================================================== +--- glibc-2.17.orig/elf/Makefile ++++ glibc-2.17/elf/Makefile +@@ -66,7 +66,7 @@ endif + ifeq (yes,$(build-shared)) + extra-objs = $(all-rtld-routines:%=%.os) soinit.os sofini.os interp.os + generated += librtld.os dl-allobjs.os ld.so ldd +-install-others = $(inst_slibdir)/$(rtld-installed-name) ++install-others = $(inst_rtlddir)/$(rtld-installed-name) + install-bin-script = ldd + endif + +@@ -340,7 +340,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld + | $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }' + + # interp.c exists just to get this string into the libraries. +-CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \ ++CFLAGS-interp.c = -D'RUNTIME_LINKER="$(rtlddir)/$(rtld-installed-name)"' \ + -DNOT_IN_libc=1 + $(objpfx)interp.os: $(common-objpfx)config.make + +@@ -372,18 +372,19 @@ $(inst_slibdir)/$(rtld-version-installed + $(make-target-directory) + $(do-install-program) + +-$(inst_slibdir)/$(rtld-installed-name): \ ++$(inst_rtlddir)/$(rtld-installed-name): \ + $(inst_slibdir)/$(rtld-version-installed-name) \ + $(inst_slibdir)/libc-$(version).so ++ $(make-target-directory) + $(make-shlib-link) + + # Special target called by parent to install just the dynamic linker. + .PHONY: ldso_install +-ldso_install: $(inst_slibdir)/$(rtld-installed-name) ++ldso_install: $(inst_rtlddir)/$(rtld-installed-name) + endif + + +-common-ldd-rewrite = -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ ++common-ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \ + -e 's%@VERSION@%$(version)%g' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/configure ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure +@@ -7,6 +7,7 @@ test -n "$libc_cv_slibdir" || + case "$prefix" in + /usr | /usr/) + libc_cv_slibdir="/lib64" ++ libc_cv_rtlddir="/lib" + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32bit and 64bit libraries +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure.in +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/configure.in ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure.in +@@ -7,6 +7,7 @@ test -n "$libc_cv_slibdir" || + case "$prefix" in + /usr | /usr/) + libc_cv_slibdir="/lib64" ++ libc_cv_rtlddir="/lib" + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32bit and 64bit libraries +Index: glibc-2.17/scripts/rellns-sh +=================================================================== +--- glibc-2.17.orig/scripts/rellns-sh ++++ glibc-2.17/scripts/rellns-sh +@@ -16,8 +16,17 @@ + # You should have received a copy of the GNU General Public License + # along with this program; if not, see . + ++# With -p, instead of creating the link print the computed relative link ++# name. ++do_print=false ++case $1 in ++ -p) ++ do_print=true ++ shift ++ ;; ++esac + if test $# -ne 2; then +- echo "Usage: rellns SOURCE DEST" >&2 ++ echo "Usage: rellns [-p] SOURCE DEST" >&2 + exit 1 + fi + +@@ -70,4 +79,8 @@ while test -n "$from"; do + from=`echo $from | sed 's%^[^/]*/*%%'` + done + +-ln -s $rfrom$to $2 ++if $do_print; then ++ echo "$rfrom$to" ++else ++ ln -s $rfrom$to $2 ++fi +Index: glibc-2.17/sysdeps/gnu/configure +=================================================================== +--- glibc-2.17.orig/sysdeps/gnu/configure ++++ glibc-2.17/sysdeps/gnu/configure +@@ -9,12 +9,17 @@ + case "$prefix" in + /usr | /usr/) + # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. +- # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, +- # and libc_cv_localedir. ++ # Allow earlier configure scripts to handle libc_cv_slibdir, ++ # libc_cv_rtlddir, libdir, and libc_cv_localedir. + test -n "$libc_cv_slibdir" || \ + case $machine in + sparc/sparc64 | x86_64* | powerpc/powerpc64 | s390/s390-64) + libc_cv_slibdir=/lib64 ++ case $machine in ++ s390/s390-64) ++ libc_cv_rtlddir=/lib ++ ;; ++ esac + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32bit and 64bit libraries +Index: glibc-2.17/sysdeps/gnu/configure.in +=================================================================== +--- glibc-2.17.orig/sysdeps/gnu/configure.in ++++ glibc-2.17/sysdeps/gnu/configure.in +@@ -9,12 +9,17 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the + case "$prefix" in + /usr | /usr/) + # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. +- # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, +- # and libc_cv_localedir. ++ # Allow earlier configure scripts to handle libc_cv_slibdir, ++ # libc_cv_rtlddir, libdir, and libc_cv_localedir. + test -n "$libc_cv_slibdir" || \ + case $machine in + sparc/sparc64 | x86_64* | powerpc/powerpc64 | s390/s390-64) + libc_cv_slibdir=/lib64 ++ case $machine in ++ s390/s390-64) ++ libc_cv_rtlddir=/lib ++ ;; ++ esac + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32bit and 64bit libraries diff --git a/strptime-W-week.patch b/strptime-W-week.patch new file mode 100644 index 0000000..acab5ff --- /dev/null +++ b/strptime-W-week.patch @@ -0,0 +1,44 @@ +From 3cc4f772e4e1a0999bf9a51a585c35d6f60421b6 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Tue, 5 Feb 2013 14:40:39 +0100 +Subject: [PATCH] Properly handle %W in strptime + + [BZ #15100] + * time/strptime_l.c (__strptime_internal): Count Sunday in a %W + week as 6 instead of -1. + * tst-strptime.c (day_tests): Add test case. +--- + time/strptime_l.c | 4 ++-- + time/tst-strptime.c | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/time/strptime_l.c b/time/strptime_l.c +index 1f2e8b6..00fc1ef 100644 +--- a/time/strptime_l.c ++++ b/time/strptime_l.c +@@ -1180,8 +1180,8 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM) + + if (!s.have_yday) + tm->tm_yday = ((7 - (tm->tm_wday - w_offset)) % 7 +- + (s.week_no - 1) *7 +- + save_wday - w_offset); ++ + (s.week_no - 1) * 7 ++ + (save_wday - w_offset + 7) % 7); + + if (!s.have_mday || !s.have_mon) + { +diff --git a/time/tst-strptime.c b/time/tst-strptime.c +index 12b084d..21fbb63 100644 +--- a/time/tst-strptime.c ++++ b/time/tst-strptime.c +@@ -41,6 +41,7 @@ static const struct + { "C", "19990502123412", "%Y%m%d%H%M%S", 0, 121, 4, 2 }, + { "C", "2001 20 Mon", "%Y %U %a", 1, 140, 4, 21 }, + { "C", "2001 21 Mon", "%Y %W %a", 1, 140, 4, 21 }, ++ { "C", "2012 00 Sun", "%Y %W %a", 0, 0, 0, 1 }, + { "ja_JP.EUC-JP", "2000-01-01 08:12:21 AM", "%Y-%m-%d %I:%M:%S %p", + 6, 0, 0, 1 }, + { "en_US.ISO-8859-1", "2000-01-01 08:12:21 PM", "%Y-%m-%d %I:%M:%S %p", +-- +1.8.2.3 + From 490921d3c85291893f3cb57fb32108917487c7bb3b990501320d5b4808f7f470 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 27 May 2013 07:49:31 +0000 Subject: [PATCH 138/204] Accepting request 176169 from Base:System - aarch64-sigsetjmp.patch: Fix sigsetjmp on aarch64 (forwarded request 176168 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/176169 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=145 --- aarch64-sigsetjmp.patch | 38 ++++++++++++++++++++++++++++++++++++++ glibc-testsuite.changes | 10 ++++++++++ glibc-testsuite.spec | 18 +++++++++++------- glibc-utils.changes | 10 ++++++++++ glibc-utils.spec | 18 +++++++++++------- glibc.changes | 10 ++++++++++ glibc.spec | 18 +++++++++++------- 7 files changed, 101 insertions(+), 21 deletions(-) create mode 100644 aarch64-sigsetjmp.patch diff --git a/aarch64-sigsetjmp.patch b/aarch64-sigsetjmp.patch new file mode 100644 index 0000000..28bc1bd --- /dev/null +++ b/aarch64-sigsetjmp.patch @@ -0,0 +1,38 @@ +From c272f67f9fc4c354336241ef4f3876771ccab443 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Mon, 20 May 2013 10:19:31 +0200 +Subject: [PATCH] AArch64: Don't clobber argument for tail call to + __sigjmp_save in sigsetjmp + + [BZ #15493] + * sysdeps/aarch64/setjmp.S (__sigsetjmp): Don't clobber register + x1. + [NOT_IN_libc && IS_IN_rtld]: Don't call __sigjmp_save. +--- + ports/sysdeps/aarch64/setjmp.S | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/ports/sysdeps/aarch64/setjmp.S b/ports/sysdeps/aarch64/setjmp.S +index cff81c7..10e0709 100644 +--- a/ports/sysdeps/aarch64/setjmp.S ++++ b/ports/sysdeps/aarch64/setjmp.S +@@ -44,8 +44,14 @@ ENTRY (__sigsetjmp) + stp d10, d11, [x0, #JB_D10<<3] + stp d12, d13, [x0, #JB_D12<<3] + stp d14, d15, [x0, #JB_D14<<3] +- mov x1, sp +- str x1, [x0, #JB_SP<<3] ++ mov x2, sp ++ str x2, [x0, #JB_SP<<3] ++#if defined NOT_IN_libc && defined IS_IN_rtld ++ /* In ld.so we never save the signal mask */ ++ mov w0, #0 ++ RET ++#else + b C_SYMBOL_NAME(__sigjmp_save) ++#endif + END (__sigsetjmp) + hidden_def (__sigsetjmp) +-- +1.8.2.3 + diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 682a968..25e82b7 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon May 20 08:26:35 UTC 2013 - schwab@suse.de + +- aarch64-sigsetjmp.patch: Fix sigsetjmp on aarch64 + +------------------------------------------------------------------- +Sat May 18 09:34:41 UTC 2013 - schwab@suse.de + +- Fix file list for glibc-utils + ------------------------------------------------------------------- Thu May 16 12:02:14 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index c34c8fe..f85f635 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -261,20 +261,22 @@ Patch1005: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd +# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch -# PATCH-FIX-OPENSUSE Update BIG5-HKSCS charmap to HKSCS-2008 +# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008 Patch2011: big5-hkscs-update.patch.bz2 -# PATCH-FIX-OPENSUSE Fix parsing of numeric hosts in gethostbyname_r +# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r Patch2012: digits-dots.patch -# PATCH-FIX-OPENSUSE Properly cache the result from looking up the nss database config +# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config Patch2013: nss-database.patch -# PATCH-FIX-OPENSUSE Properly handle %W in strptime +# PATCH-FIX-UPSTREAM Properly handle %W in strptime Patch2014: strptime-W-week.patch -# PATCH-FIX-OPENSUSE Revert problematic fixes for [BZ #11741] +# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] Patch2015: printf-overrun.patch +# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp +Patch2016: aarch64-sigsetjmp.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -496,6 +498,7 @@ rm nscd/s-stamp %patch2013 -p1 %patch2014 -p1 %patch2015 -p1 +%patch2016 -p1 %patch3000 @@ -969,6 +972,7 @@ make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ cd manpages; make install_root=%{buildroot} install; cd .. # Remove unwanted files rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* +rm -f %{buildroot}/lib/ld*.so* rm -f %{buildroot}%{_libdir}/lib* rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -f %{buildroot}%{_mandir}/man1/[!m]* diff --git a/glibc-utils.changes b/glibc-utils.changes index 682a968..25e82b7 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon May 20 08:26:35 UTC 2013 - schwab@suse.de + +- aarch64-sigsetjmp.patch: Fix sigsetjmp on aarch64 + +------------------------------------------------------------------- +Sat May 18 09:34:41 UTC 2013 - schwab@suse.de + +- Fix file list for glibc-utils + ------------------------------------------------------------------- Thu May 16 12:02:14 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 57f475c..e58e9e7 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -260,20 +260,22 @@ Patch1005: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd +# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch -# PATCH-FIX-OPENSUSE Update BIG5-HKSCS charmap to HKSCS-2008 +# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008 Patch2011: big5-hkscs-update.patch.bz2 -# PATCH-FIX-OPENSUSE Fix parsing of numeric hosts in gethostbyname_r +# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r Patch2012: digits-dots.patch -# PATCH-FIX-OPENSUSE Properly cache the result from looking up the nss database config +# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config Patch2013: nss-database.patch -# PATCH-FIX-OPENSUSE Properly handle %W in strptime +# PATCH-FIX-UPSTREAM Properly handle %W in strptime Patch2014: strptime-W-week.patch -# PATCH-FIX-OPENSUSE Revert problematic fixes for [BZ #11741] +# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] Patch2015: printf-overrun.patch +# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp +Patch2016: aarch64-sigsetjmp.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -496,6 +498,7 @@ rm nscd/s-stamp %patch2013 -p1 %patch2014 -p1 %patch2015 -p1 +%patch2016 -p1 %patch3000 @@ -969,6 +972,7 @@ make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ cd manpages; make install_root=%{buildroot} install; cd .. # Remove unwanted files rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* +rm -f %{buildroot}/lib/ld*.so* rm -f %{buildroot}%{_libdir}/lib* rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -f %{buildroot}%{_mandir}/man1/[!m]* diff --git a/glibc.changes b/glibc.changes index 682a968..25e82b7 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon May 20 08:26:35 UTC 2013 - schwab@suse.de + +- aarch64-sigsetjmp.patch: Fix sigsetjmp on aarch64 + +------------------------------------------------------------------- +Sat May 18 09:34:41 UTC 2013 - schwab@suse.de + +- Fix file list for glibc-utils + ------------------------------------------------------------------- Thu May 16 12:02:14 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 6de652b..5f22ac3 100644 --- a/glibc.spec +++ b/glibc.spec @@ -261,20 +261,22 @@ Patch1005: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-OPENSUSE Properly check for short writes when sending the response in nscd +# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd Patch2010: nscd-short-write.patch -# PATCH-FIX-OPENSUSE Update BIG5-HKSCS charmap to HKSCS-2008 +# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008 Patch2011: big5-hkscs-update.patch.bz2 -# PATCH-FIX-OPENSUSE Fix parsing of numeric hosts in gethostbyname_r +# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r Patch2012: digits-dots.patch -# PATCH-FIX-OPENSUSE Properly cache the result from looking up the nss database config +# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config Patch2013: nss-database.patch -# PATCH-FIX-OPENSUSE Properly handle %W in strptime +# PATCH-FIX-UPSTREAM Properly handle %W in strptime Patch2014: strptime-W-week.patch -# PATCH-FIX-OPENSUSE Revert problematic fixes for [BZ #11741] +# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] Patch2015: printf-overrun.patch +# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp +Patch2016: aarch64-sigsetjmp.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -496,6 +498,7 @@ rm nscd/s-stamp %patch2013 -p1 %patch2014 -p1 %patch2015 -p1 +%patch2016 -p1 %patch3000 @@ -969,6 +972,7 @@ make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ cd manpages; make install_root=%{buildroot} install; cd .. # Remove unwanted files rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* +rm -f %{buildroot}/lib/ld*.so* rm -f %{buildroot}%{_libdir}/lib* rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -f %{buildroot}%{_mandir}/man1/[!m]* From 0001be93228b244d67f449317913de76574049a8bed6a57eb4dd6ce89bb2cfaa Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 11 Jun 2013 04:32:58 +0000 Subject: [PATCH 139/204] Accepting request 178385 from Base:System - glibc-bindresvport-blacklist.diff: Renamed from glibc-2.3.90-bindresvport.blacklist.diff; fix resource leaks (bnc#824046) - Remove glibc-armhf-compat.patch (forwarded request 178384 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/178385 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=146 --- glibc-armhf-compat.patch | 22 ------ ....diff => glibc-bindresvport-blacklist.diff | 68 ++++++++++--------- glibc-testsuite.changes | 8 +++ glibc-testsuite.spec | 8 +-- glibc-utils.changes | 8 +++ glibc-utils.spec | 8 +-- glibc.changes | 8 +++ glibc.spec | 8 +-- 8 files changed, 62 insertions(+), 76 deletions(-) delete mode 100644 glibc-armhf-compat.patch rename glibc-2.3.90-bindresvport.blacklist.diff => glibc-bindresvport-blacklist.diff (69%) diff --git a/glibc-armhf-compat.patch b/glibc-armhf-compat.patch deleted file mode 100644 index 01e656f..0000000 --- a/glibc-armhf-compat.patch +++ /dev/null @@ -1,22 +0,0 @@ -Patch for elf/dl-load.c taken from Debian: -For backward compatibility with armhf binaries built with the -old linker SONAME, we need to fake out the linker to believe -the new is the old, until such a point as everything is rebuilt. - ---- glibc-2.15/elf/dl-load.c.~1~ 2011-12-30 23:13:56.000000000 +0100 -+++ glibc-2.15/elf/dl-load.c 2012-04-18 15:05:33.203485389 +0200 -@@ -2082,10 +2082,13 @@ - soname = ((const char *) D_PTR (l, l_info[DT_STRTAB]) - + l->l_info[DT_SONAME]->d_un.d_val); - if (strcmp (name, soname) != 0) -+#ifdef __arm__ -+ if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3")) -+#endif - continue; - - /* We have a match on a new name -- cache it. */ -- add_name_to_object (l, soname); -+ add_name_to_object (l, name); - l->l_soname_added = 1; - } - diff --git a/glibc-2.3.90-bindresvport.blacklist.diff b/glibc-bindresvport-blacklist.diff similarity index 69% rename from glibc-2.3.90-bindresvport.blacklist.diff rename to glibc-bindresvport-blacklist.diff index d97e597..b561669 100644 --- a/glibc-2.3.90-bindresvport.blacklist.diff +++ b/glibc-bindresvport-blacklist.diff @@ -1,7 +1,7 @@ -Index: glibc-2.16.90/sunrpc/bindrsvprt.c +Index: glibc-2.17/sunrpc/bindrsvprt.c =================================================================== ---- glibc-2.16.90.orig/sunrpc/bindrsvprt.c -+++ glibc-2.16.90/sunrpc/bindrsvprt.c +--- glibc-2.17.orig/sunrpc/bindrsvprt.c ++++ glibc-2.17/sunrpc/bindrsvprt.c @@ -29,6 +29,9 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -12,7 +12,7 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c #include #include #include -@@ -42,21 +45,102 @@ +@@ -42,6 +45,93 @@ */ __libc_lock_define_initialized (static, lock); @@ -21,10 +21,8 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c +#define ENDPORT (IPPORT_RESERVED - 1) +#define NPORTS (ENDPORT - STARTPORT + 1) + -+/* -+ * Read the file /etc/rpc.blacklisted, so that we don't bind -+ * to this ports. -+ */ ++/* Read the file /etc/rpc.blacklisted, so that we don't bind to these ++ ports. */ + +static int blacklist_read; +static int *list; @@ -39,11 +37,13 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c + int size = 0, ptr = 0; + + __libc_lock_lock (lock); ++ if (blacklist_read) ++ goto unlock; + blacklist_read = 1; + + fp = fopen ("/etc/bindresvport.blacklist", "r"); -+ if (NULL == fp) -+ return; ++ if (fp == NULL) ++ goto unlock; + + while (!feof_unlocked (fp)) + { @@ -54,47 +54,51 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c + break; + + cp = buf; -+ tmp = strchr (cp, '#'); /* remove comments */ ++ /* Remove comments. */ ++ tmp = strchr (cp, '#'); + if (tmp) + *tmp = '\0'; -+ while (isspace ((int)*cp)) /* remove spaces and tabs */ ++ /* Remove spaces and tabs. */ ++ while (isspace ((unsigned char) *cp)) + ++cp; -+ if (*cp == '\0') /* ignore empty lines */ ++ /* Ignore empty lines. */ ++ if (*cp == '\0') + continue; + if (cp[strlen (cp) - 1] == '\n') + cp[strlen (cp) - 1] = '\0'; + + port = strtoul (cp, &tmp, 0); -+ while (isspace(*tmp)) ++ while (isspace ((unsigned char) *tmp)) + ++tmp; + if (*tmp != '\0' || (port == ULONG_MAX && errno == ERANGE)) + continue; + -+ /* Don't bother with out-of-range ports */ ++ /* Don't bother with out-of-range ports. */ + if (port < LOWPORT || port > ENDPORT) + continue; + + if (ptr >= size) + { + size += 10; -+ list = realloc (list, size * sizeof (int)); -+ if (list == NULL) ++ int *new_list = realloc (list, size * sizeof (int)); ++ if (new_list == NULL) + { ++ free (list); ++ list = NULL; + free (buf); -+ return; ++ goto unlock; + } ++ list = new_list; + } + + list[ptr++] = port; + } + + fclose (fp); -+ -+ if (buf) -+ free (buf); -+ ++ free (buf); + list_size = ptr; + ++ unlock: + __libc_lock_unlock (lock); +} + @@ -102,11 +106,7 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c /* * Bind a socket to a privileged IP port */ - int - bindresvport (int sd, struct sockaddr_in *sin) - { -+ static short startport = STARTPORT; - static short port; +@@ -52,12 +142,11 @@ bindresvport (int sd, struct sockaddr_in struct sockaddr_in myaddr; int i; @@ -114,13 +114,15 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c -#define LOWPORT 512 -#define ENDPORT (IPPORT_RESERVED - 1) -#define NPORTS (ENDPORT - STARTPORT + 1) -- static short startport = STARTPORT; + static short startport = STARTPORT; + + if (!blacklist_read) + load_blacklist (); - ++ if (sin == (struct sockaddr_in *) 0) { -@@ -75,6 +159,7 @@ bindresvport (int sd, struct sockaddr_in + sin = &myaddr; +@@ -75,6 +164,7 @@ bindresvport (int sd, struct sockaddr_in port = (__getpid () % NPORTS) + STARTPORT; } @@ -128,7 +130,7 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c /* Initialize to make gcc happy. */ int res = -1; -@@ -86,12 +171,22 @@ bindresvport (int sd, struct sockaddr_in +@@ -86,12 +176,22 @@ bindresvport (int sd, struct sockaddr_in again: for (i = 0; i < nports; ++i) { @@ -139,7 +141,7 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c + + sin->sin_port = htons (port); + -+ /* Check, if this port is not blacklisted. */ ++ /* Check that this port is not blacklisted. */ + for (j = 0; j < list_size; j++) + if (port == list[j]) + goto try_next_port; @@ -148,7 +150,7 @@ Index: glibc-2.16.90/sunrpc/bindrsvprt.c if (res >= 0 || errno != EADDRINUSE) break; + -+try_next_port: ++ try_next_port: + if (++port > endport) + port = startport; } diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 25e82b7..52103e8 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de + +- glibc-bindresvport-blacklist.diff: Renamed from + glibc-2.3.90-bindresvport.blacklist.diff; fix resource leaks + (bnc#824046) +- Remove glibc-armhf-compat.patch + ------------------------------------------------------------------- Mon May 20 08:26:35 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index f85f635..df13539 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -203,13 +203,11 @@ Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de Patch13: glibc-2.3.2.no_archive.diff # PATCH-FIX-OPENSUSE -- add blacklist for bindresvport -Patch14: glibc-2.3.90-bindresvport.blacklist.diff +Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de -Patch20: glibc-armhf-compat.patch # PATCH-FIX-OPENSUSE Fix check abi for crypt additions Patch21: glibc-fix-check-abi.patch # PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail @@ -479,10 +477,6 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%ifarch armv7l armv7hl -%patch20 -p1 -%endif - %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 25e82b7..52103e8 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de + +- glibc-bindresvport-blacklist.diff: Renamed from + glibc-2.3.90-bindresvport.blacklist.diff; fix resource leaks + (bnc#824046) +- Remove glibc-armhf-compat.patch + ------------------------------------------------------------------- Mon May 20 08:26:35 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index e58e9e7..29a388e 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -202,13 +202,11 @@ Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de Patch13: glibc-2.3.2.no_archive.diff # PATCH-FIX-OPENSUSE -- add blacklist for bindresvport -Patch14: glibc-2.3.90-bindresvport.blacklist.diff +Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de -Patch20: glibc-armhf-compat.patch # PATCH-FIX-OPENSUSE Fix check abi for crypt additions Patch21: glibc-fix-check-abi.patch # PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail @@ -479,10 +477,6 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%ifarch armv7l armv7hl -%patch20 -p1 -%endif - %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 diff --git a/glibc.changes b/glibc.changes index 25e82b7..52103e8 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de + +- glibc-bindresvport-blacklist.diff: Renamed from + glibc-2.3.90-bindresvport.blacklist.diff; fix resource leaks + (bnc#824046) +- Remove glibc-armhf-compat.patch + ------------------------------------------------------------------- Mon May 20 08:26:35 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 5f22ac3..5b70087 100644 --- a/glibc.spec +++ b/glibc.spec @@ -203,13 +203,11 @@ Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de Patch13: glibc-2.3.2.no_archive.diff # PATCH-FIX-OPENSUSE -- add blacklist for bindresvport -Patch14: glibc-2.3.90-bindresvport.blacklist.diff +Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de -Patch20: glibc-armhf-compat.patch # PATCH-FIX-OPENSUSE Fix check abi for crypt additions Patch21: glibc-fix-check-abi.patch # PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail @@ -479,10 +477,6 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%ifarch armv7l armv7hl -%patch20 -p1 -%endif - %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 From b279560015f3ebc701b92977be2b4802b337e8224fe7e8bb42d1a34d78cad5c1 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 19 Jun 2013 12:43:49 +0000 Subject: [PATCH 140/204] Accepting request 179303 from Base:System - nscd-netgroup.patch: Fix handling of netgroup cache in nscd (bnc#819524) (forwarded request 179302 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/179303 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=147 --- glibc-testsuite.changes | 5 +++ glibc-testsuite.spec | 3 ++ glibc-utils.changes | 5 +++ glibc-utils.spec | 3 ++ glibc.changes | 5 +++ glibc.spec | 3 ++ nscd-netgroup.patch | 98 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 122 insertions(+) create mode 100644 nscd-netgroup.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 52103e8..747df4e 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de + +- nscd-netgroup.patch: Fix handling of netgroup cache in nscd (bnc#819524) + ------------------------------------------------------------------- Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index df13539..ab8ef34 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -255,6 +255,8 @@ Patch1003: rtlddir.patch Patch1004: regexp-overrun.patch # PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results Patch1005: getaddrinfo-overflow.patch +# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd +Patch1006: nscd-netgroup.patch ### # Patches awaiting upstream approval @@ -483,6 +485,7 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 52103e8..747df4e 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de + +- nscd-netgroup.patch: Fix handling of netgroup cache in nscd (bnc#819524) + ------------------------------------------------------------------- Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 29a388e..340d184 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -254,6 +254,8 @@ Patch1003: rtlddir.patch Patch1004: regexp-overrun.patch # PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results Patch1005: getaddrinfo-overflow.patch +# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd +Patch1006: nscd-netgroup.patch ### # Patches awaiting upstream approval @@ -483,6 +485,7 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/glibc.changes b/glibc.changes index 52103e8..747df4e 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de + +- nscd-netgroup.patch: Fix handling of netgroup cache in nscd (bnc#819524) + ------------------------------------------------------------------- Mon Jun 10 08:33:46 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 5b70087..43a0772 100644 --- a/glibc.spec +++ b/glibc.spec @@ -255,6 +255,8 @@ Patch1003: rtlddir.patch Patch1004: regexp-overrun.patch # PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results Patch1005: getaddrinfo-overflow.patch +# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd +Patch1006: nscd-netgroup.patch ### # Patches awaiting upstream approval @@ -483,6 +485,7 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/nscd-netgroup.patch b/nscd-netgroup.patch new file mode 100644 index 0000000..591cce2 --- /dev/null +++ b/nscd-netgroup.patch @@ -0,0 +1,98 @@ +2013-06-11 Andreas Schwab + + [BZ #15577] + * nscd/connections.c (nscd_run_worker): Always zero-terminate key. + * nscd/netgroupcache.c (addgetnetgrentX): Properly handle absent + values in the triple. + * nscd/nscd_netgroup.c (__nscd_setnetgrent): Include zero + terminator in the group key. + +Index: glibc-2.17/nscd/connections.c +=================================================================== +--- glibc-2.17.orig/nscd/connections.c ++++ glibc-2.17/nscd/connections.c +@@ -1762,7 +1762,7 @@ nscd_run_worker (void *p) + else + { + /* Get the key. */ +- char keybuf[MAXKEYLEN]; ++ char keybuf[MAXKEYLEN + 1]; + + if (__builtin_expect (TEMP_FAILURE_RETRY (read (fd, keybuf, + req.key_len)) +@@ -1774,6 +1774,7 @@ nscd_run_worker (void *p) + strerror_r (errno, buf, sizeof (buf))); + goto close_and_out; + } ++ keybuf[req.key_len] = '\0'; + + if (__builtin_expect (debug_level, 0) > 0) + { +Index: glibc-2.17/nscd/netgroupcache.c +=================================================================== +--- glibc-2.17.orig/nscd/netgroupcache.c ++++ glibc-2.17/nscd/netgroupcache.c +@@ -192,18 +192,26 @@ addgetnetgrentX (struct database_dyn *db + const char *nuser = data.val.triple.user; + const char *ndomain = data.val.triple.domain; + +- if (data.val.triple.host > data.val.triple.user +- || data.val.triple.user > data.val.triple.domain) ++ if (nhost == NULL || nuser == NULL || ndomain == NULL ++ || nhost > nuser || nuser > ndomain) + { +- const char *last = MAX (nhost, +- MAX (nuser, ndomain)); +- size_t bufused = (last + strlen (last) + 1 +- - buffer); ++ const char *last = nhost; ++ if (last == NULL ++ || (nuser != NULL && nuser > last)) ++ last = nuser; ++ if (last == NULL ++ || (ndomain != NULL && ndomain > last)) ++ last = ndomain; ++ ++ size_t bufused ++ = (last == NULL ++ ? buffilled ++ : last + strlen (last) + 1 - buffer); + + /* We have to make temporary copies. */ +- size_t hostlen = strlen (nhost) + 1; +- size_t userlen = strlen (nuser) + 1; +- size_t domainlen = strlen (ndomain) + 1; ++ size_t hostlen = strlen (nhost ?: "") + 1; ++ size_t userlen = strlen (nuser ?: "") + 1; ++ size_t domainlen = strlen (ndomain ?: "") + 1; + size_t needed = hostlen + userlen + domainlen; + + if (buflen - req->key_len - bufused < needed) +@@ -226,11 +234,11 @@ addgetnetgrentX (struct database_dyn *db + } + + nhost = memcpy (buffer + bufused, +- nhost, hostlen); ++ nhost ?: "", hostlen); + nuser = memcpy ((char *) nhost + hostlen, +- nuser, userlen); ++ nuser ?: "", userlen); + ndomain = memcpy ((char *) nuser + userlen, +- ndomain, domainlen); ++ ndomain ?: "", domainlen); + } + + char *wp = buffer + buffilled; +Index: glibc-2.17/nscd/nscd_netgroup.c +=================================================================== +--- glibc-2.17.orig/nscd/nscd_netgroup.c ++++ glibc-2.17/nscd/nscd_netgroup.c +@@ -48,7 +48,7 @@ __nscd_setnetgrent (const char *group, s + { + int gc_cycle; + int nretries = 0; +- size_t group_len = strlen (group); ++ size_t group_len = strlen (group) + 1; + + /* If the mapping is available, try to search there instead of + communicating with the nscd. */ From c33e287b34450d55ec58577bcee76dd20660f552acb1fdde0811c4568507ca96 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 21 Jun 2013 08:33:30 +0000 Subject: [PATCH 141/204] Accepting request 180094 from Base:System - rely on systemd-rpm-macros instead of the full thing OBS-URL: https://build.opensuse.org/request/show/180094 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=148 --- glibc-testsuite.changes | 5 +++++ glibc-testsuite.spec | 2 +- glibc-utils.changes | 5 +++++ glibc-utils.spec | 2 +- glibc.changes | 5 +++++ glibc.spec | 2 +- 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 747df4e..e4993c3 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com + +- rely on systemd-rpm-macros instead of the full thing + ------------------------------------------------------------------- Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index ab8ef34..a3a0130 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -38,8 +38,8 @@ Group: System/Libraries BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo +BuildRequires: systemd-rpm-macros BuildRequires: xz -BuildRequires: pkgconfig(systemd) %if %{testsuite_build} BuildRequires: gcc-c++ BuildRequires: libstdc++-devel diff --git a/glibc-utils.changes b/glibc-utils.changes index 747df4e..e4993c3 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com + +- rely on systemd-rpm-macros instead of the full thing + ------------------------------------------------------------------- Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 340d184..1a1aa92 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -37,8 +37,8 @@ Group: Development/Languages/C and C++ BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo +BuildRequires: systemd-rpm-macros BuildRequires: xz -BuildRequires: pkgconfig(systemd) %if %{testsuite_build} BuildRequires: gcc-c++ BuildRequires: libstdc++-devel diff --git a/glibc.changes b/glibc.changes index 747df4e..e4993c3 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com + +- rely on systemd-rpm-macros instead of the full thing + ------------------------------------------------------------------- Mon Jun 17 09:49:24 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 43a0772..6697c22 100644 --- a/glibc.spec +++ b/glibc.spec @@ -38,8 +38,8 @@ Group: System/Libraries BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo +BuildRequires: systemd-rpm-macros BuildRequires: xz -BuildRequires: pkgconfig(systemd) %if %{testsuite_build} BuildRequires: gcc-c++ BuildRequires: libstdc++-devel From e77945c999cb0ff2f03f86ab41cc01a59ccd002c66537fcaa2e577ff5fd98cdd Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 1 Jul 2013 13:54:06 +0000 Subject: [PATCH 142/204] Accepting request 181535 from Base:System - add ld-linux.so.3 compat symlink also for armv6hl - remove deprecated armv7l (forwarded request 181452 from dirkmueller) OBS-URL: https://build.opensuse.org/request/show/181535 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=149 --- glibc.changes | 6 ++++++ glibc.spec | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/glibc.changes b/glibc.changes index e4993c3..57c5d85 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jun 28 12:26:38 UTC 2013 - dmueller@suse.com + +- add ld-linux.so.3 compat symlink also for armv6hl +- remove deprecated armv7l + ------------------------------------------------------------------- Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com diff --git a/glibc.spec b/glibc.spec index 6697c22..bf7ec5f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -141,7 +141,7 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl # The old runtime linker link gets not provided by rpm find.provides, but it exists Provides: ld-linux.so.3 Provides: ld-linux.so.3(GLIBC_2.4) @@ -939,7 +939,7 @@ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ mkdir -p %{buildroot}/usr/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl # Provide compatibility link ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 %endif @@ -1068,7 +1068,7 @@ exit 0 # Each architecture has a different name for the dynamic linker: %ifarch %arm -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl /%{_lib}/ld-linux-armhf.so.3 # Keep compatibility link /%{_lib}/ld-linux.so.3 From ed1a911426cdb0a03b52922bba4fa20a5d6b325c2210388ec41bcb70135c12bb Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 11 Jul 2013 11:28:19 +0000 Subject: [PATCH 143/204] Accepting request 182499 from Base:System - crypt_blowfish-gensalt.patch: separare crypt_gensalt into its own library libowcrypt, remove crypt_rn and crypt_ra (fate#314945) - glibc-2.14-crypt-versioning.diff, glibc-fix-check-abi.patch, glibc-crypt-badsalttest.patch: folded into glibc-2.14-crypt.diff - crypt_blowfish-const.patch: constify crypt_blowfish - crypt_blowfish-1.2-sha.diff: refresh (forwarded request 182498 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/182499 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=150 --- crypt_blowfish-1.2-sha.diff | 53 +-- crypt_blowfish-1.2-versioning.diff | 55 --- crypt_blowfish-const.patch | 46 +++ crypt_blowfish-gensalt.patch | 380 ++++++++++++++++++ glibc-2.14-crypt-versioning.diff | 33 -- glibc-2.14-crypt.diff | 601 ++++++++++++++++++++++++++++- glibc-crypt-badsalttest.patch | 16 - glibc-fix-check-abi.patch | 581 ---------------------------- glibc-testsuite.changes | 16 + glibc-testsuite.spec | 28 +- glibc-utils.changes | 16 + glibc-utils.spec | 28 +- glibc.changes | 10 + glibc.spec | 22 +- 14 files changed, 1115 insertions(+), 770 deletions(-) delete mode 100644 crypt_blowfish-1.2-versioning.diff create mode 100644 crypt_blowfish-const.patch create mode 100644 crypt_blowfish-gensalt.patch delete mode 100644 glibc-2.14-crypt-versioning.diff delete mode 100644 glibc-crypt-badsalttest.patch delete mode 100644 glibc-fix-check-abi.patch diff --git a/crypt_blowfish-1.2-sha.diff b/crypt_blowfish-1.2-sha.diff index 546acec..218ce1e 100644 --- a/crypt_blowfish-1.2-sha.diff +++ b/crypt_blowfish-1.2-sha.diff @@ -9,11 +9,11 @@ Subject: [PATCH crypt_blowfish] support for sha256 and sha512 wrapper.c | 23 +++++++++++++++++++++ 3 files changed, 95 insertions(+), 0 deletions(-) -diff --git a/crypt.3 b/crypt.3 -index e2f25bd..40a3538 100644 ---- a/crypt.3 -+++ b/crypt.3 -@@ -399,6 +399,20 @@ too low for the currently available hardware. +Index: crypt_blowfish-1.2/crypt.3 +=================================================================== +--- crypt_blowfish-1.2.orig/crypt.3 ++++ crypt_blowfish-1.2/crypt.3 +@@ -399,6 +399,20 @@ too low for the currently available hard .hash "$1$" "\e$1\e$[^$]{1,8}\e$[./0-9A-Za-z]{22}" unlimited 8 "" 128 "6 to 48" 1000 .PP .ti -2 @@ -34,10 +34,10 @@ index e2f25bd..40a3538 100644 .BR "OpenBSD-style Blowfish-based" " (" bcrypt ) .br .B bcrypt -diff --git a/crypt_gensalt.c b/crypt_gensalt.c -index 73c15a1..5cf9812 100644 ---- a/crypt_gensalt.c -+++ b/crypt_gensalt.c +Index: crypt_blowfish-1.2/crypt_gensalt.c +=================================================================== +--- crypt_blowfish-1.2.orig/crypt_gensalt.c ++++ crypt_blowfish-1.2/crypt_gensalt.c @@ -19,6 +19,7 @@ */ @@ -46,7 +46,7 @@ index 73c15a1..5cf9812 100644 #include #ifndef __set_errno -@@ -122,3 +123,60 @@ char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, +@@ -122,3 +123,60 @@ char *_crypt_gensalt_md5_rn(const char * return output; } @@ -107,19 +107,23 @@ index 73c15a1..5cf9812 100644 + errno = ENOMEM; + return NULL; +} -diff --git a/wrapper.c b/wrapper.c -index 344053b..070d91d 100644 ---- a/wrapper.c -+++ b/wrapper.c -@@ -44,12 +44,18 @@ - - #include "crypt_blowfish.h" - #include "crypt_gensalt.h" +Index: crypt_blowfish-1.2/crypt_gensalt.h +=================================================================== +--- crypt_blowfish-1.2.orig/crypt_gensalt.h ++++ crypt_blowfish-1.2/crypt_gensalt.h +@@ -26,5 +26,7 @@ extern char *_crypt_gensalt_extended_rn( + const char *input, int size, char *output, int output_size); + extern char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, + const char *input, int size, char *output, int output_size); +extern char *_crypt_gensalt_sha2_rn(const char *prefix, unsigned long count, + const char *input, int size, char *output, int output_size); - #if defined(__GLIBC__) && defined(_LIBC) - /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ + #endif +Index: crypt_blowfish-1.2/wrapper.c +=================================================================== +--- crypt_blowfish-1.2.orig/wrapper.c ++++ crypt_blowfish-1.2/wrapper.c +@@ -50,6 +50,10 @@ #include "crypt.h" extern char *__md5_crypt_r(const char *key, const char *salt, char *buffer, int buflen); @@ -130,7 +134,7 @@ index 344053b..070d91d 100644 /* crypt-entry.c needs to be patched to define __des_crypt_r rather than * __crypt_r, and not define crypt_r and crypt at all */ extern char *__des_crypt_r(const char *key, const char *salt, -@@ -112,6 +118,10 @@ static char *_crypt_retval_magic(char *retval, const char *setting, +@@ -112,6 +116,10 @@ static char *_crypt_retval_magic(char *r char *__crypt_rn(__const char *key, __const char *setting, void *data, int size) { @@ -141,7 +145,7 @@ index 344053b..070d91d 100644 if (setting[0] == '$' && setting[1] == '2') return _crypt_blowfish_rn(key, setting, (char *)data, size); if (setting[0] == '$' && setting[1] == '1') -@@ -129,6 +139,16 @@ char *__crypt_rn(__const char *key, __const char *setting, +@@ -129,6 +137,16 @@ char *__crypt_rn(__const char *key, __co char *__crypt_ra(__const char *key, __const char *setting, void **data, int *size) { @@ -158,7 +162,7 @@ index 344053b..070d91d 100644 if (setting[0] == '$' && setting[1] == '2') { if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) return NULL; -@@ -210,6 +230,9 @@ char *__crypt_gensalt_rn(const char *prefix, unsigned long count, +@@ -210,6 +228,9 @@ char *__crypt_gensalt_rn(const char *pre return NULL; } @@ -168,6 +172,3 @@ index 344053b..070d91d 100644 if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) use = _crypt_gensalt_blowfish_rn; else --- -1.7.3.4 - diff --git a/crypt_blowfish-1.2-versioning.diff b/crypt_blowfish-1.2-versioning.diff deleted file mode 100644 index 2703d93..0000000 --- a/crypt_blowfish-1.2-versioning.diff +++ /dev/null @@ -1,55 +0,0 @@ -Index: crypt_blowfish-1.2/wrapper.c -=================================================================== ---- crypt_blowfish-1.2.orig/wrapper.c -+++ crypt_blowfish-1.2/wrapper.c -@@ -38,6 +38,7 @@ - #define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) - - #if defined(__GLIBC__) && defined(_LIBC) -+#include - #define __SKIP_GNU - #endif - #include "ow-crypt.h" -@@ -286,14 +287,36 @@ char *__crypt_gensalt(const char *prefix - } - - #if defined(__GLIBC__) && defined(_LIBC) --weak_alias(__crypt_rn, crypt_rn) --weak_alias(__crypt_ra, crypt_ra) -+#include - weak_alias(__crypt_r, crypt_r) - weak_alias(__crypt, crypt) --weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) --weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) --weak_alias(__crypt_gensalt, crypt_gensalt) --weak_alias(crypt, fcrypt) -+weak_alias(__crypt, fcrypt) -+#if SHARED -+/* Owl has crypt_gensalt as GLIBC_2_0 so keep for compatibility */ -+#if SHLIB_COMPAT (libcrypt, GLIBC_2_0, GLIBC_2_14) -+#define ow_compat_symbol(name) \ -+ compat_symbol(libcrypt, _compat_##name, name, GLIBC_2_0); \ -+ weak_alias(__##name, _compat_##name) -+#else -+#define ow_compat_symbol(name) -+#endif -+ -+#define ow_versioned(name) \ -+ ow_compat_symbol(name) \ -+ versioned_symbol(libcrypt, _owl_##name, name, OW_CRYPT_1_0); -+#else -+#define ow_versioned(name) -+#endif // SHARED -+ -+#define ow_symbol(name) \ -+ ow_versioned(name) \ -+ weak_alias(__##name, _owl_##name) \ -+ -+ow_symbol(crypt_rn) -+ow_symbol(crypt_ra) -+ow_symbol(crypt_gensalt) -+ow_symbol(crypt_gensalt_rn) -+ow_symbol(crypt_gensalt_ra) - #endif - - #ifdef TEST diff --git a/crypt_blowfish-const.patch b/crypt_blowfish-const.patch new file mode 100644 index 0000000..0d4a8d0 --- /dev/null +++ b/crypt_blowfish-const.patch @@ -0,0 +1,46 @@ +Index: crypt_blowfish-1.2/crypt_blowfish.c +=================================================================== +--- crypt_blowfish-1.2.orig/crypt_blowfish.c ++++ crypt_blowfish-1.2/crypt_blowfish.c +@@ -81,7 +81,7 @@ typedef struct { + * Magic IV for 64 Blowfish encryptions that we do at the end. + * The string is "OrpheanBeholderScryDoubt" on big-endian. + */ +-static BF_word BF_magic_w[6] = { ++static const BF_word BF_magic_w[6] = { + 0x4F727068, 0x65616E42, 0x65686F6C, + 0x64657253, 0x63727944, 0x6F756274 + }; +@@ -89,7 +89,7 @@ static BF_word BF_magic_w[6] = { + /* + * P-box and S-box tables initialized with digits of Pi. + */ +-static BF_ctx BF_init_state = { ++static const BF_ctx BF_init_state = { + { + { + 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, +@@ -361,10 +361,10 @@ static BF_ctx BF_init_state = { + } + }; + +-static unsigned char BF_itoa64[64 + 1] = ++static const unsigned char BF_itoa64[64 + 1] = + "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + +-static unsigned char BF_atoi64[0x60] = { ++static const unsigned char BF_atoi64[0x60] = { + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64, + 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, +@@ -440,8 +440,8 @@ static void BF_encode(char *dst, const B + + static void BF_swap(BF_word *x, int count) + { +- static int endianness_check = 1; +- char *is_little_endian = (char *)&endianness_check; ++ static const int endianness_check = 1; ++ const char *is_little_endian = (const char *)&endianness_check; + BF_word tmp; + + if (*is_little_endian) diff --git a/crypt_blowfish-gensalt.patch b/crypt_blowfish-gensalt.patch new file mode 100644 index 0000000..7062fc9 --- /dev/null +++ b/crypt_blowfish-gensalt.patch @@ -0,0 +1,380 @@ +Index: crypt_blowfish-1.2/compat-gensalt.c +=================================================================== +--- /dev/null ++++ crypt_blowfish-1.2/compat-gensalt.c +@@ -0,0 +1 @@ ++#include "wrapper-gensalt.c" +Index: crypt_blowfish-1.2/crypt_blowfish.c +=================================================================== +--- crypt_blowfish-1.2.orig/crypt_blowfish.c ++++ crypt_blowfish-1.2/crypt_blowfish.c +@@ -872,31 +872,3 @@ char *_crypt_blowfish_rn(const char *key + __set_errno(EINVAL); /* pretend we don't support this hash type */ + return NULL; + } +- +-char *_crypt_gensalt_blowfish_rn(const char *prefix, unsigned long count, +- const char *input, int size, char *output, int output_size) +-{ +- if (size < 16 || output_size < 7 + 22 + 1 || +- (count && (count < 4 || count > 31)) || +- prefix[0] != '$' || prefix[1] != '2' || +- (prefix[2] != 'a' && prefix[2] != 'y')) { +- if (output_size > 0) output[0] = '\0'; +- __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); +- return NULL; +- } +- +- if (!count) count = 5; +- +- output[0] = '$'; +- output[1] = '2'; +- output[2] = prefix[2]; +- output[3] = '$'; +- output[4] = '0' + count / 10; +- output[5] = '0' + count % 10; +- output[6] = '$'; +- +- BF_encode(&output[7], (const BF_word *)input, 16); +- output[7 + 22] = '\0'; +- +- return output; +-} +Index: crypt_blowfish-1.2/crypt_blowfish.h +=================================================================== +--- crypt_blowfish-1.2.orig/crypt_blowfish.h ++++ crypt_blowfish-1.2/crypt_blowfish.h +@@ -20,8 +20,5 @@ + extern int _crypt_output_magic(const char *setting, char *output, int size); + extern char *_crypt_blowfish_rn(const char *key, const char *setting, + char *output, int size); +-extern char *_crypt_gensalt_blowfish_rn(const char *prefix, +- unsigned long count, +- const char *input, int size, char *output, int output_size); + + #endif +Index: crypt_blowfish-1.2/crypt_gensalt.c +=================================================================== +--- crypt_blowfish-1.2.orig/crypt_gensalt.c ++++ crypt_blowfish-1.2/crypt_gensalt.c +@@ -180,3 +180,69 @@ error: + errno = ENOMEM; + return NULL; + } ++ ++ ++typedef unsigned int BF_word; ++ ++static const unsigned char BF_itoa64[64 + 1] = ++ "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; ++ ++static void BF_encode(char *dst, const BF_word *src, int size) ++{ ++ const unsigned char *sptr = (const unsigned char *)src; ++ const unsigned char *end = sptr + size; ++ unsigned char *dptr = (unsigned char *)dst; ++ unsigned int c1, c2; ++ ++ do { ++ c1 = *sptr++; ++ *dptr++ = BF_itoa64[c1 >> 2]; ++ c1 = (c1 & 0x03) << 4; ++ if (sptr >= end) { ++ *dptr++ = BF_itoa64[c1]; ++ break; ++ } ++ ++ c2 = *sptr++; ++ c1 |= c2 >> 4; ++ *dptr++ = BF_itoa64[c1]; ++ c1 = (c2 & 0x0f) << 2; ++ if (sptr >= end) { ++ *dptr++ = BF_itoa64[c1]; ++ break; ++ } ++ ++ c2 = *sptr++; ++ c1 |= c2 >> 6; ++ *dptr++ = BF_itoa64[c1]; ++ *dptr++ = BF_itoa64[c2 & 0x3f]; ++ } while (sptr < end); ++} ++ ++char *_crypt_gensalt_blowfish_rn(const char *prefix, unsigned long count, ++ const char *input, int size, char *output, int output_size) ++{ ++ if (size < 16 || output_size < 7 + 22 + 1 || ++ (count && (count < 4 || count > 31)) || ++ prefix[0] != '$' || prefix[1] != '2' || ++ (prefix[2] != 'a' && prefix[2] != 'y')) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ if (!count) count = 5; ++ ++ output[0] = '$'; ++ output[1] = '2'; ++ output[2] = prefix[2]; ++ output[3] = '$'; ++ output[4] = '0' + count / 10; ++ output[5] = '0' + count % 10; ++ output[6] = '$'; ++ ++ BF_encode(&output[7], (const BF_word *)input, 16); ++ output[7 + 22] = '\0'; ++ ++ return output; ++} +Index: crypt_blowfish-1.2/crypt_gensalt.h +=================================================================== +--- crypt_blowfish-1.2.orig/crypt_gensalt.h ++++ crypt_blowfish-1.2/crypt_gensalt.h +@@ -28,5 +28,8 @@ extern char *_crypt_gensalt_md5_rn(const + const char *input, int size, char *output, int output_size); + extern char *_crypt_gensalt_sha2_rn(const char *prefix, unsigned long count, + const char *input, int size, char *output, int output_size); ++extern char *_crypt_gensalt_blowfish_rn(const char *prefix, ++ unsigned long count, ++ const char *input, int size, char *output, int output_size); + + #endif +Index: crypt_blowfish-1.2/wrapper-gensalt.c +=================================================================== +--- /dev/null ++++ crypt_blowfish-1.2/wrapper-gensalt.c +@@ -0,0 +1,124 @@ ++/* ++ * Written by Solar Designer in 2000-2011. ++ * No copyright is claimed, and the software is hereby placed in the public ++ * domain. In case this attempt to disclaim copyright and place the software ++ * in the public domain is deemed null and void, then the software is ++ * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the ++ * general public under the following terms: ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted. ++ * ++ * There's ABSOLUTELY NO WARRANTY, express or implied. ++ * ++ * See crypt_blowfish.c for more information. ++ */ ++ ++#include ++#include ++ ++#include ++#ifndef __set_errno ++#define __set_errno(val) errno = (val) ++#endif ++ ++#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++#define __SKIP_GNU ++#endif ++#include "ow-crypt.h" ++ ++#include "crypt_gensalt.h" ++ ++#if !(defined(__GLIBC__) && defined(_LIBC)) ++#define __crypt_gensalt_rn crypt_gensalt_rn ++#define __crypt_gensalt_ra crypt_gensalt_ra ++#define __crypt_gensalt crypt_gensalt ++#endif ++ ++char *__crypt_gensalt_rn(const char *prefix, unsigned long count, ++ const char *input, int size, char *output, int output_size) ++{ ++ char *(*use)(const char *_prefix, unsigned long _count, ++ const char *_input, int _size, ++ char *_output, int _output_size); ++ ++ /* This may be supported on some platforms in the future */ ++ if (!input) { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) ++ use = _crypt_gensalt_sha2_rn; ++ else ++ if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) ++ use = _crypt_gensalt_blowfish_rn; ++ else ++ if (!strncmp(prefix, "$1$", 3)) ++ use = _crypt_gensalt_md5_rn; ++ else ++ if (prefix[0] == '_') ++ use = _crypt_gensalt_extended_rn; ++ else ++ if (!prefix[0] || ++ (prefix[0] && prefix[1] && ++ memchr(_crypt_itoa64, prefix[0], 64) && ++ memchr(_crypt_itoa64, prefix[1], 64))) ++ use = _crypt_gensalt_traditional_rn; ++ else { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ return use(prefix, count, input, size, output, output_size); ++} ++ ++char *__crypt_gensalt_ra(const char *prefix, unsigned long count, ++ const char *input, int size) ++{ ++ char output[CRYPT_GENSALT_OUTPUT_SIZE]; ++ char *retval; ++ ++ retval = __crypt_gensalt_rn(prefix, count, ++ input, size, output, sizeof(output)); ++ ++ if (retval) { ++ retval = strdup(retval); ++#ifndef __GLIBC__ ++ /* strdup(3) on glibc sets errno, so we don't need to bother */ ++ if (!retval) ++ __set_errno(ENOMEM); ++#endif ++ } ++ ++ return retval; ++} ++ ++char *__crypt_gensalt(const char *prefix, unsigned long count, ++ const char *input, int size) ++{ ++ static char output[CRYPT_GENSALT_OUTPUT_SIZE]; ++ ++ return __crypt_gensalt_rn(prefix, count, ++ input, size, output, sizeof(output)); ++} ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++#if IS_IN_libowcrypt ++weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) ++weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) ++weak_alias(__crypt_gensalt, crypt_gensalt) ++#else ++#include ++#define ow_symbol(name) \ ++ symbol_version (__##name, name, OW_CRYPT_1.0); \ ++ hidden_ver (__##name, name) ++ ++ow_symbol (crypt_gensalt) ++ow_symbol (crypt_gensalt_rn) ++ow_symbol (crypt_gensalt_ra) ++#endif ++#endif ++ +Index: crypt_blowfish-1.2/wrapper.c +=================================================================== +--- crypt_blowfish-1.2.orig/wrapper.c ++++ crypt_blowfish-1.2/wrapper.c +@@ -35,7 +35,6 @@ + #endif + + #define CRYPT_OUTPUT_SIZE (7 + 22 + 31 + 1) +-#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) + + #if defined(__GLIBC__) && defined(_LIBC) + #define __SKIP_GNU +@@ -43,7 +42,6 @@ + #include "ow-crypt.h" + + #include "crypt_blowfish.h" +-#include "crypt_gensalt.h" + + #if defined(__GLIBC__) && defined(_LIBC) + /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ +@@ -209,88 +207,11 @@ char *crypt(const char *key, const char + crypt_rn(key, setting, output, sizeof(output)), + setting, output, sizeof(output)); + } +- +-#define __crypt_gensalt_rn crypt_gensalt_rn +-#define __crypt_gensalt_ra crypt_gensalt_ra +-#define __crypt_gensalt crypt_gensalt +-#endif +- +-char *__crypt_gensalt_rn(const char *prefix, unsigned long count, +- const char *input, int size, char *output, int output_size) +-{ +- char *(*use)(const char *_prefix, unsigned long _count, +- const char *_input, int _size, +- char *_output, int _output_size); +- +- /* This may be supported on some platforms in the future */ +- if (!input) { +- __set_errno(EINVAL); +- return NULL; +- } +- +- if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) +- use = _crypt_gensalt_sha2_rn; +- else +- if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) +- use = _crypt_gensalt_blowfish_rn; +- else +- if (!strncmp(prefix, "$1$", 3)) +- use = _crypt_gensalt_md5_rn; +- else +- if (prefix[0] == '_') +- use = _crypt_gensalt_extended_rn; +- else +- if (!prefix[0] || +- (prefix[0] && prefix[1] && +- memchr(_crypt_itoa64, prefix[0], 64) && +- memchr(_crypt_itoa64, prefix[1], 64))) +- use = _crypt_gensalt_traditional_rn; +- else { +- __set_errno(EINVAL); +- return NULL; +- } +- +- return use(prefix, count, input, size, output, output_size); +-} +- +-char *__crypt_gensalt_ra(const char *prefix, unsigned long count, +- const char *input, int size) +-{ +- char output[CRYPT_GENSALT_OUTPUT_SIZE]; +- char *retval; +- +- retval = __crypt_gensalt_rn(prefix, count, +- input, size, output, sizeof(output)); +- +- if (retval) { +- retval = strdup(retval); +-#ifndef __GLIBC__ +- /* strdup(3) on glibc sets errno, so we don't need to bother */ +- if (!retval) +- __set_errno(ENOMEM); + #endif +- } +- +- return retval; +-} +- +-char *__crypt_gensalt(const char *prefix, unsigned long count, +- const char *input, int size) +-{ +- static char output[CRYPT_GENSALT_OUTPUT_SIZE]; +- +- return __crypt_gensalt_rn(prefix, count, +- input, size, output, sizeof(output)); +-} + + #if defined(__GLIBC__) && defined(_LIBC) +-weak_alias(__crypt_rn, crypt_rn) +-weak_alias(__crypt_ra, crypt_ra) + weak_alias(__crypt_r, crypt_r) + weak_alias(__crypt, crypt) +-weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) +-weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) +-weak_alias(__crypt_gensalt, crypt_gensalt) + weak_alias(crypt, fcrypt) + #endif + diff --git a/glibc-2.14-crypt-versioning.diff b/glibc-2.14-crypt-versioning.diff deleted file mode 100644 index a1dc9e1..0000000 --- a/glibc-2.14-crypt-versioning.diff +++ /dev/null @@ -1,33 +0,0 @@ -Index: glibc-2.17/Versions.def -=================================================================== ---- glibc-2.17.orig/Versions.def -+++ glibc-2.17/Versions.def -@@ -42,6 +42,8 @@ libc { - } - libcrypt { - GLIBC_2.0 -+ GLIBC_2.14 -+ OW_CRYPT_1.0 - } - libdl { - GLIBC_2.0 -Index: glibc-2.17/crypt/Versions -=================================================================== ---- glibc-2.17.orig/crypt/Versions -+++ glibc-2.17/crypt/Versions -@@ -1,6 +1,15 @@ -+%define SHARED -+%define IS_IN_libcrypt 1 -+%include -+ - libcrypt { - GLIBC_2.0 { - crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; -+%if SHLIB_COMPAT (libcrypt, GLIBC_2_0, GLIBC_2_14) -+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; -+%endif -+ } -+ OW_CRYPT_1.0 { - crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; - } - } diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 8ee6549..82a0ec7 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,39 +1,65 @@ -Index: glibc-2.16.90/crypt/Makefile +Index: glibc-2.17/Versions.def =================================================================== ---- glibc-2.16.90.orig/crypt/Makefile -+++ glibc-2.16.90/crypt/Makefile -@@ -21,6 +21,7 @@ +--- glibc-2.17.orig/Versions.def ++++ glibc-2.17/Versions.def +@@ -42,6 +42,10 @@ libc { + } + libcrypt { + GLIBC_2.0 ++ OW_CRYPT_1.0 ++} ++libowcrypt { ++ OW_CRYPT_1.0 + } + libdl { + GLIBC_2.0 +Index: glibc-2.17/crypt/Makefile +=================================================================== +--- glibc-2.17.orig/crypt/Makefile ++++ glibc-2.17/crypt/Makefile +@@ -21,14 +21,19 @@ subdir := crypt headers := crypt.h +headers += gnu-crypt.h ow-crypt.h - extra-libs := libcrypt +-extra-libs := libcrypt ++extra-libs := libcrypt libowcrypt extra-libs-others := $(extra-libs) -@@ -28,6 +29,8 @@ extra-libs-others := $(extra-libs) + libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ crypt_util -+libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper +-tests := cert md5c-test sha256c-test sha512c-test badsalttest ++libcrypt-routines += crypt_blowfish x86 wrapper crypt_gensalt compat-gensalt ++libcrypt-shared-only-routines = crypt_gensalt compat-gensalt ++libowcrypt-routines := crypt_gensalt wrapper-gensalt + - tests := cert md5c-test sha256c-test sha512c-test badsalttest ++tests := cert md5c-test sha256c-test sha512c-test include ../Makeconfig -Index: glibc-2.16.90/crypt/Versions + +Index: glibc-2.17/crypt/Versions =================================================================== ---- glibc-2.16.90.orig/crypt/Versions -+++ glibc-2.16.90/crypt/Versions -@@ -1,5 +1,6 @@ - libcrypt { +--- glibc-2.17.orig/crypt/Versions ++++ glibc-2.17/crypt/Versions +@@ -2,4 +2,12 @@ libcrypt { GLIBC_2.0 { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; -+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; } ++ OW_CRYPT_1.0 { ++ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; ++ } ++} ++libowcrypt { ++ OW_CRYPT_1.0 { ++ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; ++ } } -Index: glibc-2.16.90/crypt/crypt-entry.c +Index: glibc-2.17/crypt/crypt-entry.c =================================================================== ---- glibc-2.16.90.orig/crypt/crypt-entry.c -+++ glibc-2.16.90/crypt/crypt-entry.c +--- glibc-2.17.orig/crypt/crypt-entry.c ++++ glibc-2.17/crypt/crypt-entry.c @@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; */ @@ -56,3 +82,544 @@ Index: glibc-2.16.90/crypt/crypt-entry.c } #endif +#endif +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.17 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.4 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.4 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +@@ -9,3 +9,8 @@ GLIBC_2.0 + setkey_r F + _gp_disp + _gp_disp A ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.12 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.12 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.12 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/shlib-versions +=================================================================== +--- glibc-2.17.orig/shlib-versions ++++ glibc-2.17/shlib-versions +@@ -92,6 +92,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ + + # This defines the shared library version numbers we will install. + .*-.*-.* libcrypt=1 ++.*-.*-.* libowcrypt=1 + + # The gross patch for programs assuming broken locale implementations. + sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 +Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.3 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.2 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.0 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.2.5 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist ++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist +@@ -7,3 +7,8 @@ GLIBC_2.16 + fcrypt F + setkey F + setkey_r F ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F diff --git a/glibc-crypt-badsalttest.patch b/glibc-crypt-badsalttest.patch deleted file mode 100644 index faa9ef3..0000000 --- a/glibc-crypt-badsalttest.patch +++ /dev/null @@ -1,16 +0,0 @@ -badsalttest expects that crypt fails for unknown salt, but crypt-blowfish -doesn't. - -Index: glibc-2.17/crypt/Makefile -=================================================================== ---- glibc-2.17.orig/crypt/Makefile -+++ glibc-2.17/crypt/Makefile -@@ -31,7 +31,7 @@ libcrypt-routines := crypt-entry md5-cry - - libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper - --tests := cert md5c-test sha256c-test sha512c-test badsalttest -+tests := cert md5c-test sha256c-test sha512c-test - - include ../Makeconfig - diff --git a/glibc-fix-check-abi.patch b/glibc-fix-check-abi.patch deleted file mode 100644 index 0344fd1..0000000 --- a/glibc-fix-check-abi.patch +++ /dev/null @@ -1,581 +0,0 @@ -The addition of the Blowfish cipher functions also requires updating -the ABI check list for all targets. - -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist -@@ -7,3 +7,10 @@ GLIBC_2.17 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.4 - GLIBC_2.4 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.4 - GLIBC_2.4 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -@@ -1,7 +1,12 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F -@@ -9,3 +14,10 @@ GLIBC_2.0 - setkey_r F - _gp_disp - _gp_disp A -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.12 - GLIBC_2.12 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.12 - GLIBC_2.12 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.12 - GLIBC_2.12 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.3 - GLIBC_2.3 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.2 - GLIBC_2.2 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.0 - GLIBC_2.0 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -@@ -1,9 +1,21 @@ - GLIBC_2.2.5 - GLIBC_2.2.5 A - crypt F -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F - crypt_r F -+ crypt_ra F -+ crypt_rn F - encrypt F - encrypt_r F - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -@@ -7,3 +7,10 @@ GLIBC_2.16 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -+ crypt_ra F -+ crypt_rn F diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index e4993c3..ed5849f 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de + +- crypt_blowfish-gensalt.patch: separare crypt_gensalt into its own + library libowcrypt, remove crypt_rn and crypt_ra (fate#314945) +- glibc-2.14-crypt-versioning.diff, glibc-fix-check-abi.patch, + glibc-crypt-badsalttest.patch: folded into glibc-2.14-crypt.diff +- crypt_blowfish-const.patch: constify crypt_blowfish +- crypt_blowfish-1.2-sha.diff: refresh + +------------------------------------------------------------------- +Fri Jun 28 12:26:38 UTC 2013 - dmueller@suse.com + +- add ld-linux.so.3 compat symlink also for armv6hl +- remove deprecated armv7l + ------------------------------------------------------------------- Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index a3a0130..9857f3c 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -141,7 +141,7 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl # The old runtime linker link gets not provided by rpm find.provides, but it exists Provides: ld-linux.so.3 Provides: ld-linux.so.3(GLIBC_2.4) @@ -178,13 +178,13 @@ NoSource: 0 ### openSUSE extensions, configuration # PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 Patch1: glibc-2.14-crypt.diff -# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch2: glibc-2.14-crypt-versioning.diff +# PATCH-FEATURE-OPENSUSE constify crypt_blowfish +Patch2: crypt_blowfish-const.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch3: crypt_blowfish-1.2-sha.diff -# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch4: crypt_blowfish-1.2-versioning.diff -# PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de +# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library +Patch4: crypt_blowfish-gensalt.patch +# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de Patch5: crypt_blowfish-1.2-hack_around_arm.diff # PATCH-FIX-OPENSUSE Fix path for nscd databases Patch6: glibc-2.3.3-nscd-db-path.diff @@ -208,10 +208,6 @@ Patch14: glibc-bindresvport-blacklist.diff Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE Fix check abi for crypt additions -Patch21: glibc-fix-check-abi.patch -# PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail -Patch22: glibc-crypt-badsalttest.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -439,6 +435,7 @@ versions of your software. # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} +%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 @@ -447,7 +444,6 @@ mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ # %patch1 -p1 -%patch2 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 @@ -464,8 +460,6 @@ rm nscd/s-stamp %patch14 -p1 %patch15 -p1 %patch18 -p1 -%patch21 -p1 -%patch22 -p1 %patch100 -p1 %patch101 -p1 @@ -939,7 +933,7 @@ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ mkdir -p %{buildroot}/usr/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl # Provide compatibility link ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 %endif @@ -1068,7 +1062,7 @@ exit 0 # Each architecture has a different name for the dynamic linker: %ifarch %arm -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl /%{_lib}/ld-linux-armhf.so.3 # Keep compatibility link /%{_lib}/ld-linux.so.3 @@ -1111,6 +1105,8 @@ exit 0 /%{_lib}/libcidn.so.1 /%{_lib}/libcrypt-%{glibc_major_version}.so /%{_lib}/libcrypt.so.1 +/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt.so.1 /%{_lib}/libdl-%{glibc_major_version}.so /%{_lib}/libdl.so.2* /%{_lib}/libm-%{glibc_major_version}.so @@ -1237,6 +1233,7 @@ exit 0 %{_libdir}/libanl.a %{_libdir}/libc.a %{_libdir}/libcrypt.a +%{_libdir}/libowcrypt.a %{_libdir}/libdl.a %{_libdir}/libm.a %{_libdir}/libnsl.a @@ -1284,6 +1281,7 @@ exit 0 %{_libdir}/libanl_p.a %{_libdir}/libm_p.a %{_libdir}/libcrypt_p.a +%{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a %{_libdir}/libnsl_p.a diff --git a/glibc-utils.changes b/glibc-utils.changes index e4993c3..ed5849f 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de + +- crypt_blowfish-gensalt.patch: separare crypt_gensalt into its own + library libowcrypt, remove crypt_rn and crypt_ra (fate#314945) +- glibc-2.14-crypt-versioning.diff, glibc-fix-check-abi.patch, + glibc-crypt-badsalttest.patch: folded into glibc-2.14-crypt.diff +- crypt_blowfish-const.patch: constify crypt_blowfish +- crypt_blowfish-1.2-sha.diff: refresh + +------------------------------------------------------------------- +Fri Jun 28 12:26:38 UTC 2013 - dmueller@suse.com + +- add ld-linux.so.3 compat symlink also for armv6hl +- remove deprecated armv7l + ------------------------------------------------------------------- Wed Jun 19 09:29:55 UTC 2013 - coolo@suse.com diff --git a/glibc-utils.spec b/glibc-utils.spec index 1a1aa92..b278caf 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -140,7 +140,7 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl # The old runtime linker link gets not provided by rpm find.provides, but it exists Provides: ld-linux.so.3 Provides: ld-linux.so.3(GLIBC_2.4) @@ -177,13 +177,13 @@ NoSource: 0 ### openSUSE extensions, configuration # PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 Patch1: glibc-2.14-crypt.diff -# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch2: glibc-2.14-crypt-versioning.diff +# PATCH-FEATURE-OPENSUSE constify crypt_blowfish +Patch2: crypt_blowfish-const.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch3: crypt_blowfish-1.2-sha.diff -# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch4: crypt_blowfish-1.2-versioning.diff -# PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de +# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library +Patch4: crypt_blowfish-gensalt.patch +# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de Patch5: crypt_blowfish-1.2-hack_around_arm.diff # PATCH-FIX-OPENSUSE Fix path for nscd databases Patch6: glibc-2.3.3-nscd-db-path.diff @@ -207,10 +207,6 @@ Patch14: glibc-bindresvport-blacklist.diff Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE Fix check abi for crypt additions -Patch21: glibc-fix-check-abi.patch -# PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail -Patch22: glibc-crypt-badsalttest.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -439,6 +435,7 @@ versions of your software. # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} +%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 @@ -447,7 +444,6 @@ mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ # %patch1 -p1 -%patch2 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 @@ -464,8 +460,6 @@ rm nscd/s-stamp %patch14 -p1 %patch15 -p1 %patch18 -p1 -%patch21 -p1 -%patch22 -p1 %patch100 -p1 %patch101 -p1 @@ -939,7 +933,7 @@ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ mkdir -p %{buildroot}/usr/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl # Provide compatibility link ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 %endif @@ -1068,7 +1062,7 @@ exit 0 # Each architecture has a different name for the dynamic linker: %ifarch %arm -%ifarch armv7l armv7hl +%ifarch armv6hl armv7hl /%{_lib}/ld-linux-armhf.so.3 # Keep compatibility link /%{_lib}/ld-linux.so.3 @@ -1111,6 +1105,8 @@ exit 0 /%{_lib}/libcidn.so.1 /%{_lib}/libcrypt-%{glibc_major_version}.so /%{_lib}/libcrypt.so.1 +/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt.so.1 /%{_lib}/libdl-%{glibc_major_version}.so /%{_lib}/libdl.so.2* /%{_lib}/libm-%{glibc_major_version}.so @@ -1237,6 +1233,7 @@ exit 0 %{_libdir}/libanl.a %{_libdir}/libc.a %{_libdir}/libcrypt.a +%{_libdir}/libowcrypt.a %{_libdir}/libdl.a %{_libdir}/libm.a %{_libdir}/libnsl.a @@ -1284,6 +1281,7 @@ exit 0 %{_libdir}/libanl_p.a %{_libdir}/libm_p.a %{_libdir}/libcrypt_p.a +%{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a %{_libdir}/libnsl_p.a diff --git a/glibc.changes b/glibc.changes index 57c5d85..ed5849f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de + +- crypt_blowfish-gensalt.patch: separare crypt_gensalt into its own + library libowcrypt, remove crypt_rn and crypt_ra (fate#314945) +- glibc-2.14-crypt-versioning.diff, glibc-fix-check-abi.patch, + glibc-crypt-badsalttest.patch: folded into glibc-2.14-crypt.diff +- crypt_blowfish-const.patch: constify crypt_blowfish +- crypt_blowfish-1.2-sha.diff: refresh + ------------------------------------------------------------------- Fri Jun 28 12:26:38 UTC 2013 - dmueller@suse.com diff --git a/glibc.spec b/glibc.spec index bf7ec5f..f53aba6 100644 --- a/glibc.spec +++ b/glibc.spec @@ -178,13 +178,13 @@ NoSource: 0 ### openSUSE extensions, configuration # PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 Patch1: glibc-2.14-crypt.diff -# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch2: glibc-2.14-crypt-versioning.diff +# PATCH-FEATURE-OPENSUSE constify crypt_blowfish +Patch2: crypt_blowfish-const.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch3: crypt_blowfish-1.2-sha.diff -# PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch4: crypt_blowfish-1.2-versioning.diff -# PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de +# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library +Patch4: crypt_blowfish-gensalt.patch +# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de Patch5: crypt_blowfish-1.2-hack_around_arm.diff # PATCH-FIX-OPENSUSE Fix path for nscd databases Patch6: glibc-2.3.3-nscd-db-path.diff @@ -208,10 +208,6 @@ Patch14: glibc-bindresvport-blacklist.diff Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff -# PATCH-FIX-OPENSUSE Fix check abi for crypt additions -Patch21: glibc-fix-check-abi.patch -# PATCH-FIX-OPENSUSE Disable badsalttest which expects that crypt can fail -Patch22: glibc-crypt-badsalttest.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -439,6 +435,7 @@ versions of your software. # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} +%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 @@ -447,7 +444,6 @@ mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ # %patch1 -p1 -%patch2 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 @@ -464,8 +460,6 @@ rm nscd/s-stamp %patch14 -p1 %patch15 -p1 %patch18 -p1 -%patch21 -p1 -%patch22 -p1 %patch100 -p1 %patch101 -p1 @@ -1111,6 +1105,8 @@ exit 0 /%{_lib}/libcidn.so.1 /%{_lib}/libcrypt-%{glibc_major_version}.so /%{_lib}/libcrypt.so.1 +/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt.so.1 /%{_lib}/libdl-%{glibc_major_version}.so /%{_lib}/libdl.so.2* /%{_lib}/libm-%{glibc_major_version}.so @@ -1237,6 +1233,7 @@ exit 0 %{_libdir}/libanl.a %{_libdir}/libc.a %{_libdir}/libcrypt.a +%{_libdir}/libowcrypt.a %{_libdir}/libdl.a %{_libdir}/libm.a %{_libdir}/libnsl.a @@ -1284,6 +1281,7 @@ exit 0 %{_libdir}/libanl_p.a %{_libdir}/libm_p.a %{_libdir}/libcrypt_p.a +%{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a %{_libdir}/libnsl_p.a From 8e9d3a862c7c769c959deab2a21ae44a7795d61e6cc2c1c71b9b52d61c961e54 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 23 Jul 2013 18:30:54 +0000 Subject: [PATCH 144/204] Accepting request 184086 from Base:System - disable-pt-chown.patch: disable use of pt_chown (CVE-2013-2207, bnc#830257) - nonascii-case.patch: fix strcasecmp in tr_TR.ISO-8859-9 locale - glibc-2.14-crypt.diff: fix incomplete dependencies for libowcrypt (forwarded request 184083 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/184086 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=151 --- disable-pt-chown.patch | 241 ++++++++++++++++++++++++++++++++++++++++ glibc-2.14-crypt.diff | 5 + glibc-testsuite.changes | 8 ++ glibc-testsuite.spec | 22 +--- glibc-utils.changes | 8 ++ glibc-utils.spec | 22 +--- glibc.changes | 8 ++ glibc.spec | 22 +--- nonascii-case.patch | 87 +++++++++++++++ 9 files changed, 375 insertions(+), 48 deletions(-) create mode 100644 disable-pt-chown.patch create mode 100644 nonascii-case.patch diff --git a/disable-pt-chown.patch b/disable-pt-chown.patch new file mode 100644 index 0000000..ee52371 --- /dev/null +++ b/disable-pt-chown.patch @@ -0,0 +1,241 @@ +2013-07-21 Siddhesh Poyarekar + Andreas Schwab + Roland McGrath + Joseph Myers + Carlos O'Donell + + [BZ #15755] + * config.h.in: Define HAVE_PT_CHOWN. + * config.make.in (build-pt-chown): New variable. + * configure.in (--enable-pt_chown): New configure option. + * configure: Regenerate. + * login/Makefile: Include Makeconfig. Build pt_chown only if + build-pt-chown is enabled. + * sysdeps/unix/grantpt.c (grantpt) [HAVE_PT_CHOWN]: Spawn + pt_chown to fix pty ownership. + * sysdeps/unix/sysv/linux/grantpt.c [HAVE_PT_CHOWN]: Define + CLOSE_ALL_FDS. + * manual/install.texi (Configuring and compiling): Mention + --enable-pt_chown. Add @findex for grantpt. + * INSTALL: Regenerate. + +Index: glibc-2.17/INSTALL +=================================================================== +--- glibc-2.17.orig/INSTALL ++++ glibc-2.17/INSTALL +@@ -128,6 +128,18 @@ will be used, and CFLAGS sets optimizati + this can be prevented though there generally is no reason since it + creates compatibility problems. + ++`--enable-pt_chown' ++ The file `pt_chown' is a helper binary for `grantpt' (*note ++ Pseudo-Terminals: Allocation.) that is installed setuid root to ++ fix up pseudo-terminal ownership. It is not built by default ++ because systems using the Linux kernel are commonly built with the ++ `devpts' filesystem enabled and mounted at `/dev/pts', which ++ manages pseudo-terminal ownership automatically. By using ++ `--enable-pt_chown', you may build `pt_chown' and install it ++ setuid and owned by `root'. The use of `pt_chown' introduces ++ additional security risks to the system and you should enable it ++ only if you understand and accept those risks. ++ + `--build=BUILD-SYSTEM' + `--host=HOST-SYSTEM' + These options are for cross-compiling. If you specify both +Index: glibc-2.17/config.h.in +=================================================================== +--- glibc-2.17.orig/config.h.in ++++ glibc-2.17/config.h.in +@@ -232,4 +232,7 @@ + /* The ARM hard-float ABI is being used. */ + #undef HAVE_ARM_PCS_VFP + ++/* The pt_chown binary is being built and used by grantpt. */ ++#undef HAVE_PT_CHOWN ++ + #endif +Index: glibc-2.17/config.make.in +=================================================================== +--- glibc-2.17.orig/config.make.in ++++ glibc-2.17/config.make.in +@@ -102,6 +102,7 @@ force-install = @force_install@ + link-obsolete-rpc = @link_obsolete_rpc@ + build-nscd = @build_nscd@ + use-nscd = @use_nscd@ ++build-pt-chown = @build_pt_chown@ + + # Build tools. + CC = @CC@ +Index: glibc-2.17/configure +=================================================================== +--- glibc-2.17.orig/configure ++++ glibc-2.17/configure +@@ -654,6 +654,7 @@ multi_arch + base_machine + add_on_subdirs + add_ons ++build_pt_chown + build_nscd + link_obsolete_rpc + libc_cv_nss_crypt +@@ -760,6 +761,7 @@ enable_obsolete_rpc + enable_systemtap + enable_build_nscd + enable_nscd ++enable_pt_chown + with_cpu + ' + ac_precious_vars='build_alias +@@ -1420,6 +1422,7 @@ Optional Features: + --enable-systemtap enable systemtap static probe points [default=no] + --disable-build-nscd disable building and installing the nscd daemon + --disable-nscd library functions will not contact the nscd daemon ++ --enable-pt_chown Enable building and installing pt_chown + + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +@@ -3935,6 +3938,19 @@ else + fi + + ++# Check whether --enable-pt_chown was given. ++if test "${enable_pt_chown+set}" = set; then : ++ enableval=$enable_pt_chown; build_pt_chown=$enableval ++else ++ build_pt_chown=no ++fi ++ ++ ++if test $build_pt_chown = yes; then ++ $as_echo "#define HAVE_PT_CHOWN 1" >>confdefs.h ++ ++fi ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +Index: glibc-2.17/configure.in +=================================================================== +--- glibc-2.17.orig/configure.in ++++ glibc-2.17/configure.in +@@ -315,6 +315,16 @@ AC_ARG_ENABLE([nscd], + [use_nscd=$enableval], + [use_nscd=yes]) + ++AC_ARG_ENABLE([pt_chown], ++ [AS_HELP_STRING([--enable-pt_chown], ++ [Enable building and installing pt_chown])], ++ [build_pt_chown=$enableval], ++ [build_pt_chown=no]) ++AC_SUBST(build_pt_chown) ++if test $build_pt_chown = yes; then ++ AC_DEFINE(HAVE_PT_CHOWN) ++fi ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +Index: glibc-2.17/login/Makefile +=================================================================== +--- glibc-2.17.orig/login/Makefile ++++ glibc-2.17/login/Makefile +@@ -29,9 +29,15 @@ routines := getutent getutent_r getutid + + CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"' + +-others = utmpdump pt_chown ++others = utmpdump ++ ++include ../Makeconfig ++ ++ifeq (yes,$(build-pt-chown)) ++others += pt_chown + others-pie = pt_chown + install-others-programs = $(inst_libexecdir)/pt_chown ++endif + + subdir-dirs = programs + vpath %.c programs +Index: glibc-2.17/manual/install.texi +=================================================================== +--- glibc-2.17.orig/manual/install.texi ++++ glibc-2.17/manual/install.texi +@@ -155,6 +155,20 @@ if the used tools support it. By using + prevented though there generally is no reason since it creates + compatibility problems. + ++@pindex pt_chown ++@findex grantpt ++@item --enable-pt_chown ++The file @file{pt_chown} is a helper binary for @code{grantpt} ++(@pxref{Allocation, Pseudo-Terminals}) that is installed setuid root to ++fix up pseudo-terminal ownership. It is not built by default because ++systems using the Linux kernel are commonly built with the @code{devpts} ++filesystem enabled and mounted at @file{/dev/pts}, which manages ++pseudo-terminal ownership automatically. By using ++@samp{--enable-pt_chown}, you may build @file{pt_chown} and install it ++setuid and owned by @code{root}. The use of @file{pt_chown} introduces ++additional security risks to the system and you should enable it only if ++you understand and accept those risks. ++ + @item --build=@var{build-system} + @itemx --host=@var{host-system} + These options are for cross-compiling. If you specify both options and +Index: glibc-2.17/sysdeps/unix/grantpt.c +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/grantpt.c ++++ glibc-2.17/sysdeps/unix/grantpt.c +@@ -173,9 +173,10 @@ grantpt (int fd) + retval = 0; + goto cleanup; + +- /* We have to use the helper program. */ ++ /* We have to use the helper program if it is available. */ + helper:; + ++#ifdef HAVE_PT_CHOWN + pid_t pid = __fork (); + if (pid == -1) + goto cleanup; +@@ -190,9 +191,9 @@ grantpt (int fd) + if (__dup2 (fd, PTY_FILENO) < 0) + _exit (FAIL_EBADF); + +-#ifdef CLOSE_ALL_FDS ++# ifdef CLOSE_ALL_FDS + CLOSE_ALL_FDS (); +-#endif ++# endif + + execle (_PATH_PT_CHOWN, basename (_PATH_PT_CHOWN), NULL, NULL); + _exit (FAIL_EXEC); +@@ -231,6 +232,7 @@ grantpt (int fd) + assert(! "getpt: internal error: invalid exit code from pt_chown"); + } + } ++#endif + + cleanup: + if (buf != _buf) +Index: glibc-2.17/sysdeps/unix/sysv/linux/grantpt.c +=================================================================== +--- glibc-2.17.orig/sysdeps/unix/sysv/linux/grantpt.c ++++ glibc-2.17/sysdeps/unix/sysv/linux/grantpt.c +@@ -11,7 +11,7 @@ + + #include "pty-private.h" + +- ++#if HAVE_PT_CHOWN + /* Close all file descriptors except the one specified. */ + static void + close_all_fds (void) +@@ -38,6 +38,7 @@ close_all_fds (void) + __dup2 (STDOUT_FILENO, STDERR_FILENO); + } + } +-#define CLOSE_ALL_FDS() close_all_fds() ++# define CLOSE_ALL_FDS() close_all_fds() ++#endif + + #include diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 82a0ec7..96e5a74 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -39,6 +39,11 @@ Index: glibc-2.17/crypt/Makefile include ../Makeconfig +@@ -77,3 +82,4 @@ endif + # This ensures they will load libc.so for needed symbols if loaded by + # a statically-linked program that hasn't already loaded it. + $(objpfx)libcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a ++$(objpfx)libowcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a Index: glibc-2.17/crypt/Versions =================================================================== --- glibc-2.17.orig/crypt/Versions diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index ed5849f..b5896e6 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de + +- disable-pt-chown.patch: disable use of pt_chown (CVE-2013-2207, + bnc#830257) +- nonascii-case.patch: fix strcasecmp in tr_TR.ISO-8859-9 locale +- glibc-2.14-crypt.diff: fix incomplete dependencies for libowcrypt + ------------------------------------------------------------------- Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 9857f3c..54504c9 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -253,6 +253,8 @@ Patch1004: regexp-overrun.patch Patch1005: getaddrinfo-overflow.patch # PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd Patch1006: nscd-netgroup.patch +# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207) +Patch1007: disable-pt-chown.patch ### # Patches awaiting upstream approval @@ -273,6 +275,8 @@ Patch2014: strptime-W-week.patch Patch2015: printf-overrun.patch # PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp Patch2016: aarch64-sigsetjmp.patch +# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 +Patch2017: nonascii-case.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -480,6 +484,7 @@ rm nscd/s-stamp %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 +%patch1007 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 @@ -490,6 +495,7 @@ rm nscd/s-stamp %patch2014 -p1 %patch2015 -p1 %patch2016 -p1 +%patch2017 -p1 %patch3000 @@ -979,23 +985,8 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ####################################################################### %if %{normal_build} -# Note: glibc_post_upgrade does: -# %%set_permissions %%{_libexecdir}/pt_chown -# since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade -%if 0 -# Enabling the following lines will generate a -# requires on /bin/sh but glibc should not require any other binary -# packages. Therefore we do the change with the built-in lua: -# %%verifyscript -# %%verify_permissions -e %%{_libexecdir}/pt_chown -%endif - -%verifyscript -p -os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") - %postun -p /sbin/ldconfig %endif # %{normal_build} @@ -1177,7 +1168,6 @@ exit 0 %endif %{_bindir}/locale %{_bindir}/localedef -%verify(not mode caps) %attr(4755,root,root) %{_libexecdir}/pt_chown %dir %attr(0755,root,root) %{_libexecdir}/getconf %{_libexecdir}/getconf/* %{_sbindir}/glibc_post_upgrade diff --git a/glibc-utils.changes b/glibc-utils.changes index ed5849f..b5896e6 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de + +- disable-pt-chown.patch: disable use of pt_chown (CVE-2013-2207, + bnc#830257) +- nonascii-case.patch: fix strcasecmp in tr_TR.ISO-8859-9 locale +- glibc-2.14-crypt.diff: fix incomplete dependencies for libowcrypt + ------------------------------------------------------------------- Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index b278caf..d7845d4 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -252,6 +252,8 @@ Patch1004: regexp-overrun.patch Patch1005: getaddrinfo-overflow.patch # PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd Patch1006: nscd-netgroup.patch +# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207) +Patch1007: disable-pt-chown.patch ### # Patches awaiting upstream approval @@ -272,6 +274,8 @@ Patch2014: strptime-W-week.patch Patch2015: printf-overrun.patch # PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp Patch2016: aarch64-sigsetjmp.patch +# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 +Patch2017: nonascii-case.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -480,6 +484,7 @@ rm nscd/s-stamp %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 +%patch1007 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 @@ -490,6 +495,7 @@ rm nscd/s-stamp %patch2014 -p1 %patch2015 -p1 %patch2016 -p1 +%patch2017 -p1 %patch3000 @@ -979,23 +985,8 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ####################################################################### %if %{normal_build} -# Note: glibc_post_upgrade does: -# %%set_permissions %%{_libexecdir}/pt_chown -# since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade -%if 0 -# Enabling the following lines will generate a -# requires on /bin/sh but glibc should not require any other binary -# packages. Therefore we do the change with the built-in lua: -# %%verifyscript -# %%verify_permissions -e %%{_libexecdir}/pt_chown -%endif - -%verifyscript -p -os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") - %postun -p /sbin/ldconfig %endif # %{normal_build} @@ -1177,7 +1168,6 @@ exit 0 %endif %{_bindir}/locale %{_bindir}/localedef -%verify(not mode caps) %attr(4755,root,root) %{_libexecdir}/pt_chown %dir %attr(0755,root,root) %{_libexecdir}/getconf %{_libexecdir}/getconf/* %{_sbindir}/glibc_post_upgrade diff --git a/glibc.changes b/glibc.changes index ed5849f..b5896e6 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de + +- disable-pt-chown.patch: disable use of pt_chown (CVE-2013-2207, + bnc#830257) +- nonascii-case.patch: fix strcasecmp in tr_TR.ISO-8859-9 locale +- glibc-2.14-crypt.diff: fix incomplete dependencies for libowcrypt + ------------------------------------------------------------------- Thu Jul 4 12:14:27 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index f53aba6..e44831d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -253,6 +253,8 @@ Patch1004: regexp-overrun.patch Patch1005: getaddrinfo-overflow.patch # PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd Patch1006: nscd-netgroup.patch +# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207) +Patch1007: disable-pt-chown.patch ### # Patches awaiting upstream approval @@ -273,6 +275,8 @@ Patch2014: strptime-W-week.patch Patch2015: printf-overrun.patch # PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp Patch2016: aarch64-sigsetjmp.patch +# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 +Patch2017: nonascii-case.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -480,6 +484,7 @@ rm nscd/s-stamp %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 +%patch1007 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 @@ -490,6 +495,7 @@ rm nscd/s-stamp %patch2014 -p1 %patch2015 -p1 %patch2016 -p1 +%patch2017 -p1 %patch3000 @@ -979,23 +985,8 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ####################################################################### %if %{normal_build} -# Note: glibc_post_upgrade does: -# %%set_permissions %%{_libexecdir}/pt_chown -# since we cannot do it in our own post section - %post -p %{_sbindir}/glibc_post_upgrade -%if 0 -# Enabling the following lines will generate a -# requires on /bin/sh but glibc should not require any other binary -# packages. Therefore we do the change with the built-in lua: -# %%verifyscript -# %%verify_permissions -e %%{_libexecdir}/pt_chown -%endif - -%verifyscript -p -os.execute("/usr/bin/chkstat -n --warn --system -e %{_libexecdir}/pt_chown") - %postun -p /sbin/ldconfig %endif # %{normal_build} @@ -1177,7 +1168,6 @@ exit 0 %endif %{_bindir}/locale %{_bindir}/localedef -%verify(not mode caps) %attr(4755,root,root) %{_libexecdir}/pt_chown %dir %attr(0755,root,root) %{_libexecdir}/getconf %{_libexecdir}/getconf/* %{_sbindir}/glibc_post_upgrade diff --git a/nonascii-case.patch b/nonascii-case.patch new file mode 100644 index 0000000..946173d --- /dev/null +++ b/nonascii-case.patch @@ -0,0 +1,87 @@ + [BZ #15736] + * locale/categories.def (LC_CTYPE): Add "nonascii-case" element. + * string/Makefile (test-strcasecmp-ENV) + (test-strcasecmp-ifunc-ENV): Define. + * string/test-strcasecmp.c (test_main): Run tests in several + locales. + +Index: glibc-2.17/locale/categories.def +=================================================================== +--- glibc-2.17.orig/locale/categories.def ++++ glibc-2.17/locale/categories.def +@@ -133,6 +133,7 @@ DEFINE_CATEGORY + DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word) + DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string) + DEFINE_ELEMENT (_NL_CTYPE_MAP_TO_NONASCII, "map-to-nonascii", std, word) ++ DEFINE_ELEMENT (_NL_CTYPE_NONASCII_CASE, "nonascii-case", std, word) + ), _nl_postload_ctype) + + +Index: glibc-2.17/string/Makefile +=================================================================== +--- glibc-2.17.orig/string/Makefile ++++ glibc-2.17/string/Makefile +@@ -69,6 +69,8 @@ noinl-tester-ENV = LANGUAGE=C + tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata + tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata + bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata ++test-strcasecmp-ENV = LOCPATH=$(common-objpfx)localedata ++test-strcasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata + CFLAGS-inl-tester.c = -fno-builtin + CFLAGS-noinl-tester.c = -fno-builtin + CFLAGS-tst-strlen.c = -fno-builtin +Index: glibc-2.17/string/test-strcasecmp.c +=================================================================== +--- glibc-2.17.orig/string/test-strcasecmp.c ++++ glibc-2.17/string/test-strcasecmp.c +@@ -17,6 +17,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #define TEST_MAIN + #define TEST_NAME "strcasecmp" +@@ -230,14 +231,18 @@ do_random_tests (void) + } + } + +-int +-test_main (void) ++static void ++test_locale (const char *locale) + { + size_t i; + +- test_init (); ++ if (setlocale (LC_CTYPE, locale) == NULL) ++ { ++ error (0, 0, "cannot set locale \"%s\"", locale); ++ ret = 1; ++ } + +- printf ("%23s", ""); ++ printf ("%-23s", locale); + FOR_EACH_IMPL (impl, 0) + printf ("\t%s", impl->name); + putchar ('\n'); +@@ -270,6 +275,19 @@ test_main (void) + } + + do_random_tests (); ++} ++ ++int ++test_main (void) ++{ ++ test_init (); ++ ++ test_locale ("C"); ++ test_locale ("en_US.ISO-8859-1"); ++ test_locale ("en_US.UTF-8"); ++ test_locale ("tr_TR.ISO-8859-9"); ++ test_locale ("tr_TR.UTF-8"); ++ + return ret; + } + From 418ae1c68fd193b5e18ae601ab5278d337aef979275cb5d1bdc217e7706b5305 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 1 Aug 2013 15:33:58 +0000 Subject: [PATCH 145/204] Accepting request 185400 from Base:System - i686-strcasecmp-fallback.patch: fix fallback in i686 strcasecmp/strncasecmp - nonascii-case.patch: also test strncasecmp - pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after detaching (bnc#819383) (forwarded request 185399 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/185400 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=152 --- glibc-testsuite.changes | 9 +++++ glibc-testsuite.spec | 6 +++ glibc-utils.changes | 9 +++++ glibc-utils.spec | 6 +++ glibc.changes | 9 +++++ glibc.spec | 6 +++ i686-strcasecmp-fallback.patch | 74 ++++++++++++++++++++++++++++++++++ nonascii-case.patch | 67 ++++++++++++++++++++++++++++-- pldd-wait-ptrace-stop.patch | 59 +++++++++++++++++++++++++++ 9 files changed, 242 insertions(+), 3 deletions(-) create mode 100644 i686-strcasecmp-fallback.patch create mode 100644 pldd-wait-ptrace-stop.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index b5896e6..ff458cb 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de + +- i686-strcasecmp-fallback.patch: fix fallback in i686 + strcasecmp/strncasecmp +- nonascii-case.patch: also test strncasecmp +- pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after + detaching (bnc#819383) + ------------------------------------------------------------------- Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 54504c9..0e68577 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -277,6 +277,10 @@ Patch2015: printf-overrun.patch Patch2016: aarch64-sigsetjmp.patch # PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 Patch2017: nonascii-case.patch +# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp +Patch2018: i686-strcasecmp-fallback.patch +# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching +Patch2019: pldd-wait-ptrace-stop.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -496,6 +500,8 @@ rm nscd/s-stamp %patch2015 -p1 %patch2016 -p1 %patch2017 -p1 +%patch2018 -p1 +%patch2019 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index b5896e6..ff458cb 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de + +- i686-strcasecmp-fallback.patch: fix fallback in i686 + strcasecmp/strncasecmp +- nonascii-case.patch: also test strncasecmp +- pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after + detaching (bnc#819383) + ------------------------------------------------------------------- Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index d7845d4..5ce393d 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -276,6 +276,10 @@ Patch2015: printf-overrun.patch Patch2016: aarch64-sigsetjmp.patch # PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 Patch2017: nonascii-case.patch +# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp +Patch2018: i686-strcasecmp-fallback.patch +# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching +Patch2019: pldd-wait-ptrace-stop.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -496,6 +500,8 @@ rm nscd/s-stamp %patch2015 -p1 %patch2016 -p1 %patch2017 -p1 +%patch2018 -p1 +%patch2019 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index b5896e6..ff458cb 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de + +- i686-strcasecmp-fallback.patch: fix fallback in i686 + strcasecmp/strncasecmp +- nonascii-case.patch: also test strncasecmp +- pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after + detaching (bnc#819383) + ------------------------------------------------------------------- Mon Jul 22 12:32:34 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index e44831d..322f605 100644 --- a/glibc.spec +++ b/glibc.spec @@ -277,6 +277,10 @@ Patch2015: printf-overrun.patch Patch2016: aarch64-sigsetjmp.patch # PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 Patch2017: nonascii-case.patch +# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp +Patch2018: i686-strcasecmp-fallback.patch +# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching +Patch2019: pldd-wait-ptrace-stop.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -496,6 +500,8 @@ rm nscd/s-stamp %patch2015 -p1 %patch2016 -p1 %patch2017 -p1 +%patch2018 -p1 +%patch2019 -p1 %patch3000 diff --git a/i686-strcasecmp-fallback.patch b/i686-strcasecmp-fallback.patch new file mode 100644 index 0000000..7790ce1 --- /dev/null +++ b/i686-strcasecmp-fallback.patch @@ -0,0 +1,74 @@ + * sysdeps/i386/i686/multiarch/strcmp-sse4.S (__strcasecmp_sse4_2) + (__strncasecmp_sse4_2) [PIC]: Restore %ebx before falling through + to __strcasecmp_nonascii and __strncasecmp_nonascii. + * sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3) + (__strncasecmp_ssse3) [PIC]: Likewise. + +Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S +=================================================================== +--- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-sse4.S ++++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S +@@ -121,8 +121,14 @@ ENTRY (__strcasecmp_sse4_2) + movl (%eax), %eax + # endif + testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) ++# ifdef PIC ++ je L(ascii) ++ POP (%ebx) ++ jmp __strcasecmp_nonascii ++# else + jne __strcasecmp_nonascii + jmp L(ascii) ++# endif + END (__strcasecmp_sse4_2) + #endif + +@@ -152,8 +158,14 @@ ENTRY (__strncasecmp_sse4_2) + movl (%eax), %eax + # endif + testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) ++# ifdef PIC ++ je L(ascii) ++ POP (%ebx) ++ jmp __strncasecmp_nonascii ++# else + jne __strncasecmp_nonascii + jmp L(ascii) ++# endif + END (__strncasecmp_sse4_2) + #endif + +Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +=================================================================== +--- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-ssse3.S ++++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +@@ -138,8 +138,14 @@ ENTRY (__strcasecmp_ssse3) + movl (%eax), %eax + # endif + testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) ++# ifdef PIC ++ je L(ascii) ++ POP (%ebx) ++ jmp __strcasecmp_nonascii ++# else + jne __strcasecmp_nonascii + jmp L(ascii) ++# endif + END (__strcasecmp_ssse3) + #endif + +@@ -169,8 +175,14 @@ ENTRY (__strncasecmp_ssse3) + movl (%eax), %eax + # endif + testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) ++# ifdef PIC ++ je L(ascii) ++ POP (%ebx) ++ jmp __strncasecmp_nonascii ++# else + jne __strncasecmp_nonascii + jmp L(ascii) ++# endif + END (__strncasecmp_ssse3) + #endif + diff --git a/nonascii-case.patch b/nonascii-case.patch index 946173d..e07297f 100644 --- a/nonascii-case.patch +++ b/nonascii-case.patch @@ -1,9 +1,10 @@ [BZ #15736] * locale/categories.def (LC_CTYPE): Add "nonascii-case" element. - * string/Makefile (test-strcasecmp-ENV) - (test-strcasecmp-ifunc-ENV): Define. + * string/Makefile (test-strcasecmp-ENV, test-strncasecmp-ENV) + (test-strcasecmp-ifunc-ENV, test-strncasecmp-ifunc-ENV): Define. * string/test-strcasecmp.c (test_main): Run tests in several locales. + * string/test-strncasecmp.c (test_main): Likewise. Index: glibc-2.17/locale/categories.def =================================================================== @@ -21,12 +22,14 @@ Index: glibc-2.17/string/Makefile =================================================================== --- glibc-2.17.orig/string/Makefile +++ glibc-2.17/string/Makefile -@@ -69,6 +69,8 @@ noinl-tester-ENV = LANGUAGE=C +@@ -69,6 +69,10 @@ noinl-tester-ENV = LANGUAGE=C tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata +test-strcasecmp-ENV = LOCPATH=$(common-objpfx)localedata ++test-strncasecmp-ENV = LOCPATH=$(common-objpfx)localedata +test-strcasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata ++test-strncasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata CFLAGS-inl-tester.c = -fno-builtin CFLAGS-noinl-tester.c = -fno-builtin CFLAGS-tst-strlen.c = -fno-builtin @@ -85,3 +88,61 @@ Index: glibc-2.17/string/test-strcasecmp.c return ret; } +Index: glibc-2.17/string/test-strncasecmp.c +=================================================================== +--- glibc-2.17.orig/string/test-strncasecmp.c ++++ glibc-2.17/string/test-strncasecmp.c +@@ -17,6 +17,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #define TEST_MAIN + #define TEST_NAME "strncasecmp" +@@ -280,17 +281,21 @@ bz14195 (void) + check_result (impl, empty_string, "", 5, 0); + } + +-int +-test_main (void) ++static void ++test_locale (const char *locale) + { + size_t i; + +- test_init (); ++ if (setlocale (LC_CTYPE, locale) == NULL) ++ { ++ error (0, 0, "cannot set locale \"%s\"", locale); ++ ret = 1; ++ } + + bz12205 (); + bz14195 (); + +- printf ("%23s", ""); ++ printf ("%23s", locale); + FOR_EACH_IMPL (impl, 0) + printf ("\t%s", impl->name); + putchar ('\n'); +@@ -353,6 +358,19 @@ test_main (void) + } + + do_random_tests (); ++} ++ ++int ++test_main (void) ++{ ++ test_init (); ++ ++ test_locale ("C"); ++ test_locale ("en_US.ISO-8859-1"); ++ test_locale ("en_US.UTF-8"); ++ test_locale ("tr_TR.ISO-8859-9"); ++ test_locale ("tr_TR.UTF-8"); ++ + return ret; + } + diff --git a/pldd-wait-ptrace-stop.patch b/pldd-wait-ptrace-stop.patch new file mode 100644 index 0000000..099cfea --- /dev/null +++ b/pldd-wait-ptrace-stop.patch @@ -0,0 +1,59 @@ +2013-07-31 Andreas Schwab + + * elf/pldd.c (wait_for_ptrace_stop): New function. + (main): Call it after attaching. + +Index: glibc-2.17/elf/pldd.c +=================================================================== +--- glibc-2.17.orig/elf/pldd.c ++++ glibc-2.17/elf/pldd.c +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -85,6 +86,7 @@ static char *exe; + + /* Local functions. */ + static int get_process_info (int dfd, long int pid); ++static void wait_for_ptrace_stop (long int pid); + + + int +@@ -173,6 +175,8 @@ main (int argc, char *argv[]) + tid); + } + ++ wait_for_ptrace_stop (tid); ++ + struct thread_list *newp = alloca (sizeof (*newp)); + newp->tid = tid; + newp->next = thread_list; +@@ -197,6 +201,24 @@ main (int argc, char *argv[]) + } + + ++/* Wait for PID to enter ptrace-stop state after being attached. */ ++static void ++wait_for_ptrace_stop (long int pid) ++{ ++ int status; ++ ++ /* While waiting for SIGSTOP being delivered to the tracee we have to ++ reinject any other pending signal. Ignore all other errors. */ ++ while (waitpid (pid, &status, __WALL) == pid && WIFSTOPPED (status)) ++ { ++ /* The STOP signal should not be delivered to the tracee. */ ++ if (WSTOPSIG (status) == SIGSTOP) ++ return; ++ ptrace (PTRACE_CONT, pid, NULL, (void *) (uintptr_t) WSTOPSIG (status)); ++ } ++} ++ ++ + /* Handle program arguments. */ + static error_t + parse_opt (int key, char *arg, struct argp_state *state) From 5b108142b5ecd1f70d4da94b97845bd83b8eaafd5c527658551c30ae45bab4fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Tue, 13 Aug 2013 09:36:50 +0000 Subject: [PATCH 146/204] Accepting request 186878 from Base:System - Update to glibc 2.18 release * No source change - strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, bnc#779320) - readdir_r-overflow.patch: fix readdir_r with long file names (CVE-2013-4237, bnc#834594) (forwarded request 186872 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/186878 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=153 --- aarch64-sigsetjmp.patch | 38 -- arm-ld-so-cache.patch | 94 --- big5-hkscs-update.patch.bz2 | 3 - cbrtl-ldbl-96.patch | 17 + crypt_blowfish-gensalt.patch | 19 +- digits-dots.patch | 191 ------ disable-pt-chown.patch | 241 ------- getaddrinfo-ipv6-sanity.diff | 14 +- getaddrinfo-overflow.patch | 62 -- glibc-2.14-crypt.diff | 450 ++---------- glibc-2.17-c758a6861537.tar.xz | 3 - glibc-2.18.tar.xz | 3 + glibc-2.2-sunrpc.diff | 10 +- glibc-2.3.2.no_archive.diff | 10 +- glibc-2.3.3-nscd-db-path.diff | 6 +- glibc-2.3.90-langpackdir.diff | 8 +- glibc-2.3.90-noversion.diff | 6 +- glibc-2.3.locales.diff.bz2 | 4 +- glibc-2.4-china.diff | 6 +- glibc-2.4.90-no_NO.diff | 36 +- glibc-2.4.90-revert-only-euro.diff | 6 +- glibc-aarch64-lib64.patch | 49 -- glibc-bindresvport-blacklist.diff | 6 +- glibc-cpusetsize.diff | 16 +- glibc-fix-double-loopback.diff | 6 +- glibc-nodate.patch | 36 +- glibc-nscd-hconf.diff | 14 +- glibc-nscd.conf.patch | 6 +- glibc-resolv-mdnshint.diff | 8 +- glibc-resolv-reload.diff | 6 +- glibc-testsuite.changes | 67 ++ glibc-testsuite.patch | 6 +- glibc-testsuite.spec | 64 +- glibc-utils.changes | 67 ++ glibc-utils.spec | 64 +- glibc-version.diff | 8 +- glibc.changes | 67 ++ glibc.spec | 64 +- glibc_post_upgrade.c | 32 +- i686-strcasecmp-fallback.patch | 12 +- nonascii-case.patch | 34 +- nscd-netgroup.patch | 98 --- nscd-short-write.patch | 178 ----- nss-database.patch | 35 +- nss-db-path.patch | 38 +- pldd-wait-ptrace-stop.patch | 12 +- printf-overrun.patch | 56 +- pthread-cond-timedwait-i486.patch | 526 -------------- readdir_r-overflow.patch | 297 ++++++++ regexp-overrun.patch | 161 ----- rtlddir.patch | 288 -------- strcoll-overflow.patch | 1026 ++++++++++++++++++++++++++++ strptime-W-week.patch | 44 -- 53 files changed, 1883 insertions(+), 2735 deletions(-) delete mode 100644 aarch64-sigsetjmp.patch delete mode 100644 arm-ld-so-cache.patch delete mode 100644 big5-hkscs-update.patch.bz2 create mode 100644 cbrtl-ldbl-96.patch delete mode 100644 digits-dots.patch delete mode 100644 disable-pt-chown.patch delete mode 100644 getaddrinfo-overflow.patch delete mode 100644 glibc-2.17-c758a6861537.tar.xz create mode 100644 glibc-2.18.tar.xz delete mode 100644 glibc-aarch64-lib64.patch delete mode 100644 nscd-netgroup.patch delete mode 100644 nscd-short-write.patch delete mode 100644 pthread-cond-timedwait-i486.patch create mode 100644 readdir_r-overflow.patch delete mode 100644 regexp-overrun.patch delete mode 100644 rtlddir.patch create mode 100644 strcoll-overflow.patch delete mode 100644 strptime-W-week.patch diff --git a/aarch64-sigsetjmp.patch b/aarch64-sigsetjmp.patch deleted file mode 100644 index 28bc1bd..0000000 --- a/aarch64-sigsetjmp.patch +++ /dev/null @@ -1,38 +0,0 @@ -From c272f67f9fc4c354336241ef4f3876771ccab443 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Mon, 20 May 2013 10:19:31 +0200 -Subject: [PATCH] AArch64: Don't clobber argument for tail call to - __sigjmp_save in sigsetjmp - - [BZ #15493] - * sysdeps/aarch64/setjmp.S (__sigsetjmp): Don't clobber register - x1. - [NOT_IN_libc && IS_IN_rtld]: Don't call __sigjmp_save. ---- - ports/sysdeps/aarch64/setjmp.S | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/ports/sysdeps/aarch64/setjmp.S b/ports/sysdeps/aarch64/setjmp.S -index cff81c7..10e0709 100644 ---- a/ports/sysdeps/aarch64/setjmp.S -+++ b/ports/sysdeps/aarch64/setjmp.S -@@ -44,8 +44,14 @@ ENTRY (__sigsetjmp) - stp d10, d11, [x0, #JB_D10<<3] - stp d12, d13, [x0, #JB_D12<<3] - stp d14, d15, [x0, #JB_D14<<3] -- mov x1, sp -- str x1, [x0, #JB_SP<<3] -+ mov x2, sp -+ str x2, [x0, #JB_SP<<3] -+#if defined NOT_IN_libc && defined IS_IN_rtld -+ /* In ld.so we never save the signal mask */ -+ mov w0, #0 -+ RET -+#else - b C_SYMBOL_NAME(__sigjmp_save) -+#endif - END (__sigsetjmp) - hidden_def (__sigsetjmp) --- -1.8.2.3 - diff --git a/arm-ld-so-cache.patch b/arm-ld-so-cache.patch deleted file mode 100644 index 1261981..0000000 --- a/arm-ld-so-cache.patch +++ /dev/null @@ -1,94 +0,0 @@ -From b39949d21179bd0b08a083e4f7e35d0c98e11294 Mon Sep 17 00:00:00 2001 -From: Carlos O'Donell -Date: Fri, 8 Feb 2013 12:26:12 -0500 -Subject: [PATCH] ARM: Support loading unmarked objects from cache. - -ARM now supports loading unmarked objects from -the dynamic loader cache. Unmarked objects can -be used with the hard-float or soft-float ABI. -We must support loading unmarked objects during -the transition period from a binutils that does -not mark objects to one that does mark them with -the correct ELF flags. - -Signed-off-by: Carlos O'Donell ---- - ChangeLog | 5 +++++ - elf/cache.c | 4 ++++ - ports/ChangeLog.arm | 8 ++++++++ - ports/sysdeps/unix/sysv/linux/arm/dl-cache.h | 9 +++++++-- - ports/sysdeps/unix/sysv/linux/arm/readelflib.c | 6 ++++++ - sysdeps/generic/ldconfig.h | 1 + - 6 files changed, 31 insertions(+), 2 deletions(-) - -diff --git a/elf/cache.c b/elf/cache.c -index 9901952..699550b 100644 ---- a/elf/cache.c -+++ b/elf/cache.c -@@ -100,6 +100,10 @@ print_entry (const char *lib, int flag, unsigned int osversion, - case FLAG_AARCH64_LIB64: - fputs (",AArch64", stdout); - break; -+ /* Uses the ARM soft-float ABI. */ -+ case FLAG_ARM_LIBSF: -+ fputs (",soft-float", stdout); -+ break; - case 0: - break; - default: -diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h -index acc4f28..504feca 100644 ---- a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h -+++ b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h -@@ -18,12 +18,17 @@ - - #include - -+/* In order to support the transition from unmarked objects -+ to marked objects we must treat unmarked objects as -+ compatible with either FLAG_ARM_LIBHF or FLAG_ARM_LIBSF. */ - #ifdef __ARM_PCS_VFP - # define _dl_cache_check_flags(flags) \ -- ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6)) -+ ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6) \ -+ || (flags) == FLAG_ELF_LIBC6) - #else - # define _dl_cache_check_flags(flags) \ -- ((flags) == FLAG_ELF_LIBC6) -+ ((flags) == (FLAG_ARM_LIBSF | FLAG_ELF_LIBC6) \ -+ || (flags) == FLAG_ELF_LIBC6) - #endif - - #include_next -diff --git a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c -index 81e5ccb..3efb613 100644 ---- a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c -+++ b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c -@@ -46,6 +46,12 @@ process_elf_file (const char *file_name, const char *lib, int *flag, - if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_HARD) - *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6; - else if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_SOFT) -+ *flag = FLAG_ARM_LIBSF|FLAG_ELF_LIBC6; -+ else -+ /* We must assume the unmarked objects are compatible -+ with all ABI variants. Such objects may have been -+ generated in a transitional period when the ABI -+ tags were not added to all objects. */ - *flag = FLAG_ELF_LIBC6; - } - } -diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h -index 57a9a46..91190aa 100644 ---- a/sysdeps/generic/ldconfig.h -+++ b/sysdeps/generic/ldconfig.h -@@ -36,6 +36,7 @@ - #define FLAG_X8664_LIBX32 0x0800 - #define FLAG_ARM_LIBHF 0x0900 - #define FLAG_AARCH64_LIB64 0x0a00 -+#define FLAG_ARM_LIBSF 0x0b00 - - /* Name of auxiliary cache. */ - #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache" --- -1.8.2.3 - diff --git a/big5-hkscs-update.patch.bz2 b/big5-hkscs-update.patch.bz2 deleted file mode 100644 index 478e445..0000000 --- a/big5-hkscs-update.patch.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f397e09eec2ac12228659cd1b86ff93b501934bcedda6ca8e20557954694f21a -size 358200 diff --git a/cbrtl-ldbl-96.patch b/cbrtl-ldbl-96.patch new file mode 100644 index 0000000..50d26b3 --- /dev/null +++ b/cbrtl-ldbl-96.patch @@ -0,0 +1,17 @@ + [BZ #15749] + * sysdeps/ieee754/ldbl-96/s_cbrtl.c (__cbrtl): Use fabsl instead + of fabs. + +Index: glibc-2.17.90/sysdeps/ieee754/ldbl-96/s_cbrtl.c +=================================================================== +--- glibc-2.17.90.orig/sysdeps/ieee754/ldbl-96/s_cbrtl.c ++++ glibc-2.17.90/sysdeps/ieee754/ldbl-96/s_cbrtl.c +@@ -45,7 +45,7 @@ __cbrtl (long double x) + int xe; + + /* Reduce X. XM now is an range 1.0 to 0.5. */ +- xm = __frexpl (fabs (x), &xe); ++ xm = __frexpl (fabsl (x), &xe); + + /* If X is not finite or is null return it (with raising exceptions + if necessary. diff --git a/crypt_blowfish-gensalt.patch b/crypt_blowfish-gensalt.patch index 7062fc9..14d0039 100644 --- a/crypt_blowfish-gensalt.patch +++ b/crypt_blowfish-gensalt.patch @@ -1,9 +1,3 @@ -Index: crypt_blowfish-1.2/compat-gensalt.c -=================================================================== ---- /dev/null -+++ crypt_blowfish-1.2/compat-gensalt.c -@@ -0,0 +1 @@ -+#include "wrapper-gensalt.c" Index: crypt_blowfish-1.2/crypt_blowfish.c =================================================================== --- crypt_blowfish-1.2.orig/crypt_blowfish.c @@ -144,7 +138,7 @@ Index: crypt_blowfish-1.2/wrapper-gensalt.c =================================================================== --- /dev/null +++ crypt_blowfish-1.2/wrapper-gensalt.c -@@ -0,0 +1,124 @@ +@@ -0,0 +1,113 @@ +/* + * Written by Solar Designer in 2000-2011. + * No copyright is claimed, and the software is hereby placed in the public @@ -253,20 +247,9 @@ Index: crypt_blowfish-1.2/wrapper-gensalt.c +} + +#if defined(__GLIBC__) && defined(_LIBC) -+#if IS_IN_libowcrypt +weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) +weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) +weak_alias(__crypt_gensalt, crypt_gensalt) -+#else -+#include -+#define ow_symbol(name) \ -+ symbol_version (__##name, name, OW_CRYPT_1.0); \ -+ hidden_ver (__##name, name) -+ -+ow_symbol (crypt_gensalt) -+ow_symbol (crypt_gensalt_rn) -+ow_symbol (crypt_gensalt_ra) -+#endif +#endif + Index: crypt_blowfish-1.2/wrapper.c diff --git a/digits-dots.patch b/digits-dots.patch deleted file mode 100644 index 033c914..0000000 --- a/digits-dots.patch +++ /dev/null @@ -1,191 +0,0 @@ -From 57847d6ed77fe969cc598e47452c76278a69f7bd Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Mon, 21 Jan 2013 17:41:28 +0100 -Subject: [PATCH] Fix parsing of numeric hosts in gethostbyname_r - - [BZ #15014] - * nss/getXXbyYY_r.c (INTERNAL (REENTRANT_NAME)) - [HANDLE_DIGITS_DOTS]: Set any_service when digits-dots parsing was - successful. - * nss/digits_dots.c (__nss_hostname_digits_dots): Remove - redundant variable declarations and reallocation of buffer when - parsing as IPv6 address. Always set NSS status when called from - reentrant functions. Use NETDB_INTERNAL instead of TRY_AGAIN when - buffer too small. Correct computation of needed size. ---- - nss/digits_dots.c | 73 +++++++++++++++---------------------------------------- - nss/getXXbyYY_r.c | 5 +++- - 2 files changed, 24 insertions(+), 54 deletions(-) - -diff --git a/nss/digits_dots.c b/nss/digits_dots.c -index 2b86295..e007ef4 100644 ---- a/nss/digits_dots.c -+++ b/nss/digits_dots.c -@@ -46,7 +46,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - { - if (h_errnop) - *h_errnop = NETDB_INTERNAL; -- *result = NULL; -+ if (buffer_size == NULL) -+ *status = NSS_STATUS_TRYAGAIN; -+ else -+ *result = NULL; - return -1; - } - -@@ -83,14 +86,16 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - } - - size_needed = (sizeof (*host_addr) -- + sizeof (*h_addr_ptrs) + strlen (name) + 1); -+ + sizeof (*h_addr_ptrs) -+ + sizeof (*h_alias_ptr) + strlen (name) + 1); - - if (buffer_size == NULL) - { - if (buflen < size_needed) - { -+ *status = NSS_STATUS_TRYAGAIN; - if (h_errnop != NULL) -- *h_errnop = TRY_AGAIN; -+ *h_errnop = NETDB_INTERNAL; - __set_errno (ERANGE); - goto done; - } -@@ -109,7 +114,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - *buffer_size = 0; - __set_errno (save); - if (h_errnop != NULL) -- *h_errnop = TRY_AGAIN; -+ *h_errnop = NETDB_INTERNAL; - *result = NULL; - goto done; - } -@@ -149,7 +154,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - if (! ok) - { - *h_errnop = HOST_NOT_FOUND; -- if (buffer_size) -+ if (buffer_size == NULL) -+ *status = NSS_STATUS_NOTFOUND; -+ else - *result = NULL; - goto done; - } -@@ -190,7 +197,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - if (buffer_size == NULL) - *status = NSS_STATUS_SUCCESS; - else -- *result = resbuf; -+ *result = resbuf; - goto done; - } - -@@ -201,15 +208,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - - if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':') - { -- const char *cp; -- char *hostname; -- typedef unsigned char host_addr_t[16]; -- host_addr_t *host_addr; -- typedef char *host_addr_list_t[2]; -- host_addr_list_t *h_addr_ptrs; -- size_t size_needed; -- int addr_size; -- - switch (af) - { - default: -@@ -225,7 +223,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - /* This is not possible. We cannot represent an IPv6 address - in an `struct in_addr' variable. */ - *h_errnop = HOST_NOT_FOUND; -- *result = NULL; -+ if (buffer_size == NULL) -+ *status = NSS_STATUS_NOTFOUND; -+ else -+ *result = NULL; - goto done; - - case AF_INET6: -@@ -233,42 +234,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - break; - } - -- size_needed = (sizeof (*host_addr) -- + sizeof (*h_addr_ptrs) + strlen (name) + 1); -- -- if (buffer_size == NULL && buflen < size_needed) -- { -- if (h_errnop != NULL) -- *h_errnop = TRY_AGAIN; -- __set_errno (ERANGE); -- goto done; -- } -- else if (buffer_size != NULL && *buffer_size < size_needed) -- { -- char *new_buf; -- *buffer_size = size_needed; -- new_buf = realloc (*buffer, *buffer_size); -- -- if (new_buf == NULL) -- { -- save = errno; -- free (*buffer); -- __set_errno (save); -- *buffer = NULL; -- *buffer_size = 0; -- *result = NULL; -- goto done; -- } -- *buffer = new_buf; -- } -- -- memset (*buffer, '\0', size_needed); -- -- host_addr = (host_addr_t *) *buffer; -- h_addr_ptrs = (host_addr_list_t *) -- ((char *) host_addr + sizeof (*host_addr)); -- hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs); -- - for (cp = name;; ++cp) - { - if (!*cp) -@@ -281,7 +246,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, - if (inet_pton (AF_INET6, name, host_addr) <= 0) - { - *h_errnop = HOST_NOT_FOUND; -- if (buffer_size) -+ if (buffer_size == NULL) -+ *status = NSS_STATUS_NOTFOUND; -+ else - *result = NULL; - goto done; - } -diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c -index 1067744..44d00f4 100644 ---- a/nss/getXXbyYY_r.c -+++ b/nss/getXXbyYY_r.c -@@ -179,6 +179,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, - case -1: - return errno; - case 1: -+#ifdef NEED_H_ERRNO -+ any_service = true; -+#endif - goto done; - } - #endif -@@ -288,7 +291,7 @@ done: - /* Either we failed to lookup the functions or the functions themselves - had a system error. Set NETDB_INTERNAL here to let the caller know - that the errno may have the real reason for failure. */ -- *h_errnop = NETDB_INTERNAL; -+ *h_errnop = NETDB_INTERNAL; - else if (status != NSS_STATUS_SUCCESS && !any_service) - /* We were not able to use any service. */ - *h_errnop = NO_RECOVERY; --- -1.8.2.3 - diff --git a/disable-pt-chown.patch b/disable-pt-chown.patch deleted file mode 100644 index ee52371..0000000 --- a/disable-pt-chown.patch +++ /dev/null @@ -1,241 +0,0 @@ -2013-07-21 Siddhesh Poyarekar - Andreas Schwab - Roland McGrath - Joseph Myers - Carlos O'Donell - - [BZ #15755] - * config.h.in: Define HAVE_PT_CHOWN. - * config.make.in (build-pt-chown): New variable. - * configure.in (--enable-pt_chown): New configure option. - * configure: Regenerate. - * login/Makefile: Include Makeconfig. Build pt_chown only if - build-pt-chown is enabled. - * sysdeps/unix/grantpt.c (grantpt) [HAVE_PT_CHOWN]: Spawn - pt_chown to fix pty ownership. - * sysdeps/unix/sysv/linux/grantpt.c [HAVE_PT_CHOWN]: Define - CLOSE_ALL_FDS. - * manual/install.texi (Configuring and compiling): Mention - --enable-pt_chown. Add @findex for grantpt. - * INSTALL: Regenerate. - -Index: glibc-2.17/INSTALL -=================================================================== ---- glibc-2.17.orig/INSTALL -+++ glibc-2.17/INSTALL -@@ -128,6 +128,18 @@ will be used, and CFLAGS sets optimizati - this can be prevented though there generally is no reason since it - creates compatibility problems. - -+`--enable-pt_chown' -+ The file `pt_chown' is a helper binary for `grantpt' (*note -+ Pseudo-Terminals: Allocation.) that is installed setuid root to -+ fix up pseudo-terminal ownership. It is not built by default -+ because systems using the Linux kernel are commonly built with the -+ `devpts' filesystem enabled and mounted at `/dev/pts', which -+ manages pseudo-terminal ownership automatically. By using -+ `--enable-pt_chown', you may build `pt_chown' and install it -+ setuid and owned by `root'. The use of `pt_chown' introduces -+ additional security risks to the system and you should enable it -+ only if you understand and accept those risks. -+ - `--build=BUILD-SYSTEM' - `--host=HOST-SYSTEM' - These options are for cross-compiling. If you specify both -Index: glibc-2.17/config.h.in -=================================================================== ---- glibc-2.17.orig/config.h.in -+++ glibc-2.17/config.h.in -@@ -232,4 +232,7 @@ - /* The ARM hard-float ABI is being used. */ - #undef HAVE_ARM_PCS_VFP - -+/* The pt_chown binary is being built and used by grantpt. */ -+#undef HAVE_PT_CHOWN -+ - #endif -Index: glibc-2.17/config.make.in -=================================================================== ---- glibc-2.17.orig/config.make.in -+++ glibc-2.17/config.make.in -@@ -102,6 +102,7 @@ force-install = @force_install@ - link-obsolete-rpc = @link_obsolete_rpc@ - build-nscd = @build_nscd@ - use-nscd = @use_nscd@ -+build-pt-chown = @build_pt_chown@ - - # Build tools. - CC = @CC@ -Index: glibc-2.17/configure -=================================================================== ---- glibc-2.17.orig/configure -+++ glibc-2.17/configure -@@ -654,6 +654,7 @@ multi_arch - base_machine - add_on_subdirs - add_ons -+build_pt_chown - build_nscd - link_obsolete_rpc - libc_cv_nss_crypt -@@ -760,6 +761,7 @@ enable_obsolete_rpc - enable_systemtap - enable_build_nscd - enable_nscd -+enable_pt_chown - with_cpu - ' - ac_precious_vars='build_alias -@@ -1420,6 +1422,7 @@ Optional Features: - --enable-systemtap enable systemtap static probe points [default=no] - --disable-build-nscd disable building and installing the nscd daemon - --disable-nscd library functions will not contact the nscd daemon -+ --enable-pt_chown Enable building and installing pt_chown - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -3935,6 +3938,19 @@ else - fi - - -+# Check whether --enable-pt_chown was given. -+if test "${enable_pt_chown+set}" = set; then : -+ enableval=$enable_pt_chown; build_pt_chown=$enableval -+else -+ build_pt_chown=no -+fi -+ -+ -+if test $build_pt_chown = yes; then -+ $as_echo "#define HAVE_PT_CHOWN 1" >>confdefs.h -+ -+fi -+ - # The way shlib-versions is used to generate soversions.mk uses a - # fairly simplistic model for name recognition that can't distinguish - # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os -Index: glibc-2.17/configure.in -=================================================================== ---- glibc-2.17.orig/configure.in -+++ glibc-2.17/configure.in -@@ -315,6 +315,16 @@ AC_ARG_ENABLE([nscd], - [use_nscd=$enableval], - [use_nscd=yes]) - -+AC_ARG_ENABLE([pt_chown], -+ [AS_HELP_STRING([--enable-pt_chown], -+ [Enable building and installing pt_chown])], -+ [build_pt_chown=$enableval], -+ [build_pt_chown=no]) -+AC_SUBST(build_pt_chown) -+if test $build_pt_chown = yes; then -+ AC_DEFINE(HAVE_PT_CHOWN) -+fi -+ - # The way shlib-versions is used to generate soversions.mk uses a - # fairly simplistic model for name recognition that can't distinguish - # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os -Index: glibc-2.17/login/Makefile -=================================================================== ---- glibc-2.17.orig/login/Makefile -+++ glibc-2.17/login/Makefile -@@ -29,9 +29,15 @@ routines := getutent getutent_r getutid - - CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"' - --others = utmpdump pt_chown -+others = utmpdump -+ -+include ../Makeconfig -+ -+ifeq (yes,$(build-pt-chown)) -+others += pt_chown - others-pie = pt_chown - install-others-programs = $(inst_libexecdir)/pt_chown -+endif - - subdir-dirs = programs - vpath %.c programs -Index: glibc-2.17/manual/install.texi -=================================================================== ---- glibc-2.17.orig/manual/install.texi -+++ glibc-2.17/manual/install.texi -@@ -155,6 +155,20 @@ if the used tools support it. By using - prevented though there generally is no reason since it creates - compatibility problems. - -+@pindex pt_chown -+@findex grantpt -+@item --enable-pt_chown -+The file @file{pt_chown} is a helper binary for @code{grantpt} -+(@pxref{Allocation, Pseudo-Terminals}) that is installed setuid root to -+fix up pseudo-terminal ownership. It is not built by default because -+systems using the Linux kernel are commonly built with the @code{devpts} -+filesystem enabled and mounted at @file{/dev/pts}, which manages -+pseudo-terminal ownership automatically. By using -+@samp{--enable-pt_chown}, you may build @file{pt_chown} and install it -+setuid and owned by @code{root}. The use of @file{pt_chown} introduces -+additional security risks to the system and you should enable it only if -+you understand and accept those risks. -+ - @item --build=@var{build-system} - @itemx --host=@var{host-system} - These options are for cross-compiling. If you specify both options and -Index: glibc-2.17/sysdeps/unix/grantpt.c -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/grantpt.c -+++ glibc-2.17/sysdeps/unix/grantpt.c -@@ -173,9 +173,10 @@ grantpt (int fd) - retval = 0; - goto cleanup; - -- /* We have to use the helper program. */ -+ /* We have to use the helper program if it is available. */ - helper:; - -+#ifdef HAVE_PT_CHOWN - pid_t pid = __fork (); - if (pid == -1) - goto cleanup; -@@ -190,9 +191,9 @@ grantpt (int fd) - if (__dup2 (fd, PTY_FILENO) < 0) - _exit (FAIL_EBADF); - --#ifdef CLOSE_ALL_FDS -+# ifdef CLOSE_ALL_FDS - CLOSE_ALL_FDS (); --#endif -+# endif - - execle (_PATH_PT_CHOWN, basename (_PATH_PT_CHOWN), NULL, NULL); - _exit (FAIL_EXEC); -@@ -231,6 +232,7 @@ grantpt (int fd) - assert(! "getpt: internal error: invalid exit code from pt_chown"); - } - } -+#endif - - cleanup: - if (buf != _buf) -Index: glibc-2.17/sysdeps/unix/sysv/linux/grantpt.c -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/grantpt.c -+++ glibc-2.17/sysdeps/unix/sysv/linux/grantpt.c -@@ -11,7 +11,7 @@ - - #include "pty-private.h" - -- -+#if HAVE_PT_CHOWN - /* Close all file descriptors except the one specified. */ - static void - close_all_fds (void) -@@ -38,6 +38,7 @@ close_all_fds (void) - __dup2 (STDOUT_FILENO, STDERR_FILENO); - } - } --#define CLOSE_ALL_FDS() close_all_fds() -+# define CLOSE_ALL_FDS() close_all_fds() -+#endif - - #include diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index dfd99d3..1f792b1 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -1,8 +1,8 @@ -Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c +Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c =================================================================== ---- glibc-2.16.90.orig/sysdeps/posix/getaddrinfo.c 2012-11-20 03:45:45.000000000 +0100 -+++ glibc-2.16.90/sysdeps/posix/getaddrinfo.c 2012-11-23 15:32:33.000000000 +0100 -@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas +--- glibc-2.17.90.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.17.90/sysdeps/posix/getaddrinfo.c +@@ -270,7 +270,7 @@ extern service_user *__nss_hosts_databas static int gaih_inet (const char *name, const struct gaih_service *service, const struct addrinfo *req, struct addrinfo **pai, @@ -11,7 +11,7 @@ Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -839,7 +839,10 @@ gaih_inet (const char *name, const struc +@@ -840,7 +840,10 @@ gaih_inet (const char *name, const struc if (req->ai_family == PF_UNSPEC) fct4 = __nss_lookup_function (nip, "gethostbyname4_r"); @@ -23,7 +23,7 @@ Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c { int herrno; -@@ -942,7 +945,7 @@ gaih_inet (const char *name, const struc +@@ -943,7 +946,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -32,7 +32,7 @@ Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2462,7 +2465,11 @@ getaddrinfo (const char *name, const cha +@@ -2471,7 +2474,11 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/getaddrinfo-overflow.patch b/getaddrinfo-overflow.patch deleted file mode 100644 index e2ae9e6..0000000 --- a/getaddrinfo-overflow.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 1cef1b19089528db11f221e938f60b9b048945d7 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Thu, 21 Mar 2013 15:50:27 +0100 -Subject: [PATCH] Fix stack overflow in getaddrinfo with many results - - [BZ #15330] - * sysdeps/posix/getaddrinfo.c (getaddrinfo): Allocate results and - order arrays from heap if bigger than alloca cutoff. - ---- - ChangeLog | 6 ++++++ - NEWS | 5 ++++- - sysdeps/posix/getaddrinfo.c | 23 +++++++++++++++++++++-- - 3 files changed, 31 insertions(+), 3 deletions(-) - -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index d95c2d1..2309281 100644 ---- a/sysdeps/posix/getaddrinfo.c -+++ b/sysdeps/posix/getaddrinfo.c -@@ -2489,11 +2489,27 @@ getaddrinfo (const char *name, const char *service, - __typeof (once) old_once = once; - __libc_once (once, gaiconf_init); - /* Sort results according to RFC 3484. */ -- struct sort_result results[nresults]; -- size_t order[nresults]; -+ struct sort_result *results; -+ size_t *order; - struct addrinfo *q; - struct addrinfo *last = NULL; - char *canonname = NULL; -+ bool malloc_results; -+ -+ malloc_results -+ = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t))); -+ if (malloc_results) -+ { -+ results = malloc (nresults * (sizeof (*results) + sizeof (size_t))); -+ if (results == NULL) -+ { -+ __free_in6ai (in6ai); -+ return EAI_MEMORY; -+ } -+ } -+ else -+ results = alloca (nresults * (sizeof (*results) + sizeof (size_t))); -+ order = (size_t *) (results + nresults); - - /* Now we definitely need the interface information. */ - if (! check_pf_called) -@@ -2664,6 +2680,9 @@ getaddrinfo (const char *name, const char *service, - - /* Fill in the canonical name into the new first entry. */ - p->ai_canonname = canonname; -+ -+ if (malloc_results) -+ free (results); - } - - __free_in6ai (in6ai); --- -1.8.2.3 - diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 96e5a74..b4731da 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,23 +1,22 @@ -Index: glibc-2.17/Versions.def +Index: glibc-2.17.90/Versions.def =================================================================== ---- glibc-2.17.orig/Versions.def -+++ glibc-2.17/Versions.def -@@ -42,6 +42,10 @@ libc { - } +--- glibc-2.17.90.orig/Versions.def ++++ glibc-2.17.90/Versions.def +@@ -44,6 +44,9 @@ libc { libcrypt { GLIBC_2.0 -+ OW_CRYPT_1.0 -+} + } +libowcrypt { + OW_CRYPT_1.0 - } ++} libdl { GLIBC_2.0 -Index: glibc-2.17/crypt/Makefile + GLIBC_2.1 +Index: glibc-2.17.90/crypt/Makefile =================================================================== ---- glibc-2.17.orig/crypt/Makefile -+++ glibc-2.17/crypt/Makefile -@@ -21,14 +21,19 @@ +--- glibc-2.17.90.orig/crypt/Makefile ++++ glibc-2.17.90/crypt/Makefile +@@ -21,14 +21,18 @@ subdir := crypt headers := crypt.h @@ -31,40 +30,30 @@ Index: glibc-2.17/crypt/Makefile crypt_util -tests := cert md5c-test sha256c-test sha512c-test badsalttest -+libcrypt-routines += crypt_blowfish x86 wrapper crypt_gensalt compat-gensalt -+libcrypt-shared-only-routines = crypt_gensalt compat-gensalt ++libcrypt-routines += crypt_blowfish x86 wrapper +libowcrypt-routines := crypt_gensalt wrapper-gensalt + +tests := cert md5c-test sha256c-test sha512c-test include ../Makeconfig -@@ -77,3 +82,4 @@ endif - # This ensures they will load libc.so for needed symbols if loaded by - # a statically-linked program that hasn't already loaded it. - $(objpfx)libcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a -+$(objpfx)libowcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a -Index: glibc-2.17/crypt/Versions +Index: glibc-2.17.90/crypt/Versions =================================================================== ---- glibc-2.17.orig/crypt/Versions -+++ glibc-2.17/crypt/Versions -@@ -2,4 +2,12 @@ libcrypt { - GLIBC_2.0 { +--- glibc-2.17.90.orig/crypt/Versions ++++ glibc-2.17.90/crypt/Versions +@@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } -+ OW_CRYPT_1.0 { -+ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; -+ } -+} + } +libowcrypt { + OW_CRYPT_1.0 { + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } - } -Index: glibc-2.17/crypt/crypt-entry.c ++} +Index: glibc-2.17.90/crypt/crypt-entry.c =================================================================== ---- glibc-2.17.orig/crypt/crypt-entry.c -+++ glibc-2.17/crypt/crypt-entry.c +--- glibc-2.17.90.orig/crypt/crypt-entry.c ++++ glibc-2.17.90/crypt/crypt-entry.c @@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; */ @@ -87,309 +76,140 @@ Index: glibc-2.17/crypt/crypt-entry.c } #endif +#endif -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.17 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.4 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.4 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist -@@ -9,3 +9,8 @@ GLIBC_2.0 - setkey_r F - _gp_disp - _gp_disp A -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.12 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.12 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.12 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist +Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist ++++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/shlib-versions +Index: glibc-2.17.90/shlib-versions =================================================================== ---- glibc-2.17.orig/shlib-versions -+++ glibc-2.17/shlib-versions +--- glibc-2.17.90.orig/shlib-versions ++++ glibc-2.17.90/shlib-versions @@ -92,6 +92,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ # This defines the shared library version numbers we will install. @@ -398,230 +218,100 @@ Index: glibc-2.17/shlib-versions # The gross patch for programs assuming broken locale implementations. sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 -Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.3 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.2 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.0 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.2.5 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist -@@ -7,3 +7,8 @@ GLIBC_2.16 - fcrypt F - setkey F - setkey_r F -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A diff --git a/glibc-2.17-c758a6861537.tar.xz b/glibc-2.17-c758a6861537.tar.xz deleted file mode 100644 index d2c0509..0000000 --- a/glibc-2.17-c758a6861537.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0ad63189c3d0799ee671b0b565f8d113c43d1759894c9002ba58bf212af8abf -size 11173392 diff --git a/glibc-2.18.tar.xz b/glibc-2.18.tar.xz new file mode 100644 index 0000000..38b8bfb --- /dev/null +++ b/glibc-2.18.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb4e1e381928f1e5e55e71ab1ba8e0ea7ede75ff9709770435bfd018ea257a3 +size 11150148 diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index 7c28ff3..85f858c 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -2,11 +2,11 @@ For details see: http://sourceware.org/bugzilla/show_bug.cgi?id=5379 -Index: glibc-2.15/sunrpc/clnt_udp.c +Index: glibc-2.17.90/sunrpc/clnt_udp.c =================================================================== ---- glibc-2.15.orig/sunrpc/clnt_udp.c -+++ glibc-2.15/sunrpc/clnt_udp.c -@@ -307,6 +307,7 @@ clntudp_call (cl, proc, xargs, argsp, xr +--- glibc-2.17.90.orig/sunrpc/clnt_udp.c ++++ glibc-2.17.90/sunrpc/clnt_udp.c +@@ -308,6 +308,7 @@ clntudp_call (cl, proc, xargs, argsp, xr XDR *xdrs; int outlen = 0; int inlen; @@ -14,7 +14,7 @@ Index: glibc-2.15/sunrpc/clnt_udp.c socklen_t fromlen; struct pollfd fd; int milliseconds = (cu->cu_wait.tv_sec * 1000) + -@@ -377,37 +378,36 @@ send_again: +@@ -378,37 +379,36 @@ send_again: anyup = 0; for (;;) { diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff index 1bc6883..c9161e8 100644 --- a/glibc-2.3.2.no_archive.diff +++ b/glibc-2.3.2.no_archive.diff @@ -3,10 +3,10 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - Make --no-archive default for localedef -Index: glibc-2.15.90/locale/programs/localedef.c +Index: glibc-2.17.90/locale/programs/localedef.c =================================================================== ---- glibc-2.15.90.orig/locale/programs/localedef.c -+++ glibc-2.15.90/locale/programs/localedef.c +--- glibc-2.17.90.orig/locale/programs/localedef.c ++++ glibc-2.17.90/locale/programs/localedef.c @@ -81,7 +81,7 @@ const char *alias_file; static struct localedef_t *locales; @@ -24,7 +24,7 @@ Index: glibc-2.15.90/locale/programs/localedef.c /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = -@@ -133,6 +134,8 @@ static const struct argp_option options[ +@@ -134,6 +135,8 @@ static const struct argp_option options[ N_("Suppress warnings and information messages") }, { "verbose", 'v', NULL, 0, N_("Print more messages") }, { NULL, 0, NULL, 0, N_("Archive control:") }, @@ -33,7 +33,7 @@ Index: glibc-2.15.90/locale/programs/localedef.c { "no-archive", OPT_NO_ARCHIVE, NULL, 0, N_("Don't add new data to archive") }, { "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0, -@@ -310,6 +313,9 @@ parse_opt (int key, char *arg, struct ar +@@ -311,6 +314,9 @@ parse_opt (int key, char *arg, struct ar case OPT_PREFIX: output_prefix = arg; break; diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index 840809f..45031e4 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -2,10 +2,10 @@ * nscd/nscd.h: Move persistent storage back to /var/run/nscd -Index: glibc-2.15.90/nscd/nscd.h +Index: glibc-2.17.90/nscd/nscd.h =================================================================== ---- glibc-2.15.90.orig/nscd/nscd.h -+++ glibc-2.15.90/nscd/nscd.h +--- glibc-2.17.90.orig/nscd/nscd.h ++++ glibc-2.17.90/nscd/nscd.h @@ -112,11 +112,11 @@ struct database_dyn diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index 48a59c5..8a34fca 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15.90/intl/loadmsgcat.c +Index: glibc-2.17.90/intl/loadmsgcat.c =================================================================== ---- glibc-2.15.90.orig/intl/loadmsgcat.c -+++ glibc-2.15.90/intl/loadmsgcat.c -@@ -805,8 +805,52 @@ _nl_load_domain (domain_file, domainbind +--- glibc-2.17.90.orig/intl/loadmsgcat.c ++++ glibc-2.17.90/intl/loadmsgcat.c +@@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind if (domain_file->filename == NULL) goto out; diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index fbe8ac8..770b188 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,7 +1,7 @@ -Index: glibc-2.16.90/elf/rtld.c +Index: glibc-2.17.90/elf/rtld.c =================================================================== ---- glibc-2.16.90.orig/elf/rtld.c -+++ glibc-2.16.90/elf/rtld.c +--- glibc-2.17.90.orig/elf/rtld.c ++++ glibc-2.17.90/elf/rtld.c @@ -1717,6 +1717,53 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 6fad673..0385705 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fe966fc1d1082da024fda16d4ad1e8e2b73f30d646701d24a27882ec653b5807 -size 329247 +oid sha256:10f1db566a96ef0e012c79fc18844593f56424a1e5a7d1b3f6521b2fdc1753e9 +size 329284 diff --git a/glibc-2.4-china.diff b/glibc-2.4-china.diff index e0d0159..4a47dc1 100644 --- a/glibc-2.4-china.diff +++ b/glibc-2.4-china.diff @@ -1,7 +1,7 @@ -Index: glibc-2.15/localedata/locales/zh_TW +Index: glibc-2.17.90/localedata/locales/zh_TW =================================================================== ---- glibc-2.15.orig/localedata/locales/zh_TW -+++ glibc-2.15/localedata/locales/zh_TW +--- glibc-2.17.90.orig/localedata/locales/zh_TW ++++ glibc-2.17.90/localedata/locales/zh_TW @@ -1,7 +1,7 @@ comment_char % escape_char / diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff index 61fc728..7da8b5d 100644 --- a/glibc-2.4.90-no_NO.diff +++ b/glibc-2.4.90-no_NO.diff @@ -1,7 +1,7 @@ -Index: glibc-2.15.90/intl/locale.alias +Index: glibc-2.17.90/intl/locale.alias =================================================================== ---- glibc-2.15.90.orig/intl/locale.alias -+++ glibc-2.15.90/intl/locale.alias +--- glibc-2.17.90.orig/intl/locale.alias ++++ glibc-2.17.90/intl/locale.alias @@ -56,8 +56,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR @@ -11,10 +11,23 @@ Index: glibc-2.15.90/intl/locale.alias norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 -Index: glibc-2.15.90/localedata/locales/no_NO +Index: glibc-2.17.90/localedata/SUPPORTED +=================================================================== +--- glibc-2.17.90.orig/localedata/SUPPORTED ++++ glibc-2.17.90/localedata/SUPPORTED +@@ -324,6 +324,8 @@ nl_NL/ISO-8859-1 \ + nl_NL@euro/ISO-8859-15 \ + nn_NO.UTF-8/UTF-8 \ + nn_NO/ISO-8859-1 \ ++no_NO.UTF-8/UTF-8 \ ++no_NO/ISO-8859-1 \ + nr_ZA/UTF-8 \ + nso_ZA/UTF-8 \ + oc_FR.UTF-8/UTF-8 \ +Index: glibc-2.17.90/localedata/locales/no_NO =================================================================== --- /dev/null -+++ glibc-2.15.90/localedata/locales/no_NO ++++ glibc-2.17.90/localedata/locales/no_NO @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -85,16 +98,3 @@ Index: glibc-2.15.90/localedata/locales/no_NO +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS -Index: glibc-2.15.90/localedata/SUPPORTED -=================================================================== ---- glibc-2.15.90.orig/localedata/SUPPORTED -+++ glibc-2.15.90/localedata/SUPPORTED -@@ -317,6 +317,8 @@ nl_NL/ISO-8859-1 \ - nl_NL@euro/ISO-8859-15 \ - nn_NO.UTF-8/UTF-8 \ - nn_NO/ISO-8859-1 \ -+no_NO.UTF-8/UTF-8 \ -+no_NO/ISO-8859-1 \ - nr_ZA/UTF-8 \ - nso_ZA/UTF-8 \ - oc_FR.UTF-8/UTF-8 \ diff --git a/glibc-2.4.90-revert-only-euro.diff b/glibc-2.4.90-revert-only-euro.diff index 45a2284..f5e515f 100644 --- a/glibc-2.4.90-revert-only-euro.diff +++ b/glibc-2.4.90-revert-only-euro.diff @@ -1,7 +1,7 @@ -Index: glibc-2.15/locale/iso-4217.def +Index: glibc-2.17.90/locale/iso-4217.def =================================================================== ---- glibc-2.15.orig/locale/iso-4217.def -+++ glibc-2.15/locale/iso-4217.def +--- glibc-2.17.90.orig/locale/iso-4217.def ++++ glibc-2.17.90/locale/iso-4217.def @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! diff --git a/glibc-aarch64-lib64.patch b/glibc-aarch64-lib64.patch deleted file mode 100644 index f5fe3d2..0000000 --- a/glibc-aarch64-lib64.patch +++ /dev/null @@ -1,49 +0,0 @@ -libc:cbc105f8b590fa5f5343160ef0a33dde6366c427 - -2013-03-14 Andreas Schwab - - * sysdeps/unix/sysv/linux/aarch64/configure.in: Set - libc_cv_slibdir, libdir and libc_cv_localedir. - * sysdeps/unix/sysv/linux/aarch64/configure: Regenerate. - -diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure b/ports/sysdeps/unix/sysv/linux/aarch64/configure -index 5a22126..04b6c81 100644 ---- a/ports/sysdeps/unix/sysv/linux/aarch64/configure -+++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure -@@ -1,3 +1,16 @@ - # This file is generated from configure.in by Autoconf. DO NOT EDIT! -+ # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. - - arch_minimum_kernel=3.7.0 -+ -+test -n "$libc_cv_slibdir" || -+case "$prefix" in -+ /usr | /usr/) -+ libc_cv_slibdir="/lib64" -+ if test "$libdir" = '${exec_prefix}/lib'; then -+ libdir='${exec_prefix}/lib64'; -+ # Locale data can be shared between 32bit and 64bit libraries -+ libc_cv_localedir='${exec_prefix}/lib/locale' -+ fi -+ ;; -+esac -diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -index d1995d4..6596a15 100644 ---- a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -+++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -@@ -2,3 +2,15 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. - # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. - - arch_minimum_kernel=3.7.0 -+ -+test -n "$libc_cv_slibdir" || -+case "$prefix" in -+ /usr | /usr/) -+ libc_cv_slibdir="/lib64" -+ if test "$libdir" = '${exec_prefix}/lib'; then -+ libdir='${exec_prefix}/lib64'; -+ # Locale data can be shared between 32bit and 64bit libraries -+ libc_cv_localedir='${exec_prefix}/lib/locale' -+ fi -+ ;; -+esac diff --git a/glibc-bindresvport-blacklist.diff b/glibc-bindresvport-blacklist.diff index b561669..3fb3a4f 100644 --- a/glibc-bindresvport-blacklist.diff +++ b/glibc-bindresvport-blacklist.diff @@ -1,7 +1,7 @@ -Index: glibc-2.17/sunrpc/bindrsvprt.c +Index: glibc-2.17.90/sunrpc/bindrsvprt.c =================================================================== ---- glibc-2.17.orig/sunrpc/bindrsvprt.c -+++ glibc-2.17/sunrpc/bindrsvprt.c +--- glibc-2.17.90.orig/sunrpc/bindrsvprt.c ++++ glibc-2.17.90/sunrpc/bindrsvprt.c @@ -29,6 +29,9 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff index dca2eb4..7d34630 100644 --- a/glibc-cpusetsize.diff +++ b/glibc-cpusetsize.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15.90/bits/sched.h +Index: glibc-2.17.90/bits/sched.h =================================================================== ---- glibc-2.15.90.orig/bits/sched.h -+++ glibc-2.15.90/bits/sched.h -@@ -53,7 +53,7 @@ struct __sched_param +--- glibc-2.17.90.orig/bits/sched.h ++++ glibc-2.17.90/bits/sched.h +@@ -52,7 +52,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined /* Size definition for CPU sets. */ @@ -11,11 +11,11 @@ Index: glibc-2.15.90/bits/sched.h # define __NCPUBITS (8 * sizeof (__cpu_mask)) /* Type for array elements in 'cpu_set_t'. */ -Index: glibc-2.15.90/sysdeps/unix/sysv/linux/bits/sched.h +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h =================================================================== ---- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/bits/sched.h -+++ glibc-2.15.90/sysdeps/unix/sysv/linux/bits/sched.h -@@ -112,7 +112,7 @@ struct __sched_param +--- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/bits/sched.h ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h +@@ -111,7 +111,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined /* Size definition for CPU sets. */ diff --git a/glibc-fix-double-loopback.diff b/glibc-fix-double-loopback.diff index cd0b3a5..8025e0c 100644 --- a/glibc-fix-double-loopback.diff +++ b/glibc-fix-double-loopback.diff @@ -7,10 +7,10 @@ Remapping ::1 to 127.0.0.1 is bogus when /etc/hosts is correct. bnc #684534, #606980 http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980 -Index: glibc-2.15.90/nss/nss_files/files-hosts.c +Index: glibc-2.17.90/nss/nss_files/files-hosts.c =================================================================== ---- glibc-2.15.90.orig/nss/nss_files/files-hosts.c -+++ glibc-2.15.90/nss/nss_files/files-hosts.c +--- glibc-2.17.90.orig/nss/nss_files/files-hosts.c ++++ glibc-2.17.90/nss/nss_files/files-hosts.c @@ -68,11 +68,6 @@ LINE_PARSER { if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr)) diff --git a/glibc-nodate.patch b/glibc-nodate.patch index 5bc985a..5ea4b75 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,7 +1,22 @@ -Index: glibc-2.15.90/nscd/nscd_stat.c +Index: glibc-2.17.90/csu/Makefile =================================================================== ---- glibc-2.15.90.orig/nscd/nscd_stat.c -+++ glibc-2.15.90/nscd/nscd_stat.c +--- glibc-2.17.90.orig/csu/Makefile ++++ glibc-2.17.90/csu/Makefile +@@ -162,8 +162,8 @@ $(objpfx)version-info.h: $(common-objpfx + if [ -z "$$os" ]; then \ + os=Linux; \ + fi; \ +- printf '"Compiled on a %s %s system on %s.\\n"\n' \ +- "$$os" "$$version" "`date +%Y-%m-%d`";; \ ++ printf '"Compiled on a %s %s system.\\n"\n' \ ++ "$$os" "$$version";; \ + *) ;; \ + esac; \ + files="$(all-Banner-files)"; \ +Index: glibc-2.17.90/nscd/nscd_stat.c +=================================================================== +--- glibc-2.17.90.orig/nscd/nscd_stat.c ++++ glibc-2.17.90/nscd/nscd_stat.c @@ -36,8 +36,13 @@ #endif /* HAVE_SELINUX */ @@ -17,18 +32,3 @@ Index: glibc-2.15.90/nscd/nscd_stat.c /* Statistic data for one database. */ struct dbstat -Index: glibc-2.15.90/csu/Makefile -=================================================================== ---- glibc-2.15.90.orig/csu/Makefile -+++ glibc-2.15.90/csu/Makefile -@@ -171,8 +171,8 @@ $(objpfx)version-info.h: $(common-objpfx - if [ -z "$$os" ]; then \ - os=Linux; \ - fi; \ -- printf '"Compiled on a %s %s system on %s.\\n"\n' \ -- "$$os" "$$version" "`date +%Y-%m-%d`";; \ -+ printf '"Compiled on a %s %s system.\\n"\n' \ -+ "$$os" "$$version";; \ - *) ;; \ - esac; \ - files="$(all-Banner-files)"; \ diff --git a/glibc-nscd-hconf.diff b/glibc-nscd-hconf.diff index 6baa4fa..3d3807b 100644 --- a/glibc-nscd-hconf.diff +++ b/glibc-nscd-hconf.diff @@ -1,10 +1,10 @@ See: http://sourceware.org/bugzilla/show_bug.cgi?id=11928 -Index: glibc-2.15.90/nscd/aicache.c +Index: glibc-2.17.90/nscd/aicache.c =================================================================== ---- glibc-2.15.90.orig/nscd/aicache.c -+++ glibc-2.15.90/nscd/aicache.c +--- glibc-2.17.90.orig/nscd/aicache.c ++++ glibc-2.17.90/nscd/aicache.c @@ -25,6 +25,7 @@ #include #include @@ -22,11 +22,11 @@ Index: glibc-2.15.90/nscd/aicache.c /* If we are looking for both IPv4 and IPv6 address we don't want the lookup functions to automatically promote IPv4 addresses to -Index: glibc-2.15.90/resolv/res_hconf.c +Index: glibc-2.17.90/resolv/res_hconf.c =================================================================== ---- glibc-2.15.90.orig/resolv/res_hconf.c -+++ glibc-2.15.90/resolv/res_hconf.c -@@ -82,7 +82,9 @@ static const struct cmd +--- glibc-2.17.90.orig/resolv/res_hconf.c ++++ glibc-2.17.90/resolv/res_hconf.c +@@ -81,7 +81,9 @@ static const struct cmd }; /* Structure containing the state. */ diff --git a/glibc-nscd.conf.patch b/glibc-nscd.conf.patch index 81bedb3..2b33892 100644 --- a/glibc-nscd.conf.patch +++ b/glibc-nscd.conf.patch @@ -1,7 +1,7 @@ -Index: glibc-2.15/nscd/nscd.conf +Index: glibc-2.17.90/nscd/nscd.conf =================================================================== ---- glibc-2.15.orig/nscd/nscd.conf -+++ glibc-2.15/nscd/nscd.conf +--- glibc-2.17.90.orig/nscd/nscd.conf ++++ glibc-2.17.90/nscd/nscd.conf @@ -61,11 +61,11 @@ auto-propagate group yes diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff index 284d1a8..29777e4 100644 --- a/glibc-resolv-mdnshint.diff +++ b/glibc-resolv-mdnshint.diff @@ -1,8 +1,8 @@ -Index: glibc-2.15.90/resolv/res_hconf.c +Index: glibc-2.17.90/resolv/res_hconf.c =================================================================== ---- glibc-2.15.90.orig/resolv/res_hconf.c -+++ glibc-2.15.90/resolv/res_hconf.c -@@ -241,9 +241,12 @@ parse_line (const char *fname, int line_ +--- glibc-2.17.90.orig/resolv/res_hconf.c ++++ glibc-2.17.90/resolv/res_hconf.c +@@ -240,9 +240,12 @@ parse_line (const char *fname, int line_ if (c == NULL) { char *buf; diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff index 37dcd6d..397e300 100644 --- a/glibc-resolv-reload.diff +++ b/glibc-resolv-reload.diff @@ -72,10 +72,10 @@ Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="glibc-2.5-resolvconf.patch" -Index: glibc-2.15/resolv/res_libc.c +Index: glibc-2.17.90/resolv/res_libc.c =================================================================== ---- glibc-2.15.orig/resolv/res_libc.c -+++ glibc-2.15/resolv/res_libc.c +--- glibc-2.17.90.orig/resolv/res_libc.c ++++ glibc-2.17.90/resolv/res_libc.c @@ -22,7 +22,7 @@ #include #include diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index ff458cb..570e25d 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,70 @@ +------------------------------------------------------------------- +Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18 release + * No source change +- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, + bnc#779320) +- readdir_r-overflow.patch: fix readdir_r with long file names + (CVE-2013-4237, bnc#834594) + +------------------------------------------------------------------- +Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de + +- Update to glibc 2.17.90 85891acadf1b: + * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal + has been fixed by disabling the use of pt_chown (Bugzilla #15755). + Distributions can re-enable building and using pt_chown via the new configure + option `--enable-pt_chown'. Enabling the use of pt_chown carries with it + considerable security risks and should only be used if the distribution + understands and accepts the risks. + * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla + #15078). + * CVE-2013-1914 Stack overflow in getaddrinfo with many results has been + fixed (Bugzilla #15330). + * Add support for calling C++11 thread_local object destructors on thread + and program exit. This needs compiler support for offloading C++11 + destructor calls to glibc. + * Improved worst case performance of libm functions with double inputs and + output. + * Support for priority inherited mutexes in pthread condition variables on + non-x86 architectures. + * Optimized string functions for AArch64. Implemented by Marcus Shawcroft. + * Optimized string functions for ARM. Implemented by Will Newton and + Richard Henderson. + * Added a benchmark framework to track performance of functions in glibc. + * New macro named issignaling to check for a signaling NaN (sNaN). + It is based on draft TS 18661 and currently enabled as a GNU extension. + * On Linux, the clock function now uses the clock_gettime system call + for improved precision, rather than old times system call. + * Added new API functions pthread_getattr_default_np and + pthread_setattr_default_np to get and set the default pthread + attributes of a process. + * Added support for TSX lock elision for pthread mutexes on i386 and x86-64. + This may improve lock scaling of existing programs on TSX capable systems. + * Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10 + availability). Implemented by Ryan S. Arnold. + * Support added for POWER8 platform. Implemented by Ryan S. Arnold. +- Remove upstreamed patches: + pthread-cond-timedwait-i486.patch + glibc-aarch64-lib64.patch + arm-ld-so-cache.patch + rtlddir.patch + regexp-overrun.patch + getaddrinfo-overflow.patch + nscd-netgroup.patch + disable-pt-chown.patch + nscd-short-write.patch + big5-hkscs-update.patch.bz2 + digits-dots.patch + strptime-W-week.patch + aarch64-sigsetjmp.patch +- Rediff all remaining patches +- Reenable stackguard randomization on arm +- Recognize ppc64p7 arch to build for power7 +- Remove all ABI extensions from libcrypt +- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96 + ------------------------------------------------------------------- Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch index f0b40f0..bb60587 100644 --- a/glibc-testsuite.patch +++ b/glibc-testsuite.patch @@ -1,9 +1,9 @@ test-lfs runs for ever on ReiserFS. Let's disable it completely. -Index: glibc-2.15.90/io/Makefile +Index: glibc-2.17.90/io/Makefile =================================================================== ---- glibc-2.15.90.orig/io/Makefile -+++ glibc-2.15.90/io/Makefile +--- glibc-2.17.90.orig/io/Makefile ++++ glibc-2.17.90/io/Makefile @@ -63,7 +63,7 @@ static-only-routines = stat fstat lstat others := pwd diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 0e68577..a632ae6 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -106,13 +106,14 @@ BuildRequires: gd-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif -Version: 2.17 +Version: 2.18 Release: 0 -%define glibc_major_version 2.17 -%define git_id c758a6861537 +%define glibc_major_version 2.18 +%define git_id %{nil} Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz +#Source: glibc-%{version}-%{git_id}.tar.xz +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -239,48 +240,28 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout -Patch1000: pthread-cond-timedwait-i486.patch -# PATCH-FIX-UPSTREAM Use lib64 for aarch64 -Patch1001: glibc-aarch64-lib64.patch -# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache -Patch1002: arm-ld-so-cache.patch -# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory -Patch1003: rtlddir.patch -# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher -Patch1004: regexp-overrun.patch -# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results -Patch1005: getaddrinfo-overflow.patch -# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd -Patch1006: nscd-netgroup.patch -# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207) -Patch1007: disable-pt-chown.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd -Patch2010: nscd-short-write.patch -# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008 -Patch2011: big5-hkscs-update.patch.bz2 -# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r -Patch2012: digits-dots.patch # PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config Patch2013: nss-database.patch -# PATCH-FIX-UPSTREAM Properly handle %W in strptime -Patch2014: strptime-W-week.patch # PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] Patch2015: printf-overrun.patch -# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp -Patch2016: aarch64-sigsetjmp.patch # PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 Patch2017: nonascii-case.patch # PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp Patch2018: i686-strcasecmp-fallback.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch +# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96 +Patch2020: cbrtl-ldbl-96.patch +# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412) +Patch2021: strcoll-overflow.patch +# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237) +Patch2022: readdir_r-overflow.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -481,27 +462,16 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 - # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 -%patch2010 -p1 -%patch2011 -p1 -%patch2012 -p1 %patch2013 -p1 -%patch2014 -p1 %patch2015 -p1 -%patch2016 -p1 %patch2017 -p1 %patch2018 -p1 %patch2019 -p1 +%patch2020 -p1 +%patch2021 -p1 +%patch2022 -p1 %patch3000 @@ -607,7 +577,7 @@ add_ons=",libidn" %ifarch %arm aarch64 mipsel ia64 add_ons=$add_ons,ports %endif -%ifarch %arm mipsel +%ifarch mipsel # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif @@ -643,12 +613,16 @@ configure_and_build_glibc() { %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif + --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel --without-fp \ +%endif +%ifarch ppc64p7 + --with-cpu=power7 \ %endif --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ diff --git a/glibc-utils.changes b/glibc-utils.changes index ff458cb..570e25d 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,70 @@ +------------------------------------------------------------------- +Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18 release + * No source change +- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, + bnc#779320) +- readdir_r-overflow.patch: fix readdir_r with long file names + (CVE-2013-4237, bnc#834594) + +------------------------------------------------------------------- +Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de + +- Update to glibc 2.17.90 85891acadf1b: + * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal + has been fixed by disabling the use of pt_chown (Bugzilla #15755). + Distributions can re-enable building and using pt_chown via the new configure + option `--enable-pt_chown'. Enabling the use of pt_chown carries with it + considerable security risks and should only be used if the distribution + understands and accepts the risks. + * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla + #15078). + * CVE-2013-1914 Stack overflow in getaddrinfo with many results has been + fixed (Bugzilla #15330). + * Add support for calling C++11 thread_local object destructors on thread + and program exit. This needs compiler support for offloading C++11 + destructor calls to glibc. + * Improved worst case performance of libm functions with double inputs and + output. + * Support for priority inherited mutexes in pthread condition variables on + non-x86 architectures. + * Optimized string functions for AArch64. Implemented by Marcus Shawcroft. + * Optimized string functions for ARM. Implemented by Will Newton and + Richard Henderson. + * Added a benchmark framework to track performance of functions in glibc. + * New macro named issignaling to check for a signaling NaN (sNaN). + It is based on draft TS 18661 and currently enabled as a GNU extension. + * On Linux, the clock function now uses the clock_gettime system call + for improved precision, rather than old times system call. + * Added new API functions pthread_getattr_default_np and + pthread_setattr_default_np to get and set the default pthread + attributes of a process. + * Added support for TSX lock elision for pthread mutexes on i386 and x86-64. + This may improve lock scaling of existing programs on TSX capable systems. + * Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10 + availability). Implemented by Ryan S. Arnold. + * Support added for POWER8 platform. Implemented by Ryan S. Arnold. +- Remove upstreamed patches: + pthread-cond-timedwait-i486.patch + glibc-aarch64-lib64.patch + arm-ld-so-cache.patch + rtlddir.patch + regexp-overrun.patch + getaddrinfo-overflow.patch + nscd-netgroup.patch + disable-pt-chown.patch + nscd-short-write.patch + big5-hkscs-update.patch.bz2 + digits-dots.patch + strptime-W-week.patch + aarch64-sigsetjmp.patch +- Rediff all remaining patches +- Reenable stackguard randomization on arm +- Recognize ppc64p7 arch to build for power7 +- Remove all ABI extensions from libcrypt +- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96 + ------------------------------------------------------------------- Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 5ce393d..1f295de 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -105,13 +105,14 @@ BuildRequires: gd-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif -Version: 2.17 +Version: 2.18 Release: 0 -%define glibc_major_version 2.17 -%define git_id c758a6861537 +%define glibc_major_version 2.18 +%define git_id %{nil} Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz +#Source: glibc-%{version}-%{git_id}.tar.xz +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -238,48 +239,28 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout -Patch1000: pthread-cond-timedwait-i486.patch -# PATCH-FIX-UPSTREAM Use lib64 for aarch64 -Patch1001: glibc-aarch64-lib64.patch -# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache -Patch1002: arm-ld-so-cache.patch -# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory -Patch1003: rtlddir.patch -# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher -Patch1004: regexp-overrun.patch -# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results -Patch1005: getaddrinfo-overflow.patch -# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd -Patch1006: nscd-netgroup.patch -# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207) -Patch1007: disable-pt-chown.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd -Patch2010: nscd-short-write.patch -# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008 -Patch2011: big5-hkscs-update.patch.bz2 -# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r -Patch2012: digits-dots.patch # PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config Patch2013: nss-database.patch -# PATCH-FIX-UPSTREAM Properly handle %W in strptime -Patch2014: strptime-W-week.patch # PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] Patch2015: printf-overrun.patch -# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp -Patch2016: aarch64-sigsetjmp.patch # PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 Patch2017: nonascii-case.patch # PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp Patch2018: i686-strcasecmp-fallback.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch +# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96 +Patch2020: cbrtl-ldbl-96.patch +# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412) +Patch2021: strcoll-overflow.patch +# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237) +Patch2022: readdir_r-overflow.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -481,27 +462,16 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 - # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 -%patch2010 -p1 -%patch2011 -p1 -%patch2012 -p1 %patch2013 -p1 -%patch2014 -p1 %patch2015 -p1 -%patch2016 -p1 %patch2017 -p1 %patch2018 -p1 %patch2019 -p1 +%patch2020 -p1 +%patch2021 -p1 +%patch2022 -p1 %patch3000 @@ -607,7 +577,7 @@ add_ons=",libidn" %ifarch %arm aarch64 mipsel ia64 add_ons=$add_ons,ports %endif -%ifarch %arm mipsel +%ifarch mipsel # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif @@ -643,12 +613,16 @@ configure_and_build_glibc() { %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif + --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel --without-fp \ +%endif +%ifarch ppc64p7 + --with-cpu=power7 \ %endif --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ diff --git a/glibc-version.diff b/glibc-version.diff index d713b45..efb44be 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -1,14 +1,14 @@ -Index: glibc-2.16.90/csu/version.c +Index: glibc-2.17.90/csu/version.c =================================================================== ---- glibc-2.16.90.orig/csu/version.c -+++ glibc-2.16.90/csu/version.c +--- glibc-2.17.90.orig/csu/version.c ++++ glibc-2.17.90/csu/version.c @@ -24,11 +24,12 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2012 Free Software Foundation, Inc.\n\ + Copyright (C) 2013 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index ff458cb..570e25d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,70 @@ +------------------------------------------------------------------- +Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18 release + * No source change +- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, + bnc#779320) +- readdir_r-overflow.patch: fix readdir_r with long file names + (CVE-2013-4237, bnc#834594) + +------------------------------------------------------------------- +Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de + +- Update to glibc 2.17.90 85891acadf1b: + * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal + has been fixed by disabling the use of pt_chown (Bugzilla #15755). + Distributions can re-enable building and using pt_chown via the new configure + option `--enable-pt_chown'. Enabling the use of pt_chown carries with it + considerable security risks and should only be used if the distribution + understands and accepts the risks. + * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla + #15078). + * CVE-2013-1914 Stack overflow in getaddrinfo with many results has been + fixed (Bugzilla #15330). + * Add support for calling C++11 thread_local object destructors on thread + and program exit. This needs compiler support for offloading C++11 + destructor calls to glibc. + * Improved worst case performance of libm functions with double inputs and + output. + * Support for priority inherited mutexes in pthread condition variables on + non-x86 architectures. + * Optimized string functions for AArch64. Implemented by Marcus Shawcroft. + * Optimized string functions for ARM. Implemented by Will Newton and + Richard Henderson. + * Added a benchmark framework to track performance of functions in glibc. + * New macro named issignaling to check for a signaling NaN (sNaN). + It is based on draft TS 18661 and currently enabled as a GNU extension. + * On Linux, the clock function now uses the clock_gettime system call + for improved precision, rather than old times system call. + * Added new API functions pthread_getattr_default_np and + pthread_setattr_default_np to get and set the default pthread + attributes of a process. + * Added support for TSX lock elision for pthread mutexes on i386 and x86-64. + This may improve lock scaling of existing programs on TSX capable systems. + * Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10 + availability). Implemented by Ryan S. Arnold. + * Support added for POWER8 platform. Implemented by Ryan S. Arnold. +- Remove upstreamed patches: + pthread-cond-timedwait-i486.patch + glibc-aarch64-lib64.patch + arm-ld-so-cache.patch + rtlddir.patch + regexp-overrun.patch + getaddrinfo-overflow.patch + nscd-netgroup.patch + disable-pt-chown.patch + nscd-short-write.patch + big5-hkscs-update.patch.bz2 + digits-dots.patch + strptime-W-week.patch + aarch64-sigsetjmp.patch +- Rediff all remaining patches +- Reenable stackguard randomization on arm +- Recognize ppc64p7 arch to build for power7 +- Remove all ABI extensions from libcrypt +- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96 + ------------------------------------------------------------------- Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 322f605..515a9b9 100644 --- a/glibc.spec +++ b/glibc.spec @@ -106,13 +106,14 @@ BuildRequires: gd-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif -Version: 2.17 +Version: 2.18 Release: 0 -%define glibc_major_version 2.17 -%define git_id c758a6861537 +%define glibc_major_version 2.18 +%define git_id %{nil} Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz +#Source: glibc-%{version}-%{git_id}.tar.xz +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -239,48 +240,28 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout -Patch1000: pthread-cond-timedwait-i486.patch -# PATCH-FIX-UPSTREAM Use lib64 for aarch64 -Patch1001: glibc-aarch64-lib64.patch -# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache -Patch1002: arm-ld-so-cache.patch -# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory -Patch1003: rtlddir.patch -# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher -Patch1004: regexp-overrun.patch -# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results -Patch1005: getaddrinfo-overflow.patch -# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd -Patch1006: nscd-netgroup.patch -# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207) -Patch1007: disable-pt-chown.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de Patch2008: glibc-ld-profile.patch -# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd -Patch2010: nscd-short-write.patch -# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008 -Patch2011: big5-hkscs-update.patch.bz2 -# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r -Patch2012: digits-dots.patch # PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config Patch2013: nss-database.patch -# PATCH-FIX-UPSTREAM Properly handle %W in strptime -Patch2014: strptime-W-week.patch # PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] Patch2015: printf-overrun.patch -# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp -Patch2016: aarch64-sigsetjmp.patch # PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 Patch2017: nonascii-case.patch # PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp Patch2018: i686-strcasecmp-fallback.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch +# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96 +Patch2020: cbrtl-ldbl-96.patch +# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412) +Patch2021: strcoll-overflow.patch +# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237) +Patch2022: readdir_r-overflow.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -481,27 +462,16 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 - # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 -%patch2010 -p1 -%patch2011 -p1 -%patch2012 -p1 %patch2013 -p1 -%patch2014 -p1 %patch2015 -p1 -%patch2016 -p1 %patch2017 -p1 %patch2018 -p1 %patch2019 -p1 +%patch2020 -p1 +%patch2021 -p1 +%patch2022 -p1 %patch3000 @@ -607,7 +577,7 @@ add_ons=",libidn" %ifarch %arm aarch64 mipsel ia64 add_ons=$add_ons,ports %endif -%ifarch %arm mipsel +%ifarch mipsel # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif @@ -643,12 +613,16 @@ configure_and_build_glibc() { %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif + --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel --without-fp \ +%endif +%ifarch ppc64p7 + --with-cpu=power7 \ %endif --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c index ab52f16..0ed1ff3 100644 --- a/glibc_post_upgrade.c +++ b/glibc_post_upgrade.c @@ -15,14 +15,14 @@ #include #include -#define verbose_exec(failcode, fail_ok, path...) \ +#define verbose_exec(failcode, path...) \ do \ { \ char *const arr[] = { path, NULL }; \ - vexec (failcode, fail_ok, arr); \ + vexec (failcode, arr); \ } while (0) -__attribute__((noinline)) void vexec (int failcode, int fail_ok, char *const path[]); +__attribute__((noinline)) void vexec (int failcode, char *const path[]); __attribute__((noinline)) void says (const char *str); __attribute__((noinline)) void sayn (long num); __attribute__((noinline)) void message (char *const path[]); @@ -116,23 +116,18 @@ main (void) before running one of the lib's %post scriptlet. /sbin/ldconfig will then be run by the other arch's %post. */ if (access ("/sbin/ldconfig", X_OK) == 0) - verbose_exec (110, 0, "/sbin/ldconfig", "/sbin/ldconfig", "-X"); + verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig", "-X"); if (utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL) == 0) { #ifndef ICONVCONFIG #define ICONVCONFIG "/usr/sbin/iconvconfig" #endif - verbose_exec (113, 0, ICONVCONFIG, "/usr/sbin/iconvconfig", + verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig", "-o", GCONV_MODULES_DIR"/gconv-modules.cache", "--nostdlib", GCONV_MODULES_DIR); } - /* Implement %set_permissions %{_libexecdir}/pt_chown. */ - if (access ("/usr/bin/chkstat", X_OK) == 0) - verbose_exec (114, 1, "/usr/bin/chkstat", "/usr/bin/chkstat", - "-n", "--set", "--system", "/usr/lib/pt_chown"); - /* Check if telinit is available and the init fifo as well. */ if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK)) _exit (0); @@ -147,7 +142,7 @@ main (void) _exit (0); if (check_elf ("/proc/1/exe")) - verbose_exec (116, 0, "/sbin/telinit", "/sbin/telinit", "u"); + verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u"); #if 0 /* Check if we can safely condrestart sshd. */ @@ -156,7 +151,7 @@ main (void) && access ("/bin/bash", X_OK) == 0) { if (check_elf ("/usr/sbin/sshd")) - verbose_exec (121, 0, "/sbin/service", "/sbin/service", "sshd", "condrestart"); + verbose_exec (121, "/sbin/service", "/sbin/service", "sshd", "condrestart"); } #endif @@ -164,7 +159,7 @@ main (void) } void -vexec (int failcode, int fail_ok, char *const path[]) +vexec (int failcode, char *const path[]) { pid_t pid; int status, save_errno; @@ -200,15 +195,8 @@ vexec (int failcode, int fail_ok, char *const path[]) message (path); says (" child exited with exit code "); sayn (WEXITSTATUS (status)); - if (fail_ok) - { - says (" (ignored) \n"); - } - else - { - says ("\n"); - _exit (WEXITSTATUS (status)); - } + says ("\n"); + _exit (WEXITSTATUS (status)); } } diff --git a/i686-strcasecmp-fallback.patch b/i686-strcasecmp-fallback.patch index 7790ce1..73e030c 100644 --- a/i686-strcasecmp-fallback.patch +++ b/i686-strcasecmp-fallback.patch @@ -4,10 +4,10 @@ * sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3) (__strncasecmp_ssse3) [PIC]: Likewise. -Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S +Index: glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-sse4.S =================================================================== ---- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-sse4.S -+++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S +--- glibc-2.17.90.orig/sysdeps/i386/i686/multiarch/strcmp-sse4.S ++++ glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-sse4.S @@ -121,8 +121,14 @@ ENTRY (__strcasecmp_sse4_2) movl (%eax), %eax # endif @@ -38,10 +38,10 @@ Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S END (__strncasecmp_sse4_2) #endif -Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +Index: glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-ssse3.S =================================================================== ---- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-ssse3.S -+++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +--- glibc-2.17.90.orig/sysdeps/i386/i686/multiarch/strcmp-ssse3.S ++++ glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-ssse3.S @@ -138,8 +138,14 @@ ENTRY (__strcasecmp_ssse3) movl (%eax), %eax # endif diff --git a/nonascii-case.patch b/nonascii-case.patch index e07297f..a4be170 100644 --- a/nonascii-case.patch +++ b/nonascii-case.patch @@ -6,10 +6,10 @@ locales. * string/test-strncasecmp.c (test_main): Likewise. -Index: glibc-2.17/locale/categories.def +Index: glibc-2.17.90/locale/categories.def =================================================================== ---- glibc-2.17.orig/locale/categories.def -+++ glibc-2.17/locale/categories.def +--- glibc-2.17.90.orig/locale/categories.def ++++ glibc-2.17.90/locale/categories.def @@ -133,6 +133,7 @@ DEFINE_CATEGORY DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word) DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string) @@ -18,11 +18,11 @@ Index: glibc-2.17/locale/categories.def ), _nl_postload_ctype) -Index: glibc-2.17/string/Makefile +Index: glibc-2.17.90/string/Makefile =================================================================== ---- glibc-2.17.orig/string/Makefile -+++ glibc-2.17/string/Makefile -@@ -69,6 +69,10 @@ noinl-tester-ENV = LANGUAGE=C +--- glibc-2.17.90.orig/string/Makefile ++++ glibc-2.17.90/string/Makefile +@@ -65,6 +65,10 @@ noinl-tester-ENV = LANGUAGE=C tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata @@ -33,10 +33,10 @@ Index: glibc-2.17/string/Makefile CFLAGS-inl-tester.c = -fno-builtin CFLAGS-noinl-tester.c = -fno-builtin CFLAGS-tst-strlen.c = -fno-builtin -Index: glibc-2.17/string/test-strcasecmp.c +Index: glibc-2.17.90/string/test-strcasecmp.c =================================================================== ---- glibc-2.17.orig/string/test-strcasecmp.c -+++ glibc-2.17/string/test-strcasecmp.c +--- glibc-2.17.90.orig/string/test-strcasecmp.c ++++ glibc-2.17.90/string/test-strcasecmp.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see . */ @@ -45,7 +45,7 @@ Index: glibc-2.17/string/test-strcasecmp.c #include #define TEST_MAIN #define TEST_NAME "strcasecmp" -@@ -230,14 +231,18 @@ do_random_tests (void) +@@ -206,14 +207,18 @@ do_random_tests (void) } } @@ -68,7 +68,7 @@ Index: glibc-2.17/string/test-strcasecmp.c FOR_EACH_IMPL (impl, 0) printf ("\t%s", impl->name); putchar ('\n'); -@@ -270,6 +275,19 @@ test_main (void) +@@ -246,6 +251,19 @@ test_main (void) } do_random_tests (); @@ -88,10 +88,10 @@ Index: glibc-2.17/string/test-strcasecmp.c return ret; } -Index: glibc-2.17/string/test-strncasecmp.c +Index: glibc-2.17.90/string/test-strncasecmp.c =================================================================== ---- glibc-2.17.orig/string/test-strncasecmp.c -+++ glibc-2.17/string/test-strncasecmp.c +--- glibc-2.17.90.orig/string/test-strncasecmp.c ++++ glibc-2.17.90/string/test-strncasecmp.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see . */ @@ -100,7 +100,7 @@ Index: glibc-2.17/string/test-strncasecmp.c #include #define TEST_MAIN #define TEST_NAME "strncasecmp" -@@ -280,17 +281,21 @@ bz14195 (void) +@@ -256,17 +257,21 @@ bz14195 (void) check_result (impl, empty_string, "", 5, 0); } @@ -126,7 +126,7 @@ Index: glibc-2.17/string/test-strncasecmp.c FOR_EACH_IMPL (impl, 0) printf ("\t%s", impl->name); putchar ('\n'); -@@ -353,6 +358,19 @@ test_main (void) +@@ -329,6 +334,19 @@ test_main (void) } do_random_tests (); diff --git a/nscd-netgroup.patch b/nscd-netgroup.patch deleted file mode 100644 index 591cce2..0000000 --- a/nscd-netgroup.patch +++ /dev/null @@ -1,98 +0,0 @@ -2013-06-11 Andreas Schwab - - [BZ #15577] - * nscd/connections.c (nscd_run_worker): Always zero-terminate key. - * nscd/netgroupcache.c (addgetnetgrentX): Properly handle absent - values in the triple. - * nscd/nscd_netgroup.c (__nscd_setnetgrent): Include zero - terminator in the group key. - -Index: glibc-2.17/nscd/connections.c -=================================================================== ---- glibc-2.17.orig/nscd/connections.c -+++ glibc-2.17/nscd/connections.c -@@ -1762,7 +1762,7 @@ nscd_run_worker (void *p) - else - { - /* Get the key. */ -- char keybuf[MAXKEYLEN]; -+ char keybuf[MAXKEYLEN + 1]; - - if (__builtin_expect (TEMP_FAILURE_RETRY (read (fd, keybuf, - req.key_len)) -@@ -1774,6 +1774,7 @@ nscd_run_worker (void *p) - strerror_r (errno, buf, sizeof (buf))); - goto close_and_out; - } -+ keybuf[req.key_len] = '\0'; - - if (__builtin_expect (debug_level, 0) > 0) - { -Index: glibc-2.17/nscd/netgroupcache.c -=================================================================== ---- glibc-2.17.orig/nscd/netgroupcache.c -+++ glibc-2.17/nscd/netgroupcache.c -@@ -192,18 +192,26 @@ addgetnetgrentX (struct database_dyn *db - const char *nuser = data.val.triple.user; - const char *ndomain = data.val.triple.domain; - -- if (data.val.triple.host > data.val.triple.user -- || data.val.triple.user > data.val.triple.domain) -+ if (nhost == NULL || nuser == NULL || ndomain == NULL -+ || nhost > nuser || nuser > ndomain) - { -- const char *last = MAX (nhost, -- MAX (nuser, ndomain)); -- size_t bufused = (last + strlen (last) + 1 -- - buffer); -+ const char *last = nhost; -+ if (last == NULL -+ || (nuser != NULL && nuser > last)) -+ last = nuser; -+ if (last == NULL -+ || (ndomain != NULL && ndomain > last)) -+ last = ndomain; -+ -+ size_t bufused -+ = (last == NULL -+ ? buffilled -+ : last + strlen (last) + 1 - buffer); - - /* We have to make temporary copies. */ -- size_t hostlen = strlen (nhost) + 1; -- size_t userlen = strlen (nuser) + 1; -- size_t domainlen = strlen (ndomain) + 1; -+ size_t hostlen = strlen (nhost ?: "") + 1; -+ size_t userlen = strlen (nuser ?: "") + 1; -+ size_t domainlen = strlen (ndomain ?: "") + 1; - size_t needed = hostlen + userlen + domainlen; - - if (buflen - req->key_len - bufused < needed) -@@ -226,11 +234,11 @@ addgetnetgrentX (struct database_dyn *db - } - - nhost = memcpy (buffer + bufused, -- nhost, hostlen); -+ nhost ?: "", hostlen); - nuser = memcpy ((char *) nhost + hostlen, -- nuser, userlen); -+ nuser ?: "", userlen); - ndomain = memcpy ((char *) nuser + userlen, -- ndomain, domainlen); -+ ndomain ?: "", domainlen); - } - - char *wp = buffer + buffilled; -Index: glibc-2.17/nscd/nscd_netgroup.c -=================================================================== ---- glibc-2.17.orig/nscd/nscd_netgroup.c -+++ glibc-2.17/nscd/nscd_netgroup.c -@@ -48,7 +48,7 @@ __nscd_setnetgrent (const char *group, s - { - int gc_cycle; - int nretries = 0; -- size_t group_len = strlen (group); -+ size_t group_len = strlen (group) + 1; - - /* If the mapping is available, try to search there instead of - communicating with the nscd. */ diff --git a/nscd-short-write.patch b/nscd-short-write.patch deleted file mode 100644 index 6734e4a..0000000 --- a/nscd-short-write.patch +++ /dev/null @@ -1,178 +0,0 @@ -From 5a7b70c87c5ba03a122db0372e87ecb550ee4b38 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Tue, 4 Dec 2012 16:14:13 +0100 -Subject: [PATCH] Properly check for short writes when sending the response in - nscd - - * nscd/grpcache.c (cache_addgr): Properly check for short write. - * nscd/initgrcache.c (addinitgroupsX): Likewise. - * nscd/pwdcache.c (cache_addpw): Likewise. - * nscd/servicescache.c (cache_addserv): Likewise. Don't write - more than recsize. ---- - nscd/grpcache.c | 6 +++++- - nscd/initgrcache.c | 7 ++++++- - nscd/pwdcache.c | 8 ++++++-- - nscd/servicescache.c | 12 ++++++++---- - 4 files changed, 25 insertions(+), 8 deletions(-) - -diff --git a/nscd/grpcache.c b/nscd/grpcache.c -index f0dad4d..696162f 100644 ---- a/nscd/grpcache.c -+++ b/nscd/grpcache.c -@@ -75,6 +75,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, - const void *key, struct group *grp, uid_t owner, - struct hashentry *const he, struct datahead *dh, int errval) - { -+ bool all_written = true; - ssize_t total; - ssize_t written; - time_t t = time (NULL); -@@ -342,6 +343,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, - # endif - #endif - written = writeall (fd, &dataset->resp, dataset->head.recsize); -+ -+ if (written != dataset->head.recsize) -+ all_written = false; - } - - /* Add the record to the database. But only if it has not been -@@ -401,7 +405,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, - } - } - -- if (__builtin_expect (written != total, 0) && debug_level > 0) -+ if (__builtin_expect (!all_written, 0) && debug_level > 0) - { - char buf[256]; - dbg_log (_("short write in %s: %s"), __FUNCTION__, -diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c -index 255b121..13ee86e 100644 ---- a/nscd/initgrcache.c -+++ b/nscd/initgrcache.c -@@ -171,10 +171,12 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, - nip = nip->next; - } - -+ bool all_written; - ssize_t total; - ssize_t written; - time_t timeout; - out: -+ all_written = true; - timeout = MAX_TIMEOUT_VALUE; - if (!any_success) - { -@@ -379,6 +381,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, - # endif - #endif - written = writeall (fd, &dataset->resp, dataset->head.recsize); -+ -+ if (written != dataset->head.recsize) -+ all_written = false; - } - - -@@ -405,7 +410,7 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, - - free (groups); - -- if (__builtin_expect (written != total, 0) && debug_level > 0) -+ if (__builtin_expect (!all_written, 0) && debug_level > 0) - { - char buf[256]; - dbg_log (_("short write in %s: %s"), __FUNCTION__, -diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c -index a8ea407..d6b91ef 100644 ---- a/nscd/pwdcache.c -+++ b/nscd/pwdcache.c -@@ -81,6 +81,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, - const void *key, struct passwd *pwd, uid_t owner, - struct hashentry *const he, struct datahead *dh, int errval) - { -+ bool all_written = true; - ssize_t total; - ssize_t written; - time_t t = time (NULL); -@@ -306,7 +307,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, - + db->head->data_size)); - written = sendfileall (fd, db->wr_fd, - (char *) &dataset->resp -- - (char *) db->head, dataset->head.recsize ); -+ - (char *) db->head, dataset->head.recsize); - # ifndef __ASSUME_SENDFILE - if (written == -1 && errno == ENOSYS) - goto use_write; -@@ -318,6 +319,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, - # endif - #endif - written = writeall (fd, &dataset->resp, dataset->head.recsize); -+ -+ if (written != dataset->head.recsize) -+ all_written = false; - } - - -@@ -377,7 +381,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, - } - } - -- if (__builtin_expect (written != total, 0) && debug_level > 0) -+ if (__builtin_expect (!all_written, 0) && debug_level > 0) - { - char buf[256]; - dbg_log (_("short write in %s: %s"), __FUNCTION__, -diff --git a/nscd/servicescache.c b/nscd/servicescache.c -index 0e7520d..917daa4 100644 ---- a/nscd/servicescache.c -+++ b/nscd/servicescache.c -@@ -65,6 +65,7 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, - const void *key, struct servent *serv, uid_t owner, - struct hashentry *const he, struct datahead *dh, int errval) - { -+ bool all_written = true; - ssize_t total; - ssize_t written; - time_t t = time (NULL); -@@ -290,14 +291,14 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); -- assert ((char *) &dataset->resp - (char *) db->head -+ assert ((char *) dataset - (char *) db->head - + total - <= (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) - + db->head->data_size)); - written = sendfileall (fd, db->wr_fd, - (char *) &dataset->resp -- - (char *) db->head, total); -+ - (char *) db->head, dataset->head.recsize); - # ifndef __ASSUME_SENDFILE - if (written == -1 && errno == ENOSYS) - goto use_write; -@@ -308,7 +309,10 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, - use_write: - # endif - #endif -- written = writeall (fd, &dataset->resp, total); -+ written = writeall (fd, &dataset->resp, dataset->head.recsize); -+ -+ if (written != dataset->head.recsize) -+ all_written = false; - } - - /* Add the record to the database. But only if it has not been -@@ -332,7 +336,7 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, - } - } - -- if (__builtin_expect (written != total, 0) && debug_level > 0) -+ if (__builtin_expect (!all_written, 0) && debug_level > 0) - { - char buf[256]; - dbg_log (_("short write in %s: %s"), __FUNCTION__, --- -1.8.0.1 - diff --git a/nss-database.patch b/nss-database.patch index bc51781..2cf36ed 100644 --- a/nss-database.patch +++ b/nss-database.patch @@ -15,11 +15,11 @@ Subject: [PATCH] Properly cache the result from looking up the nss database sysdeps/posix/getaddrinfo.c | 14 ++++++-------- 3 files changed, 20 insertions(+), 24 deletions(-) -diff --git a/nscd/aicache.c b/nscd/aicache.c -index 23dcf80..17e06e7 100644 ---- a/nscd/aicache.c -+++ b/nscd/aicache.c -@@ -85,20 +85,19 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, +Index: glibc-2.17.90/nscd/aicache.c +=================================================================== +--- glibc-2.17.90.orig/nscd/aicache.c ++++ glibc-2.17.90/nscd/aicache.c +@@ -86,20 +86,19 @@ addhstaiX (struct database_dyn *db, int } static service_user *hosts_database; @@ -47,11 +47,11 @@ index 23dcf80..17e06e7 100644 if (__res_maybe_init (&_res, 0) == -1) no_more = 1; -diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c -index 462780e..4580884 100644 ---- a/nscd/initgrcache.c -+++ b/nscd/initgrcache.c -@@ -80,17 +80,16 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, +Index: glibc-2.17.90/nscd/initgrcache.c +=================================================================== +--- glibc-2.17.90.orig/nscd/initgrcache.c ++++ glibc-2.17.90/nscd/initgrcache.c +@@ -80,17 +80,16 @@ addinitgroupsX (struct database_dyn *db, } static service_user *group_database; @@ -76,11 +76,11 @@ index 462780e..4580884 100644 /* We always use sysconf even if NGROUPS_MAX is defined. That way, the limit can be raised in the kernel configuration without having to -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index d368306..4800599 100644 ---- a/sysdeps/posix/getaddrinfo.c -+++ b/sysdeps/posix/getaddrinfo.c -@@ -557,7 +557,7 @@ gaih_inet (const char *name, const struct gaih_service *service, +Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.17.90.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.17.90/sysdeps/posix/getaddrinfo.c +@@ -558,7 +558,7 @@ gaih_inet (const char *name, const struc struct gaih_addrtuple **pat = &at; int no_data = 0; int no_inet6_data = 0; @@ -89,7 +89,7 @@ index d368306..4800599 100644 enum nss_status inet6_status = NSS_STATUS_UNAVAIL; enum nss_status status = NSS_STATUS_UNAVAIL; int no_more; -@@ -790,15 +790,13 @@ gaih_inet (const char *name, const struct gaih_service *service, +@@ -791,15 +791,13 @@ gaih_inet (const char *name, const struc } #endif @@ -110,6 +110,3 @@ index d368306..4800599 100644 /* Initialize configurations. */ if (__builtin_expect (!_res_hconf.initialized, 0)) --- -1.8.2.3 - diff --git a/nss-db-path.patch b/nss-db-path.patch index 6560151..f485008 100644 --- a/nss-db-path.patch +++ b/nss-db-path.patch @@ -1,9 +1,22 @@ Use /var/db for nss_db -Index: glibc-2.16.90/nss/db-Makefile +Index: glibc-2.17.90/Makeconfig =================================================================== ---- glibc-2.16.90.orig/nss/db-Makefile -+++ glibc-2.16.90/nss/db-Makefile +--- glibc-2.17.90.orig/Makeconfig ++++ glibc-2.17.90/Makeconfig +@@ -259,7 +259,7 @@ inst_sysconfdir = $(install_root)$(sysco + + # Directory for the database files and Makefile for nss_db. + ifndef vardbdir +-vardbdir = $(localstatedir)/db ++vardbdir = /var/lib/misc + endif + inst_vardbdir = $(install_root)$(vardbdir) + +Index: glibc-2.17.90/nss/db-Makefile +=================================================================== +--- glibc-2.17.90.orig/nss/db-Makefile ++++ glibc-2.17.90/nss/db-Makefile @@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/ /etc/rpc /etc/services /etc/shadow /etc/gshadow \ /etc/netgroup) @@ -13,10 +26,10 @@ Index: glibc-2.16.90/nss/db-Makefile AWK = awk MAKEDB = makedb --quiet -Index: glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h +Index: glibc-2.17.90/sysdeps/unix/sysv/linux/paths.h =================================================================== ---- glibc-2.16.90.orig/sysdeps/unix/sysv/linux/paths.h -+++ glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h +--- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/paths.h ++++ glibc-2.17.90/sysdeps/unix/sysv/linux/paths.h @@ -68,7 +68,7 @@ /* Provide trailing slash, since mostly used for building pathnames. */ #define _PATH_DEV "/dev/" @@ -26,16 +39,3 @@ Index: glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h #define _PATH_VARRUN "/var/run/" #define _PATH_VARTMP "/var/tmp/" -Index: glibc-2.16.90/Makeconfig -=================================================================== ---- glibc-2.16.90.orig/Makeconfig -+++ glibc-2.16.90/Makeconfig -@@ -250,7 +250,7 @@ inst_sysconfdir = $(install_root)$(sysco - - # Directory for the database files and Makefile for nss_db. - ifndef vardbdir --vardbdir = $(localstatedir)/db -+vardbdir = /var/lib/misc - endif - inst_vardbdir = $(install_root)$(vardbdir) - diff --git a/pldd-wait-ptrace-stop.patch b/pldd-wait-ptrace-stop.patch index 099cfea..d5c0256 100644 --- a/pldd-wait-ptrace-stop.patch +++ b/pldd-wait-ptrace-stop.patch @@ -3,10 +3,10 @@ * elf/pldd.c (wait_for_ptrace_stop): New function. (main): Call it after attaching. -Index: glibc-2.17/elf/pldd.c +Index: glibc-2.17.90/elf/pldd.c =================================================================== ---- glibc-2.17.orig/elf/pldd.c -+++ glibc-2.17/elf/pldd.c +--- glibc-2.17.90.orig/elf/pldd.c ++++ glibc-2.17.90/elf/pldd.c @@ -34,6 +34,7 @@ #include #include @@ -15,7 +15,7 @@ Index: glibc-2.17/elf/pldd.c #include #include -@@ -85,6 +86,7 @@ static char *exe; +@@ -82,6 +83,7 @@ static char *exe; /* Local functions. */ static int get_process_info (int dfd, long int pid); @@ -23,7 +23,7 @@ Index: glibc-2.17/elf/pldd.c int -@@ -173,6 +175,8 @@ main (int argc, char *argv[]) +@@ -170,6 +172,8 @@ main (int argc, char *argv[]) tid); } @@ -32,7 +32,7 @@ Index: glibc-2.17/elf/pldd.c struct thread_list *newp = alloca (sizeof (*newp)); newp->tid = tid; newp->next = thread_list; -@@ -197,6 +201,24 @@ main (int argc, char *argv[]) +@@ -194,6 +198,24 @@ main (int argc, char *argv[]) } diff --git a/printf-overrun.patch b/printf-overrun.patch index 211c909..d5f3b3b 100644 --- a/printf-overrun.patch +++ b/printf-overrun.patch @@ -20,10 +20,10 @@ Subject: [PATCH] PR15362 stdio-common/vfprintf.c | 12 ++++++------ 6 files changed, 27 insertions(+), 30 deletions(-) -diff --git a/libio/fileops.c b/libio/fileops.c -index 61b61b3..90d5e88 100644 ---- a/libio/fileops.c -+++ b/libio/fileops.c +Index: glibc-2.17.90/libio/fileops.c +=================================================================== +--- glibc-2.17.90.orig/libio/fileops.c ++++ glibc-2.17.90/libio/fileops.c @@ -1245,13 +1245,12 @@ _IO_new_file_write (f, data, n) _IO_ssize_t n; { @@ -69,10 +69,10 @@ index 61b61b3..90d5e88 100644 block_size = f->_IO_buf_end - f->_IO_buf_base; do_write = to_do - (block_size >= 128 ? to_do % block_size : 0); -diff --git a/libio/iofwrite.c b/libio/iofwrite.c -index 81596a6..66542ea 100644 ---- a/libio/iofwrite.c -+++ b/libio/iofwrite.c +Index: glibc-2.17.90/libio/iofwrite.c +=================================================================== +--- glibc-2.17.90.orig/libio/iofwrite.c ++++ glibc-2.17.90/libio/iofwrite.c @@ -42,12 +42,12 @@ _IO_fwrite (buf, size, count, fp) if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1) written = _IO_sputn (fp, (const char *) buf, request); @@ -91,10 +91,10 @@ index 81596a6..66542ea 100644 else return written / size; } -diff --git a/libio/iofwrite_u.c b/libio/iofwrite_u.c -index 4a9d6ca..18dc6d0 100644 ---- a/libio/iofwrite_u.c -+++ b/libio/iofwrite_u.c +Index: glibc-2.17.90/libio/iofwrite_u.c +=================================================================== +--- glibc-2.17.90.orig/libio/iofwrite_u.c ++++ glibc-2.17.90/libio/iofwrite_u.c @@ -44,12 +44,12 @@ fwrite_unlocked (buf, size, count, fp) if (_IO_fwide (fp, -1) == -1) { @@ -113,10 +113,10 @@ index 4a9d6ca..18dc6d0 100644 } return written / size; -diff --git a/libio/iopadn.c b/libio/iopadn.c -index cc93c0f..5ebbcf4 100644 ---- a/libio/iopadn.c -+++ b/libio/iopadn.c +Index: glibc-2.17.90/libio/iopadn.c +=================================================================== +--- glibc-2.17.90.orig/libio/iopadn.c ++++ glibc-2.17.90/libio/iopadn.c @@ -59,7 +59,7 @@ _IO_padn (fp, pad, count) w = _IO_sputn (fp, padptr, PADSIZE); written += w; @@ -126,10 +126,10 @@ index cc93c0f..5ebbcf4 100644 } if (i > 0) -diff --git a/libio/iowpadn.c b/libio/iowpadn.c -index d94db71..5600f37 100644 ---- a/libio/iowpadn.c -+++ b/libio/iowpadn.c +Index: glibc-2.17.90/libio/iowpadn.c +=================================================================== +--- glibc-2.17.90.orig/libio/iowpadn.c ++++ glibc-2.17.90/libio/iowpadn.c @@ -65,7 +65,7 @@ _IO_wpadn (fp, pad, count) w = _IO_sputn (fp, (char *) padptr, PADSIZE); written += w; @@ -139,18 +139,18 @@ index d94db71..5600f37 100644 } if (i > 0) -diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c -index c8bcf5a..61d9dc2 100644 ---- a/stdio-common/vfprintf.c -+++ b/stdio-common/vfprintf.c +Index: glibc-2.17.90/stdio-common/vfprintf.c +=================================================================== +--- glibc-2.17.90.orig/stdio-common/vfprintf.c ++++ glibc-2.17.90/stdio-common/vfprintf.c @@ -90,13 +90,13 @@ do { \ if (width > 0) \ { \ - unsigned int d = _IO_padn (s, (Padchar), width); \ -- if (__builtin_expect (d == EOF, 0)) \ +- if (__glibc_unlikely (d == EOF)) \ + _IO_ssize_t written = _IO_padn (s, (Padchar), width); \ -+ if (__builtin_expect (written != width, 0)) \ ++ if (__glibc_unlikely (written != width)) \ { \ done = -1; \ goto all_done; \ @@ -165,9 +165,9 @@ index c8bcf5a..61d9dc2 100644 if (width > 0) \ { \ - unsigned int d = _IO_wpadn (s, (Padchar), width); \ -- if (__builtin_expect (d == EOF, 0)) \ +- if (__glibc_unlikely (d == EOF)) \ + _IO_ssize_t written = _IO_wpadn (s, (Padchar), width); \ -+ if (__builtin_expect (written != width, 0)) \ ++ if (__glibc_unlikely (written != width)) \ { \ done = -1; \ goto all_done; \ diff --git a/pthread-cond-timedwait-i486.patch b/pthread-cond-timedwait-i486.patch deleted file mode 100644 index 1295d93..0000000 --- a/pthread-cond-timedwait-i486.patch +++ /dev/null @@ -1,526 +0,0 @@ -From b8a72d0c4ca74e52ea06fa4e56489499489ec158 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Thu, 22 Nov 2012 12:57:37 +0100 -Subject: [PATCH] Extend i486 pthread_cond_timedwait to use futex syscall with - absolute timeout - - * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S - (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to - directly use absolute timeout. ---- - .../sysv/linux/i386/i486/pthread_cond_timedwait.S | 381 +++++++++++++++++---- - 1 file changed, 315 insertions(+), 66 deletions(-) - -diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S -index 6011f69..b9dbe6b 100644 ---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S -@@ -66,6 +66,34 @@ __pthread_cond_timedwait: - movl $EINVAL, %eax - jae 18f - -+ /* Stack frame: -+ -+ esp + 32 -+ +--------------------------+ -+ esp + 24 | timeout value | -+ +--------------------------+ -+ esp + 20 | futex pointer | -+ +--------------------------+ -+ esp + 16 | pi-requeued flag | -+ +--------------------------+ -+ esp + 12 | old broadcast_seq value | -+ +--------------------------+ -+ esp + 4 | old wake_seq value | -+ +--------------------------+ -+ esp + 0 | old cancellation mode | -+ +--------------------------+ -+ */ -+ -+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME -+# ifdef PIC -+ LOAD_PIC_REG (cx) -+ cmpl $0, __have_futex_clock_realtime@GOTOFF(%ecx) -+# else -+ cmpl $0, __have_futex_clock_realtime -+# endif -+ je .Lreltmo -+#endif -+ - /* Get internal lock. */ - movl $1, %edx - xorl %eax, %eax -@@ -96,7 +124,11 @@ __pthread_cond_timedwait: - addl $1, cond_futex(%ebx) - addl $(1 << nwaiters_shift), cond_nwaiters(%ebx) - --#define FRAME_SIZE 32 -+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME -+# define FRAME_SIZE 24 -+#else -+# define FRAME_SIZE 32 -+#endif - subl $FRAME_SIZE, %esp - cfi_adjust_cfa_offset(FRAME_SIZE) - cfi_remember_state -@@ -105,60 +137,19 @@ __pthread_cond_timedwait: - movl wakeup_seq(%ebx), %edi - movl wakeup_seq+4(%ebx), %edx - movl broadcast_seq(%ebx), %eax -- movl %edi, 12(%esp) -- movl %edx, 16(%esp) -- movl %eax, 20(%esp) -+ movl %edi, 4(%esp) -+ movl %edx, 8(%esp) -+ movl %eax, 12(%esp) - - /* Reset the pi-requeued flag. */ --8: movl $0, 24(%esp) -- /* Get the current time. */ -- movl %ebx, %edx --#ifdef __NR_clock_gettime -- /* Get the clock number. */ -- movl cond_nwaiters(%ebx), %ebx -- andl $((1 << nwaiters_shift) - 1), %ebx -- /* Only clocks 0 and 1 are allowed so far. Both are handled in the -- kernel. */ -- leal 4(%esp), %ecx -- movl $__NR_clock_gettime, %eax -- ENTER_KERNEL -- movl %edx, %ebx -- -- /* Compute relative timeout. */ -- movl (%ebp), %ecx -- movl 4(%ebp), %edx -- subl 4(%esp), %ecx -- subl 8(%esp), %edx --#else -- /* Get the current time. */ -- leal 4(%esp), %ebx -- xorl %ecx, %ecx -- movl $__NR_gettimeofday, %eax -- ENTER_KERNEL -- movl %edx, %ebx -+ movl $0, 16(%esp) - -- /* Compute relative timeout. */ -- movl 8(%esp), %eax -- movl $1000, %edx -- mul %edx /* Milli seconds to nano seconds. */ -- movl (%ebp), %ecx -- movl 4(%ebp), %edx -- subl 4(%esp), %ecx -- subl %eax, %edx --#endif -- jns 12f -- addl $1000000000, %edx -- subl $1, %ecx --12: testl %ecx, %ecx -+ cmpl $0, (%ebp) - movl $-ETIMEDOUT, %esi - js 6f - -- /* Store relative timeout. */ --21: movl %ecx, 4(%esp) -- movl %edx, 8(%esp) -- -- movl cond_futex(%ebx), %edi -- movl %edi, 28(%esp) -+8: movl cond_futex(%ebx), %edi -+ movl %edi, 20(%esp) - - /* Unlock. */ - LOCK -@@ -173,6 +164,7 @@ __pthread_cond_timedwait: - 4: call __pthread_enable_asynccancel - movl %eax, (%esp) - -+ leal (%ebp), %esi - #if FUTEX_PRIVATE_FLAG > 255 - xorl %ecx, %ecx - #endif -@@ -196,9 +188,7 @@ __pthread_cond_timedwait: - jne 42f - orl $FUTEX_CLOCK_REALTIME, %ecx - -- /* Requeue-PI uses absolute timeout */ --42: leal (%ebp), %esi -- movl 28(%esp), %edx -+42: movl 20(%esp), %edx - addl $cond_futex, %ebx - .Ladd_cond_futex_pi: - movl $SYS_futex, %eax -@@ -209,12 +199,12 @@ __pthread_cond_timedwait: - /* Set the pi-requeued flag only if the kernel has returned 0. The - kernel does not hold the mutex on ETIMEDOUT or any other error. */ - cmpl $0, %eax -- sete 24(%esp) -+ sete 16(%esp) - je 41f - - /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns - successfully, it has already locked the mutex for us and the -- pi_flag (24(%esp)) is set to denote that fact. However, if another -+ pi_flag (16(%esp)) is set to denote that fact. However, if another - thread changed the futex value before we entered the wait, the - syscall may return an EAGAIN and the mutex is not locked. We go - ahead with a success anyway since later we look at the pi_flag to -@@ -234,22 +224,28 @@ __pthread_cond_timedwait: - xorl %ecx, %ecx - - 40: subl $1, %ecx -+ movl $0, 16(%esp) - #ifdef __ASSUME_PRIVATE_FUTEX - andl $FUTEX_PRIVATE_FLAG, %ecx - #else - andl %gs:PRIVATE_FUTEX, %ecx - #endif --#if FUTEX_WAIT != 0 -- addl $FUTEX_WAIT, %ecx --#endif -- leal 4(%esp), %esi -- movl 28(%esp), %edx -+ addl $FUTEX_WAIT_BITSET, %ecx -+ /* The following only works like this because we only support -+ two clocks, represented using a single bit. */ -+ testl $1, cond_nwaiters(%ebx) -+ jne 30f -+ orl $FUTEX_CLOCK_REALTIME, %ecx -+30: -+ movl 20(%esp), %edx -+ movl $0xffffffff, %ebp - addl $cond_futex, %ebx - .Ladd_cond_futex: - movl $SYS_futex, %eax - ENTER_KERNEL - subl $cond_futex, %ebx - .Lsub_cond_futex: -+ movl 28+FRAME_SIZE(%esp), %ebp - movl %eax, %esi - - 41: movl (%esp), %eax -@@ -268,7 +264,7 @@ __pthread_cond_timedwait: - jnz 5f - - 6: movl broadcast_seq(%ebx), %eax -- cmpl 20(%esp), %eax -+ cmpl 12(%esp), %eax - jne 23f - - movl woken_seq(%ebx), %eax -@@ -277,9 +273,9 @@ __pthread_cond_timedwait: - movl wakeup_seq(%ebx), %edi - movl wakeup_seq+4(%ebx), %edx - -- cmpl 16(%esp), %edx -+ cmpl 8(%esp), %edx - jne 7f -- cmpl 12(%esp), %edi -+ cmpl 4(%esp), %edi - je 15f - - 7: cmpl %ecx, %edx -@@ -292,7 +288,7 @@ __pthread_cond_timedwait: - - /* We need to go back to futex_wait. If we're using requeue_pi, then - release the mutex we had acquired and go back. */ -- movl 24(%esp), %edx -+ movl 16(%esp), %edx - test %edx, %edx - jz 8b - -@@ -357,13 +353,13 @@ __pthread_cond_timedwait: - - 11: movl 24+FRAME_SIZE(%esp), %eax - /* With requeue_pi, the mutex lock is held in the kernel. */ -- movl 24(%esp), %ecx -+ movl 16(%esp), %ecx - testl %ecx, %ecx - jnz 27f - - call __pthread_mutex_cond_lock - 26: addl $FRAME_SIZE, %esp -- cfi_adjust_cfa_offset(-FRAME_SIZE); -+ cfi_adjust_cfa_offset(-FRAME_SIZE) - - /* We return the result of the mutex_lock operation if it failed. */ - testl %eax, %eax -@@ -509,6 +505,245 @@ __pthread_cond_timedwait: - #endif - call __lll_unlock_wake - jmp 11b -+ cfi_adjust_cfa_offset(-FRAME_SIZE) -+ -+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME -+.Lreltmo: -+ /* Get internal lock. */ -+ movl $1, %edx -+ xorl %eax, %eax -+ LOCK -+# if cond_lock == 0 -+ cmpxchgl %edx, (%ebx) -+# else -+ cmpxchgl %edx, cond_lock(%ebx) -+# endif -+ jnz 101f -+ -+ /* Store the reference to the mutex. If there is already a -+ different value in there this is a bad user bug. */ -+102: cmpl $-1, dep_mutex(%ebx) -+ movl 24(%esp), %eax -+ je 117f -+ movl %eax, dep_mutex(%ebx) -+ -+ /* Unlock the mutex. */ -+117: xorl %edx, %edx -+ call __pthread_mutex_unlock_usercnt -+ -+ testl %eax, %eax -+ jne 16b -+ -+ addl $1, total_seq(%ebx) -+ adcl $0, total_seq+4(%ebx) -+ addl $1, cond_futex(%ebx) -+ addl $(1 << nwaiters_shift), cond_nwaiters(%ebx) -+ -+ subl $FRAME_SIZE, %esp -+ cfi_adjust_cfa_offset(FRAME_SIZE) -+ -+ /* Get and store current wakeup_seq value. */ -+ movl wakeup_seq(%ebx), %edi -+ movl wakeup_seq+4(%ebx), %edx -+ movl broadcast_seq(%ebx), %eax -+ movl %edi, 4(%esp) -+ movl %edx, 8(%esp) -+ movl %eax, 12(%esp) -+ -+ /* Reset the pi-requeued flag. */ -+ movl $0, 16(%esp) -+ -+ /* Get the current time. */ -+108: movl %ebx, %edx -+# ifdef __NR_clock_gettime -+ /* Get the clock number. */ -+ movl cond_nwaiters(%ebx), %ebx -+ andl $((1 << nwaiters_shift) - 1), %ebx -+ /* Only clocks 0 and 1 are allowed so far. Both are handled in the -+ kernel. */ -+ leal 24(%esp), %ecx -+ movl $__NR_clock_gettime, %eax -+ ENTER_KERNEL -+ movl %edx, %ebx -+ -+ /* Compute relative timeout. */ -+ movl (%ebp), %ecx -+ movl 4(%ebp), %edx -+ subl 24(%esp), %ecx -+ subl 28(%esp), %edx -+# else -+ /* Get the current time. */ -+ leal 24(%esp), %ebx -+ xorl %ecx, %ecx -+ movl $__NR_gettimeofday, %eax -+ ENTER_KERNEL -+ movl %edx, %ebx -+ -+ /* Compute relative timeout. */ -+ movl 28(%esp), %eax -+ movl $1000, %edx -+ mul %edx /* Milli seconds to nano seconds. */ -+ movl (%ebp), %ecx -+ movl 4(%ebp), %edx -+ subl 24(%esp), %ecx -+ subl %eax, %edx -+# endif -+ jns 112f -+ addl $1000000000, %edx -+ subl $1, %ecx -+112: testl %ecx, %ecx -+ movl $-ETIMEDOUT, %esi -+ js 106f -+ -+ /* Store relative timeout. */ -+121: movl %ecx, 24(%esp) -+ movl %edx, 28(%esp) -+ -+ movl cond_futex(%ebx), %edi -+ movl %edi, 20(%esp) -+ -+ /* Unlock. */ -+ LOCK -+# if cond_lock == 0 -+ subl $1, (%ebx) -+# else -+ subl $1, cond_lock(%ebx) -+# endif -+ jne 103f -+ -+.LcleanupSTART2: -+104: call __pthread_enable_asynccancel -+ movl %eax, (%esp) -+ -+ leal 24(%esp), %esi -+# if FUTEX_PRIVATE_FLAG > 255 -+ xorl %ecx, %ecx -+# endif -+ cmpl $-1, dep_mutex(%ebx) -+ sete %cl -+ subl $1, %ecx -+# ifdef __ASSUME_PRIVATE_FUTEX -+ andl $FUTEX_PRIVATE_FLAG, %ecx -+# else -+ andl %gs:PRIVATE_FUTEX, %ecx -+# endif -+# if FUTEX_WAIT != 0 -+ addl $FUTEX_WAIT, %ecx -+# endif -+ movl 20(%esp), %edx -+ addl $cond_futex, %ebx -+.Ladd_cond_futex2: -+ movl $SYS_futex, %eax -+ ENTER_KERNEL -+ subl $cond_futex, %ebx -+.Lsub_cond_futex2: -+ movl %eax, %esi -+ -+141: movl (%esp), %eax -+ call __pthread_disable_asynccancel -+.LcleanupEND2: -+ -+ -+ /* Lock. */ -+ movl $1, %edx -+ xorl %eax, %eax -+ LOCK -+# if cond_lock == 0 -+ cmpxchgl %edx, (%ebx) -+# else -+ cmpxchgl %edx, cond_lock(%ebx) -+# endif -+ jnz 105f -+ -+106: movl broadcast_seq(%ebx), %eax -+ cmpl 12(%esp), %eax -+ jne 23b -+ -+ movl woken_seq(%ebx), %eax -+ movl woken_seq+4(%ebx), %ecx -+ -+ movl wakeup_seq(%ebx), %edi -+ movl wakeup_seq+4(%ebx), %edx -+ -+ cmpl 8(%esp), %edx -+ jne 107f -+ cmpl 4(%esp), %edi -+ je 115f -+ -+107: cmpl %ecx, %edx -+ jne 9b -+ cmp %eax, %edi -+ jne 9b -+ -+115: cmpl $-ETIMEDOUT, %esi -+ je 28b -+ -+ jmp 8b -+ -+ cfi_adjust_cfa_offset(-FRAME_SIZE) -+ /* Initial locking failed. */ -+101: -+# 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 -+ jmp 102b -+ -+ cfi_adjust_cfa_offset(FRAME_SIZE) -+ -+ /* Unlock in loop requires wakeup. */ -+103: -+# 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 -+ jmp 104b -+ -+ /* Locking in loop failed. */ -+105: -+# 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 -+ jmp 106b -+ cfi_adjust_cfa_offset(-FRAME_SIZE) -+#endif - - .size __pthread_cond_timedwait, .-__pthread_cond_timedwait - versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait, -@@ -552,7 +787,7 @@ __condvar_tw_cleanup: - call __lll_lock_wait - - 1: movl broadcast_seq(%ebx), %eax -- cmpl 20(%esp), %eax -+ cmpl 12(%esp), %eax - jne 3f - - /* We increment the wakeup_seq counter only if it is lower than -@@ -706,6 +941,20 @@ __condvar_tw_cleanup: - .long .LcleanupEND-.Lsub_cond_futex - .long __condvar_tw_cleanup-.LSTARTCODE - .uleb128 0 -+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME -+ .long .LcleanupSTART2-.LSTARTCODE -+ .long .Ladd_cond_futex2-.LcleanupSTART2 -+ .long __condvar_tw_cleanup-.LSTARTCODE -+ .uleb128 0 -+ .long .Ladd_cond_futex2-.LSTARTCODE -+ .long .Lsub_cond_futex2-.Ladd_cond_futex2 -+ .long __condvar_tw_cleanup2-.LSTARTCODE -+ .uleb128 0 -+ .long .Lsub_cond_futex2-.LSTARTCODE -+ .long .LcleanupEND2-.Lsub_cond_futex2 -+ .long __condvar_tw_cleanup-.LSTARTCODE -+ .uleb128 0 -+#endif - .long .LcallUR-.LSTARTCODE - .long .LENDCODE-.LcallUR - .long 0 --- -1.8.0.1 - diff --git a/readdir_r-overflow.patch b/readdir_r-overflow.patch new file mode 100644 index 0000000..b2e3182 --- /dev/null +++ b/readdir_r-overflow.patch @@ -0,0 +1,297 @@ +2013-06-12 Florian Weimer + + [BZ #14699] + * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode + member. + * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode + member. + * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. + * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. + Return delayed error code. Remove GETDENTS_64BIT_ALIGNED + conditional. + * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define + GETDENTS_64BIT_ALIGNED. + * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. + * manual/filesys.texi (Reading/Closing Directory): Document + ENAMETOOLONG return value of readdir_r. Recommend readdir more + strongly. + * manual/conf.texi (Limits for Files): Add portability note to + NAME_MAX, PATH_MAX. + (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX. + +Index: glibc-2.18/manual/conf.texi +=================================================================== +--- glibc-2.18.orig/manual/conf.texi ++++ glibc-2.18/manual/conf.texi +@@ -1149,6 +1149,9 @@ typed ahead as input. @xref{I/O Queues} + @deftypevr Macro int NAME_MAX + The uniform system limit (if any) for the length of a file name component, not + including the terminating null character. ++ ++@strong{Portability Note:} On some systems, @theglibc{} defines ++@code{NAME_MAX}, but does not actually enforce this limit. + @end deftypevr + + @comment limits.h +@@ -1157,6 +1160,9 @@ including the terminating null character + The uniform system limit (if any) for the length of an entire file name (that + is, the argument given to system calls such as @code{open}), including the + terminating null character. ++ ++@strong{Portability Note:} @Theglibc{} does not enforce this limit ++even if @code{PATH_MAX} is defined. + @end deftypevr + + @cindex limits, pipe buffer size +@@ -1476,6 +1482,9 @@ Inquire about the value of @code{POSIX_R + Inquire about the value of @code{POSIX_REC_XFER_ALIGN}. + @end table + ++@strong{Portability Note:} On some systems, @theglibc{} does not ++enforce @code{_PC_NAME_MAX} or @code{_PC_PATH_MAX} limits. ++ + @node Utility Limits + @section Utility Program Capacity Limits + +Index: glibc-2.18/manual/filesys.texi +=================================================================== +--- glibc-2.18.orig/manual/filesys.texi ++++ glibc-2.18/manual/filesys.texi +@@ -444,9 +444,9 @@ symbols are declared in the header file + @comment POSIX.1 + @deftypefun {struct dirent *} readdir (DIR *@var{dirstream}) + This function reads the next entry from the directory. It normally +-returns a pointer to a structure containing information about the file. +-This structure is statically allocated and can be rewritten by a +-subsequent call. ++returns a pointer to a structure containing information about the ++file. This structure is associated with the @var{dirstream} handle ++and can be rewritten by a subsequent call. + + @strong{Portability Note:} On some systems @code{readdir} may not + return entries for @file{.} and @file{..}, even though these are always +@@ -461,19 +461,59 @@ conditions are defined for this function + The @var{dirstream} argument is not valid. + @end table + +-@code{readdir} is not thread safe. Multiple threads using +-@code{readdir} on the same @var{dirstream} may overwrite the return +-value. Use @code{readdir_r} when this is critical. ++To distinguish between an end-of-directory condition or an error, you ++must set @code{errno} to zero before calling @code{readdir}. To avoid ++entering an infinite loop, you should stop reading from the directory ++after the first error. ++ ++In POSIX.1-2008, @code{readdir} is not thread-safe. In @theglibc{} ++implementation, it is safe to call @code{readdir} concurrently on ++different @var{dirstream}s (but multiple threads accessing the same ++@var{dirstream} result in undefined behavior). @code{readdir_r} is a ++fully thread-safe alternative, but suffers from poor portability (see ++below). It is recommended that you use @code{readdir}, with external ++locking if multiple threads access the same @var{dirstream}. + @end deftypefun + + @comment dirent.h + @comment GNU + @deftypefun int readdir_r (DIR *@var{dirstream}, struct dirent *@var{entry}, struct dirent **@var{result}) +-This function is the reentrant version of @code{readdir}. Like +-@code{readdir} it returns the next entry from the directory. But to +-prevent conflicts between simultaneously running threads the result is +-not stored in statically allocated memory. Instead the argument +-@var{entry} points to a place to store the result. ++This function is a version of @code{readdir} which performs internal ++locking. Like @code{readdir} it returns the next entry from the ++directory. To prevent conflicts between simultaneously running ++threads the result is stored inside the @var{entry} object. ++ ++@strong{Portability Note:} It is recommended to use @code{readdir} ++instead of @code{readdir_r} for the following reasons: ++ ++@itemize @bullet ++@item ++On systems which do not define @code{NAME_MAX}, it may not be possible ++to use @code{readdir_r} safely because the caller does not specify the ++length of the buffer for the directory entry. ++ ++@item ++On some systems, @code{readdir_r} cannot read directory entries with ++very long names. If such a name is encountered, @theglibc{} ++implementation of @code{readdir_r} returns with an error code of ++@code{ENAMETOOLONG} after the final directory entry has been read. On ++other systems, @code{readdir_r} may return successfully, but the ++@code{d_name} member may not be NUL-terminated or may be truncated. ++ ++@item ++POSIX-1.2008 does not guarantee that @code{readdir} is thread-safe, ++even when access to the same @var{dirstream} is serialized. But in ++current implementations (including @theglibc{}), it is safe to call ++@code{readdir} concurrently on different @var{dirstream}s, so there is ++no requirement to use @code{readdir_r} even in multi-threaded ++programs. ++ ++@item ++It is expected that future versions of POSIX will obsolete ++@code{readdir_r} and mandate the level of thread safety for ++@code{readdir} which is provided by @theglibc{} and other ++implementations today. ++@end itemize + + Normally @code{readdir_r} returns zero and sets @code{*@var{result}} + to @var{entry}. If there are no more entries in the directory or an +@@ -481,15 +521,6 @@ error is detected, @code{readdir_r} sets + null pointer and returns a nonzero error code, also stored in + @code{errno}, as described for @code{readdir}. + +-@strong{Portability Note:} On some systems @code{readdir_r} may not +-return a NUL terminated string for the file name, even when there is no +-@code{d_reclen} field in @code{struct dirent} and the file +-name is the maximum allowed size. Modern systems all have the +-@code{d_reclen} field, and on old systems multi-threading is not +-critical. In any case there is no such problem with the @code{readdir} +-function, so that even on systems without the @code{d_reclen} member one +-could use multiple threads by using external locking. +- + It is also important to look at the definition of the @code{struct + dirent} type. Simply passing a pointer to an object of this type for + the second parameter of @code{readdir_r} might not be enough. Some +Index: glibc-2.18/sysdeps/posix/dirstream.h +=================================================================== +--- glibc-2.18.orig/sysdeps/posix/dirstream.h ++++ glibc-2.18/sysdeps/posix/dirstream.h +@@ -39,6 +39,8 @@ struct __dirstream + + off_t filepos; /* Position of next entry to read. */ + ++ int errcode; /* Delayed error code. */ ++ + /* Directory block. */ + char data[0] __attribute__ ((aligned (__alignof__ (void*)))); + }; +Index: glibc-2.18/sysdeps/posix/opendir.c +=================================================================== +--- glibc-2.18.orig/sysdeps/posix/opendir.c ++++ glibc-2.18/sysdeps/posix/opendir.c +@@ -231,6 +231,7 @@ __alloc_dir (int fd, bool close_fd, int + dirp->size = 0; + dirp->offset = 0; + dirp->filepos = 0; ++ dirp->errcode = 0; + + return dirp; + } +Index: glibc-2.18/sysdeps/posix/readdir_r.c +=================================================================== +--- glibc-2.18.orig/sysdeps/posix/readdir_r.c ++++ glibc-2.18/sysdeps/posix/readdir_r.c +@@ -40,6 +40,7 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent + DIRENT_TYPE *dp; + size_t reclen; + const int saved_errno = errno; ++ int ret; + + __libc_lock_lock (dirp->lock); + +@@ -70,10 +71,10 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent + bytes = 0; + __set_errno (saved_errno); + } ++ if (bytes < 0) ++ dirp->errcode = errno; + + dp = NULL; +- /* Reclen != 0 signals that an error occurred. */ +- reclen = bytes != 0; + break; + } + dirp->size = (size_t) bytes; +@@ -106,29 +107,46 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent + dirp->filepos += reclen; + #endif + +- /* Skip deleted files. */ ++#ifdef NAME_MAX ++ if (reclen > offsetof (DIRENT_TYPE, d_name) + NAME_MAX + 1) ++ { ++ /* The record is very long. It could still fit into the ++ caller-supplied buffer if we can skip padding at the ++ end. */ ++ size_t namelen = _D_EXACT_NAMLEN (dp); ++ if (namelen <= NAME_MAX) ++ reclen = offsetof (DIRENT_TYPE, d_name) + namelen + 1; ++ else ++ { ++ /* The name is too long. Ignore this file. */ ++ dirp->errcode = ENAMETOOLONG; ++ dp->d_ino = 0; ++ continue; ++ } ++ } ++#endif ++ ++ /* Skip deleted and ignored files. */ + } + while (dp->d_ino == 0); + + if (dp != NULL) + { +-#ifdef GETDENTS_64BIT_ALIGNED +- /* The d_reclen value might include padding which is not part of +- the DIRENT_TYPE data structure. */ +- reclen = MIN (reclen, +- offsetof (DIRENT_TYPE, d_name) + sizeof (dp->d_name)); +-#endif + *result = memcpy (entry, dp, reclen); +-#ifdef GETDENTS_64BIT_ALIGNED ++#ifdef _DIRENT_HAVE_D_RECLEN + entry->d_reclen = reclen; + #endif ++ ret = 0; + } + else +- *result = NULL; ++ { ++ *result = NULL; ++ ret = dirp->errcode; ++ } + + __libc_lock_unlock (dirp->lock); + +- return dp != NULL ? 0 : reclen ? errno : 0; ++ return ret; + } + + #ifdef __READDIR_R_ALIAS +Index: glibc-2.18/sysdeps/posix/rewinddir.c +=================================================================== +--- glibc-2.18.orig/sysdeps/posix/rewinddir.c ++++ glibc-2.18/sysdeps/posix/rewinddir.c +@@ -33,6 +33,7 @@ rewinddir (dirp) + dirp->filepos = 0; + dirp->offset = 0; + dirp->size = 0; ++ dirp->errcode = 0; + #ifndef NOT_IN_libc + __libc_lock_unlock (dirp->lock); + #endif +Index: glibc-2.18/sysdeps/unix/sysv/linux/i386/readdir64_r.c +=================================================================== +--- glibc-2.18.orig/sysdeps/unix/sysv/linux/i386/readdir64_r.c ++++ glibc-2.18/sysdeps/unix/sysv/linux/i386/readdir64_r.c +@@ -18,7 +18,6 @@ + #define __READDIR_R __readdir64_r + #define __GETDENTS __getdents64 + #define DIRENT_TYPE struct dirent64 +-#define GETDENTS_64BIT_ALIGNED 1 + + #include + +Index: glibc-2.18/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c +=================================================================== +--- glibc-2.18.orig/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c ++++ glibc-2.18/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c +@@ -1,5 +1,4 @@ + #define readdir64_r __no_readdir64_r_decl +-#define GETDENTS_64BIT_ALIGNED 1 + #include + #undef readdir64_r + weak_alias (__readdir_r, readdir64_r) diff --git a/regexp-overrun.patch b/regexp-overrun.patch deleted file mode 100644 index 8685e8a..0000000 --- a/regexp-overrun.patch +++ /dev/null @@ -1,161 +0,0 @@ -From a445af0bc722d620afed7683cd320c0e4c7c6059 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Tue, 29 Jan 2013 14:45:15 +0100 -Subject: [PATCH] Fix buffer overrun in regexp matcher - - [BZ #15078] - * posix/regexec.c (extend_buffers): Add parameter min_len. - (check_matching): Pass minimum needed length. - (clean_state_log_if_needed): Likewise. - (get_subexp): Likewise. - * posix/Makefile (tests): Add bug-regex34. - (bug-regex34-ENV): Define. - * posix/bug-regex34.c: New file. - ---- - ChangeLog | 9 +++++++++ - NEWS | 3 ++- - posix/Makefile | 3 ++- - posix/bug-regex34.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ - posix/regexec.c | 16 +++++++++------- - 5 files changed, 68 insertions(+), 9 deletions(-) - create mode 100644 posix/bug-regex34.c - -diff --git a/posix/Makefile b/posix/Makefile -index 88d409f..2cacd21 100644 ---- a/posix/Makefile -+++ b/posix/Makefile -@@ -86,7 +86,7 @@ tests := tstgetopt testfnm runtests runptests \ - tst-rfc3484-3 \ - tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ - bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ -- bug-getopt5 tst-getopt_long1 -+ bug-getopt5 tst-getopt_long1 bug-regex34 - xtests := bug-ga2 - ifeq (yes,$(build-shared)) - test-srcs := globtest -@@ -199,6 +199,7 @@ bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata - bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata - bug-regex32-ENV = LOCPATH=$(common-objpfx)localedata - bug-regex33-ENV = LOCPATH=$(common-objpfx)localedata -+bug-regex34-ENV = LOCPATH=$(common-objpfx)localedata - tst-rxspencer-ARGS = --utf8 rxspencer/tests - tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata - tst-pcre-ARGS = PCRE.tests -diff --git a/posix/bug-regex34.c b/posix/bug-regex34.c -new file mode 100644 -index 0000000..bb3b613 ---- /dev/null -+++ b/posix/bug-regex34.c -@@ -0,0 +1,46 @@ -+/* Test re_search with multi-byte characters in UTF-8. -+ Copyright (C) 2013 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define _GNU_SOURCE 1 -+#include -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ struct re_pattern_buffer r; -+ /* ကျွန်ုပ်x */ -+ const char *s = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax"; -+ -+ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL) -+ { -+ puts ("setlocale failed"); -+ return 1; -+ } -+ memset (&r, 0, sizeof (r)); -+ -+ re_compile_pattern ("[^x]x", 5, &r); -+ /* This was triggering a buffer overflow. */ -+ re_search (&r, s, strlen (s), 0, strlen (s), 0); -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff --git a/posix/regexec.c b/posix/regexec.c -index 7f2de85..5ca2bf6 100644 ---- a/posix/regexec.c -+++ b/posix/regexec.c -@@ -197,7 +197,7 @@ static int group_nodes_into_DFAstates (const re_dfa_t *dfa, - static int check_node_accept (const re_match_context_t *mctx, - const re_token_t *node, int idx) - internal_function; --static reg_errcode_t extend_buffers (re_match_context_t *mctx) -+static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) - internal_function; - - /* Entry point for POSIX code. */ -@@ -1160,7 +1160,7 @@ check_matching (re_match_context_t *mctx, int fl_longest_match, - || (BE (next_char_idx >= mctx->input.valid_len, 0) - && mctx->input.valid_len < mctx->input.len)) - { -- err = extend_buffers (mctx); -+ err = extend_buffers (mctx, next_char_idx + 1); - if (BE (err != REG_NOERROR, 0)) - { - assert (err == REG_ESPACE); -@@ -1738,7 +1738,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx) - && mctx->input.valid_len < mctx->input.len)) - { - reg_errcode_t err; -- err = extend_buffers (mctx); -+ err = extend_buffers (mctx, next_state_log_idx + 1); - if (BE (err != REG_NOERROR, 0)) - return err; - } -@@ -2792,7 +2792,7 @@ get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx) - if (bkref_str_off >= mctx->input.len) - break; - -- err = extend_buffers (mctx); -+ err = extend_buffers (mctx, bkref_str_off + 1); - if (BE (err != REG_NOERROR, 0)) - return err; - -@@ -4102,7 +4102,7 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, - - static reg_errcode_t - internal_function __attribute_warn_unused_result__ --extend_buffers (re_match_context_t *mctx) -+extend_buffers (re_match_context_t *mctx, int min_len) - { - reg_errcode_t ret; - re_string_t *pstr = &mctx->input; -@@ -4111,8 +4111,10 @@ extend_buffers (re_match_context_t *mctx) - if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0)) - return REG_ESPACE; - -- /* Double the lengthes of the buffers. */ -- ret = re_string_realloc_buffers (pstr, MIN (pstr->len, pstr->bufs_len * 2)); -+ /* Double the lengthes of the buffers, but allocate at least MIN_LEN. */ -+ ret = re_string_realloc_buffers (pstr, -+ MAX (min_len, -+ MIN (pstr->len, pstr->bufs_len * 2))); - if (BE (ret != REG_NOERROR, 0)) - return ret; - --- -1.8.2.3 - diff --git a/rtlddir.patch b/rtlddir.patch deleted file mode 100644 index 6831cf8..0000000 --- a/rtlddir.patch +++ /dev/null @@ -1,288 +0,0 @@ -From aaa8cb4b43511c62b11ac6f10e9beea3d5035a68 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Mon, 18 Mar 2013 12:44:47 +0100 -Subject: [PATCH 1/3] Add support for rtld directory different from slib - directory - - * configure.in: Substitute libc_cv_rtlddir. - * configure: Regenerate. - * config.make.in (rtlddir): Set from libc_cv_rtlddir. - * Makeconfig (rtlddir, inst_rtlddir): New variables. - (rtld-LDFLAGS): Use them with $(rtld-installed-name). - * elf/Makefile (install-others, CFLAGS-interp.c) - (ldso_install, common-ldd-rewrite): Likewise. - ($(inst_rtlddir)/$(rtld-installed-name)): Renamed from - $(inst_slibdir)/$(rtld-installed-name). - * scripts/rellns-sh: Add -p option. - * Makerules (make-shlib-link): Use rellns-sh to get relative name - for source. - ---- - ChangeLog | 15 +++++++++++++++ - Makeconfig | 10 ++++++++-- - Makerules | 4 ++-- - config.make.in | 1 + - configure | 2 ++ - configure.in | 1 + - elf/Makefile | 11 ++++++----- - scripts/rellns-sh | 17 +++++++++++++++-- - 8 files changed, 50 insertions(+), 11 deletions(-) - -Index: glibc-2.17/Makeconfig -=================================================================== ---- glibc-2.17.orig/Makeconfig -+++ glibc-2.17/Makeconfig -@@ -148,12 +148,18 @@ libdir = $(exec_prefix)/lib - endif - inst_libdir = $(install_root)$(libdir) - --# Where to install the shared library and dynamic linker. -+# Where to install the shared library. - ifndef slibdir - slibdir = $(exec_prefix)/lib - endif - inst_slibdir = $(install_root)$(slibdir) - -+# Where to install the dynamic linker. -+ifndef rtlddir -+rtlddir = $(slibdir) -+endif -+inst_rtlddir = $(install_root)$(rtlddir) -+ - # Prefix to put on files installed in $(libdir). For libraries `libNAME.a', - # the prefix is spliced between `lib' and the name, so the linker switch - # `-l$(libprefix)NAME' finds the library; for other files the prefix is -@@ -443,7 +449,7 @@ ifndef +link-bounded - endif - ifndef config-LDFLAGS - ifeq (yes,$(build-shared)) --config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name) -+config-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name) - endif - endif - ifndef link-libc -Index: glibc-2.17/Makerules -=================================================================== ---- glibc-2.17.orig/Makerules -+++ glibc-2.17/Makerules -@@ -873,7 +873,7 @@ ifeq (no,$(cross-compiling)) - symbolic-link-prog := $(common-objpfx)elf/sln - symbolic-link-list := $(common-objpfx)elf/symlink.list - define make-shlib-link --echo $(> $(symbolic-link-list) -+echo `$(..)scripts/rellns-sh -p $< $@` $@ >> $(symbolic-link-list) - endef - else # cross-compiling - # We need a definition that can be used by elf/Makefile's install rules. -@@ -883,7 +883,7 @@ endif - ifndef make-shlib-link - define make-shlib-link - rm -f $@ --$(LN_S) $( $@.new - mv -f $@.new $@ - -Index: glibc-2.17/config.make.in -=================================================================== ---- glibc-2.17.orig/config.make.in -+++ glibc-2.17/config.make.in -@@ -11,6 +11,7 @@ exec_prefix = @exec_prefix@ - datadir = @datadir@ - libdir = @libdir@ - slibdir = @libc_cv_slibdir@ -+rtlddir = @libc_cv_rtlddir@ - localedir = @libc_cv_localedir@ - sysconfdir = @libc_cv_sysconfdir@ - libexecdir = @libexecdir@ -Index: glibc-2.17/configure -=================================================================== ---- glibc-2.17.orig/configure -+++ glibc-2.17/configure -@@ -594,6 +594,7 @@ libc_cv_rootsbindir - libc_cv_localstatedir - libc_cv_sysconfdir - libc_cv_localedir -+libc_cv_rtlddir - libc_cv_slibdir - old_glibc_headers - use_nscd -@@ -7584,6 +7585,7 @@ fi - - - -+ - - - -Index: glibc-2.17/configure.in -=================================================================== ---- glibc-2.17.orig/configure.in -+++ glibc-2.17/configure.in -@@ -2117,6 +2117,7 @@ fi - AC_SUBST(old_glibc_headers) - - AC_SUBST(libc_cv_slibdir) -+AC_SUBST(libc_cv_rtlddir) - AC_SUBST(libc_cv_localedir) - AC_SUBST(libc_cv_sysconfdir) - AC_SUBST(libc_cv_localstatedir) -Index: glibc-2.17/elf/Makefile -=================================================================== ---- glibc-2.17.orig/elf/Makefile -+++ glibc-2.17/elf/Makefile -@@ -66,7 +66,7 @@ endif - ifeq (yes,$(build-shared)) - extra-objs = $(all-rtld-routines:%=%.os) soinit.os sofini.os interp.os - generated += librtld.os dl-allobjs.os ld.so ldd --install-others = $(inst_slibdir)/$(rtld-installed-name) -+install-others = $(inst_rtlddir)/$(rtld-installed-name) - install-bin-script = ldd - endif - -@@ -340,7 +340,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld - | $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }' - - # interp.c exists just to get this string into the libraries. --CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \ -+CFLAGS-interp.c = -D'RUNTIME_LINKER="$(rtlddir)/$(rtld-installed-name)"' \ - -DNOT_IN_libc=1 - $(objpfx)interp.os: $(common-objpfx)config.make - -@@ -372,18 +372,19 @@ $(inst_slibdir)/$(rtld-version-installed - $(make-target-directory) - $(do-install-program) - --$(inst_slibdir)/$(rtld-installed-name): \ -+$(inst_rtlddir)/$(rtld-installed-name): \ - $(inst_slibdir)/$(rtld-version-installed-name) \ - $(inst_slibdir)/libc-$(version).so -+ $(make-target-directory) - $(make-shlib-link) - - # Special target called by parent to install just the dynamic linker. - .PHONY: ldso_install --ldso_install: $(inst_slibdir)/$(rtld-installed-name) -+ldso_install: $(inst_rtlddir)/$(rtld-installed-name) - endif - - --common-ldd-rewrite = -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ -+common-ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \ - -e 's%@VERSION@%$(version)%g' \ - -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ - -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/configure -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure -@@ -7,6 +7,7 @@ test -n "$libc_cv_slibdir" || - case "$prefix" in - /usr | /usr/) - libc_cv_slibdir="/lib64" -+ libc_cv_rtlddir="/lib" - if test "$libdir" = '${exec_prefix}/lib'; then - libdir='${exec_prefix}/lib64'; - # Locale data can be shared between 32bit and 64bit libraries -Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -=================================================================== ---- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure.in -@@ -7,6 +7,7 @@ test -n "$libc_cv_slibdir" || - case "$prefix" in - /usr | /usr/) - libc_cv_slibdir="/lib64" -+ libc_cv_rtlddir="/lib" - if test "$libdir" = '${exec_prefix}/lib'; then - libdir='${exec_prefix}/lib64'; - # Locale data can be shared between 32bit and 64bit libraries -Index: glibc-2.17/scripts/rellns-sh -=================================================================== ---- glibc-2.17.orig/scripts/rellns-sh -+++ glibc-2.17/scripts/rellns-sh -@@ -16,8 +16,17 @@ - # You should have received a copy of the GNU General Public License - # along with this program; if not, see . - -+# With -p, instead of creating the link print the computed relative link -+# name. -+do_print=false -+case $1 in -+ -p) -+ do_print=true -+ shift -+ ;; -+esac - if test $# -ne 2; then -- echo "Usage: rellns SOURCE DEST" >&2 -+ echo "Usage: rellns [-p] SOURCE DEST" >&2 - exit 1 - fi - -@@ -70,4 +79,8 @@ while test -n "$from"; do - from=`echo $from | sed 's%^[^/]*/*%%'` - done - --ln -s $rfrom$to $2 -+if $do_print; then -+ echo "$rfrom$to" -+else -+ ln -s $rfrom$to $2 -+fi -Index: glibc-2.17/sysdeps/gnu/configure -=================================================================== ---- glibc-2.17.orig/sysdeps/gnu/configure -+++ glibc-2.17/sysdeps/gnu/configure -@@ -9,12 +9,17 @@ - case "$prefix" in - /usr | /usr/) - # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. -- # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, -- # and libc_cv_localedir. -+ # Allow earlier configure scripts to handle libc_cv_slibdir, -+ # libc_cv_rtlddir, libdir, and libc_cv_localedir. - test -n "$libc_cv_slibdir" || \ - case $machine in - sparc/sparc64 | x86_64* | powerpc/powerpc64 | s390/s390-64) - libc_cv_slibdir=/lib64 -+ case $machine in -+ s390/s390-64) -+ libc_cv_rtlddir=/lib -+ ;; -+ esac - if test "$libdir" = '${exec_prefix}/lib'; then - libdir='${exec_prefix}/lib64'; - # Locale data can be shared between 32bit and 64bit libraries -Index: glibc-2.17/sysdeps/gnu/configure.in -=================================================================== ---- glibc-2.17.orig/sysdeps/gnu/configure.in -+++ glibc-2.17/sysdeps/gnu/configure.in -@@ -9,12 +9,17 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the - case "$prefix" in - /usr | /usr/) - # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib. -- # Allow earlier configure scripts to handle libc_cv_slibdir, libdir, -- # and libc_cv_localedir. -+ # Allow earlier configure scripts to handle libc_cv_slibdir, -+ # libc_cv_rtlddir, libdir, and libc_cv_localedir. - test -n "$libc_cv_slibdir" || \ - case $machine in - sparc/sparc64 | x86_64* | powerpc/powerpc64 | s390/s390-64) - libc_cv_slibdir=/lib64 -+ case $machine in -+ s390/s390-64) -+ libc_cv_rtlddir=/lib -+ ;; -+ esac - if test "$libdir" = '${exec_prefix}/lib'; then - libdir='${exec_prefix}/lib64'; - # Locale data can be shared between 32bit and 64bit libraries diff --git a/strcoll-overflow.patch b/strcoll-overflow.patch new file mode 100644 index 0000000..5fa0fde --- /dev/null +++ b/strcoll-overflow.patch @@ -0,0 +1,1026 @@ +Siddhesh Poyarekar + + [BZ #14547] + * string/strcoll_l.c (STRCOLL): Skip allocating memory for + cache if string sizes may cause integer overflow. + + [BZ #14547] + * string/strcoll_l.c (coll_seq): New members rule, idx, + save_idx and back_us. + (get_next_seq_nocache): New function. + (do_compare_nocache): New function. + (STRCOLL): Use get_next_seq_nocache and do_compare_nocache + when malloc fails. + + [BZ #14547] + * string/strcoll_l.c (coll_seq): New structure. + (get_next_seq_cached): New function. + (get_next_seq): New function. + (do_compare): New function. + (STRCOLL): Use GNU style definition. Simplify implementation + by using get_next_seq, get_next_seq_cached and do_copare. + +Index: glibc-2.17.90/string/strcoll_l.c +=================================================================== +--- glibc-2.17.90.orig/string/strcoll_l.c ++++ glibc-2.17.90/string/strcoll_l.c +@@ -41,11 +41,434 @@ + + #include "../locale/localeinfo.h" + ++/* Track status while looking for sequences in a string. */ ++typedef struct ++{ ++ int len; /* Length of the current sequence. */ ++ int val; /* Position of the sequence relative to the ++ previous non-ignored sequence. */ ++ size_t idxnow; /* Current index in sequences. */ ++ size_t idxmax; /* Maximum index in sequences. */ ++ size_t idxcnt; /* Current count of indeces. */ ++ size_t backw; /* Current Backward sequence index. */ ++ size_t backw_stop; /* Index where the backward sequences stop. */ ++ const USTRING_TYPE *us; /* The string. */ ++ int32_t *idxarr; /* Array to cache weight indeces. */ ++ unsigned char *rulearr; /* Array to cache rules. */ ++ unsigned char rule; /* Saved rule for the first sequence. */ ++ int32_t idx; /* Index to weight of the current sequence. */ ++ int32_t save_idx; /* Save looked up index of a forward ++ sequence after the last backward ++ sequence. */ ++ const USTRING_TYPE *back_us; /* Beginning of the backward sequence. */ ++} coll_seq; ++ ++/* Get next sequence. The weight indeces are cached, so we don't need to ++ traverse the string. */ ++static void ++get_next_seq_cached (coll_seq *seq, int nrules, int pass, ++ const unsigned char *rulesets, ++ const USTRING_TYPE *weights) ++{ ++ int val = seq->val = 0; ++ int len = seq->len; ++ size_t backw_stop = seq->backw_stop; ++ size_t backw = seq->backw; ++ size_t idxcnt = seq->idxcnt; ++ size_t idxmax = seq->idxmax; ++ size_t idxnow = seq->idxnow; ++ unsigned char *rulearr = seq->rulearr; ++ int32_t *idxarr = seq->idxarr; ++ ++ while (len == 0) ++ { ++ ++val; ++ if (backw_stop != ~0ul) ++ { ++ /* The is something pushed. */ ++ if (backw == backw_stop) ++ { ++ /* The last pushed character was handled. Continue ++ with forward characters. */ ++ if (idxcnt < idxmax) ++ { ++ idxnow = idxcnt; ++ backw_stop = ~0ul; ++ } ++ else ++ { ++ /* Nothing anymore. The backward sequence ++ ended with the last sequence in the string. */ ++ idxnow = ~0ul; ++ break; ++ } ++ } ++ else ++ idxnow = --backw; ++ } ++ else ++ { ++ backw_stop = idxcnt; ++ ++ while (idxcnt < idxmax) ++ { ++ if ((rulesets[rulearr[idxcnt] * nrules + pass] ++ & sort_backward) == 0) ++ /* No more backward characters to push. */ ++ break; ++ ++idxcnt; ++ } ++ ++ if (backw_stop == idxcnt) ++ { ++ /* No sequence at all or just one. */ ++ if (idxcnt == idxmax) ++ /* Note that seq1len is still zero. */ ++ break; ++ ++ backw_stop = ~0ul; ++ idxnow = idxcnt++; ++ } ++ else ++ /* We pushed backward sequences. */ ++ idxnow = backw = idxcnt - 1; ++ } ++ len = weights[idxarr[idxnow]++]; ++ } ++ ++ /* Update the structure. */ ++ seq->val = val; ++ seq->len = len; ++ seq->backw_stop = backw_stop; ++ seq->backw = backw; ++ seq->idxcnt = idxcnt; ++ seq->idxnow = idxnow; ++} ++ ++/* Get next sequence. Traverse the string as required. */ ++static void ++get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets, ++ const USTRING_TYPE *weights, const int32_t *table, ++ const USTRING_TYPE *extra, const int32_t *indirect) ++{ ++#include WEIGHT_H ++ int val = seq->val = 0; ++ int len = seq->len; ++ size_t backw_stop = seq->backw_stop; ++ size_t backw = seq->backw; ++ size_t idxcnt = seq->idxcnt; ++ size_t idxmax = seq->idxmax; ++ size_t idxnow = seq->idxnow; ++ unsigned char *rulearr = seq->rulearr; ++ int32_t *idxarr = seq->idxarr; ++ const USTRING_TYPE *us = seq->us; ++ ++ while (len == 0) ++ { ++ ++val; ++ if (backw_stop != ~0ul) ++ { ++ /* The is something pushed. */ ++ if (backw == backw_stop) ++ { ++ /* The last pushed character was handled. Continue ++ with forward characters. */ ++ if (idxcnt < idxmax) ++ { ++ idxnow = idxcnt; ++ backw_stop = ~0ul; ++ } ++ else ++ /* Nothing anymore. The backward sequence ended with ++ the last sequence in the string. Note that seq2len ++ is still zero. */ ++ break; ++ } ++ else ++ idxnow = --backw; ++ } ++ else ++ { ++ backw_stop = idxmax; ++ ++ while (*us != L('\0')) ++ { ++ int32_t tmp = findidx (&us, -1); ++ rulearr[idxmax] = tmp >> 24; ++ idxarr[idxmax] = tmp & 0xffffff; ++ idxcnt = idxmax++; ++ ++ if ((rulesets[rulearr[idxcnt] * nrules] ++ & sort_backward) == 0) ++ /* No more backward characters to push. */ ++ break; ++ ++idxcnt; ++ } ++ ++ if (backw_stop >= idxcnt) ++ { ++ /* No sequence at all or just one. */ ++ if (idxcnt == idxmax || backw_stop > idxcnt) ++ /* Note that seq1len is still zero. */ ++ break; ++ ++ backw_stop = ~0ul; ++ idxnow = idxcnt; ++ } ++ else ++ /* We pushed backward sequences. */ ++ idxnow = backw = idxcnt - 1; ++ } ++ len = weights[idxarr[idxnow]++]; ++ } ++ ++ /* Update the structure. */ ++ seq->val = val; ++ seq->len = len; ++ seq->backw_stop = backw_stop; ++ seq->backw = backw; ++ seq->idxcnt = idxcnt; ++ seq->idxmax = idxmax; ++ seq->idxnow = idxnow; ++ seq->us = us; ++} ++ ++/* Get next sequence. Traverse the string as required. This function does not ++ set or use any index or rule cache. */ ++static void ++get_next_seq_nocache (coll_seq *seq, int nrules, const unsigned char *rulesets, ++ const USTRING_TYPE *weights, const int32_t *table, ++ const USTRING_TYPE *extra, const int32_t *indirect, ++ int pass) ++{ ++#include WEIGHT_H ++ int val = seq->val = 0; ++ int len = seq->len; ++ size_t backw_stop = seq->backw_stop; ++ size_t backw = seq->backw; ++ size_t idxcnt = seq->idxcnt; ++ size_t idxmax = seq->idxmax; ++ int32_t idx = seq->idx; ++ const USTRING_TYPE *us = seq->us; ++ ++ while (len == 0) ++ { ++ ++val; ++ if (backw_stop != ~0ul) ++ { ++ /* The is something pushed. */ ++ if (backw == backw_stop) ++ { ++ /* The last pushed character was handled. Continue ++ with forward characters. */ ++ if (idxcnt < idxmax) ++ { ++ idx = seq->save_idx; ++ backw_stop = ~0ul; ++ } ++ else ++ { ++ /* Nothing anymore. The backward sequence ended with ++ the last sequence in the string. Note that len is ++ still zero. */ ++ idx = 0; ++ break; ++ } ++ } ++ else ++ { ++ /* XXX Traverse BACKW sequences from the beginning of ++ BACKW_STOP to get the next sequence. Is ther a quicker way ++ to do this? */ ++ int i = backw_stop; ++ us = seq->back_us; ++ while (i < backw) ++ { ++ int32_t tmp = findidx (&us, -1); ++ idx = tmp & 0xffffff; ++ i++; ++ } ++ --backw; ++ us = seq->us; ++ } ++ } ++ else ++ { ++ backw_stop = idxmax; ++ int32_t prev_idx = idx; ++ ++ while (*us != L('\0')) ++ { ++ int32_t tmp = findidx (&us, -1); ++ unsigned char rule = tmp >> 24; ++ prev_idx = idx; ++ idx = tmp & 0xffffff; ++ idxcnt = idxmax++; ++ ++ /* Save the rule for the first sequence. */ ++ if (__glibc_unlikely (idxcnt == 0)) ++ seq->rule = rule; ++ ++ if ((rulesets[rule * nrules + pass] ++ & sort_backward) == 0) ++ /* No more backward characters to push. */ ++ break; ++ ++idxcnt; ++ } ++ ++ if (backw_stop >= idxcnt) ++ { ++ /* No sequence at all or just one. */ ++ if (idxcnt == idxmax || backw_stop > idxcnt) ++ /* Note that len is still zero. */ ++ break; ++ ++ backw_stop = ~0ul; ++ } ++ else ++ { ++ /* We pushed backward sequences. If the stream ended with the ++ backward sequence, then we process the last sequence we ++ found. Otherwise we process the sequence before the last ++ one since the last one was a forward sequence. */ ++ seq->back_us = seq->us; ++ seq->us = us; ++ backw = idxcnt; ++ if (idxmax > idxcnt) ++ { ++ backw--; ++ seq->save_idx = idx; ++ idx = prev_idx; ++ } ++ if (backw > backw_stop) ++ backw--; ++ } ++ } ++ ++ len = weights[idx++]; ++ /* Skip over indeces of previous levels. */ ++ for (int i = 0; i < pass; i++) ++ { ++ idx += len; ++ len = weights[idx]; ++ idx++; ++ } ++ } ++ ++ /* Update the structure. */ ++ seq->val = val; ++ seq->len = len; ++ seq->backw_stop = backw_stop; ++ seq->backw = backw; ++ seq->idxcnt = idxcnt; ++ seq->idxmax = idxmax; ++ seq->us = us; ++ seq->idx = idx; ++} ++ ++/* Compare two sequences. This version does not use the index and rules ++ cache. */ ++static int ++do_compare_nocache (coll_seq *seq1, coll_seq *seq2, int position, ++ const USTRING_TYPE *weights) ++{ ++ int seq1len = seq1->len; ++ int seq2len = seq2->len; ++ int val1 = seq1->val; ++ int val2 = seq2->val; ++ int idx1 = seq1->idx; ++ int idx2 = seq2->idx; ++ int result = 0; ++ ++ /* Test for position if necessary. */ ++ if (position && val1 != val2) ++ { ++ result = val1 - val2; ++ goto out; ++ } ++ ++ /* Compare the two sequences. */ ++ do ++ { ++ if (weights[idx1] != weights[idx2]) ++ { ++ /* The sequences differ. */ ++ result = weights[idx1] - weights[idx2]; ++ goto out; ++ } ++ ++ /* Increment the offsets. */ ++ ++idx1; ++ ++idx2; ++ ++ --seq1len; ++ --seq2len; ++ } ++ while (seq1len > 0 && seq2len > 0); ++ ++ if (position && seq1len != seq2len) ++ result = seq1len - seq2len; ++ ++out: ++ seq1->len = seq1len; ++ seq2->len = seq2len; ++ seq1->idx = idx1; ++ seq2->idx = idx2; ++ return result; ++} ++ ++/* Compare two sequences using the index cache. */ ++static int ++do_compare (coll_seq *seq1, coll_seq *seq2, int position, ++ const USTRING_TYPE *weights) ++{ ++ int seq1len = seq1->len; ++ int seq2len = seq2->len; ++ int val1 = seq1->val; ++ int val2 = seq2->val; ++ int32_t *idx1arr = seq1->idxarr; ++ int32_t *idx2arr = seq2->idxarr; ++ int idx1now = seq1->idxnow; ++ int idx2now = seq2->idxnow; ++ int result = 0; ++ ++ /* Test for position if necessary. */ ++ if (position && val1 != val2) ++ { ++ result = val1 - val2; ++ goto out; ++ } ++ ++ /* Compare the two sequences. */ ++ do ++ { ++ if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]]) ++ { ++ /* The sequences differ. */ ++ result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]]; ++ goto out; ++ } ++ ++ /* Increment the offsets. */ ++ ++idx1arr[idx1now]; ++ ++idx2arr[idx2now]; ++ ++ --seq1len; ++ --seq2len; ++ } ++ while (seq1len > 0 && seq2len > 0); ++ ++ if (position && seq1len != seq2len) ++ result = seq1len - seq2len; ++ ++out: ++ seq1->len = seq1len; ++ seq2->len = seq2len; ++ return result; ++} ++ + int +-STRCOLL (s1, s2, l) +- const STRING_TYPE *s1; +- const STRING_TYPE *s2; +- __locale_t l; ++STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l) + { + struct __locale_data *current = l->__locales[LC_COLLATE]; + uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; +@@ -56,34 +479,6 @@ STRCOLL (s1, s2, l) + const USTRING_TYPE *weights; + const USTRING_TYPE *extra; + const int32_t *indirect; +- uint_fast32_t pass; +- int result = 0; +- const USTRING_TYPE *us1; +- const USTRING_TYPE *us2; +- size_t s1len; +- size_t s2len; +- int32_t *idx1arr; +- int32_t *idx2arr; +- unsigned char *rule1arr; +- unsigned char *rule2arr; +- size_t idx1max; +- size_t idx2max; +- size_t idx1cnt; +- size_t idx2cnt; +- size_t idx1now; +- size_t idx2now; +- size_t backw1_stop; +- size_t backw2_stop; +- size_t backw1; +- size_t backw2; +- int val1; +- int val2; +- int position; +- int seq1len; +- int seq2len; +- int use_malloc; +- +-#include WEIGHT_H + + if (nrules == 0) + return STRCMP (s1, s2); +@@ -98,7 +493,6 @@ STRCOLL (s1, s2, l) + current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_EXTRA,SUFFIX))].string; + indirect = (const int32_t *) + current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_INDIRECT,SUFFIX))].string; +- use_malloc = 0; + + assert (((uintptr_t) table) % __alignof__ (table[0]) == 0); + assert (((uintptr_t) weights) % __alignof__ (weights[0]) == 0); +@@ -106,18 +500,13 @@ STRCOLL (s1, s2, l) + assert (((uintptr_t) indirect) % __alignof__ (indirect[0]) == 0); + + /* We need this a few times. */ +- s1len = STRLEN (s1); +- s2len = STRLEN (s2); ++ size_t s1len = STRLEN (s1); ++ size_t s2len = STRLEN (s2); + + /* Catch empty strings. */ +- if (__builtin_expect (s1len == 0, 0) || __builtin_expect (s2len == 0, 0)) ++ if (__glibc_unlikely (s1len == 0) || __glibc_unlikely (s2len == 0)) + return (s1len != 0) - (s2len != 0); + +- /* We need the elements of the strings as unsigned values since they +- are used as indeces. */ +- us1 = (const USTRING_TYPE *) s1; +- us2 = (const USTRING_TYPE *) s2; +- + /* Perform the first pass over the string and while doing this find + and store the weights for each character. Since we want this to + be as fast as possible we are using `alloca' to store the temporary +@@ -127,411 +516,124 @@ STRCOLL (s1, s2, l) + + Please note that the localedef programs makes sure that `position' + is not used at the first level. */ +- if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1))) +- { +- idx1arr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1)); +- idx2arr = &idx1arr[s1len]; +- rule1arr = (unsigned char *) &idx2arr[s2len]; +- rule2arr = &rule1arr[s1len]; +- +- if (idx1arr == NULL) +- /* No memory. Well, go with the stack then. +- +- XXX Once this implementation is stable we will handle this +- differently. Instead of precomputing the indeces we will +- do this in time. This means, though, that this happens for +- every pass again. */ +- goto try_stack; +- use_malloc = 1; +- } +- else +- { +- try_stack: +- idx1arr = (int32_t *) alloca (s1len * sizeof (int32_t)); +- idx2arr = (int32_t *) alloca (s2len * sizeof (int32_t)); +- rule1arr = (unsigned char *) alloca (s1len); +- rule2arr = (unsigned char *) alloca (s2len); +- } + +- idx1cnt = 0; +- idx2cnt = 0; +- idx1max = 0; +- idx2max = 0; +- idx1now = 0; +- idx2now = 0; +- backw1_stop = ~0ul; +- backw2_stop = ~0ul; +- backw1 = ~0ul; +- backw2 = ~0ul; +- seq1len = 0; +- seq2len = 0; +- position = rulesets[0] & sort_position; +- while (1) +- { +- val1 = 0; +- val2 = 0; ++ coll_seq seq1, seq2; ++ bool use_malloc = false; ++ int result = 0; + +- /* Get the next non-IGNOREd element for string `s1'. */ +- if (seq1len == 0) +- do +- { +- ++val1; +- +- if (backw1_stop != ~0ul) +- { +- /* The is something pushed. */ +- if (backw1 == backw1_stop) +- { +- /* The last pushed character was handled. Continue +- with forward characters. */ +- if (idx1cnt < idx1max) +- { +- idx1now = idx1cnt; +- backw1_stop = ~0ul; +- } +- else +- /* Nothing anymore. The backward sequence ended with +- the last sequence in the string. Note that seq1len +- is still zero. */ +- break; +- } +- else +- idx1now = --backw1; +- } +- else +- { +- backw1_stop = idx1max; +- +- while (*us1 != L('\0')) +- { +- int32_t tmp = findidx (&us1, -1); +- rule1arr[idx1max] = tmp >> 24; +- idx1arr[idx1max] = tmp & 0xffffff; +- idx1cnt = idx1max++; +- +- if ((rulesets[rule1arr[idx1cnt] * nrules] +- & sort_backward) == 0) +- /* No more backward characters to push. */ +- break; +- ++idx1cnt; +- } +- +- if (backw1_stop >= idx1cnt) +- { +- /* No sequence at all or just one. */ +- if (idx1cnt == idx1max || backw1_stop > idx1cnt) +- /* Note that seq1len is still zero. */ +- break; +- +- backw1_stop = ~0ul; +- idx1now = idx1cnt; +- } +- else +- /* We pushed backward sequences. */ +- idx1now = backw1 = idx1cnt - 1; +- } +- } +- while ((seq1len = weights[idx1arr[idx1now]++]) == 0); +- +- /* And the same for string `s2'. */ +- if (seq2len == 0) +- do +- { +- ++val2; +- +- if (backw2_stop != ~0ul) +- { +- /* The is something pushed. */ +- if (backw2 == backw2_stop) +- { +- /* The last pushed character was handled. Continue +- with forward characters. */ +- if (idx2cnt < idx2max) +- { +- idx2now = idx2cnt; +- backw2_stop = ~0ul; +- } +- else +- /* Nothing anymore. The backward sequence ended with +- the last sequence in the string. Note that seq2len +- is still zero. */ +- break; +- } +- else +- idx2now = --backw2; +- } +- else +- { +- backw2_stop = idx2max; +- +- while (*us2 != L('\0')) +- { +- int32_t tmp = findidx (&us2, -1); +- rule2arr[idx2max] = tmp >> 24; +- idx2arr[idx2max] = tmp & 0xffffff; +- idx2cnt = idx2max++; +- +- if ((rulesets[rule2arr[idx2cnt] * nrules] +- & sort_backward) == 0) +- /* No more backward characters to push. */ +- break; +- ++idx2cnt; +- } +- +- if (backw2_stop >= idx2cnt) +- { +- /* No sequence at all or just one. */ +- if (idx2cnt == idx2max || backw2_stop > idx2cnt) +- /* Note that seq1len is still zero. */ +- break; +- +- backw2_stop = ~0ul; +- idx2now = idx2cnt; +- } +- else +- /* We pushed backward sequences. */ +- idx2now = backw2 = idx2cnt - 1; +- } +- } +- while ((seq2len = weights[idx2arr[idx2now]++]) == 0); +- +- /* See whether any or both strings are empty. */ +- if (seq1len == 0 || seq2len == 0) +- { +- if (seq1len == seq2len) +- /* Both ended. So far so good, both strings are equal at the +- first level. */ +- break; +- +- /* This means one string is shorter than the other. Find out +- which one and return an appropriate value. */ +- result = seq1len == 0 ? -1 : 1; +- goto free_and_return; +- } +- +- /* Test for position if necessary. */ +- if (position && val1 != val2) +- { +- result = val1 - val2; +- goto free_and_return; +- } ++ memset (&seq1, 0, sizeof (seq1)); ++ seq2 = seq1; + +- /* Compare the two sequences. */ +- do +- { +- if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]]) +- { +- /* The sequences differ. */ +- result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]]; +- goto free_and_return; +- } ++ size_t size_max = SIZE_MAX / (sizeof (int32_t) + 1); + +- /* Increment the offsets. */ +- ++idx1arr[idx1now]; +- ++idx2arr[idx2now]; ++ /* If the strings are long enough to cause overflow in the size request, then ++ skip the allocation and proceed with the non-cached routines. */ ++ if (MIN (s1len, s2len) > size_max ++ || MAX (s1len, s2len) > size_max - MIN (s1len, s2len)) ++ goto begin_collate; + +- --seq1len; +- --seq2len; +- } +- while (seq1len > 0 && seq2len > 0); ++ if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1))) ++ { ++ seq1.idxarr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1)); + +- if (position && seq1len != seq2len) ++ /* If we failed to allocate memory, we leave everything as NULL so that ++ we use the nocache version of traversal and comparison functions. */ ++ if (seq1.idxarr != NULL) + { +- result = seq1len - seq2len; +- goto free_and_return; ++ seq2.idxarr = &seq1.idxarr[s1len]; ++ seq1.rulearr = (unsigned char *) &seq2.idxarr[s2len]; ++ seq2.rulearr = &seq1.rulearr[s1len]; ++ use_malloc = true; + } + } ++ else ++ { ++ seq1.idxarr = (int32_t *) alloca (s1len * sizeof (int32_t)); ++ seq2.idxarr = (int32_t *) alloca (s2len * sizeof (int32_t)); ++ seq1.rulearr = (unsigned char *) alloca (s1len); ++ seq2.rulearr = (unsigned char *) alloca (s2len); ++ } ++ ++ int rule; + +- /* Now the remaining passes over the weights. We now use the +- indeces we found before. */ +- for (pass = 1; pass < nrules; ++pass) ++ begin_collate: ++ rule = 0; ++ /* Cache values in the first pass and if needed, use them in subsequent ++ passes. */ ++ for (int pass = 0; pass < nrules; ++pass) + { ++ seq1.idxcnt = 0; ++ seq1.idx = 0; ++ seq2.idx = 0; ++ seq1.backw_stop = ~0ul; ++ seq1.backw = ~0ul; ++ seq2.idxcnt = 0; ++ seq2.backw_stop = ~0ul; ++ seq2.backw = ~0ul; ++ ++ /* We need the elements of the strings as unsigned values since they ++ are used as indeces. */ ++ seq1.us = (const USTRING_TYPE *) s1; ++ seq2.us = (const USTRING_TYPE *) s2; ++ + /* We assume that if a rule has defined `position' in one section + this is true for all of them. */ +- idx1cnt = 0; +- idx2cnt = 0; +- backw1_stop = ~0ul; +- backw2_stop = ~0ul; +- backw1 = ~0ul; +- backw2 = ~0ul; +- position = rulesets[rule1arr[0] * nrules + pass] & sort_position; ++ int position = rulesets[rule * nrules + pass] & sort_position; + + while (1) + { +- val1 = 0; +- val2 = 0; +- +- /* Get the next non-IGNOREd element for string `s1'. */ +- if (seq1len == 0) +- do +- { +- ++val1; +- +- if (backw1_stop != ~0ul) +- { +- /* The is something pushed. */ +- if (backw1 == backw1_stop) +- { +- /* The last pushed character was handled. Continue +- with forward characters. */ +- if (idx1cnt < idx1max) +- { +- idx1now = idx1cnt; +- backw1_stop = ~0ul; +- } +- else +- { +- /* Nothing anymore. The backward sequence +- ended with the last sequence in the string. */ +- idx1now = ~0ul; +- break; +- } +- } +- else +- idx1now = --backw1; +- } +- else +- { +- backw1_stop = idx1cnt; +- +- while (idx1cnt < idx1max) +- { +- if ((rulesets[rule1arr[idx1cnt] * nrules + pass] +- & sort_backward) == 0) +- /* No more backward characters to push. */ +- break; +- ++idx1cnt; +- } +- +- if (backw1_stop == idx1cnt) +- { +- /* No sequence at all or just one. */ +- if (idx1cnt == idx1max) +- /* Note that seq1len is still zero. */ +- break; +- +- backw1_stop = ~0ul; +- idx1now = idx1cnt++; +- } +- else +- /* We pushed backward sequences. */ +- idx1now = backw1 = idx1cnt - 1; +- } +- } +- while ((seq1len = weights[idx1arr[idx1now]++]) == 0); +- +- /* And the same for string `s2'. */ +- if (seq2len == 0) +- do +- { +- ++val2; +- +- if (backw2_stop != ~0ul) +- { +- /* The is something pushed. */ +- if (backw2 == backw2_stop) +- { +- /* The last pushed character was handled. Continue +- with forward characters. */ +- if (idx2cnt < idx2max) +- { +- idx2now = idx2cnt; +- backw2_stop = ~0ul; +- } +- else +- { +- /* Nothing anymore. The backward sequence +- ended with the last sequence in the string. */ +- idx2now = ~0ul; +- break; +- } +- } +- else +- idx2now = --backw2; +- } +- else +- { +- backw2_stop = idx2cnt; +- +- while (idx2cnt < idx2max) +- { +- if ((rulesets[rule2arr[idx2cnt] * nrules + pass] +- & sort_backward) == 0) +- /* No more backward characters to push. */ +- break; +- ++idx2cnt; +- } +- +- if (backw2_stop == idx2cnt) +- { +- /* No sequence at all or just one. */ +- if (idx2cnt == idx2max) +- /* Note that seq2len is still zero. */ +- break; +- +- backw2_stop = ~0ul; +- idx2now = idx2cnt++; +- } +- else +- /* We pushed backward sequences. */ +- idx2now = backw2 = idx2cnt - 1; +- } +- } +- while ((seq2len = weights[idx2arr[idx2now]++]) == 0); ++ if (__glibc_unlikely (seq1.idxarr == NULL)) ++ { ++ get_next_seq_nocache (&seq1, nrules, rulesets, weights, table, ++ extra, indirect, pass); ++ get_next_seq_nocache (&seq2, nrules, rulesets, weights, table, ++ extra, indirect, pass); ++ } ++ else if (pass == 0) ++ { ++ get_next_seq (&seq1, nrules, rulesets, weights, table, extra, ++ indirect); ++ get_next_seq (&seq2, nrules, rulesets, weights, table, extra, ++ indirect); ++ } ++ else ++ { ++ get_next_seq_cached (&seq1, nrules, pass, rulesets, weights); ++ get_next_seq_cached (&seq2, nrules, pass, rulesets, weights); ++ } + + /* See whether any or both strings are empty. */ +- if (seq1len == 0 || seq2len == 0) ++ if (seq1.len == 0 || seq2.len == 0) + { +- if (seq1len == seq2len) ++ if (seq1.len == seq2.len) + /* Both ended. So far so good, both strings are equal + at this level. */ + break; + + /* This means one string is shorter than the other. Find out + which one and return an appropriate value. */ +- result = seq1len == 0 ? -1 : 1; ++ result = seq1.len == 0 ? -1 : 1; + goto free_and_return; + } + +- /* Test for position if necessary. */ +- if (position && val1 != val2) +- { +- result = val1 - val2; +- goto free_and_return; +- } +- +- /* Compare the two sequences. */ +- do +- { +- if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]]) +- { +- /* The sequences differ. */ +- result = (weights[idx1arr[idx1now]] +- - weights[idx2arr[idx2now]]); +- goto free_and_return; +- } +- +- /* Increment the offsets. */ +- ++idx1arr[idx1now]; +- ++idx2arr[idx2now]; +- +- --seq1len; +- --seq2len; +- } +- while (seq1len > 0 && seq2len > 0); +- +- if (position && seq1len != seq2len) +- { +- result = seq1len - seq2len; +- goto free_and_return; +- } ++ if (__glibc_unlikely (seq1.idxarr == NULL)) ++ result = do_compare_nocache (&seq1, &seq2, position, weights); ++ else ++ result = do_compare (&seq1, &seq2, position, weights); ++ if (result != 0) ++ goto free_and_return; + } ++ ++ if (__glibc_likely (seq1.rulearr != NULL)) ++ rule = seq1.rulearr[0]; ++ else ++ rule = seq1.rule; + } + + /* Free the memory if needed. */ + free_and_return: + if (use_malloc) +- free (idx1arr); ++ free (seq1.idxarr); + + return result; + } diff --git a/strptime-W-week.patch b/strptime-W-week.patch deleted file mode 100644 index acab5ff..0000000 --- a/strptime-W-week.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3cc4f772e4e1a0999bf9a51a585c35d6f60421b6 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Tue, 5 Feb 2013 14:40:39 +0100 -Subject: [PATCH] Properly handle %W in strptime - - [BZ #15100] - * time/strptime_l.c (__strptime_internal): Count Sunday in a %W - week as 6 instead of -1. - * tst-strptime.c (day_tests): Add test case. ---- - time/strptime_l.c | 4 ++-- - time/tst-strptime.c | 1 + - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/time/strptime_l.c b/time/strptime_l.c -index 1f2e8b6..00fc1ef 100644 ---- a/time/strptime_l.c -+++ b/time/strptime_l.c -@@ -1180,8 +1180,8 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM) - - if (!s.have_yday) - tm->tm_yday = ((7 - (tm->tm_wday - w_offset)) % 7 -- + (s.week_no - 1) *7 -- + save_wday - w_offset); -+ + (s.week_no - 1) * 7 -+ + (save_wday - w_offset + 7) % 7); - - if (!s.have_mday || !s.have_mon) - { -diff --git a/time/tst-strptime.c b/time/tst-strptime.c -index 12b084d..21fbb63 100644 ---- a/time/tst-strptime.c -+++ b/time/tst-strptime.c -@@ -41,6 +41,7 @@ static const struct - { "C", "19990502123412", "%Y%m%d%H%M%S", 0, 121, 4, 2 }, - { "C", "2001 20 Mon", "%Y %U %a", 1, 140, 4, 21 }, - { "C", "2001 21 Mon", "%Y %W %a", 1, 140, 4, 21 }, -+ { "C", "2012 00 Sun", "%Y %W %a", 0, 0, 0, 1 }, - { "ja_JP.EUC-JP", "2000-01-01 08:12:21 AM", "%Y-%m-%d %I:%M:%S %p", - 6, 0, 0, 1 }, - { "en_US.ISO-8859-1", "2000-01-01 08:12:21 PM", "%Y-%m-%d %I:%M:%S %p", --- -1.8.2.3 - From fee0369c4d978d1cf5d1a9da02ce15e44fb44d1a01731b83eb34d5ea078a6038 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 12 Sep 2013 05:09:24 +0000 Subject: [PATCH 147/204] Accepting request 198530 from Base:System - fcntl-o-tmpfile.patch: Add O_TMPFILE to <fcntl.h> (bnc#837965) - strcoll-overflow.patch: Update to latest version (forwarded request 198529 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/198530 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=154 --- fcntl-o-tmpfile.patch | 58 +++++++++++++ glibc-testsuite.changes | 6 ++ glibc-testsuite.spec | 4 + glibc-utils.changes | 6 ++ glibc-utils.spec | 4 + glibc.changes | 6 ++ glibc.spec | 4 + strcoll-overflow.patch | 180 +++++++++++++++++++++++++++++----------- 8 files changed, 218 insertions(+), 50 deletions(-) create mode 100644 fcntl-o-tmpfile.patch diff --git a/fcntl-o-tmpfile.patch b/fcntl-o-tmpfile.patch new file mode 100644 index 0000000..493f4fa --- /dev/null +++ b/fcntl-o-tmpfile.patch @@ -0,0 +1,58 @@ +Index: glibc-2.18/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h +=================================================================== +--- glibc-2.18.orig/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h ++++ glibc-2.18/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h +@@ -36,6 +36,7 @@ + #define __O_DIRECT 02000000 /* Direct disk access. */ + #define __O_NOATIME 04000000 /* Do not set atime. */ + #define __O_PATH 040000000 /* Resolve pathname but do not open file. */ ++#define __O_TMPFILE 0100100000 /* Atomically create nameless file. */ + + /* Not necessary, files are always with 64bit off_t. */ + #define __O_LARGEFILE 0 +Index: glibc-2.18/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h +=================================================================== +--- glibc-2.18.orig/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h ++++ glibc-2.18/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h +@@ -37,6 +37,7 @@ + #define __O_CLOEXEC 010000000 /* Set close_on_exec. */ + #define __O_NOATIME 004000000 /* Do not set atime. */ + #define __O_PATH 020000000 ++#define __O_TMPFILE 040010000 /* Atomically create nameless file. */ + + #define __O_LARGEFILE 00004000 + +Index: glibc-2.18/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +=================================================================== +--- glibc-2.18.orig/sysdeps/unix/sysv/linux/bits/fcntl-linux.h ++++ glibc-2.18/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +@@ -96,6 +96,9 @@ + #ifndef __O_DSYNC + # define __O_DSYNC 010000 + #endif ++#ifndef __O_TMPFILE ++# define __O_TMPFILE 020200000 ++#endif + + #ifndef F_GETLK + # ifndef __USE_FILE_OFFSET64 +@@ -128,6 +131,7 @@ + # define O_DIRECT __O_DIRECT /* Direct disk access. */ + # define O_NOATIME __O_NOATIME /* Do not set atime. */ + # define O_PATH __O_PATH /* Resolve pathname but do not open file. */ ++# define O_TMPFILE __O_TMPFILE /* Atomically create nameless file. */ + #endif + + /* For now, Linux has no separate synchronicitiy options for read +Index: glibc-2.18/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h +=================================================================== +--- glibc-2.18.orig/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h ++++ glibc-2.18/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h +@@ -39,6 +39,7 @@ + #define __O_DIRECT 0x100000 /* direct disk access hint */ + #define __O_NOATIME 0x200000 /* Do not set atime. */ + #define __O_PATH 0x1000000 /* Resolve pathname but do not open file. */ ++#define __O_TMPFILE 0x2010000 /* Atomically create nameless file. */ + + #if __WORDSIZE == 64 + # define __O_LARGEFILE 0 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 570e25d..58106bc 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de + +- fcntl-o-tmpfile.patch: Add O_TMPFILE to (bnc#837965) +- strcoll-overflow.patch: Update to latest version + ------------------------------------------------------------------- Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index a632ae6..42ee5a9 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -240,6 +240,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Add O_TMPFILE to +Patch1000: fcntl-o-tmpfile.patch ### # Patches awaiting upstream approval @@ -462,6 +464,8 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 +%patch1000 -p1 + # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 %patch2013 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 570e25d..58106bc 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de + +- fcntl-o-tmpfile.patch: Add O_TMPFILE to (bnc#837965) +- strcoll-overflow.patch: Update to latest version + ------------------------------------------------------------------- Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 1f295de..2dc9819 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -239,6 +239,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Add O_TMPFILE to +Patch1000: fcntl-o-tmpfile.patch ### # Patches awaiting upstream approval @@ -462,6 +464,8 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 +%patch1000 -p1 + # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 %patch2013 -p1 diff --git a/glibc.changes b/glibc.changes index 570e25d..58106bc 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de + +- fcntl-o-tmpfile.patch: Add O_TMPFILE to (bnc#837965) +- strcoll-overflow.patch: Update to latest version + ------------------------------------------------------------------- Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 515a9b9..f2fbbb0 100644 --- a/glibc.spec +++ b/glibc.spec @@ -240,6 +240,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Add O_TMPFILE to +Patch1000: fcntl-o-tmpfile.patch ### # Patches awaiting upstream approval @@ -462,6 +464,8 @@ rm nscd/s-stamp %patch305 -p1 %patch306 -p1 +%patch1000 -p1 + # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 %patch2013 -p1 diff --git a/strcoll-overflow.patch b/strcoll-overflow.patch index 5fa0fde..a36ac41 100644 --- a/strcoll-overflow.patch +++ b/strcoll-overflow.patch @@ -1,6 +1,8 @@ -Siddhesh Poyarekar +Siddhesh Poyarekar [BZ #14547] + * string/tst-strcoll-overflow.c: New test case. + * string/Makefile (xtests): Add tst-strcoll-overflow. * string/strcoll_l.c (STRCOLL): Skip allocating memory for cache if string sizes may cause integer overflow. @@ -12,18 +14,30 @@ Siddhesh Poyarekar (STRCOLL): Use get_next_seq_nocache and do_compare_nocache when malloc fails. - [BZ #14547] * string/strcoll_l.c (coll_seq): New structure. (get_next_seq_cached): New function. (get_next_seq): New function. (do_compare): New function. (STRCOLL): Use GNU style definition. Simplify implementation - by using get_next_seq, get_next_seq_cached and do_copare. + by using get_next_seq, get_next_seq_cached and do_compare. -Index: glibc-2.17.90/string/strcoll_l.c +Index: glibc-2.18/string/Makefile =================================================================== ---- glibc-2.17.90.orig/string/strcoll_l.c -+++ glibc-2.17.90/string/strcoll_l.c +--- glibc-2.18.orig/string/Makefile ++++ glibc-2.18/string/Makefile +@@ -57,6 +57,8 @@ tests := tester inl-tester noinl-tester + tests-ifunc := $(strop-tests:%=test-%-ifunc) + tests += $(tests-ifunc) + ++xtests = tst-strcoll-overflow ++ + include ../Rules + + tester-ENV = LANGUAGE=C +Index: glibc-2.18/string/strcoll_l.c +=================================================================== +--- glibc-2.18.orig/string/strcoll_l.c ++++ glibc-2.18/string/strcoll_l.c @@ -41,11 +41,434 @@ #include "../locale/localeinfo.h" @@ -32,15 +46,15 @@ Index: glibc-2.17.90/string/strcoll_l.c +typedef struct +{ + int len; /* Length of the current sequence. */ -+ int val; /* Position of the sequence relative to the ++ size_t val; /* Position of the sequence relative to the + previous non-ignored sequence. */ + size_t idxnow; /* Current index in sequences. */ + size_t idxmax; /* Maximum index in sequences. */ -+ size_t idxcnt; /* Current count of indeces. */ ++ size_t idxcnt; /* Current count of indices. */ + size_t backw; /* Current Backward sequence index. */ + size_t backw_stop; /* Index where the backward sequences stop. */ + const USTRING_TYPE *us; /* The string. */ -+ int32_t *idxarr; /* Array to cache weight indeces. */ ++ int32_t *idxarr; /* Array to cache weight indices. */ + unsigned char *rulearr; /* Array to cache rules. */ + unsigned char rule; /* Saved rule for the first sequence. */ + int32_t idx; /* Index to weight of the current sequence. */ @@ -50,14 +64,14 @@ Index: glibc-2.17.90/string/strcoll_l.c + const USTRING_TYPE *back_us; /* Beginning of the backward sequence. */ +} coll_seq; + -+/* Get next sequence. The weight indeces are cached, so we don't need to ++/* Get next sequence. The weight indices are cached, so we don't need to + traverse the string. */ +static void +get_next_seq_cached (coll_seq *seq, int nrules, int pass, + const unsigned char *rulesets, + const USTRING_TYPE *weights) +{ -+ int val = seq->val = 0; ++ size_t val = seq->val = 0; + int len = seq->len; + size_t backw_stop = seq->backw_stop; + size_t backw = seq->backw; @@ -72,7 +86,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + ++val; + if (backw_stop != ~0ul) + { -+ /* The is something pushed. */ ++ /* There is something pushed. */ + if (backw == backw_stop) + { + /* The last pushed character was handled. Continue @@ -84,7 +98,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + } + else + { -+ /* Nothing anymore. The backward sequence ++ /* Nothing any more. The backward sequence + ended with the last sequence in the string. */ + idxnow = ~0ul; + break; @@ -110,7 +124,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + { + /* No sequence at all or just one. */ + if (idxcnt == idxmax) -+ /* Note that seq1len is still zero. */ ++ /* Note that LEN is still zero. */ + break; + + backw_stop = ~0ul; @@ -139,7 +153,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + const USTRING_TYPE *extra, const int32_t *indirect) +{ +#include WEIGHT_H -+ int val = seq->val = 0; ++ size_t val = seq->val = 0; + int len = seq->len; + size_t backw_stop = seq->backw_stop; + size_t backw = seq->backw; @@ -155,7 +169,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + ++val; + if (backw_stop != ~0ul) + { -+ /* The is something pushed. */ ++ /* There is something pushed. */ + if (backw == backw_stop) + { + /* The last pushed character was handled. Continue @@ -166,8 +180,8 @@ Index: glibc-2.17.90/string/strcoll_l.c + backw_stop = ~0ul; + } + else -+ /* Nothing anymore. The backward sequence ended with -+ the last sequence in the string. Note that seq2len ++ /* Nothing any more. The backward sequence ended with ++ the last sequence in the string. Note that LEN + is still zero. */ + break; + } @@ -196,7 +210,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + { + /* No sequence at all or just one. */ + if (idxcnt == idxmax || backw_stop > idxcnt) -+ /* Note that seq1len is still zero. */ ++ /* Note that LEN is still zero. */ + break; + + backw_stop = ~0ul; @@ -229,7 +243,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + int pass) +{ +#include WEIGHT_H -+ int val = seq->val = 0; ++ size_t val = seq->val = 0; + int len = seq->len; + size_t backw_stop = seq->backw_stop; + size_t backw = seq->backw; @@ -243,7 +257,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + ++val; + if (backw_stop != ~0ul) + { -+ /* The is something pushed. */ ++ /* There is something pushed. */ + if (backw == backw_stop) + { + /* The last pushed character was handled. Continue @@ -267,7 +281,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + /* XXX Traverse BACKW sequences from the beginning of + BACKW_STOP to get the next sequence. Is ther a quicker way + to do this? */ -+ int i = backw_stop; ++ size_t i = backw_stop; + us = seq->back_us; + while (i < backw) + { @@ -333,7 +347,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + } + + len = weights[idx++]; -+ /* Skip over indeces of previous levels. */ ++ /* Skip over indices of previous levels. */ + for (int i = 0; i < pass; i++) + { + idx += len; @@ -361,8 +375,8 @@ Index: glibc-2.17.90/string/strcoll_l.c +{ + int seq1len = seq1->len; + int seq2len = seq2->len; -+ int val1 = seq1->val; -+ int val2 = seq2->val; ++ size_t val1 = seq1->val; ++ size_t val2 = seq2->val; + int idx1 = seq1->idx; + int idx2 = seq2->idx; + int result = 0; @@ -370,7 +384,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + /* Test for position if necessary. */ + if (position && val1 != val2) + { -+ result = val1 - val2; ++ result = val1 > val2 ? 1 : -1; + goto out; + } + @@ -411,8 +425,8 @@ Index: glibc-2.17.90/string/strcoll_l.c +{ + int seq1len = seq1->len; + int seq2len = seq2->len; -+ int val1 = seq1->val; -+ int val2 = seq2->val; ++ size_t val1 = seq1->val; ++ size_t val2 = seq2->val; + int32_t *idx1arr = seq1->idxarr; + int32_t *idx2arr = seq2->idxarr; + int idx1now = seq1->idxnow; @@ -422,7 +436,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + /* Test for position if necessary. */ + if (position && val1 != val2) + { -+ result = val1 - val2; ++ result = val1 > val2 ? 1 : -1; + goto out; + } + @@ -528,7 +542,7 @@ Index: glibc-2.17.90/string/strcoll_l.c /* Perform the first pass over the string and while doing this find and store the weights for each character. Since we want this to be as fast as possible we are using `alloca' to store the temporary -@@ -127,411 +516,124 @@ STRCOLL (s1, s2, l) +@@ -127,411 +516,122 @@ STRCOLL (s1, s2, l) Please note that the localedef programs makes sure that `position' is not used at the first level. */ @@ -557,7 +571,7 @@ Index: glibc-2.17.90/string/strcoll_l.c - rule1arr = (unsigned char *) alloca (s1len); - rule2arr = (unsigned char *) alloca (s2len); - } - +- - idx1cnt = 0; - idx2cnt = 0; - idx1max = 0; @@ -575,10 +589,7 @@ Index: glibc-2.17.90/string/strcoll_l.c - { - val1 = 0; - val2 = 0; -+ coll_seq seq1, seq2; -+ bool use_malloc = false; -+ int result = 0; - +- - /* Get the next non-IGNOREd element for string `s1'. */ - if (seq1len == 0) - do @@ -723,8 +734,6 @@ Index: glibc-2.17.90/string/strcoll_l.c - result = val1 - val2; - goto free_and_return; - } -+ memset (&seq1, 0, sizeof (seq1)); -+ seq2 = seq1; - /* Compare the two sequences. */ - do @@ -735,26 +744,33 @@ Index: glibc-2.17.90/string/strcoll_l.c - result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]]; - goto free_and_return; - } -+ size_t size_max = SIZE_MAX / (sizeof (int32_t) + 1); ++ coll_seq seq1, seq2; ++ bool use_malloc = false; ++ int result = 0; - /* Increment the offsets. */ - ++idx1arr[idx1now]; - ++idx2arr[idx2now]; -+ /* If the strings are long enough to cause overflow in the size request, then -+ skip the allocation and proceed with the non-cached routines. */ -+ if (MIN (s1len, s2len) > size_max -+ || MAX (s1len, s2len) > size_max - MIN (s1len, s2len)) -+ goto begin_collate; ++ memset (&seq1, 0, sizeof (seq1)); ++ seq2 = seq1; - --seq1len; - --seq2len; - } - while (seq1len > 0 && seq2len > 0); -+ if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1))) -+ { -+ seq1.idxarr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1)); ++ size_t size_max = SIZE_MAX / (sizeof (int32_t) + 1); - if (position && seq1len != seq2len) ++ if (MIN (s1len, s2len) > size_max ++ || MAX (s1len, s2len) > size_max - MIN (s1len, s2len)) ++ { ++ /* If the strings are long enough to cause overflow in the size request, ++ then skip the allocation and proceed with the non-cached routines. */ ++ } ++ else if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1))) ++ { ++ seq1.idxarr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1)); ++ + /* If we failed to allocate memory, we leave everything as NULL so that + we use the nocache version of traversal and comparison functions. */ + if (seq1.idxarr != NULL) @@ -775,13 +791,11 @@ Index: glibc-2.17.90/string/strcoll_l.c + seq2.rulearr = (unsigned char *) alloca (s2len); + } + -+ int rule; ++ int rule = 0; - /* Now the remaining passes over the weights. We now use the - indeces we found before. */ - for (pass = 1; pass < nrules; ++pass) -+ begin_collate: -+ rule = 0; + /* Cache values in the first pass and if needed, use them in subsequent + passes. */ + for (int pass = 0; pass < nrules; ++pass) @@ -796,7 +810,7 @@ Index: glibc-2.17.90/string/strcoll_l.c + seq2.backw = ~0ul; + + /* We need the elements of the strings as unsigned values since they -+ are used as indeces. */ ++ are used as indices. */ + seq1.us = (const USTRING_TYPE *) s1; + seq2.us = (const USTRING_TYPE *) s2; + @@ -1024,3 +1038,69 @@ Index: glibc-2.17.90/string/strcoll_l.c return result; } +Index: glibc-2.18/string/tst-strcoll-overflow.c +=================================================================== +--- /dev/null ++++ glibc-2.18/string/tst-strcoll-overflow.c +@@ -0,0 +1,61 @@ ++/* Copyright (C) 2013 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Verify that strcoll does not crash for large strings for which it cannot ++ cache weight lookup results. The size is large enough to cause integer ++ overflows on 32-bit as well as buffer overflows on 64-bit. The test should ++ work reasonably reliably when overcommit is disabled, but it obviously ++ depends on how much memory the system has. There's a limitation to this ++ test in that it does not run to completion. Actually collating such a ++ large string can take days and we can't have xcheck running that long. For ++ that reason, we run the test for about 5 minutes and then assume that ++ everything is fine if there are no crashes. */ ++#define SIZE 0x40000000ul ++ ++int ++do_test (void) ++{ ++ if (setlocale (LC_COLLATE, "en_GB.UTF-8") == NULL) ++ { ++ puts ("setlocale failed, cannot test for overflow"); ++ return 0; ++ } ++ ++ char *p = malloc (SIZE); ++ ++ if (p == NULL) ++ { ++ puts ("could not allocate memory"); ++ return 1; ++ } ++ ++ memset (p, 'x', SIZE - 1); ++ p[SIZE - 1] = 0; ++ printf ("%d\n", strcoll (p, p)); ++ return 0; ++} ++ ++#define TIMEOUT 300 ++#define EXPECTED_SIGNAL SIGALRM ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" From 031855a0d1ce6b8a46cda6038d2318863258f34948e9f7fc6bbd52870dd092ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 13 Sep 2013 12:43:41 +0000 Subject: [PATCH 148/204] Accepting request 198717 from Base:System - malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332, bnc#839870) (forwarded request 198716 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/198717 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=155 --- glibc-testsuite.changes | 6 +++++ glibc-testsuite.spec | 3 +++ glibc-utils.changes | 6 +++++ glibc-utils.spec | 3 +++ glibc.changes | 6 +++++ glibc.spec | 3 +++ malloc-overflows.patch | 60 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 87 insertions(+) create mode 100644 malloc-overflows.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 58106bc..9f97669 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de + +- malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332, + bnc#839870) + ------------------------------------------------------------------- Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 42ee5a9..3c95b08 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -242,6 +242,8 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM Add O_TMPFILE to Patch1000: fcntl-o-tmpfile.patch +# PATCH-FIX-UPSTREAM Integer overflows in malloc +Patch1001: malloc-overflows.patch ### # Patches awaiting upstream approval @@ -465,6 +467,7 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 58106bc..9f97669 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de + +- malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332, + bnc#839870) + ------------------------------------------------------------------- Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 2dc9819..63cfc1c 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -241,6 +241,8 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM Add O_TMPFILE to Patch1000: fcntl-o-tmpfile.patch +# PATCH-FIX-UPSTREAM Integer overflows in malloc +Patch1001: malloc-overflows.patch ### # Patches awaiting upstream approval @@ -465,6 +467,7 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/glibc.changes b/glibc.changes index 58106bc..9f97669 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de + +- malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332, + bnc#839870) + ------------------------------------------------------------------- Wed Sep 11 10:11:56 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index f2fbbb0..54dbb02 100644 --- a/glibc.spec +++ b/glibc.spec @@ -242,6 +242,8 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM Add O_TMPFILE to Patch1000: fcntl-o-tmpfile.patch +# PATCH-FIX-UPSTREAM Integer overflows in malloc +Patch1001: malloc-overflows.patch ### # Patches awaiting upstream approval @@ -465,6 +467,7 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/malloc-overflows.patch b/malloc-overflows.patch new file mode 100644 index 0000000..15f2369 --- /dev/null +++ b/malloc-overflows.patch @@ -0,0 +1,60 @@ +2013-09-11 Will Newton + + [BZ #15857] + * malloc/malloc.c (__libc_memalign): Check the value of bytes + does not overflow. + + [BZ #15856] + * malloc/malloc.c (__libc_valloc): Check the value of bytes + does not overflow. + + [BZ #15855] + * malloc/malloc.c (__libc_pvalloc): Check the value of bytes + does not overflow. + +Index: glibc-2.18/malloc/malloc.c +=================================================================== +--- glibc-2.18.orig/malloc/malloc.c ++++ glibc-2.18/malloc/malloc.c +@@ -3015,6 +3015,13 @@ __libc_memalign(size_t alignment, size_t + /* Otherwise, ensure that it is at least a minimum chunk size */ + if (alignment < MINSIZE) alignment = MINSIZE; + ++ /* Check for overflow. */ ++ if (bytes > SIZE_MAX - alignment - MINSIZE) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ + arena_get(ar_ptr, bytes + alignment + MINSIZE); + if(!ar_ptr) + return 0; +@@ -3046,6 +3053,13 @@ __libc_valloc(size_t bytes) + + size_t pagesz = GLRO(dl_pagesize); + ++ /* Check for overflow. */ ++ if (bytes > SIZE_MAX - pagesz - MINSIZE) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ + void *(*hook) (size_t, size_t, const void *) = + force_reg (__memalign_hook); + if (__builtin_expect (hook != NULL, 0)) +@@ -3082,6 +3096,13 @@ __libc_pvalloc(size_t bytes) + size_t page_mask = GLRO(dl_pagesize) - 1; + size_t rounded_bytes = (bytes + page_mask) & ~(page_mask); + ++ /* Check for overflow. */ ++ if (bytes > SIZE_MAX - 2*pagesz - MINSIZE) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ + void *(*hook) (size_t, size_t, const void *) = + force_reg (__memalign_hook); + if (__builtin_expect (hook != NULL, 0)) From be39fbe295dbc19630da5860265df6b3733e72292e4e5c11f84a58f0af52e452 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 26 Sep 2013 17:33:51 +0000 Subject: [PATCH 149/204] Accepting request 200167 from Base:System - nscd-server-user.patch: run nscd as user nscd (fate#314673) (forwarded request 200165 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/200167 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=157 --- glibc-testsuite.changes | 5 +++++ glibc-testsuite.spec | 6 ++++++ glibc-utils.changes | 5 +++++ glibc-utils.spec | 6 ++++++ glibc.changes | 5 +++++ glibc.spec | 6 ++++++ nscd-server-user.patch | 13 +++++++++++++ 7 files changed, 46 insertions(+) create mode 100644 nscd-server-user.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 9f97669..0bdc9eb 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de + +- nscd-server-user.patch: run nscd as user nscd (fate#314673) + ------------------------------------------------------------------- Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 3c95b08..5139594 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -209,6 +209,8 @@ Patch14: glibc-bindresvport-blacklist.diff Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff +# PATCH-FEATURE-SLE Use nscd user for nscd +Patch19: nscd-server-user.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -337,6 +339,7 @@ Group: System/Daemons Provides: glibc:/usr/sbin/nscd Requires: glibc = %{version} Obsoletes: unscd <= 0.48 +Requires(pre): pwdutils %{?systemd_requires} %description -n nscd @@ -453,6 +456,7 @@ rm nscd/s-stamp %patch14 -p1 %patch15 -p1 %patch18 -p1 +%patch19 -p1 %patch100 -p1 %patch101 -p1 @@ -993,6 +997,8 @@ done %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz %pre -n nscd +getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd +getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /var/run/nscd nscd %service_add_pre nscd.service %preun -n nscd diff --git a/glibc-utils.changes b/glibc-utils.changes index 9f97669..0bdc9eb 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de + +- nscd-server-user.patch: run nscd as user nscd (fate#314673) + ------------------------------------------------------------------- Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 63cfc1c..bf0217a 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -208,6 +208,8 @@ Patch14: glibc-bindresvport-blacklist.diff Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff +# PATCH-FEATURE-SLE Use nscd user for nscd +Patch19: nscd-server-user.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -337,6 +339,7 @@ Group: System/Daemons Provides: glibc:/usr/sbin/nscd Requires: glibc = %{version} Obsoletes: unscd <= 0.48 +Requires(pre): pwdutils %{?systemd_requires} %description -n nscd @@ -453,6 +456,7 @@ rm nscd/s-stamp %patch14 -p1 %patch15 -p1 %patch18 -p1 +%patch19 -p1 %patch100 -p1 %patch101 -p1 @@ -993,6 +997,8 @@ done %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz %pre -n nscd +getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd +getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /var/run/nscd nscd %service_add_pre nscd.service %preun -n nscd diff --git a/glibc.changes b/glibc.changes index 9f97669..0bdc9eb 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de + +- nscd-server-user.patch: run nscd as user nscd (fate#314673) + ------------------------------------------------------------------- Thu Sep 12 13:42:23 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 54dbb02..b3c13fc 100644 --- a/glibc.spec +++ b/glibc.spec @@ -209,6 +209,8 @@ Patch14: glibc-bindresvport-blacklist.diff Patch15: glibc-2.3.90-langpackdir.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) Patch18: glibc-cpusetsize.diff +# PATCH-FEATURE-SLE Use nscd user for nscd +Patch19: nscd-server-user.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -337,6 +339,7 @@ Group: System/Daemons Provides: glibc:/usr/sbin/nscd Requires: glibc = %{version} Obsoletes: unscd <= 0.48 +Requires(pre): pwdutils %{?systemd_requires} %description -n nscd @@ -453,6 +456,7 @@ rm nscd/s-stamp %patch14 -p1 %patch15 -p1 %patch18 -p1 +%patch19 -p1 %patch100 -p1 %patch101 -p1 @@ -993,6 +997,8 @@ done %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz %pre -n nscd +getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd +getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /var/run/nscd nscd %service_add_pre nscd.service %preun -n nscd diff --git a/nscd-server-user.patch b/nscd-server-user.patch new file mode 100644 index 0000000..1e66881 --- /dev/null +++ b/nscd-server-user.patch @@ -0,0 +1,13 @@ +Index: glibc-2.18/nscd/nscd.conf +=================================================================== +--- glibc-2.18.orig/nscd/nscd.conf ++++ glibc-2.18/nscd/nscd.conf +@@ -33,7 +33,7 @@ + # logfile /var/log/nscd.log + # threads 4 + # max-threads 32 +-# server-user nobody ++ server-user nscd + # stat-user somebody + debug-level 0 + # reload-count 5 From 6c00c753af3ea5b20a1b62ce66378bb453f0dfb997ac5ba25a90e51b0812b043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Thu, 17 Oct 2013 12:05:39 +0000 Subject: [PATCH 150/204] Accepting request 203482 from Base:System - Depend on gcc defaults for base powerpc optimisations (bnc#844824) (forwarded request 203481 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/203482 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=158 --- glibc-testsuite.changes | 11 +++++++++ glibc-testsuite.spec | 22 +++++++++++------- glibc-utils.changes | 11 +++++++++ glibc-utils.spec | 22 +++++++++++------- glibc.changes | 11 +++++++++ glibc.spec | 22 +++++++++++------- m68k-Scrt1.patch | 50 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 125 insertions(+), 24 deletions(-) create mode 100644 m68k-Scrt1.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 0bdc9eb..16e45fb 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de + +- Depend on gcc defaults for base powerpc optimisations (bnc#844824) + +------------------------------------------------------------------- +Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de + +- Enable ports addon for m68k and adapt file list +- m68k-Scrt1.patch: Use PIC for Scrt1.o + ------------------------------------------------------------------- Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 5139594..2040362 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -78,11 +78,11 @@ BuildRequires: gd-devel %ifarch ppc ppc64 %define optimize_power 1 %ifarch ppc - %define powerpc_optimize_base power3 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power3 %define powerpc_optimize_cpu_power4 %{normal_build} %else - %define powerpc_optimize_base power4 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power5 %define powerpc_optimize_cpu_power4 0 %endif @@ -92,7 +92,7 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_cell 0 %else %define optimize_power 0 - %define powerpc_optimize_base 0 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_cpu_power4 0 %define powerpc_optimize_cpu_power6 0 %define powerpc_optimize_cpu_power7 0 @@ -246,6 +246,8 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: fcntl-o-tmpfile.patch # PATCH-FIX-UPSTREAM Integer overflows in malloc Patch1001: malloc-overflows.patch +# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o +Patch1002: m68k-Scrt1.patch ### # Patches awaiting upstream approval @@ -472,6 +474,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 +%patch1002 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 @@ -585,7 +588,7 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm aarch64 mipsel ia64 +%ifarch %arm aarch64 mipsel ia64 m68k add_ons=$add_ons,ports %endif %ifarch mipsel @@ -655,8 +658,11 @@ configure_and_build_glibc() { # Build POWER-optimized glibc # # First, base build: - pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}" - %if %{powerpc_optimize_base} != "power3" + pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}" + %if "%{powerpc_optimize_base}" != "" + pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" + %endif + %if "%{powerpc_optimize_base}" != "" configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} %else # Use no default CPU @@ -1057,7 +1063,7 @@ exit 0 %ifarch ia64 /%{_lib}/ld-linux-ia64.so.2 %endif -%ifarch ppc s390 mips hppa +%ifarch ppc s390 mips hppa m68k /%{_lib}/ld.so.1 %endif %ifarch ppc64 @@ -1156,7 +1162,7 @@ exit 0 %{_bindir}/getent %{_bindir}/iconv %attr(755,root,root) %{_bindir}/ldd -%ifarch %ix86 sparc sparcv9 +%ifarch %ix86 sparc sparcv9 m68k %{_bindir}/lddlibc4 %endif %{_bindir}/locale diff --git a/glibc-utils.changes b/glibc-utils.changes index 0bdc9eb..16e45fb 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de + +- Depend on gcc defaults for base powerpc optimisations (bnc#844824) + +------------------------------------------------------------------- +Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de + +- Enable ports addon for m68k and adapt file list +- m68k-Scrt1.patch: Use PIC for Scrt1.o + ------------------------------------------------------------------- Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index bf0217a..49a96ff 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -77,11 +77,11 @@ BuildRequires: gd-devel %ifarch ppc ppc64 %define optimize_power 1 %ifarch ppc - %define powerpc_optimize_base power3 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power3 %define powerpc_optimize_cpu_power4 %{normal_build} %else - %define powerpc_optimize_base power4 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power5 %define powerpc_optimize_cpu_power4 0 %endif @@ -91,7 +91,7 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_cell 0 %else %define optimize_power 0 - %define powerpc_optimize_base 0 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_cpu_power4 0 %define powerpc_optimize_cpu_power6 0 %define powerpc_optimize_cpu_power7 0 @@ -245,6 +245,8 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: fcntl-o-tmpfile.patch # PATCH-FIX-UPSTREAM Integer overflows in malloc Patch1001: malloc-overflows.patch +# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o +Patch1002: m68k-Scrt1.patch ### # Patches awaiting upstream approval @@ -472,6 +474,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 +%patch1002 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 @@ -585,7 +588,7 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm aarch64 mipsel ia64 +%ifarch %arm aarch64 mipsel ia64 m68k add_ons=$add_ons,ports %endif %ifarch mipsel @@ -655,8 +658,11 @@ configure_and_build_glibc() { # Build POWER-optimized glibc # # First, base build: - pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}" - %if %{powerpc_optimize_base} != "power3" + pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}" + %if "%{powerpc_optimize_base}" != "" + pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" + %endif + %if "%{powerpc_optimize_base}" != "" configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} %else # Use no default CPU @@ -1057,7 +1063,7 @@ exit 0 %ifarch ia64 /%{_lib}/ld-linux-ia64.so.2 %endif -%ifarch ppc s390 mips hppa +%ifarch ppc s390 mips hppa m68k /%{_lib}/ld.so.1 %endif %ifarch ppc64 @@ -1156,7 +1162,7 @@ exit 0 %{_bindir}/getent %{_bindir}/iconv %attr(755,root,root) %{_bindir}/ldd -%ifarch %ix86 sparc sparcv9 +%ifarch %ix86 sparc sparcv9 m68k %{_bindir}/lddlibc4 %endif %{_bindir}/locale diff --git a/glibc.changes b/glibc.changes index 0bdc9eb..16e45fb 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de + +- Depend on gcc defaults for base powerpc optimisations (bnc#844824) + +------------------------------------------------------------------- +Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de + +- Enable ports addon for m68k and adapt file list +- m68k-Scrt1.patch: Use PIC for Scrt1.o + ------------------------------------------------------------------- Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index b3c13fc..9f8cc95 100644 --- a/glibc.spec +++ b/glibc.spec @@ -78,11 +78,11 @@ BuildRequires: gd-devel %ifarch ppc ppc64 %define optimize_power 1 %ifarch ppc - %define powerpc_optimize_base power3 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power3 %define powerpc_optimize_cpu_power4 %{normal_build} %else - %define powerpc_optimize_base power4 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power5 %define powerpc_optimize_cpu_power4 0 %endif @@ -92,7 +92,7 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_cell 0 %else %define optimize_power 0 - %define powerpc_optimize_base 0 + %define powerpc_optimize_base %{nil} %define powerpc_optimize_cpu_power4 0 %define powerpc_optimize_cpu_power6 0 %define powerpc_optimize_cpu_power7 0 @@ -246,6 +246,8 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: fcntl-o-tmpfile.patch # PATCH-FIX-UPSTREAM Integer overflows in malloc Patch1001: malloc-overflows.patch +# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o +Patch1002: m68k-Scrt1.patch ### # Patches awaiting upstream approval @@ -472,6 +474,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 +%patch1002 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 @@ -585,7 +588,7 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm aarch64 mipsel ia64 +%ifarch %arm aarch64 mipsel ia64 m68k add_ons=$add_ons,ports %endif %ifarch mipsel @@ -655,8 +658,11 @@ configure_and_build_glibc() { # Build POWER-optimized glibc # # First, base build: - pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}" - %if %{powerpc_optimize_base} != "power3" + pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}" + %if "%{powerpc_optimize_base}" != "" + pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" + %endif + %if "%{powerpc_optimize_base}" != "" configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} %else # Use no default CPU @@ -1057,7 +1063,7 @@ exit 0 %ifarch ia64 /%{_lib}/ld-linux-ia64.so.2 %endif -%ifarch ppc s390 mips hppa +%ifarch ppc s390 mips hppa m68k /%{_lib}/ld.so.1 %endif %ifarch ppc64 @@ -1156,7 +1162,7 @@ exit 0 %{_bindir}/getent %{_bindir}/iconv %attr(755,root,root) %{_bindir}/ldd -%ifarch %ix86 sparc sparcv9 +%ifarch %ix86 sparc sparcv9 m68k %{_bindir}/lddlibc4 %endif %{_bindir}/locale diff --git a/m68k-Scrt1.patch b/m68k-Scrt1.patch new file mode 100644 index 0000000..66dff9f --- /dev/null +++ b/m68k-Scrt1.patch @@ -0,0 +1,50 @@ +2013-10-08 Andreas Schwab + + * sysdeps/m68k/start.S [SHARED]: Use PIC. + +Index: glibc-2.18/ports/sysdeps/m68k/start.S +=================================================================== +--- glibc-2.18.orig/ports/sysdeps/m68k/start.S ++++ glibc-2.18/ports/sysdeps/m68k/start.S +@@ -52,6 +52,8 @@ + NULL + */ + ++#include ++ + .text + .globl _start + .type _start,@function +@@ -74,6 +76,24 @@ _start: + pea (%a1) /* Push address of the shared library + termination function. */ + ++#ifdef SHARED ++ /* Load PIC register. */ ++ LOAD_GOT (%a5) ++ ++ /* Push the address of our own entry points to `.fini' and ++ `.init'. */ ++ move.l __libc_csu_fini@GOT(%a5), -(%sp) ++ move.l __libc_csu_init@GOT(%a5), -(%sp) ++ ++ pea (%a0) /* Push second argument: argv. */ ++ move.l %d0, -(%sp) /* Push first argument: argc. */ ++ ++ move.l main@GOT(%a5), -(%sp) ++ ++ /* Call the user's main function, and exit with its value. But ++ let the libc call main. */ ++ jbsr __libc_start_main@PLTPC ++#else + /* Push the address of our own entry points to `.fini' and + `.init'. */ + pea __libc_csu_fini +@@ -87,6 +107,7 @@ _start: + /* Call the user's main function, and exit with its value. But + let the libc call main. */ + jbsr __libc_start_main ++#endif + + illegal /* Crash if somehow `exit' does return. */ + From 623e4fd2f3528385a6e9c47ceaaeb83d773221d5c1862342b0592ea13d17aae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Tue, 22 Oct 2013 08:17:17 +0000 Subject: [PATCH 151/204] Accepting request 204211 from Base:System - Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) (forwarded request 204210 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/204211 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=159 --- glibc-testsuite.changes | 5 ++ glibc-testsuite.spec | 3 + glibc-utils.changes | 5 ++ glibc-utils.spec | 3 + glibc.changes | 5 ++ glibc.spec | 3 + i686-no-sse42-strstr.patch | 120 +++++++++++++++++++++++++++++++++++++ 7 files changed, 144 insertions(+) create mode 100644 i686-no-sse42-strstr.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 16e45fb..0177529 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de + +- Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) + ------------------------------------------------------------------- Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 2040362..ed5e4b6 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -211,6 +211,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FIX-OPENSUSE Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) +Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -459,6 +461,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 %patch100 -p1 %patch101 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 16e45fb..0177529 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de + +- Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) + ------------------------------------------------------------------- Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 49a96ff..e9ad872 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -210,6 +210,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FIX-OPENSUSE Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) +Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -459,6 +461,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 %patch100 -p1 %patch101 -p1 diff --git a/glibc.changes b/glibc.changes index 16e45fb..0177529 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de + +- Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) + ------------------------------------------------------------------- Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 9f8cc95..2e29d40 100644 --- a/glibc.spec +++ b/glibc.spec @@ -211,6 +211,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FIX-OPENSUSE Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) +Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -459,6 +461,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 %patch100 -p1 %patch101 -p1 diff --git a/i686-no-sse42-strstr.patch b/i686-no-sse42-strstr.patch new file mode 100644 index 0000000..e8eab79 --- /dev/null +++ b/i686-no-sse42-strstr.patch @@ -0,0 +1,120 @@ +Index: glibc-2.18/sysdeps/i386/i686/multiarch/Makefile +=================================================================== +--- glibc-2.18.orig/sysdeps/i386/i686/multiarch/Makefile ++++ glibc-2.18/sysdeps/i386/i686/multiarch/Makefile +@@ -11,7 +11,7 @@ sysdep_routines += bzero-sse2 memset-sse + memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \ + memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \ + strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \ +- memcmp-ssse3 memcmp-sse4 strcasestr-nonascii varshift \ ++ memcmp-ssse3 memcmp-sse4 varshift \ + strlen-sse2 strlen-sse2-bsf strncpy-c strcpy-ssse3 \ + strncpy-ssse3 stpcpy-ssse3 stpncpy-ssse3 strcpy-sse2 \ + strncpy-sse2 stpcpy-sse2 stpncpy-sse2 strcat-ssse3 \ +@@ -25,14 +25,11 @@ sysdep_routines += bzero-sse2 memset-sse + strncase_l-c strncase-c strncase_l-ssse3 \ + strcasecmp_l-sse4 strncase_l-sse4 + ifeq (yes,$(config-cflags-sse4)) +-sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c ++sysdep_routines += strcspn-c strpbrk-c strspn-c + CFLAGS-varshift.c += -msse4 + CFLAGS-strcspn-c.c += -msse4 + CFLAGS-strpbrk-c.c += -msse4 + CFLAGS-strspn-c.c += -msse4 +-CFLAGS-strstr.c += -msse4 +-CFLAGS-strcasestr.c += -msse4 +-CFLAGS-strcasestr-nonascii.c += -msse4 + endif + endif + +Index: glibc-2.18/sysdeps/i386/i686/multiarch/ifunc-impl-list.c +=================================================================== +--- glibc-2.18.orig/sysdeps/i386/i686/multiarch/ifunc-impl-list.c ++++ glibc-2.18/sysdeps/i386/i686/multiarch/ifunc-impl-list.c +@@ -141,12 +141,6 @@ __libc_ifunc_impl_list (const char *name + IFUNC_IMPL_ADD (array, i, strcasecmp_l, 1, + __strcasecmp_l_ia32)) + +- /* Support sysdeps/i386/i686/multiarch/strcasestr.c. */ +- IFUNC_IMPL (i, name, strcasestr, +- IFUNC_IMPL_ADD (array, i, strcasestr, HAS_SSE4_2, +- __strcasestr_sse42) +- IFUNC_IMPL_ADD (array, i, strcasestr, 1, __strcasestr_ia32)) +- + /* Support sysdeps/i386/i686/multiarch/strcat.S. */ + IFUNC_IMPL (i, name, strcat, + IFUNC_IMPL_ADD (array, i, strcat, HAS_SSSE3, __strcat_ssse3) +@@ -234,11 +228,6 @@ __libc_ifunc_impl_list (const char *name + IFUNC_IMPL_ADD (array, i, strspn, HAS_SSE4_2, __strspn_sse42) + IFUNC_IMPL_ADD (array, i, strspn, 1, __strspn_ia32)) + +- /* Support sysdeps/i386/i686/multiarch/strstr-c.c. */ +- IFUNC_IMPL (i, name, strstr, +- IFUNC_IMPL_ADD (array, i, strstr, HAS_SSE4_2, __strstr_sse42) +- IFUNC_IMPL_ADD (array, i, strstr, 1, __strstr_ia32)) +- + /* Support sysdeps/i386/i686/multiarch/wcschr.S. */ + IFUNC_IMPL (i, name, wcschr, + IFUNC_IMPL_ADD (array, i, wcschr, HAS_SSE2, __wcschr_sse2) +Index: glibc-2.18/sysdeps/i386/i686/multiarch/strcasestr-c.c +=================================================================== +--- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strcasestr-c.c ++++ /dev/null +@@ -1,4 +0,0 @@ +-/* Multiple versions of strcasestr +- All versions must be listed in ifunc-impl-list.c. */ +-#define __strcasestr_sse2 __strcasestr_ia32 +-#include +Index: glibc-2.18/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c +=================================================================== +--- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#include +-#include +Index: glibc-2.18/sysdeps/i386/i686/multiarch/strcasestr.c +=================================================================== +--- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strcasestr.c ++++ /dev/null +@@ -1 +0,0 @@ +-#include +Index: glibc-2.18/sysdeps/i386/i686/multiarch/strstr-c.c +=================================================================== +--- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strstr-c.c ++++ /dev/null +@@ -1,29 +0,0 @@ +-/* Multiple versions of strstr +- All versions must be listed in ifunc-impl-list.c. */ +- +-#include "init-arch.h" +- +-#define STRSTR __strstr_ia32 +-#if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN +-#undef libc_hidden_builtin_def +-#define libc_hidden_builtin_def(name) \ +- __hidden_ver1 (__strstr_ia32, __GI_strstr, __strstr_ia32); +-#endif +- +-/* Redefine strstr so that the compiler won't complain about the type +- mismatch with the IFUNC selector in strong_alias, below. */ +-#undef strstr +-#define strstr __redirect_strstr +- +-#include "string/strstr.c" +- +-extern __typeof (__redirect_strstr) __strstr_sse42 attribute_hidden; +-extern __typeof (__redirect_strstr) __strstr_ia32 attribute_hidden; +- +-/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle +- ifunc symbol properly. */ +-extern __typeof (__redirect_strstr) __libc_strstr; +-libc_ifunc (__libc_strstr, HAS_SSE4_2 ? __strstr_sse42 : __strstr_ia32) +- +-#undef strstr +-strong_alias (__libc_strstr, strstr) +Index: glibc-2.18/sysdeps/i386/i686/multiarch/strstr.c +=================================================================== +--- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strstr.c ++++ /dev/null +@@ -1 +0,0 @@ +-#include From aceb11f270212fef5dc12a9d88cff1df04993d8d036f9b3905218965240d5166 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 31 Oct 2013 15:02:57 +0000 Subject: [PATCH 152/204] Accepting request 205248 from Base:System - getaddrinfo-overflow.patch: Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458, bnc#847227) (forwarded request 205246 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/205248 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=160 --- getaddrinfo-overflow.patch | 44 ++++++++++++++++++++++++++++++++++++++ glibc-testsuite.changes | 6 ++++++ glibc-testsuite.spec | 3 +++ glibc-utils.changes | 6 ++++++ glibc-utils.spec | 3 +++ glibc.changes | 6 ++++++ glibc.spec | 3 +++ 7 files changed, 71 insertions(+) create mode 100644 getaddrinfo-overflow.patch diff --git a/getaddrinfo-overflow.patch b/getaddrinfo-overflow.patch new file mode 100644 index 0000000..6071c89 --- /dev/null +++ b/getaddrinfo-overflow.patch @@ -0,0 +1,44 @@ +2013-10-25 Siddhesh Poyarekar + + [BZ #16072] + * sysdeps/posix/getaddrinfo.c (gethosts): Allocate tmpbuf on + heap for large requests. + +Index: glibc-2.18/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.18.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.18/sysdeps/posix/getaddrinfo.c +@@ -197,7 +197,22 @@ gaih_inet_serv (const char *servicename, + &rc, &herrno, NULL, &localcanon)); \ + if (rc != ERANGE || herrno != NETDB_INTERNAL) \ + break; \ +- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen); \ ++ if (!malloc_tmpbuf && __libc_use_alloca (alloca_used + 2 * tmpbuflen)) \ ++ tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, 2 * tmpbuflen, \ ++ alloca_used); \ ++ else \ ++ { \ ++ char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL, \ ++ 2 * tmpbuflen); \ ++ if (newp == NULL) \ ++ { \ ++ result = -EAI_MEMORY; \ ++ goto free_and_return; \ ++ } \ ++ tmpbuf = newp; \ ++ malloc_tmpbuf = true; \ ++ tmpbuflen = 2 * tmpbuflen; \ ++ } \ + } \ + if (status == NSS_STATUS_SUCCESS && rc == 0) \ + h = &th; \ +@@ -209,7 +224,8 @@ gaih_inet_serv (const char *servicename, + { \ + __set_h_errno (herrno); \ + _res.options |= old_res_options & RES_USE_INET6; \ +- return -EAI_SYSTEM; \ ++ result = -EAI_SYSTEM; \ ++ goto free_and_return; \ + } \ + if (herrno == TRY_AGAIN) \ + no_data = EAI_AGAIN; \ diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 0177529..92f4496 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de + +- getaddrinfo-overflow.patch: Fix stack overflow due to large AF_INET6 + requests (CVE-2013-4458, bnc#847227) + ------------------------------------------------------------------- Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index ed5e4b6..d8a0edd 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -250,6 +250,8 @@ Patch1000: fcntl-o-tmpfile.patch Patch1001: malloc-overflows.patch # PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o Patch1002: m68k-Scrt1.patch +# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458) +Patch1003: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval @@ -478,6 +480,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 0177529..92f4496 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de + +- getaddrinfo-overflow.patch: Fix stack overflow due to large AF_INET6 + requests (CVE-2013-4458, bnc#847227) + ------------------------------------------------------------------- Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index e9ad872..a92d045 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -249,6 +249,8 @@ Patch1000: fcntl-o-tmpfile.patch Patch1001: malloc-overflows.patch # PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o Patch1002: m68k-Scrt1.patch +# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458) +Patch1003: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval @@ -478,6 +480,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 diff --git a/glibc.changes b/glibc.changes index 0177529..92f4496 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de + +- getaddrinfo-overflow.patch: Fix stack overflow due to large AF_INET6 + requests (CVE-2013-4458, bnc#847227) + ------------------------------------------------------------------- Mon Oct 21 12:14:38 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 2e29d40..dfe8bb6 100644 --- a/glibc.spec +++ b/glibc.spec @@ -250,6 +250,8 @@ Patch1000: fcntl-o-tmpfile.patch Patch1001: malloc-overflows.patch # PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o Patch1002: m68k-Scrt1.patch +# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458) +Patch1003: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval @@ -478,6 +480,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 # %patch2008 -p1 From 0081efc5dac12798c5720c2e3cce7cd839ceb5aa13ad49c2122b3582909703cb Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 29 Nov 2013 15:22:35 +0000 Subject: [PATCH 153/204] Accepting request 208666 from Base:System - Update to glibc 2.18.90 bd12ab55c05e: * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW, pap_CW, quz_PE, the_NP. * Substantially revised locales: gd_GB, ht_HT * The LC_ADDRESS field was updated to support country_car for almost all supported locales. * ISO 1427 definitions were updated. * ISO 3166 definitions were updated. * The localedef utility now supports --big-endian and --little-endian command-line options to generate locales for a different system from that for which the C library was built. * Binary locale files now only depend on the endianness of the system for which they are generated and not on other properties of that system. * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh, cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue). * SystemTap probes for malloc have been introduced. * Support for powerpc64le has been added. * The soft-float powerpc port now supports e500 processors. - Remove upstreamed patches: cbrtl-ldbl-96.patch fcntl-o-tmpfile.patch getaddrinfo-overflow.patch glibc-2.18.tar.xz glibc-ld-profile.patch glibc-nscd-hconf.diff i686-strcasecmp-fallback.patch m68k-Scrt1.patch malloc-overflows.patch nonascii-case.patch nss-database.patch (forwarded request 208665 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/208666 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=161 --- cbrtl-ldbl-96.patch | 17 - fcntl-o-tmpfile.patch | 58 -- getaddrinfo-ipv6-sanity.diff | 14 +- getaddrinfo-overflow.patch | 44 -- glibc-2.18.90-bd12ab55c05e.tar.xz | 3 + glibc-2.18.tar.xz | 3 - glibc-2.3.2.no_archive.diff | 15 +- glibc-2.3.locales.diff.bz2 | 4 +- glibc-2.4.90-no_NO.diff | 18 +- glibc-2.4.90-revert-only-euro.diff | 95 --- glibc-ld-profile.patch | 79 -- glibc-nscd-hconf.diff | 38 - glibc-testsuite.changes | 39 + glibc-testsuite.spec | 54 +- glibc-utils.changes | 39 + glibc-utils.spec | 54 +- glibc.changes | 39 + glibc.spec | 54 +- i686-no-sse42-strstr.patch | 2 +- i686-strcasecmp-fallback.patch | 74 -- m68k-Scrt1.patch | 50 -- malloc-overflows.patch | 60 -- nonascii-case.patch | 148 ---- nss-database.patch | 112 --- printf-overrun.patch | 179 ----- readdir_r-overflow.patch | 297 -------- strcoll-overflow.patch | 1106 ---------------------------- 27 files changed, 161 insertions(+), 2534 deletions(-) delete mode 100644 cbrtl-ldbl-96.patch delete mode 100644 fcntl-o-tmpfile.patch delete mode 100644 getaddrinfo-overflow.patch create mode 100644 glibc-2.18.90-bd12ab55c05e.tar.xz delete mode 100644 glibc-2.18.tar.xz delete mode 100644 glibc-2.4.90-revert-only-euro.diff delete mode 100644 glibc-ld-profile.patch delete mode 100644 glibc-nscd-hconf.diff delete mode 100644 i686-strcasecmp-fallback.patch delete mode 100644 m68k-Scrt1.patch delete mode 100644 malloc-overflows.patch delete mode 100644 nonascii-case.patch delete mode 100644 nss-database.patch delete mode 100644 printf-overrun.patch delete mode 100644 readdir_r-overflow.patch delete mode 100644 strcoll-overflow.patch diff --git a/cbrtl-ldbl-96.patch b/cbrtl-ldbl-96.patch deleted file mode 100644 index 50d26b3..0000000 --- a/cbrtl-ldbl-96.patch +++ /dev/null @@ -1,17 +0,0 @@ - [BZ #15749] - * sysdeps/ieee754/ldbl-96/s_cbrtl.c (__cbrtl): Use fabsl instead - of fabs. - -Index: glibc-2.17.90/sysdeps/ieee754/ldbl-96/s_cbrtl.c -=================================================================== ---- glibc-2.17.90.orig/sysdeps/ieee754/ldbl-96/s_cbrtl.c -+++ glibc-2.17.90/sysdeps/ieee754/ldbl-96/s_cbrtl.c -@@ -45,7 +45,7 @@ __cbrtl (long double x) - int xe; - - /* Reduce X. XM now is an range 1.0 to 0.5. */ -- xm = __frexpl (fabs (x), &xe); -+ xm = __frexpl (fabsl (x), &xe); - - /* If X is not finite or is null return it (with raising exceptions - if necessary. diff --git a/fcntl-o-tmpfile.patch b/fcntl-o-tmpfile.patch deleted file mode 100644 index 493f4fa..0000000 --- a/fcntl-o-tmpfile.patch +++ /dev/null @@ -1,58 +0,0 @@ -Index: glibc-2.18/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h -=================================================================== ---- glibc-2.18.orig/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h -+++ glibc-2.18/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h -@@ -36,6 +36,7 @@ - #define __O_DIRECT 02000000 /* Direct disk access. */ - #define __O_NOATIME 04000000 /* Do not set atime. */ - #define __O_PATH 040000000 /* Resolve pathname but do not open file. */ -+#define __O_TMPFILE 0100100000 /* Atomically create nameless file. */ - - /* Not necessary, files are always with 64bit off_t. */ - #define __O_LARGEFILE 0 -Index: glibc-2.18/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h -=================================================================== ---- glibc-2.18.orig/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h -+++ glibc-2.18/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h -@@ -37,6 +37,7 @@ - #define __O_CLOEXEC 010000000 /* Set close_on_exec. */ - #define __O_NOATIME 004000000 /* Do not set atime. */ - #define __O_PATH 020000000 -+#define __O_TMPFILE 040010000 /* Atomically create nameless file. */ - - #define __O_LARGEFILE 00004000 - -Index: glibc-2.18/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -=================================================================== ---- glibc-2.18.orig/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -+++ glibc-2.18/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -@@ -96,6 +96,9 @@ - #ifndef __O_DSYNC - # define __O_DSYNC 010000 - #endif -+#ifndef __O_TMPFILE -+# define __O_TMPFILE 020200000 -+#endif - - #ifndef F_GETLK - # ifndef __USE_FILE_OFFSET64 -@@ -128,6 +131,7 @@ - # define O_DIRECT __O_DIRECT /* Direct disk access. */ - # define O_NOATIME __O_NOATIME /* Do not set atime. */ - # define O_PATH __O_PATH /* Resolve pathname but do not open file. */ -+# define O_TMPFILE __O_TMPFILE /* Atomically create nameless file. */ - #endif - - /* For now, Linux has no separate synchronicitiy options for read -Index: glibc-2.18/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h -=================================================================== ---- glibc-2.18.orig/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h -+++ glibc-2.18/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h -@@ -39,6 +39,7 @@ - #define __O_DIRECT 0x100000 /* direct disk access hint */ - #define __O_NOATIME 0x200000 /* Do not set atime. */ - #define __O_PATH 0x1000000 /* Resolve pathname but do not open file. */ -+#define __O_TMPFILE 0x2010000 /* Atomically create nameless file. */ - - #if __WORDSIZE == 64 - # define __O_LARGEFILE 0 diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index 1f792b1..7c0949e 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -1,8 +1,8 @@ -Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c +Index: glibc-2.18.90/sysdeps/posix/getaddrinfo.c =================================================================== ---- glibc-2.17.90.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.17.90/sysdeps/posix/getaddrinfo.c -@@ -270,7 +270,7 @@ extern service_user *__nss_hosts_databas +--- glibc-2.18.90.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.18.90/sysdeps/posix/getaddrinfo.c +@@ -286,7 +286,7 @@ extern service_user *__nss_hosts_databas static int gaih_inet (const char *name, const struct gaih_service *service, const struct addrinfo *req, struct addrinfo **pai, @@ -11,7 +11,7 @@ Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -840,7 +840,10 @@ gaih_inet (const char *name, const struc +@@ -855,7 +855,10 @@ gaih_inet (const char *name, const struc if (req->ai_family == PF_UNSPEC) fct4 = __nss_lookup_function (nip, "gethostbyname4_r"); @@ -23,7 +23,7 @@ Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c { int herrno; -@@ -943,7 +946,7 @@ gaih_inet (const char *name, const struc +@@ -958,7 +961,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -32,7 +32,7 @@ Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2471,7 +2474,11 @@ getaddrinfo (const char *name, const cha +@@ -2418,7 +2421,11 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/getaddrinfo-overflow.patch b/getaddrinfo-overflow.patch deleted file mode 100644 index 6071c89..0000000 --- a/getaddrinfo-overflow.patch +++ /dev/null @@ -1,44 +0,0 @@ -2013-10-25 Siddhesh Poyarekar - - [BZ #16072] - * sysdeps/posix/getaddrinfo.c (gethosts): Allocate tmpbuf on - heap for large requests. - -Index: glibc-2.18/sysdeps/posix/getaddrinfo.c -=================================================================== ---- glibc-2.18.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.18/sysdeps/posix/getaddrinfo.c -@@ -197,7 +197,22 @@ gaih_inet_serv (const char *servicename, - &rc, &herrno, NULL, &localcanon)); \ - if (rc != ERANGE || herrno != NETDB_INTERNAL) \ - break; \ -- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen); \ -+ if (!malloc_tmpbuf && __libc_use_alloca (alloca_used + 2 * tmpbuflen)) \ -+ tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, 2 * tmpbuflen, \ -+ alloca_used); \ -+ else \ -+ { \ -+ char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL, \ -+ 2 * tmpbuflen); \ -+ if (newp == NULL) \ -+ { \ -+ result = -EAI_MEMORY; \ -+ goto free_and_return; \ -+ } \ -+ tmpbuf = newp; \ -+ malloc_tmpbuf = true; \ -+ tmpbuflen = 2 * tmpbuflen; \ -+ } \ - } \ - if (status == NSS_STATUS_SUCCESS && rc == 0) \ - h = &th; \ -@@ -209,7 +224,8 @@ gaih_inet_serv (const char *servicename, - { \ - __set_h_errno (herrno); \ - _res.options |= old_res_options & RES_USE_INET6; \ -- return -EAI_SYSTEM; \ -+ result = -EAI_SYSTEM; \ -+ goto free_and_return; \ - } \ - if (herrno == TRY_AGAIN) \ - no_data = EAI_AGAIN; \ diff --git a/glibc-2.18.90-bd12ab55c05e.tar.xz b/glibc-2.18.90-bd12ab55c05e.tar.xz new file mode 100644 index 0000000..09bd2db --- /dev/null +++ b/glibc-2.18.90-bd12ab55c05e.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27ce32970ab8633d7a9cf1b11d3787c206b78e19732a53e2f309ba14fedeb561 +size 11868220 diff --git a/glibc-2.18.tar.xz b/glibc-2.18.tar.xz deleted file mode 100644 index 38b8bfb..0000000 --- a/glibc-2.18.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cb4e1e381928f1e5e55e71ab1ba8e0ea7ede75ff9709770435bfd018ea257a3 -size 11150148 diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff index c9161e8..ed68c3b 100644 --- a/glibc-2.3.2.no_archive.diff +++ b/glibc-2.3.2.no_archive.diff @@ -1,12 +1,11 @@ -------------------------------------------------------------------- Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - Make --no-archive default for localedef -Index: glibc-2.17.90/locale/programs/localedef.c +Index: glibc-2.18.90/locale/programs/localedef.c =================================================================== ---- glibc-2.17.90.orig/locale/programs/localedef.c -+++ glibc-2.17.90/locale/programs/localedef.c +--- glibc-2.18.90.orig/locale/programs/localedef.c ++++ glibc-2.18.90/locale/programs/localedef.c @@ -81,7 +81,7 @@ const char *alias_file; static struct localedef_t *locales; @@ -21,10 +20,10 @@ Index: glibc-2.17.90/locale/programs/localedef.c #define OPT_DELETE_FROM_ARCHIVE 308 #define OPT_LIST_ARCHIVE 309 +#define OPT_ARCHIVE 310 + #define OPT_LITTLE_ENDIAN 400 + #define OPT_BIG_ENDIAN 401 - /* Definitions of arguments for argp functions. */ - static const struct argp_option options[] = -@@ -134,6 +135,8 @@ static const struct argp_option options[ +@@ -136,6 +137,8 @@ static const struct argp_option options[ N_("Suppress warnings and information messages") }, { "verbose", 'v', NULL, 0, N_("Print more messages") }, { NULL, 0, NULL, 0, N_("Archive control:") }, @@ -33,7 +32,7 @@ Index: glibc-2.17.90/locale/programs/localedef.c { "no-archive", OPT_NO_ARCHIVE, NULL, 0, N_("Don't add new data to archive") }, { "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0, -@@ -311,6 +314,9 @@ parse_opt (int key, char *arg, struct ar +@@ -317,6 +320,9 @@ parse_opt (int key, char *arg, struct ar case OPT_PREFIX: output_prefix = arg; break; diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 0385705..232b892 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:10f1db566a96ef0e012c79fc18844593f56424a1e5a7d1b3f6521b2fdc1753e9 -size 329284 +oid sha256:d2311caa4855d8269d8fae0c3aab97ce9f1a30abea4b40955471adf7b5413b93 +size 329303 diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff index 7da8b5d..64884ea 100644 --- a/glibc-2.4.90-no_NO.diff +++ b/glibc-2.4.90-no_NO.diff @@ -1,7 +1,7 @@ -Index: glibc-2.17.90/intl/locale.alias +Index: glibc-2.18.90/intl/locale.alias =================================================================== ---- glibc-2.17.90.orig/intl/locale.alias -+++ glibc-2.17.90/intl/locale.alias +--- glibc-2.18.90.orig/intl/locale.alias ++++ glibc-2.18.90/intl/locale.alias @@ -56,8 +56,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR @@ -11,11 +11,11 @@ Index: glibc-2.17.90/intl/locale.alias norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 -Index: glibc-2.17.90/localedata/SUPPORTED +Index: glibc-2.18.90/localedata/SUPPORTED =================================================================== ---- glibc-2.17.90.orig/localedata/SUPPORTED -+++ glibc-2.17.90/localedata/SUPPORTED -@@ -324,6 +324,8 @@ nl_NL/ISO-8859-1 \ +--- glibc-2.18.90.orig/localedata/SUPPORTED ++++ glibc-2.18.90/localedata/SUPPORTED +@@ -331,6 +331,8 @@ nl_NL/ISO-8859-1 \ nl_NL@euro/ISO-8859-15 \ nn_NO.UTF-8/UTF-8 \ nn_NO/ISO-8859-1 \ @@ -24,10 +24,10 @@ Index: glibc-2.17.90/localedata/SUPPORTED nr_ZA/UTF-8 \ nso_ZA/UTF-8 \ oc_FR.UTF-8/UTF-8 \ -Index: glibc-2.17.90/localedata/locales/no_NO +Index: glibc-2.18.90/localedata/locales/no_NO =================================================================== --- /dev/null -+++ glibc-2.17.90/localedata/locales/no_NO ++++ glibc-2.18.90/localedata/locales/no_NO @@ -0,0 +1,69 @@ +escape_char / +comment_char % diff --git a/glibc-2.4.90-revert-only-euro.diff b/glibc-2.4.90-revert-only-euro.diff deleted file mode 100644 index f5e515f..0000000 --- a/glibc-2.4.90-revert-only-euro.diff +++ /dev/null @@ -1,95 +0,0 @@ -Index: glibc-2.17.90/locale/iso-4217.def -=================================================================== ---- glibc-2.17.90.orig/locale/iso-4217.def -+++ glibc-2.17.90/locale/iso-4217.def -@@ -8,6 +8,7 @@ - * - * !!! The list has to be sorted !!! - */ -+DEFINE_INT_CURR("ADP") /* Andorran Peseta -> EUR */ - DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */ - DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */ - DEFINE_INT_CURR("ALL") /* Albanian Lek */ -@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD") /* Armenia Dram - DEFINE_INT_CURR("ANG") /* Netherlands Antilles */ - DEFINE_INT_CURR("AOA") /* Angolan Kwanza */ - DEFINE_INT_CURR("ARS") /* Argentine Peso */ -+DEFINE_INT_CURR("ATS") /* Austrian Schilling -> EUR */ - DEFINE_INT_CURR("AUD") /* Australian Dollar */ - DEFINE_INT_CURR("AWG") /* Aruba Guilder */ - DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */ - DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */ - DEFINE_INT_CURR("BBD") /* Barbados Dollar */ - DEFINE_INT_CURR("BDT") /* Bangladesh Taka */ -+DEFINE_INT_CURR("BEF") /* Belgian Franc -> EUR */ - DEFINE_INT_CURR("BGN") /* Bulgarian Lev */ - DEFINE_INT_CURR("BHD") /* Bahraini Dinar */ - DEFINE_INT_CURR("BIF") /* Burundi Franc */ -@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP") /* Cuban Peso * - DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */ - DEFINE_INT_CURR("CYP") /* Cypriot Pound */ - DEFINE_INT_CURR("CZK") /* Czech Koruna */ -+DEFINE_INT_CURR("DEM") /* German Mark -> EUR */ - DEFINE_INT_CURR("DJF") /* Djibouti Franc */ - DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */ - DEFINE_INT_CURR("DOP") /* Dominican Republic */ -@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD") /* Algerian Dina - DEFINE_INT_CURR("EEK") /* Estonian Kroon */ - DEFINE_INT_CURR("EGP") /* Egyptian Pound */ - DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */ -+DEFINE_INT_CURR("ESP") /* Spanish Peseta -> EUR */ - DEFINE_INT_CURR("ETB") /* Ethiopian Birr */ - DEFINE_INT_CURR("EUR") /* European Union Euro */ -+DEFINE_INT_CURR("FIM") /* Finnish Markka -> EUR */ - DEFINE_INT_CURR("FJD") /* Fiji Dollar */ - DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */ -+DEFINE_INT_CURR("FRF") /* French Franc -> EUR */ - DEFINE_INT_CURR("GBP") /* British Pound */ - DEFINE_INT_CURR("GEL") /* Georgia Lari */ - DEFINE_INT_CURR("GHC") /* Ghana Cedi */ - DEFINE_INT_CURR("GIP") /* Gibraltar Pound */ - DEFINE_INT_CURR("GMD") /* Gambian Dalasi */ - DEFINE_INT_CURR("GNF") /* Guinea Franc */ -+DEFINE_INT_CURR("GRD") /* Greek Drachma -> EUR */ - DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */ - DEFINE_INT_CURR("GYD") /* Guyana Dollar */ - DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */ -@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK") /* Croatia Kuna - DEFINE_INT_CURR("HTG") /* Haiti Gourde */ - DEFINE_INT_CURR("HUF") /* Hungarian Forint */ - DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */ -+DEFINE_INT_CURR("IEP") /* Irish Pound -> EUR */ - DEFINE_INT_CURR("ILS") /* Israeli Shekel */ - DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */ - DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */ - DEFINE_INT_CURR("IQD") /* Iraqi Dinar */ - DEFINE_INT_CURR("IRR") /* Iranian Rial */ - DEFINE_INT_CURR("ISK") /* Iceland Krona */ -+DEFINE_INT_CURR("ITL") /* Italian Lira -> EUR */ - DEFINE_INT_CURR("JEP") /* Jersey Pound */ - DEFINE_INT_CURR("JMD") /* Jamaican Dollar */ - DEFINE_INT_CURR("JOD") /* Jordanian Dinar */ -@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR") /* Sri Lankan Ru - DEFINE_INT_CURR("LRD") /* Liberian Dollar */ - DEFINE_INT_CURR("LSL") /* Lesotho Maloti */ - DEFINE_INT_CURR("LTL") /* Lithuanian Litas */ -+DEFINE_INT_CURR("LUF") /* Luxembourg Franc -> EUR */ - DEFINE_INT_CURR("LVL") /* Latvia Lat */ - DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */ - DEFINE_INT_CURR("MAD") /* Moroccan Dirham */ -@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM") /* Mozambique Me - DEFINE_INT_CURR("NAD") /* Namibia Dollar */ - DEFINE_INT_CURR("NGN") /* Nigeria Naira */ - DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */ -+DEFINE_INT_CURR("NLG") /* Netherlands Guilder -> EUR */ - DEFINE_INT_CURR("NOK") /* Norwegian Krone */ - DEFINE_INT_CURR("NPR") /* Nepalese Rupee */ - DEFINE_INT_CURR("NZD") /* New Zealand Dollar */ -@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK") /* Papau New Gui - DEFINE_INT_CURR("PHP") /* Philippines Peso */ - DEFINE_INT_CURR("PKR") /* Pakistan Rupee */ - DEFINE_INT_CURR("PLN") /* Polish Zloty */ -+DEFINE_INT_CURR("PTE") /* Portugese Escudo -> EUR */ - DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ - DEFINE_INT_CURR("QAR") /* Qatar Rial */ - DEFINE_INT_CURR("ROL") /* Romanian Leu */ diff --git a/glibc-ld-profile.patch b/glibc-ld-profile.patch deleted file mode 100644 index 65247874..0000000 --- a/glibc-ld-profile.patch +++ /dev/null @@ -1,79 +0,0 @@ -glibc bug #13818 - -2012-03-07 Jeff Law - - * elf/dl-reloc.c (_dl_relocate_object): Move code to allocate - l_reloc_result prior to calling ELF_DYNAMIC_RELOCATE. - -diff -rup a/elf/dl-reloc.c b/elf/dl-reloc.c ---- a/elf/dl-reloc.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/dl-reloc.c 2012-03-06 15:41:56.486242640 -0700 -@@ -238,32 +238,9 @@ _dl_relocate_object (struct link_map *l, - /* String table object symbols. */ - const char *strtab = (const void *) D_PTR (l, l_info[DT_STRTAB]); - -- /* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */ --#define RESOLVE_MAP(ref, version, r_type) \ -- (ELFW(ST_BIND) ((*ref)->st_info) != STB_LOCAL \ -- ? ((__builtin_expect ((*ref) == l->l_lookup_cache.sym, 0) \ -- && elf_machine_type_class (r_type) == l->l_lookup_cache.type_class) \ -- ? (bump_num_cache_relocations (), \ -- (*ref) = l->l_lookup_cache.ret, \ -- l->l_lookup_cache.value) \ -- : ({ lookup_t _lr; \ -- int _tc = elf_machine_type_class (r_type); \ -- l->l_lookup_cache.type_class = _tc; \ -- l->l_lookup_cache.sym = (*ref); \ -- const struct r_found_version *v = NULL; \ -- if ((version) != NULL && (version)->hash != 0) \ -- v = (version); \ -- _lr = _dl_lookup_symbol_x (strtab + (*ref)->st_name, l, (ref), \ -- scope, v, _tc, \ -- DL_LOOKUP_ADD_DEPENDENCY, NULL); \ -- l->l_lookup_cache.ret = (*ref); \ -- l->l_lookup_cache.value = _lr; })) \ -- : l) -- --#include "dynamic-link.h" -- -- ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling, skip_ifunc); -- -+ /* ELF_DYNAMIC_RELOCATE may need to examine l_reloc_result -+ when handling MACHINE_IRELATIVE relocs. So we must -+ allocate l_reloc_result prior to calling ELF_DYNAMIC_RELOCATE. */ - #ifndef PROF - if (__builtin_expect (consider_profiling, 0)) - { -@@ -290,6 +267,32 @@ _dl_relocate_object (struct link_map *l, - } - } - #endif -+ -+ /* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */ -+#define RESOLVE_MAP(ref, version, r_type) \ -+ (ELFW(ST_BIND) ((*ref)->st_info) != STB_LOCAL \ -+ ? ((__builtin_expect ((*ref) == l->l_lookup_cache.sym, 0) \ -+ && elf_machine_type_class (r_type) == l->l_lookup_cache.type_class) \ -+ ? (bump_num_cache_relocations (), \ -+ (*ref) = l->l_lookup_cache.ret, \ -+ l->l_lookup_cache.value) \ -+ : ({ lookup_t _lr; \ -+ int _tc = elf_machine_type_class (r_type); \ -+ l->l_lookup_cache.type_class = _tc; \ -+ l->l_lookup_cache.sym = (*ref); \ -+ const struct r_found_version *v = NULL; \ -+ if ((version) != NULL && (version)->hash != 0) \ -+ v = (version); \ -+ _lr = _dl_lookup_symbol_x (strtab + (*ref)->st_name, l, (ref), \ -+ scope, v, _tc, \ -+ DL_LOOKUP_ADD_DEPENDENCY, NULL); \ -+ l->l_lookup_cache.ret = (*ref); \ -+ l->l_lookup_cache.value = _lr; })) \ -+ : l) -+ -+#include "dynamic-link.h" -+ -+ ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling, skip_ifunc); - } - - /* Mark the object so we know this work has been done. */ diff --git a/glibc-nscd-hconf.diff b/glibc-nscd-hconf.diff deleted file mode 100644 index 3d3807b..0000000 --- a/glibc-nscd-hconf.diff +++ /dev/null @@ -1,38 +0,0 @@ -See: -http://sourceware.org/bugzilla/show_bug.cgi?id=11928 - -Index: glibc-2.17.90/nscd/aicache.c -=================================================================== ---- glibc-2.17.90.orig/nscd/aicache.c -+++ glibc-2.17.90/nscd/aicache.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #include "dbg_log.h" - #include "nscd.h" -@@ -102,6 +103,8 @@ addhstaiX (struct database_dyn *db, int - - if (__res_maybe_init (&_res, 0) == -1) - no_more = 1; -+ if (!_res_hconf.initialized) -+ _res_hconf_init (); - - /* If we are looking for both IPv4 and IPv6 address we don't want - the lookup functions to automatically promote IPv4 addresses to -Index: glibc-2.17.90/resolv/res_hconf.c -=================================================================== ---- glibc-2.17.90.orig/resolv/res_hconf.c -+++ glibc-2.17.90/resolv/res_hconf.c -@@ -81,7 +81,9 @@ static const struct cmd - }; - - /* Structure containing the state. */ -+#ifndef NOT_IN_libc - struct hconf _res_hconf; -+#endif - - /* Skip white space. */ - static const char * diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 92f4496..6975fb2 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 bd12ab55c05e: + * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW, + pap_CW, quz_PE, the_NP. + * Substantially revised locales: gd_GB, ht_HT + * The LC_ADDRESS field was updated to support country_car for almost all + supported locales. + * ISO 1427 definitions were updated. + * ISO 3166 definitions were updated. + * The localedef utility now supports --big-endian and --little-endian + command-line options to generate locales for a different system from that + for which the C library was built. + * Binary locale files now only depend on the endianness of the system for + which they are generated and not on other properties of that system. + * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh, + cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue). + * SystemTap probes for malloc have been introduced. + * Support for powerpc64le has been added. + * The soft-float powerpc port now supports e500 processors. +- Remove upstreamed patches: + cbrtl-ldbl-96.patch + fcntl-o-tmpfile.patch + getaddrinfo-overflow.patch + glibc-2.18.tar.xz + glibc-ld-profile.patch + glibc-nscd-hconf.diff + i686-strcasecmp-fallback.patch + m68k-Scrt1.patch + malloc-overflows.patch + nonascii-case.patch + nss-database.patch + printf-overrun.patch + readdir_r-overflow.patch + strcoll-overflow.patch +- Remove obsolete patches: + glibc-2.4.90-revert-only-euro.diff + ------------------------------------------------------------------- Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index d8a0edd..360de02 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -106,14 +106,14 @@ BuildRequires: gd-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif -Version: 2.18 +Version: 2.18.90 Release: 0 -%define glibc_major_version 2.18 -%define git_id %{nil} +%define glibc_major_version 2.18.90 +%define git_id bd12ab55c05e Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -#Source: glibc-%{version}-%{git_id}.tar.xz -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +Source: glibc-%{version}-%{git_id}.tar.xz +#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -217,8 +217,6 @@ Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales Patch100: glibc-2.3.locales.diff.bz2 -# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) -Patch101: glibc-2.4.90-revert-only-euro.diff # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -236,44 +234,18 @@ Patch301: glibc-2.2-sunrpc.diff Patch302: getaddrinfo-ipv6-sanity.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff -# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 -Patch305: glibc-nscd-hconf.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Add O_TMPFILE to -Patch1000: fcntl-o-tmpfile.patch -# PATCH-FIX-UPSTREAM Integer overflows in malloc -Patch1001: malloc-overflows.patch -# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o -Patch1002: m68k-Scrt1.patch -# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458) -Patch1003: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de -Patch2008: glibc-ld-profile.patch -# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config -Patch2013: nss-database.patch -# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] -Patch2015: printf-overrun.patch -# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 -Patch2017: nonascii-case.patch -# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp -Patch2018: i686-strcasecmp-fallback.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch -# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96 -Patch2020: cbrtl-ldbl-96.patch -# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412) -Patch2021: strcoll-overflow.patch -# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237) -Patch2022: readdir_r-overflow.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -466,7 +438,6 @@ rm nscd/s-stamp %patch20 -p1 %patch100 -p1 -%patch101 -p1 %patch102 -p1 %patch103 -p1 @@ -474,24 +445,9 @@ rm nscd/s-stamp %patch301 -p1 %patch302 -p1 %patch304 -p1 -%patch305 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 - -# XXX Disable, it breaks the testsuite, test elf/tst-audit2 -# %patch2008 -p1 -%patch2013 -p1 -%patch2015 -p1 -%patch2017 -p1 -%patch2018 -p1 %patch2019 -p1 -%patch2020 -p1 -%patch2021 -p1 -%patch2022 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 92f4496..6975fb2 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 bd12ab55c05e: + * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW, + pap_CW, quz_PE, the_NP. + * Substantially revised locales: gd_GB, ht_HT + * The LC_ADDRESS field was updated to support country_car for almost all + supported locales. + * ISO 1427 definitions were updated. + * ISO 3166 definitions were updated. + * The localedef utility now supports --big-endian and --little-endian + command-line options to generate locales for a different system from that + for which the C library was built. + * Binary locale files now only depend on the endianness of the system for + which they are generated and not on other properties of that system. + * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh, + cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue). + * SystemTap probes for malloc have been introduced. + * Support for powerpc64le has been added. + * The soft-float powerpc port now supports e500 processors. +- Remove upstreamed patches: + cbrtl-ldbl-96.patch + fcntl-o-tmpfile.patch + getaddrinfo-overflow.patch + glibc-2.18.tar.xz + glibc-ld-profile.patch + glibc-nscd-hconf.diff + i686-strcasecmp-fallback.patch + m68k-Scrt1.patch + malloc-overflows.patch + nonascii-case.patch + nss-database.patch + printf-overrun.patch + readdir_r-overflow.patch + strcoll-overflow.patch +- Remove obsolete patches: + glibc-2.4.90-revert-only-euro.diff + ------------------------------------------------------------------- Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index a92d045..4c8a61d 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -105,14 +105,14 @@ BuildRequires: gd-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif -Version: 2.18 +Version: 2.18.90 Release: 0 -%define glibc_major_version 2.18 -%define git_id %{nil} +%define glibc_major_version 2.18.90 +%define git_id bd12ab55c05e Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -#Source: glibc-%{version}-%{git_id}.tar.xz -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +Source: glibc-%{version}-%{git_id}.tar.xz +#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -216,8 +216,6 @@ Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales Patch100: glibc-2.3.locales.diff.bz2 -# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) -Patch101: glibc-2.4.90-revert-only-euro.diff # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -235,44 +233,18 @@ Patch301: glibc-2.2-sunrpc.diff Patch302: getaddrinfo-ipv6-sanity.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff -# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 -Patch305: glibc-nscd-hconf.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Add O_TMPFILE to -Patch1000: fcntl-o-tmpfile.patch -# PATCH-FIX-UPSTREAM Integer overflows in malloc -Patch1001: malloc-overflows.patch -# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o -Patch1002: m68k-Scrt1.patch -# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458) -Patch1003: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de -Patch2008: glibc-ld-profile.patch -# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config -Patch2013: nss-database.patch -# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] -Patch2015: printf-overrun.patch -# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 -Patch2017: nonascii-case.patch -# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp -Patch2018: i686-strcasecmp-fallback.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch -# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96 -Patch2020: cbrtl-ldbl-96.patch -# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412) -Patch2021: strcoll-overflow.patch -# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237) -Patch2022: readdir_r-overflow.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -466,7 +438,6 @@ rm nscd/s-stamp %patch20 -p1 %patch100 -p1 -%patch101 -p1 %patch102 -p1 %patch103 -p1 @@ -474,24 +445,9 @@ rm nscd/s-stamp %patch301 -p1 %patch302 -p1 %patch304 -p1 -%patch305 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 - -# XXX Disable, it breaks the testsuite, test elf/tst-audit2 -# %patch2008 -p1 -%patch2013 -p1 -%patch2015 -p1 -%patch2017 -p1 -%patch2018 -p1 %patch2019 -p1 -%patch2020 -p1 -%patch2021 -p1 -%patch2022 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 92f4496..6975fb2 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 bd12ab55c05e: + * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW, + pap_CW, quz_PE, the_NP. + * Substantially revised locales: gd_GB, ht_HT + * The LC_ADDRESS field was updated to support country_car for almost all + supported locales. + * ISO 1427 definitions were updated. + * ISO 3166 definitions were updated. + * The localedef utility now supports --big-endian and --little-endian + command-line options to generate locales for a different system from that + for which the C library was built. + * Binary locale files now only depend on the endianness of the system for + which they are generated and not on other properties of that system. + * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh, + cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue). + * SystemTap probes for malloc have been introduced. + * Support for powerpc64le has been added. + * The soft-float powerpc port now supports e500 processors. +- Remove upstreamed patches: + cbrtl-ldbl-96.patch + fcntl-o-tmpfile.patch + getaddrinfo-overflow.patch + glibc-2.18.tar.xz + glibc-ld-profile.patch + glibc-nscd-hconf.diff + i686-strcasecmp-fallback.patch + m68k-Scrt1.patch + malloc-overflows.patch + nonascii-case.patch + nss-database.patch + printf-overrun.patch + readdir_r-overflow.patch + strcoll-overflow.patch +- Remove obsolete patches: + glibc-2.4.90-revert-only-euro.diff + ------------------------------------------------------------------- Wed Oct 30 14:05:30 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index dfe8bb6..80843e3 100644 --- a/glibc.spec +++ b/glibc.spec @@ -106,14 +106,14 @@ BuildRequires: gd-devel # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel %define enablekernel 2.6.16 %endif -Version: 2.18 +Version: 2.18.90 Release: 0 -%define glibc_major_version 2.18 -%define git_id %{nil} +%define glibc_major_version 2.18.90 +%define git_id bd12ab55c05e Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -#Source: glibc-%{version}-%{git_id}.tar.xz -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +Source: glibc-%{version}-%{git_id}.tar.xz +#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -217,8 +217,6 @@ Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales Patch100: glibc-2.3.locales.diff.bz2 -# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) -Patch101: glibc-2.4.90-revert-only-euro.diff # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -236,44 +234,18 @@ Patch301: glibc-2.2-sunrpc.diff Patch302: getaddrinfo-ipv6-sanity.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff -# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 -Patch305: glibc-nscd-hconf.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Add O_TMPFILE to -Patch1000: fcntl-o-tmpfile.patch -# PATCH-FIX-UPSTREAM Integer overflows in malloc -Patch1001: malloc-overflows.patch -# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o -Patch1002: m68k-Scrt1.patch -# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458) -Patch1003: getaddrinfo-overflow.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de -Patch2008: glibc-ld-profile.patch -# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config -Patch2013: nss-database.patch -# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741] -Patch2015: printf-overrun.patch -# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9 -Patch2017: nonascii-case.patch -# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp -Patch2018: i686-strcasecmp-fallback.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch -# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96 -Patch2020: cbrtl-ldbl-96.patch -# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412) -Patch2021: strcoll-overflow.patch -# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237) -Patch2022: readdir_r-overflow.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -466,7 +438,6 @@ rm nscd/s-stamp %patch20 -p1 %patch100 -p1 -%patch101 -p1 %patch102 -p1 %patch103 -p1 @@ -474,24 +445,9 @@ rm nscd/s-stamp %patch301 -p1 %patch302 -p1 %patch304 -p1 -%patch305 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 - -# XXX Disable, it breaks the testsuite, test elf/tst-audit2 -# %patch2008 -p1 -%patch2013 -p1 -%patch2015 -p1 -%patch2017 -p1 -%patch2018 -p1 %patch2019 -p1 -%patch2020 -p1 -%patch2021 -p1 -%patch2022 -p1 %patch3000 diff --git a/i686-no-sse42-strstr.patch b/i686-no-sse42-strstr.patch index e8eab79..0f2441a 100644 --- a/i686-no-sse42-strstr.patch +++ b/i686-no-sse42-strstr.patch @@ -89,7 +89,7 @@ Index: glibc-2.18/sysdeps/i386/i686/multiarch/strstr-c.c -#include "init-arch.h" - -#define STRSTR __strstr_ia32 --#if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN +-#if defined SHARED && !defined NO_HIDDEN -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) \ - __hidden_ver1 (__strstr_ia32, __GI_strstr, __strstr_ia32); diff --git a/i686-strcasecmp-fallback.patch b/i686-strcasecmp-fallback.patch deleted file mode 100644 index 73e030c..0000000 --- a/i686-strcasecmp-fallback.patch +++ /dev/null @@ -1,74 +0,0 @@ - * sysdeps/i386/i686/multiarch/strcmp-sse4.S (__strcasecmp_sse4_2) - (__strncasecmp_sse4_2) [PIC]: Restore %ebx before falling through - to __strcasecmp_nonascii and __strncasecmp_nonascii. - * sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3) - (__strncasecmp_ssse3) [PIC]: Likewise. - -Index: glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-sse4.S -=================================================================== ---- glibc-2.17.90.orig/sysdeps/i386/i686/multiarch/strcmp-sse4.S -+++ glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-sse4.S -@@ -121,8 +121,14 @@ ENTRY (__strcasecmp_sse4_2) - movl (%eax), %eax - # endif - testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) -+# ifdef PIC -+ je L(ascii) -+ POP (%ebx) -+ jmp __strcasecmp_nonascii -+# else - jne __strcasecmp_nonascii - jmp L(ascii) -+# endif - END (__strcasecmp_sse4_2) - #endif - -@@ -152,8 +158,14 @@ ENTRY (__strncasecmp_sse4_2) - movl (%eax), %eax - # endif - testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) -+# ifdef PIC -+ je L(ascii) -+ POP (%ebx) -+ jmp __strncasecmp_nonascii -+# else - jne __strncasecmp_nonascii - jmp L(ascii) -+# endif - END (__strncasecmp_sse4_2) - #endif - -Index: glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-ssse3.S -=================================================================== ---- glibc-2.17.90.orig/sysdeps/i386/i686/multiarch/strcmp-ssse3.S -+++ glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-ssse3.S -@@ -138,8 +138,14 @@ ENTRY (__strcasecmp_ssse3) - movl (%eax), %eax - # endif - testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) -+# ifdef PIC -+ je L(ascii) -+ POP (%ebx) -+ jmp __strcasecmp_nonascii -+# else - jne __strcasecmp_nonascii - jmp L(ascii) -+# endif - END (__strcasecmp_ssse3) - #endif - -@@ -169,8 +175,14 @@ ENTRY (__strncasecmp_ssse3) - movl (%eax), %eax - # endif - testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax) -+# ifdef PIC -+ je L(ascii) -+ POP (%ebx) -+ jmp __strncasecmp_nonascii -+# else - jne __strncasecmp_nonascii - jmp L(ascii) -+# endif - END (__strncasecmp_ssse3) - #endif - diff --git a/m68k-Scrt1.patch b/m68k-Scrt1.patch deleted file mode 100644 index 66dff9f..0000000 --- a/m68k-Scrt1.patch +++ /dev/null @@ -1,50 +0,0 @@ -2013-10-08 Andreas Schwab - - * sysdeps/m68k/start.S [SHARED]: Use PIC. - -Index: glibc-2.18/ports/sysdeps/m68k/start.S -=================================================================== ---- glibc-2.18.orig/ports/sysdeps/m68k/start.S -+++ glibc-2.18/ports/sysdeps/m68k/start.S -@@ -52,6 +52,8 @@ - NULL - */ - -+#include -+ - .text - .globl _start - .type _start,@function -@@ -74,6 +76,24 @@ _start: - pea (%a1) /* Push address of the shared library - termination function. */ - -+#ifdef SHARED -+ /* Load PIC register. */ -+ LOAD_GOT (%a5) -+ -+ /* Push the address of our own entry points to `.fini' and -+ `.init'. */ -+ move.l __libc_csu_fini@GOT(%a5), -(%sp) -+ move.l __libc_csu_init@GOT(%a5), -(%sp) -+ -+ pea (%a0) /* Push second argument: argv. */ -+ move.l %d0, -(%sp) /* Push first argument: argc. */ -+ -+ move.l main@GOT(%a5), -(%sp) -+ -+ /* Call the user's main function, and exit with its value. But -+ let the libc call main. */ -+ jbsr __libc_start_main@PLTPC -+#else - /* Push the address of our own entry points to `.fini' and - `.init'. */ - pea __libc_csu_fini -@@ -87,6 +107,7 @@ _start: - /* Call the user's main function, and exit with its value. But - let the libc call main. */ - jbsr __libc_start_main -+#endif - - illegal /* Crash if somehow `exit' does return. */ - diff --git a/malloc-overflows.patch b/malloc-overflows.patch deleted file mode 100644 index 15f2369..0000000 --- a/malloc-overflows.patch +++ /dev/null @@ -1,60 +0,0 @@ -2013-09-11 Will Newton - - [BZ #15857] - * malloc/malloc.c (__libc_memalign): Check the value of bytes - does not overflow. - - [BZ #15856] - * malloc/malloc.c (__libc_valloc): Check the value of bytes - does not overflow. - - [BZ #15855] - * malloc/malloc.c (__libc_pvalloc): Check the value of bytes - does not overflow. - -Index: glibc-2.18/malloc/malloc.c -=================================================================== ---- glibc-2.18.orig/malloc/malloc.c -+++ glibc-2.18/malloc/malloc.c -@@ -3015,6 +3015,13 @@ __libc_memalign(size_t alignment, size_t - /* Otherwise, ensure that it is at least a minimum chunk size */ - if (alignment < MINSIZE) alignment = MINSIZE; - -+ /* Check for overflow. */ -+ if (bytes > SIZE_MAX - alignment - MINSIZE) -+ { -+ __set_errno (ENOMEM); -+ return 0; -+ } -+ - arena_get(ar_ptr, bytes + alignment + MINSIZE); - if(!ar_ptr) - return 0; -@@ -3046,6 +3053,13 @@ __libc_valloc(size_t bytes) - - size_t pagesz = GLRO(dl_pagesize); - -+ /* Check for overflow. */ -+ if (bytes > SIZE_MAX - pagesz - MINSIZE) -+ { -+ __set_errno (ENOMEM); -+ return 0; -+ } -+ - void *(*hook) (size_t, size_t, const void *) = - force_reg (__memalign_hook); - if (__builtin_expect (hook != NULL, 0)) -@@ -3082,6 +3096,13 @@ __libc_pvalloc(size_t bytes) - size_t page_mask = GLRO(dl_pagesize) - 1; - size_t rounded_bytes = (bytes + page_mask) & ~(page_mask); - -+ /* Check for overflow. */ -+ if (bytes > SIZE_MAX - 2*pagesz - MINSIZE) -+ { -+ __set_errno (ENOMEM); -+ return 0; -+ } -+ - void *(*hook) (size_t, size_t, const void *) = - force_reg (__memalign_hook); - if (__builtin_expect (hook != NULL, 0)) diff --git a/nonascii-case.patch b/nonascii-case.patch deleted file mode 100644 index a4be170..0000000 --- a/nonascii-case.patch +++ /dev/null @@ -1,148 +0,0 @@ - [BZ #15736] - * locale/categories.def (LC_CTYPE): Add "nonascii-case" element. - * string/Makefile (test-strcasecmp-ENV, test-strncasecmp-ENV) - (test-strcasecmp-ifunc-ENV, test-strncasecmp-ifunc-ENV): Define. - * string/test-strcasecmp.c (test_main): Run tests in several - locales. - * string/test-strncasecmp.c (test_main): Likewise. - -Index: glibc-2.17.90/locale/categories.def -=================================================================== ---- glibc-2.17.90.orig/locale/categories.def -+++ glibc-2.17.90/locale/categories.def -@@ -133,6 +133,7 @@ DEFINE_CATEGORY - DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word) - DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string) - DEFINE_ELEMENT (_NL_CTYPE_MAP_TO_NONASCII, "map-to-nonascii", std, word) -+ DEFINE_ELEMENT (_NL_CTYPE_NONASCII_CASE, "nonascii-case", std, word) - ), _nl_postload_ctype) - - -Index: glibc-2.17.90/string/Makefile -=================================================================== ---- glibc-2.17.90.orig/string/Makefile -+++ glibc-2.17.90/string/Makefile -@@ -65,6 +65,10 @@ noinl-tester-ENV = LANGUAGE=C - tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata - tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata - bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata -+test-strcasecmp-ENV = LOCPATH=$(common-objpfx)localedata -+test-strncasecmp-ENV = LOCPATH=$(common-objpfx)localedata -+test-strcasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata -+test-strncasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata - CFLAGS-inl-tester.c = -fno-builtin - CFLAGS-noinl-tester.c = -fno-builtin - CFLAGS-tst-strlen.c = -fno-builtin -Index: glibc-2.17.90/string/test-strcasecmp.c -=================================================================== ---- glibc-2.17.90.orig/string/test-strcasecmp.c -+++ glibc-2.17.90/string/test-strcasecmp.c -@@ -17,6 +17,7 @@ - License along with the GNU C Library; if not, see - . */ - -+#include - #include - #define TEST_MAIN - #define TEST_NAME "strcasecmp" -@@ -206,14 +207,18 @@ do_random_tests (void) - } - } - --int --test_main (void) -+static void -+test_locale (const char *locale) - { - size_t i; - -- test_init (); -+ if (setlocale (LC_CTYPE, locale) == NULL) -+ { -+ error (0, 0, "cannot set locale \"%s\"", locale); -+ ret = 1; -+ } - -- printf ("%23s", ""); -+ printf ("%-23s", locale); - FOR_EACH_IMPL (impl, 0) - printf ("\t%s", impl->name); - putchar ('\n'); -@@ -246,6 +251,19 @@ test_main (void) - } - - do_random_tests (); -+} -+ -+int -+test_main (void) -+{ -+ test_init (); -+ -+ test_locale ("C"); -+ test_locale ("en_US.ISO-8859-1"); -+ test_locale ("en_US.UTF-8"); -+ test_locale ("tr_TR.ISO-8859-9"); -+ test_locale ("tr_TR.UTF-8"); -+ - return ret; - } - -Index: glibc-2.17.90/string/test-strncasecmp.c -=================================================================== ---- glibc-2.17.90.orig/string/test-strncasecmp.c -+++ glibc-2.17.90/string/test-strncasecmp.c -@@ -17,6 +17,7 @@ - License along with the GNU C Library; if not, see - . */ - -+#include - #include - #define TEST_MAIN - #define TEST_NAME "strncasecmp" -@@ -256,17 +257,21 @@ bz14195 (void) - check_result (impl, empty_string, "", 5, 0); - } - --int --test_main (void) -+static void -+test_locale (const char *locale) - { - size_t i; - -- test_init (); -+ if (setlocale (LC_CTYPE, locale) == NULL) -+ { -+ error (0, 0, "cannot set locale \"%s\"", locale); -+ ret = 1; -+ } - - bz12205 (); - bz14195 (); - -- printf ("%23s", ""); -+ printf ("%23s", locale); - FOR_EACH_IMPL (impl, 0) - printf ("\t%s", impl->name); - putchar ('\n'); -@@ -329,6 +334,19 @@ test_main (void) - } - - do_random_tests (); -+} -+ -+int -+test_main (void) -+{ -+ test_init (); -+ -+ test_locale ("C"); -+ test_locale ("en_US.ISO-8859-1"); -+ test_locale ("en_US.UTF-8"); -+ test_locale ("tr_TR.ISO-8859-9"); -+ test_locale ("tr_TR.UTF-8"); -+ - return ret; - } - diff --git a/nss-database.patch b/nss-database.patch deleted file mode 100644 index 2cf36ed..0000000 --- a/nss-database.patch +++ /dev/null @@ -1,112 +0,0 @@ -From a6856a042a0669ac3f8bc675e8e1de14b5d09b94 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Thu, 24 Jan 2013 12:32:09 +0100 -Subject: [PATCH] Properly cache the result from looking up the nss database - config - - [BZ #15048] - * nscd/aicache.c (addhstaiX): Properly use the cache variable for - the nss database lookup. - * nscd/initgrcache.c (addinitgroupsX): Likewise. - * sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise. ---- - nscd/aicache.c | 15 +++++++-------- - nscd/initgrcache.c | 15 +++++++-------- - sysdeps/posix/getaddrinfo.c | 14 ++++++-------- - 3 files changed, 20 insertions(+), 24 deletions(-) - -Index: glibc-2.17.90/nscd/aicache.c -=================================================================== ---- glibc-2.17.90.orig/nscd/aicache.c -+++ glibc-2.17.90/nscd/aicache.c -@@ -86,20 +86,19 @@ addhstaiX (struct database_dyn *db, int - } - - static service_user *hosts_database; -- service_user *nip = NULL; -+ service_user *nip; - int no_more; - int rc6 = 0; - int rc4 = 0; - int herrno = 0; - -- if (hosts_database != NULL) -- { -- nip = hosts_database; -- no_more = 0; -- } -- else -+ if (hosts_database == NULL) - no_more = __nss_database_lookup ("hosts", NULL, -- "dns [!UNAVAIL=return] files", &nip); -+ "dns [!UNAVAIL=return] files", -+ &hosts_database); -+ else -+ no_more = 0; -+ nip = hosts_database; - - if (__res_maybe_init (&_res, 0) == -1) - no_more = 1; -Index: glibc-2.17.90/nscd/initgrcache.c -=================================================================== ---- glibc-2.17.90.orig/nscd/initgrcache.c -+++ glibc-2.17.90/nscd/initgrcache.c -@@ -80,17 +80,16 @@ addinitgroupsX (struct database_dyn *db, - } - - static service_user *group_database; -- service_user *nip = NULL; -+ service_user *nip; - int no_more; - -- if (group_database != NULL) -- { -- nip = group_database; -- no_more = 0; -- } -- else -+ if (group_database == NULL) - no_more = __nss_database_lookup ("group", NULL, -- "compat [NOTFOUND=return] files", &nip); -+ "compat [NOTFOUND=return] files", -+ &group_database); -+ else -+ no_more = 0; -+ nip = group_database; - - /* We always use sysconf even if NGROUPS_MAX is defined. That way, the - limit can be raised in the kernel configuration without having to -Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c -=================================================================== ---- glibc-2.17.90.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.17.90/sysdeps/posix/getaddrinfo.c -@@ -558,7 +558,7 @@ gaih_inet (const char *name, const struc - struct gaih_addrtuple **pat = &at; - int no_data = 0; - int no_inet6_data = 0; -- service_user *nip = NULL; -+ service_user *nip; - enum nss_status inet6_status = NSS_STATUS_UNAVAIL; - enum nss_status status = NSS_STATUS_UNAVAIL; - int no_more; -@@ -791,15 +791,13 @@ gaih_inet (const char *name, const struc - } - #endif - -- if (__nss_hosts_database != NULL) -- { -- no_more = 0; -- nip = __nss_hosts_database; -- } -- else -+ if (__nss_hosts_database == NULL) - no_more = __nss_database_lookup ("hosts", NULL, - "dns [!UNAVAIL=return] files", -- &nip); -+ &__nss_hosts_database); -+ else -+ no_more = 0; -+ nip = __nss_hosts_database; - - /* Initialize configurations. */ - if (__builtin_expect (!_res_hconf.initialized, 0)) diff --git a/printf-overrun.patch b/printf-overrun.patch deleted file mode 100644 index d5f3b3b..0000000 --- a/printf-overrun.patch +++ /dev/null @@ -1,179 +0,0 @@ -From 1aa92494e55792b568663b5aad81a58fad35490d Mon Sep 17 00:00:00 2001 -From: Eric Biggers -Date: Thu, 18 Apr 2013 17:46:08 +0200 -Subject: [PATCH] PR15362 - - [BZ #15362] - * libio/fileops.c: Revert problematic fixes for [BZ #11741] - * libio/iofwrite.c: Likewise. - * libio/iofwrite_u.c: Likewise. - * libio/iopadn.c: Likewise. - * libio/iowpadn.c: Likewise. - * stdio-common/vfprintf.c: Fix [BZ #11741] properly by checking whether - _IO_padn() returned the full count written. ---- - libio/fileops.c | 21 +++++++++------------ - libio/iofwrite.c | 10 +++++----- - libio/iofwrite_u.c | 10 +++++----- - libio/iopadn.c | 2 +- - libio/iowpadn.c | 2 +- - stdio-common/vfprintf.c | 12 ++++++------ - 6 files changed, 27 insertions(+), 30 deletions(-) - -Index: glibc-2.17.90/libio/fileops.c -=================================================================== ---- glibc-2.17.90.orig/libio/fileops.c -+++ glibc-2.17.90/libio/fileops.c -@@ -1245,13 +1245,12 @@ _IO_new_file_write (f, data, n) - _IO_ssize_t n; - { - _IO_ssize_t to_do = n; -- _IO_ssize_t count = 0; - while (to_do > 0) - { -- count = (__builtin_expect (f->_flags2 -- & _IO_FLAGS2_NOTCANCEL, 0) -- ? write_not_cancel (f->_fileno, data, to_do) -- : write (f->_fileno, data, to_do)); -+ _IO_ssize_t count = (__builtin_expect (f->_flags2 -+ & _IO_FLAGS2_NOTCANCEL, 0) -+ ? write_not_cancel (f->_fileno, data, to_do) -+ : write (f->_fileno, data, to_do)); - if (count < 0) - { - f->_flags |= _IO_ERR_SEEN; -@@ -1263,7 +1262,7 @@ _IO_new_file_write (f, data, n) - n -= to_do; - if (f->_offset >= 0) - f->_offset += n; -- return count < 0 ? count : n; -+ return n; - } - - _IO_size_t -@@ -1323,13 +1322,11 @@ _IO_new_file_xsputn (f, data, n) - _IO_size_t block_size, do_write; - /* Next flush the (full) buffer. */ - if (_IO_OVERFLOW (f, EOF) == EOF) -- /* If nothing else has to be written or nothing has been written, we -- must not signal the caller that the call was even partially -- successful. */ -- return (to_do == 0 || to_do == n) ? EOF : n - to_do; -+ /* If nothing else has to be written we must not signal the -+ caller that everything has been written. */ -+ return to_do == 0 ? EOF : n - to_do; - -- /* Try to maintain alignment: write a whole number of blocks. -- dont_write is what gets left over. */ -+ /* Try to maintain alignment: write a whole number of blocks. */ - block_size = f->_IO_buf_end - f->_IO_buf_base; - do_write = to_do - (block_size >= 128 ? to_do % block_size : 0); - -Index: glibc-2.17.90/libio/iofwrite.c -=================================================================== ---- glibc-2.17.90.orig/libio/iofwrite.c -+++ glibc-2.17.90/libio/iofwrite.c -@@ -42,12 +42,12 @@ _IO_fwrite (buf, size, count, fp) - if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1) - written = _IO_sputn (fp, (const char *) buf, request); - _IO_release_lock (fp); -- /* We are guaranteed to have written all of the input, none of it, or -- some of it. */ -- if (written == request) -+ /* We have written all of the input in case the return value indicates -+ this or EOF is returned. The latter is a special case where we -+ simply did not manage to flush the buffer. But the data is in the -+ buffer and therefore written as far as fwrite is concerned. */ -+ if (written == request || written == EOF) - return count; -- else if (written == EOF) -- return 0; - else - return written / size; - } -Index: glibc-2.17.90/libio/iofwrite_u.c -=================================================================== ---- glibc-2.17.90.orig/libio/iofwrite_u.c -+++ glibc-2.17.90/libio/iofwrite_u.c -@@ -44,12 +44,12 @@ fwrite_unlocked (buf, size, count, fp) - if (_IO_fwide (fp, -1) == -1) - { - written = _IO_sputn (fp, (const char *) buf, request); -- /* We are guaranteed to have written all of the input, none of it, or -- some of it. */ -- if (written == request) -+ /* We have written all of the input in case the return value indicates -+ this or EOF is returned. The latter is a special case where we -+ simply did not manage to flush the buffer. But the data is in the -+ buffer and therefore written as far as fwrite is concerned. */ -+ if (written == request || written == EOF) - return count; -- else if (written == EOF) -- return 0; - } - - return written / size; -Index: glibc-2.17.90/libio/iopadn.c -=================================================================== ---- glibc-2.17.90.orig/libio/iopadn.c -+++ glibc-2.17.90/libio/iopadn.c -@@ -59,7 +59,7 @@ _IO_padn (fp, pad, count) - w = _IO_sputn (fp, padptr, PADSIZE); - written += w; - if (w != PADSIZE) -- return w == EOF ? w : written; -+ return written; - } - - if (i > 0) -Index: glibc-2.17.90/libio/iowpadn.c -=================================================================== ---- glibc-2.17.90.orig/libio/iowpadn.c -+++ glibc-2.17.90/libio/iowpadn.c -@@ -65,7 +65,7 @@ _IO_wpadn (fp, pad, count) - w = _IO_sputn (fp, (char *) padptr, PADSIZE); - written += w; - if (w != PADSIZE) -- return w == EOF ? w : written; -+ return written; - } - - if (i > 0) -Index: glibc-2.17.90/stdio-common/vfprintf.c -=================================================================== ---- glibc-2.17.90.orig/stdio-common/vfprintf.c -+++ glibc-2.17.90/stdio-common/vfprintf.c -@@ -90,13 +90,13 @@ - do { \ - if (width > 0) \ - { \ -- unsigned int d = _IO_padn (s, (Padchar), width); \ -- if (__glibc_unlikely (d == EOF)) \ -+ _IO_ssize_t written = _IO_padn (s, (Padchar), width); \ -+ if (__glibc_unlikely (written != width)) \ - { \ - done = -1; \ - goto all_done; \ - } \ -- done_add (d); \ -+ done_add (written); \ - } \ - } while (0) - # define PUTC(C, F) _IO_putc_unlocked (C, F) -@@ -119,13 +119,13 @@ - do { \ - if (width > 0) \ - { \ -- unsigned int d = _IO_wpadn (s, (Padchar), width); \ -- if (__glibc_unlikely (d == EOF)) \ -+ _IO_ssize_t written = _IO_wpadn (s, (Padchar), width); \ -+ if (__glibc_unlikely (written != width)) \ - { \ - done = -1; \ - goto all_done; \ - } \ -- done_add (d); \ -+ done_add (written); \ - } \ - } while (0) - # define PUTC(C, F) _IO_putwc_unlocked (C, F) diff --git a/readdir_r-overflow.patch b/readdir_r-overflow.patch deleted file mode 100644 index b2e3182..0000000 --- a/readdir_r-overflow.patch +++ /dev/null @@ -1,297 +0,0 @@ -2013-06-12 Florian Weimer - - [BZ #14699] - * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode - member. - * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode - member. - * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. - * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. - Return delayed error code. Remove GETDENTS_64BIT_ALIGNED - conditional. - * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define - GETDENTS_64BIT_ALIGNED. - * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. - * manual/filesys.texi (Reading/Closing Directory): Document - ENAMETOOLONG return value of readdir_r. Recommend readdir more - strongly. - * manual/conf.texi (Limits for Files): Add portability note to - NAME_MAX, PATH_MAX. - (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX. - -Index: glibc-2.18/manual/conf.texi -=================================================================== ---- glibc-2.18.orig/manual/conf.texi -+++ glibc-2.18/manual/conf.texi -@@ -1149,6 +1149,9 @@ typed ahead as input. @xref{I/O Queues} - @deftypevr Macro int NAME_MAX - The uniform system limit (if any) for the length of a file name component, not - including the terminating null character. -+ -+@strong{Portability Note:} On some systems, @theglibc{} defines -+@code{NAME_MAX}, but does not actually enforce this limit. - @end deftypevr - - @comment limits.h -@@ -1157,6 +1160,9 @@ including the terminating null character - The uniform system limit (if any) for the length of an entire file name (that - is, the argument given to system calls such as @code{open}), including the - terminating null character. -+ -+@strong{Portability Note:} @Theglibc{} does not enforce this limit -+even if @code{PATH_MAX} is defined. - @end deftypevr - - @cindex limits, pipe buffer size -@@ -1476,6 +1482,9 @@ Inquire about the value of @code{POSIX_R - Inquire about the value of @code{POSIX_REC_XFER_ALIGN}. - @end table - -+@strong{Portability Note:} On some systems, @theglibc{} does not -+enforce @code{_PC_NAME_MAX} or @code{_PC_PATH_MAX} limits. -+ - @node Utility Limits - @section Utility Program Capacity Limits - -Index: glibc-2.18/manual/filesys.texi -=================================================================== ---- glibc-2.18.orig/manual/filesys.texi -+++ glibc-2.18/manual/filesys.texi -@@ -444,9 +444,9 @@ symbols are declared in the header file - @comment POSIX.1 - @deftypefun {struct dirent *} readdir (DIR *@var{dirstream}) - This function reads the next entry from the directory. It normally --returns a pointer to a structure containing information about the file. --This structure is statically allocated and can be rewritten by a --subsequent call. -+returns a pointer to a structure containing information about the -+file. This structure is associated with the @var{dirstream} handle -+and can be rewritten by a subsequent call. - - @strong{Portability Note:} On some systems @code{readdir} may not - return entries for @file{.} and @file{..}, even though these are always -@@ -461,19 +461,59 @@ conditions are defined for this function - The @var{dirstream} argument is not valid. - @end table - --@code{readdir} is not thread safe. Multiple threads using --@code{readdir} on the same @var{dirstream} may overwrite the return --value. Use @code{readdir_r} when this is critical. -+To distinguish between an end-of-directory condition or an error, you -+must set @code{errno} to zero before calling @code{readdir}. To avoid -+entering an infinite loop, you should stop reading from the directory -+after the first error. -+ -+In POSIX.1-2008, @code{readdir} is not thread-safe. In @theglibc{} -+implementation, it is safe to call @code{readdir} concurrently on -+different @var{dirstream}s (but multiple threads accessing the same -+@var{dirstream} result in undefined behavior). @code{readdir_r} is a -+fully thread-safe alternative, but suffers from poor portability (see -+below). It is recommended that you use @code{readdir}, with external -+locking if multiple threads access the same @var{dirstream}. - @end deftypefun - - @comment dirent.h - @comment GNU - @deftypefun int readdir_r (DIR *@var{dirstream}, struct dirent *@var{entry}, struct dirent **@var{result}) --This function is the reentrant version of @code{readdir}. Like --@code{readdir} it returns the next entry from the directory. But to --prevent conflicts between simultaneously running threads the result is --not stored in statically allocated memory. Instead the argument --@var{entry} points to a place to store the result. -+This function is a version of @code{readdir} which performs internal -+locking. Like @code{readdir} it returns the next entry from the -+directory. To prevent conflicts between simultaneously running -+threads the result is stored inside the @var{entry} object. -+ -+@strong{Portability Note:} It is recommended to use @code{readdir} -+instead of @code{readdir_r} for the following reasons: -+ -+@itemize @bullet -+@item -+On systems which do not define @code{NAME_MAX}, it may not be possible -+to use @code{readdir_r} safely because the caller does not specify the -+length of the buffer for the directory entry. -+ -+@item -+On some systems, @code{readdir_r} cannot read directory entries with -+very long names. If such a name is encountered, @theglibc{} -+implementation of @code{readdir_r} returns with an error code of -+@code{ENAMETOOLONG} after the final directory entry has been read. On -+other systems, @code{readdir_r} may return successfully, but the -+@code{d_name} member may not be NUL-terminated or may be truncated. -+ -+@item -+POSIX-1.2008 does not guarantee that @code{readdir} is thread-safe, -+even when access to the same @var{dirstream} is serialized. But in -+current implementations (including @theglibc{}), it is safe to call -+@code{readdir} concurrently on different @var{dirstream}s, so there is -+no requirement to use @code{readdir_r} even in multi-threaded -+programs. -+ -+@item -+It is expected that future versions of POSIX will obsolete -+@code{readdir_r} and mandate the level of thread safety for -+@code{readdir} which is provided by @theglibc{} and other -+implementations today. -+@end itemize - - Normally @code{readdir_r} returns zero and sets @code{*@var{result}} - to @var{entry}. If there are no more entries in the directory or an -@@ -481,15 +521,6 @@ error is detected, @code{readdir_r} sets - null pointer and returns a nonzero error code, also stored in - @code{errno}, as described for @code{readdir}. - --@strong{Portability Note:} On some systems @code{readdir_r} may not --return a NUL terminated string for the file name, even when there is no --@code{d_reclen} field in @code{struct dirent} and the file --name is the maximum allowed size. Modern systems all have the --@code{d_reclen} field, and on old systems multi-threading is not --critical. In any case there is no such problem with the @code{readdir} --function, so that even on systems without the @code{d_reclen} member one --could use multiple threads by using external locking. -- - It is also important to look at the definition of the @code{struct - dirent} type. Simply passing a pointer to an object of this type for - the second parameter of @code{readdir_r} might not be enough. Some -Index: glibc-2.18/sysdeps/posix/dirstream.h -=================================================================== ---- glibc-2.18.orig/sysdeps/posix/dirstream.h -+++ glibc-2.18/sysdeps/posix/dirstream.h -@@ -39,6 +39,8 @@ struct __dirstream - - off_t filepos; /* Position of next entry to read. */ - -+ int errcode; /* Delayed error code. */ -+ - /* Directory block. */ - char data[0] __attribute__ ((aligned (__alignof__ (void*)))); - }; -Index: glibc-2.18/sysdeps/posix/opendir.c -=================================================================== ---- glibc-2.18.orig/sysdeps/posix/opendir.c -+++ glibc-2.18/sysdeps/posix/opendir.c -@@ -231,6 +231,7 @@ __alloc_dir (int fd, bool close_fd, int - dirp->size = 0; - dirp->offset = 0; - dirp->filepos = 0; -+ dirp->errcode = 0; - - return dirp; - } -Index: glibc-2.18/sysdeps/posix/readdir_r.c -=================================================================== ---- glibc-2.18.orig/sysdeps/posix/readdir_r.c -+++ glibc-2.18/sysdeps/posix/readdir_r.c -@@ -40,6 +40,7 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent - DIRENT_TYPE *dp; - size_t reclen; - const int saved_errno = errno; -+ int ret; - - __libc_lock_lock (dirp->lock); - -@@ -70,10 +71,10 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent - bytes = 0; - __set_errno (saved_errno); - } -+ if (bytes < 0) -+ dirp->errcode = errno; - - dp = NULL; -- /* Reclen != 0 signals that an error occurred. */ -- reclen = bytes != 0; - break; - } - dirp->size = (size_t) bytes; -@@ -106,29 +107,46 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent - dirp->filepos += reclen; - #endif - -- /* Skip deleted files. */ -+#ifdef NAME_MAX -+ if (reclen > offsetof (DIRENT_TYPE, d_name) + NAME_MAX + 1) -+ { -+ /* The record is very long. It could still fit into the -+ caller-supplied buffer if we can skip padding at the -+ end. */ -+ size_t namelen = _D_EXACT_NAMLEN (dp); -+ if (namelen <= NAME_MAX) -+ reclen = offsetof (DIRENT_TYPE, d_name) + namelen + 1; -+ else -+ { -+ /* The name is too long. Ignore this file. */ -+ dirp->errcode = ENAMETOOLONG; -+ dp->d_ino = 0; -+ continue; -+ } -+ } -+#endif -+ -+ /* Skip deleted and ignored files. */ - } - while (dp->d_ino == 0); - - if (dp != NULL) - { --#ifdef GETDENTS_64BIT_ALIGNED -- /* The d_reclen value might include padding which is not part of -- the DIRENT_TYPE data structure. */ -- reclen = MIN (reclen, -- offsetof (DIRENT_TYPE, d_name) + sizeof (dp->d_name)); --#endif - *result = memcpy (entry, dp, reclen); --#ifdef GETDENTS_64BIT_ALIGNED -+#ifdef _DIRENT_HAVE_D_RECLEN - entry->d_reclen = reclen; - #endif -+ ret = 0; - } - else -- *result = NULL; -+ { -+ *result = NULL; -+ ret = dirp->errcode; -+ } - - __libc_lock_unlock (dirp->lock); - -- return dp != NULL ? 0 : reclen ? errno : 0; -+ return ret; - } - - #ifdef __READDIR_R_ALIAS -Index: glibc-2.18/sysdeps/posix/rewinddir.c -=================================================================== ---- glibc-2.18.orig/sysdeps/posix/rewinddir.c -+++ glibc-2.18/sysdeps/posix/rewinddir.c -@@ -33,6 +33,7 @@ rewinddir (dirp) - dirp->filepos = 0; - dirp->offset = 0; - dirp->size = 0; -+ dirp->errcode = 0; - #ifndef NOT_IN_libc - __libc_lock_unlock (dirp->lock); - #endif -Index: glibc-2.18/sysdeps/unix/sysv/linux/i386/readdir64_r.c -=================================================================== ---- glibc-2.18.orig/sysdeps/unix/sysv/linux/i386/readdir64_r.c -+++ glibc-2.18/sysdeps/unix/sysv/linux/i386/readdir64_r.c -@@ -18,7 +18,6 @@ - #define __READDIR_R __readdir64_r - #define __GETDENTS __getdents64 - #define DIRENT_TYPE struct dirent64 --#define GETDENTS_64BIT_ALIGNED 1 - - #include - -Index: glibc-2.18/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c -=================================================================== ---- glibc-2.18.orig/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c -+++ glibc-2.18/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c -@@ -1,5 +1,4 @@ - #define readdir64_r __no_readdir64_r_decl --#define GETDENTS_64BIT_ALIGNED 1 - #include - #undef readdir64_r - weak_alias (__readdir_r, readdir64_r) diff --git a/strcoll-overflow.patch b/strcoll-overflow.patch deleted file mode 100644 index a36ac41..0000000 --- a/strcoll-overflow.patch +++ /dev/null @@ -1,1106 +0,0 @@ -Siddhesh Poyarekar - - [BZ #14547] - * string/tst-strcoll-overflow.c: New test case. - * string/Makefile (xtests): Add tst-strcoll-overflow. - * string/strcoll_l.c (STRCOLL): Skip allocating memory for - cache if string sizes may cause integer overflow. - - [BZ #14547] - * string/strcoll_l.c (coll_seq): New members rule, idx, - save_idx and back_us. - (get_next_seq_nocache): New function. - (do_compare_nocache): New function. - (STRCOLL): Use get_next_seq_nocache and do_compare_nocache - when malloc fails. - - * string/strcoll_l.c (coll_seq): New structure. - (get_next_seq_cached): New function. - (get_next_seq): New function. - (do_compare): New function. - (STRCOLL): Use GNU style definition. Simplify implementation - by using get_next_seq, get_next_seq_cached and do_compare. - -Index: glibc-2.18/string/Makefile -=================================================================== ---- glibc-2.18.orig/string/Makefile -+++ glibc-2.18/string/Makefile -@@ -57,6 +57,8 @@ tests := tester inl-tester noinl-tester - tests-ifunc := $(strop-tests:%=test-%-ifunc) - tests += $(tests-ifunc) - -+xtests = tst-strcoll-overflow -+ - include ../Rules - - tester-ENV = LANGUAGE=C -Index: glibc-2.18/string/strcoll_l.c -=================================================================== ---- glibc-2.18.orig/string/strcoll_l.c -+++ glibc-2.18/string/strcoll_l.c -@@ -41,11 +41,434 @@ - - #include "../locale/localeinfo.h" - -+/* Track status while looking for sequences in a string. */ -+typedef struct -+{ -+ int len; /* Length of the current sequence. */ -+ size_t val; /* Position of the sequence relative to the -+ previous non-ignored sequence. */ -+ size_t idxnow; /* Current index in sequences. */ -+ size_t idxmax; /* Maximum index in sequences. */ -+ size_t idxcnt; /* Current count of indices. */ -+ size_t backw; /* Current Backward sequence index. */ -+ size_t backw_stop; /* Index where the backward sequences stop. */ -+ const USTRING_TYPE *us; /* The string. */ -+ int32_t *idxarr; /* Array to cache weight indices. */ -+ unsigned char *rulearr; /* Array to cache rules. */ -+ unsigned char rule; /* Saved rule for the first sequence. */ -+ int32_t idx; /* Index to weight of the current sequence. */ -+ int32_t save_idx; /* Save looked up index of a forward -+ sequence after the last backward -+ sequence. */ -+ const USTRING_TYPE *back_us; /* Beginning of the backward sequence. */ -+} coll_seq; -+ -+/* Get next sequence. The weight indices are cached, so we don't need to -+ traverse the string. */ -+static void -+get_next_seq_cached (coll_seq *seq, int nrules, int pass, -+ const unsigned char *rulesets, -+ const USTRING_TYPE *weights) -+{ -+ size_t val = seq->val = 0; -+ int len = seq->len; -+ size_t backw_stop = seq->backw_stop; -+ size_t backw = seq->backw; -+ size_t idxcnt = seq->idxcnt; -+ size_t idxmax = seq->idxmax; -+ size_t idxnow = seq->idxnow; -+ unsigned char *rulearr = seq->rulearr; -+ int32_t *idxarr = seq->idxarr; -+ -+ while (len == 0) -+ { -+ ++val; -+ if (backw_stop != ~0ul) -+ { -+ /* There is something pushed. */ -+ if (backw == backw_stop) -+ { -+ /* The last pushed character was handled. Continue -+ with forward characters. */ -+ if (idxcnt < idxmax) -+ { -+ idxnow = idxcnt; -+ backw_stop = ~0ul; -+ } -+ else -+ { -+ /* Nothing any more. The backward sequence -+ ended with the last sequence in the string. */ -+ idxnow = ~0ul; -+ break; -+ } -+ } -+ else -+ idxnow = --backw; -+ } -+ else -+ { -+ backw_stop = idxcnt; -+ -+ while (idxcnt < idxmax) -+ { -+ if ((rulesets[rulearr[idxcnt] * nrules + pass] -+ & sort_backward) == 0) -+ /* No more backward characters to push. */ -+ break; -+ ++idxcnt; -+ } -+ -+ if (backw_stop == idxcnt) -+ { -+ /* No sequence at all or just one. */ -+ if (idxcnt == idxmax) -+ /* Note that LEN is still zero. */ -+ break; -+ -+ backw_stop = ~0ul; -+ idxnow = idxcnt++; -+ } -+ else -+ /* We pushed backward sequences. */ -+ idxnow = backw = idxcnt - 1; -+ } -+ len = weights[idxarr[idxnow]++]; -+ } -+ -+ /* Update the structure. */ -+ seq->val = val; -+ seq->len = len; -+ seq->backw_stop = backw_stop; -+ seq->backw = backw; -+ seq->idxcnt = idxcnt; -+ seq->idxnow = idxnow; -+} -+ -+/* Get next sequence. Traverse the string as required. */ -+static void -+get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets, -+ const USTRING_TYPE *weights, const int32_t *table, -+ const USTRING_TYPE *extra, const int32_t *indirect) -+{ -+#include WEIGHT_H -+ size_t val = seq->val = 0; -+ int len = seq->len; -+ size_t backw_stop = seq->backw_stop; -+ size_t backw = seq->backw; -+ size_t idxcnt = seq->idxcnt; -+ size_t idxmax = seq->idxmax; -+ size_t idxnow = seq->idxnow; -+ unsigned char *rulearr = seq->rulearr; -+ int32_t *idxarr = seq->idxarr; -+ const USTRING_TYPE *us = seq->us; -+ -+ while (len == 0) -+ { -+ ++val; -+ if (backw_stop != ~0ul) -+ { -+ /* There is something pushed. */ -+ if (backw == backw_stop) -+ { -+ /* The last pushed character was handled. Continue -+ with forward characters. */ -+ if (idxcnt < idxmax) -+ { -+ idxnow = idxcnt; -+ backw_stop = ~0ul; -+ } -+ else -+ /* Nothing any more. The backward sequence ended with -+ the last sequence in the string. Note that LEN -+ is still zero. */ -+ break; -+ } -+ else -+ idxnow = --backw; -+ } -+ else -+ { -+ backw_stop = idxmax; -+ -+ while (*us != L('\0')) -+ { -+ int32_t tmp = findidx (&us, -1); -+ rulearr[idxmax] = tmp >> 24; -+ idxarr[idxmax] = tmp & 0xffffff; -+ idxcnt = idxmax++; -+ -+ if ((rulesets[rulearr[idxcnt] * nrules] -+ & sort_backward) == 0) -+ /* No more backward characters to push. */ -+ break; -+ ++idxcnt; -+ } -+ -+ if (backw_stop >= idxcnt) -+ { -+ /* No sequence at all or just one. */ -+ if (idxcnt == idxmax || backw_stop > idxcnt) -+ /* Note that LEN is still zero. */ -+ break; -+ -+ backw_stop = ~0ul; -+ idxnow = idxcnt; -+ } -+ else -+ /* We pushed backward sequences. */ -+ idxnow = backw = idxcnt - 1; -+ } -+ len = weights[idxarr[idxnow]++]; -+ } -+ -+ /* Update the structure. */ -+ seq->val = val; -+ seq->len = len; -+ seq->backw_stop = backw_stop; -+ seq->backw = backw; -+ seq->idxcnt = idxcnt; -+ seq->idxmax = idxmax; -+ seq->idxnow = idxnow; -+ seq->us = us; -+} -+ -+/* Get next sequence. Traverse the string as required. This function does not -+ set or use any index or rule cache. */ -+static void -+get_next_seq_nocache (coll_seq *seq, int nrules, const unsigned char *rulesets, -+ const USTRING_TYPE *weights, const int32_t *table, -+ const USTRING_TYPE *extra, const int32_t *indirect, -+ int pass) -+{ -+#include WEIGHT_H -+ size_t val = seq->val = 0; -+ int len = seq->len; -+ size_t backw_stop = seq->backw_stop; -+ size_t backw = seq->backw; -+ size_t idxcnt = seq->idxcnt; -+ size_t idxmax = seq->idxmax; -+ int32_t idx = seq->idx; -+ const USTRING_TYPE *us = seq->us; -+ -+ while (len == 0) -+ { -+ ++val; -+ if (backw_stop != ~0ul) -+ { -+ /* There is something pushed. */ -+ if (backw == backw_stop) -+ { -+ /* The last pushed character was handled. Continue -+ with forward characters. */ -+ if (idxcnt < idxmax) -+ { -+ idx = seq->save_idx; -+ backw_stop = ~0ul; -+ } -+ else -+ { -+ /* Nothing anymore. The backward sequence ended with -+ the last sequence in the string. Note that len is -+ still zero. */ -+ idx = 0; -+ break; -+ } -+ } -+ else -+ { -+ /* XXX Traverse BACKW sequences from the beginning of -+ BACKW_STOP to get the next sequence. Is ther a quicker way -+ to do this? */ -+ size_t i = backw_stop; -+ us = seq->back_us; -+ while (i < backw) -+ { -+ int32_t tmp = findidx (&us, -1); -+ idx = tmp & 0xffffff; -+ i++; -+ } -+ --backw; -+ us = seq->us; -+ } -+ } -+ else -+ { -+ backw_stop = idxmax; -+ int32_t prev_idx = idx; -+ -+ while (*us != L('\0')) -+ { -+ int32_t tmp = findidx (&us, -1); -+ unsigned char rule = tmp >> 24; -+ prev_idx = idx; -+ idx = tmp & 0xffffff; -+ idxcnt = idxmax++; -+ -+ /* Save the rule for the first sequence. */ -+ if (__glibc_unlikely (idxcnt == 0)) -+ seq->rule = rule; -+ -+ if ((rulesets[rule * nrules + pass] -+ & sort_backward) == 0) -+ /* No more backward characters to push. */ -+ break; -+ ++idxcnt; -+ } -+ -+ if (backw_stop >= idxcnt) -+ { -+ /* No sequence at all or just one. */ -+ if (idxcnt == idxmax || backw_stop > idxcnt) -+ /* Note that len is still zero. */ -+ break; -+ -+ backw_stop = ~0ul; -+ } -+ else -+ { -+ /* We pushed backward sequences. If the stream ended with the -+ backward sequence, then we process the last sequence we -+ found. Otherwise we process the sequence before the last -+ one since the last one was a forward sequence. */ -+ seq->back_us = seq->us; -+ seq->us = us; -+ backw = idxcnt; -+ if (idxmax > idxcnt) -+ { -+ backw--; -+ seq->save_idx = idx; -+ idx = prev_idx; -+ } -+ if (backw > backw_stop) -+ backw--; -+ } -+ } -+ -+ len = weights[idx++]; -+ /* Skip over indices of previous levels. */ -+ for (int i = 0; i < pass; i++) -+ { -+ idx += len; -+ len = weights[idx]; -+ idx++; -+ } -+ } -+ -+ /* Update the structure. */ -+ seq->val = val; -+ seq->len = len; -+ seq->backw_stop = backw_stop; -+ seq->backw = backw; -+ seq->idxcnt = idxcnt; -+ seq->idxmax = idxmax; -+ seq->us = us; -+ seq->idx = idx; -+} -+ -+/* Compare two sequences. This version does not use the index and rules -+ cache. */ -+static int -+do_compare_nocache (coll_seq *seq1, coll_seq *seq2, int position, -+ const USTRING_TYPE *weights) -+{ -+ int seq1len = seq1->len; -+ int seq2len = seq2->len; -+ size_t val1 = seq1->val; -+ size_t val2 = seq2->val; -+ int idx1 = seq1->idx; -+ int idx2 = seq2->idx; -+ int result = 0; -+ -+ /* Test for position if necessary. */ -+ if (position && val1 != val2) -+ { -+ result = val1 > val2 ? 1 : -1; -+ goto out; -+ } -+ -+ /* Compare the two sequences. */ -+ do -+ { -+ if (weights[idx1] != weights[idx2]) -+ { -+ /* The sequences differ. */ -+ result = weights[idx1] - weights[idx2]; -+ goto out; -+ } -+ -+ /* Increment the offsets. */ -+ ++idx1; -+ ++idx2; -+ -+ --seq1len; -+ --seq2len; -+ } -+ while (seq1len > 0 && seq2len > 0); -+ -+ if (position && seq1len != seq2len) -+ result = seq1len - seq2len; -+ -+out: -+ seq1->len = seq1len; -+ seq2->len = seq2len; -+ seq1->idx = idx1; -+ seq2->idx = idx2; -+ return result; -+} -+ -+/* Compare two sequences using the index cache. */ -+static int -+do_compare (coll_seq *seq1, coll_seq *seq2, int position, -+ const USTRING_TYPE *weights) -+{ -+ int seq1len = seq1->len; -+ int seq2len = seq2->len; -+ size_t val1 = seq1->val; -+ size_t val2 = seq2->val; -+ int32_t *idx1arr = seq1->idxarr; -+ int32_t *idx2arr = seq2->idxarr; -+ int idx1now = seq1->idxnow; -+ int idx2now = seq2->idxnow; -+ int result = 0; -+ -+ /* Test for position if necessary. */ -+ if (position && val1 != val2) -+ { -+ result = val1 > val2 ? 1 : -1; -+ goto out; -+ } -+ -+ /* Compare the two sequences. */ -+ do -+ { -+ if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]]) -+ { -+ /* The sequences differ. */ -+ result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]]; -+ goto out; -+ } -+ -+ /* Increment the offsets. */ -+ ++idx1arr[idx1now]; -+ ++idx2arr[idx2now]; -+ -+ --seq1len; -+ --seq2len; -+ } -+ while (seq1len > 0 && seq2len > 0); -+ -+ if (position && seq1len != seq2len) -+ result = seq1len - seq2len; -+ -+out: -+ seq1->len = seq1len; -+ seq2->len = seq2len; -+ return result; -+} -+ - int --STRCOLL (s1, s2, l) -- const STRING_TYPE *s1; -- const STRING_TYPE *s2; -- __locale_t l; -+STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l) - { - struct __locale_data *current = l->__locales[LC_COLLATE]; - uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; -@@ -56,34 +479,6 @@ STRCOLL (s1, s2, l) - const USTRING_TYPE *weights; - const USTRING_TYPE *extra; - const int32_t *indirect; -- uint_fast32_t pass; -- int result = 0; -- const USTRING_TYPE *us1; -- const USTRING_TYPE *us2; -- size_t s1len; -- size_t s2len; -- int32_t *idx1arr; -- int32_t *idx2arr; -- unsigned char *rule1arr; -- unsigned char *rule2arr; -- size_t idx1max; -- size_t idx2max; -- size_t idx1cnt; -- size_t idx2cnt; -- size_t idx1now; -- size_t idx2now; -- size_t backw1_stop; -- size_t backw2_stop; -- size_t backw1; -- size_t backw2; -- int val1; -- int val2; -- int position; -- int seq1len; -- int seq2len; -- int use_malloc; -- --#include WEIGHT_H - - if (nrules == 0) - return STRCMP (s1, s2); -@@ -98,7 +493,6 @@ STRCOLL (s1, s2, l) - current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_EXTRA,SUFFIX))].string; - indirect = (const int32_t *) - current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_INDIRECT,SUFFIX))].string; -- use_malloc = 0; - - assert (((uintptr_t) table) % __alignof__ (table[0]) == 0); - assert (((uintptr_t) weights) % __alignof__ (weights[0]) == 0); -@@ -106,18 +500,13 @@ STRCOLL (s1, s2, l) - assert (((uintptr_t) indirect) % __alignof__ (indirect[0]) == 0); - - /* We need this a few times. */ -- s1len = STRLEN (s1); -- s2len = STRLEN (s2); -+ size_t s1len = STRLEN (s1); -+ size_t s2len = STRLEN (s2); - - /* Catch empty strings. */ -- if (__builtin_expect (s1len == 0, 0) || __builtin_expect (s2len == 0, 0)) -+ if (__glibc_unlikely (s1len == 0) || __glibc_unlikely (s2len == 0)) - return (s1len != 0) - (s2len != 0); - -- /* We need the elements of the strings as unsigned values since they -- are used as indeces. */ -- us1 = (const USTRING_TYPE *) s1; -- us2 = (const USTRING_TYPE *) s2; -- - /* Perform the first pass over the string and while doing this find - and store the weights for each character. Since we want this to - be as fast as possible we are using `alloca' to store the temporary -@@ -127,411 +516,122 @@ STRCOLL (s1, s2, l) - - Please note that the localedef programs makes sure that `position' - is not used at the first level. */ -- if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1))) -- { -- idx1arr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1)); -- idx2arr = &idx1arr[s1len]; -- rule1arr = (unsigned char *) &idx2arr[s2len]; -- rule2arr = &rule1arr[s1len]; -- -- if (idx1arr == NULL) -- /* No memory. Well, go with the stack then. -- -- XXX Once this implementation is stable we will handle this -- differently. Instead of precomputing the indeces we will -- do this in time. This means, though, that this happens for -- every pass again. */ -- goto try_stack; -- use_malloc = 1; -- } -- else -- { -- try_stack: -- idx1arr = (int32_t *) alloca (s1len * sizeof (int32_t)); -- idx2arr = (int32_t *) alloca (s2len * sizeof (int32_t)); -- rule1arr = (unsigned char *) alloca (s1len); -- rule2arr = (unsigned char *) alloca (s2len); -- } -- -- idx1cnt = 0; -- idx2cnt = 0; -- idx1max = 0; -- idx2max = 0; -- idx1now = 0; -- idx2now = 0; -- backw1_stop = ~0ul; -- backw2_stop = ~0ul; -- backw1 = ~0ul; -- backw2 = ~0ul; -- seq1len = 0; -- seq2len = 0; -- position = rulesets[0] & sort_position; -- while (1) -- { -- val1 = 0; -- val2 = 0; -- -- /* Get the next non-IGNOREd element for string `s1'. */ -- if (seq1len == 0) -- do -- { -- ++val1; -- -- if (backw1_stop != ~0ul) -- { -- /* The is something pushed. */ -- if (backw1 == backw1_stop) -- { -- /* The last pushed character was handled. Continue -- with forward characters. */ -- if (idx1cnt < idx1max) -- { -- idx1now = idx1cnt; -- backw1_stop = ~0ul; -- } -- else -- /* Nothing anymore. The backward sequence ended with -- the last sequence in the string. Note that seq1len -- is still zero. */ -- break; -- } -- else -- idx1now = --backw1; -- } -- else -- { -- backw1_stop = idx1max; -- -- while (*us1 != L('\0')) -- { -- int32_t tmp = findidx (&us1, -1); -- rule1arr[idx1max] = tmp >> 24; -- idx1arr[idx1max] = tmp & 0xffffff; -- idx1cnt = idx1max++; -- -- if ((rulesets[rule1arr[idx1cnt] * nrules] -- & sort_backward) == 0) -- /* No more backward characters to push. */ -- break; -- ++idx1cnt; -- } -- -- if (backw1_stop >= idx1cnt) -- { -- /* No sequence at all or just one. */ -- if (idx1cnt == idx1max || backw1_stop > idx1cnt) -- /* Note that seq1len is still zero. */ -- break; -- -- backw1_stop = ~0ul; -- idx1now = idx1cnt; -- } -- else -- /* We pushed backward sequences. */ -- idx1now = backw1 = idx1cnt - 1; -- } -- } -- while ((seq1len = weights[idx1arr[idx1now]++]) == 0); -- -- /* And the same for string `s2'. */ -- if (seq2len == 0) -- do -- { -- ++val2; -- -- if (backw2_stop != ~0ul) -- { -- /* The is something pushed. */ -- if (backw2 == backw2_stop) -- { -- /* The last pushed character was handled. Continue -- with forward characters. */ -- if (idx2cnt < idx2max) -- { -- idx2now = idx2cnt; -- backw2_stop = ~0ul; -- } -- else -- /* Nothing anymore. The backward sequence ended with -- the last sequence in the string. Note that seq2len -- is still zero. */ -- break; -- } -- else -- idx2now = --backw2; -- } -- else -- { -- backw2_stop = idx2max; -- -- while (*us2 != L('\0')) -- { -- int32_t tmp = findidx (&us2, -1); -- rule2arr[idx2max] = tmp >> 24; -- idx2arr[idx2max] = tmp & 0xffffff; -- idx2cnt = idx2max++; -- -- if ((rulesets[rule2arr[idx2cnt] * nrules] -- & sort_backward) == 0) -- /* No more backward characters to push. */ -- break; -- ++idx2cnt; -- } -- -- if (backw2_stop >= idx2cnt) -- { -- /* No sequence at all or just one. */ -- if (idx2cnt == idx2max || backw2_stop > idx2cnt) -- /* Note that seq1len is still zero. */ -- break; -- -- backw2_stop = ~0ul; -- idx2now = idx2cnt; -- } -- else -- /* We pushed backward sequences. */ -- idx2now = backw2 = idx2cnt - 1; -- } -- } -- while ((seq2len = weights[idx2arr[idx2now]++]) == 0); -- -- /* See whether any or both strings are empty. */ -- if (seq1len == 0 || seq2len == 0) -- { -- if (seq1len == seq2len) -- /* Both ended. So far so good, both strings are equal at the -- first level. */ -- break; -- -- /* This means one string is shorter than the other. Find out -- which one and return an appropriate value. */ -- result = seq1len == 0 ? -1 : 1; -- goto free_and_return; -- } -- -- /* Test for position if necessary. */ -- if (position && val1 != val2) -- { -- result = val1 - val2; -- goto free_and_return; -- } - -- /* Compare the two sequences. */ -- do -- { -- if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]]) -- { -- /* The sequences differ. */ -- result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]]; -- goto free_and_return; -- } -+ coll_seq seq1, seq2; -+ bool use_malloc = false; -+ int result = 0; - -- /* Increment the offsets. */ -- ++idx1arr[idx1now]; -- ++idx2arr[idx2now]; -+ memset (&seq1, 0, sizeof (seq1)); -+ seq2 = seq1; - -- --seq1len; -- --seq2len; -- } -- while (seq1len > 0 && seq2len > 0); -+ size_t size_max = SIZE_MAX / (sizeof (int32_t) + 1); - -- if (position && seq1len != seq2len) -+ if (MIN (s1len, s2len) > size_max -+ || MAX (s1len, s2len) > size_max - MIN (s1len, s2len)) -+ { -+ /* If the strings are long enough to cause overflow in the size request, -+ then skip the allocation and proceed with the non-cached routines. */ -+ } -+ else if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1))) -+ { -+ seq1.idxarr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1)); -+ -+ /* If we failed to allocate memory, we leave everything as NULL so that -+ we use the nocache version of traversal and comparison functions. */ -+ if (seq1.idxarr != NULL) - { -- result = seq1len - seq2len; -- goto free_and_return; -+ seq2.idxarr = &seq1.idxarr[s1len]; -+ seq1.rulearr = (unsigned char *) &seq2.idxarr[s2len]; -+ seq2.rulearr = &seq1.rulearr[s1len]; -+ use_malloc = true; - } - } -+ else -+ { -+ seq1.idxarr = (int32_t *) alloca (s1len * sizeof (int32_t)); -+ seq2.idxarr = (int32_t *) alloca (s2len * sizeof (int32_t)); -+ seq1.rulearr = (unsigned char *) alloca (s1len); -+ seq2.rulearr = (unsigned char *) alloca (s2len); -+ } -+ -+ int rule = 0; - -- /* Now the remaining passes over the weights. We now use the -- indeces we found before. */ -- for (pass = 1; pass < nrules; ++pass) -+ /* Cache values in the first pass and if needed, use them in subsequent -+ passes. */ -+ for (int pass = 0; pass < nrules; ++pass) - { -+ seq1.idxcnt = 0; -+ seq1.idx = 0; -+ seq2.idx = 0; -+ seq1.backw_stop = ~0ul; -+ seq1.backw = ~0ul; -+ seq2.idxcnt = 0; -+ seq2.backw_stop = ~0ul; -+ seq2.backw = ~0ul; -+ -+ /* We need the elements of the strings as unsigned values since they -+ are used as indices. */ -+ seq1.us = (const USTRING_TYPE *) s1; -+ seq2.us = (const USTRING_TYPE *) s2; -+ - /* We assume that if a rule has defined `position' in one section - this is true for all of them. */ -- idx1cnt = 0; -- idx2cnt = 0; -- backw1_stop = ~0ul; -- backw2_stop = ~0ul; -- backw1 = ~0ul; -- backw2 = ~0ul; -- position = rulesets[rule1arr[0] * nrules + pass] & sort_position; -+ int position = rulesets[rule * nrules + pass] & sort_position; - - while (1) - { -- val1 = 0; -- val2 = 0; -- -- /* Get the next non-IGNOREd element for string `s1'. */ -- if (seq1len == 0) -- do -- { -- ++val1; -- -- if (backw1_stop != ~0ul) -- { -- /* The is something pushed. */ -- if (backw1 == backw1_stop) -- { -- /* The last pushed character was handled. Continue -- with forward characters. */ -- if (idx1cnt < idx1max) -- { -- idx1now = idx1cnt; -- backw1_stop = ~0ul; -- } -- else -- { -- /* Nothing anymore. The backward sequence -- ended with the last sequence in the string. */ -- idx1now = ~0ul; -- break; -- } -- } -- else -- idx1now = --backw1; -- } -- else -- { -- backw1_stop = idx1cnt; -- -- while (idx1cnt < idx1max) -- { -- if ((rulesets[rule1arr[idx1cnt] * nrules + pass] -- & sort_backward) == 0) -- /* No more backward characters to push. */ -- break; -- ++idx1cnt; -- } -- -- if (backw1_stop == idx1cnt) -- { -- /* No sequence at all or just one. */ -- if (idx1cnt == idx1max) -- /* Note that seq1len is still zero. */ -- break; -- -- backw1_stop = ~0ul; -- idx1now = idx1cnt++; -- } -- else -- /* We pushed backward sequences. */ -- idx1now = backw1 = idx1cnt - 1; -- } -- } -- while ((seq1len = weights[idx1arr[idx1now]++]) == 0); -- -- /* And the same for string `s2'. */ -- if (seq2len == 0) -- do -- { -- ++val2; -- -- if (backw2_stop != ~0ul) -- { -- /* The is something pushed. */ -- if (backw2 == backw2_stop) -- { -- /* The last pushed character was handled. Continue -- with forward characters. */ -- if (idx2cnt < idx2max) -- { -- idx2now = idx2cnt; -- backw2_stop = ~0ul; -- } -- else -- { -- /* Nothing anymore. The backward sequence -- ended with the last sequence in the string. */ -- idx2now = ~0ul; -- break; -- } -- } -- else -- idx2now = --backw2; -- } -- else -- { -- backw2_stop = idx2cnt; -- -- while (idx2cnt < idx2max) -- { -- if ((rulesets[rule2arr[idx2cnt] * nrules + pass] -- & sort_backward) == 0) -- /* No more backward characters to push. */ -- break; -- ++idx2cnt; -- } -- -- if (backw2_stop == idx2cnt) -- { -- /* No sequence at all or just one. */ -- if (idx2cnt == idx2max) -- /* Note that seq2len is still zero. */ -- break; -- -- backw2_stop = ~0ul; -- idx2now = idx2cnt++; -- } -- else -- /* We pushed backward sequences. */ -- idx2now = backw2 = idx2cnt - 1; -- } -- } -- while ((seq2len = weights[idx2arr[idx2now]++]) == 0); -+ if (__glibc_unlikely (seq1.idxarr == NULL)) -+ { -+ get_next_seq_nocache (&seq1, nrules, rulesets, weights, table, -+ extra, indirect, pass); -+ get_next_seq_nocache (&seq2, nrules, rulesets, weights, table, -+ extra, indirect, pass); -+ } -+ else if (pass == 0) -+ { -+ get_next_seq (&seq1, nrules, rulesets, weights, table, extra, -+ indirect); -+ get_next_seq (&seq2, nrules, rulesets, weights, table, extra, -+ indirect); -+ } -+ else -+ { -+ get_next_seq_cached (&seq1, nrules, pass, rulesets, weights); -+ get_next_seq_cached (&seq2, nrules, pass, rulesets, weights); -+ } - - /* See whether any or both strings are empty. */ -- if (seq1len == 0 || seq2len == 0) -+ if (seq1.len == 0 || seq2.len == 0) - { -- if (seq1len == seq2len) -+ if (seq1.len == seq2.len) - /* Both ended. So far so good, both strings are equal - at this level. */ - break; - - /* This means one string is shorter than the other. Find out - which one and return an appropriate value. */ -- result = seq1len == 0 ? -1 : 1; -+ result = seq1.len == 0 ? -1 : 1; - goto free_and_return; - } - -- /* Test for position if necessary. */ -- if (position && val1 != val2) -- { -- result = val1 - val2; -- goto free_and_return; -- } -- -- /* Compare the two sequences. */ -- do -- { -- if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]]) -- { -- /* The sequences differ. */ -- result = (weights[idx1arr[idx1now]] -- - weights[idx2arr[idx2now]]); -- goto free_and_return; -- } -- -- /* Increment the offsets. */ -- ++idx1arr[idx1now]; -- ++idx2arr[idx2now]; -- -- --seq1len; -- --seq2len; -- } -- while (seq1len > 0 && seq2len > 0); -- -- if (position && seq1len != seq2len) -- { -- result = seq1len - seq2len; -- goto free_and_return; -- } -+ if (__glibc_unlikely (seq1.idxarr == NULL)) -+ result = do_compare_nocache (&seq1, &seq2, position, weights); -+ else -+ result = do_compare (&seq1, &seq2, position, weights); -+ if (result != 0) -+ goto free_and_return; - } -+ -+ if (__glibc_likely (seq1.rulearr != NULL)) -+ rule = seq1.rulearr[0]; -+ else -+ rule = seq1.rule; - } - - /* Free the memory if needed. */ - free_and_return: - if (use_malloc) -- free (idx1arr); -+ free (seq1.idxarr); - - return result; - } -Index: glibc-2.18/string/tst-strcoll-overflow.c -=================================================================== ---- /dev/null -+++ glibc-2.18/string/tst-strcoll-overflow.c -@@ -0,0 +1,61 @@ -+/* Copyright (C) 2013 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+/* Verify that strcoll does not crash for large strings for which it cannot -+ cache weight lookup results. The size is large enough to cause integer -+ overflows on 32-bit as well as buffer overflows on 64-bit. The test should -+ work reasonably reliably when overcommit is disabled, but it obviously -+ depends on how much memory the system has. There's a limitation to this -+ test in that it does not run to completion. Actually collating such a -+ large string can take days and we can't have xcheck running that long. For -+ that reason, we run the test for about 5 minutes and then assume that -+ everything is fine if there are no crashes. */ -+#define SIZE 0x40000000ul -+ -+int -+do_test (void) -+{ -+ if (setlocale (LC_COLLATE, "en_GB.UTF-8") == NULL) -+ { -+ puts ("setlocale failed, cannot test for overflow"); -+ return 0; -+ } -+ -+ char *p = malloc (SIZE); -+ -+ if (p == NULL) -+ { -+ puts ("could not allocate memory"); -+ return 1; -+ } -+ -+ memset (p, 'x', SIZE - 1); -+ p[SIZE - 1] = 0; -+ printf ("%d\n", strcoll (p, p)); -+ return 0; -+} -+ -+#define TIMEOUT 300 -+#define EXPECTED_SIGNAL SIGALRM -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" From 7c2752fe7e72c0c48e039ca8c6b7d4168d0d35cc5b22d9a393811b0a53dd7ae4 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 11 Dec 2013 15:42:18 +0000 Subject: [PATCH 154/204] Accepting request 210417 from Base:System - Update to glibc 2.18.90 aeb95445d128: * More bug fixes * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ * The public headers no longer use __unused nor __block * Support for PowerPC64 ELFv2 ABI - ppc64le-abilist.patch: ABI lists for PowerLE (forwarded request 210416 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/210417 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=162 --- glibc-2.14-crypt.diff | 136 +- glibc-2.18.90-aeb95445d128.tar.xz | 3 + glibc-2.18.90-bd12ab55c05e.tar.xz | 3 - glibc-testsuite.changes | 10 + glibc-testsuite.spec | 18 +- glibc-utils.changes | 10 + glibc-utils.spec | 18 +- glibc.changes | 10 + glibc.spec | 18 +- ppc64le-abilist.patch | 3293 +++++++++++++++++++++++++++++ 10 files changed, 3444 insertions(+), 75 deletions(-) create mode 100644 glibc-2.18.90-aeb95445d128.tar.xz delete mode 100644 glibc-2.18.90-bd12ab55c05e.tar.xz create mode 100644 ppc64le-abilist.patch diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index b4731da..64cb5a3 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,8 +1,8 @@ -Index: glibc-2.17.90/Versions.def +Index: glibc-2.18.90/Versions.def =================================================================== ---- glibc-2.17.90.orig/Versions.def -+++ glibc-2.17.90/Versions.def -@@ -44,6 +44,9 @@ libc { +--- glibc-2.18.90.orig/Versions.def ++++ glibc-2.18.90/Versions.def +@@ -45,6 +45,9 @@ libc { libcrypt { GLIBC_2.0 } @@ -12,10 +12,10 @@ Index: glibc-2.17.90/Versions.def libdl { GLIBC_2.0 GLIBC_2.1 -Index: glibc-2.17.90/crypt/Makefile +Index: glibc-2.18.90/crypt/Makefile =================================================================== ---- glibc-2.17.90.orig/crypt/Makefile -+++ glibc-2.17.90/crypt/Makefile +--- glibc-2.18.90.orig/crypt/Makefile ++++ glibc-2.18.90/crypt/Makefile @@ -21,14 +21,18 @@ subdir := crypt @@ -37,10 +37,10 @@ Index: glibc-2.17.90/crypt/Makefile include ../Makeconfig -Index: glibc-2.17.90/crypt/Versions +Index: glibc-2.18.90/crypt/Versions =================================================================== ---- glibc-2.17.90.orig/crypt/Versions -+++ glibc-2.17.90/crypt/Versions +--- glibc-2.18.90.orig/crypt/Versions ++++ glibc-2.18.90/crypt/Versions @@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } @@ -50,10 +50,10 @@ Index: glibc-2.17.90/crypt/Versions + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } +} -Index: glibc-2.17.90/crypt/crypt-entry.c +Index: glibc-2.18.90/crypt/crypt-entry.c =================================================================== ---- glibc-2.17.90.orig/crypt/crypt-entry.c -+++ glibc-2.17.90/crypt/crypt-entry.c +--- glibc-2.18.90.orig/crypt/crypt-entry.c ++++ glibc-2.18.90/crypt/crypt-entry.c @@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; */ @@ -76,141 +76,141 @@ Index: glibc-2.17.90/crypt/crypt-entry.c } #endif +#endif -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist +Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist ++++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/shlib-versions +Index: glibc-2.18.90/shlib-versions =================================================================== ---- glibc-2.17.90.orig/shlib-versions -+++ glibc-2.17.90/shlib-versions -@@ -92,6 +92,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ +--- glibc-2.18.90.orig/shlib-versions ++++ glibc-2.18.90/shlib-versions +@@ -93,6 +93,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ # This defines the shared library version numbers we will install. .*-.*-.* libcrypt=1 @@ -218,100 +218,110 @@ Index: glibc-2.17.90/shlib-versions # The gross patch for programs assuming broken locale implementations. sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A diff --git a/glibc-2.18.90-aeb95445d128.tar.xz b/glibc-2.18.90-aeb95445d128.tar.xz new file mode 100644 index 0000000..d4f645f --- /dev/null +++ b/glibc-2.18.90-aeb95445d128.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e45ffc72da188e9914fe0bd1b8d4bab51c5ecd14b6d579218ba68bfc994f2f68 +size 12033044 diff --git a/glibc-2.18.90-bd12ab55c05e.tar.xz b/glibc-2.18.90-bd12ab55c05e.tar.xz deleted file mode 100644 index 09bd2db..0000000 --- a/glibc-2.18.90-bd12ab55c05e.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:27ce32970ab8633d7a9cf1b11d3787c206b78e19732a53e2f309ba14fedeb561 -size 11868220 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 6975fb2..7bc057d 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 aeb95445d128: + * More bug fixes + * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ + * The public headers no longer use __unused nor __block + * Support for PowerPC64 ELFv2 ABI +- ppc64le-abilist.patch: ABI lists for PowerLE + ------------------------------------------------------------------- Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 360de02..88bb051 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -109,7 +109,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id bd12ab55c05e +%define git_id aeb95445d128 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -244,6 +244,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches awaiting upstream approval ### +# PATCH-FIX-UPSTREAM PowerLE abilist +Patch2000: ppc64le-abilist.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch @@ -447,6 +449,7 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch2000 -p1 %patch2019 -p1 %patch3000 @@ -471,6 +474,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch +# For ppc64le check-abi requires some files to be named *-le.abilist +# also for libs that only have an empty abilist, so just copy over +for f in sysdeps/generic/*.abilist; do + cp $f ${f/./-le.} +done + ####################################################################### ### ### BUILD @@ -591,7 +600,7 @@ configure_and_build_glibc() { %endif --enable-lock-elision \ --build=%{target} --host=%{target} \ -%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -1031,6 +1040,9 @@ exit 0 %ifarch ppc64 /%{_lib}/ld64.so.1 %endif +%ifarch ppc64le +/%{_lib}/ld64.so.2 +%endif %ifarch s390x /lib/ld64.so.1 /%{_lib}/ld64.so.1 @@ -1170,7 +1182,7 @@ exit 0 %{_libdir}/libc_nonshared.a %{_libdir}/libg.a %{_libdir}/libieee.a -%ifarch ppc ppc64 s390 s390x sparc sparcv8 sparcv9 sparcv9v +%ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v # This is not built on sparc64. %{_libdir}/libnldbl_nonshared.a %endif diff --git a/glibc-utils.changes b/glibc-utils.changes index 6975fb2..7bc057d 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 aeb95445d128: + * More bug fixes + * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ + * The public headers no longer use __unused nor __block + * Support for PowerPC64 ELFv2 ABI +- ppc64le-abilist.patch: ABI lists for PowerLE + ------------------------------------------------------------------- Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 4c8a61d..0fa7a31 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -108,7 +108,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id bd12ab55c05e +%define git_id aeb95445d128 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -243,6 +243,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches awaiting upstream approval ### +# PATCH-FIX-UPSTREAM PowerLE abilist +Patch2000: ppc64le-abilist.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch @@ -447,6 +449,7 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch2000 -p1 %patch2019 -p1 %patch3000 @@ -471,6 +474,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch +# For ppc64le check-abi requires some files to be named *-le.abilist +# also for libs that only have an empty abilist, so just copy over +for f in sysdeps/generic/*.abilist; do + cp $f ${f/./-le.} +done + ####################################################################### ### ### BUILD @@ -591,7 +600,7 @@ configure_and_build_glibc() { %endif --enable-lock-elision \ --build=%{target} --host=%{target} \ -%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -1031,6 +1040,9 @@ exit 0 %ifarch ppc64 /%{_lib}/ld64.so.1 %endif +%ifarch ppc64le +/%{_lib}/ld64.so.2 +%endif %ifarch s390x /lib/ld64.so.1 /%{_lib}/ld64.so.1 @@ -1170,7 +1182,7 @@ exit 0 %{_libdir}/libc_nonshared.a %{_libdir}/libg.a %{_libdir}/libieee.a -%ifarch ppc ppc64 s390 s390x sparc sparcv8 sparcv9 sparcv9v +%ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v # This is not built on sparc64. %{_libdir}/libnldbl_nonshared.a %endif diff --git a/glibc.changes b/glibc.changes index 6975fb2..7bc057d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 aeb95445d128: + * More bug fixes + * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ + * The public headers no longer use __unused nor __block + * Support for PowerPC64 ELFv2 ABI +- ppc64le-abilist.patch: ABI lists for PowerLE + ------------------------------------------------------------------- Mon Nov 25 13:59:52 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 80843e3..a6a566a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -109,7 +109,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id bd12ab55c05e +%define git_id aeb95445d128 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -244,6 +244,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches awaiting upstream approval ### +# PATCH-FIX-UPSTREAM PowerLE abilist +Patch2000: ppc64le-abilist.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch @@ -447,6 +449,7 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch2000 -p1 %patch2019 -p1 %patch3000 @@ -471,6 +474,12 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch +# For ppc64le check-abi requires some files to be named *-le.abilist +# also for libs that only have an empty abilist, so just copy over +for f in sysdeps/generic/*.abilist; do + cp $f ${f/./-le.} +done + ####################################################################### ### ### BUILD @@ -591,7 +600,7 @@ configure_and_build_glibc() { %endif --enable-lock-elision \ --build=%{target} --host=%{target} \ -%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -1031,6 +1040,9 @@ exit 0 %ifarch ppc64 /%{_lib}/ld64.so.1 %endif +%ifarch ppc64le +/%{_lib}/ld64.so.2 +%endif %ifarch s390x /lib/ld64.so.1 /%{_lib}/ld64.so.1 @@ -1170,7 +1182,7 @@ exit 0 %{_libdir}/libc_nonshared.a %{_libdir}/libg.a %{_libdir}/libieee.a -%ifarch ppc ppc64 s390 s390x sparc sparcv8 sparcv9 sparcv9v +%ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v # This is not built on sparc64. %{_libdir}/libnldbl_nonshared.a %endif diff --git a/ppc64le-abilist.patch b/ppc64le-abilist.patch new file mode 100644 index 0000000..509207d --- /dev/null +++ b/ppc64le-abilist.patch @@ -0,0 +1,3293 @@ +2013-11-16 Alan Modra + + * Makerules (abilist): Define and use var in abilist rules. + * sysdeps/unix/sysv/linux/powerpc/Makefile (abilist): Define. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil-le.abilist: + New files. + +Index: glibc-2.18.90/Makerules +=================================================================== +--- glibc-2.18.90.orig/Makerules ++++ glibc-2.18.90/Makerules +@@ -1175,7 +1175,11 @@ ifeq ($(build-shared),yes) + LC_ALL=C $(OBJDUMP) --dynamic-syms $< > $@T + mv -f $@T $@ + +-vpath %.abilist $(+sysdep_dirs) ++ifndef abilist ++abilist=.abilist ++endif ++ ++vpath %$(abilist) $(+sysdep_dirs) + + # The .PRECIOUS rule prevents the files built by an implicit rule whose + # target pattern is %.symlist from being considered "intermediate files" +@@ -1184,24 +1188,24 @@ vpath %.abilist $(+sysdep_dirs) + .PRECIOUS: %.symlist + generated += $(extra-libs:=.symlist) + +-check-abi-%: $(common-objpfx)config.make %.abilist $(objpfx)%.symlist ++check-abi-%: $(common-objpfx)config.make %$(abilist) $(objpfx)%.symlist + $(check-abi) +-check-abi-%: $(common-objpfx)config.make %.abilist $(common-objpfx)%.symlist ++check-abi-%: $(common-objpfx)config.make %$(abilist) $(common-objpfx)%.symlist + $(check-abi) + define check-abi +- diff -p -U 0 $(filter %.abilist,$^) $(filter %.symlist,$^) ++ diff -p -U 0 $(filter %$(abilist),$^) $(filter %.symlist,$^) + endef + +-update-abi-%: $(objpfx)%.symlist %.abilist ++update-abi-%: $(objpfx)%.symlist %$(abilist) + $(update-abi) +-update-abi-%: $(common-objpfx)%.symlist %.abilist ++update-abi-%: $(common-objpfx)%.symlist %$(abilist) + $(update-abi) + define update-abi + @if cmp -s $^ 2> /dev/null; \ + then \ +- echo '+++ $(filter %.abilist,$^) is unchanged'; \ ++ echo '+++ $(filter %$(abilist),$^) is unchanged'; \ + else cp -f $^; \ +- echo '*** Now check $(filter %.abilist,$^) changes for correctness ***'; \ ++ echo '*** Now check $(filter %$(abilist),$^) changes for correctness ***'; \ + fi + endef + +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/Makefile +=================================================================== +--- glibc-2.18.90.orig/sysdeps/unix/sysv/linux/powerpc/Makefile ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/Makefile +@@ -31,3 +31,7 @@ sysdep_headers += bits/ppc.h + sysdep_routines += get_timebase_freq + tests += test-gettimebasefreq + endif ++ ++ifneq ($(findstring le,$(config-machine)),) ++abilist=-le.abilist ++endif +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld-le.abilist +@@ -0,0 +1,11 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ __libc_memalign F ++ __libc_stack_end D 0x8 ++ __tls_get_addr F ++ _dl_mcount F ++ _r_debug D 0x28 ++ calloc F ++ free F ++ malloc F ++ realloc F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale-le.abilist +@@ -0,0 +1,3 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ __ctype_get_mb_cur_max F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl-le.abilist +@@ -0,0 +1,6 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ gai_cancel F ++ gai_error F ++ gai_suspend F ++ getaddrinfo_a F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc-le.abilist +@@ -0,0 +1,2169 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ _Exit F ++ _IO_2_1_stderr_ D 0xe0 ++ _IO_2_1_stdin_ D 0xe0 ++ _IO_2_1_stdout_ D 0xe0 ++ _IO_adjust_column F ++ _IO_adjust_wcolumn F ++ _IO_default_doallocate F ++ _IO_default_finish F ++ _IO_default_pbackfail F ++ _IO_default_uflow F ++ _IO_default_xsgetn F ++ _IO_default_xsputn F ++ _IO_do_write F ++ _IO_doallocbuf F ++ _IO_fclose F ++ _IO_fdopen F ++ _IO_feof F ++ _IO_ferror F ++ _IO_fflush F ++ _IO_fgetpos F ++ _IO_fgetpos64 F ++ _IO_fgets F ++ _IO_file_attach F ++ _IO_file_close F ++ _IO_file_close_it F ++ _IO_file_doallocate F ++ _IO_file_finish F ++ _IO_file_fopen F ++ _IO_file_init F ++ _IO_file_jumps D 0xa8 ++ _IO_file_open F ++ _IO_file_overflow F ++ _IO_file_read F ++ _IO_file_seek F ++ _IO_file_seekoff F ++ _IO_file_setbuf F ++ _IO_file_stat F ++ _IO_file_sync F ++ _IO_file_underflow F ++ _IO_file_write F ++ _IO_file_xsputn F ++ _IO_flockfile F ++ _IO_flush_all F ++ _IO_flush_all_linebuffered F ++ _IO_fopen F ++ _IO_fprintf F ++ _IO_fputs F ++ _IO_fread F ++ _IO_free_backup_area F ++ _IO_free_wbackup_area F ++ _IO_fsetpos F ++ _IO_fsetpos64 F ++ _IO_ftell F ++ _IO_ftrylockfile F ++ _IO_funlockfile F ++ _IO_fwrite F ++ _IO_getc F ++ _IO_getline F ++ _IO_getline_info F ++ _IO_gets F ++ _IO_init F ++ _IO_init_marker F ++ _IO_init_wmarker F ++ _IO_iter_begin F ++ _IO_iter_end F ++ _IO_iter_file F ++ _IO_iter_next F ++ _IO_least_wmarker F ++ _IO_link_in F ++ _IO_list_all D 0x8 ++ _IO_list_lock F ++ _IO_list_resetlock F ++ _IO_list_unlock F ++ _IO_marker_delta F ++ _IO_marker_difference F ++ _IO_padn F ++ _IO_peekc_locked F ++ _IO_popen F ++ _IO_printf F ++ _IO_proc_close F ++ _IO_proc_open F ++ _IO_putc F ++ _IO_puts F ++ _IO_remove_marker F ++ _IO_seekmark F ++ _IO_seekoff F ++ _IO_seekpos F ++ _IO_seekwmark F ++ _IO_setb F ++ _IO_setbuffer F ++ _IO_setvbuf F ++ _IO_sgetn F ++ _IO_sprintf F ++ _IO_sputbackc F ++ _IO_sputbackwc F ++ _IO_sscanf F ++ _IO_str_init_readonly F ++ _IO_str_init_static F ++ _IO_str_overflow F ++ _IO_str_pbackfail F ++ _IO_str_seekoff F ++ _IO_str_underflow F ++ _IO_sungetc F ++ _IO_sungetwc F ++ _IO_switch_to_get_mode F ++ _IO_switch_to_main_wget_area F ++ _IO_switch_to_wbackup_area F ++ _IO_switch_to_wget_mode F ++ _IO_un_link F ++ _IO_ungetc F ++ _IO_unsave_markers F ++ _IO_unsave_wmarkers F ++ _IO_vfprintf F ++ _IO_vfscanf F ++ _IO_vsprintf F ++ _IO_wdefault_doallocate F ++ _IO_wdefault_finish F ++ _IO_wdefault_pbackfail F ++ _IO_wdefault_uflow F ++ _IO_wdefault_xsgetn F ++ _IO_wdefault_xsputn F ++ _IO_wdo_write F ++ _IO_wdoallocbuf F ++ _IO_wfile_jumps D 0xa8 ++ _IO_wfile_overflow F ++ _IO_wfile_seekoff F ++ _IO_wfile_sync F ++ _IO_wfile_underflow F ++ _IO_wfile_xsputn F ++ _IO_wmarker_delta F ++ _IO_wsetb F ++ __adjtimex F ++ __after_morecore_hook D 0x8 ++ __argz_count F ++ __argz_next F ++ __argz_stringify F ++ __asprintf F ++ __asprintf_chk F ++ __assert F ++ __assert_fail F ++ __assert_perror_fail F ++ __backtrace F ++ __backtrace_symbols F ++ __backtrace_symbols_fd F ++ __bsd_getpgrp F ++ __bzero F ++ __check_rhosts_file D 0x4 ++ __chk_fail F ++ __clone F ++ __close F ++ __cmsg_nxthdr F ++ __confstr_chk F ++ __connect F ++ __ctype_b_loc F ++ __ctype_get_mb_cur_max F ++ __ctype_tolower_loc F ++ __ctype_toupper_loc F ++ __curbrk D 0x8 ++ __cxa_at_quick_exit F ++ __cxa_atexit F ++ __cxa_finalize F ++ __cxa_thread_atexit_impl F ++ __cyg_profile_func_enter F ++ __cyg_profile_func_exit F ++ __daylight D 0x4 ++ __dcgettext F ++ __default_morecore F ++ __dgettext F ++ __dprintf_chk F ++ __dup2 F ++ __duplocale F ++ __endmntent F ++ __environ D 0x8 ++ __errno_location F ++ __fbufsize F ++ __fcntl F ++ __fdelt_chk F ++ __fdelt_warn F ++ __ffs F ++ __fgets_chk F ++ __fgets_unlocked_chk F ++ __fgetws_chk F ++ __fgetws_unlocked_chk F ++ __finite F ++ __finitef F ++ __finitel F ++ __flbf F ++ __fork F ++ __fpending F ++ __fprintf_chk F ++ __fpu_control D 0x4 ++ __fpurge F ++ __fread_chk F ++ __fread_unlocked_chk F ++ __freadable F ++ __freading F ++ __free_hook D 0x8 ++ __freelocale F ++ __fsetlocking F ++ __fwprintf_chk F ++ __fwritable F ++ __fwriting F ++ __fxstat F ++ __fxstat64 F ++ __fxstatat F ++ __fxstatat64 F ++ __getauxval F ++ __getcwd_chk F ++ __getdelim F ++ __getdomainname_chk F ++ __getgroups_chk F ++ __gethostname_chk F ++ __getlogin_r_chk F ++ __getmntent_r F ++ __getpagesize F ++ __getpgid F ++ __getpid F ++ __gets_chk F ++ __gettimeofday F ++ __getwd_chk F ++ __gmtime_r F ++ __h_errno_location F ++ __isalnum_l F ++ __isalpha_l F ++ __isascii_l F ++ __isblank_l F ++ __iscntrl_l F ++ __isctype F ++ __isdigit_l F ++ __isgraph_l F ++ __isinf F ++ __isinff F ++ __isinfl F ++ __islower_l F ++ __isnan F ++ __isnanf F ++ __isnanl F ++ __isoc99_fscanf F ++ __isoc99_fwscanf F ++ __isoc99_scanf F ++ __isoc99_sscanf F ++ __isoc99_swscanf F ++ __isoc99_vfscanf F ++ __isoc99_vfwscanf F ++ __isoc99_vscanf F ++ __isoc99_vsscanf F ++ __isoc99_vswscanf F ++ __isoc99_vwscanf F ++ __isoc99_wscanf F ++ __isprint_l F ++ __ispunct_l F ++ __isspace_l F ++ __isupper_l F ++ __iswalnum_l F ++ __iswalpha_l F ++ __iswblank_l F ++ __iswcntrl_l F ++ __iswctype F ++ __iswctype_l F ++ __iswdigit_l F ++ __iswgraph_l F ++ __iswlower_l F ++ __iswprint_l F ++ __iswpunct_l F ++ __iswspace_l F ++ __iswupper_l F ++ __iswxdigit_l F ++ __isxdigit_l F ++ __ivaliduser F ++ __key_decryptsession_pk_LOCAL D 0x8 ++ __key_encryptsession_pk_LOCAL D 0x8 ++ __key_gendes_LOCAL D 0x8 ++ __libc_allocate_rtsig F ++ __libc_calloc F ++ __libc_current_sigrtmax F ++ __libc_current_sigrtmin F ++ __libc_free F ++ __libc_freeres F ++ __libc_init_first F ++ __libc_mallinfo F ++ __libc_malloc F ++ __libc_mallopt F ++ __libc_memalign F ++ __libc_pvalloc F ++ __libc_realloc F ++ __libc_sa_len F ++ __libc_start_main F ++ __libc_valloc F ++ __longjmp_chk F ++ __lseek F ++ __lxstat F ++ __lxstat64 F ++ __malloc_hook D 0x8 ++ __malloc_initialize_hook D 0x8 ++ __mbrlen F ++ __mbrtowc F ++ __mbsnrtowcs_chk F ++ __mbsrtowcs_chk F ++ __mbstowcs_chk F ++ __memalign_hook D 0x8 ++ __memcpy_chk F ++ __memmove_chk F ++ __mempcpy F ++ __mempcpy_chk F ++ __mempcpy_small F ++ __memset_chk F ++ __monstartup F ++ __morecore D 0x8 ++ __nanosleep F ++ __newlocale F ++ __nl_langinfo_l F ++ __nldbl__IO_fprintf F ++ __nldbl__IO_printf F ++ __nldbl__IO_sprintf F ++ __nldbl__IO_sscanf F ++ __nldbl__IO_vfprintf F ++ __nldbl__IO_vfscanf F ++ __nldbl__IO_vsprintf F ++ __nldbl___asprintf F ++ __nldbl___asprintf_chk F ++ __nldbl___dprintf_chk F ++ __nldbl___fprintf_chk F ++ __nldbl___fwprintf_chk F ++ __nldbl___isoc99_fscanf F ++ __nldbl___isoc99_fwscanf F ++ __nldbl___isoc99_scanf F ++ __nldbl___isoc99_sscanf F ++ __nldbl___isoc99_swscanf F ++ __nldbl___isoc99_vfscanf F ++ __nldbl___isoc99_vfwscanf F ++ __nldbl___isoc99_vscanf F ++ __nldbl___isoc99_vsscanf F ++ __nldbl___isoc99_vswscanf F ++ __nldbl___isoc99_vwscanf F ++ __nldbl___isoc99_wscanf F ++ __nldbl___obstack_printf_chk F ++ __nldbl___obstack_vprintf_chk F ++ __nldbl___printf_chk F ++ __nldbl___printf_fp F ++ __nldbl___snprintf_chk F ++ __nldbl___sprintf_chk F ++ __nldbl___strfmon_l F ++ __nldbl___swprintf_chk F ++ __nldbl___syslog_chk F ++ __nldbl___vasprintf_chk F ++ __nldbl___vdprintf_chk F ++ __nldbl___vfprintf_chk F ++ __nldbl___vfscanf F ++ __nldbl___vfwprintf_chk F ++ __nldbl___vprintf_chk F ++ __nldbl___vsnprintf F ++ __nldbl___vsnprintf_chk F ++ __nldbl___vsprintf_chk F ++ __nldbl___vsscanf F ++ __nldbl___vstrfmon F ++ __nldbl___vstrfmon_l F ++ __nldbl___vswprintf_chk F ++ __nldbl___vsyslog_chk F ++ __nldbl___vwprintf_chk F ++ __nldbl___wprintf_chk F ++ __nldbl_asprintf F ++ __nldbl_dprintf F ++ __nldbl_fprintf F ++ __nldbl_fscanf F ++ __nldbl_fwprintf F ++ __nldbl_fwscanf F ++ __nldbl_obstack_printf F ++ __nldbl_obstack_vprintf F ++ __nldbl_printf F ++ __nldbl_printf_size F ++ __nldbl_scanf F ++ __nldbl_snprintf F ++ __nldbl_sprintf F ++ __nldbl_sscanf F ++ __nldbl_strfmon F ++ __nldbl_strfmon_l F ++ __nldbl_swprintf F ++ __nldbl_swscanf F ++ __nldbl_syslog F ++ __nldbl_vasprintf F ++ __nldbl_vdprintf F ++ __nldbl_vfprintf F ++ __nldbl_vfscanf F ++ __nldbl_vfwprintf F ++ __nldbl_vfwscanf F ++ __nldbl_vprintf F ++ __nldbl_vscanf F ++ __nldbl_vsnprintf F ++ __nldbl_vsprintf F ++ __nldbl_vsscanf F ++ __nldbl_vswprintf F ++ __nldbl_vswscanf F ++ __nldbl_vsyslog F ++ __nldbl_vwprintf F ++ __nldbl_vwscanf F ++ __nldbl_wprintf F ++ __nldbl_wscanf F ++ __nss_configure_lookup F ++ __nss_database_lookup F ++ __nss_group_lookup F ++ __nss_hostname_digits_dots F ++ __nss_hosts_lookup F ++ __nss_next F ++ __nss_passwd_lookup F ++ __obstack_printf_chk F ++ __obstack_vprintf_chk F ++ __open F ++ __open64 F ++ __open64_2 F ++ __open_2 F ++ __openat64_2 F ++ __openat_2 F ++ __overflow F ++ __pipe F ++ __poll F ++ __poll_chk F ++ __posix_getopt F ++ __ppc_get_timebase_freq F ++ __ppoll_chk F ++ __pread64 F ++ __pread64_chk F ++ __pread_chk F ++ __printf_chk F ++ __printf_fp F ++ __profile_frequency F ++ __progname D 0x8 ++ __progname_full D 0x8 ++ __ptsname_r_chk F ++ __pwrite64 F ++ __rawmemchr F ++ __rcmd_errstr D 0x8 ++ __read F ++ __read_chk F ++ __readlink_chk F ++ __readlinkat_chk F ++ __realloc_hook D 0x8 ++ __realpath_chk F ++ __recv_chk F ++ __recvfrom_chk F ++ __register_atfork F ++ __res_init F ++ __res_nclose F ++ __res_ninit F ++ __res_randomid F ++ __res_state F ++ __rpc_thread_createerr F ++ __rpc_thread_svc_fdset F ++ __rpc_thread_svc_max_pollfd F ++ __rpc_thread_svc_pollfd F ++ __sbrk F ++ __sched_cpualloc F ++ __sched_cpucount F ++ __sched_cpufree F ++ __sched_get_priority_max F ++ __sched_get_priority_min F ++ __sched_getparam F ++ __sched_getscheduler F ++ __sched_setscheduler F ++ __sched_yield F ++ __select F ++ __send F ++ __setmntent F ++ __setpgid F ++ __sigaction F ++ __sigaddset F ++ __sigdelset F ++ __sigismember F ++ __signbit F ++ __signbitf F ++ __signbitl F ++ __sigpause F ++ __sigsetjmp F ++ __sigsuspend F ++ __snprintf_chk F ++ __sprintf_chk F ++ __stack_chk_fail F ++ __statfs F ++ __stpcpy F ++ __stpcpy_chk F ++ __stpcpy_small F ++ __stpncpy F ++ __stpncpy_chk F ++ __strcasecmp F ++ __strcasecmp_l F ++ __strcasestr F ++ __strcat_chk F ++ __strcoll_l F ++ __strcpy_chk F ++ __strcpy_small F ++ __strcspn_c1 F ++ __strcspn_c2 F ++ __strcspn_c3 F ++ __strdup F ++ __strerror_r F ++ __strfmon_l F ++ __strftime_l F ++ __strncasecmp_l F ++ __strncat_chk F ++ __strncpy_chk F ++ __strndup F ++ __strpbrk_c2 F ++ __strpbrk_c3 F ++ __strsep_1c F ++ __strsep_2c F ++ __strsep_3c F ++ __strsep_g F ++ __strspn_c1 F ++ __strspn_c2 F ++ __strspn_c3 F ++ __strtod_internal F ++ __strtod_l F ++ __strtof_internal F ++ __strtof_l F ++ __strtok_r F ++ __strtok_r_1c F ++ __strtol_internal F ++ __strtol_l F ++ __strtold_internal F ++ __strtold_l F ++ __strtoll_internal F ++ __strtoll_l F ++ __strtoul_internal F ++ __strtoul_l F ++ __strtoull_internal F ++ __strtoull_l F ++ __strverscmp F ++ __strxfrm_l F ++ __swprintf_chk F ++ __sysconf F ++ __sysctl F ++ __syslog_chk F ++ __sysv_signal F ++ __timezone D 0x8 ++ __toascii_l F ++ __tolower_l F ++ __toupper_l F ++ __towctrans F ++ __towctrans_l F ++ __towlower_l F ++ __towupper_l F ++ __ttyname_r_chk F ++ __tzname D 0x10 ++ __uflow F ++ __underflow F ++ __uselocale F ++ __vasprintf_chk F ++ __vdprintf_chk F ++ __vfork F ++ __vfprintf_chk F ++ __vfscanf F ++ __vfwprintf_chk F ++ __vprintf_chk F ++ __vsnprintf F ++ __vsnprintf_chk F ++ __vsprintf_chk F ++ __vsscanf F ++ __vswprintf_chk F ++ __vsyslog_chk F ++ __vwprintf_chk F ++ __wait F ++ __waitpid F ++ __wcpcpy_chk F ++ __wcpncpy_chk F ++ __wcrtomb_chk F ++ __wcscasecmp_l F ++ __wcscat_chk F ++ __wcscoll_l F ++ __wcscpy_chk F ++ __wcsftime_l F ++ __wcsncasecmp_l F ++ __wcsncat_chk F ++ __wcsncpy_chk F ++ __wcsnrtombs_chk F ++ __wcsrtombs_chk F ++ __wcstod_internal F ++ __wcstod_l F ++ __wcstof_internal F ++ __wcstof_l F ++ __wcstol_internal F ++ __wcstol_l F ++ __wcstold_internal F ++ __wcstold_l F ++ __wcstoll_internal F ++ __wcstoll_l F ++ __wcstombs_chk F ++ __wcstoul_internal F ++ __wcstoul_l F ++ __wcstoull_internal F ++ __wcstoull_l F ++ __wcsxfrm_l F ++ __wctomb_chk F ++ __wctrans_l F ++ __wctype_l F ++ __wmemcpy_chk F ++ __wmemmove_chk F ++ __wmempcpy_chk F ++ __wmemset_chk F ++ __woverflow F ++ __wprintf_chk F ++ __write F ++ __wuflow F ++ __wunderflow F ++ __xmknod F ++ __xmknodat F ++ __xpg_basename F ++ __xpg_sigpause F ++ __xpg_strerror_r F ++ __xstat F ++ __xstat64 F ++ _authenticate F ++ _dl_mcount_wrapper F ++ _dl_mcount_wrapper_check F ++ _environ D 0x8 ++ _exit F ++ _flushlbf F ++ _libc_intl_domainname D 0x5 ++ _longjmp F ++ _mcleanup F ++ _mcount F ++ _nl_default_dirname D 0x12 ++ _nl_domain_bindings D 0x8 ++ _nl_msg_cat_cntr D 0x4 ++ _null_auth D 0x18 ++ _obstack_allocated_p F ++ _obstack_begin F ++ _obstack_begin_1 F ++ _obstack_free F ++ _obstack_memory_used F ++ _obstack_newchunk F ++ _res D 0x238 ++ _res_hconf D 0x48 ++ _rpc_dtablesize F ++ _seterr_reply F ++ _setjmp F ++ _sys_errlist D 0x438 ++ _sys_nerr D 0x4 ++ _sys_siglist D 0x208 ++ _tolower F ++ _toupper F ++ a64l F ++ abort F ++ abs F ++ accept F ++ accept4 F ++ access F ++ acct F ++ addmntent F ++ addseverity F ++ adjtime F ++ adjtimex F ++ advance F ++ alarm F ++ aligned_alloc F ++ alphasort F ++ alphasort64 F ++ argp_err_exit_status D 0x4 ++ argp_error F ++ argp_failure F ++ argp_help F ++ argp_parse F ++ argp_program_bug_address D 0x8 ++ argp_program_version D 0x8 ++ argp_program_version_hook D 0x8 ++ argp_state_help F ++ argp_usage F ++ argz_add F ++ argz_add_sep F ++ argz_append F ++ argz_count F ++ argz_create F ++ argz_create_sep F ++ argz_delete F ++ argz_extract F ++ argz_insert F ++ argz_next F ++ argz_replace F ++ argz_stringify F ++ asctime F ++ asctime_r F ++ asprintf F ++ atof F ++ atoi F ++ atol F ++ atoll F ++ authdes_create F ++ authdes_getucred F ++ authdes_pk_create F ++ authnone_create F ++ authunix_create F ++ authunix_create_default F ++ backtrace F ++ backtrace_symbols F ++ backtrace_symbols_fd F ++ basename F ++ bcmp F ++ bcopy F ++ bdflush F ++ bind F ++ bind_textdomain_codeset F ++ bindresvport F ++ bindtextdomain F ++ brk F ++ bsd_signal F ++ bsearch F ++ btowc F ++ bzero F ++ c16rtomb F ++ c32rtomb F ++ calloc F ++ callrpc F ++ canonicalize_file_name F ++ capget F ++ capset F ++ catclose F ++ catgets F ++ catopen F ++ cbc_crypt F ++ cfgetispeed F ++ cfgetospeed F ++ cfmakeraw F ++ cfree F ++ cfsetispeed F ++ cfsetospeed F ++ cfsetspeed F ++ chdir F ++ chflags F ++ chmod F ++ chown F ++ chroot F ++ clearenv F ++ clearerr F ++ clearerr_unlocked F ++ clnt_broadcast F ++ clnt_create F ++ clnt_pcreateerror F ++ clnt_perrno F ++ clnt_perror F ++ clnt_spcreateerror F ++ clnt_sperrno F ++ clnt_sperror F ++ clntraw_create F ++ clnttcp_create F ++ clntudp_bufcreate F ++ clntudp_create F ++ clntunix_create F ++ clock F ++ clock_adjtime F ++ clock_getcpuclockid F ++ clock_getres F ++ clock_gettime F ++ clock_nanosleep F ++ clock_settime F ++ clone F ++ close F ++ closedir F ++ closelog F ++ confstr F ++ connect F ++ copysign F ++ copysignf F ++ copysignl F ++ creat F ++ creat64 F ++ create_module F ++ ctermid F ++ ctime F ++ ctime_r F ++ cuserid F ++ daemon F ++ daylight D 0x4 ++ dcgettext F ++ dcngettext F ++ delete_module F ++ des_setparity F ++ dgettext F ++ difftime F ++ dirfd F ++ dirname F ++ div F ++ dl_iterate_phdr F ++ dngettext F ++ dprintf F ++ drand48 F ++ drand48_r F ++ dup F ++ dup2 F ++ dup3 F ++ duplocale F ++ dysize F ++ eaccess F ++ ecb_crypt F ++ ecvt F ++ ecvt_r F ++ endaliasent F ++ endfsent F ++ endgrent F ++ endhostent F ++ endmntent F ++ endnetent F ++ endnetgrent F ++ endprotoent F ++ endpwent F ++ endrpcent F ++ endservent F ++ endsgent F ++ endspent F ++ endttyent F ++ endusershell F ++ endutent F ++ endutxent F ++ environ D 0x8 ++ envz_add F ++ envz_entry F ++ envz_get F ++ envz_merge F ++ envz_remove F ++ envz_strip F ++ epoll_create F ++ epoll_create1 F ++ epoll_ctl F ++ epoll_pwait F ++ epoll_wait F ++ erand48 F ++ erand48_r F ++ err F ++ error F ++ error_at_line F ++ error_message_count D 0x4 ++ error_one_per_line D 0x4 ++ error_print_progname D 0x8 ++ errx F ++ ether_aton F ++ ether_aton_r F ++ ether_hostton F ++ ether_line F ++ ether_ntoa F ++ ether_ntoa_r F ++ ether_ntohost F ++ euidaccess F ++ eventfd F ++ eventfd_read F ++ eventfd_write F ++ execl F ++ execle F ++ execlp F ++ execv F ++ execve F ++ execvp F ++ execvpe F ++ exit F ++ faccessat F ++ fallocate F ++ fallocate64 F ++ fanotify_init F ++ fanotify_mark F ++ fattach F ++ fchdir F ++ fchflags F ++ fchmod F ++ fchmodat F ++ fchown F ++ fchownat F ++ fclose F ++ fcloseall F ++ fcntl F ++ fcvt F ++ fcvt_r F ++ fdatasync F ++ fdetach F ++ fdopen F ++ fdopendir F ++ feof F ++ feof_unlocked F ++ ferror F ++ ferror_unlocked F ++ fexecve F ++ fflush F ++ fflush_unlocked F ++ ffs F ++ ffsl F ++ ffsll F ++ fgetc F ++ fgetc_unlocked F ++ fgetgrent F ++ fgetgrent_r F ++ fgetpos F ++ fgetpos64 F ++ fgetpwent F ++ fgetpwent_r F ++ fgets F ++ fgets_unlocked F ++ fgetsgent F ++ fgetsgent_r F ++ fgetspent F ++ fgetspent_r F ++ fgetwc F ++ fgetwc_unlocked F ++ fgetws F ++ fgetws_unlocked F ++ fgetxattr F ++ fileno F ++ fileno_unlocked F ++ finite F ++ finitef F ++ finitel F ++ flistxattr F ++ flock F ++ flockfile F ++ fmemopen F ++ fmtmsg F ++ fnmatch F ++ fopen F ++ fopen64 F ++ fopencookie F ++ fork F ++ fpathconf F ++ fprintf F ++ fputc F ++ fputc_unlocked F ++ fputs F ++ fputs_unlocked F ++ fputwc F ++ fputwc_unlocked F ++ fputws F ++ fputws_unlocked F ++ fread F ++ fread_unlocked F ++ free F ++ freeaddrinfo F ++ freeifaddrs F ++ freelocale F ++ fremovexattr F ++ freopen F ++ freopen64 F ++ frexp F ++ frexpf F ++ frexpl F ++ fscanf F ++ fseek F ++ fseeko F ++ fseeko64 F ++ fsetpos F ++ fsetpos64 F ++ fsetxattr F ++ fstatfs F ++ fstatfs64 F ++ fstatvfs F ++ fstatvfs64 F ++ fsync F ++ ftell F ++ ftello F ++ ftello64 F ++ ftime F ++ ftok F ++ ftruncate F ++ ftruncate64 F ++ ftrylockfile F ++ fts_children F ++ fts_close F ++ fts_open F ++ fts_read F ++ fts_set F ++ ftw F ++ ftw64 F ++ funlockfile F ++ futimens F ++ futimes F ++ futimesat F ++ fwide F ++ fwprintf F ++ fwrite F ++ fwrite_unlocked F ++ fwscanf F ++ gai_strerror F ++ gcvt F ++ get_avphys_pages F ++ get_current_dir_name F ++ get_kernel_syms F ++ get_myaddress F ++ get_nprocs F ++ get_nprocs_conf F ++ get_phys_pages F ++ getaddrinfo F ++ getaliasbyname F ++ getaliasbyname_r F ++ getaliasent F ++ getaliasent_r F ++ getauxval F ++ getc F ++ getc_unlocked F ++ getchar F ++ getchar_unlocked F ++ getcontext F ++ getcwd F ++ getdate F ++ getdate_err D 0x4 ++ getdate_r F ++ getdelim F ++ getdirentries F ++ getdirentries64 F ++ getdomainname F ++ getdtablesize F ++ getegid F ++ getenv F ++ geteuid F ++ getfsent F ++ getfsfile F ++ getfsspec F ++ getgid F ++ getgrent F ++ getgrent_r F ++ getgrgid F ++ getgrgid_r F ++ getgrnam F ++ getgrnam_r F ++ getgrouplist F ++ getgroups F ++ gethostbyaddr F ++ gethostbyaddr_r F ++ gethostbyname F ++ gethostbyname2 F ++ gethostbyname2_r F ++ gethostbyname_r F ++ gethostent F ++ gethostent_r F ++ gethostid F ++ gethostname F ++ getifaddrs F ++ getipv4sourcefilter F ++ getitimer F ++ getline F ++ getloadavg F ++ getlogin F ++ getlogin_r F ++ getmntent F ++ getmntent_r F ++ getmsg F ++ getnameinfo F ++ getnetbyaddr F ++ getnetbyaddr_r F ++ getnetbyname F ++ getnetbyname_r F ++ getnetent F ++ getnetent_r F ++ getnetgrent F ++ getnetgrent_r F ++ getnetname F ++ getopt F ++ getopt_long F ++ getopt_long_only F ++ getpagesize F ++ getpass F ++ getpeername F ++ getpgid F ++ getpgrp F ++ getpid F ++ getpmsg F ++ getppid F ++ getpriority F ++ getprotobyname F ++ getprotobyname_r F ++ getprotobynumber F ++ getprotobynumber_r F ++ getprotoent F ++ getprotoent_r F ++ getpt F ++ getpublickey F ++ getpw F ++ getpwent F ++ getpwent_r F ++ getpwnam F ++ getpwnam_r F ++ getpwuid F ++ getpwuid_r F ++ getresgid F ++ getresuid F ++ getrlimit F ++ getrlimit64 F ++ getrpcbyname F ++ getrpcbyname_r F ++ getrpcbynumber F ++ getrpcbynumber_r F ++ getrpcent F ++ getrpcent_r F ++ getrpcport F ++ getrusage F ++ gets F ++ getsecretkey F ++ getservbyname F ++ getservbyname_r F ++ getservbyport F ++ getservbyport_r F ++ getservent F ++ getservent_r F ++ getsgent F ++ getsgent_r F ++ getsgnam F ++ getsgnam_r F ++ getsid F ++ getsockname F ++ getsockopt F ++ getsourcefilter F ++ getspent F ++ getspent_r F ++ getspnam F ++ getspnam_r F ++ getsubopt F ++ gettext F ++ gettimeofday F ++ getttyent F ++ getttynam F ++ getuid F ++ getusershell F ++ getutent F ++ getutent_r F ++ getutid F ++ getutid_r F ++ getutline F ++ getutline_r F ++ getutmp F ++ getutmpx F ++ getutxent F ++ getutxid F ++ getutxline F ++ getw F ++ getwc F ++ getwc_unlocked F ++ getwchar F ++ getwchar_unlocked F ++ getwd F ++ getxattr F ++ glob F ++ glob64 F ++ glob_pattern_p F ++ globfree F ++ globfree64 F ++ gmtime F ++ gmtime_r F ++ gnu_dev_major F ++ gnu_dev_makedev F ++ gnu_dev_minor F ++ gnu_get_libc_release F ++ gnu_get_libc_version F ++ grantpt F ++ group_member F ++ gsignal F ++ gtty F ++ h_errlist D 0x28 ++ h_nerr D 0x4 ++ hasmntopt F ++ hcreate F ++ hcreate_r F ++ hdestroy F ++ hdestroy_r F ++ herror F ++ host2netname F ++ hsearch F ++ hsearch_r F ++ hstrerror F ++ htonl F ++ htons F ++ iconv F ++ iconv_close F ++ iconv_open F ++ if_freenameindex F ++ if_indextoname F ++ if_nameindex F ++ if_nametoindex F ++ imaxabs F ++ imaxdiv F ++ in6addr_any D 0x10 ++ in6addr_loopback D 0x10 ++ index F ++ inet6_opt_append F ++ inet6_opt_find F ++ inet6_opt_finish F ++ inet6_opt_get_val F ++ inet6_opt_init F ++ inet6_opt_next F ++ inet6_opt_set_val F ++ inet6_option_alloc F ++ inet6_option_append F ++ inet6_option_find F ++ inet6_option_init F ++ inet6_option_next F ++ inet6_option_space F ++ inet6_rth_add F ++ inet6_rth_getaddr F ++ inet6_rth_init F ++ inet6_rth_reverse F ++ inet6_rth_segments F ++ inet6_rth_space F ++ inet_addr F ++ inet_aton F ++ inet_lnaof F ++ inet_makeaddr F ++ inet_netof F ++ inet_network F ++ inet_nsap_addr F ++ inet_nsap_ntoa F ++ inet_ntoa F ++ inet_ntop F ++ inet_pton F ++ init_module F ++ initgroups F ++ initstate F ++ initstate_r F ++ innetgr F ++ inotify_add_watch F ++ inotify_init F ++ inotify_init1 F ++ inotify_rm_watch F ++ insque F ++ ioctl F ++ iruserok F ++ iruserok_af F ++ isalnum F ++ isalnum_l F ++ isalpha F ++ isalpha_l F ++ isascii F ++ isastream F ++ isatty F ++ isblank F ++ isblank_l F ++ iscntrl F ++ iscntrl_l F ++ isctype F ++ isdigit F ++ isdigit_l F ++ isfdtype F ++ isgraph F ++ isgraph_l F ++ isinf F ++ isinff F ++ isinfl F ++ islower F ++ islower_l F ++ isnan F ++ isnanf F ++ isnanl F ++ isprint F ++ isprint_l F ++ ispunct F ++ ispunct_l F ++ isspace F ++ isspace_l F ++ isupper F ++ isupper_l F ++ iswalnum F ++ iswalnum_l F ++ iswalpha F ++ iswalpha_l F ++ iswblank F ++ iswblank_l F ++ iswcntrl F ++ iswcntrl_l F ++ iswctype F ++ iswctype_l F ++ iswdigit F ++ iswdigit_l F ++ iswgraph F ++ iswgraph_l F ++ iswlower F ++ iswlower_l F ++ iswprint F ++ iswprint_l F ++ iswpunct F ++ iswpunct_l F ++ iswspace F ++ iswspace_l F ++ iswupper F ++ iswupper_l F ++ iswxdigit F ++ iswxdigit_l F ++ isxdigit F ++ isxdigit_l F ++ jrand48 F ++ jrand48_r F ++ key_decryptsession F ++ key_decryptsession_pk F ++ key_encryptsession F ++ key_encryptsession_pk F ++ key_gendes F ++ key_get_conv F ++ key_secretkey_is_set F ++ key_setnet F ++ key_setsecret F ++ kill F ++ killpg F ++ klogctl F ++ l64a F ++ labs F ++ lchmod F ++ lchown F ++ lckpwdf F ++ lcong48 F ++ lcong48_r F ++ ldexp F ++ ldexpf F ++ ldexpl F ++ ldiv F ++ lfind F ++ lgetxattr F ++ link F ++ linkat F ++ listen F ++ listxattr F ++ llabs F ++ lldiv F ++ llistxattr F ++ llseek F ++ loc1 D 0x8 ++ loc2 D 0x8 ++ localeconv F ++ localtime F ++ localtime_r F ++ lockf F ++ lockf64 F ++ locs D 0x8 ++ longjmp F ++ lrand48 F ++ lrand48_r F ++ lremovexattr F ++ lsearch F ++ lseek F ++ lseek64 F ++ lsetxattr F ++ lutimes F ++ madvise F ++ makecontext F ++ mallinfo F ++ malloc F ++ malloc_get_state F ++ malloc_info F ++ malloc_set_state F ++ malloc_stats F ++ malloc_trim F ++ malloc_usable_size F ++ mallopt F ++ mallwatch D 0x8 ++ mblen F ++ mbrlen F ++ mbrtoc16 F ++ mbrtoc32 F ++ mbrtowc F ++ mbsinit F ++ mbsnrtowcs F ++ mbsrtowcs F ++ mbstowcs F ++ mbtowc F ++ mcheck F ++ mcheck_check_all F ++ mcheck_pedantic F ++ memalign F ++ memccpy F ++ memchr F ++ memcmp F ++ memcpy F ++ memfrob F ++ memmem F ++ memmove F ++ mempcpy F ++ memrchr F ++ memset F ++ mincore F ++ mkdir F ++ mkdirat F ++ mkdtemp F ++ mkfifo F ++ mkfifoat F ++ mkostemp F ++ mkostemp64 F ++ mkostemps F ++ mkostemps64 F ++ mkstemp F ++ mkstemp64 F ++ mkstemps F ++ mkstemps64 F ++ mktemp F ++ mktime F ++ mlock F ++ mlockall F ++ mmap F ++ mmap64 F ++ modf F ++ modff F ++ modfl F ++ moncontrol F ++ monstartup F ++ mount F ++ mprobe F ++ mprotect F ++ mrand48 F ++ mrand48_r F ++ mremap F ++ msgctl F ++ msgget F ++ msgrcv F ++ msgsnd F ++ msync F ++ mtrace F ++ munlock F ++ munlockall F ++ munmap F ++ muntrace F ++ name_to_handle_at F ++ nanosleep F ++ netname2host F ++ netname2user F ++ newlocale F ++ nfsservctl F ++ nftw F ++ nftw64 F ++ ngettext F ++ nice F ++ nl_langinfo F ++ nl_langinfo_l F ++ nrand48 F ++ nrand48_r F ++ ntohl F ++ ntohs F ++ ntp_adjtime F ++ ntp_gettime F ++ ntp_gettimex F ++ obstack_alloc_failed_handler D 0x8 ++ obstack_exit_failure D 0x4 ++ obstack_free F ++ obstack_printf F ++ obstack_vprintf F ++ on_exit F ++ open F ++ open64 F ++ open_by_handle_at F ++ open_memstream F ++ open_wmemstream F ++ openat F ++ openat64 F ++ opendir F ++ openlog F ++ optarg D 0x8 ++ opterr D 0x4 ++ optind D 0x4 ++ optopt D 0x4 ++ parse_printf_format F ++ passwd2des F ++ pathconf F ++ pause F ++ pclose F ++ perror F ++ personality F ++ pipe F ++ pipe2 F ++ pivot_root F ++ pmap_getmaps F ++ pmap_getport F ++ pmap_rmtcall F ++ pmap_set F ++ pmap_unset F ++ poll F ++ popen F ++ posix_fadvise F ++ posix_fadvise64 F ++ posix_fallocate F ++ posix_fallocate64 F ++ posix_madvise F ++ posix_memalign F ++ posix_openpt F ++ posix_spawn F ++ posix_spawn_file_actions_addclose F ++ posix_spawn_file_actions_adddup2 F ++ posix_spawn_file_actions_addopen F ++ posix_spawn_file_actions_destroy F ++ posix_spawn_file_actions_init F ++ posix_spawnattr_destroy F ++ posix_spawnattr_getflags F ++ posix_spawnattr_getpgroup F ++ posix_spawnattr_getschedparam F ++ posix_spawnattr_getschedpolicy F ++ posix_spawnattr_getsigdefault F ++ posix_spawnattr_getsigmask F ++ posix_spawnattr_init F ++ posix_spawnattr_setflags F ++ posix_spawnattr_setpgroup F ++ posix_spawnattr_setschedparam F ++ posix_spawnattr_setschedpolicy F ++ posix_spawnattr_setsigdefault F ++ posix_spawnattr_setsigmask F ++ posix_spawnp F ++ ppoll F ++ prctl F ++ pread F ++ pread64 F ++ preadv F ++ preadv64 F ++ printf F ++ printf_size F ++ printf_size_info F ++ prlimit F ++ prlimit64 F ++ process_vm_readv F ++ process_vm_writev F ++ profil F ++ program_invocation_name D 0x8 ++ program_invocation_short_name D 0x8 ++ pselect F ++ psiginfo F ++ psignal F ++ pthread_attr_destroy F ++ pthread_attr_getdetachstate F ++ pthread_attr_getinheritsched F ++ pthread_attr_getschedparam F ++ pthread_attr_getschedpolicy F ++ pthread_attr_getscope F ++ pthread_attr_init F ++ pthread_attr_setdetachstate F ++ pthread_attr_setinheritsched F ++ pthread_attr_setschedparam F ++ pthread_attr_setschedpolicy F ++ pthread_attr_setscope F ++ pthread_cond_broadcast F ++ pthread_cond_destroy F ++ pthread_cond_init F ++ pthread_cond_signal F ++ pthread_cond_timedwait F ++ pthread_cond_wait F ++ pthread_condattr_destroy F ++ pthread_condattr_init F ++ pthread_equal F ++ pthread_exit F ++ pthread_getschedparam F ++ pthread_mutex_destroy F ++ pthread_mutex_init F ++ pthread_mutex_lock F ++ pthread_mutex_unlock F ++ pthread_self F ++ pthread_setcancelstate F ++ pthread_setcanceltype F ++ pthread_setschedparam F ++ ptrace F ++ ptsname F ++ ptsname_r F ++ putc F ++ putc_unlocked F ++ putchar F ++ putchar_unlocked F ++ putenv F ++ putgrent F ++ putmsg F ++ putpmsg F ++ putpwent F ++ puts F ++ putsgent F ++ putspent F ++ pututline F ++ pututxline F ++ putw F ++ putwc F ++ putwc_unlocked F ++ putwchar F ++ putwchar_unlocked F ++ pvalloc F ++ pwrite F ++ pwrite64 F ++ pwritev F ++ pwritev64 F ++ qecvt F ++ qecvt_r F ++ qfcvt F ++ qfcvt_r F ++ qgcvt F ++ qsort F ++ qsort_r F ++ query_module F ++ quick_exit F ++ quotactl F ++ raise F ++ rand F ++ rand_r F ++ random F ++ random_r F ++ rawmemchr F ++ rcmd F ++ rcmd_af F ++ re_comp F ++ re_compile_fastmap F ++ re_compile_pattern F ++ re_exec F ++ re_match F ++ re_match_2 F ++ re_search F ++ re_search_2 F ++ re_set_registers F ++ re_set_syntax F ++ re_syntax_options D 0x8 ++ read F ++ readahead F ++ readdir F ++ readdir64 F ++ readdir64_r F ++ readdir_r F ++ readlink F ++ readlinkat F ++ readv F ++ realloc F ++ realpath F ++ reboot F ++ recv F ++ recvfrom F ++ recvmmsg F ++ recvmsg F ++ regcomp F ++ regerror F ++ regexec F ++ regfree F ++ register_printf_function F ++ register_printf_modifier F ++ register_printf_specifier F ++ register_printf_type F ++ registerrpc F ++ remap_file_pages F ++ remove F ++ removexattr F ++ remque F ++ rename F ++ renameat F ++ revoke F ++ rewind F ++ rewinddir F ++ rexec F ++ rexec_af F ++ rexecoptions D 0x4 ++ rindex F ++ rmdir F ++ rpc_createerr D 0x20 ++ rpmatch F ++ rresvport F ++ rresvport_af F ++ rtime F ++ ruserok F ++ ruserok_af F ++ ruserpass F ++ sbrk F ++ scalbn F ++ scalbnf F ++ scalbnl F ++ scandir F ++ scandir64 F ++ scandirat F ++ scandirat64 F ++ scanf F ++ sched_get_priority_max F ++ sched_get_priority_min F ++ sched_getaffinity F ++ sched_getcpu F ++ sched_getparam F ++ sched_getscheduler F ++ sched_rr_get_interval F ++ sched_setaffinity F ++ sched_setparam F ++ sched_setscheduler F ++ sched_yield F ++ secure_getenv F ++ seed48 F ++ seed48_r F ++ seekdir F ++ select F ++ semctl F ++ semget F ++ semop F ++ semtimedop F ++ send F ++ sendfile F ++ sendfile64 F ++ sendmmsg F ++ sendmsg F ++ sendto F ++ setaliasent F ++ setbuf F ++ setbuffer F ++ setcontext F ++ setdomainname F ++ setegid F ++ setenv F ++ seteuid F ++ setfsent F ++ setfsgid F ++ setfsuid F ++ setgid F ++ setgrent F ++ setgroups F ++ sethostent F ++ sethostid F ++ sethostname F ++ setipv4sourcefilter F ++ setitimer F ++ setjmp F ++ setlinebuf F ++ setlocale F ++ setlogin F ++ setlogmask F ++ setmntent F ++ setnetent F ++ setnetgrent F ++ setns F ++ setpgid F ++ setpgrp F ++ setpriority F ++ setprotoent F ++ setpwent F ++ setregid F ++ setresgid F ++ setresuid F ++ setreuid F ++ setrlimit F ++ setrlimit64 F ++ setrpcent F ++ setservent F ++ setsgent F ++ setsid F ++ setsockopt F ++ setsourcefilter F ++ setspent F ++ setstate F ++ setstate_r F ++ settimeofday F ++ setttyent F ++ setuid F ++ setusershell F ++ setutent F ++ setutxent F ++ setvbuf F ++ setxattr F ++ sgetsgent F ++ sgetsgent_r F ++ sgetspent F ++ sgetspent_r F ++ shmat F ++ shmctl F ++ shmdt F ++ shmget F ++ shutdown F ++ sigaction F ++ sigaddset F ++ sigaltstack F ++ sigandset F ++ sigblock F ++ sigdelset F ++ sigemptyset F ++ sigfillset F ++ siggetmask F ++ sighold F ++ sigignore F ++ siginterrupt F ++ sigisemptyset F ++ sigismember F ++ siglongjmp F ++ signal F ++ signalfd F ++ sigorset F ++ sigpause F ++ sigpending F ++ sigprocmask F ++ sigqueue F ++ sigrelse F ++ sigreturn F ++ sigset F ++ sigsetmask F ++ sigstack F ++ sigsuspend F ++ sigtimedwait F ++ sigvec F ++ sigwait F ++ sigwaitinfo F ++ sleep F ++ snprintf F ++ sockatmark F ++ socket F ++ socketpair F ++ splice F ++ sprintf F ++ sprofil F ++ srand F ++ srand48 F ++ srand48_r F ++ srandom F ++ srandom_r F ++ sscanf F ++ ssignal F ++ sstk F ++ statfs F ++ statfs64 F ++ statvfs F ++ statvfs64 F ++ stderr D 0x8 ++ stdin D 0x8 ++ stdout D 0x8 ++ step F ++ stime F ++ stpcpy F ++ stpncpy F ++ strcasecmp F ++ strcasecmp_l F ++ strcasestr F ++ strcat F ++ strchr F ++ strchrnul F ++ strcmp F ++ strcoll F ++ strcoll_l F ++ strcpy F ++ strcspn F ++ strdup F ++ strerror F ++ strerror_l F ++ strerror_r F ++ strfmon F ++ strfmon_l F ++ strfry F ++ strftime F ++ strftime_l F ++ strlen F ++ strncasecmp F ++ strncasecmp_l F ++ strncat F ++ strncmp F ++ strncpy F ++ strndup F ++ strnlen F ++ strpbrk F ++ strptime F ++ strptime_l F ++ strrchr F ++ strsep F ++ strsignal F ++ strspn F ++ strstr F ++ strtod F ++ strtod_l F ++ strtof F ++ strtof_l F ++ strtoimax F ++ strtok F ++ strtok_r F ++ strtol F ++ strtol_l F ++ strtold F ++ strtold_l F ++ strtoll F ++ strtoll_l F ++ strtoq F ++ strtoul F ++ strtoul_l F ++ strtoull F ++ strtoull_l F ++ strtoumax F ++ strtouq F ++ strverscmp F ++ strxfrm F ++ strxfrm_l F ++ stty F ++ svc_exit F ++ svc_fdset D 0x80 ++ svc_getreq F ++ svc_getreq_common F ++ svc_getreq_poll F ++ svc_getreqset F ++ svc_max_pollfd D 0x4 ++ svc_pollfd D 0x8 ++ svc_register F ++ svc_run F ++ svc_sendreply F ++ svc_unregister F ++ svcauthdes_stats D 0x18 ++ svcerr_auth F ++ svcerr_decode F ++ svcerr_noproc F ++ svcerr_noprog F ++ svcerr_progvers F ++ svcerr_systemerr F ++ svcerr_weakauth F ++ svcfd_create F ++ svcraw_create F ++ svctcp_create F ++ svcudp_bufcreate F ++ svcudp_create F ++ svcudp_enablecache F ++ svcunix_create F ++ svcunixfd_create F ++ swab F ++ swapcontext F ++ swapoff F ++ swapon F ++ swprintf F ++ swscanf F ++ symlink F ++ symlinkat F ++ sync F ++ sync_file_range F ++ syncfs F ++ sys_errlist D 0x438 ++ sys_nerr D 0x4 ++ sys_sigabbrev D 0x208 ++ sys_siglist D 0x208 ++ syscall F ++ sysconf F ++ sysctl F ++ sysinfo F ++ syslog F ++ system F ++ sysv_signal F ++ tcdrain F ++ tcflow F ++ tcflush F ++ tcgetattr F ++ tcgetpgrp F ++ tcgetsid F ++ tcsendbreak F ++ tcsetattr F ++ tcsetpgrp F ++ tdelete F ++ tdestroy F ++ tee F ++ telldir F ++ tempnam F ++ textdomain F ++ tfind F ++ time F ++ timegm F ++ timelocal F ++ timerfd_create F ++ timerfd_gettime F ++ timerfd_settime F ++ times F ++ timespec_get F ++ timezone D 0x8 ++ tmpfile F ++ tmpfile64 F ++ tmpnam F ++ tmpnam_r F ++ toascii F ++ tolower F ++ tolower_l F ++ toupper F ++ toupper_l F ++ towctrans F ++ towctrans_l F ++ towlower F ++ towlower_l F ++ towupper F ++ towupper_l F ++ tr_break F ++ truncate F ++ truncate64 F ++ tsearch F ++ ttyname F ++ ttyname_r F ++ ttyslot F ++ twalk F ++ tzname D 0x10 ++ tzset F ++ ualarm F ++ ulckpwdf F ++ ulimit F ++ umask F ++ umount F ++ umount2 F ++ uname F ++ ungetc F ++ ungetwc F ++ unlink F ++ unlinkat F ++ unlockpt F ++ unsetenv F ++ unshare F ++ updwtmp F ++ updwtmpx F ++ uselib F ++ uselocale F ++ user2netname F ++ usleep F ++ ustat F ++ utime F ++ utimensat F ++ utimes F ++ utmpname F ++ utmpxname F ++ valloc F ++ vasprintf F ++ vdprintf F ++ verr F ++ verrx F ++ versionsort F ++ versionsort64 F ++ vfork F ++ vfprintf F ++ vfscanf F ++ vfwprintf F ++ vfwscanf F ++ vhangup F ++ vlimit F ++ vmsplice F ++ vprintf F ++ vscanf F ++ vsnprintf F ++ vsprintf F ++ vsscanf F ++ vswprintf F ++ vswscanf F ++ vsyslog F ++ vtimes F ++ vwarn F ++ vwarnx F ++ vwprintf F ++ vwscanf F ++ wait F ++ wait3 F ++ wait4 F ++ waitid F ++ waitpid F ++ warn F ++ warnx F ++ wcpcpy F ++ wcpncpy F ++ wcrtomb F ++ wcscasecmp F ++ wcscasecmp_l F ++ wcscat F ++ wcschr F ++ wcschrnul F ++ wcscmp F ++ wcscoll F ++ wcscoll_l F ++ wcscpy F ++ wcscspn F ++ wcsdup F ++ wcsftime F ++ wcsftime_l F ++ wcslen F ++ wcsncasecmp F ++ wcsncasecmp_l F ++ wcsncat F ++ wcsncmp F ++ wcsncpy F ++ wcsnlen F ++ wcsnrtombs F ++ wcspbrk F ++ wcsrchr F ++ wcsrtombs F ++ wcsspn F ++ wcsstr F ++ wcstod F ++ wcstod_l F ++ wcstof F ++ wcstof_l F ++ wcstoimax F ++ wcstok F ++ wcstol F ++ wcstol_l F ++ wcstold F ++ wcstold_l F ++ wcstoll F ++ wcstoll_l F ++ wcstombs F ++ wcstoq F ++ wcstoul F ++ wcstoul_l F ++ wcstoull F ++ wcstoull_l F ++ wcstoumax F ++ wcstouq F ++ wcswcs F ++ wcswidth F ++ wcsxfrm F ++ wcsxfrm_l F ++ wctob F ++ wctomb F ++ wctrans F ++ wctrans_l F ++ wctype F ++ wctype_l F ++ wcwidth F ++ wmemchr F ++ wmemcmp F ++ wmemcpy F ++ wmemmove F ++ wmempcpy F ++ wmemset F ++ wordexp F ++ wordfree F ++ wprintf F ++ write F ++ writev F ++ wscanf F ++ xdecrypt F ++ xdr_accepted_reply F ++ xdr_array F ++ xdr_authdes_cred F ++ xdr_authdes_verf F ++ xdr_authunix_parms F ++ xdr_bool F ++ xdr_bytes F ++ xdr_callhdr F ++ xdr_callmsg F ++ xdr_char F ++ xdr_cryptkeyarg F ++ xdr_cryptkeyarg2 F ++ xdr_cryptkeyres F ++ xdr_des_block F ++ xdr_double F ++ xdr_enum F ++ xdr_float F ++ xdr_free F ++ xdr_getcredres F ++ xdr_hyper F ++ xdr_int F ++ xdr_int16_t F ++ xdr_int32_t F ++ xdr_int64_t F ++ xdr_int8_t F ++ xdr_key_netstarg F ++ xdr_key_netstres F ++ xdr_keybuf F ++ xdr_keystatus F ++ xdr_long F ++ xdr_longlong_t F ++ xdr_netnamestr F ++ xdr_netobj F ++ xdr_opaque F ++ xdr_opaque_auth F ++ xdr_pmap F ++ xdr_pmaplist F ++ xdr_pointer F ++ xdr_quad_t F ++ xdr_reference F ++ xdr_rejected_reply F ++ xdr_replymsg F ++ xdr_rmtcall_args F ++ xdr_rmtcallres F ++ xdr_short F ++ xdr_sizeof F ++ xdr_string F ++ xdr_u_char F ++ xdr_u_hyper F ++ xdr_u_int F ++ xdr_u_long F ++ xdr_u_longlong_t F ++ xdr_u_quad_t F ++ xdr_u_short F ++ xdr_uint16_t F ++ xdr_uint32_t F ++ xdr_uint64_t F ++ xdr_uint8_t F ++ xdr_union F ++ xdr_unixcred F ++ xdr_vector F ++ xdr_void F ++ xdr_wrapstring F ++ xdrmem_create F ++ xdrrec_create F ++ xdrrec_endofrecord F ++ xdrrec_eof F ++ xdrrec_skiprecord F ++ xdrstdio_create F ++ xencrypt F ++ xprt_register F ++ xprt_unregister F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt-le.abilist +@@ -0,0 +1,9 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ crypt F ++ crypt_r F ++ encrypt F ++ encrypt_r F ++ fcrypt F ++ setkey F ++ setkey_r F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl-le.abilist +@@ -0,0 +1,11 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ dladdr F ++ dladdr1 F ++ dlclose F ++ dlerror F ++ dlinfo F ++ dlmopen F ++ dlopen F ++ dlsym F ++ dlvsym F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm-le.abilist +@@ -0,0 +1,405 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ _LIB_VERSION D 0x4 ++ __acos_finite F ++ __acosf_finite F ++ __acosh_finite F ++ __acoshf_finite F ++ __acoshl_finite F ++ __acosl_finite F ++ __asin_finite F ++ __asinf_finite F ++ __asinl_finite F ++ __atan2_finite F ++ __atan2f_finite F ++ __atan2l_finite F ++ __atanh_finite F ++ __atanhf_finite F ++ __atanhl_finite F ++ __clog10 F ++ __clog10f F ++ __clog10l F ++ __cosh_finite F ++ __coshf_finite F ++ __coshl_finite F ++ __exp10_finite F ++ __exp10f_finite F ++ __exp10l_finite F ++ __exp2_finite F ++ __exp2f_finite F ++ __exp2l_finite F ++ __exp_finite F ++ __expf_finite F ++ __expl_finite F ++ __fe_dfl_env D 0x8 ++ __fe_enabled_env D 0x8 ++ __fe_nomask_env F ++ __fe_nonieee_env D 0x8 ++ __finite F ++ __finitef F ++ __finitel F ++ __fmod_finite F ++ __fmodf_finite F ++ __fmodl_finite F ++ __fpclassify F ++ __fpclassifyf F ++ __fpclassifyl F ++ __gamma_r_finite F ++ __gammaf_r_finite F ++ __gammal_r_finite F ++ __hypot_finite F ++ __hypotf_finite F ++ __hypotl_finite F ++ __issignaling F ++ __issignalingf F ++ __issignalingl F ++ __j0_finite F ++ __j0f_finite F ++ __j0l_finite F ++ __j1_finite F ++ __j1f_finite F ++ __j1l_finite F ++ __jn_finite F ++ __jnf_finite F ++ __jnl_finite F ++ __lgamma_r_finite F ++ __lgammaf_r_finite F ++ __lgammal_r_finite F ++ __log10_finite F ++ __log10f_finite F ++ __log10l_finite F ++ __log2_finite F ++ __log2f_finite F ++ __log2l_finite F ++ __log_finite F ++ __logf_finite F ++ __logl_finite F ++ __nldbl_nexttowardf F ++ __pow_finite F ++ __powf_finite F ++ __powl_finite F ++ __remainder_finite F ++ __remainderf_finite F ++ __remainderl_finite F ++ __scalb_finite F ++ __scalbf_finite F ++ __scalbl_finite F ++ __signbit F ++ __signbitf F ++ __signbitl F ++ __sinh_finite F ++ __sinhf_finite F ++ __sinhl_finite F ++ __sqrt_finite F ++ __sqrtf_finite F ++ __sqrtl_finite F ++ __y0_finite F ++ __y0f_finite F ++ __y0l_finite F ++ __y1_finite F ++ __y1f_finite F ++ __y1l_finite F ++ __yn_finite F ++ __ynf_finite F ++ __ynl_finite F ++ acos F ++ acosf F ++ acosh F ++ acoshf F ++ acoshl F ++ acosl F ++ asin F ++ asinf F ++ asinh F ++ asinhf F ++ asinhl F ++ asinl F ++ atan F ++ atan2 F ++ atan2f F ++ atan2l F ++ atanf F ++ atanh F ++ atanhf F ++ atanhl F ++ atanl F ++ cabs F ++ cabsf F ++ cabsl F ++ cacos F ++ cacosf F ++ cacosh F ++ cacoshf F ++ cacoshl F ++ cacosl F ++ carg F ++ cargf F ++ cargl F ++ casin F ++ casinf F ++ casinh F ++ casinhf F ++ casinhl F ++ casinl F ++ catan F ++ catanf F ++ catanh F ++ catanhf F ++ catanhl F ++ catanl F ++ cbrt F ++ cbrtf F ++ cbrtl F ++ ccos F ++ ccosf F ++ ccosh F ++ ccoshf F ++ ccoshl F ++ ccosl F ++ ceil F ++ ceilf F ++ ceill F ++ cexp F ++ cexpf F ++ cexpl F ++ cimag F ++ cimagf F ++ cimagl F ++ clog F ++ clog10 F ++ clog10f F ++ clog10l F ++ clogf F ++ clogl F ++ conj F ++ conjf F ++ conjl F ++ copysign F ++ copysignf F ++ copysignl F ++ cos F ++ cosf F ++ cosh F ++ coshf F ++ coshl F ++ cosl F ++ cpow F ++ cpowf F ++ cpowl F ++ cproj F ++ cprojf F ++ cprojl F ++ creal F ++ crealf F ++ creall F ++ csin F ++ csinf F ++ csinh F ++ csinhf F ++ csinhl F ++ csinl F ++ csqrt F ++ csqrtf F ++ csqrtl F ++ ctan F ++ ctanf F ++ ctanh F ++ ctanhf F ++ ctanhl F ++ ctanl F ++ drem F ++ dremf F ++ dreml F ++ erf F ++ erfc F ++ erfcf F ++ erfcl F ++ erff F ++ erfl F ++ exp F ++ exp10 F ++ exp10f F ++ exp10l F ++ exp2 F ++ exp2f F ++ exp2l F ++ expf F ++ expl F ++ expm1 F ++ expm1f F ++ expm1l F ++ fabs F ++ fabsf F ++ fabsl F ++ fdim F ++ fdimf F ++ fdiml F ++ feclearexcept F ++ fedisableexcept F ++ feenableexcept F ++ fegetenv F ++ fegetexcept F ++ fegetexceptflag F ++ fegetround F ++ feholdexcept F ++ feraiseexcept F ++ fesetenv F ++ fesetexceptflag F ++ fesetround F ++ fetestexcept F ++ feupdateenv F ++ finite F ++ finitef F ++ finitel F ++ floor F ++ floorf F ++ floorl F ++ fma F ++ fmaf F ++ fmal F ++ fmax F ++ fmaxf F ++ fmaxl F ++ fmin F ++ fminf F ++ fminl F ++ fmod F ++ fmodf F ++ fmodl F ++ frexp F ++ frexpf F ++ frexpl F ++ gamma F ++ gammaf F ++ gammal F ++ hypot F ++ hypotf F ++ hypotl F ++ ilogb F ++ ilogbf F ++ ilogbl F ++ j0 F ++ j0f F ++ j0l F ++ j1 F ++ j1f F ++ j1l F ++ jn F ++ jnf F ++ jnl F ++ ldexp F ++ ldexpf F ++ ldexpl F ++ lgamma F ++ lgamma_r F ++ lgammaf F ++ lgammaf_r F ++ lgammal F ++ lgammal_r F ++ llrint F ++ llrintf F ++ llrintl F ++ llround F ++ llroundf F ++ llroundl F ++ log F ++ log10 F ++ log10f F ++ log10l F ++ log1p F ++ log1pf F ++ log1pl F ++ log2 F ++ log2f F ++ log2l F ++ logb F ++ logbf F ++ logbl F ++ logf F ++ logl F ++ lrint F ++ lrintf F ++ lrintl F ++ lround F ++ lroundf F ++ lroundl F ++ matherr F ++ modf F ++ modff F ++ modfl F ++ nan F ++ nanf F ++ nanl F ++ nearbyint F ++ nearbyintf F ++ nearbyintl F ++ nextafter F ++ nextafterf F ++ nextafterl F ++ nexttoward F ++ nexttowardf F ++ nexttowardl F ++ pow F ++ pow10 F ++ pow10f F ++ pow10l F ++ powf F ++ powl F ++ remainder F ++ remainderf F ++ remainderl F ++ remquo F ++ remquof F ++ remquol F ++ rint F ++ rintf F ++ rintl F ++ round F ++ roundf F ++ roundl F ++ scalb F ++ scalbf F ++ scalbl F ++ scalbln F ++ scalblnf F ++ scalblnl F ++ scalbn F ++ scalbnf F ++ scalbnl F ++ signgam D 0x4 ++ significand F ++ significandf F ++ significandl F ++ sin F ++ sincos F ++ sincosf F ++ sincosl F ++ sinf F ++ sinh F ++ sinhf F ++ sinhl F ++ sinl F ++ sqrt F ++ sqrtf F ++ sqrtl F ++ tan F ++ tanf F ++ tanh F ++ tanhf F ++ tanhl F ++ tanl F ++ tgamma F ++ tgammaf F ++ tgammal F ++ trunc F ++ truncf F ++ truncl F ++ y0 F ++ y0f F ++ y0l F ++ y1 F ++ y1f F ++ y1l F ++ yn F ++ ynf F ++ ynl F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl-le.abilist +@@ -0,0 +1,123 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ __free_fdresult F ++ __nis_default_access F ++ __nis_default_group F ++ __nis_default_owner F ++ __nis_default_ttl F ++ __nis_finddirectory F ++ __nis_hash F ++ __nisbind_connect F ++ __nisbind_create F ++ __nisbind_destroy F ++ __nisbind_next F ++ __yp_check F ++ nis_add F ++ nis_add_entry F ++ nis_addmember F ++ nis_checkpoint F ++ nis_clone_directory F ++ nis_clone_object F ++ nis_clone_result F ++ nis_creategroup F ++ nis_destroy_object F ++ nis_destroygroup F ++ nis_dir_cmp F ++ nis_domain_of F ++ nis_domain_of_r F ++ nis_first_entry F ++ nis_free_directory F ++ nis_free_object F ++ nis_free_request F ++ nis_freenames F ++ nis_freeresult F ++ nis_freeservlist F ++ nis_freetags F ++ nis_getnames F ++ nis_getservlist F ++ nis_ismember F ++ nis_leaf_of F ++ nis_leaf_of_r F ++ nis_lerror F ++ nis_list F ++ nis_local_directory F ++ nis_local_group F ++ nis_local_host F ++ nis_local_principal F ++ nis_lookup F ++ nis_mkdir F ++ nis_modify F ++ nis_modify_entry F ++ nis_name_of F ++ nis_name_of_r F ++ nis_next_entry F ++ nis_perror F ++ nis_ping F ++ nis_print_directory F ++ nis_print_entry F ++ nis_print_group F ++ nis_print_group_entry F ++ nis_print_link F ++ nis_print_object F ++ nis_print_result F ++ nis_print_rights F ++ nis_print_table F ++ nis_read_obj F ++ nis_remove F ++ nis_remove_entry F ++ nis_removemember F ++ nis_rmdir F ++ nis_servstate F ++ nis_sperrno F ++ nis_sperror F ++ nis_sperror_r F ++ nis_stats F ++ nis_verifygroup F ++ nis_write_obj F ++ readColdStartFile F ++ writeColdStartFile F ++ xdr_cback_data F ++ xdr_domainname F ++ xdr_keydat F ++ xdr_mapname F ++ xdr_obj_p F ++ xdr_peername F ++ xdr_valdat F ++ xdr_yp_buf F ++ xdr_ypall F ++ xdr_ypbind_binding F ++ xdr_ypbind_resp F ++ xdr_ypbind_resptype F ++ xdr_ypbind_setdom F ++ xdr_ypdelete_args F ++ xdr_ypmap_parms F ++ xdr_ypmaplist F ++ xdr_yppush_status F ++ xdr_yppushresp_xfr F ++ xdr_ypreq_key F ++ xdr_ypreq_nokey F ++ xdr_ypreq_xfr F ++ xdr_ypresp_all F ++ xdr_ypresp_key_val F ++ xdr_ypresp_maplist F ++ xdr_ypresp_master F ++ xdr_ypresp_order F ++ xdr_ypresp_val F ++ xdr_ypresp_xfr F ++ xdr_ypstat F ++ xdr_ypupdate_args F ++ xdr_ypxfrstat F ++ yp_all F ++ yp_bind F ++ yp_first F ++ yp_get_default_domain F ++ yp_maplist F ++ yp_master F ++ yp_match F ++ yp_next F ++ yp_order F ++ yp_unbind F ++ yp_update F ++ ypbinderr_string F ++ yperr_string F ++ ypprot_err F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread-le.abilist +@@ -0,0 +1,226 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ _IO_flockfile F ++ _IO_ftrylockfile F ++ _IO_funlockfile F ++ __close F ++ __connect F ++ __errno_location F ++ __fcntl F ++ __fork F ++ __h_errno_location F ++ __libc_allocate_rtsig F ++ __libc_current_sigrtmax F ++ __libc_current_sigrtmin F ++ __lseek F ++ __nanosleep F ++ __open F ++ __open64 F ++ __pread64 F ++ __pthread_cleanup_routine F ++ __pthread_getspecific F ++ __pthread_key_create F ++ __pthread_mutex_destroy F ++ __pthread_mutex_init F ++ __pthread_mutex_lock F ++ __pthread_mutex_trylock F ++ __pthread_mutex_unlock F ++ __pthread_mutexattr_destroy F ++ __pthread_mutexattr_init F ++ __pthread_mutexattr_settype F ++ __pthread_once F ++ __pthread_register_cancel F ++ __pthread_register_cancel_defer F ++ __pthread_rwlock_destroy F ++ __pthread_rwlock_init F ++ __pthread_rwlock_rdlock F ++ __pthread_rwlock_tryrdlock F ++ __pthread_rwlock_trywrlock F ++ __pthread_rwlock_unlock F ++ __pthread_rwlock_wrlock F ++ __pthread_setspecific F ++ __pthread_unregister_cancel F ++ __pthread_unregister_cancel_restore F ++ __pthread_unwind_next F ++ __pwrite64 F ++ __read F ++ __res_state F ++ __send F ++ __sigaction F ++ __vfork F ++ __wait F ++ __write F ++ _pthread_cleanup_pop F ++ _pthread_cleanup_pop_restore F ++ _pthread_cleanup_push F ++ _pthread_cleanup_push_defer F ++ accept F ++ close F ++ connect F ++ fcntl F ++ flockfile F ++ fork F ++ fsync F ++ ftrylockfile F ++ funlockfile F ++ longjmp F ++ lseek F ++ lseek64 F ++ msync F ++ nanosleep F ++ open F ++ open64 F ++ pause F ++ pread F ++ pread64 F ++ pthread_attr_destroy F ++ pthread_attr_getaffinity_np F ++ pthread_attr_getdetachstate F ++ pthread_attr_getguardsize F ++ pthread_attr_getinheritsched F ++ pthread_attr_getschedparam F ++ pthread_attr_getschedpolicy F ++ pthread_attr_getscope F ++ pthread_attr_getstack F ++ pthread_attr_getstackaddr F ++ pthread_attr_getstacksize F ++ pthread_attr_init F ++ pthread_attr_setaffinity_np F ++ pthread_attr_setdetachstate F ++ pthread_attr_setguardsize F ++ pthread_attr_setinheritsched F ++ pthread_attr_setschedparam F ++ pthread_attr_setschedpolicy F ++ pthread_attr_setscope F ++ pthread_attr_setstack F ++ pthread_attr_setstackaddr F ++ pthread_attr_setstacksize F ++ pthread_barrier_destroy F ++ pthread_barrier_init F ++ pthread_barrier_wait F ++ pthread_barrierattr_destroy F ++ pthread_barrierattr_getpshared F ++ pthread_barrierattr_init F ++ pthread_barrierattr_setpshared F ++ pthread_cancel F ++ pthread_cond_broadcast F ++ pthread_cond_destroy F ++ pthread_cond_init F ++ pthread_cond_signal F ++ pthread_cond_timedwait F ++ pthread_cond_wait F ++ pthread_condattr_destroy F ++ pthread_condattr_getclock F ++ pthread_condattr_getpshared F ++ pthread_condattr_init F ++ pthread_condattr_setclock F ++ pthread_condattr_setpshared F ++ pthread_create F ++ pthread_detach F ++ pthread_equal F ++ pthread_exit F ++ pthread_getaffinity_np F ++ pthread_getattr_default_np F ++ pthread_getattr_np F ++ pthread_getconcurrency F ++ pthread_getcpuclockid F ++ pthread_getname_np F ++ pthread_getschedparam F ++ pthread_getspecific F ++ pthread_join F ++ pthread_key_create F ++ pthread_key_delete F ++ pthread_kill F ++ pthread_kill_other_threads_np F ++ pthread_mutex_consistent F ++ pthread_mutex_consistent_np F ++ pthread_mutex_destroy F ++ pthread_mutex_getprioceiling F ++ pthread_mutex_init F ++ pthread_mutex_lock F ++ pthread_mutex_setprioceiling F ++ pthread_mutex_timedlock F ++ pthread_mutex_trylock F ++ pthread_mutex_unlock F ++ pthread_mutexattr_destroy F ++ pthread_mutexattr_getkind_np F ++ pthread_mutexattr_getprioceiling F ++ pthread_mutexattr_getprotocol F ++ pthread_mutexattr_getpshared F ++ pthread_mutexattr_getrobust F ++ pthread_mutexattr_getrobust_np F ++ pthread_mutexattr_gettype F ++ pthread_mutexattr_init F ++ pthread_mutexattr_setkind_np F ++ pthread_mutexattr_setprioceiling F ++ pthread_mutexattr_setprotocol F ++ pthread_mutexattr_setpshared F ++ pthread_mutexattr_setrobust F ++ pthread_mutexattr_setrobust_np F ++ pthread_mutexattr_settype F ++ pthread_once F ++ pthread_rwlock_destroy F ++ pthread_rwlock_init F ++ pthread_rwlock_rdlock F ++ pthread_rwlock_timedrdlock F ++ pthread_rwlock_timedwrlock F ++ pthread_rwlock_tryrdlock F ++ pthread_rwlock_trywrlock F ++ pthread_rwlock_unlock F ++ pthread_rwlock_wrlock F ++ pthread_rwlockattr_destroy F ++ pthread_rwlockattr_getkind_np F ++ pthread_rwlockattr_getpshared F ++ pthread_rwlockattr_init F ++ pthread_rwlockattr_setkind_np F ++ pthread_rwlockattr_setpshared F ++ pthread_self F ++ pthread_setaffinity_np F ++ pthread_setattr_default_np F ++ pthread_setcancelstate F ++ pthread_setcanceltype F ++ pthread_setconcurrency F ++ pthread_setname_np F ++ pthread_setschedparam F ++ pthread_setschedprio F ++ pthread_setspecific F ++ pthread_sigmask F ++ pthread_sigqueue F ++ pthread_spin_destroy F ++ pthread_spin_init F ++ pthread_spin_lock F ++ pthread_spin_trylock F ++ pthread_spin_unlock F ++ pthread_testcancel F ++ pthread_timedjoin_np F ++ pthread_tryjoin_np F ++ pthread_yield F ++ pwrite F ++ pwrite64 F ++ raise F ++ read F ++ recv F ++ recvfrom F ++ recvmsg F ++ sem_close F ++ sem_destroy F ++ sem_getvalue F ++ sem_init F ++ sem_open F ++ sem_post F ++ sem_timedwait F ++ sem_trywait F ++ sem_unlink F ++ sem_wait F ++ send F ++ sendmsg F ++ sendto F ++ sigaction F ++ siglongjmp F ++ sigwait F ++ system F ++ tcdrain F ++ vfork F ++ wait F ++ waitpid F ++ write F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv-le.abilist +@@ -0,0 +1,93 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ __b64_ntop F ++ __b64_pton F ++ __dn_comp F ++ __dn_count_labels F ++ __dn_expand F ++ __dn_skipname F ++ __fp_nquery F ++ __fp_query F ++ __fp_resstat F ++ __hostalias F ++ __loc_aton F ++ __loc_ntoa F ++ __p_cdname F ++ __p_cdnname F ++ __p_class F ++ __p_class_syms D 0xa8 ++ __p_fqname F ++ __p_fqnname F ++ __p_option F ++ __p_query F ++ __p_rcode F ++ __p_secstodate F ++ __p_time F ++ __p_type F ++ __p_type_syms D 0x450 ++ __putlong F ++ __putshort F ++ __res_close F ++ __res_dnok F ++ __res_hnok F ++ __res_hostalias F ++ __res_isourserver F ++ __res_mailok F ++ __res_mkquery F ++ __res_nameinquery F ++ __res_nmkquery F ++ __res_nquery F ++ __res_nquerydomain F ++ __res_nsearch F ++ __res_nsend F ++ __res_ownok F ++ __res_queriesmatch F ++ __res_query F ++ __res_querydomain F ++ __res_search F ++ __res_send F ++ __sym_ntop F ++ __sym_ntos F ++ __sym_ston F ++ _gethtbyaddr F ++ _gethtbyname F ++ _gethtbyname2 F ++ _gethtent F ++ _getlong F ++ _getshort F ++ _res_opcodes D 0x80 ++ _sethtent F ++ inet_net_ntop F ++ inet_net_pton F ++ inet_neta F ++ ns_datetosecs F ++ ns_format_ttl F ++ ns_get16 F ++ ns_get32 F ++ ns_initparse F ++ ns_makecanon F ++ ns_msg_getflag F ++ ns_name_compress F ++ ns_name_ntol F ++ ns_name_ntop F ++ ns_name_pack F ++ ns_name_pton F ++ ns_name_rollback F ++ ns_name_skip F ++ ns_name_uncompress F ++ ns_name_unpack F ++ ns_parse_ttl F ++ ns_parserr F ++ ns_put16 F ++ ns_put32 F ++ ns_samedomain F ++ ns_samename F ++ ns_skiprr F ++ ns_sprintrr F ++ ns_sprintrrf F ++ ns_subdomain F ++ res_gethostbyaddr F ++ res_gethostbyname F ++ res_gethostbyname2 F ++ res_send_setqhook F ++ res_send_setrhook F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt-le.abilist +@@ -0,0 +1,42 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ __mq_open_2 F ++ aio_cancel F ++ aio_cancel64 F ++ aio_error F ++ aio_error64 F ++ aio_fsync F ++ aio_fsync64 F ++ aio_init F ++ aio_read F ++ aio_read64 F ++ aio_return F ++ aio_return64 F ++ aio_suspend F ++ aio_suspend64 F ++ aio_write F ++ aio_write64 F ++ clock_getcpuclockid F ++ clock_getres F ++ clock_gettime F ++ clock_nanosleep F ++ clock_settime F ++ lio_listio F ++ lio_listio64 F ++ mq_close F ++ mq_getattr F ++ mq_notify F ++ mq_open F ++ mq_receive F ++ mq_send F ++ mq_setattr F ++ mq_timedreceive F ++ mq_timedsend F ++ mq_unlink F ++ shm_open F ++ shm_unlink F ++ timer_create F ++ timer_delete F ++ timer_getoverrun F ++ timer_gettime F ++ timer_settime F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db-le.abilist +@@ -0,0 +1,42 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ td_init F ++ td_log F ++ td_symbol_list F ++ td_ta_clear_event F ++ td_ta_delete F ++ td_ta_enable_stats F ++ td_ta_event_addr F ++ td_ta_event_getmsg F ++ td_ta_get_nthreads F ++ td_ta_get_ph F ++ td_ta_get_stats F ++ td_ta_map_id2thr F ++ td_ta_map_lwp2thr F ++ td_ta_new F ++ td_ta_reset_stats F ++ td_ta_set_event F ++ td_ta_setconcurrency F ++ td_ta_thr_iter F ++ td_ta_tsd_iter F ++ td_thr_clear_event F ++ td_thr_dbresume F ++ td_thr_dbsuspend F ++ td_thr_event_enable F ++ td_thr_event_getmsg F ++ td_thr_get_info F ++ td_thr_getfpregs F ++ td_thr_getgregs F ++ td_thr_getxregs F ++ td_thr_getxregsize F ++ td_thr_set_event F ++ td_thr_setfpregs F ++ td_thr_setgregs F ++ td_thr_setprio F ++ td_thr_setsigpending F ++ td_thr_setxregs F ++ td_thr_sigsetmask F ++ td_thr_tls_get_addr F ++ td_thr_tlsbase F ++ td_thr_tsd F ++ td_thr_validate F +Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil-le.abilist +@@ -0,0 +1,8 @@ ++GLIBC_2.18 ++ GLIBC_2.18 A ++ forkpty F ++ login F ++ login_tty F ++ logout F ++ logwtmp F ++ openpty F From 031b3f52a7413a33bfccbaa29251683ce11bb34e0816db817414da4fd6a67f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Sun, 22 Dec 2013 18:32:54 +0000 Subject: [PATCH 155/204] Accepting request 211752 from Base:System - Update to glibc 2.18.90 83f5c32d21f7: * Support for STT_GNU_IFUNC symbols added for ppc64 * A new feature test macro _DEFAULT_SOURCE is available * The _BSD_SOURCE feature test macro no longer enables BSD interfaces that conflict with POSIX. The libbsd-compat library (which was a dummy library that did nothing) has also been removed. * Added support for version-3 tz format files - i686-no-sse42-strstr.patch: Removed (forwarded request 211751 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/211752 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=163 --- glibc-2.18.90-83f5c32d21f7.tar.xz | 3 + glibc-2.18.90-aeb95445d128.tar.xz | 3 - glibc-testsuite.changes | 12 +++ glibc-testsuite.spec | 6 +- glibc-utils.changes | 12 +++ glibc-utils.spec | 6 +- glibc.changes | 12 +++ glibc.spec | 6 +- i686-no-sse42-strstr.patch | 120 ------------------------------ 9 files changed, 42 insertions(+), 138 deletions(-) create mode 100644 glibc-2.18.90-83f5c32d21f7.tar.xz delete mode 100644 glibc-2.18.90-aeb95445d128.tar.xz delete mode 100644 i686-no-sse42-strstr.patch diff --git a/glibc-2.18.90-83f5c32d21f7.tar.xz b/glibc-2.18.90-83f5c32d21f7.tar.xz new file mode 100644 index 0000000..9acbe63 --- /dev/null +++ b/glibc-2.18.90-83f5c32d21f7.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efbd2068042f6ec83e9a0d9f30df5605e949f131c5c9b32482cc2b16690d4a2a +size 12301308 diff --git a/glibc-2.18.90-aeb95445d128.tar.xz b/glibc-2.18.90-aeb95445d128.tar.xz deleted file mode 100644 index d4f645f..0000000 --- a/glibc-2.18.90-aeb95445d128.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e45ffc72da188e9914fe0bd1b8d4bab51c5ecd14b6d579218ba68bfc994f2f68 -size 12033044 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 7bc057d..5ff5322 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 83f5c32d21f7: + * Support for STT_GNU_IFUNC symbols added for ppc64 + * A new feature test macro _DEFAULT_SOURCE is available + * The _BSD_SOURCE feature test macro no longer enables BSD interfaces + that conflict with POSIX. The libbsd-compat library (which was a + dummy library that did nothing) has also been removed. + * Added support for version-3 tz format files +- i686-no-sse42-strstr.patch: Removed + ------------------------------------------------------------------- Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 88bb051..bd01f97 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -109,7 +109,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id aeb95445d128 +%define git_id 83f5c32d21f7 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -211,8 +211,6 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch -# PATCH-FIX-OPENSUSE Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) -Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -437,7 +435,6 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 -%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -1178,7 +1175,6 @@ exit 0 %{_libdir}/*.o %{_libdir}/*.so # These static libraries are needed even for shared builds -%{_libdir}/libbsd-compat.a %{_libdir}/libc_nonshared.a %{_libdir}/libg.a %{_libdir}/libieee.a diff --git a/glibc-utils.changes b/glibc-utils.changes index 7bc057d..5ff5322 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 83f5c32d21f7: + * Support for STT_GNU_IFUNC symbols added for ppc64 + * A new feature test macro _DEFAULT_SOURCE is available + * The _BSD_SOURCE feature test macro no longer enables BSD interfaces + that conflict with POSIX. The libbsd-compat library (which was a + dummy library that did nothing) has also been removed. + * Added support for version-3 tz format files +- i686-no-sse42-strstr.patch: Removed + ------------------------------------------------------------------- Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 0fa7a31..badf09d 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -108,7 +108,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id aeb95445d128 +%define git_id 83f5c32d21f7 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -210,8 +210,6 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch -# PATCH-FIX-OPENSUSE Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) -Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -437,7 +435,6 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 -%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -1178,7 +1175,6 @@ exit 0 %{_libdir}/*.o %{_libdir}/*.so # These static libraries are needed even for shared builds -%{_libdir}/libbsd-compat.a %{_libdir}/libc_nonshared.a %{_libdir}/libg.a %{_libdir}/libieee.a diff --git a/glibc.changes b/glibc.changes index 7bc057d..5ff5322 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de + +- Update to glibc 2.18.90 83f5c32d21f7: + * Support for STT_GNU_IFUNC symbols added for ppc64 + * A new feature test macro _DEFAULT_SOURCE is available + * The _BSD_SOURCE feature test macro no longer enables BSD interfaces + that conflict with POSIX. The libbsd-compat library (which was a + dummy library that did nothing) has also been removed. + * Added support for version-3 tz format files +- i686-no-sse42-strstr.patch: Removed + ------------------------------------------------------------------- Tue Dec 10 15:03:59 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index a6a566a..d6b5ad0 100644 --- a/glibc.spec +++ b/glibc.spec @@ -109,7 +109,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id aeb95445d128 +%define git_id 83f5c32d21f7 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -211,8 +211,6 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch -# PATCH-FIX-OPENSUSE Remove SSE4.2 implementation of strstr for x86-32 (bnc#843464) -Patch20: i686-no-sse42-strstr.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -437,7 +435,6 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 -%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -1178,7 +1175,6 @@ exit 0 %{_libdir}/*.o %{_libdir}/*.so # These static libraries are needed even for shared builds -%{_libdir}/libbsd-compat.a %{_libdir}/libc_nonshared.a %{_libdir}/libg.a %{_libdir}/libieee.a diff --git a/i686-no-sse42-strstr.patch b/i686-no-sse42-strstr.patch deleted file mode 100644 index 0f2441a..0000000 --- a/i686-no-sse42-strstr.patch +++ /dev/null @@ -1,120 +0,0 @@ -Index: glibc-2.18/sysdeps/i386/i686/multiarch/Makefile -=================================================================== ---- glibc-2.18.orig/sysdeps/i386/i686/multiarch/Makefile -+++ glibc-2.18/sysdeps/i386/i686/multiarch/Makefile -@@ -11,7 +11,7 @@ sysdep_routines += bzero-sse2 memset-sse - memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \ - memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \ - strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \ -- memcmp-ssse3 memcmp-sse4 strcasestr-nonascii varshift \ -+ memcmp-ssse3 memcmp-sse4 varshift \ - strlen-sse2 strlen-sse2-bsf strncpy-c strcpy-ssse3 \ - strncpy-ssse3 stpcpy-ssse3 stpncpy-ssse3 strcpy-sse2 \ - strncpy-sse2 stpcpy-sse2 stpncpy-sse2 strcat-ssse3 \ -@@ -25,14 +25,11 @@ sysdep_routines += bzero-sse2 memset-sse - strncase_l-c strncase-c strncase_l-ssse3 \ - strcasecmp_l-sse4 strncase_l-sse4 - ifeq (yes,$(config-cflags-sse4)) --sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c -+sysdep_routines += strcspn-c strpbrk-c strspn-c - CFLAGS-varshift.c += -msse4 - CFLAGS-strcspn-c.c += -msse4 - CFLAGS-strpbrk-c.c += -msse4 - CFLAGS-strspn-c.c += -msse4 --CFLAGS-strstr.c += -msse4 --CFLAGS-strcasestr.c += -msse4 --CFLAGS-strcasestr-nonascii.c += -msse4 - endif - endif - -Index: glibc-2.18/sysdeps/i386/i686/multiarch/ifunc-impl-list.c -=================================================================== ---- glibc-2.18.orig/sysdeps/i386/i686/multiarch/ifunc-impl-list.c -+++ glibc-2.18/sysdeps/i386/i686/multiarch/ifunc-impl-list.c -@@ -141,12 +141,6 @@ __libc_ifunc_impl_list (const char *name - IFUNC_IMPL_ADD (array, i, strcasecmp_l, 1, - __strcasecmp_l_ia32)) - -- /* Support sysdeps/i386/i686/multiarch/strcasestr.c. */ -- IFUNC_IMPL (i, name, strcasestr, -- IFUNC_IMPL_ADD (array, i, strcasestr, HAS_SSE4_2, -- __strcasestr_sse42) -- IFUNC_IMPL_ADD (array, i, strcasestr, 1, __strcasestr_ia32)) -- - /* Support sysdeps/i386/i686/multiarch/strcat.S. */ - IFUNC_IMPL (i, name, strcat, - IFUNC_IMPL_ADD (array, i, strcat, HAS_SSSE3, __strcat_ssse3) -@@ -234,11 +228,6 @@ __libc_ifunc_impl_list (const char *name - IFUNC_IMPL_ADD (array, i, strspn, HAS_SSE4_2, __strspn_sse42) - IFUNC_IMPL_ADD (array, i, strspn, 1, __strspn_ia32)) - -- /* Support sysdeps/i386/i686/multiarch/strstr-c.c. */ -- IFUNC_IMPL (i, name, strstr, -- IFUNC_IMPL_ADD (array, i, strstr, HAS_SSE4_2, __strstr_sse42) -- IFUNC_IMPL_ADD (array, i, strstr, 1, __strstr_ia32)) -- - /* Support sysdeps/i386/i686/multiarch/wcschr.S. */ - IFUNC_IMPL (i, name, wcschr, - IFUNC_IMPL_ADD (array, i, wcschr, HAS_SSE2, __wcschr_sse2) -Index: glibc-2.18/sysdeps/i386/i686/multiarch/strcasestr-c.c -=================================================================== ---- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strcasestr-c.c -+++ /dev/null -@@ -1,4 +0,0 @@ --/* Multiple versions of strcasestr -- All versions must be listed in ifunc-impl-list.c. */ --#define __strcasestr_sse2 __strcasestr_ia32 --#include -Index: glibc-2.18/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c -=================================================================== ---- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c -+++ /dev/null -@@ -1,2 +0,0 @@ --#include --#include -Index: glibc-2.18/sysdeps/i386/i686/multiarch/strcasestr.c -=================================================================== ---- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strcasestr.c -+++ /dev/null -@@ -1 +0,0 @@ --#include -Index: glibc-2.18/sysdeps/i386/i686/multiarch/strstr-c.c -=================================================================== ---- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strstr-c.c -+++ /dev/null -@@ -1,29 +0,0 @@ --/* Multiple versions of strstr -- All versions must be listed in ifunc-impl-list.c. */ -- --#include "init-arch.h" -- --#define STRSTR __strstr_ia32 --#if defined SHARED && !defined NO_HIDDEN --#undef libc_hidden_builtin_def --#define libc_hidden_builtin_def(name) \ -- __hidden_ver1 (__strstr_ia32, __GI_strstr, __strstr_ia32); --#endif -- --/* Redefine strstr so that the compiler won't complain about the type -- mismatch with the IFUNC selector in strong_alias, below. */ --#undef strstr --#define strstr __redirect_strstr -- --#include "string/strstr.c" -- --extern __typeof (__redirect_strstr) __strstr_sse42 attribute_hidden; --extern __typeof (__redirect_strstr) __strstr_ia32 attribute_hidden; -- --/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle -- ifunc symbol properly. */ --extern __typeof (__redirect_strstr) __libc_strstr; --libc_ifunc (__libc_strstr, HAS_SSE4_2 ? __strstr_sse42 : __strstr_ia32) -- --#undef strstr --strong_alias (__libc_strstr, strstr) -Index: glibc-2.18/sysdeps/i386/i686/multiarch/strstr.c -=================================================================== ---- glibc-2.18.orig/sysdeps/i386/i686/multiarch/strstr.c -+++ /dev/null -@@ -1 +0,0 @@ --#include From e540ed5251b7cceb452daab5c9ff7408d5a047e88b276bba1e7dfd24c92c3732 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 11 Jan 2014 10:11:25 +0000 Subject: [PATCH 156/204] Accepting request 213272 from Base:System - make pwdutils a real buildrequire Requires(pre) are used during builds, but don't trigger rebuilds. But to create clearly defined bootstrap projects, it's essential to know what packages are required for others. So move this requires to build to a buildrequire (forwarded request 213147 from coolo) OBS-URL: https://build.opensuse.org/request/show/213272 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=164 --- glibc-2.18.90-83f5c32d21f7.tar.xz | 3 --- glibc-2.18.90-94c8a4bc574c.tar.xz | 3 +++ glibc-testsuite.changes | 17 +++++++++++++++++ glibc-testsuite.spec | 5 +++-- glibc-utils.changes | 17 +++++++++++++++++ glibc-utils.spec | 5 +++-- glibc-version.diff | 2 +- glibc.changes | 17 +++++++++++++++++ glibc.spec | 5 +++-- 9 files changed, 64 insertions(+), 10 deletions(-) delete mode 100644 glibc-2.18.90-83f5c32d21f7.tar.xz create mode 100644 glibc-2.18.90-94c8a4bc574c.tar.xz diff --git a/glibc-2.18.90-83f5c32d21f7.tar.xz b/glibc-2.18.90-83f5c32d21f7.tar.xz deleted file mode 100644 index 9acbe63..0000000 --- a/glibc-2.18.90-83f5c32d21f7.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:efbd2068042f6ec83e9a0d9f30df5605e949f131c5c9b32482cc2b16690d4a2a -size 12301308 diff --git a/glibc-2.18.90-94c8a4bc574c.tar.xz b/glibc-2.18.90-94c8a4bc574c.tar.xz new file mode 100644 index 0000000..d2f38e7 --- /dev/null +++ b/glibc-2.18.90-94c8a4bc574c.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98084f54fd03dc09774d89c1ceab170b6f1ef9fdd99cad3cf66553be163a3a1d +size 12770204 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 5ff5322..0dec378 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com + +- make pwdutils a real buildrequire + Requires(pre) are used during builds, but don't trigger rebuilds. + But to create clearly defined bootstrap projects, it's essential + to know what packages are required for others. So move this requires + to build to a buildrequire + +------------------------------------------------------------------- +Tue Jan 7 14:30:50 UTC 2014 - schwab@suse.de + +- Update to glibc 2.18.90 94c8a4bc574c: + * More bug fixes + * Slovenian translations for glibc messages have been contributed by the + Translation Project's Slovenian team of translators. + ------------------------------------------------------------------- Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index bd01f97..83c9bd0 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -38,6 +38,7 @@ Group: System/Libraries BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo +BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} @@ -109,7 +110,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id 83f5c32d21f7 +%define git_id 94c8a4bc574c Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz diff --git a/glibc-utils.changes b/glibc-utils.changes index 5ff5322..0dec378 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com + +- make pwdutils a real buildrequire + Requires(pre) are used during builds, but don't trigger rebuilds. + But to create clearly defined bootstrap projects, it's essential + to know what packages are required for others. So move this requires + to build to a buildrequire + +------------------------------------------------------------------- +Tue Jan 7 14:30:50 UTC 2014 - schwab@suse.de + +- Update to glibc 2.18.90 94c8a4bc574c: + * More bug fixes + * Slovenian translations for glibc messages have been contributed by the + Translation Project's Slovenian team of translators. + ------------------------------------------------------------------- Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index badf09d..6e3e200 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -37,6 +37,7 @@ Group: Development/Languages/C and C++ BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo +BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} @@ -108,7 +109,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id 83f5c32d21f7 +%define git_id 94c8a4bc574c Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz diff --git a/glibc-version.diff b/glibc-version.diff index efb44be..b563a8c 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -8,7 +8,7 @@ Index: glibc-2.17.90/csu/version.c static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2013 Free Software Foundation, Inc.\n\ + Copyright (C) 2014 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index 5ff5322..0dec378 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com + +- make pwdutils a real buildrequire + Requires(pre) are used during builds, but don't trigger rebuilds. + But to create clearly defined bootstrap projects, it's essential + to know what packages are required for others. So move this requires + to build to a buildrequire + +------------------------------------------------------------------- +Tue Jan 7 14:30:50 UTC 2014 - schwab@suse.de + +- Update to glibc 2.18.90 94c8a4bc574c: + * More bug fixes + * Slovenian translations for glibc messages have been contributed by the + Translation Project's Slovenian team of translators. + ------------------------------------------------------------------- Thu Dec 19 13:45:17 UTC 2013 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index d6b5ad0..5dddd7c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -38,6 +38,7 @@ Group: System/Libraries BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: makeinfo +BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} @@ -109,7 +110,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id 83f5c32d21f7 +%define git_id 94c8a4bc574c Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz From ece5b5120afa9b1830ffacfa98244d0a79c75aa912878ae0cbd0ae6493352738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Sun, 9 Feb 2014 12:17:38 +0000 Subject: [PATCH 157/204] Accepting request 221127 from Base:System - Update to glibc 2.18.90 ee7cc3853761: * More bug fixes * SystemTap probes for slow multiple precision fallback paths of transcendental functions have been introduced. * Preliminary documentation about Multi-Thread, Async-Signal and Async-Cancel Safety has been added. * Change powerpc64le start ABI to 2.17 - Add /usr/local/lib64 to ld.so.conf on all lib64 platforms - Enable profile build for aarch64 (forwarded request 221126 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/221127 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=165 --- glibc-2.18.90-94c8a4bc574c.tar.xz | 3 - glibc-2.18.90-ee7cc3853761.tar.xz | 3 + glibc-testsuite.changes | 13 + glibc-testsuite.spec | 15 +- glibc-utils.changes | 13 + glibc-utils.spec | 15 +- glibc.changes | 13 + glibc.spec | 15 +- ppc64le-abilist.patch | 3293 ----------------------------- 9 files changed, 57 insertions(+), 3326 deletions(-) delete mode 100644 glibc-2.18.90-94c8a4bc574c.tar.xz create mode 100644 glibc-2.18.90-ee7cc3853761.tar.xz delete mode 100644 ppc64le-abilist.patch diff --git a/glibc-2.18.90-94c8a4bc574c.tar.xz b/glibc-2.18.90-94c8a4bc574c.tar.xz deleted file mode 100644 index d2f38e7..0000000 --- a/glibc-2.18.90-94c8a4bc574c.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:98084f54fd03dc09774d89c1ceab170b6f1ef9fdd99cad3cf66553be163a3a1d -size 12770204 diff --git a/glibc-2.18.90-ee7cc3853761.tar.xz b/glibc-2.18.90-ee7cc3853761.tar.xz new file mode 100644 index 0000000..2d62cfb --- /dev/null +++ b/glibc-2.18.90-ee7cc3853761.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28660f2d1482c88e7a2ed7a8e3949bda35484f11ccf92129c499ba6da5df196c +size 12819632 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 0dec378..18a3b10 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de + +- Update to glibc 2.18.90 ee7cc3853761: + * More bug fixes + * SystemTap probes for slow multiple precision fallback paths of + transcendental functions have been introduced. + * Preliminary documentation about Multi-Thread, Async-Signal and + Async-Cancel Safety has been added. + * Change powerpc64le start ABI to 2.17 +- Add /usr/local/lib64 to ld.so.conf on all lib64 platforms +- Enable profile build for aarch64 + ------------------------------------------------------------------- Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 83c9bd0..97c799a 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -63,12 +63,7 @@ BuildRequires: gd-devel %define build_html 0 %else # Default: -%ifarch aarch64 -# aarch64 doesn't support -pg yet -%define build_profile 0 -%else %define build_profile 1 -%endif %define build_locales 1 %define build_html 1 %endif @@ -110,7 +105,7 @@ BuildRequires: gd-devel Version: 2.18.90 Release: 0 %define glibc_major_version 2.18.90 -%define git_id 94c8a4bc574c +%define git_id ee7cc3853761 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -243,8 +238,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM PowerLE abilist -Patch2000: ppc64le-abilist.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch2019: pldd-wait-ptrace-stop.patch @@ -447,7 +440,6 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch2000 -p1 %patch2019 -p1 %patch3000 @@ -864,7 +856,10 @@ touch %{buildroot}/var/run/nscd/{socket,nscd.pid} # Create ld.so.conf # cat > %{buildroot}/etc/ld.so.conf < %{buildroot}/etc/ld.so.conf < %{buildroot}/etc/ld.so.conf < - - * Makerules (abilist): Define and use var in abilist rules. - * sysdeps/unix/sysv/linux/powerpc/Makefile (abilist): Define. - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db-le.abilist, - * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil-le.abilist: - New files. - -Index: glibc-2.18.90/Makerules -=================================================================== ---- glibc-2.18.90.orig/Makerules -+++ glibc-2.18.90/Makerules -@@ -1175,7 +1175,11 @@ ifeq ($(build-shared),yes) - LC_ALL=C $(OBJDUMP) --dynamic-syms $< > $@T - mv -f $@T $@ - --vpath %.abilist $(+sysdep_dirs) -+ifndef abilist -+abilist=.abilist -+endif -+ -+vpath %$(abilist) $(+sysdep_dirs) - - # The .PRECIOUS rule prevents the files built by an implicit rule whose - # target pattern is %.symlist from being considered "intermediate files" -@@ -1184,24 +1188,24 @@ vpath %.abilist $(+sysdep_dirs) - .PRECIOUS: %.symlist - generated += $(extra-libs:=.symlist) - --check-abi-%: $(common-objpfx)config.make %.abilist $(objpfx)%.symlist -+check-abi-%: $(common-objpfx)config.make %$(abilist) $(objpfx)%.symlist - $(check-abi) --check-abi-%: $(common-objpfx)config.make %.abilist $(common-objpfx)%.symlist -+check-abi-%: $(common-objpfx)config.make %$(abilist) $(common-objpfx)%.symlist - $(check-abi) - define check-abi -- diff -p -U 0 $(filter %.abilist,$^) $(filter %.symlist,$^) -+ diff -p -U 0 $(filter %$(abilist),$^) $(filter %.symlist,$^) - endef - --update-abi-%: $(objpfx)%.symlist %.abilist -+update-abi-%: $(objpfx)%.symlist %$(abilist) - $(update-abi) --update-abi-%: $(common-objpfx)%.symlist %.abilist -+update-abi-%: $(common-objpfx)%.symlist %$(abilist) - $(update-abi) - define update-abi - @if cmp -s $^ 2> /dev/null; \ - then \ -- echo '+++ $(filter %.abilist,$^) is unchanged'; \ -+ echo '+++ $(filter %$(abilist),$^) is unchanged'; \ - else cp -f $^; \ -- echo '*** Now check $(filter %.abilist,$^) changes for correctness ***'; \ -+ echo '*** Now check $(filter %$(abilist),$^) changes for correctness ***'; \ - fi - endef - -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/Makefile -=================================================================== ---- glibc-2.18.90.orig/sysdeps/unix/sysv/linux/powerpc/Makefile -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/Makefile -@@ -31,3 +31,7 @@ sysdep_headers += bits/ppc.h - sysdep_routines += get_timebase_freq - tests += test-gettimebasefreq - endif -+ -+ifneq ($(findstring le,$(config-machine)),) -+abilist=-le.abilist -+endif -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld-le.abilist -@@ -0,0 +1,11 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ __libc_memalign F -+ __libc_stack_end D 0x8 -+ __tls_get_addr F -+ _dl_mcount F -+ _r_debug D 0x28 -+ calloc F -+ free F -+ malloc F -+ realloc F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale-le.abilist -@@ -0,0 +1,3 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ __ctype_get_mb_cur_max F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl-le.abilist -@@ -0,0 +1,6 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ gai_cancel F -+ gai_error F -+ gai_suspend F -+ getaddrinfo_a F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc-le.abilist -@@ -0,0 +1,2169 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ _Exit F -+ _IO_2_1_stderr_ D 0xe0 -+ _IO_2_1_stdin_ D 0xe0 -+ _IO_2_1_stdout_ D 0xe0 -+ _IO_adjust_column F -+ _IO_adjust_wcolumn F -+ _IO_default_doallocate F -+ _IO_default_finish F -+ _IO_default_pbackfail F -+ _IO_default_uflow F -+ _IO_default_xsgetn F -+ _IO_default_xsputn F -+ _IO_do_write F -+ _IO_doallocbuf F -+ _IO_fclose F -+ _IO_fdopen F -+ _IO_feof F -+ _IO_ferror F -+ _IO_fflush F -+ _IO_fgetpos F -+ _IO_fgetpos64 F -+ _IO_fgets F -+ _IO_file_attach F -+ _IO_file_close F -+ _IO_file_close_it F -+ _IO_file_doallocate F -+ _IO_file_finish F -+ _IO_file_fopen F -+ _IO_file_init F -+ _IO_file_jumps D 0xa8 -+ _IO_file_open F -+ _IO_file_overflow F -+ _IO_file_read F -+ _IO_file_seek F -+ _IO_file_seekoff F -+ _IO_file_setbuf F -+ _IO_file_stat F -+ _IO_file_sync F -+ _IO_file_underflow F -+ _IO_file_write F -+ _IO_file_xsputn F -+ _IO_flockfile F -+ _IO_flush_all F -+ _IO_flush_all_linebuffered F -+ _IO_fopen F -+ _IO_fprintf F -+ _IO_fputs F -+ _IO_fread F -+ _IO_free_backup_area F -+ _IO_free_wbackup_area F -+ _IO_fsetpos F -+ _IO_fsetpos64 F -+ _IO_ftell F -+ _IO_ftrylockfile F -+ _IO_funlockfile F -+ _IO_fwrite F -+ _IO_getc F -+ _IO_getline F -+ _IO_getline_info F -+ _IO_gets F -+ _IO_init F -+ _IO_init_marker F -+ _IO_init_wmarker F -+ _IO_iter_begin F -+ _IO_iter_end F -+ _IO_iter_file F -+ _IO_iter_next F -+ _IO_least_wmarker F -+ _IO_link_in F -+ _IO_list_all D 0x8 -+ _IO_list_lock F -+ _IO_list_resetlock F -+ _IO_list_unlock F -+ _IO_marker_delta F -+ _IO_marker_difference F -+ _IO_padn F -+ _IO_peekc_locked F -+ _IO_popen F -+ _IO_printf F -+ _IO_proc_close F -+ _IO_proc_open F -+ _IO_putc F -+ _IO_puts F -+ _IO_remove_marker F -+ _IO_seekmark F -+ _IO_seekoff F -+ _IO_seekpos F -+ _IO_seekwmark F -+ _IO_setb F -+ _IO_setbuffer F -+ _IO_setvbuf F -+ _IO_sgetn F -+ _IO_sprintf F -+ _IO_sputbackc F -+ _IO_sputbackwc F -+ _IO_sscanf F -+ _IO_str_init_readonly F -+ _IO_str_init_static F -+ _IO_str_overflow F -+ _IO_str_pbackfail F -+ _IO_str_seekoff F -+ _IO_str_underflow F -+ _IO_sungetc F -+ _IO_sungetwc F -+ _IO_switch_to_get_mode F -+ _IO_switch_to_main_wget_area F -+ _IO_switch_to_wbackup_area F -+ _IO_switch_to_wget_mode F -+ _IO_un_link F -+ _IO_ungetc F -+ _IO_unsave_markers F -+ _IO_unsave_wmarkers F -+ _IO_vfprintf F -+ _IO_vfscanf F -+ _IO_vsprintf F -+ _IO_wdefault_doallocate F -+ _IO_wdefault_finish F -+ _IO_wdefault_pbackfail F -+ _IO_wdefault_uflow F -+ _IO_wdefault_xsgetn F -+ _IO_wdefault_xsputn F -+ _IO_wdo_write F -+ _IO_wdoallocbuf F -+ _IO_wfile_jumps D 0xa8 -+ _IO_wfile_overflow F -+ _IO_wfile_seekoff F -+ _IO_wfile_sync F -+ _IO_wfile_underflow F -+ _IO_wfile_xsputn F -+ _IO_wmarker_delta F -+ _IO_wsetb F -+ __adjtimex F -+ __after_morecore_hook D 0x8 -+ __argz_count F -+ __argz_next F -+ __argz_stringify F -+ __asprintf F -+ __asprintf_chk F -+ __assert F -+ __assert_fail F -+ __assert_perror_fail F -+ __backtrace F -+ __backtrace_symbols F -+ __backtrace_symbols_fd F -+ __bsd_getpgrp F -+ __bzero F -+ __check_rhosts_file D 0x4 -+ __chk_fail F -+ __clone F -+ __close F -+ __cmsg_nxthdr F -+ __confstr_chk F -+ __connect F -+ __ctype_b_loc F -+ __ctype_get_mb_cur_max F -+ __ctype_tolower_loc F -+ __ctype_toupper_loc F -+ __curbrk D 0x8 -+ __cxa_at_quick_exit F -+ __cxa_atexit F -+ __cxa_finalize F -+ __cxa_thread_atexit_impl F -+ __cyg_profile_func_enter F -+ __cyg_profile_func_exit F -+ __daylight D 0x4 -+ __dcgettext F -+ __default_morecore F -+ __dgettext F -+ __dprintf_chk F -+ __dup2 F -+ __duplocale F -+ __endmntent F -+ __environ D 0x8 -+ __errno_location F -+ __fbufsize F -+ __fcntl F -+ __fdelt_chk F -+ __fdelt_warn F -+ __ffs F -+ __fgets_chk F -+ __fgets_unlocked_chk F -+ __fgetws_chk F -+ __fgetws_unlocked_chk F -+ __finite F -+ __finitef F -+ __finitel F -+ __flbf F -+ __fork F -+ __fpending F -+ __fprintf_chk F -+ __fpu_control D 0x4 -+ __fpurge F -+ __fread_chk F -+ __fread_unlocked_chk F -+ __freadable F -+ __freading F -+ __free_hook D 0x8 -+ __freelocale F -+ __fsetlocking F -+ __fwprintf_chk F -+ __fwritable F -+ __fwriting F -+ __fxstat F -+ __fxstat64 F -+ __fxstatat F -+ __fxstatat64 F -+ __getauxval F -+ __getcwd_chk F -+ __getdelim F -+ __getdomainname_chk F -+ __getgroups_chk F -+ __gethostname_chk F -+ __getlogin_r_chk F -+ __getmntent_r F -+ __getpagesize F -+ __getpgid F -+ __getpid F -+ __gets_chk F -+ __gettimeofday F -+ __getwd_chk F -+ __gmtime_r F -+ __h_errno_location F -+ __isalnum_l F -+ __isalpha_l F -+ __isascii_l F -+ __isblank_l F -+ __iscntrl_l F -+ __isctype F -+ __isdigit_l F -+ __isgraph_l F -+ __isinf F -+ __isinff F -+ __isinfl F -+ __islower_l F -+ __isnan F -+ __isnanf F -+ __isnanl F -+ __isoc99_fscanf F -+ __isoc99_fwscanf F -+ __isoc99_scanf F -+ __isoc99_sscanf F -+ __isoc99_swscanf F -+ __isoc99_vfscanf F -+ __isoc99_vfwscanf F -+ __isoc99_vscanf F -+ __isoc99_vsscanf F -+ __isoc99_vswscanf F -+ __isoc99_vwscanf F -+ __isoc99_wscanf F -+ __isprint_l F -+ __ispunct_l F -+ __isspace_l F -+ __isupper_l F -+ __iswalnum_l F -+ __iswalpha_l F -+ __iswblank_l F -+ __iswcntrl_l F -+ __iswctype F -+ __iswctype_l F -+ __iswdigit_l F -+ __iswgraph_l F -+ __iswlower_l F -+ __iswprint_l F -+ __iswpunct_l F -+ __iswspace_l F -+ __iswupper_l F -+ __iswxdigit_l F -+ __isxdigit_l F -+ __ivaliduser F -+ __key_decryptsession_pk_LOCAL D 0x8 -+ __key_encryptsession_pk_LOCAL D 0x8 -+ __key_gendes_LOCAL D 0x8 -+ __libc_allocate_rtsig F -+ __libc_calloc F -+ __libc_current_sigrtmax F -+ __libc_current_sigrtmin F -+ __libc_free F -+ __libc_freeres F -+ __libc_init_first F -+ __libc_mallinfo F -+ __libc_malloc F -+ __libc_mallopt F -+ __libc_memalign F -+ __libc_pvalloc F -+ __libc_realloc F -+ __libc_sa_len F -+ __libc_start_main F -+ __libc_valloc F -+ __longjmp_chk F -+ __lseek F -+ __lxstat F -+ __lxstat64 F -+ __malloc_hook D 0x8 -+ __malloc_initialize_hook D 0x8 -+ __mbrlen F -+ __mbrtowc F -+ __mbsnrtowcs_chk F -+ __mbsrtowcs_chk F -+ __mbstowcs_chk F -+ __memalign_hook D 0x8 -+ __memcpy_chk F -+ __memmove_chk F -+ __mempcpy F -+ __mempcpy_chk F -+ __mempcpy_small F -+ __memset_chk F -+ __monstartup F -+ __morecore D 0x8 -+ __nanosleep F -+ __newlocale F -+ __nl_langinfo_l F -+ __nldbl__IO_fprintf F -+ __nldbl__IO_printf F -+ __nldbl__IO_sprintf F -+ __nldbl__IO_sscanf F -+ __nldbl__IO_vfprintf F -+ __nldbl__IO_vfscanf F -+ __nldbl__IO_vsprintf F -+ __nldbl___asprintf F -+ __nldbl___asprintf_chk F -+ __nldbl___dprintf_chk F -+ __nldbl___fprintf_chk F -+ __nldbl___fwprintf_chk F -+ __nldbl___isoc99_fscanf F -+ __nldbl___isoc99_fwscanf F -+ __nldbl___isoc99_scanf F -+ __nldbl___isoc99_sscanf F -+ __nldbl___isoc99_swscanf F -+ __nldbl___isoc99_vfscanf F -+ __nldbl___isoc99_vfwscanf F -+ __nldbl___isoc99_vscanf F -+ __nldbl___isoc99_vsscanf F -+ __nldbl___isoc99_vswscanf F -+ __nldbl___isoc99_vwscanf F -+ __nldbl___isoc99_wscanf F -+ __nldbl___obstack_printf_chk F -+ __nldbl___obstack_vprintf_chk F -+ __nldbl___printf_chk F -+ __nldbl___printf_fp F -+ __nldbl___snprintf_chk F -+ __nldbl___sprintf_chk F -+ __nldbl___strfmon_l F -+ __nldbl___swprintf_chk F -+ __nldbl___syslog_chk F -+ __nldbl___vasprintf_chk F -+ __nldbl___vdprintf_chk F -+ __nldbl___vfprintf_chk F -+ __nldbl___vfscanf F -+ __nldbl___vfwprintf_chk F -+ __nldbl___vprintf_chk F -+ __nldbl___vsnprintf F -+ __nldbl___vsnprintf_chk F -+ __nldbl___vsprintf_chk F -+ __nldbl___vsscanf F -+ __nldbl___vstrfmon F -+ __nldbl___vstrfmon_l F -+ __nldbl___vswprintf_chk F -+ __nldbl___vsyslog_chk F -+ __nldbl___vwprintf_chk F -+ __nldbl___wprintf_chk F -+ __nldbl_asprintf F -+ __nldbl_dprintf F -+ __nldbl_fprintf F -+ __nldbl_fscanf F -+ __nldbl_fwprintf F -+ __nldbl_fwscanf F -+ __nldbl_obstack_printf F -+ __nldbl_obstack_vprintf F -+ __nldbl_printf F -+ __nldbl_printf_size F -+ __nldbl_scanf F -+ __nldbl_snprintf F -+ __nldbl_sprintf F -+ __nldbl_sscanf F -+ __nldbl_strfmon F -+ __nldbl_strfmon_l F -+ __nldbl_swprintf F -+ __nldbl_swscanf F -+ __nldbl_syslog F -+ __nldbl_vasprintf F -+ __nldbl_vdprintf F -+ __nldbl_vfprintf F -+ __nldbl_vfscanf F -+ __nldbl_vfwprintf F -+ __nldbl_vfwscanf F -+ __nldbl_vprintf F -+ __nldbl_vscanf F -+ __nldbl_vsnprintf F -+ __nldbl_vsprintf F -+ __nldbl_vsscanf F -+ __nldbl_vswprintf F -+ __nldbl_vswscanf F -+ __nldbl_vsyslog F -+ __nldbl_vwprintf F -+ __nldbl_vwscanf F -+ __nldbl_wprintf F -+ __nldbl_wscanf F -+ __nss_configure_lookup F -+ __nss_database_lookup F -+ __nss_group_lookup F -+ __nss_hostname_digits_dots F -+ __nss_hosts_lookup F -+ __nss_next F -+ __nss_passwd_lookup F -+ __obstack_printf_chk F -+ __obstack_vprintf_chk F -+ __open F -+ __open64 F -+ __open64_2 F -+ __open_2 F -+ __openat64_2 F -+ __openat_2 F -+ __overflow F -+ __pipe F -+ __poll F -+ __poll_chk F -+ __posix_getopt F -+ __ppc_get_timebase_freq F -+ __ppoll_chk F -+ __pread64 F -+ __pread64_chk F -+ __pread_chk F -+ __printf_chk F -+ __printf_fp F -+ __profile_frequency F -+ __progname D 0x8 -+ __progname_full D 0x8 -+ __ptsname_r_chk F -+ __pwrite64 F -+ __rawmemchr F -+ __rcmd_errstr D 0x8 -+ __read F -+ __read_chk F -+ __readlink_chk F -+ __readlinkat_chk F -+ __realloc_hook D 0x8 -+ __realpath_chk F -+ __recv_chk F -+ __recvfrom_chk F -+ __register_atfork F -+ __res_init F -+ __res_nclose F -+ __res_ninit F -+ __res_randomid F -+ __res_state F -+ __rpc_thread_createerr F -+ __rpc_thread_svc_fdset F -+ __rpc_thread_svc_max_pollfd F -+ __rpc_thread_svc_pollfd F -+ __sbrk F -+ __sched_cpualloc F -+ __sched_cpucount F -+ __sched_cpufree F -+ __sched_get_priority_max F -+ __sched_get_priority_min F -+ __sched_getparam F -+ __sched_getscheduler F -+ __sched_setscheduler F -+ __sched_yield F -+ __select F -+ __send F -+ __setmntent F -+ __setpgid F -+ __sigaction F -+ __sigaddset F -+ __sigdelset F -+ __sigismember F -+ __signbit F -+ __signbitf F -+ __signbitl F -+ __sigpause F -+ __sigsetjmp F -+ __sigsuspend F -+ __snprintf_chk F -+ __sprintf_chk F -+ __stack_chk_fail F -+ __statfs F -+ __stpcpy F -+ __stpcpy_chk F -+ __stpcpy_small F -+ __stpncpy F -+ __stpncpy_chk F -+ __strcasecmp F -+ __strcasecmp_l F -+ __strcasestr F -+ __strcat_chk F -+ __strcoll_l F -+ __strcpy_chk F -+ __strcpy_small F -+ __strcspn_c1 F -+ __strcspn_c2 F -+ __strcspn_c3 F -+ __strdup F -+ __strerror_r F -+ __strfmon_l F -+ __strftime_l F -+ __strncasecmp_l F -+ __strncat_chk F -+ __strncpy_chk F -+ __strndup F -+ __strpbrk_c2 F -+ __strpbrk_c3 F -+ __strsep_1c F -+ __strsep_2c F -+ __strsep_3c F -+ __strsep_g F -+ __strspn_c1 F -+ __strspn_c2 F -+ __strspn_c3 F -+ __strtod_internal F -+ __strtod_l F -+ __strtof_internal F -+ __strtof_l F -+ __strtok_r F -+ __strtok_r_1c F -+ __strtol_internal F -+ __strtol_l F -+ __strtold_internal F -+ __strtold_l F -+ __strtoll_internal F -+ __strtoll_l F -+ __strtoul_internal F -+ __strtoul_l F -+ __strtoull_internal F -+ __strtoull_l F -+ __strverscmp F -+ __strxfrm_l F -+ __swprintf_chk F -+ __sysconf F -+ __sysctl F -+ __syslog_chk F -+ __sysv_signal F -+ __timezone D 0x8 -+ __toascii_l F -+ __tolower_l F -+ __toupper_l F -+ __towctrans F -+ __towctrans_l F -+ __towlower_l F -+ __towupper_l F -+ __ttyname_r_chk F -+ __tzname D 0x10 -+ __uflow F -+ __underflow F -+ __uselocale F -+ __vasprintf_chk F -+ __vdprintf_chk F -+ __vfork F -+ __vfprintf_chk F -+ __vfscanf F -+ __vfwprintf_chk F -+ __vprintf_chk F -+ __vsnprintf F -+ __vsnprintf_chk F -+ __vsprintf_chk F -+ __vsscanf F -+ __vswprintf_chk F -+ __vsyslog_chk F -+ __vwprintf_chk F -+ __wait F -+ __waitpid F -+ __wcpcpy_chk F -+ __wcpncpy_chk F -+ __wcrtomb_chk F -+ __wcscasecmp_l F -+ __wcscat_chk F -+ __wcscoll_l F -+ __wcscpy_chk F -+ __wcsftime_l F -+ __wcsncasecmp_l F -+ __wcsncat_chk F -+ __wcsncpy_chk F -+ __wcsnrtombs_chk F -+ __wcsrtombs_chk F -+ __wcstod_internal F -+ __wcstod_l F -+ __wcstof_internal F -+ __wcstof_l F -+ __wcstol_internal F -+ __wcstol_l F -+ __wcstold_internal F -+ __wcstold_l F -+ __wcstoll_internal F -+ __wcstoll_l F -+ __wcstombs_chk F -+ __wcstoul_internal F -+ __wcstoul_l F -+ __wcstoull_internal F -+ __wcstoull_l F -+ __wcsxfrm_l F -+ __wctomb_chk F -+ __wctrans_l F -+ __wctype_l F -+ __wmemcpy_chk F -+ __wmemmove_chk F -+ __wmempcpy_chk F -+ __wmemset_chk F -+ __woverflow F -+ __wprintf_chk F -+ __write F -+ __wuflow F -+ __wunderflow F -+ __xmknod F -+ __xmknodat F -+ __xpg_basename F -+ __xpg_sigpause F -+ __xpg_strerror_r F -+ __xstat F -+ __xstat64 F -+ _authenticate F -+ _dl_mcount_wrapper F -+ _dl_mcount_wrapper_check F -+ _environ D 0x8 -+ _exit F -+ _flushlbf F -+ _libc_intl_domainname D 0x5 -+ _longjmp F -+ _mcleanup F -+ _mcount F -+ _nl_default_dirname D 0x12 -+ _nl_domain_bindings D 0x8 -+ _nl_msg_cat_cntr D 0x4 -+ _null_auth D 0x18 -+ _obstack_allocated_p F -+ _obstack_begin F -+ _obstack_begin_1 F -+ _obstack_free F -+ _obstack_memory_used F -+ _obstack_newchunk F -+ _res D 0x238 -+ _res_hconf D 0x48 -+ _rpc_dtablesize F -+ _seterr_reply F -+ _setjmp F -+ _sys_errlist D 0x438 -+ _sys_nerr D 0x4 -+ _sys_siglist D 0x208 -+ _tolower F -+ _toupper F -+ a64l F -+ abort F -+ abs F -+ accept F -+ accept4 F -+ access F -+ acct F -+ addmntent F -+ addseverity F -+ adjtime F -+ adjtimex F -+ advance F -+ alarm F -+ aligned_alloc F -+ alphasort F -+ alphasort64 F -+ argp_err_exit_status D 0x4 -+ argp_error F -+ argp_failure F -+ argp_help F -+ argp_parse F -+ argp_program_bug_address D 0x8 -+ argp_program_version D 0x8 -+ argp_program_version_hook D 0x8 -+ argp_state_help F -+ argp_usage F -+ argz_add F -+ argz_add_sep F -+ argz_append F -+ argz_count F -+ argz_create F -+ argz_create_sep F -+ argz_delete F -+ argz_extract F -+ argz_insert F -+ argz_next F -+ argz_replace F -+ argz_stringify F -+ asctime F -+ asctime_r F -+ asprintf F -+ atof F -+ atoi F -+ atol F -+ atoll F -+ authdes_create F -+ authdes_getucred F -+ authdes_pk_create F -+ authnone_create F -+ authunix_create F -+ authunix_create_default F -+ backtrace F -+ backtrace_symbols F -+ backtrace_symbols_fd F -+ basename F -+ bcmp F -+ bcopy F -+ bdflush F -+ bind F -+ bind_textdomain_codeset F -+ bindresvport F -+ bindtextdomain F -+ brk F -+ bsd_signal F -+ bsearch F -+ btowc F -+ bzero F -+ c16rtomb F -+ c32rtomb F -+ calloc F -+ callrpc F -+ canonicalize_file_name F -+ capget F -+ capset F -+ catclose F -+ catgets F -+ catopen F -+ cbc_crypt F -+ cfgetispeed F -+ cfgetospeed F -+ cfmakeraw F -+ cfree F -+ cfsetispeed F -+ cfsetospeed F -+ cfsetspeed F -+ chdir F -+ chflags F -+ chmod F -+ chown F -+ chroot F -+ clearenv F -+ clearerr F -+ clearerr_unlocked F -+ clnt_broadcast F -+ clnt_create F -+ clnt_pcreateerror F -+ clnt_perrno F -+ clnt_perror F -+ clnt_spcreateerror F -+ clnt_sperrno F -+ clnt_sperror F -+ clntraw_create F -+ clnttcp_create F -+ clntudp_bufcreate F -+ clntudp_create F -+ clntunix_create F -+ clock F -+ clock_adjtime F -+ clock_getcpuclockid F -+ clock_getres F -+ clock_gettime F -+ clock_nanosleep F -+ clock_settime F -+ clone F -+ close F -+ closedir F -+ closelog F -+ confstr F -+ connect F -+ copysign F -+ copysignf F -+ copysignl F -+ creat F -+ creat64 F -+ create_module F -+ ctermid F -+ ctime F -+ ctime_r F -+ cuserid F -+ daemon F -+ daylight D 0x4 -+ dcgettext F -+ dcngettext F -+ delete_module F -+ des_setparity F -+ dgettext F -+ difftime F -+ dirfd F -+ dirname F -+ div F -+ dl_iterate_phdr F -+ dngettext F -+ dprintf F -+ drand48 F -+ drand48_r F -+ dup F -+ dup2 F -+ dup3 F -+ duplocale F -+ dysize F -+ eaccess F -+ ecb_crypt F -+ ecvt F -+ ecvt_r F -+ endaliasent F -+ endfsent F -+ endgrent F -+ endhostent F -+ endmntent F -+ endnetent F -+ endnetgrent F -+ endprotoent F -+ endpwent F -+ endrpcent F -+ endservent F -+ endsgent F -+ endspent F -+ endttyent F -+ endusershell F -+ endutent F -+ endutxent F -+ environ D 0x8 -+ envz_add F -+ envz_entry F -+ envz_get F -+ envz_merge F -+ envz_remove F -+ envz_strip F -+ epoll_create F -+ epoll_create1 F -+ epoll_ctl F -+ epoll_pwait F -+ epoll_wait F -+ erand48 F -+ erand48_r F -+ err F -+ error F -+ error_at_line F -+ error_message_count D 0x4 -+ error_one_per_line D 0x4 -+ error_print_progname D 0x8 -+ errx F -+ ether_aton F -+ ether_aton_r F -+ ether_hostton F -+ ether_line F -+ ether_ntoa F -+ ether_ntoa_r F -+ ether_ntohost F -+ euidaccess F -+ eventfd F -+ eventfd_read F -+ eventfd_write F -+ execl F -+ execle F -+ execlp F -+ execv F -+ execve F -+ execvp F -+ execvpe F -+ exit F -+ faccessat F -+ fallocate F -+ fallocate64 F -+ fanotify_init F -+ fanotify_mark F -+ fattach F -+ fchdir F -+ fchflags F -+ fchmod F -+ fchmodat F -+ fchown F -+ fchownat F -+ fclose F -+ fcloseall F -+ fcntl F -+ fcvt F -+ fcvt_r F -+ fdatasync F -+ fdetach F -+ fdopen F -+ fdopendir F -+ feof F -+ feof_unlocked F -+ ferror F -+ ferror_unlocked F -+ fexecve F -+ fflush F -+ fflush_unlocked F -+ ffs F -+ ffsl F -+ ffsll F -+ fgetc F -+ fgetc_unlocked F -+ fgetgrent F -+ fgetgrent_r F -+ fgetpos F -+ fgetpos64 F -+ fgetpwent F -+ fgetpwent_r F -+ fgets F -+ fgets_unlocked F -+ fgetsgent F -+ fgetsgent_r F -+ fgetspent F -+ fgetspent_r F -+ fgetwc F -+ fgetwc_unlocked F -+ fgetws F -+ fgetws_unlocked F -+ fgetxattr F -+ fileno F -+ fileno_unlocked F -+ finite F -+ finitef F -+ finitel F -+ flistxattr F -+ flock F -+ flockfile F -+ fmemopen F -+ fmtmsg F -+ fnmatch F -+ fopen F -+ fopen64 F -+ fopencookie F -+ fork F -+ fpathconf F -+ fprintf F -+ fputc F -+ fputc_unlocked F -+ fputs F -+ fputs_unlocked F -+ fputwc F -+ fputwc_unlocked F -+ fputws F -+ fputws_unlocked F -+ fread F -+ fread_unlocked F -+ free F -+ freeaddrinfo F -+ freeifaddrs F -+ freelocale F -+ fremovexattr F -+ freopen F -+ freopen64 F -+ frexp F -+ frexpf F -+ frexpl F -+ fscanf F -+ fseek F -+ fseeko F -+ fseeko64 F -+ fsetpos F -+ fsetpos64 F -+ fsetxattr F -+ fstatfs F -+ fstatfs64 F -+ fstatvfs F -+ fstatvfs64 F -+ fsync F -+ ftell F -+ ftello F -+ ftello64 F -+ ftime F -+ ftok F -+ ftruncate F -+ ftruncate64 F -+ ftrylockfile F -+ fts_children F -+ fts_close F -+ fts_open F -+ fts_read F -+ fts_set F -+ ftw F -+ ftw64 F -+ funlockfile F -+ futimens F -+ futimes F -+ futimesat F -+ fwide F -+ fwprintf F -+ fwrite F -+ fwrite_unlocked F -+ fwscanf F -+ gai_strerror F -+ gcvt F -+ get_avphys_pages F -+ get_current_dir_name F -+ get_kernel_syms F -+ get_myaddress F -+ get_nprocs F -+ get_nprocs_conf F -+ get_phys_pages F -+ getaddrinfo F -+ getaliasbyname F -+ getaliasbyname_r F -+ getaliasent F -+ getaliasent_r F -+ getauxval F -+ getc F -+ getc_unlocked F -+ getchar F -+ getchar_unlocked F -+ getcontext F -+ getcwd F -+ getdate F -+ getdate_err D 0x4 -+ getdate_r F -+ getdelim F -+ getdirentries F -+ getdirentries64 F -+ getdomainname F -+ getdtablesize F -+ getegid F -+ getenv F -+ geteuid F -+ getfsent F -+ getfsfile F -+ getfsspec F -+ getgid F -+ getgrent F -+ getgrent_r F -+ getgrgid F -+ getgrgid_r F -+ getgrnam F -+ getgrnam_r F -+ getgrouplist F -+ getgroups F -+ gethostbyaddr F -+ gethostbyaddr_r F -+ gethostbyname F -+ gethostbyname2 F -+ gethostbyname2_r F -+ gethostbyname_r F -+ gethostent F -+ gethostent_r F -+ gethostid F -+ gethostname F -+ getifaddrs F -+ getipv4sourcefilter F -+ getitimer F -+ getline F -+ getloadavg F -+ getlogin F -+ getlogin_r F -+ getmntent F -+ getmntent_r F -+ getmsg F -+ getnameinfo F -+ getnetbyaddr F -+ getnetbyaddr_r F -+ getnetbyname F -+ getnetbyname_r F -+ getnetent F -+ getnetent_r F -+ getnetgrent F -+ getnetgrent_r F -+ getnetname F -+ getopt F -+ getopt_long F -+ getopt_long_only F -+ getpagesize F -+ getpass F -+ getpeername F -+ getpgid F -+ getpgrp F -+ getpid F -+ getpmsg F -+ getppid F -+ getpriority F -+ getprotobyname F -+ getprotobyname_r F -+ getprotobynumber F -+ getprotobynumber_r F -+ getprotoent F -+ getprotoent_r F -+ getpt F -+ getpublickey F -+ getpw F -+ getpwent F -+ getpwent_r F -+ getpwnam F -+ getpwnam_r F -+ getpwuid F -+ getpwuid_r F -+ getresgid F -+ getresuid F -+ getrlimit F -+ getrlimit64 F -+ getrpcbyname F -+ getrpcbyname_r F -+ getrpcbynumber F -+ getrpcbynumber_r F -+ getrpcent F -+ getrpcent_r F -+ getrpcport F -+ getrusage F -+ gets F -+ getsecretkey F -+ getservbyname F -+ getservbyname_r F -+ getservbyport F -+ getservbyport_r F -+ getservent F -+ getservent_r F -+ getsgent F -+ getsgent_r F -+ getsgnam F -+ getsgnam_r F -+ getsid F -+ getsockname F -+ getsockopt F -+ getsourcefilter F -+ getspent F -+ getspent_r F -+ getspnam F -+ getspnam_r F -+ getsubopt F -+ gettext F -+ gettimeofday F -+ getttyent F -+ getttynam F -+ getuid F -+ getusershell F -+ getutent F -+ getutent_r F -+ getutid F -+ getutid_r F -+ getutline F -+ getutline_r F -+ getutmp F -+ getutmpx F -+ getutxent F -+ getutxid F -+ getutxline F -+ getw F -+ getwc F -+ getwc_unlocked F -+ getwchar F -+ getwchar_unlocked F -+ getwd F -+ getxattr F -+ glob F -+ glob64 F -+ glob_pattern_p F -+ globfree F -+ globfree64 F -+ gmtime F -+ gmtime_r F -+ gnu_dev_major F -+ gnu_dev_makedev F -+ gnu_dev_minor F -+ gnu_get_libc_release F -+ gnu_get_libc_version F -+ grantpt F -+ group_member F -+ gsignal F -+ gtty F -+ h_errlist D 0x28 -+ h_nerr D 0x4 -+ hasmntopt F -+ hcreate F -+ hcreate_r F -+ hdestroy F -+ hdestroy_r F -+ herror F -+ host2netname F -+ hsearch F -+ hsearch_r F -+ hstrerror F -+ htonl F -+ htons F -+ iconv F -+ iconv_close F -+ iconv_open F -+ if_freenameindex F -+ if_indextoname F -+ if_nameindex F -+ if_nametoindex F -+ imaxabs F -+ imaxdiv F -+ in6addr_any D 0x10 -+ in6addr_loopback D 0x10 -+ index F -+ inet6_opt_append F -+ inet6_opt_find F -+ inet6_opt_finish F -+ inet6_opt_get_val F -+ inet6_opt_init F -+ inet6_opt_next F -+ inet6_opt_set_val F -+ inet6_option_alloc F -+ inet6_option_append F -+ inet6_option_find F -+ inet6_option_init F -+ inet6_option_next F -+ inet6_option_space F -+ inet6_rth_add F -+ inet6_rth_getaddr F -+ inet6_rth_init F -+ inet6_rth_reverse F -+ inet6_rth_segments F -+ inet6_rth_space F -+ inet_addr F -+ inet_aton F -+ inet_lnaof F -+ inet_makeaddr F -+ inet_netof F -+ inet_network F -+ inet_nsap_addr F -+ inet_nsap_ntoa F -+ inet_ntoa F -+ inet_ntop F -+ inet_pton F -+ init_module F -+ initgroups F -+ initstate F -+ initstate_r F -+ innetgr F -+ inotify_add_watch F -+ inotify_init F -+ inotify_init1 F -+ inotify_rm_watch F -+ insque F -+ ioctl F -+ iruserok F -+ iruserok_af F -+ isalnum F -+ isalnum_l F -+ isalpha F -+ isalpha_l F -+ isascii F -+ isastream F -+ isatty F -+ isblank F -+ isblank_l F -+ iscntrl F -+ iscntrl_l F -+ isctype F -+ isdigit F -+ isdigit_l F -+ isfdtype F -+ isgraph F -+ isgraph_l F -+ isinf F -+ isinff F -+ isinfl F -+ islower F -+ islower_l F -+ isnan F -+ isnanf F -+ isnanl F -+ isprint F -+ isprint_l F -+ ispunct F -+ ispunct_l F -+ isspace F -+ isspace_l F -+ isupper F -+ isupper_l F -+ iswalnum F -+ iswalnum_l F -+ iswalpha F -+ iswalpha_l F -+ iswblank F -+ iswblank_l F -+ iswcntrl F -+ iswcntrl_l F -+ iswctype F -+ iswctype_l F -+ iswdigit F -+ iswdigit_l F -+ iswgraph F -+ iswgraph_l F -+ iswlower F -+ iswlower_l F -+ iswprint F -+ iswprint_l F -+ iswpunct F -+ iswpunct_l F -+ iswspace F -+ iswspace_l F -+ iswupper F -+ iswupper_l F -+ iswxdigit F -+ iswxdigit_l F -+ isxdigit F -+ isxdigit_l F -+ jrand48 F -+ jrand48_r F -+ key_decryptsession F -+ key_decryptsession_pk F -+ key_encryptsession F -+ key_encryptsession_pk F -+ key_gendes F -+ key_get_conv F -+ key_secretkey_is_set F -+ key_setnet F -+ key_setsecret F -+ kill F -+ killpg F -+ klogctl F -+ l64a F -+ labs F -+ lchmod F -+ lchown F -+ lckpwdf F -+ lcong48 F -+ lcong48_r F -+ ldexp F -+ ldexpf F -+ ldexpl F -+ ldiv F -+ lfind F -+ lgetxattr F -+ link F -+ linkat F -+ listen F -+ listxattr F -+ llabs F -+ lldiv F -+ llistxattr F -+ llseek F -+ loc1 D 0x8 -+ loc2 D 0x8 -+ localeconv F -+ localtime F -+ localtime_r F -+ lockf F -+ lockf64 F -+ locs D 0x8 -+ longjmp F -+ lrand48 F -+ lrand48_r F -+ lremovexattr F -+ lsearch F -+ lseek F -+ lseek64 F -+ lsetxattr F -+ lutimes F -+ madvise F -+ makecontext F -+ mallinfo F -+ malloc F -+ malloc_get_state F -+ malloc_info F -+ malloc_set_state F -+ malloc_stats F -+ malloc_trim F -+ malloc_usable_size F -+ mallopt F -+ mallwatch D 0x8 -+ mblen F -+ mbrlen F -+ mbrtoc16 F -+ mbrtoc32 F -+ mbrtowc F -+ mbsinit F -+ mbsnrtowcs F -+ mbsrtowcs F -+ mbstowcs F -+ mbtowc F -+ mcheck F -+ mcheck_check_all F -+ mcheck_pedantic F -+ memalign F -+ memccpy F -+ memchr F -+ memcmp F -+ memcpy F -+ memfrob F -+ memmem F -+ memmove F -+ mempcpy F -+ memrchr F -+ memset F -+ mincore F -+ mkdir F -+ mkdirat F -+ mkdtemp F -+ mkfifo F -+ mkfifoat F -+ mkostemp F -+ mkostemp64 F -+ mkostemps F -+ mkostemps64 F -+ mkstemp F -+ mkstemp64 F -+ mkstemps F -+ mkstemps64 F -+ mktemp F -+ mktime F -+ mlock F -+ mlockall F -+ mmap F -+ mmap64 F -+ modf F -+ modff F -+ modfl F -+ moncontrol F -+ monstartup F -+ mount F -+ mprobe F -+ mprotect F -+ mrand48 F -+ mrand48_r F -+ mremap F -+ msgctl F -+ msgget F -+ msgrcv F -+ msgsnd F -+ msync F -+ mtrace F -+ munlock F -+ munlockall F -+ munmap F -+ muntrace F -+ name_to_handle_at F -+ nanosleep F -+ netname2host F -+ netname2user F -+ newlocale F -+ nfsservctl F -+ nftw F -+ nftw64 F -+ ngettext F -+ nice F -+ nl_langinfo F -+ nl_langinfo_l F -+ nrand48 F -+ nrand48_r F -+ ntohl F -+ ntohs F -+ ntp_adjtime F -+ ntp_gettime F -+ ntp_gettimex F -+ obstack_alloc_failed_handler D 0x8 -+ obstack_exit_failure D 0x4 -+ obstack_free F -+ obstack_printf F -+ obstack_vprintf F -+ on_exit F -+ open F -+ open64 F -+ open_by_handle_at F -+ open_memstream F -+ open_wmemstream F -+ openat F -+ openat64 F -+ opendir F -+ openlog F -+ optarg D 0x8 -+ opterr D 0x4 -+ optind D 0x4 -+ optopt D 0x4 -+ parse_printf_format F -+ passwd2des F -+ pathconf F -+ pause F -+ pclose F -+ perror F -+ personality F -+ pipe F -+ pipe2 F -+ pivot_root F -+ pmap_getmaps F -+ pmap_getport F -+ pmap_rmtcall F -+ pmap_set F -+ pmap_unset F -+ poll F -+ popen F -+ posix_fadvise F -+ posix_fadvise64 F -+ posix_fallocate F -+ posix_fallocate64 F -+ posix_madvise F -+ posix_memalign F -+ posix_openpt F -+ posix_spawn F -+ posix_spawn_file_actions_addclose F -+ posix_spawn_file_actions_adddup2 F -+ posix_spawn_file_actions_addopen F -+ posix_spawn_file_actions_destroy F -+ posix_spawn_file_actions_init F -+ posix_spawnattr_destroy F -+ posix_spawnattr_getflags F -+ posix_spawnattr_getpgroup F -+ posix_spawnattr_getschedparam F -+ posix_spawnattr_getschedpolicy F -+ posix_spawnattr_getsigdefault F -+ posix_spawnattr_getsigmask F -+ posix_spawnattr_init F -+ posix_spawnattr_setflags F -+ posix_spawnattr_setpgroup F -+ posix_spawnattr_setschedparam F -+ posix_spawnattr_setschedpolicy F -+ posix_spawnattr_setsigdefault F -+ posix_spawnattr_setsigmask F -+ posix_spawnp F -+ ppoll F -+ prctl F -+ pread F -+ pread64 F -+ preadv F -+ preadv64 F -+ printf F -+ printf_size F -+ printf_size_info F -+ prlimit F -+ prlimit64 F -+ process_vm_readv F -+ process_vm_writev F -+ profil F -+ program_invocation_name D 0x8 -+ program_invocation_short_name D 0x8 -+ pselect F -+ psiginfo F -+ psignal F -+ pthread_attr_destroy F -+ pthread_attr_getdetachstate F -+ pthread_attr_getinheritsched F -+ pthread_attr_getschedparam F -+ pthread_attr_getschedpolicy F -+ pthread_attr_getscope F -+ pthread_attr_init F -+ pthread_attr_setdetachstate F -+ pthread_attr_setinheritsched F -+ pthread_attr_setschedparam F -+ pthread_attr_setschedpolicy F -+ pthread_attr_setscope F -+ pthread_cond_broadcast F -+ pthread_cond_destroy F -+ pthread_cond_init F -+ pthread_cond_signal F -+ pthread_cond_timedwait F -+ pthread_cond_wait F -+ pthread_condattr_destroy F -+ pthread_condattr_init F -+ pthread_equal F -+ pthread_exit F -+ pthread_getschedparam F -+ pthread_mutex_destroy F -+ pthread_mutex_init F -+ pthread_mutex_lock F -+ pthread_mutex_unlock F -+ pthread_self F -+ pthread_setcancelstate F -+ pthread_setcanceltype F -+ pthread_setschedparam F -+ ptrace F -+ ptsname F -+ ptsname_r F -+ putc F -+ putc_unlocked F -+ putchar F -+ putchar_unlocked F -+ putenv F -+ putgrent F -+ putmsg F -+ putpmsg F -+ putpwent F -+ puts F -+ putsgent F -+ putspent F -+ pututline F -+ pututxline F -+ putw F -+ putwc F -+ putwc_unlocked F -+ putwchar F -+ putwchar_unlocked F -+ pvalloc F -+ pwrite F -+ pwrite64 F -+ pwritev F -+ pwritev64 F -+ qecvt F -+ qecvt_r F -+ qfcvt F -+ qfcvt_r F -+ qgcvt F -+ qsort F -+ qsort_r F -+ query_module F -+ quick_exit F -+ quotactl F -+ raise F -+ rand F -+ rand_r F -+ random F -+ random_r F -+ rawmemchr F -+ rcmd F -+ rcmd_af F -+ re_comp F -+ re_compile_fastmap F -+ re_compile_pattern F -+ re_exec F -+ re_match F -+ re_match_2 F -+ re_search F -+ re_search_2 F -+ re_set_registers F -+ re_set_syntax F -+ re_syntax_options D 0x8 -+ read F -+ readahead F -+ readdir F -+ readdir64 F -+ readdir64_r F -+ readdir_r F -+ readlink F -+ readlinkat F -+ readv F -+ realloc F -+ realpath F -+ reboot F -+ recv F -+ recvfrom F -+ recvmmsg F -+ recvmsg F -+ regcomp F -+ regerror F -+ regexec F -+ regfree F -+ register_printf_function F -+ register_printf_modifier F -+ register_printf_specifier F -+ register_printf_type F -+ registerrpc F -+ remap_file_pages F -+ remove F -+ removexattr F -+ remque F -+ rename F -+ renameat F -+ revoke F -+ rewind F -+ rewinddir F -+ rexec F -+ rexec_af F -+ rexecoptions D 0x4 -+ rindex F -+ rmdir F -+ rpc_createerr D 0x20 -+ rpmatch F -+ rresvport F -+ rresvport_af F -+ rtime F -+ ruserok F -+ ruserok_af F -+ ruserpass F -+ sbrk F -+ scalbn F -+ scalbnf F -+ scalbnl F -+ scandir F -+ scandir64 F -+ scandirat F -+ scandirat64 F -+ scanf F -+ sched_get_priority_max F -+ sched_get_priority_min F -+ sched_getaffinity F -+ sched_getcpu F -+ sched_getparam F -+ sched_getscheduler F -+ sched_rr_get_interval F -+ sched_setaffinity F -+ sched_setparam F -+ sched_setscheduler F -+ sched_yield F -+ secure_getenv F -+ seed48 F -+ seed48_r F -+ seekdir F -+ select F -+ semctl F -+ semget F -+ semop F -+ semtimedop F -+ send F -+ sendfile F -+ sendfile64 F -+ sendmmsg F -+ sendmsg F -+ sendto F -+ setaliasent F -+ setbuf F -+ setbuffer F -+ setcontext F -+ setdomainname F -+ setegid F -+ setenv F -+ seteuid F -+ setfsent F -+ setfsgid F -+ setfsuid F -+ setgid F -+ setgrent F -+ setgroups F -+ sethostent F -+ sethostid F -+ sethostname F -+ setipv4sourcefilter F -+ setitimer F -+ setjmp F -+ setlinebuf F -+ setlocale F -+ setlogin F -+ setlogmask F -+ setmntent F -+ setnetent F -+ setnetgrent F -+ setns F -+ setpgid F -+ setpgrp F -+ setpriority F -+ setprotoent F -+ setpwent F -+ setregid F -+ setresgid F -+ setresuid F -+ setreuid F -+ setrlimit F -+ setrlimit64 F -+ setrpcent F -+ setservent F -+ setsgent F -+ setsid F -+ setsockopt F -+ setsourcefilter F -+ setspent F -+ setstate F -+ setstate_r F -+ settimeofday F -+ setttyent F -+ setuid F -+ setusershell F -+ setutent F -+ setutxent F -+ setvbuf F -+ setxattr F -+ sgetsgent F -+ sgetsgent_r F -+ sgetspent F -+ sgetspent_r F -+ shmat F -+ shmctl F -+ shmdt F -+ shmget F -+ shutdown F -+ sigaction F -+ sigaddset F -+ sigaltstack F -+ sigandset F -+ sigblock F -+ sigdelset F -+ sigemptyset F -+ sigfillset F -+ siggetmask F -+ sighold F -+ sigignore F -+ siginterrupt F -+ sigisemptyset F -+ sigismember F -+ siglongjmp F -+ signal F -+ signalfd F -+ sigorset F -+ sigpause F -+ sigpending F -+ sigprocmask F -+ sigqueue F -+ sigrelse F -+ sigreturn F -+ sigset F -+ sigsetmask F -+ sigstack F -+ sigsuspend F -+ sigtimedwait F -+ sigvec F -+ sigwait F -+ sigwaitinfo F -+ sleep F -+ snprintf F -+ sockatmark F -+ socket F -+ socketpair F -+ splice F -+ sprintf F -+ sprofil F -+ srand F -+ srand48 F -+ srand48_r F -+ srandom F -+ srandom_r F -+ sscanf F -+ ssignal F -+ sstk F -+ statfs F -+ statfs64 F -+ statvfs F -+ statvfs64 F -+ stderr D 0x8 -+ stdin D 0x8 -+ stdout D 0x8 -+ step F -+ stime F -+ stpcpy F -+ stpncpy F -+ strcasecmp F -+ strcasecmp_l F -+ strcasestr F -+ strcat F -+ strchr F -+ strchrnul F -+ strcmp F -+ strcoll F -+ strcoll_l F -+ strcpy F -+ strcspn F -+ strdup F -+ strerror F -+ strerror_l F -+ strerror_r F -+ strfmon F -+ strfmon_l F -+ strfry F -+ strftime F -+ strftime_l F -+ strlen F -+ strncasecmp F -+ strncasecmp_l F -+ strncat F -+ strncmp F -+ strncpy F -+ strndup F -+ strnlen F -+ strpbrk F -+ strptime F -+ strptime_l F -+ strrchr F -+ strsep F -+ strsignal F -+ strspn F -+ strstr F -+ strtod F -+ strtod_l F -+ strtof F -+ strtof_l F -+ strtoimax F -+ strtok F -+ strtok_r F -+ strtol F -+ strtol_l F -+ strtold F -+ strtold_l F -+ strtoll F -+ strtoll_l F -+ strtoq F -+ strtoul F -+ strtoul_l F -+ strtoull F -+ strtoull_l F -+ strtoumax F -+ strtouq F -+ strverscmp F -+ strxfrm F -+ strxfrm_l F -+ stty F -+ svc_exit F -+ svc_fdset D 0x80 -+ svc_getreq F -+ svc_getreq_common F -+ svc_getreq_poll F -+ svc_getreqset F -+ svc_max_pollfd D 0x4 -+ svc_pollfd D 0x8 -+ svc_register F -+ svc_run F -+ svc_sendreply F -+ svc_unregister F -+ svcauthdes_stats D 0x18 -+ svcerr_auth F -+ svcerr_decode F -+ svcerr_noproc F -+ svcerr_noprog F -+ svcerr_progvers F -+ svcerr_systemerr F -+ svcerr_weakauth F -+ svcfd_create F -+ svcraw_create F -+ svctcp_create F -+ svcudp_bufcreate F -+ svcudp_create F -+ svcudp_enablecache F -+ svcunix_create F -+ svcunixfd_create F -+ swab F -+ swapcontext F -+ swapoff F -+ swapon F -+ swprintf F -+ swscanf F -+ symlink F -+ symlinkat F -+ sync F -+ sync_file_range F -+ syncfs F -+ sys_errlist D 0x438 -+ sys_nerr D 0x4 -+ sys_sigabbrev D 0x208 -+ sys_siglist D 0x208 -+ syscall F -+ sysconf F -+ sysctl F -+ sysinfo F -+ syslog F -+ system F -+ sysv_signal F -+ tcdrain F -+ tcflow F -+ tcflush F -+ tcgetattr F -+ tcgetpgrp F -+ tcgetsid F -+ tcsendbreak F -+ tcsetattr F -+ tcsetpgrp F -+ tdelete F -+ tdestroy F -+ tee F -+ telldir F -+ tempnam F -+ textdomain F -+ tfind F -+ time F -+ timegm F -+ timelocal F -+ timerfd_create F -+ timerfd_gettime F -+ timerfd_settime F -+ times F -+ timespec_get F -+ timezone D 0x8 -+ tmpfile F -+ tmpfile64 F -+ tmpnam F -+ tmpnam_r F -+ toascii F -+ tolower F -+ tolower_l F -+ toupper F -+ toupper_l F -+ towctrans F -+ towctrans_l F -+ towlower F -+ towlower_l F -+ towupper F -+ towupper_l F -+ tr_break F -+ truncate F -+ truncate64 F -+ tsearch F -+ ttyname F -+ ttyname_r F -+ ttyslot F -+ twalk F -+ tzname D 0x10 -+ tzset F -+ ualarm F -+ ulckpwdf F -+ ulimit F -+ umask F -+ umount F -+ umount2 F -+ uname F -+ ungetc F -+ ungetwc F -+ unlink F -+ unlinkat F -+ unlockpt F -+ unsetenv F -+ unshare F -+ updwtmp F -+ updwtmpx F -+ uselib F -+ uselocale F -+ user2netname F -+ usleep F -+ ustat F -+ utime F -+ utimensat F -+ utimes F -+ utmpname F -+ utmpxname F -+ valloc F -+ vasprintf F -+ vdprintf F -+ verr F -+ verrx F -+ versionsort F -+ versionsort64 F -+ vfork F -+ vfprintf F -+ vfscanf F -+ vfwprintf F -+ vfwscanf F -+ vhangup F -+ vlimit F -+ vmsplice F -+ vprintf F -+ vscanf F -+ vsnprintf F -+ vsprintf F -+ vsscanf F -+ vswprintf F -+ vswscanf F -+ vsyslog F -+ vtimes F -+ vwarn F -+ vwarnx F -+ vwprintf F -+ vwscanf F -+ wait F -+ wait3 F -+ wait4 F -+ waitid F -+ waitpid F -+ warn F -+ warnx F -+ wcpcpy F -+ wcpncpy F -+ wcrtomb F -+ wcscasecmp F -+ wcscasecmp_l F -+ wcscat F -+ wcschr F -+ wcschrnul F -+ wcscmp F -+ wcscoll F -+ wcscoll_l F -+ wcscpy F -+ wcscspn F -+ wcsdup F -+ wcsftime F -+ wcsftime_l F -+ wcslen F -+ wcsncasecmp F -+ wcsncasecmp_l F -+ wcsncat F -+ wcsncmp F -+ wcsncpy F -+ wcsnlen F -+ wcsnrtombs F -+ wcspbrk F -+ wcsrchr F -+ wcsrtombs F -+ wcsspn F -+ wcsstr F -+ wcstod F -+ wcstod_l F -+ wcstof F -+ wcstof_l F -+ wcstoimax F -+ wcstok F -+ wcstol F -+ wcstol_l F -+ wcstold F -+ wcstold_l F -+ wcstoll F -+ wcstoll_l F -+ wcstombs F -+ wcstoq F -+ wcstoul F -+ wcstoul_l F -+ wcstoull F -+ wcstoull_l F -+ wcstoumax F -+ wcstouq F -+ wcswcs F -+ wcswidth F -+ wcsxfrm F -+ wcsxfrm_l F -+ wctob F -+ wctomb F -+ wctrans F -+ wctrans_l F -+ wctype F -+ wctype_l F -+ wcwidth F -+ wmemchr F -+ wmemcmp F -+ wmemcpy F -+ wmemmove F -+ wmempcpy F -+ wmemset F -+ wordexp F -+ wordfree F -+ wprintf F -+ write F -+ writev F -+ wscanf F -+ xdecrypt F -+ xdr_accepted_reply F -+ xdr_array F -+ xdr_authdes_cred F -+ xdr_authdes_verf F -+ xdr_authunix_parms F -+ xdr_bool F -+ xdr_bytes F -+ xdr_callhdr F -+ xdr_callmsg F -+ xdr_char F -+ xdr_cryptkeyarg F -+ xdr_cryptkeyarg2 F -+ xdr_cryptkeyres F -+ xdr_des_block F -+ xdr_double F -+ xdr_enum F -+ xdr_float F -+ xdr_free F -+ xdr_getcredres F -+ xdr_hyper F -+ xdr_int F -+ xdr_int16_t F -+ xdr_int32_t F -+ xdr_int64_t F -+ xdr_int8_t F -+ xdr_key_netstarg F -+ xdr_key_netstres F -+ xdr_keybuf F -+ xdr_keystatus F -+ xdr_long F -+ xdr_longlong_t F -+ xdr_netnamestr F -+ xdr_netobj F -+ xdr_opaque F -+ xdr_opaque_auth F -+ xdr_pmap F -+ xdr_pmaplist F -+ xdr_pointer F -+ xdr_quad_t F -+ xdr_reference F -+ xdr_rejected_reply F -+ xdr_replymsg F -+ xdr_rmtcall_args F -+ xdr_rmtcallres F -+ xdr_short F -+ xdr_sizeof F -+ xdr_string F -+ xdr_u_char F -+ xdr_u_hyper F -+ xdr_u_int F -+ xdr_u_long F -+ xdr_u_longlong_t F -+ xdr_u_quad_t F -+ xdr_u_short F -+ xdr_uint16_t F -+ xdr_uint32_t F -+ xdr_uint64_t F -+ xdr_uint8_t F -+ xdr_union F -+ xdr_unixcred F -+ xdr_vector F -+ xdr_void F -+ xdr_wrapstring F -+ xdrmem_create F -+ xdrrec_create F -+ xdrrec_endofrecord F -+ xdrrec_eof F -+ xdrrec_skiprecord F -+ xdrstdio_create F -+ xencrypt F -+ xprt_register F -+ xprt_unregister F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt-le.abilist -@@ -0,0 +1,9 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ crypt F -+ crypt_r F -+ encrypt F -+ encrypt_r F -+ fcrypt F -+ setkey F -+ setkey_r F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl-le.abilist -@@ -0,0 +1,11 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ dladdr F -+ dladdr1 F -+ dlclose F -+ dlerror F -+ dlinfo F -+ dlmopen F -+ dlopen F -+ dlsym F -+ dlvsym F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm-le.abilist -@@ -0,0 +1,405 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ _LIB_VERSION D 0x4 -+ __acos_finite F -+ __acosf_finite F -+ __acosh_finite F -+ __acoshf_finite F -+ __acoshl_finite F -+ __acosl_finite F -+ __asin_finite F -+ __asinf_finite F -+ __asinl_finite F -+ __atan2_finite F -+ __atan2f_finite F -+ __atan2l_finite F -+ __atanh_finite F -+ __atanhf_finite F -+ __atanhl_finite F -+ __clog10 F -+ __clog10f F -+ __clog10l F -+ __cosh_finite F -+ __coshf_finite F -+ __coshl_finite F -+ __exp10_finite F -+ __exp10f_finite F -+ __exp10l_finite F -+ __exp2_finite F -+ __exp2f_finite F -+ __exp2l_finite F -+ __exp_finite F -+ __expf_finite F -+ __expl_finite F -+ __fe_dfl_env D 0x8 -+ __fe_enabled_env D 0x8 -+ __fe_nomask_env F -+ __fe_nonieee_env D 0x8 -+ __finite F -+ __finitef F -+ __finitel F -+ __fmod_finite F -+ __fmodf_finite F -+ __fmodl_finite F -+ __fpclassify F -+ __fpclassifyf F -+ __fpclassifyl F -+ __gamma_r_finite F -+ __gammaf_r_finite F -+ __gammal_r_finite F -+ __hypot_finite F -+ __hypotf_finite F -+ __hypotl_finite F -+ __issignaling F -+ __issignalingf F -+ __issignalingl F -+ __j0_finite F -+ __j0f_finite F -+ __j0l_finite F -+ __j1_finite F -+ __j1f_finite F -+ __j1l_finite F -+ __jn_finite F -+ __jnf_finite F -+ __jnl_finite F -+ __lgamma_r_finite F -+ __lgammaf_r_finite F -+ __lgammal_r_finite F -+ __log10_finite F -+ __log10f_finite F -+ __log10l_finite F -+ __log2_finite F -+ __log2f_finite F -+ __log2l_finite F -+ __log_finite F -+ __logf_finite F -+ __logl_finite F -+ __nldbl_nexttowardf F -+ __pow_finite F -+ __powf_finite F -+ __powl_finite F -+ __remainder_finite F -+ __remainderf_finite F -+ __remainderl_finite F -+ __scalb_finite F -+ __scalbf_finite F -+ __scalbl_finite F -+ __signbit F -+ __signbitf F -+ __signbitl F -+ __sinh_finite F -+ __sinhf_finite F -+ __sinhl_finite F -+ __sqrt_finite F -+ __sqrtf_finite F -+ __sqrtl_finite F -+ __y0_finite F -+ __y0f_finite F -+ __y0l_finite F -+ __y1_finite F -+ __y1f_finite F -+ __y1l_finite F -+ __yn_finite F -+ __ynf_finite F -+ __ynl_finite F -+ acos F -+ acosf F -+ acosh F -+ acoshf F -+ acoshl F -+ acosl F -+ asin F -+ asinf F -+ asinh F -+ asinhf F -+ asinhl F -+ asinl F -+ atan F -+ atan2 F -+ atan2f F -+ atan2l F -+ atanf F -+ atanh F -+ atanhf F -+ atanhl F -+ atanl F -+ cabs F -+ cabsf F -+ cabsl F -+ cacos F -+ cacosf F -+ cacosh F -+ cacoshf F -+ cacoshl F -+ cacosl F -+ carg F -+ cargf F -+ cargl F -+ casin F -+ casinf F -+ casinh F -+ casinhf F -+ casinhl F -+ casinl F -+ catan F -+ catanf F -+ catanh F -+ catanhf F -+ catanhl F -+ catanl F -+ cbrt F -+ cbrtf F -+ cbrtl F -+ ccos F -+ ccosf F -+ ccosh F -+ ccoshf F -+ ccoshl F -+ ccosl F -+ ceil F -+ ceilf F -+ ceill F -+ cexp F -+ cexpf F -+ cexpl F -+ cimag F -+ cimagf F -+ cimagl F -+ clog F -+ clog10 F -+ clog10f F -+ clog10l F -+ clogf F -+ clogl F -+ conj F -+ conjf F -+ conjl F -+ copysign F -+ copysignf F -+ copysignl F -+ cos F -+ cosf F -+ cosh F -+ coshf F -+ coshl F -+ cosl F -+ cpow F -+ cpowf F -+ cpowl F -+ cproj F -+ cprojf F -+ cprojl F -+ creal F -+ crealf F -+ creall F -+ csin F -+ csinf F -+ csinh F -+ csinhf F -+ csinhl F -+ csinl F -+ csqrt F -+ csqrtf F -+ csqrtl F -+ ctan F -+ ctanf F -+ ctanh F -+ ctanhf F -+ ctanhl F -+ ctanl F -+ drem F -+ dremf F -+ dreml F -+ erf F -+ erfc F -+ erfcf F -+ erfcl F -+ erff F -+ erfl F -+ exp F -+ exp10 F -+ exp10f F -+ exp10l F -+ exp2 F -+ exp2f F -+ exp2l F -+ expf F -+ expl F -+ expm1 F -+ expm1f F -+ expm1l F -+ fabs F -+ fabsf F -+ fabsl F -+ fdim F -+ fdimf F -+ fdiml F -+ feclearexcept F -+ fedisableexcept F -+ feenableexcept F -+ fegetenv F -+ fegetexcept F -+ fegetexceptflag F -+ fegetround F -+ feholdexcept F -+ feraiseexcept F -+ fesetenv F -+ fesetexceptflag F -+ fesetround F -+ fetestexcept F -+ feupdateenv F -+ finite F -+ finitef F -+ finitel F -+ floor F -+ floorf F -+ floorl F -+ fma F -+ fmaf F -+ fmal F -+ fmax F -+ fmaxf F -+ fmaxl F -+ fmin F -+ fminf F -+ fminl F -+ fmod F -+ fmodf F -+ fmodl F -+ frexp F -+ frexpf F -+ frexpl F -+ gamma F -+ gammaf F -+ gammal F -+ hypot F -+ hypotf F -+ hypotl F -+ ilogb F -+ ilogbf F -+ ilogbl F -+ j0 F -+ j0f F -+ j0l F -+ j1 F -+ j1f F -+ j1l F -+ jn F -+ jnf F -+ jnl F -+ ldexp F -+ ldexpf F -+ ldexpl F -+ lgamma F -+ lgamma_r F -+ lgammaf F -+ lgammaf_r F -+ lgammal F -+ lgammal_r F -+ llrint F -+ llrintf F -+ llrintl F -+ llround F -+ llroundf F -+ llroundl F -+ log F -+ log10 F -+ log10f F -+ log10l F -+ log1p F -+ log1pf F -+ log1pl F -+ log2 F -+ log2f F -+ log2l F -+ logb F -+ logbf F -+ logbl F -+ logf F -+ logl F -+ lrint F -+ lrintf F -+ lrintl F -+ lround F -+ lroundf F -+ lroundl F -+ matherr F -+ modf F -+ modff F -+ modfl F -+ nan F -+ nanf F -+ nanl F -+ nearbyint F -+ nearbyintf F -+ nearbyintl F -+ nextafter F -+ nextafterf F -+ nextafterl F -+ nexttoward F -+ nexttowardf F -+ nexttowardl F -+ pow F -+ pow10 F -+ pow10f F -+ pow10l F -+ powf F -+ powl F -+ remainder F -+ remainderf F -+ remainderl F -+ remquo F -+ remquof F -+ remquol F -+ rint F -+ rintf F -+ rintl F -+ round F -+ roundf F -+ roundl F -+ scalb F -+ scalbf F -+ scalbl F -+ scalbln F -+ scalblnf F -+ scalblnl F -+ scalbn F -+ scalbnf F -+ scalbnl F -+ signgam D 0x4 -+ significand F -+ significandf F -+ significandl F -+ sin F -+ sincos F -+ sincosf F -+ sincosl F -+ sinf F -+ sinh F -+ sinhf F -+ sinhl F -+ sinl F -+ sqrt F -+ sqrtf F -+ sqrtl F -+ tan F -+ tanf F -+ tanh F -+ tanhf F -+ tanhl F -+ tanl F -+ tgamma F -+ tgammaf F -+ tgammal F -+ trunc F -+ truncf F -+ truncl F -+ y0 F -+ y0f F -+ y0l F -+ y1 F -+ y1f F -+ y1l F -+ yn F -+ ynf F -+ ynl F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl-le.abilist -@@ -0,0 +1,123 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ __free_fdresult F -+ __nis_default_access F -+ __nis_default_group F -+ __nis_default_owner F -+ __nis_default_ttl F -+ __nis_finddirectory F -+ __nis_hash F -+ __nisbind_connect F -+ __nisbind_create F -+ __nisbind_destroy F -+ __nisbind_next F -+ __yp_check F -+ nis_add F -+ nis_add_entry F -+ nis_addmember F -+ nis_checkpoint F -+ nis_clone_directory F -+ nis_clone_object F -+ nis_clone_result F -+ nis_creategroup F -+ nis_destroy_object F -+ nis_destroygroup F -+ nis_dir_cmp F -+ nis_domain_of F -+ nis_domain_of_r F -+ nis_first_entry F -+ nis_free_directory F -+ nis_free_object F -+ nis_free_request F -+ nis_freenames F -+ nis_freeresult F -+ nis_freeservlist F -+ nis_freetags F -+ nis_getnames F -+ nis_getservlist F -+ nis_ismember F -+ nis_leaf_of F -+ nis_leaf_of_r F -+ nis_lerror F -+ nis_list F -+ nis_local_directory F -+ nis_local_group F -+ nis_local_host F -+ nis_local_principal F -+ nis_lookup F -+ nis_mkdir F -+ nis_modify F -+ nis_modify_entry F -+ nis_name_of F -+ nis_name_of_r F -+ nis_next_entry F -+ nis_perror F -+ nis_ping F -+ nis_print_directory F -+ nis_print_entry F -+ nis_print_group F -+ nis_print_group_entry F -+ nis_print_link F -+ nis_print_object F -+ nis_print_result F -+ nis_print_rights F -+ nis_print_table F -+ nis_read_obj F -+ nis_remove F -+ nis_remove_entry F -+ nis_removemember F -+ nis_rmdir F -+ nis_servstate F -+ nis_sperrno F -+ nis_sperror F -+ nis_sperror_r F -+ nis_stats F -+ nis_verifygroup F -+ nis_write_obj F -+ readColdStartFile F -+ writeColdStartFile F -+ xdr_cback_data F -+ xdr_domainname F -+ xdr_keydat F -+ xdr_mapname F -+ xdr_obj_p F -+ xdr_peername F -+ xdr_valdat F -+ xdr_yp_buf F -+ xdr_ypall F -+ xdr_ypbind_binding F -+ xdr_ypbind_resp F -+ xdr_ypbind_resptype F -+ xdr_ypbind_setdom F -+ xdr_ypdelete_args F -+ xdr_ypmap_parms F -+ xdr_ypmaplist F -+ xdr_yppush_status F -+ xdr_yppushresp_xfr F -+ xdr_ypreq_key F -+ xdr_ypreq_nokey F -+ xdr_ypreq_xfr F -+ xdr_ypresp_all F -+ xdr_ypresp_key_val F -+ xdr_ypresp_maplist F -+ xdr_ypresp_master F -+ xdr_ypresp_order F -+ xdr_ypresp_val F -+ xdr_ypresp_xfr F -+ xdr_ypstat F -+ xdr_ypupdate_args F -+ xdr_ypxfrstat F -+ yp_all F -+ yp_bind F -+ yp_first F -+ yp_get_default_domain F -+ yp_maplist F -+ yp_master F -+ yp_match F -+ yp_next F -+ yp_order F -+ yp_unbind F -+ yp_update F -+ ypbinderr_string F -+ yperr_string F -+ ypprot_err F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread-le.abilist -@@ -0,0 +1,226 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ _IO_flockfile F -+ _IO_ftrylockfile F -+ _IO_funlockfile F -+ __close F -+ __connect F -+ __errno_location F -+ __fcntl F -+ __fork F -+ __h_errno_location F -+ __libc_allocate_rtsig F -+ __libc_current_sigrtmax F -+ __libc_current_sigrtmin F -+ __lseek F -+ __nanosleep F -+ __open F -+ __open64 F -+ __pread64 F -+ __pthread_cleanup_routine F -+ __pthread_getspecific F -+ __pthread_key_create F -+ __pthread_mutex_destroy F -+ __pthread_mutex_init F -+ __pthread_mutex_lock F -+ __pthread_mutex_trylock F -+ __pthread_mutex_unlock F -+ __pthread_mutexattr_destroy F -+ __pthread_mutexattr_init F -+ __pthread_mutexattr_settype F -+ __pthread_once F -+ __pthread_register_cancel F -+ __pthread_register_cancel_defer F -+ __pthread_rwlock_destroy F -+ __pthread_rwlock_init F -+ __pthread_rwlock_rdlock F -+ __pthread_rwlock_tryrdlock F -+ __pthread_rwlock_trywrlock F -+ __pthread_rwlock_unlock F -+ __pthread_rwlock_wrlock F -+ __pthread_setspecific F -+ __pthread_unregister_cancel F -+ __pthread_unregister_cancel_restore F -+ __pthread_unwind_next F -+ __pwrite64 F -+ __read F -+ __res_state F -+ __send F -+ __sigaction F -+ __vfork F -+ __wait F -+ __write F -+ _pthread_cleanup_pop F -+ _pthread_cleanup_pop_restore F -+ _pthread_cleanup_push F -+ _pthread_cleanup_push_defer F -+ accept F -+ close F -+ connect F -+ fcntl F -+ flockfile F -+ fork F -+ fsync F -+ ftrylockfile F -+ funlockfile F -+ longjmp F -+ lseek F -+ lseek64 F -+ msync F -+ nanosleep F -+ open F -+ open64 F -+ pause F -+ pread F -+ pread64 F -+ pthread_attr_destroy F -+ pthread_attr_getaffinity_np F -+ pthread_attr_getdetachstate F -+ pthread_attr_getguardsize F -+ pthread_attr_getinheritsched F -+ pthread_attr_getschedparam F -+ pthread_attr_getschedpolicy F -+ pthread_attr_getscope F -+ pthread_attr_getstack F -+ pthread_attr_getstackaddr F -+ pthread_attr_getstacksize F -+ pthread_attr_init F -+ pthread_attr_setaffinity_np F -+ pthread_attr_setdetachstate F -+ pthread_attr_setguardsize F -+ pthread_attr_setinheritsched F -+ pthread_attr_setschedparam F -+ pthread_attr_setschedpolicy F -+ pthread_attr_setscope F -+ pthread_attr_setstack F -+ pthread_attr_setstackaddr F -+ pthread_attr_setstacksize F -+ pthread_barrier_destroy F -+ pthread_barrier_init F -+ pthread_barrier_wait F -+ pthread_barrierattr_destroy F -+ pthread_barrierattr_getpshared F -+ pthread_barrierattr_init F -+ pthread_barrierattr_setpshared F -+ pthread_cancel F -+ pthread_cond_broadcast F -+ pthread_cond_destroy F -+ pthread_cond_init F -+ pthread_cond_signal F -+ pthread_cond_timedwait F -+ pthread_cond_wait F -+ pthread_condattr_destroy F -+ pthread_condattr_getclock F -+ pthread_condattr_getpshared F -+ pthread_condattr_init F -+ pthread_condattr_setclock F -+ pthread_condattr_setpshared F -+ pthread_create F -+ pthread_detach F -+ pthread_equal F -+ pthread_exit F -+ pthread_getaffinity_np F -+ pthread_getattr_default_np F -+ pthread_getattr_np F -+ pthread_getconcurrency F -+ pthread_getcpuclockid F -+ pthread_getname_np F -+ pthread_getschedparam F -+ pthread_getspecific F -+ pthread_join F -+ pthread_key_create F -+ pthread_key_delete F -+ pthread_kill F -+ pthread_kill_other_threads_np F -+ pthread_mutex_consistent F -+ pthread_mutex_consistent_np F -+ pthread_mutex_destroy F -+ pthread_mutex_getprioceiling F -+ pthread_mutex_init F -+ pthread_mutex_lock F -+ pthread_mutex_setprioceiling F -+ pthread_mutex_timedlock F -+ pthread_mutex_trylock F -+ pthread_mutex_unlock F -+ pthread_mutexattr_destroy F -+ pthread_mutexattr_getkind_np F -+ pthread_mutexattr_getprioceiling F -+ pthread_mutexattr_getprotocol F -+ pthread_mutexattr_getpshared F -+ pthread_mutexattr_getrobust F -+ pthread_mutexattr_getrobust_np F -+ pthread_mutexattr_gettype F -+ pthread_mutexattr_init F -+ pthread_mutexattr_setkind_np F -+ pthread_mutexattr_setprioceiling F -+ pthread_mutexattr_setprotocol F -+ pthread_mutexattr_setpshared F -+ pthread_mutexattr_setrobust F -+ pthread_mutexattr_setrobust_np F -+ pthread_mutexattr_settype F -+ pthread_once F -+ pthread_rwlock_destroy F -+ pthread_rwlock_init F -+ pthread_rwlock_rdlock F -+ pthread_rwlock_timedrdlock F -+ pthread_rwlock_timedwrlock F -+ pthread_rwlock_tryrdlock F -+ pthread_rwlock_trywrlock F -+ pthread_rwlock_unlock F -+ pthread_rwlock_wrlock F -+ pthread_rwlockattr_destroy F -+ pthread_rwlockattr_getkind_np F -+ pthread_rwlockattr_getpshared F -+ pthread_rwlockattr_init F -+ pthread_rwlockattr_setkind_np F -+ pthread_rwlockattr_setpshared F -+ pthread_self F -+ pthread_setaffinity_np F -+ pthread_setattr_default_np F -+ pthread_setcancelstate F -+ pthread_setcanceltype F -+ pthread_setconcurrency F -+ pthread_setname_np F -+ pthread_setschedparam F -+ pthread_setschedprio F -+ pthread_setspecific F -+ pthread_sigmask F -+ pthread_sigqueue F -+ pthread_spin_destroy F -+ pthread_spin_init F -+ pthread_spin_lock F -+ pthread_spin_trylock F -+ pthread_spin_unlock F -+ pthread_testcancel F -+ pthread_timedjoin_np F -+ pthread_tryjoin_np F -+ pthread_yield F -+ pwrite F -+ pwrite64 F -+ raise F -+ read F -+ recv F -+ recvfrom F -+ recvmsg F -+ sem_close F -+ sem_destroy F -+ sem_getvalue F -+ sem_init F -+ sem_open F -+ sem_post F -+ sem_timedwait F -+ sem_trywait F -+ sem_unlink F -+ sem_wait F -+ send F -+ sendmsg F -+ sendto F -+ sigaction F -+ siglongjmp F -+ sigwait F -+ system F -+ tcdrain F -+ vfork F -+ wait F -+ waitpid F -+ write F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv-le.abilist -@@ -0,0 +1,93 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ __b64_ntop F -+ __b64_pton F -+ __dn_comp F -+ __dn_count_labels F -+ __dn_expand F -+ __dn_skipname F -+ __fp_nquery F -+ __fp_query F -+ __fp_resstat F -+ __hostalias F -+ __loc_aton F -+ __loc_ntoa F -+ __p_cdname F -+ __p_cdnname F -+ __p_class F -+ __p_class_syms D 0xa8 -+ __p_fqname F -+ __p_fqnname F -+ __p_option F -+ __p_query F -+ __p_rcode F -+ __p_secstodate F -+ __p_time F -+ __p_type F -+ __p_type_syms D 0x450 -+ __putlong F -+ __putshort F -+ __res_close F -+ __res_dnok F -+ __res_hnok F -+ __res_hostalias F -+ __res_isourserver F -+ __res_mailok F -+ __res_mkquery F -+ __res_nameinquery F -+ __res_nmkquery F -+ __res_nquery F -+ __res_nquerydomain F -+ __res_nsearch F -+ __res_nsend F -+ __res_ownok F -+ __res_queriesmatch F -+ __res_query F -+ __res_querydomain F -+ __res_search F -+ __res_send F -+ __sym_ntop F -+ __sym_ntos F -+ __sym_ston F -+ _gethtbyaddr F -+ _gethtbyname F -+ _gethtbyname2 F -+ _gethtent F -+ _getlong F -+ _getshort F -+ _res_opcodes D 0x80 -+ _sethtent F -+ inet_net_ntop F -+ inet_net_pton F -+ inet_neta F -+ ns_datetosecs F -+ ns_format_ttl F -+ ns_get16 F -+ ns_get32 F -+ ns_initparse F -+ ns_makecanon F -+ ns_msg_getflag F -+ ns_name_compress F -+ ns_name_ntol F -+ ns_name_ntop F -+ ns_name_pack F -+ ns_name_pton F -+ ns_name_rollback F -+ ns_name_skip F -+ ns_name_uncompress F -+ ns_name_unpack F -+ ns_parse_ttl F -+ ns_parserr F -+ ns_put16 F -+ ns_put32 F -+ ns_samedomain F -+ ns_samename F -+ ns_skiprr F -+ ns_sprintrr F -+ ns_sprintrrf F -+ ns_subdomain F -+ res_gethostbyaddr F -+ res_gethostbyname F -+ res_gethostbyname2 F -+ res_send_setqhook F -+ res_send_setrhook F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt-le.abilist -@@ -0,0 +1,42 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ __mq_open_2 F -+ aio_cancel F -+ aio_cancel64 F -+ aio_error F -+ aio_error64 F -+ aio_fsync F -+ aio_fsync64 F -+ aio_init F -+ aio_read F -+ aio_read64 F -+ aio_return F -+ aio_return64 F -+ aio_suspend F -+ aio_suspend64 F -+ aio_write F -+ aio_write64 F -+ clock_getcpuclockid F -+ clock_getres F -+ clock_gettime F -+ clock_nanosleep F -+ clock_settime F -+ lio_listio F -+ lio_listio64 F -+ mq_close F -+ mq_getattr F -+ mq_notify F -+ mq_open F -+ mq_receive F -+ mq_send F -+ mq_setattr F -+ mq_timedreceive F -+ mq_timedsend F -+ mq_unlink F -+ shm_open F -+ shm_unlink F -+ timer_create F -+ timer_delete F -+ timer_getoverrun F -+ timer_gettime F -+ timer_settime F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db-le.abilist -@@ -0,0 +1,42 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ td_init F -+ td_log F -+ td_symbol_list F -+ td_ta_clear_event F -+ td_ta_delete F -+ td_ta_enable_stats F -+ td_ta_event_addr F -+ td_ta_event_getmsg F -+ td_ta_get_nthreads F -+ td_ta_get_ph F -+ td_ta_get_stats F -+ td_ta_map_id2thr F -+ td_ta_map_lwp2thr F -+ td_ta_new F -+ td_ta_reset_stats F -+ td_ta_set_event F -+ td_ta_setconcurrency F -+ td_ta_thr_iter F -+ td_ta_tsd_iter F -+ td_thr_clear_event F -+ td_thr_dbresume F -+ td_thr_dbsuspend F -+ td_thr_event_enable F -+ td_thr_event_getmsg F -+ td_thr_get_info F -+ td_thr_getfpregs F -+ td_thr_getgregs F -+ td_thr_getxregs F -+ td_thr_getxregsize F -+ td_thr_set_event F -+ td_thr_setfpregs F -+ td_thr_setgregs F -+ td_thr_setprio F -+ td_thr_setsigpending F -+ td_thr_setxregs F -+ td_thr_sigsetmask F -+ td_thr_tls_get_addr F -+ td_thr_tlsbase F -+ td_thr_tsd F -+ td_thr_validate F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil-le.abilist -@@ -0,0 +1,8 @@ -+GLIBC_2.18 -+ GLIBC_2.18 A -+ forkpty F -+ login F -+ login_tty F -+ logout F -+ logwtmp F -+ openpty F From 7affcde13ae9425dcb9cb2100dda1ddad41d30c17eaeb46846a01c4141741b39 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 13 Feb 2014 05:45:47 +0000 Subject: [PATCH 158/204] Accepting request 221688 from Base:System - Bump minimum kernel to 3.0 (forwarded request 221687 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/221688 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=166 --- glibc-2.18.90-ee7cc3853761.tar.xz | 3 --- glibc-2.19.tar.xz | 3 +++ glibc-testsuite.changes | 10 ++++++++++ glibc-testsuite.spec | 21 ++++++++------------- glibc-utils.changes | 10 ++++++++++ glibc-utils.spec | 21 ++++++++------------- glibc.changes | 10 ++++++++++ glibc.spec | 21 ++++++++------------- 8 files changed, 57 insertions(+), 42 deletions(-) delete mode 100644 glibc-2.18.90-ee7cc3853761.tar.xz create mode 100644 glibc-2.19.tar.xz diff --git a/glibc-2.18.90-ee7cc3853761.tar.xz b/glibc-2.18.90-ee7cc3853761.tar.xz deleted file mode 100644 index 2d62cfb..0000000 --- a/glibc-2.18.90-ee7cc3853761.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:28660f2d1482c88e7a2ed7a8e3949bda35484f11ccf92129c499ba6da5df196c -size 12819632 diff --git a/glibc-2.19.tar.xz b/glibc-2.19.tar.xz new file mode 100644 index 0000000..f885fc4 --- /dev/null +++ b/glibc-2.19.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d3997f588401ea095a0b27227b1d50cdfdd416236f6567b564549d3b46ea2a2 +size 12083312 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 18a3b10..d64e758 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de + +- Bump minimum kernel to 3.0 + +------------------------------------------------------------------- +Sun Feb 9 13:52:23 UTC 2014 - schwab@suse.de + +- Update to glibc 2.19 release + ------------------------------------------------------------------- Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 97c799a..e4589ed 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -94,22 +94,17 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -%ifarch x86_64 -# 2.6.32 is the SLES 11 SP1 kernel -# 2.6.34 is the openSUSE 11.3 kernel -%define enablekernel 2.6.32 -%else -# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel -%define enablekernel 2.6.16 -%endif -Version: 2.18.90 +# 3.0 is the SLES 11 SP3 kernel +# 3.1 is the openSUSE 12.1 kernel +%define enablekernel 3.0 +Version: 2.19 Release: 0 -%define glibc_major_version 2.18.90 -%define git_id ee7cc3853761 +%define glibc_major_version 2.19 +%define git_id 9a869d822025 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz -#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +#Source: glibc-%{version}-%{git_id}.tar.xz +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf diff --git a/glibc-utils.changes b/glibc-utils.changes index 18a3b10..d64e758 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de + +- Bump minimum kernel to 3.0 + +------------------------------------------------------------------- +Sun Feb 9 13:52:23 UTC 2014 - schwab@suse.de + +- Update to glibc 2.19 release + ------------------------------------------------------------------- Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index dd73b2d..39e3d21 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -93,22 +93,17 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -%ifarch x86_64 -# 2.6.32 is the SLES 11 SP1 kernel -# 2.6.34 is the openSUSE 11.3 kernel -%define enablekernel 2.6.32 -%else -# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel -%define enablekernel 2.6.16 -%endif -Version: 2.18.90 +# 3.0 is the SLES 11 SP3 kernel +# 3.1 is the openSUSE 12.1 kernel +%define enablekernel 3.0 +Version: 2.19 Release: 0 -%define glibc_major_version 2.18.90 -%define git_id ee7cc3853761 +%define glibc_major_version 2.19 +%define git_id 9a869d822025 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz -#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +#Source: glibc-%{version}-%{git_id}.tar.xz +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf diff --git a/glibc.changes b/glibc.changes index 18a3b10..d64e758 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de + +- Bump minimum kernel to 3.0 + +------------------------------------------------------------------- +Sun Feb 9 13:52:23 UTC 2014 - schwab@suse.de + +- Update to glibc 2.19 release + ------------------------------------------------------------------- Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index c77134d..6b7a4e4 100644 --- a/glibc.spec +++ b/glibc.spec @@ -94,22 +94,17 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -%ifarch x86_64 -# 2.6.32 is the SLES 11 SP1 kernel -# 2.6.34 is the openSUSE 11.3 kernel -%define enablekernel 2.6.32 -%else -# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel -%define enablekernel 2.6.16 -%endif -Version: 2.18.90 +# 3.0 is the SLES 11 SP3 kernel +# 3.1 is the openSUSE 12.1 kernel +%define enablekernel 3.0 +Version: 2.19 Release: 0 -%define glibc_major_version 2.18.90 -%define git_id ee7cc3853761 +%define glibc_major_version 2.19 +%define git_id 9a869d822025 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-%{git_id}.tar.xz -#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +#Source: glibc-%{version}-%{git_id}.tar.xz +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf From 04bb8ac841844fb49000bd867dd8d377e06d8bbbf758058481266cf8df0881fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 28 Feb 2014 15:22:48 +0000 Subject: [PATCH 159/204] Accepting request 223958 from Base:System - sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) - pldd-wait-ptrace-stop.patch: Update from upstream (forwarded request 223957 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/223958 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=167 --- glibc-testsuite.changes | 13 + glibc-testsuite.spec | 45 +++- glibc-utils.changes | 13 + glibc-utils.spec | 45 +++- glibc.changes | 13 + glibc.spec | 45 +++- nss-dns-memleak.patch | 461 ++++++++++++++++++++++++++++++++++++ pldd-wait-ptrace-stop.patch | 16 +- sin-sign.patch | 54 +++++ 9 files changed, 666 insertions(+), 39 deletions(-) create mode 100644 nss-dns-memleak.patch create mode 100644 sin-sign.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index d64e758..07a9782 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de + +- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) +- pldd-wait-ptrace-stop.patch: Update from upstream + +------------------------------------------------------------------- +Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de + +- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499) +- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686 + ------------------------------------------------------------------- Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de @@ -20,6 +32,7 @@ Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de * Change powerpc64le start ABI to 2.17 - Add /usr/local/lib64 to ld.so.conf on all lib64 platforms - Enable profile build for aarch64 +- ppc64le-abilist.patch: Removed ------------------------------------------------------------------- Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index e4589ed..a767b8e 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -50,7 +50,7 @@ BuildRequires: gd-devel %endif %define __filter_GLIBC_PRIVATE 1 -%if %_target_cpu == "i686" +%ifarch i686 # For i686 let's only build what's different from i586, so # no need to build documentation %define build_profile 1 @@ -146,7 +146,7 @@ Provides: rtld(GNU_HASH) Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if %_target_cpu == "i686" +%ifarch i686 # We need to avoid to have only the src rpm from i686 on the media, # since it does not work on other architectures. NoSource: 0 @@ -229,12 +229,16 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM fix memory leak in nss_dns +Patch1000: nss-dns-memleak.patch +# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623) +Patch1001: sin-sign.patch +# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching +Patch1002: pldd-wait-ptrace-stop.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching -Patch2019: pldd-wait-ptrace-stop.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -435,7 +439,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch2019 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch3000 @@ -802,7 +808,7 @@ cd .. # Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT -%ifarch %ix86 +%ifarch i586 mkdir -p %{buildroot}/%{_lib}/obsolete %endif @@ -871,9 +877,13 @@ touch %{buildroot}/etc/ld.so.cache # libNoVersion belongs only to glibc-obsolete: %ifarch %ix86 - rm -f %{buildroot}%{_libdir}/libNoVersion* - mkdir -p %{buildroot}/%{_lib}/obsolete/noversion - mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/ +rm -f %{buildroot}%{_libdir}/libNoVersion* +%ifarch i586 +mkdir -p %{buildroot}/%{_lib}/obsolete/noversion +mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/ +%else +rm -f %{buildroot}/%{_lib}/libNoVersion* +%endif %endif # Don't look at ldd! We don't wish a /bin/sh requires @@ -916,6 +926,16 @@ rm -f %{buildroot}%{_bindir}/pldd rm -f %{buildroot}%{_mandir}/man1/mtrace.* rm -rf %{buildroot}%{_libdir}/audit +%ifarch i686 +# Remove files from glibc-{extra,info,i18ndata} and nscd +rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n +rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile +rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* +rm -rf %{buildroot}/usr/lib/systemd +rm -rf %{buildroot}/usr/lib/tmpfiles.d +rm -rf %{buildroot}/var/run/nscd +%endif # i686 + %endif # %{normal_build} %if %{utils_build} @@ -1134,8 +1154,7 @@ exit 0 %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig -%ifarch %ix86 - +%ifarch i586 %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1192,6 +1211,7 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a +%ifnarch i686 %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz @@ -1222,6 +1242,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +%endif # !i686 %if %{build_profile} %files profile @@ -1241,10 +1262,12 @@ exit 0 %{_libdir}/libdl_p.a %endif +%ifnarch i686 %files extra %defattr(-,root,root) %{_bindir}/makedb /var/lib/misc/Makefile +%endif # !i686 %endif # %{normal_build} diff --git a/glibc-utils.changes b/glibc-utils.changes index d64e758..07a9782 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de + +- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) +- pldd-wait-ptrace-stop.patch: Update from upstream + +------------------------------------------------------------------- +Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de + +- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499) +- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686 + ------------------------------------------------------------------- Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de @@ -20,6 +32,7 @@ Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de * Change powerpc64le start ABI to 2.17 - Add /usr/local/lib64 to ld.so.conf on all lib64 platforms - Enable profile build for aarch64 +- ppc64le-abilist.patch: Removed ------------------------------------------------------------------- Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com diff --git a/glibc-utils.spec b/glibc-utils.spec index 39e3d21..c400259 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -49,7 +49,7 @@ BuildRequires: gd-devel %endif %define __filter_GLIBC_PRIVATE 1 -%if %_target_cpu == "i686" +%ifarch i686 # For i686 let's only build what's different from i586, so # no need to build documentation %define build_profile 1 @@ -145,7 +145,7 @@ Provides: rtld(GNU_HASH) Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if %_target_cpu == "i686" +%ifarch i686 # We need to avoid to have only the src rpm from i686 on the media, # since it does not work on other architectures. NoSource: 0 @@ -228,12 +228,16 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM fix memory leak in nss_dns +Patch1000: nss-dns-memleak.patch +# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623) +Patch1001: sin-sign.patch +# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching +Patch1002: pldd-wait-ptrace-stop.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching -Patch2019: pldd-wait-ptrace-stop.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -435,7 +439,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch2019 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch3000 @@ -802,7 +808,7 @@ cd .. # Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT -%ifarch %ix86 +%ifarch i586 mkdir -p %{buildroot}/%{_lib}/obsolete %endif @@ -871,9 +877,13 @@ touch %{buildroot}/etc/ld.so.cache # libNoVersion belongs only to glibc-obsolete: %ifarch %ix86 - rm -f %{buildroot}%{_libdir}/libNoVersion* - mkdir -p %{buildroot}/%{_lib}/obsolete/noversion - mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/ +rm -f %{buildroot}%{_libdir}/libNoVersion* +%ifarch i586 +mkdir -p %{buildroot}/%{_lib}/obsolete/noversion +mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/ +%else +rm -f %{buildroot}/%{_lib}/libNoVersion* +%endif %endif # Don't look at ldd! We don't wish a /bin/sh requires @@ -916,6 +926,16 @@ rm -f %{buildroot}%{_bindir}/pldd rm -f %{buildroot}%{_mandir}/man1/mtrace.* rm -rf %{buildroot}%{_libdir}/audit +%ifarch i686 +# Remove files from glibc-{extra,info,i18ndata} and nscd +rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n +rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile +rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* +rm -rf %{buildroot}/usr/lib/systemd +rm -rf %{buildroot}/usr/lib/tmpfiles.d +rm -rf %{buildroot}/var/run/nscd +%endif # i686 + %endif # %{normal_build} %if %{utils_build} @@ -1134,8 +1154,7 @@ exit 0 %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig -%ifarch %ix86 - +%ifarch i586 %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1192,6 +1211,7 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a +%ifnarch i686 %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz @@ -1222,6 +1242,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +%endif # !i686 %if %{build_profile} %files profile @@ -1241,10 +1262,12 @@ exit 0 %{_libdir}/libdl_p.a %endif +%ifnarch i686 %files extra %defattr(-,root,root) %{_bindir}/makedb /var/lib/misc/Makefile +%endif # !i686 %endif # %{normal_build} diff --git a/glibc.changes b/glibc.changes index d64e758..07a9782 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de + +- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) +- pldd-wait-ptrace-stop.patch: Update from upstream + +------------------------------------------------------------------- +Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de + +- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499) +- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686 + ------------------------------------------------------------------- Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de @@ -20,6 +32,7 @@ Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de * Change powerpc64le start ABI to 2.17 - Add /usr/local/lib64 to ld.so.conf on all lib64 platforms - Enable profile build for aarch64 +- ppc64le-abilist.patch: Removed ------------------------------------------------------------------- Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com diff --git a/glibc.spec b/glibc.spec index 6b7a4e4..f25014c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -50,7 +50,7 @@ BuildRequires: gd-devel %endif %define __filter_GLIBC_PRIVATE 1 -%if %_target_cpu == "i686" +%ifarch i686 # For i686 let's only build what's different from i586, so # no need to build documentation %define build_profile 1 @@ -146,7 +146,7 @@ Provides: rtld(GNU_HASH) Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if %_target_cpu == "i686" +%ifarch i686 # We need to avoid to have only the src rpm from i686 on the media, # since it does not work on other architectures. NoSource: 0 @@ -229,12 +229,16 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM fix memory leak in nss_dns +Patch1000: nss-dns-memleak.patch +# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623) +Patch1001: sin-sign.patch +# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching +Patch1002: pldd-wait-ptrace-stop.patch ### # Patches awaiting upstream approval ### -# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching -Patch2019: pldd-wait-ptrace-stop.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -435,7 +439,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch2019 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch3000 @@ -802,7 +808,7 @@ cd .. # Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT -%ifarch %ix86 +%ifarch i586 mkdir -p %{buildroot}/%{_lib}/obsolete %endif @@ -871,9 +877,13 @@ touch %{buildroot}/etc/ld.so.cache # libNoVersion belongs only to glibc-obsolete: %ifarch %ix86 - rm -f %{buildroot}%{_libdir}/libNoVersion* - mkdir -p %{buildroot}/%{_lib}/obsolete/noversion - mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/ +rm -f %{buildroot}%{_libdir}/libNoVersion* +%ifarch i586 +mkdir -p %{buildroot}/%{_lib}/obsolete/noversion +mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/ +%else +rm -f %{buildroot}/%{_lib}/libNoVersion* +%endif %endif # Don't look at ldd! We don't wish a /bin/sh requires @@ -916,6 +926,16 @@ rm -f %{buildroot}%{_bindir}/pldd rm -f %{buildroot}%{_mandir}/man1/mtrace.* rm -rf %{buildroot}%{_libdir}/audit +%ifarch i686 +# Remove files from glibc-{extra,info,i18ndata} and nscd +rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n +rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile +rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* +rm -rf %{buildroot}/usr/lib/systemd +rm -rf %{buildroot}/usr/lib/tmpfiles.d +rm -rf %{buildroot}/var/run/nscd +%endif # i686 + %endif # %{normal_build} %if %{utils_build} @@ -1134,8 +1154,7 @@ exit 0 %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig -%ifarch %ix86 - +%ifarch i586 %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1192,6 +1211,7 @@ exit 0 %{_libdir}/librt.a %{_libdir}/libutil.a +%ifnarch i686 %files info %defattr(-,root,root) %doc %{_infodir}/libc.info.gz @@ -1222,6 +1242,7 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +%endif # !i686 %if %{build_profile} %files profile @@ -1241,10 +1262,12 @@ exit 0 %{_libdir}/libdl_p.a %endif +%ifnarch i686 %files extra %defattr(-,root,root) %{_bindir}/makedb /var/lib/misc/Makefile +%endif # !i686 %endif # %{normal_build} diff --git a/nss-dns-memleak.patch b/nss-dns-memleak.patch new file mode 100644 index 0000000..c27b074 --- /dev/null +++ b/nss-dns-memleak.patch @@ -0,0 +1,461 @@ +2014-02-18 Andreas Schwab + + [BZ #16574] + * resolv/res_send.c (send_vc): Add parameter ansp2_malloced. + Store non-zero if the second buffer was newly allocated. + (send_dg): Likewise. + (__libc_res_nsend): Add parameter ansp2_malloced and pass it down + to send_vc and send_dg. + (res_nsend): Pass NULL for ansp2_malloced. + * resolv/res_query.c (__libc_res_nquery): Add parameter + answerp2_malloced and pass it down to __libc_res_nsend. + (res_nquery): Pass additional NULL to __libc_res_nquery. + (__libc_res_nsearch): Add parameter answerp2_malloced and pass it + down to __libc_res_nquery and __libc_res_nquerydomain. Deallocate + second answer buffer if answerp2_malloced was set. + (res_nsearch): Pass additional NULL to __libc_res_nsearch. + (__libc_res_nquerydomain): Add parameter + answerp2_malloced and pass it down to __libc_res_nquery. + (res_nquerydomain): Pass additional NULL to + __libc_res_nquerydomain. + * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Pass + additional NULL to __libc_res_nsend and __libc_res_nquery. + * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Pass + additional NULL to __libc_res_nsearch. + (_nss_dns_gethostbyname4_r): Revert last change. Use new + parameter of __libc_res_nsearch to check for separately allocated + second buffer. + (_nss_dns_gethostbyaddr2_r): Pass additional NULL to + __libc_res_nquery. + * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Pass + additional NULL to __libc_res_nquery. + * resolv/gethnamaddr.c (gethostbyname2): Pass additional NULL to + __libc_res_nsearch. + (gethostbyaddr): Pass additional NULL to __libc_res_nquery. + * include/resolv.h: Update prototypes of __libc_res_nquery, + __libc_res_nsearch, __libc_res_nsend. + +2014-02-13 Andreas Schwab + + [BZ #16574] + * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname4_r): Free the + second answer buffer if it was separately allocated. + +Index: glibc-2.19/include/resolv.h +=================================================================== +--- glibc-2.19.orig/include/resolv.h ++++ glibc-2.19/include/resolv.h +@@ -48,11 +48,11 @@ libc_hidden_proto (__res_randomid) + libc_hidden_proto (__res_state) + + int __libc_res_nquery (res_state, const char *, int, int, u_char *, int, +- u_char **, u_char **, int *, int *); ++ u_char **, u_char **, int *, int *, int *); + int __libc_res_nsearch (res_state, const char *, int, int, u_char *, int, +- u_char **, u_char **, int *, int *); ++ u_char **, u_char **, int *, int *, int *); + int __libc_res_nsend (res_state, const u_char *, int, const u_char *, int, +- u_char *, int, u_char **, u_char **, int *, int *) ++ u_char *, int, u_char **, u_char **, int *, int *, int *) + attribute_hidden; + + libresolv_hidden_proto (_sethtent) +Index: glibc-2.19/resolv/gethnamaddr.c +=================================================================== +--- glibc-2.19.orig/resolv/gethnamaddr.c ++++ glibc-2.19/resolv/gethnamaddr.c +@@ -621,7 +621,7 @@ gethostbyname2(name, af) + buf.buf = origbuf = (querybuf *) alloca (1024); + + if ((n = __libc_res_nsearch(&_res, name, C_IN, type, buf.buf->buf, 1024, +- &buf.ptr, NULL, NULL, NULL)) < 0) { ++ &buf.ptr, NULL, NULL, NULL, NULL)) < 0) { + if (buf.buf != origbuf) + free (buf.buf); + Dprintf("res_nsearch failed (%d)\n", n); +@@ -716,12 +716,12 @@ gethostbyaddr(addr, len, af) + buf.buf = orig_buf = (querybuf *) alloca (1024); + + n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, 1024, +- &buf.ptr, NULL, NULL, NULL); ++ &buf.ptr, NULL, NULL, NULL, NULL); + if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) { + strcpy(qp, "ip6.int"); + n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, + buf.buf != orig_buf ? MAXPACKET : 1024, +- &buf.ptr, NULL, NULL, NULL); ++ &buf.ptr, NULL, NULL, NULL, NULL); + } + if (n < 0) { + if (buf.buf != orig_buf) +Index: glibc-2.19/resolv/nss_dns/dns-canon.c +=================================================================== +--- glibc-2.19.orig/resolv/nss_dns/dns-canon.c ++++ glibc-2.19/resolv/nss_dns/dns-canon.c +@@ -62,7 +62,7 @@ _nss_dns_getcanonname_r (const char *nam + { + int r = __libc_res_nquery (&_res, name, ns_c_in, qtypes[i], + buf, sizeof (buf), &ansp.ptr, NULL, NULL, +- NULL); ++ NULL, NULL); + if (r > 0) + { + /* We need to decode the response. Just one question record. +Index: glibc-2.19/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.19.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.19/resolv/nss_dns/dns-host.c +@@ -190,7 +190,7 @@ _nss_dns_gethostbyname3_r (const char *n + host_buffer.buf = orig_host_buffer = (querybuf *) alloca (1024); + + n = __libc_res_nsearch (&_res, name, C_IN, type, host_buffer.buf->buf, +- 1024, &host_buffer.ptr, NULL, NULL, NULL); ++ 1024, &host_buffer.ptr, NULL, NULL, NULL, NULL); + if (n < 0) + { + switch (errno) +@@ -225,7 +225,7 @@ _nss_dns_gethostbyname3_r (const char *n + n = __libc_res_nsearch (&_res, name, C_IN, T_A, host_buffer.buf->buf, + host_buffer.buf != orig_host_buffer + ? MAXPACKET : 1024, &host_buffer.ptr, +- NULL, NULL, NULL); ++ NULL, NULL, NULL, NULL); + + if (n < 0) + { +@@ -308,12 +308,13 @@ _nss_dns_gethostbyname4_r (const char *n + u_char *ans2p = NULL; + int nans2p = 0; + int resplen2 = 0; ++ int ans2p_malloced = 0; + + int olderr = errno; + enum nss_status status; + int n = __libc_res_nsearch (&_res, name, C_IN, T_UNSPEC, + host_buffer.buf->buf, 2048, &host_buffer.ptr, +- &ans2p, &nans2p, &resplen2); ++ &ans2p, &nans2p, &resplen2, &ans2p_malloced); + if (n < 0) + { + switch (errno) +@@ -352,6 +353,10 @@ _nss_dns_gethostbyname4_r (const char *n + resplen2, name, pat, buffer, buflen, + errnop, herrnop, ttlp); + ++ /* Check whether ans2p was separately allocated. */ ++ if (ans2p_malloced) ++ free (ans2p); ++ + if (host_buffer.buf != orig_host_buffer) + free (host_buffer.buf); + +@@ -460,7 +465,7 @@ _nss_dns_gethostbyaddr2_r (const void *a + strcpy (qp, "].ip6.arpa"); + n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, + host_buffer.buf->buf, 1024, &host_buffer.ptr, +- NULL, NULL, NULL); ++ NULL, NULL, NULL, NULL); + if (n >= 0) + goto got_it_already; + } +@@ -481,14 +486,14 @@ _nss_dns_gethostbyaddr2_r (const void *a + } + + n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf, +- 1024, &host_buffer.ptr, NULL, NULL, NULL); ++ 1024, &host_buffer.ptr, NULL, NULL, NULL, NULL); + if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) + { + strcpy (qp, "ip6.int"); + n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf, + host_buffer.buf != orig_host_buffer + ? MAXPACKET : 1024, &host_buffer.ptr, +- NULL, NULL, NULL); ++ NULL, NULL, NULL, NULL); + } + if (n < 0) + { +Index: glibc-2.19/resolv/nss_dns/dns-network.c +=================================================================== +--- glibc-2.19.orig/resolv/nss_dns/dns-network.c ++++ glibc-2.19/resolv/nss_dns/dns-network.c +@@ -129,7 +129,7 @@ _nss_dns_getnetbyname_r (const char *nam + net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); + + anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, +- 1024, &net_buffer.ptr, NULL, NULL, NULL); ++ 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); + if (anslen < 0) + { + /* Nothing found. */ +@@ -205,7 +205,7 @@ _nss_dns_getnetbyaddr_r (uint32_t net, i + net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); + + anslen = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, +- 1024, &net_buffer.ptr, NULL, NULL, NULL); ++ 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); + if (anslen < 0) + { + /* Nothing found. */ +Index: glibc-2.19/resolv/res_query.c +=================================================================== +--- glibc-2.19.orig/resolv/res_query.c ++++ glibc-2.19/resolv/res_query.c +@@ -98,7 +98,7 @@ static int + __libc_res_nquerydomain(res_state statp, const char *name, const char *domain, + int class, int type, u_char *answer, int anslen, + u_char **answerp, u_char **answerp2, int *nanswerp2, +- int *resplen2); ++ int *resplen2, int *answerp2_malloced); + + /* + * Formulate a normal query, send, and await answer. +@@ -119,7 +119,8 @@ __libc_res_nquery(res_state statp, + u_char **answerp, /* if buffer needs to be enlarged */ + u_char **answerp2, + int *nanswerp2, +- int *resplen2) ++ int *resplen2, ++ int *answerp2_malloced) + { + HEADER *hp = (HEADER *) answer; + HEADER *hp2; +@@ -224,7 +225,8 @@ __libc_res_nquery(res_state statp, + } + assert (answerp == NULL || (void *) *answerp == (void *) answer); + n = __libc_res_nsend(statp, query1, nquery1, query2, nquery2, answer, +- anslen, answerp, answerp2, nanswerp2, resplen2); ++ anslen, answerp, answerp2, nanswerp2, resplen2, ++ answerp2_malloced); + if (use_malloc) + free (buf); + if (n < 0) { +@@ -316,7 +318,7 @@ res_nquery(res_state statp, + int anslen) /* size of answer buffer */ + { + return __libc_res_nquery(statp, name, class, type, answer, anslen, +- NULL, NULL, NULL, NULL); ++ NULL, NULL, NULL, NULL, NULL); + } + libresolv_hidden_def (res_nquery) + +@@ -335,7 +337,8 @@ __libc_res_nsearch(res_state statp, + u_char **answerp, + u_char **answerp2, + int *nanswerp2, +- int *resplen2) ++ int *resplen2, ++ int *answerp2_malloced) + { + const char *cp, * const *domain; + HEADER *hp = (HEADER *) answer; +@@ -360,7 +363,7 @@ __libc_res_nsearch(res_state statp, + if (!dots && (cp = res_hostalias(statp, name, tmp, sizeof tmp))!= NULL) + return (__libc_res_nquery(statp, cp, class, type, answer, + anslen, answerp, answerp2, +- nanswerp2, resplen2)); ++ nanswerp2, resplen2, answerp2_malloced)); + + #ifdef DEBUG + if (statp->options & RES_DEBUG) +@@ -377,7 +380,8 @@ __libc_res_nsearch(res_state statp, + if (dots >= statp->ndots || trailing_dot) { + ret = __libc_res_nquerydomain(statp, name, NULL, class, type, + answer, anslen, answerp, +- answerp2, nanswerp2, resplen2); ++ answerp2, nanswerp2, resplen2, ++ answerp2_malloced); + if (ret > 0 || trailing_dot) + return (ret); + saved_herrno = h_errno; +@@ -386,11 +390,11 @@ __libc_res_nsearch(res_state statp, + answer = *answerp; + anslen = MAXPACKET; + } +- if (answerp2 +- && (*answerp2 < answer || *answerp2 >= answer + anslen)) ++ if (answerp2 && *answerp2_malloced) + { + free (*answerp2); + *answerp2 = NULL; ++ *answerp2_malloced = 0; + } + } + +@@ -417,7 +421,7 @@ __libc_res_nsearch(res_state statp, + class, type, + answer, anslen, answerp, + answerp2, nanswerp2, +- resplen2); ++ resplen2, answerp2_malloced); + if (ret > 0) + return (ret); + +@@ -425,12 +429,11 @@ __libc_res_nsearch(res_state statp, + answer = *answerp; + anslen = MAXPACKET; + } +- if (answerp2 +- && (*answerp2 < answer +- || *answerp2 >= answer + anslen)) ++ if (answerp2 && *answerp2_malloced) + { + free (*answerp2); + *answerp2 = NULL; ++ *answerp2_malloced = 0; + } + + /* +@@ -486,7 +489,8 @@ __libc_res_nsearch(res_state statp, + && !(tried_as_is || root_on_list)) { + ret = __libc_res_nquerydomain(statp, name, NULL, class, type, + answer, anslen, answerp, +- answerp2, nanswerp2, resplen2); ++ answerp2, nanswerp2, resplen2, ++ answerp2_malloced); + if (ret > 0) + return (ret); + } +@@ -498,10 +502,11 @@ __libc_res_nsearch(res_state statp, + * else send back meaningless H_ERRNO, that being the one from + * the last DNSRCH we did. + */ +- if (answerp2 && (*answerp2 < answer || *answerp2 >= answer + anslen)) ++ if (answerp2 && *answerp2_malloced) + { + free (*answerp2); + *answerp2 = NULL; ++ *answerp2_malloced = 0; + } + if (saved_herrno != -1) + RES_SET_H_ERRNO(statp, saved_herrno); +@@ -521,7 +526,7 @@ res_nsearch(res_state statp, + int anslen) /* size of answer */ + { + return __libc_res_nsearch(statp, name, class, type, answer, +- anslen, NULL, NULL, NULL, NULL); ++ anslen, NULL, NULL, NULL, NULL, NULL); + } + libresolv_hidden_def (res_nsearch) + +@@ -539,7 +544,8 @@ __libc_res_nquerydomain(res_state statp, + u_char **answerp, + u_char **answerp2, + int *nanswerp2, +- int *resplen2) ++ int *resplen2, ++ int *answerp2_malloced) + { + char nbuf[MAXDNAME]; + const char *longname = nbuf; +@@ -581,7 +587,7 @@ __libc_res_nquerydomain(res_state statp, + } + return (__libc_res_nquery(statp, longname, class, type, answer, + anslen, answerp, answerp2, nanswerp2, +- resplen2)); ++ resplen2, answerp2_malloced)); + } + + int +@@ -593,7 +599,8 @@ res_nquerydomain(res_state statp, + int anslen) /* size of answer */ + { + return __libc_res_nquerydomain(statp, name, domain, class, type, +- answer, anslen, NULL, NULL, NULL, NULL); ++ answer, anslen, NULL, NULL, NULL, NULL, ++ NULL); + } + libresolv_hidden_def (res_nquerydomain) + +Index: glibc-2.19/resolv/res_send.c +=================================================================== +--- glibc-2.19.orig/resolv/res_send.c ++++ glibc-2.19/resolv/res_send.c +@@ -186,12 +186,12 @@ evNowTime(struct timespec *res) { + static int send_vc(res_state, const u_char *, int, + const u_char *, int, + u_char **, int *, int *, int, u_char **, +- u_char **, int *, int *); ++ u_char **, int *, int *, int *); + static int send_dg(res_state, const u_char *, int, + const u_char *, int, + u_char **, int *, int *, int, + int *, int *, u_char **, +- u_char **, int *, int *); ++ u_char **, int *, int *, int *); + #ifdef DEBUG + static void Aerror(const res_state, FILE *, const char *, int, + const struct sockaddr *); +@@ -343,7 +343,7 @@ int + __libc_res_nsend(res_state statp, const u_char *buf, int buflen, + const u_char *buf2, int buflen2, + u_char *ans, int anssiz, u_char **ansp, u_char **ansp2, +- int *nansp2, int *resplen2) ++ int *nansp2, int *resplen2, int *ansp2_malloced) + { + int gotsomewhere, terrno, try, v_circuit, resplen, ns, n; + +@@ -546,7 +546,8 @@ __libc_res_nsend(res_state statp, const + try = statp->retry; + n = send_vc(statp, buf, buflen, buf2, buflen2, + &ans, &anssiz, &terrno, +- ns, ansp, ansp2, nansp2, resplen2); ++ ns, ansp, ansp2, nansp2, resplen2, ++ ansp2_malloced); + if (n < 0) + return (-1); + if (n == 0 && (buf2 == NULL || *resplen2 == 0)) +@@ -556,7 +557,7 @@ __libc_res_nsend(res_state statp, const + n = send_dg(statp, buf, buflen, buf2, buflen2, + &ans, &anssiz, &terrno, + ns, &v_circuit, &gotsomewhere, ansp, +- ansp2, nansp2, resplen2); ++ ansp2, nansp2, resplen2, ansp2_malloced); + if (n < 0) + return (-1); + if (n == 0 && (buf2 == NULL || *resplen2 == 0)) +@@ -646,7 +647,7 @@ res_nsend(res_state statp, + const u_char *buf, int buflen, u_char *ans, int anssiz) + { + return __libc_res_nsend(statp, buf, buflen, NULL, 0, ans, anssiz, +- NULL, NULL, NULL, NULL); ++ NULL, NULL, NULL, NULL, NULL); + } + libresolv_hidden_def (res_nsend) + +@@ -657,7 +658,7 @@ send_vc(res_state statp, + const u_char *buf, int buflen, const u_char *buf2, int buflen2, + u_char **ansp, int *anssizp, + int *terrno, int ns, u_char **anscp, u_char **ansp2, int *anssizp2, +- int *resplen2) ++ int *resplen2, int *ansp2_malloced) + { + const HEADER *hp = (HEADER *) buf; + const HEADER *hp2 = (HEADER *) buf2; +@@ -823,6 +824,8 @@ send_vc(res_state statp, + } + *thisanssizp = MAXPACKET; + *thisansp = newp; ++ if (thisansp == ansp2) ++ *ansp2_malloced = 1; + anhp = (HEADER *) newp; + len = rlen; + } else { +@@ -992,7 +995,7 @@ send_dg(res_state statp, + const u_char *buf, int buflen, const u_char *buf2, int buflen2, + u_char **ansp, int *anssizp, + int *terrno, int ns, int *v_circuit, int *gotsomewhere, u_char **anscp, +- u_char **ansp2, int *anssizp2, int *resplen2) ++ u_char **ansp2, int *anssizp2, int *resplen2, int *ansp2_malloced) + { + const HEADER *hp = (HEADER *) buf; + const HEADER *hp2 = (HEADER *) buf2; +@@ -1238,6 +1241,8 @@ send_dg(res_state statp, + if (newp != NULL) { + *anssizp = MAXPACKET; + *thisansp = ans = newp; ++ if (thisansp == ansp2) ++ *ansp2_malloced = 1; + } + } + HEADER *anhp = (HEADER *) *thisansp; diff --git a/pldd-wait-ptrace-stop.patch b/pldd-wait-ptrace-stop.patch index d5c0256..38520bc 100644 --- a/pldd-wait-ptrace-stop.patch +++ b/pldd-wait-ptrace-stop.patch @@ -1,12 +1,13 @@ -2013-07-31 Andreas Schwab +2014-02-24 Andreas Schwab + [BZ #15804] * elf/pldd.c (wait_for_ptrace_stop): New function. (main): Call it after attaching. -Index: glibc-2.17.90/elf/pldd.c +Index: glibc-2.19/elf/pldd.c =================================================================== ---- glibc-2.17.90.orig/elf/pldd.c -+++ glibc-2.17.90/elf/pldd.c +--- glibc-2.19.orig/elf/pldd.c ++++ glibc-2.19/elf/pldd.c @@ -34,6 +34,7 @@ #include #include @@ -32,7 +33,7 @@ Index: glibc-2.17.90/elf/pldd.c struct thread_list *newp = alloca (sizeof (*newp)); newp->tid = tid; newp->next = thread_list; -@@ -194,6 +198,24 @@ main (int argc, char *argv[]) +@@ -194,6 +198,27 @@ main (int argc, char *argv[]) } @@ -49,7 +50,10 @@ Index: glibc-2.17.90/elf/pldd.c + /* The STOP signal should not be delivered to the tracee. */ + if (WSTOPSIG (status) == SIGSTOP) + return; -+ ptrace (PTRACE_CONT, pid, NULL, (void *) (uintptr_t) WSTOPSIG (status)); ++ if (ptrace (PTRACE_CONT, pid, NULL, ++ (void *) (uintptr_t) WSTOPSIG (status))) ++ /* The only possible error is that the process died. */ ++ return; + } +} + diff --git a/sin-sign.patch b/sin-sign.patch new file mode 100644 index 0000000..0f001c3 --- /dev/null +++ b/sin-sign.patch @@ -0,0 +1,54 @@ +Index: glibc-2.19/sysdeps/ieee754/dbl-64/s_sin.c +=================================================================== +--- glibc-2.19.orig/sysdeps/ieee754/dbl-64/s_sin.c ++++ glibc-2.19/sysdeps/ieee754/dbl-64/s_sin.c +@@ -447,19 +447,21 @@ __sin (double x) + } + else + { ++ double t; + if (a > 0) + { + m = 1; ++ t = a; + db = da; + } + else + { + m = 0; +- a = -a; ++ t = -a; + db = -da; + } +- u.x = big + a; +- y = a - (u.x - big); ++ u.x = big + t; ++ y = t - (u.x - big); + res = do_sin (u, y, db, &cor); + cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps; + retval = ((res == res + cor) ? ((m) ? res : -res) +@@ -671,19 +673,21 @@ __cos (double x) + } + else + { ++ double t; + if (a > 0) + { + m = 1; ++ t = a; + db = da; + } + else + { + m = 0; +- a = -a; ++ t = -a; + db = -da; + } +- u.x = big + a; +- y = a - (u.x - big); ++ u.x = big + t; ++ y = t - (u.x - big); + res = do_sin (u, y, db, &cor); + cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps; + retval = ((res == res + cor) ? ((m) ? res : -res) From 11dadad24183be02fd621966f0c41f8b908c1c314e406cdc8849fb84db088b4f Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 9 Mar 2014 17:22:17 +0000 Subject: [PATCH 160/204] Accepting request 224901 from Base:System - Add services and netgroup persistent caches to nscd file list (forwarded request 224900 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/224901 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=168 --- glibc-testsuite.changes | 5 +++++ glibc-testsuite.spec | 4 +++- glibc-utils.changes | 5 +++++ glibc-utils.spec | 4 +++- glibc.changes | 5 +++++ glibc.spec | 4 +++- 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 07a9782..76146f5 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de + +- Add services and netgroup persistent caches to nscd file list + ------------------------------------------------------------------- Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index a767b8e..295541a 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -850,7 +850,7 @@ cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/var/run/nscd -touch %{buildroot}/var/run/nscd/{passwd,group,hosts} +touch %{buildroot}/var/run/nscd/{passwd,group,hosts,services,netgroup} touch %{buildroot}/var/run/nscd/{socket,nscd.pid} # @@ -1242,6 +1242,8 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/glibc-utils.changes b/glibc-utils.changes index 07a9782..76146f5 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de + +- Add services and netgroup persistent caches to nscd file list + ------------------------------------------------------------------- Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index c400259..715f521 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -850,7 +850,7 @@ cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/var/run/nscd -touch %{buildroot}/var/run/nscd/{passwd,group,hosts} +touch %{buildroot}/var/run/nscd/{passwd,group,hosts,services,netgroup} touch %{buildroot}/var/run/nscd/{socket,nscd.pid} # @@ -1242,6 +1242,8 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/glibc.changes b/glibc.changes index 07a9782..76146f5 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de + +- Add services and netgroup persistent caches to nscd file list + ------------------------------------------------------------------- Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index f25014c..835d317 100644 --- a/glibc.spec +++ b/glibc.spec @@ -850,7 +850,7 @@ cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/var/run/nscd -touch %{buildroot}/var/run/nscd/{passwd,group,hosts} +touch %{buildroot}/var/run/nscd/{passwd,group,hosts,services,netgroup} touch %{buildroot}/var/run/nscd/{socket,nscd.pid} # @@ -1242,6 +1242,8 @@ exit 0 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/netgroup %endif # !i686 %if %{build_profile} From 8ff1d380f0a5b56208e7d0386d5e5cecc8e55aea1a3c22f608a1e294e7d19cb5 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 22 Mar 2014 06:49:51 +0000 Subject: [PATCH 161/204] Accepting request 226840 from Base:System - Remove dependency on sysinit.target from nscd.service again (bnc#86422) - powerpc-opt-power8.patch: GLIBC Optimizations For POWER8 Hardware (bnc#866711, fate#315443) (forwarded request 226839 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/226840 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=169 --- glibc-testsuite.changes | 18 + glibc-testsuite.spec | 7 + glibc-utils.changes | 18 + glibc-utils.spec | 7 + glibc.changes | 18 + glibc.spec | 7 + nscd-track-startup-failures.patch | 496 ++++++++ nscd.service | 5 +- powerpc-opt-power8.patch | 1916 +++++++++++++++++++++++++++++ 9 files changed, 2490 insertions(+), 2 deletions(-) create mode 100644 nscd-track-startup-failures.patch create mode 100644 powerpc-opt-power8.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 76146f5..d8ae668 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de + +- Remove dependency on sysinit.target from nscd.service again (bnc#86422) + +------------------------------------------------------------------- +Wed Mar 19 14:39:55 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: GLIBC Optimizations For POWER8 Hardware + (bnc#866711, fate#315443) + +------------------------------------------------------------------- +Tue Mar 18 17:10:43 UTC 2014 - schwab@suse.de + +- Make sure nscd is started after sysinit.target (bnc#868422) +- nscd-track-startup-failures.patch: properly track startup failures in + nscd and mark nscd.service as forking (BZ #16639) + ------------------------------------------------------------------- Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 295541a..d2acd5d 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -97,6 +97,7 @@ BuildRequires: gd-devel # 3.0 is the SLES 11 SP3 kernel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 + Version: 2.19 Release: 0 %define glibc_major_version 2.19 @@ -235,6 +236,10 @@ Patch1000: nss-dns-memleak.patch Patch1001: sin-sign.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch1002: pldd-wait-ptrace-stop.patch +# PATCH-FIX-UPSTREAM Improved support for tracking startup failure in nscd service (BZ #16639) +Patch1003: nscd-track-startup-failures.patch +# PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware +Patch1004: powerpc-opt-power8.patch ### # Patches awaiting upstream approval @@ -442,6 +447,8 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 76146f5..d8ae668 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de + +- Remove dependency on sysinit.target from nscd.service again (bnc#86422) + +------------------------------------------------------------------- +Wed Mar 19 14:39:55 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: GLIBC Optimizations For POWER8 Hardware + (bnc#866711, fate#315443) + +------------------------------------------------------------------- +Tue Mar 18 17:10:43 UTC 2014 - schwab@suse.de + +- Make sure nscd is started after sysinit.target (bnc#868422) +- nscd-track-startup-failures.patch: properly track startup failures in + nscd and mark nscd.service as forking (BZ #16639) + ------------------------------------------------------------------- Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 715f521..1e6bc2b 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -96,6 +96,7 @@ BuildRequires: gd-devel # 3.0 is the SLES 11 SP3 kernel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 + Version: 2.19 Release: 0 %define glibc_major_version 2.19 @@ -234,6 +235,10 @@ Patch1000: nss-dns-memleak.patch Patch1001: sin-sign.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch1002: pldd-wait-ptrace-stop.patch +# PATCH-FIX-UPSTREAM Improved support for tracking startup failure in nscd service (BZ #16639) +Patch1003: nscd-track-startup-failures.patch +# PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware +Patch1004: powerpc-opt-power8.patch ### # Patches awaiting upstream approval @@ -442,6 +447,8 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 76146f5..d8ae668 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de + +- Remove dependency on sysinit.target from nscd.service again (bnc#86422) + +------------------------------------------------------------------- +Wed Mar 19 14:39:55 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: GLIBC Optimizations For POWER8 Hardware + (bnc#866711, fate#315443) + +------------------------------------------------------------------- +Tue Mar 18 17:10:43 UTC 2014 - schwab@suse.de + +- Make sure nscd is started after sysinit.target (bnc#868422) +- nscd-track-startup-failures.patch: properly track startup failures in + nscd and mark nscd.service as forking (BZ #16639) + ------------------------------------------------------------------- Thu Mar 6 11:37:51 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 835d317..0f1cf2f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -97,6 +97,7 @@ BuildRequires: gd-devel # 3.0 is the SLES 11 SP3 kernel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 + Version: 2.19 Release: 0 %define glibc_major_version 2.19 @@ -235,6 +236,10 @@ Patch1000: nss-dns-memleak.patch Patch1001: sin-sign.patch # PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching Patch1002: pldd-wait-ptrace-stop.patch +# PATCH-FIX-UPSTREAM Improved support for tracking startup failure in nscd service (BZ #16639) +Patch1003: nscd-track-startup-failures.patch +# PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware +Patch1004: powerpc-opt-power8.patch ### # Patches awaiting upstream approval @@ -442,6 +447,8 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 %patch3000 diff --git a/nscd-track-startup-failures.patch b/nscd-track-startup-failures.patch new file mode 100644 index 0000000..f531a17 --- /dev/null +++ b/nscd-track-startup-failures.patch @@ -0,0 +1,496 @@ +From 532a60357ef4c5852cc1bf836cfd9d6f093ef204 Mon Sep 17 00:00:00 2001 +From: Siddhesh Poyarekar +Date: Mon, 3 Mar 2014 22:51:39 +0530 +Subject: [PATCH] nscd: Improved support for tracking startup failure in nscd + service (BZ #16639) + +Currently, the nscd parent process parses commandline options and +configuration, forks on startup and immediately exits with a success. +If the child process encounters some error after this, it goes +undetected and any services started up after it may have to repeatedly +check to make sure that the nscd service did actually start up and is +serving requests. + +To make this process more reliable, I have added a pipe between the +parent and child process, through which the child process sends a +notification to the parent informing it of its status. The parent +waits for this status and once it receives it, exits with the +corresponding exit code. So if the child service sends a success +status (0), the parent exits with a success status. Similarly for +error conditions, the child sends the non-zero status code, which the +parent passes on as the exit code. + +This, along with setting the nscd service type to forking in its +systemd configuration file, allows systemd to be certain that the nscd +service is ready and is accepting connections. + +2014-03-03 Siddhesh Poyarekar + + [BZ #16639] + * nscd/connections.c (nscd_init): Call do_exit. + (start_threads): Call do_exit and notify_parent. + (begin_drop_privileges): Call do_exit. + (finish_drop_privileges): Likewise. + * nscd/selinux.c (preserve_capabilities): Likewise. + (install_real_capabilities): Likewise. + (nscd_selinux_enabled): Likewise. + (avc_create_thread): Likewise. + (avc_alloc_lock): Likewise. + (nscd_avc_init): Likewise. + * nscd/nscd.c (parent_fd): New static variable. + (main): Create a pipe between parent and child processes. + Skip closing parent_fd. + (monitor_child): New function. + (do_exit): Likewise. + (notify_parent): Likewise. + * nscd/nscd.h (notify_parent): Likewise. + (do_exit): Likewise. + +Index: glibc-2.19/nscd/connections.c +=================================================================== +--- glibc-2.19.orig/nscd/connections.c ++++ glibc-2.19/nscd/connections.c +@@ -649,8 +649,8 @@ cannot create read-only descriptor for \ + close (fd); + } + else if (errno == EACCES) +- error (EXIT_FAILURE, 0, _("cannot access '%s'"), +- dbs[cnt].db_filename); ++ do_exit (EXIT_FAILURE, 0, _("cannot access '%s'"), ++ dbs[cnt].db_filename); + } + + if (dbs[cnt].head == NULL) +@@ -699,8 +699,7 @@ cannot create read-only descriptor for \ + { + dbg_log (_("database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"), + dbnames[cnt], dbs[cnt].db_filename); +- // XXX Correct way to terminate? +- exit (1); ++ do_exit (1, 0, NULL); + } + + if (dbs[cnt].persistent) +@@ -867,7 +866,7 @@ cannot set socket to close on exec: %s; + if (sock < 0) + { + dbg_log (_("cannot open socket: %s"), strerror (errno)); +- exit (errno == EACCES ? 4 : 1); ++ do_exit (errno == EACCES ? 4 : 1, 0, NULL); + } + /* Bind a name to the socket. */ + struct sockaddr_un sock_addr; +@@ -876,7 +875,7 @@ cannot set socket to close on exec: %s; + if (bind (sock, (struct sockaddr *) &sock_addr, sizeof (sock_addr)) < 0) + { + dbg_log ("%s: %s", _PATH_NSCDSOCKET, strerror (errno)); +- exit (errno == EACCES ? 4 : 1); ++ do_exit (errno == EACCES ? 4 : 1, 0, NULL); + } + + #ifndef __ASSUME_SOCK_CLOEXEC +@@ -888,7 +887,7 @@ cannot set socket to close on exec: %s; + { + dbg_log (_("cannot change socket to nonblocking mode: %s"), + strerror (errno)); +- exit (1); ++ do_exit (1, 0, NULL); + } + + /* The descriptor needs to be closed on exec. */ +@@ -896,7 +895,7 @@ cannot set socket to close on exec: %s; + { + dbg_log (_("cannot set socket to close on exec: %s"), + strerror (errno)); +- exit (1); ++ do_exit (1, 0, NULL); + } + } + #endif +@@ -909,7 +908,7 @@ cannot set socket to close on exec: %s; + { + dbg_log (_("cannot enable socket to accept connections: %s"), + strerror (errno)); +- exit (1); ++ do_exit (1, 0, NULL); + } + + #ifdef HAVE_NETLINK +@@ -953,7 +952,7 @@ cannot set socket to close on exec: %s; + dbg_log (_("\ + cannot change socket to nonblocking mode: %s"), + strerror (errno)); +- exit (1); ++ do_exit (1, 0, NULL); + } + + /* The descriptor needs to be closed on exec. */ +@@ -962,7 +961,7 @@ cannot change socket to nonblocking mode + { + dbg_log (_("cannot set socket to close on exec: %s"), + strerror (errno)); +- exit (1); ++ do_exit (1, 0, NULL); + } + } + # endif +@@ -2392,7 +2391,7 @@ start_threads (void) + if (pthread_cond_init (&dbs[i].prune_cond, &condattr) != 0) + { + dbg_log (_("could not initialize conditional variable")); +- exit (1); ++ do_exit (1, 0, NULL); + } + + pthread_t th; +@@ -2400,7 +2399,7 @@ start_threads (void) + && pthread_create (&th, &attr, nscd_run_prune, (void *) i) != 0) + { + dbg_log (_("could not start clean-up thread; terminating")); +- exit (1); ++ do_exit (1, 0, NULL); + } + } + +@@ -2414,13 +2413,17 @@ start_threads (void) + if (i == 0) + { + dbg_log (_("could not start any worker thread; terminating")); +- exit (1); ++ do_exit (1, 0, NULL); + } + + break; + } + } + ++ /* Now it is safe to let the parent know that we're doing fine and it can ++ exit. */ ++ notify_parent (0); ++ + /* Determine how much room for descriptors we should initially + allocate. This might need to change later if we cap the number + with MAXCONN. */ +@@ -2465,8 +2468,8 @@ begin_drop_privileges (void) + if (pwd == NULL) + { + dbg_log (_("Failed to run nscd as user '%s'"), server_user); +- error (EXIT_FAILURE, 0, _("Failed to run nscd as user '%s'"), +- server_user); ++ do_exit (EXIT_FAILURE, 0, ++ _("Failed to run nscd as user '%s'"), server_user); + } + + server_uid = pwd->pw_uid; +@@ -2483,7 +2486,8 @@ begin_drop_privileges (void) + { + /* This really must never happen. */ + dbg_log (_("Failed to run nscd as user '%s'"), server_user); +- error (EXIT_FAILURE, errno, _("initial getgrouplist failed")); ++ do_exit (EXIT_FAILURE, errno, ++ _("initial getgrouplist failed")); + } + + server_groups = (gid_t *) xmalloc (server_ngroups * sizeof (gid_t)); +@@ -2492,7 +2496,7 @@ begin_drop_privileges (void) + == -1) + { + dbg_log (_("Failed to run nscd as user '%s'"), server_user); +- error (EXIT_FAILURE, errno, _("getgrouplist failed")); ++ do_exit (EXIT_FAILURE, errno, _("getgrouplist failed")); + } + } + +@@ -2510,7 +2514,7 @@ finish_drop_privileges (void) + if (setgroups (server_ngroups, server_groups) == -1) + { + dbg_log (_("Failed to run nscd as user '%s'"), server_user); +- error (EXIT_FAILURE, errno, _("setgroups failed")); ++ do_exit (EXIT_FAILURE, errno, _("setgroups failed")); + } + + int res; +@@ -2521,8 +2525,7 @@ finish_drop_privileges (void) + if (res == -1) + { + dbg_log (_("Failed to run nscd as user '%s'"), server_user); +- perror ("setgid"); +- exit (4); ++ do_exit (4, errno, "setgid"); + } + + if (paranoia) +@@ -2532,8 +2535,7 @@ finish_drop_privileges (void) + if (res == -1) + { + dbg_log (_("Failed to run nscd as user '%s'"), server_user); +- perror ("setuid"); +- exit (4); ++ do_exit (4, errno, "setuid"); + } + + #if defined HAVE_LIBAUDIT && defined HAVE_LIBCAP +Index: glibc-2.19/nscd/nscd.c +=================================================================== +--- glibc-2.19.orig/nscd/nscd.c ++++ glibc-2.19/nscd/nscd.c +@@ -39,6 +39,8 @@ + #include + #include + #include ++#include ++#include + + #include "dbg_log.h" + #include "nscd.h" +@@ -101,6 +103,7 @@ gid_t old_gid; + + static int check_pid (const char *file); + static int write_pid (const char *file); ++static int monitor_child (int fd); + + /* Name and version of program. */ + static void print_version (FILE *stream, struct argp_state *state); +@@ -142,6 +145,7 @@ static struct argp argp = + + /* True if only statistics are requested. */ + static bool get_stats; ++static int parent_fd = -1; + + int + main (int argc, char **argv) +@@ -196,11 +200,27 @@ main (int argc, char **argv) + /* Behave like a daemon. */ + if (run_mode == RUN_DAEMONIZE) + { ++ int fd[2]; ++ ++ if (pipe (fd) != 0) ++ error (EXIT_FAILURE, errno, ++ _("cannot create a pipe to talk to the child")); ++ + pid = fork (); + if (pid == -1) + error (EXIT_FAILURE, errno, _("cannot fork")); + if (pid != 0) +- exit (0); ++ { ++ /* The parent only reads from the child. */ ++ close (fd[1]); ++ exit (monitor_child (fd[0])); ++ } ++ else ++ { ++ /* The child only writes to the parent. */ ++ close (fd[0]); ++ parent_fd = fd[1]; ++ } + } + + int nullfd = open (_PATH_DEVNULL, O_RDWR); +@@ -242,7 +262,8 @@ main (int argc, char **argv) + char *endp; + long int fdn = strtol (dirent->d_name, &endp, 10); + +- if (*endp == '\0' && fdn != dfdn && fdn >= min_close_fd) ++ if (*endp == '\0' && fdn != dfdn && fdn >= min_close_fd ++ && fdn != parent_fd) + close ((int) fdn); + } + +@@ -250,13 +271,14 @@ main (int argc, char **argv) + } + else + for (i = min_close_fd; i < getdtablesize (); i++) +- close (i); ++ if (i != parent_fd) ++ close (i); + + setsid (); + + if (chdir ("/") != 0) +- error (EXIT_FAILURE, errno, +- _("cannot change current working directory to \"/\"")); ++ do_exit (EXIT_FAILURE, errno, ++ _("cannot change current working directory to \"/\"")); + + openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON); + +@@ -592,3 +614,79 @@ write_pid (const char *file) + + return result; + } ++ ++static int ++monitor_child (int fd) ++{ ++ int child_ret = 0; ++ int ret = read (fd, &child_ret, sizeof (child_ret)); ++ ++ /* The child terminated with an error, either via exit or some other abnormal ++ method, like a segfault. */ ++ if (ret <= 0 || child_ret != 0) ++ { ++ int err = wait (&child_ret); ++ ++ if (err < 0) ++ { ++ fprintf (stderr, _("wait failed")); ++ return 1; ++ } ++ ++ fprintf (stderr, _("child exited with status %d"), ++ WEXITSTATUS (child_ret)); ++ if (WIFSIGNALED (child_ret)) ++ fprintf (stderr, _(", terminated by signal %d.\n"), ++ WTERMSIG (child_ret)); ++ else ++ fprintf (stderr, ".\n"); ++ } ++ ++ /* We have the child status, so exit with that code. */ ++ close (fd); ++ ++ return child_ret; ++} ++ ++void ++do_exit (int child_ret, int errnum, const char *format, ...) ++{ ++ if (parent_fd != -1) ++ { ++ int ret = write (parent_fd, &child_ret, sizeof (child_ret)); ++ assert (ret == sizeof (child_ret)); ++ close (parent_fd); ++ } ++ ++ if (format != NULL) ++ { ++ /* Emulate error() since we don't have a va_list variant for it. */ ++ va_list argp; ++ ++ fflush (stdout); ++ ++ fprintf (stderr, "%s: ", program_invocation_name); ++ ++ va_start (argp, format); ++ vfprintf (stderr, format, argp); ++ va_end (argp); ++ ++ fprintf (stderr, ": %s\n", strerror (errnum)); ++ fflush (stderr); ++ } ++ ++ /* Finally, exit. */ ++ exit (child_ret); ++} ++ ++void ++notify_parent (int child_ret) ++{ ++ if (parent_fd == -1) ++ return; ++ ++ int ret = write (parent_fd, &child_ret, sizeof (child_ret)); ++ assert (ret == sizeof (child_ret)); ++ close (parent_fd); ++ parent_fd = -1; ++} +Index: glibc-2.19/nscd/nscd.h +=================================================================== +--- glibc-2.19.orig/nscd/nscd.h ++++ glibc-2.19/nscd/nscd.h +@@ -205,6 +205,8 @@ extern gid_t old_gid; + /* nscd.c */ + extern void termination_handler (int signum) __attribute__ ((__noreturn__)); + extern int nscd_open_socket (void); ++void notify_parent (int child_ret); ++void do_exit (int child_ret, int errnum, const char *format, ...); + + /* connections.c */ + extern void nscd_init (void); +Index: glibc-2.19/nscd/selinux.c +=================================================================== +--- glibc-2.19.orig/nscd/selinux.c ++++ glibc-2.19/nscd/selinux.c +@@ -179,7 +179,7 @@ preserve_capabilities (void) + if (prctl (PR_SET_KEEPCAPS, 1) == -1) + { + dbg_log (_("Failed to set keep-capabilities")); +- error (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); ++ do_exit (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); + /* NOTREACHED */ + } + +@@ -194,7 +194,7 @@ preserve_capabilities (void) + cap_free (tmp_caps); + + dbg_log (_("Failed to initialize drop of capabilities")); +- error (EXIT_FAILURE, 0, _("cap_init failed")); ++ do_exit (EXIT_FAILURE, 0, _("cap_init failed")); + } + + /* There is no reason why these should not work. */ +@@ -216,7 +216,7 @@ preserve_capabilities (void) + { + cap_free (new_caps); + dbg_log (_("Failed to drop capabilities")); +- error (EXIT_FAILURE, 0, _("cap_set_proc failed")); ++ do_exit (EXIT_FAILURE, 0, _("cap_set_proc failed")); + } + + return new_caps; +@@ -233,7 +233,7 @@ install_real_capabilities (cap_t new_cap + { + cap_free (new_caps); + dbg_log (_("Failed to drop capabilities")); +- error (EXIT_FAILURE, 0, _("cap_set_proc failed")); ++ do_exit (EXIT_FAILURE, 0, _("cap_set_proc failed")); + /* NOTREACHED */ + } + +@@ -242,7 +242,7 @@ install_real_capabilities (cap_t new_cap + if (prctl (PR_SET_KEEPCAPS, 0) == -1) + { + dbg_log (_("Failed to unset keep-capabilities")); +- error (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); ++ do_exit (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); + /* NOTREACHED */ + } + } +@@ -258,7 +258,7 @@ nscd_selinux_enabled (int *selinux_enabl + if (*selinux_enabled < 0) + { + dbg_log (_("Failed to determine if kernel supports SELinux")); +- exit (EXIT_FAILURE); ++ do_exit (EXIT_FAILURE, 0, NULL); + } + } + +@@ -272,7 +272,7 @@ avc_create_thread (void (*run) (void)) + rc = + pthread_create (&avc_notify_thread, NULL, (void *(*) (void *)) run, NULL); + if (rc != 0) +- error (EXIT_FAILURE, rc, _("Failed to start AVC thread")); ++ do_exit (EXIT_FAILURE, rc, _("Failed to start AVC thread")); + + return &avc_notify_thread; + } +@@ -294,7 +294,7 @@ avc_alloc_lock (void) + + avc_mutex = malloc (sizeof (pthread_mutex_t)); + if (avc_mutex == NULL) +- error (EXIT_FAILURE, errno, _("Failed to create AVC lock")); ++ do_exit (EXIT_FAILURE, errno, _("Failed to create AVC lock")); + pthread_mutex_init (avc_mutex, NULL); + + return avc_mutex; +@@ -334,7 +334,7 @@ nscd_avc_init (void) + avc_entry_ref_init (&aeref); + + if (avc_init ("avc", NULL, &log_cb, &thread_cb, &lock_cb) < 0) +- error (EXIT_FAILURE, errno, _("Failed to start AVC")); ++ do_exit (EXIT_FAILURE, errno, _("Failed to start AVC")); + else + dbg_log (_("Access Vector Cache (AVC) started")); + #ifdef HAVE_LIBAUDIT diff --git a/nscd.service b/nscd.service index 9c9c3eb..bacc6e3 100644 --- a/nscd.service +++ b/nscd.service @@ -2,7 +2,8 @@ Description=Name Service Cache Daemon [Service] -ExecStart=/usr/sbin/nscd --foreground +Type=forking +ExecStart=/usr/sbin/nscd ExecStop=/usr/sbin/nscd --shutdown ExecReload=/usr/sbin/nscd -i passwd ExecReload=/usr/sbin/nscd -i group @@ -10,7 +11,7 @@ ExecReload=/usr/sbin/nscd -i hosts ExecReload=/usr/sbin/nscd -i services ExecReload=/usr/sbin/nscd -i netgroup Restart=always +PIDFile=/run/nscd/nscd.pid [Install] WantedBy=multi-user.target - diff --git a/powerpc-opt-power8.patch b/powerpc-opt-power8.patch new file mode 100644 index 0000000..ce1af76 --- /dev/null +++ b/powerpc-opt-power8.patch @@ -0,0 +1,1916 @@ +2014-03-11 Vidya Ranganathan + + * sysdeps/powerpc/powerpc64/power7/strspn.S: New file: Optimization. + * sysdeps/powerpc/powerpc64/multiarch/strspn.c: New file: + multiarch strspn for PPC64. + * sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c: New file + * sysdeps/powerpc/powerpc64/multiarch/strspn-power7.S: New file + * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: + (__libc_ifunc_impl_list): Likewise. + * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strspn + multiarch optimizations + * string/strspn.c (strspn): Using macro to redefine symbol name. + +2014-03-10 Vidya Ranganathan + Adhemerval Zanella + + * sysdeps/powerpc/powerpc64/power7/strncat.S: New file: Optimization. + * sysdeps/powerpc/powerpc64/multiarch/strncat.c: New file: + multiarch strncat for PPC64. + * sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c: New file + * sysdeps/powerpc/powerpc64/multiarch/strncat-power7.S: New file + * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: + (__libc_ifunc_impl_list): Likewise. + * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strncat + multiarch optimizations + +2014-03-03 Rajalakshmi Srinivasaraghavan + + * sysdeps/powerpc/powerpc64/power7/strrchr.S: New file. + * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strrchr multiarch + implementation. + * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: + (__libc_ifunc_impl_list): Likewise. + * sysdeps/powerpc/powerpc64/multiarch/strrchr.c: New file. + * sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c: New file. + * sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S: New file. + * string/strrchr.c: Define STRRCHR. + +2014-02-27 Adhemerval Zanella + + * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add llround power8 + implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S: New file: + POWER8 llround ifunc implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c (__lllround): Add + POWER8 implementation. + * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: New file: + POWER8 llround implementation. + + * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add llrint power8 + implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S: New file: + POWER8 llrint ifunc implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c (__lllrint): Add + POWER8 implementation. + * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: New file: + POWER8 llrint implementation. + + * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add finite power8 + implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: New file: + POWER8 finite ifunc implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c (__finite): Add + POWER8 implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c (__finitef): + Likewise. + * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S: New file: + POWER8 finite implementation. + * sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S: New file. + + * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add isinf power8 + implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: New file: + POWER8 isinf ifunc implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c (__isinf): Add + POWER8 implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c (__isinff): + Likewise. + * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S: New file: + POWER8 isinf implementation. + * sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S: New file. + + * sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h (INIT_ARCH): + Add hwcap2 initialization. + * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add isnan power8 + implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: New file: + POWER8 isnan ifunc implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c (__isnan): Add + POWER8 implementation. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c (__isnanf): + Likewise. + * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S: New file: + POWER8 isnan implementation. + * sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S: New file. + +Index: glibc-2.19/string/strrchr.c +=================================================================== +--- glibc-2.19.orig/string/strrchr.c ++++ glibc-2.19/string/strrchr.c +@@ -19,9 +19,13 @@ + + #undef strrchr + ++#ifndef STRRCHR ++# define STRRCHR strrchr ++#endif ++ + /* Find the last occurrence of C in S. */ + char * +-strrchr (const char *s, int c) ++STRRCHR (const char *s, int c) + { + const char *found, *p; + +Index: glibc-2.19/string/strspn.c +=================================================================== +--- glibc-2.19.orig/string/strspn.c ++++ glibc-2.19/string/strspn.c +@@ -18,13 +18,14 @@ + #include + + #undef strspn ++#ifndef STRSPN ++#define STRSPN strspn ++#endif + + /* Return the length of the maximum initial segment + of S which contains only characters in ACCEPT. */ + size_t +-strspn (s, accept) +- const char *s; +- const char *accept; ++STRSPN (const char *s, const char *accept) + { + const char *p; + const char *a; +Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h ++++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h +@@ -36,6 +36,7 @@ + and fills the previous ones. */ + #define INIT_ARCH() \ + unsigned long int hwcap = __GLRO(dl_hwcap); \ ++ unsigned long int __attribute__((unused)) hwcap2 = __GLRO(dl_hwcap2); \ + if (hwcap & PPC_FEATURE_ARCH_2_06) \ + hwcap |= PPC_FEATURE_ARCH_2_05 | \ + PPC_FEATURE_POWER5_PLUS | \ +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile +@@ -4,7 +4,8 @@ sysdep_routines += s_isnan-power7 s_isna + s_copysign-ppc64 s_finite-power7 s_finite-ppc64 \ + s_finitef-ppc64 s_isinff-ppc64 s_isinf-power7 \ + s_isinf-ppc64 s_modf-power5+ s_modf-ppc64 \ +- s_modff-power5+ s_modff-ppc64 ++ s_modff-power5+ s_modff-ppc64 s_isnan-power8 \ ++ s_isinf-power8 s_finite-power8 + + libm-sysdep_routines += s_isnan-power7 s_isnan-power6x s_isnan-power6 \ + s_isnan-power5 s_isnan-ppc64 s_llround-power6x \ +@@ -21,7 +22,9 @@ libm-sysdep_routines += s_isnan-power7 s + s_logbl-power7 s_logb-ppc64 s_logbf-ppc64 \ + s_logbl-ppc64 s_modf-power5+ s_modf-ppc64 \ + s_modff-power5+ s_modff-ppc64 e_hypot-ppc64 \ +- e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 ++ e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 \ ++ s_isnan-power8 s_isinf-power8 s_finite-power8 \ ++ s_llrint-power8 s_llround-power8 + + CFLAGS-s_logbf-power7.c = -mcpu=power7 + CFLAGS-s_logbl-power7.c = -mcpu=power7 +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S +@@ -0,0 +1,33 @@ ++/* isnan(). PowerPC64/POWER7 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#undef hidden_def ++#define hidden_def(name) ++#undef weak_alias ++#define weak_alias(name, alias) ++#undef strong_alias ++#define strong_alias(name, alias) ++#undef compat_symbol ++#define compat_symbol(lib, name, symbol, ver) ++ ++#define __finite __finite_power8 ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c +@@ -23,10 +23,13 @@ + + extern __typeof (__finite) __finite_ppc64 attribute_hidden; + extern __typeof (__finite) __finite_power7 attribute_hidden; ++extern __typeof (__finite) __finite_power8 attribute_hidden; + + libc_ifunc (__finite, +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __finite_power7 ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __finite_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __finite_power7 + : __finite_ppc64); + + weak_alias (__finite, finite) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c +@@ -23,10 +23,13 @@ + extern __typeof (__finitef) __finitef_ppc64 attribute_hidden; + /* The double-precision version also works for single-precision. */ + extern __typeof (__finitef) __finite_power7 attribute_hidden; ++extern __typeof (__finitef) __finite_power8 attribute_hidden; + + libc_ifunc (__finitef, +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __finite_power7 ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __finite_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __finite_power7 + : __finitef_ppc64); + + weak_alias (__finitef, finitef) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S +@@ -0,0 +1,33 @@ ++/* isinf(). PowerPC64/POWER8 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#undef hidden_def ++#define hidden_def(name) ++#undef weak_alias ++#define weak_alias(name, alias) ++#undef strong_alias ++#define strong_alias(name, alias) ++#undef compat_symbol ++#define compat_symbol(lib, name, alias, ver) ++ ++#define __isinf __isinf_power8 ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c +@@ -23,10 +23,13 @@ + + extern __typeof (__isinf) __isinf_ppc64 attribute_hidden; + extern __typeof (__isinf) __isinf_power7 attribute_hidden; ++extern __typeof (__isinf) __isinf_power8 attribute_hidden; + + libc_ifunc (__isinf, +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __isinf_power7 ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __isinf_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __isinf_power7 + : __isinf_ppc64); + + weak_alias (__isinf, isinf) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c +@@ -24,10 +24,13 @@ + extern __typeof (__isinff) __isinff_ppc64 attribute_hidden; + /* The double-precision version also works for single-precision. */ + extern __typeof (__isinff) __isinf_power7 attribute_hidden; ++extern __typeof (__isinff) __isinf_power8 attribute_hidden; + + libc_ifunc (__isinff, +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __isinf_power7 ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __isinf_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __isinf_power7 + : __isinff_ppc64); + + weak_alias (__isinff, isinff) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S +@@ -0,0 +1,33 @@ ++/* isnan(). PowerPC64/POWER7 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#undef hidden_def ++#define hidden_def(name) ++#undef weak_alias ++#define weak_alias(name, alias) ++#undef strong_alias ++#define strong_alias(name, alias) ++#undef compat_symbol ++#define compat_symbol(lib, name, symbol, ver) ++ ++#define __isnan __isnan_power8 ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c +@@ -26,16 +26,19 @@ extern __typeof (__isnan) __isnan_power5 + extern __typeof (__isnan) __isnan_power6 attribute_hidden; + extern __typeof (__isnan) __isnan_power6x attribute_hidden; + extern __typeof (__isnan) __isnan_power7 attribute_hidden; ++extern __typeof (__isnan) __isnan_power8 attribute_hidden; + + libc_ifunc (__isnan, +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __isnan_power7 : +- (hwcap & PPC_FEATURE_POWER6_EXT) ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __isnan_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __isnan_power7 : ++ (hwcap & PPC_FEATURE_POWER6_EXT) + ? __isnan_power6x : +- (hwcap & PPC_FEATURE_ARCH_2_05) +- ? __isnan_power6 : +- (hwcap & PPC_FEATURE_POWER5) +- ? __isnan_power5 ++ (hwcap & PPC_FEATURE_ARCH_2_05) ++ ? __isnan_power6 : ++ (hwcap & PPC_FEATURE_POWER5) ++ ? __isnan_power5 + : __isnan_ppc64); + + weak_alias (__isnan, isnan) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c +@@ -25,16 +25,19 @@ extern __typeof (__isnanf) __isnan_power + extern __typeof (__isnanf) __isnan_power6 attribute_hidden; + extern __typeof (__isnanf) __isnan_power6x attribute_hidden; + extern __typeof (__isnanf) __isnan_power7 attribute_hidden; ++extern __typeof (__isnanf) __isnan_power8 attribute_hidden; + + libc_ifunc (__isnanf, +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __isnan_power7 : +- (hwcap & PPC_FEATURE_POWER6_EXT) +- ? __isnan_power6x : +- (hwcap & PPC_FEATURE_ARCH_2_05) +- ? __isnan_power6 : +- (hwcap & PPC_FEATURE_POWER5) +- ? __isnan_power5 ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __isnan_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __isnan_power7 : ++ (hwcap & PPC_FEATURE_POWER6_EXT) ++ ? __isnan_power6x : ++ (hwcap & PPC_FEATURE_ARCH_2_05) ++ ? __isnan_power6 : ++ (hwcap & PPC_FEATURE_POWER5) ++ ? __isnan_power5 + : __isnan_ppc64); + + weak_alias (__isnanf, isnanf) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S +@@ -0,0 +1,31 @@ ++/* Round double to long int. PowerPC64/POWER6X default version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#undef weak_alias ++#define weak_alias(a,b) ++#undef strong_alias ++#define strong_alias(a,b) ++#undef compat_symbol ++#define compat_symbol(a,b,c,d) ++ ++#define __llrint __llrint_power8 ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c +@@ -30,10 +30,13 @@ + + extern __typeof (__llrint) __llrint_ppc64 attribute_hidden; + extern __typeof (__llrint) __llrint_power6x attribute_hidden; ++extern __typeof (__llrint) __llrint_power8 attribute_hidden; + + libc_ifunc (__llrint, +- (hwcap & PPC_FEATURE_POWER6_EXT) +- ? __llrint_power6x ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __llrint_power8 : ++ (hwcap & PPC_FEATURE_POWER6_EXT) ++ ? __llrint_power6x + : __llrint_ppc64); + + weak_alias (__llrint, llrint) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S +@@ -0,0 +1,31 @@ ++/* llround(). PowerPC64 default version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#undef weak_alias ++#define weak_alias(name, alias) ++#undef strong_alias ++#define strong_alias(name, alias) ++#undef compat_symbol ++#define compat_symbol(lib, name, alias, ver) ++ ++#define __llround __llround_power8 ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c +@@ -27,12 +27,15 @@ + extern __typeof (__llround) __llround_ppc64 attribute_hidden; + extern __typeof (__llround) __llround_power5plus attribute_hidden; + extern __typeof (__llround) __llround_power6x attribute_hidden; ++extern __typeof (__llround) __llround_power8 attribute_hidden; + + libc_ifunc (__llround, +- (hwcap & PPC_FEATURE_POWER6_EXT) +- ? __llround_power6x : +- (hwcap & PPC_FEATURE_POWER5_PLUS) +- ? __llround_power5plus ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07) ++ ? __llround_power8 : ++ (hwcap & PPC_FEATURE_POWER6_EXT) ++ ? __llround_power6x : ++ (hwcap & PPC_FEATURE_POWER5_PLUS) ++ ? __llround_power5plus + : __llround_ppc64); + + weak_alias (__llround, llround) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/Makefile +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/Makefile ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/Makefile +@@ -13,7 +13,9 @@ sysdep_routines += memcpy-power7 memcpy- + wcschr-power6 wcschr-ppc64 wcsrchr-power7 wcsrchr-power6 \ + wcsrchr-ppc64 wcscpy-power7 wcscpy-power6 wcscpy-ppc64 \ + wordcopy-power7 wordcopy-power6 wordcopy-ppc64 \ +- strcpy-power7 strcpy-ppc64 stpcpy-power7 stpcpy-ppc64 ++ strcpy-power7 strcpy-ppc64 stpcpy-power7 stpcpy-ppc64 \ ++ strrchr-power7 strrchr-ppc64 strncat-power7 strncat-ppc64 \ ++ strspn-power7 strspn-ppc64 + + CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops + CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +@@ -238,5 +238,29 @@ __libc_ifunc_impl_list (const char *name + IFUNC_IMPL_ADD (array, i, wcscpy, 1, + __wcscpy_ppc)) + ++ /* Support sysdeps/powerpc/powerpc64/multiarch/strrchr.c. */ ++ IFUNC_IMPL (i, name, strrchr, ++ IFUNC_IMPL_ADD (array, i, strrchr, ++ hwcap & PPC_FEATURE_HAS_VSX, ++ __strrchr_power7) ++ IFUNC_IMPL_ADD (array, i, strrchr, 1, ++ __strrchr_ppc)) ++ ++ /* Support sysdeps/powerpc/powerpc64/multiarch/strncat.c. */ ++ IFUNC_IMPL (i, name, strncat, ++ IFUNC_IMPL_ADD (array, i, strncat, ++ hwcap & PPC_FEATURE_HAS_VSX, ++ __strncat_power7) ++ IFUNC_IMPL_ADD (array, i, strncat, 1, ++ __strncat_ppc)) ++ ++ /* Support sysdeps/powerpc/powerpc64/multiarch/strspn.c. */ ++ IFUNC_IMPL (i, name, strspn, ++ IFUNC_IMPL_ADD (array, i, strspn, ++ hwcap & PPC_FEATURE_HAS_VSX, ++ __strspn_power7) ++ IFUNC_IMPL_ADD (array, i, strspn, 1, ++ __strspn_ppc)) ++ + return i; + } +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.S +@@ -0,0 +1,42 @@ ++/* Optimized strncat implementation for POWER7. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#undef EALIGN ++#define EALIGN(name, alignt, words) \ ++ .section ".text"; \ ++ ENTRY_2(__strncat_power7) \ ++ .align ALIGNARG(alignt); \ ++ EALIGN_W_##words; \ ++ BODY_LABEL(__strncat_power7): \ ++ cfi_startproc; \ ++ LOCALENTRY(__strncat_power7) ++ ++#undef END ++#define END(name) \ ++ cfi_endproc; \ ++ TRACEBACK(__strncat_power7) \ ++ END_2(__strncat_power7) ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#define STRLEN __strlen_power7 ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c +@@ -0,0 +1,29 @@ ++/* Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define STRNCAT __strncat_ppc ++#ifdef SHARED ++# undef libc_hidden_builtin_def ++# define libc_hidden_builtin_def(name) \ ++ __hidden_ver1 (__strncat_ppc, __GI_strncat, __strncat_ppc); ++#endif ++ ++extern __typeof (strncat) __strncat_ppc attribute_hidden; ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat.c +@@ -0,0 +1,31 @@ ++/* Multiple versions of strncat. PowerPC64 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef NOT_IN_libc ++# include ++# include ++# include "init-arch.h" ++ ++extern __typeof (strncat) __strncat_ppc attribute_hidden; ++extern __typeof (strncat) __strncat_power7 attribute_hidden; ++ ++libc_ifunc (strncat, ++ (hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strncat_power7 ++ : __strncat_ppc); ++#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S +@@ -0,0 +1,39 @@ ++/* Optimized strrchr implementation for POWER7. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#undef ENTRY ++#define ENTRY(name) \ ++ .section ".text"; \ ++ ENTRY_2(__strrchr_power7) \ ++ .align ALIGNARG(2); \ ++ BODY_LABEL(__strrchr_power7): \ ++ cfi_startproc; \ ++ LOCALENTRY(__strrchr_power7) ++ ++#undef END ++#define END(name) \ ++ cfi_endproc; \ ++ TRACEBACK(__strrchr_power7) \ ++ END_2(__strrchr_power7) ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define STRRCHR __strrchr_ppc ++#undef weak_alias ++#define weak_alias(name, aliasname) \ ++ extern __typeof (__strrchr_ppc) aliasname \ ++ __attribute__ ((weak, alias ("__strrchr_ppc"))); ++#if !defined(NOT_IN_libc) && defined(SHARED) ++# undef libc_hidden_builtin_def ++# define libc_hidden_builtin_def(name) \ ++ __hidden_ver1(__strrchr_ppc, __GI_strrchr, __strrchr_ppc); ++#endif ++ ++extern __typeof (strrchr) __strrchr_ppc attribute_hidden; ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr.c +@@ -0,0 +1,35 @@ ++/* Multiple versions of strrchr. PowerPC64 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Define multiple versions only for definition in libc. */ ++#ifndef NOT_IN_libc ++# include ++# include ++# include "init-arch.h" ++ ++extern __typeof (strrchr) __strrchr_ppc attribute_hidden; ++extern __typeof (strrchr) __strrchr_power7 attribute_hidden; ++ ++/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle ++ ifunc symbol properly. */ ++libc_ifunc (strrchr, ++ (hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strrchr_power7 ++ : __strrchr_ppc); ++weak_alias (strrchr, rindex) ++#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-power7.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-power7.S +@@ -0,0 +1,40 @@ ++/* Optimized strspn implementation for POWER7. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#undef EALIGN ++#define EALIGN(name, alignt, words) \ ++ .section ".text"; \ ++ ENTRY_2(__strspn_power7) \ ++ .align ALIGNARG(alignt); \ ++ EALIGN_W_##words; \ ++ BODY_LABEL(__strspn_power7): \ ++ cfi_startproc; \ ++ LOCALENTRY(__strspn_power7) ++ ++#undef END ++#define END(name) \ ++ cfi_endproc; \ ++ TRACEBACK(__strspn_power7) \ ++ END_2(__strspn_power7) ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define STRSPN __strspn_ppc ++#undef weak_alias ++#define weak_alias(name, aliasname) \ ++ extern __typeof (__strspn_ppc) aliasname \ ++ __attribute__ ((weak, alias ("__strspn_ppc"))); ++#if !defined(NOT_IN_libc) && defined(SHARED) ++# undef libc_hidden_builtin_def ++# define libc_hidden_builtin_def(name) \ ++ __hidden_ver1(__strspn_ppc, __GI_strspn, __strspn_ppc); ++#endif ++ ++extern __typeof (strspn) __strspn_ppc attribute_hidden; ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn.c +@@ -0,0 +1,31 @@ ++/* Multiple versions of strspn. PowerPC64 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++# include ++# include ++# include "init-arch.h" ++ ++extern __typeof (strspn) __strspn_ppc attribute_hidden; ++extern __typeof (strspn) __strspn_power7 attribute_hidden; ++ ++libc_ifunc (strspn, ++ (hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strspn_power7 ++ : __strspn_ppc); ++#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strncat.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strncat.S +@@ -0,0 +1,222 @@ ++/* Optimized strncat implementation for PowerPC64/POWER7. ++ ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The algorithm is as follows for aligned memory access : ++ ++ if address of s2 is divisible by 0x7UL, ++ perform aligned doubleword catenation ++ else ++ perform unaligned catenation ++ ++ The aligned comparison are made using cmpb instructions. */ ++ ++/* char* [r3] strncat (const char *s1 [r3], ++ const char *s2 [r4], ++ size_t size [r5]) */ ++ ++#include ++ ++#ifndef STRNCAT ++# undef strncat ++# define STRNCAT strncat ++#endif ++ ++#ifndef STRLEN ++# define STRLEN __strlen_ppc ++#endif ++ ++#define FRAMESIZE (FRAME_MIN_SIZE+32) ++ ++ .machine power7 ++EALIGN(STRNCAT, 4, 0) ++ CALL_MCOUNT 3 ++ ++ mflr r0 /* Load link register LR to r0. */ ++ ++/* We shall use r29, r30 and r31 non volatile register for retention. ++ Save all the callee registers in the GPR save area. */ ++ std r29, -24(r1) /* Save callers register r29. */ ++ std r30, -16(r1) /* Save callers register r30. */ ++ std r31, -8(r1) /* Save callers register r31. */ ++ ++ std r0, 16(r1) /* Store the link register. */ ++ stdu r1, -FRAMESIZE(r1) /* Create the stack frame. */ ++ ++/* Improve performance with CPU pre-fetch. */ ++ dcbt 0, r3 /* Pre-fetch str to avoid cache ++ miss. */ ++ dcbt 0, r4 /* Pre-fetch accept to avoid cache ++ miss. */ ++ ++ mr. r29, r5 /* Save "n" in r29. */ ++ mr r30, r3 /* Save "s1" in r30 from r3. */ ++ beq cr0,L(done) ++ ++ mr r31, r4 /* Save "s2" in r31 from r4. */ ++ bl STRLEN /* Call optimized strlen on s1; goto ++ end of s1. */ ++ nop ++ cmpldi cr7, r29, 7 /* If s2 is <=7 process ++ byte-by-byte. */ ++ add r3, r30, r3 /* Grab the last character of s1. */ ++ bgt cr7,L(alignment) /* Process by aligned strings. */ ++ ++ cmpldi cr7, r29, 3 /* If n is >= 4, we can ++ byte-unroll. */ ++ addi r9, r3, -1 /* Make "s1" point before next ++ character, increment when read. */ ++ bgt cr7, L(bytes_unroll) /* Process each byte. */ ++ ++L(byte_by_byte): ++ lbz r10, 0(r31) ++ addi r8, r9, 1 ++ cmpdi cr7, r10, 0 /* Check for NULL in "s2". */ ++ stb r10, 1(r9) ++ beq cr7, L(done) ++ add r9, r9, r29 ++ subf r9, r8, r9 ++ addi r9, r9, 1 ++ mtctr r9 ++ b L(branch2) ++ .p2align 4 ++L(branch1): ++ lbzu r10, 1(r31) ++ cmpdi cr7, r10, 0 ++ stbu r10, 1(r8) ++ beq cr7,L(done) ++L(branch2): ++ mr r9, r8 ++ bdnz L(branch1) ++ beq cr7,L(done) ++L(nullTerminate): ++ li r10, 0 /* Load NULL for termination. */ ++ stb r10, 1(r9) /* Append or terminate s1 with ++ NULL. */ ++ .p2align 4 /* A small section here. */ ++L(done): /* We return now. */ ++ addi r1, r1, FRAMESIZE /* Restore stack pointer. */ ++ mr r3, r30 /* Set the return value length of ++ string. */ ++ ld r0, 16(r1) /* Read the saved link register. */ ++ ld r29, -24(r1) /* Restore save register r29. */ ++ ld r30, -16(r1) /* Restore save register r30. */ ++ ld r31, -8(r1) /* Restore save register r31. */ ++ mtlr r0 /* Restore link register. */ ++ blr /* Branch to link register. */ ++ ++ .p2align 4 ++L(alignment): ++ rldicl. r9, r31, 0, 61 /* Check if s2 is 8byte aligned */ ++ beq cr0,L(dwordAligned) ++ ++ .p2align 4 ++/* Unaligned bytes in string, so process byte by byte. ++ POWER7 has performance gains over loop unroll. */ ++L(bytes_unroll): ++ addi r9, r3, -1 ++ srdi r10, r29, 2 ++ mtctr r10 ++ b L(L10) ++ .p2align 4 ++L(L44): ++ lbz r10, 1(r31) /* Load byte. */ ++ cmpdi cr7, r10, 0 /* Compare ; if byte not zero, ++ continue. */ ++ stb r10, 2(r9) /* Store byte */ ++ beq cr7, L(done) ++ addi r31, r31, 4 ++ ++ lbz r10, -2(r31) /* Perform loop unroll here on byte ++ load and store. */ ++ cmpdi cr7, r10, 0 ++ stb r10, 3(r9) ++ beq cr7, L(done) ++ ++ lbz r10, -1(r31) /* Loop unroll here. */ ++ cmpdi cr7, r10, 0 ++ stbu r10, 4(r9) ++ beq cr7, L(done) ++ ++ bdz L(leftNbytes) ++ ++L(L10): ++ lbz r10, 0(r31) /* Loop unroll here. */ ++ cmpdi cr7, r10, 0 ++ stb r10, 1(r9) ++ bne cr7,L(L44) ++ b L(done) ++ .p2align 4 ++/* If s2 is double word aligned, we load and store double word. */ ++L(dwordAligned): ++/* read, write 8 bytes at a time */ ++ srdi r8, r29, 3 /* Compute count for CTR to loop; ++ count = n/8. */ ++ li r7, 0 /* Load r7 with NULL. */ ++ li r10, 0 /* Load r10 with MASK '0'. */ ++ ++ mtctr r8 /* Move count to CTR. */ ++L(loop8): ++ ld r9, 0(r31) /* Read double word from s2. */ ++ cmpb r6, r9, r10 /* Compare bytes in s2 we read ++ just now. */ ++ cmpdi r6, 0 /* If cmpb returned NULL, ++ we continue. */ ++ bne+ L(a8) ++ std r9, 0(r3) /* Append double word from s2 ++ with s1. */ ++ addi r3, r3, 8 /* Increment s1. */ ++ addi r31, r31, 8 /* Increment s2. */ ++ subi r29, r29, 8 /* Decrement count by 8. */ ++ bdnz L(loop8) /* Continue until "count" is ++ non zero. */ ++ ++L(a8): ++ cmpdi r29, 0 /* If "n" is already zero, we skip. */ ++ beq+ L(align8align) ++ ++ mtctr r29 /* Process left over bytes in "n". */ ++L(unaligned0): ++ lbz r9, 0(r31) /* Read a byte from s2. */ ++ cmpw r9, r7 /* If byte is NULL, we stop here . */ ++ beq+ L(align8align) /* Skip processing further if NULL. */ ++ stb r9, 0(r3) /* If not NULL, store byte into s1. */ ++ addi r3, r3, 1 /* Increment s1 by 1. */ ++ addi r31, r31, 1 /* Increment s2 by 1. */ ++ bdnz L(unaligned0) /* Decrement counter "n" and loop ++ until non zero. */ ++L(align8align): ++ stb r7, 0(r3) /* Terminate s1 with NULL. */ ++ ++ addi r1, r1, FRAMESIZE /* Restore stack pointer. */ ++ mr r3, r30 /* Set the return value, length of ++ string. */ ++ ld r0, 16(r1) /* Read the saved link register. */ ++ ld r29, -24(r1) /* Restore save register r29. */ ++ ld r30, -16(r1) /* Restore save register r30. */ ++ ld r31, -8(r1) /* Restore save register r31. */ ++ mtlr r0 /* Restore link register. */ ++ blr /* Branch to link register */ ++ ++ .p2align 4 ++L(leftNbytes): ++ rldicl. r29, r29, 0, 62 /* Check if n>0 and n < 4 bytes. */ ++ bne cr0,L(byte_by_byte) /* Process bytes one by one. */ ++ b L(nullTerminate) /* Now, finish catenation with ++ NULL termination. */ ++END(STRNCAT) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strrchr.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strrchr.S +@@ -0,0 +1,255 @@ ++/* Optimized strrchr implementation for PowerPC64/POWER7 using cmpb insn. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* int [r3] strrchr (char *s [r3], int c [r4]) */ ++ .machine power7 ++ENTRY (strrchr) ++ CALL_MCOUNT 2 ++ dcbt 0,r3 ++ clrrdi r8,r3,3 /* Align the address to doubleword boundary. */ ++ cmpdi cr7,r4,0 ++ ld r12,0(r8) /* Load doubleword from memory. */ ++ li r9,0 /* used to store last occurence */ ++ li r0,0 /* Doubleword with null chars to use ++ with cmpb. */ ++ ++ rlwinm r6,r3,3,26,28 /* Calculate padding. */ ++ ++ beq cr7,L(null_match) ++ ++ /* Replicate byte to doubleword. */ ++ insrdi r4,r4,8,48 ++ insrdi r4,r4,16,32 ++ insrdi r4,r4,32,0 ++ ++ /* r4 is changed now ,if its passed as more chars ++ check for null again */ ++ cmpdi cr7,r4,0 ++ beq cr7,L(null_match) ++ /* Now r4 has a doubleword of c bytes and r0 has ++ a doubleword of null bytes. */ ++ ++ cmpb r10,r12,r4 /* Compare each byte against c byte. */ ++ cmpb r11,r12,r0 /* Compare each byte against null byte. */ ++ ++ /* Move the doublewords left and right to discard the bits that are ++ not part of the string and bring them back as zeros. */ ++#ifdef __LITTLE_ENDIAN__ ++ srd r10,r10,r6 ++ srd r11,r11,r6 ++ sld r10,r10,r6 ++ sld r11,r11,r6 ++#else ++ sld r10,r10,r6 ++ sld r11,r11,r6 ++ srd r10,r10,r6 ++ srd r11,r11,r6 ++#endif ++ or r5,r10,r11 /* OR the results to speed things up. */ ++ cmpdi cr7,r5,0 /* If r5 == 0, no c or null bytes ++ have been found. */ ++ bne cr7,L(done) ++ ++L(align): ++ mtcrf 0x01,r8 ++ ++ /* Are we now aligned to a doubleword boundary? If so, skip to ++ the main loop. Otherwise, go through the alignment code. */ ++ ++ bt 28,L(loop) ++ ++ /* Handle WORD2 of pair. */ ++ ldu r12,8(r8) ++ cmpb r10,r12,r4 ++ cmpb r11,r12,r0 ++ or r5,r10,r11 ++ cmpdi cr7,r5,0 ++ bne cr7,L(done) ++ b L(loop) /* We branch here (rather than falling through) ++ to skip the nops due to heavy alignment ++ of the loop below. */ ++ .p2align 5 ++L(loop): ++ /* Load two doublewords, compare and merge in a ++ single register for speed. This is an attempt ++ to speed up the null-checking process for bigger strings. */ ++ ld r12,8(r8) ++ ldu r7,16(r8) ++ cmpb r10,r12,r4 ++ cmpb r11,r12,r0 ++ cmpb r6,r7,r4 ++ cmpb r7,r7,r0 ++ or r12,r10,r11 ++ or r5,r6,r7 ++ or r5,r12,r5 ++ cmpdi cr7,r5,0 ++ beq cr7,L(loop) ++ ++ /* OK, one (or both) of the doublewords contains a c/null byte. Check ++ the first doubleword and decrement the address in case the first ++ doubleword really contains a c/null byte. */ ++ cmpdi cr6,r12,0 ++ addi r8,r8,-8 ++ bne cr6,L(done) ++ ++ /* The c/null byte must be in the second doubleword. Adjust the ++ address again and move the result of cmpb to r10 so we can calculate ++ the pointer. */ ++ ++ mr r10,r6 ++ mr r11,r7 ++ addi r8,r8,8 ++ ++ /* r10/r11 have the output of the cmpb instructions, that is, ++ 0xff in the same position as the c/null byte in the original ++ doubleword from the string. Use that to calculate the pointer. */ ++ ++L(done): ++ /* if there are more than one 0xff in r11, find the first pos of ff ++ in r11 and fill r10 with 0 from that position */ ++ cmpdi cr7,r11,0 ++ beq cr7,L(no_null) ++#ifdef __LITTLE_ENDIAN__ ++ addi r3,r11,-1 ++ andc r3,r3,r11 ++ popcntd r0,r3 ++#else ++ cntlzd r0,r11 ++#endif ++ subfic r0,r0,63 ++ li r6,-1 ++#ifdef __LITTLE_ENDIAN__ ++ srd r0,r6,r0 ++#else ++ sld r0,r6,r0 ++#endif ++ and r10,r0,r10 ++L(no_null): ++#ifdef __LITTLE_ENDIAN__ ++ cntlzd r0,r10 /* Count leading zeros before c matches. */ ++ addi r3,r10,-1 ++ andc r3,r3,r10 ++ addi r10,r11,-1 ++ andc r10,r10,r11 ++ cmpld cr7,r3,r10 ++ bgt cr7,L(no_match) ++#else ++ addi r3,r10,-1 /* Count trailing zeros before c matches. */ ++ andc r3,r3,r10 ++ popcntd r0,r3 ++ cmpld cr7,r11,r10 ++ bgt cr7,L(no_match) ++#endif ++ srdi r0,r0,3 /* Convert trailing zeros to bytes. */ ++ subfic r0,r0,7 ++ add r9,r8,r0 /* Return address of the matching c byte ++ or null in case c was not found. */ ++ li r0,0 ++ cmpdi cr7,r11,0 /* If r11 == 0, no null's have been found. */ ++ beq cr7,L(align) ++ ++ .align 4 ++L(no_match): ++ mr r3,r9 ++ blr ++ ++/* We are here because strrchr was called with a null byte. */ ++ .align 4 ++L(null_match): ++ /* r0 has a doubleword of null bytes. */ ++ ++ cmpb r5,r12,r0 /* Compare each byte against null bytes. */ ++ ++ /* Move the doublewords left and right to discard the bits that are ++ not part of the string and bring them back as zeros. */ ++#ifdef __LITTLE_ENDIAN__ ++ srd r5,r5,r6 ++ sld r5,r5,r6 ++#else ++ sld r5,r5,r6 ++ srd r5,r5,r6 ++#endif ++ cmpdi cr7,r5,0 /* If r10 == 0, no c or null bytes ++ have been found. */ ++ bne cr7,L(done_null) ++ ++ mtcrf 0x01,r8 ++ ++ /* Are we now aligned to a quadword boundary? If so, skip to ++ the main loop. Otherwise, go through the alignment code. */ ++ ++ bt 28,L(loop_null) ++ ++ /* Handle WORD2 of pair. */ ++ ldu r12,8(r8) ++ cmpb r5,r12,r0 ++ cmpdi cr7,r5,0 ++ bne cr7,L(done_null) ++ b L(loop_null) /* We branch here (rather than falling through) ++ to skip the nops due to heavy alignment ++ of the loop below. */ ++ ++ /* Main loop to look for the end of the string. Since it's a ++ small loop (< 8 instructions), align it to 32-bytes. */ ++ .p2align 5 ++L(loop_null): ++ /* Load two doublewords, compare and merge in a ++ single register for speed. This is an attempt ++ to speed up the null-checking process for bigger strings. */ ++ ld r12,8(r8) ++ ldu r11,16(r8) ++ cmpb r5,r12,r0 ++ cmpb r10,r11,r0 ++ or r6,r5,r10 ++ cmpdi cr7,r6,0 ++ beq cr7,L(loop_null) ++ ++ /* OK, one (or both) of the doublewords contains a null byte. Check ++ the first doubleword and decrement the address in case the first ++ doubleword really contains a null byte. */ ++ ++ cmpdi cr6,r5,0 ++ addi r8,r8,-8 ++ bne cr6,L(done_null) ++ ++ /* The null byte must be in the second doubleword. Adjust the address ++ again and move the result of cmpb to r10 so we can calculate the ++ pointer. */ ++ ++ mr r5,r10 ++ addi r8,r8,8 ++ ++ /* r5 has the output of the cmpb instruction, that is, it contains ++ 0xff in the same position as the null byte in the original ++ doubleword from the string. Use that to calculate the pointer. */ ++L(done_null): ++#ifdef __LITTLE_ENDIAN__ ++ addi r0,r5,-1 ++ andc r0,r0,r5 ++ popcntd r0,r0 ++#else ++ cntlzd r0,r5 /* Count leading zeros before the match. */ ++#endif ++ srdi r0,r0,3 /* Convert trailing zeros to bytes. */ ++ add r3,r8,r0 /* Return address of the matching null byte. */ ++ blr ++END (strrchr) ++weak_alias (strrchr, rindex) ++libc_hidden_builtin_def (strrchr) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strspn.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strspn.S +@@ -0,0 +1,165 @@ ++/* Optimized strspn implementation for PowerPC64/POWER7. ++ ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* size_t [r3] strspn (const char *string [r3], ++ const char *needleAccept [r4] */ ++ ++/* Performance gains are grabbed through following techniques: ++ ++ > hashing of needle. ++ > hashing avoids scanning of duplicate entries in needle ++ across the string. ++ > initializing the hash table with Vector instructions ++ by quadword access. ++ > unrolling when scanning for character in string ++ across hash table. */ ++ ++/* Algorithm is as below: ++ 1. A empty hash table/dictionary is created comprising of ++ 256 ascii character set ++ 2. When hash entry is found in needle , the hash index ++ is initialized to 1 ++ 3. The string is scanned until end and for every character, ++ its corresponding hash index is compared. ++ 4. initial length of string (count) until first hit of ++ accept needle to be found is set to 0 ++ 4. If hash index is set to 1 for the index of string, ++ count is returned. ++ 5. Otherwise count is incremented and scanning continues ++ until end of string. */ ++ ++#include ++ ++#undef strspn ++ ++ .machine power7 ++EALIGN(strspn, 4, 0) ++ CALL_MCOUNT 2 ++ ++ lbz r10, 0(r4) /* load r10 with needle (r4) */ ++ addi r9, r1, -256 /* r9 is a hash of 256 bytes */ ++ ++ li r5, 16 /* set r5 = 16 as offset */ ++ li r6, 32 /* set r6 = 32 as offset */ ++ li r8, 48 /* set r8 = 48 as offset */ ++ ++/*Iniatliaze hash table with Zeroes in double indexed quadword accesses */ ++ xxlxor v0, v0, v0 /* prepare for initializing hash */ ++ ++ stxvd2x v0, r0, r9 /* initialize 1st quadword */ ++ stxvd2x v0, r9, r5 ++ stxvd2x v0, r9, r6 ++ stxvd2x v0, r9, r8 /* initialize 4th quadword */ ++ ++ addi r11, r9, 64 /* r11 is index to hash */ ++ ++ stxvd2x v0, r0, r11 /* initialize 5th quadword */ ++ stxvd2x v0, r11, r5 ++ stxvd2x v0, r11, r6 ++ stxvd2x v0, r11, r8 /* initialize 8th quadword */ ++ ++ addi r11, r9, 128 /* r11 is index to hash */ ++ ++ stxvd2x v0, r0, r11 /* initialize 9th quadword */ ++ stxvd2x v0, r11, r5 ++ stxvd2x v0, r11, r6 ++ stxvd2x v0, r11, r8 /* initialize 12th quadword */ ++ ++ addi r11, r9, 192 /* r11 is index to hash */ ++ ++ stxvd2x v0, r0, r11 /* initialize 13th quadword */ ++ stxvd2x v0, r11, r5 ++ stxvd2x v0, r11, r6 ++ stxvd2x v0, r11, r8 /* initialize 16th quadword */ ++ ++ li r8, 1 /* r8=1, marker into hash if found in ++ needle */ ++ ++ cmpdi cr7, r10, 0 /* accept needle is NULL */ ++ beq cr7, L(skipHashing) /* if needle is NULL, skip hashing */ ++ ++ .p2align 4 /* align section to 16 byte boundary */ ++L(hashing): ++ stbx r8, r9, r10 /* update hash with marker for the pivot of ++ the needle */ ++ lbzu r10, 1(r4) /* load needle into r10 and update to next */ ++ cmpdi cr7, r10, 0 /* if needle is has reached NULL, continue */ ++ bne cr7, L(hashing) /* loop to hash the needle */ ++ ++L(skipHashing): ++ li r10, 0 /* load counter = 0 */ ++ b L(beginScan) ++ ++ .p2align 4 /* align section to 16 byte boundary */ ++L(scanUnroll): ++ lbzx r8, r9, r8 /* load r8 with hash value at index */ ++ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found ++ accept needle */ ++ beq cr7, L(ret1stIndex) /* we have hit accept needle, return the ++ count */ ++ ++ lbz r8, 1(r3) /* load string[1] into r8 */ ++ addi r10, r10, 4 /* increment counter */ ++ lbzx r8, r9, r8 /* load r8 with hash value at index */ ++ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found ++ accept needle */ ++ beq cr7, L(ret2ndIndex) /* we have hit accept needle, return the ++ count */ ++ ++ lbz r8, 2(r3) /* load string[2] into r8 */ ++ lbzx r8, r9, r8 /* load r8 with hash value at index */ ++ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found ++ accept needle */ ++ beq cr7, L(ret3rdIndex) /* we have hit accept needle, return the ++ count */ ++ ++ lbz r8, 3(r3) /* load string[3] into r8 */ ++ lbzx r8, r9, r8 /* load r8 with hash value at index */ ++ addi r3, r3, 4 /* unroll factor , increment string by 4 */ ++ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found ++ accept needle */ ++ beq cr7,L(ret4thIndex) /* we have hit accept needle, return the ++ count */ ++ ++L(beginScan): ++ lbz r8, 0(r3) /* load string[0] into r8 */ ++ addi r6, r10, 1 /* place holder for counter + 1 */ ++ addi r5, r10, 2 /* place holder for counter + 2 */ ++ addi r4, r10, 3 /* place holder for counter + 3 */ ++ cmpdi cr7, r8, 0 /* if we hit marker in hash, we have found ++ accept needle */ ++ bne cr7, L(scanUnroll) /* continue scanning */ ++ ++L(ret1stIndex): ++ mr r3, r10 /* update r3 for return */ ++ blr /* return */ ++ ++L(ret2ndIndex): ++ mr r3, r6 /* update r3 for return */ ++ blr /* return */ ++ ++L(ret3rdIndex): ++ mr r3, r5 /* update r3 for return */ ++ blr /* return */ ++ ++L(ret4thIndex): ++ mr r3, r4 /* update r3 for return */ ++ blr /* done */ ++END(strspn) ++libc_hidden_builtin_def (strspn) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S +@@ -0,0 +1,56 @@ ++/* isfinite(). PowerPC64/POWER8 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++ ++/* int [r3] __finite ([fp1] x) */ ++ ++EALIGN (__finite, 4, 0) ++ CALL_MCOUNT 0 ++ MFVSRD_R3_V1 ++ lis r9,0x8010 ++ clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */ ++ rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */ ++ add r3,r3,r9 ++ rldicl r3,r3,1,63 ++ blr ++END (__finite) ++ ++hidden_def (__finite) ++weak_alias (__finite, finite) ++ ++/* It turns out that the 'double' version will also always work for ++ single-precision. */ ++strong_alias (__finite, __finitef) ++hidden_def (__finitef) ++weak_alias (__finitef, finitef) ++ ++#ifdef IS_IN_libm ++# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) ++compat_symbol (libm, __finite, __finitel, GLIBC_2_0) ++compat_symbol (libm, finite, finitel, GLIBC_2_0) ++# endif ++#else ++# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) ++compat_symbol (libc, __finite, __finitel, GLIBC_2_0); ++compat_symbol (libc, finite, finitel, GLIBC_2_0); ++# endif ++#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S +@@ -0,0 +1 @@ ++/* This function uses the same code as s_finite.S. */ +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S +@@ -0,0 +1,61 @@ ++/* isinf(). PowerPC64/POWER8 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++ ++/* int [r3] __isinf([fp1] x) */ ++ ++EALIGN (__isinf, 4, 0) ++ CALL_MCOUNT 0 ++ MFVSRD_R3_V1 ++ lis r9,0x7ff0 /* r9 = 0x7ff0 */ ++ rldicl r10,r3,0,1 /* r10 = r3 & (0x8000000000000000) */ ++ sldi r9,r9,32 /* r9 = r9 << 52 */ ++ cmpd cr7,r10,r9 /* fp1 & 0x7ff0000000000000 ? */ ++ beq cr7,L(inf) ++ li r3,0 /* Not inf */ ++ blr ++L(inf): ++ sradi r3,r3,63 /* r3 = r3 >> 63 */ ++ ori r3,r3,1 /* r3 = r3 | 0x1 */ ++ blr ++END (__isinf) ++ ++hidden_def (__isinf) ++weak_alias (__isinf, isinf) ++ ++/* It turns out that the 'double' version will also always work for ++ single-precision. */ ++strong_alias (__isinf, __isinff) ++hidden_def (__isinff) ++weak_alias (__isinff, isinff) ++ ++#ifdef NO_LONG_DOUBLE ++strong_alias (__isinf, __isinfl) ++weak_alias (__isinf, isinfl) ++#endif ++ ++#ifndef IS_IN_libm ++# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) ++compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0); ++compat_symbol (libc, isinf, isinfl, GLIBC_2_0); ++# endif ++#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S +@@ -0,0 +1 @@ ++/* This function uses the same code as s_isinf.S. */ +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S +@@ -0,0 +1,53 @@ ++/* isnan(). PowerPC64/POWER8 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++ ++/* int [r3] __isnan([f1] x) */ ++ ++EALIGN (__isnan, 4, 0) ++ CALL_MCOUNT 0 ++ MFVSRD_R3_V1 ++ lis r9,0x7ff0 ++ clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */ ++ rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */ ++ subf r3,r3,r9 ++ rldicl r3,r3,1,63 ++ blr ++END (__isnan) ++ ++/* It turns out that the 'double' version will also always work for ++ single-precision. */ ++strong_alias (__isnan, __isnanf) ++hidden_def (__isnanf) ++weak_alias (__isnanf, isnanf) ++ ++#ifdef NO_LONG_DOUBLE ++strong_alias (__isnan, __isnanl) ++weak_alias (__isnan, isnanl) ++#endif ++ ++#ifndef IS_IN_libm ++# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) ++compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0); ++compat_symbol (libc, isnan, isnanl, GLIBC_2_0); ++# endif ++#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S +@@ -0,0 +1 @@ ++/* This function uses the same code as s_isnan.S. */ +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S +@@ -0,0 +1,45 @@ ++/* Round double to long int. POWER8 PowerPC64 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++ ++/* long long int[r3] __llrint (double x[fp1]) */ ++ENTRY (__llrint) ++ CALL_MCOUNT 0 ++ fctid fp1,fp1 ++ MFVSRD_R3_V1 ++ blr ++END (__llrint) ++ ++strong_alias (__llrint, __lrint) ++weak_alias (__llrint, llrint) ++weak_alias (__lrint, lrint) ++ ++#ifdef NO_LONG_DOUBLE ++strong_alias (__llrint, __llrintl) ++weak_alias (__llrint, llrintl) ++strong_alias (__lrint, __lrintl) ++weak_alias (__lrint, lrintl) ++#endif ++#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) ++compat_symbol (libm, __llrint, llrintl, GLIBC_2_1) ++compat_symbol (libm, __lrint, lrintl, GLIBC_2_1) ++#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S +@@ -0,0 +1,47 @@ ++/* llround function. POWER8 PowerPC64 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++ ++/* long long [r3] llround (float x [fp1]) */ ++ ++ENTRY (__llround) ++ CALL_MCOUNT 0 ++ frin fp1,fp1 /* Round to nearest +-0.5. */ ++ fctidz fp1,fp1 /* Convert To Integer DW round toward 0. */ ++ MFVSRD_R3_V1 ++ blr ++END (__llround) ++ ++strong_alias (__llround, __lround) ++weak_alias (__llround, llround) ++weak_alias (__lround, lround) ++ ++#ifdef NO_LONG_DOUBLE ++weak_alias (__llround, llroundl) ++strong_alias (__llround, __llroundl) ++weak_alias (__lround, lroundl) ++strong_alias (__lround, __lroundl) ++#endif ++#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) ++compat_symbol (libm, __llround, llroundl, GLIBC_2_1) ++compat_symbol (libm, __lround, lroundl, GLIBC_2_1) ++#endif From 128caffcb1ddc0e6cdc09bcbc9d677ebcd5ddaaf174c59231d4e9c77343f5c27 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 27 Mar 2014 08:28:34 +0000 Subject: [PATCH 162/204] Accepting request 227477 from Base:System - abort-no-flush.patch: Don't close or flush stdio streams on abort (BZ #15436) - fix-locking-in-_IO_cleanup.patch: always do locking when accessing streams (bnc#796982, BZ #15142) - resolv-dont-ignore-second-answer.patch: don't ignore second answer from nameserver if the first one was empty (bnc#767266, BZ #13651) - ldd-system-interp.patch: Never try to execute the file in ldd (bnc#677787, BZ #16750) - check-pf-alloca.patch: Account for alloca use when collecting interface addresses (bnc#785041, BZ #16002) - powerpc-opt-power8.patch: two more POWER8 optimisations (bnc#866711, fate#315443) - getaddrinfo-uninit-result.patch: Fix use of half-initialized result in getaddrinfo when using nscd (bnc#867636, BZ #16743) (forwarded request 227472 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/227477 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=170 --- abort-no-flush.patch | 80 +++ check-pf-alloca.patch | 103 ++++ fix-locking-in-_IO_cleanup.patch | 236 +++++++++ getaddrinfo-uninit-result.patch | 22 + glibc-testsuite.changes | 30 ++ glibc-testsuite.spec | 19 + glibc-utils.changes | 30 ++ glibc-utils.spec | 19 + glibc.changes | 30 ++ glibc.spec | 19 + ldd-system-interp.patch | 51 ++ powerpc-opt-power8.patch | 655 ++++++++++++++++++++++++- resolv-dont-ignore-second-answer.patch | 33 ++ 13 files changed, 1324 insertions(+), 3 deletions(-) create mode 100644 abort-no-flush.patch create mode 100644 check-pf-alloca.patch create mode 100644 fix-locking-in-_IO_cleanup.patch create mode 100644 getaddrinfo-uninit-result.patch create mode 100644 ldd-system-interp.patch create mode 100644 resolv-dont-ignore-second-answer.patch diff --git a/abort-no-flush.patch b/abort-no-flush.patch new file mode 100644 index 0000000..e7bc31a --- /dev/null +++ b/abort-no-flush.patch @@ -0,0 +1,80 @@ +Don't close or flush stdio streams on abort + + [BZ #15436] + * stdlib/abort.c (abort): Don't call fflush and __fcloseall. + +Index: glibc-2.19/stdlib/abort.c +=================================================================== +--- glibc-2.19.orig/stdlib/abort.c ++++ glibc-2.19/stdlib/abort.c +@@ -30,9 +30,6 @@ + # define ABORT_INSTRUCTION + #endif + +-#include +-#define fflush(s) _IO_flush_all_lockp (0) +- + /* Exported variable to locate abort message in core files etc. */ + struct abort_msg_s *__abort_msg __attribute__ ((nocommon)); + libc_hidden_def (__abort_msg) +@@ -66,16 +63,8 @@ abort (void) + __sigprocmask (SIG_UNBLOCK, &sigs, (sigset_t *) NULL); + } + +- /* Flush all streams. We cannot close them now because the user +- might have registered a handler for SIGABRT. */ +- if (stage == 1) +- { +- ++stage; +- fflush (NULL); +- } +- + /* Send signal which possibly calls a user handler. */ +- if (stage == 2) ++ if (stage == 1) + { + /* This stage is special: we must allow repeated calls of + `abort' when a user defined handler for SIGABRT is installed. +@@ -93,7 +82,7 @@ abort (void) + } + + /* There was a handler installed. Now remove it. */ +- if (stage == 3) ++ if (stage == 2) + { + ++stage; + memset (&act, '\0', sizeof (struct sigaction)); +@@ -103,30 +92,22 @@ abort (void) + __sigaction (SIGABRT, &act, NULL); + } + +- /* Now close the streams which also flushes the output the user +- defined handler might has produced. */ +- if (stage == 4) +- { +- ++stage; +- __fcloseall (); +- } +- + /* Try again. */ +- if (stage == 5) ++ if (stage == 3) + { + ++stage; + raise (SIGABRT); + } + + /* Now try to abort using the system specific command. */ +- if (stage == 6) ++ if (stage == 4) + { + ++stage; + ABORT_INSTRUCTION; + } + + /* If we can't signal ourselves and the abort instruction failed, exit. */ +- if (stage == 7) ++ if (stage == 5) + { + ++stage; + _exit (127); diff --git a/check-pf-alloca.patch b/check-pf-alloca.patch new file mode 100644 index 0000000..8e4e82b --- /dev/null +++ b/check-pf-alloca.patch @@ -0,0 +1,103 @@ + * sysdeps/unix/sysv/linux/check_pf.c (make_request): Add out_fail2 + label to be used after in6ailist is initialized. + + [BZ #16002] + * sysdeps/unix/sysv/linux/check_pf.c (make_request): Use + alloca_account and account alloca use for struct in6ailist. + +Index: glibc-2.19/sysdeps/unix/sysv/linux/check_pf.c +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/check_pf.c ++++ glibc-2.19/sysdeps/unix/sysv/linux/check_pf.c +@@ -139,9 +139,10 @@ make_request (int fd, pid_t pid) + #endif + bool use_malloc = false; + char *buf; ++ size_t alloca_used = 0; + + if (__libc_use_alloca (buf_size)) +- buf = alloca (buf_size); ++ buf = alloca_account (buf_size, alloca_used); + else + { + buf = malloc (buf_size); +@@ -163,6 +164,7 @@ make_request (int fd, pid_t pid) + { + struct in6addrinfo info; + struct in6ailist *next; ++ bool use_malloc; + } *in6ailist = NULL; + size_t in6ailistlen = 0; + bool seen_ipv4 = false; +@@ -180,10 +182,10 @@ make_request (int fd, pid_t pid) + + ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0)); + if (read_len < 0) +- goto out_fail; ++ goto out_fail2; + + if (msg.msg_flags & MSG_TRUNC) +- goto out_fail; ++ goto out_fail2; + + struct nlmsghdr *nlmh; + for (nlmh = (struct nlmsghdr *) buf; +@@ -239,7 +241,19 @@ make_request (int fd, pid_t pid) + } + } + +- struct in6ailist *newp = alloca (sizeof (*newp)); ++ struct in6ailist *newp; ++ if (__libc_use_alloca (alloca_used + sizeof (*newp))) ++ { ++ newp = alloca_account (sizeof (*newp), alloca_used); ++ newp->use_malloc = false; ++ } ++ else ++ { ++ newp = malloc (sizeof (*newp)); ++ if (newp == NULL) ++ goto out_fail2; ++ newp->use_malloc = true; ++ } + newp->info.flags = (((ifam->ifa_flags + & (IFA_F_DEPRECATED + | IFA_F_OPTIMISTIC)) +@@ -275,7 +289,7 @@ make_request (int fd, pid_t pid) + result = malloc (sizeof (*result) + + in6ailistlen * sizeof (struct in6addrinfo)); + if (result == NULL) +- goto out_fail; ++ goto out_fail2; + + result->timestamp = get_nl_timestamp (); + result->usecnt = 2; +@@ -286,7 +300,10 @@ make_request (int fd, pid_t pid) + do + { + result->in6ai[--in6ailistlen] = in6ailist->info; +- in6ailist = in6ailist->next; ++ struct in6ailist *next = in6ailist->next; ++ if (in6ailist->use_malloc) ++ free (in6ailist); ++ in6ailist = next; + } + while (in6ailist != NULL); + } +@@ -302,7 +319,15 @@ make_request (int fd, pid_t pid) + free (buf); + return result; + +-out_fail: ++ out_fail2: ++ while (in6ailist != NULL) ++ { ++ struct in6ailist *next = in6ailist->next; ++ if (in6ailist->use_malloc) ++ free (in6ailist); ++ in6ailist = next; ++ } ++ out_fail: + if (use_malloc) + free (buf); + return NULL; diff --git a/fix-locking-in-_IO_cleanup.patch b/fix-locking-in-_IO_cleanup.patch new file mode 100644 index 0000000..e47c1c2 --- /dev/null +++ b/fix-locking-in-_IO_cleanup.patch @@ -0,0 +1,236 @@ +Always do locking when accessing streams + + [BZ #15142] + * libio/genops.c (_IO_list_all_stamp): Delete. All uses removed. + (_IO_flush_all_all_lockp): Delete. + (_IO_flush_all): Replace with body of _IO_flush_all_all_lockp. + Always do locking. + (_IO_unbuffer_write): Always do locking. + (_IO_cleanup): Call _IO_flush_all instead of _IO_flush_all_lockp. + * libio/libioP.h (_IO_flush_all_all_lockp): Remove declaration. + +diff --git a/libio/genops.c b/libio/genops.c +index e0ce8cc..9def1d4 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -38,10 +38,6 @@ + static _IO_lock_t list_all_lock = _IO_lock_initializer; + #endif + +-/* Used to signal modifications to the list of FILE decriptors. */ +-static int _IO_list_all_stamp; +- +- + static _IO_FILE *run_fp; + + #ifdef _IO_MTSAFE_IO +@@ -70,16 +66,12 @@ _IO_un_link (fp) + if (_IO_list_all == NULL) + ; + else if (fp == _IO_list_all) +- { +- _IO_list_all = (struct _IO_FILE_plus *) _IO_list_all->file._chain; +- ++_IO_list_all_stamp; +- } ++ _IO_list_all = (struct _IO_FILE_plus *) _IO_list_all->file._chain; + else + for (f = &_IO_list_all->file._chain; *f; f = &(*f)->_chain) + if (*f == (_IO_FILE *) fp) + { + *f = fp->file._chain; +- ++_IO_list_all_stamp; + break; + } + fp->file._flags &= ~_IO_LINKED; +@@ -108,7 +100,6 @@ _IO_link_in (fp) + #endif + fp->file._chain = (_IO_FILE *) _IO_list_all; + _IO_list_all = fp; +- ++_IO_list_all_stamp; + #ifdef _IO_MTSAFE_IO + _IO_funlockfile ((_IO_FILE *) fp); + run_fp = NULL; +@@ -818,25 +809,20 @@ _IO_get_column (fp) + + + int +-_IO_flush_all_lockp (int do_lock) ++_IO_flush_all (void) + { + int result = 0; + struct _IO_FILE *fp; +- int last_stamp; + + #ifdef _IO_MTSAFE_IO +- __libc_cleanup_region_start (do_lock, flush_cleanup, NULL); +- if (do_lock) +- _IO_lock_lock (list_all_lock); ++ _IO_cleanup_region_start_noarg (flush_cleanup); ++ _IO_lock_lock (list_all_lock); + #endif + +- last_stamp = _IO_list_all_stamp; +- fp = (_IO_FILE *) _IO_list_all; +- while (fp != NULL) ++ for (fp = (_IO_FILE *) _IO_list_all; fp != NULL; fp = fp->_chain) + { + run_fp = fp; +- if (do_lock) +- _IO_flockfile (fp); ++ _IO_flockfile (fp); + + if (((fp->_mode <= 0 && fp->_IO_write_ptr > fp->_IO_write_base) + #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T +@@ -848,52 +834,30 @@ _IO_flush_all_lockp (int do_lock) + && _IO_OVERFLOW (fp, EOF) == EOF) + result = EOF; + +- if (do_lock) +- _IO_funlockfile (fp); ++ _IO_funlockfile (fp); + run_fp = NULL; +- +- if (last_stamp != _IO_list_all_stamp) +- { +- /* Something was added to the list. Start all over again. */ +- fp = (_IO_FILE *) _IO_list_all; +- last_stamp = _IO_list_all_stamp; +- } +- else +- fp = fp->_chain; + } + + #ifdef _IO_MTSAFE_IO +- if (do_lock) +- _IO_lock_unlock (list_all_lock); +- __libc_cleanup_region_end (0); ++ _IO_lock_unlock (list_all_lock); ++ _IO_cleanup_region_end (0); + #endif + + return result; + } +- +- +-int +-_IO_flush_all (void) +-{ +- /* We want locking. */ +- return _IO_flush_all_lockp (1); +-} + libc_hidden_def (_IO_flush_all) + + void + _IO_flush_all_linebuffered (void) + { + struct _IO_FILE *fp; +- int last_stamp; + + #ifdef _IO_MTSAFE_IO + _IO_cleanup_region_start_noarg (flush_cleanup); + _IO_lock_lock (list_all_lock); + #endif + +- last_stamp = _IO_list_all_stamp; +- fp = (_IO_FILE *) _IO_list_all; +- while (fp != NULL) ++ for (fp = (_IO_FILE *) _IO_list_all; fp != NULL; fp = fp->_chain) + { + run_fp = fp; + _IO_flockfile (fp); +@@ -903,15 +867,6 @@ _IO_flush_all_linebuffered (void) + + _IO_funlockfile (fp); + run_fp = NULL; +- +- if (last_stamp != _IO_list_all_stamp) +- { +- /* Something was added to the list. Start all over again. */ +- fp = (_IO_FILE *) _IO_list_all; +- last_stamp = _IO_list_all_stamp; +- } +- else +- fp = fp->_chain; + } + + #ifdef _IO_MTSAFE_IO +@@ -947,6 +902,12 @@ static void + _IO_unbuffer_write (void) + { + struct _IO_FILE *fp; ++ ++#ifdef _IO_MTSAFE_IO ++ _IO_cleanup_region_start_noarg (flush_cleanup); ++ _IO_lock_lock (list_all_lock); ++#endif ++ + for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain) + { + if (! (fp->_flags & _IO_UNBUFFERED) +@@ -956,15 +917,8 @@ _IO_unbuffer_write (void) + && fp->_mode != 0) + { + #ifdef _IO_MTSAFE_IO +- int cnt; +-#define MAXTRIES 2 +- for (cnt = 0; cnt < MAXTRIES; ++cnt) +- if (fp->_lock == NULL || _IO_lock_trylock (*fp->_lock) == 0) +- break; +- else +- /* Give the other thread time to finish up its use of the +- stream. */ +- __sched_yield (); ++ run_fp = fp; ++ _IO_flockfile (fp); + #endif + + if (! dealloc_buffers && !(fp->_flags & _IO_USER_BUF)) +@@ -980,8 +934,8 @@ _IO_unbuffer_write (void) + _IO_SETBUF (fp, NULL, 0); + + #ifdef _IO_MTSAFE_IO +- if (cnt < MAXTRIES && fp->_lock != NULL) +- _IO_lock_unlock (*fp->_lock); ++ _IO_funlockfile (fp); ++ run_fp = NULL; + #endif + } + +@@ -989,6 +943,11 @@ _IO_unbuffer_write (void) + used. */ + fp->_mode = -1; + } ++ ++#ifdef _IO_MTSAFE_IO ++ _IO_lock_unlock (list_all_lock); ++ _IO_cleanup_region_end (0); ++#endif + } + + +@@ -1008,9 +967,7 @@ libc_freeres_fn (buffer_free) + int + _IO_cleanup (void) + { +- /* We do *not* want locking. Some threads might use streams but +- that is their problem, we flush them underneath them. */ +- int result = _IO_flush_all_lockp (0); ++ int result = _IO_flush_all (); + + /* We currently don't have a reliable mechanism for making sure that + C++ static destructors are executed in the correct order. +diff --git a/libio/libioP.h b/libio/libioP.h +index 8a7b85b..3e3a724 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -488,7 +488,6 @@ extern int _IO_new_do_write (_IO_FILE *, const char *, _IO_size_t); + extern int _IO_old_do_write (_IO_FILE *, const char *, _IO_size_t); + extern int _IO_wdo_write (_IO_FILE *, const wchar_t *, _IO_size_t); + libc_hidden_proto (_IO_wdo_write) +-extern int _IO_flush_all_lockp (int); + extern int _IO_flush_all (void); + libc_hidden_proto (_IO_flush_all) + extern int _IO_cleanup (void); +-- +1.9.1 + diff --git a/getaddrinfo-uninit-result.patch b/getaddrinfo-uninit-result.patch new file mode 100644 index 0000000..99a5bbc --- /dev/null +++ b/getaddrinfo-uninit-result.patch @@ -0,0 +1,22 @@ + * sysdeps/posix/getaddrinfo.c (gaih_inet): Properly skip over + non-matching result from nscd. + +Index: glibc-2.19/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.19.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.19/sysdeps/posix/getaddrinfo.c +@@ -710,6 +710,14 @@ gaih_inet (const char *name, const struc + struct gaih_addrtuple *addrfree = addrmem; + for (int i = 0; i < air->naddrs; ++i) + { ++ if (!((air->family[i] == AF_INET ++ && req->ai_family == AF_INET6 ++ && (req->ai_flags & AI_V4MAPPED) != 0) ++ || req->ai_family == AF_UNSPEC ++ || air->family[i] == req->ai_family)) ++ /* Skip over non-matching result. */ ++ continue; ++ + socklen_t size = (air->family[i] == AF_INET + ? INADDRSZ : IN6ADDRSZ); + if (*pat == NULL) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index d8ae668..8fa09da 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de + +- abort-no-flush.patch: Don't close or flush stdio streams on abort (BZ + #15436) +- fix-locking-in-_IO_cleanup.patch: always do locking when accessing + streams (bnc#796982, BZ #15142) +- resolv-dont-ignore-second-answer.patch: don't ignore second answer from + nameserver if the first one was empty (bnc#767266, BZ #13651) +- ldd-system-interp.patch: Never try to execute the file in ldd + (bnc#677787, BZ #16750) + +------------------------------------------------------------------- +Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de + +- check-pf-alloca.patch: Account for alloca use when collecting interface + addresses (bnc#785041, BZ #16002) + +------------------------------------------------------------------- +Mon Mar 24 07:59:40 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: two more POWER8 optimisations (bnc#866711, + fate#315443) + +------------------------------------------------------------------- +Thu Mar 20 14:52:47 UTC 2014 - schwab@suse.de + +- getaddrinfo-uninit-result.patch: Fix use of half-initialized result in + getaddrinfo when using nscd (bnc#867636, BZ #16743) + ------------------------------------------------------------------- Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index d2acd5d..b2ffa52 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -240,10 +240,22 @@ Patch1002: pldd-wait-ptrace-stop.patch Patch1003: nscd-track-startup-failures.patch # PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware Patch1004: powerpc-opt-power8.patch +# PATCH-FIX-UPSTREAM Account for alloca use when collecting interface addresses +Patch1005: check-pf-alloca.patch +# PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd +Patch1006: getaddrinfo-uninit-result.patch ### # Patches awaiting upstream approval ### +# PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) +Patch2000: fix-locking-in-_IO_cleanup.patch +# PATCH-FIX-UPSTREAM Don't ignore second answer from nameserver if the first one was empty (BZ #13651) +Patch2001: resolv-dont-ignore-second-answer.patch +# PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) +Patch2002: ldd-system-interp.patch +# PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) +Patch2003: abort-no-flush.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -449,6 +461,13 @@ rm nscd/s-stamp %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 + +%patch2000 -p1 +%patch2001 -p1 +%patch2002 -p1 +%patch2003 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index d8ae668..8fa09da 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de + +- abort-no-flush.patch: Don't close or flush stdio streams on abort (BZ + #15436) +- fix-locking-in-_IO_cleanup.patch: always do locking when accessing + streams (bnc#796982, BZ #15142) +- resolv-dont-ignore-second-answer.patch: don't ignore second answer from + nameserver if the first one was empty (bnc#767266, BZ #13651) +- ldd-system-interp.patch: Never try to execute the file in ldd + (bnc#677787, BZ #16750) + +------------------------------------------------------------------- +Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de + +- check-pf-alloca.patch: Account for alloca use when collecting interface + addresses (bnc#785041, BZ #16002) + +------------------------------------------------------------------- +Mon Mar 24 07:59:40 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: two more POWER8 optimisations (bnc#866711, + fate#315443) + +------------------------------------------------------------------- +Thu Mar 20 14:52:47 UTC 2014 - schwab@suse.de + +- getaddrinfo-uninit-result.patch: Fix use of half-initialized result in + getaddrinfo when using nscd (bnc#867636, BZ #16743) + ------------------------------------------------------------------- Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 1e6bc2b..9b364d1 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -239,10 +239,22 @@ Patch1002: pldd-wait-ptrace-stop.patch Patch1003: nscd-track-startup-failures.patch # PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware Patch1004: powerpc-opt-power8.patch +# PATCH-FIX-UPSTREAM Account for alloca use when collecting interface addresses +Patch1005: check-pf-alloca.patch +# PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd +Patch1006: getaddrinfo-uninit-result.patch ### # Patches awaiting upstream approval ### +# PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) +Patch2000: fix-locking-in-_IO_cleanup.patch +# PATCH-FIX-UPSTREAM Don't ignore second answer from nameserver if the first one was empty (BZ #13651) +Patch2001: resolv-dont-ignore-second-answer.patch +# PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) +Patch2002: ldd-system-interp.patch +# PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) +Patch2003: abort-no-flush.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -449,6 +461,13 @@ rm nscd/s-stamp %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 + +%patch2000 -p1 +%patch2001 -p1 +%patch2002 -p1 +%patch2003 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index d8ae668..8fa09da 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de + +- abort-no-flush.patch: Don't close or flush stdio streams on abort (BZ + #15436) +- fix-locking-in-_IO_cleanup.patch: always do locking when accessing + streams (bnc#796982, BZ #15142) +- resolv-dont-ignore-second-answer.patch: don't ignore second answer from + nameserver if the first one was empty (bnc#767266, BZ #13651) +- ldd-system-interp.patch: Never try to execute the file in ldd + (bnc#677787, BZ #16750) + +------------------------------------------------------------------- +Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de + +- check-pf-alloca.patch: Account for alloca use when collecting interface + addresses (bnc#785041, BZ #16002) + +------------------------------------------------------------------- +Mon Mar 24 07:59:40 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: two more POWER8 optimisations (bnc#866711, + fate#315443) + +------------------------------------------------------------------- +Thu Mar 20 14:52:47 UTC 2014 - schwab@suse.de + +- getaddrinfo-uninit-result.patch: Fix use of half-initialized result in + getaddrinfo when using nscd (bnc#867636, BZ #16743) + ------------------------------------------------------------------- Thu Mar 20 07:42:50 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 0f1cf2f..ae76ee6 100644 --- a/glibc.spec +++ b/glibc.spec @@ -240,10 +240,22 @@ Patch1002: pldd-wait-ptrace-stop.patch Patch1003: nscd-track-startup-failures.patch # PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware Patch1004: powerpc-opt-power8.patch +# PATCH-FIX-UPSTREAM Account for alloca use when collecting interface addresses +Patch1005: check-pf-alloca.patch +# PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd +Patch1006: getaddrinfo-uninit-result.patch ### # Patches awaiting upstream approval ### +# PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) +Patch2000: fix-locking-in-_IO_cleanup.patch +# PATCH-FIX-UPSTREAM Don't ignore second answer from nameserver if the first one was empty (BZ #13651) +Patch2001: resolv-dont-ignore-second-answer.patch +# PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) +Patch2002: ldd-system-interp.patch +# PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) +Patch2003: abort-no-flush.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -449,6 +461,13 @@ rm nscd/s-stamp %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 + +%patch2000 -p1 +%patch2001 -p1 +%patch2002 -p1 +%patch2003 -p1 %patch3000 diff --git a/ldd-system-interp.patch b/ldd-system-interp.patch new file mode 100644 index 0000000..518aa2c --- /dev/null +++ b/ldd-system-interp.patch @@ -0,0 +1,51 @@ +Never try to execute the file in ldd + +Executing a random file is never a good idea. Treat all arguments as if +they are invoked with __libc_enable_secure, and run them through the known +good dynamic linker. + + * elf/ldd.bash.in: Always run through the dynamic linker, even if + the file has its own interpreter. Remove unneeded executable + check. + +Index: glibc-2.19/elf/ldd.bash.in +=================================================================== +--- glibc-2.19.orig/elf/ldd.bash.in ++++ glibc-2.19/elf/ldd.bash.in +@@ -150,8 +150,6 @@ for file do + echo "ldd: ${file}:" $"not regular file" >&2 + result=1 + elif test -r "$file"; then +- test -x "$file" || echo 'ldd:' $"\ +-warning: you do not have execution permission for" "\`$file'" >&2 + RTLD= + ret=1 + for rtld in ${RTLDLIST}; do +@@ -164,18 +162,6 @@ warning: you do not have execution permi + fi + done + case $ret in +- 0) +- # If the program exits with exit code 5, it means the process has been +- # invoked with __libc_enable_secure. Fall back to running it through +- # the dynamic linker. +- try_trace "$file" +- rc=$? +- if [ $rc = 5 ]; then +- try_trace "$RTLD" "$file" +- rc=$? +- fi +- [ $rc = 0 ] || result=1 +- ;; + 1) + # This can be a non-ELF binary or no binary at all. + nonelf "$file" || { +@@ -183,7 +169,7 @@ warning: you do not have execution permi + result=1 + } + ;; +- 2) ++ [02]) + try_trace "$RTLD" "$file" || result=1 + ;; + *) diff --git a/powerpc-opt-power8.patch b/powerpc-opt-power8.patch index ce1af76..24aa7f5 100644 --- a/powerpc-opt-power8.patch +++ b/powerpc-opt-power8.patch @@ -1,3 +1,36 @@ +2014-03-20 Adhemerval Zanella + Vidya Ranganathan + + * string/strpbrk.c (strpbrk): Using macro to redefine symbol name. + * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strpbrk-power7 + and strpbrk-ppc64 objects. + * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c + (__libc_ifunc_impl_list): Add new strpbrk optimized symbols. + * sysdeps/powerpc/powerpc64/multiarch/strpbrk-power7.S: New file: + multiarch strpbrk for POWER7. + * sysdeps/powerpc/powerpc64/multiarch/strpbrk-ppc64.c: New file: + multiarch strpbrk for PPC64. + * sysdeps/powerpc/powerpc64/multiarch/strpbrk.c: New file: strpbrk + ifunc selector. + * sysdeps/powerpc/powerpc64/power7/strpbrk.S: New file: optimited + strpbrk for POWER7. + +2014-03-20 Adhemerval Zanella + + * string/strcspn.c (strcspn): Using macro to redefine symbol name. + * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strcspn-power7 + and strcspn-ppc64 objects. + * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c + (__libc_ifunc_impl_list): Add new strcspn optimized symbols. + * sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S: New file: + multiarch strcspn for POWER7. + * sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c: New file: + multiarch strcspn for PPC64. + * sysdeps/powerpc/powerpc64/multiarch/strcspn.c: New file: strcspn + ifunc selector. + * sysdeps/powerpc/powerpc64/power7/strcspn.S: New file: optimited + strcspn for POWER7. + 2014-03-11 Vidya Ranganathan * sysdeps/powerpc/powerpc64/power7/strspn.S: New file: Optimization. @@ -94,6 +127,76 @@ POWER8 isnan implementation. * sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S: New file. +Index: glibc-2.19/string/strcspn.c +=================================================================== +--- glibc-2.19.orig/string/strcspn.c ++++ glibc-2.19/string/strcspn.c +@@ -15,27 +15,18 @@ + License along with the GNU C Library; if not, see + . */ + +-#if HAVE_CONFIG_H +-# include +-#endif +- +-#if defined _LIBC || HAVE_STRING_H +-# include +-#else +-# include +-# ifndef strchr +-# define strchr index +-# endif +-#endif ++#include + + #undef strcspn + ++#ifndef STRCSPN ++# define STRCSPN strcspn ++#endif ++ + /* Return the length of the maximum initial segment of S + which contains no characters from REJECT. */ + size_t +-strcspn (s, reject) +- const char *s; +- const char *reject; ++STRCSPN (const char *s, const char *reject) + { + size_t count = 0; + +Index: glibc-2.19/string/strpbrk.c +=================================================================== +--- glibc-2.19.orig/string/strpbrk.c ++++ glibc-2.19/string/strpbrk.c +@@ -15,21 +15,17 @@ + License along with the GNU C Library; if not, see + . */ + +-#ifdef HAVE_CONFIG_H +-# include +-#endif +- +-#if defined _LIBC || defined HAVE_CONFIG_H +-# include +-#endif ++#include + + #undef strpbrk + ++#ifndef STRPBRK ++#define STRPBRK strpbrk ++#endif ++ + /* Find the first occurrence in S of any character in ACCEPT. */ + char * +-strpbrk (s, accept) +- const char *s; +- const char *accept; ++STRPBRK (const char *s, const char *accept) + { + while (*s != '\0') + { Index: glibc-2.19/string/strrchr.c =================================================================== --- glibc-2.19.orig/string/strrchr.c @@ -549,14 +652,15 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/Makefile =================================================================== --- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/Makefile +++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/Makefile -@@ -13,7 +13,9 @@ sysdep_routines += memcpy-power7 memcpy- +@@ -13,7 +13,10 @@ sysdep_routines += memcpy-power7 memcpy- wcschr-power6 wcschr-ppc64 wcsrchr-power7 wcsrchr-power6 \ wcsrchr-ppc64 wcscpy-power7 wcscpy-power6 wcscpy-ppc64 \ wordcopy-power7 wordcopy-power6 wordcopy-ppc64 \ - strcpy-power7 strcpy-ppc64 stpcpy-power7 stpcpy-ppc64 + strcpy-power7 strcpy-ppc64 stpcpy-power7 stpcpy-ppc64 \ + strrchr-power7 strrchr-ppc64 strncat-power7 strncat-ppc64 \ -+ strspn-power7 strspn-ppc64 ++ strspn-power7 strspn-ppc64 strcspn-power7 strcspn-ppc64 \ ++ strpbrk-power7 strpbrk-ppc64 CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops @@ -564,7 +668,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c =================================================================== --- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c -@@ -238,5 +238,29 @@ __libc_ifunc_impl_list (const char *name +@@ -238,5 +238,45 @@ __libc_ifunc_impl_list (const char *name IFUNC_IMPL_ADD (array, i, wcscpy, 1, __wcscpy_ppc)) @@ -591,9 +695,141 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c + __strspn_power7) + IFUNC_IMPL_ADD (array, i, strspn, 1, + __strspn_ppc)) ++ ++ /* Support sysdeps/powerpc/powerpc64/multiarch/strcspn.c. */ ++ IFUNC_IMPL (i, name, strcspn, ++ IFUNC_IMPL_ADD (array, i, strcspn, ++ hwcap & PPC_FEATURE_HAS_VSX, ++ __strcspn_power7) ++ IFUNC_IMPL_ADD (array, i, strcspn, 1, ++ __strcspn_ppc)) ++ ++ /* Support sysdeps/powerpc/powerpc64/multiarch/strpbrk.c. */ ++ IFUNC_IMPL (i, name, strpbrk, ++ IFUNC_IMPL_ADD (array, i, strpbrk, ++ hwcap & PPC_FEATURE_HAS_VSX, ++ __strpbrk_power7) ++ IFUNC_IMPL_ADD (array, i, strpbrk, 1, ++ __strpbrk_ppc)) + return i; } +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S +@@ -0,0 +1,40 @@ ++/* Optimized strcspn implementation for POWER7. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#undef EALIGN ++#define EALIGN(name, alignt, words) \ ++ .section ".text"; \ ++ ENTRY_2(__strcspn_power7) \ ++ .align ALIGNARG(alignt); \ ++ EALIGN_W_##words; \ ++ BODY_LABEL(__strcspn_power7): \ ++ cfi_startproc; \ ++ LOCALENTRY(__strcspn_power7) ++ ++#undef END ++#define END(name) \ ++ cfi_endproc; \ ++ TRACEBACK(__strcspn_power7) \ ++ END_2(__strcspn_power7) ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c +@@ -0,0 +1,30 @@ ++/* Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define STRCSPN __strcspn_ppc ++#ifdef SHARED ++ ++# undef libc_hidden_builtin_def ++# define libc_hidden_builtin_def(name) \ ++ __hidden_ver1 (__strcspn_ppc, __GI_strcspn, __strcspn_ppc); ++#endif ++ ++extern __typeof (strcspn) __strcspn_ppc attribute_hidden; ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn.c +@@ -0,0 +1,31 @@ ++/* Multiple versions of strcspn. PowerPC64 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef NOT_IN_libc ++# include ++# include ++# include "init-arch.h" ++ ++extern __typeof (strcspn) __strcspn_ppc attribute_hidden; ++extern __typeof (strcspn) __strcspn_power7 attribute_hidden; ++ ++libc_ifunc (strcspn, ++ (hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strcspn_power7 ++ : __strcspn_ppc); ++#endif Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.S =================================================================== --- /dev/null @@ -711,6 +947,122 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat.c + ? __strncat_power7 + : __strncat_ppc); +#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-power7.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-power7.S +@@ -0,0 +1,40 @@ ++/* Optimized strpbrk implementation for POWER7. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#undef EALIGN ++#define EALIGN(name, alignt, words) \ ++ .section ".text"; \ ++ ENTRY_2(__strpbrk_power7) \ ++ .align ALIGNARG(alignt); \ ++ EALIGN_W_##words; \ ++ BODY_LABEL(__strpbrk_power7): \ ++ cfi_startproc; \ ++ LOCALENTRY(__strpbrk_power7) ++ ++#undef END ++#define END(name) \ ++ cfi_endproc; \ ++ TRACEBACK(__strpbrk_power7) \ ++ END_2(__strpbrk_power7) ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-ppc64.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-ppc64.c +@@ -0,0 +1,30 @@ ++/* Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define STRPBRK __strpbrk_ppc ++#ifdef SHARED ++ ++# undef libc_hidden_builtin_def ++# define libc_hidden_builtin_def(name) \ ++ __hidden_ver1 (__strpbrk_ppc, __GI_strpbrk, __strpbrk_ppc); ++#endif ++ ++extern __typeof (strpbrk) __strpbrk_ppc attribute_hidden; ++ ++#include +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk.c +@@ -0,0 +1,31 @@ ++/* Multiple versions of strpbrk. PowerPC64 version. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef NOT_IN_libc ++# include ++# include ++# include "init-arch.h" ++ ++extern __typeof (strpbrk) __strpbrk_ppc attribute_hidden; ++extern __typeof (strpbrk) __strpbrk_power7 attribute_hidden; ++ ++libc_ifunc (strpbrk, ++ (hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strpbrk_power7 ++ : __strpbrk_ppc); ++#endif Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S =================================================================== --- /dev/null @@ -952,6 +1304,150 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn.c + ? __strspn_power7 + : __strspn_ppc); +#endif +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strcspn.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strcspn.S +@@ -0,0 +1,139 @@ ++/* Optimized strcspn implementation for PowerPC64. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* size_t [r3] strcspn (const char [r4] *s, const char [r5] *reject) */ ++ ++ .machine power7 ++EALIGN (strcspn, 4, 0) ++ CALL_MCOUNT 3 ++ ++ /* The idea to speed up the algorithm is to create a lookup table ++ for fast check if input character should be considered. For ASCII ++ or ISO-8859-X character sets it has 256 positions. */ ++ lbz r10,0(r4) ++ ++ /* First the table should be cleared and to avoid unaligned accesses ++ when using the VSX stores the table address is aligned to 16 ++ bytes. */ ++ xxlxor v0,v0,v0 ++ ++ /* PPC64 ELF ABI stack is aligned to 16 bytes. */ ++ addi r9,r1,-256 ++ ++ li r8,48 ++ li r5,16 ++ li r6,32 ++ cmpdi cr7,r10,0 /* reject[0] == '\0' ? */ ++ addi r12,r9,64 ++ /* Clear the table with 0 values */ ++ stxvw4x v0,r0,r9 ++ addi r11,r9,128 ++ addi r7,r9,192 ++ stxvw4x v0,r9,r5 ++ stxvw4x v0,r9,r6 ++ stxvw4x v0,r9,r8 ++ stxvw4x v0,r0,r12 ++ stxvw4x v0,r12,r5 ++ stxvw4x v0,r12,r6 ++ stxvw4x v0,r12,r8 ++ stxvw4x v0,r0,r11 ++ stxvw4x v0,r11,r5 ++ stxvw4x v0,r11,r6 ++ stxvw4x v0,r11,r8 ++ stxvw4x v0,r0,r7 ++ stxvw4x v0,r7,r5 ++ stxvw4x v0,r7,r6 ++ stxvw4x v0,r7,r8 ++ li r8,1 ++ beq cr7,L(finish_table) /* If reject[0] == '\0' skip */ ++ ++ /* Initialize the table as: ++ for (i=0; reject[i]; i++ ++ table[reject[i]]] = 1 */ ++ .p2align 4,,15 ++L(init_table): ++ stbx r8,r9,r10 ++ lbzu r10,1(r4) ++ cmpdi cr7,r10,0 /* If reject[0] == '\0' finish */ ++ bne cr7,L(init_table) ++L(finish_table): ++ /* set table[0] = 1 */ ++ li r10,1 ++ stb r10,0(r9) ++ li r10,0 ++ b L(mainloop) ++ ++ /* Unrool the loop 4 times and check using the table as: ++ i = 0; ++ while (1) ++ { ++ if (table[input[i++]] == 1) ++ return i - 1; ++ if (table[input[i++]] == 1) ++ return i - 1; ++ if (table[input[i++]] == 1) ++ return i - 1; ++ if (table[input[i++]] == 1) ++ return i - 1; ++ } */ ++ .p2align 4,,15 ++L(unroll): ++ lbz r8,1(r3) ++ addi r10,r10,4 ++ lbzx r8,r9,r8 ++ cmpwi r7,r8,1 ++ beq cr7,L(end) ++ lbz r8,2(r3) ++ addi r3,r3,4 ++ lbzx r8,r9,r8 ++ cmpwi cr7,r8,1 ++ beq cr7,L(end2) ++ lbz r8,3(r7) ++ lbzx r8,r9,r8 ++ cmpwi cr7,r8,1 ++ beq cr7,L(end3) ++L(mainloop): ++ lbz r8,0(r3) ++ mr r7,r3 ++ addi r6,r10,1 ++ addi r4,r10,2 ++ addi r5,r10,3 ++ lbzx r8,r9,8 ++ cmpwi cr7,r8,1 ++ bne cr7,L(unroll) ++ mr r3,r10 ++ blr ++ ++ .p2align 4,,15 ++L(end): ++ mr r3,r6 ++ blr ++ ++ .p2align 4,,15 ++L(end2): ++ mr r3,r4 ++ blr ++ ++ .p2align 4,,15 ++L(end3): ++ mr r3,r5 ++ blr ++END (strcspn) ++libc_hidden_builtin_def (strcspn) Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strncat.S =================================================================== --- /dev/null @@ -1179,6 +1675,159 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strncat.S + b L(nullTerminate) /* Now, finish catenation with + NULL termination. */ +END(STRNCAT) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strpbrk.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strpbrk.S +@@ -0,0 +1,148 @@ ++/* Optimized strpbrk implementation for PowerPC64/POWER7. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* char [r3] *strpbrk(const char [r4] *s, const char [r5] *accept) */ ++ ++ .machine power7 ++EALIGN (strpbrk, 4, 0) ++ CALL_MCOUNT 3 ++ ++ lbz r10,0(r4) ++ cmpdi cr7,r10,0 /* accept[0] == '\0' ? */ ++ beq cr7,L(nullfound) ++ ++ /* The idea to speed up the algorithm is to create a lookup table ++ for fast check if input character should be considered. For ASCII ++ or ISO-8859-X character sets it has 256 positions. */ ++ ++ /* First the table should be cleared and to avoid unaligned accesses ++ when using the VSX stores the table address is aligned to 16 ++ bytes. */ ++ xxlxor v0,v0,v0 ++ ++ /* PPC64 ELF ABI stack is aligned to 16 bytes */ ++ addi r9,r1,-256 ++ ++ li r5,16 ++ li r6,32 ++ li r8,48 ++ addi r12,r9,64 ++ /* Clear the table with 0 values */ ++ stxvw4x v0,r0,r9 ++ addi r11,r9,128 ++ addi r7,r9,192 ++ stxvw4x v0,r9,r5 ++ li r0,1 ++ stxvw4x v0,r9,r6 ++ stxvw4x v0,r9,r8 ++ stxvw4x v0,r0,r12 ++ stxvw4x v0,r12,r5 ++ stxvw4x v0,r12,r6 ++ stxvw4x v0,r12,r8 ++ stxvw4x v0,r0,r11 ++ stxvw4x v0,r11,r5 ++ stxvw4x v0,r11,r6 ++ stxvw4x v0,r11,r8 ++ stxvw4x v0,r0,r7 ++ stxvw4x v0,r7,r5 ++ stxvw4x v0,r7,r6 ++ stxvw4x v0,r7,r8 ++ ++ /* Initialize the table as: ++ for (i=0; accept[i]; i++ ++ table[accept[i]]] = 1 */ ++ .p2align 4,,15 ++L(init_table): ++ stbx r0,r9,r10 ++ lbzu r10,1(r4) ++ cmpdi r0,r10,0 ++ bne cr0,L(init_table) ++L(finish_table): ++ /* set table[0] = 1 */ ++ li r4,1 ++ stb r4,0(r9) ++ b L(mainloop) ++ ++ /* Unrool the loop 4 times and check using the table as: ++ i = 0; ++ while (1) ++ { ++ if (table[input[i++]] == 1) ++ return (s[i -1] ? s + i - 1: NULL); ++ if (table[input[i++]] == 1) ++ return (s[i -1] ? s + i - 1: NULL); ++ if (table[input[i++]] == 1) ++ return (s[i -1] ? s + i - 1: NULL); ++ if (table[input[i++]] == 1) ++ return (s[i -1] ? s + i - 1: NULL); ++ } */ ++ .p2align 4 ++L(unroll): ++ lbz r0,1(r3) ++ lbzx r8,r9,r0 ++ cmpwi cr6,r8,1 ++ beq cr6,L(checkend2) ++ lbz r10,2(r3) ++ lbzx r4,r9,r10 ++ cmpwi cr7,r4,1 ++ beq cr7,L(checkend3) ++ lbz r12,3(r3) ++ addi r3,r3,4 ++ lbzx r11,r9,r12 ++ cmpwi cr0,r11,1 ++ beq cr0,L(checkend) ++L(mainloop): ++ lbz r12,0(r3) ++ addi r11,r3,1 ++ addi r5,r3,2 ++ addi r7,r3,3 ++ lbzx r6,r9,r12 ++ cmpwi cr1,r6,1 ++ bne cr1,L(unroll) ++ cmpdi cr0,r12,0 ++ beq cr0,L(nullfound) ++L(end): ++ blr ++ ++ .p2align 4 ++L(checkend): ++ cmpdi cr1,r12,0 ++ mr r3,r7 ++ bne cr1,L(end) ++L(nullfound): ++ /* return NULL */ ++ li 3,0 ++ blr ++ ++ .p2align 4 ++L(checkend2): ++ cmpdi cr7,r0,0 ++ mr r3,r11 ++ beq cr7,L(nullfound) ++ blr ++ ++ .p2align 4 ++L(checkend3): ++ cmpdi cr6,r10,0 ++ mr r3,r5 ++ beq cr6,L(nullfound) ++ blr ++END (strpbrk) ++libc_hidden_builtin_def (strpbrk) Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strrchr.S =================================================================== --- /dev/null diff --git a/resolv-dont-ignore-second-answer.patch b/resolv-dont-ignore-second-answer.patch new file mode 100644 index 0000000..a540f22 --- /dev/null +++ b/resolv-dont-ignore-second-answer.patch @@ -0,0 +1,33 @@ +Don't ignore second answer from nameserver if the first one was empty (BZ #13651) + +Index: glibc-2.19/resolv/res_query.c +=================================================================== +--- glibc-2.19.orig/resolv/res_query.c ++++ glibc-2.19/resolv/res_query.c +@@ -382,7 +382,7 @@ __libc_res_nsearch(res_state statp, + answer, anslen, answerp, + answerp2, nanswerp2, resplen2, + answerp2_malloced); +- if (ret > 0 || trailing_dot) ++ if (ret > 0 || (ret == 0 && *resplen2 > 0) || trailing_dot) + return (ret); + saved_herrno = h_errno; + tried_as_is++; +@@ -422,7 +422,7 @@ __libc_res_nsearch(res_state statp, + answer, anslen, answerp, + answerp2, nanswerp2, + resplen2, answerp2_malloced); +- if (ret > 0) ++ if (ret > 0 || (ret == 0 && *resplen2 > 0)) + return (ret); + + if (answerp && *answerp != answer) { +@@ -491,7 +491,7 @@ __libc_res_nsearch(res_state statp, + answer, anslen, answerp, + answerp2, nanswerp2, resplen2, + answerp2_malloced); +- if (ret > 0) ++ if (ret > 0 || (ret == 0 && *resplen2 > 0)) + return (ret); + } + From a132d45b9226d00e2cb361b84556f0a277e6be382bb86aab79b6ce6ced705d0b Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 8 Apr 2014 15:05:49 +0000 Subject: [PATCH 163/204] Accepting request 229287 from Base:System - pthread-mutex-destroy.patch: Remove - pthread-mutex-trylock-elision.patch: Properly handle forced elision in pthread_mutex_trylock (bnc#865968, BZ #16657) (forwarded request 229286 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/229287 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=171 --- _constraints | 14 ++ aarch64-setcontext.patch | 225 ++++++++++++++++++++++++++++ check-pf-alloca.patch | 206 ++++++++++++++++--------- glibc-2.14-crypt.diff | 142 +++++++++--------- glibc-testsuite.changes | 50 +++++++ glibc-testsuite.spec | 12 ++ glibc-utils.changes | 50 +++++++ glibc-utils.spec | 12 ++ glibc.changes | 50 +++++++ glibc.spec | 12 ++ nextafterl-ibm-ldouble.patch | 116 ++++++++++++++ nscd.service | 3 + powerpc-opt-power8.patch | 143 +++++++++++++++++- ppc64-copysign.patch | 23 +++ pthread-mutex-trylock-elision.patch | 53 +++++++ 15 files changed, 961 insertions(+), 150 deletions(-) create mode 100644 _constraints create mode 100644 aarch64-setcontext.patch create mode 100644 nextafterl-ibm-ldouble.patch create mode 100644 ppc64-copysign.patch create mode 100644 pthread-mutex-trylock-elision.patch diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..03d38d4 --- /dev/null +++ b/_constraints @@ -0,0 +1,14 @@ + + + + + glibc-testsuite + + + + 1500 + + + xen + + diff --git a/aarch64-setcontext.patch b/aarch64-setcontext.patch new file mode 100644 index 0000000..9997ff5 --- /dev/null +++ b/aarch64-setcontext.patch @@ -0,0 +1,225 @@ +From 4dc40de1ed58a1de5d960e59f20a04191f6820c9 Mon Sep 17 00:00:00 2001 +From: Will Newton +Date: Wed, 12 Mar 2014 16:14:51 +0000 +Subject: [PATCH 1/3] aarch64: Re-implement setcontext without rt_sigreturn + syscall + +The current implementation of setcontext uses rt_sigreturn to restore +the contents of registers. This contrasts with the way most other +architectures implement setcontext: + + powerpc64, mips, tile: + + Call rt_sigreturn if context was created by a call to a signal handler, + otherwise restore in user code. + + powerpc32: + + Call swapcontext system call and don't call sigreturn or rt_sigreturn. + + x86_64, sparc, hppa, sh, ia64, m68k, s390, arm: + + Only support restoring "synchronous" contexts, that is contexts + created by getcontext, and restoring in user code and don't call + sigreturn or rt_sigreturn. + + alpha: + + Call sigreturn (but not rt_sigreturn) in all cases to do the restore. + +The text of the setcontext manpage suggests that the requirement to be +able to restore a signal handler created context has been dropped from +SUSv2: + + If the context was obtained by a call to a signal handler, then old + standard text says that "program execution continues with the program + instruction following the instruction interrupted by the signal". + However, this sentence was removed in SUSv2, and the present verdict + is "the result is unspecified". + +Implementing setcontext by calling rt_sigreturn unconditionally causes +problems when used with sigaltstack as in BZ #16629. On this basis it +seems that aarch64 is broken and that new ports should only support +restoring contexts created with getcontext and do not need to call +rt_sigreturn at all. + +This patch re-implements the aarch64 setcontext function to restore +the context in user code in a similar manner to x86_64 and other ports. + +ChangeLog: + +2014-03-13 Will Newton + + [BZ #16629] + * sysdeps/unix/sysv/linux/aarch64/setcontext.S (__setcontext): + Re-implement to restore registers in user code and avoid + rt_sigreturn system call. +--- + sysdeps/unix/sysv/linux/aarch64/setcontext.S | 147 +++++++++++++++++---------- + 1 file changed, 92 insertions(+), 55 deletions(-) + +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S +=================================================================== +--- glibc-2.19.orig/ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S +@@ -22,68 +22,105 @@ + #include "ucontext_i.h" + #include "ucontext-internal.h" + +-/* int setcontext (const ucontext_t *ucp) */ ++/* int __setcontext (const ucontext_t *ucp) + +- .text +- +-ENTRY(__setcontext) ++ Restores the machine context in UCP and thereby resumes execution ++ in that context. + +- /* Create a signal frame on the stack: ++ This implementation is intended to be used for *synchronous* context ++ switches only. Therefore, it does not have to restore anything ++ other than the PRESERVED state. */ + +- fp +- lr +- ... +- sp-> rt_sigframe +- */ +- +- stp x29, x30, [sp, -16]! +- cfi_adjust_cfa_offset (16) +- cfi_rel_offset (x29, 0) +- cfi_rel_offset (x30, 8) +- +- mov x29, sp +- cfi_def_cfa_register (x29) +- +- /* Allocate space for the sigcontext. */ +- mov w3, #((RT_SIGFRAME_SIZE + SP_ALIGN_SIZE) & SP_ALIGN_MASK) +- sub sp, sp, x3 +- +- /* Compute the base address of the ucontext structure. */ +- add x1, sp, #RT_SIGFRAME_UCONTEXT +- +- /* Only ucontext is required in the frame, *copy* it in. */ +- +-#if UCONTEXT_SIZE % 16 +-#error The implementation of setcontext.S assumes sizeof(ucontext_t) % 16 == 0 +-#endif +- +- mov x2, #UCONTEXT_SIZE / 16 +-0: +- ldp x3, x4, [x0], #16 +- stp x3, x4, [x1], #16 +- sub x2, x2, 1 +- cbnz x2, 0b ++ .text + +- /* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe. */ +- mov x8, SYS_ify (rt_sigreturn) ++ENTRY (__setcontext) ++ /* Save a copy of UCP. */ ++ mov x9, x0 ++ ++ /* Set the signal mask with ++ rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */ ++ mov x0, #SIG_SETMASK ++ add x1, x9, #UCONTEXT_SIGMASK ++ mov x2, #0 ++ mov x3, #_NSIG8 ++ mov x8, SYS_ify (rt_sigprocmask) + svc 0 +- +- /* Ooops we failed. Recover the stack */ +- +- mov sp, x29 +- cfi_def_cfa_register (sp) +- +- ldp x29, x30, [sp], 16 +- cfi_adjust_cfa_offset (16) +- cfi_restore (x29) +- cfi_restore (x30) +- b C_SYMBOL_NAME(__syscall_error) +- ++ cbz x0, 1f ++ b C_SYMBOL_NAME (__syscall_error) ++1: ++ /* Restore the general purpose registers. */ ++ mov x0, x9 ++ cfi_def_cfa (x0, 0) ++ cfi_offset (x18, oX0 + 18 * SZREG) ++ cfi_offset (x19, oX0 + 19 * SZREG) ++ cfi_offset (x20, oX0 + 20 * SZREG) ++ cfi_offset (x21, oX0 + 21 * SZREG) ++ cfi_offset (x22, oX0 + 22 * SZREG) ++ cfi_offset (x23, oX0 + 23 * SZREG) ++ cfi_offset (x24, oX0 + 24 * SZREG) ++ cfi_offset (x25, oX0 + 25 * SZREG) ++ cfi_offset (x26, oX0 + 26 * SZREG) ++ cfi_offset (x27, oX0 + 27 * SZREG) ++ cfi_offset (x28, oX0 + 28 * SZREG) ++ cfi_offset (x29, oX0 + 29 * SZREG) ++ cfi_offset (x30, oX0 + 30 * SZREG) ++ ++ cfi_offset ( d8, oV0 + 8 * SZVREG) ++ cfi_offset ( d9, oV0 + 9 * SZVREG) ++ cfi_offset (d10, oV0 + 10 * SZVREG) ++ cfi_offset (d11, oV0 + 11 * SZVREG) ++ cfi_offset (d12, oV0 + 12 * SZVREG) ++ cfi_offset (d13, oV0 + 13 * SZVREG) ++ cfi_offset (d14, oV0 + 14 * SZVREG) ++ cfi_offset (d15, oV0 + 15 * SZVREG) ++ ldp x18, x19, [x0, oX0 + 18 * SZREG] ++ ldp x20, x21, [x0, oX0 + 20 * SZREG] ++ ldp x22, x23, [x0, oX0 + 22 * SZREG] ++ ldp x24, x25, [x0, oX0 + 24 * SZREG] ++ ldp x26, x27, [x0, oX0 + 26 * SZREG] ++ ldp x28, x29, [x0, oX0 + 28 * SZREG] ++ ldr x30, [x0, oX0 + 30 * SZREG] ++ ldr x2, [x0, oSP] ++ mov sp, x2 ++ ++ /* Check for FP SIMD context. */ ++ add x2, x0, #oEXTENSION ++ ++ mov w3, #(FPSIMD_MAGIC & 0xffff) ++ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16 ++ ldr w1, [x2, #oHEAD + oMAGIC] ++ cmp w1, w3 ++ b.ne 2f ++ ++ /* Restore the FP SIMD context. */ ++ add x3, x2, #oV0 + 8 * SZVREG ++ ldp d8, d9, [x3], #2 * SZVREG ++ ldp d10, d11, [x3], #2 * SZVREG ++ ldp d12, d13, [x3], #2 * SZVREG ++ ldp d14, d15, [x3], #2 * SZVREG ++ ++ add x3, x2, oFPSR ++ ++ ldr w4, [x3] ++ msr fpsr, x4 ++ ++ ldr w4, [x3, oFPCR - oFPSR] ++ msr fpcr, x4 ++ ++2: ++ ldr x16, [x0, oPC] ++ /* Restore arg registers. */ ++ ldp x2, x3, [x0, oX0 + 2 * SZREG] ++ ldp x4, x5, [x0, oX0 + 4 * SZREG] ++ ldp x6, x7, [x0, oX0 + 6 * SZREG] ++ ldp x0, x1, [x0, oX0 + 0 * SZREG] ++ /* Jump to the new pc value. */ ++ br x16 + PSEUDO_END (__setcontext) + weak_alias (__setcontext, setcontext) + +-ENTRY(__startcontext) ++ENTRY (__startcontext) + mov x0, x19 + cbnz x0, __setcontext +-1: b HIDDEN_JUMPTARGET(_exit) +-END(__startcontext) ++1: b HIDDEN_JUMPTARGET (_exit) ++END (__startcontext) diff --git a/check-pf-alloca.patch b/check-pf-alloca.patch index 8e4e82b..83709a6 100644 --- a/check-pf-alloca.patch +++ b/check-pf-alloca.patch @@ -9,95 +9,155 @@ Index: glibc-2.19/sysdeps/unix/sysv/linux/check_pf.c =================================================================== --- glibc-2.19.orig/sysdeps/unix/sysv/linux/check_pf.c +++ glibc-2.19/sysdeps/unix/sysv/linux/check_pf.c -@@ -139,9 +139,10 @@ make_request (int fd, pid_t pid) - #endif - bool use_malloc = false; - char *buf; -+ size_t alloca_used = 0; - - if (__libc_use_alloca (buf_size)) -- buf = alloca (buf_size); -+ buf = alloca_account (buf_size, alloca_used); - else - { - buf = malloc (buf_size); -@@ -163,6 +164,7 @@ make_request (int fd, pid_t pid) +@@ -106,6 +106,11 @@ cache_valid_p (void) + static struct cached_data * + make_request (int fd, pid_t pid) + { ++ struct cached_data *result = NULL; ++ ++ size_t result_len = 0; ++ size_t result_cap = 32; ++ + struct req { - struct in6addrinfo info; - struct in6ailist *next; -+ bool use_malloc; - } *in6ailist = NULL; - size_t in6ailistlen = 0; + struct nlmsghdr nlh; +@@ -137,19 +142,9 @@ make_request (int fd, pid_t pid) + #else + const size_t buf_size = __getpagesize (); + #endif +- bool use_malloc = false; + char *buf; + +- if (__libc_use_alloca (buf_size)) +- buf = alloca (buf_size); +- else +- { +- buf = malloc (buf_size); +- if (buf != NULL) +- use_malloc = true; +- else +- goto out_fail; +- } ++ buf = alloca (buf_size); + + struct iovec iov = { buf, buf_size }; + +@@ -159,12 +154,7 @@ make_request (int fd, pid_t pid) + goto out_fail; + + bool done = false; +- struct in6ailist +- { +- struct in6addrinfo info; +- struct in6ailist *next; +- } *in6ailist = NULL; +- size_t in6ailistlen = 0; ++ bool seen_ipv4 = false; -@@ -180,10 +182,10 @@ make_request (int fd, pid_t pid) + bool seen_ipv6 = false; - ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0)); - if (read_len < 0) -- goto out_fail; -+ goto out_fail2; - - if (msg.msg_flags & MSG_TRUNC) -- goto out_fail; -+ goto out_fail2; - - struct nlmsghdr *nlmh; - for (nlmh = (struct nlmsghdr *) buf; -@@ -239,7 +241,19 @@ make_request (int fd, pid_t pid) +@@ -239,28 +229,36 @@ make_request (int fd, pid_t pid) } } - struct in6ailist *newp = alloca (sizeof (*newp)); -+ struct in6ailist *newp; -+ if (__libc_use_alloca (alloca_used + sizeof (*newp))) +- newp->info.flags = (((ifam->ifa_flags +- & (IFA_F_DEPRECATED +- | IFA_F_OPTIMISTIC)) +- ? in6ai_deprecated : 0) +- | ((ifam->ifa_flags +- & IFA_F_HOMEADDRESS) +- ? in6ai_homeaddress : 0)); +- newp->info.prefixlen = ifam->ifa_prefixlen; +- newp->info.index = ifam->ifa_index; ++ if (result_len == 0 || result_len == result_cap) + { -+ newp = alloca_account (sizeof (*newp), alloca_used); -+ newp->use_malloc = false; ++ result_cap = 2 * result_cap; ++ result = realloc (result, sizeof (*result) ++ + result_cap * sizeof (struct in6addrinfo)); + } -+ else -+ { -+ newp = malloc (sizeof (*newp)); -+ if (newp == NULL) -+ goto out_fail2; -+ newp->use_malloc = true; -+ } - newp->info.flags = (((ifam->ifa_flags - & (IFA_F_DEPRECATED - | IFA_F_OPTIMISTIC)) -@@ -275,7 +289,7 @@ make_request (int fd, pid_t pid) - result = malloc (sizeof (*result) - + in6ailistlen * sizeof (struct in6addrinfo)); - if (result == NULL) -- goto out_fail; -+ goto out_fail2; ++ ++ if (!result) ++ goto out_fail; ++ ++ struct in6addrinfo *info = &result->in6ai[result_len++]; ++ ++ info->flags = (((ifam->ifa_flags ++ & (IFA_F_DEPRECATED ++ | IFA_F_OPTIMISTIC)) ++ ? in6ai_deprecated : 0) ++ | ((ifam->ifa_flags ++ & IFA_F_HOMEADDRESS) ++ ? in6ai_homeaddress : 0)); ++ info->prefixlen = ifam->ifa_prefixlen; ++ info->index = ifam->ifa_index; + if (ifam->ifa_family == AF_INET) + { +- newp->info.addr[0] = 0; +- newp->info.addr[1] = 0; +- newp->info.addr[2] = htonl (0xffff); +- newp->info.addr[3] = *(const in_addr_t *) address; ++ info->addr[0] = 0; ++ info->addr[1] = 0; ++ info->addr[2] = htonl (0xffff); ++ info->addr[3] = *(const in_addr_t *) address; + } + else +- memcpy (newp->info.addr, address, sizeof (newp->info.addr)); +- newp->next = in6ailist; +- in6ailist = newp; +- ++in6ailistlen; ++ memcpy (info->addr, address, sizeof (info->addr)); + } + else if (nlmh->nlmsg_type == NLMSG_DONE) + /* We found the end, leave the loop. */ +@@ -269,42 +267,29 @@ make_request (int fd, pid_t pid) + } + while (! done); +- struct cached_data *result; +- if (seen_ipv6 && in6ailist != NULL) ++ if (seen_ipv6 && result != NULL) + { +- result = malloc (sizeof (*result) +- + in6ailistlen * sizeof (struct in6addrinfo)); +- if (result == NULL) +- goto out_fail; +- result->timestamp = get_nl_timestamp (); result->usecnt = 2; -@@ -286,7 +300,10 @@ make_request (int fd, pid_t pid) - do - { - result->in6ai[--in6ailistlen] = in6ailist->info; + result->seen_ipv4 = seen_ipv4; + result->seen_ipv6 = true; +- result->in6ailen = in6ailistlen; +- +- do +- { +- result->in6ai[--in6ailistlen] = in6ailist->info; - in6ailist = in6ailist->next; -+ struct in6ailist *next = in6ailist->next; -+ if (in6ailist->use_malloc) -+ free (in6ailist); -+ in6ailist = next; - } - while (in6ailist != NULL); +- } +- while (in6ailist != NULL); ++ result->in6ailen = result_len; } -@@ -302,7 +319,15 @@ make_request (int fd, pid_t pid) - free (buf); + else + { ++ free (result); ++ + atomic_add (&noai6ai_cached.usecnt, 2); + noai6ai_cached.seen_ipv4 = seen_ipv4; + noai6ai_cached.seen_ipv6 = seen_ipv6; + result = &noai6ai_cached; + } + +- if (use_malloc) +- free (buf); return result; -out_fail: -+ out_fail2: -+ while (in6ailist != NULL) -+ { -+ struct in6ailist *next = in6ailist->next; -+ if (in6ailist->use_malloc) -+ free (in6ailist); -+ in6ailist = next; -+ } +- if (use_malloc) +- free (buf); + out_fail: - if (use_malloc) - free (buf); ++ ++ free (result); return NULL; + } + diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 64cb5a3..ee1d657 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,7 +1,7 @@ -Index: glibc-2.18.90/Versions.def +Index: glibc-2.19/Versions.def =================================================================== ---- glibc-2.18.90.orig/Versions.def -+++ glibc-2.18.90/Versions.def +--- glibc-2.19.orig/Versions.def ++++ glibc-2.19/Versions.def @@ -45,6 +45,9 @@ libc { libcrypt { GLIBC_2.0 @@ -12,10 +12,10 @@ Index: glibc-2.18.90/Versions.def libdl { GLIBC_2.0 GLIBC_2.1 -Index: glibc-2.18.90/crypt/Makefile +Index: glibc-2.19/crypt/Makefile =================================================================== ---- glibc-2.18.90.orig/crypt/Makefile -+++ glibc-2.18.90/crypt/Makefile +--- glibc-2.19.orig/crypt/Makefile ++++ glibc-2.19/crypt/Makefile @@ -21,14 +21,18 @@ subdir := crypt @@ -37,10 +37,10 @@ Index: glibc-2.18.90/crypt/Makefile include ../Makeconfig -Index: glibc-2.18.90/crypt/Versions +Index: glibc-2.19/crypt/Versions =================================================================== ---- glibc-2.18.90.orig/crypt/Versions -+++ glibc-2.18.90/crypt/Versions +--- glibc-2.19.orig/crypt/Versions ++++ glibc-2.19/crypt/Versions @@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } @@ -50,10 +50,10 @@ Index: glibc-2.18.90/crypt/Versions + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } +} -Index: glibc-2.18.90/crypt/crypt-entry.c +Index: glibc-2.19/crypt/crypt-entry.c =================================================================== ---- glibc-2.18.90.orig/crypt/crypt-entry.c -+++ glibc-2.18.90/crypt/crypt-entry.c +--- glibc-2.19.orig/crypt/crypt-entry.c ++++ glibc-2.19/crypt/crypt-entry.c @@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; */ @@ -76,140 +76,130 @@ Index: glibc-2.18.90/crypt/crypt-entry.c } #endif +#endif -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist +Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist ++++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist +Index: glibc-2.19/shlib-versions =================================================================== ---- /dev/null -+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.18.90/shlib-versions -=================================================================== ---- glibc-2.18.90.orig/shlib-versions -+++ glibc-2.18.90/shlib-versions +--- glibc-2.19.orig/shlib-versions ++++ glibc-2.19/shlib-versions @@ -93,6 +93,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ # This defines the shared library version numbers we will install. @@ -218,110 +208,120 @@ Index: glibc-2.18.90/shlib-versions # The gross patch for programs assuming broken locale implementations. sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +Index: glibc-2.19/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 8fa09da..a98fc17 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de + +- pthread-mutex-destroy.patch: Remove +- pthread-mutex-trylock-elision.patch: Properly handle forced elision in + pthread_mutex_trylock (bnc#865968, BZ #16657) + +------------------------------------------------------------------- +Thu Apr 3 07:32:24 UTC 2014 - schwab@suse.de + +- nextafterl-ibm-ldouble.patch: Correct IBM long double nextafterl + (bnc#871637, BZ #16739) + +------------------------------------------------------------------- +Tue Apr 1 13:33:24 UTC 2014 - schwab@suse.de + +- Readd dependency on sysvinit.target to nscd.service (bnc#868422) +- Make the nscd service part of the nss-lookup and nss-user-lookup targets + (bnc#871386) +- Move _constraints back to main package and update it + +------------------------------------------------------------------- +Tue Apr 1 07:55:19 UTC 2014 - schwab@suse.de + +- ppc64-copysign.patch: Fix ppc64le copysign overwriting parent stack + frame (BZ #16786) +- aarch64-setcontext.patch: Fix aarch64 setcontext clobbering alternate + signal stack (BZ #16629) + +------------------------------------------------------------------- +Mon Mar 31 13:22:56 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: readd POWER8 implementation of isnan, + isinf, finite with fix for little endian (bnc#871353) +- pthread-mutex-destroy.patch: Skip checks in pthread_mutex_destroy when + doing elision (bnc#865968) + +------------------------------------------------------------------- +Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan, + isinf, finite; fix missing static symbols +- glibc-2.14-crypt.diff: update for file renaming + +------------------------------------------------------------------- +Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de + +- check-pf-alloca.patch: remove use of alloca while collecting interface + addresses + ------------------------------------------------------------------- Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index b2ffa52..c99df16 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -244,6 +244,10 @@ Patch1004: powerpc-opt-power8.patch Patch1005: check-pf-alloca.patch # PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd Patch1006: getaddrinfo-uninit-result.patch +# PATCH-FIX-UPSTREAM Fix ppc64le copysign overwriting parent stack frame (BZ #16786) +Patch1007: ppc64-copysign.patch +# PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) +Patch1008: nextafterl-ibm-ldouble.patch ### # Patches awaiting upstream approval @@ -256,6 +260,10 @@ Patch2001: resolv-dont-ignore-second-answer.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch +# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) +Patch2004: pthread-mutex-trylock-elision.patch +# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) +Patch2005: aarch64-setcontext.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -463,11 +471,15 @@ rm nscd/s-stamp %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 +%patch2004 -p1 +%patch2005 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 8fa09da..a98fc17 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de + +- pthread-mutex-destroy.patch: Remove +- pthread-mutex-trylock-elision.patch: Properly handle forced elision in + pthread_mutex_trylock (bnc#865968, BZ #16657) + +------------------------------------------------------------------- +Thu Apr 3 07:32:24 UTC 2014 - schwab@suse.de + +- nextafterl-ibm-ldouble.patch: Correct IBM long double nextafterl + (bnc#871637, BZ #16739) + +------------------------------------------------------------------- +Tue Apr 1 13:33:24 UTC 2014 - schwab@suse.de + +- Readd dependency on sysvinit.target to nscd.service (bnc#868422) +- Make the nscd service part of the nss-lookup and nss-user-lookup targets + (bnc#871386) +- Move _constraints back to main package and update it + +------------------------------------------------------------------- +Tue Apr 1 07:55:19 UTC 2014 - schwab@suse.de + +- ppc64-copysign.patch: Fix ppc64le copysign overwriting parent stack + frame (BZ #16786) +- aarch64-setcontext.patch: Fix aarch64 setcontext clobbering alternate + signal stack (BZ #16629) + +------------------------------------------------------------------- +Mon Mar 31 13:22:56 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: readd POWER8 implementation of isnan, + isinf, finite with fix for little endian (bnc#871353) +- pthread-mutex-destroy.patch: Skip checks in pthread_mutex_destroy when + doing elision (bnc#865968) + +------------------------------------------------------------------- +Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan, + isinf, finite; fix missing static symbols +- glibc-2.14-crypt.diff: update for file renaming + +------------------------------------------------------------------- +Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de + +- check-pf-alloca.patch: remove use of alloca while collecting interface + addresses + ------------------------------------------------------------------- Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 9b364d1..2c981c9 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -243,6 +243,10 @@ Patch1004: powerpc-opt-power8.patch Patch1005: check-pf-alloca.patch # PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd Patch1006: getaddrinfo-uninit-result.patch +# PATCH-FIX-UPSTREAM Fix ppc64le copysign overwriting parent stack frame (BZ #16786) +Patch1007: ppc64-copysign.patch +# PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) +Patch1008: nextafterl-ibm-ldouble.patch ### # Patches awaiting upstream approval @@ -255,6 +259,10 @@ Patch2001: resolv-dont-ignore-second-answer.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch +# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) +Patch2004: pthread-mutex-trylock-elision.patch +# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) +Patch2005: aarch64-setcontext.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -463,11 +471,15 @@ rm nscd/s-stamp %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 +%patch2004 -p1 +%patch2005 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 8fa09da..a98fc17 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de + +- pthread-mutex-destroy.patch: Remove +- pthread-mutex-trylock-elision.patch: Properly handle forced elision in + pthread_mutex_trylock (bnc#865968, BZ #16657) + +------------------------------------------------------------------- +Thu Apr 3 07:32:24 UTC 2014 - schwab@suse.de + +- nextafterl-ibm-ldouble.patch: Correct IBM long double nextafterl + (bnc#871637, BZ #16739) + +------------------------------------------------------------------- +Tue Apr 1 13:33:24 UTC 2014 - schwab@suse.de + +- Readd dependency on sysvinit.target to nscd.service (bnc#868422) +- Make the nscd service part of the nss-lookup and nss-user-lookup targets + (bnc#871386) +- Move _constraints back to main package and update it + +------------------------------------------------------------------- +Tue Apr 1 07:55:19 UTC 2014 - schwab@suse.de + +- ppc64-copysign.patch: Fix ppc64le copysign overwriting parent stack + frame (BZ #16786) +- aarch64-setcontext.patch: Fix aarch64 setcontext clobbering alternate + signal stack (BZ #16629) + +------------------------------------------------------------------- +Mon Mar 31 13:22:56 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: readd POWER8 implementation of isnan, + isinf, finite with fix for little endian (bnc#871353) +- pthread-mutex-destroy.patch: Skip checks in pthread_mutex_destroy when + doing elision (bnc#865968) + +------------------------------------------------------------------- +Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de + +- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan, + isinf, finite; fix missing static symbols +- glibc-2.14-crypt.diff: update for file renaming + +------------------------------------------------------------------- +Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de + +- check-pf-alloca.patch: remove use of alloca while collecting interface + addresses + ------------------------------------------------------------------- Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index ae76ee6..3ea5f0c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -244,6 +244,10 @@ Patch1004: powerpc-opt-power8.patch Patch1005: check-pf-alloca.patch # PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd Patch1006: getaddrinfo-uninit-result.patch +# PATCH-FIX-UPSTREAM Fix ppc64le copysign overwriting parent stack frame (BZ #16786) +Patch1007: ppc64-copysign.patch +# PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) +Patch1008: nextafterl-ibm-ldouble.patch ### # Patches awaiting upstream approval @@ -256,6 +260,10 @@ Patch2001: resolv-dont-ignore-second-answer.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch +# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) +Patch2004: pthread-mutex-trylock-elision.patch +# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) +Patch2005: aarch64-setcontext.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -463,11 +471,15 @@ rm nscd/s-stamp %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 +%patch2004 -p1 +%patch2005 -p1 %patch3000 diff --git a/nextafterl-ibm-ldouble.patch b/nextafterl-ibm-ldouble.patch new file mode 100644 index 0000000..c5d107f --- /dev/null +++ b/nextafterl-ibm-ldouble.patch @@ -0,0 +1,116 @@ +2014-04-02 Alan Modra + + [BZ #16739] + * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Correct + output when value is near a power of two. Use int64_t for lx and + remove casts. Use decimal rather than hex exponent constants. + Don't use long double multiplication when double will suffice. + * math/libm-test.inc (nextafter_test_data): Add tests. + +Index: glibc-2.19/math/libm-test.inc +=================================================================== +--- glibc-2.19.orig/math/libm-test.inc ++++ glibc-2.19/math/libm-test.inc +@@ -10528,6 +10528,14 @@ static const struct test_ff_f_data nexta + // XXX Enable once gcc is fixed. + //TEST_ff_f (nextafter, 0x0.00000040000000000000p-16385L, -0.1L, 0x0.0000003ffffffff00000p-16385L), + #endif ++#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106 ++ TEST_ff_f (nextafter, 1.0L, -10.0L, 1.0L-0x1p-106L, NO_EXCEPTION), ++ TEST_ff_f (nextafter, 1.0L, 10.0L, 1.0L+0x1p-105L, NO_EXCEPTION), ++ TEST_ff_f (nextafter, 1.0L-0x1p-106L, 10.0L, 1.0L, NO_EXCEPTION), ++ TEST_ff_f (nextafter, -1.0L, -10.0L, -1.0L-0x1p-105L, NO_EXCEPTION), ++ TEST_ff_f (nextafter, -1.0L, 10.0L, -1.0L+0x1p-106L, NO_EXCEPTION), ++ TEST_ff_f (nextafter, -1.0L+0x1p-106L, -10.0L, -1.0L, NO_EXCEPTION), ++#endif + + /* XXX We need the hexadecimal FP number representation here for further + tests. */ +Index: glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c +=================================================================== +--- glibc-2.19.orig/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c ++++ glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c +@@ -30,8 +30,7 @@ static char rcsid[] = "$NetBSD: $"; + + long double __nextafterl(long double x, long double y) + { +- int64_t hx,hy,ihx,ihy; +- uint64_t lx; ++ int64_t hx, hy, ihx, ihy, lx; + double xhi, xlo, yhi; + + ldbl_unpack (x, &xhi, &xlo); +@@ -76,19 +75,28 @@ long double __nextafterl(long double x, + u = math_opt_barrier (x); + x -= __LDBL_DENORM_MIN__; + if (ihx < 0x0360000000000000LL +- || (hx > 0 && (int64_t) lx <= 0) +- || (hx < 0 && (int64_t) lx > 1)) { ++ || (hx > 0 && lx <= 0) ++ || (hx < 0 && lx > 1)) { + u = u * u; + math_force_eval (u); /* raise underflow flag */ + } + return x; + } +- if (ihx < 0x06a0000000000000LL) { /* ulp will denormal */ +- INSERT_WORDS64 (yhi, hx & (0x7ffLL<<52)); +- u = yhi; +- u *= 0x1.0000000000000p-105L; ++ /* If the high double is an exact power of two and the low ++ double is the opposite sign, then 1ulp is one less than ++ what we might determine from the high double. Similarly ++ if X is an exact power of two, and positive, because ++ making it a little smaller will result in the exponent ++ decreasing by one and normalisation of the mantissa. */ ++ if ((hx & 0x000fffffffffffffLL) == 0 ++ && ((lx != 0 && (hx ^ lx) < 0) ++ || (lx == 0 && hx >= 0))) ++ ihx -= 1LL << 52; ++ if (ihx < (106LL << 52)) { /* ulp will denormal */ ++ INSERT_WORDS64 (yhi, ihx & (0x7ffLL<<52)); ++ u = yhi * 0x1p-105; + } else { +- INSERT_WORDS64 (yhi, (hx & (0x7ffLL<<52))-(0x069LL<<52)); ++ INSERT_WORDS64 (yhi, (ihx & (0x7ffLL<<52))-(105LL<<52)); + u = yhi; + } + return x - u; +@@ -103,8 +111,8 @@ long double __nextafterl(long double x, + u = math_opt_barrier (x); + x += __LDBL_DENORM_MIN__; + if (ihx < 0x0360000000000000LL +- || (hx > 0 && (int64_t) lx < 0 && lx != 0x8000000000000001LL) +- || (hx < 0 && (int64_t) lx >= 0)) { ++ || (hx > 0 && lx < 0 && lx != 0x8000000000000001LL) ++ || (hx < 0 && lx >= 0)) { + u = u * u; + math_force_eval (u); /* raise underflow flag */ + } +@@ -112,12 +120,21 @@ long double __nextafterl(long double x, + x = -0.0L; + return x; + } +- if (ihx < 0x06a0000000000000LL) { /* ulp will denormal */ +- INSERT_WORDS64 (yhi, hx & (0x7ffLL<<52)); +- u = yhi; +- u *= 0x1.0000000000000p-105L; ++ /* If the high double is an exact power of two and the low ++ double is the opposite sign, then 1ulp is one less than ++ what we might determine from the high double. Similarly ++ if X is an exact power of two, and negative, because ++ making it a little larger will result in the exponent ++ decreasing by one and normalisation of the mantissa. */ ++ if ((hx & 0x000fffffffffffffLL) == 0 ++ && ((lx != 0 && (hx ^ lx) < 0) ++ || (lx == 0 && hx < 0))) ++ ihx -= 1LL << 52; ++ if (ihx < (106LL << 52)) { /* ulp will denormal */ ++ INSERT_WORDS64 (yhi, ihx & (0x7ffLL<<52)); ++ u = yhi * 0x1p-105; + } else { +- INSERT_WORDS64 (yhi, (hx & (0x7ffLL<<52))-(0x069LL<<52)); ++ INSERT_WORDS64 (yhi, (ihx & (0x7ffLL<<52))-(105LL<<52)); + u = yhi; + } + return x + u; diff --git a/nscd.service b/nscd.service index bacc6e3..2170cbc 100644 --- a/nscd.service +++ b/nscd.service @@ -1,5 +1,8 @@ [Unit] Description=Name Service Cache Daemon +After=sysinit.target +Wants=nss-lookup.target nss-user-lookup.target +Before=nss-lookup.target nss-user-lookup.target [Service] Type=forking diff --git a/powerpc-opt-power8.patch b/powerpc-opt-power8.patch index 24aa7f5..e429a18 100644 --- a/powerpc-opt-power8.patch +++ b/powerpc-opt-power8.patch @@ -1,3 +1,16 @@ +2014-03-31 Adhemerval Zanella + + * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S (MFVSRD_R3_V1): + Encode instruction correctly in little endian. + * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S (MFVSRD_R3_V1): + Likewise. + * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S (MFVSRD_R3_V1): + Likewise. + * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S (MFVSRD_R3_V1): + Likewise. + * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S (MFVSRD_R3_V1): + Likewise. + 2014-03-20 Adhemerval Zanella Vidya Ranganathan @@ -31,6 +44,25 @@ * sysdeps/powerpc/powerpc64/power7/strcspn.S: New file: optimited strcspn for POWER7. +2014-03-12 Adhemerval Zanella + + [BZ #16689] + * sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S + (__bzero_ppc): Call memset@local instead of __memset_ppc@local for + static build. + * sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c: Build IFUNC + selector for static builds. + + * sysdeps/powerpc/powerpc64/multiarch/strspn.c (strspn): Build IFUNC + selector for static builds. + +2014-03-11 Adhemerval Zanella + + [BZ #16683] + * sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S (__bzero_ppc): + Define it for static builds as well. + (NO_BZERO_IMPL): Likewise. + 2014-03-11 Vidya Ranganathan * sysdeps/powerpc/powerpc64/power7/strspn.S: New file: Optimization. @@ -238,6 +270,42 @@ Index: glibc-2.19/string/strspn.c { const char *p; const char *a; +Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S ++++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S +@@ -19,8 +19,17 @@ + + #include + ++/* memset ifunc selector is not built for static and memset@local ++ for shared builds makes the linker point the call to the ifunc ++ selector. */ ++#ifdef SHARED ++# define MEMSET __memset_ppc ++#else ++# define MEMSET memset ++#endif ++ + ENTRY (__bzero_ppc) + mr r5,r4 + li r4,0 +- b __memset_ppc@local ++ b MEMSET@local + END (__bzero_ppc) +Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c ++++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c +@@ -17,7 +17,7 @@ + . */ + + /* Define multiple versions only for definition in libc. */ +-#if defined SHARED && !defined NOT_IN_libc ++#ifndef NOT_IN_libc + # include + # include + # include "init-arch.h" Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h =================================================================== --- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h @@ -714,6 +782,44 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c + return i; } +Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S ++++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S +@@ -18,10 +18,9 @@ + + #include + +-#if defined SHARED && !defined NOT_IN_libc +- + /* Copied from bzero.S to prevent the linker from inserting a stub +- between bzero and memset. */ ++ between bzero and memset. NOTE: this code should be positioned ++ before ENTRY/END_GEN_TB redefinition. */ + ENTRY (__bzero_ppc) + CALL_MCOUNT 3 + mr r5,r4 +@@ -29,6 +28,8 @@ ENTRY (__bzero_ppc) + b L(_memset) + END_GEN_TB (__bzero_ppc,TB_TOCLESS) + ++ ++#if defined SHARED && !defined NOT_IN_libc + # undef EALIGN + # define EALIGN(name, alignt, words) \ + .section ".text"; \ +@@ -48,9 +49,9 @@ END_GEN_TB (__bzero_ppc,TB_TOCLESS) + # undef libc_hidden_builtin_def + # define libc_hidden_builtin_def(name) \ + .globl __GI_memset; __GI_memset = __memset_ppc ++#endif + + /* Do not implement __bzero at powerpc64/memset.S. */ +-# define NO_BZERO_IMPL +-#endif ++#define NO_BZERO_IMPL + + #include Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S =================================================================== --- /dev/null @@ -1291,7 +1397,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn.c + License along with the GNU C Library; if not, see + . */ + -+#if defined SHARED && !defined NOT_IN_libc ++#ifndef NOT_IN_libc +# include +# include +# include "init-arch.h" @@ -2262,7 +2368,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S =================================================================== --- /dev/null +++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S -@@ -0,0 +1,56 @@ +@@ -0,0 +1,61 @@ +/* isfinite(). PowerPC64/POWER8 version. + Copyright (C) 2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -2282,9 +2388,14 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S + . */ + +#include ++#include +#include + ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ ++#else +#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++#endif + +/* int [r3] __finite ([fp1] x) */ + @@ -2329,7 +2440,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S =================================================================== --- /dev/null +++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S -@@ -0,0 +1,61 @@ +@@ -0,0 +1,66 @@ +/* isinf(). PowerPC64/POWER8 version. + Copyright (C) 2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -2349,9 +2460,14 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S + . */ + +#include ++#include +#include + ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ ++#else +#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++#endif + +/* int [r3] __isinf([fp1] x) */ + @@ -2401,7 +2517,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S =================================================================== --- /dev/null +++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S -@@ -0,0 +1,53 @@ +@@ -0,0 +1,58 @@ +/* isnan(). PowerPC64/POWER8 version. + Copyright (C) 2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -2421,9 +2537,14 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S + . */ + +#include ++#include +#include + ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ ++#else +#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++#endif + +/* int [r3] __isnan([f1] x) */ + @@ -2465,7 +2586,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S =================================================================== --- /dev/null +++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S -@@ -0,0 +1,45 @@ +@@ -0,0 +1,50 @@ +/* Round double to long int. POWER8 PowerPC64 version. + Copyright (C) 2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -2485,9 +2606,14 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S + . */ + +#include ++#include +#include + ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ ++#else +#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++#endif + +/* long long int[r3] __llrint (double x[fp1]) */ +ENTRY (__llrint) @@ -2515,7 +2641,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S =================================================================== --- /dev/null +++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S -@@ -0,0 +1,47 @@ +@@ -0,0 +1,52 @@ +/* llround function. POWER8 PowerPC64 version. + Copyright (C) 2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -2535,9 +2661,14 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S + . */ + +#include ++#include +#include + ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ ++#else +#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ ++#endif + +/* long long [r3] llround (float x [fp1]) */ + diff --git a/ppc64-copysign.patch b/ppc64-copysign.patch new file mode 100644 index 0000000..5cdcb94 --- /dev/null +++ b/ppc64-copysign.patch @@ -0,0 +1,23 @@ +2014-04-01 Alan Modra + + [BZ #16786] + * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Don't trash stack. + +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_copysign.S +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_copysign.S ++++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_copysign.S +@@ -27,11 +27,11 @@ ENTRY(__copysign) + /* double [f1] copysign (double [f1] x, double [f2] y); + copysign(x,y) returns a value with the magnitude of x and + with the sign bit of y. */ +- stfd fp2,56(r1) ++ stfd fp2,-8(r1) + nop + nop + nop +- ld r3,56(r1) ++ ld r3,-8(r1) + cmpdi r3,0 + blt L(0) + fabs fp1,fp1 diff --git a/pthread-mutex-trylock-elision.patch b/pthread-mutex-trylock-elision.patch new file mode 100644 index 0000000..6886125 --- /dev/null +++ b/pthread-mutex-trylock-elision.patch @@ -0,0 +1,53 @@ +[PATCH] Properly handle forced elision in pthread_mutex_trylock + + BZ #16657 + * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use + FORCE_ELISION instead of DO_ELISION. + * sysdeps/unix/sysv/linux/x86/force-elision.h (DO_ELISION): + Remove. +--- + nptl/pthread_mutex_trylock.c | 7 +++---- + nptl/sysdeps/unix/sysv/linux/x86/force-elision.h | 5 ----- + 2 files changed, 3 insertions(+), 9 deletions(-) + +Index: glibc-2.19/nptl/pthread_mutex_trylock.c +=================================================================== +--- glibc-2.19.orig/nptl/pthread_mutex_trylock.c ++++ glibc-2.19/nptl/pthread_mutex_trylock.c +@@ -26,8 +26,8 @@ + #define lll_trylock_elision(a,t) lll_trylock(a) + #endif + +-#ifndef DO_ELISION +-#define DO_ELISION(m) 0 ++#ifndef FORCE_ELISION ++#define FORCE_ELISION(m, s) + #endif + + /* We don't force elision in trylock, because this can lead to inconsistent +@@ -77,8 +77,7 @@ __pthread_mutex_trylock (mutex) + return 0; + + case PTHREAD_MUTEX_TIMED_NP: +- if (DO_ELISION (mutex)) +- goto elision; ++ FORCE_ELISION (mutex, goto elision); + /*FALL THROUGH*/ + case PTHREAD_MUTEX_ADAPTIVE_NP: + case PTHREAD_MUTEX_ERRORCHECK_NP: +Index: glibc-2.19/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h +=================================================================== +--- glibc-2.19.orig/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h ++++ glibc-2.19/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h +@@ -16,11 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-/* Check for elision on this lock without upgrading. */ +-#define DO_ELISION(m) \ +- (__pthread_force_elision \ +- && (m->__data.__kind & PTHREAD_MUTEX_NO_ELISION_NP) == 0) \ +- + /* Automatically enable elision for existing user lock kinds. */ + #define FORCE_ELISION(m, s) \ + if (__pthread_force_elision \ From 0296004544a3eea567f78af28097d45af2b513d7718afd666db9eed5dab227d8 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 22 Apr 2014 05:47:56 +0000 Subject: [PATCH 164/204] Accepting request 230485 from Base:System - ibm-long-double-frexpl.patch: Correct IBM long double frexpl (bnc#872573, BZ #16740, BZ #16619) (forwarded request 230484 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/230485 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=172 --- glibc-testsuite.changes | 18 ++ glibc-testsuite.spec | 40 +-- glibc-utils.changes | 18 ++ glibc-utils.spec | 40 +-- glibc.changes | 18 ++ glibc.spec | 40 +-- ibm-long-double-frexpl.patch | 194 +++++++++++++++ ibm-long-double-math.patch | 462 +++++++++++++++++++++++++++++++++++ nscd.conf | 2 +- 9 files changed, 780 insertions(+), 52 deletions(-) create mode 100644 ibm-long-double-frexpl.patch create mode 100644 ibm-long-double-math.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index a98fc17..8292fd9 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de + +- ibm-long-double-frexpl.patch: Correct IBM long double frexpl + (bnc#872573, BZ #16740, BZ #16619) + +------------------------------------------------------------------- +Tue Apr 15 14:23:54 UTC 2014 - schwab@suse.de + +- ibm-long-double-math.patch: Remove faulty assembler implementations of + ceil, nearbyintl, roundl for IBM long double (bnc#873457, BZ #16701, BZ + #16706, BZ #16707) + +------------------------------------------------------------------- +Tue Apr 15 11:00:59 UTC 2014 - aj@suse.com + +- Use /run for nscd instead of /var/run. + ------------------------------------------------------------------- Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index c99df16..1bd53a8 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -248,6 +248,12 @@ Patch1006: getaddrinfo-uninit-result.patch Patch1007: ppc64-copysign.patch # PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) Patch1008: nextafterl-ibm-ldouble.patch +# PATCH-FIX-UPSTREAM Remove faulty assembler implementations for IBM long double (BZ #16701, BZ #16706, BZ #16707) +Patch1009: ibm-long-double-math.patch +# PATCH-FIX-UPSTREAM Correct IBM long double frexpl (BZ #16740, BZ #16619) +Patch1010: ibm-long-double-frexpl.patch +# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) +Patch1011: aarch64-setcontext.patch ### # Patches awaiting upstream approval @@ -262,8 +268,6 @@ Patch2002: ldd-system-interp.patch Patch2003: abort-no-flush.patch # PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) Patch2004: pthread-mutex-trylock-elision.patch -# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) -Patch2005: aarch64-setcontext.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -473,13 +477,15 @@ rm nscd/s-stamp %patch1006 -p1 %patch1007 -p1 %patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 -%patch2005 -p1 %patch3000 @@ -887,9 +893,9 @@ popd cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd -mkdir -p %{buildroot}/var/run/nscd -touch %{buildroot}/var/run/nscd/{passwd,group,hosts,services,netgroup} -touch %{buildroot}/var/run/nscd/{socket,nscd.pid} +mkdir -p %{buildroot}/run/nscd +touch %{buildroot}/run/nscd/{passwd,group,hosts,services,netgroup} +touch %{buildroot}/run/nscd/{socket,nscd.pid} # # Create ld.so.conf @@ -971,7 +977,7 @@ rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* rm -rf %{buildroot}/usr/lib/systemd rm -rf %{buildroot}/usr/lib/tmpfiles.d -rm -rf %{buildroot}/var/run/nscd +rm -rf %{buildroot}/run/nscd %endif # i686 %endif # %{normal_build} @@ -1021,7 +1027,7 @@ done %pre -n nscd getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd -getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /var/run/nscd nscd +getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /run/nscd nscd %service_add_pre nscd.service %preun -n nscd @@ -1029,7 +1035,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /var/run/nscd +mkdir -p /run/nscd # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1274,14 +1280,14 @@ exit 0 /usr/lib/systemd/system/nscd.service %dir /usr/lib/tmpfiles.d /usr/lib/tmpfiles.d/nscd.conf -%dir %attr(0755,root,root) %ghost /var/run/nscd -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid -%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/netgroup +%dir %attr(0755,root,root) %ghost /run/nscd +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid +%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/glibc-utils.changes b/glibc-utils.changes index a98fc17..8292fd9 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de + +- ibm-long-double-frexpl.patch: Correct IBM long double frexpl + (bnc#872573, BZ #16740, BZ #16619) + +------------------------------------------------------------------- +Tue Apr 15 14:23:54 UTC 2014 - schwab@suse.de + +- ibm-long-double-math.patch: Remove faulty assembler implementations of + ceil, nearbyintl, roundl for IBM long double (bnc#873457, BZ #16701, BZ + #16706, BZ #16707) + +------------------------------------------------------------------- +Tue Apr 15 11:00:59 UTC 2014 - aj@suse.com + +- Use /run for nscd instead of /var/run. + ------------------------------------------------------------------- Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 2c981c9..03d3165 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -247,6 +247,12 @@ Patch1006: getaddrinfo-uninit-result.patch Patch1007: ppc64-copysign.patch # PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) Patch1008: nextafterl-ibm-ldouble.patch +# PATCH-FIX-UPSTREAM Remove faulty assembler implementations for IBM long double (BZ #16701, BZ #16706, BZ #16707) +Patch1009: ibm-long-double-math.patch +# PATCH-FIX-UPSTREAM Correct IBM long double frexpl (BZ #16740, BZ #16619) +Patch1010: ibm-long-double-frexpl.patch +# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) +Patch1011: aarch64-setcontext.patch ### # Patches awaiting upstream approval @@ -261,8 +267,6 @@ Patch2002: ldd-system-interp.patch Patch2003: abort-no-flush.patch # PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) Patch2004: pthread-mutex-trylock-elision.patch -# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) -Patch2005: aarch64-setcontext.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -473,13 +477,15 @@ rm nscd/s-stamp %patch1006 -p1 %patch1007 -p1 %patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 -%patch2005 -p1 %patch3000 @@ -887,9 +893,9 @@ popd cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd -mkdir -p %{buildroot}/var/run/nscd -touch %{buildroot}/var/run/nscd/{passwd,group,hosts,services,netgroup} -touch %{buildroot}/var/run/nscd/{socket,nscd.pid} +mkdir -p %{buildroot}/run/nscd +touch %{buildroot}/run/nscd/{passwd,group,hosts,services,netgroup} +touch %{buildroot}/run/nscd/{socket,nscd.pid} # # Create ld.so.conf @@ -971,7 +977,7 @@ rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* rm -rf %{buildroot}/usr/lib/systemd rm -rf %{buildroot}/usr/lib/tmpfiles.d -rm -rf %{buildroot}/var/run/nscd +rm -rf %{buildroot}/run/nscd %endif # i686 %endif # %{normal_build} @@ -1021,7 +1027,7 @@ done %pre -n nscd getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd -getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /var/run/nscd nscd +getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /run/nscd nscd %service_add_pre nscd.service %preun -n nscd @@ -1029,7 +1035,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /var/run/nscd +mkdir -p /run/nscd # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1274,14 +1280,14 @@ exit 0 /usr/lib/systemd/system/nscd.service %dir /usr/lib/tmpfiles.d /usr/lib/tmpfiles.d/nscd.conf -%dir %attr(0755,root,root) %ghost /var/run/nscd -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid -%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/netgroup +%dir %attr(0755,root,root) %ghost /run/nscd +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid +%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/glibc.changes b/glibc.changes index a98fc17..8292fd9 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de + +- ibm-long-double-frexpl.patch: Correct IBM long double frexpl + (bnc#872573, BZ #16740, BZ #16619) + +------------------------------------------------------------------- +Tue Apr 15 14:23:54 UTC 2014 - schwab@suse.de + +- ibm-long-double-math.patch: Remove faulty assembler implementations of + ceil, nearbyintl, roundl for IBM long double (bnc#873457, BZ #16701, BZ + #16706, BZ #16707) + +------------------------------------------------------------------- +Tue Apr 15 11:00:59 UTC 2014 - aj@suse.com + +- Use /run for nscd instead of /var/run. + ------------------------------------------------------------------- Mon Apr 7 09:06:32 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 3ea5f0c..1673831 100644 --- a/glibc.spec +++ b/glibc.spec @@ -248,6 +248,12 @@ Patch1006: getaddrinfo-uninit-result.patch Patch1007: ppc64-copysign.patch # PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) Patch1008: nextafterl-ibm-ldouble.patch +# PATCH-FIX-UPSTREAM Remove faulty assembler implementations for IBM long double (BZ #16701, BZ #16706, BZ #16707) +Patch1009: ibm-long-double-math.patch +# PATCH-FIX-UPSTREAM Correct IBM long double frexpl (BZ #16740, BZ #16619) +Patch1010: ibm-long-double-frexpl.patch +# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) +Patch1011: aarch64-setcontext.patch ### # Patches awaiting upstream approval @@ -262,8 +268,6 @@ Patch2002: ldd-system-interp.patch Patch2003: abort-no-flush.patch # PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) Patch2004: pthread-mutex-trylock-elision.patch -# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) -Patch2005: aarch64-setcontext.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -473,13 +477,15 @@ rm nscd/s-stamp %patch1006 -p1 %patch1007 -p1 %patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 -%patch2005 -p1 %patch3000 @@ -887,9 +893,9 @@ popd cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd -mkdir -p %{buildroot}/var/run/nscd -touch %{buildroot}/var/run/nscd/{passwd,group,hosts,services,netgroup} -touch %{buildroot}/var/run/nscd/{socket,nscd.pid} +mkdir -p %{buildroot}/run/nscd +touch %{buildroot}/run/nscd/{passwd,group,hosts,services,netgroup} +touch %{buildroot}/run/nscd/{socket,nscd.pid} # # Create ld.so.conf @@ -971,7 +977,7 @@ rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* rm -rf %{buildroot}/usr/lib/systemd rm -rf %{buildroot}/usr/lib/tmpfiles.d -rm -rf %{buildroot}/var/run/nscd +rm -rf %{buildroot}/run/nscd %endif # i686 %endif # %{normal_build} @@ -1021,7 +1027,7 @@ done %pre -n nscd getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd -getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /var/run/nscd nscd +getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /run/nscd nscd %service_add_pre nscd.service %preun -n nscd @@ -1029,7 +1035,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /var/run/nscd +mkdir -p /run/nscd # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1274,14 +1280,14 @@ exit 0 /usr/lib/systemd/system/nscd.service %dir /usr/lib/tmpfiles.d /usr/lib/tmpfiles.d/nscd.conf -%dir %attr(0755,root,root) %ghost /var/run/nscd -%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid -%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/netgroup +%dir %attr(0755,root,root) %ghost /run/nscd +%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid +%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/ibm-long-double-frexpl.patch b/ibm-long-double-frexpl.patch new file mode 100644 index 0000000..5b1e3b8 --- /dev/null +++ b/ibm-long-double-frexpl.patch @@ -0,0 +1,194 @@ +2014-04-16 Alan Modra + + [BZ #16740] + [BZ #16619] + * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c (__frexpl): Rewrite. + * math/libm-test.inc (frexp_test_data): Add tests. + +Index: glibc-2.19/math/libm-test.inc +=================================================================== +--- glibc-2.19.orig/math/libm-test.inc ++++ glibc-2.19/math/libm-test.inc +@@ -8723,6 +8723,15 @@ static const struct test_f_f1_data frexp + + TEST_fI_f1 (frexp, 12.8L, 0.8L, 4, NO_INEXACT_EXCEPTION), + TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5, NO_INEXACT_EXCEPTION), ++ ++#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106 ++ TEST_fI_f1 (frexp, 1.0L-0x1p-106L, 1.0L-0x1p-106L, 0, NO_INEXACT_EXCEPTION), ++ TEST_fI_f1 (frexp, 1.0L, 0.5L, 1, NO_INEXACT_EXCEPTION), ++ TEST_fI_f1 (frexp, 1.0L+0x1p-105L, 0.5L+0x1p-106L, 1, NO_INEXACT_EXCEPTION), ++ TEST_fI_f1 (frexp, -1.0L+0x1p-106L, -1.0L+0x1p-106L, 0, NO_INEXACT_EXCEPTION), ++ TEST_fI_f1 (frexp, -1.0L, -0.5L, 1, NO_INEXACT_EXCEPTION), ++ TEST_fI_f1 (frexp, -1.0L-0x1p-105L, -0.5L-0x1p-106L, 1, NO_INEXACT_EXCEPTION), ++#endif + }; + + static void +Index: glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c +=================================================================== +--- glibc-2.19.orig/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c ++++ glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c +@@ -31,57 +31,115 @@ static char rcsid[] = "$NetBSD: $"; + #include + #include + +-static const long double +-two107 = 162259276829213363391578010288128.0; /* 0x4670000000000000, 0 */ +- + long double __frexpl(long double x, int *eptr) + { +- uint64_t hx, lx, ix, ixl; +- int64_t explo; +- double xhi, xlo; +- +- ldbl_unpack (x, &xhi, &xlo); +- EXTRACT_WORDS64 (hx, xhi); +- EXTRACT_WORDS64 (lx, xlo); +- ixl = 0x7fffffffffffffffULL&lx; +- ix = 0x7fffffffffffffffULL&hx; +- *eptr = 0; +- if(ix>=0x7ff0000000000000ULL||ix==0) return x; /* 0,inf,nan */ +- if (ix<0x0010000000000000ULL) { /* subnormal */ +- x *= two107; +- xhi = ldbl_high (x); +- EXTRACT_WORDS64 (hx, xhi); +- ix = hx&0x7fffffffffffffffULL; +- *eptr = -107; ++ uint64_t hx, lx, ix, ixl; ++ int64_t explo, expon; ++ double xhi, xlo; ++ ++ ldbl_unpack (x, &xhi, &xlo); ++ EXTRACT_WORDS64 (hx, xhi); ++ EXTRACT_WORDS64 (lx, xlo); ++ ixl = 0x7fffffffffffffffULL & lx; ++ ix = 0x7fffffffffffffffULL & hx; ++ expon = 0; ++ if (ix >= 0x7ff0000000000000ULL || ix == 0) ++ { ++ /* 0,inf,nan. */ ++ *eptr = expon; ++ return x; ++ } ++ expon = ix >> 52; ++ if (expon == 0) ++ { ++ /* Denormal high double, the low double must be 0.0. */ ++ int cnt; ++ ++ /* Normalize. */ ++ if (sizeof (ix) == sizeof (long)) ++ cnt = __builtin_clzl (ix); ++ else if ((ix >> 32) != 0) ++ cnt = __builtin_clzl ((long) (ix >> 32)); ++ else ++ cnt = __builtin_clzl ((long) ix) + 32; ++ cnt = cnt - 12; ++ expon -= cnt; ++ ix <<= cnt + 1; ++ } ++ expon -= 1022; ++ ix &= 0x000fffffffffffffULL; ++ hx &= 0x8000000000000000ULL; ++ hx |= (1022LL << 52) | ix; ++ ++ if (ixl != 0) ++ { ++ /* If the high double is an exact power of two and the low ++ double has the opposite sign, then the exponent calculated ++ from the high double is one too big. */ ++ if (ix == 0 ++ && (int64_t) (hx ^ lx) < 0) ++ { ++ hx += 1L << 52; ++ expon -= 1; ++ } ++ ++ explo = ixl >> 52; ++ if (explo == 0) ++ { ++ /* The low double started out as a denormal. Normalize its ++ mantissa and adjust the exponent. */ ++ int cnt; ++ ++ if (sizeof (ixl) == sizeof (long)) ++ cnt = __builtin_clzl (ixl); ++ else if ((ixl >> 32) != 0) ++ cnt = __builtin_clzl ((long) (ixl >> 32)); ++ else ++ cnt = __builtin_clzl ((long) ixl) + 32; ++ cnt = cnt - 12; ++ explo -= cnt; ++ ixl <<= cnt + 1; ++ } ++ ++ /* With variable precision we can't assume much about the ++ magnitude of the returned low double. It may even be a ++ denormal. */ ++ explo -= expon; ++ ixl &= 0x000fffffffffffffULL; ++ lx &= 0x8000000000000000ULL; ++ if (explo <= 0) ++ { ++ /* Handle denormal low double. */ ++ if (explo > -52) ++ { ++ ixl |= 1LL << 52; ++ ixl >>= 1 - explo; ++ } ++ else ++ { ++ ixl = 0; ++ lx = 0; ++ if ((hx & 0x7ff0000000000000ULL) == (1023LL << 52)) ++ { ++ /* Oops, the adjustment we made above for values a ++ little smaller than powers of two turned out to ++ be wrong since the returned low double will be ++ zero. This can happen if the input was ++ something weird like 0x1p1000 - 0x1p-1000. */ ++ hx -= 1L << 52; ++ expon += 1; ++ } ++ } ++ explo = 0; + } +- *eptr += (ix>>52)-1022; ++ lx |= (explo << 52) | ixl; ++ } + +- if (ixl != 0ULL) { +- explo = (ixl>>52) - (ix>>52) + 0x3fe; +- if ((ixl&0x7ff0000000000000ULL) == 0LL) { +- /* the lower double is a denormal so we need to correct its +- mantissa and perhaps its exponent. */ +- int cnt; +- +- if (sizeof (ixl) == sizeof (long)) +- cnt = __builtin_clzl (ixl); +- else if ((ixl >> 32) != 0) +- cnt = __builtin_clzl ((long) (ixl >> 32)); +- else +- cnt = __builtin_clzl ((long) ixl) + 32; +- cnt = cnt - 12; +- lx = (lx&0x8000000000000000ULL) | ((explo-cnt)<<52) +- | ((ixl<<(cnt+1))&0x000fffffffffffffULL); +- } else +- lx = (lx&0x800fffffffffffffULL) | (explo<<52); +- } else +- lx = 0ULL; +- +- hx = (hx&0x800fffffffffffffULL) | 0x3fe0000000000000ULL; +- INSERT_WORDS64 (xhi, hx); +- INSERT_WORDS64 (xlo, lx); +- x = ldbl_pack (xhi, xlo); +- return x; ++ INSERT_WORDS64 (xhi, hx); ++ INSERT_WORDS64 (xlo, lx); ++ x = ldbl_pack (xhi, xlo); ++ *eptr = expon; ++ return x; + } + #ifdef IS_IN_libm + long_double_symbol (libm, __frexpl, frexpl); diff --git a/ibm-long-double-math.patch b/ibm-long-double-math.patch new file mode 100644 index 0000000..c34d2c3 --- /dev/null +++ b/ibm-long-double-math.patch @@ -0,0 +1,462 @@ +2014-03-14 Adhemerval Zanella + + [BZ #16707] + * sysdeps/powerpc/powerpc64/fpu/s_roundl.S: Remove wrong + implementation. + * math/libm-test.inc (round_test_data): Add more tests. + + [BZ #16706] + * sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S: Remove wrong + implementation. + * math/libm-test.inc (nearbyint_test_data): Add more tests. + + [BZ #16701] + * sysdeps/powerpc/powerpc64/fpu/s_ceill.S: Remove wrong + implementation. + * math/libm-test.inc (ceil_test_data): Add more tests. + +Index: glibc-2.19/math/libm-test.inc +=================================================================== +--- glibc-2.19.orig/math/libm-test.inc ++++ glibc-2.19/math/libm-test.inc +@@ -6000,6 +6000,15 @@ static const struct test_f_f_data ceil_t + TEST_f_f (ceil, -72057594037927936.75L, -72057594037927936.0L), + TEST_f_f (ceil, -72057594037927937.5L, -72057594037927937.0L), + ++ /* Check cases where first double is a exact integer higher than 2^52 and ++ the precision is determined by second long double for IBM long double. */ ++ TEST_f_f (ceil, 34503599627370498.515625L, 34503599627370499.0L), ++ TEST_f_f (ceil, -34503599627370498.515625L, -34503599627370498.0L), ++# if LDBL_MANT_DIG >= 106 ++ TEST_f_f (ceil, 1192568192774434123539907640624.484375L, 1192568192774434123539907640625.0L), ++ TEST_f_f (ceil, -1192568192774434123539907640624.484375L, -1192568192774434123539907640624.0L), ++# endif ++ + TEST_f_f (ceil, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L), + TEST_f_f (ceil, 10141204801825835211973625643008.25L, 10141204801825835211973625643009.0L), + TEST_f_f (ceil, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L), +@@ -10495,6 +10504,16 @@ static const struct test_f_f_data nearby + TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0, NO_INEXACT_EXCEPTION), + TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0, NO_INEXACT_EXCEPTION), + #endif ++#ifdef TEST_LDOUBLE ++ /* Check cases where first double is a exact integer higher than 2^52 and ++ the precision is determined by second long double for IBM long double. */ ++ TEST_f_f (nearbyint, 34503599627370498.515625L, 34503599627370499.0L), ++ TEST_f_f (nearbyint, -34503599627370498.515625L, -34503599627370499.0L), ++# if LDBL_MANT_DIG >= 106 ++ TEST_f_f (nearbyint, 1192568192774434123539907640624.484375L, 1192568192774434123539907640624.0L), ++ TEST_f_f (nearbyint, -1192568192774434123539907640624.484375L, -1192568192774434123539907640624.0L), ++# endif ++#endif + }; + + static void +@@ -11792,6 +11811,15 @@ static const struct test_f_f_data round_ + TEST_f_f (round, -72057594037927936.75L, -72057594037927937.0L), + TEST_f_f (round, -72057594037927937.5L, -72057594037927938.0L), + ++ /* Check cases where first double is a exact integer higher than 2^52 and ++ the precision is determined by second long double for IBM long double. */ ++ TEST_f_f (round, 34503599627370498.515625L, 34503599627370499.0L), ++ TEST_f_f (round, -34503599627370498.515625L, -34503599627370499.0L), ++# if LDBL_MANT_DIG >= 106 ++ TEST_f_f (round, 1192568192774434123539907640624.484375L, 1192568192774434123539907640624.0L), ++ TEST_f_f (round, -1192568192774434123539907640624.484375L, -1192568192774434123539907640624.0L), ++# endif ++ + TEST_f_f (round, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L), + TEST_f_f (round, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L), + TEST_f_f (round, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L), +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_ceill.S +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_ceill.S ++++ /dev/null +@@ -1,132 +0,0 @@ +-/* s_ceill.S IBM extended format long double version. +- Copyright (C) 2004-2014 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- +- .section ".toc","aw" +-.LC0: /* 2**52 */ +- .tc FD_43300000_0[TC],0x4330000000000000 +- +- .section ".text" +- +-/* long double [fp1,fp2] ceill (long double x [fp1,fp2]) +- IEEE 1003.1 ceil function. +- +- PowerPC64 long double uses the IBM extended format which is +- represented two 64-floating point double values. The values are +- non-overlapping giving an effective precision of 106 bits. The first +- double contains the high order bits of mantissa and is always ceiled +- to represent a normal ceiling of long double to double. Since the +- long double value is sum of the high and low values, the low double +- normally has the opposite sign to compensate for the this ceiling. +- +- For long double there are two cases: +- 1) |x| < 2**52, all the integer bits are in the high double. +- ceil the high double and set the low double to -0.0. +- 2) |x| >= 2**52, ceiling involves both doubles. +- See the comment before label .L2 for details. +- */ +- +-ENTRY (__ceill) +- mffs fp11 /* Save current FPU rounding mode. */ +- lfd fp13,.LC0@toc(2) +- fabs fp0,fp1 +- fabs fp9,fp2 +- fsub fp12,fp13,fp13 /* generate 0.0 */ +- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */ +- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */ +- bnl- cr7,.L2 +- mtfsfi 7,2 /* Set rounding mode toward +inf. */ +- fneg fp2,fp12 +- ble- cr6,.L1 +- fadd fp1,fp1,fp13 /* x+= TWO52; */ +- fsub fp1,fp1,fp13 /* x-= TWO52; */ +- fabs fp1,fp1 /* if (x == 0.0) */ +-.L0: +- mtfsf 0x01,fp11 /* restore previous rounding mode. */ +- blr /* x = 0.0; */ +-.L1: +- bge- cr6,.L0 /* if (x < 0.0) */ +- fsub fp1,fp1,fp13 /* x-= TWO52; */ +- fadd fp1,fp1,fp13 /* x+= TWO52; */ +- fcmpu cr5,fp1,fp12 /* if (x > 0.0) */ +- mtfsf 0x01,fp11 /* restore previous rounding mode. */ +- fnabs fp1,fp1 /* if (x == 0.0) */ +- blr /* x = -0.0; */ +- +-/* The high double is > TWO52 so we need to round the low double and +- perhaps the high double. In this case we have to round the low +- double and handle any adjustment to the high double that may be +- caused by rounding (up). This is complicated by the fact that the +- high double may already be rounded and the low double may have the +- opposite sign to compensate.This gets a bit tricky so we use the +- following algorithm: +- +- tau = floor(x_high/TWO52); +- x0 = x_high - tau; +- x1 = x_low + tau; +- r1 = rint(x1); +- y_high = x0 + r1; +- y_low = x0 - y_high + r1; +- return y; */ +-.L2: +- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */ +- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */ +- fcmpu cr5,fp2,fp12 /* if (x_low > 0.0) */ +- bgelr- cr7 /* return x; */ +- beqlr- cr0 +- mtfsfi 7,2 /* Set rounding mode toward +inf. */ +- fdiv fp8,fp1,fp13 /* x_high/TWO52 */ +- +- bng- cr6,.L6 /* if (x > 0.0) */ +- fctidz fp0,fp8 +- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ +- bng cr5,.L4 /* if (x_low > 0.0) */ +- fmr fp3,fp1 +- fmr fp4,fp2 +- b .L5 +-.L4: /* if (x_low < 0.0) */ +- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ +- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ +-.L5: +- fadd fp5,fp4,fp13 /* r1 = r1 + TWO52; */ +- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */ +- b .L9 +-.L6: /* if (x < 0.0) */ +- fctidz fp0,fp8 +- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ +- bnl cr5,.L7 /* if (x_low < 0.0) */ +- fmr fp3,fp1 +- fmr fp4,fp2 +- b .L8 +-.L7: /* if (x_low > 0.0) */ +- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ +- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ +-.L8: +- fsub fp5,fp4,fp13 /* r1-= TWO52; */ +- fadd fp5,fp5,fp13 /* r1+= TWO52; */ +-.L9: +- mtfsf 0x01,fp11 /* restore previous rounding mode. */ +- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */ +- fsub fp2,fp3,fp1 /* y_low = x0 - y_high + r1; */ +- fadd fp2,fp2,fp5 +- blr +-END (__ceill) +- +-long_double_symbol (libm, __ceill, ceill) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S ++++ /dev/null +@@ -1,113 +0,0 @@ +-/* nearbyint long double. +- IBM extended format long double version. +- Copyright (C) 2004-2014 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- +- .section ".toc","aw" +-.LC0: /* 2**52 */ +- .tc FD_43300000_0[TC],0x4330000000000000 +- .section ".text" +- +-/* long double [fp1,fp2] nearbyintl (long double x [fp1,fp2]) +- IEEE 1003.1 nearbyintl function. nearbyintl is similar to the rintl +- but does raise the "inexact" exception. This implementation is +- based on rintl but explicitly masks the inexact exception on entry +- and clears any pending inexact before restoring the exception mask +- on exit. +- +- PowerPC64 long double uses the IBM extended format which is +- represented two 64-floating point double values. The values are +- non-overlapping giving an effective precision of 106 bits. The first +- double contains the high order bits of mantissa and is always rounded +- to represent a normal rounding of long double to double. Since the +- long double value is sum of the high and low values, the low double +- normally has the opposite sign to compensate for the this rounding. +- +- For long double there are two cases: +- 1) |x| < 2**52, all the integer bits are in the high double. +- floor the high double and set the low double to -0.0. +- 2) |x| >= 2**52, Rounding involves both doubles. +- See the comment before label .L2 for details. +- */ +-ENTRY (__nearbyintl) +- mffs fp11 /* Save current FPSCR. */ +- lfd fp13,.LC0@toc(2) +- fabs fp0,fp1 +- mtfsb0 28 /* Disable "inexact" exceptions. */ +- fsub fp12,fp13,fp13 /* generate 0.0 */ +- fabs fp9,fp2 +- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */ +- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */ +- bnl- cr7,.L2 +- fmr fp2,fp12 +- bng- cr6,.L4 +- fadd fp1,fp1,fp13 /* x+= TWO52; */ +- fsub fp1,fp1,fp13 /* x-= TWO52; */ +- b .L9 +-.L4: +- bnl- cr6,.L9 /* if (x < 0.0) */ +- fsub fp1,fp13,fp1 /* x = TWO52 - x; */ +- fsub fp0,fp1,fp13 /* x = - (x - TWO52); */ +- fneg fp1,fp0 +-.L9: +- mtfsb0 6 /* Clear any pending "inexact" exceptions. */ +- mtfsf 0x01,fp11 /* restore exception mask. */ +- blr +- +-/* The high double is > TWO52 so we need to round the low double and +- perhaps the high double. This gets a bit tricky so we use the +- following algorithm: +- +- tau = floor(x_high/TWO52); +- x0 = x_high - tau; +- x1 = x_low + tau; +- r1 = nearbyint(x1); +- y_high = x0 + r1; +- y_low = r1 - tau; +- return y; */ +-.L2: +- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */ +- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */ +- bge- cr7,.L9 /* return x; */ +- beq- cr0,.L9 +- fdiv fp8,fp1,fp13 /* x_high/TWO52 */ +- fctidz fp0,fp8 +- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ +- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ +- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ +- +- fcmpu cr6,fp4,fp12 /* if (x1 > 0.0) */ +- bng- cr6,.L8 +- fadd fp5,fp4,fp13 /* r1 = x1 + TWO52; */ +- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */ +- b .L6 +-.L8: +- fmr fp5,fp4 +- bge- cr6,.L6 /* if (x1 < 0.0) */ +- fsub fp5,fp13,fp4 /* r1 = TWO52 - x1; */ +- fsub fp0,fp5,fp13 /* r1 = - (r1 - TWO52); */ +- fneg fp5,fp0 +-.L6: +- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */ +- fsub fp2,fp5,fp8 /* y_low = r1 - tau; */ +- b .L9 +-END (__nearbyintl) +- +-long_double_symbol (libm, __nearbyintl, nearbyintl) +Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_roundl.S +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_roundl.S ++++ /dev/null +@@ -1,132 +0,0 @@ +-/* long double round function. +- IBM extended format long double version. +- Copyright (C) 2004-2014 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- +- .section ".toc","aw" +-.LC0: /* 2**52 */ +- .tc FD_43300000_0[TC],0x4330000000000000 +-.LC1: /* 0.5 */ +- .tc FD_3fe00000_0[TC],0x3fe0000000000000 +- .section ".text" +- +-/* long double [fp1,fp2] roundl (long double x [fp1,fp2]) +- IEEE 1003.1 round function. IEEE specifies "round to the nearest +- integer value, rounding halfway cases away from zero, regardless of +- the current rounding mode." However PowerPC Architecture defines +- "Round to Nearest" as "Choose the best approximation. In case of a +- tie, choose the one that is even (least significant bit o).". +- So we can't use the PowerPC "Round to Nearest" mode. Instead we set +- "Round toward Zero" mode and round by adding +-0.5 before rounding +- to the integer value. */ +- +-ENTRY (__roundl) +- mffs fp11 /* Save current FPU rounding mode. */ +- lfd fp13,.LC0@toc(2) +- fabs fp0,fp1 +- fabs fp9,fp2 +- fsub fp12,fp13,fp13 /* generate 0.0 */ +- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */ +- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */ +- bnl- cr7,.L2 +- mtfsfi 7,1 /* Set rounding mode toward 0. */ +- lfd fp10,.LC1@toc(2) +- ble- cr6,.L1 +- fneg fp2,fp12 +- fadd fp1,fp1,fp10 /* x+= 0.5; */ +- fadd fp1,fp1,fp13 /* x+= TWO52; */ +- fsub fp1,fp1,fp13 /* x-= TWO52; */ +- fabs fp1,fp1 /* if (x == 0.0) x = 0.0; */ +-.L0: +- mtfsf 0x01,fp11 /* restore previous rounding mode. */ +- blr +-.L1: +- fsub fp9,fp1,fp10 /* x-= 0.5; */ +- fneg fp2,fp12 +- bge- cr6,.L0 /* if (x < 0.0) */ +- fsub fp1,fp9,fp13 /* x-= TWO52; */ +- fadd fp1,fp1,fp13 /* x+= TWO52; */ +- fnabs fp1,fp1 /* if (x == 0.0) x = -0.0; */ +- mtfsf 0x01,fp11 /* restore previous rounding mode. */ +- blr +- +-/* The high double is > TWO52 so we need to round the low double and +- perhaps the high double. In this case we have to round the low +- double and handle any adjustment to the high double that may be +- caused by rounding (up). This is complicated by the fact that the +- high double may already be rounded and the low double may have the +- opposite sign to compensate.This gets a bit tricky so we use the +- following algorithm: +- +- tau = floor(x_high/TWO52); +- x0 = x_high - tau; +- x1 = x_low + tau; +- r1 = rint(x1); +- y_high = x0 + r1; +- y_low = x0 - y_high + r1; +- return y; */ +-.L2: +- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */ +- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */ +- fcmpu cr5,fp2,fp12 /* if (x_low > 0.0) */ +- lfd fp10,.LC1@toc(2) +- bgelr- cr7 /* return x; */ +- beqlr- cr0 +- mtfsfi 7,1 /* Set rounding mode toward 0. */ +- fdiv fp8,fp1,fp13 /* x_high/TWO52 */ +- +- bng- cr6,.L6 /* if (x > 0.0) */ +- fctidz fp0,fp8 +- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ +- bng cr5,.L4 /* if (x_low > 0.0) */ +- fmr fp3,fp1 +- fmr fp4,fp2 +- b .L5 +-.L4: /* if (x_low < 0.0) */ +- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ +- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ +-.L5: +- fadd fp5,fp4,fp10 /* r1 = x1 + 0.5; */ +- fadd fp5,fp5,fp13 /* r1 = r1 + TWO52; */ +- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */ +- b .L9 +-.L6: /* if (x < 0.0) */ +- fctidz fp0,fp8 +- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ +- bnl cr5,.L7 /* if (x_low < 0.0) */ +- fmr fp3,fp1 +- fmr fp4,fp2 +- b .L8 +-.L7: /* if (x_low > 0.0) */ +- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ +- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ +-.L8: +- fsub fp5,fp4,fp10 /* r1 = x1 - 0.5; */ +- fsub fp5,fp5,fp13 /* r1-= TWO52; */ +- fadd fp5,fp5,fp13 /* r1+= TWO52; */ +-.L9: +- mtfsf 0x01,fp11 /* restore previous rounding mode. */ +- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */ +- fsub fp2,fp3,fp1 /* y_low = x0 - y_high + r1; */ +- fadd fp2,fp2,fp5 +- blr +-END (__roundl) +- +-long_double_symbol (libm, __roundl, roundl) diff --git a/nscd.conf b/nscd.conf index 1807bd5..2f409b0 100644 --- a/nscd.conf +++ b/nscd.conf @@ -1 +1 @@ -d /var/run/nscd 0755 root root +d /run/nscd 0755 root root From 0968529e3ad3eaa75965eb7bb245a9b48c4091428421cb65ed9b9d3963589d0e Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 22 May 2014 18:38:15 +0000 Subject: [PATCH 165/204] Accepting request 234224 from Base:System - add non-elision-enabled libpthread (forwarded request 234223 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/234224 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=173 --- getaddrinfo-uninit-result.patch | 18 ++++-- glibc-testsuite.changes | 17 +++++ glibc-testsuite.spec | 50 +++++++++----- glibc-utils.changes | 17 +++++ glibc-utils.spec | 50 +++++++++----- glibc.changes | 17 +++++ glibc.spec | 50 +++++++++----- nss-nis-stack-use.patch | 111 ++++++++++++++++++++++++++++++++ 8 files changed, 272 insertions(+), 58 deletions(-) create mode 100644 nss-nis-stack-use.patch diff --git a/getaddrinfo-uninit-result.patch b/getaddrinfo-uninit-result.patch index 99a5bbc..06887a3 100644 --- a/getaddrinfo-uninit-result.patch +++ b/getaddrinfo-uninit-result.patch @@ -5,18 +5,22 @@ Index: glibc-2.19/sysdeps/posix/getaddrinfo.c =================================================================== --- glibc-2.19.orig/sysdeps/posix/getaddrinfo.c +++ glibc-2.19/sysdeps/posix/getaddrinfo.c -@@ -710,6 +710,14 @@ gaih_inet (const char *name, const struc - struct gaih_addrtuple *addrfree = addrmem; - for (int i = 0; i < air->naddrs; ++i) +@@ -712,6 +712,18 @@ gaih_inet (const char *name, const struc { + socklen_t size = (air->family[i] == AF_INET + ? INADDRSZ : IN6ADDRSZ); ++ + if (!((air->family[i] == AF_INET + && req->ai_family == AF_INET6 + && (req->ai_flags & AI_V4MAPPED) != 0) + || req->ai_family == AF_UNSPEC + || air->family[i] == req->ai_family)) -+ /* Skip over non-matching result. */ -+ continue; ++ { ++ /* Skip over non-matching result. */ ++ addrs += size; ++ continue; ++ } + - socklen_t size = (air->family[i] == AF_INET - ? INADDRSZ : IN6ADDRSZ); if (*pat == NULL) + { + *pat = addrfree++; diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 8292fd9..891e9f3 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Thu May 15 15:45:03 UTC 2014 - schwab@suse.de + +- add non-elision-enabled libpthread + +------------------------------------------------------------------- +Mon May 12 13:22:40 UTC 2014 - schwab@suse.de + +- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ + #16932) + +------------------------------------------------------------------- +Wed May 7 10:13:24 UTC 2014 - schwab@suse.de + +- getaddrinfo-uninit-result.patch: fix parsing of getai result for + IPv6-only request (bnc#876521) + ------------------------------------------------------------------- Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1bd53a8..8b6b3a9 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -254,6 +254,8 @@ Patch1009: ibm-long-double-math.patch Patch1010: ibm-long-double-frexpl.patch # PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) Patch1011: aarch64-setcontext.patch +# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) +Patch1012: nss-nis-stack-use.patch ### # Patches awaiting upstream approval @@ -480,6 +482,7 @@ rm nscd/s-stamp %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 +%patch1012 -p1 %patch2000 -p1 %patch2001 -p1 @@ -623,17 +626,21 @@ configure_and_build_glibc() { profile="--enable-profile" fi %endif - CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + elision=--enable-lock-elision + if [ "$dirname" = "noelision" ]; then + elision=--disable-lock-elision + fi + ../configure \ + CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ + CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ - $profile \ + $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif - --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -695,6 +702,10 @@ configure_and_build_glibc() { %endif %endif # optimize_power +%ifarch i686 x86_64 +configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +%endif + # # Build html documentation # @@ -796,10 +807,9 @@ do else cp -a ${lib}.so $destdir/$libbaseso fi - # Emulate ldconfig - ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done cd .. +cc-base/elf/ldconfig -vn $destdir } # Install power-optimized glibc @@ -814,7 +824,7 @@ cd .. install_optimized_variant power7 power7 ".." %endif %if %{powerpc_optimize_cpu_cell} - install_optimized_variant ppc-cell-be ppc-cell-be ".." + install_optimized_variant ppc-cell-be ppc-cell-be ".." %endif %if %{powerpc_optimize_cpu_power6} # power6 is compatible with power6x @@ -822,17 +832,23 @@ cd .. if test -d %{buildroot}/%{_lib}/power6; then mkdir -p %{buildroot}/%{_lib}/power6x for i in %{buildroot}/%{_lib}/power6/*.so; do - b=`basename $i` - ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - libbase=${b%.so} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Emulate ldconfig - ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) + b=$(basename $i) + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b done + cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x fi %endif %endif # optimize_power +%ifarch i686 x86_64 +cd cc-noelision +destdir=$RPM_BUILD_ROOT/%{_lib}/noelision +mkdir -p $destdir +install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +cd .. +cc-base/elf/ldconfig -vn $destdir +%endif + # Install locales %if %{build_locales} # XXX Do not install locales in parallel! @@ -1181,6 +1197,9 @@ exit 0 %{optimized_libs ppc-cell-be} %endif %endif # optimize_power +%ifarch i686 x86_64 +/%{_lib}/noelision +%endif %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig %{_bindir}/gencat @@ -1201,10 +1220,7 @@ exit 0 %ifarch i586 %files obsolete %defattr (755,root,root,755) -%dir /%{_lib}/obsolete/ - %dir /%{_lib}/obsolete/noversion - /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so - /%{_lib}/obsolete/noversion/libNoVersion.so.1 +/%{_lib}/obsolete %endif %files locale -f libc.lang diff --git a/glibc-utils.changes b/glibc-utils.changes index 8292fd9..891e9f3 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Thu May 15 15:45:03 UTC 2014 - schwab@suse.de + +- add non-elision-enabled libpthread + +------------------------------------------------------------------- +Mon May 12 13:22:40 UTC 2014 - schwab@suse.de + +- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ + #16932) + +------------------------------------------------------------------- +Wed May 7 10:13:24 UTC 2014 - schwab@suse.de + +- getaddrinfo-uninit-result.patch: fix parsing of getai result for + IPv6-only request (bnc#876521) + ------------------------------------------------------------------- Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 03d3165..8d93109 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -253,6 +253,8 @@ Patch1009: ibm-long-double-math.patch Patch1010: ibm-long-double-frexpl.patch # PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) Patch1011: aarch64-setcontext.patch +# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) +Patch1012: nss-nis-stack-use.patch ### # Patches awaiting upstream approval @@ -480,6 +482,7 @@ rm nscd/s-stamp %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 +%patch1012 -p1 %patch2000 -p1 %patch2001 -p1 @@ -623,17 +626,21 @@ configure_and_build_glibc() { profile="--enable-profile" fi %endif - CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + elision=--enable-lock-elision + if [ "$dirname" = "noelision" ]; then + elision=--disable-lock-elision + fi + ../configure \ + CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ + CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ - $profile \ + $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif - --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -695,6 +702,10 @@ configure_and_build_glibc() { %endif %endif # optimize_power +%ifarch i686 x86_64 +configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +%endif + # # Build html documentation # @@ -796,10 +807,9 @@ do else cp -a ${lib}.so $destdir/$libbaseso fi - # Emulate ldconfig - ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done cd .. +cc-base/elf/ldconfig -vn $destdir } # Install power-optimized glibc @@ -814,7 +824,7 @@ cd .. install_optimized_variant power7 power7 ".." %endif %if %{powerpc_optimize_cpu_cell} - install_optimized_variant ppc-cell-be ppc-cell-be ".." + install_optimized_variant ppc-cell-be ppc-cell-be ".." %endif %if %{powerpc_optimize_cpu_power6} # power6 is compatible with power6x @@ -822,17 +832,23 @@ cd .. if test -d %{buildroot}/%{_lib}/power6; then mkdir -p %{buildroot}/%{_lib}/power6x for i in %{buildroot}/%{_lib}/power6/*.so; do - b=`basename $i` - ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - libbase=${b%.so} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Emulate ldconfig - ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) + b=$(basename $i) + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b done + cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x fi %endif %endif # optimize_power +%ifarch i686 x86_64 +cd cc-noelision +destdir=$RPM_BUILD_ROOT/%{_lib}/noelision +mkdir -p $destdir +install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +cd .. +cc-base/elf/ldconfig -vn $destdir +%endif + # Install locales %if %{build_locales} # XXX Do not install locales in parallel! @@ -1181,6 +1197,9 @@ exit 0 %{optimized_libs ppc-cell-be} %endif %endif # optimize_power +%ifarch i686 x86_64 +/%{_lib}/noelision +%endif %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig %{_bindir}/gencat @@ -1201,10 +1220,7 @@ exit 0 %ifarch i586 %files obsolete %defattr (755,root,root,755) -%dir /%{_lib}/obsolete/ - %dir /%{_lib}/obsolete/noversion - /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so - /%{_lib}/obsolete/noversion/libNoVersion.so.1 +/%{_lib}/obsolete %endif %files locale -f libc.lang diff --git a/glibc.changes b/glibc.changes index 8292fd9..891e9f3 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Thu May 15 15:45:03 UTC 2014 - schwab@suse.de + +- add non-elision-enabled libpthread + +------------------------------------------------------------------- +Mon May 12 13:22:40 UTC 2014 - schwab@suse.de + +- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ + #16932) + +------------------------------------------------------------------- +Wed May 7 10:13:24 UTC 2014 - schwab@suse.de + +- getaddrinfo-uninit-result.patch: fix parsing of getai result for + IPv6-only request (bnc#876521) + ------------------------------------------------------------------- Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 1673831..f17140d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -254,6 +254,8 @@ Patch1009: ibm-long-double-math.patch Patch1010: ibm-long-double-frexpl.patch # PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) Patch1011: aarch64-setcontext.patch +# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) +Patch1012: nss-nis-stack-use.patch ### # Patches awaiting upstream approval @@ -480,6 +482,7 @@ rm nscd/s-stamp %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 +%patch1012 -p1 %patch2000 -p1 %patch2001 -p1 @@ -623,17 +626,21 @@ configure_and_build_glibc() { profile="--enable-profile" fi %endif - CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + elision=--enable-lock-elision + if [ "$dirname" = "noelision" ]; then + elision=--disable-lock-elision + fi + ../configure \ + CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ + CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ - $profile \ + $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif - --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -695,6 +702,10 @@ configure_and_build_glibc() { %endif %endif # optimize_power +%ifarch i686 x86_64 +configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +%endif + # # Build html documentation # @@ -796,10 +807,9 @@ do else cp -a ${lib}.so $destdir/$libbaseso fi - # Emulate ldconfig - ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done cd .. +cc-base/elf/ldconfig -vn $destdir } # Install power-optimized glibc @@ -814,7 +824,7 @@ cd .. install_optimized_variant power7 power7 ".." %endif %if %{powerpc_optimize_cpu_cell} - install_optimized_variant ppc-cell-be ppc-cell-be ".." + install_optimized_variant ppc-cell-be ppc-cell-be ".." %endif %if %{powerpc_optimize_cpu_power6} # power6 is compatible with power6x @@ -822,17 +832,23 @@ cd .. if test -d %{buildroot}/%{_lib}/power6; then mkdir -p %{buildroot}/%{_lib}/power6x for i in %{buildroot}/%{_lib}/power6/*.so; do - b=`basename $i` - ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - libbase=${b%.so} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Emulate ldconfig - ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) + b=$(basename $i) + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b done + cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x fi %endif %endif # optimize_power +%ifarch i686 x86_64 +cd cc-noelision +destdir=$RPM_BUILD_ROOT/%{_lib}/noelision +mkdir -p $destdir +install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +cd .. +cc-base/elf/ldconfig -vn $destdir +%endif + # Install locales %if %{build_locales} # XXX Do not install locales in parallel! @@ -1181,6 +1197,9 @@ exit 0 %{optimized_libs ppc-cell-be} %endif %endif # optimize_power +%ifarch i686 x86_64 +/%{_lib}/noelision +%endif %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig %{_bindir}/gencat @@ -1201,10 +1220,7 @@ exit 0 %ifarch i586 %files obsolete %defattr (755,root,root,755) -%dir /%{_lib}/obsolete/ - %dir /%{_lib}/obsolete/noversion - /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so - /%{_lib}/obsolete/noversion/libNoVersion.so.1 +/%{_lib}/obsolete %endif %files locale -f libc.lang diff --git a/nss-nis-stack-use.patch b/nss-nis-stack-use.patch new file mode 100644 index 0000000..6d0309f --- /dev/null +++ b/nss-nis-stack-use.patch @@ -0,0 +1,111 @@ +2014-05-12 Andreas Schwab + + [BZ #16932] + * nis/nss_nis/nis-hosts.c (internal_gethostbyname2_r) + (_nss_nis_gethostbyname4_r): Return error if item length is larger + than maximum RPC packet size. + * nis/nss_nis/nis-initgroups.c (initgroups_netid): Likewise. + * nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Likewise. + * nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r) + (_nss_nis_getservbyport_r): Likewise. + +Index: glibc-2.19/nis/nss_nis/nis-hosts.c +=================================================================== +--- glibc-2.19.orig/nis/nss_nis/nis-hosts.c ++++ glibc-2.19/nis/nss_nis/nis-hosts.c +@@ -270,6 +270,13 @@ internal_gethostbyname2_r (const char *n + + /* Convert name to lowercase. */ + size_t namlen = strlen (name); ++ /* Limit name length to the maximum size of an RPC packet. */ ++ if (namlen > UDPMSGSIZE) ++ { ++ *errnop = ERANGE; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + char name2[namlen + 1]; + size_t i; + +@@ -461,6 +468,13 @@ _nss_nis_gethostbyname4_r (const char *n + + /* Convert name to lowercase. */ + size_t namlen = strlen (name); ++ /* Limit name length to the maximum size of an RPC packet. */ ++ if (namlen > UDPMSGSIZE) ++ { ++ *errnop = ERANGE; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + char name2[namlen + 1]; + size_t i; + +Index: glibc-2.19/nis/nss_nis/nis-initgroups.c +=================================================================== +--- glibc-2.19.orig/nis/nss_nis/nis-initgroups.c ++++ glibc-2.19/nis/nss_nis/nis-initgroups.c +@@ -150,6 +150,13 @@ initgroups_netid (uid_t uid, gid_t group + gid_t **groupsp, long int limit, int *errnop, + const char *domainname) + { ++ /* Limit domainname length to the maximum size of an RPC packet. */ ++ if (strlen (domainname) > UDPMSGSIZE) ++ { ++ *errnop = ERANGE; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + /* Prepare the key. The form is "unix.UID@DOMAIN" with the UID and + DOMAIN field filled in appropriately. */ + char key[sizeof ("unix.@") + sizeof (uid_t) * 3 + strlen (domainname)]; +Index: glibc-2.19/nis/nss_nis/nis-network.c +=================================================================== +--- glibc-2.19.orig/nis/nss_nis/nis-network.c ++++ glibc-2.19/nis/nss_nis/nis-network.c +@@ -179,6 +179,13 @@ _nss_nis_getnetbyname_r (const char *nam + + /* Convert name to lowercase. */ + size_t namlen = strlen (name); ++ /* Limit name length to the maximum size of an RPC packet. */ ++ if (namlen > UDPMSGSIZE) ++ { ++ *errnop = ERANGE; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + char name2[namlen + 1]; + size_t i; + +Index: glibc-2.19/nis/nss_nis/nis-service.c +=================================================================== +--- glibc-2.19.orig/nis/nss_nis/nis-service.c ++++ glibc-2.19/nis/nss_nis/nis-service.c +@@ -271,6 +271,13 @@ _nss_nis_getservbyname_r (const char *na + /* If the protocol is given, we could try if our NIS server knows + about services.byservicename map. If yes, we only need one query. */ + size_t keylen = strlen (name) + (protocol ? 1 + strlen (protocol) : 0); ++ /* Limit key length to the maximum size of an RPC packet. */ ++ if (keylen > UDPMSGSIZE) ++ { ++ *errnop = ERANGE; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + char key[keylen + 1]; + + /* key is: "name/proto" */ +@@ -355,6 +362,13 @@ _nss_nis_getservbyport_r (int port, cons + Otherwise try first port/tcp, then port/udp and then fallback + to sequential scanning of services.byname. */ + const char *proto = protocol != NULL ? protocol : "tcp"; ++ /* Limit protocol name length to the maximum size of an RPC packet. */ ++ if (strlen (proto) > UDPMSGSIZE) ++ { ++ *errnop = ERANGE; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + do + { + /* key is: "port/proto" */ From 3d30c029a1a0997ef3d154683dc4091b97fe1be0aad9bad7b7ec41ca029e5b4c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 23 Jun 2014 07:23:33 +0000 Subject: [PATCH 166/204] Accepting request 237681 from Base:System - psfaa.patch: copy filename argument in posix_spawn_file_actions_addopen (CVE-2014-4043, bnc#882600, BZ #17048) - glibc-memset-nontemporal.diff: Speedup memset on x86_64 (bnc#868622, BZ #16830) (forwarded request 237680 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/237681 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=174 --- glibc-memset-nontemporal.diff | 40 ++++++++++ glibc-testsuite.changes | 12 +++ glibc-testsuite.spec | 6 ++ glibc-utils.changes | 12 +++ glibc-utils.spec | 6 ++ glibc.changes | 12 +++ glibc.spec | 6 ++ psfaa.patch | 139 ++++++++++++++++++++++++++++++++++ 8 files changed, 233 insertions(+) create mode 100644 glibc-memset-nontemporal.diff create mode 100644 psfaa.patch diff --git a/glibc-memset-nontemporal.diff b/glibc-memset-nontemporal.diff new file mode 100644 index 0000000..413b515 --- /dev/null +++ b/glibc-memset-nontemporal.diff @@ -0,0 +1,40 @@ +Fix for bnc #868622, slow memset for large block sizes. + +diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S +index db4fb84..9c42018 100644 +--- a/sysdeps/x86_64/memset.S ++++ b/sysdeps/x86_64/memset.S +@@ -84,6 +84,9 @@ L(loop_start): + movdqu %xmm8, -48(%rdi,%rdx) + movdqu %xmm8, 48(%rdi) + movdqu %xmm8, -64(%rdi,%rdx) ++ mov __x86_shared_cache_size(%rip),%r9d # The largest cache size ++ cmp %r9,%rdx ++ ja L(nt_move) + addq %rdi, %rdx + andq $-64, %rdx + cmpq %rdx, %rcx +@@ -99,6 +102,23 @@ L(loop): + jne L(loop) + rep + ret ++L(nt_move): ++ addq %rdi, %rdx ++ andq $-64, %rdx ++ cmpq %rdx, %rcx ++ je L(return) ++ .p2align 4 ++L(nt_loop): ++ movntdq %xmm8, (%rcx) ++ movntdq %xmm8, 16(%rcx) ++ movntdq %xmm8, 32(%rcx) ++ movntdq %xmm8, 48(%rcx) ++ addq $64, %rcx ++ cmpq %rcx, %rdx ++ jne L(nt_loop) ++ sfence ++ rep ++ ret + L(less_16_bytes): + movq %xmm8, %rcx + testb $24, %dl diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 891e9f3..0ad0a2d 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de + +- psfaa.patch: copy filename argument in posix_spawn_file_actions_addopen + (CVE-2014-4043, bnc#882600, BZ #17048) + +------------------------------------------------------------------- +Wed May 28 15:11:45 UTC 2014 - matz@suse.de + +- glibc-memset-nontemporal.diff: Speedup memset on x86_64 + (bnc#868622, BZ #16830) + ------------------------------------------------------------------- Thu May 15 15:45:03 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 8b6b3a9..2b5fe93 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -256,6 +256,8 @@ Patch1010: ibm-long-double-frexpl.patch Patch1011: aarch64-setcontext.patch # PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) Patch1012: nss-nis-stack-use.patch +# PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) +Patch1013: psfaa.patch ### # Patches awaiting upstream approval @@ -270,6 +272,8 @@ Patch2002: ldd-system-interp.patch Patch2003: abort-no-flush.patch # PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) Patch2004: pthread-mutex-trylock-elision.patch +# PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) +Patch2005: glibc-memset-nontemporal.diff # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -483,12 +487,14 @@ rm nscd/s-stamp %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 +%patch1013 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 +%patch2005 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 891e9f3..0ad0a2d 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de + +- psfaa.patch: copy filename argument in posix_spawn_file_actions_addopen + (CVE-2014-4043, bnc#882600, BZ #17048) + +------------------------------------------------------------------- +Wed May 28 15:11:45 UTC 2014 - matz@suse.de + +- glibc-memset-nontemporal.diff: Speedup memset on x86_64 + (bnc#868622, BZ #16830) + ------------------------------------------------------------------- Thu May 15 15:45:03 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 8d93109..6acdd36 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -255,6 +255,8 @@ Patch1010: ibm-long-double-frexpl.patch Patch1011: aarch64-setcontext.patch # PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) Patch1012: nss-nis-stack-use.patch +# PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) +Patch1013: psfaa.patch ### # Patches awaiting upstream approval @@ -269,6 +271,8 @@ Patch2002: ldd-system-interp.patch Patch2003: abort-no-flush.patch # PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) Patch2004: pthread-mutex-trylock-elision.patch +# PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) +Patch2005: glibc-memset-nontemporal.diff # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -483,12 +487,14 @@ rm nscd/s-stamp %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 +%patch1013 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 +%patch2005 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 891e9f3..0ad0a2d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de + +- psfaa.patch: copy filename argument in posix_spawn_file_actions_addopen + (CVE-2014-4043, bnc#882600, BZ #17048) + +------------------------------------------------------------------- +Wed May 28 15:11:45 UTC 2014 - matz@suse.de + +- glibc-memset-nontemporal.diff: Speedup memset on x86_64 + (bnc#868622, BZ #16830) + ------------------------------------------------------------------- Thu May 15 15:45:03 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index f17140d..a4f6b26 100644 --- a/glibc.spec +++ b/glibc.spec @@ -256,6 +256,8 @@ Patch1010: ibm-long-double-frexpl.patch Patch1011: aarch64-setcontext.patch # PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) Patch1012: nss-nis-stack-use.patch +# PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) +Patch1013: psfaa.patch ### # Patches awaiting upstream approval @@ -270,6 +272,8 @@ Patch2002: ldd-system-interp.patch Patch2003: abort-no-flush.patch # PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) Patch2004: pthread-mutex-trylock-elision.patch +# PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) +Patch2005: glibc-memset-nontemporal.diff # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -483,12 +487,14 @@ rm nscd/s-stamp %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 +%patch1013 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 +%patch2005 -p1 %patch3000 diff --git a/psfaa.patch b/psfaa.patch new file mode 100644 index 0000000..f3596ae --- /dev/null +++ b/psfaa.patch @@ -0,0 +1,139 @@ +2014-06-11 Florian Weimer + + [BZ #17048] + * posix/spawn_int.h (struct __spawn_action): Make the path string + non-const to support deallocation. + * posix/spawn_faction_addopen.c + (posix_spawn_file_actions_addopen): Make a copy of the pathname. + * posix/spawn_faction_destroy.c + (posix_spawn_file_actions_destroy): Adjust comment. Deallocate + path in all spawn_do_open actions. + * posix/tst-spawn.c (do_test): Exercise the copy operation in + posix_spawn_file_actions_addopen. + +Index: glibc-2.19/posix/spawn_faction_addopen.c +=================================================================== +--- glibc-2.19.orig/posix/spawn_faction_addopen.c ++++ glibc-2.19/posix/spawn_faction_addopen.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + #include "spawn_int.h" + +@@ -35,17 +36,24 @@ posix_spawn_file_actions_addopen (posix_ + if (fd < 0 || fd >= maxfd) + return EBADF; + ++ char *path_copy = strdup (path); ++ if (path_copy == NULL) ++ return ENOMEM; ++ + /* Allocate more memory if needed. */ + if (file_actions->__used == file_actions->__allocated + && __posix_spawn_file_actions_realloc (file_actions) != 0) +- /* This can only mean we ran out of memory. */ +- return ENOMEM; ++ { ++ /* This can only mean we ran out of memory. */ ++ free (path_copy); ++ return ENOMEM; ++ } + + /* Add the new value. */ + rec = &file_actions->__actions[file_actions->__used]; + rec->tag = spawn_do_open; + rec->action.open_action.fd = fd; +- rec->action.open_action.path = path; ++ rec->action.open_action.path = path_copy; + rec->action.open_action.oflag = oflag; + rec->action.open_action.mode = mode; + +Index: glibc-2.19/posix/spawn_faction_destroy.c +=================================================================== +--- glibc-2.19.orig/posix/spawn_faction_destroy.c ++++ glibc-2.19/posix/spawn_faction_destroy.c +@@ -18,11 +18,29 @@ + #include + #include + +-/* Initialize data structure for file attribute for `spawn' call. */ ++#include "spawn_int.h" ++ ++/* Deallocate the file actions. */ + int + posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions) + { +- /* Free the memory allocated. */ ++ /* Free the paths in the open actions. */ ++ for (int i = 0; i < file_actions->__used; ++i) ++ { ++ struct __spawn_action *sa = &file_actions->__actions[i]; ++ switch (sa->tag) ++ { ++ case spawn_do_open: ++ free (sa->action.open_action.path); ++ break; ++ case spawn_do_close: ++ case spawn_do_dup2: ++ /* No cleanup required. */ ++ break; ++ } ++ } ++ ++ /* Free the array of actions. */ + free (file_actions->__actions); + return 0; + } +Index: glibc-2.19/posix/spawn_int.h +=================================================================== +--- glibc-2.19.orig/posix/spawn_int.h ++++ glibc-2.19/posix/spawn_int.h +@@ -22,7 +22,7 @@ struct __spawn_action + struct + { + int fd; +- const char *path; ++ char *path; + int oflag; + mode_t mode; + } open_action; +Index: glibc-2.19/posix/tst-spawn.c +=================================================================== +--- glibc-2.19.orig/posix/tst-spawn.c ++++ glibc-2.19/posix/tst-spawn.c +@@ -168,6 +168,7 @@ do_test (int argc, char *argv[]) + char fd2name[18]; + char fd3name[18]; + char fd4name[18]; ++ char *name3_copy; + char *spargv[12]; + int i; + +@@ -222,9 +223,15 @@ do_test (int argc, char *argv[]) + if (posix_spawn_file_actions_addclose (&actions, fd1) != 0) + error (EXIT_FAILURE, errno, "posix_spawn_file_actions_addclose"); + /* We want to open the third file. */ +- if (posix_spawn_file_actions_addopen (&actions, fd3, name3, ++ name3_copy = strdup (name3); ++ if (name3_copy == NULL) ++ error (EXIT_FAILURE, errno, "strdup"); ++ if (posix_spawn_file_actions_addopen (&actions, fd3, name3_copy, + O_RDONLY, 0666) != 0) + error (EXIT_FAILURE, errno, "posix_spawn_file_actions_addopen"); ++ /* Overwrite the name to check that a copy has been made. */ ++ memset (name3_copy, 'X', strlen (name3_copy)); ++ + /* We dup the second descriptor. */ + fd4 = MAX (2, MAX (fd1, MAX (fd2, fd3))) + 1; + if (posix_spawn_file_actions_adddup2 (&actions, fd2, fd4) != 0) +@@ -253,6 +260,7 @@ do_test (int argc, char *argv[]) + /* Cleanup. */ + if (posix_spawn_file_actions_destroy (&actions) != 0) + error (EXIT_FAILURE, errno, "posix_spawn_file_actions_destroy"); ++ free (name3_copy); + + /* Wait for the child. */ + if (waitpid (pid, &status, 0) != pid) From c6e5fcd0d13c277a7e150d515f28d5252fc9495a75da8fed37e25df83a400e19 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 25 Jun 2014 09:47:19 +0000 Subject: [PATCH 167/204] Accepting request 238382 from Base:System - nss-files-long-lines.patch: Don't ignore too long lines in nss_files (bnc#883217, BZ #17079) - Remove locale.1, localedef.1 and iconvconfig.8 manpages, now included in the man-pages package (bnc#880703) - manpages.patch: update (forwarded request 238380 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/238382 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=175 --- glibc-testsuite.changes | 9 +++++++++ glibc-testsuite.spec | 6 +++--- glibc-utils.changes | 9 +++++++++ glibc-utils.spec | 6 +++--- glibc.changes | 9 +++++++++ glibc.spec | 6 +++--- manpages.patch | 22 ---------------------- manpages.tar.bz2 | 4 ++-- nss-files-long-lines.patch | 24 ++++++++++++++++++++++++ 9 files changed, 62 insertions(+), 33 deletions(-) create mode 100644 nss-files-long-lines.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 0ad0a2d..78d4726 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de + +- nss-files-long-lines.patch: Don't ignore too long lines in nss_files + (bnc#883217, BZ #17079) +- Remove locale.1, localedef.1 and iconvconfig.8 manpages, now included in + the man-pages package (bnc#880703) +- manpages.patch: update + ------------------------------------------------------------------- Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 2b5fe93..3a4bf4b 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -258,6 +258,8 @@ Patch1011: aarch64-setcontext.patch Patch1012: nss-nis-stack-use.patch # PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) Patch1013: psfaa.patch +# PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) +Patch1014: nss-files-long-lines.patch ### # Patches awaiting upstream approval @@ -488,6 +490,7 @@ rm nscd/s-stamp %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%patch1014 -p1 %patch2000 -p1 %patch2001 -p1 @@ -1089,10 +1092,7 @@ exit 0 %config(noreplace) /etc/default/nss %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz -%doc %{_mandir}/man1/locale.1.gz -%doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* -%doc %{_mandir}/man8/iconvconfig.8.gz /%{_lib}/ld-%{glibc_major_version}.so # Each architecture has a different name for the dynamic linker: diff --git a/glibc-utils.changes b/glibc-utils.changes index 0ad0a2d..78d4726 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de + +- nss-files-long-lines.patch: Don't ignore too long lines in nss_files + (bnc#883217, BZ #17079) +- Remove locale.1, localedef.1 and iconvconfig.8 manpages, now included in + the man-pages package (bnc#880703) +- manpages.patch: update + ------------------------------------------------------------------- Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 6acdd36..5758ee1 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -257,6 +257,8 @@ Patch1011: aarch64-setcontext.patch Patch1012: nss-nis-stack-use.patch # PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) Patch1013: psfaa.patch +# PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) +Patch1014: nss-files-long-lines.patch ### # Patches awaiting upstream approval @@ -488,6 +490,7 @@ rm nscd/s-stamp %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%patch1014 -p1 %patch2000 -p1 %patch2001 -p1 @@ -1089,10 +1092,7 @@ exit 0 %config(noreplace) /etc/default/nss %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz -%doc %{_mandir}/man1/locale.1.gz -%doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* -%doc %{_mandir}/man8/iconvconfig.8.gz /%{_lib}/ld-%{glibc_major_version}.so # Each architecture has a different name for the dynamic linker: diff --git a/glibc.changes b/glibc.changes index 0ad0a2d..78d4726 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de + +- nss-files-long-lines.patch: Don't ignore too long lines in nss_files + (bnc#883217, BZ #17079) +- Remove locale.1, localedef.1 and iconvconfig.8 manpages, now included in + the man-pages package (bnc#880703) +- manpages.patch: update + ------------------------------------------------------------------- Mon Jun 16 08:27:38 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index a4f6b26..b5414d2 100644 --- a/glibc.spec +++ b/glibc.spec @@ -258,6 +258,8 @@ Patch1011: aarch64-setcontext.patch Patch1012: nss-nis-stack-use.patch # PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) Patch1013: psfaa.patch +# PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) +Patch1014: nss-files-long-lines.patch ### # Patches awaiting upstream approval @@ -488,6 +490,7 @@ rm nscd/s-stamp %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%patch1014 -p1 %patch2000 -p1 %patch2001 -p1 @@ -1089,10 +1092,7 @@ exit 0 %config(noreplace) /etc/default/nss %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz -%doc %{_mandir}/man1/locale.1.gz -%doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* -%doc %{_mandir}/man8/iconvconfig.8.gz /%{_lib}/ld-%{glibc_major_version}.so # Each architecture has a different name for the dynamic linker: diff --git a/manpages.patch b/manpages.patch index 504238f..b26eab0 100644 --- a/manpages.patch +++ b/manpages.patch @@ -1,25 +1,3 @@ -Index: manpages/locale.1 -=================================================================== ---- manpages/locale.1.orig -+++ manpages/locale.1 -@@ -247,17 +247,6 @@ This environment variable can switch aga - \& The directory where locale data is stored. By default, /usr/lib/locale is used. - .Ve - --.SH "FILES" --.IX Header "FILES" --.PP --.PD 0 --.TP 8 --\fI/usr/share/i18n/SUPPORTED\fP --List of supported values (and their associated encoding) for the locale name. --This representation is recommended over --\fB\-\-all\-locales\fR one, due being the system wide supported values. --.PP -- - .SH "AUTHOR" - .IX Header "AUTHOR" - \&\fIlocale\fR was written by Ulrich Drepper for the \s-1GNU\s0 C Library. Index: manpages/locale.alias.5 =================================================================== --- manpages/locale.alias.5.orig diff --git a/manpages.tar.bz2 b/manpages.tar.bz2 index bcc007b..7f16f69 100644 --- a/manpages.tar.bz2 +++ b/manpages.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19a74b49f1afe63adb4e79accb214e2ed77d74af7ca0054af31322d64f3e14f1 -size 15972 +oid sha256:f05635b9beaec8379f31f0f0bc4ce2382b4ba734e97319ae37077e1eaa97f826 +size 11861 diff --git a/nss-files-long-lines.patch b/nss-files-long-lines.patch new file mode 100644 index 0000000..ad1e169 --- /dev/null +++ b/nss-files-long-lines.patch @@ -0,0 +1,24 @@ +2014-06-23 Andreas Schwab + + [BZ #17079] + * nss/nss_files/files-XXX.c (get_contents): Store overflow marker + before reading the next line. + +Index: glibc-2.19/nss/nss_files/files-XXX.c +=================================================================== +--- glibc-2.19.orig/nss/nss_files/files-XXX.c ++++ glibc-2.19/nss/nss_files/files-XXX.c +@@ -198,10 +198,12 @@ get_contents (char *linebuf, size_t len, + { + int curlen = ((remaining_len > (size_t) INT_MAX) ? INT_MAX + : remaining_len); +- char *p = fgets_unlocked (curbuf, curlen, stream); + ++ /* Terminate the line so that we can test for overflow. */ + ((unsigned char *) curbuf)[curlen - 1] = 0xff; + ++ char *p = fgets_unlocked (curbuf, curlen, stream); ++ + /* EOF or read error. */ + if (p == NULL) + return gcr_error; From e247a669c04ad4f451df80f9b12db51d90e9592cfb5778c0a751c89250bfd4d3 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 19 Jul 2014 09:04:13 +0000 Subject: [PATCH 168/204] Accepting request 240898 from Base:System - setlocale-directory-traversal.patch: Directory traversal in locale environment handling (CVE-2014-0475, bnc#887022, BZ #17137) - Remove the ppc64le check-abi workaround, no longer needed (forwarded request 240897 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/240898 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=176 --- glibc-testsuite.changes | 7 + glibc-testsuite.spec | 9 +- glibc-utils.changes | 7 + glibc-utils.spec | 9 +- glibc.changes | 7 + glibc.spec | 9 +- setlocale-directory-traversal.patch | 648 ++++++++++++++++++++++++++++ 7 files changed, 678 insertions(+), 18 deletions(-) create mode 100644 setlocale-directory-traversal.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 78d4726..229647c 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de + +- setlocale-directory-traversal.patch: Directory traversal in locale + environment handling (CVE-2014-0475, bnc#887022, BZ #17137) +- Remove the ppc64le check-abi workaround, no longer needed + ------------------------------------------------------------------- Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 3a4bf4b..0b42b62 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -260,6 +260,8 @@ Patch1012: nss-nis-stack-use.patch Patch1013: psfaa.patch # PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) Patch1014: nss-files-long-lines.patch +# PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) +Patch1015: setlocale-directory-traversal.patch ### # Patches awaiting upstream approval @@ -491,6 +493,7 @@ rm nscd/s-stamp %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 +%patch1015 -p1 %patch2000 -p1 %patch2001 -p1 @@ -521,12 +524,6 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch -# For ppc64le check-abi requires some files to be named *-le.abilist -# also for libs that only have an empty abilist, so just copy over -for f in sysdeps/generic/*.abilist; do - cp $f ${f/./-le.} -done - ####################################################################### ### ### BUILD diff --git a/glibc-utils.changes b/glibc-utils.changes index 78d4726..229647c 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de + +- setlocale-directory-traversal.patch: Directory traversal in locale + environment handling (CVE-2014-0475, bnc#887022, BZ #17137) +- Remove the ppc64le check-abi workaround, no longer needed + ------------------------------------------------------------------- Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 5758ee1..cdbcbc9 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -259,6 +259,8 @@ Patch1012: nss-nis-stack-use.patch Patch1013: psfaa.patch # PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) Patch1014: nss-files-long-lines.patch +# PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) +Patch1015: setlocale-directory-traversal.patch ### # Patches awaiting upstream approval @@ -491,6 +493,7 @@ rm nscd/s-stamp %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 +%patch1015 -p1 %patch2000 -p1 %patch2001 -p1 @@ -521,12 +524,6 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch -# For ppc64le check-abi requires some files to be named *-le.abilist -# also for libs that only have an empty abilist, so just copy over -for f in sysdeps/generic/*.abilist; do - cp $f ${f/./-le.} -done - ####################################################################### ### ### BUILD diff --git a/glibc.changes b/glibc.changes index 78d4726..229647c 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de + +- setlocale-directory-traversal.patch: Directory traversal in locale + environment handling (CVE-2014-0475, bnc#887022, BZ #17137) +- Remove the ppc64le check-abi workaround, no longer needed + ------------------------------------------------------------------- Mon Jun 23 10:33:40 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index b5414d2..789b94a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -260,6 +260,8 @@ Patch1012: nss-nis-stack-use.patch Patch1013: psfaa.patch # PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) Patch1014: nss-files-long-lines.patch +# PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) +Patch1015: setlocale-directory-traversal.patch ### # Patches awaiting upstream approval @@ -491,6 +493,7 @@ rm nscd/s-stamp %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 +%patch1015 -p1 %patch2000 -p1 %patch2001 -p1 @@ -521,12 +524,6 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch -# For ppc64le check-abi requires some files to be named *-le.abilist -# also for libs that only have an empty abilist, so just copy over -for f in sysdeps/generic/*.abilist; do - cp $f ${f/./-le.} -done - ####################################################################### ### ### BUILD diff --git a/setlocale-directory-traversal.patch b/setlocale-directory-traversal.patch new file mode 100644 index 0000000..599661c --- /dev/null +++ b/setlocale-directory-traversal.patch @@ -0,0 +1,648 @@ +2014-07-02 Florian Weimer + + * manual/locale.texi (Locale Names): New section documenting + locale name syntax. Adjust menu and node chaining accordingly. + (Choosing Locale): Reference Locale Names, Locale Categories. + Mention setting LC_ALL=C. Reflect that name syntax is now + documented. + (Locale Categories): New section title. Reference Locale Names. + LC_ALL is an environment variable, but not a category. + (Setting the Locale): Remove "locale -a" invocation and LOCPATH + description, now in Locale Name. Reference that section. Locale + name syntax is now documented. + + [BZ #17137] + * locale/findlocale.c (name_present, valid_locale_name): New + functions. + (_nl_find_locale): Use the loc_name variable to store name + candidates. Call name_present and valid_locale_name to check and + validate locale names. Return an error if the locale is invalid. + + * localedata/tst-setlocale3.c: New file. + * localedata/Makefile (tests): Add tst-setlocale3. + (tst-setlocale3-ENV): New variable. + + * locale/setlocale.c (setlocale): Use strdup for allocating + composite name copy. + +Index: glibc-2.19/locale/findlocale.c +=================================================================== +--- glibc-2.19.orig/locale/findlocale.c ++++ glibc-2.19/locale/findlocale.c +@@ -17,6 +17,7 @@ + . */ + + #include ++#include + #include + #include + #include +@@ -57,6 +58,45 @@ struct loaded_l10nfile *_nl_locale_file_ + + const char _nl_default_locale_path[] attribute_hidden = LOCALEDIR; + ++/* Checks if the name is actually present, that is, not NULL and not ++ empty. */ ++static inline int ++name_present (const char *name) ++{ ++ return name != NULL && name[0] != '\0'; ++} ++ ++/* Checks that the locale name neither extremely long, nor contains a ++ ".." path component (to prevent directory traversal). */ ++static inline int ++valid_locale_name (const char *name) ++{ ++ /* Not set. */ ++ size_t namelen = strlen (name); ++ /* Name too long. The limit is arbitrary and prevents stack overflow ++ issues later. */ ++ if (__glibc_unlikely (namelen > 255)) ++ return 0; ++ /* Directory traversal attempt. */ ++ static const char slashdot[4] = {'/', '.', '.', '/'}; ++ if (__glibc_unlikely (memmem (name, namelen, ++ slashdot, sizeof (slashdot)) != NULL)) ++ return 0; ++ if (namelen == 2 && __glibc_unlikely (name[0] == '.' && name [1] == '.')) ++ return 0; ++ if (namelen >= 3 ++ && __glibc_unlikely (((name[0] == '.' ++ && name[1] == '.' ++ && name[2] == '/') ++ || (name[namelen - 3] == '/' ++ && name[namelen - 2] == '.' ++ && name[namelen - 1] == '.')))) ++ return 0; ++ /* If there is a slash in the name, it must start with one. */ ++ if (__glibc_unlikely (memchr (name, '/', namelen) != NULL) && name[0] != '/') ++ return 0; ++ return 1; ++} + + struct __locale_data * + internal_function +@@ -65,7 +105,7 @@ _nl_find_locale (const char *locale_path + { + int mask; + /* Name of the locale for this category. */ +- char *loc_name; ++ char *loc_name = (char *) *name; + const char *language; + const char *modifier; + const char *territory; +@@ -73,31 +113,39 @@ _nl_find_locale (const char *locale_path + const char *normalized_codeset; + struct loaded_l10nfile *locale_file; + +- if ((*name)[0] == '\0') ++ if (loc_name[0] == '\0') + { + /* The user decides which locale to use by setting environment + variables. */ +- *name = getenv ("LC_ALL"); +- if (*name == NULL || (*name)[0] == '\0') +- *name = getenv (_nl_category_names.str ++ loc_name = getenv ("LC_ALL"); ++ if (!name_present (loc_name)) ++ loc_name = getenv (_nl_category_names.str + + _nl_category_name_idxs[category]); +- if (*name == NULL || (*name)[0] == '\0') +- *name = getenv ("LANG"); ++ if (!name_present (loc_name)) ++ loc_name = getenv ("LANG"); ++ if (!name_present (loc_name)) ++ loc_name = (char *) _nl_C_name; + } + +- if (*name == NULL || (*name)[0] == '\0' +- || (__builtin_expect (__libc_enable_secure, 0) +- && strchr (*name, '/') != NULL)) +- *name = (char *) _nl_C_name; ++ /* We used to fall back to the C locale if the name contains a slash ++ character '/', but we now check for directory traversal in ++ valid_locale_name, so this is no longer necessary. */ + +- if (__builtin_expect (strcmp (*name, _nl_C_name), 1) == 0 +- || __builtin_expect (strcmp (*name, _nl_POSIX_name), 1) == 0) ++ if (__builtin_expect (strcmp (loc_name, _nl_C_name), 1) == 0 ++ || __builtin_expect (strcmp (loc_name, _nl_POSIX_name), 1) == 0) + { + /* We need not load anything. The needed data is contained in + the library itself. */ + *name = (char *) _nl_C_name; + return _nl_C[category]; + } ++ else if (!valid_locale_name (loc_name)) ++ { ++ __set_errno (EINVAL); ++ return NULL; ++ } ++ ++ *name = loc_name; + + /* We really have to load some data. First we try the archive, + but only if there was no LOCPATH environment variable specified. */ +Index: glibc-2.19/locale/setlocale.c +=================================================================== +--- glibc-2.19.orig/locale/setlocale.c ++++ glibc-2.19/locale/setlocale.c +@@ -272,6 +272,8 @@ setlocale (int category, const char *loc + of entries of the form `CATEGORY=VALUE'. */ + const char *newnames[__LC_LAST]; + struct __locale_data *newdata[__LC_LAST]; ++ /* Copy of the locale argument, for in-place splitting. */ ++ char *locale_copy = NULL; + + /* Set all name pointers to the argument name. */ + for (category = 0; category < __LC_LAST; ++category) +@@ -281,7 +283,13 @@ setlocale (int category, const char *loc + if (__builtin_expect (strchr (locale, ';') != NULL, 0)) + { + /* This is a composite name. Make a copy and split it up. */ +- char *np = strdupa (locale); ++ locale_copy = strdup (locale); ++ if (__glibc_unlikely (locale_copy == NULL)) ++ { ++ __libc_rwlock_unlock (__libc_setlocale_lock); ++ return NULL; ++ } ++ char *np = locale_copy; + char *cp; + int cnt; + +@@ -299,6 +307,7 @@ setlocale (int category, const char *loc + { + error_return: + __libc_rwlock_unlock (__libc_setlocale_lock); ++ free (locale_copy); + + /* Bogus category name. */ + ERROR_RETURN; +@@ -391,8 +400,9 @@ setlocale (int category, const char *loc + /* Critical section left. */ + __libc_rwlock_unlock (__libc_setlocale_lock); + +- /* Free the resources (the locale path variable). */ ++ /* Free the resources. */ + free (locale_path); ++ free (locale_copy); + + return composite; + } +Index: glibc-2.19/localedata/Makefile +=================================================================== +--- glibc-2.19.orig/localedata/Makefile ++++ glibc-2.19/localedata/Makefile +@@ -77,7 +77,7 @@ locale_test_suite := tst_iswalnum tst_is + + tests = $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \ + tst-leaks tst-mbswcs6 tst-xlocale1 tst-xlocale2 bug-usesetlocale \ +- tst-strfmon1 tst-sscanf bug-setlocale1 tst-setlocale2 ++ tst-strfmon1 tst-sscanf bug-setlocale1 tst-setlocale2 tst-setlocale3 + tests-static = bug-setlocale1-static + tests += $(tests-static) + ifeq (yes,$(build-shared)) +@@ -292,6 +292,7 @@ bug-setlocale1-ARGS = -- $(host-test-pro + bug-setlocale1-static-ENV = $(bug-setlocale1-ENV) + bug-setlocale1-static-ARGS = $(bug-setlocale1-ARGS) + tst-setlocale2-ENV = LOCPATH=$(common-objpfx)localedata ++tst-setlocale3-ENV = LOCPATH=$(common-objpfx)localedata + + $(objdir)/iconvdata/gconv-modules: + $(MAKE) -C ../iconvdata subdir=iconvdata $@ +Index: glibc-2.19/localedata/tst-setlocale3.c +=================================================================== +--- /dev/null ++++ glibc-2.19/localedata/tst-setlocale3.c +@@ -0,0 +1,203 @@ ++/* Regression test for setlocale invalid environment variable handling. ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* The result of setlocale may be overwritten by subsequent calls, so ++ this wrapper makes a copy. */ ++static char * ++setlocale_copy (int category, const char *locale) ++{ ++ const char *result = setlocale (category, locale); ++ if (result == NULL) ++ return NULL; ++ return strdup (result); ++} ++ ++static char *de_locale; ++ ++static void ++setlocale_fail (const char *envstring) ++{ ++ setenv ("LC_CTYPE", envstring, 1); ++ if (setlocale (LC_CTYPE, "") != NULL) ++ { ++ printf ("unexpected setlocale success for \"%s\" locale\n", envstring); ++ exit (1); ++ } ++ const char *newloc = setlocale (LC_CTYPE, NULL); ++ if (strcmp (newloc, de_locale) != 0) ++ { ++ printf ("failed setlocale call \"%s\" changed locale to \"%s\"\n", ++ envstring, newloc); ++ exit (1); ++ } ++} ++ ++static void ++setlocale_success (const char *envstring) ++{ ++ setenv ("LC_CTYPE", envstring, 1); ++ char *newloc = setlocale_copy (LC_CTYPE, ""); ++ if (newloc == NULL) ++ { ++ printf ("setlocale for \"%s\": %m\n", envstring); ++ exit (1); ++ } ++ if (strcmp (newloc, de_locale) == 0) ++ { ++ printf ("setlocale with LC_CTYPE=\"%s\" left locale at \"%s\"\n", ++ envstring, de_locale); ++ exit (1); ++ } ++ if (setlocale (LC_CTYPE, de_locale) == NULL) ++ { ++ printf ("restoring locale \"%s\" with LC_CTYPE=\"%s\": %m\n", ++ de_locale, envstring); ++ exit (1); ++ } ++ char *newloc2 = setlocale_copy (LC_CTYPE, newloc); ++ if (newloc2 == NULL) ++ { ++ printf ("restoring locale \"%s\" following \"%s\": %m\n", ++ newloc, envstring); ++ exit (1); ++ } ++ if (strcmp (newloc, newloc2) != 0) ++ { ++ printf ("representation of locale \"%s\" changed from \"%s\" to \"%s\"", ++ envstring, newloc, newloc2); ++ exit (1); ++ } ++ free (newloc); ++ free (newloc2); ++ ++ if (setlocale (LC_CTYPE, de_locale) == NULL) ++ { ++ printf ("restoring locale \"%s\" with LC_CTYPE=\"%s\": %m\n", ++ de_locale, envstring); ++ exit (1); ++ } ++} ++ ++/* Checks that a known-good locale still works if LC_ALL contains a ++ value which should be ignored. */ ++static void ++setlocale_ignore (const char *to_ignore) ++{ ++ const char *fr_locale = "fr_FR.UTF-8"; ++ setenv ("LC_CTYPE", fr_locale, 1); ++ char *expected_locale = setlocale_copy (LC_CTYPE, ""); ++ if (expected_locale == NULL) ++ { ++ printf ("setlocale with LC_CTYPE=\"%s\" failed: %m\n", fr_locale); ++ exit (1); ++ } ++ if (setlocale (LC_CTYPE, de_locale) == NULL) ++ { ++ printf ("failed to restore locale: %m\n"); ++ exit (1); ++ } ++ unsetenv ("LC_CTYPE"); ++ ++ setenv ("LC_ALL", to_ignore, 1); ++ setenv ("LC_CTYPE", fr_locale, 1); ++ const char *actual_locale = setlocale (LC_CTYPE, ""); ++ if (actual_locale == NULL) ++ { ++ printf ("setlocale with LC_ALL, LC_CTYPE=\"%s\" failed: %m\n", ++ fr_locale); ++ exit (1); ++ } ++ if (strcmp (actual_locale, expected_locale) != 0) ++ { ++ printf ("setlocale under LC_ALL failed: got \"%s\", expected \"%s\"\n", ++ actual_locale, expected_locale); ++ exit (1); ++ } ++ unsetenv ("LC_CTYPE"); ++ setlocale_success (fr_locale); ++ unsetenv ("LC_ALL"); ++ free (expected_locale); ++} ++ ++static int ++do_test (void) ++{ ++ /* The glibc test harness sets this environment variable ++ uncondionally. */ ++ unsetenv ("LC_ALL"); ++ ++ de_locale = setlocale_copy (LC_CTYPE, "de_DE.UTF-8"); ++ if (de_locale == NULL) ++ { ++ printf ("setlocale (LC_CTYPE, \"de_DE.UTF-8\"): %m\n"); ++ return 1; ++ } ++ setlocale_success ("C"); ++ setlocale_success ("en_US.UTF-8"); ++ setlocale_success ("/en_US.UTF-8"); ++ setlocale_success ("//en_US.UTF-8"); ++ setlocale_ignore (""); ++ ++ setlocale_fail ("does-not-exist"); ++ setlocale_fail ("/"); ++ setlocale_fail ("/../localedata/en_US.UTF-8"); ++ setlocale_fail ("en_US.UTF-8/"); ++ setlocale_fail ("en_US.UTF-8/.."); ++ setlocale_fail ("en_US.UTF-8/../en_US.UTF-8"); ++ setlocale_fail ("../localedata/en_US.UTF-8"); ++ { ++ size_t large_length = 1024; ++ char *large_name = malloc (large_length + 1); ++ if (large_name == NULL) ++ { ++ puts ("malloc failure"); ++ return 1; ++ } ++ memset (large_name, '/', large_length); ++ const char *suffix = "en_US.UTF-8"; ++ strcpy (large_name + large_length - strlen (suffix), suffix); ++ setlocale_fail (large_name); ++ free (large_name); ++ } ++ { ++ size_t huge_length = 64 * 1024 * 1024; ++ char *huge_name = malloc (huge_length + 1); ++ if (huge_name == NULL) ++ { ++ puts ("malloc failure"); ++ return 1; ++ } ++ memset (huge_name, 'X', huge_length); ++ huge_name[huge_length] = '\0'; ++ /* Construct a composite locale specification. */ ++ const char *prefix = "LC_CTYPE=de_DE.UTF-8;LC_TIME="; ++ memcpy (huge_name, prefix, strlen (prefix)); ++ setlocale_fail (huge_name); ++ free (huge_name); ++ } ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.19/manual/locale.texi +=================================================================== +--- glibc-2.19.orig/manual/locale.texi ++++ glibc-2.19/manual/locale.texi +@@ -29,6 +29,7 @@ will follow the conventions preferred by + * Setting the Locale:: How a program specifies the locale + with library functions. + * Standard Locales:: Locale names available on all systems. ++* Locale Names:: Format of system-specific locale names. + * Locale Information:: How to access the information for the locale. + * Formatting Numbers:: A dedicated function to format numbers. + * Yes-or-No Questions:: Check a Response against the locale. +@@ -99,14 +100,16 @@ locale named @samp{espana-castellano} to + most of Spain. + + The set of locales supported depends on the operating system you are +-using, and so do their names. We can't make any promises about what +-locales will exist, except for one standard locale called @samp{C} or +-@samp{POSIX}. Later we will describe how to construct locales. +-@comment (@pxref{Building Locale Files}). ++using, and so do their names, except that the standard locale called ++@samp{C} or @samp{POSIX} always exist. @xref{Locale Names}. ++ ++In order to force the system to always use the default locale, the ++user can set the @code{LC_ALL} environment variable to @samp{C}. + + @cindex combining locales +-A user also has the option of specifying different locales for different +-purposes---in effect, choosing a mixture of multiple locales. ++A user also has the option of specifying different locales for ++different purposes---in effect, choosing a mixture of multiple ++locales. @xref{Locale Categories}. + + For example, the user might specify the locale @samp{espana-castellano} + for most purposes, but specify the locale @samp{usa-english} for +@@ -120,7 +123,7 @@ which locales apply. However, the user + for a particular subset of those purposes. + + @node Locale Categories, Setting the Locale, Choosing Locale, Locales +-@section Categories of Activities that Locales Affect ++@section Locale Categories + @cindex categories for locales + @cindex locale categories + +@@ -128,7 +131,11 @@ The purposes that locales serve are grou + that a user or a program can choose the locale for each category + independently. Here is a table of categories; each name is both an + environment variable that a user can set, and a macro name that you can +-use as an argument to @code{setlocale}. ++use as the first argument to @code{setlocale}. ++ ++The contents of the environment variable (or the string in the second ++argument to @code{setlocale}) has to be a valid locale name. ++@xref{Locale Names}. + + @vtable @code + @comment locale.h +@@ -172,7 +179,7 @@ for affirmative and negative responses. + @comment locale.h + @comment ISO + @item LC_ALL +-This is not an environment variable; it is only a macro that you can use ++This is not a category; it is only a macro that you can use + with @code{setlocale} to set a single locale for all purposes. Setting + this environment variable overwrites all selections by the other + @code{LC_*} variables or @code{LANG}. +@@ -355,13 +362,7 @@ The symbols in this section are defined + @c strndup @ascuheap @acsmem + @c strcasecmp_l ok (C locale) + The function @code{setlocale} sets the current locale for category +-@var{category} to @var{locale}. A list of all the locales the system +-provides can be created by running +- +-@pindex locale +-@smallexample +- locale -a +-@end smallexample ++@var{category} to @var{locale}. + + If @var{category} is @code{LC_ALL}, this specifies the locale for all + purposes. The other possible values of @var{category} specify an +@@ -386,10 +387,9 @@ is passed in as @var{locale} parameter. + + When you read the current locale for category @code{LC_ALL}, the value + encodes the entire combination of selected locales for all categories. +-In this case, the value is not just a single locale name. In fact, we +-don't make any promises about what it looks like. But if you specify +-the same ``locale name'' with @code{LC_ALL} in a subsequent call to +-@code{setlocale}, it restores the same combination of locale selections. ++If you specify the same ``locale name'' with @code{LC_ALL} in a ++subsequent call to @code{setlocale}, it restores the same combination ++of locale selections. + + To be sure you can use the returned string encoding the currently selected + locale at a later time, you must make a copy of the string. It is not +@@ -405,20 +405,15 @@ for @var{category}. + If a nonempty string is given for @var{locale}, then the locale of that + name is used if possible. + ++The effective locale name (either the second argument to ++@code{setlocale}, or if the argument is an empty string, the name ++obtained from the process environment) must be valid locale name. ++@xref{Locale Names}. ++ + If you specify an invalid locale name, @code{setlocale} returns a null + pointer and leaves the current locale unchanged. + @end deftypefun + +-The path used for finding locale data can be set using the +-@code{LOCPATH} environment variable. The default path for finding +-locale data is system specific. It is computed from the value given +-as the prefix while configuring the C library. This value normally is +-@file{/usr} or @file{/}. For the former the complete path is: +- +-@smallexample +-/usr/lib/locale +-@end smallexample +- + Here is an example showing how you might use @code{setlocale} to + temporarily switch to a new locale. + +@@ -458,7 +453,7 @@ locale categories, and future versions o + portability, assume that any symbol beginning with @samp{LC_} might be + defined in @file{locale.h}. + +-@node Standard Locales, Locale Information, Setting the Locale, Locales ++@node Standard Locales, Locale Names, Setting the Locale, Locales + @section Standard Locales + + The only locale names you can count on finding on all operating systems +@@ -492,7 +487,94 @@ with the environment, rather than trying + locale explicitly by name. Remember, different machines might have + different sets of locales installed. + +-@node Locale Information, Formatting Numbers, Standard Locales, Locales ++@node Locale Names, Locale Information, Standard Locales, Locales ++@section Locale Names ++ ++The following command prints a list of locales supported by the ++system: ++ ++@pindex locale ++@smallexample ++ locale -a ++@end smallexample ++ ++@strong{Portability Note:} With the notable exception of the standard ++locale names @samp{C} and @samp{POSIX}, locale names are ++system-specific. ++ ++Most locale names follow XPG syntax and consist of up to four parts: ++ ++@smallexample ++@var{language}[_@var{territory}[.@var{codeset}]][@@@var{modifier}] ++@end smallexample ++ ++Beside the first part, all of them are allowed to be missing. If the ++full specified locale is not found, less specific ones are looked for. ++The various parts will be stripped off, in the following order: ++ ++@enumerate ++@item ++codeset ++@item ++normalized codeset ++@item ++territory ++@item ++modifier ++@end enumerate ++ ++For example, the locale name @samp{de_AT.iso885915@@euro} denotes a ++German-language locale for use in Austria, using the ISO-8859-15 ++(Latin-9) character set, and with the Euro as the currency symbol. ++ ++In addition to locale names which follow XPG syntax, systems may ++provide aliases such as @samp{german}. Both categories of names must ++not contain the slash character @samp{/}. ++ ++If the locale name starts with a slash @samp{/}, it is treated as a ++path relative to the configured locale directories; see @code{LOCPATH} ++below. The specified path must not contain a component @samp{..}, or ++the name is invalid, and @code{setlocale} will fail. ++ ++@strong{Portability Note:} POSIX suggests that if a locale name starts ++with a slash @samp{/}, it is resolved as an absolute path. However, ++@theglibc{} treats it as a relative path under the directories listed ++in @code{LOCPATH} (or the default locale directory if @code{LOCPATH} ++is unset). ++ ++Locale names which are longer than an implementation-defined limit are ++invalid and cause @code{setlocale} to fail. ++ ++As a special case, locale names used with @code{LC_ALL} can combine ++several locales, reflecting different locale settings for different ++categories. For example, you might want to use a U.S. locale with ISO ++A4 paper format, so you set @code{LANG} to @samp{en_US.UTF-8}, and ++@code{LC_PAPER} to @samp{de_DE.UTF-8}. In this case, the ++@code{LC_ALL}-style combined locale name is ++ ++@smallexample ++LC_CTYPE=en_US.UTF-8;LC_TIME=en_US.UTF-8;LC_PAPER=de_DE.UTF-8;@dots{} ++@end smallexample ++ ++followed by other category settings not shown here. ++ ++@vindex LOCPATH ++The path used for finding locale data can be set using the ++@code{LOCPATH} environment variable. This variable lists the ++directories in which to search for locale definitions, separated by a ++colon @samp{:}. ++ ++The default path for finding locale data is system specific. A typical ++value for the @code{LOCPATH} default is: ++ ++@smallexample ++/usr/share/locale ++@end smallexample ++ ++The value of @code{LOCPATH} is ignored by privileged programs for ++security reasons, and only the default directory is used. ++ ++@node Locale Information, Formatting Numbers, Locale Names, Locales + @section Accessing Locale Information + + There are several ways to access locale information. The simplest From 8d65d2d52c8cbecbf1e104b1febd54e08fcb93e6821b8f1d293dcfb1edbdb947 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 25 Jul 2014 07:08:49 +0000 Subject: [PATCH 169/204] Accepting request 241893 from Base:System - dt-ppc64-num.patch: Correct DT_PPC64_NUM (bnc#887169, BZ #17153) (forwarded request 241892 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/241893 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=177 --- dt-ppc64-num.patch | 19 +++++++++++++++++++ glibc-testsuite.changes | 5 +++++ glibc-testsuite.spec | 11 ++++++++++- glibc-utils.changes | 5 +++++ glibc-utils.spec | 11 ++++++++++- glibc.changes | 5 +++++ glibc.spec | 11 ++++++++++- 7 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 dt-ppc64-num.patch diff --git a/dt-ppc64-num.patch b/dt-ppc64-num.patch new file mode 100644 index 0000000..e1193e8 --- /dev/null +++ b/dt-ppc64-num.patch @@ -0,0 +1,19 @@ +2014-07-14 Alan Modra + + [BZ #17153] + * elf/elf.h (DT_PPC64_NUM): Correct value. + * NEWS: Add to fixed bug list. + +Index: glibc-2.19/elf/elf.h +=================================================================== +--- glibc-2.19.orig/elf/elf.h ++++ glibc-2.19/elf/elf.h +@@ -2283,7 +2283,7 @@ typedef Elf32_Addr Elf32_Conflict; + #define DT_PPC64_OPD (DT_LOPROC + 1) + #define DT_PPC64_OPDSZ (DT_LOPROC + 2) + #define DT_PPC64_OPT (DT_LOPROC + 3) +-#define DT_PPC64_NUM 3 ++#define DT_PPC64_NUM 4 + + /* PowerPC64 specific values for the DT_PPC64_OPT Dyn entry. */ + #define PPC64_OPT_TLS 1 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 229647c..feb21e6 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de + +- dt-ppc64-num.patch: Correct DT_PPC64_NUM (bnc#887169, BZ #17153) + ------------------------------------------------------------------- Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 0b42b62..5a4610a 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -69,6 +69,8 @@ BuildRequires: gd-devel %endif %endif +%define build_variants %{normal_build} + %define disable_assert 0 %define enable_stackguard_randomization 1 %ifarch ppc ppc64 @@ -76,7 +78,7 @@ BuildRequires: gd-devel %ifarch ppc %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 %{normal_build} + %define powerpc_optimize_cpu_power4 1 %else %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power5 @@ -262,6 +264,8 @@ Patch1013: psfaa.patch Patch1014: nss-files-long-lines.patch # PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) Patch1015: setlocale-directory-traversal.patch +# PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) +Patch1016: dt-ppc64-num.patch ### # Patches awaiting upstream approval @@ -494,6 +498,7 @@ rm nscd/s-stamp %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p1 %patch2000 -p1 %patch2001 -p1 @@ -687,6 +692,7 @@ configure_and_build_glibc() { # Use no default CPU configure_and_build_glibc base "$pBuildFlags" "$add_ons" %endif + %if %{build_variants} # Then other power variants: for pcpu in \ %if %{powerpc_optimize_cpu_power4} @@ -706,11 +712,14 @@ configure_and_build_glibc() { %if %{powerpc_optimize_cpu_cell} configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" %endif + %endif # %{build_variants} %endif # optimize_power +%if %{build_variants} %ifarch i686 x86_64 configure_and_build_glibc noelision "$BuildFlags" "$add_ons" %endif +%endif # # Build html documentation diff --git a/glibc-utils.changes b/glibc-utils.changes index 229647c..feb21e6 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de + +- dt-ppc64-num.patch: Correct DT_PPC64_NUM (bnc#887169, BZ #17153) + ------------------------------------------------------------------- Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index cdbcbc9..6ce4675 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -68,6 +68,8 @@ BuildRequires: gd-devel %endif %endif +%define build_variants %{normal_build} + %define disable_assert 0 %define enable_stackguard_randomization 1 %ifarch ppc ppc64 @@ -75,7 +77,7 @@ BuildRequires: gd-devel %ifarch ppc %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 %{normal_build} + %define powerpc_optimize_cpu_power4 1 %else %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power5 @@ -261,6 +263,8 @@ Patch1013: psfaa.patch Patch1014: nss-files-long-lines.patch # PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) Patch1015: setlocale-directory-traversal.patch +# PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) +Patch1016: dt-ppc64-num.patch ### # Patches awaiting upstream approval @@ -494,6 +498,7 @@ rm nscd/s-stamp %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p1 %patch2000 -p1 %patch2001 -p1 @@ -687,6 +692,7 @@ configure_and_build_glibc() { # Use no default CPU configure_and_build_glibc base "$pBuildFlags" "$add_ons" %endif + %if %{build_variants} # Then other power variants: for pcpu in \ %if %{powerpc_optimize_cpu_power4} @@ -706,11 +712,14 @@ configure_and_build_glibc() { %if %{powerpc_optimize_cpu_cell} configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" %endif + %endif # %{build_variants} %endif # optimize_power +%if %{build_variants} %ifarch i686 x86_64 configure_and_build_glibc noelision "$BuildFlags" "$add_ons" %endif +%endif # # Build html documentation diff --git a/glibc.changes b/glibc.changes index 229647c..feb21e6 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de + +- dt-ppc64-num.patch: Correct DT_PPC64_NUM (bnc#887169, BZ #17153) + ------------------------------------------------------------------- Mon Jul 14 08:33:08 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 789b94a..4a3a2c2 100644 --- a/glibc.spec +++ b/glibc.spec @@ -69,6 +69,8 @@ BuildRequires: gd-devel %endif %endif +%define build_variants %{normal_build} + %define disable_assert 0 %define enable_stackguard_randomization 1 %ifarch ppc ppc64 @@ -76,7 +78,7 @@ BuildRequires: gd-devel %ifarch ppc %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power3 - %define powerpc_optimize_cpu_power4 %{normal_build} + %define powerpc_optimize_cpu_power4 1 %else %define powerpc_optimize_base %{nil} %define powerpc_optimize_tune power5 @@ -262,6 +264,8 @@ Patch1013: psfaa.patch Patch1014: nss-files-long-lines.patch # PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) Patch1015: setlocale-directory-traversal.patch +# PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) +Patch1016: dt-ppc64-num.patch ### # Patches awaiting upstream approval @@ -494,6 +498,7 @@ rm nscd/s-stamp %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p1 %patch2000 -p1 %patch2001 -p1 @@ -687,6 +692,7 @@ configure_and_build_glibc() { # Use no default CPU configure_and_build_glibc base "$pBuildFlags" "$add_ons" %endif + %if %{build_variants} # Then other power variants: for pcpu in \ %if %{powerpc_optimize_cpu_power4} @@ -706,11 +712,14 @@ configure_and_build_glibc() { %if %{powerpc_optimize_cpu_cell} configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" %endif + %endif # %{build_variants} %endif # optimize_power +%if %{build_variants} %ifarch i686 x86_64 configure_and_build_glibc noelision "$BuildFlags" "$add_ons" %endif +%endif # # Build html documentation From fc4253638337f644e2981534fd1f9d2a22f9217313b9ad42bf9596a224ce9023 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 30 Jul 2014 05:34:17 +0000 Subject: [PATCH 170/204] Accepting request 242723 from Base:System - ibm93x-redundant-shift-si.patch: Avoid redundant shift character in iconv output at block boundary (bnc#886416, BZ #17197) - s390-revert-abi-change.patch: revert back to pre-2.19 layout of jmp_buf and ucontext_t on s390 (bnc#887228) (forwarded request 242722 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/242723 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=178 --- glibc-testsuite.changes | 12 + glibc-testsuite.spec | 6 + glibc-utils.changes | 12 + glibc-utils.spec | 6 + glibc.changes | 12 + glibc.spec | 6 + ibm93x-redundant-shift-si.patch | 201 +++++++ s390-revert-abi-change.patch | 897 ++++++++++++++++++++++++++++++++ 8 files changed, 1152 insertions(+) create mode 100644 ibm93x-redundant-shift-si.patch create mode 100644 s390-revert-abi-change.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index feb21e6..390a386 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de + +- ibm93x-redundant-shift-si.patch: Avoid redundant shift character in + iconv output at block boundary (bnc#886416, BZ #17197) + +------------------------------------------------------------------- +Thu Jul 24 15:35:50 UTC 2014 - schwab@suse.de + +- s390-revert-abi-change.patch: revert back to pre-2.19 layout of jmp_buf + and ucontext_t on s390 (bnc#887228) + ------------------------------------------------------------------- Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 5a4610a..188a94d 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -205,6 +205,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FIX-OPENSUSE Revert "S/390: Make jmp_buf extendible" and "S/390: Make ucontext_t extendible" (bnc#887228) +Patch20: s390-revert-abi-change.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -282,6 +284,8 @@ Patch2003: abort-no-flush.patch Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff +# PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) +Patch2006: ibm93x-redundant-shift-si.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -471,6 +475,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -506,6 +511,7 @@ rm nscd/s-stamp %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 +%patch2006 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index feb21e6..390a386 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de + +- ibm93x-redundant-shift-si.patch: Avoid redundant shift character in + iconv output at block boundary (bnc#886416, BZ #17197) + +------------------------------------------------------------------- +Thu Jul 24 15:35:50 UTC 2014 - schwab@suse.de + +- s390-revert-abi-change.patch: revert back to pre-2.19 layout of jmp_buf + and ucontext_t on s390 (bnc#887228) + ------------------------------------------------------------------- Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 6ce4675..5d3bd54 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -204,6 +204,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FIX-OPENSUSE Revert "S/390: Make jmp_buf extendible" and "S/390: Make ucontext_t extendible" (bnc#887228) +Patch20: s390-revert-abi-change.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -281,6 +283,8 @@ Patch2003: abort-no-flush.patch Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff +# PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) +Patch2006: ibm93x-redundant-shift-si.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -471,6 +475,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -506,6 +511,7 @@ rm nscd/s-stamp %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 +%patch2006 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index feb21e6..390a386 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de + +- ibm93x-redundant-shift-si.patch: Avoid redundant shift character in + iconv output at block boundary (bnc#886416, BZ #17197) + +------------------------------------------------------------------- +Thu Jul 24 15:35:50 UTC 2014 - schwab@suse.de + +- s390-revert-abi-change.patch: revert back to pre-2.19 layout of jmp_buf + and ucontext_t on s390 (bnc#887228) + ------------------------------------------------------------------- Tue Jul 22 08:37:38 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 4a3a2c2..2e8993d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -205,6 +205,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FIX-OPENSUSE Revert "S/390: Make jmp_buf extendible" and "S/390: Make ucontext_t extendible" (bnc#887228) +Patch20: s390-revert-abi-change.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -282,6 +284,8 @@ Patch2003: abort-no-flush.patch Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff +# PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) +Patch2006: ibm93x-redundant-shift-si.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -471,6 +475,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -506,6 +511,7 @@ rm nscd/s-stamp %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 +%patch2006 -p1 %patch3000 diff --git a/ibm93x-redundant-shift-si.patch b/ibm93x-redundant-shift-si.patch new file mode 100644 index 0000000..640c61f --- /dev/null +++ b/ibm93x-redundant-shift-si.patch @@ -0,0 +1,201 @@ +Avoid redundant shift character in iconv output at block boundary (bug #17197) + + [BZ #17197] + * iconvdata/ibm930.c (BODY for TO_LOOP): Record current DBCS state + immediately after emitting SI. + * iconvdata/ibm933.c (BODY for TO_LOOP): Likewise. + * iconvdata/ibm935.c (BODY for TO_LOOP): Likewise. + * iconvdata/ibm937.c (BODY for TO_LOOP): Likewise. + * iconvdata/ibm939.c (BODY for TO_LOOP): Likewise. + * iconvdata/bug-iconv10.c: New file. + * iconvdata/Makefile (tests): Add bug-iconv10. + ($(objpfx)bug-iconv10.out): New rule. + +Index: glibc-2.19/iconvdata/Makefile +=================================================================== +--- glibc-2.19.orig/iconvdata/Makefile ++++ glibc-2.19/iconvdata/Makefile +@@ -67,7 +67,8 @@ include ../Makeconfig + + ifeq (yes,$(build-shared)) + tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ +- tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 ++ tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \ ++ bug-iconv10 + ifeq ($(have-thread-library),yes) + tests += bug-iconv3 + endif +@@ -295,6 +296,8 @@ $(objpfx)tst-iconv4.out: $(objpfx)gconv- + $(addprefix $(objpfx),$(modules.so)) + $(objpfx)tst-iconv7.out: $(objpfx)gconv-modules \ + $(addprefix $(objpfx),$(modules.so)) ++$(objpfx)bug-iconv10.out: $(objpfx)gconv-modules \ ++ $(addprefix $(objpfx),$(modules.so)) + + $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ + $(addprefix $(objpfx),$(modules.so)) \ +Index: glibc-2.19/iconvdata/bug-iconv10.c +=================================================================== +--- /dev/null ++++ glibc-2.19/iconvdata/bug-iconv10.c +@@ -0,0 +1,60 @@ ++/* bug 17197: check for redundant shift character at block boundary. */ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ iconv_t cd = iconv_open ("IBM930", "UTF-8"); ++ if (cd == (iconv_t) -1) ++ { ++ puts ("iconv_open failed"); ++ return 1; ++ } ++ ++ char instr1[] = "\xc2\xa6."; ++ const char expstr1[4] = "\016Bj\017"; ++ const char expstr2[] = "K"; ++ char outstr[4]; ++ size_t inlen = sizeof (instr1); ++ size_t outlen = sizeof (outstr); ++ char *inptr = instr1; ++ char *outptr = outstr; ++ size_t r = iconv (cd, &inptr, &inlen, &outptr, &outlen); ++ if (r != -1 ++ || errno != E2BIG ++ || inlen != sizeof (instr1) - 2 ++ || inptr != instr1 + 2 ++ || outlen != 0 ++ || memcmp (outstr, expstr1, sizeof (expstr1)) != 0) ++ { ++ puts ("wrong first conversion"); ++ return 1; ++ } ++ ++ outlen = sizeof (outstr); ++ outptr = outstr; ++ r = iconv (cd, &inptr, &inlen, &outptr, &outlen); ++ if (r != 0 ++ || inlen != 0 ++ || outlen != sizeof (outstr) - sizeof (expstr2) ++ || memcmp (outstr, expstr2, sizeof (expstr2)) != 0) ++ { ++ puts ("wrong second conversion"); ++ return 1; ++ } ++ ++ if (iconv_close (cd) != 0) ++ { ++ puts ("iconv_close failed"); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.19/iconvdata/ibm930.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm930.c ++++ glibc-2.19/iconvdata/ibm930.c +@@ -255,6 +255,7 @@ enum + break; \ + } \ + *outptr++ = SI; \ ++ curcs = sb; \ + } \ + \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ +@@ -268,7 +269,6 @@ enum + *outptr++ = 0x5b; \ + else \ + *outptr++ = cp[0]; \ +- curcs = sb; \ + } \ + \ + /* Now that we wrote the output increment the input pointer. */ \ +Index: glibc-2.19/iconvdata/ibm933.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm933.c ++++ glibc-2.19/iconvdata/ibm933.c +@@ -254,6 +254,7 @@ enum + break; \ + } \ + *outptr++ = SI; \ ++ curcs = sb; \ + } \ + \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ +@@ -262,7 +263,6 @@ enum + break; \ + } \ + *outptr++ = cp[0]; \ +- curcs = sb; \ + } \ + \ + /* Now that we wrote the output increment the input pointer. */ \ +Index: glibc-2.19/iconvdata/ibm935.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm935.c ++++ glibc-2.19/iconvdata/ibm935.c +@@ -254,6 +254,7 @@ enum + break; \ + } \ + *outptr++ = SI; \ ++ curcs = sb; \ + } \ + \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ +@@ -262,7 +263,6 @@ enum + break; \ + } \ + *outptr++ = cp[0]; \ +- curcs = sb; \ + } \ + \ + /* Now that we wrote the output increment the input pointer. */ \ +Index: glibc-2.19/iconvdata/ibm937.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm937.c ++++ glibc-2.19/iconvdata/ibm937.c +@@ -254,6 +254,7 @@ enum + break; \ + } \ + *outptr++ = SI; \ ++ curcs = sb; \ + } \ + \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ +@@ -262,7 +263,6 @@ enum + break; \ + } \ + *outptr++ = cp[0]; \ +- curcs = sb; \ + } \ + \ + /* Now that we wrote the output increment the input pointer. */ \ +Index: glibc-2.19/iconvdata/ibm939.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm939.c ++++ glibc-2.19/iconvdata/ibm939.c +@@ -254,6 +254,7 @@ enum + break; \ + } \ + *outptr++ = SI; \ ++ curcs = sb; \ + } \ + \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ +@@ -267,7 +268,6 @@ enum + *outptr++ = 0xb2; \ + else \ + *outptr++ = cp[0]; \ +- curcs = sb; \ + } \ + \ + /* Now that we wrote the output increment the input pointer. */ \ diff --git a/s390-revert-abi-change.patch b/s390-revert-abi-change.patch new file mode 100644 index 0000000..a87bb50 --- /dev/null +++ b/s390-revert-abi-change.patch @@ -0,0 +1,897 @@ +From a779f6e6d899cd601afc19ce19415659bbf646c9 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Thu, 24 Jul 2014 11:30:20 +0200 +Subject: [PATCH] Revert "S/390: Make jmp_buf extendible" and "S/390: Make + ucontext_t extendible" + +--- + nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c | 30 ++---- + sysdeps/s390/Makefile | 9 -- + sysdeps/s390/Versions | 4 - + sysdeps/s390/__longjmp.c | 10 -- + sysdeps/s390/bits/setjmp.h | 4 - + sysdeps/s390/longjmp.c | 38 +++---- + sysdeps/s390/s390-32/__longjmp-common.c | 2 +- + sysdeps/s390/s390-32/setjmp-common.S | 4 - + sysdeps/s390/s390-64/__longjmp-common.c | 2 +- + sysdeps/s390/s390-64/setjmp-common.S | 4 - + sysdeps/s390/setjmp.S | 20 +--- + sysdeps/s390/sigjmp.c | 2 +- + sysdeps/s390/v1-longjmp.c | 57 ----------- + sysdeps/s390/v1-setjmp.h | 111 --------------------- + sysdeps/s390/v1-sigjmp.c | 44 -------- + sysdeps/unix/sysv/linux/s390/Makefile | 6 -- + sysdeps/unix/sysv/linux/s390/getcontext.S | 6 +- + sysdeps/unix/sysv/linux/s390/longjmp_chk.c | 19 ++-- + .../unix/sysv/linux/s390/s390-32/____longjmp_chk.c | 16 --- + .../sysv/linux/s390/s390-32/getcontext-common.S | 37 ------- + sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S | 10 +- + sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S | 13 +-- + .../unix/sysv/linux/s390/s390-32/ucontext_i.sym | 1 - + .../unix/sysv/linux/s390/s390-64/____longjmp_chk.c | 17 ---- + .../sysv/linux/s390/s390-64/getcontext-common.S | 4 - + sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S | 3 - + sysdeps/unix/sysv/linux/s390/sys/ucontext.h | 13 --- + sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c | 35 ------- + 28 files changed, 46 insertions(+), 475 deletions(-) + delete mode 100644 sysdeps/s390/Makefile + delete mode 100644 sysdeps/s390/v1-longjmp.c + delete mode 100644 sysdeps/s390/v1-setjmp.h + delete mode 100644 sysdeps/s390/v1-sigjmp.c + delete mode 100644 sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c + +diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c +index 801432c..6622752 100644 +--- a/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c ++++ b/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c +@@ -23,29 +23,6 @@ + #include + #include "pthreadP.h" + #include +-#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19) +- +-/* The __v1 version prototypes are declared in v1-setjmp.h which +- cannot be included together with setjmp.h. So we put the +- prototypes here manually. */ +-extern void __v1__libc_siglongjmp (sigjmp_buf env, int val) +- __attribute__ ((noreturn)); +-extern void __v1__libc_longjmp (sigjmp_buf env, int val) +- __attribute__ ((noreturn)); +- +-void __v1_siglongjmp (sigjmp_buf env, int val) +-{ +- __v1__libc_siglongjmp (env, val); +-} +- +-void __v1_longjmp (jmp_buf env, int val) +-{ +- __v1__libc_longjmp (env, val); +-} +- +-compat_symbol (libpthread, __v1_longjmp, longjmp, GLIBC_2_0); +-compat_symbol (libpthread, __v1_siglongjmp, siglongjmp, GLIBC_2_0); +-#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19)) */ + + void + __v2_longjmp (jmp_buf env, int val) +@@ -61,3 +38,10 @@ __v2_siglongjmp (jmp_buf env, int val) + + versioned_symbol (libpthread, __v2_longjmp, longjmp, GLIBC_2_19); + versioned_symbol (libpthread, __v2_siglongjmp, siglongjmp, GLIBC_2_19); ++ ++#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19) ++strong_alias (__v2_longjmp, __v1_longjmp); ++strong_alias (__v2_siglongjmp, __v1_siglongjmp); ++compat_symbol (libpthread, __v1_longjmp, longjmp, GLIBC_2_0); ++compat_symbol (libpthread, __v1_siglongjmp, siglongjmp, GLIBC_2_0); ++#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19)) */ +diff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile +deleted file mode 100644 +index 42978dc..0000000 +--- a/sysdeps/s390/Makefile ++++ /dev/null +@@ -1,9 +0,0 @@ +-ifeq ($(subdir),setjmp) +-ifeq (yes,$(build-shared)) +-sysdep_routines += v1-longjmp v1-sigjmp +-endif +-endif +- +-ifeq ($(subdir),csu) +-gen-as-const-headers += rtld-global-offsets.sym +-endif +diff --git a/sysdeps/s390/Versions b/sysdeps/s390/Versions +index 156abc7..e3cdaa4 100644 +--- a/sysdeps/s390/Versions ++++ b/sysdeps/s390/Versions +@@ -3,10 +3,6 @@ libc { + setjmp; _setjmp; __setjmp; __sigsetjmp; + longjmp; _longjmp; siglongjmp; + } +- GLIBC_PRIVATE { +- __v1__libc_longjmp; __v1__libc_siglongjmp; +- __v2__libc_longjmp; __v2__libc_siglongjmp; +- } + } + + ld { +diff --git a/sysdeps/s390/__longjmp.c b/sysdeps/s390/__longjmp.c +index e4acd31..fd14abb 100644 +--- a/sysdeps/s390/__longjmp.c ++++ b/sysdeps/s390/__longjmp.c +@@ -18,14 +18,4 @@ + #include + #include + +-#define __longjmp __v2__longjmp + #include "__longjmp-common.c" +-#undef __longjmp +-strong_alias (__v2__longjmp, __longjmp) +- +-#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) +-# undef __longjmp +-# define __V1_JMPBUF +-# define __longjmp __v1__longjmp +-# include "__longjmp-common.c" +-#endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ +diff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h +index 25eaf10..0071a9d 100644 +--- a/sysdeps/s390/bits/setjmp.h ++++ b/sysdeps/s390/bits/setjmp.h +@@ -40,10 +40,6 @@ typedef struct __s390_jmp_buf + /* We save fpu registers 4 and 6. */ + long __fpregs[4]; + # endif +-#ifndef __V1_JMPBUF +- unsigned long __flags; +- char __reserved[128]; +-#endif + } __jmp_buf[1]; + + #endif +diff --git a/sysdeps/s390/longjmp.c b/sysdeps/s390/longjmp.c +index c758d14..dda9ae6 100644 +--- a/sysdeps/s390/longjmp.c ++++ b/sysdeps/s390/longjmp.c +@@ -23,17 +23,11 @@ + #include + #include + +-extern void __v2__longjmp (__jmp_buf __env, int __val) +- __attribute__ ((__noreturn__)); +-extern void __v2__libc_longjmp (sigjmp_buf env, int val) +- __attribute__ ((__noreturn__)); +-libc_hidden_proto (__v2__libc_longjmp) +- + /* Set the signal mask to the one specified in ENV, and jump + to the position specified in ENV, causing the setjmp + call there to return VAL, or 1 if VAL is 0. */ + void +-__v2__libc_siglongjmp (sigjmp_buf env, int val) ++__libc_siglongjmp (sigjmp_buf env, int val) + { + /* Perform any cleanups needed by the frames being unwound. */ + _longjmp_unwind (env, val); +@@ -44,21 +38,27 @@ __v2__libc_siglongjmp (sigjmp_buf env, int val) + (sigset_t *) NULL); + + /* Call the machine-dependent function to restore machine state. */ +- __v2__longjmp (env[0].__jmpbuf, val ?: 1); ++ __longjmp (env[0].__jmpbuf, val ?: 1); + } + +-#ifndef __v2__longjmp +-strong_alias (__v2__libc_siglongjmp, __v2__libc_longjmp) +-libc_hidden_def (__v2__libc_longjmp) +-weak_alias (__v2__libc_siglongjmp, __v2_longjmp) +-weak_alias (__v2__libc_siglongjmp, __v2longjmp) +-weak_alias (__v2__libc_siglongjmp, __v2siglongjmp) +- +-/* These will be used by libpthread only. */ +-versioned_symbol (libc, __v2__libc_longjmp, __libc_longjmp, GLIBC_PRIVATE); +-versioned_symbol (libc, __v2__libc_siglongjmp, __libc_siglongjmp, GLIBC_PRIVATE); ++#ifndef __longjmp ++strong_alias (__libc_siglongjmp, __libc_longjmp) ++libc_hidden_def (__libc_longjmp) ++weak_alias (__libc_siglongjmp, __v2_longjmp) ++weak_alias (__libc_siglongjmp, __v2longjmp) ++weak_alias (__libc_siglongjmp, __v2siglongjmp) + + versioned_symbol (libc, __v2_longjmp, _longjmp, GLIBC_2_19); + versioned_symbol (libc, __v2longjmp, longjmp, GLIBC_2_19); + versioned_symbol (libc, __v2siglongjmp, siglongjmp, GLIBC_2_19); +-#endif /* ifndef __v2__longjmp */ ++ ++# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) ++weak_alias (__libc_siglongjmp, __v1_longjmp) ++weak_alias (__libc_siglongjmp, __v1longjmp) ++weak_alias (__libc_siglongjmp, __v1siglongjmp) ++ ++compat_symbol (libc, __v1_longjmp, _longjmp, GLIBC_2_0); ++compat_symbol (libc, __v1longjmp, longjmp, GLIBC_2_0); ++compat_symbol (libc, __v1siglongjmp, siglongjmp, GLIBC_2_0); ++# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ ++#endif /* ifndef __longjmp */ +diff --git a/sysdeps/s390/s390-32/__longjmp-common.c b/sysdeps/s390/s390-32/__longjmp-common.c +index f78ef65..5d46e21 100644 +--- a/sysdeps/s390/s390-32/__longjmp-common.c ++++ b/sysdeps/s390/s390-32/__longjmp-common.c +@@ -25,7 +25,7 @@ + + /* Jump to the position specified by ENV, causing the + setjmp call there to return VAL, or 1 if VAL is 0. */ +-attribute_hidden void ++void + __longjmp (__jmp_buf env, int val) + { + #ifdef PTR_DEMANGLE +diff --git a/sysdeps/s390/s390-32/setjmp-common.S b/sysdeps/s390/s390-32/setjmp-common.S +index d7bb720..cee8181 100644 +--- a/sysdeps/s390/s390-32/setjmp-common.S ++++ b/sysdeps/s390/s390-32/setjmp-common.S +@@ -55,10 +55,6 @@ ENTRY(__sigsetjmp) + #else + stm %r6,%r15,0(%r2) /* store registers in jmp_buf */ + #endif +-#ifndef __V1_JMPBUF +- lhi %r4,0 +- st %r4,56(%r2) /* Set __flags to 0. */ +-#endif + std %f4,40(%r2) + std %f6,48(%r2) + #if defined NOT_IN_libc && defined IS_IN_rtld +diff --git a/sysdeps/s390/s390-64/__longjmp-common.c b/sysdeps/s390/s390-64/__longjmp-common.c +index 46cabb6..168ebf5 100644 +--- a/sysdeps/s390/s390-64/__longjmp-common.c ++++ b/sysdeps/s390/s390-64/__longjmp-common.c +@@ -25,7 +25,7 @@ + + /* Jump to the position specified by ENV, causing the + setjmp call there to return VAL, or 1 if VAL is 0. */ +-attribute_hidden void ++void + __longjmp (__jmp_buf env, int val) + { + #ifdef PTR_DEMANGLE +diff --git a/sysdeps/s390/s390-64/setjmp-common.S b/sysdeps/s390/s390-64/setjmp-common.S +index 9cdcae4..7b9dc42 100644 +--- a/sysdeps/s390/s390-64/setjmp-common.S ++++ b/sysdeps/s390/s390-64/setjmp-common.S +@@ -55,10 +55,6 @@ ENTRY(__sigsetjmp) + #else + stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */ + #endif +-#ifndef __V1_JMPBUF +- lghi %r4,0 +- stg %r4,144(%r2) /* Set __flags to 0. */ +-#endif + std %f8,80(%r2) + std %f9,88(%r2) + std %f10,96(%r2) +diff --git a/sysdeps/s390/setjmp.S b/sysdeps/s390/setjmp.S +index 2ec621a..3e50e89 100644 +--- a/sysdeps/s390/setjmp.S ++++ b/sysdeps/s390/setjmp.S +@@ -27,7 +27,6 @@ versioned_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19) + #define _setjmp __v2_setjmp + #define __setjmp __v2__setjmp + #define __sigsetjmp __v2__sigsetjmp +-#define __sigjmp_save __v2__sigjmp_save + + #include "setjmp-common.S" + +@@ -35,7 +34,6 @@ versioned_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19) + #undef _setjmp + #undef __setjmp + #undef __sigsetjmp +-#undef __sigjmp_save + libc_hidden_ver (__v2setjmp, setjmp) + libc_hidden_ver (__v2_setjmp, _setjmp) + libc_hidden_ver (__v2__setjmp, __setjmp) +@@ -46,19 +44,9 @@ compat_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0) + compat_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0) + compat_symbol (libc, __v1__setjmp, __setjmp, GLIBC_2_0) + compat_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0) +-# define setjmp __v1setjmp +-# define _setjmp __v1_setjmp +-# define __setjmp __v1__setjmp +-# define __sigsetjmp __v1__sigsetjmp +-# define __sigjmp_save __v1__sigjmp_save +-# define __V1_JMPBUF +- +-# include "setjmp-common.S" +- +-# undef setjmp +-# undef _setjmp +-# undef __setjmp +-# undef __sigsetjmp +-# undef __sigjmp_save ++strong_alias (__v2setjmp, __v1setjmp) ++strong_alias (__v2_setjmp, __v1_setjmp) ++strong_alias (__v2__setjmp, __v1__setjmp) ++strong_alias (__v2__sigsetjmp, __v1__sigsetjmp) + + #endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ +diff --git a/sysdeps/s390/sigjmp.c b/sysdeps/s390/sigjmp.c +index f7b5a6f..73dd356 100644 +--- a/sysdeps/s390/sigjmp.c ++++ b/sysdeps/s390/sigjmp.c +@@ -24,7 +24,7 @@ + Always return zero. */ + + int +-__v2__sigjmp_save (sigjmp_buf env, int savemask) ++__sigjmp_save (sigjmp_buf env, int savemask) + { + env[0].__mask_was_saved = (savemask && + __sigprocmask (SIG_BLOCK, (sigset_t *) NULL, +diff --git a/sysdeps/s390/v1-longjmp.c b/sysdeps/s390/v1-longjmp.c +deleted file mode 100644 +index 82252c9..0000000 +--- a/sysdeps/s390/v1-longjmp.c ++++ /dev/null +@@ -1,57 +0,0 @@ +-/* Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . +- +- Versioned copy of sysdeps/generic/longjmp.c modified for extended +- jmpbuf. */ +- +-#include +-#include +-#include +-#include "v1-setjmp.h" +- +-#if !defined NOT_INT_libc && defined SHARED +-# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) +- +-void +-__v1__libc_siglongjmp (__v1__sigjmp_buf env, int val) +-{ +- /* Perform any cleanups needed by the frames being unwound. */ +- _longjmp_unwind (env, val); +- +- if (env[0].__mask_was_saved) +- /* Restore the saved signal mask. */ +- (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask, +- (sigset_t *) NULL); +- +- /* Call the machine-dependent function to restore machine state. */ +- __v1__longjmp (env[0].__jmpbuf, val ?: 1); +-} +- +-# ifndef __v1__longjmp +-strong_alias (__v1__libc_siglongjmp, __v1__libc_longjmp) +-libc_hidden_def (__v1__libc_longjmp) +-weak_alias (__v1__libc_siglongjmp, __v1_longjmp) +-weak_alias (__v1__libc_siglongjmp, __v1longjmp) +-weak_alias (__v1__libc_siglongjmp, __v1siglongjmp) +- +-compat_symbol (libc, __v1_longjmp, _longjmp, GLIBC_2_0); +-compat_symbol (libc, __v1longjmp, longjmp, GLIBC_2_0); +-compat_symbol (libc, __v1siglongjmp, siglongjmp, GLIBC_2_0); +- +-# endif /* ifndef __v1__longjmp */ +-# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ +-#endif /* if !defined NOT_INT_libc && defined SHARED */ +diff --git a/sysdeps/s390/v1-setjmp.h b/sysdeps/s390/v1-setjmp.h +deleted file mode 100644 +index a4a6b76..0000000 +--- a/sysdeps/s390/v1-setjmp.h ++++ /dev/null +@@ -1,111 +0,0 @@ +-/* Copyright (C) 1991-2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* +- * ISO C99 Standard: 7.13 Nonlocal jumps +- */ +- +-#ifndef _V1_SETJMP_H +-#define _V1_SETJMP_H 1 +- +-#include +- +-__BEGIN_DECLS +- +-#define __V1_JMPBUF +-#define _SETJMP_H +-#include /* Get `__jmp_buf'. */ +- +-#ifndef _ASM +- +-#include /* Get `__sigset_t'. */ +- +- +-/* Calling environment, plus possibly a saved signal mask. */ +-typedef struct __v1__jmp_buf_tag +- { +- /* NOTE: The machine-dependent definitions of `__sigsetjmp' +- assume that a `jmp_buf' begins with a `__jmp_buf' and that +- `__mask_was_saved' follows it. Do not move these members +- or add others before it. */ +- __jmp_buf __jmpbuf; /* Calling environment. */ +- int __mask_was_saved; /* Saved the signal mask? */ +- __sigset_t __saved_mask; /* Saved signal mask. */ +- } __v1__jmp_buf[1]; +- +- +-/* Store the calling environment in ENV, also saving the signal mask. +- Return 0. */ +-extern int __v1setjmp (__v1__jmp_buf __env); +- +-/* Store the calling environment in ENV, also saving the +- signal mask if SAVEMASK is nonzero. Return 0. +- This is the internal name for `sigsetjmp'. */ +-extern int __v1__sigsetjmp (struct __v1__jmp_buf_tag __env[1], +- int __savemask); +- +-/* Store the calling environment in ENV, not saving the signal mask. +- Return 0. */ +-extern int __v1_setjmp (struct __v1__jmp_buf_tag __env[1]); +- +-/* Jump to the environment saved in ENV, making the +- `setjmp' call there return VAL, or 1 if VAL is 0. */ +-extern void __v1longjmp (struct __v1__jmp_buf_tag __env[1], int __val) +- __attribute__ ((__noreturn__)); +- +-/* Same. Usually `_longjmp' is used with `_setjmp', which does not save +- the signal mask. But it is how ENV was saved that determines whether +- `longjmp' restores the mask; `_longjmp' is just an alias. */ +-extern void __v1_longjmp (struct __v1__jmp_buf_tag __env[1], int __val) +- __attribute__ ((__noreturn__)); +- +-/* Use the same type for `jmp_buf' and `sigjmp_buf'. +- The `__mask_was_saved' flag determines whether +- or not `longjmp' will restore the signal mask. */ +-typedef struct __v1__jmp_buf_tag __v1__sigjmp_buf[1]; +- +-/* Jump to the environment saved in ENV, making the +- sigsetjmp call there return VAL, or 1 if VAL is 0. +- Restore the signal mask if that sigsetjmp call saved it. +- This is just an alias `longjmp'. */ +-extern void __v1siglongjmp (__v1__sigjmp_buf __env, int __val) +- __attribute__ ((__noreturn__)); +- +-/* Internal machine-dependent function to restore context sans signal mask. */ +-extern void __v1__longjmp (__jmp_buf __env, int __val) +- __attribute__ ((__noreturn__)); +- +-/* Internal function to possibly save the current mask of blocked signals +- in ENV, and always set the flag saying whether or not it was saved. +- This is used by the machine-dependent definition of `__sigsetjmp'. +- Always returns zero, for convenience. */ +-extern int __v1__sigjmp_save (__v1__jmp_buf __env, int __savemask); +- +-extern void _longjmp_unwind (__v1__jmp_buf env, int val); +- +-extern void __v1__libc_siglongjmp (__v1__sigjmp_buf env, int val) +- __attribute__ ((noreturn)); +- +-extern void __v1__libc_longjmp (__v1__sigjmp_buf env, int val) +- __attribute__ ((noreturn)); +- +-libc_hidden_proto (__v1__libc_longjmp) +-libc_hidden_proto (__v1_setjmp) +-libc_hidden_proto (__v1__sigsetjmp) +-#endif /* !_ASM */ +- +-#endif /* ifndef _V1_SETJMP_H */ +diff --git a/sysdeps/s390/v1-sigjmp.c b/sysdeps/s390/v1-sigjmp.c +deleted file mode 100644 +index b624d16..0000000 +--- a/sysdeps/s390/v1-sigjmp.c ++++ /dev/null +@@ -1,44 +0,0 @@ +-/* Copyright (C) 1992-2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . +- +- Copied from setjmp/sigjmp.c for extending jmp_buf. */ +- +-#include +-#include +- +-#if !defined NOT_IN_libc && defined SHARED +-# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) +-# include +-# include +-# include +- +-/* This function is called by the `sigsetjmp' macro +- before doing a `__setjmp' on ENV[0].__jmpbuf. +- Always return zero. */ +- +-int +-__v1__sigjmp_save (__v1__sigjmp_buf env, int savemask) +-{ +- env[0].__mask_was_saved = (savemask && +- __sigprocmask (SIG_BLOCK, (sigset_t *) NULL, +- &env[0].__saved_mask) == 0); +- +- return 0; +-} +- +-# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ +-#endif /* !NOT_IN_libc && SHARED */ +diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile +index f91179d..45b1922 100644 +--- a/sysdeps/unix/sysv/linux/s390/Makefile ++++ b/sysdeps/unix/sysv/linux/s390/Makefile +@@ -16,9 +16,3 @@ endif + ifeq ($(subdir),elf) + sysdep_routines += dl-vdso + endif +- +-ifeq ($(subdir),debug) +-ifeq (yes,$(build-shared)) +-sysdep_routines += v1-longjmp_chk +-endif +-endif +diff --git a/sysdeps/unix/sysv/linux/s390/getcontext.S b/sysdeps/unix/sysv/linux/s390/getcontext.S +index 5edbf95..4b2c2c6 100644 +--- a/sysdeps/unix/sysv/linux/s390/getcontext.S ++++ b/sysdeps/unix/sysv/linux/s390/getcontext.S +@@ -29,10 +29,6 @@ versioned_symbol (libc, __v2getcontext, getcontext, GLIBC_2_19) + libc_hidden_ver (__v2getcontext, getcontext) + + #if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_19) +-# define __V1_UCONTEXT + compat_symbol (libc, __v1getcontext, getcontext, GLIBC_2_1) +-# define __getcontext __v1getcontext +-# include "getcontext-common.S" +-# undef __getcontext +- ++strong_alias (__v2getcontext, __v1getcontext) + #endif +diff --git a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c +index 10f542d..84c28b7 100644 +--- a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c ++++ b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c +@@ -21,24 +21,25 @@ + #include + #include + +-/* This place is the only user of these functions. */ +-extern void ____v2__longjmp_chk (__jmp_buf __env, int __val) +- __attribute__ ((__noreturn__)); +- + #if defined NOT_IN_libc + +-# define __v2__longjmp ____longjmp_chk +-# define __v2__libc_siglongjmp __longjmp_chk ++# define __longjmp ____longjmp_chk ++# define __libc_siglongjmp __longjmp_chk + + # include + + #else + +-# define __v2__longjmp ____v2__longjmp_chk +-# define __v2__libc_siglongjmp __v2__libc_siglongjmp_chk ++# define __longjmp ____longjmp_chk ++# define __libc_siglongjmp __libc_siglongjmp_chk + + # include + +-versioned_symbol (libc, __v2__libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_19); ++versioned_symbol (libc, __libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_19); ++ ++# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) ++strong_alias (__libc_siglongjmp_chk, __v1__libc_siglongjmp_chk); ++compat_symbol (libc, __v1__libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_11); ++# endif + + #endif +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c +index a1b7a6a..3cf4e35 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c +@@ -52,21 +52,5 @@ + } while (0) + + +-#if defined NOT_IN_libc +-/* Build a non-versioned object for rtld-*. */ + # define __longjmp ____longjmp_chk + # include "__longjmp-common.c" +- +-#else /* !NOT_IN_libc */ +-# define __longjmp ____v2__longjmp_chk +-# include "__longjmp-common.c" +- +-# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) +-# undef __longjmp +-# define __V1_JMPBUF +-# define __longjmp ____v1__longjmp_chk +-# include "__longjmp-common.c" +-# undef __longjmp +- +-# endif +-#endif /* !NOT_IN_libc */ +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S +index 4992030..42fc376 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S +@@ -19,7 +19,6 @@ + #include + #include + +-#include "rtld-global-offsets.h" + #include "ucontext_i.h" + + /* __getcontext (const ucontext_t *ucp) +@@ -60,42 +59,6 @@ ENTRY(__getcontext) + std %f14,SC_FPRS+112(%r1) + std %f15,SC_FPRS+120(%r1) + +- lhi %r2,0 +-#ifndef __V1_UCONTEXT +- bras %r3,0f +-# ifdef IS_IN_rtld +- /* Within ld.so we can do slightly better by addressing dl_hwap +- relative to GOT start. */ +-1: .long _GLOBAL_OFFSET_TABLE_ - 1b +- .long C_SYMBOL_NAME(_rtld_global_ro)@GOTOFF +-0: l %r4,0(%r3) +- la %r4,0(%r3,%r4) +- l %r5,4(%r3) +- /* _dl_hwcap is 64 bit and we need the lower 32. */ +- l %r3,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(%r4,%r5) +-# elif PIC +-1: .long _GLOBAL_OFFSET_TABLE_ - 1b +- .long C_SYMBOL_NAME(_rtld_global_ro)@GOT +-0: l %r4,0(%r3) +- la %r4,0(%r3,%r4) /* GOT pointer -> r4 */ +- l %r5,4(%r3) /* GOT offset -> r5 */ +- l %r5,0(%r4,%r5) /* GOT slot -> r5 */ +- l %r3,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(%r5) +-# else +- .long C_SYMBOL_NAME(_dl_hwcap) +-0: l %r3,0(%r3) +- l %r3,0(%r3) +-# endif +- tml %r3,512 /* HWCAP_S390_HIGH_GPRS */ +- jz 2f +- /* highgprs implies zarch so stmh/oill is ok here. */ +- .machine "z900" +- .machinemode "zarch_nohighgprs" +- stmh %r0,%r15,SC_HIGHGPRS(%r1) +- oill %r2,1 /* UCONTEXT_UC_FLAGS_HIGH_GPRS */ +-#endif +-2: st %r2,SC_FLGS(%r1) +- + /* Set __getcontext return value to 0. */ + slr %r2,%r2 + +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S +index fbe8b77..42839e2 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S +@@ -62,16 +62,8 @@ ENTRY(__setcontext) + /* Don't touch %a0, used for thread purposes. */ + lam %a1,%a15,SC_ACRS+4(%r1) + +- /* Restore the upper halfs if available. */ +- l %r2,SC_FLGS(%r1) +- tml %r2,1 /* UCONTEXT_UC_FLAGS_HIGH_GPRS */ +- jz 0f +- .machine "z900" +- .machinemode "zarch_nohighgprs" +- lmh %r0,%r15,SC_HIGHGPRS(%r1) +- + /* Load general purpose registers. */ +-0: lm %r0,%r15,SC_GPRS(%r1) ++ lm %r0,%r15,SC_GPRS(%r1) + + /* Return. */ + br %r14 +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S +index 41ede4b..5c1d7ac 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S +@@ -74,21 +74,10 @@ ENTRY(__swapcontext) + /* Store general purpose registers. */ + stm %r0,%r15,SC_GPRS(%r1) + +- /* Copy uc_flags into the new ucontext_t. */ + lr %r5,%r0 +- l %r2,SC_FLGS(%r5) +- st %r2,SC_FLGS(%r1) +- +- /* Save/restore the upper halfs if necessary. */ +- tml %r2,1 /* UCONTEXT_UC_FLAGS_HIGH_GPRS */ +- jz 0f +- .machine "z900" +- .machinemode "zarch_nohighgprs" +- stmh %r0,%r15,SC_HIGHGPRS(%r1) +- lmh %r0,%r15,SC_HIGHGPRS(%r5) + + /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ +-0: la %r2,SIG_BLOCK ++ la %r2,SIG_BLOCK + la %r3,SC_MASK(%r5) + slr %r4,%r4 + lhi %r5,_NSIG8 +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym b/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym +index 705c7ab..6cc9f19 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym +@@ -23,4 +23,3 @@ SC_ACRS mcontext (aregs) + SC_FPC mcontext (fpregs.fpc) + SC_FPRS mcontext (fpregs.fprs) + SC_MASK ucontext (uc_sigmask) +-SC_HIGHGPRS ucontext (uc_high_gprs) +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c +index bc27b08..a8c2b8d 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c +@@ -52,22 +52,5 @@ + } while (0) + + +-#if defined NOT_IN_libc +-/* Build a non-versioned object for rtld-*. */ + # define __longjmp ____longjmp_chk + # include "__longjmp-common.c" +- +-#else /* !NOT_IN_libc */ +-# define __longjmp ____v2__longjmp_chk +-# include "__longjmp-common.c" +-# undef __longjmp +- +-# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) +-# undef __longjmp +-# define __V1_JMPBUF +-# define __longjmp ____v1__longjmp_chk +-# include "__longjmp-common.c" +-# undef __longjmp +- +-# endif +-#endif /* !NOT_IN_libc */ +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S +index 3e61e30..3538ee7 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S +@@ -62,10 +62,6 @@ ENTRY(__getcontext) + /* Set __getcontext return value to 0. */ + slgr %r2,%r2 + +- /* Store the version number into the uc_flags field. So far +- we do not make use of the reserved bytes so we store a zero. */ +- stg %r2,SC_FLGS(%r1) +- + /* Store access registers. */ + stam %a0,%a15,SC_ACRS(%r1) + +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S +index ac74b6b..eda5d33 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S +@@ -74,10 +74,7 @@ ENTRY(__swapcontext) + /* Store general purpose registers. */ + stmg %r0,%r15,SC_GPRS(%r1) + +- /* Copy uc_flags into the new ucontext_t. */ + lgr %r5,%r0 +- lg %r2,SC_FLGS(%r5) +- stg %r2,SC_FLGS(%r1) + + /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ + la %r2,SIG_BLOCK +diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h +index f04bf84..d528cb1 100644 +--- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h ++++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h +@@ -64,15 +64,6 @@ typedef struct + fpreg_t fprs[16]; + } fpregset_t; + +-/* Bit is set if the uc_high_gprs field contains the upper halfs of +- the 64 bit general purpose registers. Since the uc_high_gprs field +- is only available in the 32 bit version of ucontext_t it will never +- be set for 64 bit. */ +-#define UCONTEXT_UC_FLAGS_HIGH_GPRS (1UL << 0) +- +-/* A new uc_flags constant will be defined when actually making use of +- the reserved space: UCONTEXT_UCFLAGS_RESERVED (1UL << 1). */ +- + /* Context to describe whole processor state. */ + typedef struct + { +@@ -90,10 +81,6 @@ struct ucontext + stack_t uc_stack; + mcontext_t uc_mcontext; + __sigset_t uc_sigmask; +-#ifndef __s390x__ +- unsigned long uc_high_gprs[16]; +-#endif +- char __reserved[512]; + }; + + +diff --git a/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c +deleted file mode 100644 +index bd80acf..0000000 +--- a/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c ++++ /dev/null +@@ -1,35 +0,0 @@ +-/* Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . +- +- This went into a separate source file since we would otherwise be +- needed to include two different versions of setjmp.h into the same +- file. */ +- +-#include +- +-#if !defined NOT_IN_libc && defined SHARED +-# if SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) +- +-# define __v1__longjmp ____v1__longjmp_chk +-# define __v1__libc_siglongjmp __v1__libc_siglongjmp_chk +- +-# include +- +-compat_symbol (libc, __v1__libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_11); +- +-# endif +-#endif +-- +2.0.2 + From e550137c51a3b6bd2ad3ed5e1ea65c821ab55124fea2d527f75ff29379c2f675 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 5 Aug 2014 10:59:33 +0000 Subject: [PATCH 171/204] Accepting request 243562 from Base:System - ppc64le-profiling.patch: fix profiling for ppc64le (bnc#889601, BZ #17213) - s390-revert-abi-change.patch: replace with upstream patch, switches default symbol version back to old version (bnc#887228) (forwarded request 243561 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/243562 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=179 --- glibc-testsuite.changes | 8 + glibc-testsuite.spec | 9 +- glibc-utils.changes | 8 + glibc-utils.spec | 9 +- glibc.changes | 8 + glibc.spec | 9 +- ppc64le-profiling.patch | 23 + s390-revert-abi-change.patch | 2075 ++++++++++++++++++++++++++++------ 8 files changed, 1800 insertions(+), 349 deletions(-) create mode 100644 ppc64le-profiling.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 390a386..6a664e4 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de + +- ppc64le-profiling.patch: fix profiling for ppc64le (bnc#889601, BZ + #17213) +- s390-revert-abi-change.patch: replace with upstream patch, switches + default symbol version back to old version (bnc#887228) + ------------------------------------------------------------------- Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 188a94d..1709f22 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -205,8 +205,6 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch -# PATCH-FIX-OPENSUSE Revert "S/390: Make jmp_buf extendible" and "S/390: Make ucontext_t extendible" (bnc#887228) -Patch20: s390-revert-abi-change.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -268,6 +266,10 @@ Patch1014: nss-files-long-lines.patch Patch1015: setlocale-directory-traversal.patch # PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) Patch1016: dt-ppc64-num.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix gprof entry point for LE (BZ #17213) +Patch1017: ppc64le-profiling.patch +# PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) +Patch1018: s390-revert-abi-change.patch ### # Patches awaiting upstream approval @@ -475,7 +477,6 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 -%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -504,6 +505,8 @@ rm nscd/s-stamp %patch1014 -p1 %patch1015 -p1 %patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 390a386..6a664e4 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de + +- ppc64le-profiling.patch: fix profiling for ppc64le (bnc#889601, BZ + #17213) +- s390-revert-abi-change.patch: replace with upstream patch, switches + default symbol version back to old version (bnc#887228) + ------------------------------------------------------------------- Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 5d3bd54..fb74bc9 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -204,8 +204,6 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch -# PATCH-FIX-OPENSUSE Revert "S/390: Make jmp_buf extendible" and "S/390: Make ucontext_t extendible" (bnc#887228) -Patch20: s390-revert-abi-change.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -267,6 +265,10 @@ Patch1014: nss-files-long-lines.patch Patch1015: setlocale-directory-traversal.patch # PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) Patch1016: dt-ppc64-num.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix gprof entry point for LE (BZ #17213) +Patch1017: ppc64le-profiling.patch +# PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) +Patch1018: s390-revert-abi-change.patch ### # Patches awaiting upstream approval @@ -475,7 +477,6 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 -%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -504,6 +505,8 @@ rm nscd/s-stamp %patch1014 -p1 %patch1015 -p1 %patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc.changes b/glibc.changes index 390a386..6a664e4 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de + +- ppc64le-profiling.patch: fix profiling for ppc64le (bnc#889601, BZ + #17213) +- s390-revert-abi-change.patch: replace with upstream patch, switches + default symbol version back to old version (bnc#887228) + ------------------------------------------------------------------- Mon Jul 28 10:18:46 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 2e8993d..683fdb7 100644 --- a/glibc.spec +++ b/glibc.spec @@ -205,8 +205,6 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch -# PATCH-FIX-OPENSUSE Revert "S/390: Make jmp_buf extendible" and "S/390: Make ucontext_t extendible" (bnc#887228) -Patch20: s390-revert-abi-change.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -268,6 +266,10 @@ Patch1014: nss-files-long-lines.patch Patch1015: setlocale-directory-traversal.patch # PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) Patch1016: dt-ppc64-num.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix gprof entry point for LE (BZ #17213) +Patch1017: ppc64le-profiling.patch +# PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) +Patch1018: s390-revert-abi-change.patch ### # Patches awaiting upstream approval @@ -475,7 +477,6 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 -%patch20 -p1 %patch100 -p1 %patch102 -p1 @@ -504,6 +505,8 @@ rm nscd/s-stamp %patch1014 -p1 %patch1015 -p1 %patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/ppc64le-profiling.patch b/ppc64le-profiling.patch new file mode 100644 index 0000000..f495711 --- /dev/null +++ b/ppc64le-profiling.patch @@ -0,0 +1,23 @@ +2013-07-29 Adhemerval Zanella + + [BZ #17213] + * sysdeps/powerpc/powerpc64/entry.h: Fix TEXT_START definition for + powerpc64le. + +Index: glibc-2.19/sysdeps/powerpc/powerpc64/entry.h +=================================================================== +--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/entry.h ++++ glibc-2.19/sysdeps/powerpc/powerpc64/entry.h +@@ -23,6 +23,7 @@ extern void _start (void); + + #define ENTRY_POINT _start + ++#if _CALL_ELF != 2 + /* We have to provide a special declaration. */ + #define ENTRY_POINT_DECL(class) class void _start (void); + +@@ -33,3 +34,4 @@ extern void _start (void); + #define TEXT_START \ + ({ extern unsigned long int _start_as_data[] asm ("_start"); \ + _start_as_data[0]; }) ++#endif diff --git a/s390-revert-abi-change.patch b/s390-revert-abi-change.patch index a87bb50..59c55f7 100644 --- a/s390-revert-abi-change.patch +++ b/s390-revert-abi-change.patch @@ -1,55 +1,94 @@ -From a779f6e6d899cd601afc19ce19415659bbf646c9 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Thu, 24 Jul 2014 11:30:20 +0200 -Subject: [PATCH] Revert "S/390: Make jmp_buf extendible" and "S/390: Make - ucontext_t extendible" +2014-07-30 Stefan Liebler ---- - nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c | 30 ++---- - sysdeps/s390/Makefile | 9 -- - sysdeps/s390/Versions | 4 - - sysdeps/s390/__longjmp.c | 10 -- - sysdeps/s390/bits/setjmp.h | 4 - - sysdeps/s390/longjmp.c | 38 +++---- - sysdeps/s390/s390-32/__longjmp-common.c | 2 +- - sysdeps/s390/s390-32/setjmp-common.S | 4 - - sysdeps/s390/s390-64/__longjmp-common.c | 2 +- - sysdeps/s390/s390-64/setjmp-common.S | 4 - - sysdeps/s390/setjmp.S | 20 +--- - sysdeps/s390/sigjmp.c | 2 +- - sysdeps/s390/v1-longjmp.c | 57 ----------- - sysdeps/s390/v1-setjmp.h | 111 --------------------- - sysdeps/s390/v1-sigjmp.c | 44 -------- - sysdeps/unix/sysv/linux/s390/Makefile | 6 -- - sysdeps/unix/sysv/linux/s390/getcontext.S | 6 +- - sysdeps/unix/sysv/linux/s390/longjmp_chk.c | 19 ++-- - .../unix/sysv/linux/s390/s390-32/____longjmp_chk.c | 16 --- - .../sysv/linux/s390/s390-32/getcontext-common.S | 37 ------- - sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S | 10 +- - sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S | 13 +-- - .../unix/sysv/linux/s390/s390-32/ucontext_i.sym | 1 - - .../unix/sysv/linux/s390/s390-64/____longjmp_chk.c | 17 ---- - .../sysv/linux/s390/s390-64/getcontext-common.S | 4 - - sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S | 3 - - sysdeps/unix/sysv/linux/s390/sys/ucontext.h | 13 --- - sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c | 35 ------- - 28 files changed, 46 insertions(+), 475 deletions(-) - delete mode 100644 sysdeps/s390/Makefile - delete mode 100644 sysdeps/s390/v1-longjmp.c - delete mode 100644 sysdeps/s390/v1-setjmp.h - delete mode 100644 sysdeps/s390/v1-sigjmp.c - delete mode 100644 sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c + * sysdeps/s390/Makefile: Delete file. + * sysdeps/s390/Versions (GLIBC_2.19): Remove __setjmp. + * sysdeps/s390/__longjmp.c: Delete file. + * sysdeps/s390/bits/setjmp.h (__s390_jmp_buf): + Remove fields __flags and __reserved. + * sysdeps/s390/longjmp.c: Include setjmp/longjmp.c + and add versioning. + * sysdeps/s390/rtld-__longjmp.c: Delete file. + * sysdeps/s390/rtld-global-offsets.sym: Likewise. + * sysdeps/s390/rtld-setjmp.S: Likewise. + * sysdeps/s390/s390-32/__longjmp-common.c: Move to ... + * sysdeps/s390/s390-32/__longjmp.c: ... here. + * sysdeps/s390/s390-32/setjmp-common.S: Move to ... + * sysdeps/s390/s390-32/setjmp.S: ... here. + Add versioning. + (__sigsetjmp): Remove setting __flags field. + * sysdeps/s390/s390-64/__longjmp-common.c:Move to ... + * sysdeps/s390/s390-64/__longjmp.c: ... here. + * sysdeps/s390/s390-64/setjmp-common.S: Move to ... + * sysdeps/s390/s390-64/setjmp.S: ... here. + Add versioning. + (__sigsetjmp): Remove setting __flags field. + * sysdeps/s390/setjmp.S: Delete file. + * sysdeps/s390/sigjmp.c: Likewise. + * sysdeps/s390/v1-longjmp.c: Likewise. + * sysdeps/s390/v1-setjmp.h: Likewise. + * sysdeps/s390/v1-sigjmp.c: Likewise. + * sysdeps/unix/sysv/linux/s390/Makefile (sysdep_routines): + Remove v1-longjmp_chk. + * sysdeps/unix/sysv/linux/s390/getcontext.S: Delete file. + * sysdeps/unix/sysv/linux/s390/longjmp_chk.c: + Include debug/longjmp_chk.c and add versioning. + * nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c: + Include nptl/sysdeps/pthread/pt-longjmp.c and add versioning. + * sysdeps/unix/sysv/linux/s390/rtld-getcontext.S: Delete file. + * sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c: + Include __longjmp.c. + * sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S: + Move to ... + * sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S: ... here. + (__getcontext): Remove setting __flags field. + Add versioning. + * sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S: + Don´t restore upper high grps. + * sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S: + Likewise. + (__swapcontext): Remove setting uc_flags field. + * sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym: + Delete file. + * sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c: + Include __longjmp.c. + * sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S: + Move to ... + * sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S: ... here. + (__getcontext): Remove setting __flags field. + Add versioning. + * sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S: + (__swapcontext): Remove setting uc_flags field. + * unix/sysv/linux/s390/s390-64/ucontext_i.sym: Delete file. + * sysdeps/unix/sysv/linux/s390/sys/ucontext.h (ucontext): + Remove fields uc_high_gprs and __reserved. + * sysdeps/unix/sysv/linux/s390/ucontext_i.sym: + New file with reverted content. + * sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c: Delete file. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: + Regenerated. + * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: + Regenerated. -diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -index 801432c..6622752 100644 ---- a/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -+++ b/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -@@ -23,29 +23,6 @@ - #include - #include "pthreadP.h" +Index: glibc-2.19/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c +=================================================================== +--- glibc-2.19.orig/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c ++++ glibc-2.19/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c +@@ -15,49 +15,30 @@ + License along with the GNU C Library; if not, see + . + +- This is a copy of pthread/pt-longjmp.c made for extending the +- jmpbuf structure on System z. */ ++ Versioned copy of nptl/pt-longjmp.c modified for versioning ++ the reverted jmpbuf extension. */ + +-#include +-#include +-#include +-#include "pthreadP.h" #include -#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19) -- + -/* The __v1 version prototypes are declared in v1-setjmp.h which - cannot be included together with setjmp.h. So we put the - prototypes here manually. */ @@ -71,24 +110,46 @@ index 801432c..6622752 100644 -compat_symbol (libpthread, __v1_longjmp, longjmp, GLIBC_2_0); -compat_symbol (libpthread, __v1_siglongjmp, siglongjmp, GLIBC_2_0); -#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19)) */ - - void - __v2_longjmp (jmp_buf env, int val) -@@ -61,3 +38,10 @@ __v2_siglongjmp (jmp_buf env, int val) - - versioned_symbol (libpthread, __v2_longjmp, longjmp, GLIBC_2_19); - versioned_symbol (libpthread, __v2_siglongjmp, siglongjmp, GLIBC_2_19); +- +-void +-__v2_longjmp (jmp_buf env, int val) +-{ +- __libc_longjmp (env, val); +-} +- +-void +-__v2_siglongjmp (jmp_buf env, int val) +-{ +- __libc_siglongjmp (env, val); +-} +- +-versioned_symbol (libpthread, __v2_longjmp, longjmp, GLIBC_2_19); +-versioned_symbol (libpthread, __v2_siglongjmp, siglongjmp, GLIBC_2_19); ++#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20) ++ /* we need a unique name in case of symbol versioning. */ ++# define longjmp __v1longjmp ++#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */ + -+#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19) -+strong_alias (__v2_longjmp, __v1_longjmp); -+strong_alias (__v2_siglongjmp, __v1_siglongjmp); -+compat_symbol (libpthread, __v1_longjmp, longjmp, GLIBC_2_0); -+compat_symbol (libpthread, __v1_siglongjmp, siglongjmp, GLIBC_2_0); -+#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19)) */ -diff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile -deleted file mode 100644 -index 42978dc..0000000 ---- a/sysdeps/s390/Makefile ++#include ++ ++#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20) ++/* In glibc release 2.19 new versions of longjmp-functions were introduced, ++ but were reverted before 2.20. Thus both versions are the same function. */ ++ ++# undef longjmp ++ ++strong_alias (__v1longjmp, __v2longjmp) ++versioned_symbol (libpthread, __v1longjmp, longjmp, GLIBC_2_0); ++compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19); ++ ++weak_alias (siglongjmp, __v1siglongjmp) ++weak_alias (siglongjmp, __v2siglongjmp) ++versioned_symbol (libpthread, __v1siglongjmp, siglongjmp, GLIBC_2_0); ++compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19); ++#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */ +Index: glibc-2.19/sysdeps/s390/Makefile +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -ifeq ($(subdir),setjmp) @@ -100,12 +161,15 @@ index 42978dc..0000000 -ifeq ($(subdir),csu) -gen-as-const-headers += rtld-global-offsets.sym -endif -diff --git a/sysdeps/s390/Versions b/sysdeps/s390/Versions -index 156abc7..e3cdaa4 100644 ---- a/sysdeps/s390/Versions -+++ b/sysdeps/s390/Versions -@@ -3,10 +3,6 @@ libc { - setjmp; _setjmp; __setjmp; __sigsetjmp; +Index: glibc-2.19/sysdeps/s390/Versions +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/Versions ++++ glibc-2.19/sysdeps/s390/Versions +@@ -1,12 +1,8 @@ + libc { + GLIBC_2.19 { +- setjmp; _setjmp; __setjmp; __sigsetjmp; ++ setjmp; _setjmp; __sigsetjmp; longjmp; _longjmp; siglongjmp; } - GLIBC_PRIVATE { @@ -115,16 +179,33 @@ index 156abc7..e3cdaa4 100644 } ld { -diff --git a/sysdeps/s390/__longjmp.c b/sysdeps/s390/__longjmp.c -index e4acd31..fd14abb 100644 ---- a/sysdeps/s390/__longjmp.c -+++ b/sysdeps/s390/__longjmp.c -@@ -18,14 +18,4 @@ - #include - #include - +Index: glibc-2.19/sysdeps/s390/__longjmp.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/__longjmp.c ++++ /dev/null +@@ -1,31 +0,0 @@ +-/* Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- -#define __longjmp __v2__longjmp - #include "__longjmp-common.c" +-#include "__longjmp-common.c" -#undef __longjmp -strong_alias (__v2__longjmp, __longjmp) - @@ -134,10 +215,10 @@ index e4acd31..fd14abb 100644 -# define __longjmp __v1__longjmp -# include "__longjmp-common.c" -#endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ -diff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h -index 25eaf10..0071a9d 100644 ---- a/sysdeps/s390/bits/setjmp.h -+++ b/sysdeps/s390/bits/setjmp.h +Index: glibc-2.19/sysdeps/s390/bits/setjmp.h +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/bits/setjmp.h ++++ glibc-2.19/sysdeps/s390/bits/setjmp.h @@ -40,10 +40,6 @@ typedef struct __s390_jmp_buf /* We save fpu registers 4 and 6. */ long __fpregs[4]; @@ -149,37 +230,48 @@ index 25eaf10..0071a9d 100644 } __jmp_buf[1]; #endif -diff --git a/sysdeps/s390/longjmp.c b/sysdeps/s390/longjmp.c -index c758d14..dda9ae6 100644 ---- a/sysdeps/s390/longjmp.c -+++ b/sysdeps/s390/longjmp.c -@@ -23,17 +23,11 @@ - #include - #include +Index: glibc-2.19/sysdeps/s390/longjmp.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/longjmp.c ++++ glibc-2.19/sysdeps/s390/longjmp.c +@@ -15,50 +15,28 @@ + License along with the GNU C Library; if not, see + . +- Versioned copy of sysdeps/generic/longjmp.c modified for extended +- jmpbuf. */ ++ Versioned copy of setjmp/longjmp.c modified for versioning ++ the reverted jmpbuf extension. */ + + #include +-#include +-#include +-#include +- -extern void __v2__longjmp (__jmp_buf __env, int __val) - __attribute__ ((__noreturn__)); -extern void __v2__libc_longjmp (sigjmp_buf env, int val) - __attribute__ ((__noreturn__)); -libc_hidden_proto (__v2__libc_longjmp) - - /* Set the signal mask to the one specified in ENV, and jump - to the position specified in ENV, causing the setjmp - call there to return VAL, or 1 if VAL is 0. */ - void +-/* Set the signal mask to the one specified in ENV, and jump +- to the position specified in ENV, causing the setjmp +- call there to return VAL, or 1 if VAL is 0. */ +-void -__v2__libc_siglongjmp (sigjmp_buf env, int val) -+__libc_siglongjmp (sigjmp_buf env, int val) - { - /* Perform any cleanups needed by the frames being unwound. */ - _longjmp_unwind (env, val); -@@ -44,21 +38,27 @@ __v2__libc_siglongjmp (sigjmp_buf env, int val) - (sigset_t *) NULL); - - /* Call the machine-dependent function to restore machine state. */ +-{ +- /* Perform any cleanups needed by the frames being unwound. */ +- _longjmp_unwind (env, val); +- +- if (env[0].__mask_was_saved) +- /* Restore the saved signal mask. */ +- (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask, +- (sigset_t *) NULL); +- +- /* Call the machine-dependent function to restore machine state. */ - __v2__longjmp (env[0].__jmpbuf, val ?: 1); -+ __longjmp (env[0].__jmpbuf, val ?: 1); - } - +-} +- -#ifndef __v2__longjmp -strong_alias (__v2__libc_siglongjmp, __v2__libc_longjmp) -libc_hidden_def (__v2__libc_longjmp) @@ -190,108 +282,850 @@ index c758d14..dda9ae6 100644 -/* These will be used by libpthread only. */ -versioned_symbol (libc, __v2__libc_longjmp, __libc_longjmp, GLIBC_PRIVATE); -versioned_symbol (libc, __v2__libc_siglongjmp, __libc_siglongjmp, GLIBC_PRIVATE); -+#ifndef __longjmp -+strong_alias (__libc_siglongjmp, __libc_longjmp) -+libc_hidden_def (__libc_longjmp) -+weak_alias (__libc_siglongjmp, __v2_longjmp) -+weak_alias (__libc_siglongjmp, __v2longjmp) -+weak_alias (__libc_siglongjmp, __v2siglongjmp) - - versioned_symbol (libc, __v2_longjmp, _longjmp, GLIBC_2_19); - versioned_symbol (libc, __v2longjmp, longjmp, GLIBC_2_19); - versioned_symbol (libc, __v2siglongjmp, siglongjmp, GLIBC_2_19); +- +-versioned_symbol (libc, __v2_longjmp, _longjmp, GLIBC_2_19); +-versioned_symbol (libc, __v2longjmp, longjmp, GLIBC_2_19); +-versioned_symbol (libc, __v2siglongjmp, siglongjmp, GLIBC_2_19); -#endif /* ifndef __v2__longjmp */ + -+# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) -+weak_alias (__libc_siglongjmp, __v1_longjmp) -+weak_alias (__libc_siglongjmp, __v1longjmp) -+weak_alias (__libc_siglongjmp, __v1siglongjmp) ++#include + -+compat_symbol (libc, __v1_longjmp, _longjmp, GLIBC_2_0); -+compat_symbol (libc, __v1longjmp, longjmp, GLIBC_2_0); -+compat_symbol (libc, __v1siglongjmp, siglongjmp, GLIBC_2_0); -+# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ -+#endif /* ifndef __longjmp */ -diff --git a/sysdeps/s390/s390-32/__longjmp-common.c b/sysdeps/s390/s390-32/__longjmp-common.c -index f78ef65..5d46e21 100644 ---- a/sysdeps/s390/s390-32/__longjmp-common.c -+++ b/sysdeps/s390/s390-32/__longjmp-common.c -@@ -25,7 +25,7 @@ - - /* Jump to the position specified by ENV, causing the - setjmp call there to return VAL, or 1 if VAL is 0. */ ++#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++/* In glibc release 2.19 new versions of longjmp-functions were introduced, ++ but were reverted before 2.20. Thus both versions are the same function. */ ++weak_alias (__libc_siglongjmp, __v1_longjmp) ++weak_alias (__libc_siglongjmp, __v2_longjmp) ++versioned_symbol (libc, __v1_longjmp, _longjmp, GLIBC_2_0); ++compat_symbol (libc, __v2_longjmp, _longjmp, GLIBC_2_19); ++ ++weak_alias (__libc_siglongjmp, __v1longjmp) ++weak_alias (__libc_siglongjmp, __v2longjmp) ++versioned_symbol (libc, __v1longjmp, longjmp, GLIBC_2_0); ++compat_symbol (libc, __v2longjmp, longjmp, GLIBC_2_19); ++ ++weak_alias (__libc_siglongjmp, __v1siglongjmp) ++weak_alias (__libc_siglongjmp, __v2siglongjmp) ++versioned_symbol (libc, __v1siglongjmp, siglongjmp, GLIBC_2_0); ++compat_symbol (libc, __v2siglongjmp, siglongjmp, GLIBC_2_19); ++#endif /* SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ +Index: glibc-2.19/sysdeps/s390/rtld-__longjmp.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/rtld-__longjmp.c ++++ /dev/null +@@ -1,19 +0,0 @@ +-/* Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* Build a non-versioned object for rtld-*. */ +-# include "__longjmp-common.c" +Index: glibc-2.19/sysdeps/s390/rtld-global-offsets.sym +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/rtld-global-offsets.sym ++++ /dev/null +@@ -1,7 +0,0 @@ +-#define SHARED 1 +- +-#include +- +-#define rtld_global_ro_offsetof(mem) offsetof (struct rtld_global_ro, mem) +- +-RTLD_GLOBAL_RO_DL_HWCAP_OFFSET rtld_global_ro_offsetof (_dl_hwcap) +Index: glibc-2.19/sysdeps/s390/rtld-setjmp.S +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/rtld-setjmp.S ++++ /dev/null +@@ -1,20 +0,0 @@ +-/* Extendible version of setjmp for System z +- Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* Build a non-versioned object for rtld-*. */ +-# include "setjmp-common.S" +Index: glibc-2.19/sysdeps/s390/s390-32/__longjmp-common.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/s390-32/__longjmp-common.c ++++ /dev/null +@@ -1,68 +0,0 @@ +-/* Copyright (C) 2000-2014 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-/* Jump to the position specified by ENV, causing the +- setjmp call there to return VAL, or 1 if VAL is 0. */ -attribute_hidden void +-__longjmp (__jmp_buf env, int val) +-{ +-#ifdef PTR_DEMANGLE +- uintptr_t guard = THREAD_GET_POINTER_GUARD (); +-# ifdef CHECK_SP +- CHECK_SP (env, guard); +-# endif +-#elif defined CHECK_SP +- CHECK_SP (env, 0); +-#endif +- register int r2 __asm ("%r2") = val == 0 ? 1 : val; +-#ifdef PTR_DEMANGLE +- register uintptr_t r3 __asm ("%r3") = guard; +- register void *r1 __asm ("%r1") = (void *) env; +-#endif +- /* Restore registers and jump back. */ +- asm volatile ("ld %%f6,48(%1)\n\t" +- "ld %%f4,40(%1)\n\t" +-#ifdef PTR_DEMANGLE +- "lm %%r6,%%r13,0(%1)\n\t" +- "lm %%r4,%%r5,32(%1)\n\t" +- "xr %%r4,%2\n\t" +- "xr %%r5,%2\n\t" +- "lr %%r15,%%r5\n\t" +- "br %%r4" +-#else +- "lm %%r6,%%r15,0(%1)\n\t" +- "br %%r14" +-#endif +- : : "r" (r2), +-#ifdef PTR_DEMANGLE +- "r" (r1), "r" (r3) +-#else +- "a" (env) +-#endif +- ); +- +- /* Avoid `volatile function does return' warnings. */ +- for (;;); +-} +Index: glibc-2.19/sysdeps/s390/s390-32/__longjmp.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/s390/s390-32/__longjmp.c +@@ -0,0 +1,68 @@ ++/* Copyright (C) 2000-2014 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Jump to the position specified by ENV, causing the ++ setjmp call there to return VAL, or 1 if VAL is 0. */ +void - __longjmp (__jmp_buf env, int val) - { - #ifdef PTR_DEMANGLE -diff --git a/sysdeps/s390/s390-32/setjmp-common.S b/sysdeps/s390/s390-32/setjmp-common.S -index d7bb720..cee8181 100644 ---- a/sysdeps/s390/s390-32/setjmp-common.S -+++ b/sysdeps/s390/s390-32/setjmp-common.S -@@ -55,10 +55,6 @@ ENTRY(__sigsetjmp) - #else - stm %r6,%r15,0(%r2) /* store registers in jmp_buf */ - #endif ++__longjmp (__jmp_buf env, int val) ++{ ++#ifdef PTR_DEMANGLE ++ uintptr_t guard = THREAD_GET_POINTER_GUARD (); ++# ifdef CHECK_SP ++ CHECK_SP (env, guard); ++# endif ++#elif defined CHECK_SP ++ CHECK_SP (env, 0); ++#endif ++ register int r2 __asm ("%r2") = val == 0 ? 1 : val; ++#ifdef PTR_DEMANGLE ++ register uintptr_t r3 __asm ("%r3") = guard; ++ register void *r1 __asm ("%r1") = (void *) env; ++#endif ++ /* Restore registers and jump back. */ ++ asm volatile ("ld %%f6,48(%1)\n\t" ++ "ld %%f4,40(%1)\n\t" ++#ifdef PTR_DEMANGLE ++ "lm %%r6,%%r13,0(%1)\n\t" ++ "lm %%r4,%%r5,32(%1)\n\t" ++ "xr %%r4,%2\n\t" ++ "xr %%r5,%2\n\t" ++ "lr %%r15,%%r5\n\t" ++ "br %%r4" ++#else ++ "lm %%r6,%%r15,0(%1)\n\t" ++ "br %%r14" ++#endif ++ : : "r" (r2), ++#ifdef PTR_DEMANGLE ++ "r" (r1), "r" (r3) ++#else ++ "a" (env) ++#endif ++ ); ++ ++ /* Avoid `volatile function does return' warnings. */ ++ for (;;); ++} +Index: glibc-2.19/sysdeps/s390/s390-32/setjmp-common.S +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/s390-32/setjmp-common.S ++++ /dev/null +@@ -1,84 +0,0 @@ +-/* setjmp for s390, ELF version. +- Copyright (C) 2000-2014 Free Software Foundation, Inc. +- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#define _ASM +-#define _SETJMP_H +-#include +- +- /* We include the BSD entry points here as well but we make +- them weak. */ +-ENTRY (setjmp) +- .weak C_SYMBOL_NAME (setjmp) +- lhi %r3,1 /* second argument of one */ +- j 0f /* branch relativ to __sigsetjmp */ +-END (setjmp) +- +- /* Binary compatibility entry point. */ +-ENTRY(_setjmp) +- .weak C_SYMBOL_NAME (_setjmp) +- lhi %r3,0 /* second argument of zero */ +- j 0f /* branch relativ to __sigsetjmp */ +-END (_setjmp) +-libc_hidden_def (_setjmp) +- +-ENTRY(__setjmp) +- lhi %r3,0 /* second argument of zero */ +- j 0f /* branch relativ to __sigsetjmp */ +-END (__setjmp) +- +-ENTRY(__sigsetjmp) +-0: +-#ifdef PTR_MANGLE +- stm %r6,%r13,0(%r2) /* store registers in jmp_buf */ +- lr %r4,%r14 +- lr %r5,%r15 +- PTR_MANGLE (%r4, %r1) +- PTR_MANGLE2 (%r5, %r1) +- stm %r4,%r5,32(%r2) +-#else +- stm %r6,%r15,0(%r2) /* store registers in jmp_buf */ +-#endif -#ifndef __V1_JMPBUF - lhi %r4,0 - st %r4,56(%r2) /* Set __flags to 0. */ -#endif - std %f4,40(%r2) - std %f6,48(%r2) - #if defined NOT_IN_libc && defined IS_IN_rtld -diff --git a/sysdeps/s390/s390-64/__longjmp-common.c b/sysdeps/s390/s390-64/__longjmp-common.c -index 46cabb6..168ebf5 100644 ---- a/sysdeps/s390/s390-64/__longjmp-common.c -+++ b/sysdeps/s390/s390-64/__longjmp-common.c -@@ -25,7 +25,7 @@ - - /* Jump to the position specified by ENV, causing the - setjmp call there to return VAL, or 1 if VAL is 0. */ +- std %f4,40(%r2) +- std %f6,48(%r2) +-#if defined NOT_IN_libc && defined IS_IN_rtld +- /* In ld.so we never save the signal mask. */ +- lhi %r2,0 +- br %r14 +-#elif defined PIC +- /* We cannot use the PLT, because it requires that %r12 be set, but +- we can't save and restore our caller's value. Instead, we do an +- indirect jump through the GOT. */ +- basr %r1,0 +-0: al %r1,1f-0b(0,%r1) /* get address of global offset table */ +- /* get address of __sigjmp_save from got */ +- l %r1,__sigjmp_save@GOT12(0,%r1) +- br %r1 +-1: .long _GLOBAL_OFFSET_TABLE_ - 0b +-#else +- basr %r1,0 +-0: l %r1,1f-0b(0,%r1) /* load address of __sigjmp_save */ +- br %r1 /* tail-call __sigjmp_save */ +-1: .long __sigjmp_save +-#endif +-END (__sigsetjmp) +Index: glibc-2.19/sysdeps/s390/s390-32/setjmp.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/s390/s390-32/setjmp.S +@@ -0,0 +1,111 @@ ++/* setjmp for s390, ELF version. ++ Copyright (C) 2000-2014 Free Software Foundation, Inc. ++ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#define _ASM ++#define _SETJMP_H ++#include ++#include ++ ++#if !defined IS_IN_rtld ++# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++ /* we need a unique name in case of symbol versioning. */ ++# define __sigsetjmp __v1__sigsetjmp ++# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ ++#endif /* !defined IS_IN_rtld */ ++ ++ /* We include the BSD entry points here as well but we make ++ them weak. */ ++ENTRY (setjmp) ++ .weak C_SYMBOL_NAME (setjmp) ++ lhi %r3,1 /* second argument of one */ ++ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */ ++END (setjmp) ++ ++ /* Binary compatibility entry point. */ ++ENTRY(_setjmp) ++ .weak C_SYMBOL_NAME (_setjmp) ++ lhi %r3,0 /* second argument of zero */ ++ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */ ++END (_setjmp) ++libc_hidden_def (_setjmp) ++ ++ENTRY(__setjmp) ++ lhi %r3,0 /* second argument of zero */ ++ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */ ++END (__setjmp) ++ ++ENTRY(__sigsetjmp) ++.Linternal_sigsetjmp: ++#ifdef PTR_MANGLE ++ stm %r6,%r13,0(%r2) /* store registers in jmp_buf */ ++ lr %r4,%r14 ++ lr %r5,%r15 ++ PTR_MANGLE (%r4, %r1) ++ PTR_MANGLE2 (%r5, %r1) ++ stm %r4,%r5,32(%r2) ++#else ++ stm %r6,%r15,0(%r2) /* store registers in jmp_buf */ ++#endif ++ std %f4,40(%r2) ++ std %f6,48(%r2) ++#if defined NOT_IN_libc && defined IS_IN_rtld ++ /* In ld.so we never save the signal mask. */ ++ lhi %r2,0 ++ br %r14 ++#elif defined PIC ++ /* We cannot use the PLT, because it requires that %r12 be set, but ++ we can't save and restore our caller's value. Instead, we do an ++ indirect jump through the GOT. */ ++ basr %r1,0 ++.L0: al %r1,.L1 - .L0(0,%r1) /* get address of global offset table */ ++ /* get address of __sigjmp_save from got */ ++ l %r1,__sigjmp_save@GOT12(0,%r1) ++ br %r1 ++.L1: .long _GLOBAL_OFFSET_TABLE_ - .L0 ++#else ++ basr %r1,0 ++.L0: l %r1,.L1-.L0(0,%r1) /* load address of __sigjmp_save */ ++ br %r1 /* tail-call __sigjmp_save */ ++.L1: .long __sigjmp_save ++#endif ++END (__sigsetjmp) ++ ++#if !defined IS_IN_rtld ++# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++/* In glibc release 2.19 new versions of setjmp-functions were introduced, ++ but were reverted before 2.20. Thus both versions are the same function. */ ++ ++# undef __sigsetjmp ++ ++weak_alias (setjmp, __v1setjmp); ++weak_alias (setjmp, __v2setjmp); ++versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0); ++compat_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19); ++ ++weak_alias (_setjmp, __v1_setjmp); ++weak_alias (_setjmp, __v2_setjmp); ++versioned_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0); ++compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19); ++ ++strong_alias (__v1__sigsetjmp, __v2__sigsetjmp); ++versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0); ++compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19); ++# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ ++#endif /* if !defined IS_IN_rtld */ +Index: glibc-2.19/sysdeps/s390/s390-64/__longjmp-common.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/s390-64/__longjmp-common.c ++++ /dev/null +@@ -1,74 +0,0 @@ +-/* Copyright (C) 2001-2014 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-/* Jump to the position specified by ENV, causing the +- setjmp call there to return VAL, or 1 if VAL is 0. */ -attribute_hidden void +-__longjmp (__jmp_buf env, int val) +-{ +-#ifdef PTR_DEMANGLE +- uintptr_t guard = THREAD_GET_POINTER_GUARD (); +-# ifdef CHECK_SP +- CHECK_SP (env, guard); +-# endif +-#elif defined CHECK_SP +- CHECK_SP (env, 0); +-#endif +- register long int r2 __asm ("%r2") = val == 0 ? 1 : val; +-#ifdef PTR_DEMANGLE +- register uintptr_t r3 __asm ("%r3") = guard; +- register void *r1 __asm ("%r1") = (void *) env; +-#endif +- /* Restore registers and jump back. */ +- asm volatile ("ld %%f8,80(%1)\n\t" +- "ld %%f9,88(%1)\n\t" +- "ld %%f10,96(%1)\n\t" +- "ld %%f11,104(%1)\n\t" +- "ld %%f12,112(%1)\n\t" +- "ld %%f13,120(%1)\n\t" +- "ld %%f14,128(%1)\n\t" +- "ld %%f15,136(%1)\n\t" +-#ifdef PTR_DEMANGLE +- "lmg %%r6,%%r13,0(%1)\n\t" +- "lmg %%r4,%%r5,64(%1)\n\t" +- "xgr %%r4,%2\n\t" +- "xgr %%r5,%2\n\t" +- "lgr %%r15,%%r5\n\t" +- "br %%r4" +-#else +- "lmg %%r6,%%r15,0(%1)\n\t" +- "br %%r14" +-#endif +- : : "r" (r2), +-#ifdef PTR_DEMANGLE +- "r" (r1), "r" (r3) +-#else +- "a" (env) +-#endif +- ); +- +- /* Avoid `volatile function does return' warnings. */ +- for (;;); +-} +Index: glibc-2.19/sysdeps/s390/s390-64/__longjmp.c +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/s390/s390-64/__longjmp.c +@@ -0,0 +1,74 @@ ++/* Copyright (C) 2001-2014 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Jump to the position specified by ENV, causing the ++ setjmp call there to return VAL, or 1 if VAL is 0. */ +void - __longjmp (__jmp_buf env, int val) - { - #ifdef PTR_DEMANGLE -diff --git a/sysdeps/s390/s390-64/setjmp-common.S b/sysdeps/s390/s390-64/setjmp-common.S -index 9cdcae4..7b9dc42 100644 ---- a/sysdeps/s390/s390-64/setjmp-common.S -+++ b/sysdeps/s390/s390-64/setjmp-common.S -@@ -55,10 +55,6 @@ ENTRY(__sigsetjmp) - #else - stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */ - #endif ++__longjmp (__jmp_buf env, int val) ++{ ++#ifdef PTR_DEMANGLE ++ uintptr_t guard = THREAD_GET_POINTER_GUARD (); ++# ifdef CHECK_SP ++ CHECK_SP (env, guard); ++# endif ++#elif defined CHECK_SP ++ CHECK_SP (env, 0); ++#endif ++ register long int r2 __asm ("%r2") = val == 0 ? 1 : val; ++#ifdef PTR_DEMANGLE ++ register uintptr_t r3 __asm ("%r3") = guard; ++ register void *r1 __asm ("%r1") = (void *) env; ++#endif ++ /* Restore registers and jump back. */ ++ asm volatile ("ld %%f8,80(%1)\n\t" ++ "ld %%f9,88(%1)\n\t" ++ "ld %%f10,96(%1)\n\t" ++ "ld %%f11,104(%1)\n\t" ++ "ld %%f12,112(%1)\n\t" ++ "ld %%f13,120(%1)\n\t" ++ "ld %%f14,128(%1)\n\t" ++ "ld %%f15,136(%1)\n\t" ++#ifdef PTR_DEMANGLE ++ "lmg %%r6,%%r13,0(%1)\n\t" ++ "lmg %%r4,%%r5,64(%1)\n\t" ++ "xgr %%r4,%2\n\t" ++ "xgr %%r5,%2\n\t" ++ "lgr %%r15,%%r5\n\t" ++ "br %%r4" ++#else ++ "lmg %%r6,%%r15,0(%1)\n\t" ++ "br %%r14" ++#endif ++ : : "r" (r2), ++#ifdef PTR_DEMANGLE ++ "r" (r1), "r" (r3) ++#else ++ "a" (env) ++#endif ++ ); ++ ++ /* Avoid `volatile function does return' warnings. */ ++ for (;;); ++} +Index: glibc-2.19/sysdeps/s390/s390-64/setjmp-common.S +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/s390-64/setjmp-common.S ++++ /dev/null +@@ -1,79 +0,0 @@ +-/* setjmp for 64 bit S/390, ELF version. +- Copyright (C) 2001-2014 Free Software Foundation, Inc. +- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#define _ASM +-#define _SETJMP_H +-#include +- +- /* We include the BSD entry points here as well but we make +- them weak. */ +-ENTRY (setjmp) +- .weak C_SYMBOL_NAME (setjmp) +- lghi %r3,1 /* Second argument of one. */ +- j 0f /* Branch relativ to __sigsetjmp. */ +-END (setjmp) +- +- /* Binary compatibility entry point. */ +-ENTRY(_setjmp) +- .weak C_SYMBOL_NAME (_setjmp) +- slgr %r3,%r3 /* Second argument of zero. */ +- j 0f /* Branch relativ to __sigsetjmp. */ +-END (_setjmp) +-libc_hidden_def (_setjmp) +- +-ENTRY(__setjmp) +- slgr %r3,%r3 /* Second argument of zero. */ +- j 0f /* Branch relativ to __sigsetjmp. */ +-END (__setjmp) +- +-ENTRY(__sigsetjmp) +-0: +-#ifdef PTR_MANGLE +- stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */ +- lgr %r4,%r14 +- lgr %r5,%r15 +- PTR_MANGLE (%r4, %r1) +- PTR_MANGLE2 (%r5, %r1) +- stmg %r4,%r5,64(%r2) +-#else +- stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */ +-#endif -#ifndef __V1_JMPBUF - lghi %r4,0 - stg %r4,144(%r2) /* Set __flags to 0. */ -#endif - std %f8,80(%r2) - std %f9,88(%r2) - std %f10,96(%r2) -diff --git a/sysdeps/s390/setjmp.S b/sysdeps/s390/setjmp.S -index 2ec621a..3e50e89 100644 ---- a/sysdeps/s390/setjmp.S -+++ b/sysdeps/s390/setjmp.S -@@ -27,7 +27,6 @@ versioned_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19) - #define _setjmp __v2_setjmp - #define __setjmp __v2__setjmp - #define __sigsetjmp __v2__sigsetjmp +- std %f8,80(%r2) +- std %f9,88(%r2) +- std %f10,96(%r2) +- std %f11,104(%r2) +- std %f12,112(%r2) +- std %f13,120(%r2) +- std %f14,128(%r2) +- std %f15,136(%r2) +-#if defined NOT_IN_libc && defined IS_IN_rtld +- /* In ld.so we never save the signal mask. */ +- lghi %r2,0 +- br %r14 +-#elif defined PIC +- jg __sigjmp_save@PLT /* Branch to PLT of __sigsetjmp. */ +-#else +- jg __sigjmp_save +-#endif +-END (__sigsetjmp) +Index: glibc-2.19/sysdeps/s390/s390-64/setjmp.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/s390/s390-64/setjmp.S +@@ -0,0 +1,106 @@ ++/* setjmp for 64 bit S/390, ELF version. ++ Copyright (C) 2001-2014 Free Software Foundation, Inc. ++ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#define _ASM ++#define _SETJMP_H ++#include ++#include ++ ++#if !defined IS_IN_rtld ++# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++ /* we need a unique name in case of symbol versioning. */ ++# define __sigsetjmp __v1__sigsetjmp ++# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ ++#endif /* !defined IS_IN_rtld */ ++ ++ /* We include the BSD entry points here as well but we make ++ them weak. */ ++ENTRY (setjmp) ++ .weak C_SYMBOL_NAME (setjmp) ++ lghi %r3,1 /* Second argument of one. */ ++ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ ++END (setjmp) ++ ++ /* Binary compatibility entry point. */ ++ENTRY(_setjmp) ++ .weak C_SYMBOL_NAME (_setjmp) ++ slgr %r3,%r3 /* Second argument of zero. */ ++ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ ++END (_setjmp) ++libc_hidden_def (_setjmp) ++ ++ENTRY(__setjmp) ++ slgr %r3,%r3 /* Second argument of zero. */ ++ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ ++END (__setjmp) ++ ++ENTRY(__sigsetjmp) ++.Linternal_sigsetjmp: ++#ifdef PTR_MANGLE ++ stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */ ++ lgr %r4,%r14 ++ lgr %r5,%r15 ++ PTR_MANGLE (%r4, %r1) ++ PTR_MANGLE2 (%r5, %r1) ++ stmg %r4,%r5,64(%r2) ++#else ++ stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */ ++#endif ++ std %f8,80(%r2) ++ std %f9,88(%r2) ++ std %f10,96(%r2) ++ std %f11,104(%r2) ++ std %f12,112(%r2) ++ std %f13,120(%r2) ++ std %f14,128(%r2) ++ std %f15,136(%r2) ++#if defined NOT_IN_libc && defined IS_IN_rtld ++ /* In ld.so we never save the signal mask. */ ++ lghi %r2,0 ++ br %r14 ++#elif defined PIC ++ jg __sigjmp_save@PLT /* Branch to PLT of __sigsetjmp. */ ++#else ++ jg __sigjmp_save ++#endif ++END (__sigsetjmp) ++ ++#if !defined IS_IN_rtld ++# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++/* In glibc release 2.19 new versions of setjmp-functions were introduced, ++ but were reverted before 2.20. Thus both versions are the same function. */ ++ ++# undef __sigsetjmp ++ ++weak_alias (setjmp, __v1setjmp); ++weak_alias (setjmp, __v2setjmp); ++versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0); ++compat_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19); ++ ++weak_alias (_setjmp, __v1_setjmp); ++weak_alias (_setjmp, __v2_setjmp); ++versioned_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0); ++compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19); ++ ++strong_alias (__v1__sigsetjmp, __v2__sigsetjmp); ++versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0); ++compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19); ++# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ ++#endif /* if !defined IS_IN_rtld */ +Index: glibc-2.19/sysdeps/s390/setjmp.S +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/setjmp.S ++++ /dev/null +@@ -1,64 +0,0 @@ +-/* Extendible version of setjmp for System z +- Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- +-versioned_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19) +-versioned_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19) +-versioned_symbol (libc, __v2__setjmp, __setjmp, GLIBC_2_19) +-versioned_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19) +-#define setjmp __v2setjmp +-#define _setjmp __v2_setjmp +-#define __setjmp __v2__setjmp +-#define __sigsetjmp __v2__sigsetjmp -#define __sigjmp_save __v2__sigjmp_save - - #include "setjmp-common.S" - -@@ -35,7 +34,6 @@ versioned_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19) - #undef _setjmp - #undef __setjmp - #undef __sigsetjmp +- +-#include "setjmp-common.S" +- +-#undef setjmp +-#undef _setjmp +-#undef __setjmp +-#undef __sigsetjmp -#undef __sigjmp_save - libc_hidden_ver (__v2setjmp, setjmp) - libc_hidden_ver (__v2_setjmp, _setjmp) - libc_hidden_ver (__v2__setjmp, __setjmp) -@@ -46,19 +44,9 @@ compat_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0) - compat_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0) - compat_symbol (libc, __v1__setjmp, __setjmp, GLIBC_2_0) - compat_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0) +-libc_hidden_ver (__v2setjmp, setjmp) +-libc_hidden_ver (__v2_setjmp, _setjmp) +-libc_hidden_ver (__v2__setjmp, __setjmp) +-libc_hidden_ver (__v2__sigsetjmp, __sigsetjmp) +- +-#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) +-compat_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0) +-compat_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0) +-compat_symbol (libc, __v1__setjmp, __setjmp, GLIBC_2_0) +-compat_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0) -# define setjmp __v1setjmp -# define _setjmp __v1_setjmp -# define __setjmp __v1__setjmp @@ -306,29 +1140,50 @@ index 2ec621a..3e50e89 100644 -# undef __setjmp -# undef __sigsetjmp -# undef __sigjmp_save -+strong_alias (__v2setjmp, __v1setjmp) -+strong_alias (__v2_setjmp, __v1_setjmp) -+strong_alias (__v2__setjmp, __v1__setjmp) -+strong_alias (__v2__sigsetjmp, __v1__sigsetjmp) - - #endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ -diff --git a/sysdeps/s390/sigjmp.c b/sysdeps/s390/sigjmp.c -index f7b5a6f..73dd356 100644 ---- a/sysdeps/s390/sigjmp.c -+++ b/sysdeps/s390/sigjmp.c -@@ -24,7 +24,7 @@ - Always return zero. */ - - int +- +-#endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ +Index: glibc-2.19/sysdeps/s390/sigjmp.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/sigjmp.c ++++ /dev/null +@@ -1,34 +0,0 @@ +-/* Copyright (C) 1992-2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +- +-/* This function is called by the `sigsetjmp' macro +- before doing a `__setjmp' on ENV[0].__jmpbuf. +- Always return zero. */ +- +-int -__v2__sigjmp_save (sigjmp_buf env, int savemask) -+__sigjmp_save (sigjmp_buf env, int savemask) - { - env[0].__mask_was_saved = (savemask && - __sigprocmask (SIG_BLOCK, (sigset_t *) NULL, -diff --git a/sysdeps/s390/v1-longjmp.c b/sysdeps/s390/v1-longjmp.c -deleted file mode 100644 -index 82252c9..0000000 ---- a/sysdeps/s390/v1-longjmp.c +-{ +- env[0].__mask_was_saved = (savemask && +- __sigprocmask (SIG_BLOCK, (sigset_t *) NULL, +- &env[0].__saved_mask) == 0); +- +- return 0; +-} +Index: glibc-2.19/sysdeps/s390/v1-longjmp.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/v1-longjmp.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (C) 2013 Free Software Foundation, Inc. @@ -388,10 +1243,9 @@ index 82252c9..0000000 -# endif /* ifndef __v1__longjmp */ -# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ -#endif /* if !defined NOT_INT_libc && defined SHARED */ -diff --git a/sysdeps/s390/v1-setjmp.h b/sysdeps/s390/v1-setjmp.h -deleted file mode 100644 -index a4a6b76..0000000 ---- a/sysdeps/s390/v1-setjmp.h +Index: glibc-2.19/sysdeps/s390/v1-setjmp.h +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/v1-setjmp.h +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (C) 1991-2013 Free Software Foundation, Inc. @@ -505,10 +1359,9 @@ index a4a6b76..0000000 -#endif /* !_ASM */ - -#endif /* ifndef _V1_SETJMP_H */ -diff --git a/sysdeps/s390/v1-sigjmp.c b/sysdeps/s390/v1-sigjmp.c -deleted file mode 100644 -index b624d16..0000000 ---- a/sysdeps/s390/v1-sigjmp.c +Index: glibc-2.19/sysdeps/s390/v1-sigjmp.c +=================================================================== +--- glibc-2.19.orig/sysdeps/s390/v1-sigjmp.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (C) 1992-2013 Free Software Foundation, Inc. @@ -555,10 +1408,10 @@ index b624d16..0000000 - -# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ -#endif /* !NOT_IN_libc && SHARED */ -diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile -index f91179d..45b1922 100644 ---- a/sysdeps/unix/sysv/linux/s390/Makefile -+++ b/sysdeps/unix/sysv/linux/s390/Makefile +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/Makefile +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/Makefile ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/Makefile @@ -16,9 +16,3 @@ endif ifeq ($(subdir),elf) sysdep_routines += dl-vdso @@ -569,73 +1422,151 @@ index f91179d..45b1922 100644 -sysdep_routines += v1-longjmp_chk -endif -endif -diff --git a/sysdeps/unix/sysv/linux/s390/getcontext.S b/sysdeps/unix/sysv/linux/s390/getcontext.S -index 5edbf95..4b2c2c6 100644 ---- a/sysdeps/unix/sysv/linux/s390/getcontext.S -+++ b/sysdeps/unix/sysv/linux/s390/getcontext.S -@@ -29,10 +29,6 @@ versioned_symbol (libc, __v2getcontext, getcontext, GLIBC_2_19) - libc_hidden_ver (__v2getcontext, getcontext) - - #if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_19) +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/getcontext.S +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/getcontext.S ++++ /dev/null +@@ -1,38 +0,0 @@ +-/* Extendible version of getcontext for System z +- Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- +-versioned_symbol (libc, __v2getcontext, getcontext, GLIBC_2_19) +-#define __getcontext __v2getcontext +- +-#include "getcontext-common.S" +- +-#undef __getcontext +- +-libc_hidden_ver (__v2getcontext, getcontext) +- +-#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_19) -# define __V1_UCONTEXT - compat_symbol (libc, __v1getcontext, getcontext, GLIBC_2_1) +-compat_symbol (libc, __v1getcontext, getcontext, GLIBC_2_1) -# define __getcontext __v1getcontext -# include "getcontext-common.S" -# undef __getcontext - -+strong_alias (__v2getcontext, __v1getcontext) - #endif -diff --git a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c -index 10f542d..84c28b7 100644 ---- a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c -+++ b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c -@@ -21,24 +21,25 @@ +-#endif +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/longjmp_chk.c +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/longjmp_chk.c ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/longjmp_chk.c +@@ -15,30 +15,34 @@ + License along with the GNU C Library; if not, see + . + +- This is a copy of debug/longjmp_chk.c extended for symbol +- versioning. */ ++ Versioned copy of debug/longjmp_chk.c modified for versioning ++ the reverted jmpbuf extension. */ + #include - #include +-#include -/* This place is the only user of these functions. */ -extern void ____v2__longjmp_chk (__jmp_buf __env, int __val) -- __attribute__ ((__noreturn__)); -- - #if defined NOT_IN_libc ++#if !defined NOT_IN_libc && defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++/* this is a copy from debug/longjmp_chk.c because we need an unique name ++ for __longjmp_chk, but it is already named via a define ++ for __libc_siglongjmp in debug/longjmp_chk.c. */ ++# include ++ ++// XXX Should move to include/setjmp.h ++extern void ____longjmp_chk (__jmp_buf __env, int __val) + __attribute__ ((__noreturn__)); + +-#if defined NOT_IN_libc ++# define __longjmp ____longjmp_chk ++# define __libc_siglongjmp __v1__longjmp_chk -# define __v2__longjmp ____longjmp_chk -# define __v2__libc_siglongjmp __longjmp_chk -+# define __longjmp ____longjmp_chk -+# define __libc_siglongjmp __longjmp_chk ++# include - # include +-# include ++/* In glibc release 2.19 a new versions of __longjmp_chk was introduced, ++ but was reverted before 2.20. Thus both versions are the same function. */ ++strong_alias (__v1__longjmp_chk, __v2__longjmp_chk); ++versioned_symbol (libc, __v1__longjmp_chk, __longjmp_chk, GLIBC_2_11); ++compat_symbol (libc, __v2__longjmp_chk, __longjmp_chk, GLIBC_2_19); #else -# define __v2__longjmp ____v2__longjmp_chk -# define __v2__libc_siglongjmp __v2__libc_siglongjmp_chk -+# define __longjmp ____longjmp_chk -+# define __libc_siglongjmp __libc_siglongjmp_chk - - # include - +- +-# include +- -versioned_symbol (libc, __v2__libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_19); -+versioned_symbol (libc, __libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_19); -+ -+# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) -+strong_alias (__libc_siglongjmp_chk, __v1__libc_siglongjmp_chk); -+compat_symbol (libc, __v1__libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_11); -+# endif ++# include #endif -diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c -index a1b7a6a..3cf4e35 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c -+++ b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c -@@ -52,21 +52,5 @@ +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/rtld-getcontext.S +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/rtld-getcontext.S ++++ /dev/null +@@ -1,19 +0,0 @@ +-/* Copyright (C) 2013 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* Build a non-versioned object for rtld-*. */ +-#include "getcontext-common.S" +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c +@@ -26,8 +26,8 @@ + #include + #include + #include +-#include +-#include ++ ++#define __longjmp ____longjmp_chk + + #define CHECK_SP(env, guard) \ + do \ +@@ -51,22 +51,4 @@ + } \ } while (0) - +- -#if defined NOT_IN_libc -/* Build a non-versioned object for rtld-*. */ - # define __longjmp ____longjmp_chk - # include "__longjmp-common.c" +-# define __longjmp ____longjmp_chk +-# include "__longjmp-common.c" - -#else /* !NOT_IN_libc */ -# define __longjmp ____v2__longjmp_chk @@ -650,22 +1581,74 @@ index a1b7a6a..3cf4e35 100644 - -# endif -#endif /* !NOT_IN_libc */ -diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S -index 4992030..42fc376 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S -+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S -@@ -19,7 +19,6 @@ - #include - #include - ++#include "__longjmp.c" +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S ++++ /dev/null +@@ -1,112 +0,0 @@ +-/* Copyright (C) 2001-2014 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- -#include "rtld-global-offsets.h" - #include "ucontext_i.h" - - /* __getcontext (const ucontext_t *ucp) -@@ -60,42 +59,6 @@ ENTRY(__getcontext) - std %f14,SC_FPRS+112(%r1) - std %f15,SC_FPRS+120(%r1) - +-#include "ucontext_i.h" +- +-/* __getcontext (const ucontext_t *ucp) +- +- Saves the machine context in UCP such that when it is activated, +- it appears as if __getcontext() returned again. +- +- This implementation is intended to be used for *synchronous* context +- switches only. Therefore, it does not have to save anything +- other than the PRESERVED state. */ +- +-ENTRY(__getcontext) +- lr %r1,%r2 +- +- /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ +- la %r2,SIG_BLOCK +- slr %r3,%r3 +- la %r4,SC_MASK(%r1) +- lhi %r5,_NSIG8 +- svc SYS_ify(rt_sigprocmask) +- +- /* Store fpu context. */ +- stfpc SC_FPC(%r1) +- std %f0,SC_FPRS(%r1) +- std %f1,SC_FPRS+8(%r1) +- std %f2,SC_FPRS+16(%r1) +- std %f3,SC_FPRS+24(%r1) +- std %f4,SC_FPRS+32(%r1) +- std %f5,SC_FPRS+40(%r1) +- std %f6,SC_FPRS+48(%r1) +- std %f7,SC_FPRS+56(%r1) +- std %f8,SC_FPRS+64(%r1) +- std %f9,SC_FPRS+72(%r1) +- std %f10,SC_FPRS+80(%r1) +- std %f11,SC_FPRS+88(%r1) +- std %f12,SC_FPRS+96(%r1) +- std %f13,SC_FPRS+104(%r1) +- std %f14,SC_FPRS+112(%r1) +- std %f15,SC_FPRS+120(%r1) +- - lhi %r2,0 -#ifndef __V1_UCONTEXT - bras %r3,0f @@ -702,13 +1685,127 @@ index 4992030..42fc376 100644 -#endif -2: st %r2,SC_FLGS(%r1) - - /* Set __getcontext return value to 0. */ - slr %r2,%r2 - -diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S -index fbe8b77..42839e2 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S -+++ b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S +- /* Set __getcontext return value to 0. */ +- slr %r2,%r2 +- +- /* Store access registers. */ +- stam %a0,%a15,SC_ACRS(%r1) +- +- /* Store general purpose registers. */ +- stm %r0,%r15,SC_GPRS(%r1) +- +- /* Return. */ +- br %r14 +-END(__getcontext) +- +-weak_alias (__getcontext, getcontext) +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S +@@ -0,0 +1,86 @@ ++/* Copyright (C) 2001-2014 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include "ucontext_i.h" ++ ++#include ++ ++/* __getcontext (const ucontext_t *ucp) ++ ++ Saves the machine context in UCP such that when it is activated, ++ it appears as if __getcontext() returned again. ++ ++ This implementation is intended to be used for *synchronous* context ++ switches only. Therefore, it does not have to save anything ++ other than the PRESERVED state. */ ++ ++ENTRY(__getcontext) ++ lr %r1,%r2 ++ ++ /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ ++ la %r2,SIG_BLOCK ++ slr %r3,%r3 ++ la %r4,SC_MASK(%r1) ++ lhi %r5,_NSIG8 ++ svc SYS_ify(rt_sigprocmask) ++ ++ /* Store fpu context. */ ++ stfpc SC_FPC(%r1) ++ std %f0,SC_FPRS(%r1) ++ std %f1,SC_FPRS+8(%r1) ++ std %f2,SC_FPRS+16(%r1) ++ std %f3,SC_FPRS+24(%r1) ++ std %f4,SC_FPRS+32(%r1) ++ std %f5,SC_FPRS+40(%r1) ++ std %f6,SC_FPRS+48(%r1) ++ std %f7,SC_FPRS+56(%r1) ++ std %f8,SC_FPRS+64(%r1) ++ std %f9,SC_FPRS+72(%r1) ++ std %f10,SC_FPRS+80(%r1) ++ std %f11,SC_FPRS+88(%r1) ++ std %f12,SC_FPRS+96(%r1) ++ std %f13,SC_FPRS+104(%r1) ++ std %f14,SC_FPRS+112(%r1) ++ std %f15,SC_FPRS+120(%r1) ++ ++ /* Set __getcontext return value to 0. */ ++ slr %r2,%r2 ++ ++ /* Store access registers. */ ++ stam %a0,%a15,SC_ACRS(%r1) ++ ++ /* Store general purpose registers. */ ++ stm %r0,%r15,SC_GPRS(%r1) ++ ++ /* Return. */ ++ br %r14 ++END(__getcontext) ++ ++weak_alias (__getcontext, getcontext) ++ ++#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++/* In glibc release 2.19 a new version of getcontext was introduced, ++ but was reverted before 2.20. Thus both versions are the same function. */ ++weak_alias (__getcontext, __v1__getcontext) ++weak_alias (__getcontext, __v2__getcontext) ++versioned_symbol (libc, __v1__getcontext, getcontext, GLIBC_2_1) ++compat_symbol (libc, __v2__getcontext, getcontext, GLIBC_2_19) ++#endif +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist +@@ -1777,7 +1777,6 @@ GLIBC_2.18 + GLIBC_2.19 + GLIBC_2.19 A + __longjmp_chk F +- __setjmp F + __sigsetjmp F + _longjmp F + _setjmp F +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S @@ -62,16 +62,8 @@ ENTRY(__setcontext) /* Don't touch %a0, used for thread purposes. */ lam %a1,%a15,SC_ACRS+4(%r1) @@ -727,15 +1824,29 @@ index fbe8b77..42839e2 100644 /* Return. */ br %r14 -diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S -index 41ede4b..5c1d7ac 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S -+++ b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S -@@ -74,21 +74,10 @@ ENTRY(__swapcontext) +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S +@@ -65,31 +65,19 @@ ENTRY(__swapcontext) + std %f14,SC_FPRS+112(%r1) + std %f15,SC_FPRS+120(%r1) + +- /* Store access registers. */ +- stam %a0,%a15,SC_ACRS(%r1) +- + /* Set __swapcontext return value to 0. */ + slr %r2,%r2 + ++ /* Store access registers. */ ++ stam %a0,%a15,SC_ACRS(%r1) ++ /* Store general purpose registers. */ stm %r0,%r15,SC_GPRS(%r1) - /* Copy uc_flags into the new ucontext_t. */ ++ /* sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL). */ ++ la %r2,SIG_BLOCK lr %r5,%r0 - l %r2,SC_FLGS(%r5) - st %r2,SC_FLGS(%r1) @@ -747,34 +1858,69 @@ index 41ede4b..5c1d7ac 100644 - .machinemode "zarch_nohighgprs" - stmh %r0,%r15,SC_HIGHGPRS(%r1) - lmh %r0,%r15,SC_HIGHGPRS(%r5) - - /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ +- +- /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ -0: la %r2,SIG_BLOCK -+ la %r2,SIG_BLOCK - la %r3,SC_MASK(%r5) +- la %r3,SC_MASK(%r5) ++ la %r3,SC_MASK(%r5) slr %r4,%r4 lhi %r5,_NSIG8 -diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym b/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym -index 705c7ab..6cc9f19 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym -+++ b/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym -@@ -23,4 +23,3 @@ SC_ACRS mcontext (aregs) - SC_FPC mcontext (fpregs.fpc) - SC_FPRS mcontext (fpregs.fprs) - SC_MASK ucontext (uc_sigmask) + svc SYS_ify(rt_sigprocmask) +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym ++++ /dev/null +@@ -1,26 +0,0 @@ +-#include +-#include +-#include +- +--- +- +-SIG_BLOCK +-SIG_UNBLOCK +-SIG_SETMASK +- +-_NSIG8 (_NSIG / 8) +- +-#define ucontext(member) offsetof (ucontext_t, member) +-#define mcontext(member) ucontext (uc_mcontext.member) +- +-SC_FLGS ucontext (uc_flags) +-SC_LINK ucontext (uc_link) +-SC_STCK ucontext (uc_stack.ss_sp) +-SC_STSZ ucontext (uc_stack.ss_size) +-SC_PSW mcontext (psw) +-SC_GPRS mcontext (gregs) +-SC_ACRS mcontext (aregs) +-SC_FPC mcontext (fpregs.fpc) +-SC_FPRS mcontext (fpregs.fprs) +-SC_MASK ucontext (uc_sigmask) -SC_HIGHGPRS ucontext (uc_high_gprs) -diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c -index bc27b08..a8c2b8d 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c -+++ b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c -@@ -52,22 +52,5 @@ +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c +@@ -26,8 +26,8 @@ + #include + #include + #include +-#include +-#include ++ ++#define __longjmp ____longjmp_chk + + #define CHECK_SP(env, guard) \ + do \ +@@ -51,23 +51,4 @@ + } \ } while (0) - +- -#if defined NOT_IN_libc -/* Build a non-versioned object for rtld-*. */ - # define __longjmp ____longjmp_chk - # include "__longjmp-common.c" +-# define __longjmp ____longjmp_chk +-# include "__longjmp-common.c" - -#else /* !NOT_IN_libc */ -# define __longjmp ____v2__longjmp_chk @@ -790,40 +1936,263 @@ index bc27b08..a8c2b8d 100644 - -# endif -#endif /* !NOT_IN_libc */ -diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S -index 3e61e30..3538ee7 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S -+++ b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S -@@ -62,10 +62,6 @@ ENTRY(__getcontext) - /* Set __getcontext return value to 0. */ - slgr %r2,%r2 - ++#include "__longjmp.c" +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S ++++ /dev/null +@@ -1,79 +0,0 @@ +-/* Copyright (C) 2001-2014 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +- +-#include "ucontext_i.h" +- +-/* __getcontext (const ucontext_t *ucp) +- +- Saves the machine context in UCP such that when it is activated, +- it appears as if __getcontext() returned again. +- +- This implementation is intended to be used for *synchronous* context +- switches only. Therefore, it does not have to save anything +- other than the PRESERVED state. */ +- +-ENTRY(__getcontext) +- lgr %r1,%r2 +- +- /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ +- la %r2,SIG_BLOCK +- slgr %r3,%r3 +- la %r4,SC_MASK(%r1) +- lghi %r5,_NSIG8 +- svc SYS_ify(rt_sigprocmask) +- +- /* Store fpu context. */ +- stfpc SC_FPC(%r1) +- std %f0,SC_FPRS(%r1) +- std %f1,SC_FPRS+8(%r1) +- std %f2,SC_FPRS+16(%r1) +- std %f3,SC_FPRS+24(%r1) +- std %f4,SC_FPRS+32(%r1) +- std %f5,SC_FPRS+40(%r1) +- std %f6,SC_FPRS+48(%r1) +- std %f7,SC_FPRS+56(%r1) +- std %f8,SC_FPRS+64(%r1) +- std %f9,SC_FPRS+72(%r1) +- std %f10,SC_FPRS+80(%r1) +- std %f11,SC_FPRS+88(%r1) +- std %f12,SC_FPRS+96(%r1) +- std %f13,SC_FPRS+104(%r1) +- std %f14,SC_FPRS+112(%r1) +- std %f15,SC_FPRS+120(%r1) +- +- /* Set __getcontext return value to 0. */ +- slgr %r2,%r2 +- - /* Store the version number into the uc_flags field. So far - we do not make use of the reserved bytes so we store a zero. */ - stg %r2,SC_FLGS(%r1) - +- /* Store access registers. */ +- stam %a0,%a15,SC_ACRS(%r1) +- +- /* Store general purpose registers. */ +- stmg %r0,%r15,SC_GPRS(%r1) +- +- /* Return. */ +- br %r14 +-END(__getcontext) +- +-weak_alias (__getcontext, getcontext) +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S +@@ -0,0 +1,86 @@ ++/* Copyright (C) 2001-2014 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include "ucontext_i.h" ++ ++#include ++ ++/* __getcontext (const ucontext_t *ucp) ++ ++ Saves the machine context in UCP such that when it is activated, ++ it appears as if __getcontext() returned again. ++ ++ This implementation is intended to be used for *synchronous* context ++ switches only. Therefore, it does not have to save anything ++ other than the PRESERVED state. */ ++ ++ENTRY(__getcontext) ++ lgr %r1,%r2 ++ ++ /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ ++ la %r2,SIG_BLOCK ++ slgr %r3,%r3 ++ la %r4,SC_MASK(%r1) ++ lghi %r5,_NSIG8 ++ svc SYS_ify(rt_sigprocmask) ++ ++ /* Store fpu context. */ ++ stfpc SC_FPC(%r1) ++ std %f0,SC_FPRS(%r1) ++ std %f1,SC_FPRS+8(%r1) ++ std %f2,SC_FPRS+16(%r1) ++ std %f3,SC_FPRS+24(%r1) ++ std %f4,SC_FPRS+32(%r1) ++ std %f5,SC_FPRS+40(%r1) ++ std %f6,SC_FPRS+48(%r1) ++ std %f7,SC_FPRS+56(%r1) ++ std %f8,SC_FPRS+64(%r1) ++ std %f9,SC_FPRS+72(%r1) ++ std %f10,SC_FPRS+80(%r1) ++ std %f11,SC_FPRS+88(%r1) ++ std %f12,SC_FPRS+96(%r1) ++ std %f13,SC_FPRS+104(%r1) ++ std %f14,SC_FPRS+112(%r1) ++ std %f15,SC_FPRS+120(%r1) ++ ++ /* Set __getcontext return value to 0. */ ++ slgr %r2,%r2 ++ ++ /* Store access registers. */ ++ stam %a0,%a15,SC_ACRS(%r1) ++ ++ /* Store general purpose registers. */ ++ stmg %r0,%r15,SC_GPRS(%r1) ++ ++ /* Return. */ ++ br %r14 ++END(__getcontext) ++ ++weak_alias (__getcontext, getcontext) ++ ++#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) ++/* In glibc release 2.19 a new version of getcontext was introduced, ++ but was reverted before 2.20. Thus both versions are the same function. */ ++weak_alias (__getcontext, __v1__getcontext) ++weak_alias (__getcontext, __v2__getcontext) ++versioned_symbol (libc, __v1__getcontext, getcontext, GLIBC_2_1) ++compat_symbol (libc, __v2__getcontext, getcontext, GLIBC_2_19) ++#endif +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist +@@ -98,7 +98,6 @@ GLIBC_2.18 + GLIBC_2.19 + GLIBC_2.19 A + __longjmp_chk F +- __setjmp F + __sigsetjmp F + _longjmp F + _setjmp F +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S +@@ -65,25 +65,21 @@ ENTRY(__swapcontext) + std %f14,SC_FPRS+112(%r1) + std %f15,SC_FPRS+120(%r1) + ++ /* Set __swapcontext return value to 0. */ ++ slgr %r2,%r2 ++ /* Store access registers. */ stam %a0,%a15,SC_ACRS(%r1) -diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S -index ac74b6b..eda5d33 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S -+++ b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S -@@ -74,10 +74,7 @@ ENTRY(__swapcontext) +- /* Set __swapcontext return value to 0. */ +- slgr %r2,%r2 +- /* Store general purpose registers. */ stmg %r0,%r15,SC_GPRS(%r1) - /* Copy uc_flags into the new ucontext_t. */ - lgr %r5,%r0 +- lgr %r5,%r0 - lg %r2,SC_FLGS(%r5) - stg %r2,SC_FLGS(%r1) - +- /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ la %r2,SIG_BLOCK -diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h -index f04bf84..d528cb1 100644 ---- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h -+++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h ++ lgr %r5,%r0 + la %r3,SC_MASK(%r5) +- slgr %r4,%r4 + lghi %r5,_NSIG8 ++ slgr %r4,%r4 + svc SYS_ify(rt_sigprocmask) + + /* Load fpu context. */ +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.sym +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.sym ++++ /dev/null +@@ -1,25 +0,0 @@ +-#include +-#include +-#include +- +--- +- +-SIG_BLOCK +-SIG_UNBLOCK +-SIG_SETMASK +- +-_NSIG8 (_NSIG / 8) +- +-#define ucontext(member) offsetof (ucontext_t, member) +-#define mcontext(member) ucontext (uc_mcontext.member) +- +-SC_FLGS ucontext (uc_flags) +-SC_LINK ucontext (uc_link) +-SC_STCK ucontext (uc_stack.ss_sp) +-SC_STSZ ucontext (uc_stack.ss_size) +-SC_PSW mcontext (psw) +-SC_GPRS mcontext (gregs) +-SC_ACRS mcontext (aregs) +-SC_FPC mcontext (fpregs.fpc) +-SC_FPRS mcontext (fpregs.fprs) +-SC_MASK ucontext (uc_sigmask) +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/sys/ucontext.h +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/sys/ucontext.h ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/sys/ucontext.h @@ -64,15 +64,6 @@ typedef struct fpreg_t fprs[16]; } fpregset_t; @@ -851,10 +2220,39 @@ index f04bf84..d528cb1 100644 }; -diff --git a/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c -deleted file mode 100644 -index bd80acf..0000000 ---- a/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/ucontext_i.sym +=================================================================== +--- /dev/null ++++ glibc-2.19/sysdeps/unix/sysv/linux/s390/ucontext_i.sym +@@ -0,0 +1,25 @@ ++#include ++#include ++#include ++ ++-- ++ ++SIG_BLOCK ++SIG_UNBLOCK ++SIG_SETMASK ++ ++_NSIG8 (_NSIG / 8) ++ ++#define ucontext(member) offsetof (ucontext_t, member) ++#define mcontext(member) ucontext (uc_mcontext.member) ++ ++SC_FLGS ucontext (uc_flags) ++SC_LINK ucontext (uc_link) ++SC_STCK ucontext (uc_stack.ss_sp) ++SC_STSZ ucontext (uc_stack.ss_size) ++SC_PSW mcontext (psw) ++SC_GPRS mcontext (gregs) ++SC_ACRS mcontext (aregs) ++SC_FPC mcontext (fpregs.fpc) ++SC_FPRS mcontext (fpregs.fprs) ++SC_MASK ucontext (uc_sigmask) +Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c +=================================================================== +--- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 2013 Free Software Foundation, Inc. @@ -892,6 +2290,3 @@ index bd80acf..0000000 - -# endif -#endif --- -2.0.2 - From f23ef209fce0d65aa27c7ea51da939aa001a8e6baed74accb1cda656262e03bc Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Wed, 13 Aug 2014 06:50:52 +0000 Subject: [PATCH 172/204] Accepting request 244213 from Base:System - pthread-mutexattr-gettype-kind.patch: Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (bnc#888131, BZ #15790) (forwarded request 244212 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/244213 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=180 --- glibc-testsuite.changes | 7 ++ glibc-testsuite.spec | 3 + glibc-utils.changes | 7 ++ glibc-utils.spec | 3 + glibc.changes | 7 ++ glibc.spec | 3 + pthread-mutexattr-gettype-kind.patch | 111 +++++++++++++++++++++++++++ 7 files changed, 141 insertions(+) create mode 100644 pthread-mutexattr-gettype-kind.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 6a664e4..5a9a595 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de + +- pthread-mutexattr-gettype-kind.patch: Filter out + PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype + (bnc#888131, BZ #15790) + ------------------------------------------------------------------- Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1709f22..1257726 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -288,6 +288,8 @@ Patch2004: pthread-mutex-trylock-elision.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch2007: pthread-mutexattr-gettype-kind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -515,6 +517,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 6a664e4..5a9a595 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de + +- pthread-mutexattr-gettype-kind.patch: Filter out + PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype + (bnc#888131, BZ #15790) + ------------------------------------------------------------------- Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index fb74bc9..5e43e26 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -287,6 +287,8 @@ Patch2004: pthread-mutex-trylock-elision.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch2007: pthread-mutexattr-gettype-kind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -515,6 +517,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 6a664e4..5a9a595 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de + +- pthread-mutexattr-gettype-kind.patch: Filter out + PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype + (bnc#888131, BZ #15790) + ------------------------------------------------------------------- Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 683fdb7..acad5fe 100644 --- a/glibc.spec +++ b/glibc.spec @@ -288,6 +288,8 @@ Patch2004: pthread-mutex-trylock-elision.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch2007: pthread-mutexattr-gettype-kind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -515,6 +517,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 %patch3000 diff --git a/pthread-mutexattr-gettype-kind.patch b/pthread-mutexattr-gettype-kind.patch new file mode 100644 index 0000000..2bf8709 --- /dev/null +++ b/pthread-mutexattr-gettype-kind.patch @@ -0,0 +1,111 @@ +From 867dbf6ba31c0a0f5c0366f9ed71b0afc3727a23 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Mon, 11 Aug 2014 11:18:26 +0200 +Subject: [PATCH] Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in + pthread_mutexattr_gettype (BZ #15790) + + [BZ #15790] + * nptl/pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): + Filter out PTHREAD_MUTEX_NO_ELISION_NP from value returned in + kind. + * nptl/Makefile (tests): Add tst-pthread-mutexattr. + * nptl/tst-pthread-mutexattr.c: New file. +--- + nptl/Makefile | 2 +- + nptl/pthread_mutexattr_gettype.c | 3 +- + nptl/tst-pthread-mutexattr.c | 60 ++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 63 insertions(+), 2 deletions(-) + create mode 100644 nptl/tst-pthread-mutexattr.c + +Index: glibc-2.19/nptl/Makefile +=================================================================== +--- glibc-2.19.orig/nptl/Makefile ++++ glibc-2.19/nptl/Makefile +@@ -253,7 +253,7 @@ tests = tst-typesizes \ + tst-exit1 tst-exit2 tst-exit3 \ + tst-stdio1 tst-stdio2 \ + tst-stack1 tst-stack2 tst-stack3 tst-pthread-getattr \ +- tst-pthread-attr-affinity \ ++ tst-pthread-attr-affinity tst-pthread-mutexattr \ + tst-unload \ + tst-dlsym1 \ + tst-sysconf \ +Index: glibc-2.19/nptl/pthread_mutexattr_gettype.c +=================================================================== +--- glibc-2.19.orig/nptl/pthread_mutexattr_gettype.c ++++ glibc-2.19/nptl/pthread_mutexattr_gettype.c +@@ -28,7 +28,8 @@ pthread_mutexattr_gettype (attr, kind) + + iattr = (const struct pthread_mutexattr *) attr; + +- *kind = iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS; ++ *kind = (iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS ++ & ~PTHREAD_MUTEX_NO_ELISION_NP); + + return 0; + } +Index: glibc-2.19/nptl/tst-pthread-mutexattr.c +=================================================================== +--- /dev/null ++++ glibc-2.19/nptl/tst-pthread-mutexattr.c +@@ -0,0 +1,60 @@ ++/* Make sure that pthread_mutexattr_gettype returns a valid kind. ++ ++ Copyright (C) 2014 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ pthread_mutexattr_t attr; ++ int kind; ++ int error; ++ ++ error = pthread_mutexattr_init (&attr); ++ if (error) ++ { ++ printf ("pthread_mutexattr_init: %s\n", strerror (error)); ++ return 1; ++ } ++ error = pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_DEFAULT); ++ if (error) ++ { ++ printf ("pthread_mutexattr_settype (1): %s\n", strerror (error)); ++ return 1; ++ } ++ error = pthread_mutexattr_gettype (&attr, &kind); ++ if (error) ++ { ++ printf ("pthread_mutexattr_gettype: %s\n", strerror (error)); ++ return 1; ++ } ++ error = pthread_mutexattr_settype (&attr, kind); ++ if (error) ++ { ++ printf ("pthread_mutexattr_settype (2): %s\n", strerror (error)); ++ return 1; ++ } ++ return 0; ++} ++ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" From 9da2eef2842d7fcb4902049ea7d3ea5089ed1478c13846cf533cc41f64803aba Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 29 Aug 2014 15:42:21 +0000 Subject: [PATCH 173/204] Accepting request 246548 from Base:System (forwarded request 246547 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/246548 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=182 --- disable-gconv-translit-modules.patch | 196 +++++++++++++++++++++++++++ glibc-testsuite.changes | 6 + glibc-testsuite.spec | 3 + glibc-utils.changes | 6 + glibc-utils.spec | 3 + glibc.changes | 6 + glibc.spec | 3 + 7 files changed, 223 insertions(+) create mode 100644 disable-gconv-translit-modules.patch diff --git a/disable-gconv-translit-modules.patch b/disable-gconv-translit-modules.patch new file mode 100644 index 0000000..465a6b1 --- /dev/null +++ b/disable-gconv-translit-modules.patch @@ -0,0 +1,196 @@ +2014-08-21 Florian Weimer + + [BZ #17187] + * iconv/gconv_trans.c (struct known_trans, search_tree, lock, + trans_compare, open_translit, __gconv_translit_find): + Remove module loading code. + +Index: glibc-2.19/iconv/gconv_trans.c +=================================================================== +--- glibc-2.19.orig/iconv/gconv_trans.c ++++ glibc-2.19/iconv/gconv_trans.c +@@ -238,181 +238,11 @@ __gconv_transliterate (struct __gconv_st + return __GCONV_ILLEGAL_INPUT; + } + +- +-/* Structure to represent results of found (or not) transliteration +- modules. */ +-struct known_trans +-{ +- /* This structure must remain the first member. */ +- struct trans_struct info; +- +- char *fname; +- void *handle; +- int open_count; +-}; +- +- +-/* Tree with results of previous calls to __gconv_translit_find. */ +-static void *search_tree; +- +-/* We modify global data. */ +-__libc_lock_define_initialized (static, lock); +- +- +-/* Compare two transliteration entries. */ +-static int +-trans_compare (const void *p1, const void *p2) +-{ +- const struct known_trans *s1 = (const struct known_trans *) p1; +- const struct known_trans *s2 = (const struct known_trans *) p2; +- +- return strcmp (s1->info.name, s2->info.name); +-} +- +- +-/* Open (maybe reopen) the module named in the struct. Get the function +- and data structure pointers we need. */ +-static int +-open_translit (struct known_trans *trans) +-{ +- __gconv_trans_query_fct queryfct; +- +- trans->handle = __libc_dlopen (trans->fname); +- if (trans->handle == NULL) +- /* Not available. */ +- return 1; +- +- /* Find the required symbol. */ +- queryfct = __libc_dlsym (trans->handle, "gconv_trans_context"); +- if (queryfct == NULL) +- { +- /* We cannot live with that. */ +- close_and_out: +- __libc_dlclose (trans->handle); +- trans->handle = NULL; +- return 1; +- } +- +- /* Get the context. */ +- if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames) +- != 0) +- goto close_and_out; +- +- /* Of course we also have to have the actual function. */ +- trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans"); +- if (trans->info.trans_fct == NULL) +- goto close_and_out; +- +- /* Now the optional functions. */ +- trans->info.trans_init_fct = +- __libc_dlsym (trans->handle, "gconv_trans_init"); +- trans->info.trans_context_fct = +- __libc_dlsym (trans->handle, "gconv_trans_context"); +- trans->info.trans_end_fct = +- __libc_dlsym (trans->handle, "gconv_trans_end"); +- +- trans->open_count = 1; +- +- return 0; +-} +- +- + int + internal_function + __gconv_translit_find (struct trans_struct *trans) + { +- struct known_trans **found; +- const struct path_elem *runp; +- int res = 1; +- +- /* We have to have a name. */ +- assert (trans->name != NULL); +- +- /* Acquire the lock. */ +- __libc_lock_lock (lock); +- +- /* See whether we know this module already. */ +- found = __tfind (trans, &search_tree, trans_compare); +- if (found != NULL) +- { +- /* Is this module available? */ +- if ((*found)->handle != NULL) +- { +- /* Maybe we have to reopen the file. */ +- if ((*found)->handle != (void *) -1) +- /* The object is not unloaded. */ +- res = 0; +- else if (open_translit (*found) == 0) +- { +- /* Copy the data. */ +- *trans = (*found)->info; +- (*found)->open_count++; +- res = 0; +- } +- } +- } +- else +- { +- size_t name_len = strlen (trans->name) + 1; +- int need_so = 0; +- struct known_trans *newp; +- +- /* We have to continue looking for the module. */ +- if (__gconv_path_elem == NULL) +- __gconv_get_path (); +- +- /* See whether we have to append .so. */ +- if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0) +- need_so = 1; +- +- /* Create a new entry. */ +- newp = (struct known_trans *) malloc (sizeof (struct known_trans) +- + (__gconv_max_path_elem_len +- + name_len + 3) +- + name_len); +- if (newp != NULL) +- { +- char *cp; +- +- /* Clear the struct. */ +- memset (newp, '\0', sizeof (struct known_trans)); +- +- /* Store a copy of the module name. */ +- newp->info.name = cp = (char *) (newp + 1); +- cp = __mempcpy (cp, trans->name, name_len); +- +- newp->fname = cp; +- +- /* Search in all the directories. */ +- for (runp = __gconv_path_elem; runp->name != NULL; ++runp) +- { +- cp = __mempcpy (__stpcpy ((char *) newp->fname, runp->name), +- trans->name, name_len); +- if (need_so) +- memcpy (cp, ".so", sizeof (".so")); +- +- if (open_translit (newp) == 0) +- { +- /* We found a module. */ +- res = 0; +- break; +- } +- } +- +- if (res) +- newp->fname = NULL; +- +- /* In any case we'll add the entry to our search tree. */ +- if (__tsearch (newp, &search_tree, trans_compare) == NULL) +- { +- /* Yickes, this should not happen. Unload the object. */ +- res = 1; +- /* XXX unload here. */ +- } +- } +- } +- +- __libc_lock_unlock (lock); +- +- return res; ++ /* This function always fails. Transliteration module loading is ++ not implemented. */ ++ return 1; + } diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 5a9a595..85c62f1 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de + +- disable-gconv-translit-modules.patch: Disable gconv transliteration + module loading (CVE-2014-5119, bnc#892073, BZ #17187) + ------------------------------------------------------------------- Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1257726..1c80d16 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -290,6 +290,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) +Patch2008: disable-gconv-translit-modules.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -518,6 +520,7 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 5a9a595..85c62f1 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de + +- disable-gconv-translit-modules.patch: Disable gconv transliteration + module loading (CVE-2014-5119, bnc#892073, BZ #17187) + ------------------------------------------------------------------- Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 5e43e26..074a4a5 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -289,6 +289,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) +Patch2008: disable-gconv-translit-modules.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -518,6 +520,7 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 5a9a595..85c62f1 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de + +- disable-gconv-translit-modules.patch: Disable gconv transliteration + module loading (CVE-2014-5119, bnc#892073, BZ #17187) + ------------------------------------------------------------------- Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index acad5fe..1987816 100644 --- a/glibc.spec +++ b/glibc.spec @@ -290,6 +290,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) +Patch2008: disable-gconv-translit-modules.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -518,6 +520,7 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 From 0bb7ee3ae81de72b8d23f2f9c4705f3f1cdd25814fc21b61a23208a9c6c6460d Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 3 Sep 2014 16:20:30 +0000 Subject: [PATCH 174/204] Accepting request 247224 from Base:System - iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM gconv modules (CVE-2014-6040, bnc#894553, BZ #17325) (forwarded request 247223 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/247224 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=183 --- glibc-testsuite.changes | 6 ++ glibc-testsuite.spec | 7 +- glibc-utils.changes | 6 ++ glibc-utils.spec | 7 +- glibc.changes | 6 ++ glibc.spec | 7 +- iconv-ibm-sentinel-check.patch | 162 +++++++++++++++++++++++++++++++++ 7 files changed, 195 insertions(+), 6 deletions(-) create mode 100644 iconv-ibm-sentinel-check.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 85c62f1..383ec79 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de + +- iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM + gconv modules (CVE-2014-6040, bnc#894553, BZ #17325) + ------------------------------------------------------------------- Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1c80d16..1a14e99 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -270,6 +270,8 @@ Patch1016: dt-ppc64-num.patch Patch1017: ppc64le-profiling.patch # PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) Patch1018: s390-revert-abi-change.patch +# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) +Patch1019: disable-gconv-translit-modules.patch ### # Patches awaiting upstream approval @@ -290,8 +292,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) -Patch2008: disable-gconv-translit-modules.patch +# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ #17325) +Patch2008: iconv-ibm-sentinel-check.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -511,6 +513,7 @@ rm nscd/s-stamp %patch1016 -p1 %patch1017 -p1 %patch1018 -p1 +%patch1019 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 85c62f1..383ec79 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de + +- iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM + gconv modules (CVE-2014-6040, bnc#894553, BZ #17325) + ------------------------------------------------------------------- Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 074a4a5..1ca5852 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -269,6 +269,8 @@ Patch1016: dt-ppc64-num.patch Patch1017: ppc64le-profiling.patch # PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) Patch1018: s390-revert-abi-change.patch +# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) +Patch1019: disable-gconv-translit-modules.patch ### # Patches awaiting upstream approval @@ -289,8 +291,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) -Patch2008: disable-gconv-translit-modules.patch +# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ #17325) +Patch2008: iconv-ibm-sentinel-check.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -511,6 +513,7 @@ rm nscd/s-stamp %patch1016 -p1 %patch1017 -p1 %patch1018 -p1 +%patch1019 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc.changes b/glibc.changes index 85c62f1..383ec79 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de + +- iconv-ibm-sentinel-check.patch: Fix crashes on invalid input in IBM + gconv modules (CVE-2014-6040, bnc#894553, BZ #17325) + ------------------------------------------------------------------- Tue Aug 26 10:47:31 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 1987816..3ec081c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -270,6 +270,8 @@ Patch1016: dt-ppc64-num.patch Patch1017: ppc64le-profiling.patch # PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) Patch1018: s390-revert-abi-change.patch +# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) +Patch1019: disable-gconv-translit-modules.patch ### # Patches awaiting upstream approval @@ -290,8 +292,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) -Patch2008: disable-gconv-translit-modules.patch +# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ #17325) +Patch2008: iconv-ibm-sentinel-check.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -511,6 +513,7 @@ rm nscd/s-stamp %patch1016 -p1 %patch1017 -p1 %patch1018 -p1 +%patch1019 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/iconv-ibm-sentinel-check.patch b/iconv-ibm-sentinel-check.patch new file mode 100644 index 0000000..9ff0980 --- /dev/null +++ b/iconv-ibm-sentinel-check.patch @@ -0,0 +1,162 @@ +2014-08-29 Florian Weimer + + [BZ #17325] + * iconvdata/ibm1364.c (BODY): Fix check for sentinel. + * iconvdata/ibm932.c (BODY): Replace invalid sentinel check with + assert. + * iconvdata/ibm933.c (BODY): Fix check for sentinel. + * iconvdata/ibm935.c (BODY): Likewise. + * iconvdata/ibm937.c (BODY): Likewise. + * iconvdata/ibm939.c (BODY): Likewise. + * iconvdata/ibm943.c (BODY): Replace invalid sentinel check with + assert. + * iconvdata/Makefile (iconv-test.out): Pass module list to test + script. + * iconvdata/run-iconv-test.sh: New test loop for checking for + decoder crashers. + +Index: glibc-2.19/iconvdata/Makefile +=================================================================== +--- glibc-2.19.orig/iconvdata/Makefile ++++ glibc-2.19/iconvdata/Makefile +@@ -302,6 +302,7 @@ $(objpfx)bug-iconv10.out: $(objpfx)gconv + $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ + $(addprefix $(objpfx),$(modules.so)) \ + $(common-objdir)/iconv/iconv_prog TESTS ++ iconv_modules="$(modules)" \ + $(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@ + + $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \ +Index: glibc-2.19/iconvdata/ibm1364.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm1364.c ++++ glibc-2.19/iconvdata/ibm1364.c +@@ -220,7 +220,8 @@ enum + ++rp2; \ + \ + uint32_t res; \ +- if (__builtin_expect (ch < rp2->start, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ ++ || __builtin_expect (ch < rp2->start, 0) \ + || (res = DB_TO_UCS4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ + { \ +Index: glibc-2.19/iconvdata/ibm932.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm932.c ++++ glibc-2.19/iconvdata/ibm932.c +@@ -73,11 +73,12 @@ + } \ + \ + ch = (ch * 0x100) + inptr[1]; \ ++ /* ch was less than 0xfd. */ \ ++ assert (ch < 0xfd00); \ + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (rp2 == NULL, 0) \ +- || __builtin_expect (ch < rp2->start, 0) \ ++ if (__builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm932db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, '\1') == 0 && ch !=0)) \ + { \ +Index: glibc-2.19/iconvdata/ibm933.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm933.c ++++ glibc-2.19/iconvdata/ibm933.c +@@ -161,7 +161,7 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (rp2 == NULL, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ + || __builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm933db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ +Index: glibc-2.19/iconvdata/ibm935.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm935.c ++++ glibc-2.19/iconvdata/ibm935.c +@@ -161,7 +161,7 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (rp2 == NULL, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ + || __builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm935db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ +Index: glibc-2.19/iconvdata/ibm937.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm937.c ++++ glibc-2.19/iconvdata/ibm937.c +@@ -161,7 +161,7 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (rp2 == NULL, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ + || __builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm937db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ +Index: glibc-2.19/iconvdata/ibm939.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm939.c ++++ glibc-2.19/iconvdata/ibm939.c +@@ -161,7 +161,7 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (rp2 == NULL, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ + || __builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm939db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ +Index: glibc-2.19/iconvdata/ibm943.c +=================================================================== +--- glibc-2.19.orig/iconvdata/ibm943.c ++++ glibc-2.19/iconvdata/ibm943.c +@@ -74,11 +74,12 @@ + } \ + \ + ch = (ch * 0x100) + inptr[1]; \ ++ /* ch was less than 0xfd. */ \ ++ assert (ch < 0xfd00); \ + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (rp2 == NULL, 0) \ +- || __builtin_expect (ch < rp2->start, 0) \ ++ if (__builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm943db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, '\1') == 0 && ch !=0)) \ + { \ +Index: glibc-2.19/iconvdata/run-iconv-test.sh +=================================================================== +--- glibc-2.19.orig/iconvdata/run-iconv-test.sh ++++ glibc-2.19/iconvdata/run-iconv-test.sh +@@ -188,6 +188,24 @@ while read utf8 from filename; do + + done < TESTS2 + ++# Check for crashes in decoders. ++printf '\016\377\377\377\377\377\377\377' > $temp1 ++for from in $iconv_modules ; do ++ echo $ac_n "test decoder $from $ac_c" ++ PROG=`eval echo $ICONV` ++ if $PROG < $temp1 >/dev/null 2>&1 ; then ++ : # fall through ++ else ++ status=$? ++ if test $status -gt 1 ; then ++ echo "/FAILED" ++ failed=1 ++ continue ++ fi ++ fi ++ echo "OK" ++done ++ + exit $failed + # Local Variables: + # mode:shell-script From 77830992a08df3b9142835d2fa78e6048e107b84ee729bfdcbda002634c7cd83 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 15 Oct 2014 14:19:11 +0000 Subject: [PATCH 175/204] Accepting request 249236 from Base:System - Update to glibc 2.20 release. * Reverted change of ABI data structures for s390 and s390x * Support for file description locks is added to systems running the Linux kernel * Optimized strchr implementation for AArch64 * The minimum Linux kernel version that this version of the GNU C Library can be used with is 2.6.32 * Running the testsuite no longer terminates as soon as a test fails * The am33 port, which had not worked for several years, has been removed from ports. * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer supported; they now act the same as _DEFAULT_SOURCE (but generate a warning) * Optimized strcmp implementation for ARMv7 * Added support for TX lock elision of pthread mutexes on s390 and s390x * All supported architectures now use the main glibc sysdeps directory instead of some being in a separate "ports" directory * The NPTL implementation of POSIX pthreads is no longer an "add-on" * Locale names, including those obtained from environment variables (LANG and the LC_* variables), are more tightly checked for proper syntax * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions - Patches from upstream removed * nss-dns-memleak.patch * sin-sign.patch * pldd-wait-ptrace-stop.patch * nscd-track-startup-failures.patch * powerpc-opt-power8.patch * check-pf-alloca.patch * getaddrinfo-uninit-result.patch (forwarded request 249235 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/249236 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=184 --- aarch64-setcontext.patch | 225 -- check-pf-alloca.patch | 163 -- crypt_blowfish-gensalt.patch | 10 +- disable-gconv-translit-modules.patch | 196 -- dt-ppc64-num.patch | 19 - getaddrinfo-uninit-result.patch | 26 - glibc-2.14-crypt.diff | 364 ++-- glibc-2.19.tar.xz | 3 - glibc-2.20.tar.xz | 3 + glibc-2.3.90-langpackdir.diff | 12 +- glibc-2.3.90-noversion.diff | 39 +- glibc-nodate.patch | 15 - glibc-testsuite.changes | 50 + glibc-testsuite.spec | 122 +- glibc-utils.changes | 50 + glibc-utils.spec | 122 +- glibc.changes | 50 + glibc.spec | 122 +- ibm-long-double-frexpl.patch | 194 -- ibm-long-double-math.patch | 462 ---- ibm93x-redundant-shift-si.patch | 10 +- iconv-ibm-sentinel-check.patch | 162 -- manpages.tar.bz2 | 4 +- nextafterl-ibm-ldouble.patch | 116 - noversion.tar.bz2 | 4 +- nscd-track-startup-failures.patch | 496 ----- nss-dns-memleak.patch | 461 ---- nss-files-long-lines.patch | 24 - nss-nis-stack-use.patch | 111 - pldd-wait-ptrace-stop.patch | 63 - powerpc-opt-power8.patch | 2696 ------------------------ ppc64-copysign.patch | 23 - ppc64le-profiling.patch | 23 - psfaa.patch | 139 -- pthread-mutex-trylock-elision.patch | 18 +- resolv-dont-ignore-second-answer.patch | 33 - s390-revert-abi-change.patch | 2292 -------------------- setlocale-directory-traversal.patch | 648 ------ sin-sign.patch | 54 - 39 files changed, 489 insertions(+), 9135 deletions(-) delete mode 100644 aarch64-setcontext.patch delete mode 100644 check-pf-alloca.patch delete mode 100644 disable-gconv-translit-modules.patch delete mode 100644 dt-ppc64-num.patch delete mode 100644 getaddrinfo-uninit-result.patch delete mode 100644 glibc-2.19.tar.xz create mode 100644 glibc-2.20.tar.xz delete mode 100644 ibm-long-double-frexpl.patch delete mode 100644 ibm-long-double-math.patch delete mode 100644 iconv-ibm-sentinel-check.patch delete mode 100644 nextafterl-ibm-ldouble.patch delete mode 100644 nscd-track-startup-failures.patch delete mode 100644 nss-dns-memleak.patch delete mode 100644 nss-files-long-lines.patch delete mode 100644 nss-nis-stack-use.patch delete mode 100644 pldd-wait-ptrace-stop.patch delete mode 100644 powerpc-opt-power8.patch delete mode 100644 ppc64-copysign.patch delete mode 100644 ppc64le-profiling.patch delete mode 100644 psfaa.patch delete mode 100644 resolv-dont-ignore-second-answer.patch delete mode 100644 s390-revert-abi-change.patch delete mode 100644 setlocale-directory-traversal.patch delete mode 100644 sin-sign.patch diff --git a/aarch64-setcontext.patch b/aarch64-setcontext.patch deleted file mode 100644 index 9997ff5..0000000 --- a/aarch64-setcontext.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 4dc40de1ed58a1de5d960e59f20a04191f6820c9 Mon Sep 17 00:00:00 2001 -From: Will Newton -Date: Wed, 12 Mar 2014 16:14:51 +0000 -Subject: [PATCH 1/3] aarch64: Re-implement setcontext without rt_sigreturn - syscall - -The current implementation of setcontext uses rt_sigreturn to restore -the contents of registers. This contrasts with the way most other -architectures implement setcontext: - - powerpc64, mips, tile: - - Call rt_sigreturn if context was created by a call to a signal handler, - otherwise restore in user code. - - powerpc32: - - Call swapcontext system call and don't call sigreturn or rt_sigreturn. - - x86_64, sparc, hppa, sh, ia64, m68k, s390, arm: - - Only support restoring "synchronous" contexts, that is contexts - created by getcontext, and restoring in user code and don't call - sigreturn or rt_sigreturn. - - alpha: - - Call sigreturn (but not rt_sigreturn) in all cases to do the restore. - -The text of the setcontext manpage suggests that the requirement to be -able to restore a signal handler created context has been dropped from -SUSv2: - - If the context was obtained by a call to a signal handler, then old - standard text says that "program execution continues with the program - instruction following the instruction interrupted by the signal". - However, this sentence was removed in SUSv2, and the present verdict - is "the result is unspecified". - -Implementing setcontext by calling rt_sigreturn unconditionally causes -problems when used with sigaltstack as in BZ #16629. On this basis it -seems that aarch64 is broken and that new ports should only support -restoring contexts created with getcontext and do not need to call -rt_sigreturn at all. - -This patch re-implements the aarch64 setcontext function to restore -the context in user code in a similar manner to x86_64 and other ports. - -ChangeLog: - -2014-03-13 Will Newton - - [BZ #16629] - * sysdeps/unix/sysv/linux/aarch64/setcontext.S (__setcontext): - Re-implement to restore registers in user code and avoid - rt_sigreturn system call. ---- - sysdeps/unix/sysv/linux/aarch64/setcontext.S | 147 +++++++++++++++++---------- - 1 file changed, 92 insertions(+), 55 deletions(-) - -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S -=================================================================== ---- glibc-2.19.orig/ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S -@@ -22,68 +22,105 @@ - #include "ucontext_i.h" - #include "ucontext-internal.h" - --/* int setcontext (const ucontext_t *ucp) */ -+/* int __setcontext (const ucontext_t *ucp) - -- .text -- --ENTRY(__setcontext) -+ Restores the machine context in UCP and thereby resumes execution -+ in that context. - -- /* Create a signal frame on the stack: -+ This implementation is intended to be used for *synchronous* context -+ switches only. Therefore, it does not have to restore anything -+ other than the PRESERVED state. */ - -- fp -- lr -- ... -- sp-> rt_sigframe -- */ -- -- stp x29, x30, [sp, -16]! -- cfi_adjust_cfa_offset (16) -- cfi_rel_offset (x29, 0) -- cfi_rel_offset (x30, 8) -- -- mov x29, sp -- cfi_def_cfa_register (x29) -- -- /* Allocate space for the sigcontext. */ -- mov w3, #((RT_SIGFRAME_SIZE + SP_ALIGN_SIZE) & SP_ALIGN_MASK) -- sub sp, sp, x3 -- -- /* Compute the base address of the ucontext structure. */ -- add x1, sp, #RT_SIGFRAME_UCONTEXT -- -- /* Only ucontext is required in the frame, *copy* it in. */ -- --#if UCONTEXT_SIZE % 16 --#error The implementation of setcontext.S assumes sizeof(ucontext_t) % 16 == 0 --#endif -- -- mov x2, #UCONTEXT_SIZE / 16 --0: -- ldp x3, x4, [x0], #16 -- stp x3, x4, [x1], #16 -- sub x2, x2, 1 -- cbnz x2, 0b -+ .text - -- /* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe. */ -- mov x8, SYS_ify (rt_sigreturn) -+ENTRY (__setcontext) -+ /* Save a copy of UCP. */ -+ mov x9, x0 -+ -+ /* Set the signal mask with -+ rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */ -+ mov x0, #SIG_SETMASK -+ add x1, x9, #UCONTEXT_SIGMASK -+ mov x2, #0 -+ mov x3, #_NSIG8 -+ mov x8, SYS_ify (rt_sigprocmask) - svc 0 -- -- /* Ooops we failed. Recover the stack */ -- -- mov sp, x29 -- cfi_def_cfa_register (sp) -- -- ldp x29, x30, [sp], 16 -- cfi_adjust_cfa_offset (16) -- cfi_restore (x29) -- cfi_restore (x30) -- b C_SYMBOL_NAME(__syscall_error) -- -+ cbz x0, 1f -+ b C_SYMBOL_NAME (__syscall_error) -+1: -+ /* Restore the general purpose registers. */ -+ mov x0, x9 -+ cfi_def_cfa (x0, 0) -+ cfi_offset (x18, oX0 + 18 * SZREG) -+ cfi_offset (x19, oX0 + 19 * SZREG) -+ cfi_offset (x20, oX0 + 20 * SZREG) -+ cfi_offset (x21, oX0 + 21 * SZREG) -+ cfi_offset (x22, oX0 + 22 * SZREG) -+ cfi_offset (x23, oX0 + 23 * SZREG) -+ cfi_offset (x24, oX0 + 24 * SZREG) -+ cfi_offset (x25, oX0 + 25 * SZREG) -+ cfi_offset (x26, oX0 + 26 * SZREG) -+ cfi_offset (x27, oX0 + 27 * SZREG) -+ cfi_offset (x28, oX0 + 28 * SZREG) -+ cfi_offset (x29, oX0 + 29 * SZREG) -+ cfi_offset (x30, oX0 + 30 * SZREG) -+ -+ cfi_offset ( d8, oV0 + 8 * SZVREG) -+ cfi_offset ( d9, oV0 + 9 * SZVREG) -+ cfi_offset (d10, oV0 + 10 * SZVREG) -+ cfi_offset (d11, oV0 + 11 * SZVREG) -+ cfi_offset (d12, oV0 + 12 * SZVREG) -+ cfi_offset (d13, oV0 + 13 * SZVREG) -+ cfi_offset (d14, oV0 + 14 * SZVREG) -+ cfi_offset (d15, oV0 + 15 * SZVREG) -+ ldp x18, x19, [x0, oX0 + 18 * SZREG] -+ ldp x20, x21, [x0, oX0 + 20 * SZREG] -+ ldp x22, x23, [x0, oX0 + 22 * SZREG] -+ ldp x24, x25, [x0, oX0 + 24 * SZREG] -+ ldp x26, x27, [x0, oX0 + 26 * SZREG] -+ ldp x28, x29, [x0, oX0 + 28 * SZREG] -+ ldr x30, [x0, oX0 + 30 * SZREG] -+ ldr x2, [x0, oSP] -+ mov sp, x2 -+ -+ /* Check for FP SIMD context. */ -+ add x2, x0, #oEXTENSION -+ -+ mov w3, #(FPSIMD_MAGIC & 0xffff) -+ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16 -+ ldr w1, [x2, #oHEAD + oMAGIC] -+ cmp w1, w3 -+ b.ne 2f -+ -+ /* Restore the FP SIMD context. */ -+ add x3, x2, #oV0 + 8 * SZVREG -+ ldp d8, d9, [x3], #2 * SZVREG -+ ldp d10, d11, [x3], #2 * SZVREG -+ ldp d12, d13, [x3], #2 * SZVREG -+ ldp d14, d15, [x3], #2 * SZVREG -+ -+ add x3, x2, oFPSR -+ -+ ldr w4, [x3] -+ msr fpsr, x4 -+ -+ ldr w4, [x3, oFPCR - oFPSR] -+ msr fpcr, x4 -+ -+2: -+ ldr x16, [x0, oPC] -+ /* Restore arg registers. */ -+ ldp x2, x3, [x0, oX0 + 2 * SZREG] -+ ldp x4, x5, [x0, oX0 + 4 * SZREG] -+ ldp x6, x7, [x0, oX0 + 6 * SZREG] -+ ldp x0, x1, [x0, oX0 + 0 * SZREG] -+ /* Jump to the new pc value. */ -+ br x16 - PSEUDO_END (__setcontext) - weak_alias (__setcontext, setcontext) - --ENTRY(__startcontext) -+ENTRY (__startcontext) - mov x0, x19 - cbnz x0, __setcontext --1: b HIDDEN_JUMPTARGET(_exit) --END(__startcontext) -+1: b HIDDEN_JUMPTARGET (_exit) -+END (__startcontext) diff --git a/check-pf-alloca.patch b/check-pf-alloca.patch deleted file mode 100644 index 83709a6..0000000 --- a/check-pf-alloca.patch +++ /dev/null @@ -1,163 +0,0 @@ - * sysdeps/unix/sysv/linux/check_pf.c (make_request): Add out_fail2 - label to be used after in6ailist is initialized. - - [BZ #16002] - * sysdeps/unix/sysv/linux/check_pf.c (make_request): Use - alloca_account and account alloca use for struct in6ailist. - -Index: glibc-2.19/sysdeps/unix/sysv/linux/check_pf.c -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/check_pf.c -+++ glibc-2.19/sysdeps/unix/sysv/linux/check_pf.c -@@ -106,6 +106,11 @@ cache_valid_p (void) - static struct cached_data * - make_request (int fd, pid_t pid) - { -+ struct cached_data *result = NULL; -+ -+ size_t result_len = 0; -+ size_t result_cap = 32; -+ - struct req - { - struct nlmsghdr nlh; -@@ -137,19 +142,9 @@ make_request (int fd, pid_t pid) - #else - const size_t buf_size = __getpagesize (); - #endif -- bool use_malloc = false; - char *buf; - -- if (__libc_use_alloca (buf_size)) -- buf = alloca (buf_size); -- else -- { -- buf = malloc (buf_size); -- if (buf != NULL) -- use_malloc = true; -- else -- goto out_fail; -- } -+ buf = alloca (buf_size); - - struct iovec iov = { buf, buf_size }; - -@@ -159,12 +154,7 @@ make_request (int fd, pid_t pid) - goto out_fail; - - bool done = false; -- struct in6ailist -- { -- struct in6addrinfo info; -- struct in6ailist *next; -- } *in6ailist = NULL; -- size_t in6ailistlen = 0; -+ - bool seen_ipv4 = false; - bool seen_ipv6 = false; - -@@ -239,28 +229,36 @@ make_request (int fd, pid_t pid) - } - } - -- struct in6ailist *newp = alloca (sizeof (*newp)); -- newp->info.flags = (((ifam->ifa_flags -- & (IFA_F_DEPRECATED -- | IFA_F_OPTIMISTIC)) -- ? in6ai_deprecated : 0) -- | ((ifam->ifa_flags -- & IFA_F_HOMEADDRESS) -- ? in6ai_homeaddress : 0)); -- newp->info.prefixlen = ifam->ifa_prefixlen; -- newp->info.index = ifam->ifa_index; -+ if (result_len == 0 || result_len == result_cap) -+ { -+ result_cap = 2 * result_cap; -+ result = realloc (result, sizeof (*result) -+ + result_cap * sizeof (struct in6addrinfo)); -+ } -+ -+ if (!result) -+ goto out_fail; -+ -+ struct in6addrinfo *info = &result->in6ai[result_len++]; -+ -+ info->flags = (((ifam->ifa_flags -+ & (IFA_F_DEPRECATED -+ | IFA_F_OPTIMISTIC)) -+ ? in6ai_deprecated : 0) -+ | ((ifam->ifa_flags -+ & IFA_F_HOMEADDRESS) -+ ? in6ai_homeaddress : 0)); -+ info->prefixlen = ifam->ifa_prefixlen; -+ info->index = ifam->ifa_index; - if (ifam->ifa_family == AF_INET) - { -- newp->info.addr[0] = 0; -- newp->info.addr[1] = 0; -- newp->info.addr[2] = htonl (0xffff); -- newp->info.addr[3] = *(const in_addr_t *) address; -+ info->addr[0] = 0; -+ info->addr[1] = 0; -+ info->addr[2] = htonl (0xffff); -+ info->addr[3] = *(const in_addr_t *) address; - } - else -- memcpy (newp->info.addr, address, sizeof (newp->info.addr)); -- newp->next = in6ailist; -- in6ailist = newp; -- ++in6ailistlen; -+ memcpy (info->addr, address, sizeof (info->addr)); - } - else if (nlmh->nlmsg_type == NLMSG_DONE) - /* We found the end, leave the loop. */ -@@ -269,42 +267,29 @@ make_request (int fd, pid_t pid) - } - while (! done); - -- struct cached_data *result; -- if (seen_ipv6 && in6ailist != NULL) -+ if (seen_ipv6 && result != NULL) - { -- result = malloc (sizeof (*result) -- + in6ailistlen * sizeof (struct in6addrinfo)); -- if (result == NULL) -- goto out_fail; -- - result->timestamp = get_nl_timestamp (); - result->usecnt = 2; - result->seen_ipv4 = seen_ipv4; - result->seen_ipv6 = true; -- result->in6ailen = in6ailistlen; -- -- do -- { -- result->in6ai[--in6ailistlen] = in6ailist->info; -- in6ailist = in6ailist->next; -- } -- while (in6ailist != NULL); -+ result->in6ailen = result_len; - } - else - { -+ free (result); -+ - atomic_add (&noai6ai_cached.usecnt, 2); - noai6ai_cached.seen_ipv4 = seen_ipv4; - noai6ai_cached.seen_ipv6 = seen_ipv6; - result = &noai6ai_cached; - } - -- if (use_malloc) -- free (buf); - return result; - --out_fail: -- if (use_malloc) -- free (buf); -+ out_fail: -+ -+ free (result); - return NULL; - } - diff --git a/crypt_blowfish-gensalt.patch b/crypt_blowfish-gensalt.patch index 14d0039..685fbec 100644 --- a/crypt_blowfish-gensalt.patch +++ b/crypt_blowfish-gensalt.patch @@ -51,7 +51,15 @@ Index: crypt_blowfish-1.2/crypt_gensalt.c =================================================================== --- crypt_blowfish-1.2.orig/crypt_gensalt.c +++ crypt_blowfish-1.2/crypt_gensalt.c -@@ -180,3 +180,69 @@ error: +@@ -20,6 +20,7 @@ + + #include + #include ++#include + + #include + #ifndef __set_errno +@@ -180,3 +181,69 @@ error: errno = ENOMEM; return NULL; } diff --git a/disable-gconv-translit-modules.patch b/disable-gconv-translit-modules.patch deleted file mode 100644 index 465a6b1..0000000 --- a/disable-gconv-translit-modules.patch +++ /dev/null @@ -1,196 +0,0 @@ -2014-08-21 Florian Weimer - - [BZ #17187] - * iconv/gconv_trans.c (struct known_trans, search_tree, lock, - trans_compare, open_translit, __gconv_translit_find): - Remove module loading code. - -Index: glibc-2.19/iconv/gconv_trans.c -=================================================================== ---- glibc-2.19.orig/iconv/gconv_trans.c -+++ glibc-2.19/iconv/gconv_trans.c -@@ -238,181 +238,11 @@ __gconv_transliterate (struct __gconv_st - return __GCONV_ILLEGAL_INPUT; - } - -- --/* Structure to represent results of found (or not) transliteration -- modules. */ --struct known_trans --{ -- /* This structure must remain the first member. */ -- struct trans_struct info; -- -- char *fname; -- void *handle; -- int open_count; --}; -- -- --/* Tree with results of previous calls to __gconv_translit_find. */ --static void *search_tree; -- --/* We modify global data. */ --__libc_lock_define_initialized (static, lock); -- -- --/* Compare two transliteration entries. */ --static int --trans_compare (const void *p1, const void *p2) --{ -- const struct known_trans *s1 = (const struct known_trans *) p1; -- const struct known_trans *s2 = (const struct known_trans *) p2; -- -- return strcmp (s1->info.name, s2->info.name); --} -- -- --/* Open (maybe reopen) the module named in the struct. Get the function -- and data structure pointers we need. */ --static int --open_translit (struct known_trans *trans) --{ -- __gconv_trans_query_fct queryfct; -- -- trans->handle = __libc_dlopen (trans->fname); -- if (trans->handle == NULL) -- /* Not available. */ -- return 1; -- -- /* Find the required symbol. */ -- queryfct = __libc_dlsym (trans->handle, "gconv_trans_context"); -- if (queryfct == NULL) -- { -- /* We cannot live with that. */ -- close_and_out: -- __libc_dlclose (trans->handle); -- trans->handle = NULL; -- return 1; -- } -- -- /* Get the context. */ -- if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames) -- != 0) -- goto close_and_out; -- -- /* Of course we also have to have the actual function. */ -- trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans"); -- if (trans->info.trans_fct == NULL) -- goto close_and_out; -- -- /* Now the optional functions. */ -- trans->info.trans_init_fct = -- __libc_dlsym (trans->handle, "gconv_trans_init"); -- trans->info.trans_context_fct = -- __libc_dlsym (trans->handle, "gconv_trans_context"); -- trans->info.trans_end_fct = -- __libc_dlsym (trans->handle, "gconv_trans_end"); -- -- trans->open_count = 1; -- -- return 0; --} -- -- - int - internal_function - __gconv_translit_find (struct trans_struct *trans) - { -- struct known_trans **found; -- const struct path_elem *runp; -- int res = 1; -- -- /* We have to have a name. */ -- assert (trans->name != NULL); -- -- /* Acquire the lock. */ -- __libc_lock_lock (lock); -- -- /* See whether we know this module already. */ -- found = __tfind (trans, &search_tree, trans_compare); -- if (found != NULL) -- { -- /* Is this module available? */ -- if ((*found)->handle != NULL) -- { -- /* Maybe we have to reopen the file. */ -- if ((*found)->handle != (void *) -1) -- /* The object is not unloaded. */ -- res = 0; -- else if (open_translit (*found) == 0) -- { -- /* Copy the data. */ -- *trans = (*found)->info; -- (*found)->open_count++; -- res = 0; -- } -- } -- } -- else -- { -- size_t name_len = strlen (trans->name) + 1; -- int need_so = 0; -- struct known_trans *newp; -- -- /* We have to continue looking for the module. */ -- if (__gconv_path_elem == NULL) -- __gconv_get_path (); -- -- /* See whether we have to append .so. */ -- if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0) -- need_so = 1; -- -- /* Create a new entry. */ -- newp = (struct known_trans *) malloc (sizeof (struct known_trans) -- + (__gconv_max_path_elem_len -- + name_len + 3) -- + name_len); -- if (newp != NULL) -- { -- char *cp; -- -- /* Clear the struct. */ -- memset (newp, '\0', sizeof (struct known_trans)); -- -- /* Store a copy of the module name. */ -- newp->info.name = cp = (char *) (newp + 1); -- cp = __mempcpy (cp, trans->name, name_len); -- -- newp->fname = cp; -- -- /* Search in all the directories. */ -- for (runp = __gconv_path_elem; runp->name != NULL; ++runp) -- { -- cp = __mempcpy (__stpcpy ((char *) newp->fname, runp->name), -- trans->name, name_len); -- if (need_so) -- memcpy (cp, ".so", sizeof (".so")); -- -- if (open_translit (newp) == 0) -- { -- /* We found a module. */ -- res = 0; -- break; -- } -- } -- -- if (res) -- newp->fname = NULL; -- -- /* In any case we'll add the entry to our search tree. */ -- if (__tsearch (newp, &search_tree, trans_compare) == NULL) -- { -- /* Yickes, this should not happen. Unload the object. */ -- res = 1; -- /* XXX unload here. */ -- } -- } -- } -- -- __libc_lock_unlock (lock); -- -- return res; -+ /* This function always fails. Transliteration module loading is -+ not implemented. */ -+ return 1; - } diff --git a/dt-ppc64-num.patch b/dt-ppc64-num.patch deleted file mode 100644 index e1193e8..0000000 --- a/dt-ppc64-num.patch +++ /dev/null @@ -1,19 +0,0 @@ -2014-07-14 Alan Modra - - [BZ #17153] - * elf/elf.h (DT_PPC64_NUM): Correct value. - * NEWS: Add to fixed bug list. - -Index: glibc-2.19/elf/elf.h -=================================================================== ---- glibc-2.19.orig/elf/elf.h -+++ glibc-2.19/elf/elf.h -@@ -2283,7 +2283,7 @@ typedef Elf32_Addr Elf32_Conflict; - #define DT_PPC64_OPD (DT_LOPROC + 1) - #define DT_PPC64_OPDSZ (DT_LOPROC + 2) - #define DT_PPC64_OPT (DT_LOPROC + 3) --#define DT_PPC64_NUM 3 -+#define DT_PPC64_NUM 4 - - /* PowerPC64 specific values for the DT_PPC64_OPT Dyn entry. */ - #define PPC64_OPT_TLS 1 diff --git a/getaddrinfo-uninit-result.patch b/getaddrinfo-uninit-result.patch deleted file mode 100644 index 06887a3..0000000 --- a/getaddrinfo-uninit-result.patch +++ /dev/null @@ -1,26 +0,0 @@ - * sysdeps/posix/getaddrinfo.c (gaih_inet): Properly skip over - non-matching result from nscd. - -Index: glibc-2.19/sysdeps/posix/getaddrinfo.c -=================================================================== ---- glibc-2.19.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.19/sysdeps/posix/getaddrinfo.c -@@ -712,6 +712,18 @@ gaih_inet (const char *name, const struc - { - socklen_t size = (air->family[i] == AF_INET - ? INADDRSZ : IN6ADDRSZ); -+ -+ if (!((air->family[i] == AF_INET -+ && req->ai_family == AF_INET6 -+ && (req->ai_flags & AI_V4MAPPED) != 0) -+ || req->ai_family == AF_UNSPEC -+ || air->family[i] == req->ai_family)) -+ { -+ /* Skip over non-matching result. */ -+ addrs += size; -+ continue; -+ } -+ - if (*pat == NULL) - { - *pat = addrfree++; diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index ee1d657..09acac1 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,23 +1,9 @@ -Index: glibc-2.19/Versions.def +Index: glibc-2.19.90/crypt/Makefile =================================================================== ---- glibc-2.19.orig/Versions.def -+++ glibc-2.19/Versions.def -@@ -45,6 +45,9 @@ libc { - libcrypt { - GLIBC_2.0 - } -+libowcrypt { -+ OW_CRYPT_1.0 -+} - libdl { - GLIBC_2.0 - GLIBC_2.1 -Index: glibc-2.19/crypt/Makefile -=================================================================== ---- glibc-2.19.orig/crypt/Makefile -+++ glibc-2.19/crypt/Makefile -@@ -21,14 +21,18 @@ - subdir := crypt +--- glibc-2.19.90.orig/crypt/Makefile ++++ glibc-2.19.90/crypt/Makefile +@@ -23,14 +23,18 @@ subdir := crypt + include ../Makeconfig headers := crypt.h +headers += gnu-crypt.h ow-crypt.h @@ -35,12 +21,12 @@ Index: glibc-2.19/crypt/Makefile + +tests := cert md5c-test sha256c-test sha512c-test - include ../Makeconfig - -Index: glibc-2.19/crypt/Versions + ifeq ($(crypt-in-libc),yes) + routines += $(libcrypt-routines) +Index: glibc-2.19.90/crypt/Versions =================================================================== ---- glibc-2.19.orig/crypt/Versions -+++ glibc-2.19/crypt/Versions +--- glibc-2.19.90.orig/crypt/Versions ++++ glibc-2.19.90/crypt/Versions @@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } @@ -50,10 +36,10 @@ Index: glibc-2.19/crypt/Versions + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } +} -Index: glibc-2.19/crypt/crypt-entry.c +Index: glibc-2.19.90/crypt/crypt-entry.c =================================================================== ---- glibc-2.19.orig/crypt/crypt-entry.c -+++ glibc-2.19/crypt/crypt-entry.c +--- glibc-2.19.90.orig/crypt/crypt-entry.c ++++ glibc-2.19.90/crypt/crypt-entry.c @@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; */ @@ -76,130 +62,10 @@ Index: glibc-2.19/crypt/crypt-entry.c } #endif +#endif -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist +Index: glibc-2.19.90/shlib-versions =================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F -Index: glibc-2.19/shlib-versions -=================================================================== ---- glibc-2.19.orig/shlib-versions -+++ glibc-2.19/shlib-versions +--- glibc-2.19.90.orig/shlib-versions ++++ glibc-2.19.90/shlib-versions @@ -93,6 +93,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ # This defines the shared library version numbers we will install. @@ -208,120 +74,270 @@ Index: glibc-2.19/shlib-versions # The gross patch for programs assuming broken locale implementations. sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 -Index: glibc-2.19/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist +@@ -0,0 +1,5 @@ ++OW_CRYPT_1.0 ++ OW_CRYPT_1.0 A ++ crypt_gensalt F ++ crypt_gensalt_ra F ++ crypt_gensalt_rn F +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist +=================================================================== +--- /dev/null ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A diff --git a/glibc-2.19.tar.xz b/glibc-2.19.tar.xz deleted file mode 100644 index f885fc4..0000000 --- a/glibc-2.19.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d3997f588401ea095a0b27227b1d50cdfdd416236f6567b564549d3b46ea2a2 -size 12083312 diff --git a/glibc-2.20.tar.xz b/glibc-2.20.tar.xz new file mode 100644 index 0000000..797fc53 --- /dev/null +++ b/glibc-2.20.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f84b6d42aecc288d593c397b0a3d02260a33ee686bce0c634eb9b32798f36ba5 +size 12283992 diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index 8a34fca..73f35b7 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -7,7 +7,7 @@ Index: glibc-2.17.90/intl/loadmsgcat.c goto out; - /* Try to open the addressed file. */ -- fd = open (domain_file->filename, O_RDONLY); +- fd = open (domain_file->filename, O_RDONLY | O_BINARY); + /* Replace /locale/ with /usr/share/locale-langpack/ */ + const char *langpackdir = "/usr/share/locale-langpack/"; + char *filename_langpack = malloc (strlen (domain_file->filename) + @@ -20,18 +20,18 @@ Index: glibc-2.17.90/intl/loadmsgcat.c + strcpy (filename_langpack, langpackdir); + strcpy (&filename_langpack[strlen (langpackdir)], + (p+8)); -+ if ((fd = open (filename_langpack, O_RDONLY)) == -1) -+ fd = open (domain_file->filename, O_RDONLY); ++ if ((fd = open (filename_langpack, O_RDONLY | O_BINARY)) == -1) ++ fd = open (domain_file->filename, O_RDONLY | O_BINARY); + } + else + /* Try to open the addressed file. */ -+ fd = open (domain_file->filename, O_RDONLY); ++ fd = open (domain_file->filename, O_RDONLY | O_BINARY); + + free (filename_langpack); + } + else + /* Try to open the addressed file. */ -+ fd = open (domain_file->filename, O_RDONLY); ++ fd = open (domain_file->filename, O_RDONLY | O_BINARY); + + if (fd == -1) + { @@ -47,7 +47,7 @@ Index: glibc-2.17.90/intl/loadmsgcat.c + strcpy (filename_bundle, bundle_dir); + strcpy (&filename_bundle[strlen (bundle_dir)], + (p+8)); -+ fd = open (filename_bundle, O_RDONLY); ++ fd = open (filename_bundle, O_RDONLY | O_BINARY); + } + + free (filename_bundle); diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index 770b188..964fe99 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,8 +1,8 @@ -Index: glibc-2.17.90/elf/rtld.c +Index: glibc-2.19.90/elf/rtld.c =================================================================== ---- glibc-2.17.90.orig/elf/rtld.c -+++ glibc-2.17.90/elf/rtld.c -@@ -1717,6 +1717,53 @@ ERROR: ld.so: object '%s' cannot be load +--- glibc-2.19.90.orig/elf/rtld.c ++++ glibc-2.19.90/elf/rtld.c +@@ -1740,6 +1740,52 @@ ERROR: ld.so: object '%s' cannot be load } } @@ -18,32 +18,31 @@ Index: glibc-2.17.90/elf/rtld.c + */ +#define LIB_NOVERSION "/lib/obsolete/noversion/libNoVersion.so.1" + -+ if (__builtin_expect (main_map->l_info[DT_NUM + DT_THISPROCNUM ++ if (__glibc_unlikely (main_map->l_info[DT_NUM + DT_THISPROCNUM + + DT_VERSIONTAGIDX (DT_VERNEED)] -+ == NULL, 0) -+ && (main_map->l_info[DT_DEBUG] ++ == NULL) ++ && (main_map->l_info[DT_DEBUG] != 0 + || !(GLRO(dl_debug_mask) & DL_DEBUG_PRELINK))) + { + struct stat test_st; + int test_fd; -+ int can_load; ++ bool can_load; + + HP_TIMING_NOW (start); + -+ can_load = 1; ++ can_load = true; + test_fd = __open (LIB_NOVERSION, O_RDONLY); -+ if (test_fd < 0) { -+ can_load = 0; -+ } else { -+ if (__fxstat (_STAT_VER, test_fd, &test_st) < 0 || test_st.st_size == 0) { -+ can_load = 0; ++ if (test_fd < 0) ++ can_load = false; ++ else ++ { ++ if (__fxstat (_STAT_VER, test_fd, &test_st) < 0 ++ || test_st.st_size == 0) ++ can_load = false; ++ __close(test_fd); + } -+ } + -+ if (test_fd >= 0) /* open did no fail.. */ -+ __close(test_fd); /* avoid fd leaks */ -+ -+ if (can_load != 0) ++ if (can_load) + npreloads += do_preload (LIB_NOVERSION, main_map, + "nonversioned binary"); + @@ -53,6 +52,6 @@ Index: glibc-2.17.90/elf/rtld.c + } +#endif + - if (__builtin_expect (*first_preload != NULL, 0)) + if (__glibc_unlikely (*first_preload != NULL)) { /* Set up PRELOADS with a vector of the preloaded libraries. */ diff --git a/glibc-nodate.patch b/glibc-nodate.patch index 5ea4b75..a5b2f5d 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,18 +1,3 @@ -Index: glibc-2.17.90/csu/Makefile -=================================================================== ---- glibc-2.17.90.orig/csu/Makefile -+++ glibc-2.17.90/csu/Makefile -@@ -162,8 +162,8 @@ $(objpfx)version-info.h: $(common-objpfx - if [ -z "$$os" ]; then \ - os=Linux; \ - fi; \ -- printf '"Compiled on a %s %s system on %s.\\n"\n' \ -- "$$os" "$$version" "`date +%Y-%m-%d`";; \ -+ printf '"Compiled on a %s %s system.\\n"\n' \ -+ "$$os" "$$version";; \ - *) ;; \ - esac; \ - files="$(all-Banner-files)"; \ Index: glibc-2.17.90/nscd/nscd_stat.c =================================================================== --- glibc-2.17.90.orig/nscd/nscd_stat.c diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 383ec79..2648c16 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de + +- Update to glibc 2.20 release. + * Reverted change of ABI data structures for s390 and s390x + * Support for file description locks is added to systems running the + Linux kernel + * Optimized strchr implementation for AArch64 + * The minimum Linux kernel version that this version of the GNU C Library + can be used with is 2.6.32 + * Running the testsuite no longer terminates as soon as a test fails + * The am33 port, which had not worked for several years, has been removed + from ports. + * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer + supported; they now act the same as _DEFAULT_SOURCE (but generate a + warning) + * Optimized strcmp implementation for ARMv7 + * Added support for TX lock elision of pthread mutexes on s390 and s390x + * All supported architectures now use the main glibc sysdeps directory + instead of some being in a separate "ports" directory + * The NPTL implementation of POSIX pthreads is no longer an "add-on" + * Locale names, including those obtained from environment variables (LANG + and the LC_* variables), are more tightly checked for proper syntax + * On x86-64, the dynamic linker's lazy-binding support is now compatible + with application code using Intel MPX instructions +- Patches from upstream removed + * nss-dns-memleak.patch + * sin-sign.patch + * pldd-wait-ptrace-stop.patch + * nscd-track-startup-failures.patch + * powerpc-opt-power8.patch + * check-pf-alloca.patch + * getaddrinfo-uninit-result.patch + * ppc64-copysign.patch + * nextafterl-ibm-ldouble.patch + * ibm-long-double-math.patch + * ibm-long-double-frexpl.patch + * aarch64-setcontext.patch + * nss-nis-stack-use.patch + * psfaa.patch + * nss-files-long-lines.patch + * setlocale-directory-traversal.patch + * dt-ppc64-num.patch + * ppc64le-profiling.patch + * s390-revert-abi-change.patch + * disable-gconv-translit-modules.patch + * resolv-dont-ignore-second-answer.patch + * iconv-ibm-sentinel-check.patch +- Remove sprof.1, and mtrace.1, now included in the man-pages package + ------------------------------------------------------------------- Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1a14e99..446406d 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -100,10 +100,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.19 +Version: 2.20 Release: 0 -%define glibc_major_version 2.19 -%define git_id 9a869d822025 +%define glibc_major_version 2.20 +%define git_id b8079dd0d360 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -232,54 +232,12 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM fix memory leak in nss_dns -Patch1000: nss-dns-memleak.patch -# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623) -Patch1001: sin-sign.patch -# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching -Patch1002: pldd-wait-ptrace-stop.patch -# PATCH-FIX-UPSTREAM Improved support for tracking startup failure in nscd service (BZ #16639) -Patch1003: nscd-track-startup-failures.patch -# PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware -Patch1004: powerpc-opt-power8.patch -# PATCH-FIX-UPSTREAM Account for alloca use when collecting interface addresses -Patch1005: check-pf-alloca.patch -# PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd -Patch1006: getaddrinfo-uninit-result.patch -# PATCH-FIX-UPSTREAM Fix ppc64le copysign overwriting parent stack frame (BZ #16786) -Patch1007: ppc64-copysign.patch -# PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) -Patch1008: nextafterl-ibm-ldouble.patch -# PATCH-FIX-UPSTREAM Remove faulty assembler implementations for IBM long double (BZ #16701, BZ #16706, BZ #16707) -Patch1009: ibm-long-double-math.patch -# PATCH-FIX-UPSTREAM Correct IBM long double frexpl (BZ #16740, BZ #16619) -Patch1010: ibm-long-double-frexpl.patch -# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) -Patch1011: aarch64-setcontext.patch -# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) -Patch1012: nss-nis-stack-use.patch -# PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) -Patch1013: psfaa.patch -# PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) -Patch1014: nss-files-long-lines.patch -# PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) -Patch1015: setlocale-directory-traversal.patch -# PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) -Patch1016: dt-ppc64-num.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix gprof entry point for LE (BZ #17213) -Patch1017: ppc64le-profiling.patch -# PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) -Patch1018: s390-revert-abi-change.patch -# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) -Patch1019: disable-gconv-translit-modules.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) Patch2000: fix-locking-in-_IO_cleanup.patch -# PATCH-FIX-UPSTREAM Don't ignore second answer from nameserver if the first one was empty (BZ #13651) -Patch2001: resolv-dont-ignore-second-answer.patch # PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) @@ -292,8 +250,6 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ #17325) -Patch2008: iconv-ibm-sentinel-check.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -494,36 +450,13 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 - %patch2000 -p1 -%patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 -%patch2008 -p1 %patch3000 @@ -581,10 +514,10 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" +BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" -add_ons=",libidn" +add_ons=libidn # #now overwrite for some architectures # @@ -626,9 +559,6 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm aarch64 mipsel ia64 m68k - add_ons=$add_ons,ports -%endif %ifarch mipsel # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 @@ -637,7 +567,6 @@ add_ons=",libidn" configure_and_build_glibc() { local dirname="$1"; shift local cflags="$1"; shift - local addons="$1"; shift mkdir "cc-$dirname" cd "cc-$dirname" %ifarch %arm aarch64 @@ -664,7 +593,7 @@ configure_and_build_glibc() { CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ - --enable-add-ons=nptl$addons \ + --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} @@ -694,7 +623,7 @@ configure_and_build_glibc() { # # Build base glibc # - configure_and_build_glibc base "$BuildFlags" "$add_ons" + configure_and_build_glibc base "$BuildFlags" %else # # Build POWER-optimized glibc @@ -705,10 +634,10 @@ configure_and_build_glibc() { pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" %endif %if "%{powerpc_optimize_base}" != "" - configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} + configure_and_build_glibc base "$pBuildFlags" --with-cpu=%{powerpc_optimize_base} %else # Use no default CPU - configure_and_build_glibc base "$pBuildFlags" "$add_ons" + configure_and_build_glibc base "$pBuildFlags" %endif %if %{build_variants} # Then other power variants: @@ -723,19 +652,19 @@ configure_and_build_glibc() { power7 \ %endif ; do - configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \ + configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" \ --with-cpu=$pcpu done # Eventually, special Cell variant: %if %{powerpc_optimize_cpu_cell} - configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" + configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" %endif %endif # %{build_variants} %endif # optimize_power %if %{build_variants} %ifarch i686 x86_64 -configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +configure_and_build_glibc noelision "$BuildFlags" %endif %endif @@ -785,8 +714,25 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 -make -C cc-base -k check || -find cc-base -name "*.out" | tar -czf - -T - | base64 +make -C cc-base -k check || { + cd cc-base + o=$- + set +x + for sum in */*.sum; do + while read s t; do + case $s in + XPASS:|PASS:) + echo ++++++ $s $t ++++++ + ;; + *) # X?FAIL: + echo ------ $s $t ------ + test ! -f $t.out || cat $t.out + ;; + esac + done < $sum + done + set -$o +} %else # This has to pass on all platforms! # Exceptions: @@ -1016,7 +962,6 @@ rm -f %{buildroot}%{_bindir}/pcprofiledump rm -f %{buildroot}%{_bindir}/sotruss rm -f %{buildroot}%{_bindir}/xtrace rm -f %{buildroot}%{_bindir}/pldd -rm -f %{buildroot}%{_mandir}/man1/mtrace.* rm -rf %{buildroot}%{_libdir}/audit %ifarch i686 @@ -1041,8 +986,7 @@ rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* rm -f %{buildroot}/lib/ld*.so* rm -f %{buildroot}%{_libdir}/lib* rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} -rm -f %{buildroot}%{_mandir}/man1/[!m]* -rm -rf %{buildroot}%{_mandir}/man[!1] +rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} %endif # %{utils_build} @@ -1266,7 +1210,6 @@ exit 0 %doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE %doc %{_mandir}/man1/catchsegv.1.gz %doc %{_mandir}/man1/rpcgen.1.gz -%doc %{_mandir}/man1/sprof.1.gz %doc %{_mandir}/man3/* %{_bindir}/catchsegv %{_bindir}/rpcgen @@ -1377,7 +1320,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%doc %{_mandir}/man1/mtrace.1.gz %endif # %{utils_build} %changelog diff --git a/glibc-utils.changes b/glibc-utils.changes index 383ec79..2648c16 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de + +- Update to glibc 2.20 release. + * Reverted change of ABI data structures for s390 and s390x + * Support for file description locks is added to systems running the + Linux kernel + * Optimized strchr implementation for AArch64 + * The minimum Linux kernel version that this version of the GNU C Library + can be used with is 2.6.32 + * Running the testsuite no longer terminates as soon as a test fails + * The am33 port, which had not worked for several years, has been removed + from ports. + * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer + supported; they now act the same as _DEFAULT_SOURCE (but generate a + warning) + * Optimized strcmp implementation for ARMv7 + * Added support for TX lock elision of pthread mutexes on s390 and s390x + * All supported architectures now use the main glibc sysdeps directory + instead of some being in a separate "ports" directory + * The NPTL implementation of POSIX pthreads is no longer an "add-on" + * Locale names, including those obtained from environment variables (LANG + and the LC_* variables), are more tightly checked for proper syntax + * On x86-64, the dynamic linker's lazy-binding support is now compatible + with application code using Intel MPX instructions +- Patches from upstream removed + * nss-dns-memleak.patch + * sin-sign.patch + * pldd-wait-ptrace-stop.patch + * nscd-track-startup-failures.patch + * powerpc-opt-power8.patch + * check-pf-alloca.patch + * getaddrinfo-uninit-result.patch + * ppc64-copysign.patch + * nextafterl-ibm-ldouble.patch + * ibm-long-double-math.patch + * ibm-long-double-frexpl.patch + * aarch64-setcontext.patch + * nss-nis-stack-use.patch + * psfaa.patch + * nss-files-long-lines.patch + * setlocale-directory-traversal.patch + * dt-ppc64-num.patch + * ppc64le-profiling.patch + * s390-revert-abi-change.patch + * disable-gconv-translit-modules.patch + * resolv-dont-ignore-second-answer.patch + * iconv-ibm-sentinel-check.patch +- Remove sprof.1, and mtrace.1, now included in the man-pages package + ------------------------------------------------------------------- Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 1ca5852..8f4f771 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -99,10 +99,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.19 +Version: 2.20 Release: 0 -%define glibc_major_version 2.19 -%define git_id 9a869d822025 +%define glibc_major_version 2.20 +%define git_id b8079dd0d360 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -231,54 +231,12 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM fix memory leak in nss_dns -Patch1000: nss-dns-memleak.patch -# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623) -Patch1001: sin-sign.patch -# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching -Patch1002: pldd-wait-ptrace-stop.patch -# PATCH-FIX-UPSTREAM Improved support for tracking startup failure in nscd service (BZ #16639) -Patch1003: nscd-track-startup-failures.patch -# PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware -Patch1004: powerpc-opt-power8.patch -# PATCH-FIX-UPSTREAM Account for alloca use when collecting interface addresses -Patch1005: check-pf-alloca.patch -# PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd -Patch1006: getaddrinfo-uninit-result.patch -# PATCH-FIX-UPSTREAM Fix ppc64le copysign overwriting parent stack frame (BZ #16786) -Patch1007: ppc64-copysign.patch -# PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) -Patch1008: nextafterl-ibm-ldouble.patch -# PATCH-FIX-UPSTREAM Remove faulty assembler implementations for IBM long double (BZ #16701, BZ #16706, BZ #16707) -Patch1009: ibm-long-double-math.patch -# PATCH-FIX-UPSTREAM Correct IBM long double frexpl (BZ #16740, BZ #16619) -Patch1010: ibm-long-double-frexpl.patch -# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) -Patch1011: aarch64-setcontext.patch -# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) -Patch1012: nss-nis-stack-use.patch -# PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) -Patch1013: psfaa.patch -# PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) -Patch1014: nss-files-long-lines.patch -# PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) -Patch1015: setlocale-directory-traversal.patch -# PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) -Patch1016: dt-ppc64-num.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix gprof entry point for LE (BZ #17213) -Patch1017: ppc64le-profiling.patch -# PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) -Patch1018: s390-revert-abi-change.patch -# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) -Patch1019: disable-gconv-translit-modules.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) Patch2000: fix-locking-in-_IO_cleanup.patch -# PATCH-FIX-UPSTREAM Don't ignore second answer from nameserver if the first one was empty (BZ #13651) -Patch2001: resolv-dont-ignore-second-answer.patch # PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) @@ -291,8 +249,6 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ #17325) -Patch2008: iconv-ibm-sentinel-check.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -494,36 +450,13 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 - %patch2000 -p1 -%patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 -%patch2008 -p1 %patch3000 @@ -581,10 +514,10 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" +BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" -add_ons=",libidn" +add_ons=libidn # #now overwrite for some architectures # @@ -626,9 +559,6 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm aarch64 mipsel ia64 m68k - add_ons=$add_ons,ports -%endif %ifarch mipsel # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 @@ -637,7 +567,6 @@ add_ons=",libidn" configure_and_build_glibc() { local dirname="$1"; shift local cflags="$1"; shift - local addons="$1"; shift mkdir "cc-$dirname" cd "cc-$dirname" %ifarch %arm aarch64 @@ -664,7 +593,7 @@ configure_and_build_glibc() { CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ - --enable-add-ons=nptl$addons \ + --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} @@ -694,7 +623,7 @@ configure_and_build_glibc() { # # Build base glibc # - configure_and_build_glibc base "$BuildFlags" "$add_ons" + configure_and_build_glibc base "$BuildFlags" %else # # Build POWER-optimized glibc @@ -705,10 +634,10 @@ configure_and_build_glibc() { pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" %endif %if "%{powerpc_optimize_base}" != "" - configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} + configure_and_build_glibc base "$pBuildFlags" --with-cpu=%{powerpc_optimize_base} %else # Use no default CPU - configure_and_build_glibc base "$pBuildFlags" "$add_ons" + configure_and_build_glibc base "$pBuildFlags" %endif %if %{build_variants} # Then other power variants: @@ -723,19 +652,19 @@ configure_and_build_glibc() { power7 \ %endif ; do - configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \ + configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" \ --with-cpu=$pcpu done # Eventually, special Cell variant: %if %{powerpc_optimize_cpu_cell} - configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" + configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" %endif %endif # %{build_variants} %endif # optimize_power %if %{build_variants} %ifarch i686 x86_64 -configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +configure_and_build_glibc noelision "$BuildFlags" %endif %endif @@ -785,8 +714,25 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 -make -C cc-base -k check || -find cc-base -name "*.out" | tar -czf - -T - | base64 +make -C cc-base -k check || { + cd cc-base + o=$- + set +x + for sum in */*.sum; do + while read s t; do + case $s in + XPASS:|PASS:) + echo ++++++ $s $t ++++++ + ;; + *) # X?FAIL: + echo ------ $s $t ------ + test ! -f $t.out || cat $t.out + ;; + esac + done < $sum + done + set -$o +} %else # This has to pass on all platforms! # Exceptions: @@ -1016,7 +962,6 @@ rm -f %{buildroot}%{_bindir}/pcprofiledump rm -f %{buildroot}%{_bindir}/sotruss rm -f %{buildroot}%{_bindir}/xtrace rm -f %{buildroot}%{_bindir}/pldd -rm -f %{buildroot}%{_mandir}/man1/mtrace.* rm -rf %{buildroot}%{_libdir}/audit %ifarch i686 @@ -1041,8 +986,7 @@ rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* rm -f %{buildroot}/lib/ld*.so* rm -f %{buildroot}%{_libdir}/lib* rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} -rm -f %{buildroot}%{_mandir}/man1/[!m]* -rm -rf %{buildroot}%{_mandir}/man[!1] +rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} %endif # %{utils_build} @@ -1266,7 +1210,6 @@ exit 0 %doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE %doc %{_mandir}/man1/catchsegv.1.gz %doc %{_mandir}/man1/rpcgen.1.gz -%doc %{_mandir}/man1/sprof.1.gz %doc %{_mandir}/man3/* %{_bindir}/catchsegv %{_bindir}/rpcgen @@ -1377,7 +1320,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%doc %{_mandir}/man1/mtrace.1.gz %endif # %{utils_build} %changelog diff --git a/glibc.changes b/glibc.changes index 383ec79..2648c16 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de + +- Update to glibc 2.20 release. + * Reverted change of ABI data structures for s390 and s390x + * Support for file description locks is added to systems running the + Linux kernel + * Optimized strchr implementation for AArch64 + * The minimum Linux kernel version that this version of the GNU C Library + can be used with is 2.6.32 + * Running the testsuite no longer terminates as soon as a test fails + * The am33 port, which had not worked for several years, has been removed + from ports. + * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer + supported; they now act the same as _DEFAULT_SOURCE (but generate a + warning) + * Optimized strcmp implementation for ARMv7 + * Added support for TX lock elision of pthread mutexes on s390 and s390x + * All supported architectures now use the main glibc sysdeps directory + instead of some being in a separate "ports" directory + * The NPTL implementation of POSIX pthreads is no longer an "add-on" + * Locale names, including those obtained from environment variables (LANG + and the LC_* variables), are more tightly checked for proper syntax + * On x86-64, the dynamic linker's lazy-binding support is now compatible + with application code using Intel MPX instructions +- Patches from upstream removed + * nss-dns-memleak.patch + * sin-sign.patch + * pldd-wait-ptrace-stop.patch + * nscd-track-startup-failures.patch + * powerpc-opt-power8.patch + * check-pf-alloca.patch + * getaddrinfo-uninit-result.patch + * ppc64-copysign.patch + * nextafterl-ibm-ldouble.patch + * ibm-long-double-math.patch + * ibm-long-double-frexpl.patch + * aarch64-setcontext.patch + * nss-nis-stack-use.patch + * psfaa.patch + * nss-files-long-lines.patch + * setlocale-directory-traversal.patch + * dt-ppc64-num.patch + * ppc64le-profiling.patch + * s390-revert-abi-change.patch + * disable-gconv-translit-modules.patch + * resolv-dont-ignore-second-answer.patch + * iconv-ibm-sentinel-check.patch +- Remove sprof.1, and mtrace.1, now included in the man-pages package + ------------------------------------------------------------------- Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 3ec081c..e78a302 100644 --- a/glibc.spec +++ b/glibc.spec @@ -100,10 +100,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.19 +Version: 2.20 Release: 0 -%define glibc_major_version 2.19 -%define git_id 9a869d822025 +%define glibc_major_version 2.20 +%define git_id b8079dd0d360 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -232,54 +232,12 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM fix memory leak in nss_dns -Patch1000: nss-dns-memleak.patch -# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623) -Patch1001: sin-sign.patch -# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching -Patch1002: pldd-wait-ptrace-stop.patch -# PATCH-FIX-UPSTREAM Improved support for tracking startup failure in nscd service (BZ #16639) -Patch1003: nscd-track-startup-failures.patch -# PATCH-FIX-UPSTREAM GLIBC Optimizations For POWER8 Hardware -Patch1004: powerpc-opt-power8.patch -# PATCH-FIX-UPSTREAM Account for alloca use when collecting interface addresses -Patch1005: check-pf-alloca.patch -# PATCH-FIX-UPSTREAM Fix use of half-initialized result in getaddrinfo when using nscd -Patch1006: getaddrinfo-uninit-result.patch -# PATCH-FIX-UPSTREAM Fix ppc64le copysign overwriting parent stack frame (BZ #16786) -Patch1007: ppc64-copysign.patch -# PATCH-FIX-UPSTREAM Correct IBM long double nextafterl (BZ #16739) -Patch1008: nextafterl-ibm-ldouble.patch -# PATCH-FIX-UPSTREAM Remove faulty assembler implementations for IBM long double (BZ #16701, BZ #16706, BZ #16707) -Patch1009: ibm-long-double-math.patch -# PATCH-FIX-UPSTREAM Correct IBM long double frexpl (BZ #16740, BZ #16619) -Patch1010: ibm-long-double-frexpl.patch -# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) -Patch1011: aarch64-setcontext.patch -# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) -Patch1012: nss-nis-stack-use.patch -# PATCH-FIX-UPSTREAM posix_spawn_file_actions_addopen needs to copy the path argument (BZ #17048) -Patch1013: psfaa.patch -# PATCH-FIX-UPSTREAM Don't ignore too long lines in nss_files (BZ #17079) -Patch1014: nss-files-long-lines.patch -# PATCH-FIX-UPSTREAM Directory traversal in locale environment handling (BZ #17137) -Patch1015: setlocale-directory-traversal.patch -# PATCH-FIX-UPSTREAM Correct DT_PPC64_NUM (BZ #17153) -Patch1016: dt-ppc64-num.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix gprof entry point for LE (BZ #17213) -Patch1017: ppc64le-profiling.patch -# PATCH-FIX-UPSTREAM S/390 Reverting the jmp_buf/ucontext_t ABI change (bnc#887228) -Patch1018: s390-revert-abi-change.patch -# PATCH-FIX-UPSTREAM Disable gconv transliteration module loading (BZ #17187) -Patch1019: disable-gconv-translit-modules.patch ### # Patches awaiting upstream approval ### # PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) Patch2000: fix-locking-in-_IO_cleanup.patch -# PATCH-FIX-UPSTREAM Don't ignore second answer from nameserver if the first one was empty (BZ #13651) -Patch2001: resolv-dont-ignore-second-answer.patch # PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) @@ -292,8 +250,6 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix crashes on invalid input in IBM gconv modules (BZ #17325) -Patch2008: iconv-ibm-sentinel-check.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -494,36 +450,13 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 - %patch2000 -p1 -%patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 -%patch2008 -p1 %patch3000 @@ -581,10 +514,10 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" +BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" -add_ons=",libidn" +add_ons=libidn # #now overwrite for some architectures # @@ -626,9 +559,6 @@ add_ons=",libidn" %ifarch %ix86 add_ons=$add_ons,noversion %endif -%ifarch %arm aarch64 mipsel ia64 m68k - add_ons=$add_ons,ports -%endif %ifarch mipsel # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 @@ -637,7 +567,6 @@ add_ons=",libidn" configure_and_build_glibc() { local dirname="$1"; shift local cflags="$1"; shift - local addons="$1"; shift mkdir "cc-$dirname" cd "cc-$dirname" %ifarch %arm aarch64 @@ -664,7 +593,7 @@ configure_and_build_glibc() { CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ - --enable-add-ons=nptl$addons \ + --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} @@ -694,7 +623,7 @@ configure_and_build_glibc() { # # Build base glibc # - configure_and_build_glibc base "$BuildFlags" "$add_ons" + configure_and_build_glibc base "$BuildFlags" %else # # Build POWER-optimized glibc @@ -705,10 +634,10 @@ configure_and_build_glibc() { pBuildFlags+=" -mcpu=%{powerpc_optimize_base}" %endif %if "%{powerpc_optimize_base}" != "" - configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base} + configure_and_build_glibc base "$pBuildFlags" --with-cpu=%{powerpc_optimize_base} %else # Use no default CPU - configure_and_build_glibc base "$pBuildFlags" "$add_ons" + configure_and_build_glibc base "$pBuildFlags" %endif %if %{build_variants} # Then other power variants: @@ -723,19 +652,19 @@ configure_and_build_glibc() { power7 \ %endif ; do - configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \ + configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" \ --with-cpu=$pcpu done # Eventually, special Cell variant: %if %{powerpc_optimize_cpu_cell} - configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" + configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" %endif %endif # %{build_variants} %endif # optimize_power %if %{build_variants} %ifarch i686 x86_64 -configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +configure_and_build_glibc noelision "$BuildFlags" %endif %endif @@ -785,8 +714,25 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 -make -C cc-base -k check || -find cc-base -name "*.out" | tar -czf - -T - | base64 +make -C cc-base -k check || { + cd cc-base + o=$- + set +x + for sum in */*.sum; do + while read s t; do + case $s in + XPASS:|PASS:) + echo ++++++ $s $t ++++++ + ;; + *) # X?FAIL: + echo ------ $s $t ------ + test ! -f $t.out || cat $t.out + ;; + esac + done < $sum + done + set -$o +} %else # This has to pass on all platforms! # Exceptions: @@ -1016,7 +962,6 @@ rm -f %{buildroot}%{_bindir}/pcprofiledump rm -f %{buildroot}%{_bindir}/sotruss rm -f %{buildroot}%{_bindir}/xtrace rm -f %{buildroot}%{_bindir}/pldd -rm -f %{buildroot}%{_mandir}/man1/mtrace.* rm -rf %{buildroot}%{_libdir}/audit %ifarch i686 @@ -1041,8 +986,7 @@ rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]* rm -f %{buildroot}/lib/ld*.so* rm -f %{buildroot}%{_libdir}/lib* rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} -rm -f %{buildroot}%{_mandir}/man1/[!m]* -rm -rf %{buildroot}%{_mandir}/man[!1] +rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} %endif # %{utils_build} @@ -1266,7 +1210,6 @@ exit 0 %doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE %doc %{_mandir}/man1/catchsegv.1.gz %doc %{_mandir}/man1/rpcgen.1.gz -%doc %{_mandir}/man1/sprof.1.gz %doc %{_mandir}/man3/* %{_bindir}/catchsegv %{_bindir}/rpcgen @@ -1377,7 +1320,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%doc %{_mandir}/man1/mtrace.1.gz %endif # %{utils_build} %changelog diff --git a/ibm-long-double-frexpl.patch b/ibm-long-double-frexpl.patch deleted file mode 100644 index 5b1e3b8..0000000 --- a/ibm-long-double-frexpl.patch +++ /dev/null @@ -1,194 +0,0 @@ -2014-04-16 Alan Modra - - [BZ #16740] - [BZ #16619] - * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c (__frexpl): Rewrite. - * math/libm-test.inc (frexp_test_data): Add tests. - -Index: glibc-2.19/math/libm-test.inc -=================================================================== ---- glibc-2.19.orig/math/libm-test.inc -+++ glibc-2.19/math/libm-test.inc -@@ -8723,6 +8723,15 @@ static const struct test_f_f1_data frexp - - TEST_fI_f1 (frexp, 12.8L, 0.8L, 4, NO_INEXACT_EXCEPTION), - TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5, NO_INEXACT_EXCEPTION), -+ -+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106 -+ TEST_fI_f1 (frexp, 1.0L-0x1p-106L, 1.0L-0x1p-106L, 0, NO_INEXACT_EXCEPTION), -+ TEST_fI_f1 (frexp, 1.0L, 0.5L, 1, NO_INEXACT_EXCEPTION), -+ TEST_fI_f1 (frexp, 1.0L+0x1p-105L, 0.5L+0x1p-106L, 1, NO_INEXACT_EXCEPTION), -+ TEST_fI_f1 (frexp, -1.0L+0x1p-106L, -1.0L+0x1p-106L, 0, NO_INEXACT_EXCEPTION), -+ TEST_fI_f1 (frexp, -1.0L, -0.5L, 1, NO_INEXACT_EXCEPTION), -+ TEST_fI_f1 (frexp, -1.0L-0x1p-105L, -0.5L-0x1p-106L, 1, NO_INEXACT_EXCEPTION), -+#endif - }; - - static void -Index: glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c -=================================================================== ---- glibc-2.19.orig/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c -+++ glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c -@@ -31,57 +31,115 @@ static char rcsid[] = "$NetBSD: $"; - #include - #include - --static const long double --two107 = 162259276829213363391578010288128.0; /* 0x4670000000000000, 0 */ -- - long double __frexpl(long double x, int *eptr) - { -- uint64_t hx, lx, ix, ixl; -- int64_t explo; -- double xhi, xlo; -- -- ldbl_unpack (x, &xhi, &xlo); -- EXTRACT_WORDS64 (hx, xhi); -- EXTRACT_WORDS64 (lx, xlo); -- ixl = 0x7fffffffffffffffULL&lx; -- ix = 0x7fffffffffffffffULL&hx; -- *eptr = 0; -- if(ix>=0x7ff0000000000000ULL||ix==0) return x; /* 0,inf,nan */ -- if (ix<0x0010000000000000ULL) { /* subnormal */ -- x *= two107; -- xhi = ldbl_high (x); -- EXTRACT_WORDS64 (hx, xhi); -- ix = hx&0x7fffffffffffffffULL; -- *eptr = -107; -+ uint64_t hx, lx, ix, ixl; -+ int64_t explo, expon; -+ double xhi, xlo; -+ -+ ldbl_unpack (x, &xhi, &xlo); -+ EXTRACT_WORDS64 (hx, xhi); -+ EXTRACT_WORDS64 (lx, xlo); -+ ixl = 0x7fffffffffffffffULL & lx; -+ ix = 0x7fffffffffffffffULL & hx; -+ expon = 0; -+ if (ix >= 0x7ff0000000000000ULL || ix == 0) -+ { -+ /* 0,inf,nan. */ -+ *eptr = expon; -+ return x; -+ } -+ expon = ix >> 52; -+ if (expon == 0) -+ { -+ /* Denormal high double, the low double must be 0.0. */ -+ int cnt; -+ -+ /* Normalize. */ -+ if (sizeof (ix) == sizeof (long)) -+ cnt = __builtin_clzl (ix); -+ else if ((ix >> 32) != 0) -+ cnt = __builtin_clzl ((long) (ix >> 32)); -+ else -+ cnt = __builtin_clzl ((long) ix) + 32; -+ cnt = cnt - 12; -+ expon -= cnt; -+ ix <<= cnt + 1; -+ } -+ expon -= 1022; -+ ix &= 0x000fffffffffffffULL; -+ hx &= 0x8000000000000000ULL; -+ hx |= (1022LL << 52) | ix; -+ -+ if (ixl != 0) -+ { -+ /* If the high double is an exact power of two and the low -+ double has the opposite sign, then the exponent calculated -+ from the high double is one too big. */ -+ if (ix == 0 -+ && (int64_t) (hx ^ lx) < 0) -+ { -+ hx += 1L << 52; -+ expon -= 1; -+ } -+ -+ explo = ixl >> 52; -+ if (explo == 0) -+ { -+ /* The low double started out as a denormal. Normalize its -+ mantissa and adjust the exponent. */ -+ int cnt; -+ -+ if (sizeof (ixl) == sizeof (long)) -+ cnt = __builtin_clzl (ixl); -+ else if ((ixl >> 32) != 0) -+ cnt = __builtin_clzl ((long) (ixl >> 32)); -+ else -+ cnt = __builtin_clzl ((long) ixl) + 32; -+ cnt = cnt - 12; -+ explo -= cnt; -+ ixl <<= cnt + 1; -+ } -+ -+ /* With variable precision we can't assume much about the -+ magnitude of the returned low double. It may even be a -+ denormal. */ -+ explo -= expon; -+ ixl &= 0x000fffffffffffffULL; -+ lx &= 0x8000000000000000ULL; -+ if (explo <= 0) -+ { -+ /* Handle denormal low double. */ -+ if (explo > -52) -+ { -+ ixl |= 1LL << 52; -+ ixl >>= 1 - explo; -+ } -+ else -+ { -+ ixl = 0; -+ lx = 0; -+ if ((hx & 0x7ff0000000000000ULL) == (1023LL << 52)) -+ { -+ /* Oops, the adjustment we made above for values a -+ little smaller than powers of two turned out to -+ be wrong since the returned low double will be -+ zero. This can happen if the input was -+ something weird like 0x1p1000 - 0x1p-1000. */ -+ hx -= 1L << 52; -+ expon += 1; -+ } -+ } -+ explo = 0; - } -- *eptr += (ix>>52)-1022; -+ lx |= (explo << 52) | ixl; -+ } - -- if (ixl != 0ULL) { -- explo = (ixl>>52) - (ix>>52) + 0x3fe; -- if ((ixl&0x7ff0000000000000ULL) == 0LL) { -- /* the lower double is a denormal so we need to correct its -- mantissa and perhaps its exponent. */ -- int cnt; -- -- if (sizeof (ixl) == sizeof (long)) -- cnt = __builtin_clzl (ixl); -- else if ((ixl >> 32) != 0) -- cnt = __builtin_clzl ((long) (ixl >> 32)); -- else -- cnt = __builtin_clzl ((long) ixl) + 32; -- cnt = cnt - 12; -- lx = (lx&0x8000000000000000ULL) | ((explo-cnt)<<52) -- | ((ixl<<(cnt+1))&0x000fffffffffffffULL); -- } else -- lx = (lx&0x800fffffffffffffULL) | (explo<<52); -- } else -- lx = 0ULL; -- -- hx = (hx&0x800fffffffffffffULL) | 0x3fe0000000000000ULL; -- INSERT_WORDS64 (xhi, hx); -- INSERT_WORDS64 (xlo, lx); -- x = ldbl_pack (xhi, xlo); -- return x; -+ INSERT_WORDS64 (xhi, hx); -+ INSERT_WORDS64 (xlo, lx); -+ x = ldbl_pack (xhi, xlo); -+ *eptr = expon; -+ return x; - } - #ifdef IS_IN_libm - long_double_symbol (libm, __frexpl, frexpl); diff --git a/ibm-long-double-math.patch b/ibm-long-double-math.patch deleted file mode 100644 index c34d2c3..0000000 --- a/ibm-long-double-math.patch +++ /dev/null @@ -1,462 +0,0 @@ -2014-03-14 Adhemerval Zanella - - [BZ #16707] - * sysdeps/powerpc/powerpc64/fpu/s_roundl.S: Remove wrong - implementation. - * math/libm-test.inc (round_test_data): Add more tests. - - [BZ #16706] - * sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S: Remove wrong - implementation. - * math/libm-test.inc (nearbyint_test_data): Add more tests. - - [BZ #16701] - * sysdeps/powerpc/powerpc64/fpu/s_ceill.S: Remove wrong - implementation. - * math/libm-test.inc (ceil_test_data): Add more tests. - -Index: glibc-2.19/math/libm-test.inc -=================================================================== ---- glibc-2.19.orig/math/libm-test.inc -+++ glibc-2.19/math/libm-test.inc -@@ -6000,6 +6000,15 @@ static const struct test_f_f_data ceil_t - TEST_f_f (ceil, -72057594037927936.75L, -72057594037927936.0L), - TEST_f_f (ceil, -72057594037927937.5L, -72057594037927937.0L), - -+ /* Check cases where first double is a exact integer higher than 2^52 and -+ the precision is determined by second long double for IBM long double. */ -+ TEST_f_f (ceil, 34503599627370498.515625L, 34503599627370499.0L), -+ TEST_f_f (ceil, -34503599627370498.515625L, -34503599627370498.0L), -+# if LDBL_MANT_DIG >= 106 -+ TEST_f_f (ceil, 1192568192774434123539907640624.484375L, 1192568192774434123539907640625.0L), -+ TEST_f_f (ceil, -1192568192774434123539907640624.484375L, -1192568192774434123539907640624.0L), -+# endif -+ - TEST_f_f (ceil, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L), - TEST_f_f (ceil, 10141204801825835211973625643008.25L, 10141204801825835211973625643009.0L), - TEST_f_f (ceil, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L), -@@ -10495,6 +10504,16 @@ static const struct test_f_f_data nearby - TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0, NO_INEXACT_EXCEPTION), - TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0, NO_INEXACT_EXCEPTION), - #endif -+#ifdef TEST_LDOUBLE -+ /* Check cases where first double is a exact integer higher than 2^52 and -+ the precision is determined by second long double for IBM long double. */ -+ TEST_f_f (nearbyint, 34503599627370498.515625L, 34503599627370499.0L), -+ TEST_f_f (nearbyint, -34503599627370498.515625L, -34503599627370499.0L), -+# if LDBL_MANT_DIG >= 106 -+ TEST_f_f (nearbyint, 1192568192774434123539907640624.484375L, 1192568192774434123539907640624.0L), -+ TEST_f_f (nearbyint, -1192568192774434123539907640624.484375L, -1192568192774434123539907640624.0L), -+# endif -+#endif - }; - - static void -@@ -11792,6 +11811,15 @@ static const struct test_f_f_data round_ - TEST_f_f (round, -72057594037927936.75L, -72057594037927937.0L), - TEST_f_f (round, -72057594037927937.5L, -72057594037927938.0L), - -+ /* Check cases where first double is a exact integer higher than 2^52 and -+ the precision is determined by second long double for IBM long double. */ -+ TEST_f_f (round, 34503599627370498.515625L, 34503599627370499.0L), -+ TEST_f_f (round, -34503599627370498.515625L, -34503599627370499.0L), -+# if LDBL_MANT_DIG >= 106 -+ TEST_f_f (round, 1192568192774434123539907640624.484375L, 1192568192774434123539907640624.0L), -+ TEST_f_f (round, -1192568192774434123539907640624.484375L, -1192568192774434123539907640624.0L), -+# endif -+ - TEST_f_f (round, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L), - TEST_f_f (round, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L), - TEST_f_f (round, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L), -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_ceill.S -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_ceill.S -+++ /dev/null -@@ -1,132 +0,0 @@ --/* s_ceill.S IBM extended format long double version. -- Copyright (C) 2004-2014 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- -- .section ".toc","aw" --.LC0: /* 2**52 */ -- .tc FD_43300000_0[TC],0x4330000000000000 -- -- .section ".text" -- --/* long double [fp1,fp2] ceill (long double x [fp1,fp2]) -- IEEE 1003.1 ceil function. -- -- PowerPC64 long double uses the IBM extended format which is -- represented two 64-floating point double values. The values are -- non-overlapping giving an effective precision of 106 bits. The first -- double contains the high order bits of mantissa and is always ceiled -- to represent a normal ceiling of long double to double. Since the -- long double value is sum of the high and low values, the low double -- normally has the opposite sign to compensate for the this ceiling. -- -- For long double there are two cases: -- 1) |x| < 2**52, all the integer bits are in the high double. -- ceil the high double and set the low double to -0.0. -- 2) |x| >= 2**52, ceiling involves both doubles. -- See the comment before label .L2 for details. -- */ -- --ENTRY (__ceill) -- mffs fp11 /* Save current FPU rounding mode. */ -- lfd fp13,.LC0@toc(2) -- fabs fp0,fp1 -- fabs fp9,fp2 -- fsub fp12,fp13,fp13 /* generate 0.0 */ -- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */ -- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */ -- bnl- cr7,.L2 -- mtfsfi 7,2 /* Set rounding mode toward +inf. */ -- fneg fp2,fp12 -- ble- cr6,.L1 -- fadd fp1,fp1,fp13 /* x+= TWO52; */ -- fsub fp1,fp1,fp13 /* x-= TWO52; */ -- fabs fp1,fp1 /* if (x == 0.0) */ --.L0: -- mtfsf 0x01,fp11 /* restore previous rounding mode. */ -- blr /* x = 0.0; */ --.L1: -- bge- cr6,.L0 /* if (x < 0.0) */ -- fsub fp1,fp1,fp13 /* x-= TWO52; */ -- fadd fp1,fp1,fp13 /* x+= TWO52; */ -- fcmpu cr5,fp1,fp12 /* if (x > 0.0) */ -- mtfsf 0x01,fp11 /* restore previous rounding mode. */ -- fnabs fp1,fp1 /* if (x == 0.0) */ -- blr /* x = -0.0; */ -- --/* The high double is > TWO52 so we need to round the low double and -- perhaps the high double. In this case we have to round the low -- double and handle any adjustment to the high double that may be -- caused by rounding (up). This is complicated by the fact that the -- high double may already be rounded and the low double may have the -- opposite sign to compensate.This gets a bit tricky so we use the -- following algorithm: -- -- tau = floor(x_high/TWO52); -- x0 = x_high - tau; -- x1 = x_low + tau; -- r1 = rint(x1); -- y_high = x0 + r1; -- y_low = x0 - y_high + r1; -- return y; */ --.L2: -- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */ -- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */ -- fcmpu cr5,fp2,fp12 /* if (x_low > 0.0) */ -- bgelr- cr7 /* return x; */ -- beqlr- cr0 -- mtfsfi 7,2 /* Set rounding mode toward +inf. */ -- fdiv fp8,fp1,fp13 /* x_high/TWO52 */ -- -- bng- cr6,.L6 /* if (x > 0.0) */ -- fctidz fp0,fp8 -- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ -- bng cr5,.L4 /* if (x_low > 0.0) */ -- fmr fp3,fp1 -- fmr fp4,fp2 -- b .L5 --.L4: /* if (x_low < 0.0) */ -- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ -- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ --.L5: -- fadd fp5,fp4,fp13 /* r1 = r1 + TWO52; */ -- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */ -- b .L9 --.L6: /* if (x < 0.0) */ -- fctidz fp0,fp8 -- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ -- bnl cr5,.L7 /* if (x_low < 0.0) */ -- fmr fp3,fp1 -- fmr fp4,fp2 -- b .L8 --.L7: /* if (x_low > 0.0) */ -- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ -- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ --.L8: -- fsub fp5,fp4,fp13 /* r1-= TWO52; */ -- fadd fp5,fp5,fp13 /* r1+= TWO52; */ --.L9: -- mtfsf 0x01,fp11 /* restore previous rounding mode. */ -- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */ -- fsub fp2,fp3,fp1 /* y_low = x0 - y_high + r1; */ -- fadd fp2,fp2,fp5 -- blr --END (__ceill) -- --long_double_symbol (libm, __ceill, ceill) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S -+++ /dev/null -@@ -1,113 +0,0 @@ --/* nearbyint long double. -- IBM extended format long double version. -- Copyright (C) 2004-2014 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- -- .section ".toc","aw" --.LC0: /* 2**52 */ -- .tc FD_43300000_0[TC],0x4330000000000000 -- .section ".text" -- --/* long double [fp1,fp2] nearbyintl (long double x [fp1,fp2]) -- IEEE 1003.1 nearbyintl function. nearbyintl is similar to the rintl -- but does raise the "inexact" exception. This implementation is -- based on rintl but explicitly masks the inexact exception on entry -- and clears any pending inexact before restoring the exception mask -- on exit. -- -- PowerPC64 long double uses the IBM extended format which is -- represented two 64-floating point double values. The values are -- non-overlapping giving an effective precision of 106 bits. The first -- double contains the high order bits of mantissa and is always rounded -- to represent a normal rounding of long double to double. Since the -- long double value is sum of the high and low values, the low double -- normally has the opposite sign to compensate for the this rounding. -- -- For long double there are two cases: -- 1) |x| < 2**52, all the integer bits are in the high double. -- floor the high double and set the low double to -0.0. -- 2) |x| >= 2**52, Rounding involves both doubles. -- See the comment before label .L2 for details. -- */ --ENTRY (__nearbyintl) -- mffs fp11 /* Save current FPSCR. */ -- lfd fp13,.LC0@toc(2) -- fabs fp0,fp1 -- mtfsb0 28 /* Disable "inexact" exceptions. */ -- fsub fp12,fp13,fp13 /* generate 0.0 */ -- fabs fp9,fp2 -- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */ -- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */ -- bnl- cr7,.L2 -- fmr fp2,fp12 -- bng- cr6,.L4 -- fadd fp1,fp1,fp13 /* x+= TWO52; */ -- fsub fp1,fp1,fp13 /* x-= TWO52; */ -- b .L9 --.L4: -- bnl- cr6,.L9 /* if (x < 0.0) */ -- fsub fp1,fp13,fp1 /* x = TWO52 - x; */ -- fsub fp0,fp1,fp13 /* x = - (x - TWO52); */ -- fneg fp1,fp0 --.L9: -- mtfsb0 6 /* Clear any pending "inexact" exceptions. */ -- mtfsf 0x01,fp11 /* restore exception mask. */ -- blr -- --/* The high double is > TWO52 so we need to round the low double and -- perhaps the high double. This gets a bit tricky so we use the -- following algorithm: -- -- tau = floor(x_high/TWO52); -- x0 = x_high - tau; -- x1 = x_low + tau; -- r1 = nearbyint(x1); -- y_high = x0 + r1; -- y_low = r1 - tau; -- return y; */ --.L2: -- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */ -- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */ -- bge- cr7,.L9 /* return x; */ -- beq- cr0,.L9 -- fdiv fp8,fp1,fp13 /* x_high/TWO52 */ -- fctidz fp0,fp8 -- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ -- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ -- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ -- -- fcmpu cr6,fp4,fp12 /* if (x1 > 0.0) */ -- bng- cr6,.L8 -- fadd fp5,fp4,fp13 /* r1 = x1 + TWO52; */ -- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */ -- b .L6 --.L8: -- fmr fp5,fp4 -- bge- cr6,.L6 /* if (x1 < 0.0) */ -- fsub fp5,fp13,fp4 /* r1 = TWO52 - x1; */ -- fsub fp0,fp5,fp13 /* r1 = - (r1 - TWO52); */ -- fneg fp5,fp0 --.L6: -- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */ -- fsub fp2,fp5,fp8 /* y_low = r1 - tau; */ -- b .L9 --END (__nearbyintl) -- --long_double_symbol (libm, __nearbyintl, nearbyintl) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_roundl.S -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_roundl.S -+++ /dev/null -@@ -1,132 +0,0 @@ --/* long double round function. -- IBM extended format long double version. -- Copyright (C) 2004-2014 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- -- .section ".toc","aw" --.LC0: /* 2**52 */ -- .tc FD_43300000_0[TC],0x4330000000000000 --.LC1: /* 0.5 */ -- .tc FD_3fe00000_0[TC],0x3fe0000000000000 -- .section ".text" -- --/* long double [fp1,fp2] roundl (long double x [fp1,fp2]) -- IEEE 1003.1 round function. IEEE specifies "round to the nearest -- integer value, rounding halfway cases away from zero, regardless of -- the current rounding mode." However PowerPC Architecture defines -- "Round to Nearest" as "Choose the best approximation. In case of a -- tie, choose the one that is even (least significant bit o).". -- So we can't use the PowerPC "Round to Nearest" mode. Instead we set -- "Round toward Zero" mode and round by adding +-0.5 before rounding -- to the integer value. */ -- --ENTRY (__roundl) -- mffs fp11 /* Save current FPU rounding mode. */ -- lfd fp13,.LC0@toc(2) -- fabs fp0,fp1 -- fabs fp9,fp2 -- fsub fp12,fp13,fp13 /* generate 0.0 */ -- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */ -- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */ -- bnl- cr7,.L2 -- mtfsfi 7,1 /* Set rounding mode toward 0. */ -- lfd fp10,.LC1@toc(2) -- ble- cr6,.L1 -- fneg fp2,fp12 -- fadd fp1,fp1,fp10 /* x+= 0.5; */ -- fadd fp1,fp1,fp13 /* x+= TWO52; */ -- fsub fp1,fp1,fp13 /* x-= TWO52; */ -- fabs fp1,fp1 /* if (x == 0.0) x = 0.0; */ --.L0: -- mtfsf 0x01,fp11 /* restore previous rounding mode. */ -- blr --.L1: -- fsub fp9,fp1,fp10 /* x-= 0.5; */ -- fneg fp2,fp12 -- bge- cr6,.L0 /* if (x < 0.0) */ -- fsub fp1,fp9,fp13 /* x-= TWO52; */ -- fadd fp1,fp1,fp13 /* x+= TWO52; */ -- fnabs fp1,fp1 /* if (x == 0.0) x = -0.0; */ -- mtfsf 0x01,fp11 /* restore previous rounding mode. */ -- blr -- --/* The high double is > TWO52 so we need to round the low double and -- perhaps the high double. In this case we have to round the low -- double and handle any adjustment to the high double that may be -- caused by rounding (up). This is complicated by the fact that the -- high double may already be rounded and the low double may have the -- opposite sign to compensate.This gets a bit tricky so we use the -- following algorithm: -- -- tau = floor(x_high/TWO52); -- x0 = x_high - tau; -- x1 = x_low + tau; -- r1 = rint(x1); -- y_high = x0 + r1; -- y_low = x0 - y_high + r1; -- return y; */ --.L2: -- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */ -- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */ -- fcmpu cr5,fp2,fp12 /* if (x_low > 0.0) */ -- lfd fp10,.LC1@toc(2) -- bgelr- cr7 /* return x; */ -- beqlr- cr0 -- mtfsfi 7,1 /* Set rounding mode toward 0. */ -- fdiv fp8,fp1,fp13 /* x_high/TWO52 */ -- -- bng- cr6,.L6 /* if (x > 0.0) */ -- fctidz fp0,fp8 -- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ -- bng cr5,.L4 /* if (x_low > 0.0) */ -- fmr fp3,fp1 -- fmr fp4,fp2 -- b .L5 --.L4: /* if (x_low < 0.0) */ -- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ -- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ --.L5: -- fadd fp5,fp4,fp10 /* r1 = x1 + 0.5; */ -- fadd fp5,fp5,fp13 /* r1 = r1 + TWO52; */ -- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */ -- b .L9 --.L6: /* if (x < 0.0) */ -- fctidz fp0,fp8 -- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ -- bnl cr5,.L7 /* if (x_low < 0.0) */ -- fmr fp3,fp1 -- fmr fp4,fp2 -- b .L8 --.L7: /* if (x_low > 0.0) */ -- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ -- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ --.L8: -- fsub fp5,fp4,fp10 /* r1 = x1 - 0.5; */ -- fsub fp5,fp5,fp13 /* r1-= TWO52; */ -- fadd fp5,fp5,fp13 /* r1+= TWO52; */ --.L9: -- mtfsf 0x01,fp11 /* restore previous rounding mode. */ -- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */ -- fsub fp2,fp3,fp1 /* y_low = x0 - y_high + r1; */ -- fadd fp2,fp2,fp5 -- blr --END (__roundl) -- --long_double_symbol (libm, __roundl, roundl) diff --git a/ibm93x-redundant-shift-si.patch b/ibm93x-redundant-shift-si.patch index 640c61f..420b7c0 100644 --- a/ibm93x-redundant-shift-si.patch +++ b/ibm93x-redundant-shift-si.patch @@ -110,7 +110,7 @@ Index: glibc-2.19/iconvdata/ibm930.c + curcs = sb; \ } \ \ - if (__builtin_expect (outptr + 1 > outend, 0)) \ + if (__glibc_unlikely (outptr + 1 > outend)) \ @@ -268,7 +269,6 @@ enum *outptr++ = 0x5b; \ else \ @@ -130,7 +130,7 @@ Index: glibc-2.19/iconvdata/ibm933.c + curcs = sb; \ } \ \ - if (__builtin_expect (outptr + 1 > outend, 0)) \ + if (__glibc_unlikely (outptr + 1 > outend)) \ @@ -262,7 +263,6 @@ enum break; \ } \ @@ -150,7 +150,7 @@ Index: glibc-2.19/iconvdata/ibm935.c + curcs = sb; \ } \ \ - if (__builtin_expect (outptr + 1 > outend, 0)) \ + if (__glibc_unlikely (outptr + 1 > outend)) \ @@ -262,7 +263,6 @@ enum break; \ } \ @@ -170,7 +170,7 @@ Index: glibc-2.19/iconvdata/ibm937.c + curcs = sb; \ } \ \ - if (__builtin_expect (outptr + 1 > outend, 0)) \ + if (__glibc_unlikely (outptr + 1 > outend)) \ @@ -262,7 +263,6 @@ enum break; \ } \ @@ -190,7 +190,7 @@ Index: glibc-2.19/iconvdata/ibm939.c + curcs = sb; \ } \ \ - if (__builtin_expect (outptr + 1 > outend, 0)) \ + if (__glibc_unlikely (outptr + 1 > outend)) \ @@ -267,7 +268,6 @@ enum *outptr++ = 0xb2; \ else \ diff --git a/iconv-ibm-sentinel-check.patch b/iconv-ibm-sentinel-check.patch deleted file mode 100644 index 9ff0980..0000000 --- a/iconv-ibm-sentinel-check.patch +++ /dev/null @@ -1,162 +0,0 @@ -2014-08-29 Florian Weimer - - [BZ #17325] - * iconvdata/ibm1364.c (BODY): Fix check for sentinel. - * iconvdata/ibm932.c (BODY): Replace invalid sentinel check with - assert. - * iconvdata/ibm933.c (BODY): Fix check for sentinel. - * iconvdata/ibm935.c (BODY): Likewise. - * iconvdata/ibm937.c (BODY): Likewise. - * iconvdata/ibm939.c (BODY): Likewise. - * iconvdata/ibm943.c (BODY): Replace invalid sentinel check with - assert. - * iconvdata/Makefile (iconv-test.out): Pass module list to test - script. - * iconvdata/run-iconv-test.sh: New test loop for checking for - decoder crashers. - -Index: glibc-2.19/iconvdata/Makefile -=================================================================== ---- glibc-2.19.orig/iconvdata/Makefile -+++ glibc-2.19/iconvdata/Makefile -@@ -302,6 +302,7 @@ $(objpfx)bug-iconv10.out: $(objpfx)gconv - $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) \ - $(common-objdir)/iconv/iconv_prog TESTS -+ iconv_modules="$(modules)" \ - $(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@ - - $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \ -Index: glibc-2.19/iconvdata/ibm1364.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm1364.c -+++ glibc-2.19/iconvdata/ibm1364.c -@@ -220,7 +220,8 @@ enum - ++rp2; \ - \ - uint32_t res; \ -- if (__builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ -+ || __builtin_expect (ch < rp2->start, 0) \ - || (res = DB_TO_UCS4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ - { \ -Index: glibc-2.19/iconvdata/ibm932.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm932.c -+++ glibc-2.19/iconvdata/ibm932.c -@@ -73,11 +73,12 @@ - } \ - \ - ch = (ch * 0x100) + inptr[1]; \ -+ /* ch was less than 0xfd. */ \ -+ assert (ch < 0xfd00); \ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -- || __builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm932db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, '\1') == 0 && ch !=0)) \ - { \ -Index: glibc-2.19/iconvdata/ibm933.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm933.c -+++ glibc-2.19/iconvdata/ibm933.c -@@ -161,7 +161,7 @@ enum - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm933db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -Index: glibc-2.19/iconvdata/ibm935.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm935.c -+++ glibc-2.19/iconvdata/ibm935.c -@@ -161,7 +161,7 @@ enum - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm935db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -Index: glibc-2.19/iconvdata/ibm937.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm937.c -+++ glibc-2.19/iconvdata/ibm937.c -@@ -161,7 +161,7 @@ enum - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm937db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -Index: glibc-2.19/iconvdata/ibm939.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm939.c -+++ glibc-2.19/iconvdata/ibm939.c -@@ -161,7 +161,7 @@ enum - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm939db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -Index: glibc-2.19/iconvdata/ibm943.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm943.c -+++ glibc-2.19/iconvdata/ibm943.c -@@ -74,11 +74,12 @@ - } \ - \ - ch = (ch * 0x100) + inptr[1]; \ -+ /* ch was less than 0xfd. */ \ -+ assert (ch < 0xfd00); \ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -- || __builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm943db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, '\1') == 0 && ch !=0)) \ - { \ -Index: glibc-2.19/iconvdata/run-iconv-test.sh -=================================================================== ---- glibc-2.19.orig/iconvdata/run-iconv-test.sh -+++ glibc-2.19/iconvdata/run-iconv-test.sh -@@ -188,6 +188,24 @@ while read utf8 from filename; do - - done < TESTS2 - -+# Check for crashes in decoders. -+printf '\016\377\377\377\377\377\377\377' > $temp1 -+for from in $iconv_modules ; do -+ echo $ac_n "test decoder $from $ac_c" -+ PROG=`eval echo $ICONV` -+ if $PROG < $temp1 >/dev/null 2>&1 ; then -+ : # fall through -+ else -+ status=$? -+ if test $status -gt 1 ; then -+ echo "/FAILED" -+ failed=1 -+ continue -+ fi -+ fi -+ echo "OK" -+done -+ - exit $failed - # Local Variables: - # mode:shell-script diff --git a/manpages.tar.bz2 b/manpages.tar.bz2 index 7f16f69..87cb48b 100644 --- a/manpages.tar.bz2 +++ b/manpages.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f05635b9beaec8379f31f0f0bc4ce2382b4ba734e97319ae37077e1eaa97f826 -size 11861 +oid sha256:e8715a207e621f2dea9f4d766d55514b9ac4dc91ea9652e7768cea0f950cc88b +size 10824 diff --git a/nextafterl-ibm-ldouble.patch b/nextafterl-ibm-ldouble.patch deleted file mode 100644 index c5d107f..0000000 --- a/nextafterl-ibm-ldouble.patch +++ /dev/null @@ -1,116 +0,0 @@ -2014-04-02 Alan Modra - - [BZ #16739] - * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Correct - output when value is near a power of two. Use int64_t for lx and - remove casts. Use decimal rather than hex exponent constants. - Don't use long double multiplication when double will suffice. - * math/libm-test.inc (nextafter_test_data): Add tests. - -Index: glibc-2.19/math/libm-test.inc -=================================================================== ---- glibc-2.19.orig/math/libm-test.inc -+++ glibc-2.19/math/libm-test.inc -@@ -10528,6 +10528,14 @@ static const struct test_ff_f_data nexta - // XXX Enable once gcc is fixed. - //TEST_ff_f (nextafter, 0x0.00000040000000000000p-16385L, -0.1L, 0x0.0000003ffffffff00000p-16385L), - #endif -+#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106 -+ TEST_ff_f (nextafter, 1.0L, -10.0L, 1.0L-0x1p-106L, NO_EXCEPTION), -+ TEST_ff_f (nextafter, 1.0L, 10.0L, 1.0L+0x1p-105L, NO_EXCEPTION), -+ TEST_ff_f (nextafter, 1.0L-0x1p-106L, 10.0L, 1.0L, NO_EXCEPTION), -+ TEST_ff_f (nextafter, -1.0L, -10.0L, -1.0L-0x1p-105L, NO_EXCEPTION), -+ TEST_ff_f (nextafter, -1.0L, 10.0L, -1.0L+0x1p-106L, NO_EXCEPTION), -+ TEST_ff_f (nextafter, -1.0L+0x1p-106L, -10.0L, -1.0L, NO_EXCEPTION), -+#endif - - /* XXX We need the hexadecimal FP number representation here for further - tests. */ -Index: glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c -=================================================================== ---- glibc-2.19.orig/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c -+++ glibc-2.19/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c -@@ -30,8 +30,7 @@ static char rcsid[] = "$NetBSD: $"; - - long double __nextafterl(long double x, long double y) - { -- int64_t hx,hy,ihx,ihy; -- uint64_t lx; -+ int64_t hx, hy, ihx, ihy, lx; - double xhi, xlo, yhi; - - ldbl_unpack (x, &xhi, &xlo); -@@ -76,19 +75,28 @@ long double __nextafterl(long double x, - u = math_opt_barrier (x); - x -= __LDBL_DENORM_MIN__; - if (ihx < 0x0360000000000000LL -- || (hx > 0 && (int64_t) lx <= 0) -- || (hx < 0 && (int64_t) lx > 1)) { -+ || (hx > 0 && lx <= 0) -+ || (hx < 0 && lx > 1)) { - u = u * u; - math_force_eval (u); /* raise underflow flag */ - } - return x; - } -- if (ihx < 0x06a0000000000000LL) { /* ulp will denormal */ -- INSERT_WORDS64 (yhi, hx & (0x7ffLL<<52)); -- u = yhi; -- u *= 0x1.0000000000000p-105L; -+ /* If the high double is an exact power of two and the low -+ double is the opposite sign, then 1ulp is one less than -+ what we might determine from the high double. Similarly -+ if X is an exact power of two, and positive, because -+ making it a little smaller will result in the exponent -+ decreasing by one and normalisation of the mantissa. */ -+ if ((hx & 0x000fffffffffffffLL) == 0 -+ && ((lx != 0 && (hx ^ lx) < 0) -+ || (lx == 0 && hx >= 0))) -+ ihx -= 1LL << 52; -+ if (ihx < (106LL << 52)) { /* ulp will denormal */ -+ INSERT_WORDS64 (yhi, ihx & (0x7ffLL<<52)); -+ u = yhi * 0x1p-105; - } else { -- INSERT_WORDS64 (yhi, (hx & (0x7ffLL<<52))-(0x069LL<<52)); -+ INSERT_WORDS64 (yhi, (ihx & (0x7ffLL<<52))-(105LL<<52)); - u = yhi; - } - return x - u; -@@ -103,8 +111,8 @@ long double __nextafterl(long double x, - u = math_opt_barrier (x); - x += __LDBL_DENORM_MIN__; - if (ihx < 0x0360000000000000LL -- || (hx > 0 && (int64_t) lx < 0 && lx != 0x8000000000000001LL) -- || (hx < 0 && (int64_t) lx >= 0)) { -+ || (hx > 0 && lx < 0 && lx != 0x8000000000000001LL) -+ || (hx < 0 && lx >= 0)) { - u = u * u; - math_force_eval (u); /* raise underflow flag */ - } -@@ -112,12 +120,21 @@ long double __nextafterl(long double x, - x = -0.0L; - return x; - } -- if (ihx < 0x06a0000000000000LL) { /* ulp will denormal */ -- INSERT_WORDS64 (yhi, hx & (0x7ffLL<<52)); -- u = yhi; -- u *= 0x1.0000000000000p-105L; -+ /* If the high double is an exact power of two and the low -+ double is the opposite sign, then 1ulp is one less than -+ what we might determine from the high double. Similarly -+ if X is an exact power of two, and negative, because -+ making it a little larger will result in the exponent -+ decreasing by one and normalisation of the mantissa. */ -+ if ((hx & 0x000fffffffffffffLL) == 0 -+ && ((lx != 0 && (hx ^ lx) < 0) -+ || (lx == 0 && hx < 0))) -+ ihx -= 1LL << 52; -+ if (ihx < (106LL << 52)) { /* ulp will denormal */ -+ INSERT_WORDS64 (yhi, ihx & (0x7ffLL<<52)); -+ u = yhi * 0x1p-105; - } else { -- INSERT_WORDS64 (yhi, (hx & (0x7ffLL<<52))-(0x069LL<<52)); -+ INSERT_WORDS64 (yhi, (ihx & (0x7ffLL<<52))-(105LL<<52)); - u = yhi; - } - return x + u; diff --git a/noversion.tar.bz2 b/noversion.tar.bz2 index 3cab5fa..070dd48 100644 --- a/noversion.tar.bz2 +++ b/noversion.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:469186780a61f0e0839e3938a674ebe7a46d649dd4de8ba52f1bc821aca42455 -size 1520 +oid sha256:3970c86754545a65f32f6595c3b638b9966e901827f2bc01db552b9cf9cf5bfc +size 1818 diff --git a/nscd-track-startup-failures.patch b/nscd-track-startup-failures.patch deleted file mode 100644 index f531a17..0000000 --- a/nscd-track-startup-failures.patch +++ /dev/null @@ -1,496 +0,0 @@ -From 532a60357ef4c5852cc1bf836cfd9d6f093ef204 Mon Sep 17 00:00:00 2001 -From: Siddhesh Poyarekar -Date: Mon, 3 Mar 2014 22:51:39 +0530 -Subject: [PATCH] nscd: Improved support for tracking startup failure in nscd - service (BZ #16639) - -Currently, the nscd parent process parses commandline options and -configuration, forks on startup and immediately exits with a success. -If the child process encounters some error after this, it goes -undetected and any services started up after it may have to repeatedly -check to make sure that the nscd service did actually start up and is -serving requests. - -To make this process more reliable, I have added a pipe between the -parent and child process, through which the child process sends a -notification to the parent informing it of its status. The parent -waits for this status and once it receives it, exits with the -corresponding exit code. So if the child service sends a success -status (0), the parent exits with a success status. Similarly for -error conditions, the child sends the non-zero status code, which the -parent passes on as the exit code. - -This, along with setting the nscd service type to forking in its -systemd configuration file, allows systemd to be certain that the nscd -service is ready and is accepting connections. - -2014-03-03 Siddhesh Poyarekar - - [BZ #16639] - * nscd/connections.c (nscd_init): Call do_exit. - (start_threads): Call do_exit and notify_parent. - (begin_drop_privileges): Call do_exit. - (finish_drop_privileges): Likewise. - * nscd/selinux.c (preserve_capabilities): Likewise. - (install_real_capabilities): Likewise. - (nscd_selinux_enabled): Likewise. - (avc_create_thread): Likewise. - (avc_alloc_lock): Likewise. - (nscd_avc_init): Likewise. - * nscd/nscd.c (parent_fd): New static variable. - (main): Create a pipe between parent and child processes. - Skip closing parent_fd. - (monitor_child): New function. - (do_exit): Likewise. - (notify_parent): Likewise. - * nscd/nscd.h (notify_parent): Likewise. - (do_exit): Likewise. - -Index: glibc-2.19/nscd/connections.c -=================================================================== ---- glibc-2.19.orig/nscd/connections.c -+++ glibc-2.19/nscd/connections.c -@@ -649,8 +649,8 @@ cannot create read-only descriptor for \ - close (fd); - } - else if (errno == EACCES) -- error (EXIT_FAILURE, 0, _("cannot access '%s'"), -- dbs[cnt].db_filename); -+ do_exit (EXIT_FAILURE, 0, _("cannot access '%s'"), -+ dbs[cnt].db_filename); - } - - if (dbs[cnt].head == NULL) -@@ -699,8 +699,7 @@ cannot create read-only descriptor for \ - { - dbg_log (_("database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"), - dbnames[cnt], dbs[cnt].db_filename); -- // XXX Correct way to terminate? -- exit (1); -+ do_exit (1, 0, NULL); - } - - if (dbs[cnt].persistent) -@@ -867,7 +866,7 @@ cannot set socket to close on exec: %s; - if (sock < 0) - { - dbg_log (_("cannot open socket: %s"), strerror (errno)); -- exit (errno == EACCES ? 4 : 1); -+ do_exit (errno == EACCES ? 4 : 1, 0, NULL); - } - /* Bind a name to the socket. */ - struct sockaddr_un sock_addr; -@@ -876,7 +875,7 @@ cannot set socket to close on exec: %s; - if (bind (sock, (struct sockaddr *) &sock_addr, sizeof (sock_addr)) < 0) - { - dbg_log ("%s: %s", _PATH_NSCDSOCKET, strerror (errno)); -- exit (errno == EACCES ? 4 : 1); -+ do_exit (errno == EACCES ? 4 : 1, 0, NULL); - } - - #ifndef __ASSUME_SOCK_CLOEXEC -@@ -888,7 +887,7 @@ cannot set socket to close on exec: %s; - { - dbg_log (_("cannot change socket to nonblocking mode: %s"), - strerror (errno)); -- exit (1); -+ do_exit (1, 0, NULL); - } - - /* The descriptor needs to be closed on exec. */ -@@ -896,7 +895,7 @@ cannot set socket to close on exec: %s; - { - dbg_log (_("cannot set socket to close on exec: %s"), - strerror (errno)); -- exit (1); -+ do_exit (1, 0, NULL); - } - } - #endif -@@ -909,7 +908,7 @@ cannot set socket to close on exec: %s; - { - dbg_log (_("cannot enable socket to accept connections: %s"), - strerror (errno)); -- exit (1); -+ do_exit (1, 0, NULL); - } - - #ifdef HAVE_NETLINK -@@ -953,7 +952,7 @@ cannot set socket to close on exec: %s; - dbg_log (_("\ - cannot change socket to nonblocking mode: %s"), - strerror (errno)); -- exit (1); -+ do_exit (1, 0, NULL); - } - - /* The descriptor needs to be closed on exec. */ -@@ -962,7 +961,7 @@ cannot change socket to nonblocking mode - { - dbg_log (_("cannot set socket to close on exec: %s"), - strerror (errno)); -- exit (1); -+ do_exit (1, 0, NULL); - } - } - # endif -@@ -2392,7 +2391,7 @@ start_threads (void) - if (pthread_cond_init (&dbs[i].prune_cond, &condattr) != 0) - { - dbg_log (_("could not initialize conditional variable")); -- exit (1); -+ do_exit (1, 0, NULL); - } - - pthread_t th; -@@ -2400,7 +2399,7 @@ start_threads (void) - && pthread_create (&th, &attr, nscd_run_prune, (void *) i) != 0) - { - dbg_log (_("could not start clean-up thread; terminating")); -- exit (1); -+ do_exit (1, 0, NULL); - } - } - -@@ -2414,13 +2413,17 @@ start_threads (void) - if (i == 0) - { - dbg_log (_("could not start any worker thread; terminating")); -- exit (1); -+ do_exit (1, 0, NULL); - } - - break; - } - } - -+ /* Now it is safe to let the parent know that we're doing fine and it can -+ exit. */ -+ notify_parent (0); -+ - /* Determine how much room for descriptors we should initially - allocate. This might need to change later if we cap the number - with MAXCONN. */ -@@ -2465,8 +2468,8 @@ begin_drop_privileges (void) - if (pwd == NULL) - { - dbg_log (_("Failed to run nscd as user '%s'"), server_user); -- error (EXIT_FAILURE, 0, _("Failed to run nscd as user '%s'"), -- server_user); -+ do_exit (EXIT_FAILURE, 0, -+ _("Failed to run nscd as user '%s'"), server_user); - } - - server_uid = pwd->pw_uid; -@@ -2483,7 +2486,8 @@ begin_drop_privileges (void) - { - /* This really must never happen. */ - dbg_log (_("Failed to run nscd as user '%s'"), server_user); -- error (EXIT_FAILURE, errno, _("initial getgrouplist failed")); -+ do_exit (EXIT_FAILURE, errno, -+ _("initial getgrouplist failed")); - } - - server_groups = (gid_t *) xmalloc (server_ngroups * sizeof (gid_t)); -@@ -2492,7 +2496,7 @@ begin_drop_privileges (void) - == -1) - { - dbg_log (_("Failed to run nscd as user '%s'"), server_user); -- error (EXIT_FAILURE, errno, _("getgrouplist failed")); -+ do_exit (EXIT_FAILURE, errno, _("getgrouplist failed")); - } - } - -@@ -2510,7 +2514,7 @@ finish_drop_privileges (void) - if (setgroups (server_ngroups, server_groups) == -1) - { - dbg_log (_("Failed to run nscd as user '%s'"), server_user); -- error (EXIT_FAILURE, errno, _("setgroups failed")); -+ do_exit (EXIT_FAILURE, errno, _("setgroups failed")); - } - - int res; -@@ -2521,8 +2525,7 @@ finish_drop_privileges (void) - if (res == -1) - { - dbg_log (_("Failed to run nscd as user '%s'"), server_user); -- perror ("setgid"); -- exit (4); -+ do_exit (4, errno, "setgid"); - } - - if (paranoia) -@@ -2532,8 +2535,7 @@ finish_drop_privileges (void) - if (res == -1) - { - dbg_log (_("Failed to run nscd as user '%s'"), server_user); -- perror ("setuid"); -- exit (4); -+ do_exit (4, errno, "setuid"); - } - - #if defined HAVE_LIBAUDIT && defined HAVE_LIBCAP -Index: glibc-2.19/nscd/nscd.c -=================================================================== ---- glibc-2.19.orig/nscd/nscd.c -+++ glibc-2.19/nscd/nscd.c -@@ -39,6 +39,8 @@ - #include - #include - #include -+#include -+#include - - #include "dbg_log.h" - #include "nscd.h" -@@ -101,6 +103,7 @@ gid_t old_gid; - - static int check_pid (const char *file); - static int write_pid (const char *file); -+static int monitor_child (int fd); - - /* Name and version of program. */ - static void print_version (FILE *stream, struct argp_state *state); -@@ -142,6 +145,7 @@ static struct argp argp = - - /* True if only statistics are requested. */ - static bool get_stats; -+static int parent_fd = -1; - - int - main (int argc, char **argv) -@@ -196,11 +200,27 @@ main (int argc, char **argv) - /* Behave like a daemon. */ - if (run_mode == RUN_DAEMONIZE) - { -+ int fd[2]; -+ -+ if (pipe (fd) != 0) -+ error (EXIT_FAILURE, errno, -+ _("cannot create a pipe to talk to the child")); -+ - pid = fork (); - if (pid == -1) - error (EXIT_FAILURE, errno, _("cannot fork")); - if (pid != 0) -- exit (0); -+ { -+ /* The parent only reads from the child. */ -+ close (fd[1]); -+ exit (monitor_child (fd[0])); -+ } -+ else -+ { -+ /* The child only writes to the parent. */ -+ close (fd[0]); -+ parent_fd = fd[1]; -+ } - } - - int nullfd = open (_PATH_DEVNULL, O_RDWR); -@@ -242,7 +262,8 @@ main (int argc, char **argv) - char *endp; - long int fdn = strtol (dirent->d_name, &endp, 10); - -- if (*endp == '\0' && fdn != dfdn && fdn >= min_close_fd) -+ if (*endp == '\0' && fdn != dfdn && fdn >= min_close_fd -+ && fdn != parent_fd) - close ((int) fdn); - } - -@@ -250,13 +271,14 @@ main (int argc, char **argv) - } - else - for (i = min_close_fd; i < getdtablesize (); i++) -- close (i); -+ if (i != parent_fd) -+ close (i); - - setsid (); - - if (chdir ("/") != 0) -- error (EXIT_FAILURE, errno, -- _("cannot change current working directory to \"/\"")); -+ do_exit (EXIT_FAILURE, errno, -+ _("cannot change current working directory to \"/\"")); - - openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON); - -@@ -592,3 +614,79 @@ write_pid (const char *file) - - return result; - } -+ -+static int -+monitor_child (int fd) -+{ -+ int child_ret = 0; -+ int ret = read (fd, &child_ret, sizeof (child_ret)); -+ -+ /* The child terminated with an error, either via exit or some other abnormal -+ method, like a segfault. */ -+ if (ret <= 0 || child_ret != 0) -+ { -+ int err = wait (&child_ret); -+ -+ if (err < 0) -+ { -+ fprintf (stderr, _("wait failed")); -+ return 1; -+ } -+ -+ fprintf (stderr, _("child exited with status %d"), -+ WEXITSTATUS (child_ret)); -+ if (WIFSIGNALED (child_ret)) -+ fprintf (stderr, _(", terminated by signal %d.\n"), -+ WTERMSIG (child_ret)); -+ else -+ fprintf (stderr, ".\n"); -+ } -+ -+ /* We have the child status, so exit with that code. */ -+ close (fd); -+ -+ return child_ret; -+} -+ -+void -+do_exit (int child_ret, int errnum, const char *format, ...) -+{ -+ if (parent_fd != -1) -+ { -+ int ret = write (parent_fd, &child_ret, sizeof (child_ret)); -+ assert (ret == sizeof (child_ret)); -+ close (parent_fd); -+ } -+ -+ if (format != NULL) -+ { -+ /* Emulate error() since we don't have a va_list variant for it. */ -+ va_list argp; -+ -+ fflush (stdout); -+ -+ fprintf (stderr, "%s: ", program_invocation_name); -+ -+ va_start (argp, format); -+ vfprintf (stderr, format, argp); -+ va_end (argp); -+ -+ fprintf (stderr, ": %s\n", strerror (errnum)); -+ fflush (stderr); -+ } -+ -+ /* Finally, exit. */ -+ exit (child_ret); -+} -+ -+void -+notify_parent (int child_ret) -+{ -+ if (parent_fd == -1) -+ return; -+ -+ int ret = write (parent_fd, &child_ret, sizeof (child_ret)); -+ assert (ret == sizeof (child_ret)); -+ close (parent_fd); -+ parent_fd = -1; -+} -Index: glibc-2.19/nscd/nscd.h -=================================================================== ---- glibc-2.19.orig/nscd/nscd.h -+++ glibc-2.19/nscd/nscd.h -@@ -205,6 +205,8 @@ extern gid_t old_gid; - /* nscd.c */ - extern void termination_handler (int signum) __attribute__ ((__noreturn__)); - extern int nscd_open_socket (void); -+void notify_parent (int child_ret); -+void do_exit (int child_ret, int errnum, const char *format, ...); - - /* connections.c */ - extern void nscd_init (void); -Index: glibc-2.19/nscd/selinux.c -=================================================================== ---- glibc-2.19.orig/nscd/selinux.c -+++ glibc-2.19/nscd/selinux.c -@@ -179,7 +179,7 @@ preserve_capabilities (void) - if (prctl (PR_SET_KEEPCAPS, 1) == -1) - { - dbg_log (_("Failed to set keep-capabilities")); -- error (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); -+ do_exit (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); - /* NOTREACHED */ - } - -@@ -194,7 +194,7 @@ preserve_capabilities (void) - cap_free (tmp_caps); - - dbg_log (_("Failed to initialize drop of capabilities")); -- error (EXIT_FAILURE, 0, _("cap_init failed")); -+ do_exit (EXIT_FAILURE, 0, _("cap_init failed")); - } - - /* There is no reason why these should not work. */ -@@ -216,7 +216,7 @@ preserve_capabilities (void) - { - cap_free (new_caps); - dbg_log (_("Failed to drop capabilities")); -- error (EXIT_FAILURE, 0, _("cap_set_proc failed")); -+ do_exit (EXIT_FAILURE, 0, _("cap_set_proc failed")); - } - - return new_caps; -@@ -233,7 +233,7 @@ install_real_capabilities (cap_t new_cap - { - cap_free (new_caps); - dbg_log (_("Failed to drop capabilities")); -- error (EXIT_FAILURE, 0, _("cap_set_proc failed")); -+ do_exit (EXIT_FAILURE, 0, _("cap_set_proc failed")); - /* NOTREACHED */ - } - -@@ -242,7 +242,7 @@ install_real_capabilities (cap_t new_cap - if (prctl (PR_SET_KEEPCAPS, 0) == -1) - { - dbg_log (_("Failed to unset keep-capabilities")); -- error (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); -+ do_exit (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed")); - /* NOTREACHED */ - } - } -@@ -258,7 +258,7 @@ nscd_selinux_enabled (int *selinux_enabl - if (*selinux_enabled < 0) - { - dbg_log (_("Failed to determine if kernel supports SELinux")); -- exit (EXIT_FAILURE); -+ do_exit (EXIT_FAILURE, 0, NULL); - } - } - -@@ -272,7 +272,7 @@ avc_create_thread (void (*run) (void)) - rc = - pthread_create (&avc_notify_thread, NULL, (void *(*) (void *)) run, NULL); - if (rc != 0) -- error (EXIT_FAILURE, rc, _("Failed to start AVC thread")); -+ do_exit (EXIT_FAILURE, rc, _("Failed to start AVC thread")); - - return &avc_notify_thread; - } -@@ -294,7 +294,7 @@ avc_alloc_lock (void) - - avc_mutex = malloc (sizeof (pthread_mutex_t)); - if (avc_mutex == NULL) -- error (EXIT_FAILURE, errno, _("Failed to create AVC lock")); -+ do_exit (EXIT_FAILURE, errno, _("Failed to create AVC lock")); - pthread_mutex_init (avc_mutex, NULL); - - return avc_mutex; -@@ -334,7 +334,7 @@ nscd_avc_init (void) - avc_entry_ref_init (&aeref); - - if (avc_init ("avc", NULL, &log_cb, &thread_cb, &lock_cb) < 0) -- error (EXIT_FAILURE, errno, _("Failed to start AVC")); -+ do_exit (EXIT_FAILURE, errno, _("Failed to start AVC")); - else - dbg_log (_("Access Vector Cache (AVC) started")); - #ifdef HAVE_LIBAUDIT diff --git a/nss-dns-memleak.patch b/nss-dns-memleak.patch deleted file mode 100644 index c27b074..0000000 --- a/nss-dns-memleak.patch +++ /dev/null @@ -1,461 +0,0 @@ -2014-02-18 Andreas Schwab - - [BZ #16574] - * resolv/res_send.c (send_vc): Add parameter ansp2_malloced. - Store non-zero if the second buffer was newly allocated. - (send_dg): Likewise. - (__libc_res_nsend): Add parameter ansp2_malloced and pass it down - to send_vc and send_dg. - (res_nsend): Pass NULL for ansp2_malloced. - * resolv/res_query.c (__libc_res_nquery): Add parameter - answerp2_malloced and pass it down to __libc_res_nsend. - (res_nquery): Pass additional NULL to __libc_res_nquery. - (__libc_res_nsearch): Add parameter answerp2_malloced and pass it - down to __libc_res_nquery and __libc_res_nquerydomain. Deallocate - second answer buffer if answerp2_malloced was set. - (res_nsearch): Pass additional NULL to __libc_res_nsearch. - (__libc_res_nquerydomain): Add parameter - answerp2_malloced and pass it down to __libc_res_nquery. - (res_nquerydomain): Pass additional NULL to - __libc_res_nquerydomain. - * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Pass - additional NULL to __libc_res_nsend and __libc_res_nquery. - * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Pass - additional NULL to __libc_res_nsearch. - (_nss_dns_gethostbyname4_r): Revert last change. Use new - parameter of __libc_res_nsearch to check for separately allocated - second buffer. - (_nss_dns_gethostbyaddr2_r): Pass additional NULL to - __libc_res_nquery. - * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Pass - additional NULL to __libc_res_nquery. - * resolv/gethnamaddr.c (gethostbyname2): Pass additional NULL to - __libc_res_nsearch. - (gethostbyaddr): Pass additional NULL to __libc_res_nquery. - * include/resolv.h: Update prototypes of __libc_res_nquery, - __libc_res_nsearch, __libc_res_nsend. - -2014-02-13 Andreas Schwab - - [BZ #16574] - * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname4_r): Free the - second answer buffer if it was separately allocated. - -Index: glibc-2.19/include/resolv.h -=================================================================== ---- glibc-2.19.orig/include/resolv.h -+++ glibc-2.19/include/resolv.h -@@ -48,11 +48,11 @@ libc_hidden_proto (__res_randomid) - libc_hidden_proto (__res_state) - - int __libc_res_nquery (res_state, const char *, int, int, u_char *, int, -- u_char **, u_char **, int *, int *); -+ u_char **, u_char **, int *, int *, int *); - int __libc_res_nsearch (res_state, const char *, int, int, u_char *, int, -- u_char **, u_char **, int *, int *); -+ u_char **, u_char **, int *, int *, int *); - int __libc_res_nsend (res_state, const u_char *, int, const u_char *, int, -- u_char *, int, u_char **, u_char **, int *, int *) -+ u_char *, int, u_char **, u_char **, int *, int *, int *) - attribute_hidden; - - libresolv_hidden_proto (_sethtent) -Index: glibc-2.19/resolv/gethnamaddr.c -=================================================================== ---- glibc-2.19.orig/resolv/gethnamaddr.c -+++ glibc-2.19/resolv/gethnamaddr.c -@@ -621,7 +621,7 @@ gethostbyname2(name, af) - buf.buf = origbuf = (querybuf *) alloca (1024); - - if ((n = __libc_res_nsearch(&_res, name, C_IN, type, buf.buf->buf, 1024, -- &buf.ptr, NULL, NULL, NULL)) < 0) { -+ &buf.ptr, NULL, NULL, NULL, NULL)) < 0) { - if (buf.buf != origbuf) - free (buf.buf); - Dprintf("res_nsearch failed (%d)\n", n); -@@ -716,12 +716,12 @@ gethostbyaddr(addr, len, af) - buf.buf = orig_buf = (querybuf *) alloca (1024); - - n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, 1024, -- &buf.ptr, NULL, NULL, NULL); -+ &buf.ptr, NULL, NULL, NULL, NULL); - if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) { - strcpy(qp, "ip6.int"); - n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, - buf.buf != orig_buf ? MAXPACKET : 1024, -- &buf.ptr, NULL, NULL, NULL); -+ &buf.ptr, NULL, NULL, NULL, NULL); - } - if (n < 0) { - if (buf.buf != orig_buf) -Index: glibc-2.19/resolv/nss_dns/dns-canon.c -=================================================================== ---- glibc-2.19.orig/resolv/nss_dns/dns-canon.c -+++ glibc-2.19/resolv/nss_dns/dns-canon.c -@@ -62,7 +62,7 @@ _nss_dns_getcanonname_r (const char *nam - { - int r = __libc_res_nquery (&_res, name, ns_c_in, qtypes[i], - buf, sizeof (buf), &ansp.ptr, NULL, NULL, -- NULL); -+ NULL, NULL); - if (r > 0) - { - /* We need to decode the response. Just one question record. -Index: glibc-2.19/resolv/nss_dns/dns-host.c -=================================================================== ---- glibc-2.19.orig/resolv/nss_dns/dns-host.c -+++ glibc-2.19/resolv/nss_dns/dns-host.c -@@ -190,7 +190,7 @@ _nss_dns_gethostbyname3_r (const char *n - host_buffer.buf = orig_host_buffer = (querybuf *) alloca (1024); - - n = __libc_res_nsearch (&_res, name, C_IN, type, host_buffer.buf->buf, -- 1024, &host_buffer.ptr, NULL, NULL, NULL); -+ 1024, &host_buffer.ptr, NULL, NULL, NULL, NULL); - if (n < 0) - { - switch (errno) -@@ -225,7 +225,7 @@ _nss_dns_gethostbyname3_r (const char *n - n = __libc_res_nsearch (&_res, name, C_IN, T_A, host_buffer.buf->buf, - host_buffer.buf != orig_host_buffer - ? MAXPACKET : 1024, &host_buffer.ptr, -- NULL, NULL, NULL); -+ NULL, NULL, NULL, NULL); - - if (n < 0) - { -@@ -308,12 +308,13 @@ _nss_dns_gethostbyname4_r (const char *n - u_char *ans2p = NULL; - int nans2p = 0; - int resplen2 = 0; -+ int ans2p_malloced = 0; - - int olderr = errno; - enum nss_status status; - int n = __libc_res_nsearch (&_res, name, C_IN, T_UNSPEC, - host_buffer.buf->buf, 2048, &host_buffer.ptr, -- &ans2p, &nans2p, &resplen2); -+ &ans2p, &nans2p, &resplen2, &ans2p_malloced); - if (n < 0) - { - switch (errno) -@@ -352,6 +353,10 @@ _nss_dns_gethostbyname4_r (const char *n - resplen2, name, pat, buffer, buflen, - errnop, herrnop, ttlp); - -+ /* Check whether ans2p was separately allocated. */ -+ if (ans2p_malloced) -+ free (ans2p); -+ - if (host_buffer.buf != orig_host_buffer) - free (host_buffer.buf); - -@@ -460,7 +465,7 @@ _nss_dns_gethostbyaddr2_r (const void *a - strcpy (qp, "].ip6.arpa"); - n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, - host_buffer.buf->buf, 1024, &host_buffer.ptr, -- NULL, NULL, NULL); -+ NULL, NULL, NULL, NULL); - if (n >= 0) - goto got_it_already; - } -@@ -481,14 +486,14 @@ _nss_dns_gethostbyaddr2_r (const void *a - } - - n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf, -- 1024, &host_buffer.ptr, NULL, NULL, NULL); -+ 1024, &host_buffer.ptr, NULL, NULL, NULL, NULL); - if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) - { - strcpy (qp, "ip6.int"); - n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf, - host_buffer.buf != orig_host_buffer - ? MAXPACKET : 1024, &host_buffer.ptr, -- NULL, NULL, NULL); -+ NULL, NULL, NULL, NULL); - } - if (n < 0) - { -Index: glibc-2.19/resolv/nss_dns/dns-network.c -=================================================================== ---- glibc-2.19.orig/resolv/nss_dns/dns-network.c -+++ glibc-2.19/resolv/nss_dns/dns-network.c -@@ -129,7 +129,7 @@ _nss_dns_getnetbyname_r (const char *nam - net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); - - anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, -- 1024, &net_buffer.ptr, NULL, NULL, NULL); -+ 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); - if (anslen < 0) - { - /* Nothing found. */ -@@ -205,7 +205,7 @@ _nss_dns_getnetbyaddr_r (uint32_t net, i - net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); - - anslen = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, -- 1024, &net_buffer.ptr, NULL, NULL, NULL); -+ 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); - if (anslen < 0) - { - /* Nothing found. */ -Index: glibc-2.19/resolv/res_query.c -=================================================================== ---- glibc-2.19.orig/resolv/res_query.c -+++ glibc-2.19/resolv/res_query.c -@@ -98,7 +98,7 @@ static int - __libc_res_nquerydomain(res_state statp, const char *name, const char *domain, - int class, int type, u_char *answer, int anslen, - u_char **answerp, u_char **answerp2, int *nanswerp2, -- int *resplen2); -+ int *resplen2, int *answerp2_malloced); - - /* - * Formulate a normal query, send, and await answer. -@@ -119,7 +119,8 @@ __libc_res_nquery(res_state statp, - u_char **answerp, /* if buffer needs to be enlarged */ - u_char **answerp2, - int *nanswerp2, -- int *resplen2) -+ int *resplen2, -+ int *answerp2_malloced) - { - HEADER *hp = (HEADER *) answer; - HEADER *hp2; -@@ -224,7 +225,8 @@ __libc_res_nquery(res_state statp, - } - assert (answerp == NULL || (void *) *answerp == (void *) answer); - n = __libc_res_nsend(statp, query1, nquery1, query2, nquery2, answer, -- anslen, answerp, answerp2, nanswerp2, resplen2); -+ anslen, answerp, answerp2, nanswerp2, resplen2, -+ answerp2_malloced); - if (use_malloc) - free (buf); - if (n < 0) { -@@ -316,7 +318,7 @@ res_nquery(res_state statp, - int anslen) /* size of answer buffer */ - { - return __libc_res_nquery(statp, name, class, type, answer, anslen, -- NULL, NULL, NULL, NULL); -+ NULL, NULL, NULL, NULL, NULL); - } - libresolv_hidden_def (res_nquery) - -@@ -335,7 +337,8 @@ __libc_res_nsearch(res_state statp, - u_char **answerp, - u_char **answerp2, - int *nanswerp2, -- int *resplen2) -+ int *resplen2, -+ int *answerp2_malloced) - { - const char *cp, * const *domain; - HEADER *hp = (HEADER *) answer; -@@ -360,7 +363,7 @@ __libc_res_nsearch(res_state statp, - if (!dots && (cp = res_hostalias(statp, name, tmp, sizeof tmp))!= NULL) - return (__libc_res_nquery(statp, cp, class, type, answer, - anslen, answerp, answerp2, -- nanswerp2, resplen2)); -+ nanswerp2, resplen2, answerp2_malloced)); - - #ifdef DEBUG - if (statp->options & RES_DEBUG) -@@ -377,7 +380,8 @@ __libc_res_nsearch(res_state statp, - if (dots >= statp->ndots || trailing_dot) { - ret = __libc_res_nquerydomain(statp, name, NULL, class, type, - answer, anslen, answerp, -- answerp2, nanswerp2, resplen2); -+ answerp2, nanswerp2, resplen2, -+ answerp2_malloced); - if (ret > 0 || trailing_dot) - return (ret); - saved_herrno = h_errno; -@@ -386,11 +390,11 @@ __libc_res_nsearch(res_state statp, - answer = *answerp; - anslen = MAXPACKET; - } -- if (answerp2 -- && (*answerp2 < answer || *answerp2 >= answer + anslen)) -+ if (answerp2 && *answerp2_malloced) - { - free (*answerp2); - *answerp2 = NULL; -+ *answerp2_malloced = 0; - } - } - -@@ -417,7 +421,7 @@ __libc_res_nsearch(res_state statp, - class, type, - answer, anslen, answerp, - answerp2, nanswerp2, -- resplen2); -+ resplen2, answerp2_malloced); - if (ret > 0) - return (ret); - -@@ -425,12 +429,11 @@ __libc_res_nsearch(res_state statp, - answer = *answerp; - anslen = MAXPACKET; - } -- if (answerp2 -- && (*answerp2 < answer -- || *answerp2 >= answer + anslen)) -+ if (answerp2 && *answerp2_malloced) - { - free (*answerp2); - *answerp2 = NULL; -+ *answerp2_malloced = 0; - } - - /* -@@ -486,7 +489,8 @@ __libc_res_nsearch(res_state statp, - && !(tried_as_is || root_on_list)) { - ret = __libc_res_nquerydomain(statp, name, NULL, class, type, - answer, anslen, answerp, -- answerp2, nanswerp2, resplen2); -+ answerp2, nanswerp2, resplen2, -+ answerp2_malloced); - if (ret > 0) - return (ret); - } -@@ -498,10 +502,11 @@ __libc_res_nsearch(res_state statp, - * else send back meaningless H_ERRNO, that being the one from - * the last DNSRCH we did. - */ -- if (answerp2 && (*answerp2 < answer || *answerp2 >= answer + anslen)) -+ if (answerp2 && *answerp2_malloced) - { - free (*answerp2); - *answerp2 = NULL; -+ *answerp2_malloced = 0; - } - if (saved_herrno != -1) - RES_SET_H_ERRNO(statp, saved_herrno); -@@ -521,7 +526,7 @@ res_nsearch(res_state statp, - int anslen) /* size of answer */ - { - return __libc_res_nsearch(statp, name, class, type, answer, -- anslen, NULL, NULL, NULL, NULL); -+ anslen, NULL, NULL, NULL, NULL, NULL); - } - libresolv_hidden_def (res_nsearch) - -@@ -539,7 +544,8 @@ __libc_res_nquerydomain(res_state statp, - u_char **answerp, - u_char **answerp2, - int *nanswerp2, -- int *resplen2) -+ int *resplen2, -+ int *answerp2_malloced) - { - char nbuf[MAXDNAME]; - const char *longname = nbuf; -@@ -581,7 +587,7 @@ __libc_res_nquerydomain(res_state statp, - } - return (__libc_res_nquery(statp, longname, class, type, answer, - anslen, answerp, answerp2, nanswerp2, -- resplen2)); -+ resplen2, answerp2_malloced)); - } - - int -@@ -593,7 +599,8 @@ res_nquerydomain(res_state statp, - int anslen) /* size of answer */ - { - return __libc_res_nquerydomain(statp, name, domain, class, type, -- answer, anslen, NULL, NULL, NULL, NULL); -+ answer, anslen, NULL, NULL, NULL, NULL, -+ NULL); - } - libresolv_hidden_def (res_nquerydomain) - -Index: glibc-2.19/resolv/res_send.c -=================================================================== ---- glibc-2.19.orig/resolv/res_send.c -+++ glibc-2.19/resolv/res_send.c -@@ -186,12 +186,12 @@ evNowTime(struct timespec *res) { - static int send_vc(res_state, const u_char *, int, - const u_char *, int, - u_char **, int *, int *, int, u_char **, -- u_char **, int *, int *); -+ u_char **, int *, int *, int *); - static int send_dg(res_state, const u_char *, int, - const u_char *, int, - u_char **, int *, int *, int, - int *, int *, u_char **, -- u_char **, int *, int *); -+ u_char **, int *, int *, int *); - #ifdef DEBUG - static void Aerror(const res_state, FILE *, const char *, int, - const struct sockaddr *); -@@ -343,7 +343,7 @@ int - __libc_res_nsend(res_state statp, const u_char *buf, int buflen, - const u_char *buf2, int buflen2, - u_char *ans, int anssiz, u_char **ansp, u_char **ansp2, -- int *nansp2, int *resplen2) -+ int *nansp2, int *resplen2, int *ansp2_malloced) - { - int gotsomewhere, terrno, try, v_circuit, resplen, ns, n; - -@@ -546,7 +546,8 @@ __libc_res_nsend(res_state statp, const - try = statp->retry; - n = send_vc(statp, buf, buflen, buf2, buflen2, - &ans, &anssiz, &terrno, -- ns, ansp, ansp2, nansp2, resplen2); -+ ns, ansp, ansp2, nansp2, resplen2, -+ ansp2_malloced); - if (n < 0) - return (-1); - if (n == 0 && (buf2 == NULL || *resplen2 == 0)) -@@ -556,7 +557,7 @@ __libc_res_nsend(res_state statp, const - n = send_dg(statp, buf, buflen, buf2, buflen2, - &ans, &anssiz, &terrno, - ns, &v_circuit, &gotsomewhere, ansp, -- ansp2, nansp2, resplen2); -+ ansp2, nansp2, resplen2, ansp2_malloced); - if (n < 0) - return (-1); - if (n == 0 && (buf2 == NULL || *resplen2 == 0)) -@@ -646,7 +647,7 @@ res_nsend(res_state statp, - const u_char *buf, int buflen, u_char *ans, int anssiz) - { - return __libc_res_nsend(statp, buf, buflen, NULL, 0, ans, anssiz, -- NULL, NULL, NULL, NULL); -+ NULL, NULL, NULL, NULL, NULL); - } - libresolv_hidden_def (res_nsend) - -@@ -657,7 +658,7 @@ send_vc(res_state statp, - const u_char *buf, int buflen, const u_char *buf2, int buflen2, - u_char **ansp, int *anssizp, - int *terrno, int ns, u_char **anscp, u_char **ansp2, int *anssizp2, -- int *resplen2) -+ int *resplen2, int *ansp2_malloced) - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -@@ -823,6 +824,8 @@ send_vc(res_state statp, - } - *thisanssizp = MAXPACKET; - *thisansp = newp; -+ if (thisansp == ansp2) -+ *ansp2_malloced = 1; - anhp = (HEADER *) newp; - len = rlen; - } else { -@@ -992,7 +995,7 @@ send_dg(res_state statp, - const u_char *buf, int buflen, const u_char *buf2, int buflen2, - u_char **ansp, int *anssizp, - int *terrno, int ns, int *v_circuit, int *gotsomewhere, u_char **anscp, -- u_char **ansp2, int *anssizp2, int *resplen2) -+ u_char **ansp2, int *anssizp2, int *resplen2, int *ansp2_malloced) - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -@@ -1238,6 +1241,8 @@ send_dg(res_state statp, - if (newp != NULL) { - *anssizp = MAXPACKET; - *thisansp = ans = newp; -+ if (thisansp == ansp2) -+ *ansp2_malloced = 1; - } - } - HEADER *anhp = (HEADER *) *thisansp; diff --git a/nss-files-long-lines.patch b/nss-files-long-lines.patch deleted file mode 100644 index ad1e169..0000000 --- a/nss-files-long-lines.patch +++ /dev/null @@ -1,24 +0,0 @@ -2014-06-23 Andreas Schwab - - [BZ #17079] - * nss/nss_files/files-XXX.c (get_contents): Store overflow marker - before reading the next line. - -Index: glibc-2.19/nss/nss_files/files-XXX.c -=================================================================== ---- glibc-2.19.orig/nss/nss_files/files-XXX.c -+++ glibc-2.19/nss/nss_files/files-XXX.c -@@ -198,10 +198,12 @@ get_contents (char *linebuf, size_t len, - { - int curlen = ((remaining_len > (size_t) INT_MAX) ? INT_MAX - : remaining_len); -- char *p = fgets_unlocked (curbuf, curlen, stream); - -+ /* Terminate the line so that we can test for overflow. */ - ((unsigned char *) curbuf)[curlen - 1] = 0xff; - -+ char *p = fgets_unlocked (curbuf, curlen, stream); -+ - /* EOF or read error. */ - if (p == NULL) - return gcr_error; diff --git a/nss-nis-stack-use.patch b/nss-nis-stack-use.patch deleted file mode 100644 index 6d0309f..0000000 --- a/nss-nis-stack-use.patch +++ /dev/null @@ -1,111 +0,0 @@ -2014-05-12 Andreas Schwab - - [BZ #16932] - * nis/nss_nis/nis-hosts.c (internal_gethostbyname2_r) - (_nss_nis_gethostbyname4_r): Return error if item length is larger - than maximum RPC packet size. - * nis/nss_nis/nis-initgroups.c (initgroups_netid): Likewise. - * nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Likewise. - * nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r) - (_nss_nis_getservbyport_r): Likewise. - -Index: glibc-2.19/nis/nss_nis/nis-hosts.c -=================================================================== ---- glibc-2.19.orig/nis/nss_nis/nis-hosts.c -+++ glibc-2.19/nis/nss_nis/nis-hosts.c -@@ -270,6 +270,13 @@ internal_gethostbyname2_r (const char *n - - /* Convert name to lowercase. */ - size_t namlen = strlen (name); -+ /* Limit name length to the maximum size of an RPC packet. */ -+ if (namlen > UDPMSGSIZE) -+ { -+ *errnop = ERANGE; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - char name2[namlen + 1]; - size_t i; - -@@ -461,6 +468,13 @@ _nss_nis_gethostbyname4_r (const char *n - - /* Convert name to lowercase. */ - size_t namlen = strlen (name); -+ /* Limit name length to the maximum size of an RPC packet. */ -+ if (namlen > UDPMSGSIZE) -+ { -+ *errnop = ERANGE; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - char name2[namlen + 1]; - size_t i; - -Index: glibc-2.19/nis/nss_nis/nis-initgroups.c -=================================================================== ---- glibc-2.19.orig/nis/nss_nis/nis-initgroups.c -+++ glibc-2.19/nis/nss_nis/nis-initgroups.c -@@ -150,6 +150,13 @@ initgroups_netid (uid_t uid, gid_t group - gid_t **groupsp, long int limit, int *errnop, - const char *domainname) - { -+ /* Limit domainname length to the maximum size of an RPC packet. */ -+ if (strlen (domainname) > UDPMSGSIZE) -+ { -+ *errnop = ERANGE; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - /* Prepare the key. The form is "unix.UID@DOMAIN" with the UID and - DOMAIN field filled in appropriately. */ - char key[sizeof ("unix.@") + sizeof (uid_t) * 3 + strlen (domainname)]; -Index: glibc-2.19/nis/nss_nis/nis-network.c -=================================================================== ---- glibc-2.19.orig/nis/nss_nis/nis-network.c -+++ glibc-2.19/nis/nss_nis/nis-network.c -@@ -179,6 +179,13 @@ _nss_nis_getnetbyname_r (const char *nam - - /* Convert name to lowercase. */ - size_t namlen = strlen (name); -+ /* Limit name length to the maximum size of an RPC packet. */ -+ if (namlen > UDPMSGSIZE) -+ { -+ *errnop = ERANGE; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - char name2[namlen + 1]; - size_t i; - -Index: glibc-2.19/nis/nss_nis/nis-service.c -=================================================================== ---- glibc-2.19.orig/nis/nss_nis/nis-service.c -+++ glibc-2.19/nis/nss_nis/nis-service.c -@@ -271,6 +271,13 @@ _nss_nis_getservbyname_r (const char *na - /* If the protocol is given, we could try if our NIS server knows - about services.byservicename map. If yes, we only need one query. */ - size_t keylen = strlen (name) + (protocol ? 1 + strlen (protocol) : 0); -+ /* Limit key length to the maximum size of an RPC packet. */ -+ if (keylen > UDPMSGSIZE) -+ { -+ *errnop = ERANGE; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - char key[keylen + 1]; - - /* key is: "name/proto" */ -@@ -355,6 +362,13 @@ _nss_nis_getservbyport_r (int port, cons - Otherwise try first port/tcp, then port/udp and then fallback - to sequential scanning of services.byname. */ - const char *proto = protocol != NULL ? protocol : "tcp"; -+ /* Limit protocol name length to the maximum size of an RPC packet. */ -+ if (strlen (proto) > UDPMSGSIZE) -+ { -+ *errnop = ERANGE; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - do - { - /* key is: "port/proto" */ diff --git a/pldd-wait-ptrace-stop.patch b/pldd-wait-ptrace-stop.patch deleted file mode 100644 index 38520bc..0000000 --- a/pldd-wait-ptrace-stop.patch +++ /dev/null @@ -1,63 +0,0 @@ -2014-02-24 Andreas Schwab - - [BZ #15804] - * elf/pldd.c (wait_for_ptrace_stop): New function. - (main): Call it after attaching. - -Index: glibc-2.19/elf/pldd.c -=================================================================== ---- glibc-2.19.orig/elf/pldd.c -+++ glibc-2.19/elf/pldd.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -82,6 +83,7 @@ static char *exe; - - /* Local functions. */ - static int get_process_info (int dfd, long int pid); -+static void wait_for_ptrace_stop (long int pid); - - - int -@@ -170,6 +172,8 @@ main (int argc, char *argv[]) - tid); - } - -+ wait_for_ptrace_stop (tid); -+ - struct thread_list *newp = alloca (sizeof (*newp)); - newp->tid = tid; - newp->next = thread_list; -@@ -194,6 +198,27 @@ main (int argc, char *argv[]) - } - - -+/* Wait for PID to enter ptrace-stop state after being attached. */ -+static void -+wait_for_ptrace_stop (long int pid) -+{ -+ int status; -+ -+ /* While waiting for SIGSTOP being delivered to the tracee we have to -+ reinject any other pending signal. Ignore all other errors. */ -+ while (waitpid (pid, &status, __WALL) == pid && WIFSTOPPED (status)) -+ { -+ /* The STOP signal should not be delivered to the tracee. */ -+ if (WSTOPSIG (status) == SIGSTOP) -+ return; -+ if (ptrace (PTRACE_CONT, pid, NULL, -+ (void *) (uintptr_t) WSTOPSIG (status))) -+ /* The only possible error is that the process died. */ -+ return; -+ } -+} -+ -+ - /* Handle program arguments. */ - static error_t - parse_opt (int key, char *arg, struct argp_state *state) diff --git a/powerpc-opt-power8.patch b/powerpc-opt-power8.patch deleted file mode 100644 index e429a18..0000000 --- a/powerpc-opt-power8.patch +++ /dev/null @@ -1,2696 +0,0 @@ -2014-03-31 Adhemerval Zanella - - * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S (MFVSRD_R3_V1): - Encode instruction correctly in little endian. - * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S (MFVSRD_R3_V1): - Likewise. - * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S (MFVSRD_R3_V1): - Likewise. - * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S (MFVSRD_R3_V1): - Likewise. - * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S (MFVSRD_R3_V1): - Likewise. - -2014-03-20 Adhemerval Zanella - Vidya Ranganathan - - * string/strpbrk.c (strpbrk): Using macro to redefine symbol name. - * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strpbrk-power7 - and strpbrk-ppc64 objects. - * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c - (__libc_ifunc_impl_list): Add new strpbrk optimized symbols. - * sysdeps/powerpc/powerpc64/multiarch/strpbrk-power7.S: New file: - multiarch strpbrk for POWER7. - * sysdeps/powerpc/powerpc64/multiarch/strpbrk-ppc64.c: New file: - multiarch strpbrk for PPC64. - * sysdeps/powerpc/powerpc64/multiarch/strpbrk.c: New file: strpbrk - ifunc selector. - * sysdeps/powerpc/powerpc64/power7/strpbrk.S: New file: optimited - strpbrk for POWER7. - -2014-03-20 Adhemerval Zanella - - * string/strcspn.c (strcspn): Using macro to redefine symbol name. - * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strcspn-power7 - and strcspn-ppc64 objects. - * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c - (__libc_ifunc_impl_list): Add new strcspn optimized symbols. - * sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S: New file: - multiarch strcspn for POWER7. - * sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c: New file: - multiarch strcspn for PPC64. - * sysdeps/powerpc/powerpc64/multiarch/strcspn.c: New file: strcspn - ifunc selector. - * sysdeps/powerpc/powerpc64/power7/strcspn.S: New file: optimited - strcspn for POWER7. - -2014-03-12 Adhemerval Zanella - - [BZ #16689] - * sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S - (__bzero_ppc): Call memset@local instead of __memset_ppc@local for - static build. - * sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c: Build IFUNC - selector for static builds. - - * sysdeps/powerpc/powerpc64/multiarch/strspn.c (strspn): Build IFUNC - selector for static builds. - -2014-03-11 Adhemerval Zanella - - [BZ #16683] - * sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S (__bzero_ppc): - Define it for static builds as well. - (NO_BZERO_IMPL): Likewise. - -2014-03-11 Vidya Ranganathan - - * sysdeps/powerpc/powerpc64/power7/strspn.S: New file: Optimization. - * sysdeps/powerpc/powerpc64/multiarch/strspn.c: New file: - multiarch strspn for PPC64. - * sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c: New file - * sysdeps/powerpc/powerpc64/multiarch/strspn-power7.S: New file - * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: - (__libc_ifunc_impl_list): Likewise. - * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strspn - multiarch optimizations - * string/strspn.c (strspn): Using macro to redefine symbol name. - -2014-03-10 Vidya Ranganathan - Adhemerval Zanella - - * sysdeps/powerpc/powerpc64/power7/strncat.S: New file: Optimization. - * sysdeps/powerpc/powerpc64/multiarch/strncat.c: New file: - multiarch strncat for PPC64. - * sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c: New file - * sysdeps/powerpc/powerpc64/multiarch/strncat-power7.S: New file - * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: - (__libc_ifunc_impl_list): Likewise. - * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strncat - multiarch optimizations - -2014-03-03 Rajalakshmi Srinivasaraghavan - - * sysdeps/powerpc/powerpc64/power7/strrchr.S: New file. - * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strrchr multiarch - implementation. - * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: - (__libc_ifunc_impl_list): Likewise. - * sysdeps/powerpc/powerpc64/multiarch/strrchr.c: New file. - * sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c: New file. - * sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S: New file. - * string/strrchr.c: Define STRRCHR. - -2014-02-27 Adhemerval Zanella - - * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add llround power8 - implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S: New file: - POWER8 llround ifunc implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c (__lllround): Add - POWER8 implementation. - * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: New file: - POWER8 llround implementation. - - * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add llrint power8 - implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S: New file: - POWER8 llrint ifunc implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c (__lllrint): Add - POWER8 implementation. - * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: New file: - POWER8 llrint implementation. - - * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add finite power8 - implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: New file: - POWER8 finite ifunc implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c (__finite): Add - POWER8 implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c (__finitef): - Likewise. - * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S: New file: - POWER8 finite implementation. - * sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S: New file. - - * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add isinf power8 - implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: New file: - POWER8 isinf ifunc implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c (__isinf): Add - POWER8 implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c (__isinff): - Likewise. - * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S: New file: - POWER8 isinf implementation. - * sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S: New file. - - * sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h (INIT_ARCH): - Add hwcap2 initialization. - * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Add isnan power8 - implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: New file: - POWER8 isnan ifunc implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c (__isnan): Add - POWER8 implementation. - * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c (__isnanf): - Likewise. - * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S: New file: - POWER8 isnan implementation. - * sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S: New file. - -Index: glibc-2.19/string/strcspn.c -=================================================================== ---- glibc-2.19.orig/string/strcspn.c -+++ glibc-2.19/string/strcspn.c -@@ -15,27 +15,18 @@ - License along with the GNU C Library; if not, see - . */ - --#if HAVE_CONFIG_H --# include --#endif -- --#if defined _LIBC || HAVE_STRING_H --# include --#else --# include --# ifndef strchr --# define strchr index --# endif --#endif -+#include - - #undef strcspn - -+#ifndef STRCSPN -+# define STRCSPN strcspn -+#endif -+ - /* Return the length of the maximum initial segment of S - which contains no characters from REJECT. */ - size_t --strcspn (s, reject) -- const char *s; -- const char *reject; -+STRCSPN (const char *s, const char *reject) - { - size_t count = 0; - -Index: glibc-2.19/string/strpbrk.c -=================================================================== ---- glibc-2.19.orig/string/strpbrk.c -+++ glibc-2.19/string/strpbrk.c -@@ -15,21 +15,17 @@ - License along with the GNU C Library; if not, see - . */ - --#ifdef HAVE_CONFIG_H --# include --#endif -- --#if defined _LIBC || defined HAVE_CONFIG_H --# include --#endif -+#include - - #undef strpbrk - -+#ifndef STRPBRK -+#define STRPBRK strpbrk -+#endif -+ - /* Find the first occurrence in S of any character in ACCEPT. */ - char * --strpbrk (s, accept) -- const char *s; -- const char *accept; -+STRPBRK (const char *s, const char *accept) - { - while (*s != '\0') - { -Index: glibc-2.19/string/strrchr.c -=================================================================== ---- glibc-2.19.orig/string/strrchr.c -+++ glibc-2.19/string/strrchr.c -@@ -19,9 +19,13 @@ - - #undef strrchr - -+#ifndef STRRCHR -+# define STRRCHR strrchr -+#endif -+ - /* Find the last occurrence of C in S. */ - char * --strrchr (const char *s, int c) -+STRRCHR (const char *s, int c) - { - const char *found, *p; - -Index: glibc-2.19/string/strspn.c -=================================================================== ---- glibc-2.19.orig/string/strspn.c -+++ glibc-2.19/string/strspn.c -@@ -18,13 +18,14 @@ - #include - - #undef strspn -+#ifndef STRSPN -+#define STRSPN strspn -+#endif - - /* Return the length of the maximum initial segment - of S which contains only characters in ACCEPT. */ - size_t --strspn (s, accept) -- const char *s; -- const char *accept; -+STRSPN (const char *s, const char *accept) - { - const char *p; - const char *a; -Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S -+++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S -@@ -19,8 +19,17 @@ - - #include - -+/* memset ifunc selector is not built for static and memset@local -+ for shared builds makes the linker point the call to the ifunc -+ selector. */ -+#ifdef SHARED -+# define MEMSET __memset_ppc -+#else -+# define MEMSET memset -+#endif -+ - ENTRY (__bzero_ppc) - mr r5,r4 - li r4,0 -- b __memset_ppc@local -+ b MEMSET@local - END (__bzero_ppc) -Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c -+++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c -@@ -17,7 +17,7 @@ - . */ - - /* Define multiple versions only for definition in libc. */ --#if defined SHARED && !defined NOT_IN_libc -+#ifndef NOT_IN_libc - # include - # include - # include "init-arch.h" -Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h -+++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h -@@ -36,6 +36,7 @@ - and fills the previous ones. */ - #define INIT_ARCH() \ - unsigned long int hwcap = __GLRO(dl_hwcap); \ -+ unsigned long int __attribute__((unused)) hwcap2 = __GLRO(dl_hwcap2); \ - if (hwcap & PPC_FEATURE_ARCH_2_06) \ - hwcap |= PPC_FEATURE_ARCH_2_05 | \ - PPC_FEATURE_POWER5_PLUS | \ -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile -@@ -4,7 +4,8 @@ sysdep_routines += s_isnan-power7 s_isna - s_copysign-ppc64 s_finite-power7 s_finite-ppc64 \ - s_finitef-ppc64 s_isinff-ppc64 s_isinf-power7 \ - s_isinf-ppc64 s_modf-power5+ s_modf-ppc64 \ -- s_modff-power5+ s_modff-ppc64 -+ s_modff-power5+ s_modff-ppc64 s_isnan-power8 \ -+ s_isinf-power8 s_finite-power8 - - libm-sysdep_routines += s_isnan-power7 s_isnan-power6x s_isnan-power6 \ - s_isnan-power5 s_isnan-ppc64 s_llround-power6x \ -@@ -21,7 +22,9 @@ libm-sysdep_routines += s_isnan-power7 s - s_logbl-power7 s_logb-ppc64 s_logbf-ppc64 \ - s_logbl-ppc64 s_modf-power5+ s_modf-ppc64 \ - s_modff-power5+ s_modff-ppc64 e_hypot-ppc64 \ -- e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 -+ e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 \ -+ s_isnan-power8 s_isinf-power8 s_finite-power8 \ -+ s_llrint-power8 s_llround-power8 - - CFLAGS-s_logbf-power7.c = -mcpu=power7 - CFLAGS-s_logbl-power7.c = -mcpu=power7 -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S -@@ -0,0 +1,33 @@ -+/* isnan(). PowerPC64/POWER7 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#undef hidden_def -+#define hidden_def(name) -+#undef weak_alias -+#define weak_alias(name, alias) -+#undef strong_alias -+#define strong_alias(name, alias) -+#undef compat_symbol -+#define compat_symbol(lib, name, symbol, ver) -+ -+#define __finite __finite_power8 -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c -@@ -23,10 +23,13 @@ - - extern __typeof (__finite) __finite_ppc64 attribute_hidden; - extern __typeof (__finite) __finite_power7 attribute_hidden; -+extern __typeof (__finite) __finite_power8 attribute_hidden; - - libc_ifunc (__finite, -- (hwcap & PPC_FEATURE_ARCH_2_06) -- ? __finite_power7 -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __finite_power8 : -+ (hwcap & PPC_FEATURE_ARCH_2_06) -+ ? __finite_power7 - : __finite_ppc64); - - weak_alias (__finite, finite) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c -@@ -23,10 +23,13 @@ - extern __typeof (__finitef) __finitef_ppc64 attribute_hidden; - /* The double-precision version also works for single-precision. */ - extern __typeof (__finitef) __finite_power7 attribute_hidden; -+extern __typeof (__finitef) __finite_power8 attribute_hidden; - - libc_ifunc (__finitef, -- (hwcap & PPC_FEATURE_ARCH_2_06) -- ? __finite_power7 -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __finite_power8 : -+ (hwcap & PPC_FEATURE_ARCH_2_06) -+ ? __finite_power7 - : __finitef_ppc64); - - weak_alias (__finitef, finitef) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S -@@ -0,0 +1,33 @@ -+/* isinf(). PowerPC64/POWER8 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#undef hidden_def -+#define hidden_def(name) -+#undef weak_alias -+#define weak_alias(name, alias) -+#undef strong_alias -+#define strong_alias(name, alias) -+#undef compat_symbol -+#define compat_symbol(lib, name, alias, ver) -+ -+#define __isinf __isinf_power8 -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c -@@ -23,10 +23,13 @@ - - extern __typeof (__isinf) __isinf_ppc64 attribute_hidden; - extern __typeof (__isinf) __isinf_power7 attribute_hidden; -+extern __typeof (__isinf) __isinf_power8 attribute_hidden; - - libc_ifunc (__isinf, -- (hwcap & PPC_FEATURE_ARCH_2_06) -- ? __isinf_power7 -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __isinf_power8 : -+ (hwcap & PPC_FEATURE_ARCH_2_06) -+ ? __isinf_power7 - : __isinf_ppc64); - - weak_alias (__isinf, isinf) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c -@@ -24,10 +24,13 @@ - extern __typeof (__isinff) __isinff_ppc64 attribute_hidden; - /* The double-precision version also works for single-precision. */ - extern __typeof (__isinff) __isinf_power7 attribute_hidden; -+extern __typeof (__isinff) __isinf_power8 attribute_hidden; - - libc_ifunc (__isinff, -- (hwcap & PPC_FEATURE_ARCH_2_06) -- ? __isinf_power7 -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __isinf_power8 : -+ (hwcap & PPC_FEATURE_ARCH_2_06) -+ ? __isinf_power7 - : __isinff_ppc64); - - weak_alias (__isinff, isinff) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S -@@ -0,0 +1,33 @@ -+/* isnan(). PowerPC64/POWER7 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#undef hidden_def -+#define hidden_def(name) -+#undef weak_alias -+#define weak_alias(name, alias) -+#undef strong_alias -+#define strong_alias(name, alias) -+#undef compat_symbol -+#define compat_symbol(lib, name, symbol, ver) -+ -+#define __isnan __isnan_power8 -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c -@@ -26,16 +26,19 @@ extern __typeof (__isnan) __isnan_power5 - extern __typeof (__isnan) __isnan_power6 attribute_hidden; - extern __typeof (__isnan) __isnan_power6x attribute_hidden; - extern __typeof (__isnan) __isnan_power7 attribute_hidden; -+extern __typeof (__isnan) __isnan_power8 attribute_hidden; - - libc_ifunc (__isnan, -- (hwcap & PPC_FEATURE_ARCH_2_06) -- ? __isnan_power7 : -- (hwcap & PPC_FEATURE_POWER6_EXT) -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __isnan_power8 : -+ (hwcap & PPC_FEATURE_ARCH_2_06) -+ ? __isnan_power7 : -+ (hwcap & PPC_FEATURE_POWER6_EXT) - ? __isnan_power6x : -- (hwcap & PPC_FEATURE_ARCH_2_05) -- ? __isnan_power6 : -- (hwcap & PPC_FEATURE_POWER5) -- ? __isnan_power5 -+ (hwcap & PPC_FEATURE_ARCH_2_05) -+ ? __isnan_power6 : -+ (hwcap & PPC_FEATURE_POWER5) -+ ? __isnan_power5 - : __isnan_ppc64); - - weak_alias (__isnan, isnan) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c -@@ -25,16 +25,19 @@ extern __typeof (__isnanf) __isnan_power - extern __typeof (__isnanf) __isnan_power6 attribute_hidden; - extern __typeof (__isnanf) __isnan_power6x attribute_hidden; - extern __typeof (__isnanf) __isnan_power7 attribute_hidden; -+extern __typeof (__isnanf) __isnan_power8 attribute_hidden; - - libc_ifunc (__isnanf, -- (hwcap & PPC_FEATURE_ARCH_2_06) -- ? __isnan_power7 : -- (hwcap & PPC_FEATURE_POWER6_EXT) -- ? __isnan_power6x : -- (hwcap & PPC_FEATURE_ARCH_2_05) -- ? __isnan_power6 : -- (hwcap & PPC_FEATURE_POWER5) -- ? __isnan_power5 -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __isnan_power8 : -+ (hwcap & PPC_FEATURE_ARCH_2_06) -+ ? __isnan_power7 : -+ (hwcap & PPC_FEATURE_POWER6_EXT) -+ ? __isnan_power6x : -+ (hwcap & PPC_FEATURE_ARCH_2_05) -+ ? __isnan_power6 : -+ (hwcap & PPC_FEATURE_POWER5) -+ ? __isnan_power5 - : __isnan_ppc64); - - weak_alias (__isnanf, isnanf) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S -@@ -0,0 +1,31 @@ -+/* Round double to long int. PowerPC64/POWER6X default version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#undef weak_alias -+#define weak_alias(a,b) -+#undef strong_alias -+#define strong_alias(a,b) -+#undef compat_symbol -+#define compat_symbol(a,b,c,d) -+ -+#define __llrint __llrint_power8 -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c -@@ -30,10 +30,13 @@ - - extern __typeof (__llrint) __llrint_ppc64 attribute_hidden; - extern __typeof (__llrint) __llrint_power6x attribute_hidden; -+extern __typeof (__llrint) __llrint_power8 attribute_hidden; - - libc_ifunc (__llrint, -- (hwcap & PPC_FEATURE_POWER6_EXT) -- ? __llrint_power6x -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __llrint_power8 : -+ (hwcap & PPC_FEATURE_POWER6_EXT) -+ ? __llrint_power6x - : __llrint_ppc64); - - weak_alias (__llrint, llrint) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S -@@ -0,0 +1,31 @@ -+/* llround(). PowerPC64 default version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#undef weak_alias -+#define weak_alias(name, alias) -+#undef strong_alias -+#define strong_alias(name, alias) -+#undef compat_symbol -+#define compat_symbol(lib, name, alias, ver) -+ -+#define __llround __llround_power8 -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c -@@ -27,12 +27,15 @@ - extern __typeof (__llround) __llround_ppc64 attribute_hidden; - extern __typeof (__llround) __llround_power5plus attribute_hidden; - extern __typeof (__llround) __llround_power6x attribute_hidden; -+extern __typeof (__llround) __llround_power8 attribute_hidden; - - libc_ifunc (__llround, -- (hwcap & PPC_FEATURE_POWER6_EXT) -- ? __llround_power6x : -- (hwcap & PPC_FEATURE_POWER5_PLUS) -- ? __llround_power5plus -+ (hwcap2 & PPC_FEATURE2_ARCH_2_07) -+ ? __llround_power8 : -+ (hwcap & PPC_FEATURE_POWER6_EXT) -+ ? __llround_power6x : -+ (hwcap & PPC_FEATURE_POWER5_PLUS) -+ ? __llround_power5plus - : __llround_ppc64); - - weak_alias (__llround, llround) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/Makefile -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/Makefile -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/Makefile -@@ -13,7 +13,10 @@ sysdep_routines += memcpy-power7 memcpy- - wcschr-power6 wcschr-ppc64 wcsrchr-power7 wcsrchr-power6 \ - wcsrchr-ppc64 wcscpy-power7 wcscpy-power6 wcscpy-ppc64 \ - wordcopy-power7 wordcopy-power6 wordcopy-ppc64 \ -- strcpy-power7 strcpy-ppc64 stpcpy-power7 stpcpy-ppc64 -+ strcpy-power7 strcpy-ppc64 stpcpy-power7 stpcpy-ppc64 \ -+ strrchr-power7 strrchr-ppc64 strncat-power7 strncat-ppc64 \ -+ strspn-power7 strspn-ppc64 strcspn-power7 strcspn-ppc64 \ -+ strpbrk-power7 strpbrk-ppc64 - - CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops - CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c -@@ -238,5 +238,45 @@ __libc_ifunc_impl_list (const char *name - IFUNC_IMPL_ADD (array, i, wcscpy, 1, - __wcscpy_ppc)) - -+ /* Support sysdeps/powerpc/powerpc64/multiarch/strrchr.c. */ -+ IFUNC_IMPL (i, name, strrchr, -+ IFUNC_IMPL_ADD (array, i, strrchr, -+ hwcap & PPC_FEATURE_HAS_VSX, -+ __strrchr_power7) -+ IFUNC_IMPL_ADD (array, i, strrchr, 1, -+ __strrchr_ppc)) -+ -+ /* Support sysdeps/powerpc/powerpc64/multiarch/strncat.c. */ -+ IFUNC_IMPL (i, name, strncat, -+ IFUNC_IMPL_ADD (array, i, strncat, -+ hwcap & PPC_FEATURE_HAS_VSX, -+ __strncat_power7) -+ IFUNC_IMPL_ADD (array, i, strncat, 1, -+ __strncat_ppc)) -+ -+ /* Support sysdeps/powerpc/powerpc64/multiarch/strspn.c. */ -+ IFUNC_IMPL (i, name, strspn, -+ IFUNC_IMPL_ADD (array, i, strspn, -+ hwcap & PPC_FEATURE_HAS_VSX, -+ __strspn_power7) -+ IFUNC_IMPL_ADD (array, i, strspn, 1, -+ __strspn_ppc)) -+ -+ /* Support sysdeps/powerpc/powerpc64/multiarch/strcspn.c. */ -+ IFUNC_IMPL (i, name, strcspn, -+ IFUNC_IMPL_ADD (array, i, strcspn, -+ hwcap & PPC_FEATURE_HAS_VSX, -+ __strcspn_power7) -+ IFUNC_IMPL_ADD (array, i, strcspn, 1, -+ __strcspn_ppc)) -+ -+ /* Support sysdeps/powerpc/powerpc64/multiarch/strpbrk.c. */ -+ IFUNC_IMPL (i, name, strpbrk, -+ IFUNC_IMPL_ADD (array, i, strpbrk, -+ hwcap & PPC_FEATURE_HAS_VSX, -+ __strpbrk_power7) -+ IFUNC_IMPL_ADD (array, i, strpbrk, 1, -+ __strpbrk_ppc)) -+ - return i; - } -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S -@@ -18,10 +18,9 @@ - - #include - --#if defined SHARED && !defined NOT_IN_libc -- - /* Copied from bzero.S to prevent the linker from inserting a stub -- between bzero and memset. */ -+ between bzero and memset. NOTE: this code should be positioned -+ before ENTRY/END_GEN_TB redefinition. */ - ENTRY (__bzero_ppc) - CALL_MCOUNT 3 - mr r5,r4 -@@ -29,6 +28,8 @@ ENTRY (__bzero_ppc) - b L(_memset) - END_GEN_TB (__bzero_ppc,TB_TOCLESS) - -+ -+#if defined SHARED && !defined NOT_IN_libc - # undef EALIGN - # define EALIGN(name, alignt, words) \ - .section ".text"; \ -@@ -48,9 +49,9 @@ END_GEN_TB (__bzero_ppc,TB_TOCLESS) - # undef libc_hidden_builtin_def - # define libc_hidden_builtin_def(name) \ - .globl __GI_memset; __GI_memset = __memset_ppc -+#endif - - /* Do not implement __bzero at powerpc64/memset.S. */ --# define NO_BZERO_IMPL --#endif -+#define NO_BZERO_IMPL - - #include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S -@@ -0,0 +1,40 @@ -+/* Optimized strcspn implementation for POWER7. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#undef EALIGN -+#define EALIGN(name, alignt, words) \ -+ .section ".text"; \ -+ ENTRY_2(__strcspn_power7) \ -+ .align ALIGNARG(alignt); \ -+ EALIGN_W_##words; \ -+ BODY_LABEL(__strcspn_power7): \ -+ cfi_startproc; \ -+ LOCALENTRY(__strcspn_power7) -+ -+#undef END -+#define END(name) \ -+ cfi_endproc; \ -+ TRACEBACK(__strcspn_power7) \ -+ END_2(__strcspn_power7) -+ -+#undef libc_hidden_builtin_def -+#define libc_hidden_builtin_def(name) -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c -@@ -0,0 +1,30 @@ -+/* Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#define STRCSPN __strcspn_ppc -+#ifdef SHARED -+ -+# undef libc_hidden_builtin_def -+# define libc_hidden_builtin_def(name) \ -+ __hidden_ver1 (__strcspn_ppc, __GI_strcspn, __strcspn_ppc); -+#endif -+ -+extern __typeof (strcspn) __strcspn_ppc attribute_hidden; -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn.c -@@ -0,0 +1,31 @@ -+/* Multiple versions of strcspn. PowerPC64 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#ifndef NOT_IN_libc -+# include -+# include -+# include "init-arch.h" -+ -+extern __typeof (strcspn) __strcspn_ppc attribute_hidden; -+extern __typeof (strcspn) __strcspn_power7 attribute_hidden; -+ -+libc_ifunc (strcspn, -+ (hwcap & PPC_FEATURE_HAS_VSX) -+ ? __strcspn_power7 -+ : __strcspn_ppc); -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.S -@@ -0,0 +1,42 @@ -+/* Optimized strncat implementation for POWER7. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#undef EALIGN -+#define EALIGN(name, alignt, words) \ -+ .section ".text"; \ -+ ENTRY_2(__strncat_power7) \ -+ .align ALIGNARG(alignt); \ -+ EALIGN_W_##words; \ -+ BODY_LABEL(__strncat_power7): \ -+ cfi_startproc; \ -+ LOCALENTRY(__strncat_power7) -+ -+#undef END -+#define END(name) \ -+ cfi_endproc; \ -+ TRACEBACK(__strncat_power7) \ -+ END_2(__strncat_power7) -+ -+#undef libc_hidden_builtin_def -+#define libc_hidden_builtin_def(name) -+ -+#define STRLEN __strlen_power7 -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c -@@ -0,0 +1,29 @@ -+/* Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#define STRNCAT __strncat_ppc -+#ifdef SHARED -+# undef libc_hidden_builtin_def -+# define libc_hidden_builtin_def(name) \ -+ __hidden_ver1 (__strncat_ppc, __GI_strncat, __strncat_ppc); -+#endif -+ -+extern __typeof (strncat) __strncat_ppc attribute_hidden; -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strncat.c -@@ -0,0 +1,31 @@ -+/* Multiple versions of strncat. PowerPC64 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#ifndef NOT_IN_libc -+# include -+# include -+# include "init-arch.h" -+ -+extern __typeof (strncat) __strncat_ppc attribute_hidden; -+extern __typeof (strncat) __strncat_power7 attribute_hidden; -+ -+libc_ifunc (strncat, -+ (hwcap & PPC_FEATURE_HAS_VSX) -+ ? __strncat_power7 -+ : __strncat_ppc); -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-power7.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-power7.S -@@ -0,0 +1,40 @@ -+/* Optimized strpbrk implementation for POWER7. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#undef EALIGN -+#define EALIGN(name, alignt, words) \ -+ .section ".text"; \ -+ ENTRY_2(__strpbrk_power7) \ -+ .align ALIGNARG(alignt); \ -+ EALIGN_W_##words; \ -+ BODY_LABEL(__strpbrk_power7): \ -+ cfi_startproc; \ -+ LOCALENTRY(__strpbrk_power7) -+ -+#undef END -+#define END(name) \ -+ cfi_endproc; \ -+ TRACEBACK(__strpbrk_power7) \ -+ END_2(__strpbrk_power7) -+ -+#undef libc_hidden_builtin_def -+#define libc_hidden_builtin_def(name) -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-ppc64.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk-ppc64.c -@@ -0,0 +1,30 @@ -+/* Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#define STRPBRK __strpbrk_ppc -+#ifdef SHARED -+ -+# undef libc_hidden_builtin_def -+# define libc_hidden_builtin_def(name) \ -+ __hidden_ver1 (__strpbrk_ppc, __GI_strpbrk, __strpbrk_ppc); -+#endif -+ -+extern __typeof (strpbrk) __strpbrk_ppc attribute_hidden; -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strpbrk.c -@@ -0,0 +1,31 @@ -+/* Multiple versions of strpbrk. PowerPC64 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#ifndef NOT_IN_libc -+# include -+# include -+# include "init-arch.h" -+ -+extern __typeof (strpbrk) __strpbrk_ppc attribute_hidden; -+extern __typeof (strpbrk) __strpbrk_power7 attribute_hidden; -+ -+libc_ifunc (strpbrk, -+ (hwcap & PPC_FEATURE_HAS_VSX) -+ ? __strpbrk_power7 -+ : __strpbrk_ppc); -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S -@@ -0,0 +1,39 @@ -+/* Optimized strrchr implementation for POWER7. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#undef ENTRY -+#define ENTRY(name) \ -+ .section ".text"; \ -+ ENTRY_2(__strrchr_power7) \ -+ .align ALIGNARG(2); \ -+ BODY_LABEL(__strrchr_power7): \ -+ cfi_startproc; \ -+ LOCALENTRY(__strrchr_power7) -+ -+#undef END -+#define END(name) \ -+ cfi_endproc; \ -+ TRACEBACK(__strrchr_power7) \ -+ END_2(__strrchr_power7) -+ -+#undef libc_hidden_builtin_def -+#define libc_hidden_builtin_def(name) -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c -@@ -0,0 +1,33 @@ -+/* Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#define STRRCHR __strrchr_ppc -+#undef weak_alias -+#define weak_alias(name, aliasname) \ -+ extern __typeof (__strrchr_ppc) aliasname \ -+ __attribute__ ((weak, alias ("__strrchr_ppc"))); -+#if !defined(NOT_IN_libc) && defined(SHARED) -+# undef libc_hidden_builtin_def -+# define libc_hidden_builtin_def(name) \ -+ __hidden_ver1(__strrchr_ppc, __GI_strrchr, __strrchr_ppc); -+#endif -+ -+extern __typeof (strrchr) __strrchr_ppc attribute_hidden; -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strrchr.c -@@ -0,0 +1,35 @@ -+/* Multiple versions of strrchr. PowerPC64 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+/* Define multiple versions only for definition in libc. */ -+#ifndef NOT_IN_libc -+# include -+# include -+# include "init-arch.h" -+ -+extern __typeof (strrchr) __strrchr_ppc attribute_hidden; -+extern __typeof (strrchr) __strrchr_power7 attribute_hidden; -+ -+/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle -+ ifunc symbol properly. */ -+libc_ifunc (strrchr, -+ (hwcap & PPC_FEATURE_HAS_VSX) -+ ? __strrchr_power7 -+ : __strrchr_ppc); -+weak_alias (strrchr, rindex) -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-power7.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-power7.S -@@ -0,0 +1,40 @@ -+/* Optimized strspn implementation for POWER7. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#undef EALIGN -+#define EALIGN(name, alignt, words) \ -+ .section ".text"; \ -+ ENTRY_2(__strspn_power7) \ -+ .align ALIGNARG(alignt); \ -+ EALIGN_W_##words; \ -+ BODY_LABEL(__strspn_power7): \ -+ cfi_startproc; \ -+ LOCALENTRY(__strspn_power7) -+ -+#undef END -+#define END(name) \ -+ cfi_endproc; \ -+ TRACEBACK(__strspn_power7) \ -+ END_2(__strspn_power7) -+ -+#undef libc_hidden_builtin_def -+#define libc_hidden_builtin_def(name) -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c -@@ -0,0 +1,33 @@ -+/* Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#define STRSPN __strspn_ppc -+#undef weak_alias -+#define weak_alias(name, aliasname) \ -+ extern __typeof (__strspn_ppc) aliasname \ -+ __attribute__ ((weak, alias ("__strspn_ppc"))); -+#if !defined(NOT_IN_libc) && defined(SHARED) -+# undef libc_hidden_builtin_def -+# define libc_hidden_builtin_def(name) \ -+ __hidden_ver1(__strspn_ppc, __GI_strspn, __strspn_ppc); -+#endif -+ -+extern __typeof (strspn) __strspn_ppc attribute_hidden; -+ -+#include -Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn.c -@@ -0,0 +1,31 @@ -+/* Multiple versions of strspn. PowerPC64 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#ifndef NOT_IN_libc -+# include -+# include -+# include "init-arch.h" -+ -+extern __typeof (strspn) __strspn_ppc attribute_hidden; -+extern __typeof (strspn) __strspn_power7 attribute_hidden; -+ -+libc_ifunc (strspn, -+ (hwcap & PPC_FEATURE_HAS_VSX) -+ ? __strspn_power7 -+ : __strspn_ppc); -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strcspn.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strcspn.S -@@ -0,0 +1,139 @@ -+/* Optimized strcspn implementation for PowerPC64. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+/* size_t [r3] strcspn (const char [r4] *s, const char [r5] *reject) */ -+ -+ .machine power7 -+EALIGN (strcspn, 4, 0) -+ CALL_MCOUNT 3 -+ -+ /* The idea to speed up the algorithm is to create a lookup table -+ for fast check if input character should be considered. For ASCII -+ or ISO-8859-X character sets it has 256 positions. */ -+ lbz r10,0(r4) -+ -+ /* First the table should be cleared and to avoid unaligned accesses -+ when using the VSX stores the table address is aligned to 16 -+ bytes. */ -+ xxlxor v0,v0,v0 -+ -+ /* PPC64 ELF ABI stack is aligned to 16 bytes. */ -+ addi r9,r1,-256 -+ -+ li r8,48 -+ li r5,16 -+ li r6,32 -+ cmpdi cr7,r10,0 /* reject[0] == '\0' ? */ -+ addi r12,r9,64 -+ /* Clear the table with 0 values */ -+ stxvw4x v0,r0,r9 -+ addi r11,r9,128 -+ addi r7,r9,192 -+ stxvw4x v0,r9,r5 -+ stxvw4x v0,r9,r6 -+ stxvw4x v0,r9,r8 -+ stxvw4x v0,r0,r12 -+ stxvw4x v0,r12,r5 -+ stxvw4x v0,r12,r6 -+ stxvw4x v0,r12,r8 -+ stxvw4x v0,r0,r11 -+ stxvw4x v0,r11,r5 -+ stxvw4x v0,r11,r6 -+ stxvw4x v0,r11,r8 -+ stxvw4x v0,r0,r7 -+ stxvw4x v0,r7,r5 -+ stxvw4x v0,r7,r6 -+ stxvw4x v0,r7,r8 -+ li r8,1 -+ beq cr7,L(finish_table) /* If reject[0] == '\0' skip */ -+ -+ /* Initialize the table as: -+ for (i=0; reject[i]; i++ -+ table[reject[i]]] = 1 */ -+ .p2align 4,,15 -+L(init_table): -+ stbx r8,r9,r10 -+ lbzu r10,1(r4) -+ cmpdi cr7,r10,0 /* If reject[0] == '\0' finish */ -+ bne cr7,L(init_table) -+L(finish_table): -+ /* set table[0] = 1 */ -+ li r10,1 -+ stb r10,0(r9) -+ li r10,0 -+ b L(mainloop) -+ -+ /* Unrool the loop 4 times and check using the table as: -+ i = 0; -+ while (1) -+ { -+ if (table[input[i++]] == 1) -+ return i - 1; -+ if (table[input[i++]] == 1) -+ return i - 1; -+ if (table[input[i++]] == 1) -+ return i - 1; -+ if (table[input[i++]] == 1) -+ return i - 1; -+ } */ -+ .p2align 4,,15 -+L(unroll): -+ lbz r8,1(r3) -+ addi r10,r10,4 -+ lbzx r8,r9,r8 -+ cmpwi r7,r8,1 -+ beq cr7,L(end) -+ lbz r8,2(r3) -+ addi r3,r3,4 -+ lbzx r8,r9,r8 -+ cmpwi cr7,r8,1 -+ beq cr7,L(end2) -+ lbz r8,3(r7) -+ lbzx r8,r9,r8 -+ cmpwi cr7,r8,1 -+ beq cr7,L(end3) -+L(mainloop): -+ lbz r8,0(r3) -+ mr r7,r3 -+ addi r6,r10,1 -+ addi r4,r10,2 -+ addi r5,r10,3 -+ lbzx r8,r9,8 -+ cmpwi cr7,r8,1 -+ bne cr7,L(unroll) -+ mr r3,r10 -+ blr -+ -+ .p2align 4,,15 -+L(end): -+ mr r3,r6 -+ blr -+ -+ .p2align 4,,15 -+L(end2): -+ mr r3,r4 -+ blr -+ -+ .p2align 4,,15 -+L(end3): -+ mr r3,r5 -+ blr -+END (strcspn) -+libc_hidden_builtin_def (strcspn) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strncat.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strncat.S -@@ -0,0 +1,222 @@ -+/* Optimized strncat implementation for PowerPC64/POWER7. -+ -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+/* The algorithm is as follows for aligned memory access : -+ -+ if address of s2 is divisible by 0x7UL, -+ perform aligned doubleword catenation -+ else -+ perform unaligned catenation -+ -+ The aligned comparison are made using cmpb instructions. */ -+ -+/* char* [r3] strncat (const char *s1 [r3], -+ const char *s2 [r4], -+ size_t size [r5]) */ -+ -+#include -+ -+#ifndef STRNCAT -+# undef strncat -+# define STRNCAT strncat -+#endif -+ -+#ifndef STRLEN -+# define STRLEN __strlen_ppc -+#endif -+ -+#define FRAMESIZE (FRAME_MIN_SIZE+32) -+ -+ .machine power7 -+EALIGN(STRNCAT, 4, 0) -+ CALL_MCOUNT 3 -+ -+ mflr r0 /* Load link register LR to r0. */ -+ -+/* We shall use r29, r30 and r31 non volatile register for retention. -+ Save all the callee registers in the GPR save area. */ -+ std r29, -24(r1) /* Save callers register r29. */ -+ std r30, -16(r1) /* Save callers register r30. */ -+ std r31, -8(r1) /* Save callers register r31. */ -+ -+ std r0, 16(r1) /* Store the link register. */ -+ stdu r1, -FRAMESIZE(r1) /* Create the stack frame. */ -+ -+/* Improve performance with CPU pre-fetch. */ -+ dcbt 0, r3 /* Pre-fetch str to avoid cache -+ miss. */ -+ dcbt 0, r4 /* Pre-fetch accept to avoid cache -+ miss. */ -+ -+ mr. r29, r5 /* Save "n" in r29. */ -+ mr r30, r3 /* Save "s1" in r30 from r3. */ -+ beq cr0,L(done) -+ -+ mr r31, r4 /* Save "s2" in r31 from r4. */ -+ bl STRLEN /* Call optimized strlen on s1; goto -+ end of s1. */ -+ nop -+ cmpldi cr7, r29, 7 /* If s2 is <=7 process -+ byte-by-byte. */ -+ add r3, r30, r3 /* Grab the last character of s1. */ -+ bgt cr7,L(alignment) /* Process by aligned strings. */ -+ -+ cmpldi cr7, r29, 3 /* If n is >= 4, we can -+ byte-unroll. */ -+ addi r9, r3, -1 /* Make "s1" point before next -+ character, increment when read. */ -+ bgt cr7, L(bytes_unroll) /* Process each byte. */ -+ -+L(byte_by_byte): -+ lbz r10, 0(r31) -+ addi r8, r9, 1 -+ cmpdi cr7, r10, 0 /* Check for NULL in "s2". */ -+ stb r10, 1(r9) -+ beq cr7, L(done) -+ add r9, r9, r29 -+ subf r9, r8, r9 -+ addi r9, r9, 1 -+ mtctr r9 -+ b L(branch2) -+ .p2align 4 -+L(branch1): -+ lbzu r10, 1(r31) -+ cmpdi cr7, r10, 0 -+ stbu r10, 1(r8) -+ beq cr7,L(done) -+L(branch2): -+ mr r9, r8 -+ bdnz L(branch1) -+ beq cr7,L(done) -+L(nullTerminate): -+ li r10, 0 /* Load NULL for termination. */ -+ stb r10, 1(r9) /* Append or terminate s1 with -+ NULL. */ -+ .p2align 4 /* A small section here. */ -+L(done): /* We return now. */ -+ addi r1, r1, FRAMESIZE /* Restore stack pointer. */ -+ mr r3, r30 /* Set the return value length of -+ string. */ -+ ld r0, 16(r1) /* Read the saved link register. */ -+ ld r29, -24(r1) /* Restore save register r29. */ -+ ld r30, -16(r1) /* Restore save register r30. */ -+ ld r31, -8(r1) /* Restore save register r31. */ -+ mtlr r0 /* Restore link register. */ -+ blr /* Branch to link register. */ -+ -+ .p2align 4 -+L(alignment): -+ rldicl. r9, r31, 0, 61 /* Check if s2 is 8byte aligned */ -+ beq cr0,L(dwordAligned) -+ -+ .p2align 4 -+/* Unaligned bytes in string, so process byte by byte. -+ POWER7 has performance gains over loop unroll. */ -+L(bytes_unroll): -+ addi r9, r3, -1 -+ srdi r10, r29, 2 -+ mtctr r10 -+ b L(L10) -+ .p2align 4 -+L(L44): -+ lbz r10, 1(r31) /* Load byte. */ -+ cmpdi cr7, r10, 0 /* Compare ; if byte not zero, -+ continue. */ -+ stb r10, 2(r9) /* Store byte */ -+ beq cr7, L(done) -+ addi r31, r31, 4 -+ -+ lbz r10, -2(r31) /* Perform loop unroll here on byte -+ load and store. */ -+ cmpdi cr7, r10, 0 -+ stb r10, 3(r9) -+ beq cr7, L(done) -+ -+ lbz r10, -1(r31) /* Loop unroll here. */ -+ cmpdi cr7, r10, 0 -+ stbu r10, 4(r9) -+ beq cr7, L(done) -+ -+ bdz L(leftNbytes) -+ -+L(L10): -+ lbz r10, 0(r31) /* Loop unroll here. */ -+ cmpdi cr7, r10, 0 -+ stb r10, 1(r9) -+ bne cr7,L(L44) -+ b L(done) -+ .p2align 4 -+/* If s2 is double word aligned, we load and store double word. */ -+L(dwordAligned): -+/* read, write 8 bytes at a time */ -+ srdi r8, r29, 3 /* Compute count for CTR to loop; -+ count = n/8. */ -+ li r7, 0 /* Load r7 with NULL. */ -+ li r10, 0 /* Load r10 with MASK '0'. */ -+ -+ mtctr r8 /* Move count to CTR. */ -+L(loop8): -+ ld r9, 0(r31) /* Read double word from s2. */ -+ cmpb r6, r9, r10 /* Compare bytes in s2 we read -+ just now. */ -+ cmpdi r6, 0 /* If cmpb returned NULL, -+ we continue. */ -+ bne+ L(a8) -+ std r9, 0(r3) /* Append double word from s2 -+ with s1. */ -+ addi r3, r3, 8 /* Increment s1. */ -+ addi r31, r31, 8 /* Increment s2. */ -+ subi r29, r29, 8 /* Decrement count by 8. */ -+ bdnz L(loop8) /* Continue until "count" is -+ non zero. */ -+ -+L(a8): -+ cmpdi r29, 0 /* If "n" is already zero, we skip. */ -+ beq+ L(align8align) -+ -+ mtctr r29 /* Process left over bytes in "n". */ -+L(unaligned0): -+ lbz r9, 0(r31) /* Read a byte from s2. */ -+ cmpw r9, r7 /* If byte is NULL, we stop here . */ -+ beq+ L(align8align) /* Skip processing further if NULL. */ -+ stb r9, 0(r3) /* If not NULL, store byte into s1. */ -+ addi r3, r3, 1 /* Increment s1 by 1. */ -+ addi r31, r31, 1 /* Increment s2 by 1. */ -+ bdnz L(unaligned0) /* Decrement counter "n" and loop -+ until non zero. */ -+L(align8align): -+ stb r7, 0(r3) /* Terminate s1 with NULL. */ -+ -+ addi r1, r1, FRAMESIZE /* Restore stack pointer. */ -+ mr r3, r30 /* Set the return value, length of -+ string. */ -+ ld r0, 16(r1) /* Read the saved link register. */ -+ ld r29, -24(r1) /* Restore save register r29. */ -+ ld r30, -16(r1) /* Restore save register r30. */ -+ ld r31, -8(r1) /* Restore save register r31. */ -+ mtlr r0 /* Restore link register. */ -+ blr /* Branch to link register */ -+ -+ .p2align 4 -+L(leftNbytes): -+ rldicl. r29, r29, 0, 62 /* Check if n>0 and n < 4 bytes. */ -+ bne cr0,L(byte_by_byte) /* Process bytes one by one. */ -+ b L(nullTerminate) /* Now, finish catenation with -+ NULL termination. */ -+END(STRNCAT) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strpbrk.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strpbrk.S -@@ -0,0 +1,148 @@ -+/* Optimized strpbrk implementation for PowerPC64/POWER7. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+/* char [r3] *strpbrk(const char [r4] *s, const char [r5] *accept) */ -+ -+ .machine power7 -+EALIGN (strpbrk, 4, 0) -+ CALL_MCOUNT 3 -+ -+ lbz r10,0(r4) -+ cmpdi cr7,r10,0 /* accept[0] == '\0' ? */ -+ beq cr7,L(nullfound) -+ -+ /* The idea to speed up the algorithm is to create a lookup table -+ for fast check if input character should be considered. For ASCII -+ or ISO-8859-X character sets it has 256 positions. */ -+ -+ /* First the table should be cleared and to avoid unaligned accesses -+ when using the VSX stores the table address is aligned to 16 -+ bytes. */ -+ xxlxor v0,v0,v0 -+ -+ /* PPC64 ELF ABI stack is aligned to 16 bytes */ -+ addi r9,r1,-256 -+ -+ li r5,16 -+ li r6,32 -+ li r8,48 -+ addi r12,r9,64 -+ /* Clear the table with 0 values */ -+ stxvw4x v0,r0,r9 -+ addi r11,r9,128 -+ addi r7,r9,192 -+ stxvw4x v0,r9,r5 -+ li r0,1 -+ stxvw4x v0,r9,r6 -+ stxvw4x v0,r9,r8 -+ stxvw4x v0,r0,r12 -+ stxvw4x v0,r12,r5 -+ stxvw4x v0,r12,r6 -+ stxvw4x v0,r12,r8 -+ stxvw4x v0,r0,r11 -+ stxvw4x v0,r11,r5 -+ stxvw4x v0,r11,r6 -+ stxvw4x v0,r11,r8 -+ stxvw4x v0,r0,r7 -+ stxvw4x v0,r7,r5 -+ stxvw4x v0,r7,r6 -+ stxvw4x v0,r7,r8 -+ -+ /* Initialize the table as: -+ for (i=0; accept[i]; i++ -+ table[accept[i]]] = 1 */ -+ .p2align 4,,15 -+L(init_table): -+ stbx r0,r9,r10 -+ lbzu r10,1(r4) -+ cmpdi r0,r10,0 -+ bne cr0,L(init_table) -+L(finish_table): -+ /* set table[0] = 1 */ -+ li r4,1 -+ stb r4,0(r9) -+ b L(mainloop) -+ -+ /* Unrool the loop 4 times and check using the table as: -+ i = 0; -+ while (1) -+ { -+ if (table[input[i++]] == 1) -+ return (s[i -1] ? s + i - 1: NULL); -+ if (table[input[i++]] == 1) -+ return (s[i -1] ? s + i - 1: NULL); -+ if (table[input[i++]] == 1) -+ return (s[i -1] ? s + i - 1: NULL); -+ if (table[input[i++]] == 1) -+ return (s[i -1] ? s + i - 1: NULL); -+ } */ -+ .p2align 4 -+L(unroll): -+ lbz r0,1(r3) -+ lbzx r8,r9,r0 -+ cmpwi cr6,r8,1 -+ beq cr6,L(checkend2) -+ lbz r10,2(r3) -+ lbzx r4,r9,r10 -+ cmpwi cr7,r4,1 -+ beq cr7,L(checkend3) -+ lbz r12,3(r3) -+ addi r3,r3,4 -+ lbzx r11,r9,r12 -+ cmpwi cr0,r11,1 -+ beq cr0,L(checkend) -+L(mainloop): -+ lbz r12,0(r3) -+ addi r11,r3,1 -+ addi r5,r3,2 -+ addi r7,r3,3 -+ lbzx r6,r9,r12 -+ cmpwi cr1,r6,1 -+ bne cr1,L(unroll) -+ cmpdi cr0,r12,0 -+ beq cr0,L(nullfound) -+L(end): -+ blr -+ -+ .p2align 4 -+L(checkend): -+ cmpdi cr1,r12,0 -+ mr r3,r7 -+ bne cr1,L(end) -+L(nullfound): -+ /* return NULL */ -+ li 3,0 -+ blr -+ -+ .p2align 4 -+L(checkend2): -+ cmpdi cr7,r0,0 -+ mr r3,r11 -+ beq cr7,L(nullfound) -+ blr -+ -+ .p2align 4 -+L(checkend3): -+ cmpdi cr6,r10,0 -+ mr r3,r5 -+ beq cr6,L(nullfound) -+ blr -+END (strpbrk) -+libc_hidden_builtin_def (strpbrk) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strrchr.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strrchr.S -@@ -0,0 +1,255 @@ -+/* Optimized strrchr implementation for PowerPC64/POWER7 using cmpb insn. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+/* int [r3] strrchr (char *s [r3], int c [r4]) */ -+ .machine power7 -+ENTRY (strrchr) -+ CALL_MCOUNT 2 -+ dcbt 0,r3 -+ clrrdi r8,r3,3 /* Align the address to doubleword boundary. */ -+ cmpdi cr7,r4,0 -+ ld r12,0(r8) /* Load doubleword from memory. */ -+ li r9,0 /* used to store last occurence */ -+ li r0,0 /* Doubleword with null chars to use -+ with cmpb. */ -+ -+ rlwinm r6,r3,3,26,28 /* Calculate padding. */ -+ -+ beq cr7,L(null_match) -+ -+ /* Replicate byte to doubleword. */ -+ insrdi r4,r4,8,48 -+ insrdi r4,r4,16,32 -+ insrdi r4,r4,32,0 -+ -+ /* r4 is changed now ,if its passed as more chars -+ check for null again */ -+ cmpdi cr7,r4,0 -+ beq cr7,L(null_match) -+ /* Now r4 has a doubleword of c bytes and r0 has -+ a doubleword of null bytes. */ -+ -+ cmpb r10,r12,r4 /* Compare each byte against c byte. */ -+ cmpb r11,r12,r0 /* Compare each byte against null byte. */ -+ -+ /* Move the doublewords left and right to discard the bits that are -+ not part of the string and bring them back as zeros. */ -+#ifdef __LITTLE_ENDIAN__ -+ srd r10,r10,r6 -+ srd r11,r11,r6 -+ sld r10,r10,r6 -+ sld r11,r11,r6 -+#else -+ sld r10,r10,r6 -+ sld r11,r11,r6 -+ srd r10,r10,r6 -+ srd r11,r11,r6 -+#endif -+ or r5,r10,r11 /* OR the results to speed things up. */ -+ cmpdi cr7,r5,0 /* If r5 == 0, no c or null bytes -+ have been found. */ -+ bne cr7,L(done) -+ -+L(align): -+ mtcrf 0x01,r8 -+ -+ /* Are we now aligned to a doubleword boundary? If so, skip to -+ the main loop. Otherwise, go through the alignment code. */ -+ -+ bt 28,L(loop) -+ -+ /* Handle WORD2 of pair. */ -+ ldu r12,8(r8) -+ cmpb r10,r12,r4 -+ cmpb r11,r12,r0 -+ or r5,r10,r11 -+ cmpdi cr7,r5,0 -+ bne cr7,L(done) -+ b L(loop) /* We branch here (rather than falling through) -+ to skip the nops due to heavy alignment -+ of the loop below. */ -+ .p2align 5 -+L(loop): -+ /* Load two doublewords, compare and merge in a -+ single register for speed. This is an attempt -+ to speed up the null-checking process for bigger strings. */ -+ ld r12,8(r8) -+ ldu r7,16(r8) -+ cmpb r10,r12,r4 -+ cmpb r11,r12,r0 -+ cmpb r6,r7,r4 -+ cmpb r7,r7,r0 -+ or r12,r10,r11 -+ or r5,r6,r7 -+ or r5,r12,r5 -+ cmpdi cr7,r5,0 -+ beq cr7,L(loop) -+ -+ /* OK, one (or both) of the doublewords contains a c/null byte. Check -+ the first doubleword and decrement the address in case the first -+ doubleword really contains a c/null byte. */ -+ cmpdi cr6,r12,0 -+ addi r8,r8,-8 -+ bne cr6,L(done) -+ -+ /* The c/null byte must be in the second doubleword. Adjust the -+ address again and move the result of cmpb to r10 so we can calculate -+ the pointer. */ -+ -+ mr r10,r6 -+ mr r11,r7 -+ addi r8,r8,8 -+ -+ /* r10/r11 have the output of the cmpb instructions, that is, -+ 0xff in the same position as the c/null byte in the original -+ doubleword from the string. Use that to calculate the pointer. */ -+ -+L(done): -+ /* if there are more than one 0xff in r11, find the first pos of ff -+ in r11 and fill r10 with 0 from that position */ -+ cmpdi cr7,r11,0 -+ beq cr7,L(no_null) -+#ifdef __LITTLE_ENDIAN__ -+ addi r3,r11,-1 -+ andc r3,r3,r11 -+ popcntd r0,r3 -+#else -+ cntlzd r0,r11 -+#endif -+ subfic r0,r0,63 -+ li r6,-1 -+#ifdef __LITTLE_ENDIAN__ -+ srd r0,r6,r0 -+#else -+ sld r0,r6,r0 -+#endif -+ and r10,r0,r10 -+L(no_null): -+#ifdef __LITTLE_ENDIAN__ -+ cntlzd r0,r10 /* Count leading zeros before c matches. */ -+ addi r3,r10,-1 -+ andc r3,r3,r10 -+ addi r10,r11,-1 -+ andc r10,r10,r11 -+ cmpld cr7,r3,r10 -+ bgt cr7,L(no_match) -+#else -+ addi r3,r10,-1 /* Count trailing zeros before c matches. */ -+ andc r3,r3,r10 -+ popcntd r0,r3 -+ cmpld cr7,r11,r10 -+ bgt cr7,L(no_match) -+#endif -+ srdi r0,r0,3 /* Convert trailing zeros to bytes. */ -+ subfic r0,r0,7 -+ add r9,r8,r0 /* Return address of the matching c byte -+ or null in case c was not found. */ -+ li r0,0 -+ cmpdi cr7,r11,0 /* If r11 == 0, no null's have been found. */ -+ beq cr7,L(align) -+ -+ .align 4 -+L(no_match): -+ mr r3,r9 -+ blr -+ -+/* We are here because strrchr was called with a null byte. */ -+ .align 4 -+L(null_match): -+ /* r0 has a doubleword of null bytes. */ -+ -+ cmpb r5,r12,r0 /* Compare each byte against null bytes. */ -+ -+ /* Move the doublewords left and right to discard the bits that are -+ not part of the string and bring them back as zeros. */ -+#ifdef __LITTLE_ENDIAN__ -+ srd r5,r5,r6 -+ sld r5,r5,r6 -+#else -+ sld r5,r5,r6 -+ srd r5,r5,r6 -+#endif -+ cmpdi cr7,r5,0 /* If r10 == 0, no c or null bytes -+ have been found. */ -+ bne cr7,L(done_null) -+ -+ mtcrf 0x01,r8 -+ -+ /* Are we now aligned to a quadword boundary? If so, skip to -+ the main loop. Otherwise, go through the alignment code. */ -+ -+ bt 28,L(loop_null) -+ -+ /* Handle WORD2 of pair. */ -+ ldu r12,8(r8) -+ cmpb r5,r12,r0 -+ cmpdi cr7,r5,0 -+ bne cr7,L(done_null) -+ b L(loop_null) /* We branch here (rather than falling through) -+ to skip the nops due to heavy alignment -+ of the loop below. */ -+ -+ /* Main loop to look for the end of the string. Since it's a -+ small loop (< 8 instructions), align it to 32-bytes. */ -+ .p2align 5 -+L(loop_null): -+ /* Load two doublewords, compare and merge in a -+ single register for speed. This is an attempt -+ to speed up the null-checking process for bigger strings. */ -+ ld r12,8(r8) -+ ldu r11,16(r8) -+ cmpb r5,r12,r0 -+ cmpb r10,r11,r0 -+ or r6,r5,r10 -+ cmpdi cr7,r6,0 -+ beq cr7,L(loop_null) -+ -+ /* OK, one (or both) of the doublewords contains a null byte. Check -+ the first doubleword and decrement the address in case the first -+ doubleword really contains a null byte. */ -+ -+ cmpdi cr6,r5,0 -+ addi r8,r8,-8 -+ bne cr6,L(done_null) -+ -+ /* The null byte must be in the second doubleword. Adjust the address -+ again and move the result of cmpb to r10 so we can calculate the -+ pointer. */ -+ -+ mr r5,r10 -+ addi r8,r8,8 -+ -+ /* r5 has the output of the cmpb instruction, that is, it contains -+ 0xff in the same position as the null byte in the original -+ doubleword from the string. Use that to calculate the pointer. */ -+L(done_null): -+#ifdef __LITTLE_ENDIAN__ -+ addi r0,r5,-1 -+ andc r0,r0,r5 -+ popcntd r0,r0 -+#else -+ cntlzd r0,r5 /* Count leading zeros before the match. */ -+#endif -+ srdi r0,r0,3 /* Convert trailing zeros to bytes. */ -+ add r3,r8,r0 /* Return address of the matching null byte. */ -+ blr -+END (strrchr) -+weak_alias (strrchr, rindex) -+libc_hidden_builtin_def (strrchr) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strspn.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power7/strspn.S -@@ -0,0 +1,165 @@ -+/* Optimized strspn implementation for PowerPC64/POWER7. -+ -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+/* size_t [r3] strspn (const char *string [r3], -+ const char *needleAccept [r4] */ -+ -+/* Performance gains are grabbed through following techniques: -+ -+ > hashing of needle. -+ > hashing avoids scanning of duplicate entries in needle -+ across the string. -+ > initializing the hash table with Vector instructions -+ by quadword access. -+ > unrolling when scanning for character in string -+ across hash table. */ -+ -+/* Algorithm is as below: -+ 1. A empty hash table/dictionary is created comprising of -+ 256 ascii character set -+ 2. When hash entry is found in needle , the hash index -+ is initialized to 1 -+ 3. The string is scanned until end and for every character, -+ its corresponding hash index is compared. -+ 4. initial length of string (count) until first hit of -+ accept needle to be found is set to 0 -+ 4. If hash index is set to 1 for the index of string, -+ count is returned. -+ 5. Otherwise count is incremented and scanning continues -+ until end of string. */ -+ -+#include -+ -+#undef strspn -+ -+ .machine power7 -+EALIGN(strspn, 4, 0) -+ CALL_MCOUNT 2 -+ -+ lbz r10, 0(r4) /* load r10 with needle (r4) */ -+ addi r9, r1, -256 /* r9 is a hash of 256 bytes */ -+ -+ li r5, 16 /* set r5 = 16 as offset */ -+ li r6, 32 /* set r6 = 32 as offset */ -+ li r8, 48 /* set r8 = 48 as offset */ -+ -+/*Iniatliaze hash table with Zeroes in double indexed quadword accesses */ -+ xxlxor v0, v0, v0 /* prepare for initializing hash */ -+ -+ stxvd2x v0, r0, r9 /* initialize 1st quadword */ -+ stxvd2x v0, r9, r5 -+ stxvd2x v0, r9, r6 -+ stxvd2x v0, r9, r8 /* initialize 4th quadword */ -+ -+ addi r11, r9, 64 /* r11 is index to hash */ -+ -+ stxvd2x v0, r0, r11 /* initialize 5th quadword */ -+ stxvd2x v0, r11, r5 -+ stxvd2x v0, r11, r6 -+ stxvd2x v0, r11, r8 /* initialize 8th quadword */ -+ -+ addi r11, r9, 128 /* r11 is index to hash */ -+ -+ stxvd2x v0, r0, r11 /* initialize 9th quadword */ -+ stxvd2x v0, r11, r5 -+ stxvd2x v0, r11, r6 -+ stxvd2x v0, r11, r8 /* initialize 12th quadword */ -+ -+ addi r11, r9, 192 /* r11 is index to hash */ -+ -+ stxvd2x v0, r0, r11 /* initialize 13th quadword */ -+ stxvd2x v0, r11, r5 -+ stxvd2x v0, r11, r6 -+ stxvd2x v0, r11, r8 /* initialize 16th quadword */ -+ -+ li r8, 1 /* r8=1, marker into hash if found in -+ needle */ -+ -+ cmpdi cr7, r10, 0 /* accept needle is NULL */ -+ beq cr7, L(skipHashing) /* if needle is NULL, skip hashing */ -+ -+ .p2align 4 /* align section to 16 byte boundary */ -+L(hashing): -+ stbx r8, r9, r10 /* update hash with marker for the pivot of -+ the needle */ -+ lbzu r10, 1(r4) /* load needle into r10 and update to next */ -+ cmpdi cr7, r10, 0 /* if needle is has reached NULL, continue */ -+ bne cr7, L(hashing) /* loop to hash the needle */ -+ -+L(skipHashing): -+ li r10, 0 /* load counter = 0 */ -+ b L(beginScan) -+ -+ .p2align 4 /* align section to 16 byte boundary */ -+L(scanUnroll): -+ lbzx r8, r9, r8 /* load r8 with hash value at index */ -+ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found -+ accept needle */ -+ beq cr7, L(ret1stIndex) /* we have hit accept needle, return the -+ count */ -+ -+ lbz r8, 1(r3) /* load string[1] into r8 */ -+ addi r10, r10, 4 /* increment counter */ -+ lbzx r8, r9, r8 /* load r8 with hash value at index */ -+ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found -+ accept needle */ -+ beq cr7, L(ret2ndIndex) /* we have hit accept needle, return the -+ count */ -+ -+ lbz r8, 2(r3) /* load string[2] into r8 */ -+ lbzx r8, r9, r8 /* load r8 with hash value at index */ -+ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found -+ accept needle */ -+ beq cr7, L(ret3rdIndex) /* we have hit accept needle, return the -+ count */ -+ -+ lbz r8, 3(r3) /* load string[3] into r8 */ -+ lbzx r8, r9, r8 /* load r8 with hash value at index */ -+ addi r3, r3, 4 /* unroll factor , increment string by 4 */ -+ cmpwi cr7, r8, 0 /* if we hit marker in hash, we have found -+ accept needle */ -+ beq cr7,L(ret4thIndex) /* we have hit accept needle, return the -+ count */ -+ -+L(beginScan): -+ lbz r8, 0(r3) /* load string[0] into r8 */ -+ addi r6, r10, 1 /* place holder for counter + 1 */ -+ addi r5, r10, 2 /* place holder for counter + 2 */ -+ addi r4, r10, 3 /* place holder for counter + 3 */ -+ cmpdi cr7, r8, 0 /* if we hit marker in hash, we have found -+ accept needle */ -+ bne cr7, L(scanUnroll) /* continue scanning */ -+ -+L(ret1stIndex): -+ mr r3, r10 /* update r3 for return */ -+ blr /* return */ -+ -+L(ret2ndIndex): -+ mr r3, r6 /* update r3 for return */ -+ blr /* return */ -+ -+L(ret3rdIndex): -+ mr r3, r5 /* update r3 for return */ -+ blr /* return */ -+ -+L(ret4thIndex): -+ mr r3, r4 /* update r3 for return */ -+ blr /* done */ -+END(strspn) -+libc_hidden_builtin_def (strspn) -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S -@@ -0,0 +1,61 @@ -+/* isfinite(). PowerPC64/POWER8 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ -+#else -+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ -+#endif -+ -+/* int [r3] __finite ([fp1] x) */ -+ -+EALIGN (__finite, 4, 0) -+ CALL_MCOUNT 0 -+ MFVSRD_R3_V1 -+ lis r9,0x8010 -+ clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */ -+ rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */ -+ add r3,r3,r9 -+ rldicl r3,r3,1,63 -+ blr -+END (__finite) -+ -+hidden_def (__finite) -+weak_alias (__finite, finite) -+ -+/* It turns out that the 'double' version will also always work for -+ single-precision. */ -+strong_alias (__finite, __finitef) -+hidden_def (__finitef) -+weak_alias (__finitef, finitef) -+ -+#ifdef IS_IN_libm -+# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) -+compat_symbol (libm, __finite, __finitel, GLIBC_2_0) -+compat_symbol (libm, finite, finitel, GLIBC_2_0) -+# endif -+#else -+# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) -+compat_symbol (libc, __finite, __finitel, GLIBC_2_0); -+compat_symbol (libc, finite, finitel, GLIBC_2_0); -+# endif -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S -@@ -0,0 +1 @@ -+/* This function uses the same code as s_finite.S. */ -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S -@@ -0,0 +1,66 @@ -+/* isinf(). PowerPC64/POWER8 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ -+#else -+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ -+#endif -+ -+/* int [r3] __isinf([fp1] x) */ -+ -+EALIGN (__isinf, 4, 0) -+ CALL_MCOUNT 0 -+ MFVSRD_R3_V1 -+ lis r9,0x7ff0 /* r9 = 0x7ff0 */ -+ rldicl r10,r3,0,1 /* r10 = r3 & (0x8000000000000000) */ -+ sldi r9,r9,32 /* r9 = r9 << 52 */ -+ cmpd cr7,r10,r9 /* fp1 & 0x7ff0000000000000 ? */ -+ beq cr7,L(inf) -+ li r3,0 /* Not inf */ -+ blr -+L(inf): -+ sradi r3,r3,63 /* r3 = r3 >> 63 */ -+ ori r3,r3,1 /* r3 = r3 | 0x1 */ -+ blr -+END (__isinf) -+ -+hidden_def (__isinf) -+weak_alias (__isinf, isinf) -+ -+/* It turns out that the 'double' version will also always work for -+ single-precision. */ -+strong_alias (__isinf, __isinff) -+hidden_def (__isinff) -+weak_alias (__isinff, isinff) -+ -+#ifdef NO_LONG_DOUBLE -+strong_alias (__isinf, __isinfl) -+weak_alias (__isinf, isinfl) -+#endif -+ -+#ifndef IS_IN_libm -+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) -+compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0); -+compat_symbol (libc, isinf, isinfl, GLIBC_2_0); -+# endif -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S -@@ -0,0 +1 @@ -+/* This function uses the same code as s_isinf.S. */ -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S -@@ -0,0 +1,58 @@ -+/* isnan(). PowerPC64/POWER8 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ -+#else -+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ -+#endif -+ -+/* int [r3] __isnan([f1] x) */ -+ -+EALIGN (__isnan, 4, 0) -+ CALL_MCOUNT 0 -+ MFVSRD_R3_V1 -+ lis r9,0x7ff0 -+ clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */ -+ rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */ -+ subf r3,r3,r9 -+ rldicl r3,r3,1,63 -+ blr -+END (__isnan) -+ -+/* It turns out that the 'double' version will also always work for -+ single-precision. */ -+strong_alias (__isnan, __isnanf) -+hidden_def (__isnanf) -+weak_alias (__isnanf, isnanf) -+ -+#ifdef NO_LONG_DOUBLE -+strong_alias (__isnan, __isnanl) -+weak_alias (__isnan, isnanl) -+#endif -+ -+#ifndef IS_IN_libm -+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) -+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0); -+compat_symbol (libc, isnan, isnanl, GLIBC_2_0); -+# endif -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S -@@ -0,0 +1 @@ -+/* This function uses the same code as s_isnan.S. */ -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S -@@ -0,0 +1,50 @@ -+/* Round double to long int. POWER8 PowerPC64 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ -+#else -+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ -+#endif -+ -+/* long long int[r3] __llrint (double x[fp1]) */ -+ENTRY (__llrint) -+ CALL_MCOUNT 0 -+ fctid fp1,fp1 -+ MFVSRD_R3_V1 -+ blr -+END (__llrint) -+ -+strong_alias (__llrint, __lrint) -+weak_alias (__llrint, llrint) -+weak_alias (__lrint, lrint) -+ -+#ifdef NO_LONG_DOUBLE -+strong_alias (__llrint, __llrintl) -+weak_alias (__llrint, llrintl) -+strong_alias (__lrint, __lrintl) -+weak_alias (__lrint, lrintl) -+#endif -+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -+compat_symbol (libm, __llrint, llrintl, GLIBC_2_1) -+compat_symbol (libm, __lrint, lrintl, GLIBC_2_1) -+#endif -Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S -@@ -0,0 +1,52 @@ -+/* llround function. POWER8 PowerPC64 version. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+#define MFVSRD_R3_V1 .byte 0x66,0x00,0x23,0x7c /* mfvsrd r3,vs1 */ -+#else -+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */ -+#endif -+ -+/* long long [r3] llround (float x [fp1]) */ -+ -+ENTRY (__llround) -+ CALL_MCOUNT 0 -+ frin fp1,fp1 /* Round to nearest +-0.5. */ -+ fctidz fp1,fp1 /* Convert To Integer DW round toward 0. */ -+ MFVSRD_R3_V1 -+ blr -+END (__llround) -+ -+strong_alias (__llround, __lround) -+weak_alias (__llround, llround) -+weak_alias (__lround, lround) -+ -+#ifdef NO_LONG_DOUBLE -+weak_alias (__llround, llroundl) -+strong_alias (__llround, __llroundl) -+weak_alias (__lround, lroundl) -+strong_alias (__lround, __lroundl) -+#endif -+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -+compat_symbol (libm, __llround, llroundl, GLIBC_2_1) -+compat_symbol (libm, __lround, lroundl, GLIBC_2_1) -+#endif diff --git a/ppc64-copysign.patch b/ppc64-copysign.patch deleted file mode 100644 index 5cdcb94..0000000 --- a/ppc64-copysign.patch +++ /dev/null @@ -1,23 +0,0 @@ -2014-04-01 Alan Modra - - [BZ #16786] - * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Don't trash stack. - -Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_copysign.S -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/s_copysign.S -+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/s_copysign.S -@@ -27,11 +27,11 @@ ENTRY(__copysign) - /* double [f1] copysign (double [f1] x, double [f2] y); - copysign(x,y) returns a value with the magnitude of x and - with the sign bit of y. */ -- stfd fp2,56(r1) -+ stfd fp2,-8(r1) - nop - nop - nop -- ld r3,56(r1) -+ ld r3,-8(r1) - cmpdi r3,0 - blt L(0) - fabs fp1,fp1 diff --git a/ppc64le-profiling.patch b/ppc64le-profiling.patch deleted file mode 100644 index f495711..0000000 --- a/ppc64le-profiling.patch +++ /dev/null @@ -1,23 +0,0 @@ -2013-07-29 Adhemerval Zanella - - [BZ #17213] - * sysdeps/powerpc/powerpc64/entry.h: Fix TEXT_START definition for - powerpc64le. - -Index: glibc-2.19/sysdeps/powerpc/powerpc64/entry.h -=================================================================== ---- glibc-2.19.orig/sysdeps/powerpc/powerpc64/entry.h -+++ glibc-2.19/sysdeps/powerpc/powerpc64/entry.h -@@ -23,6 +23,7 @@ extern void _start (void); - - #define ENTRY_POINT _start - -+#if _CALL_ELF != 2 - /* We have to provide a special declaration. */ - #define ENTRY_POINT_DECL(class) class void _start (void); - -@@ -33,3 +34,4 @@ extern void _start (void); - #define TEXT_START \ - ({ extern unsigned long int _start_as_data[] asm ("_start"); \ - _start_as_data[0]; }) -+#endif diff --git a/psfaa.patch b/psfaa.patch deleted file mode 100644 index f3596ae..0000000 --- a/psfaa.patch +++ /dev/null @@ -1,139 +0,0 @@ -2014-06-11 Florian Weimer - - [BZ #17048] - * posix/spawn_int.h (struct __spawn_action): Make the path string - non-const to support deallocation. - * posix/spawn_faction_addopen.c - (posix_spawn_file_actions_addopen): Make a copy of the pathname. - * posix/spawn_faction_destroy.c - (posix_spawn_file_actions_destroy): Adjust comment. Deallocate - path in all spawn_do_open actions. - * posix/tst-spawn.c (do_test): Exercise the copy operation in - posix_spawn_file_actions_addopen. - -Index: glibc-2.19/posix/spawn_faction_addopen.c -=================================================================== ---- glibc-2.19.orig/posix/spawn_faction_addopen.c -+++ glibc-2.19/posix/spawn_faction_addopen.c -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - - #include "spawn_int.h" - -@@ -35,17 +36,24 @@ posix_spawn_file_actions_addopen (posix_ - if (fd < 0 || fd >= maxfd) - return EBADF; - -+ char *path_copy = strdup (path); -+ if (path_copy == NULL) -+ return ENOMEM; -+ - /* Allocate more memory if needed. */ - if (file_actions->__used == file_actions->__allocated - && __posix_spawn_file_actions_realloc (file_actions) != 0) -- /* This can only mean we ran out of memory. */ -- return ENOMEM; -+ { -+ /* This can only mean we ran out of memory. */ -+ free (path_copy); -+ return ENOMEM; -+ } - - /* Add the new value. */ - rec = &file_actions->__actions[file_actions->__used]; - rec->tag = spawn_do_open; - rec->action.open_action.fd = fd; -- rec->action.open_action.path = path; -+ rec->action.open_action.path = path_copy; - rec->action.open_action.oflag = oflag; - rec->action.open_action.mode = mode; - -Index: glibc-2.19/posix/spawn_faction_destroy.c -=================================================================== ---- glibc-2.19.orig/posix/spawn_faction_destroy.c -+++ glibc-2.19/posix/spawn_faction_destroy.c -@@ -18,11 +18,29 @@ - #include - #include - --/* Initialize data structure for file attribute for `spawn' call. */ -+#include "spawn_int.h" -+ -+/* Deallocate the file actions. */ - int - posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions) - { -- /* Free the memory allocated. */ -+ /* Free the paths in the open actions. */ -+ for (int i = 0; i < file_actions->__used; ++i) -+ { -+ struct __spawn_action *sa = &file_actions->__actions[i]; -+ switch (sa->tag) -+ { -+ case spawn_do_open: -+ free (sa->action.open_action.path); -+ break; -+ case spawn_do_close: -+ case spawn_do_dup2: -+ /* No cleanup required. */ -+ break; -+ } -+ } -+ -+ /* Free the array of actions. */ - free (file_actions->__actions); - return 0; - } -Index: glibc-2.19/posix/spawn_int.h -=================================================================== ---- glibc-2.19.orig/posix/spawn_int.h -+++ glibc-2.19/posix/spawn_int.h -@@ -22,7 +22,7 @@ struct __spawn_action - struct - { - int fd; -- const char *path; -+ char *path; - int oflag; - mode_t mode; - } open_action; -Index: glibc-2.19/posix/tst-spawn.c -=================================================================== ---- glibc-2.19.orig/posix/tst-spawn.c -+++ glibc-2.19/posix/tst-spawn.c -@@ -168,6 +168,7 @@ do_test (int argc, char *argv[]) - char fd2name[18]; - char fd3name[18]; - char fd4name[18]; -+ char *name3_copy; - char *spargv[12]; - int i; - -@@ -222,9 +223,15 @@ do_test (int argc, char *argv[]) - if (posix_spawn_file_actions_addclose (&actions, fd1) != 0) - error (EXIT_FAILURE, errno, "posix_spawn_file_actions_addclose"); - /* We want to open the third file. */ -- if (posix_spawn_file_actions_addopen (&actions, fd3, name3, -+ name3_copy = strdup (name3); -+ if (name3_copy == NULL) -+ error (EXIT_FAILURE, errno, "strdup"); -+ if (posix_spawn_file_actions_addopen (&actions, fd3, name3_copy, - O_RDONLY, 0666) != 0) - error (EXIT_FAILURE, errno, "posix_spawn_file_actions_addopen"); -+ /* Overwrite the name to check that a copy has been made. */ -+ memset (name3_copy, 'X', strlen (name3_copy)); -+ - /* We dup the second descriptor. */ - fd4 = MAX (2, MAX (fd1, MAX (fd2, fd3))) + 1; - if (posix_spawn_file_actions_adddup2 (&actions, fd2, fd4) != 0) -@@ -253,6 +260,7 @@ do_test (int argc, char *argv[]) - /* Cleanup. */ - if (posix_spawn_file_actions_destroy (&actions) != 0) - error (EXIT_FAILURE, errno, "posix_spawn_file_actions_destroy"); -+ free (name3_copy); - - /* Wait for the child. */ - if (waitpid (pid, &status, 0) != pid) diff --git a/pthread-mutex-trylock-elision.patch b/pthread-mutex-trylock-elision.patch index 6886125..cc2fec3 100644 --- a/pthread-mutex-trylock-elision.patch +++ b/pthread-mutex-trylock-elision.patch @@ -1,19 +1,15 @@ [PATCH] Properly handle forced elision in pthread_mutex_trylock BZ #16657 - * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use + * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Use FORCE_ELISION instead of DO_ELISION. * sysdeps/unix/sysv/linux/x86/force-elision.h (DO_ELISION): Remove. ---- - nptl/pthread_mutex_trylock.c | 7 +++---- - nptl/sysdeps/unix/sysv/linux/x86/force-elision.h | 5 ----- - 2 files changed, 3 insertions(+), 9 deletions(-) -Index: glibc-2.19/nptl/pthread_mutex_trylock.c +Index: glibc-2.19.90/nptl/pthread_mutex_trylock.c =================================================================== ---- glibc-2.19.orig/nptl/pthread_mutex_trylock.c -+++ glibc-2.19/nptl/pthread_mutex_trylock.c +--- glibc-2.19.90.orig/nptl/pthread_mutex_trylock.c ++++ glibc-2.19.90/nptl/pthread_mutex_trylock.c @@ -26,8 +26,8 @@ #define lll_trylock_elision(a,t) lll_trylock(a) #endif @@ -35,10 +31,10 @@ Index: glibc-2.19/nptl/pthread_mutex_trylock.c /*FALL THROUGH*/ case PTHREAD_MUTEX_ADAPTIVE_NP: case PTHREAD_MUTEX_ERRORCHECK_NP: -Index: glibc-2.19/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h +Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86/force-elision.h =================================================================== ---- glibc-2.19.orig/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h -+++ glibc-2.19/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h +--- glibc-2.19.90.orig/sysdeps/unix/sysv/linux/x86/force-elision.h ++++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86/force-elision.h @@ -16,11 +16,6 @@ License along with the GNU C Library; if not, see . */ diff --git a/resolv-dont-ignore-second-answer.patch b/resolv-dont-ignore-second-answer.patch deleted file mode 100644 index a540f22..0000000 --- a/resolv-dont-ignore-second-answer.patch +++ /dev/null @@ -1,33 +0,0 @@ -Don't ignore second answer from nameserver if the first one was empty (BZ #13651) - -Index: glibc-2.19/resolv/res_query.c -=================================================================== ---- glibc-2.19.orig/resolv/res_query.c -+++ glibc-2.19/resolv/res_query.c -@@ -382,7 +382,7 @@ __libc_res_nsearch(res_state statp, - answer, anslen, answerp, - answerp2, nanswerp2, resplen2, - answerp2_malloced); -- if (ret > 0 || trailing_dot) -+ if (ret > 0 || (ret == 0 && *resplen2 > 0) || trailing_dot) - return (ret); - saved_herrno = h_errno; - tried_as_is++; -@@ -422,7 +422,7 @@ __libc_res_nsearch(res_state statp, - answer, anslen, answerp, - answerp2, nanswerp2, - resplen2, answerp2_malloced); -- if (ret > 0) -+ if (ret > 0 || (ret == 0 && *resplen2 > 0)) - return (ret); - - if (answerp && *answerp != answer) { -@@ -491,7 +491,7 @@ __libc_res_nsearch(res_state statp, - answer, anslen, answerp, - answerp2, nanswerp2, resplen2, - answerp2_malloced); -- if (ret > 0) -+ if (ret > 0 || (ret == 0 && *resplen2 > 0)) - return (ret); - } - diff --git a/s390-revert-abi-change.patch b/s390-revert-abi-change.patch deleted file mode 100644 index 59c55f7..0000000 --- a/s390-revert-abi-change.patch +++ /dev/null @@ -1,2292 +0,0 @@ -2014-07-30 Stefan Liebler - - * sysdeps/s390/Makefile: Delete file. - * sysdeps/s390/Versions (GLIBC_2.19): Remove __setjmp. - * sysdeps/s390/__longjmp.c: Delete file. - * sysdeps/s390/bits/setjmp.h (__s390_jmp_buf): - Remove fields __flags and __reserved. - * sysdeps/s390/longjmp.c: Include setjmp/longjmp.c - and add versioning. - * sysdeps/s390/rtld-__longjmp.c: Delete file. - * sysdeps/s390/rtld-global-offsets.sym: Likewise. - * sysdeps/s390/rtld-setjmp.S: Likewise. - * sysdeps/s390/s390-32/__longjmp-common.c: Move to ... - * sysdeps/s390/s390-32/__longjmp.c: ... here. - * sysdeps/s390/s390-32/setjmp-common.S: Move to ... - * sysdeps/s390/s390-32/setjmp.S: ... here. - Add versioning. - (__sigsetjmp): Remove setting __flags field. - * sysdeps/s390/s390-64/__longjmp-common.c:Move to ... - * sysdeps/s390/s390-64/__longjmp.c: ... here. - * sysdeps/s390/s390-64/setjmp-common.S: Move to ... - * sysdeps/s390/s390-64/setjmp.S: ... here. - Add versioning. - (__sigsetjmp): Remove setting __flags field. - * sysdeps/s390/setjmp.S: Delete file. - * sysdeps/s390/sigjmp.c: Likewise. - * sysdeps/s390/v1-longjmp.c: Likewise. - * sysdeps/s390/v1-setjmp.h: Likewise. - * sysdeps/s390/v1-sigjmp.c: Likewise. - * sysdeps/unix/sysv/linux/s390/Makefile (sysdep_routines): - Remove v1-longjmp_chk. - * sysdeps/unix/sysv/linux/s390/getcontext.S: Delete file. - * sysdeps/unix/sysv/linux/s390/longjmp_chk.c: - Include debug/longjmp_chk.c and add versioning. - * nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c: - Include nptl/sysdeps/pthread/pt-longjmp.c and add versioning. - * sysdeps/unix/sysv/linux/s390/rtld-getcontext.S: Delete file. - * sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c: - Include __longjmp.c. - * sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S: - Move to ... - * sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S: ... here. - (__getcontext): Remove setting __flags field. - Add versioning. - * sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S: - Don´t restore upper high grps. - * sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S: - Likewise. - (__swapcontext): Remove setting uc_flags field. - * sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym: - Delete file. - * sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c: - Include __longjmp.c. - * sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S: - Move to ... - * sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S: ... here. - (__getcontext): Remove setting __flags field. - Add versioning. - * sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S: - (__swapcontext): Remove setting uc_flags field. - * unix/sysv/linux/s390/s390-64/ucontext_i.sym: Delete file. - * sysdeps/unix/sysv/linux/s390/sys/ucontext.h (ucontext): - Remove fields uc_high_gprs and __reserved. - * sysdeps/unix/sysv/linux/s390/ucontext_i.sym: - New file with reverted content. - * sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c: Delete file. - * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: - Regenerated. - * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: - Regenerated. - -Index: glibc-2.19/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -=================================================================== ---- glibc-2.19.orig/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -+++ glibc-2.19/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c -@@ -15,49 +15,30 @@ - License along with the GNU C Library; if not, see - . - -- This is a copy of pthread/pt-longjmp.c made for extending the -- jmpbuf structure on System z. */ -+ Versioned copy of nptl/pt-longjmp.c modified for versioning -+ the reverted jmpbuf extension. */ - --#include --#include --#include --#include "pthreadP.h" - #include --#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19) - --/* The __v1 version prototypes are declared in v1-setjmp.h which -- cannot be included together with setjmp.h. So we put the -- prototypes here manually. */ --extern void __v1__libc_siglongjmp (sigjmp_buf env, int val) -- __attribute__ ((noreturn)); --extern void __v1__libc_longjmp (sigjmp_buf env, int val) -- __attribute__ ((noreturn)); -- --void __v1_siglongjmp (sigjmp_buf env, int val) --{ -- __v1__libc_siglongjmp (env, val); --} -- --void __v1_longjmp (jmp_buf env, int val) --{ -- __v1__libc_longjmp (env, val); --} -- --compat_symbol (libpthread, __v1_longjmp, longjmp, GLIBC_2_0); --compat_symbol (libpthread, __v1_siglongjmp, siglongjmp, GLIBC_2_0); --#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_19)) */ -- --void --__v2_longjmp (jmp_buf env, int val) --{ -- __libc_longjmp (env, val); --} -- --void --__v2_siglongjmp (jmp_buf env, int val) --{ -- __libc_siglongjmp (env, val); --} -- --versioned_symbol (libpthread, __v2_longjmp, longjmp, GLIBC_2_19); --versioned_symbol (libpthread, __v2_siglongjmp, siglongjmp, GLIBC_2_19); -+#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20) -+ /* we need a unique name in case of symbol versioning. */ -+# define longjmp __v1longjmp -+#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */ -+ -+#include -+ -+#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20) -+/* In glibc release 2.19 new versions of longjmp-functions were introduced, -+ but were reverted before 2.20. Thus both versions are the same function. */ -+ -+# undef longjmp -+ -+strong_alias (__v1longjmp, __v2longjmp) -+versioned_symbol (libpthread, __v1longjmp, longjmp, GLIBC_2_0); -+compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19); -+ -+weak_alias (siglongjmp, __v1siglongjmp) -+weak_alias (siglongjmp, __v2siglongjmp) -+versioned_symbol (libpthread, __v1siglongjmp, siglongjmp, GLIBC_2_0); -+compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19); -+#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */ -Index: glibc-2.19/sysdeps/s390/Makefile -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/Makefile -+++ /dev/null -@@ -1,9 +0,0 @@ --ifeq ($(subdir),setjmp) --ifeq (yes,$(build-shared)) --sysdep_routines += v1-longjmp v1-sigjmp --endif --endif -- --ifeq ($(subdir),csu) --gen-as-const-headers += rtld-global-offsets.sym --endif -Index: glibc-2.19/sysdeps/s390/Versions -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/Versions -+++ glibc-2.19/sysdeps/s390/Versions -@@ -1,12 +1,8 @@ - libc { - GLIBC_2.19 { -- setjmp; _setjmp; __setjmp; __sigsetjmp; -+ setjmp; _setjmp; __sigsetjmp; - longjmp; _longjmp; siglongjmp; - } -- GLIBC_PRIVATE { -- __v1__libc_longjmp; __v1__libc_siglongjmp; -- __v2__libc_longjmp; __v2__libc_siglongjmp; -- } - } - - ld { -Index: glibc-2.19/sysdeps/s390/__longjmp.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/__longjmp.c -+++ /dev/null -@@ -1,31 +0,0 @@ --/* Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- --#define __longjmp __v2__longjmp --#include "__longjmp-common.c" --#undef __longjmp --strong_alias (__v2__longjmp, __longjmp) -- --#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) --# undef __longjmp --# define __V1_JMPBUF --# define __longjmp __v1__longjmp --# include "__longjmp-common.c" --#endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ -Index: glibc-2.19/sysdeps/s390/bits/setjmp.h -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/bits/setjmp.h -+++ glibc-2.19/sysdeps/s390/bits/setjmp.h -@@ -40,10 +40,6 @@ typedef struct __s390_jmp_buf - /* We save fpu registers 4 and 6. */ - long __fpregs[4]; - # endif --#ifndef __V1_JMPBUF -- unsigned long __flags; -- char __reserved[128]; --#endif - } __jmp_buf[1]; - - #endif -Index: glibc-2.19/sysdeps/s390/longjmp.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/longjmp.c -+++ glibc-2.19/sysdeps/s390/longjmp.c -@@ -15,50 +15,28 @@ - License along with the GNU C Library; if not, see - . - -- Versioned copy of sysdeps/generic/longjmp.c modified for extended -- jmpbuf. */ -+ Versioned copy of setjmp/longjmp.c modified for versioning -+ the reverted jmpbuf extension. */ - - #include --#include --#include --#include -- --extern void __v2__longjmp (__jmp_buf __env, int __val) -- __attribute__ ((__noreturn__)); --extern void __v2__libc_longjmp (sigjmp_buf env, int val) -- __attribute__ ((__noreturn__)); --libc_hidden_proto (__v2__libc_longjmp) -- --/* Set the signal mask to the one specified in ENV, and jump -- to the position specified in ENV, causing the setjmp -- call there to return VAL, or 1 if VAL is 0. */ --void --__v2__libc_siglongjmp (sigjmp_buf env, int val) --{ -- /* Perform any cleanups needed by the frames being unwound. */ -- _longjmp_unwind (env, val); -- -- if (env[0].__mask_was_saved) -- /* Restore the saved signal mask. */ -- (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask, -- (sigset_t *) NULL); -- -- /* Call the machine-dependent function to restore machine state. */ -- __v2__longjmp (env[0].__jmpbuf, val ?: 1); --} -- --#ifndef __v2__longjmp --strong_alias (__v2__libc_siglongjmp, __v2__libc_longjmp) --libc_hidden_def (__v2__libc_longjmp) --weak_alias (__v2__libc_siglongjmp, __v2_longjmp) --weak_alias (__v2__libc_siglongjmp, __v2longjmp) --weak_alias (__v2__libc_siglongjmp, __v2siglongjmp) -- --/* These will be used by libpthread only. */ --versioned_symbol (libc, __v2__libc_longjmp, __libc_longjmp, GLIBC_PRIVATE); --versioned_symbol (libc, __v2__libc_siglongjmp, __libc_siglongjmp, GLIBC_PRIVATE); -- --versioned_symbol (libc, __v2_longjmp, _longjmp, GLIBC_2_19); --versioned_symbol (libc, __v2longjmp, longjmp, GLIBC_2_19); --versioned_symbol (libc, __v2siglongjmp, siglongjmp, GLIBC_2_19); --#endif /* ifndef __v2__longjmp */ -+ -+#include -+ -+#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+/* In glibc release 2.19 new versions of longjmp-functions were introduced, -+ but were reverted before 2.20. Thus both versions are the same function. */ -+weak_alias (__libc_siglongjmp, __v1_longjmp) -+weak_alias (__libc_siglongjmp, __v2_longjmp) -+versioned_symbol (libc, __v1_longjmp, _longjmp, GLIBC_2_0); -+compat_symbol (libc, __v2_longjmp, _longjmp, GLIBC_2_19); -+ -+weak_alias (__libc_siglongjmp, __v1longjmp) -+weak_alias (__libc_siglongjmp, __v2longjmp) -+versioned_symbol (libc, __v1longjmp, longjmp, GLIBC_2_0); -+compat_symbol (libc, __v2longjmp, longjmp, GLIBC_2_19); -+ -+weak_alias (__libc_siglongjmp, __v1siglongjmp) -+weak_alias (__libc_siglongjmp, __v2siglongjmp) -+versioned_symbol (libc, __v1siglongjmp, siglongjmp, GLIBC_2_0); -+compat_symbol (libc, __v2siglongjmp, siglongjmp, GLIBC_2_19); -+#endif /* SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -Index: glibc-2.19/sysdeps/s390/rtld-__longjmp.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/rtld-__longjmp.c -+++ /dev/null -@@ -1,19 +0,0 @@ --/* Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --/* Build a non-versioned object for rtld-*. */ --# include "__longjmp-common.c" -Index: glibc-2.19/sysdeps/s390/rtld-global-offsets.sym -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/rtld-global-offsets.sym -+++ /dev/null -@@ -1,7 +0,0 @@ --#define SHARED 1 -- --#include -- --#define rtld_global_ro_offsetof(mem) offsetof (struct rtld_global_ro, mem) -- --RTLD_GLOBAL_RO_DL_HWCAP_OFFSET rtld_global_ro_offsetof (_dl_hwcap) -Index: glibc-2.19/sysdeps/s390/rtld-setjmp.S -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/rtld-setjmp.S -+++ /dev/null -@@ -1,20 +0,0 @@ --/* Extendible version of setjmp for System z -- Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --/* Build a non-versioned object for rtld-*. */ --# include "setjmp-common.S" -Index: glibc-2.19/sysdeps/s390/s390-32/__longjmp-common.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/s390-32/__longjmp-common.c -+++ /dev/null -@@ -1,68 +0,0 @@ --/* Copyright (C) 2000-2014 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include --#include --#include --#include --#include -- --/* Jump to the position specified by ENV, causing the -- setjmp call there to return VAL, or 1 if VAL is 0. */ --attribute_hidden void --__longjmp (__jmp_buf env, int val) --{ --#ifdef PTR_DEMANGLE -- uintptr_t guard = THREAD_GET_POINTER_GUARD (); --# ifdef CHECK_SP -- CHECK_SP (env, guard); --# endif --#elif defined CHECK_SP -- CHECK_SP (env, 0); --#endif -- register int r2 __asm ("%r2") = val == 0 ? 1 : val; --#ifdef PTR_DEMANGLE -- register uintptr_t r3 __asm ("%r3") = guard; -- register void *r1 __asm ("%r1") = (void *) env; --#endif -- /* Restore registers and jump back. */ -- asm volatile ("ld %%f6,48(%1)\n\t" -- "ld %%f4,40(%1)\n\t" --#ifdef PTR_DEMANGLE -- "lm %%r6,%%r13,0(%1)\n\t" -- "lm %%r4,%%r5,32(%1)\n\t" -- "xr %%r4,%2\n\t" -- "xr %%r5,%2\n\t" -- "lr %%r15,%%r5\n\t" -- "br %%r4" --#else -- "lm %%r6,%%r15,0(%1)\n\t" -- "br %%r14" --#endif -- : : "r" (r2), --#ifdef PTR_DEMANGLE -- "r" (r1), "r" (r3) --#else -- "a" (env) --#endif -- ); -- -- /* Avoid `volatile function does return' warnings. */ -- for (;;); --} -Index: glibc-2.19/sysdeps/s390/s390-32/__longjmp.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/s390/s390-32/__longjmp.c -@@ -0,0 +1,68 @@ -+/* Copyright (C) 2000-2014 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* Jump to the position specified by ENV, causing the -+ setjmp call there to return VAL, or 1 if VAL is 0. */ -+void -+__longjmp (__jmp_buf env, int val) -+{ -+#ifdef PTR_DEMANGLE -+ uintptr_t guard = THREAD_GET_POINTER_GUARD (); -+# ifdef CHECK_SP -+ CHECK_SP (env, guard); -+# endif -+#elif defined CHECK_SP -+ CHECK_SP (env, 0); -+#endif -+ register int r2 __asm ("%r2") = val == 0 ? 1 : val; -+#ifdef PTR_DEMANGLE -+ register uintptr_t r3 __asm ("%r3") = guard; -+ register void *r1 __asm ("%r1") = (void *) env; -+#endif -+ /* Restore registers and jump back. */ -+ asm volatile ("ld %%f6,48(%1)\n\t" -+ "ld %%f4,40(%1)\n\t" -+#ifdef PTR_DEMANGLE -+ "lm %%r6,%%r13,0(%1)\n\t" -+ "lm %%r4,%%r5,32(%1)\n\t" -+ "xr %%r4,%2\n\t" -+ "xr %%r5,%2\n\t" -+ "lr %%r15,%%r5\n\t" -+ "br %%r4" -+#else -+ "lm %%r6,%%r15,0(%1)\n\t" -+ "br %%r14" -+#endif -+ : : "r" (r2), -+#ifdef PTR_DEMANGLE -+ "r" (r1), "r" (r3) -+#else -+ "a" (env) -+#endif -+ ); -+ -+ /* Avoid `volatile function does return' warnings. */ -+ for (;;); -+} -Index: glibc-2.19/sysdeps/s390/s390-32/setjmp-common.S -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/s390-32/setjmp-common.S -+++ /dev/null -@@ -1,84 +0,0 @@ --/* setjmp for s390, ELF version. -- Copyright (C) 2000-2014 Free Software Foundation, Inc. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- This file is part of the GNU C Library. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#define _ASM --#define _SETJMP_H --#include -- -- /* We include the BSD entry points here as well but we make -- them weak. */ --ENTRY (setjmp) -- .weak C_SYMBOL_NAME (setjmp) -- lhi %r3,1 /* second argument of one */ -- j 0f /* branch relativ to __sigsetjmp */ --END (setjmp) -- -- /* Binary compatibility entry point. */ --ENTRY(_setjmp) -- .weak C_SYMBOL_NAME (_setjmp) -- lhi %r3,0 /* second argument of zero */ -- j 0f /* branch relativ to __sigsetjmp */ --END (_setjmp) --libc_hidden_def (_setjmp) -- --ENTRY(__setjmp) -- lhi %r3,0 /* second argument of zero */ -- j 0f /* branch relativ to __sigsetjmp */ --END (__setjmp) -- --ENTRY(__sigsetjmp) --0: --#ifdef PTR_MANGLE -- stm %r6,%r13,0(%r2) /* store registers in jmp_buf */ -- lr %r4,%r14 -- lr %r5,%r15 -- PTR_MANGLE (%r4, %r1) -- PTR_MANGLE2 (%r5, %r1) -- stm %r4,%r5,32(%r2) --#else -- stm %r6,%r15,0(%r2) /* store registers in jmp_buf */ --#endif --#ifndef __V1_JMPBUF -- lhi %r4,0 -- st %r4,56(%r2) /* Set __flags to 0. */ --#endif -- std %f4,40(%r2) -- std %f6,48(%r2) --#if defined NOT_IN_libc && defined IS_IN_rtld -- /* In ld.so we never save the signal mask. */ -- lhi %r2,0 -- br %r14 --#elif defined PIC -- /* We cannot use the PLT, because it requires that %r12 be set, but -- we can't save and restore our caller's value. Instead, we do an -- indirect jump through the GOT. */ -- basr %r1,0 --0: al %r1,1f-0b(0,%r1) /* get address of global offset table */ -- /* get address of __sigjmp_save from got */ -- l %r1,__sigjmp_save@GOT12(0,%r1) -- br %r1 --1: .long _GLOBAL_OFFSET_TABLE_ - 0b --#else -- basr %r1,0 --0: l %r1,1f-0b(0,%r1) /* load address of __sigjmp_save */ -- br %r1 /* tail-call __sigjmp_save */ --1: .long __sigjmp_save --#endif --END (__sigsetjmp) -Index: glibc-2.19/sysdeps/s390/s390-32/setjmp.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/s390/s390-32/setjmp.S -@@ -0,0 +1,111 @@ -+/* setjmp for s390, ELF version. -+ Copyright (C) 2000-2014 Free Software Foundation, Inc. -+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#define _ASM -+#define _SETJMP_H -+#include -+#include -+ -+#if !defined IS_IN_rtld -+# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+ /* we need a unique name in case of symbol versioning. */ -+# define __sigsetjmp __v1__sigsetjmp -+# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -+#endif /* !defined IS_IN_rtld */ -+ -+ /* We include the BSD entry points here as well but we make -+ them weak. */ -+ENTRY (setjmp) -+ .weak C_SYMBOL_NAME (setjmp) -+ lhi %r3,1 /* second argument of one */ -+ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */ -+END (setjmp) -+ -+ /* Binary compatibility entry point. */ -+ENTRY(_setjmp) -+ .weak C_SYMBOL_NAME (_setjmp) -+ lhi %r3,0 /* second argument of zero */ -+ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */ -+END (_setjmp) -+libc_hidden_def (_setjmp) -+ -+ENTRY(__setjmp) -+ lhi %r3,0 /* second argument of zero */ -+ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */ -+END (__setjmp) -+ -+ENTRY(__sigsetjmp) -+.Linternal_sigsetjmp: -+#ifdef PTR_MANGLE -+ stm %r6,%r13,0(%r2) /* store registers in jmp_buf */ -+ lr %r4,%r14 -+ lr %r5,%r15 -+ PTR_MANGLE (%r4, %r1) -+ PTR_MANGLE2 (%r5, %r1) -+ stm %r4,%r5,32(%r2) -+#else -+ stm %r6,%r15,0(%r2) /* store registers in jmp_buf */ -+#endif -+ std %f4,40(%r2) -+ std %f6,48(%r2) -+#if defined NOT_IN_libc && defined IS_IN_rtld -+ /* In ld.so we never save the signal mask. */ -+ lhi %r2,0 -+ br %r14 -+#elif defined PIC -+ /* We cannot use the PLT, because it requires that %r12 be set, but -+ we can't save and restore our caller's value. Instead, we do an -+ indirect jump through the GOT. */ -+ basr %r1,0 -+.L0: al %r1,.L1 - .L0(0,%r1) /* get address of global offset table */ -+ /* get address of __sigjmp_save from got */ -+ l %r1,__sigjmp_save@GOT12(0,%r1) -+ br %r1 -+.L1: .long _GLOBAL_OFFSET_TABLE_ - .L0 -+#else -+ basr %r1,0 -+.L0: l %r1,.L1-.L0(0,%r1) /* load address of __sigjmp_save */ -+ br %r1 /* tail-call __sigjmp_save */ -+.L1: .long __sigjmp_save -+#endif -+END (__sigsetjmp) -+ -+#if !defined IS_IN_rtld -+# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+/* In glibc release 2.19 new versions of setjmp-functions were introduced, -+ but were reverted before 2.20. Thus both versions are the same function. */ -+ -+# undef __sigsetjmp -+ -+weak_alias (setjmp, __v1setjmp); -+weak_alias (setjmp, __v2setjmp); -+versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0); -+compat_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19); -+ -+weak_alias (_setjmp, __v1_setjmp); -+weak_alias (_setjmp, __v2_setjmp); -+versioned_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0); -+compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19); -+ -+strong_alias (__v1__sigsetjmp, __v2__sigsetjmp); -+versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0); -+compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19); -+# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -+#endif /* if !defined IS_IN_rtld */ -Index: glibc-2.19/sysdeps/s390/s390-64/__longjmp-common.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/s390-64/__longjmp-common.c -+++ /dev/null -@@ -1,74 +0,0 @@ --/* Copyright (C) 2001-2014 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include --#include --#include --#include --#include -- --/* Jump to the position specified by ENV, causing the -- setjmp call there to return VAL, or 1 if VAL is 0. */ --attribute_hidden void --__longjmp (__jmp_buf env, int val) --{ --#ifdef PTR_DEMANGLE -- uintptr_t guard = THREAD_GET_POINTER_GUARD (); --# ifdef CHECK_SP -- CHECK_SP (env, guard); --# endif --#elif defined CHECK_SP -- CHECK_SP (env, 0); --#endif -- register long int r2 __asm ("%r2") = val == 0 ? 1 : val; --#ifdef PTR_DEMANGLE -- register uintptr_t r3 __asm ("%r3") = guard; -- register void *r1 __asm ("%r1") = (void *) env; --#endif -- /* Restore registers and jump back. */ -- asm volatile ("ld %%f8,80(%1)\n\t" -- "ld %%f9,88(%1)\n\t" -- "ld %%f10,96(%1)\n\t" -- "ld %%f11,104(%1)\n\t" -- "ld %%f12,112(%1)\n\t" -- "ld %%f13,120(%1)\n\t" -- "ld %%f14,128(%1)\n\t" -- "ld %%f15,136(%1)\n\t" --#ifdef PTR_DEMANGLE -- "lmg %%r6,%%r13,0(%1)\n\t" -- "lmg %%r4,%%r5,64(%1)\n\t" -- "xgr %%r4,%2\n\t" -- "xgr %%r5,%2\n\t" -- "lgr %%r15,%%r5\n\t" -- "br %%r4" --#else -- "lmg %%r6,%%r15,0(%1)\n\t" -- "br %%r14" --#endif -- : : "r" (r2), --#ifdef PTR_DEMANGLE -- "r" (r1), "r" (r3) --#else -- "a" (env) --#endif -- ); -- -- /* Avoid `volatile function does return' warnings. */ -- for (;;); --} -Index: glibc-2.19/sysdeps/s390/s390-64/__longjmp.c -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/s390/s390-64/__longjmp.c -@@ -0,0 +1,74 @@ -+/* Copyright (C) 2001-2014 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* Jump to the position specified by ENV, causing the -+ setjmp call there to return VAL, or 1 if VAL is 0. */ -+void -+__longjmp (__jmp_buf env, int val) -+{ -+#ifdef PTR_DEMANGLE -+ uintptr_t guard = THREAD_GET_POINTER_GUARD (); -+# ifdef CHECK_SP -+ CHECK_SP (env, guard); -+# endif -+#elif defined CHECK_SP -+ CHECK_SP (env, 0); -+#endif -+ register long int r2 __asm ("%r2") = val == 0 ? 1 : val; -+#ifdef PTR_DEMANGLE -+ register uintptr_t r3 __asm ("%r3") = guard; -+ register void *r1 __asm ("%r1") = (void *) env; -+#endif -+ /* Restore registers and jump back. */ -+ asm volatile ("ld %%f8,80(%1)\n\t" -+ "ld %%f9,88(%1)\n\t" -+ "ld %%f10,96(%1)\n\t" -+ "ld %%f11,104(%1)\n\t" -+ "ld %%f12,112(%1)\n\t" -+ "ld %%f13,120(%1)\n\t" -+ "ld %%f14,128(%1)\n\t" -+ "ld %%f15,136(%1)\n\t" -+#ifdef PTR_DEMANGLE -+ "lmg %%r6,%%r13,0(%1)\n\t" -+ "lmg %%r4,%%r5,64(%1)\n\t" -+ "xgr %%r4,%2\n\t" -+ "xgr %%r5,%2\n\t" -+ "lgr %%r15,%%r5\n\t" -+ "br %%r4" -+#else -+ "lmg %%r6,%%r15,0(%1)\n\t" -+ "br %%r14" -+#endif -+ : : "r" (r2), -+#ifdef PTR_DEMANGLE -+ "r" (r1), "r" (r3) -+#else -+ "a" (env) -+#endif -+ ); -+ -+ /* Avoid `volatile function does return' warnings. */ -+ for (;;); -+} -Index: glibc-2.19/sysdeps/s390/s390-64/setjmp-common.S -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/s390-64/setjmp-common.S -+++ /dev/null -@@ -1,79 +0,0 @@ --/* setjmp for 64 bit S/390, ELF version. -- Copyright (C) 2001-2014 Free Software Foundation, Inc. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- This file is part of the GNU C Library. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#define _ASM --#define _SETJMP_H --#include -- -- /* We include the BSD entry points here as well but we make -- them weak. */ --ENTRY (setjmp) -- .weak C_SYMBOL_NAME (setjmp) -- lghi %r3,1 /* Second argument of one. */ -- j 0f /* Branch relativ to __sigsetjmp. */ --END (setjmp) -- -- /* Binary compatibility entry point. */ --ENTRY(_setjmp) -- .weak C_SYMBOL_NAME (_setjmp) -- slgr %r3,%r3 /* Second argument of zero. */ -- j 0f /* Branch relativ to __sigsetjmp. */ --END (_setjmp) --libc_hidden_def (_setjmp) -- --ENTRY(__setjmp) -- slgr %r3,%r3 /* Second argument of zero. */ -- j 0f /* Branch relativ to __sigsetjmp. */ --END (__setjmp) -- --ENTRY(__sigsetjmp) --0: --#ifdef PTR_MANGLE -- stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */ -- lgr %r4,%r14 -- lgr %r5,%r15 -- PTR_MANGLE (%r4, %r1) -- PTR_MANGLE2 (%r5, %r1) -- stmg %r4,%r5,64(%r2) --#else -- stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */ --#endif --#ifndef __V1_JMPBUF -- lghi %r4,0 -- stg %r4,144(%r2) /* Set __flags to 0. */ --#endif -- std %f8,80(%r2) -- std %f9,88(%r2) -- std %f10,96(%r2) -- std %f11,104(%r2) -- std %f12,112(%r2) -- std %f13,120(%r2) -- std %f14,128(%r2) -- std %f15,136(%r2) --#if defined NOT_IN_libc && defined IS_IN_rtld -- /* In ld.so we never save the signal mask. */ -- lghi %r2,0 -- br %r14 --#elif defined PIC -- jg __sigjmp_save@PLT /* Branch to PLT of __sigsetjmp. */ --#else -- jg __sigjmp_save --#endif --END (__sigsetjmp) -Index: glibc-2.19/sysdeps/s390/s390-64/setjmp.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/s390/s390-64/setjmp.S -@@ -0,0 +1,106 @@ -+/* setjmp for 64 bit S/390, ELF version. -+ Copyright (C) 2001-2014 Free Software Foundation, Inc. -+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#define _ASM -+#define _SETJMP_H -+#include -+#include -+ -+#if !defined IS_IN_rtld -+# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+ /* we need a unique name in case of symbol versioning. */ -+# define __sigsetjmp __v1__sigsetjmp -+# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -+#endif /* !defined IS_IN_rtld */ -+ -+ /* We include the BSD entry points here as well but we make -+ them weak. */ -+ENTRY (setjmp) -+ .weak C_SYMBOL_NAME (setjmp) -+ lghi %r3,1 /* Second argument of one. */ -+ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ -+END (setjmp) -+ -+ /* Binary compatibility entry point. */ -+ENTRY(_setjmp) -+ .weak C_SYMBOL_NAME (_setjmp) -+ slgr %r3,%r3 /* Second argument of zero. */ -+ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ -+END (_setjmp) -+libc_hidden_def (_setjmp) -+ -+ENTRY(__setjmp) -+ slgr %r3,%r3 /* Second argument of zero. */ -+ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ -+END (__setjmp) -+ -+ENTRY(__sigsetjmp) -+.Linternal_sigsetjmp: -+#ifdef PTR_MANGLE -+ stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */ -+ lgr %r4,%r14 -+ lgr %r5,%r15 -+ PTR_MANGLE (%r4, %r1) -+ PTR_MANGLE2 (%r5, %r1) -+ stmg %r4,%r5,64(%r2) -+#else -+ stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */ -+#endif -+ std %f8,80(%r2) -+ std %f9,88(%r2) -+ std %f10,96(%r2) -+ std %f11,104(%r2) -+ std %f12,112(%r2) -+ std %f13,120(%r2) -+ std %f14,128(%r2) -+ std %f15,136(%r2) -+#if defined NOT_IN_libc && defined IS_IN_rtld -+ /* In ld.so we never save the signal mask. */ -+ lghi %r2,0 -+ br %r14 -+#elif defined PIC -+ jg __sigjmp_save@PLT /* Branch to PLT of __sigsetjmp. */ -+#else -+ jg __sigjmp_save -+#endif -+END (__sigsetjmp) -+ -+#if !defined IS_IN_rtld -+# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+/* In glibc release 2.19 new versions of setjmp-functions were introduced, -+ but were reverted before 2.20. Thus both versions are the same function. */ -+ -+# undef __sigsetjmp -+ -+weak_alias (setjmp, __v1setjmp); -+weak_alias (setjmp, __v2setjmp); -+versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0); -+compat_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19); -+ -+weak_alias (_setjmp, __v1_setjmp); -+weak_alias (_setjmp, __v2_setjmp); -+versioned_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0); -+compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19); -+ -+strong_alias (__v1__sigsetjmp, __v2__sigsetjmp); -+versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0); -+compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19); -+# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -+#endif /* if !defined IS_IN_rtld */ -Index: glibc-2.19/sysdeps/s390/setjmp.S -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/setjmp.S -+++ /dev/null -@@ -1,64 +0,0 @@ --/* Extendible version of setjmp for System z -- Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- --versioned_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19) --versioned_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19) --versioned_symbol (libc, __v2__setjmp, __setjmp, GLIBC_2_19) --versioned_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19) --#define setjmp __v2setjmp --#define _setjmp __v2_setjmp --#define __setjmp __v2__setjmp --#define __sigsetjmp __v2__sigsetjmp --#define __sigjmp_save __v2__sigjmp_save -- --#include "setjmp-common.S" -- --#undef setjmp --#undef _setjmp --#undef __setjmp --#undef __sigsetjmp --#undef __sigjmp_save --libc_hidden_ver (__v2setjmp, setjmp) --libc_hidden_ver (__v2_setjmp, _setjmp) --libc_hidden_ver (__v2__setjmp, __setjmp) --libc_hidden_ver (__v2__sigsetjmp, __sigsetjmp) -- --#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) --compat_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0) --compat_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0) --compat_symbol (libc, __v1__setjmp, __setjmp, GLIBC_2_0) --compat_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0) --# define setjmp __v1setjmp --# define _setjmp __v1_setjmp --# define __setjmp __v1__setjmp --# define __sigsetjmp __v1__sigsetjmp --# define __sigjmp_save __v1__sigjmp_save --# define __V1_JMPBUF -- --# include "setjmp-common.S" -- --# undef setjmp --# undef _setjmp --# undef __setjmp --# undef __sigsetjmp --# undef __sigjmp_save -- --#endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ -Index: glibc-2.19/sysdeps/s390/sigjmp.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/sigjmp.c -+++ /dev/null -@@ -1,34 +0,0 @@ --/* Copyright (C) 1992-2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include --#include -- --/* This function is called by the `sigsetjmp' macro -- before doing a `__setjmp' on ENV[0].__jmpbuf. -- Always return zero. */ -- --int --__v2__sigjmp_save (sigjmp_buf env, int savemask) --{ -- env[0].__mask_was_saved = (savemask && -- __sigprocmask (SIG_BLOCK, (sigset_t *) NULL, -- &env[0].__saved_mask) == 0); -- -- return 0; --} -Index: glibc-2.19/sysdeps/s390/v1-longjmp.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/v1-longjmp.c -+++ /dev/null -@@ -1,57 +0,0 @@ --/* Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . -- -- Versioned copy of sysdeps/generic/longjmp.c modified for extended -- jmpbuf. */ -- --#include --#include --#include --#include "v1-setjmp.h" -- --#if !defined NOT_INT_libc && defined SHARED --# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) -- --void --__v1__libc_siglongjmp (__v1__sigjmp_buf env, int val) --{ -- /* Perform any cleanups needed by the frames being unwound. */ -- _longjmp_unwind (env, val); -- -- if (env[0].__mask_was_saved) -- /* Restore the saved signal mask. */ -- (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask, -- (sigset_t *) NULL); -- -- /* Call the machine-dependent function to restore machine state. */ -- __v1__longjmp (env[0].__jmpbuf, val ?: 1); --} -- --# ifndef __v1__longjmp --strong_alias (__v1__libc_siglongjmp, __v1__libc_longjmp) --libc_hidden_def (__v1__libc_longjmp) --weak_alias (__v1__libc_siglongjmp, __v1_longjmp) --weak_alias (__v1__libc_siglongjmp, __v1longjmp) --weak_alias (__v1__libc_siglongjmp, __v1siglongjmp) -- --compat_symbol (libc, __v1_longjmp, _longjmp, GLIBC_2_0); --compat_symbol (libc, __v1longjmp, longjmp, GLIBC_2_0); --compat_symbol (libc, __v1siglongjmp, siglongjmp, GLIBC_2_0); -- --# endif /* ifndef __v1__longjmp */ --# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ --#endif /* if !defined NOT_INT_libc && defined SHARED */ -Index: glibc-2.19/sysdeps/s390/v1-setjmp.h -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/v1-setjmp.h -+++ /dev/null -@@ -1,111 +0,0 @@ --/* Copyright (C) 1991-2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --/* -- * ISO C99 Standard: 7.13 Nonlocal jumps -- */ -- --#ifndef _V1_SETJMP_H --#define _V1_SETJMP_H 1 -- --#include -- --__BEGIN_DECLS -- --#define __V1_JMPBUF --#define _SETJMP_H --#include /* Get `__jmp_buf'. */ -- --#ifndef _ASM -- --#include /* Get `__sigset_t'. */ -- -- --/* Calling environment, plus possibly a saved signal mask. */ --typedef struct __v1__jmp_buf_tag -- { -- /* NOTE: The machine-dependent definitions of `__sigsetjmp' -- assume that a `jmp_buf' begins with a `__jmp_buf' and that -- `__mask_was_saved' follows it. Do not move these members -- or add others before it. */ -- __jmp_buf __jmpbuf; /* Calling environment. */ -- int __mask_was_saved; /* Saved the signal mask? */ -- __sigset_t __saved_mask; /* Saved signal mask. */ -- } __v1__jmp_buf[1]; -- -- --/* Store the calling environment in ENV, also saving the signal mask. -- Return 0. */ --extern int __v1setjmp (__v1__jmp_buf __env); -- --/* Store the calling environment in ENV, also saving the -- signal mask if SAVEMASK is nonzero. Return 0. -- This is the internal name for `sigsetjmp'. */ --extern int __v1__sigsetjmp (struct __v1__jmp_buf_tag __env[1], -- int __savemask); -- --/* Store the calling environment in ENV, not saving the signal mask. -- Return 0. */ --extern int __v1_setjmp (struct __v1__jmp_buf_tag __env[1]); -- --/* Jump to the environment saved in ENV, making the -- `setjmp' call there return VAL, or 1 if VAL is 0. */ --extern void __v1longjmp (struct __v1__jmp_buf_tag __env[1], int __val) -- __attribute__ ((__noreturn__)); -- --/* Same. Usually `_longjmp' is used with `_setjmp', which does not save -- the signal mask. But it is how ENV was saved that determines whether -- `longjmp' restores the mask; `_longjmp' is just an alias. */ --extern void __v1_longjmp (struct __v1__jmp_buf_tag __env[1], int __val) -- __attribute__ ((__noreturn__)); -- --/* Use the same type for `jmp_buf' and `sigjmp_buf'. -- The `__mask_was_saved' flag determines whether -- or not `longjmp' will restore the signal mask. */ --typedef struct __v1__jmp_buf_tag __v1__sigjmp_buf[1]; -- --/* Jump to the environment saved in ENV, making the -- sigsetjmp call there return VAL, or 1 if VAL is 0. -- Restore the signal mask if that sigsetjmp call saved it. -- This is just an alias `longjmp'. */ --extern void __v1siglongjmp (__v1__sigjmp_buf __env, int __val) -- __attribute__ ((__noreturn__)); -- --/* Internal machine-dependent function to restore context sans signal mask. */ --extern void __v1__longjmp (__jmp_buf __env, int __val) -- __attribute__ ((__noreturn__)); -- --/* Internal function to possibly save the current mask of blocked signals -- in ENV, and always set the flag saying whether or not it was saved. -- This is used by the machine-dependent definition of `__sigsetjmp'. -- Always returns zero, for convenience. */ --extern int __v1__sigjmp_save (__v1__jmp_buf __env, int __savemask); -- --extern void _longjmp_unwind (__v1__jmp_buf env, int val); -- --extern void __v1__libc_siglongjmp (__v1__sigjmp_buf env, int val) -- __attribute__ ((noreturn)); -- --extern void __v1__libc_longjmp (__v1__sigjmp_buf env, int val) -- __attribute__ ((noreturn)); -- --libc_hidden_proto (__v1__libc_longjmp) --libc_hidden_proto (__v1_setjmp) --libc_hidden_proto (__v1__sigsetjmp) --#endif /* !_ASM */ -- --#endif /* ifndef _V1_SETJMP_H */ -Index: glibc-2.19/sysdeps/s390/v1-sigjmp.c -=================================================================== ---- glibc-2.19.orig/sysdeps/s390/v1-sigjmp.c -+++ /dev/null -@@ -1,44 +0,0 @@ --/* Copyright (C) 1992-2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . -- -- Copied from setjmp/sigjmp.c for extending jmp_buf. */ -- --#include --#include -- --#if !defined NOT_IN_libc && defined SHARED --# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) --# include --# include --# include -- --/* This function is called by the `sigsetjmp' macro -- before doing a `__setjmp' on ENV[0].__jmpbuf. -- Always return zero. */ -- --int --__v1__sigjmp_save (__v1__sigjmp_buf env, int savemask) --{ -- env[0].__mask_was_saved = (savemask && -- __sigprocmask (SIG_BLOCK, (sigset_t *) NULL, -- &env[0].__saved_mask) == 0); -- -- return 0; --} -- --# endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_19) */ --#endif /* !NOT_IN_libc && SHARED */ -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/Makefile -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/Makefile -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/Makefile -@@ -16,9 +16,3 @@ endif - ifeq ($(subdir),elf) - sysdep_routines += dl-vdso - endif -- --ifeq ($(subdir),debug) --ifeq (yes,$(build-shared)) --sysdep_routines += v1-longjmp_chk --endif --endif -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/getcontext.S -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/getcontext.S -+++ /dev/null -@@ -1,38 +0,0 @@ --/* Extendible version of getcontext for System z -- Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- --versioned_symbol (libc, __v2getcontext, getcontext, GLIBC_2_19) --#define __getcontext __v2getcontext -- --#include "getcontext-common.S" -- --#undef __getcontext -- --libc_hidden_ver (__v2getcontext, getcontext) -- --#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_19) --# define __V1_UCONTEXT --compat_symbol (libc, __v1getcontext, getcontext, GLIBC_2_1) --# define __getcontext __v1getcontext --# include "getcontext-common.S" --# undef __getcontext -- --#endif -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/longjmp_chk.c -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/longjmp_chk.c -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/longjmp_chk.c -@@ -15,30 +15,34 @@ - License along with the GNU C Library; if not, see - . - -- This is a copy of debug/longjmp_chk.c extended for symbol -- versioning. */ -+ Versioned copy of debug/longjmp_chk.c modified for versioning -+ the reverted jmpbuf extension. */ - - #include --#include - --/* This place is the only user of these functions. */ --extern void ____v2__longjmp_chk (__jmp_buf __env, int __val) -+#if !defined NOT_IN_libc && defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+/* this is a copy from debug/longjmp_chk.c because we need an unique name -+ for __longjmp_chk, but it is already named via a define -+ for __libc_siglongjmp in debug/longjmp_chk.c. */ -+# include -+ -+// XXX Should move to include/setjmp.h -+extern void ____longjmp_chk (__jmp_buf __env, int __val) - __attribute__ ((__noreturn__)); - --#if defined NOT_IN_libc -+# define __longjmp ____longjmp_chk -+# define __libc_siglongjmp __v1__longjmp_chk - --# define __v2__longjmp ____longjmp_chk --# define __v2__libc_siglongjmp __longjmp_chk -+# include - --# include -+/* In glibc release 2.19 a new versions of __longjmp_chk was introduced, -+ but was reverted before 2.20. Thus both versions are the same function. */ -+strong_alias (__v1__longjmp_chk, __v2__longjmp_chk); -+versioned_symbol (libc, __v1__longjmp_chk, __longjmp_chk, GLIBC_2_11); -+compat_symbol (libc, __v2__longjmp_chk, __longjmp_chk, GLIBC_2_19); - - #else - --# define __v2__longjmp ____v2__longjmp_chk --# define __v2__libc_siglongjmp __v2__libc_siglongjmp_chk -- --# include -- --versioned_symbol (libc, __v2__libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_19); -+# include - - #endif -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/rtld-getcontext.S -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/rtld-getcontext.S -+++ /dev/null -@@ -1,19 +0,0 @@ --/* Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --/* Build a non-versioned object for rtld-*. */ --#include "getcontext-common.S" -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c -@@ -26,8 +26,8 @@ - #include - #include - #include --#include --#include -+ -+#define __longjmp ____longjmp_chk - - #define CHECK_SP(env, guard) \ - do \ -@@ -51,22 +51,4 @@ - } \ - } while (0) - -- --#if defined NOT_IN_libc --/* Build a non-versioned object for rtld-*. */ --# define __longjmp ____longjmp_chk --# include "__longjmp-common.c" -- --#else /* !NOT_IN_libc */ --# define __longjmp ____v2__longjmp_chk --# include "__longjmp-common.c" -- --# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) --# undef __longjmp --# define __V1_JMPBUF --# define __longjmp ____v1__longjmp_chk --# include "__longjmp-common.c" --# undef __longjmp -- --# endif --#endif /* !NOT_IN_libc */ -+#include "__longjmp.c" -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/getcontext-common.S -+++ /dev/null -@@ -1,112 +0,0 @@ --/* Copyright (C) 2001-2014 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- --#include "rtld-global-offsets.h" --#include "ucontext_i.h" -- --/* __getcontext (const ucontext_t *ucp) -- -- Saves the machine context in UCP such that when it is activated, -- it appears as if __getcontext() returned again. -- -- This implementation is intended to be used for *synchronous* context -- switches only. Therefore, it does not have to save anything -- other than the PRESERVED state. */ -- --ENTRY(__getcontext) -- lr %r1,%r2 -- -- /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ -- la %r2,SIG_BLOCK -- slr %r3,%r3 -- la %r4,SC_MASK(%r1) -- lhi %r5,_NSIG8 -- svc SYS_ify(rt_sigprocmask) -- -- /* Store fpu context. */ -- stfpc SC_FPC(%r1) -- std %f0,SC_FPRS(%r1) -- std %f1,SC_FPRS+8(%r1) -- std %f2,SC_FPRS+16(%r1) -- std %f3,SC_FPRS+24(%r1) -- std %f4,SC_FPRS+32(%r1) -- std %f5,SC_FPRS+40(%r1) -- std %f6,SC_FPRS+48(%r1) -- std %f7,SC_FPRS+56(%r1) -- std %f8,SC_FPRS+64(%r1) -- std %f9,SC_FPRS+72(%r1) -- std %f10,SC_FPRS+80(%r1) -- std %f11,SC_FPRS+88(%r1) -- std %f12,SC_FPRS+96(%r1) -- std %f13,SC_FPRS+104(%r1) -- std %f14,SC_FPRS+112(%r1) -- std %f15,SC_FPRS+120(%r1) -- -- lhi %r2,0 --#ifndef __V1_UCONTEXT -- bras %r3,0f --# ifdef IS_IN_rtld -- /* Within ld.so we can do slightly better by addressing dl_hwap -- relative to GOT start. */ --1: .long _GLOBAL_OFFSET_TABLE_ - 1b -- .long C_SYMBOL_NAME(_rtld_global_ro)@GOTOFF --0: l %r4,0(%r3) -- la %r4,0(%r3,%r4) -- l %r5,4(%r3) -- /* _dl_hwcap is 64 bit and we need the lower 32. */ -- l %r3,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(%r4,%r5) --# elif PIC --1: .long _GLOBAL_OFFSET_TABLE_ - 1b -- .long C_SYMBOL_NAME(_rtld_global_ro)@GOT --0: l %r4,0(%r3) -- la %r4,0(%r3,%r4) /* GOT pointer -> r4 */ -- l %r5,4(%r3) /* GOT offset -> r5 */ -- l %r5,0(%r4,%r5) /* GOT slot -> r5 */ -- l %r3,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(%r5) --# else -- .long C_SYMBOL_NAME(_dl_hwcap) --0: l %r3,0(%r3) -- l %r3,0(%r3) --# endif -- tml %r3,512 /* HWCAP_S390_HIGH_GPRS */ -- jz 2f -- /* highgprs implies zarch so stmh/oill is ok here. */ -- .machine "z900" -- .machinemode "zarch_nohighgprs" -- stmh %r0,%r15,SC_HIGHGPRS(%r1) -- oill %r2,1 /* UCONTEXT_UC_FLAGS_HIGH_GPRS */ --#endif --2: st %r2,SC_FLGS(%r1) -- -- /* Set __getcontext return value to 0. */ -- slr %r2,%r2 -- -- /* Store access registers. */ -- stam %a0,%a15,SC_ACRS(%r1) -- -- /* Store general purpose registers. */ -- stm %r0,%r15,SC_GPRS(%r1) -- -- /* Return. */ -- br %r14 --END(__getcontext) -- --weak_alias (__getcontext, getcontext) -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S -@@ -0,0 +1,86 @@ -+/* Copyright (C) 2001-2014 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#include "ucontext_i.h" -+ -+#include -+ -+/* __getcontext (const ucontext_t *ucp) -+ -+ Saves the machine context in UCP such that when it is activated, -+ it appears as if __getcontext() returned again. -+ -+ This implementation is intended to be used for *synchronous* context -+ switches only. Therefore, it does not have to save anything -+ other than the PRESERVED state. */ -+ -+ENTRY(__getcontext) -+ lr %r1,%r2 -+ -+ /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ -+ la %r2,SIG_BLOCK -+ slr %r3,%r3 -+ la %r4,SC_MASK(%r1) -+ lhi %r5,_NSIG8 -+ svc SYS_ify(rt_sigprocmask) -+ -+ /* Store fpu context. */ -+ stfpc SC_FPC(%r1) -+ std %f0,SC_FPRS(%r1) -+ std %f1,SC_FPRS+8(%r1) -+ std %f2,SC_FPRS+16(%r1) -+ std %f3,SC_FPRS+24(%r1) -+ std %f4,SC_FPRS+32(%r1) -+ std %f5,SC_FPRS+40(%r1) -+ std %f6,SC_FPRS+48(%r1) -+ std %f7,SC_FPRS+56(%r1) -+ std %f8,SC_FPRS+64(%r1) -+ std %f9,SC_FPRS+72(%r1) -+ std %f10,SC_FPRS+80(%r1) -+ std %f11,SC_FPRS+88(%r1) -+ std %f12,SC_FPRS+96(%r1) -+ std %f13,SC_FPRS+104(%r1) -+ std %f14,SC_FPRS+112(%r1) -+ std %f15,SC_FPRS+120(%r1) -+ -+ /* Set __getcontext return value to 0. */ -+ slr %r2,%r2 -+ -+ /* Store access registers. */ -+ stam %a0,%a15,SC_ACRS(%r1) -+ -+ /* Store general purpose registers. */ -+ stm %r0,%r15,SC_GPRS(%r1) -+ -+ /* Return. */ -+ br %r14 -+END(__getcontext) -+ -+weak_alias (__getcontext, getcontext) -+ -+#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+/* In glibc release 2.19 a new version of getcontext was introduced, -+ but was reverted before 2.20. Thus both versions are the same function. */ -+weak_alias (__getcontext, __v1__getcontext) -+weak_alias (__getcontext, __v2__getcontext) -+versioned_symbol (libc, __v1__getcontext, getcontext, GLIBC_2_1) -+compat_symbol (libc, __v2__getcontext, getcontext, GLIBC_2_19) -+#endif -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist -@@ -1777,7 +1777,6 @@ GLIBC_2.18 - GLIBC_2.19 - GLIBC_2.19 A - __longjmp_chk F -- __setjmp F - __sigsetjmp F - _longjmp F - _setjmp F -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S -@@ -62,16 +62,8 @@ ENTRY(__setcontext) - /* Don't touch %a0, used for thread purposes. */ - lam %a1,%a15,SC_ACRS+4(%r1) - -- /* Restore the upper halfs if available. */ -- l %r2,SC_FLGS(%r1) -- tml %r2,1 /* UCONTEXT_UC_FLAGS_HIGH_GPRS */ -- jz 0f -- .machine "z900" -- .machinemode "zarch_nohighgprs" -- lmh %r0,%r15,SC_HIGHGPRS(%r1) -- - /* Load general purpose registers. */ --0: lm %r0,%r15,SC_GPRS(%r1) -+ lm %r0,%r15,SC_GPRS(%r1) - - /* Return. */ - br %r14 -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S -@@ -65,31 +65,19 @@ ENTRY(__swapcontext) - std %f14,SC_FPRS+112(%r1) - std %f15,SC_FPRS+120(%r1) - -- /* Store access registers. */ -- stam %a0,%a15,SC_ACRS(%r1) -- - /* Set __swapcontext return value to 0. */ - slr %r2,%r2 - -+ /* Store access registers. */ -+ stam %a0,%a15,SC_ACRS(%r1) -+ - /* Store general purpose registers. */ - stm %r0,%r15,SC_GPRS(%r1) - -- /* Copy uc_flags into the new ucontext_t. */ -+ /* sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL). */ -+ la %r2,SIG_BLOCK - lr %r5,%r0 -- l %r2,SC_FLGS(%r5) -- st %r2,SC_FLGS(%r1) -- -- /* Save/restore the upper halfs if necessary. */ -- tml %r2,1 /* UCONTEXT_UC_FLAGS_HIGH_GPRS */ -- jz 0f -- .machine "z900" -- .machinemode "zarch_nohighgprs" -- stmh %r0,%r15,SC_HIGHGPRS(%r1) -- lmh %r0,%r15,SC_HIGHGPRS(%r5) -- -- /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ --0: la %r2,SIG_BLOCK -- la %r3,SC_MASK(%r5) -+ la %r3,SC_MASK(%r5) - slr %r4,%r4 - lhi %r5,_NSIG8 - svc SYS_ify(rt_sigprocmask) -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.sym -+++ /dev/null -@@ -1,26 +0,0 @@ --#include --#include --#include -- ---- -- --SIG_BLOCK --SIG_UNBLOCK --SIG_SETMASK -- --_NSIG8 (_NSIG / 8) -- --#define ucontext(member) offsetof (ucontext_t, member) --#define mcontext(member) ucontext (uc_mcontext.member) -- --SC_FLGS ucontext (uc_flags) --SC_LINK ucontext (uc_link) --SC_STCK ucontext (uc_stack.ss_sp) --SC_STSZ ucontext (uc_stack.ss_size) --SC_PSW mcontext (psw) --SC_GPRS mcontext (gregs) --SC_ACRS mcontext (aregs) --SC_FPC mcontext (fpregs.fpc) --SC_FPRS mcontext (fpregs.fprs) --SC_MASK ucontext (uc_sigmask) --SC_HIGHGPRS ucontext (uc_high_gprs) -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c -@@ -26,8 +26,8 @@ - #include - #include - #include --#include --#include -+ -+#define __longjmp ____longjmp_chk - - #define CHECK_SP(env, guard) \ - do \ -@@ -51,23 +51,4 @@ - } \ - } while (0) - -- --#if defined NOT_IN_libc --/* Build a non-versioned object for rtld-*. */ --# define __longjmp ____longjmp_chk --# include "__longjmp-common.c" -- --#else /* !NOT_IN_libc */ --# define __longjmp ____v2__longjmp_chk --# include "__longjmp-common.c" --# undef __longjmp -- --# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) --# undef __longjmp --# define __V1_JMPBUF --# define __longjmp ____v1__longjmp_chk --# include "__longjmp-common.c" --# undef __longjmp -- --# endif --#endif /* !NOT_IN_libc */ -+#include "__longjmp.c" -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/getcontext-common.S -+++ /dev/null -@@ -1,79 +0,0 @@ --/* Copyright (C) 2001-2014 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include -- --#include "ucontext_i.h" -- --/* __getcontext (const ucontext_t *ucp) -- -- Saves the machine context in UCP such that when it is activated, -- it appears as if __getcontext() returned again. -- -- This implementation is intended to be used for *synchronous* context -- switches only. Therefore, it does not have to save anything -- other than the PRESERVED state. */ -- --ENTRY(__getcontext) -- lgr %r1,%r2 -- -- /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ -- la %r2,SIG_BLOCK -- slgr %r3,%r3 -- la %r4,SC_MASK(%r1) -- lghi %r5,_NSIG8 -- svc SYS_ify(rt_sigprocmask) -- -- /* Store fpu context. */ -- stfpc SC_FPC(%r1) -- std %f0,SC_FPRS(%r1) -- std %f1,SC_FPRS+8(%r1) -- std %f2,SC_FPRS+16(%r1) -- std %f3,SC_FPRS+24(%r1) -- std %f4,SC_FPRS+32(%r1) -- std %f5,SC_FPRS+40(%r1) -- std %f6,SC_FPRS+48(%r1) -- std %f7,SC_FPRS+56(%r1) -- std %f8,SC_FPRS+64(%r1) -- std %f9,SC_FPRS+72(%r1) -- std %f10,SC_FPRS+80(%r1) -- std %f11,SC_FPRS+88(%r1) -- std %f12,SC_FPRS+96(%r1) -- std %f13,SC_FPRS+104(%r1) -- std %f14,SC_FPRS+112(%r1) -- std %f15,SC_FPRS+120(%r1) -- -- /* Set __getcontext return value to 0. */ -- slgr %r2,%r2 -- -- /* Store the version number into the uc_flags field. So far -- we do not make use of the reserved bytes so we store a zero. */ -- stg %r2,SC_FLGS(%r1) -- -- /* Store access registers. */ -- stam %a0,%a15,SC_ACRS(%r1) -- -- /* Store general purpose registers. */ -- stmg %r0,%r15,SC_GPRS(%r1) -- -- /* Return. */ -- br %r14 --END(__getcontext) -- --weak_alias (__getcontext, getcontext) -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S -@@ -0,0 +1,86 @@ -+/* Copyright (C) 2001-2014 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#include "ucontext_i.h" -+ -+#include -+ -+/* __getcontext (const ucontext_t *ucp) -+ -+ Saves the machine context in UCP such that when it is activated, -+ it appears as if __getcontext() returned again. -+ -+ This implementation is intended to be used for *synchronous* context -+ switches only. Therefore, it does not have to save anything -+ other than the PRESERVED state. */ -+ -+ENTRY(__getcontext) -+ lgr %r1,%r2 -+ -+ /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ -+ la %r2,SIG_BLOCK -+ slgr %r3,%r3 -+ la %r4,SC_MASK(%r1) -+ lghi %r5,_NSIG8 -+ svc SYS_ify(rt_sigprocmask) -+ -+ /* Store fpu context. */ -+ stfpc SC_FPC(%r1) -+ std %f0,SC_FPRS(%r1) -+ std %f1,SC_FPRS+8(%r1) -+ std %f2,SC_FPRS+16(%r1) -+ std %f3,SC_FPRS+24(%r1) -+ std %f4,SC_FPRS+32(%r1) -+ std %f5,SC_FPRS+40(%r1) -+ std %f6,SC_FPRS+48(%r1) -+ std %f7,SC_FPRS+56(%r1) -+ std %f8,SC_FPRS+64(%r1) -+ std %f9,SC_FPRS+72(%r1) -+ std %f10,SC_FPRS+80(%r1) -+ std %f11,SC_FPRS+88(%r1) -+ std %f12,SC_FPRS+96(%r1) -+ std %f13,SC_FPRS+104(%r1) -+ std %f14,SC_FPRS+112(%r1) -+ std %f15,SC_FPRS+120(%r1) -+ -+ /* Set __getcontext return value to 0. */ -+ slgr %r2,%r2 -+ -+ /* Store access registers. */ -+ stam %a0,%a15,SC_ACRS(%r1) -+ -+ /* Store general purpose registers. */ -+ stmg %r0,%r15,SC_GPRS(%r1) -+ -+ /* Return. */ -+ br %r14 -+END(__getcontext) -+ -+weak_alias (__getcontext, getcontext) -+ -+#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -+/* In glibc release 2.19 a new version of getcontext was introduced, -+ but was reverted before 2.20. Thus both versions are the same function. */ -+weak_alias (__getcontext, __v1__getcontext) -+weak_alias (__getcontext, __v2__getcontext) -+versioned_symbol (libc, __v1__getcontext, getcontext, GLIBC_2_1) -+compat_symbol (libc, __v2__getcontext, getcontext, GLIBC_2_19) -+#endif -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist -@@ -98,7 +98,6 @@ GLIBC_2.18 - GLIBC_2.19 - GLIBC_2.19 A - __longjmp_chk F -- __setjmp F - __sigsetjmp F - _longjmp F - _setjmp F -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S -@@ -65,25 +65,21 @@ ENTRY(__swapcontext) - std %f14,SC_FPRS+112(%r1) - std %f15,SC_FPRS+120(%r1) - -+ /* Set __swapcontext return value to 0. */ -+ slgr %r2,%r2 -+ - /* Store access registers. */ - stam %a0,%a15,SC_ACRS(%r1) - -- /* Set __swapcontext return value to 0. */ -- slgr %r2,%r2 -- - /* Store general purpose registers. */ - stmg %r0,%r15,SC_GPRS(%r1) - -- /* Copy uc_flags into the new ucontext_t. */ -- lgr %r5,%r0 -- lg %r2,SC_FLGS(%r5) -- stg %r2,SC_FLGS(%r1) -- - /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ - la %r2,SIG_BLOCK -+ lgr %r5,%r0 - la %r3,SC_MASK(%r5) -- slgr %r4,%r4 - lghi %r5,_NSIG8 -+ slgr %r4,%r4 - svc SYS_ify(rt_sigprocmask) - - /* Load fpu context. */ -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.sym -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.sym -+++ /dev/null -@@ -1,25 +0,0 @@ --#include --#include --#include -- ---- -- --SIG_BLOCK --SIG_UNBLOCK --SIG_SETMASK -- --_NSIG8 (_NSIG / 8) -- --#define ucontext(member) offsetof (ucontext_t, member) --#define mcontext(member) ucontext (uc_mcontext.member) -- --SC_FLGS ucontext (uc_flags) --SC_LINK ucontext (uc_link) --SC_STCK ucontext (uc_stack.ss_sp) --SC_STSZ ucontext (uc_stack.ss_size) --SC_PSW mcontext (psw) --SC_GPRS mcontext (gregs) --SC_ACRS mcontext (aregs) --SC_FPC mcontext (fpregs.fpc) --SC_FPRS mcontext (fpregs.fprs) --SC_MASK ucontext (uc_sigmask) -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/sys/ucontext.h -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/sys/ucontext.h -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/sys/ucontext.h -@@ -64,15 +64,6 @@ typedef struct - fpreg_t fprs[16]; - } fpregset_t; - --/* Bit is set if the uc_high_gprs field contains the upper halfs of -- the 64 bit general purpose registers. Since the uc_high_gprs field -- is only available in the 32 bit version of ucontext_t it will never -- be set for 64 bit. */ --#define UCONTEXT_UC_FLAGS_HIGH_GPRS (1UL << 0) -- --/* A new uc_flags constant will be defined when actually making use of -- the reserved space: UCONTEXT_UCFLAGS_RESERVED (1UL << 1). */ -- - /* Context to describe whole processor state. */ - typedef struct - { -@@ -90,10 +81,6 @@ struct ucontext - stack_t uc_stack; - mcontext_t uc_mcontext; - __sigset_t uc_sigmask; --#ifndef __s390x__ -- unsigned long uc_high_gprs[16]; --#endif -- char __reserved[512]; - }; - - -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/ucontext_i.sym -=================================================================== ---- /dev/null -+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/ucontext_i.sym -@@ -0,0 +1,25 @@ -+#include -+#include -+#include -+ -+-- -+ -+SIG_BLOCK -+SIG_UNBLOCK -+SIG_SETMASK -+ -+_NSIG8 (_NSIG / 8) -+ -+#define ucontext(member) offsetof (ucontext_t, member) -+#define mcontext(member) ucontext (uc_mcontext.member) -+ -+SC_FLGS ucontext (uc_flags) -+SC_LINK ucontext (uc_link) -+SC_STCK ucontext (uc_stack.ss_sp) -+SC_STSZ ucontext (uc_stack.ss_size) -+SC_PSW mcontext (psw) -+SC_GPRS mcontext (gregs) -+SC_ACRS mcontext (aregs) -+SC_FPC mcontext (fpregs.fpc) -+SC_FPRS mcontext (fpregs.fprs) -+SC_MASK ucontext (uc_sigmask) -Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/s390/v1-longjmp_chk.c -+++ /dev/null -@@ -1,35 +0,0 @@ --/* Copyright (C) 2013 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . -- -- This went into a separate source file since we would otherwise be -- needed to include two different versions of setjmp.h into the same -- file. */ -- --#include -- --#if !defined NOT_IN_libc && defined SHARED --# if SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) -- --# define __v1__longjmp ____v1__longjmp_chk --# define __v1__libc_siglongjmp __v1__libc_siglongjmp_chk -- --# include -- --compat_symbol (libc, __v1__libc_siglongjmp_chk, __longjmp_chk, GLIBC_2_11); -- --# endif --#endif diff --git a/setlocale-directory-traversal.patch b/setlocale-directory-traversal.patch deleted file mode 100644 index 599661c..0000000 --- a/setlocale-directory-traversal.patch +++ /dev/null @@ -1,648 +0,0 @@ -2014-07-02 Florian Weimer - - * manual/locale.texi (Locale Names): New section documenting - locale name syntax. Adjust menu and node chaining accordingly. - (Choosing Locale): Reference Locale Names, Locale Categories. - Mention setting LC_ALL=C. Reflect that name syntax is now - documented. - (Locale Categories): New section title. Reference Locale Names. - LC_ALL is an environment variable, but not a category. - (Setting the Locale): Remove "locale -a" invocation and LOCPATH - description, now in Locale Name. Reference that section. Locale - name syntax is now documented. - - [BZ #17137] - * locale/findlocale.c (name_present, valid_locale_name): New - functions. - (_nl_find_locale): Use the loc_name variable to store name - candidates. Call name_present and valid_locale_name to check and - validate locale names. Return an error if the locale is invalid. - - * localedata/tst-setlocale3.c: New file. - * localedata/Makefile (tests): Add tst-setlocale3. - (tst-setlocale3-ENV): New variable. - - * locale/setlocale.c (setlocale): Use strdup for allocating - composite name copy. - -Index: glibc-2.19/locale/findlocale.c -=================================================================== ---- glibc-2.19.orig/locale/findlocale.c -+++ glibc-2.19/locale/findlocale.c -@@ -17,6 +17,7 @@ - . */ - - #include -+#include - #include - #include - #include -@@ -57,6 +58,45 @@ struct loaded_l10nfile *_nl_locale_file_ - - const char _nl_default_locale_path[] attribute_hidden = LOCALEDIR; - -+/* Checks if the name is actually present, that is, not NULL and not -+ empty. */ -+static inline int -+name_present (const char *name) -+{ -+ return name != NULL && name[0] != '\0'; -+} -+ -+/* Checks that the locale name neither extremely long, nor contains a -+ ".." path component (to prevent directory traversal). */ -+static inline int -+valid_locale_name (const char *name) -+{ -+ /* Not set. */ -+ size_t namelen = strlen (name); -+ /* Name too long. The limit is arbitrary and prevents stack overflow -+ issues later. */ -+ if (__glibc_unlikely (namelen > 255)) -+ return 0; -+ /* Directory traversal attempt. */ -+ static const char slashdot[4] = {'/', '.', '.', '/'}; -+ if (__glibc_unlikely (memmem (name, namelen, -+ slashdot, sizeof (slashdot)) != NULL)) -+ return 0; -+ if (namelen == 2 && __glibc_unlikely (name[0] == '.' && name [1] == '.')) -+ return 0; -+ if (namelen >= 3 -+ && __glibc_unlikely (((name[0] == '.' -+ && name[1] == '.' -+ && name[2] == '/') -+ || (name[namelen - 3] == '/' -+ && name[namelen - 2] == '.' -+ && name[namelen - 1] == '.')))) -+ return 0; -+ /* If there is a slash in the name, it must start with one. */ -+ if (__glibc_unlikely (memchr (name, '/', namelen) != NULL) && name[0] != '/') -+ return 0; -+ return 1; -+} - - struct __locale_data * - internal_function -@@ -65,7 +105,7 @@ _nl_find_locale (const char *locale_path - { - int mask; - /* Name of the locale for this category. */ -- char *loc_name; -+ char *loc_name = (char *) *name; - const char *language; - const char *modifier; - const char *territory; -@@ -73,31 +113,39 @@ _nl_find_locale (const char *locale_path - const char *normalized_codeset; - struct loaded_l10nfile *locale_file; - -- if ((*name)[0] == '\0') -+ if (loc_name[0] == '\0') - { - /* The user decides which locale to use by setting environment - variables. */ -- *name = getenv ("LC_ALL"); -- if (*name == NULL || (*name)[0] == '\0') -- *name = getenv (_nl_category_names.str -+ loc_name = getenv ("LC_ALL"); -+ if (!name_present (loc_name)) -+ loc_name = getenv (_nl_category_names.str - + _nl_category_name_idxs[category]); -- if (*name == NULL || (*name)[0] == '\0') -- *name = getenv ("LANG"); -+ if (!name_present (loc_name)) -+ loc_name = getenv ("LANG"); -+ if (!name_present (loc_name)) -+ loc_name = (char *) _nl_C_name; - } - -- if (*name == NULL || (*name)[0] == '\0' -- || (__builtin_expect (__libc_enable_secure, 0) -- && strchr (*name, '/') != NULL)) -- *name = (char *) _nl_C_name; -+ /* We used to fall back to the C locale if the name contains a slash -+ character '/', but we now check for directory traversal in -+ valid_locale_name, so this is no longer necessary. */ - -- if (__builtin_expect (strcmp (*name, _nl_C_name), 1) == 0 -- || __builtin_expect (strcmp (*name, _nl_POSIX_name), 1) == 0) -+ if (__builtin_expect (strcmp (loc_name, _nl_C_name), 1) == 0 -+ || __builtin_expect (strcmp (loc_name, _nl_POSIX_name), 1) == 0) - { - /* We need not load anything. The needed data is contained in - the library itself. */ - *name = (char *) _nl_C_name; - return _nl_C[category]; - } -+ else if (!valid_locale_name (loc_name)) -+ { -+ __set_errno (EINVAL); -+ return NULL; -+ } -+ -+ *name = loc_name; - - /* We really have to load some data. First we try the archive, - but only if there was no LOCPATH environment variable specified. */ -Index: glibc-2.19/locale/setlocale.c -=================================================================== ---- glibc-2.19.orig/locale/setlocale.c -+++ glibc-2.19/locale/setlocale.c -@@ -272,6 +272,8 @@ setlocale (int category, const char *loc - of entries of the form `CATEGORY=VALUE'. */ - const char *newnames[__LC_LAST]; - struct __locale_data *newdata[__LC_LAST]; -+ /* Copy of the locale argument, for in-place splitting. */ -+ char *locale_copy = NULL; - - /* Set all name pointers to the argument name. */ - for (category = 0; category < __LC_LAST; ++category) -@@ -281,7 +283,13 @@ setlocale (int category, const char *loc - if (__builtin_expect (strchr (locale, ';') != NULL, 0)) - { - /* This is a composite name. Make a copy and split it up. */ -- char *np = strdupa (locale); -+ locale_copy = strdup (locale); -+ if (__glibc_unlikely (locale_copy == NULL)) -+ { -+ __libc_rwlock_unlock (__libc_setlocale_lock); -+ return NULL; -+ } -+ char *np = locale_copy; - char *cp; - int cnt; - -@@ -299,6 +307,7 @@ setlocale (int category, const char *loc - { - error_return: - __libc_rwlock_unlock (__libc_setlocale_lock); -+ free (locale_copy); - - /* Bogus category name. */ - ERROR_RETURN; -@@ -391,8 +400,9 @@ setlocale (int category, const char *loc - /* Critical section left. */ - __libc_rwlock_unlock (__libc_setlocale_lock); - -- /* Free the resources (the locale path variable). */ -+ /* Free the resources. */ - free (locale_path); -+ free (locale_copy); - - return composite; - } -Index: glibc-2.19/localedata/Makefile -=================================================================== ---- glibc-2.19.orig/localedata/Makefile -+++ glibc-2.19/localedata/Makefile -@@ -77,7 +77,7 @@ locale_test_suite := tst_iswalnum tst_is - - tests = $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \ - tst-leaks tst-mbswcs6 tst-xlocale1 tst-xlocale2 bug-usesetlocale \ -- tst-strfmon1 tst-sscanf bug-setlocale1 tst-setlocale2 -+ tst-strfmon1 tst-sscanf bug-setlocale1 tst-setlocale2 tst-setlocale3 - tests-static = bug-setlocale1-static - tests += $(tests-static) - ifeq (yes,$(build-shared)) -@@ -292,6 +292,7 @@ bug-setlocale1-ARGS = -- $(host-test-pro - bug-setlocale1-static-ENV = $(bug-setlocale1-ENV) - bug-setlocale1-static-ARGS = $(bug-setlocale1-ARGS) - tst-setlocale2-ENV = LOCPATH=$(common-objpfx)localedata -+tst-setlocale3-ENV = LOCPATH=$(common-objpfx)localedata - - $(objdir)/iconvdata/gconv-modules: - $(MAKE) -C ../iconvdata subdir=iconvdata $@ -Index: glibc-2.19/localedata/tst-setlocale3.c -=================================================================== ---- /dev/null -+++ glibc-2.19/localedata/tst-setlocale3.c -@@ -0,0 +1,203 @@ -+/* Regression test for setlocale invalid environment variable handling. -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+ -+/* The result of setlocale may be overwritten by subsequent calls, so -+ this wrapper makes a copy. */ -+static char * -+setlocale_copy (int category, const char *locale) -+{ -+ const char *result = setlocale (category, locale); -+ if (result == NULL) -+ return NULL; -+ return strdup (result); -+} -+ -+static char *de_locale; -+ -+static void -+setlocale_fail (const char *envstring) -+{ -+ setenv ("LC_CTYPE", envstring, 1); -+ if (setlocale (LC_CTYPE, "") != NULL) -+ { -+ printf ("unexpected setlocale success for \"%s\" locale\n", envstring); -+ exit (1); -+ } -+ const char *newloc = setlocale (LC_CTYPE, NULL); -+ if (strcmp (newloc, de_locale) != 0) -+ { -+ printf ("failed setlocale call \"%s\" changed locale to \"%s\"\n", -+ envstring, newloc); -+ exit (1); -+ } -+} -+ -+static void -+setlocale_success (const char *envstring) -+{ -+ setenv ("LC_CTYPE", envstring, 1); -+ char *newloc = setlocale_copy (LC_CTYPE, ""); -+ if (newloc == NULL) -+ { -+ printf ("setlocale for \"%s\": %m\n", envstring); -+ exit (1); -+ } -+ if (strcmp (newloc, de_locale) == 0) -+ { -+ printf ("setlocale with LC_CTYPE=\"%s\" left locale at \"%s\"\n", -+ envstring, de_locale); -+ exit (1); -+ } -+ if (setlocale (LC_CTYPE, de_locale) == NULL) -+ { -+ printf ("restoring locale \"%s\" with LC_CTYPE=\"%s\": %m\n", -+ de_locale, envstring); -+ exit (1); -+ } -+ char *newloc2 = setlocale_copy (LC_CTYPE, newloc); -+ if (newloc2 == NULL) -+ { -+ printf ("restoring locale \"%s\" following \"%s\": %m\n", -+ newloc, envstring); -+ exit (1); -+ } -+ if (strcmp (newloc, newloc2) != 0) -+ { -+ printf ("representation of locale \"%s\" changed from \"%s\" to \"%s\"", -+ envstring, newloc, newloc2); -+ exit (1); -+ } -+ free (newloc); -+ free (newloc2); -+ -+ if (setlocale (LC_CTYPE, de_locale) == NULL) -+ { -+ printf ("restoring locale \"%s\" with LC_CTYPE=\"%s\": %m\n", -+ de_locale, envstring); -+ exit (1); -+ } -+} -+ -+/* Checks that a known-good locale still works if LC_ALL contains a -+ value which should be ignored. */ -+static void -+setlocale_ignore (const char *to_ignore) -+{ -+ const char *fr_locale = "fr_FR.UTF-8"; -+ setenv ("LC_CTYPE", fr_locale, 1); -+ char *expected_locale = setlocale_copy (LC_CTYPE, ""); -+ if (expected_locale == NULL) -+ { -+ printf ("setlocale with LC_CTYPE=\"%s\" failed: %m\n", fr_locale); -+ exit (1); -+ } -+ if (setlocale (LC_CTYPE, de_locale) == NULL) -+ { -+ printf ("failed to restore locale: %m\n"); -+ exit (1); -+ } -+ unsetenv ("LC_CTYPE"); -+ -+ setenv ("LC_ALL", to_ignore, 1); -+ setenv ("LC_CTYPE", fr_locale, 1); -+ const char *actual_locale = setlocale (LC_CTYPE, ""); -+ if (actual_locale == NULL) -+ { -+ printf ("setlocale with LC_ALL, LC_CTYPE=\"%s\" failed: %m\n", -+ fr_locale); -+ exit (1); -+ } -+ if (strcmp (actual_locale, expected_locale) != 0) -+ { -+ printf ("setlocale under LC_ALL failed: got \"%s\", expected \"%s\"\n", -+ actual_locale, expected_locale); -+ exit (1); -+ } -+ unsetenv ("LC_CTYPE"); -+ setlocale_success (fr_locale); -+ unsetenv ("LC_ALL"); -+ free (expected_locale); -+} -+ -+static int -+do_test (void) -+{ -+ /* The glibc test harness sets this environment variable -+ uncondionally. */ -+ unsetenv ("LC_ALL"); -+ -+ de_locale = setlocale_copy (LC_CTYPE, "de_DE.UTF-8"); -+ if (de_locale == NULL) -+ { -+ printf ("setlocale (LC_CTYPE, \"de_DE.UTF-8\"): %m\n"); -+ return 1; -+ } -+ setlocale_success ("C"); -+ setlocale_success ("en_US.UTF-8"); -+ setlocale_success ("/en_US.UTF-8"); -+ setlocale_success ("//en_US.UTF-8"); -+ setlocale_ignore (""); -+ -+ setlocale_fail ("does-not-exist"); -+ setlocale_fail ("/"); -+ setlocale_fail ("/../localedata/en_US.UTF-8"); -+ setlocale_fail ("en_US.UTF-8/"); -+ setlocale_fail ("en_US.UTF-8/.."); -+ setlocale_fail ("en_US.UTF-8/../en_US.UTF-8"); -+ setlocale_fail ("../localedata/en_US.UTF-8"); -+ { -+ size_t large_length = 1024; -+ char *large_name = malloc (large_length + 1); -+ if (large_name == NULL) -+ { -+ puts ("malloc failure"); -+ return 1; -+ } -+ memset (large_name, '/', large_length); -+ const char *suffix = "en_US.UTF-8"; -+ strcpy (large_name + large_length - strlen (suffix), suffix); -+ setlocale_fail (large_name); -+ free (large_name); -+ } -+ { -+ size_t huge_length = 64 * 1024 * 1024; -+ char *huge_name = malloc (huge_length + 1); -+ if (huge_name == NULL) -+ { -+ puts ("malloc failure"); -+ return 1; -+ } -+ memset (huge_name, 'X', huge_length); -+ huge_name[huge_length] = '\0'; -+ /* Construct a composite locale specification. */ -+ const char *prefix = "LC_CTYPE=de_DE.UTF-8;LC_TIME="; -+ memcpy (huge_name, prefix, strlen (prefix)); -+ setlocale_fail (huge_name); -+ free (huge_name); -+ } -+ -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.19/manual/locale.texi -=================================================================== ---- glibc-2.19.orig/manual/locale.texi -+++ glibc-2.19/manual/locale.texi -@@ -29,6 +29,7 @@ will follow the conventions preferred by - * Setting the Locale:: How a program specifies the locale - with library functions. - * Standard Locales:: Locale names available on all systems. -+* Locale Names:: Format of system-specific locale names. - * Locale Information:: How to access the information for the locale. - * Formatting Numbers:: A dedicated function to format numbers. - * Yes-or-No Questions:: Check a Response against the locale. -@@ -99,14 +100,16 @@ locale named @samp{espana-castellano} to - most of Spain. - - The set of locales supported depends on the operating system you are --using, and so do their names. We can't make any promises about what --locales will exist, except for one standard locale called @samp{C} or --@samp{POSIX}. Later we will describe how to construct locales. --@comment (@pxref{Building Locale Files}). -+using, and so do their names, except that the standard locale called -+@samp{C} or @samp{POSIX} always exist. @xref{Locale Names}. -+ -+In order to force the system to always use the default locale, the -+user can set the @code{LC_ALL} environment variable to @samp{C}. - - @cindex combining locales --A user also has the option of specifying different locales for different --purposes---in effect, choosing a mixture of multiple locales. -+A user also has the option of specifying different locales for -+different purposes---in effect, choosing a mixture of multiple -+locales. @xref{Locale Categories}. - - For example, the user might specify the locale @samp{espana-castellano} - for most purposes, but specify the locale @samp{usa-english} for -@@ -120,7 +123,7 @@ which locales apply. However, the user - for a particular subset of those purposes. - - @node Locale Categories, Setting the Locale, Choosing Locale, Locales --@section Categories of Activities that Locales Affect -+@section Locale Categories - @cindex categories for locales - @cindex locale categories - -@@ -128,7 +131,11 @@ The purposes that locales serve are grou - that a user or a program can choose the locale for each category - independently. Here is a table of categories; each name is both an - environment variable that a user can set, and a macro name that you can --use as an argument to @code{setlocale}. -+use as the first argument to @code{setlocale}. -+ -+The contents of the environment variable (or the string in the second -+argument to @code{setlocale}) has to be a valid locale name. -+@xref{Locale Names}. - - @vtable @code - @comment locale.h -@@ -172,7 +179,7 @@ for affirmative and negative responses. - @comment locale.h - @comment ISO - @item LC_ALL --This is not an environment variable; it is only a macro that you can use -+This is not a category; it is only a macro that you can use - with @code{setlocale} to set a single locale for all purposes. Setting - this environment variable overwrites all selections by the other - @code{LC_*} variables or @code{LANG}. -@@ -355,13 +362,7 @@ The symbols in this section are defined - @c strndup @ascuheap @acsmem - @c strcasecmp_l ok (C locale) - The function @code{setlocale} sets the current locale for category --@var{category} to @var{locale}. A list of all the locales the system --provides can be created by running -- --@pindex locale --@smallexample -- locale -a --@end smallexample -+@var{category} to @var{locale}. - - If @var{category} is @code{LC_ALL}, this specifies the locale for all - purposes. The other possible values of @var{category} specify an -@@ -386,10 +387,9 @@ is passed in as @var{locale} parameter. - - When you read the current locale for category @code{LC_ALL}, the value - encodes the entire combination of selected locales for all categories. --In this case, the value is not just a single locale name. In fact, we --don't make any promises about what it looks like. But if you specify --the same ``locale name'' with @code{LC_ALL} in a subsequent call to --@code{setlocale}, it restores the same combination of locale selections. -+If you specify the same ``locale name'' with @code{LC_ALL} in a -+subsequent call to @code{setlocale}, it restores the same combination -+of locale selections. - - To be sure you can use the returned string encoding the currently selected - locale at a later time, you must make a copy of the string. It is not -@@ -405,20 +405,15 @@ for @var{category}. - If a nonempty string is given for @var{locale}, then the locale of that - name is used if possible. - -+The effective locale name (either the second argument to -+@code{setlocale}, or if the argument is an empty string, the name -+obtained from the process environment) must be valid locale name. -+@xref{Locale Names}. -+ - If you specify an invalid locale name, @code{setlocale} returns a null - pointer and leaves the current locale unchanged. - @end deftypefun - --The path used for finding locale data can be set using the --@code{LOCPATH} environment variable. The default path for finding --locale data is system specific. It is computed from the value given --as the prefix while configuring the C library. This value normally is --@file{/usr} or @file{/}. For the former the complete path is: -- --@smallexample --/usr/lib/locale --@end smallexample -- - Here is an example showing how you might use @code{setlocale} to - temporarily switch to a new locale. - -@@ -458,7 +453,7 @@ locale categories, and future versions o - portability, assume that any symbol beginning with @samp{LC_} might be - defined in @file{locale.h}. - --@node Standard Locales, Locale Information, Setting the Locale, Locales -+@node Standard Locales, Locale Names, Setting the Locale, Locales - @section Standard Locales - - The only locale names you can count on finding on all operating systems -@@ -492,7 +487,94 @@ with the environment, rather than trying - locale explicitly by name. Remember, different machines might have - different sets of locales installed. - --@node Locale Information, Formatting Numbers, Standard Locales, Locales -+@node Locale Names, Locale Information, Standard Locales, Locales -+@section Locale Names -+ -+The following command prints a list of locales supported by the -+system: -+ -+@pindex locale -+@smallexample -+ locale -a -+@end smallexample -+ -+@strong{Portability Note:} With the notable exception of the standard -+locale names @samp{C} and @samp{POSIX}, locale names are -+system-specific. -+ -+Most locale names follow XPG syntax and consist of up to four parts: -+ -+@smallexample -+@var{language}[_@var{territory}[.@var{codeset}]][@@@var{modifier}] -+@end smallexample -+ -+Beside the first part, all of them are allowed to be missing. If the -+full specified locale is not found, less specific ones are looked for. -+The various parts will be stripped off, in the following order: -+ -+@enumerate -+@item -+codeset -+@item -+normalized codeset -+@item -+territory -+@item -+modifier -+@end enumerate -+ -+For example, the locale name @samp{de_AT.iso885915@@euro} denotes a -+German-language locale for use in Austria, using the ISO-8859-15 -+(Latin-9) character set, and with the Euro as the currency symbol. -+ -+In addition to locale names which follow XPG syntax, systems may -+provide aliases such as @samp{german}. Both categories of names must -+not contain the slash character @samp{/}. -+ -+If the locale name starts with a slash @samp{/}, it is treated as a -+path relative to the configured locale directories; see @code{LOCPATH} -+below. The specified path must not contain a component @samp{..}, or -+the name is invalid, and @code{setlocale} will fail. -+ -+@strong{Portability Note:} POSIX suggests that if a locale name starts -+with a slash @samp{/}, it is resolved as an absolute path. However, -+@theglibc{} treats it as a relative path under the directories listed -+in @code{LOCPATH} (or the default locale directory if @code{LOCPATH} -+is unset). -+ -+Locale names which are longer than an implementation-defined limit are -+invalid and cause @code{setlocale} to fail. -+ -+As a special case, locale names used with @code{LC_ALL} can combine -+several locales, reflecting different locale settings for different -+categories. For example, you might want to use a U.S. locale with ISO -+A4 paper format, so you set @code{LANG} to @samp{en_US.UTF-8}, and -+@code{LC_PAPER} to @samp{de_DE.UTF-8}. In this case, the -+@code{LC_ALL}-style combined locale name is -+ -+@smallexample -+LC_CTYPE=en_US.UTF-8;LC_TIME=en_US.UTF-8;LC_PAPER=de_DE.UTF-8;@dots{} -+@end smallexample -+ -+followed by other category settings not shown here. -+ -+@vindex LOCPATH -+The path used for finding locale data can be set using the -+@code{LOCPATH} environment variable. This variable lists the -+directories in which to search for locale definitions, separated by a -+colon @samp{:}. -+ -+The default path for finding locale data is system specific. A typical -+value for the @code{LOCPATH} default is: -+ -+@smallexample -+/usr/share/locale -+@end smallexample -+ -+The value of @code{LOCPATH} is ignored by privileged programs for -+security reasons, and only the default directory is used. -+ -+@node Locale Information, Formatting Numbers, Locale Names, Locales - @section Accessing Locale Information - - There are several ways to access locale information. The simplest diff --git a/sin-sign.patch b/sin-sign.patch deleted file mode 100644 index 0f001c3..0000000 --- a/sin-sign.patch +++ /dev/null @@ -1,54 +0,0 @@ -Index: glibc-2.19/sysdeps/ieee754/dbl-64/s_sin.c -=================================================================== ---- glibc-2.19.orig/sysdeps/ieee754/dbl-64/s_sin.c -+++ glibc-2.19/sysdeps/ieee754/dbl-64/s_sin.c -@@ -447,19 +447,21 @@ __sin (double x) - } - else - { -+ double t; - if (a > 0) - { - m = 1; -+ t = a; - db = da; - } - else - { - m = 0; -- a = -a; -+ t = -a; - db = -da; - } -- u.x = big + a; -- y = a - (u.x - big); -+ u.x = big + t; -+ y = t - (u.x - big); - res = do_sin (u, y, db, &cor); - cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps; - retval = ((res == res + cor) ? ((m) ? res : -res) -@@ -671,19 +673,21 @@ __cos (double x) - } - else - { -+ double t; - if (a > 0) - { - m = 1; -+ t = a; - db = da; - } - else - { - m = 0; -- a = -a; -+ t = -a; - db = -da; - } -- u.x = big + a; -- y = a - (u.x - big); -+ u.x = big + t; -+ y = t - (u.x - big); - res = do_sin (u, y, db, &cor); - cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps; - retval = ((res == res + cor) ? ((m) ? res : -res) From 3e7527a4dd3b8c087c69356df03f851f878c35a273b698be2d0acf3143c3203a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 4 Nov 2014 16:27:30 +0000 Subject: [PATCH 176/204] Accepting request 258650 from Base:System - Update to crypt_blowfish 1.3. * Add support for the $2b$ prefix. - ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) (forwarded request 258649 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/258650 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=185 --- crypt_blowfish-1.2-sha.diff | 28 ++++----- crypt_blowfish-1.2.tar.gz | 3 - crypt_blowfish-1.2.tar.gz.sign | 10 --- crypt_blowfish-1.3.tar.gz | 3 + crypt_blowfish-1.3.tar.gz.sign | 10 +++ crypt_blowfish-gensalt.patch | 50 ++++++++------- glibc-testsuite.changes | 8 +++ glibc-testsuite.spec | 6 +- glibc-utils.changes | 8 +++ glibc-utils.spec | 6 +- glibc.changes | 8 +++ glibc.spec | 6 +- ifunc-x86-slow-sse4.patch | 111 +++++++++++++++++++++++++++++++++ 13 files changed, 203 insertions(+), 54 deletions(-) delete mode 100644 crypt_blowfish-1.2.tar.gz delete mode 100644 crypt_blowfish-1.2.tar.gz.sign create mode 100644 crypt_blowfish-1.3.tar.gz create mode 100644 crypt_blowfish-1.3.tar.gz.sign create mode 100644 ifunc-x86-slow-sse4.patch diff --git a/crypt_blowfish-1.2-sha.diff b/crypt_blowfish-1.2-sha.diff index 218ce1e..d7a5ce9 100644 --- a/crypt_blowfish-1.2-sha.diff +++ b/crypt_blowfish-1.2-sha.diff @@ -9,10 +9,10 @@ Subject: [PATCH crypt_blowfish] support for sha256 and sha512 wrapper.c | 23 +++++++++++++++++++++ 3 files changed, 95 insertions(+), 0 deletions(-) -Index: crypt_blowfish-1.2/crypt.3 +Index: crypt_blowfish-1.3/crypt.3 =================================================================== ---- crypt_blowfish-1.2.orig/crypt.3 -+++ crypt_blowfish-1.2/crypt.3 +--- crypt_blowfish-1.3.orig/crypt.3 ++++ crypt_blowfish-1.3/crypt.3 @@ -399,6 +399,20 @@ too low for the currently available hard .hash "$1$" "\e$1\e$[^$]{1,8}\e$[./0-9A-Za-z]{22}" unlimited 8 "" 128 "6 to 48" 1000 .PP @@ -34,10 +34,10 @@ Index: crypt_blowfish-1.2/crypt.3 .BR "OpenBSD-style Blowfish-based" " (" bcrypt ) .br .B bcrypt -Index: crypt_blowfish-1.2/crypt_gensalt.c +Index: crypt_blowfish-1.3/crypt_gensalt.c =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.c -+++ crypt_blowfish-1.2/crypt_gensalt.c +--- crypt_blowfish-1.3.orig/crypt_gensalt.c ++++ crypt_blowfish-1.3/crypt_gensalt.c @@ -19,6 +19,7 @@ */ @@ -107,10 +107,10 @@ Index: crypt_blowfish-1.2/crypt_gensalt.c + errno = ENOMEM; + return NULL; +} -Index: crypt_blowfish-1.2/crypt_gensalt.h +Index: crypt_blowfish-1.3/crypt_gensalt.h =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.h -+++ crypt_blowfish-1.2/crypt_gensalt.h +--- crypt_blowfish-1.3.orig/crypt_gensalt.h ++++ crypt_blowfish-1.3/crypt_gensalt.h @@ -26,5 +26,7 @@ extern char *_crypt_gensalt_extended_rn( const char *input, int size, char *output, int output_size); extern char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, @@ -119,10 +119,10 @@ Index: crypt_blowfish-1.2/crypt_gensalt.h + const char *input, int size, char *output, int output_size); #endif -Index: crypt_blowfish-1.2/wrapper.c +Index: crypt_blowfish-1.3/wrapper.c =================================================================== ---- crypt_blowfish-1.2.orig/wrapper.c -+++ crypt_blowfish-1.2/wrapper.c +--- crypt_blowfish-1.3.orig/wrapper.c ++++ crypt_blowfish-1.3/wrapper.c @@ -50,6 +50,10 @@ #include "crypt.h" extern char *__md5_crypt_r(const char *key, const char *salt, @@ -169,6 +169,6 @@ Index: crypt_blowfish-1.2/wrapper.c + if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) + use = _crypt_gensalt_sha2_rn; + else - if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) + if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || + !strncmp(prefix, "$2y$", 4)) use = _crypt_gensalt_blowfish_rn; - else diff --git a/crypt_blowfish-1.2.tar.gz b/crypt_blowfish-1.2.tar.gz deleted file mode 100644 index 4f3c60b..0000000 --- a/crypt_blowfish-1.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12a3455700d4795f5a99e6fca54c782688d3785e6525cbfe5129dcc363858e27 -size 29757 diff --git a/crypt_blowfish-1.2.tar.gz.sign b/crypt_blowfish-1.2.tar.gz.sign deleted file mode 100644 index 5097d2b..0000000 --- a/crypt_blowfish-1.2.tar.gz.sign +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.10 (GNU/Linux) -Comment: http://www.openwall.com/signatures/ - -iQCVAwUATiLawHK5fbEpUCnxAQIT4wP9GTUroM4r21oggeW0k3j5vICwSVHV5BbJ -MBOfliwa1tW9JNh/dEA9GHiPeVWXr/KNWm9/3bSYGDqfsYMlQ7x8w/CCUrS/gvpv -XtvwxUE5juAH5wy4+6oV1gBWiISWGOUcCqkgxPVZKOjlSV4c7kvr10JwqYdnqjK9 -RT/A2FgAxM4= -=K4Xs ------END PGP SIGNATURE----- diff --git a/crypt_blowfish-1.3.tar.gz b/crypt_blowfish-1.3.tar.gz new file mode 100644 index 0000000..fcb0aed --- /dev/null +++ b/crypt_blowfish-1.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83fa01fca6996fe8d882b7f8e9ba0305a5664936100b01481ea3c6a8ce8d72fd +size 30310 diff --git a/crypt_blowfish-1.3.tar.gz.sign b/crypt_blowfish-1.3.tar.gz.sign new file mode 100644 index 0000000..77b51bb --- /dev/null +++ b/crypt_blowfish-1.3.tar.gz.sign @@ -0,0 +1,10 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 +Comment: http://www.openwall.com/signatures/ + +iQCVAwUAU71f6nK5fbEpUCnxAQJCewQAqvRc4UbpJyJlYR0sbVbIjLPc6+3s9KQ9 +9LUrDkNJLlWli/4i0FXiFgRohNgzSYwaMRqbrsxZ+Dbp5XHKgjf3wzyhGGDvr0wb +fLvIVrIHO/XgeBz08h6feFsxD+er5iy4FMBVe1MRMw6IiJNtWsahQLP5EjddfEwD +XvIct4zt2Cc= +=cncr +-----END PGP SIGNATURE----- diff --git a/crypt_blowfish-gensalt.patch b/crypt_blowfish-gensalt.patch index 685fbec..9d1dd87 100644 --- a/crypt_blowfish-gensalt.patch +++ b/crypt_blowfish-gensalt.patch @@ -1,8 +1,8 @@ -Index: crypt_blowfish-1.2/crypt_blowfish.c +Index: crypt_blowfish-1.3/crypt_blowfish.c =================================================================== ---- crypt_blowfish-1.2.orig/crypt_blowfish.c -+++ crypt_blowfish-1.2/crypt_blowfish.c -@@ -872,31 +872,3 @@ char *_crypt_blowfish_rn(const char *key +--- crypt_blowfish-1.3.orig/crypt_blowfish.c ++++ crypt_blowfish-1.3/crypt_blowfish.c +@@ -877,31 +877,3 @@ char *_crypt_blowfish_rn(const char *key __set_errno(EINVAL); /* pretend we don't support this hash type */ return NULL; } @@ -13,7 +13,7 @@ Index: crypt_blowfish-1.2/crypt_blowfish.c - if (size < 16 || output_size < 7 + 22 + 1 || - (count && (count < 4 || count > 31)) || - prefix[0] != '$' || prefix[1] != '2' || -- (prefix[2] != 'a' && prefix[2] != 'y')) { +- (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { - if (output_size > 0) output[0] = '\0'; - __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); - return NULL; @@ -34,10 +34,10 @@ Index: crypt_blowfish-1.2/crypt_blowfish.c - - return output; -} -Index: crypt_blowfish-1.2/crypt_blowfish.h +Index: crypt_blowfish-1.3/crypt_blowfish.h =================================================================== ---- crypt_blowfish-1.2.orig/crypt_blowfish.h -+++ crypt_blowfish-1.2/crypt_blowfish.h +--- crypt_blowfish-1.3.orig/crypt_blowfish.h ++++ crypt_blowfish-1.3/crypt_blowfish.h @@ -20,8 +20,5 @@ extern int _crypt_output_magic(const char *setting, char *output, int size); extern char *_crypt_blowfish_rn(const char *key, const char *setting, @@ -47,10 +47,10 @@ Index: crypt_blowfish-1.2/crypt_blowfish.h - const char *input, int size, char *output, int output_size); #endif -Index: crypt_blowfish-1.2/crypt_gensalt.c +Index: crypt_blowfish-1.3/crypt_gensalt.c =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.c -+++ crypt_blowfish-1.2/crypt_gensalt.c +--- crypt_blowfish-1.3.orig/crypt_gensalt.c ++++ crypt_blowfish-1.3/crypt_gensalt.c @@ -20,6 +20,7 @@ #include @@ -108,7 +108,7 @@ Index: crypt_blowfish-1.2/crypt_gensalt.c + if (size < 16 || output_size < 7 + 22 + 1 || + (count && (count < 4 || count > 31)) || + prefix[0] != '$' || prefix[1] != '2' || -+ (prefix[2] != 'a' && prefix[2] != 'y')) { ++ (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { + if (output_size > 0) output[0] = '\0'; + __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); + return NULL; @@ -129,10 +129,10 @@ Index: crypt_blowfish-1.2/crypt_gensalt.c + + return output; +} -Index: crypt_blowfish-1.2/crypt_gensalt.h +Index: crypt_blowfish-1.3/crypt_gensalt.h =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.h -+++ crypt_blowfish-1.2/crypt_gensalt.h +--- crypt_blowfish-1.3.orig/crypt_gensalt.h ++++ crypt_blowfish-1.3/crypt_gensalt.h @@ -28,5 +28,8 @@ extern char *_crypt_gensalt_md5_rn(const const char *input, int size, char *output, int output_size); extern char *_crypt_gensalt_sha2_rn(const char *prefix, unsigned long count, @@ -142,11 +142,11 @@ Index: crypt_blowfish-1.2/crypt_gensalt.h + const char *input, int size, char *output, int output_size); #endif -Index: crypt_blowfish-1.2/wrapper-gensalt.c +Index: crypt_blowfish-1.3/wrapper-gensalt.c =================================================================== --- /dev/null -+++ crypt_blowfish-1.2/wrapper-gensalt.c -@@ -0,0 +1,113 @@ ++++ crypt_blowfish-1.3/wrapper-gensalt.c +@@ -0,0 +1,114 @@ +/* + * Written by Solar Designer in 2000-2011. + * No copyright is claimed, and the software is hereby placed in the public @@ -202,7 +202,8 @@ Index: crypt_blowfish-1.2/wrapper-gensalt.c + if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) + use = _crypt_gensalt_sha2_rn; + else -+ if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) ++ if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || ++ !strncmp(prefix, "$2y$", 4)) + use = _crypt_gensalt_blowfish_rn; + else + if (!strncmp(prefix, "$1$", 3)) @@ -260,10 +261,10 @@ Index: crypt_blowfish-1.2/wrapper-gensalt.c +weak_alias(__crypt_gensalt, crypt_gensalt) +#endif + -Index: crypt_blowfish-1.2/wrapper.c +Index: crypt_blowfish-1.3/wrapper.c =================================================================== ---- crypt_blowfish-1.2.orig/wrapper.c -+++ crypt_blowfish-1.2/wrapper.c +--- crypt_blowfish-1.3.orig/wrapper.c ++++ crypt_blowfish-1.3/wrapper.c @@ -35,7 +35,6 @@ #endif @@ -280,7 +281,7 @@ Index: crypt_blowfish-1.2/wrapper.c #if defined(__GLIBC__) && defined(_LIBC) /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ -@@ -209,88 +207,11 @@ char *crypt(const char *key, const char +@@ -209,89 +207,11 @@ char *crypt(const char *key, const char crypt_rn(key, setting, output, sizeof(output)), setting, output, sizeof(output)); } @@ -306,7 +307,8 @@ Index: crypt_blowfish-1.2/wrapper.c - if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) - use = _crypt_gensalt_sha2_rn; - else -- if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) +- if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || +- !strncmp(prefix, "$2y$", 4)) - use = _crypt_gensalt_blowfish_rn; - else - if (!strncmp(prefix, "$1$", 3)) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 2648c16..95b4d12 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de + +- Update to crypt_blowfish 1.3. + * Add support for the $2b$ prefix. +- ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit + (BZ #17501) + ------------------------------------------------------------------- Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 446406d..1f24478 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -24,7 +24,7 @@ # It will avoid building some parts of glibc %bcond_with fast_build -%define crypt_bf_version 1.2 +%define crypt_bf_version 1.3 Name: glibc-testsuite %define normal_build ("%{name}" == "glibc") @@ -232,6 +232,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) +Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -450,6 +452,8 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 2648c16..95b4d12 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de + +- Update to crypt_blowfish 1.3. + * Add support for the $2b$ prefix. +- ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit + (BZ #17501) + ------------------------------------------------------------------- Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 8f4f771..bcf4f22 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -24,7 +24,7 @@ # It will avoid building some parts of glibc %bcond_with fast_build -%define crypt_bf_version 1.2 +%define crypt_bf_version 1.3 Name: glibc-utils %define normal_build ("%{name}" == "glibc") @@ -231,6 +231,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) +Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -450,6 +452,8 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 diff --git a/glibc.changes b/glibc.changes index 2648c16..95b4d12 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de + +- Update to crypt_blowfish 1.3. + * Add support for the $2b$ prefix. +- ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit + (BZ #17501) + ------------------------------------------------------------------- Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index e78a302..8c78aaf 100644 --- a/glibc.spec +++ b/glibc.spec @@ -24,7 +24,7 @@ # It will avoid building some parts of glibc %bcond_with fast_build -%define crypt_bf_version 1.2 +%define crypt_bf_version 1.3 Name: glibc %define normal_build ("%{name}" == "glibc") @@ -232,6 +232,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) +Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -450,6 +452,8 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 diff --git a/ifunc-x86-slow-sse4.patch b/ifunc-x86-slow-sse4.patch new file mode 100644 index 0000000..7bc194c --- /dev/null +++ b/ifunc-x86-slow-sse4.patch @@ -0,0 +1,111 @@ +2014-10-27 Andreas Schwab + + [BZ #17501] + * sysdeps/i386/i686/multiarch/strcasecmp.S (__strcasecmp): Fix + check for Slow_SSE4_2 feature bit. + * sysdeps/i386/i686/multiarch/strcmp.S (STRCMP): Likewise. + * sysdeps/i386/i686/multiarch/strncase.S (__strncasecmp): Likewise. + * sysdeps/x86_64/multiarch/strcmp.S (STRCMP, __strcascmp): + Likewise. Fix check for Fast_Unaligned_Load feature bit. + +Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S +=================================================================== +--- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcasecmp.S ++++ glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S +@@ -37,7 +37,7 @@ ENTRY(__strcasecmp) + leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax + testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) + jz 2f +- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) ++ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) + jnz 2f + leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax + 2: popl %ebx +@@ -58,7 +58,7 @@ ENTRY(__strcasecmp) + leal __strcasecmp_ssse3, %eax + testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features + jz 2f +- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features ++ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features + jnz 2f + leal __strcasecmp_sse4_2, %eax + 2: ret +Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S +=================================================================== +--- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcmp.S ++++ glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S +@@ -68,7 +68,7 @@ ENTRY(STRCMP) + leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax + testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) + jz 2f +- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) ++ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) + jnz 2f + leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax + 2: popl %ebx +@@ -89,7 +89,7 @@ ENTRY(STRCMP) + leal __STRCMP_SSSE3, %eax + testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features + jz 2f +- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features ++ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features + jnz 2f + leal __STRCMP_SSE4_2, %eax + 2: ret +Index: glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S +=================================================================== +--- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strncase.S ++++ glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S +@@ -37,7 +37,7 @@ ENTRY(__strncasecmp) + leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax + testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) + jz 2f +- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) ++ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) + jnz 2f + leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax + 2: popl %ebx +@@ -58,7 +58,7 @@ ENTRY(__strncasecmp) + leal __strncasecmp_ssse3, %eax + testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features + jz 2f +- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features ++ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features + jnz 2f + leal __strncasecmp_sse4_2, %eax + 2: ret +Index: glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S +=================================================================== +--- glibc-2.20.orig/sysdeps/x86_64/multiarch/strcmp.S ++++ glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S +@@ -91,10 +91,10 @@ ENTRY(STRCMP) + 1: + #ifdef USE_AS_STRCMP + leaq __strcmp_sse2_unaligned(%rip), %rax +- testl $bit_Fast_Unaligned_Load, __cpu_features+CPUID_OFFSET+index_Fast_Unaligned_Load(%rip) ++ testl $bit_Fast_Unaligned_Load, __cpu_features+FEATURE_OFFSET+index_Fast_Unaligned_Load(%rip) + jnz 3f + #else +- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) ++ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) + jnz 2f + leaq STRCMP_SSE42(%rip), %rax + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) +@@ -120,7 +120,7 @@ ENTRY(__strcasecmp) + testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) + jnz 3f + # endif +- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) ++ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) + jnz 2f + leaq __strcasecmp_sse42(%rip), %rax + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) +@@ -146,7 +146,7 @@ ENTRY(__strncasecmp) + testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) + jnz 3f + # endif +- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) ++ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) + jnz 2f + leaq __strncasecmp_sse42(%rip), %rax + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) From b55daa035b75f9e9ef287a2b6162dc94f3905d41e07c0bd725434d9554300414 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 22 Feb 2015 16:19:34 +0000 Subject: [PATCH 177/204] Accepting request 285813 from Base:System - htm-tabort.patch: Fix TABORT encoding for little endian (forwarded request 285812 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/285813 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=186 --- glibc-2.14-crypt.diff | 159 +++++++++++++++------------ glibc-2.2-sunrpc.diff | 67 +++++------ glibc-2.20.tar.xz | 3 - glibc-2.21.tar.xz | 3 + glibc-2.3.90-noversion.diff | 8 +- glibc-nodate.patch | 23 +++- glibc-resolv-mdnshint.diff | 8 +- glibc-testsuite.changes | 24 ++++ glibc-testsuite.spec | 71 ++++++------ glibc-utils.changes | 24 ++++ glibc-utils.spec | 71 ++++++------ glibc-version.diff | 2 +- glibc.changes | 24 ++++ glibc.spec | 71 ++++++------ htm-tabort.patch | 18 +++ ifunc-x86-slow-sse4.patch | 111 ------------------- noversion.tar.bz2 | 4 +- o-tmpfile.patch | 29 +++++ pthread-mutex-trylock-elision.patch | 49 --------- pthread-mutexattr-gettype-kind.patch | 2 +- 20 files changed, 377 insertions(+), 394 deletions(-) delete mode 100644 glibc-2.20.tar.xz create mode 100644 glibc-2.21.tar.xz create mode 100644 htm-tabort.patch delete mode 100644 ifunc-x86-slow-sse4.patch create mode 100644 o-tmpfile.patch delete mode 100644 pthread-mutex-trylock-elision.patch diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 09acac1..f857644 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,7 +1,7 @@ -Index: glibc-2.19.90/crypt/Makefile +Index: glibc-2.20/crypt/Makefile =================================================================== ---- glibc-2.19.90.orig/crypt/Makefile -+++ glibc-2.19.90/crypt/Makefile +--- glibc-2.20.orig/crypt/Makefile ++++ glibc-2.20/crypt/Makefile @@ -23,14 +23,18 @@ subdir := crypt include ../Makeconfig @@ -23,10 +23,10 @@ Index: glibc-2.19.90/crypt/Makefile ifeq ($(crypt-in-libc),yes) routines += $(libcrypt-routines) -Index: glibc-2.19.90/crypt/Versions +Index: glibc-2.20/crypt/Versions =================================================================== ---- glibc-2.19.90.orig/crypt/Versions -+++ glibc-2.19.90/crypt/Versions +--- glibc-2.20.orig/crypt/Versions ++++ glibc-2.20/crypt/Versions @@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } @@ -36,11 +36,11 @@ Index: glibc-2.19.90/crypt/Versions + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } +} -Index: glibc-2.19.90/crypt/crypt-entry.c +Index: glibc-2.20/crypt/crypt-entry.c =================================================================== ---- glibc-2.19.90.orig/crypt/crypt-entry.c -+++ glibc-2.19.90/crypt/crypt-entry.c -@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; +--- glibc-2.20.orig/crypt/crypt-entry.c ++++ glibc-2.20/crypt/crypt-entry.c +@@ -71,7 +71,7 @@ extern struct crypt_data _ufc_foobar; */ char * @@ -49,7 +49,7 @@ Index: glibc-2.19.90/crypt/crypt-entry.c const char *key; const char *salt; struct crypt_data * __restrict data; -@@ -155,6 +155,7 @@ __crypt_r (key, salt, data) +@@ -145,6 +145,7 @@ __crypt_r (key, salt, data) _ufc_output_conversion_r (res[0], res[1], salt, data); return data->crypt_3_buf; } @@ -57,287 +57,300 @@ Index: glibc-2.19.90/crypt/crypt-entry.c weak_alias (__crypt_r, crypt_r) char * -@@ -197,3 +198,4 @@ __fcrypt (key, salt) +@@ -187,3 +188,4 @@ __fcrypt (key, salt) return crypt (key, salt); } #endif +#endif -Index: glibc-2.19.90/shlib-versions +Index: glibc-2.20/crypt/crypt-private.h =================================================================== ---- glibc-2.19.90.orig/shlib-versions -+++ glibc-2.19.90/shlib-versions -@@ -93,6 +93,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ +--- glibc-2.20.orig/crypt/crypt-private.h ++++ glibc-2.20/crypt/crypt-private.h +@@ -65,7 +65,7 @@ extern void __encrypt_r (char * __restri + struct crypt_data * __restrict __data); + + /* crypt-entry.c */ +-extern char *__crypt_r (const char *__key, const char *__salt, ++extern char *__des_crypt_r (const char *__key, const char *__salt, + struct crypt_data * __restrict __data); + extern char *fcrypt (const char *key, const char *salt); + +Index: glibc-2.20/shlib-versions +=================================================================== +--- glibc-2.20.orig/shlib-versions ++++ glibc-2.20/shlib-versions +@@ -88,6 +88,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ # This defines the shared library version numbers we will install. - .*-.*-.* libcrypt=1 -+.*-.*-.* libowcrypt=1 + libcrypt=1 ++libowcrypt=1 # The gross patch for programs assuming broken locale implementations. - sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist + libBrokenLocale=1 +Index: glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index 85f858c..2efdd81 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -2,10 +2,10 @@ For details see: http://sourceware.org/bugzilla/show_bug.cgi?id=5379 -Index: glibc-2.17.90/sunrpc/clnt_udp.c +Index: glibc-2.20/sunrpc/clnt_udp.c =================================================================== ---- glibc-2.17.90.orig/sunrpc/clnt_udp.c -+++ glibc-2.17.90/sunrpc/clnt_udp.c +--- glibc-2.20.orig/sunrpc/clnt_udp.c ++++ glibc-2.20/sunrpc/clnt_udp.c @@ -308,6 +308,7 @@ clntudp_call (cl, proc, xargs, argsp, xr XDR *xdrs; int outlen = 0; @@ -14,7 +14,7 @@ Index: glibc-2.17.90/sunrpc/clnt_udp.c socklen_t fromlen; struct pollfd fd; int milliseconds = (cu->cu_wait.tv_sec * 1000) + -@@ -378,37 +379,36 @@ send_again: +@@ -378,37 +379,39 @@ send_again: anyup = 0; for (;;) { @@ -24,12 +24,38 @@ Index: glibc-2.17.90/sunrpc/clnt_udp.c - case 0: - if (anyup == 0) -- { ++ case -1: ++ if (pollresult == 0 || errno == EINTR) + { - anyup = is_network_up (cu->cu_sock); - if (!anyup) - return (cu->cu_error.re_status = RPC_CANTRECV); -- } -- ++ if (anyup == 0) ++ { ++ anyup = is_network_up (cu->cu_sock); ++ if (!anyup) ++ return (cu->cu_error.re_status = RPC_CANTRECV); ++ } ++ ++ time_waited.tv_sec += cu->cu_wait.tv_sec; ++ time_waited.tv_usec += cu->cu_wait.tv_usec; ++ while (time_waited.tv_usec >= 1000000) ++ { ++ time_waited.tv_sec++; ++ time_waited.tv_usec -= 1000000; ++ } ++ if ((time_waited.tv_sec < timeout.tv_sec) || ++ ((time_waited.tv_sec == timeout.tv_sec) && ++ (time_waited.tv_usec < timeout.tv_usec))) ++ { ++ if (pollresult == 0) ++ goto send_again; ++ else ++ continue; ++ } ++ return (cu->cu_error.re_status = RPC_TIMEDOUT); + } + - time_waited.tv_sec += cu->cu_wait.tv_sec; - time_waited.tv_usec += cu->cu_wait.tv_usec; - while (time_waited.tv_usec >= 1000000) @@ -47,34 +73,9 @@ Index: glibc-2.17.90/sunrpc/clnt_udp.c - * buggy in other cases because time_waited is not being - * updated. - */ - case -1: +- case -1: - if (errno == EINTR) - continue; -+ if (pollresult == 0 || errno == EINTR) { -+ if (anyup == 0) -+ { -+ anyup = is_network_up (cu->cu_sock); -+ if (!anyup) -+ return (cu->cu_error.re_status = RPC_CANTRECV); -+ } -+ -+ time_waited.tv_sec += cu->cu_wait.tv_sec; -+ time_waited.tv_usec += cu->cu_wait.tv_usec; -+ while (time_waited.tv_usec >= 1000000) -+ { -+ time_waited.tv_sec++; -+ time_waited.tv_usec -= 1000000; -+ } -+ if ((time_waited.tv_sec < timeout.tv_sec) || -+ ((time_waited.tv_sec == timeout.tv_sec) && -+ (time_waited.tv_usec < timeout.tv_usec))) -+ if (pollresult == 0) -+ goto send_again; -+ else -+ continue; -+ return (cu->cu_error.re_status = RPC_TIMEDOUT); -+ } -+ + /* errno != EINTR */ cu->cu_error.re_errno = errno; return (cu->cu_error.re_status = RPC_CANTRECV); diff --git a/glibc-2.20.tar.xz b/glibc-2.20.tar.xz deleted file mode 100644 index 797fc53..0000000 --- a/glibc-2.20.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f84b6d42aecc288d593c397b0a3d02260a33ee686bce0c634eb9b32798f36ba5 -size 12283992 diff --git a/glibc-2.21.tar.xz b/glibc-2.21.tar.xz new file mode 100644 index 0000000..e6aa0d9 --- /dev/null +++ b/glibc-2.21.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 +size 12322092 diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index 964fe99..4216fc4 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,8 +1,8 @@ -Index: glibc-2.19.90/elf/rtld.c +Index: glibc-2.20/elf/rtld.c =================================================================== ---- glibc-2.19.90.orig/elf/rtld.c -+++ glibc-2.19.90/elf/rtld.c -@@ -1740,6 +1740,52 @@ ERROR: ld.so: object '%s' cannot be load +--- glibc-2.20.orig/elf/rtld.c ++++ glibc-2.20/elf/rtld.c +@@ -1591,6 +1591,52 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-nodate.patch b/glibc-nodate.patch index a5b2f5d..441713f 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,7 +1,7 @@ -Index: glibc-2.17.90/nscd/nscd_stat.c +Index: glibc-2.20.90/nscd/nscd_stat.c =================================================================== ---- glibc-2.17.90.orig/nscd/nscd_stat.c -+++ glibc-2.17.90/nscd/nscd_stat.c +--- glibc-2.20.90.orig/nscd/nscd_stat.c ++++ glibc-2.20.90/nscd/nscd_stat.c @@ -36,8 +36,13 @@ #endif /* HAVE_SELINUX */ @@ -9,11 +9,24 @@ Index: glibc-2.17.90/nscd/nscd_stat.c -/* We use this to make sure the receiver is the same. */ +/* We use this to make sure the receiver is the same. Capture mtime + of this file if possible. */ -+#if defined(__TIMESTAMP__) -+static const char compilation[21] = __TIMESTAMP__; ++#ifdef __TIMESTAMP__ ++static const char compilation[21]; +#else static const char compilation[21] = __DATE__ " " __TIME__; +#endif /* Statistic data for one database. */ struct dbstat +@@ -96,7 +101,12 @@ send_stats (int fd, struct database_dyn + + memset (&data, 0, sizeof (data)); + ++#ifdef __TIMESTAMP__ ++ /* Skip day of the week. */ ++ memcpy (data.version, __TIMESTAMP__ + 4, sizeof (compilation)); ++#else + memcpy (data.version, compilation, sizeof (compilation)); ++#endif + data.debug_level = debug_level; + data.runtime = time (NULL) - start_time; + data.client_queued = client_queued; diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff index 29777e4..81c11d0 100644 --- a/glibc-resolv-mdnshint.diff +++ b/glibc-resolv-mdnshint.diff @@ -1,12 +1,12 @@ -Index: glibc-2.17.90/resolv/res_hconf.c +Index: glibc-2.20/resolv/res_hconf.c =================================================================== ---- glibc-2.17.90.orig/resolv/res_hconf.c -+++ glibc-2.17.90/resolv/res_hconf.c +--- glibc-2.20.orig/resolv/res_hconf.c ++++ glibc-2.20/resolv/res_hconf.c @@ -240,9 +240,12 @@ parse_line (const char *fname, int line_ if (c == NULL) { char *buf; -+ char *hint = ""; ++ const char *hint = ""; - if (__asprintf (&buf, _("%s: line %d: bad command `%s'\n"), - fname, line_num, start) < 0) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 95b4d12..7745074 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de + +- htm-tabort.patch: Fix TABORT encoding for little endian + +------------------------------------------------------------------- +Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de + +- Update to glibc 2.21 release. + * A new semaphore algorithm has been implemented in generic C code for all + machines + * Added support for TSX lock elision of pthread mutexes on powerpc32, + powerpc64 and powerpc64le + * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for + AArch64 + * i386 memcpy functions optimized with SSE2 unaligned load/store + * New locales: tu_IN, bh_IN, raj_IN, ce_RU + * The obsolete sigvec function has been removed +- Patches from upstream removed + * ifunc-x86-slow-sse4.patch + * pthread-mutex-trylock-elision.patch +- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with + non-default O_DIRECTORY (BZ #17912) + ------------------------------------------------------------------- Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1f24478..303ba3b 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -100,10 +100,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.20 +Version: 2.21 Release: 0 -%define glibc_major_version 2.20 -%define git_id b8079dd0d360 +%define git_id 4e42b5b8f89f Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -232,8 +231,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) -Patch1000: ifunc-x86-slow-sse4.patch +# PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian +Patch1000: htm-tabort.patch ### # Patches awaiting upstream approval @@ -244,14 +243,14 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) -Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch2008: o-tmpfile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -457,10 +456,10 @@ rm nscd/s-stamp %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 -%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 @@ -827,7 +826,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -950,7 +949,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1065,7 +1064,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{glibc_major_version}.so +/%{_lib}/ld-%{version}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1104,58 +1103,58 @@ exit 0 /%{_lib}/ld-linux-aarch64.so.1 %endif -/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl-%{version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc-%{version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn-%{version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt-%{version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt-%{version}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl-%{version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db-%{version}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files-%{version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod-%{version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis-%{version}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus-%{version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv-%{version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt-%{version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc-%{version}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm-%{version}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread-%{version}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt-%{version}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 95b4d12..7745074 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de + +- htm-tabort.patch: Fix TABORT encoding for little endian + +------------------------------------------------------------------- +Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de + +- Update to glibc 2.21 release. + * A new semaphore algorithm has been implemented in generic C code for all + machines + * Added support for TSX lock elision of pthread mutexes on powerpc32, + powerpc64 and powerpc64le + * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for + AArch64 + * i386 memcpy functions optimized with SSE2 unaligned load/store + * New locales: tu_IN, bh_IN, raj_IN, ce_RU + * The obsolete sigvec function has been removed +- Patches from upstream removed + * ifunc-x86-slow-sse4.patch + * pthread-mutex-trylock-elision.patch +- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with + non-default O_DIRECTORY (BZ #17912) + ------------------------------------------------------------------- Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index bcf4f22..5a31dd9 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -99,10 +99,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.20 +Version: 2.21 Release: 0 -%define glibc_major_version 2.20 -%define git_id b8079dd0d360 +%define git_id 4e42b5b8f89f Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -231,8 +230,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) -Patch1000: ifunc-x86-slow-sse4.patch +# PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian +Patch1000: htm-tabort.patch ### # Patches awaiting upstream approval @@ -243,14 +242,14 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) -Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch2008: o-tmpfile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -457,10 +456,10 @@ rm nscd/s-stamp %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 -%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 @@ -827,7 +826,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -950,7 +949,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1065,7 +1064,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{glibc_major_version}.so +/%{_lib}/ld-%{version}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1104,58 +1103,58 @@ exit 0 /%{_lib}/ld-linux-aarch64.so.1 %endif -/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl-%{version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc-%{version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn-%{version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt-%{version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt-%{version}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl-%{version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db-%{version}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files-%{version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod-%{version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis-%{version}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus-%{version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv-%{version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt-%{version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc-%{version}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm-%{version}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread-%{version}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt-%{version}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/glibc-version.diff b/glibc-version.diff index b563a8c..ae13f25 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -8,7 +8,7 @@ Index: glibc-2.17.90/csu/version.c static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2014 Free Software Foundation, Inc.\n\ + Copyright (C) 2015 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index 95b4d12..7745074 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de + +- htm-tabort.patch: Fix TABORT encoding for little endian + +------------------------------------------------------------------- +Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de + +- Update to glibc 2.21 release. + * A new semaphore algorithm has been implemented in generic C code for all + machines + * Added support for TSX lock elision of pthread mutexes on powerpc32, + powerpc64 and powerpc64le + * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for + AArch64 + * i386 memcpy functions optimized with SSE2 unaligned load/store + * New locales: tu_IN, bh_IN, raj_IN, ce_RU + * The obsolete sigvec function has been removed +- Patches from upstream removed + * ifunc-x86-slow-sse4.patch + * pthread-mutex-trylock-elision.patch +- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with + non-default O_DIRECTORY (BZ #17912) + ------------------------------------------------------------------- Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 8c78aaf..12cafe1 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -100,10 +100,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.20 +Version: 2.21 Release: 0 -%define glibc_major_version 2.20 -%define git_id b8079dd0d360 +%define git_id 4e42b5b8f89f Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -232,8 +231,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) -Patch1000: ifunc-x86-slow-sse4.patch +# PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian +Patch1000: htm-tabort.patch ### # Patches awaiting upstream approval @@ -244,14 +243,14 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) -Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch2008: o-tmpfile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -457,10 +456,10 @@ rm nscd/s-stamp %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 -%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 @@ -827,7 +826,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -950,7 +949,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1065,7 +1064,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{glibc_major_version}.so +/%{_lib}/ld-%{version}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1104,58 +1103,58 @@ exit 0 /%{_lib}/ld-linux-aarch64.so.1 %endif -/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl-%{version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc-%{version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn-%{version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt-%{version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt-%{version}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl-%{version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db-%{version}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files-%{version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod-%{version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis-%{version}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus-%{version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv-%{version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt-%{version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc-%{version}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm-%{version}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread-%{version}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt-%{version}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/htm-tabort.patch b/htm-tabort.patch new file mode 100644 index 0000000..209b334 --- /dev/null +++ b/htm-tabort.patch @@ -0,0 +1,18 @@ +2015-02-12 Adhemerval Zanella + + * sysdeps/unix/sysv/linux/powerpc/htm.h [TABORT]: Fix encoding for + little endian. + +Index: glibc-2.21/sysdeps/unix/sysv/linux/powerpc/htm.h +=================================================================== +--- glibc-2.21.orig/sysdeps/unix/sysv/linux/powerpc/htm.h ++++ glibc-2.21/sysdeps/unix/sysv/linux/powerpc/htm.h +@@ -60,7 +60,7 @@ + #define TBEGIN ".long 0x7c00051d" + #define TEND ".long 0x7c00055d" + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# define TABORT ".byte 0x1d,0x07,%1,0x1d" ++# define TABORT ".byte 0x1d,0x07,%1,0x7c" + #else + # define TABORT ".byte 0x7c,%1,0x07,0x1d" + #endif diff --git a/ifunc-x86-slow-sse4.patch b/ifunc-x86-slow-sse4.patch deleted file mode 100644 index 7bc194c..0000000 --- a/ifunc-x86-slow-sse4.patch +++ /dev/null @@ -1,111 +0,0 @@ -2014-10-27 Andreas Schwab - - [BZ #17501] - * sysdeps/i386/i686/multiarch/strcasecmp.S (__strcasecmp): Fix - check for Slow_SSE4_2 feature bit. - * sysdeps/i386/i686/multiarch/strcmp.S (STRCMP): Likewise. - * sysdeps/i386/i686/multiarch/strncase.S (__strncasecmp): Likewise. - * sysdeps/x86_64/multiarch/strcmp.S (STRCMP, __strcascmp): - Likewise. Fix check for Fast_Unaligned_Load feature bit. - -Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S -=================================================================== ---- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcasecmp.S -+++ glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S -@@ -37,7 +37,7 @@ ENTRY(__strcasecmp) - leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) - jnz 2f - leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax - 2: popl %ebx -@@ -58,7 +58,7 @@ ENTRY(__strcasecmp) - leal __strcasecmp_ssse3, %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features - jnz 2f - leal __strcasecmp_sse4_2, %eax - 2: ret -Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S -=================================================================== ---- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcmp.S -+++ glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S -@@ -68,7 +68,7 @@ ENTRY(STRCMP) - leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) - jnz 2f - leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax - 2: popl %ebx -@@ -89,7 +89,7 @@ ENTRY(STRCMP) - leal __STRCMP_SSSE3, %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features - jnz 2f - leal __STRCMP_SSE4_2, %eax - 2: ret -Index: glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S -=================================================================== ---- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strncase.S -+++ glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S -@@ -37,7 +37,7 @@ ENTRY(__strncasecmp) - leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) - jnz 2f - leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax - 2: popl %ebx -@@ -58,7 +58,7 @@ ENTRY(__strncasecmp) - leal __strncasecmp_ssse3, %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features - jnz 2f - leal __strncasecmp_sse4_2, %eax - 2: ret -Index: glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S -=================================================================== ---- glibc-2.20.orig/sysdeps/x86_64/multiarch/strcmp.S -+++ glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S -@@ -91,10 +91,10 @@ ENTRY(STRCMP) - 1: - #ifdef USE_AS_STRCMP - leaq __strcmp_sse2_unaligned(%rip), %rax -- testl $bit_Fast_Unaligned_Load, __cpu_features+CPUID_OFFSET+index_Fast_Unaligned_Load(%rip) -+ testl $bit_Fast_Unaligned_Load, __cpu_features+FEATURE_OFFSET+index_Fast_Unaligned_Load(%rip) - jnz 3f - #else -- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) -+ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) - jnz 2f - leaq STRCMP_SSE42(%rip), %rax - testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) -@@ -120,7 +120,7 @@ ENTRY(__strcasecmp) - testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) - jnz 3f - # endif -- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) -+ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) - jnz 2f - leaq __strcasecmp_sse42(%rip), %rax - testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) -@@ -146,7 +146,7 @@ ENTRY(__strncasecmp) - testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) - jnz 3f - # endif -- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) -+ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) - jnz 2f - leaq __strncasecmp_sse42(%rip), %rax - testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) diff --git a/noversion.tar.bz2 b/noversion.tar.bz2 index 070dd48..bde0dd1 100644 --- a/noversion.tar.bz2 +++ b/noversion.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3970c86754545a65f32f6595c3b638b9966e901827f2bc01db552b9cf9cf5bfc -size 1818 +oid sha256:6c47b7dccf2d318f2e2144322e6a931c46a7507f0e77a64fed3623860e10c5ab +size 1833 diff --git a/o-tmpfile.patch b/o-tmpfile.patch new file mode 100644 index 0000000..b8e357e --- /dev/null +++ b/o-tmpfile.patch @@ -0,0 +1,29 @@ +From 127ffc81a8565bebd134c0f43afba5ae7997bf97 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Sun, 1 Feb 2015 14:04:15 +0100 +Subject: [PATCH] Fix value of O_TMPFILE for architectures with non-default + O_DIRECTORY + + [BZ #17912] + * sysdeps/unix/sysv/linux/bits/fcntl-linux.h (__O_TMPFILE): Define + in terms of __O_DIRECTORY. +--- + sysdeps/unix/sysv/linux/bits/fcntl-linux.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +index 3d28c84..d2baeb3 100644 +--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h ++++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +@@ -97,7 +97,7 @@ + # define __O_DSYNC 010000 + #endif + #ifndef __O_TMPFILE +-# define __O_TMPFILE 020200000 ++# define __O_TMPFILE (020000000 | __O_DIRECTORY) + #endif + + #ifndef F_GETLK +-- +2.2.2 + diff --git a/pthread-mutex-trylock-elision.patch b/pthread-mutex-trylock-elision.patch deleted file mode 100644 index cc2fec3..0000000 --- a/pthread-mutex-trylock-elision.patch +++ /dev/null @@ -1,49 +0,0 @@ -[PATCH] Properly handle forced elision in pthread_mutex_trylock - - BZ #16657 - * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Use - FORCE_ELISION instead of DO_ELISION. - * sysdeps/unix/sysv/linux/x86/force-elision.h (DO_ELISION): - Remove. - -Index: glibc-2.19.90/nptl/pthread_mutex_trylock.c -=================================================================== ---- glibc-2.19.90.orig/nptl/pthread_mutex_trylock.c -+++ glibc-2.19.90/nptl/pthread_mutex_trylock.c -@@ -26,8 +26,8 @@ - #define lll_trylock_elision(a,t) lll_trylock(a) - #endif - --#ifndef DO_ELISION --#define DO_ELISION(m) 0 -+#ifndef FORCE_ELISION -+#define FORCE_ELISION(m, s) - #endif - - /* We don't force elision in trylock, because this can lead to inconsistent -@@ -77,8 +77,7 @@ __pthread_mutex_trylock (mutex) - return 0; - - case PTHREAD_MUTEX_TIMED_NP: -- if (DO_ELISION (mutex)) -- goto elision; -+ FORCE_ELISION (mutex, goto elision); - /*FALL THROUGH*/ - case PTHREAD_MUTEX_ADAPTIVE_NP: - case PTHREAD_MUTEX_ERRORCHECK_NP: -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86/force-elision.h -=================================================================== ---- glibc-2.19.90.orig/sysdeps/unix/sysv/linux/x86/force-elision.h -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86/force-elision.h -@@ -16,11 +16,6 @@ - License along with the GNU C Library; if not, see - . */ - --/* Check for elision on this lock without upgrading. */ --#define DO_ELISION(m) \ -- (__pthread_force_elision \ -- && (m->__data.__kind & PTHREAD_MUTEX_NO_ELISION_NP) == 0) \ -- - /* Automatically enable elision for existing user lock kinds. */ - #define FORCE_ELISION(m, s) \ - if (__pthread_force_elision \ diff --git a/pthread-mutexattr-gettype-kind.patch b/pthread-mutexattr-gettype-kind.patch index 2bf8709..0af5da6 100644 --- a/pthread-mutexattr-gettype-kind.patch +++ b/pthread-mutexattr-gettype-kind.patch @@ -24,7 +24,7 @@ Index: glibc-2.19/nptl/Makefile @@ -253,7 +253,7 @@ tests = tst-typesizes \ tst-exit1 tst-exit2 tst-exit3 \ tst-stdio1 tst-stdio2 \ - tst-stack1 tst-stack2 tst-stack3 tst-pthread-getattr \ + tst-stack1 tst-stack2 tst-stack3 tst-stack4 tst-pthread-getattr \ - tst-pthread-attr-affinity \ + tst-pthread-attr-affinity tst-pthread-mutexattr \ tst-unload \ From 31d6224bad0c51e7201d2b1effbba01814ed5d397910857177ab7b3f1d4bde30 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 18 Mar 2015 13:35:45 +0000 Subject: [PATCH 178/204] Accepting request 290123 from Base:System - resolv-nameserver-handling.patch: Replace with simpler version with more compatibility (forwarded request 290122 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/290123 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=187 --- glibc-testsuite.changes | 18 ++ glibc-testsuite.spec | 10 +- glibc-utils.changes | 18 ++ glibc-utils.spec | 10 +- glibc.changes | 18 ++ glibc.spec | 10 +- memcpy-chk-non-SSE2.patch | 21 ++ resolv-nameserver-handling.patch | 426 +++++++++++++++++++++++++++++++ 8 files changed, 525 insertions(+), 6 deletions(-) create mode 100644 memcpy-chk-non-SSE2.patch create mode 100644 resolv-nameserver-handling.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 7745074..7805886 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de + +- resolv-nameserver-handling.patch: Replace with simpler version with more + compatibility + +------------------------------------------------------------------- +Mon Mar 2 14:27:02 UTC 2015 - schwab@suse.de + +- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs + (bsc#920084) + +------------------------------------------------------------------- +Tue Feb 24 10:11:46 UTC 2015 - schwab@suse.de + +- resolv-nameserver-handling.patch: Rewrite handling of nameserver + configuration in resolver + ------------------------------------------------------------------- Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 303ba3b..93f2fa1 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -233,6 +233,10 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian Patch1000: htm-tabort.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch1001: o-tmpfile.patch +# PATH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) +Patch1002: memcpy-chk-non-SSE2.patch ### # Patches awaiting upstream approval @@ -249,8 +253,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) -Patch2008: o-tmpfile.patch +# PATCH-FIX-UPSTREAM Rewrite handling of nameserver configuration in resolver +Patch2008: resolv-nameserver-handling.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -452,6 +456,8 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 7745074..7805886 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de + +- resolv-nameserver-handling.patch: Replace with simpler version with more + compatibility + +------------------------------------------------------------------- +Mon Mar 2 14:27:02 UTC 2015 - schwab@suse.de + +- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs + (bsc#920084) + +------------------------------------------------------------------- +Tue Feb 24 10:11:46 UTC 2015 - schwab@suse.de + +- resolv-nameserver-handling.patch: Rewrite handling of nameserver + configuration in resolver + ------------------------------------------------------------------- Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 5a31dd9..a02a571 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -232,6 +232,10 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian Patch1000: htm-tabort.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch1001: o-tmpfile.patch +# PATH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) +Patch1002: memcpy-chk-non-SSE2.patch ### # Patches awaiting upstream approval @@ -248,8 +252,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) -Patch2008: o-tmpfile.patch +# PATCH-FIX-UPSTREAM Rewrite handling of nameserver configuration in resolver +Patch2008: resolv-nameserver-handling.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -452,6 +456,8 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/glibc.changes b/glibc.changes index 7745074..7805886 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de + +- resolv-nameserver-handling.patch: Replace with simpler version with more + compatibility + +------------------------------------------------------------------- +Mon Mar 2 14:27:02 UTC 2015 - schwab@suse.de + +- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs + (bsc#920084) + +------------------------------------------------------------------- +Tue Feb 24 10:11:46 UTC 2015 - schwab@suse.de + +- resolv-nameserver-handling.patch: Rewrite handling of nameserver + configuration in resolver + ------------------------------------------------------------------- Thu Feb 12 13:10:20 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 12cafe1..171f596 100644 --- a/glibc.spec +++ b/glibc.spec @@ -233,6 +233,10 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian Patch1000: htm-tabort.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch1001: o-tmpfile.patch +# PATH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) +Patch1002: memcpy-chk-non-SSE2.patch ### # Patches awaiting upstream approval @@ -249,8 +253,8 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) -Patch2008: o-tmpfile.patch +# PATCH-FIX-UPSTREAM Rewrite handling of nameserver configuration in resolver +Patch2008: resolv-nameserver-handling.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -452,6 +456,8 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/memcpy-chk-non-SSE2.patch b/memcpy-chk-non-SSE2.patch new file mode 100644 index 0000000..810481e --- /dev/null +++ b/memcpy-chk-non-SSE2.patch @@ -0,0 +1,21 @@ +2015-02-10 Evangelos Foutras + + [BZ #17949] + * sysdeps/i386/i686/multiarch/mempcpy_chk.S: Fix position of + jump label. + +Index: glibc-2.21/sysdeps/i386/i686/multiarch/mempcpy_chk.S +=================================================================== +--- glibc-2.21.orig/sysdeps/i386/i686/multiarch/mempcpy_chk.S ++++ glibc-2.21/sysdeps/i386/i686/multiarch/mempcpy_chk.S +@@ -36,8 +36,8 @@ ENTRY(__mempcpy_chk) + cmpl $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx) + jne 1f + call __init_cpu_features +- leal __mempcpy_chk_ia32@GOTOFF(%ebx), %eax +-1: testl $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx) ++1: leal __mempcpy_chk_ia32@GOTOFF(%ebx), %eax ++ testl $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx) + jz 2f + leal __mempcpy_chk_sse2_unaligned@GOTOFF(%ebx), %eax + testl $bit_Fast_Unaligned_Load, FEATURE_OFFSET+index_Fast_Unaligned_Load+__cpu_features@GOTOFF(%ebx) diff --git a/resolv-nameserver-handling.patch b/resolv-nameserver-handling.patch new file mode 100644 index 0000000..9bc0e78 --- /dev/null +++ b/resolv-nameserver-handling.patch @@ -0,0 +1,426 @@ +From 6c07233f12e00b9cf66fb5d4a9b7ddb897590912 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Thu, 19 Feb 2015 15:52:08 +0100 +Subject: [PATCH] Simplify handling of nameserver configuration in resolver + + [BZ #13028] + [BZ #17053] + * resolv/res_init.c (__res_vinit): Remove use of ext.nsmap. + * resolv/res_send.c (__libc_res_nsend): Likewise. + (get_nsaddr): New function. + (res_ourserver_p, send_vc, reopen): Use it instead of accessing + statp directly. +--- + resolv/res_init.c | 47 +++++----------- + resolv/res_send.c | 164 +++++++++++++++++++++++------------------------------- + 2 files changed, 84 insertions(+), 127 deletions(-) + +diff --git a/resolv/res_init.c b/resolv/res_init.c +index 553ba12..66561ff 100644 +--- a/resolv/res_init.c ++++ b/resolv/res_init.c +@@ -153,10 +153,8 @@ __res_vinit(res_state statp, int preinit) { + char *cp, **pp; + int n; + char buf[BUFSIZ]; +- int nserv = 0; /* number of IPv4 nameservers read from file */ +-#ifdef _LIBC +- int nservall = 0; /* number of (IPv4 + IPV6) nameservers read from file */ +-#endif ++ int nserv = 0; /* number of nameservers read from file */ ++ int have_serv6 = 0; + int haveenv = 0; + int havesearch = 0; + #ifdef RESOLVSORT +@@ -184,15 +182,9 @@ __res_vinit(res_state statp, int preinit) { + statp->_flags = 0; + statp->qhook = NULL; + statp->rhook = NULL; +- statp->_u._ext.nsinit = 0; + statp->_u._ext.nscount = 0; +-#ifdef _LIBC +- statp->_u._ext.nscount6 = 0; +- for (n = 0; n < MAXNS; n++) { +- statp->_u._ext.nsaddrs[n] = NULL; +- statp->_u._ext.nsmap[n] = MAXNS; +- } +-#endif ++ for (n = 0; n < MAXNS; n++) ++ statp->_u._ext.nsaddrs[n] = NULL; + + /* Allow user to override the local domain definition */ + if ((cp = getenv("LOCALDOMAIN")) != NULL) { +@@ -296,11 +288,7 @@ __res_vinit(res_state statp, int preinit) { + continue; + } + /* read nameservers to query */ +-#ifdef _LIBC +- if (MATCH(buf, "nameserver") && nservall < MAXNS) { +-#else + if (MATCH(buf, "nameserver") && nserv < MAXNS) { +-#endif + struct in_addr a; + + cp = buf + sizeof("nameserver") - 1; +@@ -308,13 +296,12 @@ __res_vinit(res_state statp, int preinit) { + cp++; + if ((*cp != '\0') && (*cp != '\n') + && __inet_aton(cp, &a)) { +- statp->nsaddr_list[nservall].sin_addr = a; +- statp->nsaddr_list[nservall].sin_family = AF_INET; +- statp->nsaddr_list[nservall].sin_port = ++ statp->nsaddr_list[nserv].sin_addr = a; ++ statp->nsaddr_list[nserv].sin_family = AF_INET; ++ statp->nsaddr_list[nserv].sin_port = + htons(NAMESERVER_PORT); + nserv++; + #ifdef _LIBC +- nservall++; + } else { + struct in6_addr a6; + char *el; +@@ -356,10 +343,11 @@ __res_vinit(res_state statp, int preinit) { + } + } + +- statp->_u._ext.nsaddrs[nservall] = sa6; +- statp->_u._ext.nssocks[nservall] = -1; +- statp->_u._ext.nsmap[nservall] = MAXNS + 1; +- nservall++; ++ statp->nsaddr_list[nserv].sin_family = 0; ++ statp->_u._ext.nsaddrs[nserv] = sa6; ++ statp->_u._ext.nssocks[nserv] = -1; ++ have_serv6 = 1; ++ nserv++; + } + } + #endif +@@ -414,10 +402,9 @@ __res_vinit(res_state statp, int preinit) { + continue; + } + } +- statp->nscount = nservall; ++ statp->nscount = nserv; + #ifdef _LIBC +- if (nservall - nserv > 0) { +- statp->_u._ext.nscount6 = nservall - nserv; ++ if (have_serv6) { + /* We try IPv6 servers again. */ + statp->ipv6_unavail = false; + } +@@ -606,11 +593,7 @@ __res_iclose(res_state statp, bool free_addr) { + statp->_vcsock = -1; + statp->_flags &= ~(RES_F_VC | RES_F_CONN); + } +-#ifdef _LIBC +- for (ns = 0; ns < MAXNS; ns++) +-#else + for (ns = 0; ns < statp->_u._ext.nscount; ns++) +-#endif + if (statp->_u._ext.nsaddrs[ns]) { + if (statp->_u._ext.nssocks[ns] != -1) { + close_not_cancel_no_status(statp->_u._ext.nssocks[ns]); +@@ -621,8 +604,6 @@ __res_iclose(res_state statp, bool free_addr) { + statp->_u._ext.nsaddrs[ns] = NULL; + } + } +- if (free_addr) +- statp->_u._ext.nsinit = 0; + } + libc_hidden_def (__res_iclose) + +diff --git a/resolv/res_send.c b/resolv/res_send.c +index c35fb66..5e53cc2 100644 +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -184,6 +184,7 @@ evNowTime(struct timespec *res) { + + /* Forward. */ + ++static struct sockaddr *get_nsaddr (res_state, int); + static int send_vc(res_state, const u_char *, int, + const u_char *, int, + u_char **, int *, int *, int, u_char **, +@@ -221,20 +222,21 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp) + in_port_t port = in4p->sin_port; + in_addr_t addr = in4p->sin_addr.s_addr; + +- for (ns = 0; ns < MAXNS; ns++) { ++ for (ns = 0; ns < statp->nscount; ns++) { + const struct sockaddr_in *srv = +- (struct sockaddr_in *)EXT(statp).nsaddrs[ns]; ++ (struct sockaddr_in *) get_nsaddr (statp, ns); + +- if ((srv != NULL) && (srv->sin_family == AF_INET) && ++ if ((srv->sin_family == AF_INET) && + (srv->sin_port == port) && + (srv->sin_addr.s_addr == INADDR_ANY || + srv->sin_addr.s_addr == addr)) + return (1); + } + } else if (inp->sin6_family == AF_INET6) { +- for (ns = 0; ns < MAXNS; ns++) { +- const struct sockaddr_in6 *srv = EXT(statp).nsaddrs[ns]; +- if ((srv != NULL) && (srv->sin6_family == AF_INET6) && ++ for (ns = 0; ns < statp->nscount; ns++) { ++ const struct sockaddr_in6 *srv ++ = (struct sockaddr_in6 *) get_nsaddr (statp, ns); ++ if ((srv->sin6_family == AF_INET6) && + (srv->sin6_port == inp->sin6_port) && + !(memcmp(&srv->sin6_addr, &in6addr_any, + sizeof (struct in6_addr)) && +@@ -384,80 +386,48 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen, + * If the ns_addr_list in the resolver context has changed, then + * invalidate our cached copy and the associated timing data. + */ +- if (EXT(statp).nsinit) { ++ if (EXT(statp).nscount != 0) { + int needclose = 0; + + if (EXT(statp).nscount != statp->nscount) + needclose++; + else +- for (ns = 0; ns < MAXNS; ns++) { +- unsigned int map = EXT(statp).nsmap[ns]; +- if (map < MAXNS ++ for (ns = 0; ns < statp->nscount; ns++) { ++ if (statp->nsaddr_list[ns].sin_family != 0 + && !sock_eq((struct sockaddr_in6 *) +- &statp->nsaddr_list[map], ++ &statp->nsaddr_list[ns], + EXT(statp).nsaddrs[ns])) + { + needclose++; + break; + } + } +- if (needclose) ++ if (needclose) { + __res_iclose(statp, false); ++ EXT(statp).nscount = 0; ++ } + } + + /* + * Maybe initialize our private copy of the ns_addr_list. + */ +- if (EXT(statp).nsinit == 0) { +- unsigned char map[MAXNS]; +- +- memset (map, MAXNS, sizeof (map)); +- for (n = 0; n < MAXNS; n++) { +- ns = EXT(statp).nsmap[n]; +- if (ns < statp->nscount) +- map[ns] = n; +- else if (ns < MAXNS) { +- free(EXT(statp).nsaddrs[n]); +- EXT(statp).nsaddrs[n] = NULL; +- EXT(statp).nsmap[n] = MAXNS; +- } +- } +- n = statp->nscount; +- if (statp->nscount > EXT(statp).nscount) +- for (n = EXT(statp).nscount, ns = 0; +- n < statp->nscount; n++) { +- while (ns < MAXNS +- && EXT(statp).nsmap[ns] != MAXNS) +- ns++; +- if (ns == MAXNS) +- break; +- /* NS never exceeds MAXNS, but gcc 4.9 somehow +- does not see this. */ +- DIAG_PUSH_NEEDS_COMMENT; +- DIAG_IGNORE_NEEDS_COMMENT (4.9, +- "-Warray-bounds"); +- EXT(statp).nsmap[ns] = n; +- DIAG_POP_NEEDS_COMMENT; +- map[n] = ns++; +- } +- EXT(statp).nscount = n; +- for (ns = 0; ns < EXT(statp).nscount; ns++) { +- n = map[ns]; +- if (EXT(statp).nsaddrs[n] == NULL) +- EXT(statp).nsaddrs[n] = ++ if (EXT(statp).nscount == 0) { ++ for (ns = 0; ns < statp->nscount; ns++) { ++ EXT(statp).nssocks[ns] = -1; ++ if (statp->nsaddr_list[ns].sin_family == 0) ++ continue; ++ if (EXT(statp).nsaddrs[ns] == NULL) ++ EXT(statp).nsaddrs[ns] = + malloc(sizeof (struct sockaddr_in6)); +- if (EXT(statp).nsaddrs[n] != NULL) { +- memset (mempcpy(EXT(statp).nsaddrs[n], ++ if (EXT(statp).nsaddrs[ns] != NULL) ++ memset (mempcpy(EXT(statp).nsaddrs[ns], + &statp->nsaddr_list[ns], + sizeof (struct sockaddr_in)), + '\0', + sizeof (struct sockaddr_in6) + - sizeof (struct sockaddr_in)); +- EXT(statp).nssocks[n] = -1; +- n++; +- } + } +- EXT(statp).nsinit = 1; ++ EXT(statp).nscount = statp->nscount; + } + + /* +@@ -466,44 +436,37 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen, + */ + if (__builtin_expect ((statp->options & RES_ROTATE) != 0, 0) && + (statp->options & RES_BLAST) == 0) { +- struct sockaddr_in6 *ina; +- unsigned int map; +- +- n = 0; +- while (n < MAXNS && EXT(statp).nsmap[n] == MAXNS) +- n++; +- if (n < MAXNS) { +- ina = EXT(statp).nsaddrs[n]; +- map = EXT(statp).nsmap[n]; +- for (;;) { +- ns = n + 1; +- while (ns < MAXNS +- && EXT(statp).nsmap[ns] == MAXNS) +- ns++; +- if (ns == MAXNS) +- break; +- EXT(statp).nsaddrs[n] = EXT(statp).nsaddrs[ns]; +- EXT(statp).nsmap[n] = EXT(statp).nsmap[ns]; +- n = ns; +- } +- EXT(statp).nsaddrs[n] = ina; +- EXT(statp).nsmap[n] = map; ++ struct sockaddr_in ina; ++ struct sockaddr_in6 *inp; ++ int lastns = statp->nscount - 1; ++ int fd; ++ ++ inp = EXT(statp).nsaddrs[0]; ++ ina = statp->nsaddr_list[0]; ++ fd = EXT(statp).nssocks[0]; ++ for (ns = 0; ns < lastns; ns++) { ++ EXT(statp).nsaddrs[ns] = EXT(statp).nsaddrs[ns + 1]; ++ statp->nsaddr_list[ns] = statp->nsaddr_list[ns + 1]; ++ EXT(statp).nssocks[ns] = EXT(statp).nssocks[ns + 1]; + } ++ EXT(statp).nsaddrs[lastns] = inp; ++ statp->nsaddr_list[lastns] = ina; ++ EXT(statp).nssocks[lastns] = fd; + } + + /* + * Send request, RETRY times, or until successful. + */ + for (try = 0; try < statp->retry; try++) { +- for (ns = 0; ns < MAXNS; ns++) ++ for (ns = 0; ns < statp->nscount; ns++) + { + #ifdef DEBUG + char tmpbuf[40]; + #endif +- struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; ++#if defined USE_HOOKS || defined DEBUG ++ struct sockaddr *nsap = get_nsaddr (statp, ns); ++#endif + +- if (nsap == NULL) +- goto next_ns; + same_ns: + #ifdef USE_HOOKS + if (__glibc_unlikely (statp->qhook != NULL)) { +@@ -542,9 +505,9 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen, + + Dprint(statp->options & RES_DEBUG, + (stdout, ";; Querying server (# %d) address = %s\n", +- ns + 1, inet_ntop(nsap->sin6_family, +- (nsap->sin6_family == AF_INET6 +- ? &nsap->sin6_addr ++ ns + 1, inet_ntop(nsap->sa_family, ++ (nsap->sa_family == AF_INET6 ++ ? &((struct sockaddr_in6 *) nsap)->sin6_addr + : &((struct sockaddr_in *) nsap)->sin_addr), + tmpbuf, sizeof (tmpbuf)))); + +@@ -660,6 +623,21 @@ libresolv_hidden_def (res_nsend) + + /* Private */ + ++static struct sockaddr * ++get_nsaddr (res_state statp, int n) ++{ ++ ++ if (statp->nsaddr_list[n].sin_family == 0 && EXT(statp).nsaddrs[n] != NULL) ++ /* EXT(statp).nsaddrs[n] holds an address that is larger than ++ struct sockaddr, and user code did not update ++ statp->nsaddr_list[n]. */ ++ return (struct sockaddr *) EXT(statp).nsaddrs[n]; ++ else ++ /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n] ++ has the same content as EXT(statp).nsaddrs[n]. */ ++ return (struct sockaddr *) (void *) &statp->nsaddr_list[n]; ++} ++ + static int + send_vc(res_state statp, + const u_char *buf, int buflen, const u_char *buf2, int buflen2, +@@ -674,7 +652,7 @@ send_vc(res_state statp, + // XXX REMOVE + // int anssiz = *anssizp; + HEADER *anhp = (HEADER *) ans; +- struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; ++ struct sockaddr *nsap = get_nsaddr (statp, ns); + int truncating, connreset, n; + /* On some architectures compiler might emit a warning indicating + 'resplen' may be used uninitialized. However if buf2 == NULL +@@ -711,8 +689,8 @@ send_vc(res_state statp, + + if (getpeername(statp->_vcsock, + (struct sockaddr *)&peer, &size) < 0 || +- !sock_eq(&peer, nsap)) { +- __res_iclose(statp, false); ++ !sock_eq(&peer, (struct sockaddr_in6 *) nsap)) { ++ __res_iclose(statp, false); + statp->_flags &= ~RES_F_VC; + } + } +@@ -721,20 +699,19 @@ send_vc(res_state statp, + if (statp->_vcsock >= 0) + __res_iclose(statp, false); + +- statp->_vcsock = socket(nsap->sin6_family, SOCK_STREAM, 0); ++ statp->_vcsock = socket(nsap->sa_family, SOCK_STREAM, 0); + if (statp->_vcsock < 0) { + *terrno = errno; + Perror(statp, stderr, "socket(vc)", errno); + return (-1); + } + __set_errno (0); +- if (connect(statp->_vcsock, (struct sockaddr *)nsap, +- nsap->sin6_family == AF_INET ++ if (connect(statp->_vcsock, nsap, ++ nsap->sa_family == AF_INET + ? sizeof (struct sockaddr_in) + : sizeof (struct sockaddr_in6)) < 0) { + *terrno = errno; +- Aerror(statp, stderr, "connect/vc", errno, +- (struct sockaddr *) nsap); ++ Aerror(statp, stderr, "connect/vc", errno, nsap); + __res_iclose(statp, false); + return (0); + } +@@ -945,8 +922,7 @@ static int + reopen (res_state statp, int *terrno, int ns) + { + if (EXT(statp).nssocks[ns] == -1) { +- struct sockaddr *nsap +- = (struct sockaddr *) EXT(statp).nsaddrs[ns]; ++ struct sockaddr *nsap = get_nsaddr (statp, ns); + socklen_t slen; + + /* only try IPv6 if IPv6 NS and if not failed before */ +-- +2.3.2 + From b14233f462a83a839ff1c00f131a9da0cb7cda31beb03220ea06cac69c94a268 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 5 Apr 2015 00:02:16 +0000 Subject: [PATCH 179/204] Accepting request 294122 from Base:System - aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) (forwarded request 294121 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/294122 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=188 --- aarch64-sigstksz.patch | 62 +++ glibc-testsuite.changes | 16 + glibc-testsuite.spec | 20 +- glibc-utils.changes | 16 + glibc-utils.spec | 20 +- glibc.changes | 16 + glibc.spec | 20 +- nss-separate-state-getXXent.patch | 715 ++++++++++++++++++++++++++++++ powerpc-software-sqrt.patch | 117 +++++ static-tls-dtv-limit.patch | 641 ++++++++++++++++++++++++++ 10 files changed, 1631 insertions(+), 12 deletions(-) create mode 100644 aarch64-sigstksz.patch create mode 100644 nss-separate-state-getXXent.patch create mode 100644 powerpc-software-sqrt.patch create mode 100644 static-tls-dtv-limit.patch diff --git a/aarch64-sigstksz.patch b/aarch64-sigstksz.patch new file mode 100644 index 0000000..a405f0c --- /dev/null +++ b/aarch64-sigstksz.patch @@ -0,0 +1,62 @@ + [BZ #16850] + * sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h: New file. + +Index: glibc-2.21/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h +=================================================================== +--- /dev/null ++++ glibc-2.21/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h +@@ -0,0 +1,54 @@ ++/* sigstack, sigaltstack definitions. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _SIGNAL_H ++# error "Never include this file directly. Use instead" ++#endif ++ ++ ++/* Structure describing a signal stack (obsolete). */ ++struct sigstack ++ { ++ void *ss_sp; /* Signal stack pointer. */ ++ int ss_onstack; /* Nonzero if executing on this stack. */ ++ }; ++ ++ ++/* Possible values for `ss_flags.'. */ ++enum ++{ ++ SS_ONSTACK = 1, ++#define SS_ONSTACK SS_ONSTACK ++ SS_DISABLE ++#define SS_DISABLE SS_DISABLE ++}; ++ ++/* Minimum stack size for a signal handler. */ ++#define MINSIGSTKSZ 5120 ++ ++/* System default stack size. */ ++#define SIGSTKSZ 16384 ++ ++ ++/* Alternate, preferred interface. */ ++typedef struct sigaltstack ++ { ++ void *ss_sp; ++ int ss_flags; ++ size_t ss_size; ++ } stack_t; diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 7805886..286bb78 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de + +- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) + +------------------------------------------------------------------- +Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de + +- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ + #17967) +- nss-separate-state-getXXent.patch: Separate internal state between + getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) +- static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS + limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, + BZ #17628) + ------------------------------------------------------------------- Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 93f2fa1..b6ba37f 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -235,8 +235,14 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: htm-tabort.patch # PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) Patch1001: o-tmpfile.patch -# PATH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) +# PATCH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) Patch1002: memcpy-chk-non-SSE2.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch1003: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix powerpc software sqrt (BZ #17964, BZ #17967) +Patch1004: powerpc-software-sqrt.patch +# PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) +Patch1005: static-tls-dtv-limit.patch ### # Patches awaiting upstream approval @@ -251,10 +257,12 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) -Patch2007: pthread-mutexattr-gettype-kind.patch # PATCH-FIX-UPSTREAM Rewrite handling of nameserver configuration in resolver -Patch2008: resolv-nameserver-handling.patch +Patch2007: resolv-nameserver-handling.patch +# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) +Patch2008: nss-separate-state-getXXent.patch +# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) +Patch2009: aarch64-sigstksz.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -458,6 +466,9 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 %patch2000 -p1 %patch2002 -p1 @@ -466,6 +477,7 @@ rm nscd/s-stamp %patch2006 -p1 %patch2007 -p1 %patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 7805886..286bb78 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de + +- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) + +------------------------------------------------------------------- +Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de + +- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ + #17967) +- nss-separate-state-getXXent.patch: Separate internal state between + getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) +- static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS + limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, + BZ #17628) + ------------------------------------------------------------------- Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index a02a571..4d14ed7 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -234,8 +234,14 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: htm-tabort.patch # PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) Patch1001: o-tmpfile.patch -# PATH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) +# PATCH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) Patch1002: memcpy-chk-non-SSE2.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch1003: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix powerpc software sqrt (BZ #17964, BZ #17967) +Patch1004: powerpc-software-sqrt.patch +# PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) +Patch1005: static-tls-dtv-limit.patch ### # Patches awaiting upstream approval @@ -250,10 +256,12 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) -Patch2007: pthread-mutexattr-gettype-kind.patch # PATCH-FIX-UPSTREAM Rewrite handling of nameserver configuration in resolver -Patch2008: resolv-nameserver-handling.patch +Patch2007: resolv-nameserver-handling.patch +# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) +Patch2008: nss-separate-state-getXXent.patch +# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) +Patch2009: aarch64-sigstksz.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -458,6 +466,9 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 %patch2000 -p1 %patch2002 -p1 @@ -466,6 +477,7 @@ rm nscd/s-stamp %patch2006 -p1 %patch2007 -p1 %patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 7805886..286bb78 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de + +- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) + +------------------------------------------------------------------- +Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de + +- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ + #17967) +- nss-separate-state-getXXent.patch: Separate internal state between + getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) +- static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS + limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, + BZ #17628) + ------------------------------------------------------------------- Mon Mar 9 13:05:32 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 171f596..f7d1dbf 100644 --- a/glibc.spec +++ b/glibc.spec @@ -235,8 +235,14 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: htm-tabort.patch # PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) Patch1001: o-tmpfile.patch -# PATH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) +# PATCH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) Patch1002: memcpy-chk-non-SSE2.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch1003: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix powerpc software sqrt (BZ #17964, BZ #17967) +Patch1004: powerpc-software-sqrt.patch +# PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) +Patch1005: static-tls-dtv-limit.patch ### # Patches awaiting upstream approval @@ -251,10 +257,12 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) -Patch2007: pthread-mutexattr-gettype-kind.patch # PATCH-FIX-UPSTREAM Rewrite handling of nameserver configuration in resolver -Patch2008: resolv-nameserver-handling.patch +Patch2007: resolv-nameserver-handling.patch +# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) +Patch2008: nss-separate-state-getXXent.patch +# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) +Patch2009: aarch64-sigstksz.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -458,6 +466,9 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 %patch2000 -p1 %patch2002 -p1 @@ -466,6 +477,7 @@ rm nscd/s-stamp %patch2006 -p1 %patch2007 -p1 %patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/nss-separate-state-getXXent.patch b/nss-separate-state-getXXent.patch new file mode 100644 index 0000000..10b4dea --- /dev/null +++ b/nss-separate-state-getXXent.patch @@ -0,0 +1,715 @@ + [BZ #18007] + * nis/nss_compat/compat-grp.c (internal_endgrent): Add parameter + needent, call nss_endgrent only if non-zero. + (_nss_compat_endgrent): Pass non-zero. + (_nss_compat_getgrnam_r, _nss_compat_getgrgid_r): Pass zero. + * nis/nss_compat/compat-pwd.c (internal_endpwent): Add parameter + needent, call nss_endpwent only if non-zero. + (_nss_compat_endpwent): Pass non-zero. + (_nss_compat_getpwnam_r, _nss_compat_getpwuid_r): Pass zero. + * nis/nss_compat/compat-spwd.c (internal_setspent): Add parameter + needent, call nss_setspent only if non-zero. + (_nss_compat_setspent): Pass non-zero. + (internal_endspent): Add parameter needent, call nss_endspent only + if non-zero. + (_nss_compat_endspent, _nss_compat_getspent_r): Pass non-zero. + (_nss_compat_getspnam_r): Pass zero. + * nss/nss_files/files-XXX.c (position, last_use, keep_stream): + Remove. All uses removed. + (internal_setent): Remove parameter stayopen, add parameter + stream. Use it instead of global variable. + (CONCAT(_nss_files_set,ENTNAME)): Pass global stream. + (internal_endent, internal_getent): Add parameter stream. Use it + instead of global variable. + (CONCAT(_nss_files_end,ENTNAME)) + (CONCAT(_nss_files_get,ENTNAME_r)): Pass global stream. + (_nss_files_get##name##_r): Pass local stream. Remove locking. + * nss/nss_files/files-alias.c (position, last_use): Remove. All + uses removed. + (internal_setent, internal_endent): Add parameter stream. Use it + instead of global variable. + (_nss_files_setaliasent, _nss_files_endaliasent): Pass global + stream. + (get_next_alias): Add parameter stream. + (_nss_files_getaliasent_r): Pass global stream. + (_nss_files_getaliasbyname_r): Pass local stream. Remove locking. + * nss/nss_files/files-hosts.c (_nss_files_gethostbyname3_r) + (_nss_files_gethostbyname4_r): Pass local stream to + internal_setent, internal_getent and internal_endent. Remove + locking. + +Index: glibc-2.21/nis/nss_compat/compat-grp.c +=================================================================== +--- glibc-2.21.orig/nis/nss_compat/compat-grp.c ++++ glibc-2.21/nis/nss_compat/compat-grp.c +@@ -192,9 +192,9 @@ _nss_compat_setgrent (int stayopen) + + + static enum nss_status +-internal_endgrent (ent_t *ent) ++internal_endgrent (ent_t *ent, int needent) + { +- if (nss_endgrent) ++ if (needent && nss_endgrent) + nss_endgrent (); + + if (ent->stream != NULL) +@@ -222,7 +222,7 @@ _nss_compat_endgrent (void) + + __libc_lock_lock (lock); + +- result = internal_endgrent (&ext_ent); ++ result = internal_endgrent (&ext_ent, 1); + + __libc_lock_unlock (lock); + +@@ -532,7 +532,7 @@ _nss_compat_getgrnam_r (const char *name + if (result == NSS_STATUS_SUCCESS) + result = internal_getgrnam_r (name, grp, &ent, buffer, buflen, errnop); + +- internal_endgrent (&ent); ++ internal_endgrent (&ent, 0); + + return result; + } +@@ -661,7 +661,7 @@ _nss_compat_getgrgid_r (gid_t gid, struc + if (result == NSS_STATUS_SUCCESS) + result = internal_getgrgid_r (gid, grp, &ent, buffer, buflen, errnop); + +- internal_endgrent (&ent); ++ internal_endgrent (&ent, 0); + + return result; + } +Index: glibc-2.21/nis/nss_compat/compat-pwd.c +=================================================================== +--- glibc-2.21.orig/nis/nss_compat/compat-pwd.c ++++ glibc-2.21/nis/nss_compat/compat-pwd.c +@@ -309,9 +309,9 @@ _nss_compat_setpwent (int stayopen) + + + static enum nss_status +-internal_endpwent (ent_t *ent) ++internal_endpwent (ent_t *ent, int needent) + { +- if (nss_endpwent) ++ if (needent && nss_endpwent) + nss_endpwent (); + + if (ent->stream != NULL) +@@ -346,7 +346,7 @@ _nss_compat_endpwent (void) + + __libc_lock_lock (lock); + +- result = internal_endpwent (&ext_ent); ++ result = internal_endpwent (&ext_ent, 1); + + __libc_lock_unlock (lock); + +@@ -871,7 +871,7 @@ _nss_compat_getpwnam_r (const char *name + if (result == NSS_STATUS_SUCCESS) + result = internal_getpwnam_r (name, pwd, &ent, buffer, buflen, errnop); + +- internal_endpwent (&ent); ++ internal_endpwent (&ent, 0); + + return result; + } +@@ -1110,7 +1110,7 @@ _nss_compat_getpwuid_r (uid_t uid, struc + if (result == NSS_STATUS_SUCCESS) + result = internal_getpwuid_r (uid, pwd, &ent, buffer, buflen, errnop); + +- internal_endpwent (&ent); ++ internal_endpwent (&ent, 0); + + return result; + } +Index: glibc-2.21/nis/nss_compat/compat-spwd.c +=================================================================== +--- glibc-2.21.orig/nis/nss_compat/compat-spwd.c ++++ glibc-2.21/nis/nss_compat/compat-spwd.c +@@ -169,7 +169,7 @@ copy_spwd_changes (struct spwd *dest, st + } + + static enum nss_status +-internal_setspent (ent_t *ent, int stayopen) ++internal_setspent (ent_t *ent, int stayopen, int needent) + { + enum nss_status status = NSS_STATUS_SUCCESS; + +@@ -239,7 +239,7 @@ internal_setspent (ent_t *ent, int stayo + + give_spwd_free (&ent->pwd); + +- if (status == NSS_STATUS_SUCCESS && nss_setspent) ++ if (needent && status == NSS_STATUS_SUCCESS && nss_setspent) + ent->setent_status = nss_setspent (stayopen); + + return status; +@@ -256,7 +256,7 @@ _nss_compat_setspent (int stayopen) + if (ni == NULL) + init_nss_interface (); + +- result = internal_setspent (&ext_ent, stayopen); ++ result = internal_setspent (&ext_ent, stayopen, 1); + + __libc_lock_unlock (lock); + +@@ -265,9 +265,9 @@ _nss_compat_setspent (int stayopen) + + + static enum nss_status +-internal_endspent (ent_t *ent) ++internal_endspent (ent_t *ent, int needent) + { +- if (nss_endspent) ++ if (needent && nss_endspent) + nss_endspent (); + + if (ent->stream != NULL) +@@ -303,7 +303,7 @@ _nss_compat_endspent (void) + + __libc_lock_lock (lock); + +- result = internal_endspent (&ext_ent); ++ result = internal_endspent (&ext_ent, 1); + + __libc_lock_unlock (lock); + +@@ -658,7 +658,7 @@ _nss_compat_getspent_r (struct spwd *pwd + init_nss_interface (); + + if (ext_ent.stream == NULL) +- result = internal_setspent (&ext_ent, 1); ++ result = internal_setspent (&ext_ent, 1, 1); + + if (result == NSS_STATUS_SUCCESS) + result = internal_getspent_r (pwd, &ext_ent, buffer, buflen, errnop); +@@ -830,12 +830,12 @@ _nss_compat_getspnam_r (const char *name + + __libc_lock_unlock (lock); + +- result = internal_setspent (&ent, 0); ++ result = internal_setspent (&ent, 0, 0); + + if (result == NSS_STATUS_SUCCESS) + result = internal_getspnam_r (name, pwd, &ent, buffer, buflen, errnop); + +- internal_endspent (&ent); ++ internal_endspent (&ent, 0); + + return result; + } +Index: glibc-2.21/nss/nss_files/files-XXX.c +=================================================================== +--- glibc-2.21.orig/nss/nss_files/files-XXX.c ++++ glibc-2.21/nss/nss_files/files-XXX.c +@@ -63,21 +63,18 @@ __libc_lock_define_initialized (static, + /* Maintenance of the shared stream open on the database file. */ + + static FILE *stream; +-static fpos_t position; +-static enum { nouse, getent, getby } last_use; +-static int keep_stream; + + /* Open database file if not already opened. */ + static enum nss_status +-internal_setent (int stayopen) ++internal_setent (FILE **stream) + { + enum nss_status status = NSS_STATUS_SUCCESS; + +- if (stream == NULL) ++ if (*stream == NULL) + { +- stream = fopen (DATAFILE, "rce"); ++ *stream = fopen (DATAFILE, "rce"); + +- if (stream == NULL) ++ if (*stream == NULL) + status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; + else + { +@@ -90,7 +87,7 @@ internal_setent (int stayopen) + int result; + int flags; + +- result = flags = fcntl (fileno (stream), F_GETFD, 0); ++ result = flags = fcntl (fileno (*stream), F_GETFD, 0); + if (result >= 0) + { + # ifdef O_CLOEXEC +@@ -100,15 +97,15 @@ internal_setent (int stayopen) + # endif + { + flags |= FD_CLOEXEC; +- result = fcntl (fileno (stream), F_SETFD, flags); ++ result = fcntl (fileno (*stream), F_SETFD, flags); + } + } + if (result < 0) + { + /* Something went wrong. Close the stream and return a + failure. */ +- fclose (stream); +- stream = NULL; ++ fclose (*stream); ++ *stream = NULL; + status = NSS_STATUS_UNAVAIL; + } + } +@@ -116,11 +113,7 @@ internal_setent (int stayopen) + } + } + else +- rewind (stream); +- +- /* Remember STAYOPEN flag. */ +- if (stream != NULL) +- keep_stream |= stayopen; ++ rewind (*stream); + + return status; + } +@@ -134,16 +127,7 @@ CONCAT(_nss_files_set,ENTNAME) (int stay + + __libc_lock_lock (lock); + +- status = internal_setent (stayopen); +- +- if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) +- { +- fclose (stream); +- stream = NULL; +- status = NSS_STATUS_UNAVAIL; +- } +- +- last_use = getent; ++ status = internal_setent (&stream); + + __libc_lock_unlock (lock); + +@@ -153,12 +137,12 @@ CONCAT(_nss_files_set,ENTNAME) (int stay + + /* Close the database file. */ + static void +-internal_endent (void) ++internal_endent (FILE **stream) + { +- if (stream != NULL) ++ if (*stream != NULL) + { +- fclose (stream); +- stream = NULL; ++ fclose (*stream); ++ *stream = NULL; + } + } + +@@ -169,10 +153,7 @@ CONCAT(_nss_files_end,ENTNAME) (void) + { + __libc_lock_lock (lock); + +- internal_endent (); +- +- /* Reset STAYOPEN flag. */ +- keep_stream = 0; ++ internal_endent (&stream); + + __libc_lock_unlock (lock); + +@@ -227,7 +208,7 @@ get_contents (char *linebuf, size_t len, + + /* Parsing the database file into `struct STRUCTURE' data structures. */ + static enum nss_status +-internal_getent (struct STRUCTURE *result, ++internal_getent (FILE *stream, struct STRUCTURE *result, + char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO + EXTRA_ARGS_DECL) + { +@@ -300,45 +281,14 @@ CONCAT(_nss_files_get,ENTNAME_r) (struct + { + int save_errno = errno; + +- status = internal_setent (0); ++ status = internal_setent (&stream); + + __set_errno (save_errno); +- +- if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) +- { +- fclose (stream); +- stream = NULL; +- status = NSS_STATUS_UNAVAIL; +- } + } + + if (status == NSS_STATUS_SUCCESS) +- { +- /* If the last use was not by the getent function we need the +- position the stream. */ +- if (last_use != getent) +- { +- if (fsetpos (stream, &position) < 0) +- status = NSS_STATUS_UNAVAIL; +- else +- last_use = getent; +- } +- +- if (status == NSS_STATUS_SUCCESS) +- { +- status = internal_getent (result, buffer, buflen, errnop +- H_ERRNO_ARG EXTRA_ARGS_VALUE); +- +- /* Remember this position if we were successful. If the +- operation failed we give the user a chance to repeat the +- operation (perhaps the buffer was too small). */ +- if (status == NSS_STATUS_SUCCESS) +- fgetpos (stream, &position); +- else +- /* We must make sure we reposition the stream the next call. */ +- last_use = nouse; +- } +- } ++ status = internal_getent (stream, result, buffer, buflen, errnop ++ H_ERRNO_ARG EXTRA_ARGS_VALUE); + + __libc_lock_unlock (lock); + +@@ -364,27 +314,20 @@ _nss_files_get##name##_r (proto, + size_t buflen, int *errnop H_ERRNO_PROTO) \ + { \ + enum nss_status status; \ ++ FILE *stream = NULL; \ + \ +- __libc_lock_lock (lock); \ +- \ +- /* Reset file pointer to beginning or open file. */ \ +- status = internal_setent (keep_stream); \ ++ /* Open file. */ \ ++ status = internal_setent (&stream); \ + \ + if (status == NSS_STATUS_SUCCESS) \ + { \ +- /* Tell getent function that we have repositioned the file pointer. */ \ +- last_use = getby; \ +- \ +- while ((status = internal_getent (result, buffer, buflen, errnop \ ++ while ((status = internal_getent (stream, result, buffer, buflen, errnop \ + H_ERRNO_ARG EXTRA_ARGS_VALUE)) \ + == NSS_STATUS_SUCCESS) \ + { break_if_match } \ + \ +- if (! keep_stream) \ +- internal_endent (); \ ++ internal_endent (&stream); \ + } \ + \ +- __libc_lock_unlock (lock); \ +- \ + return status; \ + } +Index: glibc-2.21/nss/nss_files/files-alias.c +=================================================================== +--- glibc-2.21.orig/nss/nss_files/files-alias.c ++++ glibc-2.21/nss/nss_files/files-alias.c +@@ -36,20 +36,18 @@ __libc_lock_define_initialized (static, + /* Maintenance of the shared stream open on the database file. */ + + static FILE *stream; +-static fpos_t position; +-static enum { nouse, getent, getby } last_use; + + + static enum nss_status +-internal_setent (void) ++internal_setent (FILE **stream) + { + enum nss_status status = NSS_STATUS_SUCCESS; + +- if (stream == NULL) ++ if (*stream == NULL) + { +- stream = fopen ("/etc/aliases", "rce"); ++ *stream = fopen ("/etc/aliases", "rce"); + +- if (stream == NULL) ++ if (*stream == NULL) + status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; + else + { +@@ -62,7 +60,7 @@ internal_setent (void) + int result; + int flags; + +- result = flags = fcntl (fileno (stream), F_GETFD, 0); ++ result = flags = fcntl (fileno (*stream), F_GETFD, 0); + if (result >= 0) + { + # ifdef O_CLOEXEC +@@ -72,14 +70,14 @@ internal_setent (void) + # endif + { + flags |= FD_CLOEXEC; +- result = fcntl (fileno (stream), F_SETFD, flags); ++ result = fcntl (fileno (*stream), F_SETFD, flags); + } + } + if (result < 0) + { + /* Something went wrong. Close the stream and return a + failure. */ +- fclose (stream); ++ fclose (*stream); + stream = NULL; + status = NSS_STATUS_UNAVAIL; + } +@@ -88,7 +86,7 @@ internal_setent (void) + } + } + else +- rewind (stream); ++ rewind (*stream); + + return status; + } +@@ -102,16 +100,7 @@ _nss_files_setaliasent (void) + + __libc_lock_lock (lock); + +- status = internal_setent (); +- +- if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) +- { +- fclose (stream); +- stream = NULL; +- status = NSS_STATUS_UNAVAIL; +- } +- +- last_use = getent; ++ status = internal_setent (&stream); + + __libc_lock_unlock (lock); + +@@ -121,12 +110,12 @@ _nss_files_setaliasent (void) + + /* Close the database file. */ + static void +-internal_endent (void) ++internal_endent (FILE **stream) + { +- if (stream != NULL) ++ if (*stream != NULL) + { +- fclose (stream); +- stream = NULL; ++ fclose (*stream); ++ *stream = NULL; + } + } + +@@ -137,7 +126,7 @@ _nss_files_endaliasent (void) + { + __libc_lock_lock (lock); + +- internal_endent (); ++ internal_endent (&stream); + + __libc_lock_unlock (lock); + +@@ -146,7 +135,7 @@ _nss_files_endaliasent (void) + + /* Parsing the database file into `struct aliasent' data structures. */ + static enum nss_status +-get_next_alias (const char *match, struct aliasent *result, ++get_next_alias (FILE *stream, const char *match, struct aliasent *result, + char *buffer, size_t buflen, int *errnop) + { + enum nss_status status = NSS_STATUS_NOTFOUND; +@@ -397,35 +386,16 @@ _nss_files_getaliasent_r (struct aliasen + + /* Be prepared that the set*ent function was not called before. */ + if (stream == NULL) +- status = internal_setent (); ++ status = internal_setent (&stream); + + if (status == NSS_STATUS_SUCCESS) + { +- /* If the last use was not by the getent function we need the +- position the stream. */ +- if (last_use != getent) +- { +- if (fsetpos (stream, &position) < 0) +- status = NSS_STATUS_UNAVAIL; +- else +- last_use = getent; +- } +- +- if (status == NSS_STATUS_SUCCESS) +- { +- result->alias_local = 1; ++ result->alias_local = 1; + +- /* Read lines until we get a definite result. */ +- do +- status = get_next_alias (NULL, result, buffer, buflen, errnop); +- while (status == NSS_STATUS_RETURN); +- +- /* If we successfully read an entry remember this position. */ +- if (status == NSS_STATUS_SUCCESS) +- fgetpos (stream, &position); +- else +- last_use = nouse; +- } ++ /* Read lines until we get a definite result. */ ++ do ++ status = get_next_alias (stream, NULL, result, buffer, buflen, errnop); ++ while (status == NSS_STATUS_RETURN); + } + + __libc_lock_unlock (lock); +@@ -440,6 +410,7 @@ _nss_files_getaliasbyname_r (const char + { + /* Return next entry in host file. */ + enum nss_status status = NSS_STATUS_SUCCESS; ++ FILE *stream = NULL; + + if (name == NULL) + { +@@ -447,11 +418,8 @@ _nss_files_getaliasbyname_r (const char + return NSS_STATUS_UNAVAIL; + } + +- __libc_lock_lock (lock); +- +- /* Open the stream or rest it. */ +- status = internal_setent (); +- last_use = getby; ++ /* Open the stream. */ ++ status = internal_setent (&stream); + + if (status == NSS_STATUS_SUCCESS) + { +@@ -459,13 +427,11 @@ _nss_files_getaliasbyname_r (const char + + /* Read lines until we get a definite result. */ + do +- status = get_next_alias (name, result, buffer, buflen, errnop); ++ status = get_next_alias (stream, name, result, buffer, buflen, errnop); + while (status == NSS_STATUS_RETURN); + } + +- internal_endent (); +- +- __libc_lock_unlock (lock); ++ internal_endent (&stream); + + return status; + } +Index: glibc-2.21/nss/nss_files/files-hosts.c +=================================================================== +--- glibc-2.21.orig/nss/nss_files/files-hosts.c ++++ glibc-2.21/nss/nss_files/files-hosts.c +@@ -115,14 +115,13 @@ _nss_files_gethostbyname3_r (const char + char *buffer, size_t buflen, int *errnop, + int *herrnop, int32_t *ttlp, char **canonp) + { ++ FILE *stream = NULL; + uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct hostent_data); + buffer += pad; + buflen = buflen > pad ? buflen - pad : 0; + +- __libc_lock_lock (lock); +- +- /* Reset file pointer to beginning or open file. */ +- enum nss_status status = internal_setent (keep_stream); ++ /* Open file. */ ++ enum nss_status status = internal_setent (&stream); + + if (status == NSS_STATUS_SUCCESS) + { +@@ -130,10 +129,7 @@ _nss_files_gethostbyname3_r (const char + addresses to IPv6 addresses really the right thing to do? */ + int flags = ((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0); + +- /* Tell getent function that we have repositioned the file pointer. */ +- last_use = getby; +- +- while ((status = internal_getent (result, buffer, buflen, errnop, ++ while ((status = internal_getent (stream, result, buffer, buflen, errnop, + herrnop, af, flags)) + == NSS_STATUS_SUCCESS) + { +@@ -160,7 +156,7 @@ _nss_files_gethostbyname3_r (const char + bufferend = (char *) &result->h_aliases[naliases + 1]; + + again: +- while ((status = internal_getent (&tmp_result_buf, tmp_buffer, ++ while ((status = internal_getent (stream, &tmp_result_buf, tmp_buffer, + tmp_buflen, errnop, herrnop, af, + flags)) + == NSS_STATUS_SUCCESS) +@@ -336,15 +332,12 @@ _nss_files_gethostbyname3_r (const char + free (tmp_buffer); + } + +- if (! keep_stream) +- internal_endent (); ++ internal_endent (&stream); + } + + if (canonp && status == NSS_STATUS_SUCCESS) + *canonp = result->h_name; + +- __libc_lock_unlock (lock); +- + return status; + } + +@@ -373,16 +366,13 @@ _nss_files_gethostbyname4_r (const char + char *buffer, size_t buflen, int *errnop, + int *herrnop, int32_t *ttlp) + { +- __libc_lock_lock (lock); ++ FILE *stream = NULL; + +- /* Reset file pointer to beginning or open file. */ +- enum nss_status status = internal_setent (keep_stream); ++ /* Open file. */ ++ enum nss_status status = internal_setent (&stream); + + if (status == NSS_STATUS_SUCCESS) + { +- /* Tell getent function that we have repositioned the file pointer. */ +- last_use = getby; +- + bool any = false; + bool got_canon = false; + while (1) +@@ -394,7 +384,7 @@ _nss_files_gethostbyname4_r (const char + buflen = buflen > pad ? buflen - pad : 0; + + struct hostent result; +- status = internal_getent (&result, buffer, buflen, errnop, ++ status = internal_getent (stream, &result, buffer, buflen, errnop, + herrnop, AF_UNSPEC, 0); + if (status != NSS_STATUS_SUCCESS) + break; +@@ -470,8 +460,7 @@ _nss_files_gethostbyname4_r (const char + status = NSS_STATUS_SUCCESS; + } + +- if (! keep_stream) +- internal_endent (); ++ internal_endent (&stream); + } + else if (status == NSS_STATUS_TRYAGAIN) + { +@@ -484,7 +473,5 @@ _nss_files_gethostbyname4_r (const char + *herrnop = NO_DATA; + } + +- __libc_lock_unlock (lock); +- + return status; + } diff --git a/powerpc-software-sqrt.patch b/powerpc-software-sqrt.patch new file mode 100644 index 0000000..d86b73f --- /dev/null +++ b/powerpc-software-sqrt.patch @@ -0,0 +1,117 @@ +2015-02-13 Joseph Myers + + [BZ #17967] + * sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Use + __builtin_fmaf instead of relying on contraction of a * b + c. + +2015-02-12 Joseph Myers + + [BZ #17964] + * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Use + __builtin_fma instead of relying on contraction of a * b + c. + +Index: glibc-2.21/sysdeps/powerpc/fpu/e_sqrt.c +=================================================================== +--- glibc-2.21.orig/sysdeps/powerpc/fpu/e_sqrt.c ++++ glibc-2.21/sysdeps/powerpc/fpu/e_sqrt.c +@@ -99,38 +99,41 @@ __slow_ieee754_sqrt (double x) + /* Here we have three Newton-Raphson iterations each of a + division and a square root and the remainder of the + argument reduction, all interleaved. */ +- sd = -(sg * sg - sx); ++ sd = -__builtin_fma (sg, sg, -sx); + fsgi = (xi0 + 0x40000000) >> 1 & 0x7ff00000; + sy2 = sy + sy; +- sg = sy * sd + sg; /* 16-bit approximation to sqrt(sx). */ ++ sg = __builtin_fma (sy, sd, sg); /* 16-bit approximation to ++ sqrt(sx). */ + + /* schedule the INSERT_WORDS (fsg, fsgi, 0) to get separation + between the store and the load. */ + INSERT_WORDS (fsg, fsgi, 0); + iw_u.parts.msw = fsgi; + iw_u.parts.lsw = (0); +- e = -(sy * sg - almost_half); +- sd = -(sg * sg - sx); ++ e = -__builtin_fma (sy, sg, -almost_half); ++ sd = -__builtin_fma (sg, sg, -sx); + if ((xi0 & 0x7ff00000) == 0) + goto denorm; +- sy = sy + e * sy2; +- sg = sg + sy * sd; /* 32-bit approximation to sqrt(sx). */ ++ sy = __builtin_fma (e, sy2, sy); ++ sg = __builtin_fma (sy, sd, sg); /* 32-bit approximation to ++ sqrt(sx). */ + sy2 = sy + sy; + /* complete the INSERT_WORDS (fsg, fsgi, 0) operation. */ + fsg = iw_u.value; +- e = -(sy * sg - almost_half); +- sd = -(sg * sg - sx); +- sy = sy + e * sy2; ++ e = -__builtin_fma (sy, sg, -almost_half); ++ sd = -__builtin_fma (sg, sg, -sx); ++ sy = __builtin_fma (e, sy2, sy); + shx = sx * fsg; +- sg = sg + sy * sd; /* 64-bit approximation to sqrt(sx), +- but perhaps rounded incorrectly. */ ++ sg = __builtin_fma (sy, sd, sg); /* 64-bit approximation to ++ sqrt(sx), but perhaps ++ rounded incorrectly. */ + sy2 = sy + sy; + g = sg * fsg; +- e = -(sy * sg - almost_half); +- d = -(g * sg - shx); +- sy = sy + e * sy2; ++ e = -__builtin_fma (sy, sg, -almost_half); ++ d = -__builtin_fma (g, sg, -shx); ++ sy = __builtin_fma (e, sy2, sy); + fesetenv_register (fe); +- return g + sy * d; ++ return __builtin_fma (sy, d, g); + denorm: + /* For denormalised numbers, we normalise, calculate the + square root, and return an adjusted result. */ +Index: glibc-2.21/sysdeps/powerpc/fpu/e_sqrtf.c +=================================================================== +--- glibc-2.21.orig/sysdeps/powerpc/fpu/e_sqrtf.c ++++ glibc-2.21/sysdeps/powerpc/fpu/e_sqrtf.c +@@ -87,26 +87,28 @@ __slow_ieee754_sqrtf (float x) + /* Here we have three Newton-Raphson iterations each of a + division and a square root and the remainder of the + argument reduction, all interleaved. */ +- sd = -(sg * sg - sx); ++ sd = -__builtin_fmaf (sg, sg, -sx); + fsgi = (xi + 0x40000000) >> 1 & 0x7f800000; + sy2 = sy + sy; +- sg = sy * sd + sg; /* 16-bit approximation to sqrt(sx). */ +- e = -(sy * sg - almost_half); ++ sg = __builtin_fmaf (sy, sd, sg); /* 16-bit approximation to ++ sqrt(sx). */ ++ e = -__builtin_fmaf (sy, sg, -almost_half); + SET_FLOAT_WORD (fsg, fsgi); +- sd = -(sg * sg - sx); +- sy = sy + e * sy2; ++ sd = -__builtin_fmaf (sg, sg, -sx); ++ sy = __builtin_fmaf (e, sy2, sy); + if ((xi & 0x7f800000) == 0) + goto denorm; + shx = sx * fsg; +- sg = sg + sy * sd; /* 32-bit approximation to sqrt(sx), +- but perhaps rounded incorrectly. */ ++ sg = __builtin_fmaf (sy, sd, sg); /* 32-bit approximation to ++ sqrt(sx), but perhaps ++ rounded incorrectly. */ + sy2 = sy + sy; + g = sg * fsg; +- e = -(sy * sg - almost_half); +- d = -(g * sg - shx); +- sy = sy + e * sy2; ++ e = -__builtin_fmaf (sy, sg, -almost_half); ++ d = -__builtin_fmaf (g, sg, -shx); ++ sy = __builtin_fmaf (e, sy2, sy); + fesetenv_register (fe); +- return g + sy * d; ++ return __builtin_fmaf (sy, d, g); + denorm: + /* For denormalised numbers, we normalise, calculate the + square root, and return an adjusted result. */ diff --git a/static-tls-dtv-limit.patch b/static-tls-dtv-limit.patch new file mode 100644 index 0000000..209153f --- /dev/null +++ b/static-tls-dtv-limit.patch @@ -0,0 +1,641 @@ +2015-03-17 Alexandre Oliva + + [BZ #17090] + [BZ #17620] + [BZ #17621] + [BZ #17628] + * NEWS: Update. + * elf/dl-tls.c (_dl_update_slotinfo): Clean up outdated DTV + entries with Static TLS too. Skip entries past the end of the + allocated DTV, from Alan Modra. + (tls_get_addr_tail): Update to glibc_likely/unlikely. Move + Static TLS DTV entry set up from... + (_dl_allocate_tls_init): ... here (fix modid assertion), ... + * elf/dl-reloc.c (_dl_nothread_init_static_tls): ... here... + * nptl/allocatestack.c (init_one_static_tls): ... and here... + * elf/dlopen.c (dl_open_worker): Drop l_tls_modid upper bound + for Static TLS. + * elf/tlsdeschtab.h (map_generation): Return size_t. Check + that the slot we find is associated with the given map before + using its generation count. + * nptl_db/db_info.c: Include ldsodefs.h. + (rtld_global, dtv_slotinfo_list, dtv_slotinfo): New typedefs. + * nptl_db/structs.def (DB_RTLD_VARIABLE): New macro. + (DB_MAIN_VARIABLE, DB_RTLD_GLOBAL_FIELD): Likewise. + (link_map::l_tls_offset): New struct field. + (dtv_t::counter): Likewise. + (rtld_global): New struct. + (_rtld_global): New rtld variable. + (dl_tls_dtv_slotinfo_list): New rtld global field. + (dtv_slotinfo_list): New struct. + (dtv_slotinfo): Likewise. + * nptl_db/td_symbol_list.c: Drop gnu/lib-names.h include. + (td_lookup): Rename to... + (td_mod_lookup): ... this. Use new mod parameter instead of + LIBPTHREAD_SO. + * nptl_db/td_thr_tlsbase.c: Include link.h. + (dtv_slotinfo_list, dtv_slotinfo): New functions. + (td_thr_tlsbase): Check DTV generation. Compute Static TLS + addresses even if the DTV is out of date or missing them. + * nptl_db/fetch-value.c (_td_locate_field): Do not refuse to + index zero-length arrays. + * nptl_db/thread_dbP.h: Include gnu/lib-names.h. + (td_lookup): Make it a macro implemented in terms of... + (td_mod_lookup): ... this declaration. + * nptl_db/db-symbols.awk (DB_RTLD_VARIABLE): Override. + (DB_MAIN_VARIABLE): Likewise. + +Index: glibc-2.21/elf/dl-open.c +=================================================================== +--- glibc-2.21.orig/elf/dl-open.c ++++ glibc-2.21/elf/dl-open.c +@@ -533,17 +533,7 @@ TLS generation counter wrapped! Please + && imap->l_tls_blocksize > 0) + { + /* For static TLS we have to allocate the memory here and +- now. This includes allocating memory in the DTV. But we +- cannot change any DTV other than our own. So, if we +- cannot guarantee that there is room in the DTV we don't +- even try it and fail the load. +- +- XXX We could track the minimum DTV slots allocated in +- all threads. */ +- if (! RTLD_SINGLE_THREAD_P && imap->l_tls_modid > DTV_SURPLUS) +- _dl_signal_error (0, "dlopen", NULL, N_("\ +-cannot load any more object with static TLS")); +- ++ now, but we can delay updating the DTV. */ + imap->l_need_tls_init = 0; + #ifdef SHARED + /* Update the slot information data for at least the +Index: glibc-2.21/elf/dl-reloc.c +=================================================================== +--- glibc-2.21.orig/elf/dl-reloc.c ++++ glibc-2.21/elf/dl-reloc.c +@@ -136,12 +136,6 @@ _dl_nothread_init_static_tls (struct lin + # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" + #endif + +- /* Fill in the DTV slot so that a later LD/GD access will find it. */ +- dtv_t *dtv = THREAD_DTV (); +- assert (map->l_tls_modid <= dtv[-1].counter); +- dtv[map->l_tls_modid].pointer.val = dest; +- dtv[map->l_tls_modid].pointer.is_static = true; +- + /* Initialize the memory. */ + memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size), + '\0', map->l_tls_blocksize - map->l_tls_initimage_size); +Index: glibc-2.21/elf/dl-tls.c +=================================================================== +--- glibc-2.21.orig/elf/dl-tls.c ++++ glibc-2.21/elf/dl-tls.c +@@ -493,17 +493,14 @@ _dl_allocate_tls_init (void *result) + assert (listp->slotinfo[cnt].gen <= GL(dl_tls_generation)); + maxgen = MAX (maxgen, listp->slotinfo[cnt].gen); + ++ dtv[map->l_tls_modid].pointer.val = TLS_DTV_UNALLOCATED; ++ dtv[map->l_tls_modid].pointer.is_static = false; ++ + if (map->l_tls_offset == NO_TLS_OFFSET + || map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET) +- { +- /* For dynamically loaded modules we simply store +- the value indicating deferred allocation. */ +- dtv[map->l_tls_modid].pointer.val = TLS_DTV_UNALLOCATED; +- dtv[map->l_tls_modid].pointer.is_static = false; +- continue; +- } ++ continue; + +- assert (map->l_tls_modid == cnt); ++ assert (map->l_tls_modid == total + cnt); + assert (map->l_tls_blocksize >= map->l_tls_initimage_size); + #if TLS_TCB_AT_TP + assert ((size_t) map->l_tls_offset >= map->l_tls_blocksize); +@@ -515,8 +512,6 @@ _dl_allocate_tls_init (void *result) + #endif + + /* Copy the initialization image and clear the BSS part. */ +- dtv[map->l_tls_modid].pointer.val = dest; +- dtv[map->l_tls_modid].pointer.is_static = true; + memset (__mempcpy (dest, map->l_tls_initimage, + map->l_tls_initimage_size), '\0', + map->l_tls_blocksize - map->l_tls_initimage_size); +@@ -679,13 +674,16 @@ _dl_update_slotinfo (unsigned long int r + struct link_map *map = listp->slotinfo[cnt].map; + if (map == NULL) + { +- /* If this modid was used at some point the memory +- might still be allocated. */ +- if (! dtv[total + cnt].pointer.is_static +- && dtv[total + cnt].pointer.val != TLS_DTV_UNALLOCATED) ++ if (dtv[-1].counter >= total + cnt) + { +- free (dtv[total + cnt].pointer.val); ++ /* If this modid was used at some point the memory ++ might still be allocated. */ ++ if (! dtv[total + cnt].pointer.is_static ++ && (dtv[total + cnt].pointer.val ++ != TLS_DTV_UNALLOCATED)) ++ free (dtv[total + cnt].pointer.val); + dtv[total + cnt].pointer.val = TLS_DTV_UNALLOCATED; ++ dtv[total + cnt].pointer.is_static = false; + } + + continue; +@@ -718,10 +716,8 @@ _dl_update_slotinfo (unsigned long int r + memalign and not malloc. */ + free (dtv[modid].pointer.val); + +- /* This module is loaded dynamically- We defer memory +- allocation. */ +- dtv[modid].pointer.is_static = false; + dtv[modid].pointer.val = TLS_DTV_UNALLOCATED; ++ dtv[modid].pointer.is_static = false; + + if (modid == req_modid) + the_map = map; +@@ -759,13 +755,12 @@ tls_get_addr_tail (GET_ADDR_ARGS, dtv_t + the_map = listp->slotinfo[idx].map; + } + +- again: + /* Make sure that, if a dlopen running in parallel forces the + variable into static storage, we'll wait until the address in the + static TLS block is set up, and use that. If we're undecided + yet, make sure we make the decision holding the lock as well. */ +- if (__builtin_expect (the_map->l_tls_offset +- != FORCED_DYNAMIC_TLS_OFFSET, 0)) ++ if (__glibc_unlikely (the_map->l_tls_offset ++ != FORCED_DYNAMIC_TLS_OFFSET)) + { + __rtld_lock_lock_recursive (GL(dl_load_lock)); + if (__glibc_likely (the_map->l_tls_offset == NO_TLS_OFFSET)) +@@ -773,22 +768,28 @@ tls_get_addr_tail (GET_ADDR_ARGS, dtv_t + the_map->l_tls_offset = FORCED_DYNAMIC_TLS_OFFSET; + __rtld_lock_unlock_recursive (GL(dl_load_lock)); + } +- else ++ else if (__glibc_likely (the_map->l_tls_offset ++ != FORCED_DYNAMIC_TLS_OFFSET)) + { ++#if TLS_TCB_AT_TP ++ void *p = (char *) THREAD_SELF - the_map->l_tls_offset; ++#elif TLS_DTV_AT_TP ++ void *p = (char *) THREAD_SELF + the_map->l_tls_offset + TLS_PRE_TCB_SIZE; ++#else ++# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" ++#endif + __rtld_lock_unlock_recursive (GL(dl_load_lock)); +- if (__builtin_expect (the_map->l_tls_offset +- != FORCED_DYNAMIC_TLS_OFFSET, 1)) +- { +- void *p = dtv[GET_ADDR_MODULE].pointer.val; +- if (__glibc_unlikely (p == TLS_DTV_UNALLOCATED)) +- goto again; + +- return (char *) p + GET_ADDR_OFFSET; +- } ++ dtv[GET_ADDR_MODULE].pointer.is_static = true; ++ dtv[GET_ADDR_MODULE].pointer.val = p; ++ ++ return (char *) p + GET_ADDR_OFFSET; + } ++ else ++ __rtld_lock_unlock_recursive (GL(dl_load_lock)); + } + void *p = dtv[GET_ADDR_MODULE].pointer.val = allocate_and_init (the_map); +- dtv[GET_ADDR_MODULE].pointer.is_static = false; ++ assert (!dtv[GET_ADDR_MODULE].pointer.is_static); + + return (char *) p + GET_ADDR_OFFSET; + } +Index: glibc-2.21/elf/tlsdeschtab.h +=================================================================== +--- glibc-2.21.orig/elf/tlsdeschtab.h ++++ glibc-2.21/elf/tlsdeschtab.h +@@ -42,7 +42,7 @@ eq_tlsdesc (void *p, void *q) + return tdp->tlsinfo.ti_offset == tdq->tlsinfo.ti_offset; + } + +-inline static int ++inline static size_t + map_generation (struct link_map *map) + { + size_t idx = map->l_tls_modid; +@@ -58,7 +58,7 @@ map_generation (struct link_map *map) + we can assume that, if the generation count is zero, we + still haven't determined the generation count for this + module. */ +- if (listp->slotinfo[idx].gen) ++ if (listp->slotinfo[idx].map == map && listp->slotinfo[idx].gen) + return listp->slotinfo[idx].gen; + else + break; +Index: glibc-2.21/nptl/allocatestack.c +=================================================================== +--- glibc-2.21.orig/nptl/allocatestack.c ++++ glibc-2.21/nptl/allocatestack.c +@@ -1190,7 +1190,6 @@ __nptl_setxid (struct xid_command *cmdp) + static inline void __attribute__((always_inline)) + init_one_static_tls (struct pthread *curp, struct link_map *map) + { +- dtv_t *dtv = GET_DTV (TLS_TPADJ (curp)); + # if TLS_TCB_AT_TP + void *dest = (char *) curp - map->l_tls_offset; + # elif TLS_DTV_AT_TP +@@ -1199,11 +1198,9 @@ init_one_static_tls (struct pthread *cur + # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" + # endif + +- /* Fill in the DTV slot so that a later LD/GD access will find it. */ +- dtv[map->l_tls_modid].pointer.val = dest; +- dtv[map->l_tls_modid].pointer.is_static = true; +- +- /* Initialize the memory. */ ++ /* We cannot delay the initialization of the Static TLS area, since ++ it can be accessed with LE or IE, but since the DTV is only used ++ by GD and LD, we can delay its update to avoid a race. */ + memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size), + '\0', map->l_tls_blocksize - map->l_tls_initimage_size); + } +Index: glibc-2.21/nptl_db/db-symbols.awk +=================================================================== +--- glibc-2.21.orig/nptl_db/db-symbols.awk ++++ glibc-2.21/nptl_db/db-symbols.awk +@@ -2,6 +2,8 @@ + # we've just built. It checks for all the symbols used in td_symbol_list. + + BEGIN { ++%define DB_RTLD_VARIABLE(name) /* Nothing. */ ++%define DB_MAIN_VARIABLE(name) /* Nothing. */ + %define DB_LOOKUP_NAME(idx, name) required[STRINGIFY (name)] = 1; + %define DB_LOOKUP_NAME_TH_UNIQUE(idx, name) th_unique[STRINGIFY (name)] = 1; + %include "db-symbols.h" +Index: glibc-2.21/nptl_db/db_info.c +=================================================================== +--- glibc-2.21.orig/nptl_db/db_info.c ++++ glibc-2.21/nptl_db/db_info.c +@@ -21,6 +21,7 @@ + #include + #include "thread_dbP.h" + #include ++#include + + typedef struct pthread pthread; + typedef struct pthread_key_struct pthread_key_struct; +@@ -37,6 +38,9 @@ typedef struct + } dtv; + + typedef struct link_map link_map; ++typedef struct rtld_global rtld_global; ++typedef struct dtv_slotinfo_list dtv_slotinfo_list; ++typedef struct dtv_slotinfo dtv_slotinfo; + + /* Actually static in nptl/init.c, but we only need it for typeof. */ + extern bool __nptl_initial_report_events; +Index: glibc-2.21/nptl_db/fetch-value.c +=================================================================== +--- glibc-2.21.orig/nptl_db/fetch-value.c ++++ glibc-2.21/nptl_db/fetch-value.c +@@ -69,7 +69,8 @@ _td_locate_field (td_thragent_t *ta, + } + } + +- if (idx != 0 && idx - (psaddr_t) 0 > DB_DESC_NELEM (desc)) ++ if (idx != 0 && DB_DESC_NELEM (desc) != 0 ++ && idx - (psaddr_t) 0 > DB_DESC_NELEM (desc)) + /* This is an internal indicator to callers with nonzero IDX + that the IDX value is too big. */ + return TD_NOAPLIC; +Index: glibc-2.21/nptl_db/structs.def +=================================================================== +--- glibc-2.21.orig/nptl_db/structs.def ++++ glibc-2.21/nptl_db/structs.def +@@ -22,6 +22,28 @@ + # define STRUCTS_DEF_DEFAULTS 1 + #endif + ++#ifndef DB_RTLD_VARIABLE ++# define DB_RTLD_VARIABLE(name) DB_VARIABLE (name) ++#endif ++ ++#ifndef DB_MAIN_VARIABLE ++# define DB_MAIN_VARIABLE(name) DB_VARIABLE (name) ++#endif ++ ++#ifndef DB_RTLD_GLOBAL_FIELD ++# if !IS_IN (libpthread) ++# define DB_RTLD_GLOBAL_FIELD(field) \ ++ DB_STRUCT_FIELD (rtld_global, _##field) \ ++ DB_MAIN_VARIABLE (_##field) ++# elif defined SHARED ++# define DB_RTLD_GLOBAL_FIELD(field) \ ++ DB_STRUCT_FIELD (rtld_global, _##field) ++# else ++# define DB_RTLD_GLOBAL_FIELD(field) \ ++ DB_MAIN_VARIABLE (_##field) ++# endif ++#endif /* DB_RTLD_GLOBAL_FIELD */ ++ + DB_STRUCT (pthread) + DB_STRUCT_FIELD (pthread, list) + DB_STRUCT_FIELD (pthread, report_events) +@@ -70,14 +92,31 @@ DB_STRUCT (pthread_key_data_level2) + DB_STRUCT_ARRAY_FIELD (pthread_key_data_level2, data) + + DB_STRUCT_FIELD (link_map, l_tls_modid) ++DB_STRUCT_FIELD (link_map, l_tls_offset) + + DB_STRUCT_ARRAY_FIELD (dtv, dtv) + #define pointer_val pointer.val /* Field of anonymous struct in dtv_t. */ + DB_STRUCT_FIELD (dtv_t, pointer_val) ++DB_STRUCT_FIELD (dtv_t, counter) + #if !IS_IN (libpthread) || TLS_TCB_AT_TP + DB_STRUCT_FIELD (pthread, dtvp) + #endif + ++#if !(IS_IN (libpthread) && !defined SHARED) ++DB_STRUCT (rtld_global) ++DB_RTLD_VARIABLE (_rtld_global) ++#endif ++DB_RTLD_GLOBAL_FIELD (dl_tls_dtv_slotinfo_list) ++ ++DB_STRUCT (dtv_slotinfo_list) ++DB_STRUCT_FIELD (dtv_slotinfo_list, len) ++DB_STRUCT_FIELD (dtv_slotinfo_list, next) ++DB_STRUCT_ARRAY_FIELD (dtv_slotinfo_list, slotinfo) ++ ++DB_STRUCT (dtv_slotinfo) ++DB_STRUCT_FIELD (dtv_slotinfo, gen) ++DB_STRUCT_FIELD (dtv_slotinfo, map) ++ + #ifdef STRUCTS_DEF_DEFAULTS + # undef DB_STRUCT_ARRAY_FIELD + # undef DB_ARRAY_VARIABLE +Index: glibc-2.21/nptl_db/td_symbol_list.c +=================================================================== +--- glibc-2.21.orig/nptl_db/td_symbol_list.c ++++ glibc-2.21/nptl_db/td_symbol_list.c +@@ -18,7 +18,6 @@ + . */ + + #include +-#include + #include "thread_dbP.h" + + static const char *symbol_list_arr[] = +@@ -41,12 +40,12 @@ td_symbol_list (void) + + + ps_err_e +-td_lookup (struct ps_prochandle *ps, int idx, psaddr_t *sym_addr) ++td_mod_lookup (struct ps_prochandle *ps, const char *mod, ++ int idx, psaddr_t *sym_addr) + { + ps_err_e result; + assert (idx >= 0 && idx < SYM_NUM_MESSAGES); +- result = ps_pglobal_lookup (ps, LIBPTHREAD_SO, symbol_list_arr[idx], +- sym_addr); ++ result = ps_pglobal_lookup (ps, mod, symbol_list_arr[idx], sym_addr); + + #ifdef HAVE_ASM_GLOBAL_DOT_NAME + /* For PowerPC, 64-bit uses dot symbols but 32-bit does not. +Index: glibc-2.21/nptl_db/td_thr_tlsbase.c +=================================================================== +--- glibc-2.21.orig/nptl_db/td_thr_tlsbase.c ++++ glibc-2.21/nptl_db/td_thr_tlsbase.c +@@ -17,14 +17,118 @@ + . */ + + #include "thread_dbP.h" ++#include + ++/* Get the DTV slotinfo list head entry from the dynamic loader state ++ into *LISTHEAD. */ ++static td_err_e ++dtv_slotinfo_list (td_thragent_t *ta, ++ psaddr_t *listhead) ++{ ++ td_err_e err; ++ psaddr_t head; ++ ++ if (ta->ta_addr__rtld_global == 0 ++ && td_mod_lookup (ta->ph, LD_SO, SYM__rtld_global, ++ &ta->ta_addr__rtld_global) != PS_OK) ++ ta->ta_addr__rtld_global = (void*)-1; ++ ++ if (ta->ta_addr__rtld_global != (void*)-1) ++ { ++ err = DB_GET_FIELD (head, ta, ta->ta_addr__rtld_global, ++ rtld_global, _dl_tls_dtv_slotinfo_list, 0); ++ if (err != TD_OK) ++ return err; ++ } ++ else ++ { ++ if (ta->ta_addr__dl_tls_dtv_slotinfo_list == 0 ++ && td_mod_lookup (ta->ph, NULL, SYM__dl_tls_dtv_slotinfo_list, ++ &ta->ta_addr__dl_tls_dtv_slotinfo_list) != PS_OK) ++ return TD_ERR; ++ ++ err = _td_fetch_value (ta, ta->ta_var__dl_tls_dtv_slotinfo_list, ++ SYM_DESC__dl_tls_dtv_slotinfo_list, ++ 0, ta->ta_addr__dl_tls_dtv_slotinfo_list, &head); ++ if (err != TD_OK) ++ return err; ++ } ++ ++ *listhead = head; ++ return TD_OK; ++} ++ ++/* Get the address of the DTV slotinfo entry for MODID into ++ *DTVSLOTINFO. */ ++static td_err_e ++dtv_slotinfo (td_thragent_t *ta, ++ unsigned long int modid, ++ psaddr_t *dtvslotinfo) ++{ ++ td_err_e err; ++ psaddr_t slot, temp; ++ size_t slbase = 0; ++ ++ err = dtv_slotinfo_list (ta, &slot); ++ if (err != TD_OK) ++ return err; ++ ++ while (slot) ++ { ++ /* Get the number of entries in this list entry's array. */ ++ err = DB_GET_FIELD (temp, ta, slot, dtv_slotinfo_list, len, 0); ++ if (err != TD_OK) ++ return err; ++ size_t len = (uintptr_t)temp; ++ ++ /* Did we find the list entry for modid? */ ++ if (modid < slbase + len) ++ break; ++ ++ /* We didn't, so get the next list entry. */ ++ slbase += len; ++ err = DB_GET_FIELD (temp, ta, slot, dtv_slotinfo_list, ++ next, 0); ++ if (err != TD_OK) ++ return err; ++ slot = temp; ++ } ++ ++ /* We reached the end of the list and found nothing. */ ++ if (!slot) ++ return TD_ERR; ++ ++ /* Take the slotinfo for modid from the list entry. */ ++ err = DB_GET_FIELD_ADDRESS (temp, ta, slot, dtv_slotinfo_list, ++ slotinfo, modid - slbase); ++ if (err != TD_OK) ++ return err; ++ slot = temp; ++ ++ *dtvslotinfo = slot; ++ return TD_OK; ++} ++ ++/* Return in *BASE the base address of the TLS block for MODID within ++ TH. ++ ++ It should return success and yield the correct pointer in any ++ circumstance where the TLS block for the module and thread ++ requested has already been initialized. ++ ++ It should fail with TD_TLSDEFER only when the thread could not ++ possibly have observed any values in that TLS block. That way, the ++ debugger can fall back to showing initial values from the PT_TLS ++ segment (and refusing attempts to mutate) for the TD_TLSDEFER case, ++ and never fail to make the values the program will actually see ++ available to the user of the debugger. */ + td_err_e + td_thr_tlsbase (const td_thrhandle_t *th, + unsigned long int modid, + psaddr_t *base) + { + td_err_e err; +- psaddr_t dtv, dtvslot, dtvptr; ++ psaddr_t dtv, dtvslot, dtvptr, temp; + + if (modid < 1) + return TD_NOTLS; +@@ -50,11 +154,75 @@ td_thr_tlsbase (const td_thrhandle_t *th + return TD_TLSDEFER; + } + ++ err = dtv_slotinfo (th->th_ta_p, modid, &temp); ++ if (err != TD_OK) ++ return err; ++ ++ psaddr_t slot; ++ err = DB_GET_STRUCT (slot, th->th_ta_p, temp, dtv_slotinfo); ++ if (err != TD_OK) ++ return err; ++ ++ /* Take the link_map from the slotinfo. */ ++ psaddr_t map; ++ err = DB_GET_FIELD_LOCAL (map, th->th_ta_p, slot, dtv_slotinfo, map, 0); ++ if (err != TD_OK) ++ return err; ++ if (!map) ++ return TD_ERR; ++ ++ /* Ok, the modid is good, now find out what DTV generation it ++ requires. */ ++ err = DB_GET_FIELD_LOCAL (temp, th->th_ta_p, slot, dtv_slotinfo, gen, 0); ++ if (err != TD_OK) ++ return err; ++ size_t modgen = (uintptr_t)temp; ++ + /* Get the DTV pointer from the thread descriptor. */ + err = DB_GET_FIELD (dtv, th->th_ta_p, pd, pthread, dtvp, 0); + if (err != TD_OK) + return err; + ++ psaddr_t dtvgenloc; ++ /* Get the DTV generation count at dtv[0].counter. */ ++ err = DB_GET_FIELD_ADDRESS (dtvgenloc, th->th_ta_p, dtv, dtv, dtv, 0); ++ if (err != TD_OK) ++ return err; ++ err = DB_GET_FIELD (temp, th->th_ta_p, dtvgenloc, dtv_t, counter, 0); ++ if (err != TD_OK) ++ return err; ++ size_t dtvgen = (uintptr_t)temp; ++ ++ /* Is the DTV current enough? */ ++ if (dtvgen < modgen) ++ { ++ try_static_tls: ++ /* If the module uses Static TLS, we're still good. */ ++ err = DB_GET_FIELD (temp, th->th_ta_p, map, link_map, l_tls_offset, 0); ++ if (err != TD_OK) ++ return err; ++ ptrdiff_t tlsoff = (uintptr_t)temp; ++ ++ if (tlsoff != FORCED_DYNAMIC_TLS_OFFSET ++ && tlsoff != NO_TLS_OFFSET) ++ { ++ psaddr_t tp = pd; ++ ++#if TLS_TCB_AT_TP ++ dtvptr = tp - tlsoff; ++#elif TLS_DTV_AT_TP ++ dtvptr = tp + tlsoff + TLS_PRE_TCB_SIZE; ++#else ++# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" ++#endif ++ ++ *base = dtvptr; ++ return TD_OK; ++ } ++ ++ return TD_TLSDEFER; ++ } ++ + /* Find the corresponding entry in the DTV. */ + err = DB_GET_FIELD_ADDRESS (dtvslot, th->th_ta_p, dtv, dtv, dtv, modid); + if (err != TD_OK) +@@ -68,7 +236,7 @@ td_thr_tlsbase (const td_thrhandle_t *th + /* It could be that the memory for this module is not allocated for + the given thread. */ + if ((uintptr_t) dtvptr & 1) +- return TD_TLSDEFER; ++ goto try_static_tls; + + *base = dtvptr; + return TD_OK; +Index: glibc-2.21/nptl_db/thread_dbP.h +=================================================================== +--- glibc-2.21.orig/nptl_db/thread_dbP.h ++++ glibc-2.21/nptl_db/thread_dbP.h +@@ -29,6 +29,7 @@ + #include "thread_db.h" + #include "../nptl/pthreadP.h" /* This is for *_BITMASK only. */ + #include ++#include + + /* Indeces for the symbol names. */ + enum +@@ -139,11 +140,11 @@ ta_ok (const td_thragent_t *ta) + } + + +-/* Internal wrapper around ps_pglobal_lookup. */ +-extern ps_err_e td_lookup (struct ps_prochandle *ps, +- int idx, psaddr_t *sym_addr) attribute_hidden; +- +- ++/* Internal wrappers around ps_pglobal_lookup. */ ++extern ps_err_e td_mod_lookup (struct ps_prochandle *ps, const char *modname, ++ int idx, psaddr_t *sym_addr) attribute_hidden; ++#define td_lookup(ps, idx, sym_addr) \ ++ td_mod_lookup ((ps), LIBPTHREAD_SO, (idx), (sym_addr)) + + + /* Store in psaddr_t VAR the address of inferior's symbol NAME. */ From f3e9e887d80779c421f565a0dd24044aa08a1a36f913ae8f31c76004f8287eb9 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sat, 2 May 2015 14:10:02 +0000 Subject: [PATCH 180/204] Accepting request 295007 from Base:System - threaded-trim-threshold.patch: Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) OBS-URL: https://build.opensuse.org/request/show/295007 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=189 --- glibc-testsuite.changes | 6 + glibc-testsuite.spec | 3 + glibc-utils.changes | 6 + glibc-utils.spec | 3 + glibc.changes | 6 + glibc.spec | 3 + threaded-trim-threshold.patch | 224 ++++++++++++++++++++++++++++++++++ 7 files changed, 251 insertions(+) create mode 100644 threaded-trim-threshold.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 286bb78..28e6771 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com + +- threaded-trim-threshold.patch: Fix regression in threaded application + malloc performance (bsc#915955, BZ #17195) + ------------------------------------------------------------------- Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index b6ba37f..bd58940 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -243,6 +243,8 @@ Patch1003: pthread-mutexattr-gettype-kind.patch Patch1004: powerpc-software-sqrt.patch # PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) Patch1005: static-tls-dtv-limit.patch +# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) +Patch1006: threaded-trim-threshold.patch ### # Patches awaiting upstream approval @@ -469,6 +471,7 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 286bb78..28e6771 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com + +- threaded-trim-threshold.patch: Fix regression in threaded application + malloc performance (bsc#915955, BZ #17195) + ------------------------------------------------------------------- Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 4d14ed7..b5ae5d1 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -242,6 +242,8 @@ Patch1003: pthread-mutexattr-gettype-kind.patch Patch1004: powerpc-software-sqrt.patch # PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) Patch1005: static-tls-dtv-limit.patch +# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) +Patch1006: threaded-trim-threshold.patch ### # Patches awaiting upstream approval @@ -469,6 +471,7 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/glibc.changes b/glibc.changes index 286bb78..28e6771 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com + +- threaded-trim-threshold.patch: Fix regression in threaded application + malloc performance (bsc#915955, BZ #17195) + ------------------------------------------------------------------- Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index f7d1dbf..e10f095 100644 --- a/glibc.spec +++ b/glibc.spec @@ -243,6 +243,8 @@ Patch1003: pthread-mutexattr-gettype-kind.patch Patch1004: powerpc-software-sqrt.patch # PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) Patch1005: static-tls-dtv-limit.patch +# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) +Patch1006: threaded-trim-threshold.patch ### # Patches awaiting upstream approval @@ -469,6 +471,7 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/threaded-trim-threshold.patch b/threaded-trim-threshold.patch new file mode 100644 index 0000000..4457442 --- /dev/null +++ b/threaded-trim-threshold.patch @@ -0,0 +1,224 @@ +From c26efef9798914e208329c0e8c3c73bb1135d9e3 Mon Sep 17 00:00:00 2001 +From: Mel Gorman +Date: Thu, 2 Apr 2015 12:14:14 +0530 +Subject: [PATCH] malloc: Consistently apply trim_threshold to all heaps [BZ + #17195] + +Trimming heaps is a balance between saving memory and the system overhead +required to update page tables and discard allocated pages. The malloc +option M_TRIM_THRESHOLD is a tunable that users are meant to use to decide +where this balance point is but it is only applied to the main arena. + +For scalability reasons, glibc malloc has per-thread heaps but these are +shrunk with madvise() if there is one page free at the top of the heap. +In some circumstances this can lead to high system overhead if a thread +has a control flow like + + while (data_to_process) { + buf = malloc(large_size); + do_stuff(); + free(buf); + } + +For a large size, the free() will call madvise (pagetable teardown, page +free and TLB flush) every time followed immediately by a malloc (fault, +kernel page alloc, zeroing and charge accounting). The kernel overhead +can dominate such a workload. + +This patch allows the user to tune when madvise gets called by applying +the trim threshold to the per-thread heaps and using similar logic to the +main arena when deciding whether to shrink. Alternatively if the dynamic +brk/mmap threshold gets adjusted then the new values will be obeyed by +the per-thread heaps. + +Bug 17195 was a test case motivated by a problem encountered in scientific +applications written in python that performance badly due to high page fault +overhead. The basic operation of such a program was posted by Julian Taylor +https://sourceware.org/ml/libc-alpha/2015-02/msg00373.html + +With this patch applied, the overhead is eliminated. All numbers in this +report are in seconds and were recorded by running Julian's program 30 +times. + +pyarray + glibc madvise + 2.21 v2 +System min 1.81 ( 0.00%) 0.00 (100.00%) +System mean 1.93 ( 0.00%) 0.02 ( 99.20%) +System stddev 0.06 ( 0.00%) 0.01 ( 88.99%) +System max 2.06 ( 0.00%) 0.03 ( 98.54%) +Elapsed min 3.26 ( 0.00%) 2.37 ( 27.30%) +Elapsed mean 3.39 ( 0.00%) 2.41 ( 28.84%) +Elapsed stddev 0.14 ( 0.00%) 0.02 ( 82.73%) +Elapsed max 4.05 ( 0.00%) 2.47 ( 39.01%) + + glibc madvise + 2.21 v2 +User 141.86 142.28 +System 57.94 0.60 +Elapsed 102.02 72.66 + +Note that almost a minutes worth of system time is eliminted and the +program completes 28% faster on average. + +To illustrate the problem without python this is a basic test-case for +the worst case scenario where every free is a madvise followed by a an alloc + +/* gcc bench-free.c -lpthread -o bench-free */ +static int num = 1024; + +void __attribute__((noinline,noclone)) dostuff (void *p) +{ +} + +void *worker (void *data) +{ + int i; + + for (i = num; i--;) + { + void *m = malloc (48*4096); + dostuff (m); + free (m); + } + + return NULL; +} + +int main() +{ + int i; + pthread_t t; + void *ret; + if (pthread_create (&t, NULL, worker, NULL)) + exit (2); + if (pthread_join (t, &ret)) + exit (3); + return 0; +} + +Before the patch, this resulted in 1024 calls to madvise. With the patch applied, +madvise is called twice because the default trim threshold is high enough to avoid +this. + +This a more complex case where there is a mix of frees. It's simply a different worker +function for the test case above + +void *worker (void *data) +{ + int i; + int j = 0; + void *free_index[num]; + + for (i = num; i--;) + { + void *m = malloc ((i % 58) *4096); + dostuff (m); + if (i % 2 == 0) { + free (m); + } else { + free_index[j++] = m; + } + } + for (; j >= 0; j--) + { + free(free_index[j]); + } + + return NULL; +} + +glibc 2.21 calls malloc 90305 times but with the patch applied, it's +called 13438. Increasing the trim threshold will decrease the number of +times it's called with the option of eliminating the overhead. + +ebizzy is meant to generate a workload resembling common web application +server workloads. It is threaded with a large working set that at its core +has an allocation, do_stuff, free loop that also hits this case. The primary +metric of the benchmark is records processed per second. This is running on +my desktop which is a single socket machine with an I7-4770 and 8 cores. +Each thread count was run for 30 seconds. It was only run once as the +performance difference is so high that the variation is insignificant. + + glibc 2.21 patch +threads 1 10230 44114 +threads 2 19153 84925 +threads 4 34295 134569 +threads 8 51007 183387 + +Note that the saving happens to be a concidence as the size allocated +by ebizzy was less than the default threshold. If a different number of +chunks were specified then it may also be necessary to tune the threshold +to compensate + +This is roughly quadrupling the performance of this benchmark. The difference in +system CPU usage illustrates why. + +ebizzy running 1 thread with glibc 2.21 +10230 records/s 306904 +real 30.00 s +user 7.47 s +sys 22.49 s + +22.49 seconds was spent in the kernel for a workload runinng 30 seconds. With the +patch applied + +ebizzy running 1 thread with patch applied +44126 records/s 1323792 +real 30.00 s +user 29.97 s +sys 0.00 s + +system CPU usage was zero with the patch applied. strace shows that glibc +running this workload calls madvise approximately 9000 times a second. With +the patch applied madvise was called twice during the workload (or 0.06 +times per second). + +2015-02-10 Mel Gorman + + [BZ #17195] + * malloc/arena.c (free): Apply trim threshold to per-thread heaps + as well as the main arena. +--- + +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -241,6 +241,8 @@ + /* For MIN, MAX, powerof2. */ + #include + ++/* For ALIGN_DOWN. */ ++#include + + /* + Debugging: +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -658,7 +658,7 @@ heap_trim (heap_info *heap, size_t pad) + unsigned long pagesz = GLRO (dl_pagesize); + mchunkptr top_chunk = top (ar_ptr), p, bck, fwd; + heap_info *prev_heap; +- long new_size, top_size, extra, prev_size, misalign; ++ long new_size, top_size, top_area, extra, prev_size, misalign; + + /* Can this heap go away completely? */ + while (top_chunk == chunk_at_offset (heap, sizeof (*heap))) +@@ -694,9 +694,16 @@ heap_trim (heap_info *heap, size_t pad) + set_head (top_chunk, new_size | PREV_INUSE); + /*check_chunk(ar_ptr, top_chunk);*/ + } ++ ++ /* Uses similar logic for per-thread arenas as the main arena with systrim ++ by preserving the top pad and at least a page. */ + top_size = chunksize (top_chunk); +- extra = (top_size - pad - MINSIZE - 1) & ~(pagesz - 1); +- if (extra < (long) pagesz) ++ top_area = top_size - MINSIZE - 1; ++ if (top_area <= pad) ++ return 0; ++ ++ extra = ALIGN_DOWN(top_area - pad, pagesz); ++ if ((unsigned long) extra < mp_.trim_threshold) + return 0; + + /* Try to shrink. */ From 17572084d9ebbf6348b871cd52a6da5a1f2603ff98f69326b67c155613c10f7d Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 4 May 2015 04:48:01 +0000 Subject: [PATCH 181/204] osc copypac from project:openSUSE:Factory package:glibc revision:188 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=190 --- glibc-testsuite.changes | 6 - glibc-testsuite.spec | 3 - glibc-utils.changes | 6 - glibc-utils.spec | 3 - glibc.changes | 6 - glibc.spec | 3 - threaded-trim-threshold.patch | 224 ---------------------------------- 7 files changed, 251 deletions(-) delete mode 100644 threaded-trim-threshold.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 28e6771..286bb78 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,9 +1,3 @@ -------------------------------------------------------------------- -Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com - -- threaded-trim-threshold.patch: Fix regression in threaded application - malloc performance (bsc#915955, BZ #17195) - ------------------------------------------------------------------- Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index bd58940..b6ba37f 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -243,8 +243,6 @@ Patch1003: pthread-mutexattr-gettype-kind.patch Patch1004: powerpc-software-sqrt.patch # PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) Patch1005: static-tls-dtv-limit.patch -# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) -Patch1006: threaded-trim-threshold.patch ### # Patches awaiting upstream approval @@ -471,7 +469,6 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch1006 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 28e6771..286bb78 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,9 +1,3 @@ -------------------------------------------------------------------- -Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com - -- threaded-trim-threshold.patch: Fix regression in threaded application - malloc performance (bsc#915955, BZ #17195) - ------------------------------------------------------------------- Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index b5ae5d1..4d14ed7 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -242,8 +242,6 @@ Patch1003: pthread-mutexattr-gettype-kind.patch Patch1004: powerpc-software-sqrt.patch # PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) Patch1005: static-tls-dtv-limit.patch -# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) -Patch1006: threaded-trim-threshold.patch ### # Patches awaiting upstream approval @@ -471,7 +469,6 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch1006 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/glibc.changes b/glibc.changes index 28e6771..286bb78 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,9 +1,3 @@ -------------------------------------------------------------------- -Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com - -- threaded-trim-threshold.patch: Fix regression in threaded application - malloc performance (bsc#915955, BZ #17195) - ------------------------------------------------------------------- Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index e10f095..f7d1dbf 100644 --- a/glibc.spec +++ b/glibc.spec @@ -243,8 +243,6 @@ Patch1003: pthread-mutexattr-gettype-kind.patch Patch1004: powerpc-software-sqrt.patch # PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) Patch1005: static-tls-dtv-limit.patch -# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) -Patch1006: threaded-trim-threshold.patch ### # Patches awaiting upstream approval @@ -471,7 +469,6 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch1006 -p1 %patch2000 -p1 %patch2002 -p1 diff --git a/threaded-trim-threshold.patch b/threaded-trim-threshold.patch deleted file mode 100644 index 4457442..0000000 --- a/threaded-trim-threshold.patch +++ /dev/null @@ -1,224 +0,0 @@ -From c26efef9798914e208329c0e8c3c73bb1135d9e3 Mon Sep 17 00:00:00 2001 -From: Mel Gorman -Date: Thu, 2 Apr 2015 12:14:14 +0530 -Subject: [PATCH] malloc: Consistently apply trim_threshold to all heaps [BZ - #17195] - -Trimming heaps is a balance between saving memory and the system overhead -required to update page tables and discard allocated pages. The malloc -option M_TRIM_THRESHOLD is a tunable that users are meant to use to decide -where this balance point is but it is only applied to the main arena. - -For scalability reasons, glibc malloc has per-thread heaps but these are -shrunk with madvise() if there is one page free at the top of the heap. -In some circumstances this can lead to high system overhead if a thread -has a control flow like - - while (data_to_process) { - buf = malloc(large_size); - do_stuff(); - free(buf); - } - -For a large size, the free() will call madvise (pagetable teardown, page -free and TLB flush) every time followed immediately by a malloc (fault, -kernel page alloc, zeroing and charge accounting). The kernel overhead -can dominate such a workload. - -This patch allows the user to tune when madvise gets called by applying -the trim threshold to the per-thread heaps and using similar logic to the -main arena when deciding whether to shrink. Alternatively if the dynamic -brk/mmap threshold gets adjusted then the new values will be obeyed by -the per-thread heaps. - -Bug 17195 was a test case motivated by a problem encountered in scientific -applications written in python that performance badly due to high page fault -overhead. The basic operation of such a program was posted by Julian Taylor -https://sourceware.org/ml/libc-alpha/2015-02/msg00373.html - -With this patch applied, the overhead is eliminated. All numbers in this -report are in seconds and were recorded by running Julian's program 30 -times. - -pyarray - glibc madvise - 2.21 v2 -System min 1.81 ( 0.00%) 0.00 (100.00%) -System mean 1.93 ( 0.00%) 0.02 ( 99.20%) -System stddev 0.06 ( 0.00%) 0.01 ( 88.99%) -System max 2.06 ( 0.00%) 0.03 ( 98.54%) -Elapsed min 3.26 ( 0.00%) 2.37 ( 27.30%) -Elapsed mean 3.39 ( 0.00%) 2.41 ( 28.84%) -Elapsed stddev 0.14 ( 0.00%) 0.02 ( 82.73%) -Elapsed max 4.05 ( 0.00%) 2.47 ( 39.01%) - - glibc madvise - 2.21 v2 -User 141.86 142.28 -System 57.94 0.60 -Elapsed 102.02 72.66 - -Note that almost a minutes worth of system time is eliminted and the -program completes 28% faster on average. - -To illustrate the problem without python this is a basic test-case for -the worst case scenario where every free is a madvise followed by a an alloc - -/* gcc bench-free.c -lpthread -o bench-free */ -static int num = 1024; - -void __attribute__((noinline,noclone)) dostuff (void *p) -{ -} - -void *worker (void *data) -{ - int i; - - for (i = num; i--;) - { - void *m = malloc (48*4096); - dostuff (m); - free (m); - } - - return NULL; -} - -int main() -{ - int i; - pthread_t t; - void *ret; - if (pthread_create (&t, NULL, worker, NULL)) - exit (2); - if (pthread_join (t, &ret)) - exit (3); - return 0; -} - -Before the patch, this resulted in 1024 calls to madvise. With the patch applied, -madvise is called twice because the default trim threshold is high enough to avoid -this. - -This a more complex case where there is a mix of frees. It's simply a different worker -function for the test case above - -void *worker (void *data) -{ - int i; - int j = 0; - void *free_index[num]; - - for (i = num; i--;) - { - void *m = malloc ((i % 58) *4096); - dostuff (m); - if (i % 2 == 0) { - free (m); - } else { - free_index[j++] = m; - } - } - for (; j >= 0; j--) - { - free(free_index[j]); - } - - return NULL; -} - -glibc 2.21 calls malloc 90305 times but with the patch applied, it's -called 13438. Increasing the trim threshold will decrease the number of -times it's called with the option of eliminating the overhead. - -ebizzy is meant to generate a workload resembling common web application -server workloads. It is threaded with a large working set that at its core -has an allocation, do_stuff, free loop that also hits this case. The primary -metric of the benchmark is records processed per second. This is running on -my desktop which is a single socket machine with an I7-4770 and 8 cores. -Each thread count was run for 30 seconds. It was only run once as the -performance difference is so high that the variation is insignificant. - - glibc 2.21 patch -threads 1 10230 44114 -threads 2 19153 84925 -threads 4 34295 134569 -threads 8 51007 183387 - -Note that the saving happens to be a concidence as the size allocated -by ebizzy was less than the default threshold. If a different number of -chunks were specified then it may also be necessary to tune the threshold -to compensate - -This is roughly quadrupling the performance of this benchmark. The difference in -system CPU usage illustrates why. - -ebizzy running 1 thread with glibc 2.21 -10230 records/s 306904 -real 30.00 s -user 7.47 s -sys 22.49 s - -22.49 seconds was spent in the kernel for a workload runinng 30 seconds. With the -patch applied - -ebizzy running 1 thread with patch applied -44126 records/s 1323792 -real 30.00 s -user 29.97 s -sys 0.00 s - -system CPU usage was zero with the patch applied. strace shows that glibc -running this workload calls madvise approximately 9000 times a second. With -the patch applied madvise was called twice during the workload (or 0.06 -times per second). - -2015-02-10 Mel Gorman - - [BZ #17195] - * malloc/arena.c (free): Apply trim threshold to per-thread heaps - as well as the main arena. ---- - ---- a/malloc/malloc.c -+++ b/malloc/malloc.c -@@ -241,6 +241,8 @@ - /* For MIN, MAX, powerof2. */ - #include - -+/* For ALIGN_DOWN. */ -+#include - - /* - Debugging: ---- a/malloc/arena.c -+++ b/malloc/arena.c -@@ -658,7 +658,7 @@ heap_trim (heap_info *heap, size_t pad) - unsigned long pagesz = GLRO (dl_pagesize); - mchunkptr top_chunk = top (ar_ptr), p, bck, fwd; - heap_info *prev_heap; -- long new_size, top_size, extra, prev_size, misalign; -+ long new_size, top_size, top_area, extra, prev_size, misalign; - - /* Can this heap go away completely? */ - while (top_chunk == chunk_at_offset (heap, sizeof (*heap))) -@@ -694,9 +694,16 @@ heap_trim (heap_info *heap, size_t pad) - set_head (top_chunk, new_size | PREV_INUSE); - /*check_chunk(ar_ptr, top_chunk);*/ - } -+ -+ /* Uses similar logic for per-thread arenas as the main arena with systrim -+ by preserving the top pad and at least a page. */ - top_size = chunksize (top_chunk); -- extra = (top_size - pad - MINSIZE - 1) & ~(pagesz - 1); -- if (extra < (long) pagesz) -+ top_area = top_size - MINSIZE - 1; -+ if (top_area <= pad) -+ return 0; -+ -+ extra = ALIGN_DOWN(top_area - pad, pagesz); -+ if ((unsigned long) extra < mp_.trim_threshold) - return 0; - - /* Try to shrink. */ From ab29d5500a2bcbe7f5add1011dd40ca4b6ce36a3133ebcf9064984e49929d642 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 16 Jun 2015 12:04:08 +0000 Subject: [PATCH 182/204] Accepting request 311392 from Base:System - Add /usr/include/gnu/lib-names-.*.h to baselibs - pthread-join-deadlock.patch: Don't require rtld lock to store static TLS offset in the DTV (bsc#930015, BZ #18457) - heap-top-corruption.patch: Do not corrupt the top of a threaded heap if top chunk is MINSIZE (BZ #18502) (forwarded request 311391 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/311392 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=191 --- baselibs.conf | 1 + glibc-testsuite.changes | 15 +++ glibc-testsuite.spec | 27 ++-- glibc-utils.changes | 15 +++ glibc-utils.spec | 27 ++-- glibc.changes | 15 +++ glibc.spec | 27 ++-- heap-top-corruption.patch | 51 ++++++++ pthread-join-deadlock.patch | 152 +++++++++++++++++++++++ threaded-trim-threshold.patch | 224 ++++++++++++++++++++++++++++++++++ 10 files changed, 527 insertions(+), 27 deletions(-) create mode 100644 heap-top-corruption.patch create mode 100644 pthread-join-deadlock.patch create mode 100644 threaded-trim-threshold.patch diff --git a/baselibs.conf b/baselibs.conf index 42676f4..b89df19 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -14,6 +14,7 @@ glibc-locale glibc-devel requires "glibc- = %version" arch i586 block! + +^/usr/include/gnu/lib-names-.*\.h$ +^/usr/include/gnu/stubs-.*\.h$ glibc-devel-static arch i586 block! diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 286bb78..efe1565 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Jun 9 08:16:46 UTC 2015 - schwab@suse.de + +- Add /usr/include/gnu/lib-names-.*.h to baselibs +- pthread-join-deadlock.patch: Don't require rtld lock to store static TLS + offset in the DTV (bsc#930015, BZ #18457) +- heap-top-corruption.patch: Do not corrupt the top of a threaded heap if + top chunk is MINSIZE (BZ #18502) + +------------------------------------------------------------------- +Wed Apr 8 12:50:39 UTC 2015 - mgorman@suse.com + +- threaded-trim-threshold.patch: Fix regression in threaded application + malloc performance (bsc#915955, BZ #17195) + ------------------------------------------------------------------- Thu Apr 2 08:11:20 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index b6ba37f..8ac1b89 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -243,6 +243,14 @@ Patch1003: pthread-mutexattr-gettype-kind.patch Patch1004: powerpc-software-sqrt.patch # PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) Patch1005: static-tls-dtv-limit.patch +# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) +Patch1006: threaded-trim-threshold.patch +# PATCH-FIX-UPSTREAM Simplify handling of nameserver configuration in resolver +Patch1007: resolv-nameserver-handling.patch +# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) +Patch1008: nss-separate-state-getXXent.patch +# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) +Patch1009: aarch64-sigstksz.patch ### # Patches awaiting upstream approval @@ -257,12 +265,10 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Rewrite handling of nameserver configuration in resolver -Patch2007: resolv-nameserver-handling.patch -# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) -Patch2008: nss-separate-state-getXXent.patch -# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) -Patch2009: aarch64-sigstksz.patch +# PATCH-FIX-UPSTREAM Don't require rtld lock to store static TLS offset in the DTV (BZ #18457) +Patch2007: pthread-join-deadlock.patch +# PATCH-FIX-UPSTREAM malloc: Do not corrupt the top of a threaded heap if top chunk is MINSIZE (BZ #18502) +Patch2008: heap-top-corruption.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -469,6 +475,10 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 %patch2000 -p1 %patch2002 -p1 @@ -477,7 +487,6 @@ rm nscd/s-stamp %patch2006 -p1 %patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 %patch3000 @@ -917,8 +926,8 @@ touch %{buildroot}/run/nscd/{socket,nscd.pid} # Create ld.so.conf # cat > %{buildroot}/etc/ld.so.conf < %{buildroot}/etc/ld.so.conf < %{buildroot}/etc/ld.so.conf < +Subject: [PATCH] [v3] malloc: Do not corrupt the top of a threaded heap if + top chunk is MINSIZE [BZ #18502] +Date: Mon, 8 Jun 2015 13:36:13 +0100 + +mksquashfs was reported in openSUSE to be causing segmentation faults when +creating installation images. Testing showed that mksquashfs sometimes +failed and could be reproduced within 10 attempts. The core dump looked +like the heap top was corrupted and was pointing to an unmapped area. In +other cases, this has been due to an application corrupting glibc structures +but mksquashfs appears to be fine in this regard. + +The problem is that heap_trim is "growing" the top into unmapped space. +If the top chunk == MINSIZE then top_area is -1 and this check does not +behave as expected due to a signed/unsigned comparison + + if (top_area <= pad) + return 0; + +The next calculation extra = ALIGN_DOWN(top_area - pad, pagesz) calculates +extra as a negative number which also is unnoticed due to a signed/unsigned +comparison. We then call shrink_heap(heap, negative_number) which crashes +later. This patch adds a simple check against MINSIZE to make sure extra +does not become negative. It adds a cast to hint to the reader that this +is a signed vs unsigned issue. + +Without the patch, mksquash fails within 10 attempts. With it applied, it +completed 1000 times without error. The standard test suite "make check" +showed no changes in the summary of test results. + +2015-06-08 Mel Gorman + + [BZ #18502] + * malloc/arena.c: Avoid corruption of the top of heaps for threads +--- + malloc/arena.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: glibc-2.21/malloc/arena.c +=================================================================== +--- glibc-2.21.orig/malloc/arena.c ++++ glibc-2.21/malloc/arena.c +@@ -699,7 +699,7 @@ heap_trim (heap_info *heap, size_t pad) + by preserving the top pad and at least a page. */ + top_size = chunksize (top_chunk); + top_area = top_size - MINSIZE - 1; +- if (top_area <= pad) ++ if (top_area < 0 || (size_t) top_area <= pad) + return 0; + + extra = ALIGN_DOWN(top_area - pad, pagesz); diff --git a/pthread-join-deadlock.patch b/pthread-join-deadlock.patch new file mode 100644 index 0000000..34c60d6 --- /dev/null +++ b/pthread-join-deadlock.patch @@ -0,0 +1,152 @@ + [PR dynamic-link/18457] + * elf/dl-tls.c (tls_get_addr_tail): Don't take the rtld lock + if we already have a final static TLS offset. + * nptl/tst-join7.c, nptl/tst-join7mod.c: New. + +Index: glibc-2.21/elf/dl-tls.c +=================================================================== +--- glibc-2.21.orig/elf/dl-tls.c ++++ glibc-2.21/elf/dl-tls.c +@@ -755,30 +755,44 @@ tls_get_addr_tail (GET_ADDR_ARGS, dtv_t + the_map = listp->slotinfo[idx].map; + } + +- /* Make sure that, if a dlopen running in parallel forces the +- variable into static storage, we'll wait until the address in the +- static TLS block is set up, and use that. If we're undecided +- yet, make sure we make the decision holding the lock as well. */ +- if (__glibc_unlikely (the_map->l_tls_offset +- != FORCED_DYNAMIC_TLS_OFFSET)) ++ /* If the TLS block for the map is already assigned to dynamic or to ++ static TLS, avoid the lock. Be careful to use the same value for ++ both tests; if we reloaded it, the second test might mistake ++ forced dynamic for an offset. Now, if the decision hasn't been ++ made, take the rtld lock, so that an ongoing dlopen gets a chance ++ to complete, and then retest; if the decision is still pending, ++ force the module to dynamic TLS. */ ++ ptrdiff_t offset = atomic_load_relaxed (&the_map->l_tls_offset); ++ if (__glibc_unlikely (offset != FORCED_DYNAMIC_TLS_OFFSET)) + { ++ if (__glibc_unlikely (offset != NO_TLS_OFFSET)) ++ goto static_tls; + __rtld_lock_lock_recursive (GL(dl_load_lock)); +- if (__glibc_likely (the_map->l_tls_offset == NO_TLS_OFFSET)) ++ offset = the_map->l_tls_offset; ++ if (__glibc_likely (offset == NO_TLS_OFFSET)) + { + the_map->l_tls_offset = FORCED_DYNAMIC_TLS_OFFSET; + __rtld_lock_unlock_recursive (GL(dl_load_lock)); + } +- else if (__glibc_likely (the_map->l_tls_offset +- != FORCED_DYNAMIC_TLS_OFFSET)) ++ else if (__glibc_likely (offset != FORCED_DYNAMIC_TLS_OFFSET)) + { ++ /* The decision is made, and it is final. We use the value ++ we've already loaded, but we could even load the offset ++ after releasing the lock, since it won't change. Should ++ the module be released while another thread references ++ one of its TLS variables, that's undefined behavior. */ ++ __rtld_lock_unlock_recursive (GL(dl_load_lock)); ++ ++ static_tls: ++ ; ++ + #if TLS_TCB_AT_TP +- void *p = (char *) THREAD_SELF - the_map->l_tls_offset; ++ void *p = (char *) THREAD_SELF - offset; + #elif TLS_DTV_AT_TP +- void *p = (char *) THREAD_SELF + the_map->l_tls_offset + TLS_PRE_TCB_SIZE; ++ void *p = (char *) THREAD_SELF + offset + TLS_PRE_TCB_SIZE; + #else + # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" + #endif +- __rtld_lock_unlock_recursive (GL(dl_load_lock)); + + dtv[GET_ADDR_MODULE].pointer.is_static = true; + dtv[GET_ADDR_MODULE].pointer.val = p; +Index: glibc-2.21/nptl/Makefile +=================================================================== +--- glibc-2.21.orig/nptl/Makefile ++++ glibc-2.21/nptl/Makefile +@@ -234,7 +234,7 @@ tests = tst-typesizes \ + tst-basic7 \ + tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \ + tst-raise1 \ +- tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 \ ++ tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 tst-join7 \ + tst-detach1 \ + tst-eintr1 tst-eintr2 tst-eintr3 tst-eintr4 tst-eintr5 \ + tst-tsd1 tst-tsd2 tst-tsd3 tst-tsd4 tst-tsd5 tst-tsd6 \ +@@ -312,7 +312,8 @@ endif + modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \ + tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \ + tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \ +- tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod ++ tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod \ ++ tst-join7mod + extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) tst-cleanup4aux.o + test-extras += $(modules-names) tst-cleanup4aux + test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) +@@ -517,6 +518,11 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(obj + $(evaluate-test) + endif + ++$(objpfx)tst-join7: $(libdl) $(shared-thread-library) ++$(objpfx)tst-join7.out: $(objpfx)tst-join7mod.so ++$(objpfx)tst-join7mod.so: $(shared-thread-library) ++LDFLAGS-tst-join7mod.so = -Wl,-soname,tst-join7mod.so ++ + $(objpfx)tst-dlsym1: $(libdl) $(shared-thread-library) + + $(objpfx)tst-fini1: $(shared-thread-library) $(objpfx)tst-fini1mod.so +Index: glibc-2.21/nptl/tst-join7.c +=================================================================== +--- /dev/null ++++ glibc-2.21/nptl/tst-join7.c +@@ -0,0 +1,12 @@ ++#include ++ ++int ++do_test (void) ++{ ++ void *f = dlopen ("tst-join7mod.so", RTLD_NOW | RTLD_GLOBAL); ++ if (f) dlclose (f); else return 1; ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.21/nptl/tst-join7mod.c +=================================================================== +--- /dev/null ++++ glibc-2.21/nptl/tst-join7mod.c +@@ -0,0 +1,29 @@ ++#include ++#include ++ ++static pthread_t th; ++static int running = 1; ++ ++static void * ++test_run (void *p) ++{ ++ while (running) ++ fprintf (stderr, "XXX test_run\n"); ++ fprintf (stderr, "XXX test_run FINISHED\n"); ++ return NULL; ++} ++ ++static void __attribute__ ((constructor)) ++do_init (void) ++{ ++ pthread_create (&th, NULL, test_run, NULL); ++} ++ ++static void __attribute__ ((destructor)) ++do_end (void) ++{ ++ running = 0; ++ fprintf (stderr, "thread_join...\n"); ++ pthread_join (th, NULL); ++ fprintf (stderr, "thread_join DONE\n"); ++} diff --git a/threaded-trim-threshold.patch b/threaded-trim-threshold.patch new file mode 100644 index 0000000..4457442 --- /dev/null +++ b/threaded-trim-threshold.patch @@ -0,0 +1,224 @@ +From c26efef9798914e208329c0e8c3c73bb1135d9e3 Mon Sep 17 00:00:00 2001 +From: Mel Gorman +Date: Thu, 2 Apr 2015 12:14:14 +0530 +Subject: [PATCH] malloc: Consistently apply trim_threshold to all heaps [BZ + #17195] + +Trimming heaps is a balance between saving memory and the system overhead +required to update page tables and discard allocated pages. The malloc +option M_TRIM_THRESHOLD is a tunable that users are meant to use to decide +where this balance point is but it is only applied to the main arena. + +For scalability reasons, glibc malloc has per-thread heaps but these are +shrunk with madvise() if there is one page free at the top of the heap. +In some circumstances this can lead to high system overhead if a thread +has a control flow like + + while (data_to_process) { + buf = malloc(large_size); + do_stuff(); + free(buf); + } + +For a large size, the free() will call madvise (pagetable teardown, page +free and TLB flush) every time followed immediately by a malloc (fault, +kernel page alloc, zeroing and charge accounting). The kernel overhead +can dominate such a workload. + +This patch allows the user to tune when madvise gets called by applying +the trim threshold to the per-thread heaps and using similar logic to the +main arena when deciding whether to shrink. Alternatively if the dynamic +brk/mmap threshold gets adjusted then the new values will be obeyed by +the per-thread heaps. + +Bug 17195 was a test case motivated by a problem encountered in scientific +applications written in python that performance badly due to high page fault +overhead. The basic operation of such a program was posted by Julian Taylor +https://sourceware.org/ml/libc-alpha/2015-02/msg00373.html + +With this patch applied, the overhead is eliminated. All numbers in this +report are in seconds and were recorded by running Julian's program 30 +times. + +pyarray + glibc madvise + 2.21 v2 +System min 1.81 ( 0.00%) 0.00 (100.00%) +System mean 1.93 ( 0.00%) 0.02 ( 99.20%) +System stddev 0.06 ( 0.00%) 0.01 ( 88.99%) +System max 2.06 ( 0.00%) 0.03 ( 98.54%) +Elapsed min 3.26 ( 0.00%) 2.37 ( 27.30%) +Elapsed mean 3.39 ( 0.00%) 2.41 ( 28.84%) +Elapsed stddev 0.14 ( 0.00%) 0.02 ( 82.73%) +Elapsed max 4.05 ( 0.00%) 2.47 ( 39.01%) + + glibc madvise + 2.21 v2 +User 141.86 142.28 +System 57.94 0.60 +Elapsed 102.02 72.66 + +Note that almost a minutes worth of system time is eliminted and the +program completes 28% faster on average. + +To illustrate the problem without python this is a basic test-case for +the worst case scenario where every free is a madvise followed by a an alloc + +/* gcc bench-free.c -lpthread -o bench-free */ +static int num = 1024; + +void __attribute__((noinline,noclone)) dostuff (void *p) +{ +} + +void *worker (void *data) +{ + int i; + + for (i = num; i--;) + { + void *m = malloc (48*4096); + dostuff (m); + free (m); + } + + return NULL; +} + +int main() +{ + int i; + pthread_t t; + void *ret; + if (pthread_create (&t, NULL, worker, NULL)) + exit (2); + if (pthread_join (t, &ret)) + exit (3); + return 0; +} + +Before the patch, this resulted in 1024 calls to madvise. With the patch applied, +madvise is called twice because the default trim threshold is high enough to avoid +this. + +This a more complex case where there is a mix of frees. It's simply a different worker +function for the test case above + +void *worker (void *data) +{ + int i; + int j = 0; + void *free_index[num]; + + for (i = num; i--;) + { + void *m = malloc ((i % 58) *4096); + dostuff (m); + if (i % 2 == 0) { + free (m); + } else { + free_index[j++] = m; + } + } + for (; j >= 0; j--) + { + free(free_index[j]); + } + + return NULL; +} + +glibc 2.21 calls malloc 90305 times but with the patch applied, it's +called 13438. Increasing the trim threshold will decrease the number of +times it's called with the option of eliminating the overhead. + +ebizzy is meant to generate a workload resembling common web application +server workloads. It is threaded with a large working set that at its core +has an allocation, do_stuff, free loop that also hits this case. The primary +metric of the benchmark is records processed per second. This is running on +my desktop which is a single socket machine with an I7-4770 and 8 cores. +Each thread count was run for 30 seconds. It was only run once as the +performance difference is so high that the variation is insignificant. + + glibc 2.21 patch +threads 1 10230 44114 +threads 2 19153 84925 +threads 4 34295 134569 +threads 8 51007 183387 + +Note that the saving happens to be a concidence as the size allocated +by ebizzy was less than the default threshold. If a different number of +chunks were specified then it may also be necessary to tune the threshold +to compensate + +This is roughly quadrupling the performance of this benchmark. The difference in +system CPU usage illustrates why. + +ebizzy running 1 thread with glibc 2.21 +10230 records/s 306904 +real 30.00 s +user 7.47 s +sys 22.49 s + +22.49 seconds was spent in the kernel for a workload runinng 30 seconds. With the +patch applied + +ebizzy running 1 thread with patch applied +44126 records/s 1323792 +real 30.00 s +user 29.97 s +sys 0.00 s + +system CPU usage was zero with the patch applied. strace shows that glibc +running this workload calls madvise approximately 9000 times a second. With +the patch applied madvise was called twice during the workload (or 0.06 +times per second). + +2015-02-10 Mel Gorman + + [BZ #17195] + * malloc/arena.c (free): Apply trim threshold to per-thread heaps + as well as the main arena. +--- + +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -241,6 +241,8 @@ + /* For MIN, MAX, powerof2. */ + #include + ++/* For ALIGN_DOWN. */ ++#include + + /* + Debugging: +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -658,7 +658,7 @@ heap_trim (heap_info *heap, size_t pad) + unsigned long pagesz = GLRO (dl_pagesize); + mchunkptr top_chunk = top (ar_ptr), p, bck, fwd; + heap_info *prev_heap; +- long new_size, top_size, extra, prev_size, misalign; ++ long new_size, top_size, top_area, extra, prev_size, misalign; + + /* Can this heap go away completely? */ + while (top_chunk == chunk_at_offset (heap, sizeof (*heap))) +@@ -694,9 +694,16 @@ heap_trim (heap_info *heap, size_t pad) + set_head (top_chunk, new_size | PREV_INUSE); + /*check_chunk(ar_ptr, top_chunk);*/ + } ++ ++ /* Uses similar logic for per-thread arenas as the main arena with systrim ++ by preserving the top pad and at least a page. */ + top_size = chunksize (top_chunk); +- extra = (top_size - pad - MINSIZE - 1) & ~(pagesz - 1); +- if (extra < (long) pagesz) ++ top_area = top_size - MINSIZE - 1; ++ if (top_area <= pad) ++ return 0; ++ ++ extra = ALIGN_DOWN(top_area - pad, pagesz); ++ if ((unsigned long) extra < mp_.trim_threshold) + return 0; + + /* Try to shrink. */ From ff0db587931901ca2737fa5326751d9b92eec5c150882c482c24e7d5f327f799 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 5 Jul 2015 15:50:38 +0000 Subject: [PATCH 183/204] Accepting request 313180 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/313180 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=192 --- getaddrinfo-ipv6-sanity.diff | 47 ------------------------------------ glibc-2.3.locales.diff.bz2 | 4 +-- glibc-testsuite.changes | 7 ++++++ glibc-testsuite.spec | 3 --- glibc-utils.changes | 7 ++++++ glibc-utils.spec | 3 --- glibc.changes | 7 ++++++ glibc.spec | 3 --- 8 files changed, 23 insertions(+), 58 deletions(-) delete mode 100644 getaddrinfo-ipv6-sanity.diff diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff deleted file mode 100644 index 7c0949e..0000000 --- a/getaddrinfo-ipv6-sanity.diff +++ /dev/null @@ -1,47 +0,0 @@ -Index: glibc-2.18.90/sysdeps/posix/getaddrinfo.c -=================================================================== ---- glibc-2.18.90.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.18.90/sysdeps/posix/getaddrinfo.c -@@ -286,7 +286,7 @@ extern service_user *__nss_hosts_databas - static int - gaih_inet (const char *name, const struct gaih_service *service, - const struct addrinfo *req, struct addrinfo **pai, -- unsigned int *naddrs) -+ unsigned int *naddrs, bool usable_ipv6) - { - const struct gaih_typeproto *tp = gaih_inet_typeproto; - struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -855,7 +855,10 @@ gaih_inet (const char *name, const struc - if (req->ai_family == PF_UNSPEC) - fct4 = __nss_lookup_function (nip, "gethostbyname4_r"); - -- if (fct4 != NULL) -+ /* If we don't want ipv6, don't use gethostbyname4_r, -+ as it's using T_UNSPEC to libc_res_nsearch, which always -+ create T_A and T_AAAA queries. */ -+ if (usable_ipv6 && fct4 != NULL) - { - int herrno; - -@@ -958,7 +961,7 @@ gaih_inet (const char *name, const struc - if (fct != NULL) - { - if (req->ai_family == AF_INET6 -- || req->ai_family == AF_UNSPEC) -+ || (req->ai_family == AF_UNSPEC && usable_ipv6)) - { - gethosts (AF_INET6, struct in6_addr); - no_inet6_data = no_data; -@@ -2418,7 +2421,11 @@ getaddrinfo (const char *name, const cha - if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET - || hints->ai_family == AF_INET6) - { -- last_i = gaih_inet (name, pservice, hints, end, &naddrs); -+ if (!check_pf_called) -+ __check_pf (&seen_ipv4, &seen_ipv6, &in6ai, &in6ailen); -+ check_pf_called = true; -+ -+ last_i = gaih_inet (name, pservice, hints, end, &naddrs, seen_ipv6); - if (last_i != 0) - { - freeaddrinfo (p); diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 232b892..a3bdd8c 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2311caa4855d8269d8fae0c3aab97ce9f1a30abea4b40955471adf7b5413b93 -size 329303 +oid sha256:d6a14542a109c83551de0684d5ce7896e9574b8a6582ff1ed51a46b9897088a4 +size 328969 diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index efe1565..79672d1 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de + +- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start + before IPv6 is up (bsc#931399) +- glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE. + ------------------------------------------------------------------- Tue Jun 9 08:16:46 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 8ac1b89..45c908d 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -221,8 +221,6 @@ Patch103: glibc-2.4-china.diff Patch300: glibc-resolv-reload.diff # PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de Patch301: glibc-2.2-sunrpc.diff -# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 -Patch302: getaddrinfo-ipv6-sanity.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -465,7 +463,6 @@ rm nscd/s-stamp %patch300 -p1 %patch301 -p1 -%patch302 -p1 %patch304 -p1 %patch306 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index efe1565..79672d1 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de + +- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start + before IPv6 is up (bsc#931399) +- glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE. + ------------------------------------------------------------------- Tue Jun 9 08:16:46 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 214b23a..96ecac7 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -220,8 +220,6 @@ Patch103: glibc-2.4-china.diff Patch300: glibc-resolv-reload.diff # PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de Patch301: glibc-2.2-sunrpc.diff -# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 -Patch302: getaddrinfo-ipv6-sanity.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -465,7 +463,6 @@ rm nscd/s-stamp %patch300 -p1 %patch301 -p1 -%patch302 -p1 %patch304 -p1 %patch306 -p1 diff --git a/glibc.changes b/glibc.changes index efe1565..79672d1 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de + +- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start + before IPv6 is up (bsc#931399) +- glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE. + ------------------------------------------------------------------- Tue Jun 9 08:16:46 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index f9b65f6..b404f9a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -221,8 +221,6 @@ Patch103: glibc-2.4-china.diff Patch300: glibc-resolv-reload.diff # PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de Patch301: glibc-2.2-sunrpc.diff -# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 -Patch302: getaddrinfo-ipv6-sanity.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -465,7 +463,6 @@ rm nscd/s-stamp %patch300 -p1 %patch301 -p1 -%patch302 -p1 %patch304 -p1 %patch306 -p1 From f34435dcec4f4e22117c962f7c29de64f2f561ed2b0886aafa4d6acbb659e645 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 21 Aug 2015 05:37:51 +0000 Subject: [PATCH 184/204] Accepting request 321589 from Base:System - dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from all loaded objects on failed dlopen - openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 (forwarded request 321588 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/321589 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=193 --- aarch64-sigstksz.patch | 62 --- dont-remove-nodelete-flag.patch | 34 ++ fix-locking-in-_IO_cleanup.patch | 4 +- glibc-2.21.tar.xz | 3 - glibc-2.22.tar.xz | 3 + glibc-2.22.tar.xz.sig | 11 + glibc-nodate.patch | 21 +- glibc-testsuite.changes | 54 ++ glibc-testsuite.spec | 58 +-- glibc-utils.changes | 54 ++ glibc-utils.spec | 58 +-- glibc.changes | 54 ++ glibc.keyring | 149 ++++++ glibc.spec | 58 +-- heap-top-corruption.patch | 51 -- htm-tabort.patch | 18 - memcpy-chk-non-SSE2.patch | 21 - nss-separate-state-getXXent.patch | 715 --------------------------- o-tmpfile.patch | 29 -- openat64-readd-o-largefile.patch | 16 + powerpc-software-sqrt.patch | 117 ----- pthread-join-deadlock.patch | 152 ------ pthread-mutexattr-gettype-kind.patch | 111 ----- resolv-nameserver-handling.patch | 426 ---------------- static-tls-dtv-limit.patch | 641 ------------------------ threaded-trim-threshold.patch | 224 --------- 26 files changed, 452 insertions(+), 2692 deletions(-) delete mode 100644 aarch64-sigstksz.patch create mode 100644 dont-remove-nodelete-flag.patch delete mode 100644 glibc-2.21.tar.xz create mode 100644 glibc-2.22.tar.xz create mode 100644 glibc-2.22.tar.xz.sig create mode 100644 glibc.keyring delete mode 100644 heap-top-corruption.patch delete mode 100644 htm-tabort.patch delete mode 100644 memcpy-chk-non-SSE2.patch delete mode 100644 nss-separate-state-getXXent.patch delete mode 100644 o-tmpfile.patch create mode 100644 openat64-readd-o-largefile.patch delete mode 100644 powerpc-software-sqrt.patch delete mode 100644 pthread-join-deadlock.patch delete mode 100644 pthread-mutexattr-gettype-kind.patch delete mode 100644 resolv-nameserver-handling.patch delete mode 100644 static-tls-dtv-limit.patch delete mode 100644 threaded-trim-threshold.patch diff --git a/aarch64-sigstksz.patch b/aarch64-sigstksz.patch deleted file mode 100644 index a405f0c..0000000 --- a/aarch64-sigstksz.patch +++ /dev/null @@ -1,62 +0,0 @@ - [BZ #16850] - * sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h: New file. - -Index: glibc-2.21/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h -=================================================================== ---- /dev/null -+++ glibc-2.21/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h -@@ -0,0 +1,54 @@ -+/* sigstack, sigaltstack definitions. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#ifndef _SIGNAL_H -+# error "Never include this file directly. Use instead" -+#endif -+ -+ -+/* Structure describing a signal stack (obsolete). */ -+struct sigstack -+ { -+ void *ss_sp; /* Signal stack pointer. */ -+ int ss_onstack; /* Nonzero if executing on this stack. */ -+ }; -+ -+ -+/* Possible values for `ss_flags.'. */ -+enum -+{ -+ SS_ONSTACK = 1, -+#define SS_ONSTACK SS_ONSTACK -+ SS_DISABLE -+#define SS_DISABLE SS_DISABLE -+}; -+ -+/* Minimum stack size for a signal handler. */ -+#define MINSIGSTKSZ 5120 -+ -+/* System default stack size. */ -+#define SIGSTKSZ 16384 -+ -+ -+/* Alternate, preferred interface. */ -+typedef struct sigaltstack -+ { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+ } stack_t; diff --git a/dont-remove-nodelete-flag.patch b/dont-remove-nodelete-flag.patch new file mode 100644 index 0000000..4749ba5 --- /dev/null +++ b/dont-remove-nodelete-flag.patch @@ -0,0 +1,34 @@ +Index: glibc-2.22/elf/dl-close.c +=================================================================== +--- glibc-2.22.orig/elf/dl-close.c ++++ glibc-2.22/elf/dl-close.c +@@ -144,6 +144,14 @@ _dl_close_worker (struct link_map *map, + char done[nloaded]; + struct link_map *maps[nloaded]; + ++ /* Clear DF_1_NODELETE to force object deletion. We don't need to touch ++ l_tls_dtor_count because forced object deletion only happens when an ++ error occurs during object load. Destructor registration for TLS ++ non-POD objects should not have happened till then for this ++ object. */ ++ if (force) ++ map->l_flags_1 &= ~DF_1_NODELETE; ++ + /* Run over the list and assign indexes to the link maps and enter + them into the MAPS array. */ + int idx = 0; +@@ -152,14 +160,6 @@ _dl_close_worker (struct link_map *map, + l->l_idx = idx; + maps[idx] = l; + ++idx; +- +- /* Clear DF_1_NODELETE to force object deletion. We don't need to touch +- l_tls_dtor_count because forced object deletion only happens when an +- error occurs during object load. Destructor registration for TLS +- non-POD objects should not have happened till then for this +- object. */ +- if (force) +- l->l_flags_1 &= ~DF_1_NODELETE; + } + assert (idx == nloaded); + diff --git a/fix-locking-in-_IO_cleanup.patch b/fix-locking-in-_IO_cleanup.patch index e47c1c2..4608ecc 100644 --- a/fix-locking-in-_IO_cleanup.patch +++ b/fix-locking-in-_IO_cleanup.patch @@ -5,7 +5,7 @@ Always do locking when accessing streams (_IO_flush_all_all_lockp): Delete. (_IO_flush_all): Replace with body of _IO_flush_all_all_lockp. Always do locking. - (_IO_unbuffer_write): Always do locking. + (_IO_unbuffer_all): Always do locking. (_IO_cleanup): Call _IO_flush_all instead of _IO_flush_all_lockp. * libio/libioP.h (_IO_flush_all_all_lockp): Remove declaration. @@ -155,7 +155,7 @@ index e0ce8cc..9def1d4 100644 #ifdef _IO_MTSAFE_IO @@ -947,6 +902,12 @@ static void - _IO_unbuffer_write (void) + _IO_unbuffer_all (void) { struct _IO_FILE *fp; + diff --git a/glibc-2.21.tar.xz b/glibc-2.21.tar.xz deleted file mode 100644 index e6aa0d9..0000000 --- a/glibc-2.21.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 -size 12322092 diff --git a/glibc-2.22.tar.xz b/glibc-2.22.tar.xz new file mode 100644 index 0000000..cda9102 --- /dev/null +++ b/glibc-2.22.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 +size 12969072 diff --git a/glibc-2.22.tar.xz.sig b/glibc-2.22.tar.xz.sig new file mode 100644 index 0000000..7c558c4 --- /dev/null +++ b/glibc-2.22.tar.xz.sig @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQEcBAABAgAGBQJVwbd/AAoJECXvCkNsKkr/51cIAKdzgyrQSN6EKFIIhj/SrxPz +RyxACKUITXw5F5BldwIx3pYqpF3V7eslWdkPcZ7Ztcc/9irgvoW+qARAxivciOn1 +N33GA8hLG+Nj4kYCI9DjdJTB01UsR1iEd02ISRB23rqnUvVOgioPubJKb6GJM9Ob +NyAn/rIR+hVXAb5SDci2lkiA604MWg2VdjPxt+dDc8lBCcBfkGHh1Sz+nVxyXWGR +v45+US9jwefFCgBLJvfUmqlgUYxmB6RxMcxrlNx4mTtobdsQM+rBOy84T12s3HMK +k1IPVd6YD7k4lOYjSpzzc/sj7Ib33/hfbGvwDFpjr85RgoGUgsyqnSxEL1U8Azw= +=C5JY +-----END PGP SIGNATURE----- diff --git a/glibc-nodate.patch b/glibc-nodate.patch index 441713f..d54f631 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,7 +1,7 @@ -Index: glibc-2.20.90/nscd/nscd_stat.c +Index: glibc-2.21/nscd/nscd_stat.c =================================================================== ---- glibc-2.20.90.orig/nscd/nscd_stat.c -+++ glibc-2.20.90/nscd/nscd_stat.c +--- glibc-2.21.orig/nscd/nscd_stat.c ++++ glibc-2.21/nscd/nscd_stat.c @@ -36,8 +36,13 @@ #endif /* HAVE_SELINUX */ @@ -30,3 +30,18 @@ Index: glibc-2.20.90/nscd/nscd_stat.c data.debug_level = debug_level; data.runtime = time (NULL) - start_time; data.client_queued = client_queued; +@@ -196,7 +206,13 @@ receive_print_stats (void) + + /* Read as much data as we expect. */ + if (TEMP_FAILURE_RETRY (read (fd, &data, sizeof (data))) != sizeof (data) +- || (memcmp (data.version, compilation, sizeof (compilation)) != 0 ++ || ( ++#ifdef __TIMESTAMP__ ++ /* Skip day of the week. */ ++ memcmp (data.version, __TIMESTAMP__ + 4, sizeof (compilation)) != 0 ++#else ++ memcmp (data.version, compilation, sizeof (compilation)) != 0 ++#endif + /* Yes, this is an assignment! */ + && (errno = EINVAL))) + { diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 79672d1..c708e58 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,57 @@ +------------------------------------------------------------------- +Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de + +- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from + all loaded objects on failed dlopen +- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 + +------------------------------------------------------------------- +Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de + +- Update to glibc 2.22 release. + * Cache information can be queried via sysconf() function on s390 + * A buffer overflow in gethostbyname_r and related functions performing DNS + requests has been fixed. + * The time zone file parser has been made more robust against crafted time + zone files + * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors + for LD and GD on x86 and x86-64, has been implemented. + * Character encoding and ctype tables were updated to Unicode 7.0.0 + * Added vector math library named libmvec + * A new fmemopen implementation has been added with the goal of POSIX + compliance. + * The header is deprecated, and will be removed in a future + release. +- Patches from upstream removed + * htm-tabort.patch + * o-tmpfile.patch + * memcpy-chk-non-SSE2.patch + * pthread-mutexattr-gettype-kind.patch + * powerpc-software-sqrt.patch + * static-tls-dtv-limit.patch + * threaded-trim-threshold.patch + * resolv-nameserver-handling.patch + * nss-separate-state-getXXent.patch + * aarch64-sigstksz.patch + * heap-top-corruption.patch + * pthread-join-deadlock.patch + +------------------------------------------------------------------- +Mon Jul 27 09:08:21 UTC 2015 - schwab@suse.de + +- pthread-join-deadlock.patch: Use IE model for static variables in + libc.so, libpthread.so and rtld (bsc#930015, BZ #18457) + +------------------------------------------------------------------- +Wed Jul 22 09:13:48 UTC 2015 - schwab@suse.de + +- glibc-nodate.patch: fix verification of timestamp + +------------------------------------------------------------------- +Tue Jul 21 07:50:22 UTC 2015 - meissner@suse.com + +- also filter out -fstack-protector-strong + ------------------------------------------------------------------- Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 45c908d..a00e253 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -100,13 +100,15 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.21 +Version: 2.22 Release: 0 -%define git_id 4e42b5b8f89f +%define git_id bbab82c25da9 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +Source2: glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -214,7 +216,6 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# None ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -229,26 +230,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian -Patch1000: htm-tabort.patch -# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) -Patch1001: o-tmpfile.patch -# PATCH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) -Patch1002: memcpy-chk-non-SSE2.patch -# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) -Patch1003: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix powerpc software sqrt (BZ #17964, BZ #17967) -Patch1004: powerpc-software-sqrt.patch -# PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) -Patch1005: static-tls-dtv-limit.patch -# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) -Patch1006: threaded-trim-threshold.patch -# PATCH-FIX-UPSTREAM Simplify handling of nameserver configuration in resolver -Patch1007: resolv-nameserver-handling.patch -# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) -Patch1008: nss-separate-state-getXXent.patch -# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) -Patch1009: aarch64-sigstksz.patch ### # Patches awaiting upstream approval @@ -263,10 +244,10 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Don't require rtld lock to store static TLS offset in the DTV (BZ #18457) -Patch2007: pthread-join-deadlock.patch -# PATCH-FIX-UPSTREAM malloc: Do not corrupt the top of a threaded heap if top chunk is MINSIZE (BZ #18502) -Patch2008: heap-top-corruption.patch +# BZ #18778 +Patch2007: dont-remove-nodelete-flag.patch +# BZ #18781 +Patch2008: openat64-readd-o-largefile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -466,17 +447,6 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 - %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 @@ -541,7 +511,7 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##') +BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" add_ons=libidn @@ -1144,6 +1114,10 @@ exit 0 /%{_lib}/libdl.so.2* /%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* +%ifarch x86_64 +/%{_lib}/libmvec-%{version}.so +/%{_lib}/libmvec.so.1 +%endif /%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 /%{_lib}/libnss_compat-%{version}.so @@ -1265,6 +1239,9 @@ exit 0 %{_libdir}/libowcrypt.a %{_libdir}/libdl.a %{_libdir}/libm.a +%ifarch x86_64 +%{_libdir}/libmvec.a +%endif %{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a @@ -1313,6 +1290,9 @@ exit 0 %{_libdir}/libBrokenLocale_p.a %{_libdir}/libanl_p.a %{_libdir}/libm_p.a +%ifarch x86_64 +%{_libdir}/libmvec_p.a +%endif %{_libdir}/libcrypt_p.a %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a diff --git a/glibc-utils.changes b/glibc-utils.changes index 79672d1..c708e58 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,57 @@ +------------------------------------------------------------------- +Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de + +- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from + all loaded objects on failed dlopen +- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 + +------------------------------------------------------------------- +Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de + +- Update to glibc 2.22 release. + * Cache information can be queried via sysconf() function on s390 + * A buffer overflow in gethostbyname_r and related functions performing DNS + requests has been fixed. + * The time zone file parser has been made more robust against crafted time + zone files + * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors + for LD and GD on x86 and x86-64, has been implemented. + * Character encoding and ctype tables were updated to Unicode 7.0.0 + * Added vector math library named libmvec + * A new fmemopen implementation has been added with the goal of POSIX + compliance. + * The header is deprecated, and will be removed in a future + release. +- Patches from upstream removed + * htm-tabort.patch + * o-tmpfile.patch + * memcpy-chk-non-SSE2.patch + * pthread-mutexattr-gettype-kind.patch + * powerpc-software-sqrt.patch + * static-tls-dtv-limit.patch + * threaded-trim-threshold.patch + * resolv-nameserver-handling.patch + * nss-separate-state-getXXent.patch + * aarch64-sigstksz.patch + * heap-top-corruption.patch + * pthread-join-deadlock.patch + +------------------------------------------------------------------- +Mon Jul 27 09:08:21 UTC 2015 - schwab@suse.de + +- pthread-join-deadlock.patch: Use IE model for static variables in + libc.so, libpthread.so and rtld (bsc#930015, BZ #18457) + +------------------------------------------------------------------- +Wed Jul 22 09:13:48 UTC 2015 - schwab@suse.de + +- glibc-nodate.patch: fix verification of timestamp + +------------------------------------------------------------------- +Tue Jul 21 07:50:22 UTC 2015 - meissner@suse.com + +- also filter out -fstack-protector-strong + ------------------------------------------------------------------- Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 96ecac7..6882c9e 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -99,13 +99,15 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.21 +Version: 2.22 Release: 0 -%define git_id 4e42b5b8f89f +%define git_id bbab82c25da9 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +Source2: glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -213,7 +215,6 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# None ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -228,26 +229,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian -Patch1000: htm-tabort.patch -# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) -Patch1001: o-tmpfile.patch -# PATCH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) -Patch1002: memcpy-chk-non-SSE2.patch -# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) -Patch1003: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix powerpc software sqrt (BZ #17964, BZ #17967) -Patch1004: powerpc-software-sqrt.patch -# PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) -Patch1005: static-tls-dtv-limit.patch -# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) -Patch1006: threaded-trim-threshold.patch -# PATCH-FIX-UPSTREAM Simplify handling of nameserver configuration in resolver -Patch1007: resolv-nameserver-handling.patch -# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) -Patch1008: nss-separate-state-getXXent.patch -# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) -Patch1009: aarch64-sigstksz.patch ### # Patches awaiting upstream approval @@ -262,10 +243,10 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Don't require rtld lock to store static TLS offset in the DTV (BZ #18457) -Patch2007: pthread-join-deadlock.patch -# PATCH-FIX-UPSTREAM malloc: Do not corrupt the top of a threaded heap if top chunk is MINSIZE (BZ #18502) -Patch2008: heap-top-corruption.patch +# BZ #18778 +Patch2007: dont-remove-nodelete-flag.patch +# BZ #18781 +Patch2008: openat64-readd-o-largefile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -466,17 +447,6 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 - %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 @@ -541,7 +511,7 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##') +BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" add_ons=libidn @@ -1144,6 +1114,10 @@ exit 0 /%{_lib}/libdl.so.2* /%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* +%ifarch x86_64 +/%{_lib}/libmvec-%{version}.so +/%{_lib}/libmvec.so.1 +%endif /%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 /%{_lib}/libnss_compat-%{version}.so @@ -1265,6 +1239,9 @@ exit 0 %{_libdir}/libowcrypt.a %{_libdir}/libdl.a %{_libdir}/libm.a +%ifarch x86_64 +%{_libdir}/libmvec.a +%endif %{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a @@ -1313,6 +1290,9 @@ exit 0 %{_libdir}/libBrokenLocale_p.a %{_libdir}/libanl_p.a %{_libdir}/libm_p.a +%ifarch x86_64 +%{_libdir}/libmvec_p.a +%endif %{_libdir}/libcrypt_p.a %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a diff --git a/glibc.changes b/glibc.changes index 79672d1..c708e58 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,57 @@ +------------------------------------------------------------------- +Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de + +- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from + all loaded objects on failed dlopen +- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 + +------------------------------------------------------------------- +Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de + +- Update to glibc 2.22 release. + * Cache information can be queried via sysconf() function on s390 + * A buffer overflow in gethostbyname_r and related functions performing DNS + requests has been fixed. + * The time zone file parser has been made more robust against crafted time + zone files + * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors + for LD and GD on x86 and x86-64, has been implemented. + * Character encoding and ctype tables were updated to Unicode 7.0.0 + * Added vector math library named libmvec + * A new fmemopen implementation has been added with the goal of POSIX + compliance. + * The header is deprecated, and will be removed in a future + release. +- Patches from upstream removed + * htm-tabort.patch + * o-tmpfile.patch + * memcpy-chk-non-SSE2.patch + * pthread-mutexattr-gettype-kind.patch + * powerpc-software-sqrt.patch + * static-tls-dtv-limit.patch + * threaded-trim-threshold.patch + * resolv-nameserver-handling.patch + * nss-separate-state-getXXent.patch + * aarch64-sigstksz.patch + * heap-top-corruption.patch + * pthread-join-deadlock.patch + +------------------------------------------------------------------- +Mon Jul 27 09:08:21 UTC 2015 - schwab@suse.de + +- pthread-join-deadlock.patch: Use IE model for static variables in + libc.so, libpthread.so and rtld (bsc#930015, BZ #18457) + +------------------------------------------------------------------- +Wed Jul 22 09:13:48 UTC 2015 - schwab@suse.de + +- glibc-nodate.patch: fix verification of timestamp + +------------------------------------------------------------------- +Tue Jul 21 07:50:22 UTC 2015 - meissner@suse.com + +- also filter out -fstack-protector-strong + ------------------------------------------------------------------- Mon Jun 22 07:22:22 UTC 2015 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring new file mode 100644 index 0000000..4de855c --- /dev/null +++ b/glibc.keyring @@ -0,0 +1,149 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2 + +mQENBE4dpFUBCADZZ08fnFCfXs6Olh8rZ3Q++Y7/rTM+6ZPGvCNAKw7A6+H9r8bD +pjEA2VNHlD1Gxtdx8zVMSgAxhp+Z2LaI2NUX+o0gz4Gh+PpRSw+7gyXU5LUPGxVe +clAt+ygHklB556IqocnWgcf2lAO7e08xMjC7yVt0tDNKUxP0rgtaD8Wedx1g6sVU +k3cHrhsvgT5s2wkVELZb5InAcPSyyLAxwu31cEv35Nx84No5mjv/LBZnvyLuOMh8 +ScT7yDOsf7Gg5Yg0FKhSQR9Avnv2zHEw/o9WMIqDZudGfWSOqh19CoSKiRKQA/GU +Sbw5tvTMenyN33fXLHBa2AJAW0x2Yzo/b/k3ABEBAAG0KUNhcmxvcyBPJ0RvbmVs +bCA8Y2FybG9zQHN5c3RlbWhhbHRlZC5vcmc+iEYEEBECAAYFAlAIhvIACgkQ2vc1 +Cn671iW8lQCeNphp2i2r260t0FYWXVLLBn/d14wAnjR9PVSAbPFAfEu2HhltkMxE +d/uwiEYEEBECAAYFAlJsCEgACgkQObhOpZiwE+AzJgCg5HdEPdg6OThZXg5iXdmc +zdZWfzAAnifJfJfS0FGW8R8B1JkfGs4fNLjDiEYEEBEIAAYFAlAIyMgACgkQ49d+ +H5UWGZF2KACZATTej0sAFPZe1M6f0HDkyu0DHpUAnjWb3oldvq2islrRIEoqdNTM +AeNPiQE8BBMBAgAmBQJOHaRVAhsjBQkJZgGABgsJCAcDAgQVAggDBBYCAwECHgEC +F4AACgkQJe8KQ2wqSv92dAgAu5tq2tRrifRiYbD8MqJ8wye704q5sO0qNF/zlffs +QWsb6hVBQ/1fulT9Mxyz8heK7g+oVagmvZ3qwTKVYBd/t7O+ZGdnydeAe8UL41UL +nc3+TB7Ob8TAtk3ggaJGaOUPuVGeyf/Dq0wbGQ91ZnM4by5/E8wukkugMg+s7kMO +7UpCwChbMvXrwCQ8mDR7gbdKO0Ss8J17lt4WZrskOoMqrj+FW3F/bIBk7vB0DZr9 +DH8g/m8UPJkS23R3kYDhBj516xuFUOmylCQ6nZT6WmWVXfyzGyCHzKXB0vav6Za8 +XG6uZH57DVUinzpnXV1HFbUvSXBR2GQqhYf2YpG1rmgN3YkBPwQTAQIAKQIbIwUJ +CWYBgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheABQJPYgH3AhkBAAoJECXvCkNsKkr/ +kyMH/AsamfTxBe28CeqjjN9vpVc5ZYin6KdILC54RMSFz6fhWtmQEOwXXaH79hVd +BXQoRvdHUVaDq7Kny3EmsgRaXxawz0WBgoKCJy+70lBPY2SHUh9nq5dDyq1Bk0Dj +1ywzAhXluJghyig0lZGaZ1pxDg2zXFxvAOBzF5ibNNbIgiATnrx8gKF9oskKe7En +rARLts9aJ0Z/TQxg6FxLv/GKnULIBpkp2TDmi6i61vmXxsqQfnQGTPsIrjtgLeim +0SnVf/maA6FxZu17zaoK6l+I76eVsrx6UZnq6INUkaXb2Ld2B8FHMOYq8V0kk6EL +G2xTUzsLgYTqclWF+oOy81S97ke0LENhcmxvcyBPJ0RvbmVsbCAoV29yaykgPGNv +ZG9uZWxsQHJlZGhhdC5jb20+iEYEEBECAAYFAlJsCEgACgkQObhOpZiwE+A7wACg +m9kZcISiUvltFzeMY+0twn2uwSQAn2WSKJKpOC/ubIzXqth0rb6orLZviQE+BBMB +AgAoBQJQx1QMAhsjBQkJZgGABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAl +7wpDbCpK/1IpB/0WsI0kdQfXjfb8vFxwvGYAJ20x0Y8lr78agpj3HDsabBvVziOI +0kNFSLjxRQJfwHgo7oNii7WoaLYvWR0v5ML9jkc2DPkUEFO5PfvmDyKVSgPTtqLg +IpzJzLF6TzvtBU9rBWzg5+ZTPBXt9aIISYBlMdrMZjLsZ6dWaz5lpjc7SMKXVSc4 +9gkhSYLIkdfqErpA/bEbexFz+FwI4nYr9DHZO4DA+2kguwNH3Ee2b1yR/IUrG8q1 +93W7lai/2HOUvBgcCNDnUr87QVGb2WYuzUKm7D+Ub4VCyKESziUMWhbP4MkQEFhk +VK1LeaK6mZVtU0LEiu0rC0F3APoubE4M3r1TtDBDYXJsb3MgTydEb25lbGwgKFdv +cmspIDxjYXJsb3NAY29kZXNvdXJjZXJ5LmNvbT6IRgQQEQIABgUCUAiG9gAKCRDa +9zUKfrvWJbEnAJ9SypzTL4dbVdZh0yudBBGgmAURLwCZAaLfJlAs/Z8RWhZ/lnrm +BJLQ5f6IRgQQEQgABgUCUAjIyAAKCRDj134flRYZkWzQAJ0ekir4E9Tcdj+vMIzt +i9PDWJPv/ACfWmwfQ7KjIhBenkpYdwThS4zaAoiJATgEMAECACIFAlDHU/cbHSBF +bWFpbCBpcyBubyBsb25nZXIgdmFsaWQuAAoJECXvCkNsKkr/EpIH/0yDUnNtgHvQ +8FKGRznt3cro5Jkqou1bTaqsmt6IpfHPTM9kZJG7f16SK8D8wwumAYSA+orIoPVa +WxrtDHr+T2S/6MriVAFEy3Nn7H4aie3gYBnKxWuD3emTVEwthvhWzhz1AUNx0nBg +QKAd2mXr9JUqV1slio0B/hguTKcWwkIRKIMFppLNU6kXlCceZJCorNfyaRXDYJZV +5GqYE09HNvkT5zH3idU6vlvg1LzHQieWhAlfV1p8APKTHbnb5US5JBa4qhomhpdH +j5siEMJlSYVwmlg/86v6ezQBwD9n2UCplduAq4KNgloLEmZnYkD9B1nBo+aKzeux +C/eiDHTtMmiJATwEEwECACYFAk9iAdYCGyMFCQlmAYAGCwkIBwMCBBUCCAMEFgID +AQIeAQIXgAAKCRAl7wpDbCpK/1dbCACX2LfFtKQhRqWlqiR6Slr7doVin5H/uSQf +hqhKqpT2VHa+9lF09UqXqJaoRC5IslYOYABeWDjcOcyeyu9PLPmgOjnYemft1nMF +olW5wMcq9T9a52VGPIQijKwC2Em47N69LR+bhdR2LHmZ/BPChvgyS30Jmg93Z0YJ +GemzMhTElOT6bcPc29e9jgBqIFN9KIviPSuxpG/BmnE8MELta7jj1DVJCQ4c8pDP +YPgElubaFJ9+1v3S5DCeAz2Aea7JWM4qnverE2+lvUK7kSCzUanMNvOhqEWTmocV +8XP62LnDBqWcfpsayCygbQOYY4rSHZiGVNEzPrGxPKp/TBC76AjstDJDYXJsb3Mg +TydEb25lbGwgKFdvcmspIDxjYXJsb3Nfb2RvbmVsbEBtZW50b3IuY29tPohGBBAR +AgAGBQJQCIb2AAoJENr3NQp+u9Yl5DQAn2wAZkm+Xr3Exttbyq7P+4R2k164AKCN +xm4W785fn3EuDwFCIALrMWeaPYhGBBARCAAGBQJQCMjIAAoJEOPXfh+VFhmRrh4A +oJs5gnD/6A9GZM8WTF9R6kFE2fzTAKCT2ywbinrGAb2QxiAJt898L4r/wYkBNQQw +AQIAHwUCUMdTzxgdIEVtYWlsIG5vIGxvbmdlciB2YWxpZC4ACgkQJe8KQ2wqSv/J +1AgAwWQNB7eLXrMIC8XgFbdD8xD0RIc/WWtHT7uuGEEoRf2Siho4u7Bh8lGUYU7X +35Z8yqhJ9aEykhHN2/9Icr7TV/cNafUp8rylfmAH8momUMePhbT1W4DJNnj4mZA1 +bl3+Pwnt2OXQnYLdzT1wxsnBarSbeYQlrWwuOckhDl1/i4Ax3Vj3koF9EMy+gnHF +7s3CUQHgxwZJ6greQE3JQOJtSGRscy8+RGxHKRqRtTuLEoSC/d+aeOtHrh2PyYis +xg0vTZNelqZwnb68AaeVgqdqm6ZkyViv9g9MJ0JBiBcr+TGoSnTAgrlbnJMnu/cO +mTD3n7DbyMeJdh2+jQoyVSjkhokBPAQTAQIAJgUCT2IB5gIbIwUJCWYBgAYLCQgH +AwIEFQIIAwQWAgMBAh4BAheAAAoJECXvCkNsKkr/bS0IAKjjhER3uk6JZezIQyUw +ZBcCmnRNh3gUH+fFludLih+rPgyq/IZKzH1dRC5CTDdJf+wybPTbyhsX2IPQ5Q23 +kpNTJ5zg7YWOwo5LBbTgbgTEKQJjaNg/+CPoMzCYwMLv/YfKN3bI4R/LPXBouD6Q +xjiXmEo8gbE9ojwQz6f7BpSkrootmATTkuYWt458xScsgQ+/j2dMULPVKGQtBT+U +SVTk0lCUL/KX2HT46u/MFcBzO48Bk8Bd1d2ZvCWnavFPITBbO8alBKPupj+4dBJ3 +6Mv1PHS3FkShyDyO9t4ocdxma1PLGa/uD2chAze/rJFK9okQP8AIJu+uYSlmGiTy +0j+5AQ0ETh2kVQEIANLm3EyOyDrS6wjLnJXGOpGsxULrKipEWHa1sjaICS4zBQEw +AE/j0ITGPMGQvxtkcLCvoKw+Rxf8zjzp9336i1a3TzzJ5LpnYtrd865xTCQEvtHB +vtkJOpwa6c5NCFB8mU0RUOZoSIh1bM40MFBBCZyyFgDugywvNGW1I58ghSEw7Rqx +gBfjHuoMLkRKO9iBw/WWtjbQ1pcjdeLx4wAO4tWcAN09XPekno+JFCjbyZrZfIj3 +Vm3tYnTpVYIlNxtKZ6FWskI+RzXrnJGEE3W6BjKPtIJe0FMCuf8xgmLABGwyWZNw +PfvQN+ZZTPpCe1cseF7T+8PvCuUf3AzcEt47TksAEQEAAYkBJQQYAQIADwUCTh2k +VQIbDAUJCWYBgAAKCRAl7wpDbCpK/xqdB/9ycsjdMoyAb5wi/ghkS5jBwqpkyJFd +HZVOMKZOxg86bJZvRHc95lGns7085SZmV6pXVljyBOocRP6pHnZ7bqqsfvnL8nO4 +qf8PFvr19aZ/2x79U2cnroKrWzk3U9kA0e3GDSJ2GUCPCYlhCMTK6tzWSin74DwM +4iMGTiId4zACEY/KLeHftLYS9ynPbTUpl9gyz2pv+aV7/Q0lTfPR2C9QA+p6JGPt +mS+YQ7m9FgLulrJxCa0yz5qLMoN8qAw2PSbJgg8FYq/NGdDjXEwlz0Jh3K1GJzHJ +md2zxsDV1Lp/b4SV0Kq32tptk76R7KiNQfnhxyfWXWlEdlyxHeqcWNTPmI0DN9xI +IQAAAQQAvm10EoUZzoa6mRwds00ZmxgkAPBCdSA6hz3CpsryUOXZ/VtQZGuJ1RPK +hz5YdYhvUejHD2PzVDaKSuJA8OQ0dey+Osc/ozSpLlYSSh8hdpbRCUMvH+S0ZlVR +/hnBDyF0S6fdYo12TB6nVBQPztJoniVYmRQif6mMcrl9sSlQKfEABRG0Kk9wZW53 +YWxsIFByb2plY3QgPHNpZ25hdHVyZXNAb3BlbndhbGwuY29tPog/AwUQPNXwbCR6 +pL1oOPEdEQIkpgCdHu39h3ULn1bs2mesZcPU3Kk3p5gAoPe5AWce3nLxDNs6Nc8n +Mwctbj5siEYEEBECAAYFAjkH8YUACgkQLkCsy2RwqyaDeQCg0i8AjvkBhYMuwaNd +GlhfOZzNouQAn1inVXTi2SEP1ItvtW7psn9EPRmZiEYEEBECAAYFAjlXUxcACgkQ +Y61sikYTtcph6QCdHZVUBdWkhBEc2ZsYyr8EXT5KonwAoNJR+YtSQaD+GG8P6O28 +ZxWEmZ9xiEYEEBECAAYFAjmSprMACgkQx+D2lKJNi05GJgCeJ7CgNGzLQl2Wc1+M +rC6mQ7S1e8QAnAg3XqgmEdV7P0XQsxRbDnRDhgETiEYEEBECAAYFAjt3YSsACgkQ +IvjvEYYapvGKqgCaAoPSZj2DwAX7FEa3rPDF10IapK0AnjIvx2nWUF6bvC7s5aNf +kP/Wegz3iEYEEBECAAYFAjxl1s0ACgkQoUAr0L/++XvX7gCbB2nK4+NwpPQY32xp +4HFRHaQvmSAAoIGKNIO6kwaWy5rWK7zAD5WxAP29iEYEEBECAAYFAjyNhCgACgkQ +c8OikLNdNZjPXACfWRCGBxvR6lY3hFwJimcKzc1818MAoLFTcEtzMqxe4XWXpAy1 +ADF1YEkoiEYEEBECAAYFAjzXA3sACgkQ1XMg6PgdEDSYqgCgh3u2dJWRCu6a9SLW +NF/OogKO8JoAoMsl2sB9OsMId4G6a+vdKUD+rbfyiEYEEBECAAYFAjzXA/oACgkQ +VQcWL60UVMvsuACfapmzD4cTaWlpVZ56mN/a60bKLWEAn2pPdDG557CtGxrcMIHB +i2U4RK1QiEYEEBECAAYFAjzXD9sACgkQ+9nuM9mwoJmDiACfUvhcIT+B4d2Yu1Xf +3DzR3bSZSQoAnie3yiln9O/Ac7Od8F4qu1EalmNZiEYEEBECAAYFAjzliU4ACgkQ +rWMLTq1W5XS4IACgv+eIX8NPZj2dxet+xOlRw6mDowIAoJn9fYdf5dqKiOCPRK9e +mT1XxbV1iEYEEBECAAYFAjzliXUACgkQUWd9bj7NcwYJcACgxb1enwY/i37+Myez +wR6s6kQdhAYAn0L0JqFEd9N8HtGe6ouaoysr8AWoiEYEEBECAAYFAjzliYEACgkQ ++7U3Ee+Dx4yVNgCePJYPRk/h2esLxdifQk2A0AbPN6MAoIBLVILLlpx0ujEwZI0a +FhuFjWT8iEYEEBECAAYFAjzqyk8ACgkQXujoOI2It6Wo4wCeKV2U0FO6BzpkQcaf +shnmED64SE8AnA8EO7NZ62Sw5MkrG7oBQnPdhfEaiEYEEBECAAYFAj8D97UACgkQ +o8h0U7wewzD4+ACgr5PR8r16u3sog9V5OPgOjE2v0ZcAnjQV4GIshHW8nLp9djsC +88sve+57iEYEEBECAAYFAkB0TD4ACgkQymmioxpFC/fxVACfeLGn0OU93EMTgdq+ +gX8Knak4LPkAoNtt5hdPZJxgHS3ZbhtfWs8UZ+/NiEYEEBECAAYFAkYbP8gACgkQ +JGLEG1jrYMhxdgCdEfX126qAeSAHh5u/APDWdxIG8gIAnjRIjx+bCmIcqzNtMyyQ +mahX2jmuiEYEEBECAAYFAkwMuQcACgkQ0xng+SikItvIjgCgh4n74a+r45/Wztu2 +INVJqRMtl/oAnj96DOLtvRVh/Dil+g0JMRJSlR8AiEYEERECAAYFAkE/CN0ACgkQ +TmBsNrWar9gcOQCghwP/lo9WW3mIRi81FhdgZcYzNxEAoKLRHv2yQ3jVSBi3gjwr +TeeGJIaFiEYEEhECAAYFAj3qa6wACgkQO9j/K4B7F8Ey8QCg2gL1Lu370AzCBfsi +FHjzL5Qh2O4AoMOFDsGe0PorI1SCjLBEdxibxN71iEYEEhECAAYFAkFHb+kACgkQ +Ocor9D1qil+FLACgxfTMG7QuMmnQxBQBsR8RvXvQ4WAAoKDBgr9xzgDaidOAb/rR +1oDuczriiEYEExECAAYFAj/LmQ0ACgkQrMyA1J+R+FQ6CACg622sry90VlnL6RQK +ESuIOnSgddEAoLRRcpPbVlMtZWAQntpzCbXgiv1aiEYEExECAAYFAj/7Cr0ACgkQ +p7J0pROrBmP7HgCcDs+2DsrEqJvCFJ4q3e5NPQo5bI0AoK/Uv8fc8VJ8GbrDoVOn +ffMcrDkFiEYEExECAAYFAkh+BhUACgkQYIL0uzNBD6f5iACg4TzmEgzMmDuZPSX6 +9SAleFYTZIcAoLH6cSxd9Usl7IujuKf+fDaia65siQCVAwUQN9xIIXK5fbEpUCnx +AQGmzgP/f5Sh4EgbzQ7+kEXzYkRc1t8wDibAiMxA8nkraFyYVtZOu0bWy1HcP3rX +FTjo65NJleLzDXYOB9wF/im50SyEamBTPqD8NjMieJFuf+ITnckCcbdCOyG0i9j3 +pOJTNz5pl4JrLDLdJ/ECe41D91bFw55Nj8Yd5JwXYMN8khyQzLCJAJUDBRA4uzBE +nmsbYsBbwPUBAbb6A/909+fNqHom9RMMLI8Nn/0fv0ezqecqLHmRM2Tuktmj0cJ/ +F22hg90da3T21fTVBpzSA66JHzvQv1QVqDm1l+oED6A9nejjGH6T5pJv3FFvYDNy +iYJPeCmng9PG7GZEMyu84F6gtSwSn0srXJZbT9r73NAmmBXSprYGHj7ZGvp184kB +FQMFEDzliWop1JBBSGUNsQEBbTgH/jfGMZOjL8ex2gyghkKia32oV7orVH21p8PX +fkzbDq/TCulg4+pOao16Py0Q777psLxZARkR7SaG93G/iX7rjhPZpPVV+fMYejQa +yxfVDzZDt3kf3LHhAzKFnWbEi4efC8WH33rt8M6bmS9YTTYOL4LrL7dIu6OsspRG +LJKI5tn1Z5R6cwEdW9nWksT43UDAy3qGAxUKjMVLGlO3HbWIdWLyExMu8cTriHjw +c3m/+NsHyHoD9og4nVL/22TyO7Ywn4VN8DYgmEYNXm6YejULFUMt9Wmw/T4GXsb1 +yzMCOVD1kQ5KOjVKMPo3KGV14WQSp0lkz3xnYHRxp+Fl5RTKwwqJARUDBRA85dAm +NnwWpgovh+UBAdJaCACDTJcEtewJJkbnFtrI614l4krAAo82LPy3liCrnw2dAdH6 +Ia14xAXGnhvzqq6KbgfRg/yJdNRGW14NzuN3yb67JYYJhl3OFBxX2GSEK0gPaMsV +GamWvVehvlX1fuC5+FAXPLxCbWkivvUN3nyRJcgULzuPJYozi3m/esO4/JEYQSSg +1VgnSsvmcf+3VwdtDC9IfbiibVURvBtUinnd4wNif+ZZV+r/fTz9A2Foc7q4Rn8z +nyKL9i6OPJDmn/44z+Poz+6fa6LzkXdxF4+NQvxfIUMmhFIbZpLzyVey5hr+jDFa +QoEoZi32SqCVBwFHmSrUNVuw5WeHLtG6wjfrK9R8iQEVAwUQPOXmBKGqoWHCJjRF +AQH9xAgArM2dOSL+1oBX/DWb24VrNuaYuXDc4FGS5xhZ2z8+w/o8JPVgaKERGQGM +XHHBkoWqRJ/3pNiRQZPsDW7dSLdw+jeSDEwe62vz429NSkBhgyt5k5g2HsVbz4Jf +7yb/DZxNXlTnkCNSlolUDnpUozTUzDCIWJQ6m6Q1cJP/Fxki5AmLi9juMn3YPoo0 +kVAE0lu7MZ5uPq93CoCLJ5CgtDKGmPlLrA8+21DmpCqO8MjZPU6Ae14rixUrLG1V +5KN2sLsB3yWLV37qc+Fx0+U1iSVRY5MQDvgo2CPWGQsFgc8GbhvDzXasFKayDwBS +5YGy0WPvg8z+Jq17TMKt8qd7CArYdg== +=n8pX +-----END PGP PUBLIC KEY BLOCK----- diff --git a/glibc.spec b/glibc.spec index b404f9a..ff37d93 100644 --- a/glibc.spec +++ b/glibc.spec @@ -100,13 +100,15 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.21 +Version: 2.22 Release: 0 -%define git_id 4e42b5b8f89f +%define git_id bbab82c25da9 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +Source2: glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -214,7 +216,6 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# None ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -229,26 +230,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM powerpc: Fix TABORT encoding for little endian -Patch1000: htm-tabort.patch -# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) -Patch1001: o-tmpfile.patch -# PATCH-FIX-UPSTREAM Fix __memcpy_chk on non-SSE2 CPUs (BZ #17949) -Patch1002: memcpy-chk-non-SSE2.patch -# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) -Patch1003: pthread-mutexattr-gettype-kind.patch -# PATCH-FIX-UPSTREAM Fix powerpc software sqrt (BZ #17964, BZ #17967) -Patch1004: powerpc-software-sqrt.patch -# PATCH-FIX-UPSTREAM Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) -Patch1005: static-tls-dtv-limit.patch -# PATCH-FIX-UPSTREAM Fix regression in threaded application malloc performance (bsc#915955, BZ #17195) -Patch1006: threaded-trim-threshold.patch -# PATCH-FIX-UPSTREAM Simplify handling of nameserver configuration in resolver -Patch1007: resolv-nameserver-handling.patch -# PATCH-FIX-UPSTREAM Separate internal state between getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) -Patch1008: nss-separate-state-getXXent.patch -# PATCH-FIX-UPSTREAM aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850) -Patch1009: aarch64-sigstksz.patch ### # Patches awaiting upstream approval @@ -263,10 +244,10 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Don't require rtld lock to store static TLS offset in the DTV (BZ #18457) -Patch2007: pthread-join-deadlock.patch -# PATCH-FIX-UPSTREAM malloc: Do not corrupt the top of a threaded heap if top chunk is MINSIZE (BZ #18502) -Patch2008: heap-top-corruption.patch +# BZ #18778 +Patch2007: dont-remove-nodelete-flag.patch +# BZ #18781 +Patch2008: openat64-readd-o-largefile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -466,17 +447,6 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 - %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 @@ -541,7 +511,7 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" -BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##') +BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" add_ons=libidn @@ -1144,6 +1114,10 @@ exit 0 /%{_lib}/libdl.so.2* /%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* +%ifarch x86_64 +/%{_lib}/libmvec-%{version}.so +/%{_lib}/libmvec.so.1 +%endif /%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 /%{_lib}/libnss_compat-%{version}.so @@ -1265,6 +1239,9 @@ exit 0 %{_libdir}/libowcrypt.a %{_libdir}/libdl.a %{_libdir}/libm.a +%ifarch x86_64 +%{_libdir}/libmvec.a +%endif %{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a @@ -1313,6 +1290,9 @@ exit 0 %{_libdir}/libBrokenLocale_p.a %{_libdir}/libanl_p.a %{_libdir}/libm_p.a +%ifarch x86_64 +%{_libdir}/libmvec_p.a +%endif %{_libdir}/libcrypt_p.a %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a diff --git a/heap-top-corruption.patch b/heap-top-corruption.patch deleted file mode 100644 index 9b000a7..0000000 --- a/heap-top-corruption.patch +++ /dev/null @@ -1,51 +0,0 @@ -From: Mel Gorman -Subject: [PATCH] [v3] malloc: Do not corrupt the top of a threaded heap if - top chunk is MINSIZE [BZ #18502] -Date: Mon, 8 Jun 2015 13:36:13 +0100 - -mksquashfs was reported in openSUSE to be causing segmentation faults when -creating installation images. Testing showed that mksquashfs sometimes -failed and could be reproduced within 10 attempts. The core dump looked -like the heap top was corrupted and was pointing to an unmapped area. In -other cases, this has been due to an application corrupting glibc structures -but mksquashfs appears to be fine in this regard. - -The problem is that heap_trim is "growing" the top into unmapped space. -If the top chunk == MINSIZE then top_area is -1 and this check does not -behave as expected due to a signed/unsigned comparison - - if (top_area <= pad) - return 0; - -The next calculation extra = ALIGN_DOWN(top_area - pad, pagesz) calculates -extra as a negative number which also is unnoticed due to a signed/unsigned -comparison. We then call shrink_heap(heap, negative_number) which crashes -later. This patch adds a simple check against MINSIZE to make sure extra -does not become negative. It adds a cast to hint to the reader that this -is a signed vs unsigned issue. - -Without the patch, mksquash fails within 10 attempts. With it applied, it -completed 1000 times without error. The standard test suite "make check" -showed no changes in the summary of test results. - -2015-06-08 Mel Gorman - - [BZ #18502] - * malloc/arena.c: Avoid corruption of the top of heaps for threads ---- - malloc/arena.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: glibc-2.21/malloc/arena.c -=================================================================== ---- glibc-2.21.orig/malloc/arena.c -+++ glibc-2.21/malloc/arena.c -@@ -699,7 +699,7 @@ heap_trim (heap_info *heap, size_t pad) - by preserving the top pad and at least a page. */ - top_size = chunksize (top_chunk); - top_area = top_size - MINSIZE - 1; -- if (top_area <= pad) -+ if (top_area < 0 || (size_t) top_area <= pad) - return 0; - - extra = ALIGN_DOWN(top_area - pad, pagesz); diff --git a/htm-tabort.patch b/htm-tabort.patch deleted file mode 100644 index 209b334..0000000 --- a/htm-tabort.patch +++ /dev/null @@ -1,18 +0,0 @@ -2015-02-12 Adhemerval Zanella - - * sysdeps/unix/sysv/linux/powerpc/htm.h [TABORT]: Fix encoding for - little endian. - -Index: glibc-2.21/sysdeps/unix/sysv/linux/powerpc/htm.h -=================================================================== ---- glibc-2.21.orig/sysdeps/unix/sysv/linux/powerpc/htm.h -+++ glibc-2.21/sysdeps/unix/sysv/linux/powerpc/htm.h -@@ -60,7 +60,7 @@ - #define TBEGIN ".long 0x7c00051d" - #define TEND ".long 0x7c00055d" - #if __BYTE_ORDER == __LITTLE_ENDIAN --# define TABORT ".byte 0x1d,0x07,%1,0x1d" -+# define TABORT ".byte 0x1d,0x07,%1,0x7c" - #else - # define TABORT ".byte 0x7c,%1,0x07,0x1d" - #endif diff --git a/memcpy-chk-non-SSE2.patch b/memcpy-chk-non-SSE2.patch deleted file mode 100644 index 810481e..0000000 --- a/memcpy-chk-non-SSE2.patch +++ /dev/null @@ -1,21 +0,0 @@ -2015-02-10 Evangelos Foutras - - [BZ #17949] - * sysdeps/i386/i686/multiarch/mempcpy_chk.S: Fix position of - jump label. - -Index: glibc-2.21/sysdeps/i386/i686/multiarch/mempcpy_chk.S -=================================================================== ---- glibc-2.21.orig/sysdeps/i386/i686/multiarch/mempcpy_chk.S -+++ glibc-2.21/sysdeps/i386/i686/multiarch/mempcpy_chk.S -@@ -36,8 +36,8 @@ ENTRY(__mempcpy_chk) - cmpl $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx) - jne 1f - call __init_cpu_features -- leal __mempcpy_chk_ia32@GOTOFF(%ebx), %eax --1: testl $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx) -+1: leal __mempcpy_chk_ia32@GOTOFF(%ebx), %eax -+ testl $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx) - jz 2f - leal __mempcpy_chk_sse2_unaligned@GOTOFF(%ebx), %eax - testl $bit_Fast_Unaligned_Load, FEATURE_OFFSET+index_Fast_Unaligned_Load+__cpu_features@GOTOFF(%ebx) diff --git a/nss-separate-state-getXXent.patch b/nss-separate-state-getXXent.patch deleted file mode 100644 index 10b4dea..0000000 --- a/nss-separate-state-getXXent.patch +++ /dev/null @@ -1,715 +0,0 @@ - [BZ #18007] - * nis/nss_compat/compat-grp.c (internal_endgrent): Add parameter - needent, call nss_endgrent only if non-zero. - (_nss_compat_endgrent): Pass non-zero. - (_nss_compat_getgrnam_r, _nss_compat_getgrgid_r): Pass zero. - * nis/nss_compat/compat-pwd.c (internal_endpwent): Add parameter - needent, call nss_endpwent only if non-zero. - (_nss_compat_endpwent): Pass non-zero. - (_nss_compat_getpwnam_r, _nss_compat_getpwuid_r): Pass zero. - * nis/nss_compat/compat-spwd.c (internal_setspent): Add parameter - needent, call nss_setspent only if non-zero. - (_nss_compat_setspent): Pass non-zero. - (internal_endspent): Add parameter needent, call nss_endspent only - if non-zero. - (_nss_compat_endspent, _nss_compat_getspent_r): Pass non-zero. - (_nss_compat_getspnam_r): Pass zero. - * nss/nss_files/files-XXX.c (position, last_use, keep_stream): - Remove. All uses removed. - (internal_setent): Remove parameter stayopen, add parameter - stream. Use it instead of global variable. - (CONCAT(_nss_files_set,ENTNAME)): Pass global stream. - (internal_endent, internal_getent): Add parameter stream. Use it - instead of global variable. - (CONCAT(_nss_files_end,ENTNAME)) - (CONCAT(_nss_files_get,ENTNAME_r)): Pass global stream. - (_nss_files_get##name##_r): Pass local stream. Remove locking. - * nss/nss_files/files-alias.c (position, last_use): Remove. All - uses removed. - (internal_setent, internal_endent): Add parameter stream. Use it - instead of global variable. - (_nss_files_setaliasent, _nss_files_endaliasent): Pass global - stream. - (get_next_alias): Add parameter stream. - (_nss_files_getaliasent_r): Pass global stream. - (_nss_files_getaliasbyname_r): Pass local stream. Remove locking. - * nss/nss_files/files-hosts.c (_nss_files_gethostbyname3_r) - (_nss_files_gethostbyname4_r): Pass local stream to - internal_setent, internal_getent and internal_endent. Remove - locking. - -Index: glibc-2.21/nis/nss_compat/compat-grp.c -=================================================================== ---- glibc-2.21.orig/nis/nss_compat/compat-grp.c -+++ glibc-2.21/nis/nss_compat/compat-grp.c -@@ -192,9 +192,9 @@ _nss_compat_setgrent (int stayopen) - - - static enum nss_status --internal_endgrent (ent_t *ent) -+internal_endgrent (ent_t *ent, int needent) - { -- if (nss_endgrent) -+ if (needent && nss_endgrent) - nss_endgrent (); - - if (ent->stream != NULL) -@@ -222,7 +222,7 @@ _nss_compat_endgrent (void) - - __libc_lock_lock (lock); - -- result = internal_endgrent (&ext_ent); -+ result = internal_endgrent (&ext_ent, 1); - - __libc_lock_unlock (lock); - -@@ -532,7 +532,7 @@ _nss_compat_getgrnam_r (const char *name - if (result == NSS_STATUS_SUCCESS) - result = internal_getgrnam_r (name, grp, &ent, buffer, buflen, errnop); - -- internal_endgrent (&ent); -+ internal_endgrent (&ent, 0); - - return result; - } -@@ -661,7 +661,7 @@ _nss_compat_getgrgid_r (gid_t gid, struc - if (result == NSS_STATUS_SUCCESS) - result = internal_getgrgid_r (gid, grp, &ent, buffer, buflen, errnop); - -- internal_endgrent (&ent); -+ internal_endgrent (&ent, 0); - - return result; - } -Index: glibc-2.21/nis/nss_compat/compat-pwd.c -=================================================================== ---- glibc-2.21.orig/nis/nss_compat/compat-pwd.c -+++ glibc-2.21/nis/nss_compat/compat-pwd.c -@@ -309,9 +309,9 @@ _nss_compat_setpwent (int stayopen) - - - static enum nss_status --internal_endpwent (ent_t *ent) -+internal_endpwent (ent_t *ent, int needent) - { -- if (nss_endpwent) -+ if (needent && nss_endpwent) - nss_endpwent (); - - if (ent->stream != NULL) -@@ -346,7 +346,7 @@ _nss_compat_endpwent (void) - - __libc_lock_lock (lock); - -- result = internal_endpwent (&ext_ent); -+ result = internal_endpwent (&ext_ent, 1); - - __libc_lock_unlock (lock); - -@@ -871,7 +871,7 @@ _nss_compat_getpwnam_r (const char *name - if (result == NSS_STATUS_SUCCESS) - result = internal_getpwnam_r (name, pwd, &ent, buffer, buflen, errnop); - -- internal_endpwent (&ent); -+ internal_endpwent (&ent, 0); - - return result; - } -@@ -1110,7 +1110,7 @@ _nss_compat_getpwuid_r (uid_t uid, struc - if (result == NSS_STATUS_SUCCESS) - result = internal_getpwuid_r (uid, pwd, &ent, buffer, buflen, errnop); - -- internal_endpwent (&ent); -+ internal_endpwent (&ent, 0); - - return result; - } -Index: glibc-2.21/nis/nss_compat/compat-spwd.c -=================================================================== ---- glibc-2.21.orig/nis/nss_compat/compat-spwd.c -+++ glibc-2.21/nis/nss_compat/compat-spwd.c -@@ -169,7 +169,7 @@ copy_spwd_changes (struct spwd *dest, st - } - - static enum nss_status --internal_setspent (ent_t *ent, int stayopen) -+internal_setspent (ent_t *ent, int stayopen, int needent) - { - enum nss_status status = NSS_STATUS_SUCCESS; - -@@ -239,7 +239,7 @@ internal_setspent (ent_t *ent, int stayo - - give_spwd_free (&ent->pwd); - -- if (status == NSS_STATUS_SUCCESS && nss_setspent) -+ if (needent && status == NSS_STATUS_SUCCESS && nss_setspent) - ent->setent_status = nss_setspent (stayopen); - - return status; -@@ -256,7 +256,7 @@ _nss_compat_setspent (int stayopen) - if (ni == NULL) - init_nss_interface (); - -- result = internal_setspent (&ext_ent, stayopen); -+ result = internal_setspent (&ext_ent, stayopen, 1); - - __libc_lock_unlock (lock); - -@@ -265,9 +265,9 @@ _nss_compat_setspent (int stayopen) - - - static enum nss_status --internal_endspent (ent_t *ent) -+internal_endspent (ent_t *ent, int needent) - { -- if (nss_endspent) -+ if (needent && nss_endspent) - nss_endspent (); - - if (ent->stream != NULL) -@@ -303,7 +303,7 @@ _nss_compat_endspent (void) - - __libc_lock_lock (lock); - -- result = internal_endspent (&ext_ent); -+ result = internal_endspent (&ext_ent, 1); - - __libc_lock_unlock (lock); - -@@ -658,7 +658,7 @@ _nss_compat_getspent_r (struct spwd *pwd - init_nss_interface (); - - if (ext_ent.stream == NULL) -- result = internal_setspent (&ext_ent, 1); -+ result = internal_setspent (&ext_ent, 1, 1); - - if (result == NSS_STATUS_SUCCESS) - result = internal_getspent_r (pwd, &ext_ent, buffer, buflen, errnop); -@@ -830,12 +830,12 @@ _nss_compat_getspnam_r (const char *name - - __libc_lock_unlock (lock); - -- result = internal_setspent (&ent, 0); -+ result = internal_setspent (&ent, 0, 0); - - if (result == NSS_STATUS_SUCCESS) - result = internal_getspnam_r (name, pwd, &ent, buffer, buflen, errnop); - -- internal_endspent (&ent); -+ internal_endspent (&ent, 0); - - return result; - } -Index: glibc-2.21/nss/nss_files/files-XXX.c -=================================================================== ---- glibc-2.21.orig/nss/nss_files/files-XXX.c -+++ glibc-2.21/nss/nss_files/files-XXX.c -@@ -63,21 +63,18 @@ __libc_lock_define_initialized (static, - /* Maintenance of the shared stream open on the database file. */ - - static FILE *stream; --static fpos_t position; --static enum { nouse, getent, getby } last_use; --static int keep_stream; - - /* Open database file if not already opened. */ - static enum nss_status --internal_setent (int stayopen) -+internal_setent (FILE **stream) - { - enum nss_status status = NSS_STATUS_SUCCESS; - -- if (stream == NULL) -+ if (*stream == NULL) - { -- stream = fopen (DATAFILE, "rce"); -+ *stream = fopen (DATAFILE, "rce"); - -- if (stream == NULL) -+ if (*stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; - else - { -@@ -90,7 +87,7 @@ internal_setent (int stayopen) - int result; - int flags; - -- result = flags = fcntl (fileno (stream), F_GETFD, 0); -+ result = flags = fcntl (fileno (*stream), F_GETFD, 0); - if (result >= 0) - { - # ifdef O_CLOEXEC -@@ -100,15 +97,15 @@ internal_setent (int stayopen) - # endif - { - flags |= FD_CLOEXEC; -- result = fcntl (fileno (stream), F_SETFD, flags); -+ result = fcntl (fileno (*stream), F_SETFD, flags); - } - } - if (result < 0) - { - /* Something went wrong. Close the stream and return a - failure. */ -- fclose (stream); -- stream = NULL; -+ fclose (*stream); -+ *stream = NULL; - status = NSS_STATUS_UNAVAIL; - } - } -@@ -116,11 +113,7 @@ internal_setent (int stayopen) - } - } - else -- rewind (stream); -- -- /* Remember STAYOPEN flag. */ -- if (stream != NULL) -- keep_stream |= stayopen; -+ rewind (*stream); - - return status; - } -@@ -134,16 +127,7 @@ CONCAT(_nss_files_set,ENTNAME) (int stay - - __libc_lock_lock (lock); - -- status = internal_setent (stayopen); -- -- if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) -- { -- fclose (stream); -- stream = NULL; -- status = NSS_STATUS_UNAVAIL; -- } -- -- last_use = getent; -+ status = internal_setent (&stream); - - __libc_lock_unlock (lock); - -@@ -153,12 +137,12 @@ CONCAT(_nss_files_set,ENTNAME) (int stay - - /* Close the database file. */ - static void --internal_endent (void) -+internal_endent (FILE **stream) - { -- if (stream != NULL) -+ if (*stream != NULL) - { -- fclose (stream); -- stream = NULL; -+ fclose (*stream); -+ *stream = NULL; - } - } - -@@ -169,10 +153,7 @@ CONCAT(_nss_files_end,ENTNAME) (void) - { - __libc_lock_lock (lock); - -- internal_endent (); -- -- /* Reset STAYOPEN flag. */ -- keep_stream = 0; -+ internal_endent (&stream); - - __libc_lock_unlock (lock); - -@@ -227,7 +208,7 @@ get_contents (char *linebuf, size_t len, - - /* Parsing the database file into `struct STRUCTURE' data structures. */ - static enum nss_status --internal_getent (struct STRUCTURE *result, -+internal_getent (FILE *stream, struct STRUCTURE *result, - char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO - EXTRA_ARGS_DECL) - { -@@ -300,45 +281,14 @@ CONCAT(_nss_files_get,ENTNAME_r) (struct - { - int save_errno = errno; - -- status = internal_setent (0); -+ status = internal_setent (&stream); - - __set_errno (save_errno); -- -- if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) -- { -- fclose (stream); -- stream = NULL; -- status = NSS_STATUS_UNAVAIL; -- } - } - - if (status == NSS_STATUS_SUCCESS) -- { -- /* If the last use was not by the getent function we need the -- position the stream. */ -- if (last_use != getent) -- { -- if (fsetpos (stream, &position) < 0) -- status = NSS_STATUS_UNAVAIL; -- else -- last_use = getent; -- } -- -- if (status == NSS_STATUS_SUCCESS) -- { -- status = internal_getent (result, buffer, buflen, errnop -- H_ERRNO_ARG EXTRA_ARGS_VALUE); -- -- /* Remember this position if we were successful. If the -- operation failed we give the user a chance to repeat the -- operation (perhaps the buffer was too small). */ -- if (status == NSS_STATUS_SUCCESS) -- fgetpos (stream, &position); -- else -- /* We must make sure we reposition the stream the next call. */ -- last_use = nouse; -- } -- } -+ status = internal_getent (stream, result, buffer, buflen, errnop -+ H_ERRNO_ARG EXTRA_ARGS_VALUE); - - __libc_lock_unlock (lock); - -@@ -364,27 +314,20 @@ _nss_files_get##name##_r (proto, - size_t buflen, int *errnop H_ERRNO_PROTO) \ - { \ - enum nss_status status; \ -+ FILE *stream = NULL; \ - \ -- __libc_lock_lock (lock); \ -- \ -- /* Reset file pointer to beginning or open file. */ \ -- status = internal_setent (keep_stream); \ -+ /* Open file. */ \ -+ status = internal_setent (&stream); \ - \ - if (status == NSS_STATUS_SUCCESS) \ - { \ -- /* Tell getent function that we have repositioned the file pointer. */ \ -- last_use = getby; \ -- \ -- while ((status = internal_getent (result, buffer, buflen, errnop \ -+ while ((status = internal_getent (stream, result, buffer, buflen, errnop \ - H_ERRNO_ARG EXTRA_ARGS_VALUE)) \ - == NSS_STATUS_SUCCESS) \ - { break_if_match } \ - \ -- if (! keep_stream) \ -- internal_endent (); \ -+ internal_endent (&stream); \ - } \ - \ -- __libc_lock_unlock (lock); \ -- \ - return status; \ - } -Index: glibc-2.21/nss/nss_files/files-alias.c -=================================================================== ---- glibc-2.21.orig/nss/nss_files/files-alias.c -+++ glibc-2.21/nss/nss_files/files-alias.c -@@ -36,20 +36,18 @@ __libc_lock_define_initialized (static, - /* Maintenance of the shared stream open on the database file. */ - - static FILE *stream; --static fpos_t position; --static enum { nouse, getent, getby } last_use; - - - static enum nss_status --internal_setent (void) -+internal_setent (FILE **stream) - { - enum nss_status status = NSS_STATUS_SUCCESS; - -- if (stream == NULL) -+ if (*stream == NULL) - { -- stream = fopen ("/etc/aliases", "rce"); -+ *stream = fopen ("/etc/aliases", "rce"); - -- if (stream == NULL) -+ if (*stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; - else - { -@@ -62,7 +60,7 @@ internal_setent (void) - int result; - int flags; - -- result = flags = fcntl (fileno (stream), F_GETFD, 0); -+ result = flags = fcntl (fileno (*stream), F_GETFD, 0); - if (result >= 0) - { - # ifdef O_CLOEXEC -@@ -72,14 +70,14 @@ internal_setent (void) - # endif - { - flags |= FD_CLOEXEC; -- result = fcntl (fileno (stream), F_SETFD, flags); -+ result = fcntl (fileno (*stream), F_SETFD, flags); - } - } - if (result < 0) - { - /* Something went wrong. Close the stream and return a - failure. */ -- fclose (stream); -+ fclose (*stream); - stream = NULL; - status = NSS_STATUS_UNAVAIL; - } -@@ -88,7 +86,7 @@ internal_setent (void) - } - } - else -- rewind (stream); -+ rewind (*stream); - - return status; - } -@@ -102,16 +100,7 @@ _nss_files_setaliasent (void) - - __libc_lock_lock (lock); - -- status = internal_setent (); -- -- if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) -- { -- fclose (stream); -- stream = NULL; -- status = NSS_STATUS_UNAVAIL; -- } -- -- last_use = getent; -+ status = internal_setent (&stream); - - __libc_lock_unlock (lock); - -@@ -121,12 +110,12 @@ _nss_files_setaliasent (void) - - /* Close the database file. */ - static void --internal_endent (void) -+internal_endent (FILE **stream) - { -- if (stream != NULL) -+ if (*stream != NULL) - { -- fclose (stream); -- stream = NULL; -+ fclose (*stream); -+ *stream = NULL; - } - } - -@@ -137,7 +126,7 @@ _nss_files_endaliasent (void) - { - __libc_lock_lock (lock); - -- internal_endent (); -+ internal_endent (&stream); - - __libc_lock_unlock (lock); - -@@ -146,7 +135,7 @@ _nss_files_endaliasent (void) - - /* Parsing the database file into `struct aliasent' data structures. */ - static enum nss_status --get_next_alias (const char *match, struct aliasent *result, -+get_next_alias (FILE *stream, const char *match, struct aliasent *result, - char *buffer, size_t buflen, int *errnop) - { - enum nss_status status = NSS_STATUS_NOTFOUND; -@@ -397,35 +386,16 @@ _nss_files_getaliasent_r (struct aliasen - - /* Be prepared that the set*ent function was not called before. */ - if (stream == NULL) -- status = internal_setent (); -+ status = internal_setent (&stream); - - if (status == NSS_STATUS_SUCCESS) - { -- /* If the last use was not by the getent function we need the -- position the stream. */ -- if (last_use != getent) -- { -- if (fsetpos (stream, &position) < 0) -- status = NSS_STATUS_UNAVAIL; -- else -- last_use = getent; -- } -- -- if (status == NSS_STATUS_SUCCESS) -- { -- result->alias_local = 1; -+ result->alias_local = 1; - -- /* Read lines until we get a definite result. */ -- do -- status = get_next_alias (NULL, result, buffer, buflen, errnop); -- while (status == NSS_STATUS_RETURN); -- -- /* If we successfully read an entry remember this position. */ -- if (status == NSS_STATUS_SUCCESS) -- fgetpos (stream, &position); -- else -- last_use = nouse; -- } -+ /* Read lines until we get a definite result. */ -+ do -+ status = get_next_alias (stream, NULL, result, buffer, buflen, errnop); -+ while (status == NSS_STATUS_RETURN); - } - - __libc_lock_unlock (lock); -@@ -440,6 +410,7 @@ _nss_files_getaliasbyname_r (const char - { - /* Return next entry in host file. */ - enum nss_status status = NSS_STATUS_SUCCESS; -+ FILE *stream = NULL; - - if (name == NULL) - { -@@ -447,11 +418,8 @@ _nss_files_getaliasbyname_r (const char - return NSS_STATUS_UNAVAIL; - } - -- __libc_lock_lock (lock); -- -- /* Open the stream or rest it. */ -- status = internal_setent (); -- last_use = getby; -+ /* Open the stream. */ -+ status = internal_setent (&stream); - - if (status == NSS_STATUS_SUCCESS) - { -@@ -459,13 +427,11 @@ _nss_files_getaliasbyname_r (const char - - /* Read lines until we get a definite result. */ - do -- status = get_next_alias (name, result, buffer, buflen, errnop); -+ status = get_next_alias (stream, name, result, buffer, buflen, errnop); - while (status == NSS_STATUS_RETURN); - } - -- internal_endent (); -- -- __libc_lock_unlock (lock); -+ internal_endent (&stream); - - return status; - } -Index: glibc-2.21/nss/nss_files/files-hosts.c -=================================================================== ---- glibc-2.21.orig/nss/nss_files/files-hosts.c -+++ glibc-2.21/nss/nss_files/files-hosts.c -@@ -115,14 +115,13 @@ _nss_files_gethostbyname3_r (const char - char *buffer, size_t buflen, int *errnop, - int *herrnop, int32_t *ttlp, char **canonp) - { -+ FILE *stream = NULL; - uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct hostent_data); - buffer += pad; - buflen = buflen > pad ? buflen - pad : 0; - -- __libc_lock_lock (lock); -- -- /* Reset file pointer to beginning or open file. */ -- enum nss_status status = internal_setent (keep_stream); -+ /* Open file. */ -+ enum nss_status status = internal_setent (&stream); - - if (status == NSS_STATUS_SUCCESS) - { -@@ -130,10 +129,7 @@ _nss_files_gethostbyname3_r (const char - addresses to IPv6 addresses really the right thing to do? */ - int flags = ((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0); - -- /* Tell getent function that we have repositioned the file pointer. */ -- last_use = getby; -- -- while ((status = internal_getent (result, buffer, buflen, errnop, -+ while ((status = internal_getent (stream, result, buffer, buflen, errnop, - herrnop, af, flags)) - == NSS_STATUS_SUCCESS) - { -@@ -160,7 +156,7 @@ _nss_files_gethostbyname3_r (const char - bufferend = (char *) &result->h_aliases[naliases + 1]; - - again: -- while ((status = internal_getent (&tmp_result_buf, tmp_buffer, -+ while ((status = internal_getent (stream, &tmp_result_buf, tmp_buffer, - tmp_buflen, errnop, herrnop, af, - flags)) - == NSS_STATUS_SUCCESS) -@@ -336,15 +332,12 @@ _nss_files_gethostbyname3_r (const char - free (tmp_buffer); - } - -- if (! keep_stream) -- internal_endent (); -+ internal_endent (&stream); - } - - if (canonp && status == NSS_STATUS_SUCCESS) - *canonp = result->h_name; - -- __libc_lock_unlock (lock); -- - return status; - } - -@@ -373,16 +366,13 @@ _nss_files_gethostbyname4_r (const char - char *buffer, size_t buflen, int *errnop, - int *herrnop, int32_t *ttlp) - { -- __libc_lock_lock (lock); -+ FILE *stream = NULL; - -- /* Reset file pointer to beginning or open file. */ -- enum nss_status status = internal_setent (keep_stream); -+ /* Open file. */ -+ enum nss_status status = internal_setent (&stream); - - if (status == NSS_STATUS_SUCCESS) - { -- /* Tell getent function that we have repositioned the file pointer. */ -- last_use = getby; -- - bool any = false; - bool got_canon = false; - while (1) -@@ -394,7 +384,7 @@ _nss_files_gethostbyname4_r (const char - buflen = buflen > pad ? buflen - pad : 0; - - struct hostent result; -- status = internal_getent (&result, buffer, buflen, errnop, -+ status = internal_getent (stream, &result, buffer, buflen, errnop, - herrnop, AF_UNSPEC, 0); - if (status != NSS_STATUS_SUCCESS) - break; -@@ -470,8 +460,7 @@ _nss_files_gethostbyname4_r (const char - status = NSS_STATUS_SUCCESS; - } - -- if (! keep_stream) -- internal_endent (); -+ internal_endent (&stream); - } - else if (status == NSS_STATUS_TRYAGAIN) - { -@@ -484,7 +473,5 @@ _nss_files_gethostbyname4_r (const char - *herrnop = NO_DATA; - } - -- __libc_lock_unlock (lock); -- - return status; - } diff --git a/o-tmpfile.patch b/o-tmpfile.patch deleted file mode 100644 index b8e357e..0000000 --- a/o-tmpfile.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 127ffc81a8565bebd134c0f43afba5ae7997bf97 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Sun, 1 Feb 2015 14:04:15 +0100 -Subject: [PATCH] Fix value of O_TMPFILE for architectures with non-default - O_DIRECTORY - - [BZ #17912] - * sysdeps/unix/sysv/linux/bits/fcntl-linux.h (__O_TMPFILE): Define - in terms of __O_DIRECTORY. ---- - sysdeps/unix/sysv/linux/bits/fcntl-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -index 3d28c84..d2baeb3 100644 ---- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -@@ -97,7 +97,7 @@ - # define __O_DSYNC 010000 - #endif - #ifndef __O_TMPFILE --# define __O_TMPFILE 020200000 -+# define __O_TMPFILE (020000000 | __O_DIRECTORY) - #endif - - #ifndef F_GETLK --- -2.2.2 - diff --git a/openat64-readd-o-largefile.patch b/openat64-readd-o-largefile.patch new file mode 100644 index 0000000..5a5447a --- /dev/null +++ b/openat64-readd-o-largefile.patch @@ -0,0 +1,16 @@ +Index: glibc-2.22/sysdeps/unix/sysv/linux/openat.c +=================================================================== +--- glibc-2.22.orig/sysdeps/unix/sysv/linux/openat.c ++++ glibc-2.22/sysdeps/unix/sysv/linux/openat.c +@@ -68,6 +68,11 @@ __OPENAT (int fd, const char *file, int + va_end (arg); + } + ++ /* We have to add the O_LARGEFILE flag for openat64. */ ++#ifdef MORE_OFLAGS ++ oflag |= MORE_OFLAGS; ++#endif ++ + return SYSCALL_CANCEL (openat, fd, file, oflag, mode); + } + libc_hidden_def (__OPENAT) diff --git a/powerpc-software-sqrt.patch b/powerpc-software-sqrt.patch deleted file mode 100644 index d86b73f..0000000 --- a/powerpc-software-sqrt.patch +++ /dev/null @@ -1,117 +0,0 @@ -2015-02-13 Joseph Myers - - [BZ #17967] - * sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Use - __builtin_fmaf instead of relying on contraction of a * b + c. - -2015-02-12 Joseph Myers - - [BZ #17964] - * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Use - __builtin_fma instead of relying on contraction of a * b + c. - -Index: glibc-2.21/sysdeps/powerpc/fpu/e_sqrt.c -=================================================================== ---- glibc-2.21.orig/sysdeps/powerpc/fpu/e_sqrt.c -+++ glibc-2.21/sysdeps/powerpc/fpu/e_sqrt.c -@@ -99,38 +99,41 @@ __slow_ieee754_sqrt (double x) - /* Here we have three Newton-Raphson iterations each of a - division and a square root and the remainder of the - argument reduction, all interleaved. */ -- sd = -(sg * sg - sx); -+ sd = -__builtin_fma (sg, sg, -sx); - fsgi = (xi0 + 0x40000000) >> 1 & 0x7ff00000; - sy2 = sy + sy; -- sg = sy * sd + sg; /* 16-bit approximation to sqrt(sx). */ -+ sg = __builtin_fma (sy, sd, sg); /* 16-bit approximation to -+ sqrt(sx). */ - - /* schedule the INSERT_WORDS (fsg, fsgi, 0) to get separation - between the store and the load. */ - INSERT_WORDS (fsg, fsgi, 0); - iw_u.parts.msw = fsgi; - iw_u.parts.lsw = (0); -- e = -(sy * sg - almost_half); -- sd = -(sg * sg - sx); -+ e = -__builtin_fma (sy, sg, -almost_half); -+ sd = -__builtin_fma (sg, sg, -sx); - if ((xi0 & 0x7ff00000) == 0) - goto denorm; -- sy = sy + e * sy2; -- sg = sg + sy * sd; /* 32-bit approximation to sqrt(sx). */ -+ sy = __builtin_fma (e, sy2, sy); -+ sg = __builtin_fma (sy, sd, sg); /* 32-bit approximation to -+ sqrt(sx). */ - sy2 = sy + sy; - /* complete the INSERT_WORDS (fsg, fsgi, 0) operation. */ - fsg = iw_u.value; -- e = -(sy * sg - almost_half); -- sd = -(sg * sg - sx); -- sy = sy + e * sy2; -+ e = -__builtin_fma (sy, sg, -almost_half); -+ sd = -__builtin_fma (sg, sg, -sx); -+ sy = __builtin_fma (e, sy2, sy); - shx = sx * fsg; -- sg = sg + sy * sd; /* 64-bit approximation to sqrt(sx), -- but perhaps rounded incorrectly. */ -+ sg = __builtin_fma (sy, sd, sg); /* 64-bit approximation to -+ sqrt(sx), but perhaps -+ rounded incorrectly. */ - sy2 = sy + sy; - g = sg * fsg; -- e = -(sy * sg - almost_half); -- d = -(g * sg - shx); -- sy = sy + e * sy2; -+ e = -__builtin_fma (sy, sg, -almost_half); -+ d = -__builtin_fma (g, sg, -shx); -+ sy = __builtin_fma (e, sy2, sy); - fesetenv_register (fe); -- return g + sy * d; -+ return __builtin_fma (sy, d, g); - denorm: - /* For denormalised numbers, we normalise, calculate the - square root, and return an adjusted result. */ -Index: glibc-2.21/sysdeps/powerpc/fpu/e_sqrtf.c -=================================================================== ---- glibc-2.21.orig/sysdeps/powerpc/fpu/e_sqrtf.c -+++ glibc-2.21/sysdeps/powerpc/fpu/e_sqrtf.c -@@ -87,26 +87,28 @@ __slow_ieee754_sqrtf (float x) - /* Here we have three Newton-Raphson iterations each of a - division and a square root and the remainder of the - argument reduction, all interleaved. */ -- sd = -(sg * sg - sx); -+ sd = -__builtin_fmaf (sg, sg, -sx); - fsgi = (xi + 0x40000000) >> 1 & 0x7f800000; - sy2 = sy + sy; -- sg = sy * sd + sg; /* 16-bit approximation to sqrt(sx). */ -- e = -(sy * sg - almost_half); -+ sg = __builtin_fmaf (sy, sd, sg); /* 16-bit approximation to -+ sqrt(sx). */ -+ e = -__builtin_fmaf (sy, sg, -almost_half); - SET_FLOAT_WORD (fsg, fsgi); -- sd = -(sg * sg - sx); -- sy = sy + e * sy2; -+ sd = -__builtin_fmaf (sg, sg, -sx); -+ sy = __builtin_fmaf (e, sy2, sy); - if ((xi & 0x7f800000) == 0) - goto denorm; - shx = sx * fsg; -- sg = sg + sy * sd; /* 32-bit approximation to sqrt(sx), -- but perhaps rounded incorrectly. */ -+ sg = __builtin_fmaf (sy, sd, sg); /* 32-bit approximation to -+ sqrt(sx), but perhaps -+ rounded incorrectly. */ - sy2 = sy + sy; - g = sg * fsg; -- e = -(sy * sg - almost_half); -- d = -(g * sg - shx); -- sy = sy + e * sy2; -+ e = -__builtin_fmaf (sy, sg, -almost_half); -+ d = -__builtin_fmaf (g, sg, -shx); -+ sy = __builtin_fmaf (e, sy2, sy); - fesetenv_register (fe); -- return g + sy * d; -+ return __builtin_fmaf (sy, d, g); - denorm: - /* For denormalised numbers, we normalise, calculate the - square root, and return an adjusted result. */ diff --git a/pthread-join-deadlock.patch b/pthread-join-deadlock.patch deleted file mode 100644 index 34c60d6..0000000 --- a/pthread-join-deadlock.patch +++ /dev/null @@ -1,152 +0,0 @@ - [PR dynamic-link/18457] - * elf/dl-tls.c (tls_get_addr_tail): Don't take the rtld lock - if we already have a final static TLS offset. - * nptl/tst-join7.c, nptl/tst-join7mod.c: New. - -Index: glibc-2.21/elf/dl-tls.c -=================================================================== ---- glibc-2.21.orig/elf/dl-tls.c -+++ glibc-2.21/elf/dl-tls.c -@@ -755,30 +755,44 @@ tls_get_addr_tail (GET_ADDR_ARGS, dtv_t - the_map = listp->slotinfo[idx].map; - } - -- /* Make sure that, if a dlopen running in parallel forces the -- variable into static storage, we'll wait until the address in the -- static TLS block is set up, and use that. If we're undecided -- yet, make sure we make the decision holding the lock as well. */ -- if (__glibc_unlikely (the_map->l_tls_offset -- != FORCED_DYNAMIC_TLS_OFFSET)) -+ /* If the TLS block for the map is already assigned to dynamic or to -+ static TLS, avoid the lock. Be careful to use the same value for -+ both tests; if we reloaded it, the second test might mistake -+ forced dynamic for an offset. Now, if the decision hasn't been -+ made, take the rtld lock, so that an ongoing dlopen gets a chance -+ to complete, and then retest; if the decision is still pending, -+ force the module to dynamic TLS. */ -+ ptrdiff_t offset = atomic_load_relaxed (&the_map->l_tls_offset); -+ if (__glibc_unlikely (offset != FORCED_DYNAMIC_TLS_OFFSET)) - { -+ if (__glibc_unlikely (offset != NO_TLS_OFFSET)) -+ goto static_tls; - __rtld_lock_lock_recursive (GL(dl_load_lock)); -- if (__glibc_likely (the_map->l_tls_offset == NO_TLS_OFFSET)) -+ offset = the_map->l_tls_offset; -+ if (__glibc_likely (offset == NO_TLS_OFFSET)) - { - the_map->l_tls_offset = FORCED_DYNAMIC_TLS_OFFSET; - __rtld_lock_unlock_recursive (GL(dl_load_lock)); - } -- else if (__glibc_likely (the_map->l_tls_offset -- != FORCED_DYNAMIC_TLS_OFFSET)) -+ else if (__glibc_likely (offset != FORCED_DYNAMIC_TLS_OFFSET)) - { -+ /* The decision is made, and it is final. We use the value -+ we've already loaded, but we could even load the offset -+ after releasing the lock, since it won't change. Should -+ the module be released while another thread references -+ one of its TLS variables, that's undefined behavior. */ -+ __rtld_lock_unlock_recursive (GL(dl_load_lock)); -+ -+ static_tls: -+ ; -+ - #if TLS_TCB_AT_TP -- void *p = (char *) THREAD_SELF - the_map->l_tls_offset; -+ void *p = (char *) THREAD_SELF - offset; - #elif TLS_DTV_AT_TP -- void *p = (char *) THREAD_SELF + the_map->l_tls_offset + TLS_PRE_TCB_SIZE; -+ void *p = (char *) THREAD_SELF + offset + TLS_PRE_TCB_SIZE; - #else - # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" - #endif -- __rtld_lock_unlock_recursive (GL(dl_load_lock)); - - dtv[GET_ADDR_MODULE].pointer.is_static = true; - dtv[GET_ADDR_MODULE].pointer.val = p; -Index: glibc-2.21/nptl/Makefile -=================================================================== ---- glibc-2.21.orig/nptl/Makefile -+++ glibc-2.21/nptl/Makefile -@@ -234,7 +234,7 @@ tests = tst-typesizes \ - tst-basic7 \ - tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \ - tst-raise1 \ -- tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 \ -+ tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 tst-join7 \ - tst-detach1 \ - tst-eintr1 tst-eintr2 tst-eintr3 tst-eintr4 tst-eintr5 \ - tst-tsd1 tst-tsd2 tst-tsd3 tst-tsd4 tst-tsd5 tst-tsd6 \ -@@ -312,7 +312,8 @@ endif - modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \ - tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \ - tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \ -- tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod -+ tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod \ -+ tst-join7mod - extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) tst-cleanup4aux.o - test-extras += $(modules-names) tst-cleanup4aux - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) -@@ -517,6 +518,11 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(obj - $(evaluate-test) - endif - -+$(objpfx)tst-join7: $(libdl) $(shared-thread-library) -+$(objpfx)tst-join7.out: $(objpfx)tst-join7mod.so -+$(objpfx)tst-join7mod.so: $(shared-thread-library) -+LDFLAGS-tst-join7mod.so = -Wl,-soname,tst-join7mod.so -+ - $(objpfx)tst-dlsym1: $(libdl) $(shared-thread-library) - - $(objpfx)tst-fini1: $(shared-thread-library) $(objpfx)tst-fini1mod.so -Index: glibc-2.21/nptl/tst-join7.c -=================================================================== ---- /dev/null -+++ glibc-2.21/nptl/tst-join7.c -@@ -0,0 +1,12 @@ -+#include -+ -+int -+do_test (void) -+{ -+ void *f = dlopen ("tst-join7mod.so", RTLD_NOW | RTLD_GLOBAL); -+ if (f) dlclose (f); else return 1; -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.21/nptl/tst-join7mod.c -=================================================================== ---- /dev/null -+++ glibc-2.21/nptl/tst-join7mod.c -@@ -0,0 +1,29 @@ -+#include -+#include -+ -+static pthread_t th; -+static int running = 1; -+ -+static void * -+test_run (void *p) -+{ -+ while (running) -+ fprintf (stderr, "XXX test_run\n"); -+ fprintf (stderr, "XXX test_run FINISHED\n"); -+ return NULL; -+} -+ -+static void __attribute__ ((constructor)) -+do_init (void) -+{ -+ pthread_create (&th, NULL, test_run, NULL); -+} -+ -+static void __attribute__ ((destructor)) -+do_end (void) -+{ -+ running = 0; -+ fprintf (stderr, "thread_join...\n"); -+ pthread_join (th, NULL); -+ fprintf (stderr, "thread_join DONE\n"); -+} diff --git a/pthread-mutexattr-gettype-kind.patch b/pthread-mutexattr-gettype-kind.patch deleted file mode 100644 index 0af5da6..0000000 --- a/pthread-mutexattr-gettype-kind.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 867dbf6ba31c0a0f5c0366f9ed71b0afc3727a23 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Mon, 11 Aug 2014 11:18:26 +0200 -Subject: [PATCH] Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in - pthread_mutexattr_gettype (BZ #15790) - - [BZ #15790] - * nptl/pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): - Filter out PTHREAD_MUTEX_NO_ELISION_NP from value returned in - kind. - * nptl/Makefile (tests): Add tst-pthread-mutexattr. - * nptl/tst-pthread-mutexattr.c: New file. ---- - nptl/Makefile | 2 +- - nptl/pthread_mutexattr_gettype.c | 3 +- - nptl/tst-pthread-mutexattr.c | 60 ++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 63 insertions(+), 2 deletions(-) - create mode 100644 nptl/tst-pthread-mutexattr.c - -Index: glibc-2.19/nptl/Makefile -=================================================================== ---- glibc-2.19.orig/nptl/Makefile -+++ glibc-2.19/nptl/Makefile -@@ -253,7 +253,7 @@ tests = tst-typesizes \ - tst-exit1 tst-exit2 tst-exit3 \ - tst-stdio1 tst-stdio2 \ - tst-stack1 tst-stack2 tst-stack3 tst-stack4 tst-pthread-getattr \ -- tst-pthread-attr-affinity \ -+ tst-pthread-attr-affinity tst-pthread-mutexattr \ - tst-unload \ - tst-dlsym1 \ - tst-sysconf \ -Index: glibc-2.19/nptl/pthread_mutexattr_gettype.c -=================================================================== ---- glibc-2.19.orig/nptl/pthread_mutexattr_gettype.c -+++ glibc-2.19/nptl/pthread_mutexattr_gettype.c -@@ -28,7 +28,8 @@ pthread_mutexattr_gettype (attr, kind) - - iattr = (const struct pthread_mutexattr *) attr; - -- *kind = iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS; -+ *kind = (iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS -+ & ~PTHREAD_MUTEX_NO_ELISION_NP); - - return 0; - } -Index: glibc-2.19/nptl/tst-pthread-mutexattr.c -=================================================================== ---- /dev/null -+++ glibc-2.19/nptl/tst-pthread-mutexattr.c -@@ -0,0 +1,60 @@ -+/* Make sure that pthread_mutexattr_gettype returns a valid kind. -+ -+ Copyright (C) 2014 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ pthread_mutexattr_t attr; -+ int kind; -+ int error; -+ -+ error = pthread_mutexattr_init (&attr); -+ if (error) -+ { -+ printf ("pthread_mutexattr_init: %s\n", strerror (error)); -+ return 1; -+ } -+ error = pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_DEFAULT); -+ if (error) -+ { -+ printf ("pthread_mutexattr_settype (1): %s\n", strerror (error)); -+ return 1; -+ } -+ error = pthread_mutexattr_gettype (&attr, &kind); -+ if (error) -+ { -+ printf ("pthread_mutexattr_gettype: %s\n", strerror (error)); -+ return 1; -+ } -+ error = pthread_mutexattr_settype (&attr, kind); -+ if (error) -+ { -+ printf ("pthread_mutexattr_settype (2): %s\n", strerror (error)); -+ return 1; -+ } -+ return 0; -+} -+ -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/resolv-nameserver-handling.patch b/resolv-nameserver-handling.patch deleted file mode 100644 index 9bc0e78..0000000 --- a/resolv-nameserver-handling.patch +++ /dev/null @@ -1,426 +0,0 @@ -From 6c07233f12e00b9cf66fb5d4a9b7ddb897590912 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Thu, 19 Feb 2015 15:52:08 +0100 -Subject: [PATCH] Simplify handling of nameserver configuration in resolver - - [BZ #13028] - [BZ #17053] - * resolv/res_init.c (__res_vinit): Remove use of ext.nsmap. - * resolv/res_send.c (__libc_res_nsend): Likewise. - (get_nsaddr): New function. - (res_ourserver_p, send_vc, reopen): Use it instead of accessing - statp directly. ---- - resolv/res_init.c | 47 +++++----------- - resolv/res_send.c | 164 +++++++++++++++++++++++------------------------------- - 2 files changed, 84 insertions(+), 127 deletions(-) - -diff --git a/resolv/res_init.c b/resolv/res_init.c -index 553ba12..66561ff 100644 ---- a/resolv/res_init.c -+++ b/resolv/res_init.c -@@ -153,10 +153,8 @@ __res_vinit(res_state statp, int preinit) { - char *cp, **pp; - int n; - char buf[BUFSIZ]; -- int nserv = 0; /* number of IPv4 nameservers read from file */ --#ifdef _LIBC -- int nservall = 0; /* number of (IPv4 + IPV6) nameservers read from file */ --#endif -+ int nserv = 0; /* number of nameservers read from file */ -+ int have_serv6 = 0; - int haveenv = 0; - int havesearch = 0; - #ifdef RESOLVSORT -@@ -184,15 +182,9 @@ __res_vinit(res_state statp, int preinit) { - statp->_flags = 0; - statp->qhook = NULL; - statp->rhook = NULL; -- statp->_u._ext.nsinit = 0; - statp->_u._ext.nscount = 0; --#ifdef _LIBC -- statp->_u._ext.nscount6 = 0; -- for (n = 0; n < MAXNS; n++) { -- statp->_u._ext.nsaddrs[n] = NULL; -- statp->_u._ext.nsmap[n] = MAXNS; -- } --#endif -+ for (n = 0; n < MAXNS; n++) -+ statp->_u._ext.nsaddrs[n] = NULL; - - /* Allow user to override the local domain definition */ - if ((cp = getenv("LOCALDOMAIN")) != NULL) { -@@ -296,11 +288,7 @@ __res_vinit(res_state statp, int preinit) { - continue; - } - /* read nameservers to query */ --#ifdef _LIBC -- if (MATCH(buf, "nameserver") && nservall < MAXNS) { --#else - if (MATCH(buf, "nameserver") && nserv < MAXNS) { --#endif - struct in_addr a; - - cp = buf + sizeof("nameserver") - 1; -@@ -308,13 +296,12 @@ __res_vinit(res_state statp, int preinit) { - cp++; - if ((*cp != '\0') && (*cp != '\n') - && __inet_aton(cp, &a)) { -- statp->nsaddr_list[nservall].sin_addr = a; -- statp->nsaddr_list[nservall].sin_family = AF_INET; -- statp->nsaddr_list[nservall].sin_port = -+ statp->nsaddr_list[nserv].sin_addr = a; -+ statp->nsaddr_list[nserv].sin_family = AF_INET; -+ statp->nsaddr_list[nserv].sin_port = - htons(NAMESERVER_PORT); - nserv++; - #ifdef _LIBC -- nservall++; - } else { - struct in6_addr a6; - char *el; -@@ -356,10 +343,11 @@ __res_vinit(res_state statp, int preinit) { - } - } - -- statp->_u._ext.nsaddrs[nservall] = sa6; -- statp->_u._ext.nssocks[nservall] = -1; -- statp->_u._ext.nsmap[nservall] = MAXNS + 1; -- nservall++; -+ statp->nsaddr_list[nserv].sin_family = 0; -+ statp->_u._ext.nsaddrs[nserv] = sa6; -+ statp->_u._ext.nssocks[nserv] = -1; -+ have_serv6 = 1; -+ nserv++; - } - } - #endif -@@ -414,10 +402,9 @@ __res_vinit(res_state statp, int preinit) { - continue; - } - } -- statp->nscount = nservall; -+ statp->nscount = nserv; - #ifdef _LIBC -- if (nservall - nserv > 0) { -- statp->_u._ext.nscount6 = nservall - nserv; -+ if (have_serv6) { - /* We try IPv6 servers again. */ - statp->ipv6_unavail = false; - } -@@ -606,11 +593,7 @@ __res_iclose(res_state statp, bool free_addr) { - statp->_vcsock = -1; - statp->_flags &= ~(RES_F_VC | RES_F_CONN); - } --#ifdef _LIBC -- for (ns = 0; ns < MAXNS; ns++) --#else - for (ns = 0; ns < statp->_u._ext.nscount; ns++) --#endif - if (statp->_u._ext.nsaddrs[ns]) { - if (statp->_u._ext.nssocks[ns] != -1) { - close_not_cancel_no_status(statp->_u._ext.nssocks[ns]); -@@ -621,8 +604,6 @@ __res_iclose(res_state statp, bool free_addr) { - statp->_u._ext.nsaddrs[ns] = NULL; - } - } -- if (free_addr) -- statp->_u._ext.nsinit = 0; - } - libc_hidden_def (__res_iclose) - -diff --git a/resolv/res_send.c b/resolv/res_send.c -index c35fb66..5e53cc2 100644 ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -184,6 +184,7 @@ evNowTime(struct timespec *res) { - - /* Forward. */ - -+static struct sockaddr *get_nsaddr (res_state, int); - static int send_vc(res_state, const u_char *, int, - const u_char *, int, - u_char **, int *, int *, int, u_char **, -@@ -221,20 +222,21 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp) - in_port_t port = in4p->sin_port; - in_addr_t addr = in4p->sin_addr.s_addr; - -- for (ns = 0; ns < MAXNS; ns++) { -+ for (ns = 0; ns < statp->nscount; ns++) { - const struct sockaddr_in *srv = -- (struct sockaddr_in *)EXT(statp).nsaddrs[ns]; -+ (struct sockaddr_in *) get_nsaddr (statp, ns); - -- if ((srv != NULL) && (srv->sin_family == AF_INET) && -+ if ((srv->sin_family == AF_INET) && - (srv->sin_port == port) && - (srv->sin_addr.s_addr == INADDR_ANY || - srv->sin_addr.s_addr == addr)) - return (1); - } - } else if (inp->sin6_family == AF_INET6) { -- for (ns = 0; ns < MAXNS; ns++) { -- const struct sockaddr_in6 *srv = EXT(statp).nsaddrs[ns]; -- if ((srv != NULL) && (srv->sin6_family == AF_INET6) && -+ for (ns = 0; ns < statp->nscount; ns++) { -+ const struct sockaddr_in6 *srv -+ = (struct sockaddr_in6 *) get_nsaddr (statp, ns); -+ if ((srv->sin6_family == AF_INET6) && - (srv->sin6_port == inp->sin6_port) && - !(memcmp(&srv->sin6_addr, &in6addr_any, - sizeof (struct in6_addr)) && -@@ -384,80 +386,48 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen, - * If the ns_addr_list in the resolver context has changed, then - * invalidate our cached copy and the associated timing data. - */ -- if (EXT(statp).nsinit) { -+ if (EXT(statp).nscount != 0) { - int needclose = 0; - - if (EXT(statp).nscount != statp->nscount) - needclose++; - else -- for (ns = 0; ns < MAXNS; ns++) { -- unsigned int map = EXT(statp).nsmap[ns]; -- if (map < MAXNS -+ for (ns = 0; ns < statp->nscount; ns++) { -+ if (statp->nsaddr_list[ns].sin_family != 0 - && !sock_eq((struct sockaddr_in6 *) -- &statp->nsaddr_list[map], -+ &statp->nsaddr_list[ns], - EXT(statp).nsaddrs[ns])) - { - needclose++; - break; - } - } -- if (needclose) -+ if (needclose) { - __res_iclose(statp, false); -+ EXT(statp).nscount = 0; -+ } - } - - /* - * Maybe initialize our private copy of the ns_addr_list. - */ -- if (EXT(statp).nsinit == 0) { -- unsigned char map[MAXNS]; -- -- memset (map, MAXNS, sizeof (map)); -- for (n = 0; n < MAXNS; n++) { -- ns = EXT(statp).nsmap[n]; -- if (ns < statp->nscount) -- map[ns] = n; -- else if (ns < MAXNS) { -- free(EXT(statp).nsaddrs[n]); -- EXT(statp).nsaddrs[n] = NULL; -- EXT(statp).nsmap[n] = MAXNS; -- } -- } -- n = statp->nscount; -- if (statp->nscount > EXT(statp).nscount) -- for (n = EXT(statp).nscount, ns = 0; -- n < statp->nscount; n++) { -- while (ns < MAXNS -- && EXT(statp).nsmap[ns] != MAXNS) -- ns++; -- if (ns == MAXNS) -- break; -- /* NS never exceeds MAXNS, but gcc 4.9 somehow -- does not see this. */ -- DIAG_PUSH_NEEDS_COMMENT; -- DIAG_IGNORE_NEEDS_COMMENT (4.9, -- "-Warray-bounds"); -- EXT(statp).nsmap[ns] = n; -- DIAG_POP_NEEDS_COMMENT; -- map[n] = ns++; -- } -- EXT(statp).nscount = n; -- for (ns = 0; ns < EXT(statp).nscount; ns++) { -- n = map[ns]; -- if (EXT(statp).nsaddrs[n] == NULL) -- EXT(statp).nsaddrs[n] = -+ if (EXT(statp).nscount == 0) { -+ for (ns = 0; ns < statp->nscount; ns++) { -+ EXT(statp).nssocks[ns] = -1; -+ if (statp->nsaddr_list[ns].sin_family == 0) -+ continue; -+ if (EXT(statp).nsaddrs[ns] == NULL) -+ EXT(statp).nsaddrs[ns] = - malloc(sizeof (struct sockaddr_in6)); -- if (EXT(statp).nsaddrs[n] != NULL) { -- memset (mempcpy(EXT(statp).nsaddrs[n], -+ if (EXT(statp).nsaddrs[ns] != NULL) -+ memset (mempcpy(EXT(statp).nsaddrs[ns], - &statp->nsaddr_list[ns], - sizeof (struct sockaddr_in)), - '\0', - sizeof (struct sockaddr_in6) - - sizeof (struct sockaddr_in)); -- EXT(statp).nssocks[n] = -1; -- n++; -- } - } -- EXT(statp).nsinit = 1; -+ EXT(statp).nscount = statp->nscount; - } - - /* -@@ -466,44 +436,37 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen, - */ - if (__builtin_expect ((statp->options & RES_ROTATE) != 0, 0) && - (statp->options & RES_BLAST) == 0) { -- struct sockaddr_in6 *ina; -- unsigned int map; -- -- n = 0; -- while (n < MAXNS && EXT(statp).nsmap[n] == MAXNS) -- n++; -- if (n < MAXNS) { -- ina = EXT(statp).nsaddrs[n]; -- map = EXT(statp).nsmap[n]; -- for (;;) { -- ns = n + 1; -- while (ns < MAXNS -- && EXT(statp).nsmap[ns] == MAXNS) -- ns++; -- if (ns == MAXNS) -- break; -- EXT(statp).nsaddrs[n] = EXT(statp).nsaddrs[ns]; -- EXT(statp).nsmap[n] = EXT(statp).nsmap[ns]; -- n = ns; -- } -- EXT(statp).nsaddrs[n] = ina; -- EXT(statp).nsmap[n] = map; -+ struct sockaddr_in ina; -+ struct sockaddr_in6 *inp; -+ int lastns = statp->nscount - 1; -+ int fd; -+ -+ inp = EXT(statp).nsaddrs[0]; -+ ina = statp->nsaddr_list[0]; -+ fd = EXT(statp).nssocks[0]; -+ for (ns = 0; ns < lastns; ns++) { -+ EXT(statp).nsaddrs[ns] = EXT(statp).nsaddrs[ns + 1]; -+ statp->nsaddr_list[ns] = statp->nsaddr_list[ns + 1]; -+ EXT(statp).nssocks[ns] = EXT(statp).nssocks[ns + 1]; - } -+ EXT(statp).nsaddrs[lastns] = inp; -+ statp->nsaddr_list[lastns] = ina; -+ EXT(statp).nssocks[lastns] = fd; - } - - /* - * Send request, RETRY times, or until successful. - */ - for (try = 0; try < statp->retry; try++) { -- for (ns = 0; ns < MAXNS; ns++) -+ for (ns = 0; ns < statp->nscount; ns++) - { - #ifdef DEBUG - char tmpbuf[40]; - #endif -- struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; -+#if defined USE_HOOKS || defined DEBUG -+ struct sockaddr *nsap = get_nsaddr (statp, ns); -+#endif - -- if (nsap == NULL) -- goto next_ns; - same_ns: - #ifdef USE_HOOKS - if (__glibc_unlikely (statp->qhook != NULL)) { -@@ -542,9 +505,9 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen, - - Dprint(statp->options & RES_DEBUG, - (stdout, ";; Querying server (# %d) address = %s\n", -- ns + 1, inet_ntop(nsap->sin6_family, -- (nsap->sin6_family == AF_INET6 -- ? &nsap->sin6_addr -+ ns + 1, inet_ntop(nsap->sa_family, -+ (nsap->sa_family == AF_INET6 -+ ? &((struct sockaddr_in6 *) nsap)->sin6_addr - : &((struct sockaddr_in *) nsap)->sin_addr), - tmpbuf, sizeof (tmpbuf)))); - -@@ -660,6 +623,21 @@ libresolv_hidden_def (res_nsend) - - /* Private */ - -+static struct sockaddr * -+get_nsaddr (res_state statp, int n) -+{ -+ -+ if (statp->nsaddr_list[n].sin_family == 0 && EXT(statp).nsaddrs[n] != NULL) -+ /* EXT(statp).nsaddrs[n] holds an address that is larger than -+ struct sockaddr, and user code did not update -+ statp->nsaddr_list[n]. */ -+ return (struct sockaddr *) EXT(statp).nsaddrs[n]; -+ else -+ /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n] -+ has the same content as EXT(statp).nsaddrs[n]. */ -+ return (struct sockaddr *) (void *) &statp->nsaddr_list[n]; -+} -+ - static int - send_vc(res_state statp, - const u_char *buf, int buflen, const u_char *buf2, int buflen2, -@@ -674,7 +652,7 @@ send_vc(res_state statp, - // XXX REMOVE - // int anssiz = *anssizp; - HEADER *anhp = (HEADER *) ans; -- struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; -+ struct sockaddr *nsap = get_nsaddr (statp, ns); - int truncating, connreset, n; - /* On some architectures compiler might emit a warning indicating - 'resplen' may be used uninitialized. However if buf2 == NULL -@@ -711,8 +689,8 @@ send_vc(res_state statp, - - if (getpeername(statp->_vcsock, - (struct sockaddr *)&peer, &size) < 0 || -- !sock_eq(&peer, nsap)) { -- __res_iclose(statp, false); -+ !sock_eq(&peer, (struct sockaddr_in6 *) nsap)) { -+ __res_iclose(statp, false); - statp->_flags &= ~RES_F_VC; - } - } -@@ -721,20 +699,19 @@ send_vc(res_state statp, - if (statp->_vcsock >= 0) - __res_iclose(statp, false); - -- statp->_vcsock = socket(nsap->sin6_family, SOCK_STREAM, 0); -+ statp->_vcsock = socket(nsap->sa_family, SOCK_STREAM, 0); - if (statp->_vcsock < 0) { - *terrno = errno; - Perror(statp, stderr, "socket(vc)", errno); - return (-1); - } - __set_errno (0); -- if (connect(statp->_vcsock, (struct sockaddr *)nsap, -- nsap->sin6_family == AF_INET -+ if (connect(statp->_vcsock, nsap, -+ nsap->sa_family == AF_INET - ? sizeof (struct sockaddr_in) - : sizeof (struct sockaddr_in6)) < 0) { - *terrno = errno; -- Aerror(statp, stderr, "connect/vc", errno, -- (struct sockaddr *) nsap); -+ Aerror(statp, stderr, "connect/vc", errno, nsap); - __res_iclose(statp, false); - return (0); - } -@@ -945,8 +922,7 @@ static int - reopen (res_state statp, int *terrno, int ns) - { - if (EXT(statp).nssocks[ns] == -1) { -- struct sockaddr *nsap -- = (struct sockaddr *) EXT(statp).nsaddrs[ns]; -+ struct sockaddr *nsap = get_nsaddr (statp, ns); - socklen_t slen; - - /* only try IPv6 if IPv6 NS and if not failed before */ --- -2.3.2 - diff --git a/static-tls-dtv-limit.patch b/static-tls-dtv-limit.patch deleted file mode 100644 index 209153f..0000000 --- a/static-tls-dtv-limit.patch +++ /dev/null @@ -1,641 +0,0 @@ -2015-03-17 Alexandre Oliva - - [BZ #17090] - [BZ #17620] - [BZ #17621] - [BZ #17628] - * NEWS: Update. - * elf/dl-tls.c (_dl_update_slotinfo): Clean up outdated DTV - entries with Static TLS too. Skip entries past the end of the - allocated DTV, from Alan Modra. - (tls_get_addr_tail): Update to glibc_likely/unlikely. Move - Static TLS DTV entry set up from... - (_dl_allocate_tls_init): ... here (fix modid assertion), ... - * elf/dl-reloc.c (_dl_nothread_init_static_tls): ... here... - * nptl/allocatestack.c (init_one_static_tls): ... and here... - * elf/dlopen.c (dl_open_worker): Drop l_tls_modid upper bound - for Static TLS. - * elf/tlsdeschtab.h (map_generation): Return size_t. Check - that the slot we find is associated with the given map before - using its generation count. - * nptl_db/db_info.c: Include ldsodefs.h. - (rtld_global, dtv_slotinfo_list, dtv_slotinfo): New typedefs. - * nptl_db/structs.def (DB_RTLD_VARIABLE): New macro. - (DB_MAIN_VARIABLE, DB_RTLD_GLOBAL_FIELD): Likewise. - (link_map::l_tls_offset): New struct field. - (dtv_t::counter): Likewise. - (rtld_global): New struct. - (_rtld_global): New rtld variable. - (dl_tls_dtv_slotinfo_list): New rtld global field. - (dtv_slotinfo_list): New struct. - (dtv_slotinfo): Likewise. - * nptl_db/td_symbol_list.c: Drop gnu/lib-names.h include. - (td_lookup): Rename to... - (td_mod_lookup): ... this. Use new mod parameter instead of - LIBPTHREAD_SO. - * nptl_db/td_thr_tlsbase.c: Include link.h. - (dtv_slotinfo_list, dtv_slotinfo): New functions. - (td_thr_tlsbase): Check DTV generation. Compute Static TLS - addresses even if the DTV is out of date or missing them. - * nptl_db/fetch-value.c (_td_locate_field): Do not refuse to - index zero-length arrays. - * nptl_db/thread_dbP.h: Include gnu/lib-names.h. - (td_lookup): Make it a macro implemented in terms of... - (td_mod_lookup): ... this declaration. - * nptl_db/db-symbols.awk (DB_RTLD_VARIABLE): Override. - (DB_MAIN_VARIABLE): Likewise. - -Index: glibc-2.21/elf/dl-open.c -=================================================================== ---- glibc-2.21.orig/elf/dl-open.c -+++ glibc-2.21/elf/dl-open.c -@@ -533,17 +533,7 @@ TLS generation counter wrapped! Please - && imap->l_tls_blocksize > 0) - { - /* For static TLS we have to allocate the memory here and -- now. This includes allocating memory in the DTV. But we -- cannot change any DTV other than our own. So, if we -- cannot guarantee that there is room in the DTV we don't -- even try it and fail the load. -- -- XXX We could track the minimum DTV slots allocated in -- all threads. */ -- if (! RTLD_SINGLE_THREAD_P && imap->l_tls_modid > DTV_SURPLUS) -- _dl_signal_error (0, "dlopen", NULL, N_("\ --cannot load any more object with static TLS")); -- -+ now, but we can delay updating the DTV. */ - imap->l_need_tls_init = 0; - #ifdef SHARED - /* Update the slot information data for at least the -Index: glibc-2.21/elf/dl-reloc.c -=================================================================== ---- glibc-2.21.orig/elf/dl-reloc.c -+++ glibc-2.21/elf/dl-reloc.c -@@ -136,12 +136,6 @@ _dl_nothread_init_static_tls (struct lin - # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" - #endif - -- /* Fill in the DTV slot so that a later LD/GD access will find it. */ -- dtv_t *dtv = THREAD_DTV (); -- assert (map->l_tls_modid <= dtv[-1].counter); -- dtv[map->l_tls_modid].pointer.val = dest; -- dtv[map->l_tls_modid].pointer.is_static = true; -- - /* Initialize the memory. */ - memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size), - '\0', map->l_tls_blocksize - map->l_tls_initimage_size); -Index: glibc-2.21/elf/dl-tls.c -=================================================================== ---- glibc-2.21.orig/elf/dl-tls.c -+++ glibc-2.21/elf/dl-tls.c -@@ -493,17 +493,14 @@ _dl_allocate_tls_init (void *result) - assert (listp->slotinfo[cnt].gen <= GL(dl_tls_generation)); - maxgen = MAX (maxgen, listp->slotinfo[cnt].gen); - -+ dtv[map->l_tls_modid].pointer.val = TLS_DTV_UNALLOCATED; -+ dtv[map->l_tls_modid].pointer.is_static = false; -+ - if (map->l_tls_offset == NO_TLS_OFFSET - || map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET) -- { -- /* For dynamically loaded modules we simply store -- the value indicating deferred allocation. */ -- dtv[map->l_tls_modid].pointer.val = TLS_DTV_UNALLOCATED; -- dtv[map->l_tls_modid].pointer.is_static = false; -- continue; -- } -+ continue; - -- assert (map->l_tls_modid == cnt); -+ assert (map->l_tls_modid == total + cnt); - assert (map->l_tls_blocksize >= map->l_tls_initimage_size); - #if TLS_TCB_AT_TP - assert ((size_t) map->l_tls_offset >= map->l_tls_blocksize); -@@ -515,8 +512,6 @@ _dl_allocate_tls_init (void *result) - #endif - - /* Copy the initialization image and clear the BSS part. */ -- dtv[map->l_tls_modid].pointer.val = dest; -- dtv[map->l_tls_modid].pointer.is_static = true; - memset (__mempcpy (dest, map->l_tls_initimage, - map->l_tls_initimage_size), '\0', - map->l_tls_blocksize - map->l_tls_initimage_size); -@@ -679,13 +674,16 @@ _dl_update_slotinfo (unsigned long int r - struct link_map *map = listp->slotinfo[cnt].map; - if (map == NULL) - { -- /* If this modid was used at some point the memory -- might still be allocated. */ -- if (! dtv[total + cnt].pointer.is_static -- && dtv[total + cnt].pointer.val != TLS_DTV_UNALLOCATED) -+ if (dtv[-1].counter >= total + cnt) - { -- free (dtv[total + cnt].pointer.val); -+ /* If this modid was used at some point the memory -+ might still be allocated. */ -+ if (! dtv[total + cnt].pointer.is_static -+ && (dtv[total + cnt].pointer.val -+ != TLS_DTV_UNALLOCATED)) -+ free (dtv[total + cnt].pointer.val); - dtv[total + cnt].pointer.val = TLS_DTV_UNALLOCATED; -+ dtv[total + cnt].pointer.is_static = false; - } - - continue; -@@ -718,10 +716,8 @@ _dl_update_slotinfo (unsigned long int r - memalign and not malloc. */ - free (dtv[modid].pointer.val); - -- /* This module is loaded dynamically- We defer memory -- allocation. */ -- dtv[modid].pointer.is_static = false; - dtv[modid].pointer.val = TLS_DTV_UNALLOCATED; -+ dtv[modid].pointer.is_static = false; - - if (modid == req_modid) - the_map = map; -@@ -759,13 +755,12 @@ tls_get_addr_tail (GET_ADDR_ARGS, dtv_t - the_map = listp->slotinfo[idx].map; - } - -- again: - /* Make sure that, if a dlopen running in parallel forces the - variable into static storage, we'll wait until the address in the - static TLS block is set up, and use that. If we're undecided - yet, make sure we make the decision holding the lock as well. */ -- if (__builtin_expect (the_map->l_tls_offset -- != FORCED_DYNAMIC_TLS_OFFSET, 0)) -+ if (__glibc_unlikely (the_map->l_tls_offset -+ != FORCED_DYNAMIC_TLS_OFFSET)) - { - __rtld_lock_lock_recursive (GL(dl_load_lock)); - if (__glibc_likely (the_map->l_tls_offset == NO_TLS_OFFSET)) -@@ -773,22 +768,28 @@ tls_get_addr_tail (GET_ADDR_ARGS, dtv_t - the_map->l_tls_offset = FORCED_DYNAMIC_TLS_OFFSET; - __rtld_lock_unlock_recursive (GL(dl_load_lock)); - } -- else -+ else if (__glibc_likely (the_map->l_tls_offset -+ != FORCED_DYNAMIC_TLS_OFFSET)) - { -+#if TLS_TCB_AT_TP -+ void *p = (char *) THREAD_SELF - the_map->l_tls_offset; -+#elif TLS_DTV_AT_TP -+ void *p = (char *) THREAD_SELF + the_map->l_tls_offset + TLS_PRE_TCB_SIZE; -+#else -+# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" -+#endif - __rtld_lock_unlock_recursive (GL(dl_load_lock)); -- if (__builtin_expect (the_map->l_tls_offset -- != FORCED_DYNAMIC_TLS_OFFSET, 1)) -- { -- void *p = dtv[GET_ADDR_MODULE].pointer.val; -- if (__glibc_unlikely (p == TLS_DTV_UNALLOCATED)) -- goto again; - -- return (char *) p + GET_ADDR_OFFSET; -- } -+ dtv[GET_ADDR_MODULE].pointer.is_static = true; -+ dtv[GET_ADDR_MODULE].pointer.val = p; -+ -+ return (char *) p + GET_ADDR_OFFSET; - } -+ else -+ __rtld_lock_unlock_recursive (GL(dl_load_lock)); - } - void *p = dtv[GET_ADDR_MODULE].pointer.val = allocate_and_init (the_map); -- dtv[GET_ADDR_MODULE].pointer.is_static = false; -+ assert (!dtv[GET_ADDR_MODULE].pointer.is_static); - - return (char *) p + GET_ADDR_OFFSET; - } -Index: glibc-2.21/elf/tlsdeschtab.h -=================================================================== ---- glibc-2.21.orig/elf/tlsdeschtab.h -+++ glibc-2.21/elf/tlsdeschtab.h -@@ -42,7 +42,7 @@ eq_tlsdesc (void *p, void *q) - return tdp->tlsinfo.ti_offset == tdq->tlsinfo.ti_offset; - } - --inline static int -+inline static size_t - map_generation (struct link_map *map) - { - size_t idx = map->l_tls_modid; -@@ -58,7 +58,7 @@ map_generation (struct link_map *map) - we can assume that, if the generation count is zero, we - still haven't determined the generation count for this - module. */ -- if (listp->slotinfo[idx].gen) -+ if (listp->slotinfo[idx].map == map && listp->slotinfo[idx].gen) - return listp->slotinfo[idx].gen; - else - break; -Index: glibc-2.21/nptl/allocatestack.c -=================================================================== ---- glibc-2.21.orig/nptl/allocatestack.c -+++ glibc-2.21/nptl/allocatestack.c -@@ -1190,7 +1190,6 @@ __nptl_setxid (struct xid_command *cmdp) - static inline void __attribute__((always_inline)) - init_one_static_tls (struct pthread *curp, struct link_map *map) - { -- dtv_t *dtv = GET_DTV (TLS_TPADJ (curp)); - # if TLS_TCB_AT_TP - void *dest = (char *) curp - map->l_tls_offset; - # elif TLS_DTV_AT_TP -@@ -1199,11 +1198,9 @@ init_one_static_tls (struct pthread *cur - # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" - # endif - -- /* Fill in the DTV slot so that a later LD/GD access will find it. */ -- dtv[map->l_tls_modid].pointer.val = dest; -- dtv[map->l_tls_modid].pointer.is_static = true; -- -- /* Initialize the memory. */ -+ /* We cannot delay the initialization of the Static TLS area, since -+ it can be accessed with LE or IE, but since the DTV is only used -+ by GD and LD, we can delay its update to avoid a race. */ - memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size), - '\0', map->l_tls_blocksize - map->l_tls_initimage_size); - } -Index: glibc-2.21/nptl_db/db-symbols.awk -=================================================================== ---- glibc-2.21.orig/nptl_db/db-symbols.awk -+++ glibc-2.21/nptl_db/db-symbols.awk -@@ -2,6 +2,8 @@ - # we've just built. It checks for all the symbols used in td_symbol_list. - - BEGIN { -+%define DB_RTLD_VARIABLE(name) /* Nothing. */ -+%define DB_MAIN_VARIABLE(name) /* Nothing. */ - %define DB_LOOKUP_NAME(idx, name) required[STRINGIFY (name)] = 1; - %define DB_LOOKUP_NAME_TH_UNIQUE(idx, name) th_unique[STRINGIFY (name)] = 1; - %include "db-symbols.h" -Index: glibc-2.21/nptl_db/db_info.c -=================================================================== ---- glibc-2.21.orig/nptl_db/db_info.c -+++ glibc-2.21/nptl_db/db_info.c -@@ -21,6 +21,7 @@ - #include - #include "thread_dbP.h" - #include -+#include - - typedef struct pthread pthread; - typedef struct pthread_key_struct pthread_key_struct; -@@ -37,6 +38,9 @@ typedef struct - } dtv; - - typedef struct link_map link_map; -+typedef struct rtld_global rtld_global; -+typedef struct dtv_slotinfo_list dtv_slotinfo_list; -+typedef struct dtv_slotinfo dtv_slotinfo; - - /* Actually static in nptl/init.c, but we only need it for typeof. */ - extern bool __nptl_initial_report_events; -Index: glibc-2.21/nptl_db/fetch-value.c -=================================================================== ---- glibc-2.21.orig/nptl_db/fetch-value.c -+++ glibc-2.21/nptl_db/fetch-value.c -@@ -69,7 +69,8 @@ _td_locate_field (td_thragent_t *ta, - } - } - -- if (idx != 0 && idx - (psaddr_t) 0 > DB_DESC_NELEM (desc)) -+ if (idx != 0 && DB_DESC_NELEM (desc) != 0 -+ && idx - (psaddr_t) 0 > DB_DESC_NELEM (desc)) - /* This is an internal indicator to callers with nonzero IDX - that the IDX value is too big. */ - return TD_NOAPLIC; -Index: glibc-2.21/nptl_db/structs.def -=================================================================== ---- glibc-2.21.orig/nptl_db/structs.def -+++ glibc-2.21/nptl_db/structs.def -@@ -22,6 +22,28 @@ - # define STRUCTS_DEF_DEFAULTS 1 - #endif - -+#ifndef DB_RTLD_VARIABLE -+# define DB_RTLD_VARIABLE(name) DB_VARIABLE (name) -+#endif -+ -+#ifndef DB_MAIN_VARIABLE -+# define DB_MAIN_VARIABLE(name) DB_VARIABLE (name) -+#endif -+ -+#ifndef DB_RTLD_GLOBAL_FIELD -+# if !IS_IN (libpthread) -+# define DB_RTLD_GLOBAL_FIELD(field) \ -+ DB_STRUCT_FIELD (rtld_global, _##field) \ -+ DB_MAIN_VARIABLE (_##field) -+# elif defined SHARED -+# define DB_RTLD_GLOBAL_FIELD(field) \ -+ DB_STRUCT_FIELD (rtld_global, _##field) -+# else -+# define DB_RTLD_GLOBAL_FIELD(field) \ -+ DB_MAIN_VARIABLE (_##field) -+# endif -+#endif /* DB_RTLD_GLOBAL_FIELD */ -+ - DB_STRUCT (pthread) - DB_STRUCT_FIELD (pthread, list) - DB_STRUCT_FIELD (pthread, report_events) -@@ -70,14 +92,31 @@ DB_STRUCT (pthread_key_data_level2) - DB_STRUCT_ARRAY_FIELD (pthread_key_data_level2, data) - - DB_STRUCT_FIELD (link_map, l_tls_modid) -+DB_STRUCT_FIELD (link_map, l_tls_offset) - - DB_STRUCT_ARRAY_FIELD (dtv, dtv) - #define pointer_val pointer.val /* Field of anonymous struct in dtv_t. */ - DB_STRUCT_FIELD (dtv_t, pointer_val) -+DB_STRUCT_FIELD (dtv_t, counter) - #if !IS_IN (libpthread) || TLS_TCB_AT_TP - DB_STRUCT_FIELD (pthread, dtvp) - #endif - -+#if !(IS_IN (libpthread) && !defined SHARED) -+DB_STRUCT (rtld_global) -+DB_RTLD_VARIABLE (_rtld_global) -+#endif -+DB_RTLD_GLOBAL_FIELD (dl_tls_dtv_slotinfo_list) -+ -+DB_STRUCT (dtv_slotinfo_list) -+DB_STRUCT_FIELD (dtv_slotinfo_list, len) -+DB_STRUCT_FIELD (dtv_slotinfo_list, next) -+DB_STRUCT_ARRAY_FIELD (dtv_slotinfo_list, slotinfo) -+ -+DB_STRUCT (dtv_slotinfo) -+DB_STRUCT_FIELD (dtv_slotinfo, gen) -+DB_STRUCT_FIELD (dtv_slotinfo, map) -+ - #ifdef STRUCTS_DEF_DEFAULTS - # undef DB_STRUCT_ARRAY_FIELD - # undef DB_ARRAY_VARIABLE -Index: glibc-2.21/nptl_db/td_symbol_list.c -=================================================================== ---- glibc-2.21.orig/nptl_db/td_symbol_list.c -+++ glibc-2.21/nptl_db/td_symbol_list.c -@@ -18,7 +18,6 @@ - . */ - - #include --#include - #include "thread_dbP.h" - - static const char *symbol_list_arr[] = -@@ -41,12 +40,12 @@ td_symbol_list (void) - - - ps_err_e --td_lookup (struct ps_prochandle *ps, int idx, psaddr_t *sym_addr) -+td_mod_lookup (struct ps_prochandle *ps, const char *mod, -+ int idx, psaddr_t *sym_addr) - { - ps_err_e result; - assert (idx >= 0 && idx < SYM_NUM_MESSAGES); -- result = ps_pglobal_lookup (ps, LIBPTHREAD_SO, symbol_list_arr[idx], -- sym_addr); -+ result = ps_pglobal_lookup (ps, mod, symbol_list_arr[idx], sym_addr); - - #ifdef HAVE_ASM_GLOBAL_DOT_NAME - /* For PowerPC, 64-bit uses dot symbols but 32-bit does not. -Index: glibc-2.21/nptl_db/td_thr_tlsbase.c -=================================================================== ---- glibc-2.21.orig/nptl_db/td_thr_tlsbase.c -+++ glibc-2.21/nptl_db/td_thr_tlsbase.c -@@ -17,14 +17,118 @@ - . */ - - #include "thread_dbP.h" -+#include - -+/* Get the DTV slotinfo list head entry from the dynamic loader state -+ into *LISTHEAD. */ -+static td_err_e -+dtv_slotinfo_list (td_thragent_t *ta, -+ psaddr_t *listhead) -+{ -+ td_err_e err; -+ psaddr_t head; -+ -+ if (ta->ta_addr__rtld_global == 0 -+ && td_mod_lookup (ta->ph, LD_SO, SYM__rtld_global, -+ &ta->ta_addr__rtld_global) != PS_OK) -+ ta->ta_addr__rtld_global = (void*)-1; -+ -+ if (ta->ta_addr__rtld_global != (void*)-1) -+ { -+ err = DB_GET_FIELD (head, ta, ta->ta_addr__rtld_global, -+ rtld_global, _dl_tls_dtv_slotinfo_list, 0); -+ if (err != TD_OK) -+ return err; -+ } -+ else -+ { -+ if (ta->ta_addr__dl_tls_dtv_slotinfo_list == 0 -+ && td_mod_lookup (ta->ph, NULL, SYM__dl_tls_dtv_slotinfo_list, -+ &ta->ta_addr__dl_tls_dtv_slotinfo_list) != PS_OK) -+ return TD_ERR; -+ -+ err = _td_fetch_value (ta, ta->ta_var__dl_tls_dtv_slotinfo_list, -+ SYM_DESC__dl_tls_dtv_slotinfo_list, -+ 0, ta->ta_addr__dl_tls_dtv_slotinfo_list, &head); -+ if (err != TD_OK) -+ return err; -+ } -+ -+ *listhead = head; -+ return TD_OK; -+} -+ -+/* Get the address of the DTV slotinfo entry for MODID into -+ *DTVSLOTINFO. */ -+static td_err_e -+dtv_slotinfo (td_thragent_t *ta, -+ unsigned long int modid, -+ psaddr_t *dtvslotinfo) -+{ -+ td_err_e err; -+ psaddr_t slot, temp; -+ size_t slbase = 0; -+ -+ err = dtv_slotinfo_list (ta, &slot); -+ if (err != TD_OK) -+ return err; -+ -+ while (slot) -+ { -+ /* Get the number of entries in this list entry's array. */ -+ err = DB_GET_FIELD (temp, ta, slot, dtv_slotinfo_list, len, 0); -+ if (err != TD_OK) -+ return err; -+ size_t len = (uintptr_t)temp; -+ -+ /* Did we find the list entry for modid? */ -+ if (modid < slbase + len) -+ break; -+ -+ /* We didn't, so get the next list entry. */ -+ slbase += len; -+ err = DB_GET_FIELD (temp, ta, slot, dtv_slotinfo_list, -+ next, 0); -+ if (err != TD_OK) -+ return err; -+ slot = temp; -+ } -+ -+ /* We reached the end of the list and found nothing. */ -+ if (!slot) -+ return TD_ERR; -+ -+ /* Take the slotinfo for modid from the list entry. */ -+ err = DB_GET_FIELD_ADDRESS (temp, ta, slot, dtv_slotinfo_list, -+ slotinfo, modid - slbase); -+ if (err != TD_OK) -+ return err; -+ slot = temp; -+ -+ *dtvslotinfo = slot; -+ return TD_OK; -+} -+ -+/* Return in *BASE the base address of the TLS block for MODID within -+ TH. -+ -+ It should return success and yield the correct pointer in any -+ circumstance where the TLS block for the module and thread -+ requested has already been initialized. -+ -+ It should fail with TD_TLSDEFER only when the thread could not -+ possibly have observed any values in that TLS block. That way, the -+ debugger can fall back to showing initial values from the PT_TLS -+ segment (and refusing attempts to mutate) for the TD_TLSDEFER case, -+ and never fail to make the values the program will actually see -+ available to the user of the debugger. */ - td_err_e - td_thr_tlsbase (const td_thrhandle_t *th, - unsigned long int modid, - psaddr_t *base) - { - td_err_e err; -- psaddr_t dtv, dtvslot, dtvptr; -+ psaddr_t dtv, dtvslot, dtvptr, temp; - - if (modid < 1) - return TD_NOTLS; -@@ -50,11 +154,75 @@ td_thr_tlsbase (const td_thrhandle_t *th - return TD_TLSDEFER; - } - -+ err = dtv_slotinfo (th->th_ta_p, modid, &temp); -+ if (err != TD_OK) -+ return err; -+ -+ psaddr_t slot; -+ err = DB_GET_STRUCT (slot, th->th_ta_p, temp, dtv_slotinfo); -+ if (err != TD_OK) -+ return err; -+ -+ /* Take the link_map from the slotinfo. */ -+ psaddr_t map; -+ err = DB_GET_FIELD_LOCAL (map, th->th_ta_p, slot, dtv_slotinfo, map, 0); -+ if (err != TD_OK) -+ return err; -+ if (!map) -+ return TD_ERR; -+ -+ /* Ok, the modid is good, now find out what DTV generation it -+ requires. */ -+ err = DB_GET_FIELD_LOCAL (temp, th->th_ta_p, slot, dtv_slotinfo, gen, 0); -+ if (err != TD_OK) -+ return err; -+ size_t modgen = (uintptr_t)temp; -+ - /* Get the DTV pointer from the thread descriptor. */ - err = DB_GET_FIELD (dtv, th->th_ta_p, pd, pthread, dtvp, 0); - if (err != TD_OK) - return err; - -+ psaddr_t dtvgenloc; -+ /* Get the DTV generation count at dtv[0].counter. */ -+ err = DB_GET_FIELD_ADDRESS (dtvgenloc, th->th_ta_p, dtv, dtv, dtv, 0); -+ if (err != TD_OK) -+ return err; -+ err = DB_GET_FIELD (temp, th->th_ta_p, dtvgenloc, dtv_t, counter, 0); -+ if (err != TD_OK) -+ return err; -+ size_t dtvgen = (uintptr_t)temp; -+ -+ /* Is the DTV current enough? */ -+ if (dtvgen < modgen) -+ { -+ try_static_tls: -+ /* If the module uses Static TLS, we're still good. */ -+ err = DB_GET_FIELD (temp, th->th_ta_p, map, link_map, l_tls_offset, 0); -+ if (err != TD_OK) -+ return err; -+ ptrdiff_t tlsoff = (uintptr_t)temp; -+ -+ if (tlsoff != FORCED_DYNAMIC_TLS_OFFSET -+ && tlsoff != NO_TLS_OFFSET) -+ { -+ psaddr_t tp = pd; -+ -+#if TLS_TCB_AT_TP -+ dtvptr = tp - tlsoff; -+#elif TLS_DTV_AT_TP -+ dtvptr = tp + tlsoff + TLS_PRE_TCB_SIZE; -+#else -+# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" -+#endif -+ -+ *base = dtvptr; -+ return TD_OK; -+ } -+ -+ return TD_TLSDEFER; -+ } -+ - /* Find the corresponding entry in the DTV. */ - err = DB_GET_FIELD_ADDRESS (dtvslot, th->th_ta_p, dtv, dtv, dtv, modid); - if (err != TD_OK) -@@ -68,7 +236,7 @@ td_thr_tlsbase (const td_thrhandle_t *th - /* It could be that the memory for this module is not allocated for - the given thread. */ - if ((uintptr_t) dtvptr & 1) -- return TD_TLSDEFER; -+ goto try_static_tls; - - *base = dtvptr; - return TD_OK; -Index: glibc-2.21/nptl_db/thread_dbP.h -=================================================================== ---- glibc-2.21.orig/nptl_db/thread_dbP.h -+++ glibc-2.21/nptl_db/thread_dbP.h -@@ -29,6 +29,7 @@ - #include "thread_db.h" - #include "../nptl/pthreadP.h" /* This is for *_BITMASK only. */ - #include -+#include - - /* Indeces for the symbol names. */ - enum -@@ -139,11 +140,11 @@ ta_ok (const td_thragent_t *ta) - } - - --/* Internal wrapper around ps_pglobal_lookup. */ --extern ps_err_e td_lookup (struct ps_prochandle *ps, -- int idx, psaddr_t *sym_addr) attribute_hidden; -- -- -+/* Internal wrappers around ps_pglobal_lookup. */ -+extern ps_err_e td_mod_lookup (struct ps_prochandle *ps, const char *modname, -+ int idx, psaddr_t *sym_addr) attribute_hidden; -+#define td_lookup(ps, idx, sym_addr) \ -+ td_mod_lookup ((ps), LIBPTHREAD_SO, (idx), (sym_addr)) - - - /* Store in psaddr_t VAR the address of inferior's symbol NAME. */ diff --git a/threaded-trim-threshold.patch b/threaded-trim-threshold.patch deleted file mode 100644 index 4457442..0000000 --- a/threaded-trim-threshold.patch +++ /dev/null @@ -1,224 +0,0 @@ -From c26efef9798914e208329c0e8c3c73bb1135d9e3 Mon Sep 17 00:00:00 2001 -From: Mel Gorman -Date: Thu, 2 Apr 2015 12:14:14 +0530 -Subject: [PATCH] malloc: Consistently apply trim_threshold to all heaps [BZ - #17195] - -Trimming heaps is a balance between saving memory and the system overhead -required to update page tables and discard allocated pages. The malloc -option M_TRIM_THRESHOLD is a tunable that users are meant to use to decide -where this balance point is but it is only applied to the main arena. - -For scalability reasons, glibc malloc has per-thread heaps but these are -shrunk with madvise() if there is one page free at the top of the heap. -In some circumstances this can lead to high system overhead if a thread -has a control flow like - - while (data_to_process) { - buf = malloc(large_size); - do_stuff(); - free(buf); - } - -For a large size, the free() will call madvise (pagetable teardown, page -free and TLB flush) every time followed immediately by a malloc (fault, -kernel page alloc, zeroing and charge accounting). The kernel overhead -can dominate such a workload. - -This patch allows the user to tune when madvise gets called by applying -the trim threshold to the per-thread heaps and using similar logic to the -main arena when deciding whether to shrink. Alternatively if the dynamic -brk/mmap threshold gets adjusted then the new values will be obeyed by -the per-thread heaps. - -Bug 17195 was a test case motivated by a problem encountered in scientific -applications written in python that performance badly due to high page fault -overhead. The basic operation of such a program was posted by Julian Taylor -https://sourceware.org/ml/libc-alpha/2015-02/msg00373.html - -With this patch applied, the overhead is eliminated. All numbers in this -report are in seconds and were recorded by running Julian's program 30 -times. - -pyarray - glibc madvise - 2.21 v2 -System min 1.81 ( 0.00%) 0.00 (100.00%) -System mean 1.93 ( 0.00%) 0.02 ( 99.20%) -System stddev 0.06 ( 0.00%) 0.01 ( 88.99%) -System max 2.06 ( 0.00%) 0.03 ( 98.54%) -Elapsed min 3.26 ( 0.00%) 2.37 ( 27.30%) -Elapsed mean 3.39 ( 0.00%) 2.41 ( 28.84%) -Elapsed stddev 0.14 ( 0.00%) 0.02 ( 82.73%) -Elapsed max 4.05 ( 0.00%) 2.47 ( 39.01%) - - glibc madvise - 2.21 v2 -User 141.86 142.28 -System 57.94 0.60 -Elapsed 102.02 72.66 - -Note that almost a minutes worth of system time is eliminted and the -program completes 28% faster on average. - -To illustrate the problem without python this is a basic test-case for -the worst case scenario where every free is a madvise followed by a an alloc - -/* gcc bench-free.c -lpthread -o bench-free */ -static int num = 1024; - -void __attribute__((noinline,noclone)) dostuff (void *p) -{ -} - -void *worker (void *data) -{ - int i; - - for (i = num; i--;) - { - void *m = malloc (48*4096); - dostuff (m); - free (m); - } - - return NULL; -} - -int main() -{ - int i; - pthread_t t; - void *ret; - if (pthread_create (&t, NULL, worker, NULL)) - exit (2); - if (pthread_join (t, &ret)) - exit (3); - return 0; -} - -Before the patch, this resulted in 1024 calls to madvise. With the patch applied, -madvise is called twice because the default trim threshold is high enough to avoid -this. - -This a more complex case where there is a mix of frees. It's simply a different worker -function for the test case above - -void *worker (void *data) -{ - int i; - int j = 0; - void *free_index[num]; - - for (i = num; i--;) - { - void *m = malloc ((i % 58) *4096); - dostuff (m); - if (i % 2 == 0) { - free (m); - } else { - free_index[j++] = m; - } - } - for (; j >= 0; j--) - { - free(free_index[j]); - } - - return NULL; -} - -glibc 2.21 calls malloc 90305 times but with the patch applied, it's -called 13438. Increasing the trim threshold will decrease the number of -times it's called with the option of eliminating the overhead. - -ebizzy is meant to generate a workload resembling common web application -server workloads. It is threaded with a large working set that at its core -has an allocation, do_stuff, free loop that also hits this case. The primary -metric of the benchmark is records processed per second. This is running on -my desktop which is a single socket machine with an I7-4770 and 8 cores. -Each thread count was run for 30 seconds. It was only run once as the -performance difference is so high that the variation is insignificant. - - glibc 2.21 patch -threads 1 10230 44114 -threads 2 19153 84925 -threads 4 34295 134569 -threads 8 51007 183387 - -Note that the saving happens to be a concidence as the size allocated -by ebizzy was less than the default threshold. If a different number of -chunks were specified then it may also be necessary to tune the threshold -to compensate - -This is roughly quadrupling the performance of this benchmark. The difference in -system CPU usage illustrates why. - -ebizzy running 1 thread with glibc 2.21 -10230 records/s 306904 -real 30.00 s -user 7.47 s -sys 22.49 s - -22.49 seconds was spent in the kernel for a workload runinng 30 seconds. With the -patch applied - -ebizzy running 1 thread with patch applied -44126 records/s 1323792 -real 30.00 s -user 29.97 s -sys 0.00 s - -system CPU usage was zero with the patch applied. strace shows that glibc -running this workload calls madvise approximately 9000 times a second. With -the patch applied madvise was called twice during the workload (or 0.06 -times per second). - -2015-02-10 Mel Gorman - - [BZ #17195] - * malloc/arena.c (free): Apply trim threshold to per-thread heaps - as well as the main arena. ---- - ---- a/malloc/malloc.c -+++ b/malloc/malloc.c -@@ -241,6 +241,8 @@ - /* For MIN, MAX, powerof2. */ - #include - -+/* For ALIGN_DOWN. */ -+#include - - /* - Debugging: ---- a/malloc/arena.c -+++ b/malloc/arena.c -@@ -658,7 +658,7 @@ heap_trim (heap_info *heap, size_t pad) - unsigned long pagesz = GLRO (dl_pagesize); - mchunkptr top_chunk = top (ar_ptr), p, bck, fwd; - heap_info *prev_heap; -- long new_size, top_size, extra, prev_size, misalign; -+ long new_size, top_size, top_area, extra, prev_size, misalign; - - /* Can this heap go away completely? */ - while (top_chunk == chunk_at_offset (heap, sizeof (*heap))) -@@ -694,9 +694,16 @@ heap_trim (heap_info *heap, size_t pad) - set_head (top_chunk, new_size | PREV_INUSE); - /*check_chunk(ar_ptr, top_chunk);*/ - } -+ -+ /* Uses similar logic for per-thread arenas as the main arena with systrim -+ by preserving the top pad and at least a page. */ - top_size = chunksize (top_chunk); -- extra = (top_size - pad - MINSIZE - 1) & ~(pagesz - 1); -- if (extra < (long) pagesz) -+ top_area = top_size - MINSIZE - 1; -+ if (top_area <= pad) -+ return 0; -+ -+ extra = ALIGN_DOWN(top_area - pad, pagesz); -+ if ((unsigned long) extra < mp_.trim_threshold) - return 0; - - /* Try to shrink. */ From a33ed41c840822ab5fa90987f1950e0ceec3739817d1fc32e5c313dfc8fd6121 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 11 Sep 2015 07:00:10 +0000 Subject: [PATCH 185/204] Accepting request 329760 from Base:System - opendir-o-directory-check.patch: Fix opendir inverted o_directory_works test - static-dlopen.patch: Static dlopen default library search path fix (bsc#937853) - mntent-blank-line.patch: Fix memory corruption w/blank lines (forwarded request 329759 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/329760 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=194 --- glibc-testsuite.changes | 13 +++ glibc-testsuite.spec | 20 +++- glibc-utils.changes | 13 +++ glibc-utils.spec | 20 +++- glibc.changes | 13 +++ glibc.spec | 20 +++- mntent-blank-line.patch | 183 ++++++++++++++++++++++++++++++++ opendir-o-directory-check.patch | 21 ++++ static-dlopen.patch | 18 ++++ 9 files changed, 306 insertions(+), 15 deletions(-) create mode 100644 mntent-blank-line.patch create mode 100644 opendir-o-directory-check.patch create mode 100644 static-dlopen.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index c708e58..6b4d233 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de + +- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works + test +- static-dlopen.patch: Static dlopen default library search path fix + (bsc#937853) + +------------------------------------------------------------------- +Mon Aug 31 12:21:29 UTC 2015 - schwab@suse.de + +- mntent-blank-line.patch: Fix memory corruption w/blank lines + ------------------------------------------------------------------- Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index a00e253..68a89ba 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -230,6 +230,14 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Clear DF_1_NODELETE flag only for failed to load library (BZ #18778) +Patch1000: dont-remove-nodelete-flag.patch +# PATCH-FIX-UPSTREAM Readd O_LARGEFILE flag for openat64 (BZ #18781) +Patch1001: openat64-readd-o-largefile.patch +# PATCH-FIX-UPSTREAM getmntent: fix memory corruption w/blank lines (BZ #18887) +Patch1002: mntent-blank-line.patch +# PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) +Patch1003: opendir-o-directory-check.patch ### # Patches awaiting upstream approval @@ -244,10 +252,8 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# BZ #18778 -Patch2007: dont-remove-nodelete-flag.patch -# BZ #18781 -Patch2008: openat64-readd-o-largefile.patch +# PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) +Patch2007: static-dlopen.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -447,13 +453,17 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 -%patch2008 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index c708e58..6b4d233 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de + +- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works + test +- static-dlopen.patch: Static dlopen default library search path fix + (bsc#937853) + +------------------------------------------------------------------- +Mon Aug 31 12:21:29 UTC 2015 - schwab@suse.de + +- mntent-blank-line.patch: Fix memory corruption w/blank lines + ------------------------------------------------------------------- Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 6882c9e..b89b3a2 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -229,6 +229,14 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Clear DF_1_NODELETE flag only for failed to load library (BZ #18778) +Patch1000: dont-remove-nodelete-flag.patch +# PATCH-FIX-UPSTREAM Readd O_LARGEFILE flag for openat64 (BZ #18781) +Patch1001: openat64-readd-o-largefile.patch +# PATCH-FIX-UPSTREAM getmntent: fix memory corruption w/blank lines (BZ #18887) +Patch1002: mntent-blank-line.patch +# PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) +Patch1003: opendir-o-directory-check.patch ### # Patches awaiting upstream approval @@ -243,10 +251,8 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# BZ #18778 -Patch2007: dont-remove-nodelete-flag.patch -# BZ #18781 -Patch2008: openat64-readd-o-largefile.patch +# PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) +Patch2007: static-dlopen.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -447,13 +453,17 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 -%patch2008 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index c708e58..6b4d233 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de + +- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works + test +- static-dlopen.patch: Static dlopen default library search path fix + (bsc#937853) + +------------------------------------------------------------------- +Mon Aug 31 12:21:29 UTC 2015 - schwab@suse.de + +- mntent-blank-line.patch: Fix memory corruption w/blank lines + ------------------------------------------------------------------- Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index ff37d93..e544dbb 100644 --- a/glibc.spec +++ b/glibc.spec @@ -230,6 +230,14 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Clear DF_1_NODELETE flag only for failed to load library (BZ #18778) +Patch1000: dont-remove-nodelete-flag.patch +# PATCH-FIX-UPSTREAM Readd O_LARGEFILE flag for openat64 (BZ #18781) +Patch1001: openat64-readd-o-largefile.patch +# PATCH-FIX-UPSTREAM getmntent: fix memory corruption w/blank lines (BZ #18887) +Patch1002: mntent-blank-line.patch +# PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) +Patch1003: opendir-o-directory-check.patch ### # Patches awaiting upstream approval @@ -244,10 +252,8 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch -# BZ #18778 -Patch2007: dont-remove-nodelete-flag.patch -# BZ #18781 -Patch2008: openat64-readd-o-largefile.patch +# PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) +Patch2007: static-dlopen.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -447,13 +453,17 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 -%patch2008 -p1 %patch3000 diff --git a/mntent-blank-line.patch b/mntent-blank-line.patch new file mode 100644 index 0000000..8605bcf --- /dev/null +++ b/mntent-blank-line.patch @@ -0,0 +1,183 @@ +2015-08-28 Mike Frysinger + + [BZ #18887] + * misc/Makefile (tests): Add tst-mntent-blank-corrupt and + tst-mntent-blank-passno. + * misc/mntent_r.c (__getmntent_r): Do not read past buffer[0]. + * misc/tst-mntent-blank-corrupt.c: New test. + * misc/tst-mntent-blank-passno.c: New test ripped from ... + * misc/tst-mntent.c (do_test): ... here. + +diff --git a/misc/Makefile b/misc/Makefile +index aecb0da..2f5edf6 100644 +--- a/misc/Makefile ++++ b/misc/Makefile +@@ -76,7 +76,8 @@ install-lib := libg.a + gpl2lgpl := error.c error.h + + tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ +- tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 ++ tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \ ++ tst-mntent-blank-corrupt tst-mntent-blank-passno + ifeq ($(run-built-tests),yes) + tests-special += $(objpfx)tst-error1-mem.out + endif +diff --git a/misc/mntent_r.c b/misc/mntent_r.c +index 6159873..4f26998 100644 +--- a/misc/mntent_r.c ++++ b/misc/mntent_r.c +@@ -136,7 +136,9 @@ __getmntent_r (FILE *stream, struct mntent *mp, char *buffer, int bufsiz) + end_ptr = strchr (buffer, '\n'); + if (end_ptr != NULL) /* chop newline */ + { +- while (end_ptr[-1] == ' ' || end_ptr[-1] == '\t') ++ /* Do not walk past the start of buffer if it's all whitespace. */ ++ while (end_ptr != buffer ++ && (end_ptr[-1] == ' ' || end_ptr[-1] == '\t')) + end_ptr--; + *end_ptr = '\0'; + } +diff --git a/misc/tst-mntent-blank-corrupt.c b/misc/tst-mntent-blank-corrupt.c +new file mode 100644 +index 0000000..92266a3 +--- /dev/null ++++ b/misc/tst-mntent-blank-corrupt.c +@@ -0,0 +1,45 @@ ++/* Make sure blank lines does not cause memory corruption BZ #18887. ++ ++ Copyright (C) 2009-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* Make sure blank lines don't trigger memory corruption. This doesn't happen ++ for all targets though, so it's a best effort test BZ #18887. */ ++static int ++do_test (void) ++{ ++ FILE *fp; ++ ++ fp = tmpfile (); ++ fputs ("\n \n/foo\\040dir /bar\\040dir auto bind \t \n", fp); ++ rewind (fp); ++ ++ /* The corruption happens here ... */ ++ getmntent (fp); ++ /* ... but trigers here. */ ++ endmntent (fp); ++ ++ /* If the test failed, we would crash, and not hit this point. */ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/tst-mntent-blank-passno.c b/misc/tst-mntent-blank-passno.c +new file mode 100644 +index 0000000..fc04291 +--- /dev/null ++++ b/misc/tst-mntent-blank-passno.c +@@ -0,0 +1,53 @@ ++/* Make sure trailing whitespace is handled properly BZ #17273. ++ ++ Copyright (C) 2009-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* Check entries to make sure trailing whitespace is ignored and we return the ++ correct passno value BZ #17273. */ ++static int ++do_test (void) ++{ ++ int result = 0; ++ FILE *fp; ++ struct mntent *mnt; ++ ++ fp = tmpfile (); ++ fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp); ++ rewind (fp); ++ ++ mnt = getmntent (fp); ++ if (strcmp (mnt->mnt_fsname, "/foo dir") != 0 ++ || strcmp (mnt->mnt_dir, "/bar dir") != 0 ++ || strcmp (mnt->mnt_type, "auto") != 0 ++ || strcmp (mnt->mnt_opts, "bind") != 0 ++ || mnt->mnt_freq != 0 ++ || mnt->mnt_passno != 0) ++ { ++ puts ("Error while reading entry with trailing whitespaces"); ++ result = 1; ++ } ++ ++ return result; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/tst-mntent.c b/misc/tst-mntent.c +index 932fd3f..b6ad8af 100644 +--- a/misc/tst-mntent.c ++++ b/misc/tst-mntent.c +@@ -73,26 +73,6 @@ do_test (void) + puts ("Error while reading written entry back in"); + result = 1; + } +- +- /* Part III: Entry with whitespaces at the end of a line. */ +- rewind (fp); +- +- fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp); +- +- rewind (fp); +- +- mnt = getmntent (fp); +- +- if (strcmp (mnt->mnt_fsname, "/foo dir") != 0 +- || strcmp (mnt->mnt_dir, "/bar dir") != 0 +- || strcmp (mnt->mnt_type, "auto") != 0 +- || strcmp (mnt->mnt_opts, "bind") != 0 +- || mnt->mnt_freq != 0 +- || mnt->mnt_passno != 0) +- { +- puts ("Error while reading entry with trailing whitespaces"); +- result = 1; +- } + } + + return result; +-- +2.5.1 + diff --git a/opendir-o-directory-check.patch b/opendir-o-directory-check.patch new file mode 100644 index 0000000..1543c7e --- /dev/null +++ b/opendir-o-directory-check.patch @@ -0,0 +1,21 @@ +2015-09-04 Roland McGrath + + [BZ #18921] + * sysdeps/posix/opendir.c (need_isdir_precheck) [O_DIRECTORY]: + Fix inverted sense of test of 'o_directory_works' value. + Reported by Pádraig Brady , diagnosed by + Bernhard Voelker . + +Index: glibc-2.22/sysdeps/posix/opendir.c +=================================================================== +--- glibc-2.22.orig/sysdeps/posix/opendir.c ++++ glibc-2.22/sysdeps/posix/opendir.c +@@ -105,7 +105,7 @@ need_isdir_precheck (void) + tryopen_o_directory (); + + /* We can skip the expensive `stat' call if O_DIRECTORY works. */ +- return o_directory_works > 0; ++ return o_directory_works < 0; + #endif + return true; + } diff --git a/static-dlopen.patch b/static-dlopen.patch new file mode 100644 index 0000000..728598b --- /dev/null +++ b/static-dlopen.patch @@ -0,0 +1,18 @@ +2015-08-04 Maciej W. Rozycki + + [BZ #17250] + * elf/dl-support.c (_dl_main_map): Don't initialize l_flags_1 + member. + +Index: glibc-2.22/elf/dl-support.c +=================================================================== +--- glibc-2.22.orig/elf/dl-support.c ++++ glibc-2.22/elf/dl-support.c +@@ -91,7 +91,6 @@ static struct link_map _dl_main_map = + .l_scope = _dl_main_map.l_scope_mem, + .l_local_scope = { &_dl_main_map.l_searchlist }, + .l_used = 1, +- .l_flags_1 = DF_1_NODEFLIB, + .l_tls_offset = NO_TLS_OFFSET, + .l_serial = 1, + }; From 1d2c9e3786e4d6af0faf5aa8f4f78e89727a322878171718d19f26d3a7de7ac6 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 2 Oct 2015 07:23:13 +0000 Subject: [PATCH 186/204] Accepting request 334939 from Base:System - nss-files-long-lines-2.patch: Properly reread entry after failure in nss_files getent function (bsc#945779, BZ #18991) (forwarded request 334938 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/334939 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=195 --- fnmatch-collating-elements.patch | 484 +++++++++++++++++++++++++++++++ glibc-testsuite.changes | 12 + glibc-testsuite.spec | 6 + glibc-utils.changes | 12 + glibc-utils.spec | 6 + glibc.changes | 12 + glibc.spec | 6 + nss-files-long-lines-2.patch | 164 +++++++++++ 8 files changed, 702 insertions(+) create mode 100644 fnmatch-collating-elements.patch create mode 100644 nss-files-long-lines-2.patch diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch new file mode 100644 index 0000000..3000d7e --- /dev/null +++ b/fnmatch-collating-elements.patch @@ -0,0 +1,484 @@ +Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) + + [BZ #16976] + [BZ #17396] + * posix/fnmatch_loop.c (internal_fnmatch, internal_fnwmatch): When + looking up collating elements match against (wide) character + sequence instead of name. Correct alignment adjustment. + * posix/fnmatch.c: Don't include "../locale/elem-hash.h". + * posix/Makefile (tests): Add tst-fnmatch4 and tst-fnmatch5. + * posix/tst-fnmatch4.c: New file. + * posix/tst-fnmatch5.c: New file. + + * Makefile (LOCALES): Add es_US.UTF-8 and es_US.ISO-8859-1. + +Index: glibc-2.22/localedata/Makefile +=================================================================== +--- glibc-2.22.orig/localedata/Makefile ++++ glibc-2.22/localedata/Makefile +@@ -106,7 +106,7 @@ LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 + hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \ + nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 tr_TR.UTF-8 cs_CZ.UTF-8 \ + zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 si_LK.UTF-8 \ +- tr_TR.ISO-8859-9 en_GB.UTF-8 uk_UA.UTF-8 ++ tr_TR.ISO-8859-9 en_GB.UTF-8 uk_UA.UTF-8 es_US.UTF-8 es_US.ISO-8859-1 + include ../gen-locales.mk + endif + +Index: glibc-2.22/posix/Makefile +=================================================================== +--- glibc-2.22.orig/posix/Makefile ++++ glibc-2.22/posix/Makefile +@@ -87,7 +87,8 @@ tests := tstgetopt testfnm runtests run + bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ + bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \ + tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ +- tst-fnmatch3 bug-regex36 tst-getaddrinfo5 ++ tst-fnmatch3 bug-regex36 tst-fnmatch4 tst-fnmatch5 \ ++ tst-getaddrinfo5 + xtests := bug-ga2 + ifeq (yes,$(build-shared)) + test-srcs := globtest +Index: glibc-2.22/posix/fnmatch.c +=================================================================== +--- glibc-2.22.orig/posix/fnmatch.c ++++ glibc-2.22/posix/fnmatch.c +@@ -53,7 +53,6 @@ + we support a correct implementation only in glibc. */ + #ifdef _LIBC + # include "../locale/localeinfo.h" +-# include "../locale/elem-hash.h" + # include "../locale/coll-lookup.h" + # include + +Index: glibc-2.22/posix/fnmatch_loop.c +=================================================================== +--- glibc-2.22.orig/posix/fnmatch_loop.c ++++ glibc-2.22/posix/fnmatch_loop.c +@@ -503,26 +503,12 @@ FCT (pattern, string, string_end, no_lea + { + int32_t table_size; + const int32_t *symb_table; +-# if WIDE_CHAR_VERSION +- char str[c1]; +- unsigned int strcnt; +-# else +-# define str (startp + 1) +-# endif + const unsigned char *extra; + int32_t idx; + int32_t elem; +- int32_t second; +- int32_t hash; +- + # if WIDE_CHAR_VERSION +- /* We have to convert the name to a single-byte +- string. This is possible since the names +- consist of ASCII characters and the internal +- representation is UCS4. */ +- for (strcnt = 0; strcnt < c1; ++strcnt) +- str[strcnt] = startp[1 + strcnt]; +-#endif ++ int32_t *wextra; ++# endif + + table_size = + _NL_CURRENT_WORD (LC_COLLATE, +@@ -534,71 +520,55 @@ FCT (pattern, string, string_end, no_lea + _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_SYMB_EXTRAMB); + +- /* Locate the character in the hashing table. */ +- hash = elem_hash (str, c1); +- +- idx = 0; +- elem = hash % table_size; +- if (symb_table[2 * elem] != 0) +- { +- second = hash % (table_size - 2) + 1; +- +- do +- { +- /* First compare the hashing value. */ +- if (symb_table[2 * elem] == hash +- && (c1 +- == extra[symb_table[2 * elem + 1]]) +- && memcmp (str, +- &extra[symb_table[2 * elem +- + 1] +- + 1], c1) == 0) +- { +- /* Yep, this is the entry. */ +- idx = symb_table[2 * elem + 1]; +- idx += 1 + extra[idx]; +- break; +- } +- +- /* Next entry. */ +- elem += second; +- } +- while (symb_table[2 * elem] != 0); +- } ++ for (elem = 0; elem < table_size; elem++) ++ if (symb_table[2 * elem] != 0) ++ { ++ idx = symb_table[2 * elem + 1]; ++ /* Skip the name of collating element. */ ++ idx += 1 + extra[idx]; ++# if WIDE_CHAR_VERSION ++ /* Skip the byte sequence of the ++ collating element. */ ++ idx += 1 + extra[idx]; ++ /* Adjust for the alignment. */ ++ idx = (idx + 3) & ~3; ++ ++ wextra = (int32_t *) &extra[idx + 4]; ++ ++ if (/* Compare the length of the sequence. */ ++ c1 == wextra[0] ++ /* Compare the wide char sequence. */ ++ && memcmp (startp + 1, &wextra[1], ++ c1 * sizeof (UCHAR)) == 0) ++ /* Yep, this is the entry. */ ++ break; ++# else ++ if (/* Compare the length of the sequence. */ ++ c1 == extra[idx] ++ /* Compare the byte sequence. */ ++ && memcmp (startp + 1, ++ &extra[idx + 1], c1) == 0) ++ /* Yep, this is the entry. */ ++ break; ++# endif ++ } + +- if (symb_table[2 * elem] != 0) ++ if (elem < table_size) + { + /* Compare the byte sequence but only if + this is not part of a range. */ +-# if WIDE_CHAR_VERSION +- int32_t *wextra; ++ if (! is_range + +- idx += 1 + extra[idx]; +- /* Adjust for the alignment. */ +- idx = (idx + 3) & ~3; +- +- wextra = (int32_t *) &extra[idx + 4]; +-# endif +- +- if (! is_range) +- { + # if WIDE_CHAR_VERSION +- for (c1 = 0; +- (int32_t) c1 < wextra[idx]; +- ++c1) +- if (n[c1] != wextra[1 + c1]) +- break; +- +- if ((int32_t) c1 == wextra[idx]) +- goto matched; ++ && memcmp (n, &wextra[1], ++ c1 * sizeof (UCHAR)) == 0 + # else +- for (c1 = 0; c1 < extra[idx]; ++c1) +- if (n[c1] != extra[1 + c1]) +- break; +- +- if (c1 == extra[idx]) +- goto matched; ++ && memcmp (n, &extra[idx + 1], c1) == 0 + # endif ++ ) ++ { ++ n += c1 - 1; ++ goto matched; + } + + /* Get the collation sequence value. */ +@@ -606,9 +576,9 @@ FCT (pattern, string, string_end, no_lea + # if WIDE_CHAR_VERSION + cold = wextra[1 + wextra[idx]]; + # else +- /* Adjust for the alignment. */ + idx += 1 + extra[idx]; +- idx = (idx + 3) & ~4; ++ /* Adjust for the alignment. */ ++ idx = (idx + 3) & ~3; + cold = *((int32_t *) &extra[idx]); + # endif + +@@ -618,10 +588,10 @@ FCT (pattern, string, string_end, no_lea + { + /* No valid character. Match it as a + single byte. */ +- if (!is_range && *n == str[0]) ++ if (!is_range && *n == startp[1]) + goto matched; + +- cold = str[0]; ++ cold = startp[1]; + c = *p++; + } + else +@@ -629,7 +599,6 @@ FCT (pattern, string, string_end, no_lea + } + } + else +-# undef str + #endif + { + c = FOLD (c); +@@ -721,25 +690,11 @@ FCT (pattern, string, string_end, no_lea + { + int32_t table_size; + const int32_t *symb_table; +-# if WIDE_CHAR_VERSION +- char str[c1]; +- unsigned int strcnt; +-# else +-# define str (startp + 1) +-# endif + const unsigned char *extra; + int32_t idx; + int32_t elem; +- int32_t second; +- int32_t hash; +- + # if WIDE_CHAR_VERSION +- /* We have to convert the name to a single-byte +- string. This is possible since the names +- consist of ASCII characters and the internal +- representation is UCS4. */ +- for (strcnt = 0; strcnt < c1; ++strcnt) +- str[strcnt] = startp[1 + strcnt]; ++ int32_t *wextra; + # endif + + table_size = +@@ -752,51 +707,44 @@ FCT (pattern, string, string_end, no_lea + _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_SYMB_EXTRAMB); + +- /* Locate the character in the hashing +- table. */ +- hash = elem_hash (str, c1); +- +- idx = 0; +- elem = hash % table_size; +- if (symb_table[2 * elem] != 0) +- { +- second = hash % (table_size - 2) + 1; +- +- do +- { +- /* First compare the hashing value. */ +- if (symb_table[2 * elem] == hash +- && (c1 +- == extra[symb_table[2 * elem + 1]]) +- && memcmp (str, +- &extra[symb_table[2 * elem + 1] +- + 1], c1) == 0) +- { +- /* Yep, this is the entry. */ +- idx = symb_table[2 * elem + 1]; +- idx += 1 + extra[idx]; +- break; +- } +- +- /* Next entry. */ +- elem += second; +- } +- while (symb_table[2 * elem] != 0); +- } +- +- if (symb_table[2 * elem] != 0) +- { +- /* Compare the byte sequence but only if +- this is not part of a range. */ ++ for (elem = 0; elem < table_size; elem++) ++ if (symb_table[2 * elem] != 0) ++ { ++ idx = symb_table[2 * elem + 1]; ++ /* Skip the name of collating ++ element. */ ++ idx += 1 + extra[idx]; + # if WIDE_CHAR_VERSION +- int32_t *wextra; +- +- idx += 1 + extra[idx]; +- /* Adjust for the alignment. */ +- idx = (idx + 3) & ~4; +- +- wextra = (int32_t *) &extra[idx + 4]; ++ /* Skip the byte sequence of the ++ collating element. */ ++ idx += 1 + extra[idx]; ++ /* Adjust for the alignment. */ ++ idx = (idx + 3) & ~3; ++ ++ wextra = (int32_t *) &extra[idx + 4]; ++ ++ if (/* Compare the length of the ++ sequence. */ ++ c1 == wextra[0] ++ /* Compare the wide char sequence. */ ++ && memcmp (startp + 1, &wextra[1], ++ c1 * sizeof (int32_t)) == 0) ++ /* Yep, this is the entry. */ ++ break; ++# else ++ if (/* Compare the length of the ++ sequence. */ ++ c1 == extra[idx] ++ /* Compare the byte sequence. */ ++ && memcmp (startp + 1, ++ &extra[idx + 1], c1) == 0) ++ /* Yep, this is the entry. */ ++ break; + # endif ++ } ++ ++ if (elem < table_size) ++ { + /* Get the collation sequence value. */ + is_seqval = 1; + # if WIDE_CHAR_VERSION +@@ -804,19 +752,18 @@ FCT (pattern, string, string_end, no_lea + # else + /* Adjust for the alignment. */ + idx += 1 + extra[idx]; +- idx = (idx + 3) & ~4; ++ idx = (idx + 3) & ~3; + cend = *((int32_t *) &extra[idx]); + # endif + } +- else if (symb_table[2 * elem] != 0 && c1 == 1) ++ else if (c1 == 1) + { +- cend = str[0]; ++ cend = startp[1]; + c = *p++; + } + else + return FNM_NOMATCH; + } +-# undef str + } + else + { +Index: glibc-2.22/posix/tst-fnmatch4.c +=================================================================== +--- /dev/null ++++ glibc-2.22/posix/tst-fnmatch4.c +@@ -0,0 +1,51 @@ ++/* Test for fnmatch handling of collating elements ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++do_test_locale (const char *locale) ++{ ++ const char *pattern = "[[.ll.]]"; ++ ++ if (setlocale (LC_ALL, locale) == NULL) ++ { ++ printf ("could not set locale %s\n", locale); ++ return 1; ++ } ++ ++ if (fnmatch (pattern, "ll", 0) != 0) ++ { ++ printf ("%s didn't match in locale %s\n", pattern, locale); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ return (do_test_locale ("es_US.ISO-8859-1") ++ || do_test_locale ("es_US.UTF-8")); ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.22/posix/tst-fnmatch5.c +=================================================================== +--- /dev/null ++++ glibc-2.22/posix/tst-fnmatch5.c +@@ -0,0 +1,53 @@ ++/* Test for fnmatch handling of collating elements ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#define LENGTH 20000000 ++ ++char pattern[LENGTH + 7]; ++ ++static int ++do_test (void) ++{ ++ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL) ++ { ++ puts ("could not set locale"); ++ return 1; ++ } ++ pattern[0] = '['; ++ pattern[1] = '['; ++ pattern[2] = '.'; ++ memset (pattern + 3, 'a', LENGTH); ++ pattern[LENGTH + 3] = '.'; ++ pattern[LENGTH + 4] = ']'; ++ pattern[LENGTH + 5] = ']'; ++ int ret = fnmatch (pattern, "a", 0); ++ if (ret == 0) ++ { ++ puts ("fnmatch returned 0 for invalid pattern"); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 6b4d233..df4e7ef 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de + +- nss-files-long-lines-2.patch: Properly reread entry after failure in + nss_files getent function (bsc#945779, BZ #18991) + +------------------------------------------------------------------- +Wed Sep 16 10:21:43 UTC 2015 - schwab@suse.de + +- fnmatch-collating-elements.patch: Fix fnmatch handling of collating + elements (BZ #17396, BZ #16976) + ------------------------------------------------------------------- Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 68a89ba..022d1cf 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -254,6 +254,10 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) Patch2007: static-dlopen.patch +# PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) +Patch2008: fnmatch-collating-elements.patch +# PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) +Patch2009: nss-files-long-lines-2.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -464,6 +468,8 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 6b4d233..df4e7ef 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de + +- nss-files-long-lines-2.patch: Properly reread entry after failure in + nss_files getent function (bsc#945779, BZ #18991) + +------------------------------------------------------------------- +Wed Sep 16 10:21:43 UTC 2015 - schwab@suse.de + +- fnmatch-collating-elements.patch: Fix fnmatch handling of collating + elements (BZ #17396, BZ #16976) + ------------------------------------------------------------------- Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index b89b3a2..e17d5fe 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -253,6 +253,10 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) Patch2007: static-dlopen.patch +# PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) +Patch2008: fnmatch-collating-elements.patch +# PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) +Patch2009: nss-files-long-lines-2.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -464,6 +468,8 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 6b4d233..df4e7ef 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de + +- nss-files-long-lines-2.patch: Properly reread entry after failure in + nss_files getent function (bsc#945779, BZ #18991) + +------------------------------------------------------------------- +Wed Sep 16 10:21:43 UTC 2015 - schwab@suse.de + +- fnmatch-collating-elements.patch: Fix fnmatch handling of collating + elements (BZ #17396, BZ #16976) + ------------------------------------------------------------------- Mon Sep 7 13:27:58 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index e544dbb..ae68e2a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -254,6 +254,10 @@ Patch2005: glibc-memset-nontemporal.diff Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) Patch2007: static-dlopen.patch +# PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) +Patch2008: fnmatch-collating-elements.patch +# PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) +Patch2009: nss-files-long-lines-2.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -464,6 +468,8 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/nss-files-long-lines-2.patch b/nss-files-long-lines-2.patch new file mode 100644 index 0000000..ec41f8a --- /dev/null +++ b/nss-files-long-lines-2.patch @@ -0,0 +1,164 @@ +Properly reread entry after failure in nss_files getent function (bug 18991) + + * nss/nss_files/files-XXX.c (position, need_reread): New + variables. + (CONCAT(_nss_files_set,ENTNAME)): Initialize them. + (CONCAT(_nss_files_get,ENTNAME_r)): Likewise. Reposition stream + if last call was uncessful. + * nss/nss_files/files-alias.c (position, need_reread): New + variables. + (_nss_files_setaliasent): Initialize them. + (_nss_files_getaliasent_r): Likewise. Reposition stream if last + call was uncessful. + +Index: glibc-2.19/nss/nss_files/files-XXX.c +=================================================================== +--- glibc-2.19.orig/nss/nss_files/files-XXX.c ++++ glibc-2.19/nss/nss_files/files-XXX.c +@@ -65,6 +65,10 @@ __libc_lock_define_initialized (static, + getXXbyYY operations all use their own stream. */ + + static FILE *stream; ++/* Position after the last sucessfully read entry. */ ++static fpos_t position; ++/* Whether we need to reread the last entry on the next call. */ ++static bool need_reread; + + /* Open database file if not already opened. */ + static enum nss_status +@@ -131,6 +135,15 @@ CONCAT(_nss_files_set,ENTNAME) (int stay + + status = internal_setent (&stream); + ++ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) ++ { ++ fclose (stream); ++ stream = NULL; ++ status = NSS_STATUS_UNAVAIL; ++ } ++ ++ need_reread = false; ++ + __libc_lock_unlock (lock); + + return status; +@@ -286,11 +299,42 @@ CONCAT(_nss_files_get,ENTNAME_r) (struct + status = internal_setent (&stream); + + __set_errno (save_errno); ++ ++ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) ++ { ++ fclose (stream); ++ stream = NULL; ++ status = NSS_STATUS_UNAVAIL; ++ } ++ need_reread = false; + } + + if (status == NSS_STATUS_SUCCESS) +- status = internal_getent (stream, result, buffer, buflen, errnop +- H_ERRNO_ARG EXTRA_ARGS_VALUE); ++ { ++ /* Reposition the stream if the last call was unsucessful. */ ++ if (need_reread) ++ { ++ if (fsetpos (stream, &position) < 0) ++ status = NSS_STATUS_UNAVAIL; ++ else ++ need_reread = false; ++ } ++ } ++ ++ if (status == NSS_STATUS_SUCCESS) ++ { ++ status = internal_getent (stream, result, buffer, buflen, errnop ++ H_ERRNO_ARG EXTRA_ARGS_VALUE); ++ ++ /* Remember this position if we were successful. If the ++ operation failed we give the user a chance to repeat the ++ operation (perhaps the buffer was too small). */ ++ if (status == NSS_STATUS_SUCCESS) ++ fgetpos (stream, &position); ++ else ++ /* We must make sure we reposition the stream the next call. */ ++ need_reread = true; ++ } + + __libc_lock_unlock (lock); + +Index: glibc-2.19/nss/nss_files/files-alias.c +=================================================================== +--- glibc-2.19.orig/nss/nss_files/files-alias.c ++++ glibc-2.19/nss/nss_files/files-alias.c +@@ -38,6 +38,10 @@ __libc_lock_define_initialized (static, + getXXbyYY operations all use their own stream. */ + + static FILE *stream; ++/* Position after the last sucessfully read entry. */ ++static fpos_t position; ++/* Whether we need to reread the last entry on the next call. */ ++static bool need_reread; + + + static enum nss_status +@@ -104,6 +108,15 @@ _nss_files_setaliasent (void) + + status = internal_setent (&stream); + ++ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) ++ { ++ fclose (stream); ++ stream = NULL; ++ status = NSS_STATUS_UNAVAIL; ++ } ++ ++ need_reread = false; ++ + __libc_lock_unlock (lock); + + return status; +@@ -388,7 +401,29 @@ _nss_files_getaliasent_r (struct aliasen + + /* Be prepared that the set*ent function was not called before. */ + if (stream == NULL) +- status = internal_setent (&stream); ++ { ++ status = internal_setent (&stream); ++ ++ if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) ++ { ++ fclose (stream); ++ stream = NULL; ++ status = NSS_STATUS_UNAVAIL; ++ } ++ need_reread = false; ++ } ++ ++ if (status == NSS_STATUS_SUCCESS) ++ { ++ /* Reposition the stream if the last call way unsucessful. */ ++ if (need_reread) ++ { ++ if (fsetpos (stream, &position) < 0) ++ status = NSS_STATUS_UNAVAIL; ++ else ++ need_reread = false; ++ } ++ } + + if (status == NSS_STATUS_SUCCESS) + { +@@ -398,6 +433,12 @@ _nss_files_getaliasent_r (struct aliasen + do + status = get_next_alias (stream, NULL, result, buffer, buflen, errnop); + while (status == NSS_STATUS_RETURN); ++ ++ /* If we successfully read an entry remember this position. */ ++ if (status == NSS_STATUS_SUCCESS) ++ fgetpos (stream, &position); ++ else ++ need_reread = true; + } + + __libc_lock_unlock (lock); From 4af0c5bfdd5eb4d2db9730ee50df41cd44c3af3b3f56b5f426bd5beee78d1220 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 14 Oct 2015 14:35:08 +0000 Subject: [PATCH 187/204] Accepting request 338136 from Base:System - strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based optimization (BZ #18589) - iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE error handler (BZ #18830) (forwarded request 338135 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/338136 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=196 --- ...ndition-when-eliding-a-lock-20150730.patch | 152 ++++++++ glibc-testsuite.changes | 18 + glibc-testsuite.spec | 9 + glibc-utils.changes | 18 + glibc-utils.spec | 9 + glibc.changes | 18 + glibc.spec | 9 + iconv-reset-input-buffer.patch | 298 ++++++++++++++ strcoll-remove-strdiff-opt.patch | 366 ++++++++++++++++++ 9 files changed, 897 insertions(+) create mode 100644 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch create mode 100644 iconv-reset-input-buffer.patch create mode 100644 strcoll-remove-strdiff-opt.patch diff --git a/0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch b/0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch new file mode 100644 index 0000000..07776c3 --- /dev/null +++ b/0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch @@ -0,0 +1,152 @@ +From: Tulio Magno Quites Machado Filho +Date: Thu, 30 Jul 2015 13:48:56 -0300 +Subject: [PATCH][BZ 18743] PowerPC: Fix a race condition when eliding a lock + + [PATCH][BZ 18743] PowerPC: Fix a race condition when eliding a lock + +The previous code used to evaluate the preprocessor token is_lock_free to +a variable before starting a transaction. This behavior can cause an +error if another thread got the lock (without using a transaction) +between the conversion of the token and the beginning of the transaction. + +This patch delays the evaluation of is_lock_free to inside a transaction +by moving this part of the code to the macro ELIDE_LOCK. + +2015-07-30 Tulio Magno Quites Machado Filho + + [BZ #18743] + * sysdeps/powerpc/nptl/elide.h (__elide_lock): Move most of this + code to... + (ELIDE_LOCK): ...here. + (__get_new_count): New function with part of the code from + __elide_lock that updates the value of adapt_count after a + transaction abort. + (__elided_trylock): Moved this code to... + (ELIDE_TRYLOCK): ...here. + +Signed-off-by: Tulio Magno Quites Machado Filho +Signed-off-by: Michel Normand +Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h +=================================================================== +--- glibc-2.22.orig/sysdeps/powerpc/nptl/elide.h ++++ glibc-2.22/sysdeps/powerpc/nptl/elide.h +@@ -23,67 +23,67 @@ + # include + # include + +-/* Returns true if the lock defined by is_lock_free as elided. +- ADAPT_COUNT is a pointer to per-lock state variable. */ +- ++/* Get the new value of adapt_count according to the elision ++ configurations. Returns true if the system should retry again or false ++ otherwise. */ + static inline bool +-__elide_lock (uint8_t *adapt_count, int is_lock_free) ++__get_new_count (uint8_t *adapt_count) + { +- if (*adapt_count > 0) ++ /* A persistent failure indicates that a retry will probably ++ result in another failure. Use normal locking now and ++ for the next couple of calls. */ ++ if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) + { +- (*adapt_count)--; ++ if (__elision_aconf.skip_lock_internal_abort > 0) ++ *adapt_count = __elision_aconf.skip_lock_internal_abort; + return false; + } +- +- for (int i = __elision_aconf.try_tbegin; i > 0; i--) +- { +- if (__builtin_tbegin (0)) +- { +- if (is_lock_free) +- return true; +- /* Lock was busy. */ +- __builtin_tabort (_ABORT_LOCK_BUSY); +- } +- else +- { +- /* A persistent failure indicates that a retry will probably +- result in another failure. Use normal locking now and +- for the next couple of calls. */ +- if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) +- { +- if (__elision_aconf.skip_lock_internal_abort > 0) +- *adapt_count = __elision_aconf.skip_lock_internal_abort; +- break; +- } +- /* Same logic as above, but for a number of temporary failures in a +- a row. */ +- else if (__elision_aconf.skip_lock_out_of_tbegin_retries > 0 +- && __elision_aconf.try_tbegin > 0) +- *adapt_count = __elision_aconf.skip_lock_out_of_tbegin_retries; +- } +- } +- +- return false; ++ /* Same logic as above, but for a number of temporary failures in a ++ a row. */ ++ else if (__elision_aconf.skip_lock_out_of_tbegin_retries > 0 ++ && __elision_aconf.try_tbegin > 0) ++ *adapt_count = __elision_aconf.skip_lock_out_of_tbegin_retries; ++ return true; + } + +-# define ELIDE_LOCK(adapt_count, is_lock_free) \ +- __elide_lock (&(adapt_count), is_lock_free) +- +- +-static inline bool +-__elide_trylock (uint8_t *adapt_count, int is_lock_free, int write) +-{ +- if (__elision_aconf.try_tbegin > 0) +- { +- if (write) +- __builtin_tabort (_ABORT_NESTED_TRYLOCK); +- return __elide_lock (adapt_count, is_lock_free); +- } +- return false; +-} ++/* Returns 0 if the lock defined by is_lock_free was elided. ++ ADAPT_COUNT is a per-lock state variable. */ ++# define ELIDE_LOCK(adapt_count, is_lock_free) \ ++ ({ \ ++ int ret = 0; \ ++ if (adapt_count > 0) \ ++ (adapt_count)--; \ ++ else \ ++ for (int i = __elision_aconf.try_tbegin; i > 0; i--) \ ++ { \ ++ asm volatile("" ::: "memory"); \ ++ if (__builtin_tbegin (0)) \ ++ { \ ++ if (is_lock_free) \ ++ { \ ++ ret = 1; \ ++ break; \ ++ } \ ++ __builtin_tabort (_ABORT_LOCK_BUSY); \ ++ } \ ++ else \ ++ if (!__get_new_count(&adapt_count)) \ ++ break; \ ++ } \ ++ ret; \ ++ }) + + # define ELIDE_TRYLOCK(adapt_count, is_lock_free, write) \ +- __elide_trylock (&(adapt_count), is_lock_free, write) ++ ({ \ ++ int ret = 0; \ ++ if (__elision_aconf.try_tbegin > 0) \ ++ { \ ++ if (write) \ ++ __builtin_tabort (_ABORT_NESTED_TRYLOCK); \ ++ ret = ELIDE_LOCK (adapt_count, is_lock_free); \ ++ } \ ++ ret; \ ++ }) + + + static inline bool diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index df4e7ef..5fe80fd 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de + +- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based + optimization (BZ #18589) + +------------------------------------------------------------------- +Thu Oct 8 14:26:14 UTC 2015 - schwab@suse.de + +- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE + error handler (BZ #18830) + +------------------------------------------------------------------- +Wed Sep 30 11:48:05 UTC 2015 - normand@linux.vnet.ibm.com + +- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock + 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch + ------------------------------------------------------------------- Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 022d1cf..5f207e8 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -238,6 +238,8 @@ Patch1001: openat64-readd-o-largefile.patch Patch1002: mntent-blank-line.patch # PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) Patch1003: opendir-o-directory-check.patch +# PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) +Patch1004: strcoll-remove-strdiff-opt.patch ### # Patches awaiting upstream approval @@ -258,6 +260,10 @@ Patch2007: static-dlopen.patch Patch2008: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) Patch2009: nss-files-long-lines-2.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) +Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch +# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) +Patch2011: iconv-reset-input-buffer.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -461,6 +467,7 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 +%patch1004 -p1 %patch2000 -p1 %patch2002 -p1 @@ -470,6 +477,8 @@ rm nscd/s-stamp %patch2007 -p1 %patch2008 -p1 %patch2009 -p1 +%patch2010 -p1 +%patch2011 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index df4e7ef..5fe80fd 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de + +- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based + optimization (BZ #18589) + +------------------------------------------------------------------- +Thu Oct 8 14:26:14 UTC 2015 - schwab@suse.de + +- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE + error handler (BZ #18830) + +------------------------------------------------------------------- +Wed Sep 30 11:48:05 UTC 2015 - normand@linux.vnet.ibm.com + +- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock + 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch + ------------------------------------------------------------------- Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index e17d5fe..f2611bb 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -237,6 +237,8 @@ Patch1001: openat64-readd-o-largefile.patch Patch1002: mntent-blank-line.patch # PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) Patch1003: opendir-o-directory-check.patch +# PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) +Patch1004: strcoll-remove-strdiff-opt.patch ### # Patches awaiting upstream approval @@ -257,6 +259,10 @@ Patch2007: static-dlopen.patch Patch2008: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) Patch2009: nss-files-long-lines-2.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) +Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch +# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) +Patch2011: iconv-reset-input-buffer.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -461,6 +467,7 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 +%patch1004 -p1 %patch2000 -p1 %patch2002 -p1 @@ -470,6 +477,8 @@ rm nscd/s-stamp %patch2007 -p1 %patch2008 -p1 %patch2009 -p1 +%patch2010 -p1 +%patch2011 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index df4e7ef..5fe80fd 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de + +- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based + optimization (BZ #18589) + +------------------------------------------------------------------- +Thu Oct 8 14:26:14 UTC 2015 - schwab@suse.de + +- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE + error handler (BZ #18830) + +------------------------------------------------------------------- +Wed Sep 30 11:48:05 UTC 2015 - normand@linux.vnet.ibm.com + +- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock + 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch + ------------------------------------------------------------------- Thu Sep 24 09:41:13 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index ae68e2a..c9980bb 100644 --- a/glibc.spec +++ b/glibc.spec @@ -238,6 +238,8 @@ Patch1001: openat64-readd-o-largefile.patch Patch1002: mntent-blank-line.patch # PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) Patch1003: opendir-o-directory-check.patch +# PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) +Patch1004: strcoll-remove-strdiff-opt.patch ### # Patches awaiting upstream approval @@ -258,6 +260,10 @@ Patch2007: static-dlopen.patch Patch2008: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) Patch2009: nss-files-long-lines-2.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) +Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch +# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) +Patch2011: iconv-reset-input-buffer.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -461,6 +467,7 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 +%patch1004 -p1 %patch2000 -p1 %patch2002 -p1 @@ -470,6 +477,8 @@ rm nscd/s-stamp %patch2007 -p1 %patch2008 -p1 %patch2009 -p1 +%patch2010 -p1 +%patch2011 -p1 %patch3000 diff --git a/iconv-reset-input-buffer.patch b/iconv-reset-input-buffer.patch new file mode 100644 index 0000000..86d6811 --- /dev/null +++ b/iconv-reset-input-buffer.patch @@ -0,0 +1,298 @@ +Fix iconv buffer handling with IGNORE error handler (bug #18830) + + [BZ #18830] + * iconv/skeleton.c (FUNCTION_NAME): Use RESET_INPUT_BUFFER only if + no irreversible characters occurred. + * iconv/gconv_simple.c (internal_ucs4_loop) + (internal_ucs4_loop_unaligned, internal_ucs4_loop_single) + (ucs4_internal_loop, ucs4_internal_loop_unaligned) + (ucs4_internal_loop_single, internal_ucs4le_loop) + (internal_ucs4le_loop_unaligned, internal_ucs4le_loop_single) + (ucs4le_internal_loop, ucs4le_internal_loop_unaligned) + (ucs4le_internal_loop_single): Add const to outend. + * iconv/Makefile (tests): Add tst-iconv6. + * iconv/tst-iconv6.c: New file. + +Index: glibc-2.22/iconv/Makefile +=================================================================== +--- glibc-2.22.orig/iconv/Makefile ++++ glibc-2.22/iconv/Makefile +@@ -42,7 +42,7 @@ CFLAGS-charmap.c = -DCHARMAP_PATH='"$(i1 + CFLAGS-linereader.c = -DNO_TRANSLITERATION + CFLAGS-simple-hash.c = -I../locale + +-tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 ++tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 + + others = iconv_prog iconvconfig + install-others-programs = $(inst_bindir)/iconv +Index: glibc-2.22/iconv/gconv_simple.c +=================================================================== +--- glibc-2.22.orig/iconv/gconv_simple.c ++++ glibc-2.22/iconv/gconv_simple.c +@@ -76,7 +76,7 @@ __attribute ((always_inline)) + internal_ucs4_loop (struct __gconv_step *step, + struct __gconv_step_data *step_data, + const unsigned char **inptrp, const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, const unsigned char *outend, + size_t *irreversible) + { + const unsigned char *inptr = *inptrp; +@@ -120,7 +120,8 @@ internal_ucs4_loop_unaligned (struct __g + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + const unsigned char *inptr = *inptrp; +@@ -169,7 +170,8 @@ internal_ucs4_loop_single (struct __gcon + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + mbstate_t *state = step_data->__statep; +@@ -231,7 +233,7 @@ __attribute ((always_inline)) + ucs4_internal_loop (struct __gconv_step *step, + struct __gconv_step_data *step_data, + const unsigned char **inptrp, const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, const unsigned char *outend, + size_t *irreversible) + { + int flags = step_data->__flags; +@@ -298,7 +300,8 @@ ucs4_internal_loop_unaligned (struct __g + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + int flags = step_data->__flags; +@@ -368,7 +371,8 @@ ucs4_internal_loop_single (struct __gcon + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + mbstate_t *state = step_data->__statep; +@@ -443,7 +447,7 @@ __attribute ((always_inline)) + internal_ucs4le_loop (struct __gconv_step *step, + struct __gconv_step_data *step_data, + const unsigned char **inptrp, const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, const unsigned char *outend, + size_t *irreversible) + { + const unsigned char *inptr = *inptrp; +@@ -488,7 +492,8 @@ internal_ucs4le_loop_unaligned (struct _ + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + const unsigned char *inptr = *inptrp; +@@ -540,7 +545,8 @@ internal_ucs4le_loop_single (struct __gc + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + mbstate_t *state = step_data->__statep; +@@ -601,7 +607,7 @@ __attribute ((always_inline)) + ucs4le_internal_loop (struct __gconv_step *step, + struct __gconv_step_data *step_data, + const unsigned char **inptrp, const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, const unsigned char *outend, + size_t *irreversible) + { + int flags = step_data->__flags; +@@ -669,7 +675,8 @@ ucs4le_internal_loop_unaligned (struct _ + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + int flags = step_data->__flags; +@@ -743,7 +750,8 @@ ucs4le_internal_loop_single (struct __gc + struct __gconv_step_data *step_data, + const unsigned char **inptrp, + const unsigned char *inend, +- unsigned char **outptrp, unsigned char *outend, ++ unsigned char **outptrp, ++ const unsigned char *outend, + size_t *irreversible) + { + mbstate_t *state = step_data->__statep; +Index: glibc-2.22/iconv/skeleton.c +=================================================================== +--- glibc-2.22.orig/iconv/skeleton.c ++++ glibc-2.22/iconv/skeleton.c +@@ -597,6 +597,10 @@ FUNCTION_NAME (struct __gconv_step *step + inptr = *inptrp; + /* The outbuf buffer is empty. */ + outstart = outbuf; ++#ifdef RESET_INPUT_BUFFER ++ size_t loop_irreversible ++ = lirreversible + (irreversible ? *irreversible : 0); ++#endif + + #ifdef SAVE_RESET_STATE + SAVE_RESET_STATE (1); +@@ -671,8 +675,16 @@ FUNCTION_NAME (struct __gconv_step *step + if (__glibc_unlikely (outerr != outbuf)) + { + #ifdef RESET_INPUT_BUFFER +- RESET_INPUT_BUFFER; +-#else ++ if (loop_irreversible ++ == lirreversible + (irreversible ? *irreversible : 0)) ++ { ++ /* RESET_INPUT_BUFFER can only work if there ++ were no irreversible characters during the ++ last loop. */ ++ RESET_INPUT_BUFFER; ++ goto done_reset; ++ } ++#endif + /* We have a problem in one of the functions below. + Undo the conversion upto the error point. */ + size_t nstatus; +@@ -682,9 +694,9 @@ FUNCTION_NAME (struct __gconv_step *step + outbuf = outstart; + + /* Restore the state. */ +-# ifdef SAVE_RESET_STATE ++#ifdef SAVE_RESET_STATE + SAVE_RESET_STATE (0); +-# endif ++#endif + + if (__glibc_likely (!unaligned)) + { +@@ -701,7 +713,7 @@ FUNCTION_NAME (struct __gconv_step *step + lirreversiblep + EXTRA_LOOP_ARGS); + } +-# if POSSIBLY_UNALIGNED ++#if POSSIBLY_UNALIGNED + else + { + if (FROM_DIRECTION) +@@ -720,7 +732,7 @@ FUNCTION_NAME (struct __gconv_step *step + lirreversiblep + EXTRA_LOOP_ARGS); + } +-# endif ++#endif + + /* We must run out of output buffer space in this + rerun. */ +@@ -731,9 +743,11 @@ FUNCTION_NAME (struct __gconv_step *step + the invocation counter. */ + if (__glibc_unlikely (outbuf == outstart)) + --data->__invocation_counter; +-#endif /* reset input buffer */ + } + ++#ifdef RESET_INPUT_BUFFER ++ done_reset: ++#endif + /* Change the status. */ + status = result; + } +Index: glibc-2.22/iconv/tst-iconv6.c +=================================================================== +--- /dev/null ++++ glibc-2.22/iconv/tst-iconv6.c +@@ -0,0 +1,68 @@ ++/* Test iconv buffer handling with the IGNORE error handler. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Derived from BZ #18830 */ ++#include ++#include ++#include ++ ++ ++static int ++do_test (void) ++{ ++ iconv_t cd = iconv_open ("ASCII//IGNORE", "ASCII"); ++ if (cd == (iconv_t) -1) ++ { ++ puts ("iconv_open failed"); ++ return 1; ++ } ++ ++ char input[5 + 3] = { 0, 0, 0, 0, 0, '1', '\200', '2' }; ++ char *inptr = input; ++ size_t insize = sizeof (input); ++ char output[5]; ++ char *outptr = output; ++ size_t outsize = sizeof (output); ++ ++ size_t ret = iconv (cd, &inptr, &insize, &outptr, &outsize); ++ if (ret != (size_t) -1) ++ { ++ puts ("iconv succeeded"); ++ return 1; ++ } ++ if (errno != E2BIG) ++ { ++ puts ("iconv did not set errno to E2BIG"); ++ return 1; ++ } ++ if (inptr != input + sizeof (output) - outsize) ++ { ++ printf ("iconv consumed %td characters\n", inptr - input); ++ return 1; ++ } ++ ++ if (iconv_close (cd) == -1) ++ { ++ puts ("iconv_close failed"); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/strcoll-remove-strdiff-opt.patch b/strcoll-remove-strdiff-opt.patch new file mode 100644 index 0000000..832258c --- /dev/null +++ b/strcoll-remove-strdiff-opt.patch @@ -0,0 +1,366 @@ +2015-10-09 Carlos O'Donell + + [BZ #18589] + * string/bug-strcoll2.c: Adjust copyright, and remove contributed by. + * string/Makefile ($(objpfx)bug-strcoll2.out): Depend on + $(gen-locales). + +2015-10-08 Carlos O'Donell + + [BZ #18589] + * string/Makefile (tests): Add bug-strcoll2. + (LOCALES): Add cs_CZ.UTF-8. + +2015-09-28 Martin Sebor + + [BZ #18969] + * string/Makefile (LOCALES): Define. + (gen-locales.mk): Include. + (test-strcasecmp.out, test-strncasecmp.out, tst-strxfrm.out) + (tst-strxfrm2.out): Add deppendency on $(gen-locales). + * string/tst-strxfrm2.c (do_test): Print the name of the locale + on setlocale failure. + +2015-10-08 Carlos O'Donell + + [BZ #18589] + * string/bug-strcoll2.c: New file. + * locale/categories.def: Revert commit + f13c2a8dff2329c6692a80176262ceaaf8a6f74e. + * locale/langinfo.h: Likewise. + * locale/localeinfo.h: Likewise. + * locale/C-collate.c: Likewise. + * programs/ld-collate.c (collate_output): Likewise. + * string/strcoll_l.c (STRDIFF): Likewise. + (STRCOLL): Likewise. + * wcsmbs/wcscoll_l.c: Likewise. + +Index: glibc-2.22/locale/C-collate.c +=================================================================== +--- glibc-2.22.orig/locale/C-collate.c ++++ glibc-2.22/locale/C-collate.c +@@ -144,8 +144,6 @@ const struct __locale_data _nl_C_LC_COLL + /* _NL_COLLATE_COLLSEQWC */ + { .string = (const char *) collseqwc }, + /* _NL_COLLATE_CODESET */ +- { .string = _nl_C_codeset }, +- /* _NL_COLLATE_ENCODING_TYPE */ +- { .word = __cet_8bit } ++ { .string = _nl_C_codeset } + } + }; +Index: glibc-2.22/locale/categories.def +=================================================================== +--- glibc-2.22.orig/locale/categories.def ++++ glibc-2.22/locale/categories.def +@@ -58,7 +58,6 @@ DEFINE_CATEGORY + DEFINE_ELEMENT (_NL_COLLATE_COLLSEQMB, "collate-collseqmb", std, wstring) + DEFINE_ELEMENT (_NL_COLLATE_COLLSEQWC, "collate-collseqwc", std, wstring) + DEFINE_ELEMENT (_NL_COLLATE_CODESET, "collate-codeset", std, string) +- DEFINE_ELEMENT (_NL_COLLATE_ENCODING_TYPE, "collate-encoding-type", std, word) + ), NO_POSTLOAD) + + +Index: glibc-2.22/locale/langinfo.h +=================================================================== +--- glibc-2.22.orig/locale/langinfo.h ++++ glibc-2.22/locale/langinfo.h +@@ -255,7 +255,6 @@ enum + _NL_COLLATE_COLLSEQMB, + _NL_COLLATE_COLLSEQWC, + _NL_COLLATE_CODESET, +- _NL_COLLATE_ENCODING_TYPE, + _NL_NUM_LC_COLLATE, + + /* LC_CTYPE category: character classification. +Index: glibc-2.22/locale/localeinfo.h +=================================================================== +--- glibc-2.22.orig/locale/localeinfo.h ++++ glibc-2.22/locale/localeinfo.h +@@ -110,14 +110,6 @@ enum coll_sort_rule + sort_mask + }; + +-/* Collation encoding type. */ +-enum collation_encoding_type +-{ +- __cet_other, +- __cet_8bit, +- __cet_utf8 +-}; +- + /* We can map the types of the entries into a few categories. */ + enum value_type + { +Index: glibc-2.22/locale/programs/ld-collate.c +=================================================================== +--- glibc-2.22.orig/locale/programs/ld-collate.c ++++ glibc-2.22/locale/programs/ld-collate.c +@@ -32,7 +32,6 @@ + #include "linereader.h" + #include "locfile.h" + #include "elem-hash.h" +-#include "../localeinfo.h" + + /* Uncomment the following line in the production version. */ + /* #define NDEBUG 1 */ +@@ -2131,8 +2130,6 @@ collate_output (struct localedef_t *loca + /* The words have to be handled specially. */ + if (idx == _NL_ITEM_INDEX (_NL_COLLATE_SYMB_HASH_SIZEMB)) + add_locale_uint32 (&file, 0); +- else if (idx == _NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE)) +- add_locale_uint32 (&file, __cet_other); + else + add_locale_empty (&file); + } +@@ -2496,12 +2493,6 @@ collate_output (struct localedef_t *loca + add_locale_raw_data (&file, collate->mbseqorder, 256); + add_locale_collseq_table (&file, &collate->wcseqorder); + add_locale_string (&file, charmap->code_set_name); +- if (strcmp (charmap->code_set_name, "UTF-8") == 0) +- add_locale_uint32 (&file, __cet_utf8); +- else if (charmap->mb_cur_max == 1) +- add_locale_uint32 (&file, __cet_8bit); +- else +- add_locale_uint32 (&file, __cet_other); + write_locale_data (output_path, LC_COLLATE, "LC_COLLATE", &file); + + obstack_free (&weightpool, NULL); +Index: glibc-2.22/string/Makefile +=================================================================== +--- glibc-2.22.orig/string/Makefile ++++ glibc-2.22/string/Makefile +@@ -54,7 +54,7 @@ tests := tester inl-tester noinl-tester + tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ + bug-strtok1 $(addprefix test-,$(strop-tests)) \ + bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ +- tst-strtok_r ++ tst-strtok_r bug-strcoll2 + + xtests = tst-strcoll-overflow + +@@ -75,4 +75,17 @@ ifeq ($(run-built-tests),yes) + $(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out + cmp $^ > $@; \ + $(evaluate-test) ++ ++LOCALES := de_DE.UTF-8 en_US.ISO-8859-1 en_US.UTF-8 \ ++ tr_TR.ISO-8859-9 tr_TR.UTF-8 cs_CZ.UTF-8 \ ++ da_DK.ISO-8859-1 ++include ../gen-locales.mk ++ ++$(objpfx)test-strcasecmp.out: $(gen-locales) ++$(objpfx)test-strncasecmp.out: $(gen-locales) ++$(objpfx)tst-strxfrm.out: $(gen-locales) ++$(objpfx)tst-strxfrm2.out: $(gen-locales) ++# bug-strcoll2 needs cs_CZ.UTF-8 and da_DK.ISO-8859-1. ++$(objpfx)bug-strcoll2.out: $(gen-locales) ++ + endif +Index: glibc-2.22/string/bug-strcoll2.c +=================================================================== +--- /dev/null ++++ glibc-2.22/string/bug-strcoll2.c +@@ -0,0 +1,92 @@ ++/* Bug 18589: sort-test.sh fails at random. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* An incorrect strcoll optimization resulted in incorrect ++ results from strcoll for cs_CZ and da_DK. */ ++ ++int ++test_cs_CZ (void) ++{ ++ const char t1[] = "config"; ++ const char t2[] = "choose"; ++ if (setlocale (LC_ALL, "cs_CZ.UTF-8") == NULL) ++ { ++ perror ("setlocale"); ++ return 1; ++ } ++ /* In Czech the digraph ch sorts after c, therefore we expect ++ config to sort before choose. */ ++ int a = strcoll (t1, t2); ++ int b = strcoll (t2, t1); ++ printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a); ++ printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b); ++ if (a < 0 && b > 0) ++ { ++ puts ("PASS: config < choose"); ++ return 0; ++ } ++ else ++ { ++ puts ("FAIL: Wrong sorting in cs_CZ.UTF-8."); ++ return 1; ++ } ++} ++ ++int ++test_da_DK (void) ++{ ++ const char t1[] = "AS"; ++ const char t2[] = "AA"; ++ if (setlocale (LC_ALL, "da_DK.ISO-8859-1") == NULL) ++ { ++ perror ("setlocale"); ++ return 1; ++ } ++ /* AA should be treated as the last letter of the Danish alphabet, ++ hence sorting after AS. */ ++ int a = strcoll (t1, t2); ++ int b = strcoll (t2, t1); ++ printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a); ++ printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b); ++ if (a < 0 && b > 0) ++ { ++ puts ("PASS: AS < AA"); ++ return 0; ++ } ++ else ++ { ++ puts ("FAIL: Wrong sorting in da_DK.ISO-8859-1"); ++ return 1; ++ } ++} ++ ++static int ++do_test (void) ++{ ++ int err = 0; ++ err |= test_cs_CZ (); ++ err |= test_da_DK (); ++ return err; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.22/string/strcoll_l.c +=================================================================== +--- glibc-2.22.orig/string/strcoll_l.c ++++ glibc-2.22/string/strcoll_l.c +@@ -29,7 +29,6 @@ + # define STRING_TYPE char + # define USTRING_TYPE unsigned char + # define STRCOLL __strcoll_l +-# define STRDIFF __strdiff + # define STRCMP strcmp + # define WEIGHT_H "../locale/weight.h" + # define SUFFIX MB +@@ -42,20 +41,6 @@ + #include "../locale/localeinfo.h" + #include WEIGHT_H + +-#define MASK_UTF8_7BIT (1 << 7) +-#define MASK_UTF8_START (3 << 6) +- +-size_t +-STRDIFF (const STRING_TYPE *s, const STRING_TYPE *t) +-{ +- size_t n; +- +- for (n = 0; *s != '\0' && *s++ == *t++; ++n) +- continue; +- +- return n; +-} +- + /* Track status while looking for sequences in a string. */ + typedef struct + { +@@ -269,29 +254,9 @@ STRCOLL (const STRING_TYPE *s1, const ST + const USTRING_TYPE *extra; + const int32_t *indirect; + +- /* In case there is no locale specific sort order (C / POSIX). */ + if (nrules == 0) + return STRCMP (s1, s2); + +- /* Fast forward to the position of the first difference. Needs to be +- encoding aware as the byte-by-byte comparison can stop in the middle +- of a char sequence for multibyte encodings like UTF-8. */ +- uint_fast32_t encoding = +- current->values[_NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE)].word; +- if (encoding != __cet_other) +- { +- size_t diff = STRDIFF (s1, s2); +- if (diff > 0) +- { +- if (encoding == __cet_utf8 && (*(s1 + diff) & MASK_UTF8_7BIT) != 0) +- do +- diff--; +- while (diff > 0 && (*(s1 + diff) & MASK_UTF8_START) != MASK_UTF8_START); +- s1 += diff; +- s2 += diff; +- } +- } +- + /* Catch empty strings. */ + if (__glibc_unlikely (*s1 == '\0') || __glibc_unlikely (*s2 == '\0')) + return (*s1 != '\0') - (*s2 != '\0'); +@@ -358,8 +323,7 @@ STRCOLL (const STRING_TYPE *s1, const ST + byte-level comparison to ensure that we don't waste time + going through multiple passes for totally equal strings + before proceeding to subsequent passes. */ +- if (pass == 0 && encoding == __cet_other && +- STRCMP (s1, s2) == 0) ++ if (pass == 0 && STRCMP (s1, s2) == 0) + return result; + else + break; +Index: glibc-2.22/string/tst-strxfrm2.c +=================================================================== +--- glibc-2.22.orig/string/tst-strxfrm2.c ++++ glibc-2.22/string/tst-strxfrm2.c +@@ -5,6 +5,8 @@ + static int + do_test (void) + { ++ static const char test_locale[] = "de_DE.UTF-8"; ++ + int res = 0; + + char buf[20]; +@@ -38,9 +40,9 @@ do_test (void) + res = 1; + } + +- if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) ++ if (setlocale (LC_ALL, test_locale) == NULL) + { +- puts ("setlocale failed"); ++ printf ("cannot set locale \"%s\"\n", test_locale); + res = 1; + } + else +Index: glibc-2.22/wcsmbs/wcscoll_l.c +=================================================================== +--- glibc-2.22.orig/wcsmbs/wcscoll_l.c ++++ glibc-2.22/wcsmbs/wcscoll_l.c +@@ -23,7 +23,6 @@ + #define STRING_TYPE wchar_t + #define USTRING_TYPE wint_t + #define STRCOLL __wcscoll_l +-#define STRDIFF __wcsdiff + #define STRCMP __wcscmp + #define WEIGHT_H "../locale/weightwc.h" + #define SUFFIX WC From 52673bff0230f0197bbc7ffe53bcfb3c559227c6f09279862037f44d61b5dad5 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 22 Nov 2015 09:57:21 +0000 Subject: [PATCH 188/204] Accepting request 345165 from Base:System - resolv-mem-leak.patch: Fix resource leak in resolver (BZ #19257) - tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) - glibc-2.3.90-noversion.diff: use stat64 - ld-pointer-guard.patch: Always enable pointer guard (bsc#950944, BZ #18928) (forwarded request 345159 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/345165 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=197 --- glibc-2.3.90-noversion.diff | 4 +- glibc-testsuite.changes | 18 +++++ glibc-testsuite.spec | 9 +++ glibc-utils.changes | 18 +++++ glibc-utils.spec | 9 +++ glibc.changes | 18 +++++ glibc.spec | 9 +++ ld-pointer-guard.patch | 66 ++++++++++++++++++ resolv-mem-leak.patch | 21 ++++++ tzset-tzname.patch | 133 ++++++++++++++++++++++++++++++++++++ 10 files changed, 303 insertions(+), 2 deletions(-) create mode 100644 ld-pointer-guard.patch create mode 100644 resolv-mem-leak.patch create mode 100644 tzset-tzname.patch diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index 4216fc4..b7102c9 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -24,7 +24,7 @@ Index: glibc-2.20/elf/rtld.c + && (main_map->l_info[DT_DEBUG] != 0 + || !(GLRO(dl_debug_mask) & DL_DEBUG_PRELINK))) + { -+ struct stat test_st; ++ struct stat64 test_st; + int test_fd; + bool can_load; + @@ -36,7 +36,7 @@ Index: glibc-2.20/elf/rtld.c + can_load = false; + else + { -+ if (__fxstat (_STAT_VER, test_fd, &test_st) < 0 ++ if (__fxstat64 (_STAT_VER, test_fd, &test_st) < 0 + || test_st.st_size == 0) + can_load = false; + __close(test_fd); diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 5fe80fd..c4173a6 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de + +- resolv-mem-leak.patch: Fix resource leak in resolver (BZ #19257) +- tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set + DST rules only (BZ #19253) + +------------------------------------------------------------------- +Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de + +- glibc-2.3.90-noversion.diff: use stat64 + +------------------------------------------------------------------- +Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de + +- ld-pointer-guard.patch: Always enable pointer guard (bsc#950944, BZ + #18928) + ------------------------------------------------------------------- Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 5f207e8..c0d1a04 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -240,6 +240,8 @@ Patch1002: mntent-blank-line.patch Patch1003: opendir-o-directory-check.patch # PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) Patch1004: strcoll-remove-strdiff-opt.patch +# PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) +Patch1005: ld-pointer-guard.patch ### # Patches awaiting upstream approval @@ -264,6 +266,10 @@ Patch2009: nss-files-long-lines-2.patch Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) Patch2011: iconv-reset-input-buffer.patch +# PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) +Patch2012: tzset-tzname.patch +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch2013: resolv-mem-leak.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -468,6 +474,7 @@ rm nscd/s-stamp %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 +%patch1005 -p1 %patch2000 -p1 %patch2002 -p1 @@ -479,6 +486,8 @@ rm nscd/s-stamp %patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 +%patch2013 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 5fe80fd..c4173a6 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de + +- resolv-mem-leak.patch: Fix resource leak in resolver (BZ #19257) +- tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set + DST rules only (BZ #19253) + +------------------------------------------------------------------- +Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de + +- glibc-2.3.90-noversion.diff: use stat64 + +------------------------------------------------------------------- +Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de + +- ld-pointer-guard.patch: Always enable pointer guard (bsc#950944, BZ + #18928) + ------------------------------------------------------------------- Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index f2611bb..292fdc5 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -239,6 +239,8 @@ Patch1002: mntent-blank-line.patch Patch1003: opendir-o-directory-check.patch # PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) Patch1004: strcoll-remove-strdiff-opt.patch +# PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) +Patch1005: ld-pointer-guard.patch ### # Patches awaiting upstream approval @@ -263,6 +265,10 @@ Patch2009: nss-files-long-lines-2.patch Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) Patch2011: iconv-reset-input-buffer.patch +# PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) +Patch2012: tzset-tzname.patch +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch2013: resolv-mem-leak.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -468,6 +474,7 @@ rm nscd/s-stamp %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 +%patch1005 -p1 %patch2000 -p1 %patch2002 -p1 @@ -479,6 +486,8 @@ rm nscd/s-stamp %patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 +%patch2013 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 5fe80fd..c4173a6 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de + +- resolv-mem-leak.patch: Fix resource leak in resolver (BZ #19257) +- tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set + DST rules only (BZ #19253) + +------------------------------------------------------------------- +Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de + +- glibc-2.3.90-noversion.diff: use stat64 + +------------------------------------------------------------------- +Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de + +- ld-pointer-guard.patch: Always enable pointer guard (bsc#950944, BZ + #18928) + ------------------------------------------------------------------- Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index c9980bb..710d8e8 100644 --- a/glibc.spec +++ b/glibc.spec @@ -240,6 +240,8 @@ Patch1002: mntent-blank-line.patch Patch1003: opendir-o-directory-check.patch # PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) Patch1004: strcoll-remove-strdiff-opt.patch +# PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) +Patch1005: ld-pointer-guard.patch ### # Patches awaiting upstream approval @@ -264,6 +266,10 @@ Patch2009: nss-files-long-lines-2.patch Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) Patch2011: iconv-reset-input-buffer.patch +# PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) +Patch2012: tzset-tzname.patch +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch2013: resolv-mem-leak.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -468,6 +474,7 @@ rm nscd/s-stamp %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 +%patch1005 -p1 %patch2000 -p1 %patch2002 -p1 @@ -479,6 +486,8 @@ rm nscd/s-stamp %patch2009 -p1 %patch2010 -p1 %patch2011 -p1 +%patch2012 -p1 +%patch2013 -p1 %patch3000 diff --git a/ld-pointer-guard.patch b/ld-pointer-guard.patch new file mode 100644 index 0000000..433164b --- /dev/null +++ b/ld-pointer-guard.patch @@ -0,0 +1,66 @@ +2015-10-15 Florian Weimer + + [BZ #18928] + * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Remove + _dl_pointer_guard member. + * elf/rtld.c (_rtld_global_ro): Remove _dl_pointer_guard + initializer. + (security_init): Always set up pointer guard. + (process_envvars): Do not process LD_POINTER_GUARD. + +Index: glibc-2.22/elf/rtld.c +=================================================================== +--- glibc-2.22.orig/elf/rtld.c ++++ glibc-2.22/elf/rtld.c +@@ -162,7 +162,6 @@ struct rtld_global_ro _rtld_global_ro at + ._dl_hwcap_mask = HWCAP_IMPORTANT, + ._dl_lazy = 1, + ._dl_fpu_control = _FPU_DEFAULT, +- ._dl_pointer_guard = 1, + ._dl_pagesize = EXEC_PAGESIZE, + ._dl_inhibit_cache = 0, + +@@ -709,15 +708,12 @@ security_init (void) + #endif + + /* Set up the pointer guard as well, if necessary. */ +- if (GLRO(dl_pointer_guard)) +- { +- uintptr_t pointer_chk_guard = _dl_setup_pointer_guard (_dl_random, +- stack_chk_guard); ++ uintptr_t pointer_chk_guard ++ = _dl_setup_pointer_guard (_dl_random, stack_chk_guard); + #ifdef THREAD_SET_POINTER_GUARD +- THREAD_SET_POINTER_GUARD (pointer_chk_guard); ++ THREAD_SET_POINTER_GUARD (pointer_chk_guard); + #endif +- __pointer_chk_guard_local = pointer_chk_guard; +- } ++ __pointer_chk_guard_local = pointer_chk_guard; + + /* We do not need the _dl_random value anymore. The less + information we leave behind, the better, so clear the +@@ -2517,9 +2513,6 @@ process_envvars (enum mode *modep) + GLRO(dl_use_load_bias) = envline[14] == '1' ? -1 : 0; + break; + } +- +- if (memcmp (envline, "POINTER_GUARD", 13) == 0) +- GLRO(dl_pointer_guard) = envline[14] != '0'; + break; + + case 14: +Index: glibc-2.22/sysdeps/generic/ldsodefs.h +=================================================================== +--- glibc-2.22.orig/sysdeps/generic/ldsodefs.h ++++ glibc-2.22/sysdeps/generic/ldsodefs.h +@@ -592,9 +592,6 @@ struct rtld_global_ro + /* List of auditing interfaces. */ + struct audit_ifaces *_dl_audit; + unsigned int _dl_naudit; +- +- /* 0 if internal pointer values should not be guarded, 1 if they should. */ +- EXTERN int _dl_pointer_guard; + }; + # define __rtld_global_attribute__ + # if IS_IN (rtld) diff --git a/resolv-mem-leak.patch b/resolv-mem-leak.patch new file mode 100644 index 0000000..2e4e8e4 --- /dev/null +++ b/resolv-mem-leak.patch @@ -0,0 +1,21 @@ +Fix resource leak in resolver (bug 19257) + + * resolv/res_init.c (__res_iclose): Use statp->nscount instead of + statp->_u._ext.nscount as loop count. +--- + resolv/res_init.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: glibc-2.22/resolv/res_init.c +=================================================================== +--- glibc-2.22.orig/resolv/res_init.c ++++ glibc-2.22/resolv/res_init.c +@@ -593,7 +593,7 @@ __res_iclose(res_state statp, bool free_ + statp->_vcsock = -1; + statp->_flags &= ~(RES_F_VC | RES_F_CONN); + } +- for (ns = 0; ns < statp->_u._ext.nscount; ns++) ++ for (ns = 0; ns < statp->nscount; ns++) + if (statp->_u._ext.nsaddrs[ns]) { + if (statp->_u._ext.nssocks[ns] != -1) { + close_not_cancel_no_status(statp->_u._ext.nssocks[ns]); diff --git a/tzset-tzname.patch b/tzset-tzname.patch new file mode 100644 index 0000000..72b045c --- /dev/null +++ b/tzset-tzname.patch @@ -0,0 +1,133 @@ +Force rereading TZDEFRULES after it was used to set DST rules only (bug #19253) + +If the TZDEFRULES file was used to set the DST rules when $TZ didn't +provide any we need to make sure that the next time it is used we +recompute everything as __tzfile_default changes some setting from what is +provided by TZDEFRULES. + + [BZ #19253] + * time/tzfile.c (__tzfile_default): Invalidate tzfile attribute + cache when TZDEFRULES was used. + * time/tst-tzname.c: New file. + * time/Makefile (test): Add tst-tzname. + (tst-tzname-ENV, CFLAGS-tst-tzname.c): Define. + * timezone/Makefile (test-zones): Add $(posixrules-file). + ($(testdata)/$(posixrules-file)): New rule. + +Index: glibc-2.22/time/Makefile +=================================================================== +--- glibc-2.22.orig/time/Makefile ++++ glibc-2.22/time/Makefile +@@ -37,7 +37,8 @@ aux := era alt_digit lc-time-cleanup + tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ + tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \ + tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \ +- tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime ++ tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \ ++ tst-tzname + + include ../Rules + +@@ -55,4 +56,7 @@ CFLAGS-test_time.c = -Wno-format + tst-getdate-ENV= DATEMSK=datemsk TZDIR=${common-objpfx}timezone/testdata + test_time-ARGS= EST5EDT CST + ++tst-tzname-ENV = TZDIR=${common-objpfx}timezone/testdata ++CFLAGS-tst-tzname.c = -DTZDEFRULES='"$(posixrules-file)"' ++ + bug-getdate1-ARGS = ${objpfx}bug-getdate1-fmt +Index: glibc-2.22/time/tst-tzname.c +=================================================================== +--- /dev/null ++++ glibc-2.22/time/tst-tzname.c +@@ -0,0 +1,50 @@ ++/* Test that tzset sets tzname correctly (BZ #19253). ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ int result = 0; ++ ++ setenv ("TZ", TZDEFRULES, 1); ++ tzset (); ++ const char *stdtz = strdup (tzname[0]); ++ setenv ("TZ", "STD-1DST", 1); ++ tzset (); ++ if (strcmp (tzname[0], "STD") != 0) ++ { ++ printf ("FAIL: TZ=STD-1DST, tzname[0] = %s\n", tzname[0]); ++ result = 1; ++ } ++ setenv ("TZ", TZDEFRULES, 1); ++ tzset (); ++ if (strcmp (tzname[0], stdtz) != 0) ++ { ++ printf ("FAIL: TZ=%s, tzname[0] = %s\n", TZDEFRULES, tzname[0]); ++ result = 1; ++ } ++ return result; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.22/time/tzfile.c +=================================================================== +--- glibc-2.22.orig/time/tzfile.c ++++ glibc-2.22/time/tzfile.c +@@ -628,6 +628,12 @@ __tzfile_default (const char *std, const + __timezone = -types[0].offset; + + compute_tzname_max (stdlen + dstlen); ++ ++ /* Invalidate the tzfile attribute cache to force rereading ++ TZDEFRULES the next time it is used. */ ++ tzfile_dev = 0; ++ tzfile_ino = 0; ++ tzfile_mtime = 0; + } + + void +Index: glibc-2.22/timezone/Makefile +=================================================================== +--- glibc-2.22.orig/timezone/Makefile ++++ glibc-2.22/timezone/Makefile +@@ -49,7 +49,8 @@ ifeq ($(run-built-tests),yes) + # List zones generated by separate commands running zic on the host. + # Each such zic run counts as a separate test. + test-zones := America/New_York Etc/UTC UTC Europe/Berlin \ +- Australia/Melbourne America/Sao_Paulo Asia/Tokyo ++ Australia/Melbourne America/Sao_Paulo Asia/Tokyo \ ++ $(posixrules-file) + tests-special += $(addprefix $(testdata)/, $(test-zones)) + endif + +@@ -101,6 +102,8 @@ zic-deps = $(objpfx)zic $(leapseconds) y + + $(testdata)/America/New_York: northamerica $(zic-deps) + $(build-testdata) ++$(testdata)/$(posixrules-file): $(testdata)/America/New_York ++ $(make-link); $(evaluate-test) + $(testdata)/Etc/UTC: etcetera $(zic-deps) + $(build-testdata) + # Use a pattern rule to indicate the command produces both targets at once. From e83435778c4087a6119de650909db760385979ff7a4d75d48d9df11d7b5967db Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 17 Dec 2015 14:51:42 +0000 Subject: [PATCH 189/204] Accepting request 348825 from Base:System - reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock on fork (BZ #19282) (forwarded request 348824 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/348825 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=198 --- glibc-testsuite.changes | 6 ++++++ glibc-testsuite.spec | 3 +++ glibc-utils.changes | 6 ++++++ glibc-utils.spec | 3 +++ glibc.changes | 6 ++++++ glibc.spec | 3 +++ reinitialize-dl_load_write_lock.patch | 15 +++++++++++++++ 7 files changed, 42 insertions(+) create mode 100644 reinitialize-dl_load_write_lock.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index c4173a6..24c79df 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de + +- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock + on fork (BZ #19282) + ------------------------------------------------------------------- Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index c0d1a04..c3537f8 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -270,6 +270,8 @@ Patch2011: iconv-reset-input-buffer.patch Patch2012: tzset-tzname.patch # PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) Patch2013: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) +Patch2014: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -488,6 +490,7 @@ rm nscd/s-stamp %patch2011 -p1 %patch2012 -p1 %patch2013 -p1 +%patch2014 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index c4173a6..24c79df 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de + +- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock + on fork (BZ #19282) + ------------------------------------------------------------------- Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 292fdc5..d052987 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -269,6 +269,8 @@ Patch2011: iconv-reset-input-buffer.patch Patch2012: tzset-tzname.patch # PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) Patch2013: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) +Patch2014: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -488,6 +490,7 @@ rm nscd/s-stamp %patch2011 -p1 %patch2012 -p1 %patch2013 -p1 +%patch2014 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index c4173a6..24c79df 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de + +- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock + on fork (BZ #19282) + ------------------------------------------------------------------- Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 710d8e8..b7213da 100644 --- a/glibc.spec +++ b/glibc.spec @@ -270,6 +270,8 @@ Patch2011: iconv-reset-input-buffer.patch Patch2012: tzset-tzname.patch # PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) Patch2013: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) +Patch2014: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -488,6 +490,7 @@ rm nscd/s-stamp %patch2011 -p1 %patch2012 -p1 %patch2013 -p1 +%patch2014 -p1 %patch3000 diff --git a/reinitialize-dl_load_write_lock.patch b/reinitialize-dl_load_write_lock.patch new file mode 100644 index 0000000..b224fbb --- /dev/null +++ b/reinitialize-dl_load_write_lock.patch @@ -0,0 +1,15 @@ +Index: glibc-2.22/sysdeps/nptl/fork.c +=================================================================== +--- glibc-2.22.orig/sysdeps/nptl/fork.c ++++ glibc-2.22/sysdeps/nptl/fork.c +@@ -174,8 +174,9 @@ __libc_fork (void) + /* Reset locks in the I/O code. */ + _IO_list_resetlock (); + +- /* Reset the lock the dynamic loader uses to protect its data. */ ++ /* Reset the locks the dynamic loader uses to protect its data. */ + __rtld_lock_initialize (GL(dl_load_lock)); ++ __rtld_lock_initialize (GL(dl_load_write_lock)); + + /* Run the handlers registered for the child. */ + while (allp != NULL) From d5afe5554aa403bf04657c4fabd29ef67ff9cd113db91e2d73abf6b27b416c0b Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 22 Feb 2016 09:09:52 +0000 Subject: [PATCH 190/204] Accepting request 360165 from Base:System - isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with C++11 (bsc#963700, BZ #19439) (forwarded request 360162 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/360165 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=199 --- catopen-unbound-alloca.patch | 219 +++++ errorcheck-mutex-no-elision.patch | 102 ++ glibc-testsuite.changes | 37 + glibc-testsuite.spec | 54 +- glibc-utils.changes | 37 + glibc-utils.spec | 54 +- glibc.changes | 37 + glibc.spec | 54 +- hcreate-overflow-check.patch | 193 ++++ isinf-cxx11-conflict.patch | 127 +++ powerpc-elision-adapt-param.patch | 81 ++ ...0.patch => powerpc-lock-elision-race.patch | 34 +- prelink-elf-rtype-class.patch | 258 +++++ refactor-nan-parsing.patch | 896 ++++++++++++++++++ send-dg-buffer-overflow.patch | 569 +++++++++++ strftime-range-check.patch | 126 +++ tls-dtor-list-mangling.patch | 37 + vector-finite-math-aliases.patch | 149 +++ 18 files changed, 3020 insertions(+), 44 deletions(-) create mode 100644 catopen-unbound-alloca.patch create mode 100644 errorcheck-mutex-no-elision.patch create mode 100644 hcreate-overflow-check.patch create mode 100644 isinf-cxx11-conflict.patch create mode 100644 powerpc-elision-adapt-param.patch rename 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch => powerpc-lock-elision-race.patch (81%) create mode 100644 prelink-elf-rtype-class.patch create mode 100644 refactor-nan-parsing.patch create mode 100644 send-dg-buffer-overflow.patch create mode 100644 strftime-range-check.patch create mode 100644 tls-dtor-list-mangling.patch create mode 100644 vector-finite-math-aliases.patch diff --git a/catopen-unbound-alloca.patch b/catopen-unbound-alloca.patch new file mode 100644 index 0000000..fbfd278 --- /dev/null +++ b/catopen-unbound-alloca.patch @@ -0,0 +1,219 @@ +2015-08-08 Paul Pluzhnikov + + [BZ #17905] + * catgets/Makefile (tst-catgets-mem): New test. + * catgets/catgets.c (catopen): Don't use unbounded alloca. + * catgets/open_catalog.c (__open_catalog): Likewise. + * catgets/tst-catgets.c (do_bz17905): Test unbounded alloca. + +Index: glibc-2.22/catgets/Makefile +=================================================================== +--- glibc-2.22.orig/catgets/Makefile ++++ glibc-2.22/catgets/Makefile +@@ -34,6 +34,7 @@ test-srcs = test-gencat + ifeq ($(run-built-tests),yes) + tests-special += $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \ + $(objpfx)sample.SJIS.cat $(objpfx)test-gencat.out ++tests-special += $(objpfx)tst-catgets-mem.out + endif + + gencat-modules = xmalloc +@@ -50,9 +51,11 @@ catgets-CPPFLAGS := -DNLSPATH='"$(msgcat + + generated += de.msg test1.cat test1.h test2.cat test2.h sample.SJIS.cat \ + test-gencat.h ++generated += tst-catgets.mtrace tst-catgets-mem.out ++ + generated-dirs += de + +-tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de ++tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de MALLOC_TRACE=$(objpfx)tst-catgets.mtrace + + ifeq ($(run-built-tests),yes) + # This test just checks whether the program produces any error or not. +@@ -86,4 +89,8 @@ $(objpfx)test-gencat.out: test-gencat.sh + $(objpfx)sample.SJIS.cat: sample.SJIS $(objpfx)gencat + $(built-program-cmd) -H $(objpfx)test-gencat.h < $(word 1,$^) > $@; \ + $(evaluate-test) ++ ++$(objpfx)tst-catgets-mem.out: $(objpfx)tst-catgets.out ++ $(common-objpfx)malloc/mtrace $(objpfx)tst-catgets.mtrace > $@; \ ++ $(evaluate-test) + endif +Index: glibc-2.22/catgets/catgets.c +=================================================================== +--- glibc-2.22.orig/catgets/catgets.c ++++ glibc-2.22/catgets/catgets.c +@@ -16,7 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-#include + #include + #include + #include +@@ -35,6 +34,7 @@ catopen (const char *cat_name, int flag) + __nl_catd result; + const char *env_var = NULL; + const char *nlspath = NULL; ++ char *tmp = NULL; + + if (strchr (cat_name, '/') == NULL) + { +@@ -54,7 +54,10 @@ catopen (const char *cat_name, int flag) + { + /* Append the system dependent directory. */ + size_t len = strlen (nlspath) + 1 + sizeof NLSPATH; +- char *tmp = alloca (len); ++ tmp = malloc (len); ++ ++ if (__glibc_unlikely (tmp == NULL)) ++ return (nl_catd) -1; + + __stpcpy (__stpcpy (__stpcpy (tmp, nlspath), ":"), NLSPATH); + nlspath = tmp; +@@ -65,16 +68,18 @@ catopen (const char *cat_name, int flag) + + result = (__nl_catd) malloc (sizeof (*result)); + if (result == NULL) +- /* We cannot get enough memory. */ +- return (nl_catd) -1; +- +- if (__open_catalog (cat_name, nlspath, env_var, result) != 0) ++ { ++ /* We cannot get enough memory. */ ++ result = (nl_catd) -1; ++ } ++ else if (__open_catalog (cat_name, nlspath, env_var, result) != 0) + { + /* Couldn't open the file. */ + free ((void *) result); +- return (nl_catd) -1; ++ result = (nl_catd) -1; + } + ++ free (tmp); + return (nl_catd) result; + } + +Index: glibc-2.22/catgets/open_catalog.c +=================================================================== +--- glibc-2.22.orig/catgets/open_catalog.c ++++ glibc-2.22/catgets/open_catalog.c +@@ -47,6 +47,7 @@ __open_catalog (const char *cat_name, co + size_t tab_size; + const char *lastp; + int result = -1; ++ char *buf = NULL; + + if (strchr (cat_name, '/') != NULL || nlspath == NULL) + fd = open_not_cancel_2 (cat_name, O_RDONLY); +@@ -57,23 +58,23 @@ __open_catalog (const char *cat_name, co + if (__glibc_unlikely (bufact + (n) >= bufmax)) \ + { \ + char *old_buf = buf; \ +- bufmax += 256 + (n); \ +- buf = (char *) alloca (bufmax); \ +- memcpy (buf, old_buf, bufact); \ ++ bufmax += (bufmax < 256 + (n)) ? 256 + (n) : bufmax; \ ++ buf = realloc (buf, bufmax); \ ++ if (__glibc_unlikely (buf == NULL)) \ ++ { \ ++ free (old_buf); \ ++ return -1; \ ++ } \ + } + + /* The RUN_NLSPATH variable contains a colon separated list of + descriptions where we expect to find catalogs. We have to + recognize certain % substitutions and stop when we found the + first existing file. */ +- char *buf; + size_t bufact; +- size_t bufmax; ++ size_t bufmax = 0; + size_t len; + +- buf = NULL; +- bufmax = 0; +- + fd = -1; + while (*run_nlspath != '\0') + { +@@ -188,7 +189,10 @@ __open_catalog (const char *cat_name, co + + /* Avoid dealing with directories and block devices */ + if (__builtin_expect (fd, 0) < 0) +- return -1; ++ { ++ free (buf); ++ return -1; ++ } + + if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0) + goto close_unlock_return; +@@ -325,6 +329,7 @@ __open_catalog (const char *cat_name, co + /* Release the lock again. */ + close_unlock_return: + close_not_cancel_no_status (fd); ++ free (buf); + + return result; + } +Index: glibc-2.22/catgets/tst-catgets.c +=================================================================== +--- glibc-2.22.orig/catgets/tst-catgets.c ++++ glibc-2.22/catgets/tst-catgets.c +@@ -1,7 +1,10 @@ ++#include + #include + #include + #include ++#include + #include ++#include + + + static const char *msgs[] = +@@ -12,6 +15,33 @@ static const char *msgs[] = + }; + #define nmsgs (sizeof (msgs) / sizeof (msgs[0])) + ++ ++/* Test for unbounded alloca. */ ++static int ++do_bz17905 (void) ++{ ++ char *buf; ++ struct rlimit rl; ++ nl_catd result; ++ ++ const int sz = 1024 * 1024; ++ ++ getrlimit (RLIMIT_STACK, &rl); ++ rl.rlim_cur = sz; ++ setrlimit (RLIMIT_STACK, &rl); ++ ++ buf = malloc (sz + 1); ++ memset (buf, 'A', sz); ++ buf[sz] = '\0'; ++ setenv ("NLSPATH", buf, 1); ++ ++ result = catopen (buf, NL_CAT_LOCALE); ++ assert (result == (nl_catd) -1); ++ ++ free (buf); ++ return 0; ++} ++ + #define ROUNDS 5 + + static int +@@ -62,6 +92,7 @@ do_test (void) + } + } + ++ result += do_bz17905 (); + return result; + } + diff --git a/errorcheck-mutex-no-elision.patch b/errorcheck-mutex-no-elision.patch new file mode 100644 index 0000000..90ee12a --- /dev/null +++ b/errorcheck-mutex-no-elision.patch @@ -0,0 +1,102 @@ +2016-01-25 Andreas Schwab + + [BZ #17514] + * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock) + : Don't do lock elision. + * nptl/Makefile (tests): Add tst-mutex-errorcheck. + * nptl/tst-mutex-errorcheck.c: New file. + +Index: glibc-2.22/nptl/Makefile +=================================================================== +--- glibc-2.22.orig/nptl/Makefile ++++ glibc-2.22/nptl/Makefile +@@ -283,7 +283,8 @@ tests = tst-typesizes \ + tst-getpid3 \ + tst-setuid3 \ + tst-initializers1 $(addprefix tst-initializers1-,c89 gnu89 c99 gnu99) \ +- tst-bad-schedattr ++ tst-bad-schedattr \ ++ tst-thread_local1 tst-mutex-errorcheck + xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \ + tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 + test-srcs = tst-oddstacklimit +Index: glibc-2.22/nptl/pthread_mutex_timedlock.c +=================================================================== +--- glibc-2.22.orig/nptl/pthread_mutex_timedlock.c ++++ glibc-2.22/nptl/pthread_mutex_timedlock.c +@@ -90,7 +90,8 @@ pthread_mutex_timedlock (mutex, abstime) + if (__glibc_unlikely (mutex->__data.__owner == id)) + return EDEADLK; + +- /* FALLTHROUGH */ ++ /* Don't do lock elision on an error checking mutex. */ ++ goto simple; + + case PTHREAD_MUTEX_TIMED_NP: + FORCE_ELISION (mutex, goto elision); +Index: glibc-2.22/nptl/tst-mutex-errorcheck.c +=================================================================== +--- /dev/null ++++ glibc-2.22/nptl/tst-mutex-errorcheck.c +@@ -0,0 +1,61 @@ ++/* Check that error checking mutexes are not subject to lock elision. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ struct timespec tms = { 0 }; ++ pthread_mutex_t mutex; ++ pthread_mutexattr_t mutexattr; ++ int ret = 0; ++ ++ if (pthread_mutexattr_init (&mutexattr) != 0) ++ return 1; ++ if (pthread_mutexattr_settype (&mutexattr, PTHREAD_MUTEX_ERRORCHECK) != 0) ++ return 1; ++ ++ if (pthread_mutex_init (&mutex, &mutexattr) != 0) ++ return 1; ++ if (pthread_mutexattr_destroy (&mutexattr) != 0) ++ return 1; ++ ++ /* The call to pthread_mutex_timedlock erroneously enabled lock elision ++ on the mutex, which then triggered an assertion failure in ++ pthread_mutex_unlock. It would also defeat the error checking nature ++ of the mutex. */ ++ if (pthread_mutex_timedlock (&mutex, &tms) != 0) ++ return 1; ++ if (pthread_mutex_timedlock (&mutex, &tms) != EDEADLK) ++ { ++ printf ("Failed error checking on locked mutex\n"); ++ ret = 1; ++ } ++ ++ if (pthread_mutex_unlock (&mutex) != 0) ++ ret = 1; ++ ++ return ret; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 24c79df..50b0b7f 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de + +- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with + C++11 (bsc#963700, BZ #19439) + +------------------------------------------------------------------- +Wed Feb 17 09:48:26 UTC 2016 - schwab@suse.de + +- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling + (BZ #19018) +- prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits + for prelink (BZ #19178) +- vector-finite-math-aliases.patch: Better workaround for aliases of + *_finite symbols in vector math library (BZ# 19058) +- powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision + transient failure adapt param (BZ #19174) +- catopen-unbound-alloca.patch: Fix unbound alloca in catopen + (CVE-2015-8779, bsc#962739, BZ #17905) +- strftime-range-check.patch: Add range check on time fields + (CVE-2015-8776, bsc#962736, BZ #18985) +- hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, + bsc#962737, BZ #18240) +- errorcheck-mutex-no-elision.patch: Don't do lock elision on an error + checking mutex (bsc#956716, BZ #17514) +- refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads + (CVE-2014-9761, bsc#962738, BZ #16962) +- send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer + overflow (CVE-2015-7547, bsc#961721, BZ #18665) +- powerpc-lock-elision-race.patch: renamed from + 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch + +------------------------------------------------------------------- +Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de + +- Add audit-devel and libcap-devel to BuildRequires, for use by nscd + ------------------------------------------------------------------- Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index c3537f8..664d526 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,7 +35,9 @@ Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries # UTILS-SUMMARY-END +BuildRequires: audit-devel BuildRequires: fdupes +BuildRequires: libcap-devel BuildRequires: libselinux-devel BuildRequires: makeinfo BuildRequires: pwdutils @@ -242,6 +244,30 @@ Patch1003: opendir-o-directory-check.patch Patch1004: strcoll-remove-strdiff-opt.patch # PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) Patch1005: ld-pointer-guard.patch +# PATCH-FIX-UPSTREAM Harden tls_dtor_list with pointer mangling (BZ #19018) +Patch1006: tls-dtor-list-mangling.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) +Patch1007: powerpc-lock-elision-race.patch +# PATCH-FIX-UPSTREAM Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) +Patch1008: prelink-elf-rtype-class.patch +# PATCH-FIX-UPSTREAM Better workaround for aliases of *_finite symbols in vector math library (BZ# 19058) +Patch1009: vector-finite-math-aliases.patch +# PATCH-FIX-UPSTREAM powerpc: Fix usage of elision transient failure adapt param (BZ #19174) +Patch1010: powerpc-elision-adapt-param.patch +# PATCH-FIX-UPSTREAM Fix unbound alloca in catopen (CVE-2015-8779, BZ #17905) +Patch1011: catopen-unbound-alloca.patch +# PATCH-FIX-UPSTREAM Add range check on time fields (CVE-2015-8776, BZ #18985) +Patch1012: strftime-range-check.patch +# PATCH-FIX-UPSTREAM Handle overflow in hcreate (CVE-2015-8778, BZ #18240) +Patch1013: hcreate-overflow-check.patch +# PATCH-FIX-UPSTREAM Don't do lock elision on an error checking mutex (BZ #17514) +Patch1014: errorcheck-mutex-no-elision.patch +# PATCH-FIX-UPSTREAM Refactor strtod parsing of NaN payloads (CVE-2014-9761, BZ #16962) +Patch1015: refactor-nan-parsing.patch +# PATCH-FIX-UPSTREAM Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, BZ #18665) +Patch1016: send-dg-buffer-overflow.patch +# PATCH-FIX-UPSTREAM Fix isinf/isnan declaration conflict with C++11 (BZ #19439) +Patch1017: isinf-cxx11-conflict.patch ### # Patches awaiting upstream approval @@ -262,16 +288,14 @@ Patch2007: static-dlopen.patch Patch2008: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) Patch2009: nss-files-long-lines-2.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) -Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2011: iconv-reset-input-buffer.patch +Patch2010: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) -Patch2012: tzset-tzname.patch +Patch2011: tzset-tzname.patch # PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2013: resolv-mem-leak.patch +Patch2012: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2014: reinitialize-dl_load_write_lock.patch +Patch2013: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -477,6 +501,18 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 %patch2000 -p1 %patch2002 -p1 @@ -490,7 +526,6 @@ rm nscd/s-stamp %patch2011 -p1 %patch2012 -p1 %patch2013 -p1 -%patch2014 -p1 %patch3000 @@ -1264,6 +1299,9 @@ exit 0 %{_libdir}/libnldbl_nonshared.a %endif %{_libdir}/libmcheck.a +%ifarch x86_64 +%{_libdir}/libmvec_nonshared.a +%endif %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a diff --git a/glibc-utils.changes b/glibc-utils.changes index 24c79df..50b0b7f 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de + +- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with + C++11 (bsc#963700, BZ #19439) + +------------------------------------------------------------------- +Wed Feb 17 09:48:26 UTC 2016 - schwab@suse.de + +- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling + (BZ #19018) +- prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits + for prelink (BZ #19178) +- vector-finite-math-aliases.patch: Better workaround for aliases of + *_finite symbols in vector math library (BZ# 19058) +- powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision + transient failure adapt param (BZ #19174) +- catopen-unbound-alloca.patch: Fix unbound alloca in catopen + (CVE-2015-8779, bsc#962739, BZ #17905) +- strftime-range-check.patch: Add range check on time fields + (CVE-2015-8776, bsc#962736, BZ #18985) +- hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, + bsc#962737, BZ #18240) +- errorcheck-mutex-no-elision.patch: Don't do lock elision on an error + checking mutex (bsc#956716, BZ #17514) +- refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads + (CVE-2014-9761, bsc#962738, BZ #16962) +- send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer + overflow (CVE-2015-7547, bsc#961721, BZ #18665) +- powerpc-lock-elision-race.patch: renamed from + 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch + +------------------------------------------------------------------- +Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de + +- Add audit-devel and libcap-devel to BuildRequires, for use by nscd + ------------------------------------------------------------------- Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index d052987..4010918 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -34,7 +34,9 @@ Summary: Development utilities from GNU C library License: LGPL-2.1+ Group: Development/Languages/C and C++ # UTILS-SUMMARY-END +BuildRequires: audit-devel BuildRequires: fdupes +BuildRequires: libcap-devel BuildRequires: libselinux-devel BuildRequires: makeinfo BuildRequires: pwdutils @@ -241,6 +243,30 @@ Patch1003: opendir-o-directory-check.patch Patch1004: strcoll-remove-strdiff-opt.patch # PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) Patch1005: ld-pointer-guard.patch +# PATCH-FIX-UPSTREAM Harden tls_dtor_list with pointer mangling (BZ #19018) +Patch1006: tls-dtor-list-mangling.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) +Patch1007: powerpc-lock-elision-race.patch +# PATCH-FIX-UPSTREAM Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) +Patch1008: prelink-elf-rtype-class.patch +# PATCH-FIX-UPSTREAM Better workaround for aliases of *_finite symbols in vector math library (BZ# 19058) +Patch1009: vector-finite-math-aliases.patch +# PATCH-FIX-UPSTREAM powerpc: Fix usage of elision transient failure adapt param (BZ #19174) +Patch1010: powerpc-elision-adapt-param.patch +# PATCH-FIX-UPSTREAM Fix unbound alloca in catopen (CVE-2015-8779, BZ #17905) +Patch1011: catopen-unbound-alloca.patch +# PATCH-FIX-UPSTREAM Add range check on time fields (CVE-2015-8776, BZ #18985) +Patch1012: strftime-range-check.patch +# PATCH-FIX-UPSTREAM Handle overflow in hcreate (CVE-2015-8778, BZ #18240) +Patch1013: hcreate-overflow-check.patch +# PATCH-FIX-UPSTREAM Don't do lock elision on an error checking mutex (BZ #17514) +Patch1014: errorcheck-mutex-no-elision.patch +# PATCH-FIX-UPSTREAM Refactor strtod parsing of NaN payloads (CVE-2014-9761, BZ #16962) +Patch1015: refactor-nan-parsing.patch +# PATCH-FIX-UPSTREAM Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, BZ #18665) +Patch1016: send-dg-buffer-overflow.patch +# PATCH-FIX-UPSTREAM Fix isinf/isnan declaration conflict with C++11 (BZ #19439) +Patch1017: isinf-cxx11-conflict.patch ### # Patches awaiting upstream approval @@ -261,16 +287,14 @@ Patch2007: static-dlopen.patch Patch2008: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) Patch2009: nss-files-long-lines-2.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) -Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2011: iconv-reset-input-buffer.patch +Patch2010: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) -Patch2012: tzset-tzname.patch +Patch2011: tzset-tzname.patch # PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2013: resolv-mem-leak.patch +Patch2012: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2014: reinitialize-dl_load_write_lock.patch +Patch2013: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -477,6 +501,18 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 %patch2000 -p1 %patch2002 -p1 @@ -490,7 +526,6 @@ rm nscd/s-stamp %patch2011 -p1 %patch2012 -p1 %patch2013 -p1 -%patch2014 -p1 %patch3000 @@ -1264,6 +1299,9 @@ exit 0 %{_libdir}/libnldbl_nonshared.a %endif %{_libdir}/libmcheck.a +%ifarch x86_64 +%{_libdir}/libmvec_nonshared.a +%endif %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a diff --git a/glibc.changes b/glibc.changes index 24c79df..50b0b7f 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de + +- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with + C++11 (bsc#963700, BZ #19439) + +------------------------------------------------------------------- +Wed Feb 17 09:48:26 UTC 2016 - schwab@suse.de + +- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling + (BZ #19018) +- prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits + for prelink (BZ #19178) +- vector-finite-math-aliases.patch: Better workaround for aliases of + *_finite symbols in vector math library (BZ# 19058) +- powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision + transient failure adapt param (BZ #19174) +- catopen-unbound-alloca.patch: Fix unbound alloca in catopen + (CVE-2015-8779, bsc#962739, BZ #17905) +- strftime-range-check.patch: Add range check on time fields + (CVE-2015-8776, bsc#962736, BZ #18985) +- hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, + bsc#962737, BZ #18240) +- errorcheck-mutex-no-elision.patch: Don't do lock elision on an error + checking mutex (bsc#956716, BZ #17514) +- refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads + (CVE-2014-9761, bsc#962738, BZ #16962) +- send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer + overflow (CVE-2015-7547, bsc#961721, BZ #18665) +- powerpc-lock-elision-race.patch: renamed from + 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch + +------------------------------------------------------------------- +Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de + +- Add audit-devel and libcap-devel to BuildRequires, for use by nscd + ------------------------------------------------------------------- Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index b7213da..98433c6 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,7 +35,9 @@ Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries # UTILS-SUMMARY-END +BuildRequires: audit-devel BuildRequires: fdupes +BuildRequires: libcap-devel BuildRequires: libselinux-devel BuildRequires: makeinfo BuildRequires: pwdutils @@ -242,6 +244,30 @@ Patch1003: opendir-o-directory-check.patch Patch1004: strcoll-remove-strdiff-opt.patch # PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) Patch1005: ld-pointer-guard.patch +# PATCH-FIX-UPSTREAM Harden tls_dtor_list with pointer mangling (BZ #19018) +Patch1006: tls-dtor-list-mangling.patch +# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) +Patch1007: powerpc-lock-elision-race.patch +# PATCH-FIX-UPSTREAM Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) +Patch1008: prelink-elf-rtype-class.patch +# PATCH-FIX-UPSTREAM Better workaround for aliases of *_finite symbols in vector math library (BZ# 19058) +Patch1009: vector-finite-math-aliases.patch +# PATCH-FIX-UPSTREAM powerpc: Fix usage of elision transient failure adapt param (BZ #19174) +Patch1010: powerpc-elision-adapt-param.patch +# PATCH-FIX-UPSTREAM Fix unbound alloca in catopen (CVE-2015-8779, BZ #17905) +Patch1011: catopen-unbound-alloca.patch +# PATCH-FIX-UPSTREAM Add range check on time fields (CVE-2015-8776, BZ #18985) +Patch1012: strftime-range-check.patch +# PATCH-FIX-UPSTREAM Handle overflow in hcreate (CVE-2015-8778, BZ #18240) +Patch1013: hcreate-overflow-check.patch +# PATCH-FIX-UPSTREAM Don't do lock elision on an error checking mutex (BZ #17514) +Patch1014: errorcheck-mutex-no-elision.patch +# PATCH-FIX-UPSTREAM Refactor strtod parsing of NaN payloads (CVE-2014-9761, BZ #16962) +Patch1015: refactor-nan-parsing.patch +# PATCH-FIX-UPSTREAM Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, BZ #18665) +Patch1016: send-dg-buffer-overflow.patch +# PATCH-FIX-UPSTREAM Fix isinf/isnan declaration conflict with C++11 (BZ #19439) +Patch1017: isinf-cxx11-conflict.patch ### # Patches awaiting upstream approval @@ -262,16 +288,14 @@ Patch2007: static-dlopen.patch Patch2008: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) Patch2009: nss-files-long-lines-2.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) -Patch2010: 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2011: iconv-reset-input-buffer.patch +Patch2010: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) -Patch2012: tzset-tzname.patch +Patch2011: tzset-tzname.patch # PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2013: resolv-mem-leak.patch +Patch2012: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2014: reinitialize-dl_load_write_lock.patch +Patch2013: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -477,6 +501,18 @@ rm nscd/s-stamp %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 %patch2000 -p1 %patch2002 -p1 @@ -490,7 +526,6 @@ rm nscd/s-stamp %patch2011 -p1 %patch2012 -p1 %patch2013 -p1 -%patch2014 -p1 %patch3000 @@ -1264,6 +1299,9 @@ exit 0 %{_libdir}/libnldbl_nonshared.a %endif %{_libdir}/libmcheck.a +%ifarch x86_64 +%{_libdir}/libmvec_nonshared.a +%endif %{_libdir}/libpthread_nonshared.a %{_libdir}/librpcsvc.a diff --git a/hcreate-overflow-check.patch b/hcreate-overflow-check.patch new file mode 100644 index 0000000..7890dc6 --- /dev/null +++ b/hcreate-overflow-check.patch @@ -0,0 +1,193 @@ +2016-02-12 Florian Weimer + + * misc/bug18240.c (do_test): Set RLIMIT_AS. + +2016-01-27 Paul Eggert + + [BZ #18240] + * misc/hsearch_r.c (isprime, __hcreate_r): Protect against + unsigned int wraparound. + +2016-01-27 Florian Weimer + + [BZ #18240] + * misc/bug18240.c: New test. + * misc/Makefile (tests): Add it. + +2015-08-25 OndÅ™ej Bílka + + [BZ #18240] + * misc/hsearch_r.c (__hcreate_r): Handle overflow. + +Index: glibc-2.22/misc/Makefile +=================================================================== +--- glibc-2.22.orig/misc/Makefile ++++ glibc-2.22/misc/Makefile +@@ -77,7 +77,7 @@ gpl2lgpl := error.c error.h + + tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ + tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \ +- tst-mntent-blank-corrupt tst-mntent-blank-passno ++ tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240 + ifeq ($(run-built-tests),yes) + tests-special += $(objpfx)tst-error1-mem.out + endif +Index: glibc-2.22/misc/bug18240.c +=================================================================== +--- /dev/null ++++ glibc-2.22/misc/bug18240.c +@@ -0,0 +1,97 @@ ++/* Test integer wraparound in hcreate. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void ++test_size (size_t size) ++{ ++ int res = hcreate (size); ++ if (res == 0) ++ { ++ if (errno == ENOMEM) ++ return; ++ printf ("error: hcreate (%zu): %m\n", size); ++ exit (1); ++ } ++ char *keys[100]; ++ for (int i = 0; i < 100; ++i) ++ { ++ if (asprintf (keys + i, "%d", i) < 0) ++ { ++ printf ("error: asprintf: %m\n"); ++ exit (1); ++ } ++ ENTRY e = { keys[i], (char *) "value" }; ++ if (hsearch (e, ENTER) == NULL) ++ { ++ printf ("error: hsearch (\"%s\"): %m\n", keys[i]); ++ exit (1); ++ } ++ } ++ hdestroy (); ++ ++ for (int i = 0; i < 100; ++i) ++ free (keys[i]); ++} ++ ++static int ++do_test (void) ++{ ++ /* Limit the size of the process, so that memory allocation will ++ fail without impacting the entire system. */ ++ { ++ struct rlimit limit; ++ if (getrlimit (RLIMIT_AS, &limit) != 0) ++ { ++ printf ("getrlimit (RLIMIT_AS) failed: %m\n"); ++ return 1; ++ } ++ long target = 100 * 1024 * 1024; ++ if (limit.rlim_cur == RLIM_INFINITY || limit.rlim_cur > target) ++ { ++ limit.rlim_cur = target; ++ if (setrlimit (RLIMIT_AS, &limit) != 0) ++ { ++ printf ("setrlimit (RLIMIT_AS) failed: %m\n"); ++ return 1; ++ } ++ } ++ } ++ ++ test_size (500); ++ test_size (-1); ++ test_size (-3); ++ test_size (INT_MAX - 2); ++ test_size (INT_MAX - 1); ++ test_size (INT_MAX); ++ test_size (((unsigned) INT_MAX) + 1); ++ test_size (UINT_MAX - 2); ++ test_size (UINT_MAX - 1); ++ test_size (UINT_MAX); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.22/misc/hsearch_r.c +=================================================================== +--- glibc-2.22.orig/misc/hsearch_r.c ++++ glibc-2.22/misc/hsearch_r.c +@@ -19,7 +19,7 @@ + #include + #include + #include +- ++#include + #include + + /* [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986 +@@ -46,15 +46,12 @@ static int + isprime (unsigned int number) + { + /* no even number will be passed */ +- unsigned int div = 3; +- +- while (div * div < number && number % div != 0) +- div += 2; +- +- return number % div != 0; ++ for (unsigned int div = 3; div <= number / div; div += 2) ++ if (number % div == 0) ++ return 0; ++ return 1; + } + +- + /* Before using the hash table we must allocate memory for it. + Test for an existing table are done. We allocate one element + more as the found prime number says. This is done for more effective +@@ -81,10 +78,19 @@ __hcreate_r (nel, htab) + use will not work. */ + if (nel < 3) + nel = 3; +- /* Change nel to the first prime number not smaller as nel. */ +- nel |= 1; /* make odd */ +- while (!isprime (nel)) +- nel += 2; ++ ++ /* Change nel to the first prime number in the range [nel, UINT_MAX - 2], ++ The '- 2' means 'nel += 2' cannot overflow. */ ++ for (nel |= 1; ; nel += 2) ++ { ++ if (UINT_MAX - 2 < nel) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ if (isprime (nel)) ++ break; ++ } + + htab->size = nel; + htab->filled = 0; diff --git a/isinf-cxx11-conflict.patch b/isinf-cxx11-conflict.patch new file mode 100644 index 0000000..dec2fd8 --- /dev/null +++ b/isinf-cxx11-conflict.patch @@ -0,0 +1,127 @@ +2016-02-14 Jakub Jelinek + Jonathan Wakely + Carlos O'Donell + + [BZ 19439] + * math/Makefile (tests): Add test-math-isinff. + (CFLAGS-test-math-isinff.cc): Use -std=gnu++11. + * math/bits/mathcalls.h [__USE_MISC]: Use + '|| __MATH_DECLARING_DOUBLE == 0' to relax definition of + functions not in C++11 and which don't conflict e.g. isinff, + isinfl etc. + * math/test-math-isinff.cc: New file. + +2016-01-11 Jonathan Wakely + Adhemerval Zanella + + [BZ #19439] + * math/bits/mathcalls.h + [!__cplusplus || __cplusplus < 201103L] (isinf): Do not declare + prototype. + [!__cplusplus || __cplusplus < 201103L] (isnan): Likewise. + +Index: glibc-2.22/math/Makefile +=================================================================== +--- glibc-2.22.orig/math/Makefile ++++ glibc-2.22/math/Makefile +@@ -108,6 +108,7 @@ tests = test-matherr test-fenv atest-exp + test-tgmath-ret bug-nextafter bug-nexttoward bug-tgmath1 \ + test-tgmath-int test-tgmath2 test-powl tst-CMPLX tst-CMPLX2 test-snan \ + test-fenv-tls test-fenv-preserve test-fenv-return test-fenvinline \ ++ test-math-isinff \ + $(tests-static) + tests-static = test-fpucw-static test-fpucw-ieee-static + # We do the `long double' tests only if this data type is available and +@@ -184,6 +185,8 @@ CPPFLAGS-test-ildoubl.c = -U__LIBC_INTER + $(libm-test-fast-math-cflags) + + ++CFLAGS-test-math-isinff.cc = -std=gnu++11 ++ + # The -lieee module sets the _LIB_VERSION_ switch to IEEE mode + # for error handling in the -lm functions. + install-lib += libieee.a +Index: glibc-2.22/math/bits/mathcalls.h +=================================================================== +--- glibc-2.22.orig/math/bits/mathcalls.h ++++ glibc-2.22/math/bits/mathcalls.h +@@ -196,9 +196,13 @@ __MATHDECL_1 (int,__finite,, (_Mdouble_ + _Mdouble_END_NAMESPACE + + #ifdef __USE_MISC ++# if (!defined __cplusplus \ ++ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ ++ || __MATH_DECLARING_DOUBLE == 0) /* isinff or isinfl don't. */ + /* Return 0 if VALUE is finite or NaN, +1 if it + is +Infinity, -1 if it is -Infinity. */ + __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); ++# endif + + /* Return nonzero if VALUE is finite and not NaN. */ + __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); +@@ -230,8 +234,12 @@ __END_NAMESPACE_C99 + __MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); + + #if defined __USE_MISC || defined __USE_XOPEN ++# if (!defined __cplusplus \ ++ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ ++ || __MATH_DECLARING_DOUBLE == 0) /* isnanf or isnanl don't. */ + /* Return nonzero if VALUE is not a number. */ + __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); ++# endif + + /* Bessel functions. */ + __MATHCALL (j0,, (_Mdouble_)); +Index: glibc-2.22/math/test-math-isinff.cc +=================================================================== +--- /dev/null ++++ glibc-2.22/math/test-math-isinff.cc +@@ -0,0 +1,48 @@ ++/* Test for bug 19439. ++ Copyright (C) 2016 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Marek Polacek , 2012. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define _GNU_SOURCE 1 ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ /* Verify that isinff, isinfl, isnanf, and isnanlf are defined ++ in the header under C++11 and can be called. Without the ++ header fix this test will not compile. */ ++ if (isinff (1.0f) ++ || !isinff (INFINITY) ++ || isinfl (1.0L) ++ || !isinfl (INFINITY) ++ || isnanf (2.0f) ++ || !isnanf (NAN) ++ || isnanl (2.0L) ++ || !isnanl (NAN)) ++ { ++ printf ("FAIL: Failed to call is* functions.\n"); ++ exit (1); ++ } ++ printf ("PASS: Able to call isinff, isinfl, isnanf, and isnanl.\n"); ++ exit (0); ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/powerpc-elision-adapt-param.patch b/powerpc-elision-adapt-param.patch new file mode 100644 index 0000000..49d5f23 --- /dev/null +++ b/powerpc-elision-adapt-param.patch @@ -0,0 +1,81 @@ +2015-12-17 Paul E. Murphy + + [BZ #19174] + * sysdeps/powerpc/nptl/elide.h (__elide_lock): Fix usage of + .skip_lock_out_of_tbegin_retries. + * sysdeps/unix/sysv/linux/powerpc/elision-lock.c + (__lll_lock_elision): Likewise, and respect a value of + try_tbegin <= 0. + +Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h +=================================================================== +--- glibc-2.22.orig/sysdeps/powerpc/nptl/elide.h ++++ glibc-2.22/sysdeps/powerpc/nptl/elide.h +@@ -27,7 +27,7 @@ + configurations. Returns true if the system should retry again or false + otherwise. */ + static inline bool +-__get_new_count (uint8_t *adapt_count) ++__get_new_count (uint8_t *adapt_count, int attempt) + { + /* A persistent failure indicates that a retry will probably + result in another failure. Use normal locking now and +@@ -40,7 +40,7 @@ __get_new_count (uint8_t *adapt_count) + } + /* Same logic as above, but for a number of temporary failures in a + a row. */ +- else if (__elision_aconf.skip_lock_out_of_tbegin_retries > 0 ++ else if (attempt <= 1 && __elision_aconf.skip_lock_out_of_tbegin_retries > 0 + && __elision_aconf.try_tbegin > 0) + *adapt_count = __elision_aconf.skip_lock_out_of_tbegin_retries; + return true; +@@ -78,7 +78,7 @@ __get_new_count (uint8_t *adapt_count) + __builtin_tabort (_ABORT_LOCK_BUSY); \ + } \ + else \ +- if (!__get_new_count(&adapt_count)) \ ++ if (!__get_new_count (&adapt_count,i)) \ + break; \ + } \ + ret; \ +Index: glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-lock.c +=================================================================== +--- glibc-2.22.orig/sysdeps/unix/sysv/linux/powerpc/elision-lock.c ++++ glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-lock.c +@@ -72,8 +72,7 @@ __lll_lock_elision (int *lock, short *ad + goto use_lock; + } + +- int try_begin = aconf.try_tbegin; +- while (1) ++ for (int i = aconf.try_tbegin; i > 0; i--) + { + if (__builtin_tbegin (0)) + { +@@ -87,21 +86,19 @@ __lll_lock_elision (int *lock, short *ad + /* A persistent failure indicates that a retry will probably + result in another failure. Use normal locking now and + for the next couple of calls. */ +- if (try_begin-- <= 0 +- || _TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) ++ if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) + { + if (aconf.skip_lock_internal_abort > 0) + *adapt_count = aconf.skip_lock_internal_abort; + goto use_lock; + } +- /* Same logic as above, but for for a number of temporary failures +- in a row. */ +- else if (aconf.skip_lock_out_of_tbegin_retries > 0 +- && aconf.try_tbegin > 0) +- *adapt_count = aconf.skip_lock_out_of_tbegin_retries; + } + } + ++ /* Fall back to locks for a bit if retries have been exhausted */ ++ if (aconf.try_tbegin > 0 && aconf.skip_lock_out_of_tbegin_retries > 0) ++ *adapt_count = aconf.skip_lock_out_of_tbegin_retries; ++ + use_lock: + return LLL_LOCK ((*lock), pshared); + } diff --git a/0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch b/powerpc-lock-elision-race.patch similarity index 81% rename from 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch rename to powerpc-lock-elision-race.patch index 07776c3..06067f6 100644 --- a/0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch +++ b/powerpc-lock-elision-race.patch @@ -1,18 +1,4 @@ -From: Tulio Magno Quites Machado Filho -Date: Thu, 30 Jul 2015 13:48:56 -0300 -Subject: [PATCH][BZ 18743] PowerPC: Fix a race condition when eliding a lock - - [PATCH][BZ 18743] PowerPC: Fix a race condition when eliding a lock - -The previous code used to evaluate the preprocessor token is_lock_free to -a variable before starting a transaction. This behavior can cause an -error if another thread got the lock (without using a transaction) -between the conversion of the token and the beginning of the transaction. - -This patch delays the evaluation of is_lock_free to inside a transaction -by moving this part of the code to the macro ELIDE_LOCK. - -2015-07-30 Tulio Magno Quites Machado Filho +2015-10-20 Tulio Magno Quites Machado Filho [BZ #18743] * sysdeps/powerpc/nptl/elide.h (__elide_lock): Move most of this @@ -24,13 +10,11 @@ by moving this part of the code to the macro ELIDE_LOCK. (__elided_trylock): Moved this code to... (ELIDE_TRYLOCK): ...here. -Signed-off-by: Tulio Magno Quites Machado Filho -Signed-off-by: Michel Normand Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h =================================================================== --- glibc-2.22.orig/sysdeps/powerpc/nptl/elide.h +++ glibc-2.22/sysdeps/powerpc/nptl/elide.h -@@ -23,67 +23,67 @@ +@@ -23,67 +23,78 @@ # include # include @@ -96,7 +80,8 @@ Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h -# define ELIDE_LOCK(adapt_count, is_lock_free) \ - __elide_lock (&(adapt_count), is_lock_free) - -- ++/* CONCURRENCY NOTES: + -static inline bool -__elide_trylock (uint8_t *adapt_count, int is_lock_free, int write) -{ @@ -108,6 +93,16 @@ Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h - } - return false; -} ++ The evaluation of the macro expression is_lock_free encompasses one or ++ more loads from memory locations that are concurrently modified by other ++ threads. For lock elision to work, this evaluation and the rest of the ++ critical section protected by the lock must be atomic because an ++ execution with lock elision must be equivalent to an execution in which ++ the lock would have been actually acquired and released. Therefore, we ++ evaluate is_lock_free inside of the transaction that represents the ++ critical section for which we want to use lock elision, which ensures ++ the atomicity that we require. */ ++ +/* Returns 0 if the lock defined by is_lock_free was elided. + ADAPT_COUNT is a per-lock state variable. */ +# define ELIDE_LOCK(adapt_count, is_lock_free) \ @@ -118,7 +113,6 @@ Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h + else \ + for (int i = __elision_aconf.try_tbegin; i > 0; i--) \ + { \ -+ asm volatile("" ::: "memory"); \ + if (__builtin_tbegin (0)) \ + { \ + if (is_lock_free) \ diff --git a/prelink-elf-rtype-class.patch b/prelink-elf-rtype-class.patch new file mode 100644 index 0000000..2bebff4 --- /dev/null +++ b/prelink-elf-rtype-class.patch @@ -0,0 +1,258 @@ +2015-11-14 H.J. Lu + + * config.make.in (have-glob-dat-reloc): New. + * configure.ac (libc_cv_has_glob_dat): New. Set to yes if + target supports GLOB_DAT relocaton. AC_SUBST. + * configure: Regenerated. + * elf/Makefile (tests): Add tst-prelink. + (tests-special): Add $(objpfx)tst-prelink-cmp.out. + (tst-prelink-ENV): New. + ($(objpfx)tst-prelink-conflict.out): Likewise. + ($(objpfx)tst-prelink-cmp.out): Likewise. + * sysdeps/x86/tst-prelink.c: Moved to ... + * elf/tst-prelink.c: Here. + * sysdeps/x86/tst-prelink.exp: Moved to ... + * elf/tst-prelink.exp: Here. + * sysdeps/x86/Makefile (tests): Don't add tst-prelink. + (tst-prelink-ENV): Removed. + ($(objpfx)tst-prelink-conflict.out): Likewise. + ($(objpfx)tst-prelink-cmp.out): Likewise. + (tests-special): Don't add $(objpfx)tst-prelink-cmp.out. + +2015-11-10 H.J. Lu + + [BZ #19178] + * sysdeps/x86/Makefile (tests): Add tst-prelink. + (tst-prelink-ENV): New. + ($(objpfx)tst-prelink-conflict.out): Likewise. + ($(objpfx)tst-prelink-cmp.out): Likewise. + (tests-special): Add $(objpfx)tst-prelink-cmp.out. + * sysdeps/x86/tst-prelink.c: New file. + * sysdeps/x86/tst-prelink.exp: Likewise. + +2015-11-07 H.J. Lu + + [BZ #19178] + * elf/dl-lookup.c (RTYPE_CLASS_VALID): New. + (RTYPE_CLASS_PLT): Likewise. + (RTYPE_CLASS_COPY): Likewise. + (RTYPE_CLASS_TLS): Likewise. + (_dl_debug_bindings): Use RTYPE_CLASS_TLS and RTYPE_CLASS_VALID + to set relocation type class for DL_DEBUG_PRELINK. Keep only + ELF_RTYPE_CLASS_PLT and ELF_RTYPE_CLASS_COPY bits for + DL_DEBUG_PRELINK. + +Index: glibc-2.22/config.make.in +=================================================================== +--- glibc-2.22.orig/config.make.in ++++ glibc-2.22/config.make.in +@@ -51,6 +51,7 @@ have-z-combreloc = @libc_cv_z_combreloc@ + have-z-execstack = @libc_cv_z_execstack@ + have-Bgroup = @libc_cv_Bgroup@ + have-protected-data = @libc_cv_protected_data@ ++have-glob-dat-reloc = @libc_cv_has_glob_dat@ + with-fp = @with_fp@ + old-glibc-headers = @old_glibc_headers@ + unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ +Index: glibc-2.22/configure +=================================================================== +--- glibc-2.22.orig/configure ++++ glibc-2.22/configure +@@ -628,6 +628,7 @@ gnu89_inline + libc_cv_ssp + fno_unit_at_a_time + libc_cv_output_format ++libc_cv_has_glob_dat + libc_cv_hashstyle + libc_cv_fpie + libc_cv_z_execstack +@@ -6335,6 +6336,39 @@ $as_echo "$libc_cv_use_default_link" >&6 + use_default_link=$libc_cv_use_default_link + fi + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5 ++$as_echo_n "checking for GLOB_DAT reloc... " >&6; } ++if ${libc_cv_has_glob_dat+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat > conftest.c <&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; } ++then ++ if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then ++ libc_cv_has_glob_dat=yes ++ else ++ libc_cv_has_glob_dat=no ++ fi ++else ++ libc_cv_has_glob_dat=no ++fi ++rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_has_glob_dat" >&5 ++$as_echo "$libc_cv_has_glob_dat" >&6; } ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker output format" >&5 + $as_echo_n "checking linker output format... " >&6; } + if ${libc_cv_output_format+:} false; then : +Index: glibc-2.22/configure.ac +=================================================================== +--- glibc-2.22.orig/configure.ac ++++ glibc-2.22/configure.ac +@@ -1535,6 +1535,29 @@ $ac_try" + use_default_link=$libc_cv_use_default_link + fi + ++AC_CACHE_CHECK(for GLOB_DAT reloc, ++ libc_cv_has_glob_dat, [dnl ++cat > conftest.c <&AS_MESSAGE_LOG_FD]) ++then ++dnl look for GLOB_DAT relocation. ++ if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then ++ libc_cv_has_glob_dat=yes ++ else ++ libc_cv_has_glob_dat=no ++ fi ++else ++ libc_cv_has_glob_dat=no ++fi ++rm -f conftest*]) ++AC_SUBST(libc_cv_has_glob_dat) ++ + AC_CACHE_CHECK(linker output format, libc_cv_output_format, [dnl + if libc_cv_output_format=` + ${CC-cc} -nostartfiles -nostdlib -Wl,--print-output-format 2>&AS_MESSAGE_LOG_FD` +Index: glibc-2.22/elf/Makefile +=================================================================== +--- glibc-2.22.orig/elf/Makefile ++++ glibc-2.22/elf/Makefile +@@ -292,6 +292,13 @@ check-abi: $(objpfx)check-abi-ld.out + tests-special += $(objpfx)check-abi-ld.out + update-abi: update-abi-ld + ++ifeq ($(have-glob-dat-reloc),yes) ++tests += tst-prelink ++ifeq ($(run-built-tests),yes) ++tests-special += $(objpfx)tst-prelink-cmp.out ++endif ++endif ++ + include ../Rules + + ifeq (yes,$(build-shared)) +@@ -1205,3 +1212,13 @@ $(objpfx)tst-unused-dep.out: $(objpfx)te + $(objpfx)tst-unused-dep-cmp.out: $(objpfx)tst-unused-dep.out + cmp $< /dev/null > $@; \ + $(evaluate-test) ++ ++tst-prelink-ENV = LD_TRACE_PRELINKING=1 ++ ++$(objpfx)tst-prelink-conflict.out: $(objpfx)tst-prelink.out ++ grep stdout $< | grep conflict | $(AWK) '{ print $$10, $$11 }' > $@ ++ ++$(objpfx)tst-prelink-cmp.out: tst-prelink.exp \ ++ $(objpfx)tst-prelink-conflict.out ++ cmp $^ > $@; \ ++ $(evaluate-test) +Index: glibc-2.22/elf/dl-lookup.c +=================================================================== +--- glibc-2.22.orig/elf/dl-lookup.c ++++ glibc-2.22/elf/dl-lookup.c +@@ -1016,6 +1016,18 @@ _dl_debug_bindings (const char *undef_na + #ifdef SHARED + if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) + { ++/* ELF_RTYPE_CLASS_XXX must match RTYPE_CLASS_XXX used by prelink with ++ LD_TRACE_PRELINKING. */ ++#define RTYPE_CLASS_VALID 8 ++#define RTYPE_CLASS_PLT (8|1) ++#define RTYPE_CLASS_COPY (8|2) ++#define RTYPE_CLASS_TLS (8|4) ++#if ELF_RTYPE_CLASS_PLT != 0 && ELF_RTYPE_CLASS_PLT != 1 ++# error ELF_RTYPE_CLASS_PLT must be 0 or 1! ++#endif ++#if ELF_RTYPE_CLASS_COPY != 0 && ELF_RTYPE_CLASS_COPY != 2 ++# error ELF_RTYPE_CLASS_COPY must be 0 or 2! ++#endif + int conflict = 0; + struct sym_val val = { NULL, NULL }; + +@@ -1071,12 +1083,17 @@ _dl_debug_bindings (const char *undef_na + + if (value->s) + { ++ /* Keep only ELF_RTYPE_CLASS_PLT and ELF_RTYPE_CLASS_COPY ++ bits since since prelink only uses them. */ ++ type_class &= ELF_RTYPE_CLASS_PLT | ELF_RTYPE_CLASS_COPY; + if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info) + == STT_TLS)) +- type_class = 4; ++ /* Clear the RTYPE_CLASS_VALID bit in RTYPE_CLASS_TLS. */ ++ type_class = RTYPE_CLASS_TLS & ~RTYPE_CLASS_VALID; + else if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info) + == STT_GNU_IFUNC)) +- type_class |= 8; ++ /* Set the RTYPE_CLASS_VALID bit. */ ++ type_class |= RTYPE_CLASS_VALID; + } + + if (conflict +Index: glibc-2.22/elf/tst-prelink.c +=================================================================== +--- /dev/null ++++ glibc-2.22/elf/tst-prelink.c +@@ -0,0 +1,30 @@ ++/* Test the output from the environment variable, LD_TRACE_PRELINKING, ++ for prelink. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++static int ++do_test (void) ++{ ++ fprintf (stdout, "hello\n"); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.22/elf/tst-prelink.exp +=================================================================== +--- /dev/null ++++ glibc-2.22/elf/tst-prelink.exp +@@ -0,0 +1 @@ ++/0 stdout diff --git a/refactor-nan-parsing.patch b/refactor-nan-parsing.patch new file mode 100644 index 0000000..1d51201 --- /dev/null +++ b/refactor-nan-parsing.patch @@ -0,0 +1,896 @@ +2015-11-24 Joseph Myers + + * stdlib/strtod_nan.c: New file. + * stdlib/strtod_nan_double.h: Likewise. + * stdlib/strtod_nan_float.h: Likewise. + * stdlib/strtod_nan_main.c: Likewise. + * stdlib/strtod_nan_narrow.h: Likewise. + * stdlib/strtod_nan_wide.h: Likewise. + * stdlib/strtof_nan.c: Likewise. + * stdlib/strtold_nan.c: Likewise. + * sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h: Likewise. + * sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h: Likewise. + * sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h: Likewise. + * wcsmbs/wcstod_nan.c: Likewise. + * wcsmbs/wcstof_nan.c: Likewise. + * wcsmbs/wcstold_nan.c: Likewise. + * stdlib/Makefile (routines): Add strtof_nan, strtod_nan and + strtold_nan. + * wcsmbs/Makefile (routines): Add wcstod_nan, wcstold_nan and + wcstof_nan. + * include/stdlib.h (__strtof_nan): Declare and use + libc_hidden_proto. + (__strtod_nan): Likewise. + (__strtold_nan): Likewise. + (__wcstof_nan): Likewise. + (__wcstod_nan): Likewise. + (__wcstold_nan): Likewise. + * include/wchar.h (____wcstoull_l_internal): Declare. + * stdlib/strtod_l.c: Do not include . + (____strtoull_l_internal): Remove declaration. + (STRTOF_NAN): Define macro. + (SET_MANTISSA): Remove macro. + (STRTOULL): Likewise. + (____STRTOF_INTERNAL): Use STRTOF_NAN to parse NaN payload. + * stdlib/strtof_l.c (____strtoull_l_internal): Remove declaration. + (STRTOF_NAN): Define macro. + (SET_MANTISSA): Remove macro. + * sysdeps/ieee754/ldbl-128/strtold_l.c (STRTOF_NAN): Define macro. + (SET_MANTISSA): Remove macro. + * sysdeps/ieee754/ldbl-128ibm/strtold_l.c (STRTOF_NAN): Define + macro. + (SET_MANTISSA): Remove macro. + * sysdeps/ieee754/ldbl-64-128/strtold_l.c (STRTOF_NAN): Define + macro. + (SET_MANTISSA): Remove macro. + * sysdeps/ieee754/ldbl-96/strtold_l.c (STRTOF_NAN): Define macro. + (SET_MANTISSA): Remove macro. + * wcsmbs/wcstod_l.c (____wcstoull_l_internal): Remove declaration. + * wcsmbs/wcstof_l.c (____wcstoull_l_internal): Likewise. + * wcsmbs/wcstold_l.c (____wcstoull_l_internal): Likewise. + +Index: glibc-2.22/include/stdlib.h +=================================================================== +--- glibc-2.22.orig/include/stdlib.h ++++ glibc-2.22/include/stdlib.h +@@ -203,6 +203,24 @@ libc_hidden_proto (strtoll) + libc_hidden_proto (strtoul) + libc_hidden_proto (strtoull) + ++extern float __strtof_nan (const char *, char **, char) internal_function; ++extern double __strtod_nan (const char *, char **, char) internal_function; ++extern long double __strtold_nan (const char *, char **, char) ++ internal_function; ++extern float __wcstof_nan (const wchar_t *, wchar_t **, wchar_t) ++ internal_function; ++extern double __wcstod_nan (const wchar_t *, wchar_t **, wchar_t) ++ internal_function; ++extern long double __wcstold_nan (const wchar_t *, wchar_t **, wchar_t) ++ internal_function; ++ ++libc_hidden_proto (__strtof_nan) ++libc_hidden_proto (__strtod_nan) ++libc_hidden_proto (__strtold_nan) ++libc_hidden_proto (__wcstof_nan) ++libc_hidden_proto (__wcstod_nan) ++libc_hidden_proto (__wcstold_nan) ++ + extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign); + extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt, +Index: glibc-2.22/include/wchar.h +=================================================================== +--- glibc-2.22.orig/include/wchar.h ++++ glibc-2.22/include/wchar.h +@@ -52,6 +52,9 @@ extern unsigned long long int __wcstoull + __restrict __endptr, + int __base, + int __group) __THROW; ++extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, ++ wchar_t **, int, int, ++ __locale_t); + libc_hidden_proto (__wcstof_internal) + libc_hidden_proto (__wcstod_internal) + libc_hidden_proto (__wcstold_internal) +Index: glibc-2.22/stdlib/Makefile +=================================================================== +--- glibc-2.22.orig/stdlib/Makefile ++++ glibc-2.22/stdlib/Makefile +@@ -50,6 +50,7 @@ routines := \ + strtol_l strtoul_l strtoll_l strtoull_l \ + strtof strtod strtold \ + strtof_l strtod_l strtold_l \ ++ strtof_nan strtod_nan strtold_nan \ + system canonicalize \ + a64l l64a \ + rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \ +Index: glibc-2.22/stdlib/strtod_l.c +=================================================================== +--- glibc-2.22.orig/stdlib/strtod_l.c ++++ glibc-2.22/stdlib/strtod_l.c +@@ -20,8 +20,6 @@ + #include + + extern double ____strtod_l_internal (const char *, char **, int, __locale_t); +-extern unsigned long long int ____strtoull_l_internal (const char *, char **, +- int, int, __locale_t); + + /* Configuration part. These macros are defined by `strtold.c', + `strtof.c', `wcstod.c', `wcstold.c', and `wcstof.c' to produce the +@@ -33,27 +31,20 @@ extern unsigned long long int ____strtou + # ifdef USE_WIDE_CHAR + # define STRTOF wcstod_l + # define __STRTOF __wcstod_l ++# define STRTOF_NAN __wcstod_nan + # else + # define STRTOF strtod_l + # define __STRTOF __strtod_l ++# define STRTOF_NAN __strtod_nan + # endif + # define MPN2FLOAT __mpn_construct_double + # define FLOAT_HUGE_VAL HUGE_VAL +-# define SET_MANTISSA(flt, mant) \ +- do { union ieee754_double u; \ +- u.d = (flt); \ +- u.ieee_nan.mantissa0 = (mant) >> 32; \ +- u.ieee_nan.mantissa1 = (mant); \ +- if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ +- (flt) = u.d; \ +- } while (0) + #endif + /* End of configuration part. */ + + #include + #include + #include +-#include + #include "../locale/localeinfo.h" + #include + #include +@@ -104,7 +95,6 @@ extern unsigned long long int ____strtou + # define TOLOWER_C(Ch) __towlower_l ((Ch), _nl_C_locobj_ptr) + # define STRNCASECMP(S1, S2, N) \ + __wcsncasecmp_l ((S1), (S2), (N), _nl_C_locobj_ptr) +-# define STRTOULL(S, E, B) ____wcstoull_l_internal ((S), (E), (B), 0, loc) + #else + # define STRING_TYPE char + # define CHAR_TYPE char +@@ -116,7 +106,6 @@ extern unsigned long long int ____strtou + # define TOLOWER_C(Ch) __tolower_l ((Ch), _nl_C_locobj_ptr) + # define STRNCASECMP(S1, S2, N) \ + __strncasecmp_l ((S1), (S2), (N), _nl_C_locobj_ptr) +-# define STRTOULL(S, E, B) ____strtoull_l_internal ((S), (E), (B), 0, loc) + #endif + + +@@ -655,33 +644,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group + if (*cp == L_('(')) + { + const STRING_TYPE *startp = cp; +- do +- ++cp; +- while ((*cp >= L_('0') && *cp <= L_('9')) +- || ({ CHAR_TYPE lo = TOLOWER (*cp); +- lo >= L_('a') && lo <= L_('z'); }) +- || *cp == L_('_')); +- +- if (*cp != L_(')')) +- /* The closing brace is missing. Only match the NAN +- part. */ +- cp = startp; ++ STRING_TYPE *endp; ++ retval = STRTOF_NAN (cp + 1, &endp, L_(')')); ++ if (*endp == L_(')')) ++ /* Consume the closing parenthesis. */ ++ cp = endp + 1; + else +- { +- /* This is a system-dependent way to specify the +- bitmask used for the NaN. We expect it to be +- a number which is put in the mantissa of the +- number. */ +- STRING_TYPE *endp; +- unsigned long long int mant; +- +- mant = STRTOULL (startp + 1, &endp, 0); +- if (endp == cp) +- SET_MANTISSA (retval, mant); +- +- /* Consume the closing brace. */ +- ++cp; +- } ++ /* Only match the NAN part. */ ++ cp = startp; + } + + if (endptr != NULL) +Index: glibc-2.22/stdlib/strtod_nan.c +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtod_nan.c +@@ -0,0 +1,24 @@ ++/* Convert string for NaN payload to corresponding NaN. Narrow ++ strings, double. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define STRTOD_NAN __strtod_nan ++#include +Index: glibc-2.22/stdlib/strtod_nan_double.h +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtod_nan_double.h +@@ -0,0 +1,30 @@ ++/* Convert string for NaN payload to corresponding NaN. For double. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define FLOAT double ++#define SET_MANTISSA(flt, mant) \ ++ do \ ++ { \ ++ union ieee754_double u; \ ++ u.d = (flt); \ ++ u.ieee_nan.mantissa0 = (mant) >> 32; \ ++ u.ieee_nan.mantissa1 = (mant); \ ++ if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ ++ (flt) = u.d; \ ++ } \ ++ while (0) +Index: glibc-2.22/stdlib/strtod_nan_float.h +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtod_nan_float.h +@@ -0,0 +1,29 @@ ++/* Convert string for NaN payload to corresponding NaN. For float. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define FLOAT float ++#define SET_MANTISSA(flt, mant) \ ++ do \ ++ { \ ++ union ieee754_float u; \ ++ u.f = (flt); \ ++ u.ieee_nan.mantissa = (mant); \ ++ if (u.ieee.mantissa != 0) \ ++ (flt) = u.f; \ ++ } \ ++ while (0) +Index: glibc-2.22/stdlib/strtod_nan_main.c +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtod_nan_main.c +@@ -0,0 +1,63 @@ ++/* Convert string for NaN payload to corresponding NaN. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* If STR starts with an optional n-char-sequence as defined by ISO C ++ (a sequence of ASCII letters, digits and underscores), followed by ++ ENDC, return a NaN whose payload is set based on STR. Otherwise, ++ return a default NAN. If ENDPTR is not NULL, set *ENDPTR to point ++ to the character after the initial n-char-sequence. */ ++ ++internal_function ++FLOAT ++STRTOD_NAN (const STRING_TYPE *str, STRING_TYPE **endptr, STRING_TYPE endc) ++{ ++ const STRING_TYPE *cp = str; ++ ++ while ((*cp >= L_('0') && *cp <= L_('9')) ++ || (*cp >= L_('A') && *cp <= L_('Z')) ++ || (*cp >= L_('a') && *cp <= L_('z')) ++ || *cp == L_('_')) ++ ++cp; ++ ++ FLOAT retval = NAN; ++ if (*cp != endc) ++ goto out; ++ ++ /* This is a system-dependent way to specify the bitmask used for ++ the NaN. We expect it to be a number which is put in the ++ mantissa of the number. */ ++ STRING_TYPE *endp; ++ unsigned long long int mant; ++ ++ mant = STRTOULL (str, &endp, 0); ++ if (endp == cp) ++ SET_MANTISSA (retval, mant); ++ ++ out: ++ if (endptr != NULL) ++ *endptr = (STRING_TYPE *) cp; ++ return retval; ++} ++libc_hidden_def (STRTOD_NAN) +Index: glibc-2.22/stdlib/strtod_nan_narrow.h +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtod_nan_narrow.h +@@ -0,0 +1,22 @@ ++/* Convert string for NaN payload to corresponding NaN. Narrow strings. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define STRING_TYPE char ++#define L_(Ch) Ch ++#define STRTOULL(S, E, B) ____strtoull_l_internal ((S), (E), (B), 0, \ ++ _nl_C_locobj_ptr) +Index: glibc-2.22/stdlib/strtod_nan_wide.h +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtod_nan_wide.h +@@ -0,0 +1,22 @@ ++/* Convert string for NaN payload to corresponding NaN. Wide strings. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define STRING_TYPE wchar_t ++#define L_(Ch) L##Ch ++#define STRTOULL(S, E, B) ____wcstoull_l_internal ((S), (E), (B), 0, \ ++ _nl_C_locobj_ptr) +Index: glibc-2.22/stdlib/strtof_l.c +=================================================================== +--- glibc-2.22.orig/stdlib/strtof_l.c ++++ glibc-2.22/stdlib/strtof_l.c +@@ -20,26 +20,19 @@ + #include + + extern float ____strtof_l_internal (const char *, char **, int, __locale_t); +-extern unsigned long long int ____strtoull_l_internal (const char *, char **, +- int, int, __locale_t); + + #define FLOAT float + #define FLT FLT + #ifdef USE_WIDE_CHAR + # define STRTOF wcstof_l + # define __STRTOF __wcstof_l ++# define STRTOF_NAN __wcstof_nan + #else + # define STRTOF strtof_l + # define __STRTOF __strtof_l ++# define STRTOF_NAN __strtof_nan + #endif + #define MPN2FLOAT __mpn_construct_float + #define FLOAT_HUGE_VAL HUGE_VALF +-#define SET_MANTISSA(flt, mant) \ +- do { union ieee754_float u; \ +- u.f = (flt); \ +- u.ieee_nan.mantissa = (mant); \ +- if (u.ieee.mantissa != 0) \ +- (flt) = u.f; \ +- } while (0) + + #include "strtod_l.c" +Index: glibc-2.22/stdlib/strtof_nan.c +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtof_nan.c +@@ -0,0 +1,24 @@ ++/* Convert string for NaN payload to corresponding NaN. Narrow ++ strings, float. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define STRTOD_NAN __strtof_nan ++#include +Index: glibc-2.22/stdlib/strtold_nan.c +=================================================================== +--- /dev/null ++++ glibc-2.22/stdlib/strtold_nan.c +@@ -0,0 +1,30 @@ ++/* Convert string for NaN payload to corresponding NaN. Narrow ++ strings, long double. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* This function is unused if long double and double have the same ++ representation. */ ++#ifndef __NO_LONG_DOUBLE_MATH ++# include ++# include ++ ++# define STRTOD_NAN __strtold_nan ++# include ++#endif +Index: glibc-2.22/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h +=================================================================== +--- /dev/null ++++ glibc-2.22/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h +@@ -0,0 +1,33 @@ ++/* Convert string for NaN payload to corresponding NaN. For ldbl-128. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define FLOAT long double ++#define SET_MANTISSA(flt, mant) \ ++ do \ ++ { \ ++ union ieee854_long_double u; \ ++ u.d = (flt); \ ++ u.ieee_nan.mantissa0 = 0; \ ++ u.ieee_nan.mantissa1 = 0; \ ++ u.ieee_nan.mantissa2 = (mant) >> 32; \ ++ u.ieee_nan.mantissa3 = (mant); \ ++ if ((u.ieee.mantissa0 | u.ieee.mantissa1 \ ++ | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \ ++ (flt) = u.d; \ ++ } \ ++ while (0) +Index: glibc-2.22/sysdeps/ieee754/ldbl-128/strtold_l.c +=================================================================== +--- glibc-2.22.orig/sysdeps/ieee754/ldbl-128/strtold_l.c ++++ glibc-2.22/sysdeps/ieee754/ldbl-128/strtold_l.c +@@ -25,22 +25,13 @@ + #ifdef USE_WIDE_CHAR + # define STRTOF wcstold_l + # define __STRTOF __wcstold_l ++# define STRTOF_NAN __wcstold_nan + #else + # define STRTOF strtold_l + # define __STRTOF __strtold_l ++# define STRTOF_NAN __strtold_nan + #endif + #define MPN2FLOAT __mpn_construct_long_double + #define FLOAT_HUGE_VAL HUGE_VALL +-#define SET_MANTISSA(flt, mant) \ +- do { union ieee854_long_double u; \ +- u.d = (flt); \ +- u.ieee_nan.mantissa0 = 0; \ +- u.ieee_nan.mantissa1 = 0; \ +- u.ieee_nan.mantissa2 = (mant) >> 32; \ +- u.ieee_nan.mantissa3 = (mant); \ +- if ((u.ieee.mantissa0 | u.ieee.mantissa1 \ +- | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \ +- (flt) = u.d; \ +- } while (0) + + #include +Index: glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h +=================================================================== +--- /dev/null ++++ glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h +@@ -0,0 +1,30 @@ ++/* Convert string for NaN payload to corresponding NaN. For ldbl-128ibm. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define FLOAT long double ++#define SET_MANTISSA(flt, mant) \ ++ do \ ++ { \ ++ union ibm_extended_long_double u; \ ++ u.ld = (flt); \ ++ u.d[0].ieee_nan.mantissa0 = (mant) >> 32; \ ++ u.d[0].ieee_nan.mantissa1 = (mant); \ ++ if ((u.d[0].ieee.mantissa0 | u.d[0].ieee.mantissa1) != 0) \ ++ (flt) = u.ld; \ ++ } \ ++ while (0) +Index: glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtold_l.c +=================================================================== +--- glibc-2.22.orig/sysdeps/ieee754/ldbl-128ibm/strtold_l.c ++++ glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtold_l.c +@@ -30,25 +30,19 @@ extern long double ____new_wcstold_l (co + # define STRTOF __new_wcstold_l + # define __STRTOF ____new_wcstold_l + # define ____STRTOF_INTERNAL ____wcstold_l_internal ++# define STRTOF_NAN __wcstold_nan + #else + extern long double ____new_strtold_l (const char *, char **, __locale_t); + # define STRTOF __new_strtold_l + # define __STRTOF ____new_strtold_l + # define ____STRTOF_INTERNAL ____strtold_l_internal ++# define STRTOF_NAN __strtold_nan + #endif + extern __typeof (__STRTOF) STRTOF; + libc_hidden_proto (__STRTOF) + libc_hidden_proto (STRTOF) + #define MPN2FLOAT __mpn_construct_long_double + #define FLOAT_HUGE_VAL HUGE_VALL +-# define SET_MANTISSA(flt, mant) \ +- do { union ibm_extended_long_double u; \ +- u.ld = (flt); \ +- u.d[0].ieee_nan.mantissa0 = (mant) >> 32; \ +- u.d[0].ieee_nan.mantissa1 = (mant); \ +- if ((u.d[0].ieee.mantissa0 | u.d[0].ieee.mantissa1) != 0) \ +- (flt) = u.ld; \ +- } while (0) + + #include + +Index: glibc-2.22/sysdeps/ieee754/ldbl-64-128/strtold_l.c +=================================================================== +--- glibc-2.22.orig/sysdeps/ieee754/ldbl-64-128/strtold_l.c ++++ glibc-2.22/sysdeps/ieee754/ldbl-64-128/strtold_l.c +@@ -30,28 +30,19 @@ extern long double ____new_wcstold_l (co + # define STRTOF __new_wcstold_l + # define __STRTOF ____new_wcstold_l + # define ____STRTOF_INTERNAL ____wcstold_l_internal ++# define STRTOF_NAN __wcstold_nan + #else + extern long double ____new_strtold_l (const char *, char **, __locale_t); + # define STRTOF __new_strtold_l + # define __STRTOF ____new_strtold_l + # define ____STRTOF_INTERNAL ____strtold_l_internal ++# define STRTOF_NAN __strtold_nan + #endif + extern __typeof (__STRTOF) STRTOF; + libc_hidden_proto (__STRTOF) + libc_hidden_proto (STRTOF) + #define MPN2FLOAT __mpn_construct_long_double + #define FLOAT_HUGE_VAL HUGE_VALL +-#define SET_MANTISSA(flt, mant) \ +- do { union ieee854_long_double u; \ +- u.d = (flt); \ +- u.ieee_nan.mantissa0 = 0; \ +- u.ieee_nan.mantissa1 = 0; \ +- u.ieee_nan.mantissa2 = (mant) >> 32; \ +- u.ieee_nan.mantissa3 = (mant); \ +- if ((u.ieee.mantissa0 | u.ieee.mantissa1 \ +- | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \ +- (flt) = u.d; \ +- } while (0) + + #include + +Index: glibc-2.22/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h +=================================================================== +--- /dev/null ++++ glibc-2.22/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h +@@ -0,0 +1,30 @@ ++/* Convert string for NaN payload to corresponding NaN. For ldbl-96. ++ Copyright (C) 1997-2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define FLOAT long double ++#define SET_MANTISSA(flt, mant) \ ++ do \ ++ { \ ++ union ieee854_long_double u; \ ++ u.d = (flt); \ ++ u.ieee_nan.mantissa0 = (mant) >> 32; \ ++ u.ieee_nan.mantissa1 = (mant); \ ++ if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ ++ (flt) = u.d; \ ++ } \ ++ while (0) +Index: glibc-2.22/sysdeps/ieee754/ldbl-96/strtold_l.c +=================================================================== +--- glibc-2.22.orig/sysdeps/ieee754/ldbl-96/strtold_l.c ++++ glibc-2.22/sysdeps/ieee754/ldbl-96/strtold_l.c +@@ -25,19 +25,13 @@ + #ifdef USE_WIDE_CHAR + # define STRTOF wcstold_l + # define __STRTOF __wcstold_l ++# define STRTOF_NAN __wcstold_nan + #else + # define STRTOF strtold_l + # define __STRTOF __strtold_l ++# define STRTOF_NAN __strtold_nan + #endif + #define MPN2FLOAT __mpn_construct_long_double + #define FLOAT_HUGE_VAL HUGE_VALL +-#define SET_MANTISSA(flt, mant) \ +- do { union ieee854_long_double u; \ +- u.d = (flt); \ +- u.ieee_nan.mantissa0 = (mant) >> 32; \ +- u.ieee_nan.mantissa1 = (mant); \ +- if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ +- (flt) = u.d; \ +- } while (0) + + #include +Index: glibc-2.22/wcsmbs/Makefile +=================================================================== +--- glibc-2.22.orig/wcsmbs/Makefile ++++ glibc-2.22/wcsmbs/Makefile +@@ -33,6 +33,7 @@ routines := wcscat wcschr wcscmp wcscpy + wcstol wcstoul wcstoll wcstoull wcstod wcstold wcstof \ + wcstol_l wcstoul_l wcstoll_l wcstoull_l \ + wcstod_l wcstold_l wcstof_l \ ++ wcstod_nan wcstold_nan wcstof_nan \ + wcscoll wcsxfrm \ + wcwidth wcswidth \ + wcscoll_l wcsxfrm_l \ +Index: glibc-2.22/wcsmbs/wcstod_l.c +=================================================================== +--- glibc-2.22.orig/wcsmbs/wcstod_l.c ++++ glibc-2.22/wcsmbs/wcstod_l.c +@@ -23,9 +23,6 @@ + + extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int, + __locale_t); +-extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, +- wchar_t **, int, int, +- __locale_t); + + #define USE_WIDE_CHAR 1 + +Index: glibc-2.22/wcsmbs/wcstod_nan.c +=================================================================== +--- /dev/null ++++ glibc-2.22/wcsmbs/wcstod_nan.c +@@ -0,0 +1,23 @@ ++/* Convert string for NaN payload to corresponding NaN. Wide strings, double. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "../stdlib/strtod_nan_wide.h" ++#include "../stdlib/strtod_nan_double.h" ++ ++#define STRTOD_NAN __wcstod_nan ++#include "../stdlib/strtod_nan_main.c" +Index: glibc-2.22/wcsmbs/wcstof_l.c +=================================================================== +--- glibc-2.22.orig/wcsmbs/wcstof_l.c ++++ glibc-2.22/wcsmbs/wcstof_l.c +@@ -25,8 +25,5 @@ + + extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int, + __locale_t); +-extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, +- wchar_t **, int, int, +- __locale_t); + + #include +Index: glibc-2.22/wcsmbs/wcstof_nan.c +=================================================================== +--- /dev/null ++++ glibc-2.22/wcsmbs/wcstof_nan.c +@@ -0,0 +1,23 @@ ++/* Convert string for NaN payload to corresponding NaN. Wide strings, float. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "../stdlib/strtod_nan_wide.h" ++#include "../stdlib/strtod_nan_float.h" ++ ++#define STRTOD_NAN __wcstof_nan ++#include "../stdlib/strtod_nan_main.c" +Index: glibc-2.22/wcsmbs/wcstold_l.c +=================================================================== +--- glibc-2.22.orig/wcsmbs/wcstold_l.c ++++ glibc-2.22/wcsmbs/wcstold_l.c +@@ -24,8 +24,5 @@ + + extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int, + __locale_t); +-extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, +- wchar_t **, int, int, +- __locale_t); + + #include +Index: glibc-2.22/wcsmbs/wcstold_nan.c +=================================================================== +--- /dev/null ++++ glibc-2.22/wcsmbs/wcstold_nan.c +@@ -0,0 +1,30 @@ ++/* Convert string for NaN payload to corresponding NaN. Wide strings, ++ long double. ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* This function is unused if long double and double have the same ++ representation. */ ++#ifndef __NO_LONG_DOUBLE_MATH ++# include "../stdlib/strtod_nan_wide.h" ++# include ++ ++# define STRTOD_NAN __wcstold_nan ++# include "../stdlib/strtod_nan_main.c" ++#endif diff --git a/send-dg-buffer-overflow.patch b/send-dg-buffer-overflow.patch new file mode 100644 index 0000000..ae71f49 --- /dev/null +++ b/send-dg-buffer-overflow.patch @@ -0,0 +1,569 @@ +2016-02-15 Carlos O'Donell + + [BZ #18665] + * resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Always set + *herrno_p. + (gaih_getanswer): Document functional behviour. Return tryagain + if any result is tryagain. + * resolv/res_query.c (__libc_res_nsearch): Set buffer size to zero + when freed. + * resolv/res_send.c: Add copyright text. + (__libc_res_nsend): Document that MAXPACKET is expected. + (send_vc): Document. Remove buffer reuse. + (send_dg): Document. Remove buffer reuse. Set *thisanssizp to set the + size of the buffer. Add Dprint for truncated UDP buffer. + +Index: glibc-2.22/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.22.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.22/resolv/nss_dns/dns-host.c +@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *an + int h_namelen = 0; + + if (ancount == 0) +- return NSS_STATUS_NOTFOUND; ++ { ++ *h_errnop = HOST_NOT_FOUND; ++ return NSS_STATUS_NOTFOUND; ++ } + + while (ancount-- > 0 && cp < end_of_message && had_error == 0) + { +@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *an + /* Special case here: if the resolver sent a result but it only + contains a CNAME while we are looking for a T_A or T_AAAA record, + we fail with NOTFOUND instead of TRYAGAIN. */ +- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND; ++ if (canon != NULL) ++ { ++ *h_errnop = HOST_NOT_FOUND; ++ return NSS_STATUS_NOTFOUND; ++ } ++ ++ *h_errnop = NETDB_INTERNAL; ++ return NSS_STATUS_TRYAGAIN; + } + + +@@ -1222,11 +1232,101 @@ gaih_getanswer (const querybuf *answer1, + + enum nss_status status = NSS_STATUS_NOTFOUND; + ++ /* Combining the NSS status of two distinct queries requires some ++ compromise and attention to symmetry (A or AAAA queries can be ++ returned in any order). What follows is a breakdown of how this ++ code is expected to work and why. We discuss only SUCCESS, ++ TRYAGAIN, NOTFOUND and UNAVAIL, since they are the only returns ++ that apply (though RETURN and MERGE exist). We make a distinction ++ between TRYAGAIN (recoverable) and TRYAGAIN' (not-recoverable). ++ A recoverable TRYAGAIN is almost always due to buffer size issues ++ and returns ERANGE in errno and the caller is expected to retry ++ with a larger buffer. ++ ++ Lastly, you may be tempted to make significant changes to the ++ conditions in this code to bring about symmetry between responses. ++ Please don't change anything without due consideration for ++ expected application behaviour. Some of the synthesized responses ++ aren't very well thought out and sometimes appear to imply that ++ IPv4 responses are always answer 1, and IPv6 responses are always ++ answer 2, but that's not true (see the implementation of send_dg ++ and send_vc to see response can arrive in any order, particularly ++ for UDP). However, we expect it holds roughly enough of the time ++ that this code works, but certainly needs to be fixed to make this ++ a more robust implementation. ++ ++ ---------------------------------------------- ++ | Answer 1 Status / | Synthesized | Reason | ++ | Answer 2 Status | Status | | ++ |--------------------------------------------| ++ | SUCCESS/SUCCESS | SUCCESS | [1] | ++ | SUCCESS/TRYAGAIN | TRYAGAIN | [5] | ++ | SUCCESS/TRYAGAIN' | SUCCESS | [1] | ++ | SUCCESS/NOTFOUND | SUCCESS | [1] | ++ | SUCCESS/UNAVAIL | SUCCESS | [1] | ++ | TRYAGAIN/SUCCESS | TRYAGAIN | [2] | ++ | TRYAGAIN/TRYAGAIN | TRYAGAIN | [2] | ++ | TRYAGAIN/TRYAGAIN' | TRYAGAIN | [2] | ++ | TRYAGAIN/NOTFOUND | TRYAGAIN | [2] | ++ | TRYAGAIN/UNAVAIL | TRYAGAIN | [2] | ++ | TRYAGAIN'/SUCCESS | SUCCESS | [3] | ++ | TRYAGAIN'/TRYAGAIN | TRYAGAIN | [3] | ++ | TRYAGAIN'/TRYAGAIN' | TRYAGAIN' | [3] | ++ | TRYAGAIN'/NOTFOUND | TRYAGAIN' | [3] | ++ | TRYAGAIN'/UNAVAIL | UNAVAIL | [3] | ++ | NOTFOUND/SUCCESS | SUCCESS | [3] | ++ | NOTFOUND/TRYAGAIN | TRYAGAIN | [3] | ++ | NOTFOUND/TRYAGAIN' | TRYAGAIN' | [3] | ++ | NOTFOUND/NOTFOUND | NOTFOUND | [3] | ++ | NOTFOUND/UNAVAIL | UNAVAIL | [3] | ++ | UNAVAIL/SUCCESS | UNAVAIL | [4] | ++ | UNAVAIL/TRYAGAIN | UNAVAIL | [4] | ++ | UNAVAIL/TRYAGAIN' | UNAVAIL | [4] | ++ | UNAVAIL/NOTFOUND | UNAVAIL | [4] | ++ | UNAVAIL/UNAVAIL | UNAVAIL | [4] | ++ ---------------------------------------------- ++ ++ [1] If the first response is a success we return success. ++ This ignores the state of the second answer and in fact ++ incorrectly sets errno and h_errno to that of the second ++ answer. However because the response is a success we ignore ++ *errnop and *h_errnop (though that means you touched errno on ++ success). We are being conservative here and returning the ++ likely IPv4 response in the first answer as a success. ++ ++ [2] If the first response is a recoverable TRYAGAIN we return ++ that instead of looking at the second response. The ++ expectation here is that we have failed to get an IPv4 response ++ and should retry both queries. ++ ++ [3] If the first response was not a SUCCESS and the second ++ response is not NOTFOUND (had a SUCCESS, need to TRYAGAIN, ++ or failed entirely e.g. TRYAGAIN' and UNAVAIL) then use the ++ result from the second response, otherwise the first responses ++ status is used. Again we have some odd side-effects when the ++ second response is NOTFOUND because we overwrite *errnop and ++ *h_errnop that means that a first answer of NOTFOUND might see ++ its *errnop and *h_errnop values altered. Whether it matters ++ in practice that a first response NOTFOUND has the wrong ++ *errnop and *h_errnop is undecided. ++ ++ [4] If the first response is UNAVAIL we return that instead of ++ looking at the second response. The expectation here is that ++ it will have failed similarly e.g. configuration failure. ++ ++ [5] Testing this code is complicated by the fact that truncated ++ second response buffers might be returned as SUCCESS if the ++ first answer is a SUCCESS. To fix this we add symmetry to ++ TRYAGAIN with the second response. If the second response ++ is a recoverable error we now return TRYAGIN even if the first ++ response was SUCCESS. */ ++ + if (anslen1 > 0) + status = gaih_getanswer_slice(answer1, anslen1, qname, + &pat, &buffer, &buflen, + errnop, h_errnop, ttlp, + &first); ++ + if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND + || (status == NSS_STATUS_TRYAGAIN + /* We want to look at the second answer in case of an +@@ -1242,8 +1342,15 @@ gaih_getanswer (const querybuf *answer1, + &pat, &buffer, &buflen, + errnop, h_errnop, ttlp, + &first); ++ /* Use the second response status in some cases. */ + if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND) + status = status2; ++ /* Do not return a truncated second response (unless it was ++ unavoidable e.g. unrecoverable TRYAGAIN). */ ++ if (status == NSS_STATUS_SUCCESS ++ && (status2 == NSS_STATUS_TRYAGAIN ++ && *errnop == ERANGE && *h_errnop != NO_RECOVERY)) ++ status = NSS_STATUS_TRYAGAIN; + } + + return status; +Index: glibc-2.22/resolv/res_query.c +=================================================================== +--- glibc-2.22.orig/resolv/res_query.c ++++ glibc-2.22/resolv/res_query.c +@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp, + { + free (*answerp2); + *answerp2 = NULL; ++ *nanswerp2 = 0; + *answerp2_malloced = 0; + } + } +@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp, + { + free (*answerp2); + *answerp2 = NULL; ++ *nanswerp2 = 0; + *answerp2_malloced = 0; + } + +@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp, + { + free (*answerp2); + *answerp2 = NULL; ++ *nanswerp2 = 0; + *answerp2_malloced = 0; + } + if (saved_herrno != -1) +Index: glibc-2.22/resolv/res_send.c +=================================================================== +--- glibc-2.22.orig/resolv/res_send.c ++++ glibc-2.22/resolv/res_send.c +@@ -1,3 +1,20 @@ ++/* Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ + /* + * Copyright (c) 1985, 1989, 1993 + * The Regents of the University of California. All rights reserved. +@@ -363,6 +380,8 @@ __libc_res_nsend(res_state statp, const + #ifdef USE_HOOKS + if (__glibc_unlikely (statp->qhook || statp->rhook)) { + if (anssiz < MAXPACKET && ansp) { ++ /* Always allocate MAXPACKET, callers expect ++ this specific size. */ + u_char *buf = malloc (MAXPACKET); + if (buf == NULL) + return (-1); +@@ -638,6 +657,77 @@ get_nsaddr (res_state statp, int n) + return (struct sockaddr *) (void *) &statp->nsaddr_list[n]; + } + ++/* The send_vc function is responsible for sending a DNS query over TCP ++ to the nameserver numbered NS from the res_state STATP i.e. ++ EXT(statp).nssocks[ns]. The function supports sending both IPv4 and ++ IPv6 queries at the same serially on the same socket. ++ ++ Please note that for TCP there is no way to disable sending both ++ queries, unlike UDP, which honours RES_SNGLKUP and RES_SNGLKUPREOP ++ and sends the queries serially and waits for the result after each ++ sent query. This implemetnation should be corrected to honour these ++ options. ++ ++ Please also note that for TCP we send both queries over the same ++ socket one after another. This technically violates best practice ++ since the server is allowed to read the first query, respond, and ++ then close the socket (to service another client). If the server ++ does this, then the remaining second query in the socket data buffer ++ will cause the server to send the client an RST which will arrive ++ asynchronously and the client's OS will likely tear down the socket ++ receive buffer resulting in a potentially short read and lost ++ response data. This will force the client to retry the query again, ++ and this process may repeat until all servers and connection resets ++ are exhausted and then the query will fail. It's not known if this ++ happens with any frequency in real DNS server implementations. This ++ implementation should be corrected to use two sockets by default for ++ parallel queries. ++ ++ The query stored in BUF of BUFLEN length is sent first followed by ++ the query stored in BUF2 of BUFLEN2 length. Queries are sent ++ serially on the same socket. ++ ++ Answers to the query are stored firstly in *ANSP up to a max of ++ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP ++ is non-NULL (to indicate that modifying the answer buffer is allowed) ++ then malloc is used to allocate a new response buffer and ANSCP and ++ ANSP will both point to the new buffer. If more than *ANSSIZP bytes ++ are needed but ANSCP is NULL, then as much of the response as ++ possible is read into the buffer, but the results will be truncated. ++ When truncation happens because of a small answer buffer the DNS ++ packets header field TC will bet set to 1, indicating a truncated ++ message and the rest of the socket data will be read and discarded. ++ ++ Answers to the query are stored secondly in *ANSP2 up to a max of ++ *ANSSIZP2 bytes, with the actual response length stored in ++ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2 ++ is non-NULL (required for a second query) then malloc is used to ++ allocate a new response buffer, *ANSSIZP2 is set to the new buffer ++ size and *ANSP2_MALLOCED is set to 1. ++ ++ The ANSP2_MALLOCED argument will eventually be removed as the ++ change in buffer pointer can be used to detect the buffer has ++ changed and that the caller should use free on the new buffer. ++ ++ Note that the answers may arrive in any order from the server and ++ therefore the first and second answer buffers may not correspond to ++ the first and second queries. ++ ++ It is not supported to call this function with a non-NULL ANSP2 ++ but a NULL ANSCP. Put another way, you can call send_vc with a ++ single unmodifiable buffer or two modifiable buffers, but no other ++ combination is supported. ++ ++ It is the caller's responsibility to free the malloc allocated ++ buffers by detecting that the pointers have changed from their ++ original values i.e. *ANSCP or *ANSP2 has changed. ++ ++ If errors are encountered then *TERRNO is set to an appropriate ++ errno value and a zero result is returned for a recoverable error, ++ and a less-than zero result is returned for a non-recoverable error. ++ ++ If no errors are encountered then *TERRNO is left unmodified and ++ a the length of the first response in bytes is returned. */ + static int + send_vc(res_state statp, + const u_char *buf, int buflen, const u_char *buf2, int buflen2, +@@ -647,11 +737,7 @@ send_vc(res_state statp, + { + const HEADER *hp = (HEADER *) buf; + const HEADER *hp2 = (HEADER *) buf2; +- u_char *ans = *ansp; +- int orig_anssizp = *anssizp; +- // XXX REMOVE +- // int anssiz = *anssizp; +- HEADER *anhp = (HEADER *) ans; ++ HEADER *anhp = (HEADER *) *ansp; + struct sockaddr *nsap = get_nsaddr (statp, ns); + int truncating, connreset, n; + /* On some architectures compiler might emit a warning indicating +@@ -743,6 +829,8 @@ send_vc(res_state statp, + * Receive length & response + */ + int recvresp1 = 0; ++ /* Skip the second response if there is no second query. ++ To do that we mark the second response as received. */ + int recvresp2 = buf2 == NULL; + uint16_t rlen16; + read_len: +@@ -779,40 +867,14 @@ send_vc(res_state statp, + u_char **thisansp; + int *thisresplenp; + if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) { ++ /* We have not received any responses ++ yet or we only have one response to ++ receive. */ + thisanssizp = anssizp; + thisansp = anscp ?: ansp; + assert (anscp != NULL || ansp2 == NULL); + thisresplenp = &resplen; + } else { +- if (*anssizp != MAXPACKET) { +- /* No buffer allocated for the first +- reply. We can try to use the rest +- of the user-provided buffer. */ +-#if __GNUC_PREREQ (4, 7) +- DIAG_PUSH_NEEDS_COMMENT; +- DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); +-#endif +-#if _STRING_ARCH_unaligned +- *anssizp2 = orig_anssizp - resplen; +- *ansp2 = *ansp + resplen; +-#else +- int aligned_resplen +- = ((resplen + __alignof__ (HEADER) - 1) +- & ~(__alignof__ (HEADER) - 1)); +- *anssizp2 = orig_anssizp - aligned_resplen; +- *ansp2 = *ansp + aligned_resplen; +-#endif +-#if __GNUC_PREREQ (4, 7) +- DIAG_POP_NEEDS_COMMENT; +-#endif +- } else { +- /* The first reply did not fit into the +- user-provided buffer. Maybe the second +- answer will. */ +- *anssizp2 = orig_anssizp; +- *ansp2 = *ansp; +- } +- + thisanssizp = anssizp2; + thisansp = ansp2; + thisresplenp = resplen2; +@@ -820,10 +882,14 @@ send_vc(res_state statp, + anhp = (HEADER *) *thisansp; + + *thisresplenp = rlen; +- if (rlen > *thisanssizp) { +- /* Yes, we test ANSCP here. If we have two buffers +- both will be allocatable. */ +- if (__glibc_likely (anscp != NULL)) { ++ /* Is the answer buffer too small? */ ++ if (*thisanssizp < rlen) { ++ /* If the current buffer is not the the static ++ user-supplied buffer then we can reallocate ++ it. */ ++ if (thisansp != NULL && thisansp != ansp) { ++ /* Always allocate MAXPACKET, callers expect ++ this specific size. */ + u_char *newp = malloc (MAXPACKET); + if (newp == NULL) { + *terrno = ENOMEM; +@@ -835,6 +901,9 @@ send_vc(res_state statp, + if (thisansp == ansp2) + *ansp2_malloced = 1; + anhp = (HEADER *) newp; ++ /* A uint16_t can't be larger than MAXPACKET ++ thus it's safe to allocate MAXPACKET but ++ read RLEN bytes instead. */ + len = rlen; + } else { + Dprint(statp->options & RES_DEBUG, +@@ -997,6 +1066,66 @@ reopen (res_state statp, int *terrno, in + return 1; + } + ++/* The send_dg function is responsible for sending a DNS query over UDP ++ to the nameserver numbered NS from the res_state STATP i.e. ++ EXT(statp).nssocks[ns]. The function supports IPv4 and IPv6 queries ++ along with the ability to send the query in parallel for both stacks ++ (default) or serially (RES_SINGLKUP). It also supports serial lookup ++ with a close and reopen of the socket used to talk to the server ++ (RES_SNGLKUPREOP) to work around broken name servers. ++ ++ The query stored in BUF of BUFLEN length is sent first followed by ++ the query stored in BUF2 of BUFLEN2 length. Queries are sent ++ in parallel (default) or serially (RES_SINGLKUP or RES_SNGLKUPREOP). ++ ++ Answers to the query are stored firstly in *ANSP up to a max of ++ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP ++ is non-NULL (to indicate that modifying the answer buffer is allowed) ++ then malloc is used to allocate a new response buffer and ANSCP and ++ ANSP will both point to the new buffer. If more than *ANSSIZP bytes ++ are needed but ANSCP is NULL, then as much of the response as ++ possible is read into the buffer, but the results will be truncated. ++ When truncation happens because of a small answer buffer the DNS ++ packets header field TC will bet set to 1, indicating a truncated ++ message, while the rest of the UDP packet is discarded. ++ ++ Answers to the query are stored secondly in *ANSP2 up to a max of ++ *ANSSIZP2 bytes, with the actual response length stored in ++ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2 ++ is non-NULL (required for a second query) then malloc is used to ++ allocate a new response buffer, *ANSSIZP2 is set to the new buffer ++ size and *ANSP2_MALLOCED is set to 1. ++ ++ The ANSP2_MALLOCED argument will eventually be removed as the ++ change in buffer pointer can be used to detect the buffer has ++ changed and that the caller should use free on the new buffer. ++ ++ Note that the answers may arrive in any order from the server and ++ therefore the first and second answer buffers may not correspond to ++ the first and second queries. ++ ++ It is not supported to call this function with a non-NULL ANSP2 ++ but a NULL ANSCP. Put another way, you can call send_vc with a ++ single unmodifiable buffer or two modifiable buffers, but no other ++ combination is supported. ++ ++ It is the caller's responsibility to free the malloc allocated ++ buffers by detecting that the pointers have changed from their ++ original values i.e. *ANSCP or *ANSP2 has changed. ++ ++ If an answer is truncated because of UDP datagram DNS limits then ++ *V_CIRCUIT is set to 1 and the return value non-zero to indicate to ++ the caller to retry with TCP. The value *GOTSOMEWHERE is set to 1 ++ if any progress was made reading a response from the nameserver and ++ is used by the caller to distinguish between ECONNREFUSED and ++ ETIMEDOUT (the latter if *GOTSOMEWHERE is 1). ++ ++ If errors are encountered then *TERRNO is set to an appropriate ++ errno value and a zero result is returned for a recoverable error, ++ and a less-than zero result is returned for a non-recoverable error. ++ ++ If no errors are encountered then *TERRNO is left unmodified and ++ a the length of the first response in bytes is returned. */ + static int + send_dg(res_state statp, + const u_char *buf, int buflen, const u_char *buf2, int buflen2, +@@ -1006,8 +1135,6 @@ send_dg(res_state statp, + { + const HEADER *hp = (HEADER *) buf; + const HEADER *hp2 = (HEADER *) buf2; +- u_char *ans = *ansp; +- int orig_anssizp = *anssizp; + struct timespec now, timeout, finish; + struct pollfd pfd[1]; + int ptimeout; +@@ -1040,6 +1167,8 @@ send_dg(res_state statp, + int need_recompute = 0; + int nwritten = 0; + int recvresp1 = 0; ++ /* Skip the second response if there is no second query. ++ To do that we mark the second response as received. */ + int recvresp2 = buf2 == NULL; + pfd[0].fd = EXT(statp).nssocks[ns]; + pfd[0].events = POLLOUT; +@@ -1203,55 +1332,56 @@ send_dg(res_state statp, + int *thisresplenp; + + if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) { ++ /* We have not received any responses ++ yet or we only have one response to ++ receive. */ + thisanssizp = anssizp; + thisansp = anscp ?: ansp; + assert (anscp != NULL || ansp2 == NULL); + thisresplenp = &resplen; + } else { +- if (*anssizp != MAXPACKET) { +- /* No buffer allocated for the first +- reply. We can try to use the rest +- of the user-provided buffer. */ +-#if _STRING_ARCH_unaligned +- *anssizp2 = orig_anssizp - resplen; +- *ansp2 = *ansp + resplen; +-#else +- int aligned_resplen +- = ((resplen + __alignof__ (HEADER) - 1) +- & ~(__alignof__ (HEADER) - 1)); +- *anssizp2 = orig_anssizp - aligned_resplen; +- *ansp2 = *ansp + aligned_resplen; +-#endif +- } else { +- /* The first reply did not fit into the +- user-provided buffer. Maybe the second +- answer will. */ +- *anssizp2 = orig_anssizp; +- *ansp2 = *ansp; +- } +- + thisanssizp = anssizp2; + thisansp = ansp2; + thisresplenp = resplen2; + } + + if (*thisanssizp < MAXPACKET +- /* Yes, we test ANSCP here. If we have two buffers +- both will be allocatable. */ +- && anscp ++ /* If the current buffer is not the the static ++ user-supplied buffer then we can reallocate ++ it. */ ++ && (thisansp != NULL && thisansp != ansp) + #ifdef FIONREAD ++ /* Is the size too small? */ + && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0 + || *thisanssizp < *thisresplenp) + #endif + ) { ++ /* Always allocate MAXPACKET, callers expect ++ this specific size. */ + u_char *newp = malloc (MAXPACKET); + if (newp != NULL) { +- *anssizp = MAXPACKET; +- *thisansp = ans = newp; ++ *thisanssizp = MAXPACKET; ++ *thisansp = newp; + if (thisansp == ansp2) + *ansp2_malloced = 1; + } + } ++ /* We could end up with truncation if anscp was NULL ++ (not allowed to change caller's buffer) and the ++ response buffer size is too small. This isn't a ++ reliable way to detect truncation because the ioctl ++ may be an inaccurate report of the UDP message size. ++ Therefore we use this only to issue debug output. ++ To do truncation accurately with UDP we need ++ MSG_TRUNC which is only available on Linux. We ++ can abstract out the Linux-specific feature in the ++ future to detect truncation. */ ++ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) { ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; response may be truncated (UDP)\n") ++ ); ++ } ++ + HEADER *anhp = (HEADER *) *thisansp; + socklen_t fromlen = sizeof(struct sockaddr_in6); + assert (sizeof(from) <= fromlen); diff --git a/strftime-range-check.patch b/strftime-range-check.patch new file mode 100644 index 0000000..27ff3d2 --- /dev/null +++ b/strftime-range-check.patch @@ -0,0 +1,126 @@ +2015-09-26 Paul Pluzhnikov + + [BZ #18985] + * time/strftime_l.c (a_wkday, f_wkday, a_month, f_month): Range check. + (__strftime_internal): Likewise. + * time/tst-strftime.c (do_bz18985): New test. + (do_test): Call it. + +Index: glibc-2.22/time/strftime_l.c +=================================================================== +--- glibc-2.22.orig/time/strftime_l.c ++++ glibc-2.22/time/strftime_l.c +@@ -510,13 +510,17 @@ __strftime_internal (s, maxsize, format, + only a few elements. Dereference the pointers only if the format + requires this. Then it is ok to fail if the pointers are invalid. */ + # define a_wkday \ +- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABDAY_1) + tp->tm_wday)) ++ ((const CHAR_T *) (tp->tm_wday < 0 || tp->tm_wday > 6 \ ++ ? "?" : _NL_CURRENT (LC_TIME, NLW(ABDAY_1) + tp->tm_wday))) + # define f_wkday \ +- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(DAY_1) + tp->tm_wday)) ++ ((const CHAR_T *) (tp->tm_wday < 0 || tp->tm_wday > 6 \ ++ ? "?" : _NL_CURRENT (LC_TIME, NLW(DAY_1) + tp->tm_wday))) + # define a_month \ +- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABMON_1) + tp->tm_mon)) ++ ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \ ++ ? "?" : _NL_CURRENT (LC_TIME, NLW(ABMON_1) + tp->tm_mon))) + # define f_month \ +- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon)) ++ ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \ ++ ? "?" : _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon))) + # define ampm \ + ((const CHAR_T *) _NL_CURRENT (LC_TIME, tp->tm_hour > 11 \ + ? NLW(PM_STR) : NLW(AM_STR))) +@@ -526,8 +530,10 @@ __strftime_internal (s, maxsize, format, + # define ap_len STRLEN (ampm) + #else + # if !HAVE_STRFTIME +-# define f_wkday (weekday_name[tp->tm_wday]) +-# define f_month (month_name[tp->tm_mon]) ++# define f_wkday (tp->tm_wday < 0 || tp->tm_wday > 6 \ ++ ? "?" : weekday_name[tp->tm_wday]) ++# define f_month (tp->tm_mon < 0 || tp->tm_mon > 11 \ ++ ? "?" : month_name[tp->tm_mon]) + # define a_wkday f_wkday + # define a_month f_month + # define ampm (L_("AMPM") + 2 * (tp->tm_hour > 11)) +@@ -1321,7 +1327,7 @@ __strftime_internal (s, maxsize, format, + *tzset_called = true; + } + # endif +- zone = tzname[tp->tm_isdst]; ++ zone = tp->tm_isdst <= 1 ? tzname[tp->tm_isdst] : "?"; + } + #endif + if (! zone) +Index: glibc-2.22/time/tst-strftime.c +=================================================================== +--- glibc-2.22.orig/time/tst-strftime.c ++++ glibc-2.22/time/tst-strftime.c +@@ -4,6 +4,56 @@ + #include + + ++static int ++do_bz18985 (void) ++{ ++ char buf[1000]; ++ struct tm ttm; ++ int rc, ret = 0; ++ ++ memset (&ttm, 1, sizeof (ttm)); ++ ttm.tm_zone = NULL; /* Dereferenced directly if non-NULL. */ ++ rc = strftime (buf, sizeof (buf), "%a %A %b %B %c %z %Z", &ttm); ++ ++ if (rc == 66) ++ { ++ const char expected[] ++ = "? ? ? ? ? ? 16843009 16843009:16843009:16843009 16844909 +467836 ?"; ++ if (0 != strcmp (buf, expected)) ++ { ++ printf ("expected:\n %s\ngot:\n %s\n", expected, buf); ++ ret += 1; ++ } ++ } ++ else ++ { ++ printf ("expected 66, got %d\n", rc); ++ ret += 1; ++ } ++ ++ /* Check negative values as well. */ ++ memset (&ttm, 0xFF, sizeof (ttm)); ++ ttm.tm_zone = NULL; /* Dereferenced directly if non-NULL. */ ++ rc = strftime (buf, sizeof (buf), "%a %A %b %B %c %z %Z", &ttm); ++ ++ if (rc == 30) ++ { ++ const char expected[] = "? ? ? ? ? ? -1 -1:-1:-1 1899 "; ++ if (0 != strcmp (buf, expected)) ++ { ++ printf ("expected:\n %s\ngot:\n %s\n", expected, buf); ++ ret += 1; ++ } ++ } ++ else ++ { ++ printf ("expected 30, got %d\n", rc); ++ ret += 1; ++ } ++ ++ return ret; ++} ++ + static struct + { + const char *fmt; +@@ -104,7 +154,7 @@ do_test (void) + } + } + +- return result; ++ return result + do_bz18985 (); + } + + #define TEST_FUNCTION do_test () diff --git a/tls-dtor-list-mangling.patch b/tls-dtor-list-mangling.patch new file mode 100644 index 0000000..302eaa2 --- /dev/null +++ b/tls-dtor-list-mangling.patch @@ -0,0 +1,37 @@ +2015-10-06 Florian Weimer + + [BZ #19018] + * stdlib/cxa_thread_atexit_impl.c (__cxa_thread_atexit_impl): + Mangle function pointer before storing it. + (__call_tls_dtors): Demangle function pointer before calling it. + +Index: glibc-2.22/stdlib/cxa_thread_atexit_impl.c +=================================================================== +--- glibc-2.22.orig/stdlib/cxa_thread_atexit_impl.c ++++ glibc-2.22/stdlib/cxa_thread_atexit_impl.c +@@ -98,6 +98,10 @@ static __thread struct link_map *lm_cach + int + __cxa_thread_atexit_impl (dtor_func func, void *obj, void *dso_symbol) + { ++#ifdef PTR_MANGLE ++ PTR_MANGLE (func); ++#endif ++ + /* Prepend. */ + struct dtor_list *new = calloc (1, sizeof (struct dtor_list)); + new->func = func; +@@ -142,9 +146,13 @@ __call_tls_dtors (void) + while (tls_dtor_list) + { + struct dtor_list *cur = tls_dtor_list; ++ dtor_func func = cur->func; ++#ifdef PTR_DEMANGLE ++ PTR_DEMANGLE (func); ++#endif + + tls_dtor_list = tls_dtor_list->next; +- cur->func (cur->obj); ++ func (cur->obj); + + /* Ensure that the MAP dereference happens before + l_tls_dtor_count decrement. That way, we protect this access from a diff --git a/vector-finite-math-aliases.patch b/vector-finite-math-aliases.patch new file mode 100644 index 0000000..602a884 --- /dev/null +++ b/vector-finite-math-aliases.patch @@ -0,0 +1,149 @@ +2015-12-03 Andrew Senkevich + + * math/Makefile ($(inst_libdir)/libm.so): Corrected path to + libmvec_nonshared.a + +2015-11-27 Andrew Senkevich + + [BZ #19058] + * math/Makefile ($(inst_libdir)/libm.so): Added libmvec_nonshared.a to + AS_NEEDED. + * sysdeps/x86/fpu/bits/math-vector.h: Removed code with asm aliases + workaround. + * sysdeps/x86_64/fpu/Makefile (libmvec-support, + libmvec-static-only-routines): Added new file. + * sysdeps/x86_64/fpu/svml_finite_alias.S: New file. + * NEWS: Mention this fix. + +Index: glibc-2.22/math/Makefile +=================================================================== +--- glibc-2.22.orig/math/Makefile ++++ glibc-2.22/math/Makefile +@@ -98,7 +98,7 @@ $(inst_libdir)/libm.so: $(common-objpfx) + (echo '/* GNU ld script'; echo '*/';\ + cat $<; \ + echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \ +- 'AS_NEEDED ( $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \ ++ 'AS_NEEDED ( $(libdir)/libmvec_nonshared.a $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \ + ) > $@ + endif + +Index: glibc-2.22/sysdeps/x86/fpu/bits/math-vector.h +=================================================================== +--- glibc-2.22.orig/sysdeps/x86/fpu/bits/math-vector.h ++++ glibc-2.22/sysdeps/x86/fpu/bits/math-vector.h +@@ -53,34 +53,5 @@ + # undef __DECL_SIMD_powf + # define __DECL_SIMD_powf __DECL_SIMD_x86_64 + +-/* Workaround to exclude unnecessary symbol aliases in libmvec +- while GCC creates the vector names based on scalar asm name. +- Corresponding discussion started at +- . */ +-__asm__ ("_ZGVbN2v___log_finite = _ZGVbN2v_log"); +-__asm__ ("_ZGVcN4v___log_finite = _ZGVcN4v_log"); +-__asm__ ("_ZGVdN4v___log_finite = _ZGVdN4v_log"); +-__asm__ ("_ZGVeN8v___log_finite = _ZGVeN8v_log"); +-__asm__ ("_ZGVbN4v___logf_finite = _ZGVbN4v_logf"); +-__asm__ ("_ZGVcN8v___logf_finite = _ZGVcN8v_logf"); +-__asm__ ("_ZGVdN8v___logf_finite = _ZGVdN8v_logf"); +-__asm__ ("_ZGVeN16v___logf_finite = _ZGVeN16v_logf"); +-__asm__ ("_ZGVbN2v___exp_finite = _ZGVbN2v_exp"); +-__asm__ ("_ZGVcN4v___exp_finite = _ZGVcN4v_exp"); +-__asm__ ("_ZGVdN4v___exp_finite = _ZGVdN4v_exp"); +-__asm__ ("_ZGVeN8v___exp_finite = _ZGVeN8v_exp"); +-__asm__ ("_ZGVbN4v___expf_finite = _ZGVbN4v_expf"); +-__asm__ ("_ZGVcN8v___expf_finite = _ZGVcN8v_expf"); +-__asm__ ("_ZGVdN8v___expf_finite = _ZGVdN8v_expf"); +-__asm__ ("_ZGVeN16v___expf_finite = _ZGVeN16v_expf"); +-__asm__ ("_ZGVbN2vv___pow_finite = _ZGVbN2vv_pow"); +-__asm__ ("_ZGVcN4vv___pow_finite = _ZGVcN4vv_pow"); +-__asm__ ("_ZGVdN4vv___pow_finite = _ZGVdN4vv_pow"); +-__asm__ ("_ZGVeN8vv___pow_finite = _ZGVeN8vv_pow"); +-__asm__ ("_ZGVbN4vv___powf_finite = _ZGVbN4vv_powf"); +-__asm__ ("_ZGVcN8vv___powf_finite = _ZGVcN8vv_powf"); +-__asm__ ("_ZGVdN8vv___powf_finite = _ZGVdN8vv_powf"); +-__asm__ ("_ZGVeN16vv___powf_finite = _ZGVeN16vv_powf"); +- + # endif + #endif +Index: glibc-2.22/sysdeps/x86_64/fpu/Makefile +=================================================================== +--- glibc-2.22.orig/sysdeps/x86_64/fpu/Makefile ++++ glibc-2.22/sysdeps/x86_64/fpu/Makefile +@@ -20,7 +20,10 @@ libmvec-support += svml_d_cos2_core svml + svml_d_pow_data svml_s_powf4_core svml_s_powf8_core_avx \ + svml_s_powf8_core svml_s_powf16_core svml_s_powf_data \ + svml_s_sincosf4_core svml_s_sincosf8_core_avx \ +- svml_s_sincosf8_core svml_s_sincosf16_core init-arch ++ svml_s_sincosf8_core svml_s_sincosf16_core init-arch \ ++ svml_finite_alias ++ ++libmvec-static-only-routines = svml_finite_alias + endif + + # Variables for libmvec tests. +Index: glibc-2.22/sysdeps/x86_64/fpu/svml_finite_alias.S +=================================================================== +--- /dev/null ++++ glibc-2.22/sysdeps/x86_64/fpu/svml_finite_alias.S +@@ -0,0 +1,59 @@ ++/* These aliases added as workaround to exclude unnecessary symbol ++ aliases in libmvec.so while compiler creates the vector names ++ based on scalar asm name. Corresponding discussion is at ++ . ++ Copyright (C) 2015 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define ALIAS_IMPL(alias, target) \ ++ENTRY (alias); \ ++ call target; \ ++ ret; \ ++END (alias) ++ ++ .text ++ALIAS_IMPL (_ZGVbN2v___log_finite, _ZGVbN2v_log) ++ALIAS_IMPL (_ZGVcN4v___log_finite, _ZGVcN4v_log) ++ALIAS_IMPL (_ZGVdN4v___log_finite, _ZGVdN4v_log) ++ALIAS_IMPL (_ZGVeN8v___log_finite, _ZGVeN8v_log) ++ ++ALIAS_IMPL (_ZGVbN4v___logf_finite, _ZGVbN4v_logf) ++ALIAS_IMPL (_ZGVcN8v___logf_finite, _ZGVcN8v_logf) ++ALIAS_IMPL (_ZGVdN8v___logf_finite, _ZGVdN8v_logf) ++ALIAS_IMPL (_ZGVeN16v___logf_finite, _ZGVeN16v_logf) ++ ++ALIAS_IMPL (_ZGVbN2v___exp_finite, _ZGVbN2v_exp) ++ALIAS_IMPL (_ZGVcN4v___exp_finite, _ZGVcN4v_exp) ++ALIAS_IMPL (_ZGVdN4v___exp_finite, _ZGVdN4v_exp) ++ALIAS_IMPL (_ZGVeN8v___exp_finite, _ZGVeN8v_exp) ++ ++ALIAS_IMPL (_ZGVbN4v___expf_finite, _ZGVbN4v_expf) ++ALIAS_IMPL (_ZGVcN8v___expf_finite, _ZGVcN8v_expf) ++ALIAS_IMPL (_ZGVdN8v___expf_finite, _ZGVdN8v_expf) ++ALIAS_IMPL (_ZGVeN16v___expf_finite, _ZGVeN16v_expf) ++ ++ALIAS_IMPL (_ZGVbN2vv___pow_finite, _ZGVbN2vv_pow) ++ALIAS_IMPL (_ZGVcN4vv___pow_finite, _ZGVcN4vv_pow) ++ALIAS_IMPL (_ZGVdN4vv___pow_finite, _ZGVdN4vv_pow) ++ALIAS_IMPL (_ZGVeN8vv___pow_finite, _ZGVeN8vv_pow) ++ ++ALIAS_IMPL (_ZGVbN4vv___powf_finite, _ZGVbN4vv_powf) ++ALIAS_IMPL (_ZGVcN8vv___powf_finite, _ZGVcN8vv_powf) ++ALIAS_IMPL (_ZGVdN8vv___powf_finite, _ZGVdN8vv_powf) ++ALIAS_IMPL (_ZGVeN16vv___powf_finite, _ZGVeN16vv_powf) From bd5a53f1a20b8ba4bb58f8e33a4fa69419ede7e9f390661ea988fdd31b62c9f1 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 22 Apr 2016 14:15:59 +0000 Subject: [PATCH 191/204] Accepting request 387900 from Base:System OBS-URL: https://build.opensuse.org/request/show/387900 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=200 --- catopen-unbound-alloca.patch | 219 ------ crypt_blowfish-1.3.tar.gz.sign | 10 - dont-remove-nodelete-flag.patch | 34 - errorcheck-mutex-no-elision.patch | 102 --- fix-locking-in-_IO_cleanup.patch | 2 +- glibc-2.14-crypt.diff | 307 ++++----- glibc-2.22.tar.xz | 3 - glibc-2.22.tar.xz.sig | 11 - glibc-2.23.tar.xz | 3 + glibc-2.23.tar.xz.sig | 11 + glibc-c-utf8-locale.patch | 270 ++++++++ glibc-disable-gettext-for-c-utf8.patch | 12 + glibc-memset-nontemporal.diff | 16 +- glibc-resolv-reload.diff | 2 +- glibc-testsuite.changes | 99 ++- glibc-testsuite.spec | 144 ++-- glibc-utils.changes | 99 ++- glibc-utils.spec | 144 ++-- glibc-version.diff | 2 +- glibc.changes | 99 ++- glibc.spec | 144 ++-- hcreate-overflow-check.patch | 193 ------ ibm93x-redundant-shift-si.patch | 201 ------ iconv-reset-input-buffer.patch | 2 +- isinf-cxx11-conflict.patch | 127 ---- ld-pointer-guard.patch | 66 -- ldd-system-interp.patch | 16 +- mntent-blank-line.patch | 183 ----- no-long-double.patch | 23 + openat64-readd-o-largefile.patch | 16 - opendir-o-directory-check.patch | 21 - powerpc-elision-adapt-param.patch | 81 --- powerpc-elision-enable-envvar.patch | 41 ++ powerpc-lock-elision-race.patch | 146 ---- prelink-elf-rtype-class.patch | 258 ------- refactor-nan-parsing.patch | 896 ------------------------- send-dg-buffer-overflow.patch | 569 ---------------- static-dlopen.patch | 18 - strcoll-remove-strdiff-opt.patch | 366 ---------- strftime-range-check.patch | 126 ---- tls-dtor-list-mangling.patch | 37 - tzset-tzname.patch | 133 ---- vector-finite-math-aliases.patch | 149 ---- 43 files changed, 962 insertions(+), 4439 deletions(-) delete mode 100644 catopen-unbound-alloca.patch delete mode 100644 crypt_blowfish-1.3.tar.gz.sign delete mode 100644 dont-remove-nodelete-flag.patch delete mode 100644 errorcheck-mutex-no-elision.patch delete mode 100644 glibc-2.22.tar.xz delete mode 100644 glibc-2.22.tar.xz.sig create mode 100644 glibc-2.23.tar.xz create mode 100644 glibc-2.23.tar.xz.sig create mode 100644 glibc-c-utf8-locale.patch create mode 100644 glibc-disable-gettext-for-c-utf8.patch delete mode 100644 hcreate-overflow-check.patch delete mode 100644 ibm93x-redundant-shift-si.patch delete mode 100644 isinf-cxx11-conflict.patch delete mode 100644 ld-pointer-guard.patch delete mode 100644 mntent-blank-line.patch create mode 100644 no-long-double.patch delete mode 100644 openat64-readd-o-largefile.patch delete mode 100644 opendir-o-directory-check.patch delete mode 100644 powerpc-elision-adapt-param.patch create mode 100644 powerpc-elision-enable-envvar.patch delete mode 100644 powerpc-lock-elision-race.patch delete mode 100644 prelink-elf-rtype-class.patch delete mode 100644 refactor-nan-parsing.patch delete mode 100644 send-dg-buffer-overflow.patch delete mode 100644 static-dlopen.patch delete mode 100644 strcoll-remove-strdiff-opt.patch delete mode 100644 strftime-range-check.patch delete mode 100644 tls-dtor-list-mangling.patch delete mode 100644 tzset-tzname.patch delete mode 100644 vector-finite-math-aliases.patch diff --git a/catopen-unbound-alloca.patch b/catopen-unbound-alloca.patch deleted file mode 100644 index fbfd278..0000000 --- a/catopen-unbound-alloca.patch +++ /dev/null @@ -1,219 +0,0 @@ -2015-08-08 Paul Pluzhnikov - - [BZ #17905] - * catgets/Makefile (tst-catgets-mem): New test. - * catgets/catgets.c (catopen): Don't use unbounded alloca. - * catgets/open_catalog.c (__open_catalog): Likewise. - * catgets/tst-catgets.c (do_bz17905): Test unbounded alloca. - -Index: glibc-2.22/catgets/Makefile -=================================================================== ---- glibc-2.22.orig/catgets/Makefile -+++ glibc-2.22/catgets/Makefile -@@ -34,6 +34,7 @@ test-srcs = test-gencat - ifeq ($(run-built-tests),yes) - tests-special += $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \ - $(objpfx)sample.SJIS.cat $(objpfx)test-gencat.out -+tests-special += $(objpfx)tst-catgets-mem.out - endif - - gencat-modules = xmalloc -@@ -50,9 +51,11 @@ catgets-CPPFLAGS := -DNLSPATH='"$(msgcat - - generated += de.msg test1.cat test1.h test2.cat test2.h sample.SJIS.cat \ - test-gencat.h -+generated += tst-catgets.mtrace tst-catgets-mem.out -+ - generated-dirs += de - --tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de -+tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de MALLOC_TRACE=$(objpfx)tst-catgets.mtrace - - ifeq ($(run-built-tests),yes) - # This test just checks whether the program produces any error or not. -@@ -86,4 +89,8 @@ $(objpfx)test-gencat.out: test-gencat.sh - $(objpfx)sample.SJIS.cat: sample.SJIS $(objpfx)gencat - $(built-program-cmd) -H $(objpfx)test-gencat.h < $(word 1,$^) > $@; \ - $(evaluate-test) -+ -+$(objpfx)tst-catgets-mem.out: $(objpfx)tst-catgets.out -+ $(common-objpfx)malloc/mtrace $(objpfx)tst-catgets.mtrace > $@; \ -+ $(evaluate-test) - endif -Index: glibc-2.22/catgets/catgets.c -=================================================================== ---- glibc-2.22.orig/catgets/catgets.c -+++ glibc-2.22/catgets/catgets.c -@@ -16,7 +16,6 @@ - License along with the GNU C Library; if not, see - . */ - --#include - #include - #include - #include -@@ -35,6 +34,7 @@ catopen (const char *cat_name, int flag) - __nl_catd result; - const char *env_var = NULL; - const char *nlspath = NULL; -+ char *tmp = NULL; - - if (strchr (cat_name, '/') == NULL) - { -@@ -54,7 +54,10 @@ catopen (const char *cat_name, int flag) - { - /* Append the system dependent directory. */ - size_t len = strlen (nlspath) + 1 + sizeof NLSPATH; -- char *tmp = alloca (len); -+ tmp = malloc (len); -+ -+ if (__glibc_unlikely (tmp == NULL)) -+ return (nl_catd) -1; - - __stpcpy (__stpcpy (__stpcpy (tmp, nlspath), ":"), NLSPATH); - nlspath = tmp; -@@ -65,16 +68,18 @@ catopen (const char *cat_name, int flag) - - result = (__nl_catd) malloc (sizeof (*result)); - if (result == NULL) -- /* We cannot get enough memory. */ -- return (nl_catd) -1; -- -- if (__open_catalog (cat_name, nlspath, env_var, result) != 0) -+ { -+ /* We cannot get enough memory. */ -+ result = (nl_catd) -1; -+ } -+ else if (__open_catalog (cat_name, nlspath, env_var, result) != 0) - { - /* Couldn't open the file. */ - free ((void *) result); -- return (nl_catd) -1; -+ result = (nl_catd) -1; - } - -+ free (tmp); - return (nl_catd) result; - } - -Index: glibc-2.22/catgets/open_catalog.c -=================================================================== ---- glibc-2.22.orig/catgets/open_catalog.c -+++ glibc-2.22/catgets/open_catalog.c -@@ -47,6 +47,7 @@ __open_catalog (const char *cat_name, co - size_t tab_size; - const char *lastp; - int result = -1; -+ char *buf = NULL; - - if (strchr (cat_name, '/') != NULL || nlspath == NULL) - fd = open_not_cancel_2 (cat_name, O_RDONLY); -@@ -57,23 +58,23 @@ __open_catalog (const char *cat_name, co - if (__glibc_unlikely (bufact + (n) >= bufmax)) \ - { \ - char *old_buf = buf; \ -- bufmax += 256 + (n); \ -- buf = (char *) alloca (bufmax); \ -- memcpy (buf, old_buf, bufact); \ -+ bufmax += (bufmax < 256 + (n)) ? 256 + (n) : bufmax; \ -+ buf = realloc (buf, bufmax); \ -+ if (__glibc_unlikely (buf == NULL)) \ -+ { \ -+ free (old_buf); \ -+ return -1; \ -+ } \ - } - - /* The RUN_NLSPATH variable contains a colon separated list of - descriptions where we expect to find catalogs. We have to - recognize certain % substitutions and stop when we found the - first existing file. */ -- char *buf; - size_t bufact; -- size_t bufmax; -+ size_t bufmax = 0; - size_t len; - -- buf = NULL; -- bufmax = 0; -- - fd = -1; - while (*run_nlspath != '\0') - { -@@ -188,7 +189,10 @@ __open_catalog (const char *cat_name, co - - /* Avoid dealing with directories and block devices */ - if (__builtin_expect (fd, 0) < 0) -- return -1; -+ { -+ free (buf); -+ return -1; -+ } - - if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0) - goto close_unlock_return; -@@ -325,6 +329,7 @@ __open_catalog (const char *cat_name, co - /* Release the lock again. */ - close_unlock_return: - close_not_cancel_no_status (fd); -+ free (buf); - - return result; - } -Index: glibc-2.22/catgets/tst-catgets.c -=================================================================== ---- glibc-2.22.orig/catgets/tst-catgets.c -+++ glibc-2.22/catgets/tst-catgets.c -@@ -1,7 +1,10 @@ -+#include - #include - #include - #include -+#include - #include -+#include - - - static const char *msgs[] = -@@ -12,6 +15,33 @@ static const char *msgs[] = - }; - #define nmsgs (sizeof (msgs) / sizeof (msgs[0])) - -+ -+/* Test for unbounded alloca. */ -+static int -+do_bz17905 (void) -+{ -+ char *buf; -+ struct rlimit rl; -+ nl_catd result; -+ -+ const int sz = 1024 * 1024; -+ -+ getrlimit (RLIMIT_STACK, &rl); -+ rl.rlim_cur = sz; -+ setrlimit (RLIMIT_STACK, &rl); -+ -+ buf = malloc (sz + 1); -+ memset (buf, 'A', sz); -+ buf[sz] = '\0'; -+ setenv ("NLSPATH", buf, 1); -+ -+ result = catopen (buf, NL_CAT_LOCALE); -+ assert (result == (nl_catd) -1); -+ -+ free (buf); -+ return 0; -+} -+ - #define ROUNDS 5 - - static int -@@ -62,6 +92,7 @@ do_test (void) - } - } - -+ result += do_bz17905 (); - return result; - } - diff --git a/crypt_blowfish-1.3.tar.gz.sign b/crypt_blowfish-1.3.tar.gz.sign deleted file mode 100644 index 77b51bb..0000000 --- a/crypt_blowfish-1.3.tar.gz.sign +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 -Comment: http://www.openwall.com/signatures/ - -iQCVAwUAU71f6nK5fbEpUCnxAQJCewQAqvRc4UbpJyJlYR0sbVbIjLPc6+3s9KQ9 -9LUrDkNJLlWli/4i0FXiFgRohNgzSYwaMRqbrsxZ+Dbp5XHKgjf3wzyhGGDvr0wb -fLvIVrIHO/XgeBz08h6feFsxD+er5iy4FMBVe1MRMw6IiJNtWsahQLP5EjddfEwD -XvIct4zt2Cc= -=cncr ------END PGP SIGNATURE----- diff --git a/dont-remove-nodelete-flag.patch b/dont-remove-nodelete-flag.patch deleted file mode 100644 index 4749ba5..0000000 --- a/dont-remove-nodelete-flag.patch +++ /dev/null @@ -1,34 +0,0 @@ -Index: glibc-2.22/elf/dl-close.c -=================================================================== ---- glibc-2.22.orig/elf/dl-close.c -+++ glibc-2.22/elf/dl-close.c -@@ -144,6 +144,14 @@ _dl_close_worker (struct link_map *map, - char done[nloaded]; - struct link_map *maps[nloaded]; - -+ /* Clear DF_1_NODELETE to force object deletion. We don't need to touch -+ l_tls_dtor_count because forced object deletion only happens when an -+ error occurs during object load. Destructor registration for TLS -+ non-POD objects should not have happened till then for this -+ object. */ -+ if (force) -+ map->l_flags_1 &= ~DF_1_NODELETE; -+ - /* Run over the list and assign indexes to the link maps and enter - them into the MAPS array. */ - int idx = 0; -@@ -152,14 +160,6 @@ _dl_close_worker (struct link_map *map, - l->l_idx = idx; - maps[idx] = l; - ++idx; -- -- /* Clear DF_1_NODELETE to force object deletion. We don't need to touch -- l_tls_dtor_count because forced object deletion only happens when an -- error occurs during object load. Destructor registration for TLS -- non-POD objects should not have happened till then for this -- object. */ -- if (force) -- l->l_flags_1 &= ~DF_1_NODELETE; - } - assert (idx == nloaded); - diff --git a/errorcheck-mutex-no-elision.patch b/errorcheck-mutex-no-elision.patch deleted file mode 100644 index 90ee12a..0000000 --- a/errorcheck-mutex-no-elision.patch +++ /dev/null @@ -1,102 +0,0 @@ -2016-01-25 Andreas Schwab - - [BZ #17514] - * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock) - : Don't do lock elision. - * nptl/Makefile (tests): Add tst-mutex-errorcheck. - * nptl/tst-mutex-errorcheck.c: New file. - -Index: glibc-2.22/nptl/Makefile -=================================================================== ---- glibc-2.22.orig/nptl/Makefile -+++ glibc-2.22/nptl/Makefile -@@ -283,7 +283,8 @@ tests = tst-typesizes \ - tst-getpid3 \ - tst-setuid3 \ - tst-initializers1 $(addprefix tst-initializers1-,c89 gnu89 c99 gnu99) \ -- tst-bad-schedattr -+ tst-bad-schedattr \ -+ tst-thread_local1 tst-mutex-errorcheck - xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \ - tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 - test-srcs = tst-oddstacklimit -Index: glibc-2.22/nptl/pthread_mutex_timedlock.c -=================================================================== ---- glibc-2.22.orig/nptl/pthread_mutex_timedlock.c -+++ glibc-2.22/nptl/pthread_mutex_timedlock.c -@@ -90,7 +90,8 @@ pthread_mutex_timedlock (mutex, abstime) - if (__glibc_unlikely (mutex->__data.__owner == id)) - return EDEADLK; - -- /* FALLTHROUGH */ -+ /* Don't do lock elision on an error checking mutex. */ -+ goto simple; - - case PTHREAD_MUTEX_TIMED_NP: - FORCE_ELISION (mutex, goto elision); -Index: glibc-2.22/nptl/tst-mutex-errorcheck.c -=================================================================== ---- /dev/null -+++ glibc-2.22/nptl/tst-mutex-errorcheck.c -@@ -0,0 +1,61 @@ -+/* Check that error checking mutexes are not subject to lock elision. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ struct timespec tms = { 0 }; -+ pthread_mutex_t mutex; -+ pthread_mutexattr_t mutexattr; -+ int ret = 0; -+ -+ if (pthread_mutexattr_init (&mutexattr) != 0) -+ return 1; -+ if (pthread_mutexattr_settype (&mutexattr, PTHREAD_MUTEX_ERRORCHECK) != 0) -+ return 1; -+ -+ if (pthread_mutex_init (&mutex, &mutexattr) != 0) -+ return 1; -+ if (pthread_mutexattr_destroy (&mutexattr) != 0) -+ return 1; -+ -+ /* The call to pthread_mutex_timedlock erroneously enabled lock elision -+ on the mutex, which then triggered an assertion failure in -+ pthread_mutex_unlock. It would also defeat the error checking nature -+ of the mutex. */ -+ if (pthread_mutex_timedlock (&mutex, &tms) != 0) -+ return 1; -+ if (pthread_mutex_timedlock (&mutex, &tms) != EDEADLK) -+ { -+ printf ("Failed error checking on locked mutex\n"); -+ ret = 1; -+ } -+ -+ if (pthread_mutex_unlock (&mutex) != 0) -+ ret = 1; -+ -+ return ret; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/fix-locking-in-_IO_cleanup.patch b/fix-locking-in-_IO_cleanup.patch index 4608ecc..b3f591b 100644 --- a/fix-locking-in-_IO_cleanup.patch +++ b/fix-locking-in-_IO_cleanup.patch @@ -186,7 +186,7 @@ index e0ce8cc..9def1d4 100644 if (! dealloc_buffers && !(fp->_flags & _IO_USER_BUF)) @@ -980,8 +934,8 @@ _IO_unbuffer_write (void) - _IO_SETBUF (fp, NULL, 0); + _IO_wsetb (fp, NULL, NULL, 0); #ifdef _IO_MTSAFE_IO - if (cnt < MAXTRIES && fp->_lock != NULL) diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index f857644..767ea1f 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -44,11 +44,11 @@ Index: glibc-2.20/crypt/crypt-entry.c */ char * --__crypt_r (key, salt, data) -+__des_crypt_r (key, salt, data) - const char *key; - const char *salt; - struct crypt_data * __restrict data; +-__crypt_r (const char *key, const char *salt, ++__des_crypt_r (const char *key, const char *salt, + struct crypt_data * __restrict data) + { + ufc_long res[4]; @@ -145,6 +145,7 @@ __crypt_r (key, salt, data) _ufc_output_conversion_r (res[0], res[1], salt, data); return data->crypt_3_buf; @@ -91,269 +91,242 @@ Index: glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist =================================================================== --- /dev/null +++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist -@@ -0,0 +1,5 @@ -+OW_CRYPT_1.0 -+ OW_CRYPT_1.0 A -+ crypt_gensalt F -+ crypt_gensalt_ra F -+ crypt_gensalt_rn F +@@ -0,0 +1,4 @@ ++OW_CRYPT_1.0 OW_CRYPT_1.0 A ++OW_CRYPT_1.0 crypt_gensalt F ++OW_CRYPT_1.0 crypt_gensalt_ra F ++OW_CRYPT_1.0 crypt_gensalt_rn F diff --git a/glibc-2.22.tar.xz b/glibc-2.22.tar.xz deleted file mode 100644 index cda9102..0000000 --- a/glibc-2.22.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 -size 12969072 diff --git a/glibc-2.22.tar.xz.sig b/glibc-2.22.tar.xz.sig deleted file mode 100644 index 7c558c4..0000000 --- a/glibc-2.22.tar.xz.sig +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQEcBAABAgAGBQJVwbd/AAoJECXvCkNsKkr/51cIAKdzgyrQSN6EKFIIhj/SrxPz -RyxACKUITXw5F5BldwIx3pYqpF3V7eslWdkPcZ7Ztcc/9irgvoW+qARAxivciOn1 -N33GA8hLG+Nj4kYCI9DjdJTB01UsR1iEd02ISRB23rqnUvVOgioPubJKb6GJM9Ob -NyAn/rIR+hVXAb5SDci2lkiA604MWg2VdjPxt+dDc8lBCcBfkGHh1Sz+nVxyXWGR -v45+US9jwefFCgBLJvfUmqlgUYxmB6RxMcxrlNx4mTtobdsQM+rBOy84T12s3HMK -k1IPVd6YD7k4lOYjSpzzc/sj7Ib33/hfbGvwDFpjr85RgoGUgsyqnSxEL1U8Azw= -=C5JY ------END PGP SIGNATURE----- diff --git a/glibc-2.23.tar.xz b/glibc-2.23.tar.xz new file mode 100644 index 0000000..549667e --- /dev/null +++ b/glibc-2.23.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 +size 13455260 diff --git a/glibc-2.23.tar.xz.sig b/glibc-2.23.tar.xz.sig new file mode 100644 index 0000000..377ae1e --- /dev/null +++ b/glibc-2.23.tar.xz.sig @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQEcBAABAgAGBQJWxqmXAAoJECXvCkNsKkr/RAcIALXtkYD/eJ2DM+PBWv+/8UD6 +iT2PAjaEhWWbSOu+u9DonCm9FjVjwXZSxOhtNt5x4l4SQfNVMnYc+/m6O30JKhrq +5spaVhL3v0aqxWaIqLapAlG3JuQFc2ItOW+W191MYSPANB366pUW0Z28//ccCifq +8q/hLiB6KXBdHkDX7odtYNkUQY5Ql+Ikkjcxt5tS8JOmBHX6ZJ9aACFeX7AuxxfE +l9DFnYLDzpNdxXJpOEZRprSDJizV84JiaN9XvuWjQHd1W2IeRYiwTxI0EmOO8cOD +ldHkzmkABkfOfswcYlp294IYXp3a+Rvn+wNHQFLwxdnIbeUZ/bd4t49UWDgBp1w= +=DBf0 +-----END PGP SIGNATURE----- diff --git a/glibc-c-utf8-locale.patch b/glibc-c-utf8-locale.patch new file mode 100644 index 0000000..2aa622b --- /dev/null +++ b/glibc-c-utf8-locale.patch @@ -0,0 +1,270 @@ +From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Mon, 10 Aug 2015 15:58:12 +0200 +Subject: [PATCH] Add a C.UTF-8 locale + +--- + localedata/SUPPORTED | 1 + + localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 239 insertions(+) + create mode 100644 localedata/locales/C + +diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED +index 8ca023e..2a78391 100644 +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -1,6 +1,7 @@ + # This file names the currently supported and somewhat tested locales. + # If you have any additions please file a glibc bug report. + SUPPORTED-LOCALES=\ ++C.UTF-8/UTF-8 \ + aa_DJ.UTF-8/UTF-8 \ + aa_DJ/ISO-8859-1 \ + aa_ER/UTF-8 \ +diff --git a/localedata/locales/C b/localedata/locales/C +new file mode 100644 +index 0000000..fdf460e +--- /dev/null ++++ b/localedata/locales/C +@@ -0,0 +1,238 @@ ++escape_char / ++comment_char % ++% Locale for C locale in UTF-8 ++ ++LC_IDENTIFICATION ++title "C locale" ++source "" ++address "" ++contact "" ++email "mfabian@redhat.com" ++tel "" ++fax "" ++language "C" ++territory "" ++revision "1.0" ++date "2015-08-10" ++% ++category "C:2015";LC_IDENTIFICATION ++category "C:2015";LC_CTYPE ++category "C:2015";LC_COLLATE ++category "C:2015";LC_TIME ++category "C:2015";LC_NUMERIC ++category "C:2015";LC_MONETARY ++category "C:2015";LC_MESSAGES ++category "C:2015";LC_PAPER ++category "C:2015";LC_NAME ++category "C:2015";LC_ADDRESS ++category "C:2015";LC_TELEPHONE ++category "C:2015";LC_MEASUREMENT ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "i18n" ++ ++translit_start ++include "translit_combining";"" ++translit_end ++ ++END LC_CTYPE ++ ++LC_COLLATE ++order_start forward ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++UNDEFINED ++order_end ++END LC_COLLATE ++ ++LC_MONETARY ++% This is the 14652 i18n fdcc-set definition for ++% the LC_MONETARY category ++% (except for the int_curr_symbol and currency_symbol, they are empty in ++% the 14652 i18n fdcc-set definition and also empty in ++% glibc/locale/C-monetary.c. But localedef complains in that case). ++% ++% Using "USD" for int_curr_symbol. But maybe "XXX" would be better? ++% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217) ++int_curr_symbol "" ++% Using "$" for currency_symbol. But maybe would be better? ++% U+00A4 is the "generic currency symbol" ++% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29) ++currency_symbol "" ++mon_decimal_point "" ++mon_thousands_sep "" ++mon_grouping -1 ++positive_sign "" ++negative_sign "" ++int_frac_digits -1 ++frac_digits -1 ++p_cs_precedes -1 ++int_p_sep_by_space -1 ++p_sep_by_space -1 ++n_cs_precedes -1 ++int_n_sep_by_space -1 ++n_sep_by_space -1 ++p_sign_posn -1 ++n_sign_posn -1 ++% ++END LC_MONETARY ++ ++LC_NUMERIC ++% This is the POSIX Locale definition for ++% the LC_NUMERIC category. ++% ++decimal_point "" ++thousands_sep "" ++grouping -1 ++END LC_NUMERIC ++ ++LC_TIME ++% This is the POSIX Locale definition for ++% the LC_TIME category. ++% ++% Abbreviated weekday names (%a) ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++ ++% Full weekday names (%A) ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++% Abbreviated month names (%b) ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" ++ ++% Full month names (%B) ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++% Week description, consists of three fields: ++% 1. Number of days in a week. ++% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday). ++% 3. The weekday number to be contained in the first week of the year. ++% ++% ISO 8601 conforming applications should use the values 7, 19971201 (a ++% Monday), and 4 (Thursday), respectively. ++week 7;19971201;4 ++first_weekday 1 ++first_workday 1 ++ ++% Appropriate date and time representation (%c) ++% "%a %b %e %H:%M:%S %Y" ++d_t_fmt "" ++ ++% Appropriate date representation (%x) ++% "%m/%d/%y" ++d_fmt "" ++ ++% Appropriate time representation (%X) ++% "%H:%M:%S" ++t_fmt "" ++ ++% Appropriate AM/PM time representation (%r) ++% "%I:%M:%S %p" ++t_fmt_ampm "" ++ ++% Equivalent of AM/PM (%p) "AM"/"PM" ++% ++am_pm "";"" ++ ++% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y" ++date_fmt "" ++END LC_TIME ++ ++LC_MESSAGES ++% This is the POSIX Locale definition for ++% the LC_NUMERIC category. ++% ++yesexpr "" ++noexpr "" ++yesstr "" ++nostr "" ++END LC_MESSAGES ++ ++LC_PAPER ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_PAPER category. ++% (A4 paper, this is also used in the built in C/POSIX ++% locale in glibc/locale/C-paper.c) ++height 297 ++width 210 ++END LC_PAPER ++ ++LC_NAME ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_NAME category. ++% "%p%t%g%t%m%t%f" ++% (also used in the built in C/POSIX locale in glibc/locale/C-name.c) ++name_fmt "/ ++" ++END LC_NAME ++ ++LC_ADDRESS ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_ADDRESS category. ++% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N" ++% (also used in the built in C/POSIX locale in glibc/locale/C-address.c) ++postal_fmt "/ ++/ ++/ ++/ ++" ++END LC_ADDRESS ++ ++LC_TELEPHONE ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_TELEPHONE category. ++% "+%c %a %l" ++tel_int_fmt "/ ++" ++% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c) ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_MEASUREMENT category. ++% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c) ++%metric ++measurement 1 ++END LC_MEASUREMENT ++ +-- +2.4.3 + diff --git a/glibc-disable-gettext-for-c-utf8.patch b/glibc-disable-gettext-for-c-utf8.patch new file mode 100644 index 0000000..466df5b --- /dev/null +++ b/glibc-disable-gettext-for-c-utf8.patch @@ -0,0 +1,12 @@ +Index: glibc-2.23/intl/dcigettext.c +=================================================================== +--- glibc-2.23.orig/intl/dcigettext.c ++++ glibc-2.23/intl/dcigettext.c +@@ -714,6 +714,7 @@ DCIGETTEXT (const char *domainname, cons + /* If the current locale value is C (or POSIX) we don't load a + domain. Return the MSGID. */ + if (strcmp (single_locale, "C") == 0 ++ || strcmp (single_locale, "C.UTF-8") == 0 + || strcmp (single_locale, "POSIX") == 0) + break; + diff --git a/glibc-memset-nontemporal.diff b/glibc-memset-nontemporal.diff index 413b515..d6a3489 100644 --- a/glibc-memset-nontemporal.diff +++ b/glibc-memset-nontemporal.diff @@ -5,9 +5,9 @@ index db4fb84..9c42018 100644 --- a/sysdeps/x86_64/memset.S +++ b/sysdeps/x86_64/memset.S @@ -84,6 +84,9 @@ L(loop_start): - movdqu %xmm8, -48(%rdi,%rdx) - movdqu %xmm8, 48(%rdi) - movdqu %xmm8, -64(%rdi,%rdx) + movdqu %xmm0, -48(%rdi,%rdx) + movdqu %xmm0, 48(%rdi) + movdqu %xmm0, -64(%rdi,%rdx) + mov __x86_shared_cache_size(%rip),%r9d # The largest cache size + cmp %r9,%rdx + ja L(nt_move) @@ -25,10 +25,10 @@ index db4fb84..9c42018 100644 + je L(return) + .p2align 4 +L(nt_loop): -+ movntdq %xmm8, (%rcx) -+ movntdq %xmm8, 16(%rcx) -+ movntdq %xmm8, 32(%rcx) -+ movntdq %xmm8, 48(%rcx) ++ movntdq %xmm0, (%rcx) ++ movntdq %xmm0, 16(%rcx) ++ movntdq %xmm0, 32(%rcx) ++ movntdq %xmm0, 48(%rcx) + addq $64, %rcx + cmpq %rcx, %rdx + jne L(nt_loop) @@ -36,5 +36,5 @@ index db4fb84..9c42018 100644 + rep + ret L(less_16_bytes): - movq %xmm8, %rcx + movq %xmm0, %rcx testb $24, %dl diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff index 397e300..e1cbbf1 100644 --- a/glibc-resolv-reload.diff +++ b/glibc-resolv-reload.diff @@ -79,7 +79,7 @@ Index: glibc-2.17.90/resolv/res_libc.c @@ -22,7 +22,7 @@ #include #include - #include + #include - +#include diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 50b0b7f..2d69bea 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,85 @@ +------------------------------------------------------------------- +Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de + +- Add compatibility symlinks for LSB 3.0 (fate#318933) + +------------------------------------------------------------------- +Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de + +- powerpc-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) + +------------------------------------------------------------------- +Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de + +- ldd-system-interp.patch: Restore warning about execution permission, it + is still needed for noexec mounts (bsc#915985) + +------------------------------------------------------------------- +Tue Mar 8 15:28:16 UTC 2016 - idonmez@suse.com + +- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) + and rh#902094 . Added with glibc-c-utf8-locale.patch. +- Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for + C.UTF-8 same as C locale. + +------------------------------------------------------------------- +Mon Mar 7 14:47:50 UTC 2016 - schwab@suse.de + +- Move %install_info_delete to %preun +- crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer + acceptable + +------------------------------------------------------------------- +Tue Feb 23 16:11:36 UTC 2016 - schwab@suse.de + +- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE + +------------------------------------------------------------------- +Mon Feb 22 11:05:12 UTC 2016 - schwab@suse.de + +- Update to glibc 2.23 release. + * Unicode 8.0.0 Support + * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess + the kernel-internal CPU set size + * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 + * getaddrinfo now detects certain invalid responses on an internal + netlink socket + * A defect in the malloc implementation, present since glibc 2.15 (2012) + or glibc 2.10 via --enable-experimental-malloc (2009), could result in + the unnecessary serialization of memory allocation requests across + threads + * The obsolete header has been removed + * The obsolete functions bdflush, create_module, get_kernel_syms, + query_module and uselib are no longer available to newly linked + binaries + * Optimized string, wcsmbs and memory functions for IBM z13. + * Newly linked programs that define a variable called signgam will no + longer have it set by the lgamma, lgammaf and lgammal functions +- Removed patches: + * dont-remove-nodelete-flag.patch + * openat64-readd-o-largefile.patch + * mntent-blank-line.patch + * opendir-o-directory-check.patch + * strcoll-remove-strdiff-opt.patch + * ld-pointer-guard.patch + * tls-dtor-list-mangling.patch + * powerpc-lock-elision-race.patch + * prelink-elf-rtype-class.patch + * vector-finite-math-aliases.patch + * powerpc-elision-adapt-param.patch + * catopen-unbound-alloca.patch + * strftime-range-check.patch + * hcreate-overflow-check.patch + * errorcheck-mutex-no-elision.patch + * refactor-nan-parsing.patch + * send-dg-buffer-overflow.patch + * isinf-cxx11-conflict.patch + * ibm93x-redundant-shift-si.patch + * iconv-reset-input-buffer.patch + * tzset-tzname.patch + * static-dlopen.patch + ------------------------------------------------------------------- Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de @@ -39,12 +121,12 @@ Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de - reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock - on fork (BZ #19282) + on fork (bsc#958315, BZ #19282) ------------------------------------------------------------------- Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de -- resolv-mem-leak.patch: Fix resource leak in resolver (BZ #19257) +- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) - tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) @@ -56,8 +138,8 @@ Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de ------------------------------------------------------------------- Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de -- ld-pointer-guard.patch: Always enable pointer guard (bsc#950944, BZ - #18928) +- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, + bsc#950944, BZ #18928) ------------------------------------------------------------------- Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de @@ -115,7 +197,7 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de - Update to glibc 2.22 release. * Cache information can be queried via sysconf() function on s390 * A buffer overflow in gethostbyname_r and related functions performing DNS - requests has been fixed. + requests has been fixed. (CVE-2015-1781) * The time zone file parser has been made more robust against crafted time zone files * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors @@ -126,6 +208,8 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de compliance. * The header is deprecated, and will be removed in a future release. + * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 + bsc#940195 bsc#940332 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch @@ -189,7 +273,7 @@ Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de - powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ #17967) - nss-separate-state-getXXent.patch: Separate internal state between - getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) + getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) - static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) @@ -230,6 +314,8 @@ Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed + * CVE-2015-1472 CVE-2015-1473 CVE-2104-7817 CVE-2012-3406 CVE-2014-9402 + CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch * pthread-mutex-trylock-elision.patch @@ -269,6 +355,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de and the LC_* variables), are more tightly checked for proper syntax * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions + * CVE-2013-7423 bsc#915526 bsc#934084 - Patches from upstream removed * nss-dns-memleak.patch * sin-sign.patch diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 664d526..05d9b9b 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -45,6 +45,7 @@ BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} BuildRequires: gcc-c++ +BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel %endif %if %{utils_build} @@ -102,9 +103,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.22 +Version: 2.23 Release: 0 -%define git_id bbab82c25da9 +%define git_id 10ed3a0ffbb4 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -123,7 +124,8 @@ Source20: nscd.conf Source21: nscd.service # crypt_blowfish Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign +# The sign key uses MD5 which is no longer accepted by gpg +#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign %if %{normal_build} # ngpt was used in 8.1 and SLES8 @@ -208,6 +210,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch21: powerpc-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -216,6 +220,10 @@ Patch100: glibc-2.3.locales.diff.bz2 Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China Patch103: glibc-2.4-china.diff +# PATCH-FIX-OPENSUSE -- Add C.UTF-8 locale +Patch104: glibc-c-utf8-locale.patch +# PATCH-FIX-OPENSUSE -- Disable gettext for C.UTF-8 locale +Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: @@ -232,42 +240,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Clear DF_1_NODELETE flag only for failed to load library (BZ #18778) -Patch1000: dont-remove-nodelete-flag.patch -# PATCH-FIX-UPSTREAM Readd O_LARGEFILE flag for openat64 (BZ #18781) -Patch1001: openat64-readd-o-largefile.patch -# PATCH-FIX-UPSTREAM getmntent: fix memory corruption w/blank lines (BZ #18887) -Patch1002: mntent-blank-line.patch -# PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) -Patch1003: opendir-o-directory-check.patch -# PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) -Patch1004: strcoll-remove-strdiff-opt.patch -# PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) -Patch1005: ld-pointer-guard.patch -# PATCH-FIX-UPSTREAM Harden tls_dtor_list with pointer mangling (BZ #19018) -Patch1006: tls-dtor-list-mangling.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) -Patch1007: powerpc-lock-elision-race.patch -# PATCH-FIX-UPSTREAM Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) -Patch1008: prelink-elf-rtype-class.patch -# PATCH-FIX-UPSTREAM Better workaround for aliases of *_finite symbols in vector math library (BZ# 19058) -Patch1009: vector-finite-math-aliases.patch -# PATCH-FIX-UPSTREAM powerpc: Fix usage of elision transient failure adapt param (BZ #19174) -Patch1010: powerpc-elision-adapt-param.patch -# PATCH-FIX-UPSTREAM Fix unbound alloca in catopen (CVE-2015-8779, BZ #17905) -Patch1011: catopen-unbound-alloca.patch -# PATCH-FIX-UPSTREAM Add range check on time fields (CVE-2015-8776, BZ #18985) -Patch1012: strftime-range-check.patch -# PATCH-FIX-UPSTREAM Handle overflow in hcreate (CVE-2015-8778, BZ #18240) -Patch1013: hcreate-overflow-check.patch -# PATCH-FIX-UPSTREAM Don't do lock elision on an error checking mutex (BZ #17514) -Patch1014: errorcheck-mutex-no-elision.patch -# PATCH-FIX-UPSTREAM Refactor strtod parsing of NaN payloads (CVE-2014-9761, BZ #16962) -Patch1015: refactor-nan-parsing.patch -# PATCH-FIX-UPSTREAM Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, BZ #18665) -Patch1016: send-dg-buffer-overflow.patch -# PATCH-FIX-UPSTREAM Fix isinf/isnan declaration conflict with C++11 (BZ #19439) -Patch1017: isinf-cxx11-conflict.patch +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch1000: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE +Patch1001: no-long-double.patch ### # Patches awaiting upstream approval @@ -275,27 +251,19 @@ Patch1017: isinf-cxx11-conflict.patch # PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) Patch2000: fix-locking-in-_IO_cleanup.patch # PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) -Patch2002: ldd-system-interp.patch +Patch2001: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) -Patch2003: abort-no-flush.patch +Patch2002: abort-no-flush.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) -Patch2005: glibc-memset-nontemporal.diff -# PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) -Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) -Patch2007: static-dlopen.patch +Patch2003: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) -Patch2008: fnmatch-collating-elements.patch +Patch2004: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) -Patch2009: nss-files-long-lines-2.patch +Patch2005: nss-files-long-lines-2.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2010: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) -Patch2011: tzset-tzname.patch -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2012: resolv-mem-leak.patch +Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2013: reinitialize-dl_load_write_lock.patch +Patch2008: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -312,7 +280,7 @@ Summary: Info Files for the GNU C Library License: GFDL-1.1 Group: Documentation/Other Requires(post): %{install_info_prereq} -Requires(postun): %{install_info_prereq} +Requires(preun): %{install_info_prereq} BuildArch: noarch %description info @@ -485,10 +453,13 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch21 -p1 %patch100 -p1 %patch102 -p1 %patch103 -p1 +%patch104 -p1 +%patch105 -p1 %patch300 -p1 %patch301 -p1 @@ -497,35 +468,15 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 %patch2000 -p1 +%patch2001 -p1 %patch2002 -p1 %patch2003 -p1 +%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 -%patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 -%patch2010 -p1 -%patch2011 -p1 -%patch2012 -p1 -%patch2013 -p1 %patch3000 @@ -680,7 +631,8 @@ configure_and_build_glibc() { %endif --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc + --enable-bind-now --enable-obsolete-rpc \ + --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) @@ -920,10 +872,6 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif -# NPTL is not usable outside of glibc, so include -# the generic one (RH#162634) -cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -997,11 +945,7 @@ rm -f %{buildroot}/%{_lib}/libNoVersion* # Don't look at ldd! We don't wish a /bin/sh requires chmod 644 %{buildroot}%{_bindir}/ldd -# Remove timezone data, now coming in standalone package: -for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do - rm -f %{buildroot}/$i -done -rm -rf %{buildroot}%{_datadir}/zoneinfo +rm -f %{buildroot}/sbin/sln # Remove the buildflags tracking section and the build-id for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshared.a; do @@ -1043,6 +987,26 @@ rm -rf %{buildroot}/usr/lib/tmpfiles.d rm -rf %{buildroot}/run/nscd %endif # i686 +# LSB +%ifarch %ix86 +ln -sf /%{_lib}/ld-linux.so.2 $RPM_BUILD_ROOT/%{_lib}/ld-lsb.so.3 +%endif +%ifarch x86_64 +ln -sf /%{_lib}/ld-linux-x86-64.so.2 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-x86-64.so.3 +%endif +%ifarch ppc +ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-ppc32.so.3 +%endif +%ifarch ppc64 +ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-ppc64.so.3 +%endif +%ifarch s390 +ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 +%endif +%ifarch s390x +ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 +%endif + %endif # %{normal_build} %if %{utils_build} @@ -1084,7 +1048,7 @@ done %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz -%postun info +%preun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz %pre -n nscd @@ -1168,6 +1132,10 @@ exit 0 /lib/ld-linux-aarch64.so.1 /%{_lib}/ld-linux-aarch64.so.1 %endif +%ifarch %ix86 x86_64 ppc ppc64 s390 s390x +# LSB +/%{_lib}/*-lsb*.so.3 +%endif /%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 50b0b7f..2d69bea 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,85 @@ +------------------------------------------------------------------- +Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de + +- Add compatibility symlinks for LSB 3.0 (fate#318933) + +------------------------------------------------------------------- +Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de + +- powerpc-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) + +------------------------------------------------------------------- +Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de + +- ldd-system-interp.patch: Restore warning about execution permission, it + is still needed for noexec mounts (bsc#915985) + +------------------------------------------------------------------- +Tue Mar 8 15:28:16 UTC 2016 - idonmez@suse.com + +- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) + and rh#902094 . Added with glibc-c-utf8-locale.patch. +- Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for + C.UTF-8 same as C locale. + +------------------------------------------------------------------- +Mon Mar 7 14:47:50 UTC 2016 - schwab@suse.de + +- Move %install_info_delete to %preun +- crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer + acceptable + +------------------------------------------------------------------- +Tue Feb 23 16:11:36 UTC 2016 - schwab@suse.de + +- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE + +------------------------------------------------------------------- +Mon Feb 22 11:05:12 UTC 2016 - schwab@suse.de + +- Update to glibc 2.23 release. + * Unicode 8.0.0 Support + * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess + the kernel-internal CPU set size + * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 + * getaddrinfo now detects certain invalid responses on an internal + netlink socket + * A defect in the malloc implementation, present since glibc 2.15 (2012) + or glibc 2.10 via --enable-experimental-malloc (2009), could result in + the unnecessary serialization of memory allocation requests across + threads + * The obsolete header has been removed + * The obsolete functions bdflush, create_module, get_kernel_syms, + query_module and uselib are no longer available to newly linked + binaries + * Optimized string, wcsmbs and memory functions for IBM z13. + * Newly linked programs that define a variable called signgam will no + longer have it set by the lgamma, lgammaf and lgammal functions +- Removed patches: + * dont-remove-nodelete-flag.patch + * openat64-readd-o-largefile.patch + * mntent-blank-line.patch + * opendir-o-directory-check.patch + * strcoll-remove-strdiff-opt.patch + * ld-pointer-guard.patch + * tls-dtor-list-mangling.patch + * powerpc-lock-elision-race.patch + * prelink-elf-rtype-class.patch + * vector-finite-math-aliases.patch + * powerpc-elision-adapt-param.patch + * catopen-unbound-alloca.patch + * strftime-range-check.patch + * hcreate-overflow-check.patch + * errorcheck-mutex-no-elision.patch + * refactor-nan-parsing.patch + * send-dg-buffer-overflow.patch + * isinf-cxx11-conflict.patch + * ibm93x-redundant-shift-si.patch + * iconv-reset-input-buffer.patch + * tzset-tzname.patch + * static-dlopen.patch + ------------------------------------------------------------------- Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de @@ -39,12 +121,12 @@ Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de - reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock - on fork (BZ #19282) + on fork (bsc#958315, BZ #19282) ------------------------------------------------------------------- Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de -- resolv-mem-leak.patch: Fix resource leak in resolver (BZ #19257) +- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) - tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) @@ -56,8 +138,8 @@ Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de ------------------------------------------------------------------- Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de -- ld-pointer-guard.patch: Always enable pointer guard (bsc#950944, BZ - #18928) +- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, + bsc#950944, BZ #18928) ------------------------------------------------------------------- Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de @@ -115,7 +197,7 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de - Update to glibc 2.22 release. * Cache information can be queried via sysconf() function on s390 * A buffer overflow in gethostbyname_r and related functions performing DNS - requests has been fixed. + requests has been fixed. (CVE-2015-1781) * The time zone file parser has been made more robust against crafted time zone files * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors @@ -126,6 +208,8 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de compliance. * The header is deprecated, and will be removed in a future release. + * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 + bsc#940195 bsc#940332 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch @@ -189,7 +273,7 @@ Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de - powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ #17967) - nss-separate-state-getXXent.patch: Separate internal state between - getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) + getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) - static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) @@ -230,6 +314,8 @@ Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed + * CVE-2015-1472 CVE-2015-1473 CVE-2104-7817 CVE-2012-3406 CVE-2014-9402 + CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch * pthread-mutex-trylock-elision.patch @@ -269,6 +355,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de and the LC_* variables), are more tightly checked for proper syntax * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions + * CVE-2013-7423 bsc#915526 bsc#934084 - Patches from upstream removed * nss-dns-memleak.patch * sin-sign.patch diff --git a/glibc-utils.spec b/glibc-utils.spec index 4010918..58435a2 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -44,6 +44,7 @@ BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} BuildRequires: gcc-c++ +BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel %endif %if %{utils_build} @@ -101,9 +102,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.22 +Version: 2.23 Release: 0 -%define git_id bbab82c25da9 +%define git_id 10ed3a0ffbb4 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -122,7 +123,8 @@ Source20: nscd.conf Source21: nscd.service # crypt_blowfish Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign +# The sign key uses MD5 which is no longer accepted by gpg +#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign %if %{normal_build} # ngpt was used in 8.1 and SLES8 @@ -207,6 +209,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch21: powerpc-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -215,6 +219,10 @@ Patch100: glibc-2.3.locales.diff.bz2 Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China Patch103: glibc-2.4-china.diff +# PATCH-FIX-OPENSUSE -- Add C.UTF-8 locale +Patch104: glibc-c-utf8-locale.patch +# PATCH-FIX-OPENSUSE -- Disable gettext for C.UTF-8 locale +Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: @@ -231,42 +239,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Clear DF_1_NODELETE flag only for failed to load library (BZ #18778) -Patch1000: dont-remove-nodelete-flag.patch -# PATCH-FIX-UPSTREAM Readd O_LARGEFILE flag for openat64 (BZ #18781) -Patch1001: openat64-readd-o-largefile.patch -# PATCH-FIX-UPSTREAM getmntent: fix memory corruption w/blank lines (BZ #18887) -Patch1002: mntent-blank-line.patch -# PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) -Patch1003: opendir-o-directory-check.patch -# PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) -Patch1004: strcoll-remove-strdiff-opt.patch -# PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) -Patch1005: ld-pointer-guard.patch -# PATCH-FIX-UPSTREAM Harden tls_dtor_list with pointer mangling (BZ #19018) -Patch1006: tls-dtor-list-mangling.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) -Patch1007: powerpc-lock-elision-race.patch -# PATCH-FIX-UPSTREAM Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) -Patch1008: prelink-elf-rtype-class.patch -# PATCH-FIX-UPSTREAM Better workaround for aliases of *_finite symbols in vector math library (BZ# 19058) -Patch1009: vector-finite-math-aliases.patch -# PATCH-FIX-UPSTREAM powerpc: Fix usage of elision transient failure adapt param (BZ #19174) -Patch1010: powerpc-elision-adapt-param.patch -# PATCH-FIX-UPSTREAM Fix unbound alloca in catopen (CVE-2015-8779, BZ #17905) -Patch1011: catopen-unbound-alloca.patch -# PATCH-FIX-UPSTREAM Add range check on time fields (CVE-2015-8776, BZ #18985) -Patch1012: strftime-range-check.patch -# PATCH-FIX-UPSTREAM Handle overflow in hcreate (CVE-2015-8778, BZ #18240) -Patch1013: hcreate-overflow-check.patch -# PATCH-FIX-UPSTREAM Don't do lock elision on an error checking mutex (BZ #17514) -Patch1014: errorcheck-mutex-no-elision.patch -# PATCH-FIX-UPSTREAM Refactor strtod parsing of NaN payloads (CVE-2014-9761, BZ #16962) -Patch1015: refactor-nan-parsing.patch -# PATCH-FIX-UPSTREAM Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, BZ #18665) -Patch1016: send-dg-buffer-overflow.patch -# PATCH-FIX-UPSTREAM Fix isinf/isnan declaration conflict with C++11 (BZ #19439) -Patch1017: isinf-cxx11-conflict.patch +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch1000: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE +Patch1001: no-long-double.patch ### # Patches awaiting upstream approval @@ -274,27 +250,19 @@ Patch1017: isinf-cxx11-conflict.patch # PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) Patch2000: fix-locking-in-_IO_cleanup.patch # PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) -Patch2002: ldd-system-interp.patch +Patch2001: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) -Patch2003: abort-no-flush.patch +Patch2002: abort-no-flush.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) -Patch2005: glibc-memset-nontemporal.diff -# PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) -Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) -Patch2007: static-dlopen.patch +Patch2003: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) -Patch2008: fnmatch-collating-elements.patch +Patch2004: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) -Patch2009: nss-files-long-lines-2.patch +Patch2005: nss-files-long-lines-2.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2010: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) -Patch2011: tzset-tzname.patch -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2012: resolv-mem-leak.patch +Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2013: reinitialize-dl_load_write_lock.patch +Patch2008: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -312,7 +280,7 @@ Summary: Info Files for the GNU C Library License: GFDL-1.1 Group: Documentation/Other Requires(post): %{install_info_prereq} -Requires(postun): %{install_info_prereq} +Requires(preun): %{install_info_prereq} BuildArch: noarch %description info @@ -485,10 +453,13 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch21 -p1 %patch100 -p1 %patch102 -p1 %patch103 -p1 +%patch104 -p1 +%patch105 -p1 %patch300 -p1 %patch301 -p1 @@ -497,35 +468,15 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 %patch2000 -p1 +%patch2001 -p1 %patch2002 -p1 %patch2003 -p1 +%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 -%patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 -%patch2010 -p1 -%patch2011 -p1 -%patch2012 -p1 -%patch2013 -p1 %patch3000 @@ -680,7 +631,8 @@ configure_and_build_glibc() { %endif --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc + --enable-bind-now --enable-obsolete-rpc \ + --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) @@ -920,10 +872,6 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif -# NPTL is not usable outside of glibc, so include -# the generic one (RH#162634) -cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -997,11 +945,7 @@ rm -f %{buildroot}/%{_lib}/libNoVersion* # Don't look at ldd! We don't wish a /bin/sh requires chmod 644 %{buildroot}%{_bindir}/ldd -# Remove timezone data, now coming in standalone package: -for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do - rm -f %{buildroot}/$i -done -rm -rf %{buildroot}%{_datadir}/zoneinfo +rm -f %{buildroot}/sbin/sln # Remove the buildflags tracking section and the build-id for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshared.a; do @@ -1043,6 +987,26 @@ rm -rf %{buildroot}/usr/lib/tmpfiles.d rm -rf %{buildroot}/run/nscd %endif # i686 +# LSB +%ifarch %ix86 +ln -sf /%{_lib}/ld-linux.so.2 $RPM_BUILD_ROOT/%{_lib}/ld-lsb.so.3 +%endif +%ifarch x86_64 +ln -sf /%{_lib}/ld-linux-x86-64.so.2 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-x86-64.so.3 +%endif +%ifarch ppc +ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-ppc32.so.3 +%endif +%ifarch ppc64 +ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-ppc64.so.3 +%endif +%ifarch s390 +ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 +%endif +%ifarch s390x +ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 +%endif + %endif # %{normal_build} %if %{utils_build} @@ -1084,7 +1048,7 @@ done %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz -%postun info +%preun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz %pre -n nscd @@ -1168,6 +1132,10 @@ exit 0 /lib/ld-linux-aarch64.so.1 /%{_lib}/ld-linux-aarch64.so.1 %endif +%ifarch %ix86 x86_64 ppc ppc64 s390 s390x +# LSB +/%{_lib}/*-lsb*.so.3 +%endif /%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 diff --git a/glibc-version.diff b/glibc-version.diff index ae13f25..0cc1703 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -8,7 +8,7 @@ Index: glibc-2.17.90/csu/version.c static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2015 Free Software Foundation, Inc.\n\ + Copyright (C) 2016 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index 50b0b7f..2d69bea 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,85 @@ +------------------------------------------------------------------- +Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de + +- Add compatibility symlinks for LSB 3.0 (fate#318933) + +------------------------------------------------------------------- +Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de + +- powerpc-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) + +------------------------------------------------------------------- +Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de + +- ldd-system-interp.patch: Restore warning about execution permission, it + is still needed for noexec mounts (bsc#915985) + +------------------------------------------------------------------- +Tue Mar 8 15:28:16 UTC 2016 - idonmez@suse.com + +- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) + and rh#902094 . Added with glibc-c-utf8-locale.patch. +- Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for + C.UTF-8 same as C locale. + +------------------------------------------------------------------- +Mon Mar 7 14:47:50 UTC 2016 - schwab@suse.de + +- Move %install_info_delete to %preun +- crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer + acceptable + +------------------------------------------------------------------- +Tue Feb 23 16:11:36 UTC 2016 - schwab@suse.de + +- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE + +------------------------------------------------------------------- +Mon Feb 22 11:05:12 UTC 2016 - schwab@suse.de + +- Update to glibc 2.23 release. + * Unicode 8.0.0 Support + * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess + the kernel-internal CPU set size + * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 + * getaddrinfo now detects certain invalid responses on an internal + netlink socket + * A defect in the malloc implementation, present since glibc 2.15 (2012) + or glibc 2.10 via --enable-experimental-malloc (2009), could result in + the unnecessary serialization of memory allocation requests across + threads + * The obsolete header has been removed + * The obsolete functions bdflush, create_module, get_kernel_syms, + query_module and uselib are no longer available to newly linked + binaries + * Optimized string, wcsmbs and memory functions for IBM z13. + * Newly linked programs that define a variable called signgam will no + longer have it set by the lgamma, lgammaf and lgammal functions +- Removed patches: + * dont-remove-nodelete-flag.patch + * openat64-readd-o-largefile.patch + * mntent-blank-line.patch + * opendir-o-directory-check.patch + * strcoll-remove-strdiff-opt.patch + * ld-pointer-guard.patch + * tls-dtor-list-mangling.patch + * powerpc-lock-elision-race.patch + * prelink-elf-rtype-class.patch + * vector-finite-math-aliases.patch + * powerpc-elision-adapt-param.patch + * catopen-unbound-alloca.patch + * strftime-range-check.patch + * hcreate-overflow-check.patch + * errorcheck-mutex-no-elision.patch + * refactor-nan-parsing.patch + * send-dg-buffer-overflow.patch + * isinf-cxx11-conflict.patch + * ibm93x-redundant-shift-si.patch + * iconv-reset-input-buffer.patch + * tzset-tzname.patch + * static-dlopen.patch + ------------------------------------------------------------------- Thu Feb 18 13:22:19 UTC 2016 - schwab@suse.de @@ -39,12 +121,12 @@ Mon Feb 15 15:43:02 UTC 2016 - schwab@suse.de Thu Nov 26 14:46:21 UTC 2015 - schwab@suse.de - reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock - on fork (BZ #19282) + on fork (bsc#958315, BZ #19282) ------------------------------------------------------------------- Wed Nov 18 15:09:30 UTC 2015 - schwab@suse.de -- resolv-mem-leak.patch: Fix resource leak in resolver (BZ #19257) +- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) - tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) @@ -56,8 +138,8 @@ Mon Oct 26 15:22:53 UTC 2015 - schwab@suse.de ------------------------------------------------------------------- Mon Oct 19 12:28:58 UTC 2015 - schwab@suse.de -- ld-pointer-guard.patch: Always enable pointer guard (bsc#950944, BZ - #18928) +- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, + bsc#950944, BZ #18928) ------------------------------------------------------------------- Mon Oct 12 08:12:10 UTC 2015 - schwab@suse.de @@ -115,7 +197,7 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de - Update to glibc 2.22 release. * Cache information can be queried via sysconf() function on s390 * A buffer overflow in gethostbyname_r and related functions performing DNS - requests has been fixed. + requests has been fixed. (CVE-2015-1781) * The time zone file parser has been made more robust against crafted time zone files * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors @@ -126,6 +208,8 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de compliance. * The header is deprecated, and will be removed in a future release. + * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 + bsc#940195 bsc#940332 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch @@ -189,7 +273,7 @@ Mon Mar 30 09:04:49 UTC 2015 - schwab@suse.de - powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ #17967) - nss-separate-state-getXXent.patch: Separate internal state between - getXXent and getXXbyYY NSS calls (bsc#918187, BZ #18007) + getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) - static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628) @@ -230,6 +314,8 @@ Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed + * CVE-2015-1472 CVE-2015-1473 CVE-2104-7817 CVE-2012-3406 CVE-2014-9402 + CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch * pthread-mutex-trylock-elision.patch @@ -269,6 +355,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de and the LC_* variables), are more tightly checked for proper syntax * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions + * CVE-2013-7423 bsc#915526 bsc#934084 - Patches from upstream removed * nss-dns-memleak.patch * sin-sign.patch diff --git a/glibc.spec b/glibc.spec index 98433c6..5e019f9 100644 --- a/glibc.spec +++ b/glibc.spec @@ -45,6 +45,7 @@ BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} BuildRequires: gcc-c++ +BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel %endif %if %{utils_build} @@ -102,9 +103,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.22 +Version: 2.23 Release: 0 -%define git_id bbab82c25da9 +%define git_id 10ed3a0ffbb4 Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -123,7 +124,8 @@ Source20: nscd.conf Source21: nscd.service # crypt_blowfish Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz -Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign +# The sign key uses MD5 which is no longer accepted by gpg +#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign %if %{normal_build} # ngpt was used in 8.1 and SLES8 @@ -208,6 +210,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch +# PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch21: powerpc-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -216,6 +220,10 @@ Patch100: glibc-2.3.locales.diff.bz2 Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China Patch103: glibc-2.4-china.diff +# PATCH-FIX-OPENSUSE -- Add C.UTF-8 locale +Patch104: glibc-c-utf8-locale.patch +# PATCH-FIX-OPENSUSE -- Disable gettext for C.UTF-8 locale +Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: @@ -232,42 +240,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Clear DF_1_NODELETE flag only for failed to load library (BZ #18778) -Patch1000: dont-remove-nodelete-flag.patch -# PATCH-FIX-UPSTREAM Readd O_LARGEFILE flag for openat64 (BZ #18781) -Patch1001: openat64-readd-o-largefile.patch -# PATCH-FIX-UPSTREAM getmntent: fix memory corruption w/blank lines (BZ #18887) -Patch1002: mntent-blank-line.patch -# PATCH-FIX-UPSTREAM Fix opendir inverted o_directory_works test (BZ #18921) -Patch1003: opendir-o-directory-check.patch -# PATCH-FIX-UPSTREAM strcoll: Remove incorrect STRDIFF-based optimization (BZ #18589) -Patch1004: strcoll-remove-strdiff-opt.patch -# PATCH-FIX-UPSTREAM Always enable pointer guard (BZ #18928) -Patch1005: ld-pointer-guard.patch -# PATCH-FIX-UPSTREAM Harden tls_dtor_list with pointer mangling (BZ #19018) -Patch1006: tls-dtor-list-mangling.patch -# PATCH-FIX-UPSTREAM PowerPC: Fix a race condition when eliding a lock (BZ #18743) -Patch1007: powerpc-lock-elision-race.patch -# PATCH-FIX-UPSTREAM Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) -Patch1008: prelink-elf-rtype-class.patch -# PATCH-FIX-UPSTREAM Better workaround for aliases of *_finite symbols in vector math library (BZ# 19058) -Patch1009: vector-finite-math-aliases.patch -# PATCH-FIX-UPSTREAM powerpc: Fix usage of elision transient failure adapt param (BZ #19174) -Patch1010: powerpc-elision-adapt-param.patch -# PATCH-FIX-UPSTREAM Fix unbound alloca in catopen (CVE-2015-8779, BZ #17905) -Patch1011: catopen-unbound-alloca.patch -# PATCH-FIX-UPSTREAM Add range check on time fields (CVE-2015-8776, BZ #18985) -Patch1012: strftime-range-check.patch -# PATCH-FIX-UPSTREAM Handle overflow in hcreate (CVE-2015-8778, BZ #18240) -Patch1013: hcreate-overflow-check.patch -# PATCH-FIX-UPSTREAM Don't do lock elision on an error checking mutex (BZ #17514) -Patch1014: errorcheck-mutex-no-elision.patch -# PATCH-FIX-UPSTREAM Refactor strtod parsing of NaN payloads (CVE-2014-9761, BZ #16962) -Patch1015: refactor-nan-parsing.patch -# PATCH-FIX-UPSTREAM Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, BZ #18665) -Patch1016: send-dg-buffer-overflow.patch -# PATCH-FIX-UPSTREAM Fix isinf/isnan declaration conflict with C++11 (BZ #19439) -Patch1017: isinf-cxx11-conflict.patch +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch1000: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE +Patch1001: no-long-double.patch ### # Patches awaiting upstream approval @@ -275,27 +251,19 @@ Patch1017: isinf-cxx11-conflict.patch # PATCH-FIX-UPSTREAM Always to locking when accessing streams (BZ #15142) Patch2000: fix-locking-in-_IO_cleanup.patch # PATCH-FIX-UPSTREAM Never try to execute the file in ldd (BZ #16750) -Patch2002: ldd-system-interp.patch +Patch2001: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) -Patch2003: abort-no-flush.patch +Patch2002: abort-no-flush.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) -Patch2005: glibc-memset-nontemporal.diff -# PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) -Patch2006: ibm93x-redundant-shift-si.patch -# PATCH-FIX-UPSTREAM Static dlopen default library search path fix (BZ #17250) -Patch2007: static-dlopen.patch +Patch2003: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) -Patch2008: fnmatch-collating-elements.patch +Patch2004: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) -Patch2009: nss-files-long-lines-2.patch +Patch2005: nss-files-long-lines-2.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) -Patch2010: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253) -Patch2011: tzset-tzname.patch -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2012: resolv-mem-leak.patch +Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) -Patch2013: reinitialize-dl_load_write_lock.patch +Patch2008: reinitialize-dl_load_write_lock.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -312,7 +280,7 @@ Summary: Info Files for the GNU C Library License: GFDL-1.1 Group: Documentation/Other Requires(post): %{install_info_prereq} -Requires(postun): %{install_info_prereq} +Requires(preun): %{install_info_prereq} BuildArch: noarch %description info @@ -485,10 +453,13 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch21 -p1 %patch100 -p1 %patch102 -p1 %patch103 -p1 +%patch104 -p1 +%patch105 -p1 %patch300 -p1 %patch301 -p1 @@ -497,35 +468,15 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 %patch2000 -p1 +%patch2001 -p1 %patch2002 -p1 %patch2003 -p1 +%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 -%patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 -%patch2010 -p1 -%patch2011 -p1 -%patch2012 -p1 -%patch2013 -p1 %patch3000 @@ -680,7 +631,8 @@ configure_and_build_glibc() { %endif --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc + --enable-bind-now --enable-obsolete-rpc \ + --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) @@ -920,10 +872,6 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif -# NPTL is not usable outside of glibc, so include -# the generic one (RH#162634) -cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -997,11 +945,7 @@ rm -f %{buildroot}/%{_lib}/libNoVersion* # Don't look at ldd! We don't wish a /bin/sh requires chmod 644 %{buildroot}%{_bindir}/ldd -# Remove timezone data, now coming in standalone package: -for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do - rm -f %{buildroot}/$i -done -rm -rf %{buildroot}%{_datadir}/zoneinfo +rm -f %{buildroot}/sbin/sln # Remove the buildflags tracking section and the build-id for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshared.a; do @@ -1043,6 +987,26 @@ rm -rf %{buildroot}/usr/lib/tmpfiles.d rm -rf %{buildroot}/run/nscd %endif # i686 +# LSB +%ifarch %ix86 +ln -sf /%{_lib}/ld-linux.so.2 $RPM_BUILD_ROOT/%{_lib}/ld-lsb.so.3 +%endif +%ifarch x86_64 +ln -sf /%{_lib}/ld-linux-x86-64.so.2 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-x86-64.so.3 +%endif +%ifarch ppc +ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-ppc32.so.3 +%endif +%ifarch ppc64 +ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-ppc64.so.3 +%endif +%ifarch s390 +ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 +%endif +%ifarch s390x +ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 +%endif + %endif # %{normal_build} %if %{utils_build} @@ -1084,7 +1048,7 @@ done %post info %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz -%postun info +%preun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz %pre -n nscd @@ -1168,6 +1132,10 @@ exit 0 /lib/ld-linux-aarch64.so.1 /%{_lib}/ld-linux-aarch64.so.1 %endif +%ifarch %ix86 x86_64 ppc ppc64 s390 s390x +# LSB +/%{_lib}/*-lsb*.so.3 +%endif /%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 diff --git a/hcreate-overflow-check.patch b/hcreate-overflow-check.patch deleted file mode 100644 index 7890dc6..0000000 --- a/hcreate-overflow-check.patch +++ /dev/null @@ -1,193 +0,0 @@ -2016-02-12 Florian Weimer - - * misc/bug18240.c (do_test): Set RLIMIT_AS. - -2016-01-27 Paul Eggert - - [BZ #18240] - * misc/hsearch_r.c (isprime, __hcreate_r): Protect against - unsigned int wraparound. - -2016-01-27 Florian Weimer - - [BZ #18240] - * misc/bug18240.c: New test. - * misc/Makefile (tests): Add it. - -2015-08-25 OndÅ™ej Bílka - - [BZ #18240] - * misc/hsearch_r.c (__hcreate_r): Handle overflow. - -Index: glibc-2.22/misc/Makefile -=================================================================== ---- glibc-2.22.orig/misc/Makefile -+++ glibc-2.22/misc/Makefile -@@ -77,7 +77,7 @@ gpl2lgpl := error.c error.h - - tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ - tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \ -- tst-mntent-blank-corrupt tst-mntent-blank-passno -+ tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240 - ifeq ($(run-built-tests),yes) - tests-special += $(objpfx)tst-error1-mem.out - endif -Index: glibc-2.22/misc/bug18240.c -=================================================================== ---- /dev/null -+++ glibc-2.22/misc/bug18240.c -@@ -0,0 +1,97 @@ -+/* Test integer wraparound in hcreate. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static void -+test_size (size_t size) -+{ -+ int res = hcreate (size); -+ if (res == 0) -+ { -+ if (errno == ENOMEM) -+ return; -+ printf ("error: hcreate (%zu): %m\n", size); -+ exit (1); -+ } -+ char *keys[100]; -+ for (int i = 0; i < 100; ++i) -+ { -+ if (asprintf (keys + i, "%d", i) < 0) -+ { -+ printf ("error: asprintf: %m\n"); -+ exit (1); -+ } -+ ENTRY e = { keys[i], (char *) "value" }; -+ if (hsearch (e, ENTER) == NULL) -+ { -+ printf ("error: hsearch (\"%s\"): %m\n", keys[i]); -+ exit (1); -+ } -+ } -+ hdestroy (); -+ -+ for (int i = 0; i < 100; ++i) -+ free (keys[i]); -+} -+ -+static int -+do_test (void) -+{ -+ /* Limit the size of the process, so that memory allocation will -+ fail without impacting the entire system. */ -+ { -+ struct rlimit limit; -+ if (getrlimit (RLIMIT_AS, &limit) != 0) -+ { -+ printf ("getrlimit (RLIMIT_AS) failed: %m\n"); -+ return 1; -+ } -+ long target = 100 * 1024 * 1024; -+ if (limit.rlim_cur == RLIM_INFINITY || limit.rlim_cur > target) -+ { -+ limit.rlim_cur = target; -+ if (setrlimit (RLIMIT_AS, &limit) != 0) -+ { -+ printf ("setrlimit (RLIMIT_AS) failed: %m\n"); -+ return 1; -+ } -+ } -+ } -+ -+ test_size (500); -+ test_size (-1); -+ test_size (-3); -+ test_size (INT_MAX - 2); -+ test_size (INT_MAX - 1); -+ test_size (INT_MAX); -+ test_size (((unsigned) INT_MAX) + 1); -+ test_size (UINT_MAX - 2); -+ test_size (UINT_MAX - 1); -+ test_size (UINT_MAX); -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.22/misc/hsearch_r.c -=================================================================== ---- glibc-2.22.orig/misc/hsearch_r.c -+++ glibc-2.22/misc/hsearch_r.c -@@ -19,7 +19,7 @@ - #include - #include - #include -- -+#include - #include - - /* [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986 -@@ -46,15 +46,12 @@ static int - isprime (unsigned int number) - { - /* no even number will be passed */ -- unsigned int div = 3; -- -- while (div * div < number && number % div != 0) -- div += 2; -- -- return number % div != 0; -+ for (unsigned int div = 3; div <= number / div; div += 2) -+ if (number % div == 0) -+ return 0; -+ return 1; - } - -- - /* Before using the hash table we must allocate memory for it. - Test for an existing table are done. We allocate one element - more as the found prime number says. This is done for more effective -@@ -81,10 +78,19 @@ __hcreate_r (nel, htab) - use will not work. */ - if (nel < 3) - nel = 3; -- /* Change nel to the first prime number not smaller as nel. */ -- nel |= 1; /* make odd */ -- while (!isprime (nel)) -- nel += 2; -+ -+ /* Change nel to the first prime number in the range [nel, UINT_MAX - 2], -+ The '- 2' means 'nel += 2' cannot overflow. */ -+ for (nel |= 1; ; nel += 2) -+ { -+ if (UINT_MAX - 2 < nel) -+ { -+ __set_errno (ENOMEM); -+ return 0; -+ } -+ if (isprime (nel)) -+ break; -+ } - - htab->size = nel; - htab->filled = 0; diff --git a/ibm93x-redundant-shift-si.patch b/ibm93x-redundant-shift-si.patch deleted file mode 100644 index 420b7c0..0000000 --- a/ibm93x-redundant-shift-si.patch +++ /dev/null @@ -1,201 +0,0 @@ -Avoid redundant shift character in iconv output at block boundary (bug #17197) - - [BZ #17197] - * iconvdata/ibm930.c (BODY for TO_LOOP): Record current DBCS state - immediately after emitting SI. - * iconvdata/ibm933.c (BODY for TO_LOOP): Likewise. - * iconvdata/ibm935.c (BODY for TO_LOOP): Likewise. - * iconvdata/ibm937.c (BODY for TO_LOOP): Likewise. - * iconvdata/ibm939.c (BODY for TO_LOOP): Likewise. - * iconvdata/bug-iconv10.c: New file. - * iconvdata/Makefile (tests): Add bug-iconv10. - ($(objpfx)bug-iconv10.out): New rule. - -Index: glibc-2.19/iconvdata/Makefile -=================================================================== ---- glibc-2.19.orig/iconvdata/Makefile -+++ glibc-2.19/iconvdata/Makefile -@@ -67,7 +67,8 @@ include ../Makeconfig - - ifeq (yes,$(build-shared)) - tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ -- tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 -+ tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \ -+ bug-iconv10 - ifeq ($(have-thread-library),yes) - tests += bug-iconv3 - endif -@@ -295,6 +296,8 @@ $(objpfx)tst-iconv4.out: $(objpfx)gconv- - $(addprefix $(objpfx),$(modules.so)) - $(objpfx)tst-iconv7.out: $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) -+$(objpfx)bug-iconv10.out: $(objpfx)gconv-modules \ -+ $(addprefix $(objpfx),$(modules.so)) - - $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) \ -Index: glibc-2.19/iconvdata/bug-iconv10.c -=================================================================== ---- /dev/null -+++ glibc-2.19/iconvdata/bug-iconv10.c -@@ -0,0 +1,60 @@ -+/* bug 17197: check for redundant shift character at block boundary. */ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ iconv_t cd = iconv_open ("IBM930", "UTF-8"); -+ if (cd == (iconv_t) -1) -+ { -+ puts ("iconv_open failed"); -+ return 1; -+ } -+ -+ char instr1[] = "\xc2\xa6."; -+ const char expstr1[4] = "\016Bj\017"; -+ const char expstr2[] = "K"; -+ char outstr[4]; -+ size_t inlen = sizeof (instr1); -+ size_t outlen = sizeof (outstr); -+ char *inptr = instr1; -+ char *outptr = outstr; -+ size_t r = iconv (cd, &inptr, &inlen, &outptr, &outlen); -+ if (r != -1 -+ || errno != E2BIG -+ || inlen != sizeof (instr1) - 2 -+ || inptr != instr1 + 2 -+ || outlen != 0 -+ || memcmp (outstr, expstr1, sizeof (expstr1)) != 0) -+ { -+ puts ("wrong first conversion"); -+ return 1; -+ } -+ -+ outlen = sizeof (outstr); -+ outptr = outstr; -+ r = iconv (cd, &inptr, &inlen, &outptr, &outlen); -+ if (r != 0 -+ || inlen != 0 -+ || outlen != sizeof (outstr) - sizeof (expstr2) -+ || memcmp (outstr, expstr2, sizeof (expstr2)) != 0) -+ { -+ puts ("wrong second conversion"); -+ return 1; -+ } -+ -+ if (iconv_close (cd) != 0) -+ { -+ puts ("iconv_close failed"); -+ return 1; -+ } -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.19/iconvdata/ibm930.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm930.c -+++ glibc-2.19/iconvdata/ibm930.c -@@ -255,6 +255,7 @@ enum - break; \ - } \ - *outptr++ = SI; \ -+ curcs = sb; \ - } \ - \ - if (__glibc_unlikely (outptr + 1 > outend)) \ -@@ -268,7 +269,6 @@ enum - *outptr++ = 0x5b; \ - else \ - *outptr++ = cp[0]; \ -- curcs = sb; \ - } \ - \ - /* Now that we wrote the output increment the input pointer. */ \ -Index: glibc-2.19/iconvdata/ibm933.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm933.c -+++ glibc-2.19/iconvdata/ibm933.c -@@ -254,6 +254,7 @@ enum - break; \ - } \ - *outptr++ = SI; \ -+ curcs = sb; \ - } \ - \ - if (__glibc_unlikely (outptr + 1 > outend)) \ -@@ -262,7 +263,6 @@ enum - break; \ - } \ - *outptr++ = cp[0]; \ -- curcs = sb; \ - } \ - \ - /* Now that we wrote the output increment the input pointer. */ \ -Index: glibc-2.19/iconvdata/ibm935.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm935.c -+++ glibc-2.19/iconvdata/ibm935.c -@@ -254,6 +254,7 @@ enum - break; \ - } \ - *outptr++ = SI; \ -+ curcs = sb; \ - } \ - \ - if (__glibc_unlikely (outptr + 1 > outend)) \ -@@ -262,7 +263,6 @@ enum - break; \ - } \ - *outptr++ = cp[0]; \ -- curcs = sb; \ - } \ - \ - /* Now that we wrote the output increment the input pointer. */ \ -Index: glibc-2.19/iconvdata/ibm937.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm937.c -+++ glibc-2.19/iconvdata/ibm937.c -@@ -254,6 +254,7 @@ enum - break; \ - } \ - *outptr++ = SI; \ -+ curcs = sb; \ - } \ - \ - if (__glibc_unlikely (outptr + 1 > outend)) \ -@@ -262,7 +263,6 @@ enum - break; \ - } \ - *outptr++ = cp[0]; \ -- curcs = sb; \ - } \ - \ - /* Now that we wrote the output increment the input pointer. */ \ -Index: glibc-2.19/iconvdata/ibm939.c -=================================================================== ---- glibc-2.19.orig/iconvdata/ibm939.c -+++ glibc-2.19/iconvdata/ibm939.c -@@ -254,6 +254,7 @@ enum - break; \ - } \ - *outptr++ = SI; \ -+ curcs = sb; \ - } \ - \ - if (__glibc_unlikely (outptr + 1 > outend)) \ -@@ -267,7 +268,6 @@ enum - *outptr++ = 0xb2; \ - else \ - *outptr++ = cp[0]; \ -- curcs = sb; \ - } \ - \ - /* Now that we wrote the output increment the input pointer. */ \ diff --git a/iconv-reset-input-buffer.patch b/iconv-reset-input-buffer.patch index 86d6811..a0f8321 100644 --- a/iconv-reset-input-buffer.patch +++ b/iconv-reset-input-buffer.patch @@ -179,7 +179,7 @@ Index: glibc-2.22/iconv/skeleton.c +#endif /* We have a problem in one of the functions below. Undo the conversion upto the error point. */ - size_t nstatus; + size_t nstatus __attribute__ ((unused)); @@ -682,9 +694,9 @@ FUNCTION_NAME (struct __gconv_step *step outbuf = outstart; diff --git a/isinf-cxx11-conflict.patch b/isinf-cxx11-conflict.patch deleted file mode 100644 index dec2fd8..0000000 --- a/isinf-cxx11-conflict.patch +++ /dev/null @@ -1,127 +0,0 @@ -2016-02-14 Jakub Jelinek - Jonathan Wakely - Carlos O'Donell - - [BZ 19439] - * math/Makefile (tests): Add test-math-isinff. - (CFLAGS-test-math-isinff.cc): Use -std=gnu++11. - * math/bits/mathcalls.h [__USE_MISC]: Use - '|| __MATH_DECLARING_DOUBLE == 0' to relax definition of - functions not in C++11 and which don't conflict e.g. isinff, - isinfl etc. - * math/test-math-isinff.cc: New file. - -2016-01-11 Jonathan Wakely - Adhemerval Zanella - - [BZ #19439] - * math/bits/mathcalls.h - [!__cplusplus || __cplusplus < 201103L] (isinf): Do not declare - prototype. - [!__cplusplus || __cplusplus < 201103L] (isnan): Likewise. - -Index: glibc-2.22/math/Makefile -=================================================================== ---- glibc-2.22.orig/math/Makefile -+++ glibc-2.22/math/Makefile -@@ -108,6 +108,7 @@ tests = test-matherr test-fenv atest-exp - test-tgmath-ret bug-nextafter bug-nexttoward bug-tgmath1 \ - test-tgmath-int test-tgmath2 test-powl tst-CMPLX tst-CMPLX2 test-snan \ - test-fenv-tls test-fenv-preserve test-fenv-return test-fenvinline \ -+ test-math-isinff \ - $(tests-static) - tests-static = test-fpucw-static test-fpucw-ieee-static - # We do the `long double' tests only if this data type is available and -@@ -184,6 +185,8 @@ CPPFLAGS-test-ildoubl.c = -U__LIBC_INTER - $(libm-test-fast-math-cflags) - - -+CFLAGS-test-math-isinff.cc = -std=gnu++11 -+ - # The -lieee module sets the _LIB_VERSION_ switch to IEEE mode - # for error handling in the -lm functions. - install-lib += libieee.a -Index: glibc-2.22/math/bits/mathcalls.h -=================================================================== ---- glibc-2.22.orig/math/bits/mathcalls.h -+++ glibc-2.22/math/bits/mathcalls.h -@@ -196,9 +196,13 @@ __MATHDECL_1 (int,__finite,, (_Mdouble_ - _Mdouble_END_NAMESPACE - - #ifdef __USE_MISC -+# if (!defined __cplusplus \ -+ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ -+ || __MATH_DECLARING_DOUBLE == 0) /* isinff or isinfl don't. */ - /* Return 0 if VALUE is finite or NaN, +1 if it - is +Infinity, -1 if it is -Infinity. */ - __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); -+# endif - - /* Return nonzero if VALUE is finite and not NaN. */ - __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); -@@ -230,8 +234,12 @@ __END_NAMESPACE_C99 - __MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); - - #if defined __USE_MISC || defined __USE_XOPEN -+# if (!defined __cplusplus \ -+ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ -+ || __MATH_DECLARING_DOUBLE == 0) /* isnanf or isnanl don't. */ - /* Return nonzero if VALUE is not a number. */ - __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); -+# endif - - /* Bessel functions. */ - __MATHCALL (j0,, (_Mdouble_)); -Index: glibc-2.22/math/test-math-isinff.cc -=================================================================== ---- /dev/null -+++ glibc-2.22/math/test-math-isinff.cc -@@ -0,0 +1,48 @@ -+/* Test for bug 19439. -+ Copyright (C) 2016 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Marek Polacek , 2012. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define _GNU_SOURCE 1 -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ /* Verify that isinff, isinfl, isnanf, and isnanlf are defined -+ in the header under C++11 and can be called. Without the -+ header fix this test will not compile. */ -+ if (isinff (1.0f) -+ || !isinff (INFINITY) -+ || isinfl (1.0L) -+ || !isinfl (INFINITY) -+ || isnanf (2.0f) -+ || !isnanf (NAN) -+ || isnanl (2.0L) -+ || !isnanl (NAN)) -+ { -+ printf ("FAIL: Failed to call is* functions.\n"); -+ exit (1); -+ } -+ printf ("PASS: Able to call isinff, isinfl, isnanf, and isnanl.\n"); -+ exit (0); -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/ld-pointer-guard.patch b/ld-pointer-guard.patch deleted file mode 100644 index 433164b..0000000 --- a/ld-pointer-guard.patch +++ /dev/null @@ -1,66 +0,0 @@ -2015-10-15 Florian Weimer - - [BZ #18928] - * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Remove - _dl_pointer_guard member. - * elf/rtld.c (_rtld_global_ro): Remove _dl_pointer_guard - initializer. - (security_init): Always set up pointer guard. - (process_envvars): Do not process LD_POINTER_GUARD. - -Index: glibc-2.22/elf/rtld.c -=================================================================== ---- glibc-2.22.orig/elf/rtld.c -+++ glibc-2.22/elf/rtld.c -@@ -162,7 +162,6 @@ struct rtld_global_ro _rtld_global_ro at - ._dl_hwcap_mask = HWCAP_IMPORTANT, - ._dl_lazy = 1, - ._dl_fpu_control = _FPU_DEFAULT, -- ._dl_pointer_guard = 1, - ._dl_pagesize = EXEC_PAGESIZE, - ._dl_inhibit_cache = 0, - -@@ -709,15 +708,12 @@ security_init (void) - #endif - - /* Set up the pointer guard as well, if necessary. */ -- if (GLRO(dl_pointer_guard)) -- { -- uintptr_t pointer_chk_guard = _dl_setup_pointer_guard (_dl_random, -- stack_chk_guard); -+ uintptr_t pointer_chk_guard -+ = _dl_setup_pointer_guard (_dl_random, stack_chk_guard); - #ifdef THREAD_SET_POINTER_GUARD -- THREAD_SET_POINTER_GUARD (pointer_chk_guard); -+ THREAD_SET_POINTER_GUARD (pointer_chk_guard); - #endif -- __pointer_chk_guard_local = pointer_chk_guard; -- } -+ __pointer_chk_guard_local = pointer_chk_guard; - - /* We do not need the _dl_random value anymore. The less - information we leave behind, the better, so clear the -@@ -2517,9 +2513,6 @@ process_envvars (enum mode *modep) - GLRO(dl_use_load_bias) = envline[14] == '1' ? -1 : 0; - break; - } -- -- if (memcmp (envline, "POINTER_GUARD", 13) == 0) -- GLRO(dl_pointer_guard) = envline[14] != '0'; - break; - - case 14: -Index: glibc-2.22/sysdeps/generic/ldsodefs.h -=================================================================== ---- glibc-2.22.orig/sysdeps/generic/ldsodefs.h -+++ glibc-2.22/sysdeps/generic/ldsodefs.h -@@ -592,9 +592,6 @@ struct rtld_global_ro - /* List of auditing interfaces. */ - struct audit_ifaces *_dl_audit; - unsigned int _dl_naudit; -- -- /* 0 if internal pointer values should not be guarded, 1 if they should. */ -- EXTERN int _dl_pointer_guard; - }; - # define __rtld_global_attribute__ - # if IS_IN (rtld) diff --git a/ldd-system-interp.patch b/ldd-system-interp.patch index 518aa2c..55d84ce 100644 --- a/ldd-system-interp.patch +++ b/ldd-system-interp.patch @@ -5,23 +5,13 @@ they are invoked with __libc_enable_secure, and run them through the known good dynamic linker. * elf/ldd.bash.in: Always run through the dynamic linker, even if - the file has its own interpreter. Remove unneeded executable - check. + the file has its own interpreter. Index: glibc-2.19/elf/ldd.bash.in =================================================================== --- glibc-2.19.orig/elf/ldd.bash.in +++ glibc-2.19/elf/ldd.bash.in -@@ -150,8 +150,6 @@ for file do - echo "ldd: ${file}:" $"not regular file" >&2 - result=1 - elif test -r "$file"; then -- test -x "$file" || echo 'ldd:' $"\ --warning: you do not have execution permission for" "\`$file'" >&2 - RTLD= - ret=1 - for rtld in ${RTLDLIST}; do -@@ -164,18 +162,6 @@ warning: you do not have execution permi +@@ -164,18 +164,6 @@ warning: you do not have execution permi fi done case $ret in @@ -40,7 +30,7 @@ Index: glibc-2.19/elf/ldd.bash.in 1) # This can be a non-ELF binary or no binary at all. nonelf "$file" || { -@@ -183,7 +169,7 @@ warning: you do not have execution permi +@@ -183,7 +171,7 @@ warning: you do not have execution permi result=1 } ;; diff --git a/mntent-blank-line.patch b/mntent-blank-line.patch deleted file mode 100644 index 8605bcf..0000000 --- a/mntent-blank-line.patch +++ /dev/null @@ -1,183 +0,0 @@ -2015-08-28 Mike Frysinger - - [BZ #18887] - * misc/Makefile (tests): Add tst-mntent-blank-corrupt and - tst-mntent-blank-passno. - * misc/mntent_r.c (__getmntent_r): Do not read past buffer[0]. - * misc/tst-mntent-blank-corrupt.c: New test. - * misc/tst-mntent-blank-passno.c: New test ripped from ... - * misc/tst-mntent.c (do_test): ... here. - -diff --git a/misc/Makefile b/misc/Makefile -index aecb0da..2f5edf6 100644 ---- a/misc/Makefile -+++ b/misc/Makefile -@@ -76,7 +76,8 @@ install-lib := libg.a - gpl2lgpl := error.c error.h - - tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ -- tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 -+ tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \ -+ tst-mntent-blank-corrupt tst-mntent-blank-passno - ifeq ($(run-built-tests),yes) - tests-special += $(objpfx)tst-error1-mem.out - endif -diff --git a/misc/mntent_r.c b/misc/mntent_r.c -index 6159873..4f26998 100644 ---- a/misc/mntent_r.c -+++ b/misc/mntent_r.c -@@ -136,7 +136,9 @@ __getmntent_r (FILE *stream, struct mntent *mp, char *buffer, int bufsiz) - end_ptr = strchr (buffer, '\n'); - if (end_ptr != NULL) /* chop newline */ - { -- while (end_ptr[-1] == ' ' || end_ptr[-1] == '\t') -+ /* Do not walk past the start of buffer if it's all whitespace. */ -+ while (end_ptr != buffer -+ && (end_ptr[-1] == ' ' || end_ptr[-1] == '\t')) - end_ptr--; - *end_ptr = '\0'; - } -diff --git a/misc/tst-mntent-blank-corrupt.c b/misc/tst-mntent-blank-corrupt.c -new file mode 100644 -index 0000000..92266a3 ---- /dev/null -+++ b/misc/tst-mntent-blank-corrupt.c -@@ -0,0 +1,45 @@ -+/* Make sure blank lines does not cause memory corruption BZ #18887. -+ -+ Copyright (C) 2009-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+/* Make sure blank lines don't trigger memory corruption. This doesn't happen -+ for all targets though, so it's a best effort test BZ #18887. */ -+static int -+do_test (void) -+{ -+ FILE *fp; -+ -+ fp = tmpfile (); -+ fputs ("\n \n/foo\\040dir /bar\\040dir auto bind \t \n", fp); -+ rewind (fp); -+ -+ /* The corruption happens here ... */ -+ getmntent (fp); -+ /* ... but trigers here. */ -+ endmntent (fp); -+ -+ /* If the test failed, we would crash, and not hit this point. */ -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff --git a/misc/tst-mntent-blank-passno.c b/misc/tst-mntent-blank-passno.c -new file mode 100644 -index 0000000..fc04291 ---- /dev/null -+++ b/misc/tst-mntent-blank-passno.c -@@ -0,0 +1,53 @@ -+/* Make sure trailing whitespace is handled properly BZ #17273. -+ -+ Copyright (C) 2009-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+/* Check entries to make sure trailing whitespace is ignored and we return the -+ correct passno value BZ #17273. */ -+static int -+do_test (void) -+{ -+ int result = 0; -+ FILE *fp; -+ struct mntent *mnt; -+ -+ fp = tmpfile (); -+ fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp); -+ rewind (fp); -+ -+ mnt = getmntent (fp); -+ if (strcmp (mnt->mnt_fsname, "/foo dir") != 0 -+ || strcmp (mnt->mnt_dir, "/bar dir") != 0 -+ || strcmp (mnt->mnt_type, "auto") != 0 -+ || strcmp (mnt->mnt_opts, "bind") != 0 -+ || mnt->mnt_freq != 0 -+ || mnt->mnt_passno != 0) -+ { -+ puts ("Error while reading entry with trailing whitespaces"); -+ result = 1; -+ } -+ -+ return result; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff --git a/misc/tst-mntent.c b/misc/tst-mntent.c -index 932fd3f..b6ad8af 100644 ---- a/misc/tst-mntent.c -+++ b/misc/tst-mntent.c -@@ -73,26 +73,6 @@ do_test (void) - puts ("Error while reading written entry back in"); - result = 1; - } -- -- /* Part III: Entry with whitespaces at the end of a line. */ -- rewind (fp); -- -- fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp); -- -- rewind (fp); -- -- mnt = getmntent (fp); -- -- if (strcmp (mnt->mnt_fsname, "/foo dir") != 0 -- || strcmp (mnt->mnt_dir, "/bar dir") != 0 -- || strcmp (mnt->mnt_type, "auto") != 0 -- || strcmp (mnt->mnt_opts, "bind") != 0 -- || mnt->mnt_freq != 0 -- || mnt->mnt_passno != 0) -- { -- puts ("Error while reading entry with trailing whitespaces"); -- result = 1; -- } - } - - return result; --- -2.5.1 - diff --git a/no-long-double.patch b/no-long-double.patch new file mode 100644 index 0000000..cedd20d --- /dev/null +++ b/no-long-double.patch @@ -0,0 +1,23 @@ +Index: glibc-2.22/math/test-math-isinff.cc +=================================================================== +--- glibc-2.22.orig/math/test-math-isinff.cc ++++ glibc-2.22/math/test-math-isinff.cc +@@ -30,12 +30,17 @@ do_test (void) + header fix this test will not compile. */ + if (isinff (1.0f) + || !isinff (INFINITY) ++#ifndef NO_LONG_DOUBLE + || isinfl (1.0L) + || !isinfl (INFINITY) ++#endif + || isnanf (2.0f) + || !isnanf (NAN) ++#ifndef NO_LONG_DOUBLE + || isnanl (2.0L) +- || !isnanl (NAN)) ++ || !isnanl (NAN) ++#endif ++ ) + { + printf ("FAIL: Failed to call is* functions.\n"); + exit (1); diff --git a/openat64-readd-o-largefile.patch b/openat64-readd-o-largefile.patch deleted file mode 100644 index 5a5447a..0000000 --- a/openat64-readd-o-largefile.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: glibc-2.22/sysdeps/unix/sysv/linux/openat.c -=================================================================== ---- glibc-2.22.orig/sysdeps/unix/sysv/linux/openat.c -+++ glibc-2.22/sysdeps/unix/sysv/linux/openat.c -@@ -68,6 +68,11 @@ __OPENAT (int fd, const char *file, int - va_end (arg); - } - -+ /* We have to add the O_LARGEFILE flag for openat64. */ -+#ifdef MORE_OFLAGS -+ oflag |= MORE_OFLAGS; -+#endif -+ - return SYSCALL_CANCEL (openat, fd, file, oflag, mode); - } - libc_hidden_def (__OPENAT) diff --git a/opendir-o-directory-check.patch b/opendir-o-directory-check.patch deleted file mode 100644 index 1543c7e..0000000 --- a/opendir-o-directory-check.patch +++ /dev/null @@ -1,21 +0,0 @@ -2015-09-04 Roland McGrath - - [BZ #18921] - * sysdeps/posix/opendir.c (need_isdir_precheck) [O_DIRECTORY]: - Fix inverted sense of test of 'o_directory_works' value. - Reported by Pádraig Brady , diagnosed by - Bernhard Voelker . - -Index: glibc-2.22/sysdeps/posix/opendir.c -=================================================================== ---- glibc-2.22.orig/sysdeps/posix/opendir.c -+++ glibc-2.22/sysdeps/posix/opendir.c -@@ -105,7 +105,7 @@ need_isdir_precheck (void) - tryopen_o_directory (); - - /* We can skip the expensive `stat' call if O_DIRECTORY works. */ -- return o_directory_works > 0; -+ return o_directory_works < 0; - #endif - return true; - } diff --git a/powerpc-elision-adapt-param.patch b/powerpc-elision-adapt-param.patch deleted file mode 100644 index 49d5f23..0000000 --- a/powerpc-elision-adapt-param.patch +++ /dev/null @@ -1,81 +0,0 @@ -2015-12-17 Paul E. Murphy - - [BZ #19174] - * sysdeps/powerpc/nptl/elide.h (__elide_lock): Fix usage of - .skip_lock_out_of_tbegin_retries. - * sysdeps/unix/sysv/linux/powerpc/elision-lock.c - (__lll_lock_elision): Likewise, and respect a value of - try_tbegin <= 0. - -Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h -=================================================================== ---- glibc-2.22.orig/sysdeps/powerpc/nptl/elide.h -+++ glibc-2.22/sysdeps/powerpc/nptl/elide.h -@@ -27,7 +27,7 @@ - configurations. Returns true if the system should retry again or false - otherwise. */ - static inline bool --__get_new_count (uint8_t *adapt_count) -+__get_new_count (uint8_t *adapt_count, int attempt) - { - /* A persistent failure indicates that a retry will probably - result in another failure. Use normal locking now and -@@ -40,7 +40,7 @@ __get_new_count (uint8_t *adapt_count) - } - /* Same logic as above, but for a number of temporary failures in a - a row. */ -- else if (__elision_aconf.skip_lock_out_of_tbegin_retries > 0 -+ else if (attempt <= 1 && __elision_aconf.skip_lock_out_of_tbegin_retries > 0 - && __elision_aconf.try_tbegin > 0) - *adapt_count = __elision_aconf.skip_lock_out_of_tbegin_retries; - return true; -@@ -78,7 +78,7 @@ __get_new_count (uint8_t *adapt_count) - __builtin_tabort (_ABORT_LOCK_BUSY); \ - } \ - else \ -- if (!__get_new_count(&adapt_count)) \ -+ if (!__get_new_count (&adapt_count,i)) \ - break; \ - } \ - ret; \ -Index: glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-lock.c -=================================================================== ---- glibc-2.22.orig/sysdeps/unix/sysv/linux/powerpc/elision-lock.c -+++ glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-lock.c -@@ -72,8 +72,7 @@ __lll_lock_elision (int *lock, short *ad - goto use_lock; - } - -- int try_begin = aconf.try_tbegin; -- while (1) -+ for (int i = aconf.try_tbegin; i > 0; i--) - { - if (__builtin_tbegin (0)) - { -@@ -87,21 +86,19 @@ __lll_lock_elision (int *lock, short *ad - /* A persistent failure indicates that a retry will probably - result in another failure. Use normal locking now and - for the next couple of calls. */ -- if (try_begin-- <= 0 -- || _TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) -+ if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) - { - if (aconf.skip_lock_internal_abort > 0) - *adapt_count = aconf.skip_lock_internal_abort; - goto use_lock; - } -- /* Same logic as above, but for for a number of temporary failures -- in a row. */ -- else if (aconf.skip_lock_out_of_tbegin_retries > 0 -- && aconf.try_tbegin > 0) -- *adapt_count = aconf.skip_lock_out_of_tbegin_retries; - } - } - -+ /* Fall back to locks for a bit if retries have been exhausted */ -+ if (aconf.try_tbegin > 0 && aconf.skip_lock_out_of_tbegin_retries > 0) -+ *adapt_count = aconf.skip_lock_out_of_tbegin_retries; -+ - use_lock: - return LLL_LOCK ((*lock), pshared); - } diff --git a/powerpc-elision-enable-envvar.patch b/powerpc-elision-enable-envvar.patch new file mode 100644 index 0000000..6e7bbb1 --- /dev/null +++ b/powerpc-elision-enable-envvar.patch @@ -0,0 +1,41 @@ +2016-02-11 Paul E. Murphy + + * sysdeps/unix/sysv/linux/powerpc/elision-conf.c + (elision_init): Further restrict enablement based + on whether GLIBC_ELISION_ENABLE=yes is in the env. +--- + sysdeps/unix/sysv/linux/powerpc/elision-conf.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +Index: glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-conf.c +=================================================================== +--- glibc-2.22.orig/sysdeps/unix/sysv/linux/powerpc/elision-conf.c ++++ glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-conf.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + /* Reasonable initial tuning values, may be revised in the future. + This is a conservative initial value. */ +@@ -61,7 +62,18 @@ elision_init (int argc __attribute__ ((u + { + #ifdef ENABLE_LOCK_ELISION + int elision_available = (GLRO (dl_hwcap2) & PPC_FEATURE2_HAS_HTM) ? 1 : 0; +- __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; ++ ++ /* Scan the environment and conditionally enable TLE. */ ++ if (elision_available != 0 && __libc_enable_secure == 0) ++ { ++ for ( ; *environ != NULL; environ++) ++ if (**environ == 'G' && ++ strcmp (*environ,"GLIBC_ELISION_ENABLE=yes") == 0) ++ { ++ __pthread_force_elision = elision_available; ++ break; ++ } ++ } + #endif + if (!__pthread_force_elision) + /* Disable elision on rwlocks. */ diff --git a/powerpc-lock-elision-race.patch b/powerpc-lock-elision-race.patch deleted file mode 100644 index 06067f6..0000000 --- a/powerpc-lock-elision-race.patch +++ /dev/null @@ -1,146 +0,0 @@ -2015-10-20 Tulio Magno Quites Machado Filho - - [BZ #18743] - * sysdeps/powerpc/nptl/elide.h (__elide_lock): Move most of this - code to... - (ELIDE_LOCK): ...here. - (__get_new_count): New function with part of the code from - __elide_lock that updates the value of adapt_count after a - transaction abort. - (__elided_trylock): Moved this code to... - (ELIDE_TRYLOCK): ...here. - -Index: glibc-2.22/sysdeps/powerpc/nptl/elide.h -=================================================================== ---- glibc-2.22.orig/sysdeps/powerpc/nptl/elide.h -+++ glibc-2.22/sysdeps/powerpc/nptl/elide.h -@@ -23,67 +23,78 @@ - # include - # include - --/* Returns true if the lock defined by is_lock_free as elided. -- ADAPT_COUNT is a pointer to per-lock state variable. */ -- -+/* Get the new value of adapt_count according to the elision -+ configurations. Returns true if the system should retry again or false -+ otherwise. */ - static inline bool --__elide_lock (uint8_t *adapt_count, int is_lock_free) -+__get_new_count (uint8_t *adapt_count) - { -- if (*adapt_count > 0) -+ /* A persistent failure indicates that a retry will probably -+ result in another failure. Use normal locking now and -+ for the next couple of calls. */ -+ if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) - { -- (*adapt_count)--; -+ if (__elision_aconf.skip_lock_internal_abort > 0) -+ *adapt_count = __elision_aconf.skip_lock_internal_abort; - return false; - } -- -- for (int i = __elision_aconf.try_tbegin; i > 0; i--) -- { -- if (__builtin_tbegin (0)) -- { -- if (is_lock_free) -- return true; -- /* Lock was busy. */ -- __builtin_tabort (_ABORT_LOCK_BUSY); -- } -- else -- { -- /* A persistent failure indicates that a retry will probably -- result in another failure. Use normal locking now and -- for the next couple of calls. */ -- if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) -- { -- if (__elision_aconf.skip_lock_internal_abort > 0) -- *adapt_count = __elision_aconf.skip_lock_internal_abort; -- break; -- } -- /* Same logic as above, but for a number of temporary failures in a -- a row. */ -- else if (__elision_aconf.skip_lock_out_of_tbegin_retries > 0 -- && __elision_aconf.try_tbegin > 0) -- *adapt_count = __elision_aconf.skip_lock_out_of_tbegin_retries; -- } -- } -- -- return false; -+ /* Same logic as above, but for a number of temporary failures in a -+ a row. */ -+ else if (__elision_aconf.skip_lock_out_of_tbegin_retries > 0 -+ && __elision_aconf.try_tbegin > 0) -+ *adapt_count = __elision_aconf.skip_lock_out_of_tbegin_retries; -+ return true; - } - --# define ELIDE_LOCK(adapt_count, is_lock_free) \ -- __elide_lock (&(adapt_count), is_lock_free) -- -+/* CONCURRENCY NOTES: - --static inline bool --__elide_trylock (uint8_t *adapt_count, int is_lock_free, int write) --{ -- if (__elision_aconf.try_tbegin > 0) -- { -- if (write) -- __builtin_tabort (_ABORT_NESTED_TRYLOCK); -- return __elide_lock (adapt_count, is_lock_free); -- } -- return false; --} -+ The evaluation of the macro expression is_lock_free encompasses one or -+ more loads from memory locations that are concurrently modified by other -+ threads. For lock elision to work, this evaluation and the rest of the -+ critical section protected by the lock must be atomic because an -+ execution with lock elision must be equivalent to an execution in which -+ the lock would have been actually acquired and released. Therefore, we -+ evaluate is_lock_free inside of the transaction that represents the -+ critical section for which we want to use lock elision, which ensures -+ the atomicity that we require. */ -+ -+/* Returns 0 if the lock defined by is_lock_free was elided. -+ ADAPT_COUNT is a per-lock state variable. */ -+# define ELIDE_LOCK(adapt_count, is_lock_free) \ -+ ({ \ -+ int ret = 0; \ -+ if (adapt_count > 0) \ -+ (adapt_count)--; \ -+ else \ -+ for (int i = __elision_aconf.try_tbegin; i > 0; i--) \ -+ { \ -+ if (__builtin_tbegin (0)) \ -+ { \ -+ if (is_lock_free) \ -+ { \ -+ ret = 1; \ -+ break; \ -+ } \ -+ __builtin_tabort (_ABORT_LOCK_BUSY); \ -+ } \ -+ else \ -+ if (!__get_new_count(&adapt_count)) \ -+ break; \ -+ } \ -+ ret; \ -+ }) - - # define ELIDE_TRYLOCK(adapt_count, is_lock_free, write) \ -- __elide_trylock (&(adapt_count), is_lock_free, write) -+ ({ \ -+ int ret = 0; \ -+ if (__elision_aconf.try_tbegin > 0) \ -+ { \ -+ if (write) \ -+ __builtin_tabort (_ABORT_NESTED_TRYLOCK); \ -+ ret = ELIDE_LOCK (adapt_count, is_lock_free); \ -+ } \ -+ ret; \ -+ }) - - - static inline bool diff --git a/prelink-elf-rtype-class.patch b/prelink-elf-rtype-class.patch deleted file mode 100644 index 2bebff4..0000000 --- a/prelink-elf-rtype-class.patch +++ /dev/null @@ -1,258 +0,0 @@ -2015-11-14 H.J. Lu - - * config.make.in (have-glob-dat-reloc): New. - * configure.ac (libc_cv_has_glob_dat): New. Set to yes if - target supports GLOB_DAT relocaton. AC_SUBST. - * configure: Regenerated. - * elf/Makefile (tests): Add tst-prelink. - (tests-special): Add $(objpfx)tst-prelink-cmp.out. - (tst-prelink-ENV): New. - ($(objpfx)tst-prelink-conflict.out): Likewise. - ($(objpfx)tst-prelink-cmp.out): Likewise. - * sysdeps/x86/tst-prelink.c: Moved to ... - * elf/tst-prelink.c: Here. - * sysdeps/x86/tst-prelink.exp: Moved to ... - * elf/tst-prelink.exp: Here. - * sysdeps/x86/Makefile (tests): Don't add tst-prelink. - (tst-prelink-ENV): Removed. - ($(objpfx)tst-prelink-conflict.out): Likewise. - ($(objpfx)tst-prelink-cmp.out): Likewise. - (tests-special): Don't add $(objpfx)tst-prelink-cmp.out. - -2015-11-10 H.J. Lu - - [BZ #19178] - * sysdeps/x86/Makefile (tests): Add tst-prelink. - (tst-prelink-ENV): New. - ($(objpfx)tst-prelink-conflict.out): Likewise. - ($(objpfx)tst-prelink-cmp.out): Likewise. - (tests-special): Add $(objpfx)tst-prelink-cmp.out. - * sysdeps/x86/tst-prelink.c: New file. - * sysdeps/x86/tst-prelink.exp: Likewise. - -2015-11-07 H.J. Lu - - [BZ #19178] - * elf/dl-lookup.c (RTYPE_CLASS_VALID): New. - (RTYPE_CLASS_PLT): Likewise. - (RTYPE_CLASS_COPY): Likewise. - (RTYPE_CLASS_TLS): Likewise. - (_dl_debug_bindings): Use RTYPE_CLASS_TLS and RTYPE_CLASS_VALID - to set relocation type class for DL_DEBUG_PRELINK. Keep only - ELF_RTYPE_CLASS_PLT and ELF_RTYPE_CLASS_COPY bits for - DL_DEBUG_PRELINK. - -Index: glibc-2.22/config.make.in -=================================================================== ---- glibc-2.22.orig/config.make.in -+++ glibc-2.22/config.make.in -@@ -51,6 +51,7 @@ have-z-combreloc = @libc_cv_z_combreloc@ - have-z-execstack = @libc_cv_z_execstack@ - have-Bgroup = @libc_cv_Bgroup@ - have-protected-data = @libc_cv_protected_data@ -+have-glob-dat-reloc = @libc_cv_has_glob_dat@ - with-fp = @with_fp@ - old-glibc-headers = @old_glibc_headers@ - unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ -Index: glibc-2.22/configure -=================================================================== ---- glibc-2.22.orig/configure -+++ glibc-2.22/configure -@@ -628,6 +628,7 @@ gnu89_inline - libc_cv_ssp - fno_unit_at_a_time - libc_cv_output_format -+libc_cv_has_glob_dat - libc_cv_hashstyle - libc_cv_fpie - libc_cv_z_execstack -@@ -6335,6 +6336,39 @@ $as_echo "$libc_cv_use_default_link" >&6 - use_default_link=$libc_cv_use_default_link - fi - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5 -+$as_echo_n "checking for GLOB_DAT reloc... " >&6; } -+if ${libc_cv_has_glob_dat+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat > conftest.c <&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; } -+then -+ if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then -+ libc_cv_has_glob_dat=yes -+ else -+ libc_cv_has_glob_dat=no -+ fi -+else -+ libc_cv_has_glob_dat=no -+fi -+rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_has_glob_dat" >&5 -+$as_echo "$libc_cv_has_glob_dat" >&6; } -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker output format" >&5 - $as_echo_n "checking linker output format... " >&6; } - if ${libc_cv_output_format+:} false; then : -Index: glibc-2.22/configure.ac -=================================================================== ---- glibc-2.22.orig/configure.ac -+++ glibc-2.22/configure.ac -@@ -1535,6 +1535,29 @@ $ac_try" - use_default_link=$libc_cv_use_default_link - fi - -+AC_CACHE_CHECK(for GLOB_DAT reloc, -+ libc_cv_has_glob_dat, [dnl -+cat > conftest.c <&AS_MESSAGE_LOG_FD]) -+then -+dnl look for GLOB_DAT relocation. -+ if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then -+ libc_cv_has_glob_dat=yes -+ else -+ libc_cv_has_glob_dat=no -+ fi -+else -+ libc_cv_has_glob_dat=no -+fi -+rm -f conftest*]) -+AC_SUBST(libc_cv_has_glob_dat) -+ - AC_CACHE_CHECK(linker output format, libc_cv_output_format, [dnl - if libc_cv_output_format=` - ${CC-cc} -nostartfiles -nostdlib -Wl,--print-output-format 2>&AS_MESSAGE_LOG_FD` -Index: glibc-2.22/elf/Makefile -=================================================================== ---- glibc-2.22.orig/elf/Makefile -+++ glibc-2.22/elf/Makefile -@@ -292,6 +292,13 @@ check-abi: $(objpfx)check-abi-ld.out - tests-special += $(objpfx)check-abi-ld.out - update-abi: update-abi-ld - -+ifeq ($(have-glob-dat-reloc),yes) -+tests += tst-prelink -+ifeq ($(run-built-tests),yes) -+tests-special += $(objpfx)tst-prelink-cmp.out -+endif -+endif -+ - include ../Rules - - ifeq (yes,$(build-shared)) -@@ -1205,3 +1212,13 @@ $(objpfx)tst-unused-dep.out: $(objpfx)te - $(objpfx)tst-unused-dep-cmp.out: $(objpfx)tst-unused-dep.out - cmp $< /dev/null > $@; \ - $(evaluate-test) -+ -+tst-prelink-ENV = LD_TRACE_PRELINKING=1 -+ -+$(objpfx)tst-prelink-conflict.out: $(objpfx)tst-prelink.out -+ grep stdout $< | grep conflict | $(AWK) '{ print $$10, $$11 }' > $@ -+ -+$(objpfx)tst-prelink-cmp.out: tst-prelink.exp \ -+ $(objpfx)tst-prelink-conflict.out -+ cmp $^ > $@; \ -+ $(evaluate-test) -Index: glibc-2.22/elf/dl-lookup.c -=================================================================== ---- glibc-2.22.orig/elf/dl-lookup.c -+++ glibc-2.22/elf/dl-lookup.c -@@ -1016,6 +1016,18 @@ _dl_debug_bindings (const char *undef_na - #ifdef SHARED - if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) - { -+/* ELF_RTYPE_CLASS_XXX must match RTYPE_CLASS_XXX used by prelink with -+ LD_TRACE_PRELINKING. */ -+#define RTYPE_CLASS_VALID 8 -+#define RTYPE_CLASS_PLT (8|1) -+#define RTYPE_CLASS_COPY (8|2) -+#define RTYPE_CLASS_TLS (8|4) -+#if ELF_RTYPE_CLASS_PLT != 0 && ELF_RTYPE_CLASS_PLT != 1 -+# error ELF_RTYPE_CLASS_PLT must be 0 or 1! -+#endif -+#if ELF_RTYPE_CLASS_COPY != 0 && ELF_RTYPE_CLASS_COPY != 2 -+# error ELF_RTYPE_CLASS_COPY must be 0 or 2! -+#endif - int conflict = 0; - struct sym_val val = { NULL, NULL }; - -@@ -1071,12 +1083,17 @@ _dl_debug_bindings (const char *undef_na - - if (value->s) - { -+ /* Keep only ELF_RTYPE_CLASS_PLT and ELF_RTYPE_CLASS_COPY -+ bits since since prelink only uses them. */ -+ type_class &= ELF_RTYPE_CLASS_PLT | ELF_RTYPE_CLASS_COPY; - if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info) - == STT_TLS)) -- type_class = 4; -+ /* Clear the RTYPE_CLASS_VALID bit in RTYPE_CLASS_TLS. */ -+ type_class = RTYPE_CLASS_TLS & ~RTYPE_CLASS_VALID; - else if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info) - == STT_GNU_IFUNC)) -- type_class |= 8; -+ /* Set the RTYPE_CLASS_VALID bit. */ -+ type_class |= RTYPE_CLASS_VALID; - } - - if (conflict -Index: glibc-2.22/elf/tst-prelink.c -=================================================================== ---- /dev/null -+++ glibc-2.22/elf/tst-prelink.c -@@ -0,0 +1,30 @@ -+/* Test the output from the environment variable, LD_TRACE_PRELINKING, -+ for prelink. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+static int -+do_test (void) -+{ -+ fprintf (stdout, "hello\n"); -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.22/elf/tst-prelink.exp -=================================================================== ---- /dev/null -+++ glibc-2.22/elf/tst-prelink.exp -@@ -0,0 +1 @@ -+/0 stdout diff --git a/refactor-nan-parsing.patch b/refactor-nan-parsing.patch deleted file mode 100644 index 1d51201..0000000 --- a/refactor-nan-parsing.patch +++ /dev/null @@ -1,896 +0,0 @@ -2015-11-24 Joseph Myers - - * stdlib/strtod_nan.c: New file. - * stdlib/strtod_nan_double.h: Likewise. - * stdlib/strtod_nan_float.h: Likewise. - * stdlib/strtod_nan_main.c: Likewise. - * stdlib/strtod_nan_narrow.h: Likewise. - * stdlib/strtod_nan_wide.h: Likewise. - * stdlib/strtof_nan.c: Likewise. - * stdlib/strtold_nan.c: Likewise. - * sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h: Likewise. - * sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h: Likewise. - * sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h: Likewise. - * wcsmbs/wcstod_nan.c: Likewise. - * wcsmbs/wcstof_nan.c: Likewise. - * wcsmbs/wcstold_nan.c: Likewise. - * stdlib/Makefile (routines): Add strtof_nan, strtod_nan and - strtold_nan. - * wcsmbs/Makefile (routines): Add wcstod_nan, wcstold_nan and - wcstof_nan. - * include/stdlib.h (__strtof_nan): Declare and use - libc_hidden_proto. - (__strtod_nan): Likewise. - (__strtold_nan): Likewise. - (__wcstof_nan): Likewise. - (__wcstod_nan): Likewise. - (__wcstold_nan): Likewise. - * include/wchar.h (____wcstoull_l_internal): Declare. - * stdlib/strtod_l.c: Do not include . - (____strtoull_l_internal): Remove declaration. - (STRTOF_NAN): Define macro. - (SET_MANTISSA): Remove macro. - (STRTOULL): Likewise. - (____STRTOF_INTERNAL): Use STRTOF_NAN to parse NaN payload. - * stdlib/strtof_l.c (____strtoull_l_internal): Remove declaration. - (STRTOF_NAN): Define macro. - (SET_MANTISSA): Remove macro. - * sysdeps/ieee754/ldbl-128/strtold_l.c (STRTOF_NAN): Define macro. - (SET_MANTISSA): Remove macro. - * sysdeps/ieee754/ldbl-128ibm/strtold_l.c (STRTOF_NAN): Define - macro. - (SET_MANTISSA): Remove macro. - * sysdeps/ieee754/ldbl-64-128/strtold_l.c (STRTOF_NAN): Define - macro. - (SET_MANTISSA): Remove macro. - * sysdeps/ieee754/ldbl-96/strtold_l.c (STRTOF_NAN): Define macro. - (SET_MANTISSA): Remove macro. - * wcsmbs/wcstod_l.c (____wcstoull_l_internal): Remove declaration. - * wcsmbs/wcstof_l.c (____wcstoull_l_internal): Likewise. - * wcsmbs/wcstold_l.c (____wcstoull_l_internal): Likewise. - -Index: glibc-2.22/include/stdlib.h -=================================================================== ---- glibc-2.22.orig/include/stdlib.h -+++ glibc-2.22/include/stdlib.h -@@ -203,6 +203,24 @@ libc_hidden_proto (strtoll) - libc_hidden_proto (strtoul) - libc_hidden_proto (strtoull) - -+extern float __strtof_nan (const char *, char **, char) internal_function; -+extern double __strtod_nan (const char *, char **, char) internal_function; -+extern long double __strtold_nan (const char *, char **, char) -+ internal_function; -+extern float __wcstof_nan (const wchar_t *, wchar_t **, wchar_t) -+ internal_function; -+extern double __wcstod_nan (const wchar_t *, wchar_t **, wchar_t) -+ internal_function; -+extern long double __wcstold_nan (const wchar_t *, wchar_t **, wchar_t) -+ internal_function; -+ -+libc_hidden_proto (__strtof_nan) -+libc_hidden_proto (__strtod_nan) -+libc_hidden_proto (__strtold_nan) -+libc_hidden_proto (__wcstof_nan) -+libc_hidden_proto (__wcstod_nan) -+libc_hidden_proto (__wcstold_nan) -+ - extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign); - extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt, -Index: glibc-2.22/include/wchar.h -=================================================================== ---- glibc-2.22.orig/include/wchar.h -+++ glibc-2.22/include/wchar.h -@@ -52,6 +52,9 @@ extern unsigned long long int __wcstoull - __restrict __endptr, - int __base, - int __group) __THROW; -+extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, -+ wchar_t **, int, int, -+ __locale_t); - libc_hidden_proto (__wcstof_internal) - libc_hidden_proto (__wcstod_internal) - libc_hidden_proto (__wcstold_internal) -Index: glibc-2.22/stdlib/Makefile -=================================================================== ---- glibc-2.22.orig/stdlib/Makefile -+++ glibc-2.22/stdlib/Makefile -@@ -50,6 +50,7 @@ routines := \ - strtol_l strtoul_l strtoll_l strtoull_l \ - strtof strtod strtold \ - strtof_l strtod_l strtold_l \ -+ strtof_nan strtod_nan strtold_nan \ - system canonicalize \ - a64l l64a \ - rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \ -Index: glibc-2.22/stdlib/strtod_l.c -=================================================================== ---- glibc-2.22.orig/stdlib/strtod_l.c -+++ glibc-2.22/stdlib/strtod_l.c -@@ -20,8 +20,6 @@ - #include - - extern double ____strtod_l_internal (const char *, char **, int, __locale_t); --extern unsigned long long int ____strtoull_l_internal (const char *, char **, -- int, int, __locale_t); - - /* Configuration part. These macros are defined by `strtold.c', - `strtof.c', `wcstod.c', `wcstold.c', and `wcstof.c' to produce the -@@ -33,27 +31,20 @@ extern unsigned long long int ____strtou - # ifdef USE_WIDE_CHAR - # define STRTOF wcstod_l - # define __STRTOF __wcstod_l -+# define STRTOF_NAN __wcstod_nan - # else - # define STRTOF strtod_l - # define __STRTOF __strtod_l -+# define STRTOF_NAN __strtod_nan - # endif - # define MPN2FLOAT __mpn_construct_double - # define FLOAT_HUGE_VAL HUGE_VAL --# define SET_MANTISSA(flt, mant) \ -- do { union ieee754_double u; \ -- u.d = (flt); \ -- u.ieee_nan.mantissa0 = (mant) >> 32; \ -- u.ieee_nan.mantissa1 = (mant); \ -- if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ -- (flt) = u.d; \ -- } while (0) - #endif - /* End of configuration part. */ - - #include - #include - #include --#include - #include "../locale/localeinfo.h" - #include - #include -@@ -104,7 +95,6 @@ extern unsigned long long int ____strtou - # define TOLOWER_C(Ch) __towlower_l ((Ch), _nl_C_locobj_ptr) - # define STRNCASECMP(S1, S2, N) \ - __wcsncasecmp_l ((S1), (S2), (N), _nl_C_locobj_ptr) --# define STRTOULL(S, E, B) ____wcstoull_l_internal ((S), (E), (B), 0, loc) - #else - # define STRING_TYPE char - # define CHAR_TYPE char -@@ -116,7 +106,6 @@ extern unsigned long long int ____strtou - # define TOLOWER_C(Ch) __tolower_l ((Ch), _nl_C_locobj_ptr) - # define STRNCASECMP(S1, S2, N) \ - __strncasecmp_l ((S1), (S2), (N), _nl_C_locobj_ptr) --# define STRTOULL(S, E, B) ____strtoull_l_internal ((S), (E), (B), 0, loc) - #endif - - -@@ -655,33 +644,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group - if (*cp == L_('(')) - { - const STRING_TYPE *startp = cp; -- do -- ++cp; -- while ((*cp >= L_('0') && *cp <= L_('9')) -- || ({ CHAR_TYPE lo = TOLOWER (*cp); -- lo >= L_('a') && lo <= L_('z'); }) -- || *cp == L_('_')); -- -- if (*cp != L_(')')) -- /* The closing brace is missing. Only match the NAN -- part. */ -- cp = startp; -+ STRING_TYPE *endp; -+ retval = STRTOF_NAN (cp + 1, &endp, L_(')')); -+ if (*endp == L_(')')) -+ /* Consume the closing parenthesis. */ -+ cp = endp + 1; - else -- { -- /* This is a system-dependent way to specify the -- bitmask used for the NaN. We expect it to be -- a number which is put in the mantissa of the -- number. */ -- STRING_TYPE *endp; -- unsigned long long int mant; -- -- mant = STRTOULL (startp + 1, &endp, 0); -- if (endp == cp) -- SET_MANTISSA (retval, mant); -- -- /* Consume the closing brace. */ -- ++cp; -- } -+ /* Only match the NAN part. */ -+ cp = startp; - } - - if (endptr != NULL) -Index: glibc-2.22/stdlib/strtod_nan.c -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtod_nan.c -@@ -0,0 +1,24 @@ -+/* Convert string for NaN payload to corresponding NaN. Narrow -+ strings, double. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#define STRTOD_NAN __strtod_nan -+#include -Index: glibc-2.22/stdlib/strtod_nan_double.h -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtod_nan_double.h -@@ -0,0 +1,30 @@ -+/* Convert string for NaN payload to corresponding NaN. For double. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define FLOAT double -+#define SET_MANTISSA(flt, mant) \ -+ do \ -+ { \ -+ union ieee754_double u; \ -+ u.d = (flt); \ -+ u.ieee_nan.mantissa0 = (mant) >> 32; \ -+ u.ieee_nan.mantissa1 = (mant); \ -+ if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ -+ (flt) = u.d; \ -+ } \ -+ while (0) -Index: glibc-2.22/stdlib/strtod_nan_float.h -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtod_nan_float.h -@@ -0,0 +1,29 @@ -+/* Convert string for NaN payload to corresponding NaN. For float. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define FLOAT float -+#define SET_MANTISSA(flt, mant) \ -+ do \ -+ { \ -+ union ieee754_float u; \ -+ u.f = (flt); \ -+ u.ieee_nan.mantissa = (mant); \ -+ if (u.ieee.mantissa != 0) \ -+ (flt) = u.f; \ -+ } \ -+ while (0) -Index: glibc-2.22/stdlib/strtod_nan_main.c -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtod_nan_main.c -@@ -0,0 +1,63 @@ -+/* Convert string for NaN payload to corresponding NaN. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+ -+/* If STR starts with an optional n-char-sequence as defined by ISO C -+ (a sequence of ASCII letters, digits and underscores), followed by -+ ENDC, return a NaN whose payload is set based on STR. Otherwise, -+ return a default NAN. If ENDPTR is not NULL, set *ENDPTR to point -+ to the character after the initial n-char-sequence. */ -+ -+internal_function -+FLOAT -+STRTOD_NAN (const STRING_TYPE *str, STRING_TYPE **endptr, STRING_TYPE endc) -+{ -+ const STRING_TYPE *cp = str; -+ -+ while ((*cp >= L_('0') && *cp <= L_('9')) -+ || (*cp >= L_('A') && *cp <= L_('Z')) -+ || (*cp >= L_('a') && *cp <= L_('z')) -+ || *cp == L_('_')) -+ ++cp; -+ -+ FLOAT retval = NAN; -+ if (*cp != endc) -+ goto out; -+ -+ /* This is a system-dependent way to specify the bitmask used for -+ the NaN. We expect it to be a number which is put in the -+ mantissa of the number. */ -+ STRING_TYPE *endp; -+ unsigned long long int mant; -+ -+ mant = STRTOULL (str, &endp, 0); -+ if (endp == cp) -+ SET_MANTISSA (retval, mant); -+ -+ out: -+ if (endptr != NULL) -+ *endptr = (STRING_TYPE *) cp; -+ return retval; -+} -+libc_hidden_def (STRTOD_NAN) -Index: glibc-2.22/stdlib/strtod_nan_narrow.h -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtod_nan_narrow.h -@@ -0,0 +1,22 @@ -+/* Convert string for NaN payload to corresponding NaN. Narrow strings. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define STRING_TYPE char -+#define L_(Ch) Ch -+#define STRTOULL(S, E, B) ____strtoull_l_internal ((S), (E), (B), 0, \ -+ _nl_C_locobj_ptr) -Index: glibc-2.22/stdlib/strtod_nan_wide.h -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtod_nan_wide.h -@@ -0,0 +1,22 @@ -+/* Convert string for NaN payload to corresponding NaN. Wide strings. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define STRING_TYPE wchar_t -+#define L_(Ch) L##Ch -+#define STRTOULL(S, E, B) ____wcstoull_l_internal ((S), (E), (B), 0, \ -+ _nl_C_locobj_ptr) -Index: glibc-2.22/stdlib/strtof_l.c -=================================================================== ---- glibc-2.22.orig/stdlib/strtof_l.c -+++ glibc-2.22/stdlib/strtof_l.c -@@ -20,26 +20,19 @@ - #include - - extern float ____strtof_l_internal (const char *, char **, int, __locale_t); --extern unsigned long long int ____strtoull_l_internal (const char *, char **, -- int, int, __locale_t); - - #define FLOAT float - #define FLT FLT - #ifdef USE_WIDE_CHAR - # define STRTOF wcstof_l - # define __STRTOF __wcstof_l -+# define STRTOF_NAN __wcstof_nan - #else - # define STRTOF strtof_l - # define __STRTOF __strtof_l -+# define STRTOF_NAN __strtof_nan - #endif - #define MPN2FLOAT __mpn_construct_float - #define FLOAT_HUGE_VAL HUGE_VALF --#define SET_MANTISSA(flt, mant) \ -- do { union ieee754_float u; \ -- u.f = (flt); \ -- u.ieee_nan.mantissa = (mant); \ -- if (u.ieee.mantissa != 0) \ -- (flt) = u.f; \ -- } while (0) - - #include "strtod_l.c" -Index: glibc-2.22/stdlib/strtof_nan.c -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtof_nan.c -@@ -0,0 +1,24 @@ -+/* Convert string for NaN payload to corresponding NaN. Narrow -+ strings, float. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#define STRTOD_NAN __strtof_nan -+#include -Index: glibc-2.22/stdlib/strtold_nan.c -=================================================================== ---- /dev/null -+++ glibc-2.22/stdlib/strtold_nan.c -@@ -0,0 +1,30 @@ -+/* Convert string for NaN payload to corresponding NaN. Narrow -+ strings, long double. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+/* This function is unused if long double and double have the same -+ representation. */ -+#ifndef __NO_LONG_DOUBLE_MATH -+# include -+# include -+ -+# define STRTOD_NAN __strtold_nan -+# include -+#endif -Index: glibc-2.22/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h -=================================================================== ---- /dev/null -+++ glibc-2.22/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h -@@ -0,0 +1,33 @@ -+/* Convert string for NaN payload to corresponding NaN. For ldbl-128. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define FLOAT long double -+#define SET_MANTISSA(flt, mant) \ -+ do \ -+ { \ -+ union ieee854_long_double u; \ -+ u.d = (flt); \ -+ u.ieee_nan.mantissa0 = 0; \ -+ u.ieee_nan.mantissa1 = 0; \ -+ u.ieee_nan.mantissa2 = (mant) >> 32; \ -+ u.ieee_nan.mantissa3 = (mant); \ -+ if ((u.ieee.mantissa0 | u.ieee.mantissa1 \ -+ | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \ -+ (flt) = u.d; \ -+ } \ -+ while (0) -Index: glibc-2.22/sysdeps/ieee754/ldbl-128/strtold_l.c -=================================================================== ---- glibc-2.22.orig/sysdeps/ieee754/ldbl-128/strtold_l.c -+++ glibc-2.22/sysdeps/ieee754/ldbl-128/strtold_l.c -@@ -25,22 +25,13 @@ - #ifdef USE_WIDE_CHAR - # define STRTOF wcstold_l - # define __STRTOF __wcstold_l -+# define STRTOF_NAN __wcstold_nan - #else - # define STRTOF strtold_l - # define __STRTOF __strtold_l -+# define STRTOF_NAN __strtold_nan - #endif - #define MPN2FLOAT __mpn_construct_long_double - #define FLOAT_HUGE_VAL HUGE_VALL --#define SET_MANTISSA(flt, mant) \ -- do { union ieee854_long_double u; \ -- u.d = (flt); \ -- u.ieee_nan.mantissa0 = 0; \ -- u.ieee_nan.mantissa1 = 0; \ -- u.ieee_nan.mantissa2 = (mant) >> 32; \ -- u.ieee_nan.mantissa3 = (mant); \ -- if ((u.ieee.mantissa0 | u.ieee.mantissa1 \ -- | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \ -- (flt) = u.d; \ -- } while (0) - - #include -Index: glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h -=================================================================== ---- /dev/null -+++ glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h -@@ -0,0 +1,30 @@ -+/* Convert string for NaN payload to corresponding NaN. For ldbl-128ibm. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define FLOAT long double -+#define SET_MANTISSA(flt, mant) \ -+ do \ -+ { \ -+ union ibm_extended_long_double u; \ -+ u.ld = (flt); \ -+ u.d[0].ieee_nan.mantissa0 = (mant) >> 32; \ -+ u.d[0].ieee_nan.mantissa1 = (mant); \ -+ if ((u.d[0].ieee.mantissa0 | u.d[0].ieee.mantissa1) != 0) \ -+ (flt) = u.ld; \ -+ } \ -+ while (0) -Index: glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtold_l.c -=================================================================== ---- glibc-2.22.orig/sysdeps/ieee754/ldbl-128ibm/strtold_l.c -+++ glibc-2.22/sysdeps/ieee754/ldbl-128ibm/strtold_l.c -@@ -30,25 +30,19 @@ extern long double ____new_wcstold_l (co - # define STRTOF __new_wcstold_l - # define __STRTOF ____new_wcstold_l - # define ____STRTOF_INTERNAL ____wcstold_l_internal -+# define STRTOF_NAN __wcstold_nan - #else - extern long double ____new_strtold_l (const char *, char **, __locale_t); - # define STRTOF __new_strtold_l - # define __STRTOF ____new_strtold_l - # define ____STRTOF_INTERNAL ____strtold_l_internal -+# define STRTOF_NAN __strtold_nan - #endif - extern __typeof (__STRTOF) STRTOF; - libc_hidden_proto (__STRTOF) - libc_hidden_proto (STRTOF) - #define MPN2FLOAT __mpn_construct_long_double - #define FLOAT_HUGE_VAL HUGE_VALL --# define SET_MANTISSA(flt, mant) \ -- do { union ibm_extended_long_double u; \ -- u.ld = (flt); \ -- u.d[0].ieee_nan.mantissa0 = (mant) >> 32; \ -- u.d[0].ieee_nan.mantissa1 = (mant); \ -- if ((u.d[0].ieee.mantissa0 | u.d[0].ieee.mantissa1) != 0) \ -- (flt) = u.ld; \ -- } while (0) - - #include - -Index: glibc-2.22/sysdeps/ieee754/ldbl-64-128/strtold_l.c -=================================================================== ---- glibc-2.22.orig/sysdeps/ieee754/ldbl-64-128/strtold_l.c -+++ glibc-2.22/sysdeps/ieee754/ldbl-64-128/strtold_l.c -@@ -30,28 +30,19 @@ extern long double ____new_wcstold_l (co - # define STRTOF __new_wcstold_l - # define __STRTOF ____new_wcstold_l - # define ____STRTOF_INTERNAL ____wcstold_l_internal -+# define STRTOF_NAN __wcstold_nan - #else - extern long double ____new_strtold_l (const char *, char **, __locale_t); - # define STRTOF __new_strtold_l - # define __STRTOF ____new_strtold_l - # define ____STRTOF_INTERNAL ____strtold_l_internal -+# define STRTOF_NAN __strtold_nan - #endif - extern __typeof (__STRTOF) STRTOF; - libc_hidden_proto (__STRTOF) - libc_hidden_proto (STRTOF) - #define MPN2FLOAT __mpn_construct_long_double - #define FLOAT_HUGE_VAL HUGE_VALL --#define SET_MANTISSA(flt, mant) \ -- do { union ieee854_long_double u; \ -- u.d = (flt); \ -- u.ieee_nan.mantissa0 = 0; \ -- u.ieee_nan.mantissa1 = 0; \ -- u.ieee_nan.mantissa2 = (mant) >> 32; \ -- u.ieee_nan.mantissa3 = (mant); \ -- if ((u.ieee.mantissa0 | u.ieee.mantissa1 \ -- | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \ -- (flt) = u.d; \ -- } while (0) - - #include - -Index: glibc-2.22/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h -=================================================================== ---- /dev/null -+++ glibc-2.22/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h -@@ -0,0 +1,30 @@ -+/* Convert string for NaN payload to corresponding NaN. For ldbl-96. -+ Copyright (C) 1997-2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define FLOAT long double -+#define SET_MANTISSA(flt, mant) \ -+ do \ -+ { \ -+ union ieee854_long_double u; \ -+ u.d = (flt); \ -+ u.ieee_nan.mantissa0 = (mant) >> 32; \ -+ u.ieee_nan.mantissa1 = (mant); \ -+ if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ -+ (flt) = u.d; \ -+ } \ -+ while (0) -Index: glibc-2.22/sysdeps/ieee754/ldbl-96/strtold_l.c -=================================================================== ---- glibc-2.22.orig/sysdeps/ieee754/ldbl-96/strtold_l.c -+++ glibc-2.22/sysdeps/ieee754/ldbl-96/strtold_l.c -@@ -25,19 +25,13 @@ - #ifdef USE_WIDE_CHAR - # define STRTOF wcstold_l - # define __STRTOF __wcstold_l -+# define STRTOF_NAN __wcstold_nan - #else - # define STRTOF strtold_l - # define __STRTOF __strtold_l -+# define STRTOF_NAN __strtold_nan - #endif - #define MPN2FLOAT __mpn_construct_long_double - #define FLOAT_HUGE_VAL HUGE_VALL --#define SET_MANTISSA(flt, mant) \ -- do { union ieee854_long_double u; \ -- u.d = (flt); \ -- u.ieee_nan.mantissa0 = (mant) >> 32; \ -- u.ieee_nan.mantissa1 = (mant); \ -- if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \ -- (flt) = u.d; \ -- } while (0) - - #include -Index: glibc-2.22/wcsmbs/Makefile -=================================================================== ---- glibc-2.22.orig/wcsmbs/Makefile -+++ glibc-2.22/wcsmbs/Makefile -@@ -33,6 +33,7 @@ routines := wcscat wcschr wcscmp wcscpy - wcstol wcstoul wcstoll wcstoull wcstod wcstold wcstof \ - wcstol_l wcstoul_l wcstoll_l wcstoull_l \ - wcstod_l wcstold_l wcstof_l \ -+ wcstod_nan wcstold_nan wcstof_nan \ - wcscoll wcsxfrm \ - wcwidth wcswidth \ - wcscoll_l wcsxfrm_l \ -Index: glibc-2.22/wcsmbs/wcstod_l.c -=================================================================== ---- glibc-2.22.orig/wcsmbs/wcstod_l.c -+++ glibc-2.22/wcsmbs/wcstod_l.c -@@ -23,9 +23,6 @@ - - extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int, - __locale_t); --extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, -- wchar_t **, int, int, -- __locale_t); - - #define USE_WIDE_CHAR 1 - -Index: glibc-2.22/wcsmbs/wcstod_nan.c -=================================================================== ---- /dev/null -+++ glibc-2.22/wcsmbs/wcstod_nan.c -@@ -0,0 +1,23 @@ -+/* Convert string for NaN payload to corresponding NaN. Wide strings, double. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include "../stdlib/strtod_nan_wide.h" -+#include "../stdlib/strtod_nan_double.h" -+ -+#define STRTOD_NAN __wcstod_nan -+#include "../stdlib/strtod_nan_main.c" -Index: glibc-2.22/wcsmbs/wcstof_l.c -=================================================================== ---- glibc-2.22.orig/wcsmbs/wcstof_l.c -+++ glibc-2.22/wcsmbs/wcstof_l.c -@@ -25,8 +25,5 @@ - - extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int, - __locale_t); --extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, -- wchar_t **, int, int, -- __locale_t); - - #include -Index: glibc-2.22/wcsmbs/wcstof_nan.c -=================================================================== ---- /dev/null -+++ glibc-2.22/wcsmbs/wcstof_nan.c -@@ -0,0 +1,23 @@ -+/* Convert string for NaN payload to corresponding NaN. Wide strings, float. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include "../stdlib/strtod_nan_wide.h" -+#include "../stdlib/strtod_nan_float.h" -+ -+#define STRTOD_NAN __wcstof_nan -+#include "../stdlib/strtod_nan_main.c" -Index: glibc-2.22/wcsmbs/wcstold_l.c -=================================================================== ---- glibc-2.22.orig/wcsmbs/wcstold_l.c -+++ glibc-2.22/wcsmbs/wcstold_l.c -@@ -24,8 +24,5 @@ - - extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int, - __locale_t); --extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, -- wchar_t **, int, int, -- __locale_t); - - #include -Index: glibc-2.22/wcsmbs/wcstold_nan.c -=================================================================== ---- /dev/null -+++ glibc-2.22/wcsmbs/wcstold_nan.c -@@ -0,0 +1,30 @@ -+/* Convert string for NaN payload to corresponding NaN. Wide strings, -+ long double. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+/* This function is unused if long double and double have the same -+ representation. */ -+#ifndef __NO_LONG_DOUBLE_MATH -+# include "../stdlib/strtod_nan_wide.h" -+# include -+ -+# define STRTOD_NAN __wcstold_nan -+# include "../stdlib/strtod_nan_main.c" -+#endif diff --git a/send-dg-buffer-overflow.patch b/send-dg-buffer-overflow.patch deleted file mode 100644 index ae71f49..0000000 --- a/send-dg-buffer-overflow.patch +++ /dev/null @@ -1,569 +0,0 @@ -2016-02-15 Carlos O'Donell - - [BZ #18665] - * resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Always set - *herrno_p. - (gaih_getanswer): Document functional behviour. Return tryagain - if any result is tryagain. - * resolv/res_query.c (__libc_res_nsearch): Set buffer size to zero - when freed. - * resolv/res_send.c: Add copyright text. - (__libc_res_nsend): Document that MAXPACKET is expected. - (send_vc): Document. Remove buffer reuse. - (send_dg): Document. Remove buffer reuse. Set *thisanssizp to set the - size of the buffer. Add Dprint for truncated UDP buffer. - -Index: glibc-2.22/resolv/nss_dns/dns-host.c -=================================================================== ---- glibc-2.22.orig/resolv/nss_dns/dns-host.c -+++ glibc-2.22/resolv/nss_dns/dns-host.c -@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *an - int h_namelen = 0; - - if (ancount == 0) -- return NSS_STATUS_NOTFOUND; -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } - - while (ancount-- > 0 && cp < end_of_message && had_error == 0) - { -@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *an - /* Special case here: if the resolver sent a result but it only - contains a CNAME while we are looking for a T_A or T_AAAA record, - we fail with NOTFOUND instead of TRYAGAIN. */ -- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND; -+ if (canon != NULL) -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } -+ -+ *h_errnop = NETDB_INTERNAL; -+ return NSS_STATUS_TRYAGAIN; - } - - -@@ -1222,11 +1232,101 @@ gaih_getanswer (const querybuf *answer1, - - enum nss_status status = NSS_STATUS_NOTFOUND; - -+ /* Combining the NSS status of two distinct queries requires some -+ compromise and attention to symmetry (A or AAAA queries can be -+ returned in any order). What follows is a breakdown of how this -+ code is expected to work and why. We discuss only SUCCESS, -+ TRYAGAIN, NOTFOUND and UNAVAIL, since they are the only returns -+ that apply (though RETURN and MERGE exist). We make a distinction -+ between TRYAGAIN (recoverable) and TRYAGAIN' (not-recoverable). -+ A recoverable TRYAGAIN is almost always due to buffer size issues -+ and returns ERANGE in errno and the caller is expected to retry -+ with a larger buffer. -+ -+ Lastly, you may be tempted to make significant changes to the -+ conditions in this code to bring about symmetry between responses. -+ Please don't change anything without due consideration for -+ expected application behaviour. Some of the synthesized responses -+ aren't very well thought out and sometimes appear to imply that -+ IPv4 responses are always answer 1, and IPv6 responses are always -+ answer 2, but that's not true (see the implementation of send_dg -+ and send_vc to see response can arrive in any order, particularly -+ for UDP). However, we expect it holds roughly enough of the time -+ that this code works, but certainly needs to be fixed to make this -+ a more robust implementation. -+ -+ ---------------------------------------------- -+ | Answer 1 Status / | Synthesized | Reason | -+ | Answer 2 Status | Status | | -+ |--------------------------------------------| -+ | SUCCESS/SUCCESS | SUCCESS | [1] | -+ | SUCCESS/TRYAGAIN | TRYAGAIN | [5] | -+ | SUCCESS/TRYAGAIN' | SUCCESS | [1] | -+ | SUCCESS/NOTFOUND | SUCCESS | [1] | -+ | SUCCESS/UNAVAIL | SUCCESS | [1] | -+ | TRYAGAIN/SUCCESS | TRYAGAIN | [2] | -+ | TRYAGAIN/TRYAGAIN | TRYAGAIN | [2] | -+ | TRYAGAIN/TRYAGAIN' | TRYAGAIN | [2] | -+ | TRYAGAIN/NOTFOUND | TRYAGAIN | [2] | -+ | TRYAGAIN/UNAVAIL | TRYAGAIN | [2] | -+ | TRYAGAIN'/SUCCESS | SUCCESS | [3] | -+ | TRYAGAIN'/TRYAGAIN | TRYAGAIN | [3] | -+ | TRYAGAIN'/TRYAGAIN' | TRYAGAIN' | [3] | -+ | TRYAGAIN'/NOTFOUND | TRYAGAIN' | [3] | -+ | TRYAGAIN'/UNAVAIL | UNAVAIL | [3] | -+ | NOTFOUND/SUCCESS | SUCCESS | [3] | -+ | NOTFOUND/TRYAGAIN | TRYAGAIN | [3] | -+ | NOTFOUND/TRYAGAIN' | TRYAGAIN' | [3] | -+ | NOTFOUND/NOTFOUND | NOTFOUND | [3] | -+ | NOTFOUND/UNAVAIL | UNAVAIL | [3] | -+ | UNAVAIL/SUCCESS | UNAVAIL | [4] | -+ | UNAVAIL/TRYAGAIN | UNAVAIL | [4] | -+ | UNAVAIL/TRYAGAIN' | UNAVAIL | [4] | -+ | UNAVAIL/NOTFOUND | UNAVAIL | [4] | -+ | UNAVAIL/UNAVAIL | UNAVAIL | [4] | -+ ---------------------------------------------- -+ -+ [1] If the first response is a success we return success. -+ This ignores the state of the second answer and in fact -+ incorrectly sets errno and h_errno to that of the second -+ answer. However because the response is a success we ignore -+ *errnop and *h_errnop (though that means you touched errno on -+ success). We are being conservative here and returning the -+ likely IPv4 response in the first answer as a success. -+ -+ [2] If the first response is a recoverable TRYAGAIN we return -+ that instead of looking at the second response. The -+ expectation here is that we have failed to get an IPv4 response -+ and should retry both queries. -+ -+ [3] If the first response was not a SUCCESS and the second -+ response is not NOTFOUND (had a SUCCESS, need to TRYAGAIN, -+ or failed entirely e.g. TRYAGAIN' and UNAVAIL) then use the -+ result from the second response, otherwise the first responses -+ status is used. Again we have some odd side-effects when the -+ second response is NOTFOUND because we overwrite *errnop and -+ *h_errnop that means that a first answer of NOTFOUND might see -+ its *errnop and *h_errnop values altered. Whether it matters -+ in practice that a first response NOTFOUND has the wrong -+ *errnop and *h_errnop is undecided. -+ -+ [4] If the first response is UNAVAIL we return that instead of -+ looking at the second response. The expectation here is that -+ it will have failed similarly e.g. configuration failure. -+ -+ [5] Testing this code is complicated by the fact that truncated -+ second response buffers might be returned as SUCCESS if the -+ first answer is a SUCCESS. To fix this we add symmetry to -+ TRYAGAIN with the second response. If the second response -+ is a recoverable error we now return TRYAGIN even if the first -+ response was SUCCESS. */ -+ - if (anslen1 > 0) - status = gaih_getanswer_slice(answer1, anslen1, qname, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ - if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND - || (status == NSS_STATUS_TRYAGAIN - /* We want to look at the second answer in case of an -@@ -1242,8 +1342,15 @@ gaih_getanswer (const querybuf *answer1, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ /* Use the second response status in some cases. */ - if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND) - status = status2; -+ /* Do not return a truncated second response (unless it was -+ unavoidable e.g. unrecoverable TRYAGAIN). */ -+ if (status == NSS_STATUS_SUCCESS -+ && (status2 == NSS_STATUS_TRYAGAIN -+ && *errnop == ERANGE && *h_errnop != NO_RECOVERY)) -+ status = NSS_STATUS_TRYAGAIN; - } - - return status; -Index: glibc-2.22/resolv/res_query.c -=================================================================== ---- glibc-2.22.orig/resolv/res_query.c -+++ glibc-2.22/resolv/res_query.c -@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - } -@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - -@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - if (saved_herrno != -1) -Index: glibc-2.22/resolv/res_send.c -=================================================================== ---- glibc-2.22.orig/resolv/res_send.c -+++ glibc-2.22/resolv/res_send.c -@@ -1,3 +1,20 @@ -+/* Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ - /* - * Copyright (c) 1985, 1989, 1993 - * The Regents of the University of California. All rights reserved. -@@ -363,6 +380,8 @@ __libc_res_nsend(res_state statp, const - #ifdef USE_HOOKS - if (__glibc_unlikely (statp->qhook || statp->rhook)) { - if (anssiz < MAXPACKET && ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *buf = malloc (MAXPACKET); - if (buf == NULL) - return (-1); -@@ -638,6 +657,77 @@ get_nsaddr (res_state statp, int n) - return (struct sockaddr *) (void *) &statp->nsaddr_list[n]; - } - -+/* The send_vc function is responsible for sending a DNS query over TCP -+ to the nameserver numbered NS from the res_state STATP i.e. -+ EXT(statp).nssocks[ns]. The function supports sending both IPv4 and -+ IPv6 queries at the same serially on the same socket. -+ -+ Please note that for TCP there is no way to disable sending both -+ queries, unlike UDP, which honours RES_SNGLKUP and RES_SNGLKUPREOP -+ and sends the queries serially and waits for the result after each -+ sent query. This implemetnation should be corrected to honour these -+ options. -+ -+ Please also note that for TCP we send both queries over the same -+ socket one after another. This technically violates best practice -+ since the server is allowed to read the first query, respond, and -+ then close the socket (to service another client). If the server -+ does this, then the remaining second query in the socket data buffer -+ will cause the server to send the client an RST which will arrive -+ asynchronously and the client's OS will likely tear down the socket -+ receive buffer resulting in a potentially short read and lost -+ response data. This will force the client to retry the query again, -+ and this process may repeat until all servers and connection resets -+ are exhausted and then the query will fail. It's not known if this -+ happens with any frequency in real DNS server implementations. This -+ implementation should be corrected to use two sockets by default for -+ parallel queries. -+ -+ The query stored in BUF of BUFLEN length is sent first followed by -+ the query stored in BUF2 of BUFLEN2 length. Queries are sent -+ serially on the same socket. -+ -+ Answers to the query are stored firstly in *ANSP up to a max of -+ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP -+ is non-NULL (to indicate that modifying the answer buffer is allowed) -+ then malloc is used to allocate a new response buffer and ANSCP and -+ ANSP will both point to the new buffer. If more than *ANSSIZP bytes -+ are needed but ANSCP is NULL, then as much of the response as -+ possible is read into the buffer, but the results will be truncated. -+ When truncation happens because of a small answer buffer the DNS -+ packets header field TC will bet set to 1, indicating a truncated -+ message and the rest of the socket data will be read and discarded. -+ -+ Answers to the query are stored secondly in *ANSP2 up to a max of -+ *ANSSIZP2 bytes, with the actual response length stored in -+ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2 -+ is non-NULL (required for a second query) then malloc is used to -+ allocate a new response buffer, *ANSSIZP2 is set to the new buffer -+ size and *ANSP2_MALLOCED is set to 1. -+ -+ The ANSP2_MALLOCED argument will eventually be removed as the -+ change in buffer pointer can be used to detect the buffer has -+ changed and that the caller should use free on the new buffer. -+ -+ Note that the answers may arrive in any order from the server and -+ therefore the first and second answer buffers may not correspond to -+ the first and second queries. -+ -+ It is not supported to call this function with a non-NULL ANSP2 -+ but a NULL ANSCP. Put another way, you can call send_vc with a -+ single unmodifiable buffer or two modifiable buffers, but no other -+ combination is supported. -+ -+ It is the caller's responsibility to free the malloc allocated -+ buffers by detecting that the pointers have changed from their -+ original values i.e. *ANSCP or *ANSP2 has changed. -+ -+ If errors are encountered then *TERRNO is set to an appropriate -+ errno value and a zero result is returned for a recoverable error, -+ and a less-than zero result is returned for a non-recoverable error. -+ -+ If no errors are encountered then *TERRNO is left unmodified and -+ a the length of the first response in bytes is returned. */ - static int - send_vc(res_state statp, - const u_char *buf, int buflen, const u_char *buf2, int buflen2, -@@ -647,11 +737,7 @@ send_vc(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; -- // XXX REMOVE -- // int anssiz = *anssizp; -- HEADER *anhp = (HEADER *) ans; -+ HEADER *anhp = (HEADER *) *ansp; - struct sockaddr *nsap = get_nsaddr (statp, ns); - int truncating, connreset, n; - /* On some architectures compiler might emit a warning indicating -@@ -743,6 +829,8 @@ send_vc(res_state statp, - * Receive length & response - */ - int recvresp1 = 0; -+ /* Skip the second response if there is no second query. -+ To do that we mark the second response as received. */ - int recvresp2 = buf2 == NULL; - uint16_t rlen16; - read_len: -@@ -779,40 +867,14 @@ send_vc(res_state statp, - u_char **thisansp; - int *thisresplenp; - if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) { -+ /* We have not received any responses -+ yet or we only have one response to -+ receive. */ - thisanssizp = anssizp; - thisansp = anscp ?: ansp; - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if __GNUC_PREREQ (4, 7) -- DIAG_PUSH_NEEDS_COMMENT; -- DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); --#endif --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif --#if __GNUC_PREREQ (4, 7) -- DIAG_POP_NEEDS_COMMENT; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; -@@ -820,10 +882,14 @@ send_vc(res_state statp, - anhp = (HEADER *) *thisansp; - - *thisresplenp = rlen; -- if (rlen > *thisanssizp) { -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- if (__glibc_likely (anscp != NULL)) { -+ /* Is the answer buffer too small? */ -+ if (*thisanssizp < rlen) { -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ if (thisansp != NULL && thisansp != ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp == NULL) { - *terrno = ENOMEM; -@@ -835,6 +901,9 @@ send_vc(res_state statp, - if (thisansp == ansp2) - *ansp2_malloced = 1; - anhp = (HEADER *) newp; -+ /* A uint16_t can't be larger than MAXPACKET -+ thus it's safe to allocate MAXPACKET but -+ read RLEN bytes instead. */ - len = rlen; - } else { - Dprint(statp->options & RES_DEBUG, -@@ -997,6 +1066,66 @@ reopen (res_state statp, int *terrno, in - return 1; - } - -+/* The send_dg function is responsible for sending a DNS query over UDP -+ to the nameserver numbered NS from the res_state STATP i.e. -+ EXT(statp).nssocks[ns]. The function supports IPv4 and IPv6 queries -+ along with the ability to send the query in parallel for both stacks -+ (default) or serially (RES_SINGLKUP). It also supports serial lookup -+ with a close and reopen of the socket used to talk to the server -+ (RES_SNGLKUPREOP) to work around broken name servers. -+ -+ The query stored in BUF of BUFLEN length is sent first followed by -+ the query stored in BUF2 of BUFLEN2 length. Queries are sent -+ in parallel (default) or serially (RES_SINGLKUP or RES_SNGLKUPREOP). -+ -+ Answers to the query are stored firstly in *ANSP up to a max of -+ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP -+ is non-NULL (to indicate that modifying the answer buffer is allowed) -+ then malloc is used to allocate a new response buffer and ANSCP and -+ ANSP will both point to the new buffer. If more than *ANSSIZP bytes -+ are needed but ANSCP is NULL, then as much of the response as -+ possible is read into the buffer, but the results will be truncated. -+ When truncation happens because of a small answer buffer the DNS -+ packets header field TC will bet set to 1, indicating a truncated -+ message, while the rest of the UDP packet is discarded. -+ -+ Answers to the query are stored secondly in *ANSP2 up to a max of -+ *ANSSIZP2 bytes, with the actual response length stored in -+ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2 -+ is non-NULL (required for a second query) then malloc is used to -+ allocate a new response buffer, *ANSSIZP2 is set to the new buffer -+ size and *ANSP2_MALLOCED is set to 1. -+ -+ The ANSP2_MALLOCED argument will eventually be removed as the -+ change in buffer pointer can be used to detect the buffer has -+ changed and that the caller should use free on the new buffer. -+ -+ Note that the answers may arrive in any order from the server and -+ therefore the first and second answer buffers may not correspond to -+ the first and second queries. -+ -+ It is not supported to call this function with a non-NULL ANSP2 -+ but a NULL ANSCP. Put another way, you can call send_vc with a -+ single unmodifiable buffer or two modifiable buffers, but no other -+ combination is supported. -+ -+ It is the caller's responsibility to free the malloc allocated -+ buffers by detecting that the pointers have changed from their -+ original values i.e. *ANSCP or *ANSP2 has changed. -+ -+ If an answer is truncated because of UDP datagram DNS limits then -+ *V_CIRCUIT is set to 1 and the return value non-zero to indicate to -+ the caller to retry with TCP. The value *GOTSOMEWHERE is set to 1 -+ if any progress was made reading a response from the nameserver and -+ is used by the caller to distinguish between ECONNREFUSED and -+ ETIMEDOUT (the latter if *GOTSOMEWHERE is 1). -+ -+ If errors are encountered then *TERRNO is set to an appropriate -+ errno value and a zero result is returned for a recoverable error, -+ and a less-than zero result is returned for a non-recoverable error. -+ -+ If no errors are encountered then *TERRNO is left unmodified and -+ a the length of the first response in bytes is returned. */ - static int - send_dg(res_state statp, - const u_char *buf, int buflen, const u_char *buf2, int buflen2, -@@ -1006,8 +1135,6 @@ send_dg(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; - struct timespec now, timeout, finish; - struct pollfd pfd[1]; - int ptimeout; -@@ -1040,6 +1167,8 @@ send_dg(res_state statp, - int need_recompute = 0; - int nwritten = 0; - int recvresp1 = 0; -+ /* Skip the second response if there is no second query. -+ To do that we mark the second response as received. */ - int recvresp2 = buf2 == NULL; - pfd[0].fd = EXT(statp).nssocks[ns]; - pfd[0].events = POLLOUT; -@@ -1203,55 +1332,56 @@ send_dg(res_state statp, - int *thisresplenp; - - if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) { -+ /* We have not received any responses -+ yet or we only have one response to -+ receive. */ - thisanssizp = anssizp; - thisansp = anscp ?: ansp; - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; - } - - if (*thisanssizp < MAXPACKET -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- && anscp -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ && (thisansp != NULL && thisansp != ansp) - #ifdef FIONREAD -+ /* Is the size too small? */ - && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0 - || *thisanssizp < *thisresplenp) - #endif - ) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp != NULL) { -- *anssizp = MAXPACKET; -- *thisansp = ans = newp; -+ *thisanssizp = MAXPACKET; -+ *thisansp = newp; - if (thisansp == ansp2) - *ansp2_malloced = 1; - } - } -+ /* We could end up with truncation if anscp was NULL -+ (not allowed to change caller's buffer) and the -+ response buffer size is too small. This isn't a -+ reliable way to detect truncation because the ioctl -+ may be an inaccurate report of the UDP message size. -+ Therefore we use this only to issue debug output. -+ To do truncation accurately with UDP we need -+ MSG_TRUNC which is only available on Linux. We -+ can abstract out the Linux-specific feature in the -+ future to detect truncation. */ -+ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; response may be truncated (UDP)\n") -+ ); -+ } -+ - HEADER *anhp = (HEADER *) *thisansp; - socklen_t fromlen = sizeof(struct sockaddr_in6); - assert (sizeof(from) <= fromlen); diff --git a/static-dlopen.patch b/static-dlopen.patch deleted file mode 100644 index 728598b..0000000 --- a/static-dlopen.patch +++ /dev/null @@ -1,18 +0,0 @@ -2015-08-04 Maciej W. Rozycki - - [BZ #17250] - * elf/dl-support.c (_dl_main_map): Don't initialize l_flags_1 - member. - -Index: glibc-2.22/elf/dl-support.c -=================================================================== ---- glibc-2.22.orig/elf/dl-support.c -+++ glibc-2.22/elf/dl-support.c -@@ -91,7 +91,6 @@ static struct link_map _dl_main_map = - .l_scope = _dl_main_map.l_scope_mem, - .l_local_scope = { &_dl_main_map.l_searchlist }, - .l_used = 1, -- .l_flags_1 = DF_1_NODEFLIB, - .l_tls_offset = NO_TLS_OFFSET, - .l_serial = 1, - }; diff --git a/strcoll-remove-strdiff-opt.patch b/strcoll-remove-strdiff-opt.patch deleted file mode 100644 index 832258c..0000000 --- a/strcoll-remove-strdiff-opt.patch +++ /dev/null @@ -1,366 +0,0 @@ -2015-10-09 Carlos O'Donell - - [BZ #18589] - * string/bug-strcoll2.c: Adjust copyright, and remove contributed by. - * string/Makefile ($(objpfx)bug-strcoll2.out): Depend on - $(gen-locales). - -2015-10-08 Carlos O'Donell - - [BZ #18589] - * string/Makefile (tests): Add bug-strcoll2. - (LOCALES): Add cs_CZ.UTF-8. - -2015-09-28 Martin Sebor - - [BZ #18969] - * string/Makefile (LOCALES): Define. - (gen-locales.mk): Include. - (test-strcasecmp.out, test-strncasecmp.out, tst-strxfrm.out) - (tst-strxfrm2.out): Add deppendency on $(gen-locales). - * string/tst-strxfrm2.c (do_test): Print the name of the locale - on setlocale failure. - -2015-10-08 Carlos O'Donell - - [BZ #18589] - * string/bug-strcoll2.c: New file. - * locale/categories.def: Revert commit - f13c2a8dff2329c6692a80176262ceaaf8a6f74e. - * locale/langinfo.h: Likewise. - * locale/localeinfo.h: Likewise. - * locale/C-collate.c: Likewise. - * programs/ld-collate.c (collate_output): Likewise. - * string/strcoll_l.c (STRDIFF): Likewise. - (STRCOLL): Likewise. - * wcsmbs/wcscoll_l.c: Likewise. - -Index: glibc-2.22/locale/C-collate.c -=================================================================== ---- glibc-2.22.orig/locale/C-collate.c -+++ glibc-2.22/locale/C-collate.c -@@ -144,8 +144,6 @@ const struct __locale_data _nl_C_LC_COLL - /* _NL_COLLATE_COLLSEQWC */ - { .string = (const char *) collseqwc }, - /* _NL_COLLATE_CODESET */ -- { .string = _nl_C_codeset }, -- /* _NL_COLLATE_ENCODING_TYPE */ -- { .word = __cet_8bit } -+ { .string = _nl_C_codeset } - } - }; -Index: glibc-2.22/locale/categories.def -=================================================================== ---- glibc-2.22.orig/locale/categories.def -+++ glibc-2.22/locale/categories.def -@@ -58,7 +58,6 @@ DEFINE_CATEGORY - DEFINE_ELEMENT (_NL_COLLATE_COLLSEQMB, "collate-collseqmb", std, wstring) - DEFINE_ELEMENT (_NL_COLLATE_COLLSEQWC, "collate-collseqwc", std, wstring) - DEFINE_ELEMENT (_NL_COLLATE_CODESET, "collate-codeset", std, string) -- DEFINE_ELEMENT (_NL_COLLATE_ENCODING_TYPE, "collate-encoding-type", std, word) - ), NO_POSTLOAD) - - -Index: glibc-2.22/locale/langinfo.h -=================================================================== ---- glibc-2.22.orig/locale/langinfo.h -+++ glibc-2.22/locale/langinfo.h -@@ -255,7 +255,6 @@ enum - _NL_COLLATE_COLLSEQMB, - _NL_COLLATE_COLLSEQWC, - _NL_COLLATE_CODESET, -- _NL_COLLATE_ENCODING_TYPE, - _NL_NUM_LC_COLLATE, - - /* LC_CTYPE category: character classification. -Index: glibc-2.22/locale/localeinfo.h -=================================================================== ---- glibc-2.22.orig/locale/localeinfo.h -+++ glibc-2.22/locale/localeinfo.h -@@ -110,14 +110,6 @@ enum coll_sort_rule - sort_mask - }; - --/* Collation encoding type. */ --enum collation_encoding_type --{ -- __cet_other, -- __cet_8bit, -- __cet_utf8 --}; -- - /* We can map the types of the entries into a few categories. */ - enum value_type - { -Index: glibc-2.22/locale/programs/ld-collate.c -=================================================================== ---- glibc-2.22.orig/locale/programs/ld-collate.c -+++ glibc-2.22/locale/programs/ld-collate.c -@@ -32,7 +32,6 @@ - #include "linereader.h" - #include "locfile.h" - #include "elem-hash.h" --#include "../localeinfo.h" - - /* Uncomment the following line in the production version. */ - /* #define NDEBUG 1 */ -@@ -2131,8 +2130,6 @@ collate_output (struct localedef_t *loca - /* The words have to be handled specially. */ - if (idx == _NL_ITEM_INDEX (_NL_COLLATE_SYMB_HASH_SIZEMB)) - add_locale_uint32 (&file, 0); -- else if (idx == _NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE)) -- add_locale_uint32 (&file, __cet_other); - else - add_locale_empty (&file); - } -@@ -2496,12 +2493,6 @@ collate_output (struct localedef_t *loca - add_locale_raw_data (&file, collate->mbseqorder, 256); - add_locale_collseq_table (&file, &collate->wcseqorder); - add_locale_string (&file, charmap->code_set_name); -- if (strcmp (charmap->code_set_name, "UTF-8") == 0) -- add_locale_uint32 (&file, __cet_utf8); -- else if (charmap->mb_cur_max == 1) -- add_locale_uint32 (&file, __cet_8bit); -- else -- add_locale_uint32 (&file, __cet_other); - write_locale_data (output_path, LC_COLLATE, "LC_COLLATE", &file); - - obstack_free (&weightpool, NULL); -Index: glibc-2.22/string/Makefile -=================================================================== ---- glibc-2.22.orig/string/Makefile -+++ glibc-2.22/string/Makefile -@@ -54,7 +54,7 @@ tests := tester inl-tester noinl-tester - tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ - bug-strtok1 $(addprefix test-,$(strop-tests)) \ - bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ -- tst-strtok_r -+ tst-strtok_r bug-strcoll2 - - xtests = tst-strcoll-overflow - -@@ -75,4 +75,17 @@ ifeq ($(run-built-tests),yes) - $(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out - cmp $^ > $@; \ - $(evaluate-test) -+ -+LOCALES := de_DE.UTF-8 en_US.ISO-8859-1 en_US.UTF-8 \ -+ tr_TR.ISO-8859-9 tr_TR.UTF-8 cs_CZ.UTF-8 \ -+ da_DK.ISO-8859-1 -+include ../gen-locales.mk -+ -+$(objpfx)test-strcasecmp.out: $(gen-locales) -+$(objpfx)test-strncasecmp.out: $(gen-locales) -+$(objpfx)tst-strxfrm.out: $(gen-locales) -+$(objpfx)tst-strxfrm2.out: $(gen-locales) -+# bug-strcoll2 needs cs_CZ.UTF-8 and da_DK.ISO-8859-1. -+$(objpfx)bug-strcoll2.out: $(gen-locales) -+ - endif -Index: glibc-2.22/string/bug-strcoll2.c -=================================================================== ---- /dev/null -+++ glibc-2.22/string/bug-strcoll2.c -@@ -0,0 +1,92 @@ -+/* Bug 18589: sort-test.sh fails at random. -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+/* An incorrect strcoll optimization resulted in incorrect -+ results from strcoll for cs_CZ and da_DK. */ -+ -+int -+test_cs_CZ (void) -+{ -+ const char t1[] = "config"; -+ const char t2[] = "choose"; -+ if (setlocale (LC_ALL, "cs_CZ.UTF-8") == NULL) -+ { -+ perror ("setlocale"); -+ return 1; -+ } -+ /* In Czech the digraph ch sorts after c, therefore we expect -+ config to sort before choose. */ -+ int a = strcoll (t1, t2); -+ int b = strcoll (t2, t1); -+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a); -+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b); -+ if (a < 0 && b > 0) -+ { -+ puts ("PASS: config < choose"); -+ return 0; -+ } -+ else -+ { -+ puts ("FAIL: Wrong sorting in cs_CZ.UTF-8."); -+ return 1; -+ } -+} -+ -+int -+test_da_DK (void) -+{ -+ const char t1[] = "AS"; -+ const char t2[] = "AA"; -+ if (setlocale (LC_ALL, "da_DK.ISO-8859-1") == NULL) -+ { -+ perror ("setlocale"); -+ return 1; -+ } -+ /* AA should be treated as the last letter of the Danish alphabet, -+ hence sorting after AS. */ -+ int a = strcoll (t1, t2); -+ int b = strcoll (t2, t1); -+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a); -+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b); -+ if (a < 0 && b > 0) -+ { -+ puts ("PASS: AS < AA"); -+ return 0; -+ } -+ else -+ { -+ puts ("FAIL: Wrong sorting in da_DK.ISO-8859-1"); -+ return 1; -+ } -+} -+ -+static int -+do_test (void) -+{ -+ int err = 0; -+ err |= test_cs_CZ (); -+ err |= test_da_DK (); -+ return err; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.22/string/strcoll_l.c -=================================================================== ---- glibc-2.22.orig/string/strcoll_l.c -+++ glibc-2.22/string/strcoll_l.c -@@ -29,7 +29,6 @@ - # define STRING_TYPE char - # define USTRING_TYPE unsigned char - # define STRCOLL __strcoll_l --# define STRDIFF __strdiff - # define STRCMP strcmp - # define WEIGHT_H "../locale/weight.h" - # define SUFFIX MB -@@ -42,20 +41,6 @@ - #include "../locale/localeinfo.h" - #include WEIGHT_H - --#define MASK_UTF8_7BIT (1 << 7) --#define MASK_UTF8_START (3 << 6) -- --size_t --STRDIFF (const STRING_TYPE *s, const STRING_TYPE *t) --{ -- size_t n; -- -- for (n = 0; *s != '\0' && *s++ == *t++; ++n) -- continue; -- -- return n; --} -- - /* Track status while looking for sequences in a string. */ - typedef struct - { -@@ -269,29 +254,9 @@ STRCOLL (const STRING_TYPE *s1, const ST - const USTRING_TYPE *extra; - const int32_t *indirect; - -- /* In case there is no locale specific sort order (C / POSIX). */ - if (nrules == 0) - return STRCMP (s1, s2); - -- /* Fast forward to the position of the first difference. Needs to be -- encoding aware as the byte-by-byte comparison can stop in the middle -- of a char sequence for multibyte encodings like UTF-8. */ -- uint_fast32_t encoding = -- current->values[_NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE)].word; -- if (encoding != __cet_other) -- { -- size_t diff = STRDIFF (s1, s2); -- if (diff > 0) -- { -- if (encoding == __cet_utf8 && (*(s1 + diff) & MASK_UTF8_7BIT) != 0) -- do -- diff--; -- while (diff > 0 && (*(s1 + diff) & MASK_UTF8_START) != MASK_UTF8_START); -- s1 += diff; -- s2 += diff; -- } -- } -- - /* Catch empty strings. */ - if (__glibc_unlikely (*s1 == '\0') || __glibc_unlikely (*s2 == '\0')) - return (*s1 != '\0') - (*s2 != '\0'); -@@ -358,8 +323,7 @@ STRCOLL (const STRING_TYPE *s1, const ST - byte-level comparison to ensure that we don't waste time - going through multiple passes for totally equal strings - before proceeding to subsequent passes. */ -- if (pass == 0 && encoding == __cet_other && -- STRCMP (s1, s2) == 0) -+ if (pass == 0 && STRCMP (s1, s2) == 0) - return result; - else - break; -Index: glibc-2.22/string/tst-strxfrm2.c -=================================================================== ---- glibc-2.22.orig/string/tst-strxfrm2.c -+++ glibc-2.22/string/tst-strxfrm2.c -@@ -5,6 +5,8 @@ - static int - do_test (void) - { -+ static const char test_locale[] = "de_DE.UTF-8"; -+ - int res = 0; - - char buf[20]; -@@ -38,9 +40,9 @@ do_test (void) - res = 1; - } - -- if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) -+ if (setlocale (LC_ALL, test_locale) == NULL) - { -- puts ("setlocale failed"); -+ printf ("cannot set locale \"%s\"\n", test_locale); - res = 1; - } - else -Index: glibc-2.22/wcsmbs/wcscoll_l.c -=================================================================== ---- glibc-2.22.orig/wcsmbs/wcscoll_l.c -+++ glibc-2.22/wcsmbs/wcscoll_l.c -@@ -23,7 +23,6 @@ - #define STRING_TYPE wchar_t - #define USTRING_TYPE wint_t - #define STRCOLL __wcscoll_l --#define STRDIFF __wcsdiff - #define STRCMP __wcscmp - #define WEIGHT_H "../locale/weightwc.h" - #define SUFFIX WC diff --git a/strftime-range-check.patch b/strftime-range-check.patch deleted file mode 100644 index 27ff3d2..0000000 --- a/strftime-range-check.patch +++ /dev/null @@ -1,126 +0,0 @@ -2015-09-26 Paul Pluzhnikov - - [BZ #18985] - * time/strftime_l.c (a_wkday, f_wkday, a_month, f_month): Range check. - (__strftime_internal): Likewise. - * time/tst-strftime.c (do_bz18985): New test. - (do_test): Call it. - -Index: glibc-2.22/time/strftime_l.c -=================================================================== ---- glibc-2.22.orig/time/strftime_l.c -+++ glibc-2.22/time/strftime_l.c -@@ -510,13 +510,17 @@ __strftime_internal (s, maxsize, format, - only a few elements. Dereference the pointers only if the format - requires this. Then it is ok to fail if the pointers are invalid. */ - # define a_wkday \ -- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABDAY_1) + tp->tm_wday)) -+ ((const CHAR_T *) (tp->tm_wday < 0 || tp->tm_wday > 6 \ -+ ? "?" : _NL_CURRENT (LC_TIME, NLW(ABDAY_1) + tp->tm_wday))) - # define f_wkday \ -- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(DAY_1) + tp->tm_wday)) -+ ((const CHAR_T *) (tp->tm_wday < 0 || tp->tm_wday > 6 \ -+ ? "?" : _NL_CURRENT (LC_TIME, NLW(DAY_1) + tp->tm_wday))) - # define a_month \ -- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABMON_1) + tp->tm_mon)) -+ ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \ -+ ? "?" : _NL_CURRENT (LC_TIME, NLW(ABMON_1) + tp->tm_mon))) - # define f_month \ -- ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon)) -+ ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \ -+ ? "?" : _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon))) - # define ampm \ - ((const CHAR_T *) _NL_CURRENT (LC_TIME, tp->tm_hour > 11 \ - ? NLW(PM_STR) : NLW(AM_STR))) -@@ -526,8 +530,10 @@ __strftime_internal (s, maxsize, format, - # define ap_len STRLEN (ampm) - #else - # if !HAVE_STRFTIME --# define f_wkday (weekday_name[tp->tm_wday]) --# define f_month (month_name[tp->tm_mon]) -+# define f_wkday (tp->tm_wday < 0 || tp->tm_wday > 6 \ -+ ? "?" : weekday_name[tp->tm_wday]) -+# define f_month (tp->tm_mon < 0 || tp->tm_mon > 11 \ -+ ? "?" : month_name[tp->tm_mon]) - # define a_wkday f_wkday - # define a_month f_month - # define ampm (L_("AMPM") + 2 * (tp->tm_hour > 11)) -@@ -1321,7 +1327,7 @@ __strftime_internal (s, maxsize, format, - *tzset_called = true; - } - # endif -- zone = tzname[tp->tm_isdst]; -+ zone = tp->tm_isdst <= 1 ? tzname[tp->tm_isdst] : "?"; - } - #endif - if (! zone) -Index: glibc-2.22/time/tst-strftime.c -=================================================================== ---- glibc-2.22.orig/time/tst-strftime.c -+++ glibc-2.22/time/tst-strftime.c -@@ -4,6 +4,56 @@ - #include - - -+static int -+do_bz18985 (void) -+{ -+ char buf[1000]; -+ struct tm ttm; -+ int rc, ret = 0; -+ -+ memset (&ttm, 1, sizeof (ttm)); -+ ttm.tm_zone = NULL; /* Dereferenced directly if non-NULL. */ -+ rc = strftime (buf, sizeof (buf), "%a %A %b %B %c %z %Z", &ttm); -+ -+ if (rc == 66) -+ { -+ const char expected[] -+ = "? ? ? ? ? ? 16843009 16843009:16843009:16843009 16844909 +467836 ?"; -+ if (0 != strcmp (buf, expected)) -+ { -+ printf ("expected:\n %s\ngot:\n %s\n", expected, buf); -+ ret += 1; -+ } -+ } -+ else -+ { -+ printf ("expected 66, got %d\n", rc); -+ ret += 1; -+ } -+ -+ /* Check negative values as well. */ -+ memset (&ttm, 0xFF, sizeof (ttm)); -+ ttm.tm_zone = NULL; /* Dereferenced directly if non-NULL. */ -+ rc = strftime (buf, sizeof (buf), "%a %A %b %B %c %z %Z", &ttm); -+ -+ if (rc == 30) -+ { -+ const char expected[] = "? ? ? ? ? ? -1 -1:-1:-1 1899 "; -+ if (0 != strcmp (buf, expected)) -+ { -+ printf ("expected:\n %s\ngot:\n %s\n", expected, buf); -+ ret += 1; -+ } -+ } -+ else -+ { -+ printf ("expected 30, got %d\n", rc); -+ ret += 1; -+ } -+ -+ return ret; -+} -+ - static struct - { - const char *fmt; -@@ -104,7 +154,7 @@ do_test (void) - } - } - -- return result; -+ return result + do_bz18985 (); - } - - #define TEST_FUNCTION do_test () diff --git a/tls-dtor-list-mangling.patch b/tls-dtor-list-mangling.patch deleted file mode 100644 index 302eaa2..0000000 --- a/tls-dtor-list-mangling.patch +++ /dev/null @@ -1,37 +0,0 @@ -2015-10-06 Florian Weimer - - [BZ #19018] - * stdlib/cxa_thread_atexit_impl.c (__cxa_thread_atexit_impl): - Mangle function pointer before storing it. - (__call_tls_dtors): Demangle function pointer before calling it. - -Index: glibc-2.22/stdlib/cxa_thread_atexit_impl.c -=================================================================== ---- glibc-2.22.orig/stdlib/cxa_thread_atexit_impl.c -+++ glibc-2.22/stdlib/cxa_thread_atexit_impl.c -@@ -98,6 +98,10 @@ static __thread struct link_map *lm_cach - int - __cxa_thread_atexit_impl (dtor_func func, void *obj, void *dso_symbol) - { -+#ifdef PTR_MANGLE -+ PTR_MANGLE (func); -+#endif -+ - /* Prepend. */ - struct dtor_list *new = calloc (1, sizeof (struct dtor_list)); - new->func = func; -@@ -142,9 +146,13 @@ __call_tls_dtors (void) - while (tls_dtor_list) - { - struct dtor_list *cur = tls_dtor_list; -+ dtor_func func = cur->func; -+#ifdef PTR_DEMANGLE -+ PTR_DEMANGLE (func); -+#endif - - tls_dtor_list = tls_dtor_list->next; -- cur->func (cur->obj); -+ func (cur->obj); - - /* Ensure that the MAP dereference happens before - l_tls_dtor_count decrement. That way, we protect this access from a diff --git a/tzset-tzname.patch b/tzset-tzname.patch deleted file mode 100644 index 72b045c..0000000 --- a/tzset-tzname.patch +++ /dev/null @@ -1,133 +0,0 @@ -Force rereading TZDEFRULES after it was used to set DST rules only (bug #19253) - -If the TZDEFRULES file was used to set the DST rules when $TZ didn't -provide any we need to make sure that the next time it is used we -recompute everything as __tzfile_default changes some setting from what is -provided by TZDEFRULES. - - [BZ #19253] - * time/tzfile.c (__tzfile_default): Invalidate tzfile attribute - cache when TZDEFRULES was used. - * time/tst-tzname.c: New file. - * time/Makefile (test): Add tst-tzname. - (tst-tzname-ENV, CFLAGS-tst-tzname.c): Define. - * timezone/Makefile (test-zones): Add $(posixrules-file). - ($(testdata)/$(posixrules-file)): New rule. - -Index: glibc-2.22/time/Makefile -=================================================================== ---- glibc-2.22.orig/time/Makefile -+++ glibc-2.22/time/Makefile -@@ -37,7 +37,8 @@ aux := era alt_digit lc-time-cleanup - tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ - tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \ - tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \ -- tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime -+ tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \ -+ tst-tzname - - include ../Rules - -@@ -55,4 +56,7 @@ CFLAGS-test_time.c = -Wno-format - tst-getdate-ENV= DATEMSK=datemsk TZDIR=${common-objpfx}timezone/testdata - test_time-ARGS= EST5EDT CST - -+tst-tzname-ENV = TZDIR=${common-objpfx}timezone/testdata -+CFLAGS-tst-tzname.c = -DTZDEFRULES='"$(posixrules-file)"' -+ - bug-getdate1-ARGS = ${objpfx}bug-getdate1-fmt -Index: glibc-2.22/time/tst-tzname.c -=================================================================== ---- /dev/null -+++ glibc-2.22/time/tst-tzname.c -@@ -0,0 +1,50 @@ -+/* Test that tzset sets tzname correctly (BZ #19253). -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ int result = 0; -+ -+ setenv ("TZ", TZDEFRULES, 1); -+ tzset (); -+ const char *stdtz = strdup (tzname[0]); -+ setenv ("TZ", "STD-1DST", 1); -+ tzset (); -+ if (strcmp (tzname[0], "STD") != 0) -+ { -+ printf ("FAIL: TZ=STD-1DST, tzname[0] = %s\n", tzname[0]); -+ result = 1; -+ } -+ setenv ("TZ", TZDEFRULES, 1); -+ tzset (); -+ if (strcmp (tzname[0], stdtz) != 0) -+ { -+ printf ("FAIL: TZ=%s, tzname[0] = %s\n", TZDEFRULES, tzname[0]); -+ result = 1; -+ } -+ return result; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -Index: glibc-2.22/time/tzfile.c -=================================================================== ---- glibc-2.22.orig/time/tzfile.c -+++ glibc-2.22/time/tzfile.c -@@ -628,6 +628,12 @@ __tzfile_default (const char *std, const - __timezone = -types[0].offset; - - compute_tzname_max (stdlen + dstlen); -+ -+ /* Invalidate the tzfile attribute cache to force rereading -+ TZDEFRULES the next time it is used. */ -+ tzfile_dev = 0; -+ tzfile_ino = 0; -+ tzfile_mtime = 0; - } - - void -Index: glibc-2.22/timezone/Makefile -=================================================================== ---- glibc-2.22.orig/timezone/Makefile -+++ glibc-2.22/timezone/Makefile -@@ -49,7 +49,8 @@ ifeq ($(run-built-tests),yes) - # List zones generated by separate commands running zic on the host. - # Each such zic run counts as a separate test. - test-zones := America/New_York Etc/UTC UTC Europe/Berlin \ -- Australia/Melbourne America/Sao_Paulo Asia/Tokyo -+ Australia/Melbourne America/Sao_Paulo Asia/Tokyo \ -+ $(posixrules-file) - tests-special += $(addprefix $(testdata)/, $(test-zones)) - endif - -@@ -101,6 +102,8 @@ zic-deps = $(objpfx)zic $(leapseconds) y - - $(testdata)/America/New_York: northamerica $(zic-deps) - $(build-testdata) -+$(testdata)/$(posixrules-file): $(testdata)/America/New_York -+ $(make-link); $(evaluate-test) - $(testdata)/Etc/UTC: etcetera $(zic-deps) - $(build-testdata) - # Use a pattern rule to indicate the command produces both targets at once. diff --git a/vector-finite-math-aliases.patch b/vector-finite-math-aliases.patch deleted file mode 100644 index 602a884..0000000 --- a/vector-finite-math-aliases.patch +++ /dev/null @@ -1,149 +0,0 @@ -2015-12-03 Andrew Senkevich - - * math/Makefile ($(inst_libdir)/libm.so): Corrected path to - libmvec_nonshared.a - -2015-11-27 Andrew Senkevich - - [BZ #19058] - * math/Makefile ($(inst_libdir)/libm.so): Added libmvec_nonshared.a to - AS_NEEDED. - * sysdeps/x86/fpu/bits/math-vector.h: Removed code with asm aliases - workaround. - * sysdeps/x86_64/fpu/Makefile (libmvec-support, - libmvec-static-only-routines): Added new file. - * sysdeps/x86_64/fpu/svml_finite_alias.S: New file. - * NEWS: Mention this fix. - -Index: glibc-2.22/math/Makefile -=================================================================== ---- glibc-2.22.orig/math/Makefile -+++ glibc-2.22/math/Makefile -@@ -98,7 +98,7 @@ $(inst_libdir)/libm.so: $(common-objpfx) - (echo '/* GNU ld script'; echo '*/';\ - cat $<; \ - echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \ -- 'AS_NEEDED ( $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \ -+ 'AS_NEEDED ( $(libdir)/libmvec_nonshared.a $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \ - ) > $@ - endif - -Index: glibc-2.22/sysdeps/x86/fpu/bits/math-vector.h -=================================================================== ---- glibc-2.22.orig/sysdeps/x86/fpu/bits/math-vector.h -+++ glibc-2.22/sysdeps/x86/fpu/bits/math-vector.h -@@ -53,34 +53,5 @@ - # undef __DECL_SIMD_powf - # define __DECL_SIMD_powf __DECL_SIMD_x86_64 - --/* Workaround to exclude unnecessary symbol aliases in libmvec -- while GCC creates the vector names based on scalar asm name. -- Corresponding discussion started at -- . */ --__asm__ ("_ZGVbN2v___log_finite = _ZGVbN2v_log"); --__asm__ ("_ZGVcN4v___log_finite = _ZGVcN4v_log"); --__asm__ ("_ZGVdN4v___log_finite = _ZGVdN4v_log"); --__asm__ ("_ZGVeN8v___log_finite = _ZGVeN8v_log"); --__asm__ ("_ZGVbN4v___logf_finite = _ZGVbN4v_logf"); --__asm__ ("_ZGVcN8v___logf_finite = _ZGVcN8v_logf"); --__asm__ ("_ZGVdN8v___logf_finite = _ZGVdN8v_logf"); --__asm__ ("_ZGVeN16v___logf_finite = _ZGVeN16v_logf"); --__asm__ ("_ZGVbN2v___exp_finite = _ZGVbN2v_exp"); --__asm__ ("_ZGVcN4v___exp_finite = _ZGVcN4v_exp"); --__asm__ ("_ZGVdN4v___exp_finite = _ZGVdN4v_exp"); --__asm__ ("_ZGVeN8v___exp_finite = _ZGVeN8v_exp"); --__asm__ ("_ZGVbN4v___expf_finite = _ZGVbN4v_expf"); --__asm__ ("_ZGVcN8v___expf_finite = _ZGVcN8v_expf"); --__asm__ ("_ZGVdN8v___expf_finite = _ZGVdN8v_expf"); --__asm__ ("_ZGVeN16v___expf_finite = _ZGVeN16v_expf"); --__asm__ ("_ZGVbN2vv___pow_finite = _ZGVbN2vv_pow"); --__asm__ ("_ZGVcN4vv___pow_finite = _ZGVcN4vv_pow"); --__asm__ ("_ZGVdN4vv___pow_finite = _ZGVdN4vv_pow"); --__asm__ ("_ZGVeN8vv___pow_finite = _ZGVeN8vv_pow"); --__asm__ ("_ZGVbN4vv___powf_finite = _ZGVbN4vv_powf"); --__asm__ ("_ZGVcN8vv___powf_finite = _ZGVcN8vv_powf"); --__asm__ ("_ZGVdN8vv___powf_finite = _ZGVdN8vv_powf"); --__asm__ ("_ZGVeN16vv___powf_finite = _ZGVeN16vv_powf"); -- - # endif - #endif -Index: glibc-2.22/sysdeps/x86_64/fpu/Makefile -=================================================================== ---- glibc-2.22.orig/sysdeps/x86_64/fpu/Makefile -+++ glibc-2.22/sysdeps/x86_64/fpu/Makefile -@@ -20,7 +20,10 @@ libmvec-support += svml_d_cos2_core svml - svml_d_pow_data svml_s_powf4_core svml_s_powf8_core_avx \ - svml_s_powf8_core svml_s_powf16_core svml_s_powf_data \ - svml_s_sincosf4_core svml_s_sincosf8_core_avx \ -- svml_s_sincosf8_core svml_s_sincosf16_core init-arch -+ svml_s_sincosf8_core svml_s_sincosf16_core init-arch \ -+ svml_finite_alias -+ -+libmvec-static-only-routines = svml_finite_alias - endif - - # Variables for libmvec tests. -Index: glibc-2.22/sysdeps/x86_64/fpu/svml_finite_alias.S -=================================================================== ---- /dev/null -+++ glibc-2.22/sysdeps/x86_64/fpu/svml_finite_alias.S -@@ -0,0 +1,59 @@ -+/* These aliases added as workaround to exclude unnecessary symbol -+ aliases in libmvec.so while compiler creates the vector names -+ based on scalar asm name. Corresponding discussion is at -+ . -+ Copyright (C) 2015 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#define ALIAS_IMPL(alias, target) \ -+ENTRY (alias); \ -+ call target; \ -+ ret; \ -+END (alias) -+ -+ .text -+ALIAS_IMPL (_ZGVbN2v___log_finite, _ZGVbN2v_log) -+ALIAS_IMPL (_ZGVcN4v___log_finite, _ZGVcN4v_log) -+ALIAS_IMPL (_ZGVdN4v___log_finite, _ZGVdN4v_log) -+ALIAS_IMPL (_ZGVeN8v___log_finite, _ZGVeN8v_log) -+ -+ALIAS_IMPL (_ZGVbN4v___logf_finite, _ZGVbN4v_logf) -+ALIAS_IMPL (_ZGVcN8v___logf_finite, _ZGVcN8v_logf) -+ALIAS_IMPL (_ZGVdN8v___logf_finite, _ZGVdN8v_logf) -+ALIAS_IMPL (_ZGVeN16v___logf_finite, _ZGVeN16v_logf) -+ -+ALIAS_IMPL (_ZGVbN2v___exp_finite, _ZGVbN2v_exp) -+ALIAS_IMPL (_ZGVcN4v___exp_finite, _ZGVcN4v_exp) -+ALIAS_IMPL (_ZGVdN4v___exp_finite, _ZGVdN4v_exp) -+ALIAS_IMPL (_ZGVeN8v___exp_finite, _ZGVeN8v_exp) -+ -+ALIAS_IMPL (_ZGVbN4v___expf_finite, _ZGVbN4v_expf) -+ALIAS_IMPL (_ZGVcN8v___expf_finite, _ZGVcN8v_expf) -+ALIAS_IMPL (_ZGVdN8v___expf_finite, _ZGVdN8v_expf) -+ALIAS_IMPL (_ZGVeN16v___expf_finite, _ZGVeN16v_expf) -+ -+ALIAS_IMPL (_ZGVbN2vv___pow_finite, _ZGVbN2vv_pow) -+ALIAS_IMPL (_ZGVcN4vv___pow_finite, _ZGVcN4vv_pow) -+ALIAS_IMPL (_ZGVdN4vv___pow_finite, _ZGVdN4vv_pow) -+ALIAS_IMPL (_ZGVeN8vv___pow_finite, _ZGVeN8vv_pow) -+ -+ALIAS_IMPL (_ZGVbN4vv___powf_finite, _ZGVbN4vv_powf) -+ALIAS_IMPL (_ZGVcN8vv___powf_finite, _ZGVcN8vv_powf) -+ALIAS_IMPL (_ZGVdN8vv___powf_finite, _ZGVdN8vv_powf) -+ALIAS_IMPL (_ZGVeN16vv___powf_finite, _ZGVeN16vv_powf) From 5a5f7fdb612e90bb6e86fb7176f2a7883c297369988b5c05679e1dea7fc76b42 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 12 May 2016 07:32:17 +0000 Subject: [PATCH 192/204] Accepting request 391715 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/391715 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=201 --- glibc-gcc6.patch | 88 +++++++++++++++++++++++++++++++++++++++++ glibc-testsuite.changes | 6 +++ glibc-testsuite.spec | 3 ++ glibc-utils.changes | 6 +++ glibc-utils.spec | 3 ++ glibc.changes | 6 +++ glibc.spec | 3 ++ 7 files changed, 115 insertions(+) create mode 100644 glibc-gcc6.patch diff --git a/glibc-gcc6.patch b/glibc-gcc6.patch new file mode 100644 index 0000000..e0d3f54 --- /dev/null +++ b/glibc-gcc6.patch @@ -0,0 +1,88 @@ +From: Yvan Roux +Date: Fri, 15 Apr 2016 13:29:26 +0200 +Subject: Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses +Patch-mainline: yes +Git-commit: df1cf48777fe4cd81ad7fb09ecbe5b31432b7c1c + +Signed-off-by: Jiri Slaby +--- + ChangeLog | 5 +++++ + nis/nis_call.c | 20 +++++++++++--------- + stdlib/setenv.c | 24 +++++++++++++----------- + 3 files changed, 29 insertions(+), 20 deletions(-) + +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2016-04-15 Yvan Roux ++ ++ * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'. ++ * nis/nis_call.c (nis_server_cache_add): Likewise. ++ + 2016-02-18 Adhemerval Zanella + + * version.h (RELEASE): Set to "stable". +--- a/nis/nis_call.c ++++ b/nis/nis_call.c +@@ -680,16 +680,18 @@ nis_server_cache_add (const_nis_name nam + /* Choose which entry should be evicted from the cache. */ + loc = &nis_server_cache[0]; + if (*loc != NULL) +- for (i = 1; i < 16; ++i) +- if (nis_server_cache[i] == NULL) +- { ++ { ++ for (i = 1; i < 16; ++i) ++ if (nis_server_cache[i] == NULL) ++ { ++ loc = &nis_server_cache[i]; ++ break; ++ } ++ else if ((*loc)->uses > nis_server_cache[i]->uses ++ || ((*loc)->uses == nis_server_cache[i]->uses ++ && (*loc)->expires > nis_server_cache[i]->expires)) + loc = &nis_server_cache[i]; +- break; +- } +- else if ((*loc)->uses > nis_server_cache[i]->uses +- || ((*loc)->uses == nis_server_cache[i]->uses +- && (*loc)->expires > nis_server_cache[i]->expires)) +- loc = &nis_server_cache[i]; ++ } + old = *loc; + *loc = new; + +--- a/stdlib/setenv.c ++++ b/stdlib/setenv.c +@@ -278,18 +278,20 @@ unsetenv (const char *name) + ep = __environ; + if (ep != NULL) + while (*ep != NULL) +- if (!strncmp (*ep, name, len) && (*ep)[len] == '=') +- { +- /* Found it. Remove this pointer by moving later ones back. */ +- char **dp = ep; ++ { ++ if (!strncmp (*ep, name, len) && (*ep)[len] == '=') ++ { ++ /* Found it. Remove this pointer by moving later ones back. */ ++ char **dp = ep; + +- do +- dp[0] = dp[1]; +- while (*dp++); +- /* Continue the loop in case NAME appears again. */ +- } +- else +- ++ep; ++ do ++ dp[0] = dp[1]; ++ while (*dp++); ++ /* Continue the loop in case NAME appears again. */ ++ } ++ else ++ ++ep; ++ } + + UNLOCK; + diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 2d69bea..2e3e737 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com + +- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with + -Wparentheses + ------------------------------------------------------------------- Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 05d9b9b..4615d9b 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -244,6 +244,8 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE Patch1001: no-long-double.patch +# PATCH-FIX-UPSTREAM Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses +Patch1002: glibc-gcc6.patch ### # Patches awaiting upstream approval @@ -468,6 +470,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 2d69bea..2e3e737 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com + +- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with + -Wparentheses + ------------------------------------------------------------------- Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 58435a2..32cbea0 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -243,6 +243,8 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE Patch1001: no-long-double.patch +# PATCH-FIX-UPSTREAM Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses +Patch1002: glibc-gcc6.patch ### # Patches awaiting upstream approval @@ -468,6 +470,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc.changes b/glibc.changes index 2d69bea..2e3e737 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com + +- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with + -Wparentheses + ------------------------------------------------------------------- Mon Apr 11 08:00:07 UTC 2016 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 5e019f9..3b320c7 100644 --- a/glibc.spec +++ b/glibc.spec @@ -244,6 +244,8 @@ Patch306: glibc-fix-double-loopback.diff Patch1000: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE Patch1001: no-long-double.patch +# PATCH-FIX-UPSTREAM Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses +Patch1002: glibc-gcc6.patch ### # Patches awaiting upstream approval @@ -468,6 +470,7 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2001 -p1 From 043c4769d64432ef3e17a1e18fdb9db12b1857f82015cac0f1ef7e6a39b9af64 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 19 May 2016 10:02:35 +0000 Subject: [PATCH 193/204] Accepting request 394999 from Base:System - Import patches from 2.23 branch (forwarded request 394998 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/394999 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=202 --- 0001-Updated-translations-for-2.23.patch | 52713 ++++++++++++++++ 0002-Regenerate-libc.pot-for-2.23.patch | 2313 + 0003-Regenerated-configure-scripts.patch | 17 + ...t-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch | 101 + ...64_-to-sysdeps-arm-nacl-libc.abilist.patch | 19 + ...ouble-math-functions-if-NO_LONG_DOUB.patch | 11 +- ...NEWS-2.23-Fix-typo-in-bug-19048-text.patch | 17 + 0008-Update-NEWS.patch | 22 + 0009-sln-use-stat64.patch | 23 + ...dd-sys-auxv.h-wrapper-to-include-sys.patch | 10 + ...he-FDE-before-the-return-trampoline-.patch | 43 + ...AS_ARCH_FEATURE-with-Fast_Rep_String.patch | 135 + 0013-Mention-BZ-19762-in-NEWS.patch | 12 + ...AVE_STRING_ARCH_mempcpy-to-1-for-x86.patch | 31 + ...r_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch | 31 + ...-resource-leak-in-resolver-bug-19257.patch | 14 +- ...bber-old-libm.so-on-install-BZ-19822.patch | 32 + ...t-resplen2-out-parameter-in-send_dg-.patch | 187 + ...store-fprs-vrs-while-resolving-symbo.patch | 857 + ...cts-La_s390_regs-La_s390_retval-with.patch | 371 + ...ack-overflow-in-_nss_dns_getnetbynam.patch | 60 + 0022-configure-fix-test-usage.patch | 77 + ...arning-about-ambiguous-else-with-Wpa.patch | 37 +- ...-ERANGE-error-if-parse_line-fails-BZ.patch | 21 + 0025-getnameinfo-Do-not-preserve-errno.patch | 48 + ...efactor-and-fix-memory-leak-BZ-19642.patch | 635 + ...ce-line-length-and-add-missing-comme.patch | 119 + ...d-calling-strnlen-on-uninitialized-b.patch | 47 + ...rn-EAI_OVERFLOW-in-more-cases-BZ-197.patch | 176 + 0030-hesiod-Remove-RCS-keywords.patch | 48 + ...e-thread-local-resolver-state-BZ-195.patch | 440 + ...p-overflow-in-get_txt_records-BZ-200.patch | 19 + 0033-malloc-Remove-NO_THREADS.patch | 73 + ...loc-threaded-tests-link-on-non-Linux.patch | 26 + ...handler-as-late-as-possible-BZ-19431.patch | 568 + ...emove-malloc-hooks-from-fork-handler.patch | 216 + ...ng-internal_function-attributes-on-f.patch | 34 + ...rtion-failure-in-_nss_dns_getcanonna.patch | 24 + ...-RDATA-length-against-packet-length-.patch | 77 + ...emove-remaining-syslog-logging-BZ-19.patch | 150 + ...dress-length-before-creating-addrinf.patch | 104 + ...r-non-PTR-records-in-the-netent-code.patch | 55 + ...t-resplen2-out-parameter-in-send_vc-.patch | 113 + ...udit10-Compile-AVX-AVX-512-code-sepa.patch | 274 + ...build-when-mavx512f-is-not-supported.patch | 39 + ...compilation-on-compilers-without-bit.patch | 35 + ...ecified-locale-for-number-formatting.patch | 465 + ...e-interface-for-the-GLOB_ALTDIRFUNC-.patch | 212 + ...ob-Do-not-copy-d_name-field-of-struc.patch | 396 + ...remove-stale-symbolic-links-with-X-B.patch | 132 + ...sym-lookup-errors-using-dlerror-BZ-1.patch | 158 + 0052-Fix-tst-dlsym-error-build.patch | 16 + ...newline-from-date_fmt-in-Serbian-loc.patch | 46 + ...sym-dlvsym-lookup-errors-using-dlerr.patch | 150 + ...taddrinfo-stack-overflow-in-hostent-.patch | 175 + ...e-specified-locale-for-number-format.patch | 41 + _service | 15 + glibc-2.3.locales.diff.bz2 | 4 +- glibc-c-utf8-locale.patch | 27 +- glibc-testsuite.changes | 74 + glibc-testsuite.spec | 185 +- glibc-utils.changes | 74 + glibc-utils.spec | 185 +- glibc.changes | 74 + glibc.spec | 185 +- 65 files changed, 62926 insertions(+), 162 deletions(-) create mode 100644 0001-Updated-translations-for-2.23.patch create mode 100644 0002-Regenerate-libc.pot-for-2.23.patch create mode 100644 0003-Regenerated-configure-scripts.patch create mode 100644 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch create mode 100644 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch rename no-long-double.patch => 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch (66%) create mode 100644 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch create mode 100644 0008-Update-NEWS.patch create mode 100644 0009-sln-use-stat64.patch create mode 100644 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch create mode 100644 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch create mode 100644 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch create mode 100644 0013-Mention-BZ-19762-in-NEWS.patch create mode 100644 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch create mode 100644 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch rename resolv-mem-leak.patch => 0016-Fix-resource-leak-in-resolver-bug-19257.patch (62%) create mode 100644 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch create mode 100644 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch create mode 100644 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch create mode 100644 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch create mode 100644 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch create mode 100644 0022-configure-fix-test-usage.patch rename glibc-gcc6.patch => 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch (64%) create mode 100644 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch create mode 100644 0025-getnameinfo-Do-not-preserve-errno.patch create mode 100644 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch create mode 100644 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch create mode 100644 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch create mode 100644 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch create mode 100644 0030-hesiod-Remove-RCS-keywords.patch create mode 100644 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch create mode 100644 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch create mode 100644 0033-malloc-Remove-NO_THREADS.patch create mode 100644 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch create mode 100644 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch create mode 100644 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch create mode 100644 0037-malloc-Add-missing-internal_function-attributes-on-f.patch create mode 100644 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch create mode 100644 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch create mode 100644 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch create mode 100644 0041-nss_dns-Check-address-length-before-creating-addrinf.patch create mode 100644 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch create mode 100644 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch create mode 100644 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch create mode 100644 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch create mode 100644 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch create mode 100644 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch create mode 100644 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch create mode 100644 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch create mode 100644 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch create mode 100644 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch create mode 100644 0052-Fix-tst-dlsym-error-build.patch create mode 100644 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch create mode 100644 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch create mode 100644 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch create mode 100644 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch create mode 100644 _service diff --git a/0001-Updated-translations-for-2.23.patch b/0001-Updated-translations-for-2.23.patch new file mode 100644 index 0000000..3534c1f --- /dev/null +++ b/0001-Updated-translations-for-2.23.patch @@ -0,0 +1,52713 @@ +2016-02-18 Adhemerval Zanella + + * po/be.po: Updated translation. + * po/bg.po: Likewise. + * po/ca.po: Likewise. + * po/cs.po: Likewise. + * po/da.po: Likewise. + * po/el.po: Likewise. + * po/eo.po: Likewise. + * po/es.po: Likewise. + * po/fi.po: Likewise. + * po/fr.po: Likewise. + * po/gl.po: Likewise. + * po/hr.po: Likewise. + * po/hu.po: Likewise. + * po/ia.po: Likewise. + * po/id.po: Likewise. + * po/it.po: Likewise. + * po/ja.po: Likewise. + * po/lt.po: Likewise. + * po/nb.po: Likewise. + * po/nl.po: Likewise. + * po/pt_BR.po: Likewise. + * po/rw.po: Likewise. + * po/sk.po: Likewise. + * po/sl.po: Likewise. + * po/sv.po: Likewise. + * po/tr.po: Likewise. + * po/zh_CN.po: Likewise. + * po/zh_TW.po: Likewise. + +Index: glibc-2.23/po/be.po +=================================================================== +--- glibc-2.23.orig/po/be.po ++++ glibc-2.23/po/be.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.19.90\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2014-12-24 15:35+0300\n" + "Last-Translator: Viktar Siarheichyk \n" + "Language-Team: Belarusian \n" +@@ -139,10 +139,10 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -152,7 +152,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -166,7 +166,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -422,12 +422,12 @@ msgstr "" + msgid "Renaming of %s to %s failed" + msgstr "" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + #, fuzzy + msgid "cannot create scope list" + msgstr "немагчыма Ñтварыць кÑш Ð´Ð»Ñ ÑˆÐ»Ñху пошуку" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "" + +@@ -501,131 +501,131 @@ msgstr "" + msgid "cannot stat shared object" + msgstr "" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "немагчыма разьмеркаваць памÑць Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÑƒ праграмы" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + #| msgid "invalid saved time" + msgid "invalid caller" + msgstr "нерÑчаіÑны захаваны чаÑ" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + #| msgid "cannot create internal descriptor" + msgid "cannot close file descriptor" + msgstr "немагчыма Ñтварыць унутраны дÑÑкрыптар" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "нерÑчаіÑÐ½Ð°Ñ ABI вÑÑ€ÑÑ‹Ñ ELF файла" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "" + +@@ -637,11 +637,11 @@ msgstr "" + msgid "cannot map zero-fill pages" + msgstr "" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -649,51 +649,42 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + #| msgid "Cannot allocate memory" + msgid "cannot allocate memory in static TLS block" + msgstr "немагчыма разьмеркаваць памÑць" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "" + +@@ -701,7 +692,7 @@ msgstr "" + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + #, fuzzy + msgid "cannot create TLS data structures" + msgstr "немагчыма Ñтварыць ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ñ‹Ñ Ð´ÑÑкрыптары" +@@ -846,7 +837,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "Ðемагчыма адчыніць Ñ‚Ñчку %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Файл уводу %s неадшуканы.\n" +@@ -975,7 +966,7 @@ msgstr "" + msgid "No such file or directory" + msgstr "файл ці Ñ‚Ñчка Ð½Ñ Ð¹Ñнуе" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "" + +@@ -1024,70 +1015,76 @@ msgstr "немагчыма прачытР+ msgid "cannot read program interpreter" + msgstr "немагчыма прачытаць загаловак" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read link map" + msgstr "немагчыма прачытаць загаловак" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "немагчыма прачытаць загаловак" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "немагчыма разьмеркаваць памÑць Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÑƒ праграмы" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "немагчыма адчыніць \"%s\"" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "немагчыма адчыніць \"%s\"" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot find C preprocessor: %s \n" + msgid "cannot attach to process %lu" + msgstr "немагчыма адшукаць C прÑпрацÑÑар: %s \n" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1122,27 +1119,27 @@ msgstr "" + msgid "more than one dynamic segment\n" + msgstr "" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s - гÑта не ELF файл - ён мае памылковы \"чароўны байт\" на пачатку файлу.\n" +@@ -1263,10 +1260,10 @@ msgstr "" + msgid "failed to load shared object `%s'" + msgstr "" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "немагчыма Ñтварыць ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ñ‹Ñ Ð´ÑÑкрыптары" ++msgid "cannot create internal descriptor" ++msgstr "немагчыма Ñтварыць унутраны дÑÑкрыптар" + + #: elf/sprof.c:554 + #, c-format +@@ -1334,11 +1331,6 @@ msgstr "" + msgid "error while closing the profiling data file" + msgstr "" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "немагчыма Ñтварыць унутраны дÑÑкрыптар" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1583,27 +1575,27 @@ msgstr "" + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "немагчыма адчыніць" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "дрÑнны ўладальнік" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "" + +@@ -1723,8 +1715,8 @@ msgid "no symbolic name given for end of + msgstr "" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1750,8 +1742,8 @@ msgid "%s: error in state machine" + msgstr "" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1772,7 +1764,7 @@ msgstr "" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "" +@@ -1794,8 +1786,8 @@ msgstr "" + msgid "resulting bytes for range not representable." + msgstr "" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1860,7 +1852,7 @@ msgid "%s: numeric country code `%d' not + msgstr "" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1882,8 +1874,8 @@ msgstr "%s: поле `%s' абвешча + msgid "%s: unknown character in field `%s'" + msgstr "" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1892,12 +1884,12 @@ msgstr "" + msgid "%s: incomplete `END' line" + msgstr "" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1907,479 +1899,479 @@ msgstr "" + msgid "%s: syntax error" + msgstr "" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' павінен быць знакам" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + #| msgid "conversion to `%s' is not supported" + msgid "%s: nested conditionals not supported" + msgstr "пераўтварÑньне Ñž \"%s\" не падтрымліваецца" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: More than one -l option specified\n" + msgid "%s: more than one 'else'" + msgstr "%s: больш чым адзін выбар -l зададзены\n" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + #| msgid "unknown set `%s'" + msgid "%s: unknown section name `%.*s'" + msgstr "невÑдомае мноÑтва `%s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -3767,17 +3759,22 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 + #, c-format +-msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3871,153 +3868,214 @@ msgstr "" + msgid "cannot enable socket to accept connections: %s" + msgstr "" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "disabled inotify-based monitoring for file `%s': %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Ðемагчыма адчыніць Ñ‚Ñчку %s" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "немагчыма запіÑаць вынік: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "ignored inotify event for `%s` (file exists)" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "" +@@ -4105,7 +4163,7 @@ msgstr "ВыкарыÑтоўваць Ð°Ñ + msgid "Name Service Cache Daemon." + msgstr "" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "" +@@ -4142,7 +4200,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "Ðемагчыма Ñтварыць log-файл \"%s\"" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "Ð·Ð°Ð¿Ñ–Ñ Ð½ÑÑкончаны" +@@ -4159,7 +4217,7 @@ msgstr "немагчыма прачытР+ msgid "invalidation failed" + msgstr "Памылка зьмÑненьнÑ" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "" +@@ -4241,35 +4299,35 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "немагчыма запіÑаць ÑтатыÑтыку: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4277,27 +4335,27 @@ msgid "" + "%15d server debug level\n" + msgstr "" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4308,7 +4366,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + #| msgid "" + #| "\n" +@@ -4377,91 +4435,91 @@ msgstr "" + msgid "Invalid numeric uid \"%s\"!" + msgstr "" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + #| msgid "Modification failed" + msgid "cap_init failed" + msgstr "Памылка зьмÑненьнÑ" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + #| msgid "failed to create new locale archive" + msgid "Failed to create AVC lock" + msgstr "немагчыма Ñтварыць новы архіў мÑÑцоваÑьці" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + #, fuzzy + #| msgid "Error writing standard output" + msgid "Error getting sid from context" + msgstr "Памылка запіÑу Ñтандартнага вываду" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4512,17 +4570,17 @@ msgstr "" + msgid "Enumeration not supported on %s\n" + msgstr "ПералічÑньне непадтрымліваецца на %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + #| msgid "Unknown database: %s\n" + msgid "Unknown database name" + msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð±Ð°Ð·Ð° даньнÑÑž: %s\n" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð±Ð°Ð·Ð° даньнÑÑž: %s\n" +@@ -4808,7 +4866,7 @@ msgstr "" + msgid "No previous regular expression" + msgstr "" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +@@ -7221,6 +7279,9 @@ msgstr "" + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: немагчыма Ñтварыць Ñ‚Ñчку %s: %s\n" + ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "немагчыма Ñтварыць ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ñ‹Ñ Ð´ÑÑкрыптары" ++ + #~ msgid "Error 0" + #~ msgstr "Памылка 0" + +Index: glibc-2.23/po/bg.po +=================================================================== +--- glibc-2.23.orig/po/bg.po ++++ glibc-2.23/po/bg.po +@@ -7,9 +7,9 @@ + # + msgid "" + msgstr "" +-"Project-Id-Version: libc 2.19.90\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" +-"PO-Revision-Date: 2014-08-21 22:16+0300\n" ++"Project-Id-Version: libc 2.22-pre1\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"PO-Revision-Date: 2015-08-02 23:16+0300\n" + "Last-Translator: Roumen Petrov \n" + "Language-Team: Bulgarian \n" + "Language: bg\n" +@@ -146,10 +146,10 @@ msgstr "" + "[ИЗХОДЕÐ-ФÐЙЛ [ВХОДЕÐ_ФÐЙЛ]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -161,7 +161,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -178,7 +178,7 @@ msgstr "" + "ГÐРÐÐЦИИ, включително без предполагаемите гаранции за полезноÑÑ‚ и пригодноÑÑ‚.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -433,11 +433,11 @@ msgstr "Пропадна ÑмÑната + msgid "Renaming of %s to %s failed" + msgstr "Пропадна преименуването от %s към %s" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "не може да Ñе Ñъздаде ÑпиÑък на обхватът" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "не е отворен ÑподелениÑÑ‚ обект" + +@@ -510,127 +510,127 @@ msgstr "не може да Ñе Ñъзд + msgid "cannot stat shared object" + msgstr "не може да Ñе определÑÑ‚ атрибутите на Ñподелен обект" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "не може да Ñе отвори уÑтройÑтвото за запълване Ñ Ð½ÑƒÐ»Ð¸(/dev/zero)" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "не може да Ñе Ñъздаде опиÑание за Ñподелен обект" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "не може да Ñе прочетат данни от файлът" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "подравнÑването, в командата за зареждане на ELF, не е подравнено на Ñтраници" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "адреÑÑŠÑ‚/отмеÑтването, в командата за зареждане на ELF, не е подравнен правилно" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "за първоначалната нишка, не може да Ñе заделÑÑ‚ Ñтруктурите за TLS данни" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "не Ñе поддържат TLS данни" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "обектниÑÑ‚ файл е без дÑлове за Ñвързване" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "изпълнимиÑÑ‚ файл не може да Ñе Ñвърже динамично" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "обектниÑÑ‚ файл е без ÑÐµÐºÑ†Ð¸Ñ Ð·Ð° динамично Ñвързване" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "не е възможно dlopen() за ÑподелениÑÑ‚ обект" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "не може да Ñе задели памет за заглавието на програмата" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "неправилен извикващ" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "не може да Ñе промени защитата на паметта" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "Ñтекът не може да Ñе разреши за изпълнение, както е поиÑкано от ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "не може да Ñе затвори опиÑанието на файлът" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "файлът е твърде къÑ" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "неправилен ELF заглавен блок" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "данните от ELF файлът не Ñа кодирани ÑÑŠÑ Ñтарши байт първи(big-endian)" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "данните от ELF файлът не Ñа кодирани Ñ Ð¼Ð»Ð°Ð´ÑˆÐ¸ байт първи(little-endian)" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "идентификаторът на верÑÐ¸Ñ Ð¾Ñ‚ ELF файлът не ÑъответÑтва на текущата" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF файлът е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ номер на ДПИ(ABI-двоичен програмен интерфейÑ) за ОС " + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF файлът е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð° верÑÐ¸Ñ Ð·Ð° ДПИ(двоичен програмен интерфейÑ)" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "ненулево допълване при e_ident" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "вътрешна грешка" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "верÑиÑта, на ELF файлът, не ÑъответÑтва на текущата" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "Ñамо ET_DYN и ET_EXEC могат да Ñе Ñвържат" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "неочакван размер на елемент(phentsize) в заглавието на ELF файл" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "неправилен ELF клаÑ: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "неправилен ELF клаÑ: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "не може да Ñе отвори файлът ÑÑŠÑ ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚" + +@@ -642,11 +642,11 @@ msgstr "пропадна изображР+ msgid "cannot map zero-fill pages" + msgstr "не може да Ñе изобразÑÑ‚ Ñтраници запълнени Ñ Ð½ÑƒÐ»Ð¸" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "грешка при премеÑтване" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "грешка при Ñ‚ÑŠÑ€Ñене на Ñимвол" + +@@ -654,49 +654,40 @@ msgstr "грешка при Ñ‚ÑŠÑ€Ñен + msgid "cannot extend global scope" + msgstr "не може да Ñе увеличи общата облаÑÑ‚" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "ПревъртÑн броÑч за пораждане на TLS! ÐœÐ¾Ð»Ñ Ñ€Ð°Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð¹Ñ‚Ðµ го." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "не може да Ñе заредÑÑ‚ повече обектив Ñтатичен TSL блок" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "неправилен режим за dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "не Ñа налични повече именувани проÑтранÑтва за dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "неправилно именувано целево проÑтранÑтво в dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "не може да Ñе задели памет в Ñтатичен TSL блок" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "дÑлът не може да Ñе маркира като запиÑваем за \"премеÑтваем код\"" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: не е намерен PLTREL за обекта %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: недоÑтиг на памет за ÑъхранÑване на резултата за \"премеÑтваем код\" на %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "не може да Ñе възÑтанови защитата на дÑла Ñлед премеÑтване" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "Ñлед премеÑтването не може да Ñе поÑтави допълнителна защита на паметта" + +@@ -704,7 +695,7 @@ msgstr "Ñлед премеÑÑ‚Ð²Ð°Ð½ÐµÑ + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT е използван в код, който не е за динамично Ñвързване" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "не може да Ñе Ñъздадат Ñтруктури за TLS данни" + +@@ -848,7 +839,7 @@ msgstr "Ðе е Ñъздадена Ð²Ñ€Ñ + msgid "Can't open directory %s" + msgstr "Ðе може да Ñе отвори Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Ð’Ñ…Ð¾Ð´Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» %s не е намерен.\n" +@@ -979,7 +970,7 @@ msgstr "липÑва аргумент з + msgid "No such file or directory" + msgstr "ÐÑма такъв файл или директориÑ" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "не е обикновен файл" + +@@ -1024,65 +1015,70 @@ msgstr "не може да Ñе проч + msgid "cannot read program interpreter" + msgstr "не може да Ñе прочете програмното възпроизвеждане" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "не може да Ñе прочете изобразÑването на връзките" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "не може да Ñе прочете името на обекта" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "не може да Ñе задели памет име на обекта" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "ИзброÑване на динамично Ñвързаните обекти заредени от процеÑа." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "Ðом.проц." + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Ðеобходим е точно един параметър Ñ Ð½Ð¾Ð¼ÐµÑ€ на процеÑ.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "неправилен разпознавател на Ð¿Ñ€Ð¾Ñ†ÐµÑ '%s'" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "не може да Ñе отвори %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "не може да Ñе отвори задача %s" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "не е готово четенето на задача %s" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "неправилен разпознавател за нишка '%s'" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "не може да Ñе закачи към Ð¿Ñ€Ð¾Ñ†ÐµÑ %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "не може да Ñе вземат ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð·Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑ %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "процеÑа %lu не е ELF-програма" +@@ -1117,27 +1113,27 @@ msgstr "%s не е файл за ÑпоР+ msgid "more than one dynamic segment\n" + msgstr "повече от един дÑл за динамично Ñвързване\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Ðе може да Ñе определÑÑ‚ атрибутите(fstat) на файлът %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Файлът %s е празен и не е проверен." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Файлът %s е много ÐºÑŠÑ Ð¸ не е проверен." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Файлът %s не може да Ñе изобрази в паметта(mmap).\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s не е ELF файл - започва Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð¸ магичеÑки байтове.\n" +@@ -1271,10 +1267,10 @@ msgstr "СПОД_ОБЕКТ [ДИÐГ_Д + msgid "failed to load shared object `%s'" + msgstr "пропадна зареждането на ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ \"%s\"" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "не може да Ñе Ñъздадат вътрешни опиÑаниÑ" ++msgid "cannot create internal descriptor" ++msgstr "не може да Ñе Ñъздаде вътрешно опиÑание" + + #: elf/sprof.c:554 + #, c-format +@@ -1341,11 +1337,6 @@ msgstr "ÐеуÑпех при изобр + msgid "error while closing the profiling data file" + msgstr "грешка при затварÑне на файл Ñ Ð´Ð¸Ð°Ð³Ð½Ð¾Ñтични данни" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "не може да Ñе Ñъздаде вътрешно опиÑание" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1593,27 +1584,27 @@ msgstr "socket: неуÑпех на пр + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: недоÑтиг при четене" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "пропадна lstat" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "не може да Ñе отвори" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "пропадна fstat" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "неправилен ÑобÑтвеник" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "оÑвен ÑобÑтвеника, може да Ñе запиÑва и от други" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "твърдо Ñвързан нанÑкъде" + +@@ -1733,8 +1724,8 @@ msgid "no symbolic name given for end of + msgstr "не е зададено Ñимволично име за край на диапазон" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1760,8 +1751,8 @@ msgid "%s: error in state machine" + msgstr "%s: грешка в ÑÑŠÑтоÑнието на машината" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1782,7 +1773,7 @@ msgstr "неизвеÑтен знак \" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "Ð±Ð¾Ñ Ð½Ð° байтовете, в поÑледователноÑÑ‚ от байтове за начало и край на диапазон, не е ÑъщиÑ: %d Ñ/у %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "неправилни имена за диапазон от знаци" +@@ -1804,8 +1795,8 @@ msgstr "горната граница з + msgid "resulting bytes for range not representable." + msgstr "резултата от байтове за диапазона не може да Ñе предÑтавÑÑ‚." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1869,7 +1860,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: неправилен цифров код на държава \"%d\"" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1891,8 +1882,8 @@ msgstr "%s: полето \"%s\" е Ð¾Ð±Ñ + msgid "%s: unknown character in field `%s'" + msgstr "%s: неизвеÑтен знак в полето \"%s\"" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1901,12 +1892,12 @@ msgstr "%s: неизвеÑтен знаР+ msgid "%s: incomplete `END' line" + msgstr "%s: непълен ред \"END\"" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1916,477 +1907,477 @@ msgstr "%s: непълен ред \"END\ + msgid "%s: syntax error" + msgstr "%s: Ñинтактична грешка" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "\"%.*s\" е вече определен в изображението на знаците" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "\"%.*s\" е вече определен в набора от знаци" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "\"%.*s\" е вече определен като Ñимвол за подреждане" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "\"%.*s\" е вече определен като елемент за подреждане" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: \"forward\" и \"backward\" Ñа взаимоизключващи Ñе" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: \"%s\" Ñе Ñреща повече от веднъж в определение за тегло %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: твърде много правила; за първиÑÑ‚ Ð·Ð°Ð¿Ð¸Ñ Ð±Ñха %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: недоÑтатъчно правила за Ñортиране" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: не е разрешен празен низ за тегло" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: теглата Ñ‚Ñ€Ñбва да използват Ñъщото многоточие като името" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: твърде много ÑтойноÑти" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "редът за \"%.*s\" е вече определен при %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: началниÑÑ‚ и крайниÑÑ‚ Ñимвол за диапазон Ñ‚Ñ€Ñбва да обозначават знаци" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: поÑледователноÑтта от байтове, за Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð¸ поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð·Ð½Ð°Ðº, Ñ‚Ñ€Ñбва да е Ñ ÐµÐ´Ð½Ð°ÐºÐ²Ð° дължина" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: поÑледователноÑтта от байтове за Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð·Ð½Ð°Ðº на диапазона не е по-малка от тази за поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð·Ð½Ð°Ðº" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: многоточие за Ñимволичен диапазон не може веднага да Ñледва \"order_start\"" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: многоточие за Ñимволичен диапазон не може да бъде поÑледвано веднага от \"order_end\"" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "\"%s\" и \"%.*s\" не Ñа правилни имена за Ñимволичен диапазон" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: редът за \"%.*s\" е вече определен при %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: \"%s\" Ñ‚Ñ€Ñбва да е знак" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: \"position\" Ñ‚Ñ€Ñбва да Ñе използва на точно определено ниво във вÑички ÑÐµÐºÑ†Ð¸Ñ Ð¸Ð»Ð¸ в нито една" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "Ñимволът \"%s\" е неопределен" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "Ñимволът \"%s\" е Ñ Ñъщото кодиране като" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "Ñимвола \"%s\"" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "нÑма определение за \"UNDEFINED\"" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "твърде много грешки; отказване" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: не Ñе поддържа вграждане на уÑловиÑ" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: повече от един 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: повторно определÑне на \"%s\"" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: повторно обÑвÑване на дÑл \"%s\"" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: неизвеÑтен знак за име на Ñимвол за подреждане" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: неизвеÑтен знак за име в определение за еквивалентноÑÑ‚" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: неизвеÑтен знак за ÑтойноÑÑ‚ в определение за еквивалентноÑÑ‚" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: неизвеÑтен Ñимвол \"%s\" в определение за еквивалентноÑÑ‚" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "грешка при добавÑне на равноÑтоен Ñимвол за подреждане" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "повторно определение за пиÑменоÑÑ‚ \"%s\"" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: неизвеÑтно име на ÑÐµÐºÑ†Ð¸Ñ \"%.*s\"" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: многократни Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð° ред в ÑÐµÐºÑ†Ð¸Ñ \"%s\"" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: неправилен брой правила за Ñортиране" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: многократни Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð° ред в безимена ÑекциÑ" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: липÑващ ключ \"order_end\"" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: вÑе още не е определен редът на Ñимвола за подреждане %.*s" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: вÑе още не е определен редът на елемента за подреждане %.*s" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: не може да Ñе пренареди Ñлед %.*s: Ñимволът е неизвеÑтен" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: липÑва ключ \"reorder-end\"" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: неизвеÑтна ÑÐµÐºÑ†Ð¸Ñ \"%.*s\"" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: неправилен Ñимвол <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: \"%s\" не може да бъде край на диапазон Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñ‚Ð¾Ñ‡Ð¸Ðµ" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: не е разрешено празно опиÑание на категориÑ" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: липÑва ключ \"reorder-sections-end\"" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: '%s' е без ÑъответÑтващ 'ifdef' или 'ifndef'" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'endif' без ÑъответÑтващ 'ifdef' или 'ifndef'" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Ðеопределено име на множеÑтвото от знаци в изображението на знаците" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "знакът L'\\u%0*x' от ÐºÐ»Ð°Ñ \"%s\" Ñ‚Ñ€Ñбва да е в ÐºÐ»Ð°Ñ \"%s\"" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "знакът L'\\u%0*x' от ÐºÐ»Ð°Ñ \"%s\" не може да е в ÐºÐ»Ð°Ñ \"%s\"" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "вътрешна грешка в %s, на ред %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "знакът \"%s\" от ÐºÐ»Ð°Ñ \"%s\" Ñ‚Ñ€Ñбва да е в ÐºÐ»Ð°Ñ \"%s\"" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "знакът \"%s\" от ÐºÐ»Ð°Ñ \"%s\" не може да е в ÐºÐ»Ð°Ñ \"%s\"" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "знакът не е в ÐºÐ»Ð°Ñ \"%s\"" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "знакът не може да е в ÐºÐ»Ð°Ñ \"%s\"" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "знакът не е определен в изображението на знаците" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "впиÑваниÑта в категориÑта \"digit\" не Ñе групират по деÑет" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "в изображението на знаците не Ñа определени входÑщите цифри и никое от Ñтандартните имена" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "не вÑички знаци използвани в \"outdigit\" Ñа доÑтъпни в изображението на знаците" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "не вÑички знаци използвани в \"outdigit\" Ñа доÑтъпни в Ð·Ð½Ð°ÐºÐ¾Ð²Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "вече е определен клаÑÑŠÑ‚ знаци \"%s\"" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "ограничение в реализациÑта: не за разрешени повече от %Zd клаÑа за знаци" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "изображението на знаците \"%s\" вече е определено" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "ограничение в реализациÑта: не Ñа разрешени повече от %d Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° знаци" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: полето \"%s\" не Ñъдържа точно деÑет запиÑа" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "горната граница на диапазона е по-малка от долната " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "началната и крайната знакова поÑледователноÑÑ‚ на диапазона Ñ‚Ñ€Ñбва да Ñа Ñ ÐµÐ´Ð½Ð°ÐºÐ²Ð° дължина" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "началната знакова поÑледователноÑÑ‚ е по-малка от крайната" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "преждевременен край на определение \"translit_ignore\"" + + # TODO +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "Ñинтактична грешка" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: Ñинтактична грешка в определението за опиÑание за ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: Ñинтактична грешка в определението на ново изображение на знаци" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "диапазон Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñ‚Ð¾Ñ‡Ð¸Ðµ Ñ‚Ñ€Ñбва да бъде ограничен от два еднотипни операнда" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "при диапазон ÑÑŠÑ Ñимволично име Ñ‚Ñ€Ñбва да Ñе използва ÑамоÑтоÑтелно многоточие \"...\"" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "при UCS диапазон Ñ‚Ñ€Ñбва да Ñе използва шеÑтнадеÑетично Ñимволично многоточие \"..\"" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "при диапазон от кодове на знаци Ñ‚Ñ€Ñбва да Ñе използва ÑамоÑтоÑтелно многоточие \"...\"" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "повторно определÑне на изображението \"%s\"" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: \"translit_start\" - ÑекциÑта не завършва Ñ \"translit_end\"" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: повторно определени за \"default_missing\"" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "предишното определение бе тук" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: не е намерено предÑтавимо определение за \"default_missing\"" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: знакът \"%s\" е неопределен, въпреки че е необходим като ÑтойноÑÑ‚ по подразбиране" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: знакът \"%s\", от изображението на знаците, не е предÑтавим Ñ ÐµÐ´Ð¸Ð½ байт" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: знакът \"%s\", необходим като ÑтойноÑÑ‚ по подразбиране, не може да Ñе предÑтави Ñ ÐµÐ´Ð¸Ð½ байт" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "в изображението на знаците не Ñа определени изходÑщите цифри и никое от Ñтандартните имена" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: не Ñа налични данни за транÑÐ»Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ езикова наÑтройка \"%s\"" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: таблица за ÐºÐ»Ð°Ñ \"%s\": %lu байта\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: таблица за изображение \"%s\": %lu байта\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: таблица за ширина: %lu байта\n" +@@ -3809,17 +3800,22 @@ msgstr "добавÑне на нов зР+ msgid " (first)" + msgstr " (първи)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, c-format ++msgid "checking for monitored file `%s': %s" ++msgstr "проверка на Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s': %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "не може да Ñе изпълни stat() за файла \"%s\": %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' е променен (mtime)" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "подрÑзване на кеша %s - Ñ‡Ð°Ñ %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "разглеждане на Ð·Ð°Ð¿Ð¸Ñ %s \"%s\", проÑрочка %" +@@ -3905,153 +3901,213 @@ msgstr "не може да Ñе зада + msgid "cannot enable socket to accept connections: %s" + msgstr "не може да Ñе направи гнездото да приеме ÑвързваниÑ: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "забранено inotify наблюдение за файл '%s': %s" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "наблюдаване на файл '%s' (%d)" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "забранено inotify наблюдение за Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s': %s" ++ ++#: nscd/connections.c:994 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "наблюдаване на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s' (%d)" ++ ++#: nscd/connections.c:1022 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "впиÑване на файл за проÑледÑване %s, за база данни %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "stat не уÑÐ¿Ñ Ð·Ð° файл '%s'; по-къÑно ще Ñе опира пак: %s" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "оÑигурÑване на доÑтъп, до файлов деÑкриптор %d, за %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "не може да Ñе обработи заÑвка от Ñтара верÑÐ¸Ñ %d - текущата верÑÐ¸Ñ Ðµ %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "заÑвката от %ld не е обработена поради липÑващи права" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "заÑвката от '%s' [%ld] не е обработена поради липÑващи права" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "заÑвката не е обработена поради липÑващи права" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "не може да Ñе запише резултата: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "грешка при получаване на идентификатора на извикващиÑ: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "не може да Ñе отвори /proc/self/cmdline: %s- забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "не може да Ñе прочете /proc/self/cmdline: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "не може да Ñе върне към Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ на потребител: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "не може да Ñе върне към Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ на група: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "не може да Ñе върне към предишната работна директориÑ: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "повторното изпълнение не уÑпÑ: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "не може да Ñе Ñмени текущата работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° \"/\": %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "недоÑтиг при четене докато Ñе четеше заÑвката: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "дължината на ключа в заÑвката е твърде голÑма: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "недоÑтиг при четене докато Ñе четеше заÑÐ²ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: получена заÑвка (верÑÐ¸Ñ = %d) от Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€(PID) %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: получена заÑвка (верÑÐ¸Ñ = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "пренебрегване на Ñъбитие inotify за '%s', файла ÑъщеÑтвува" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' бе %s (премеÑтен или изтрит), премахване на Ñледенето" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "не можа да Ñе премахне Ñледенето на файл '%s': %s" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' е запиÑан в" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "наблюдаваната родителÑка Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s' бе %s(премеÑтен или изтрит), премахване на Ñледенето на '%s'" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' бе %s(Ñъздаден или премеÑтен), добавÑне на Ñледене" ++ ++#: nscd/connections.c:2053 ++#, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "не може да Ñе добави Ñледене на '%s': %s" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 + #, c-format +-msgid "disabled inotify after read error %d" +-msgstr "inotify е забранен Ñлед грешка при четене %d" ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "inotify наблюдение е забранено Ñлед грешка при четене %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "не може да Ñе инициализира уÑловна променлива" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "не може да Ñе Ñтартира почиÑтваща нишка; прекратÑване" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "не може да Ñе Ñтартира работна нишка; прекратÑване" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Ðе уÑÐ¿Ñ Ð´Ð° Ñе пуÑне nscd от името на потребител \"%s\"" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "първоначалниÑÑ‚ getgrouplist не уÑпÑ" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist не уÑпÑ" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups не уÑпÑ" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "недоÑтиг при Ð·Ð°Ð¿Ð¸Ñ Ð² %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Ðе е намерено \"%s\" в кеша за групи!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Презареждане на \"%s\" в кеша за групи!" +@@ -4139,7 +4195,7 @@ msgstr "Да Ñе използва отР+ msgid "Name Service Cache Daemon." + msgstr "Демон на уÑлуга за кеширане на имена(nscd)." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "неправилен брой на аргументи" +@@ -4172,7 +4228,7 @@ msgstr "не може да Ñе Ñмен + msgid "Could not create log file" + msgstr "Ðе може да Ñе Ñъздаде региÑтрационен файл" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "непълно запиÑване" +@@ -4187,7 +4243,7 @@ msgstr "не може да Ñе проч + msgid "invalidation failed" + msgstr "пропадна обезÑилването" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Разрешено е Ñамо Ñуперпотребител да използва тази опциÑ!" +@@ -4273,35 +4329,35 @@ msgstr "не може да Ñе взем + msgid "maximum file size for %s database too small" + msgstr "макÑималниÑÑ‚ размер на файл, за база данни %s, е много малък" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "не може да Ñе запише ÑтатиÑтиката: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "да" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "не" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Разрешено е Ñамо на Ñуперпотребител или %s да използва тази опциÑ!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd не е пуÑнат!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "не може да Ñе прочетат ÑтатиÑтичеÑките данни" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4312,27 +4368,27 @@ msgstr "" + "\n" + "%15d ниво за оÑведомÑваме на Ñървъра\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3uд %2uч %2uм %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uч %2uм %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2uм %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4349,7 +4405,7 @@ msgstr "" + "%15lu вътрешни реÑтартираниÑ\n" + "%15u брой презарежданиÑ\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4415,85 +4471,85 @@ msgstr "Презареждане на \" + msgid "Invalid numeric uid \"%s\"!" + msgstr "Ðеправилен чиÑлов идентификатор на потребител \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Пропадна отварÑнето на връзка към подÑиÑтемата за Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¸ контрол: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Ðе можа да Ñе вдигне флага \"задръж-ÑпоÑобноÑти\"" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) не уÑпÑ" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Ðе можа да Ñе подготви ÑвалÑнето на \"ÑпоÑобноÑтите\"" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init не уÑпÑ" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Ðе можаха да Ñе ÑвалÑÑ‚ \"ÑпоÑобноÑтите\"" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc не уÑпÑ" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Ðе можа да Ñе Ñвали флагът \"задръж-ÑпоÑобноÑти\"" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Ðе можа да Ñе уÑтанови дали Ñдрото поддържа SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Ðе можа да Ñе пуÑне нишка за AVC" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Ðе можа да Ñе Ñъздаде заключване за AVC" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Пропадна пуÑкането на AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Access Vector Cache (AVC) пуÑнат" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "Грешка при запитване за политиката при неопределени обектни клаÑове или права." + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "Грешка при взимане клаÑа за ÑигурноÑÑ‚ на nscd" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "Грешка при преобразуване от право \"%s\" към бит от вектора за доÑтъп" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Грешка при извличане, от гнездото, на контекÑта на другата Ñтрана" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Грешка при взимане на контекÑта на nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Грешка при извличане на sid от контекÑта" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4555,16 +4611,16 @@ msgstr "Получаване на зап + msgid "Enumeration not supported on %s\n" + msgstr "Ðе Ñе поддържа изброим тип от %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "ÐеизвеÑтно има на база данни" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Поддържани бази данни:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "ÐеизвеÑтна база данни: %s\n" +@@ -4844,7 +4900,7 @@ msgstr "ÐеÑъответÑтвие нР+ msgid "No previous regular expression" + msgstr "ЛипÑва предишен регулÑрен израз" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "параметърът е празен или не е зададен" + +@@ -7232,24 +7288,3 @@ msgstr "твърде много или Ñ + #, c-format + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: Ðе може да Ñе Ñъздаде Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s: %s\n" +- +-#~ msgid "compile-time support for database policy missing" +-#~ msgstr "при компилирането не е зададена подръжка на правила в базата данни" +- +-#~ msgid "24:00 not handled by pre-1998 versions of zic" +-#~ msgstr "24:00 не Ñе поддържат от верÑии на zic преди 1998" +- +-#~ msgid "time before zero" +-#~ msgstr "СтойноÑтта за Ñ‡Ð°Ñ Ðµ преди нулата" +- +-#~ msgid "too many transitions?!" +-#~ msgstr "твърде много прехвърлÑниÑ?!" +- +-#~ msgid "%s: use of -v on system with floating time_t other than float or double\n" +-#~ msgstr "%s: употребÑвайте -v на ÑиÑтеми, за които типът на time_t, Ñ Ð¿Ð»Ð°Ð²Ð°Ñ‰Ð° точноÑÑ‚, е различен от float или double\n" +- +-#~ msgid "%s: Can't link from %s to %s: %s\n" +-#~ msgstr "%s: Ðе може да Ñе Ñъздаде връзка от %s към %s: %s\n" +- +-#~ msgid "%s: %d did not sign extend correctly\n" +-#~ msgstr "%s: при преобразуването %d не запази знак\n" +Index: glibc-2.23/po/ca.po +=================================================================== +--- glibc-2.23.orig/po/ca.po ++++ glibc-2.23/po/ca.po +@@ -1,7 +1,7 @@ + # Catalan messages for GNU libc. +-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013 Free Software Foundation, Inc. ++# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013, 2015 Free Software Foundation, Inc. + # This file is distributed under the same license as the glibc package. +-# Ivan Vilata i Balaguer , 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013, 2014. ++# Ivan Vilata i Balaguer , 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013, 2014, 2015. + # + # Sóc Ivan, aquestes són les convencions que adopte per a la 2.18.90.20140105: + # +@@ -42,11 +42,14 @@ + # - Els missatges marcats com a multilínia només arriben fins a la columna 70. + # A sovint contenen marques de format; en aquest cas s’hi inserta una nova + # línia perquè no hi ha forma de saber com serà de llarga la línia. ++# ++# He aplicat algunes de les recomanacions de ++# . + msgid "" + msgstr "" +-"Project-Id-Version: libc 2.19.90\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" +-"PO-Revision-Date: 2014-08-28 23:47+0200\n" ++"Project-Id-Version: libc 2.22-pre1\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"PO-Revision-Date: 2015-12-29 22:56+0100\n" + "Last-Translator: Ivan Vilata i Balaguer \n" + "Language-Team: Catalan \n" + "Language: ca\n" +@@ -158,7 +161,7 @@ msgstr "" + # Més ajudes. ivb + #: catgets/gencat.c:110 + msgid "Create C header file NAME containing symbol definitions" +-msgstr "Crea el fitxer capçalera C NOM que contindrà les definicions de símbols." ++msgstr "Crea el fitxer de capçalera C NOM que contindrà les definicions de símbols." + + #: catgets/gencat.c:112 + msgid "Do not use existing catalog, force new output file" +@@ -189,10 +192,10 @@ msgstr "" + + # L’adreça es veu millor així. ivb + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -204,7 +207,7 @@ msgstr "" + "<%s>.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -222,7 +225,7 @@ msgstr "" + "ADEQUACIÓ PER A UN PROPÃ’SIT PARTICULAR.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -496,11 +499,11 @@ msgstr "no s’ha pogut canviar els dret + msgid "Renaming of %s to %s failed" + msgstr "no s’ha pogut reanomenar «%s» a «%s»" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "no s’ha pogut crear la llista d’àmbits" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "l’objecte compartit no és obert" + +@@ -553,7 +556,7 @@ msgstr "no s’han pogut mapar pàgines + + #: elf/dl-fptr.c:221 sysdeps/hppa/dl-fptr.c:236 + msgid "internal error: symidx out of range of fptr table" +-msgstr "error intern: «symidx» és fora de rang respecte la taula «fptr»" ++msgstr "error intern: «symidx» és fora de rang respecte a la taula «fptr»" + + #: elf/dl-hwcaps.c:184 elf/dl-hwcaps.c:196 + msgid "cannot create capability list" +@@ -581,134 +584,134 @@ msgstr "ha fallat stat() sobre l’objec + + # ivb (2001/10/28) + # ivb Es refereix a /dev/zero . +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "no s’ha pogut obrir el dispositiu de zeros" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "no s’ha pogut crear el descriptor d’objecte compartit" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "no s’han pogut llegir les dades del fitxer" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "l’alineament de l’ordre ELF de càrrega no està alineada amb la pàgina" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "l’adreça o desplaçament de l’ordre ELF de càrrega no està correctament alineada" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "no s’han pogut reservar les estructures de dades TLS per al fil inicial" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "no es pot tractar amb dades TLS" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" +-msgstr "el fitxer objecte no té segments carregables" ++msgstr "el fitxer d’objecte no té segments carregables" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "no s’ha pogut carregar dinàmicament l’executable" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" +-msgstr "el fitxer objecte no té secció dinàmica" ++msgstr "el fitxer d’objecte no té secció dinàmica" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "ha fallat dlopen() sobre l’objecte compartit" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "no s’ha pogut reservar memòria per a la capçalera del programa" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "la biblioteca que ha fet la crida no és vàlida" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "no s’han pogut canviar les proteccions de memòria" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "no s’ha pogut habilitar la pila executable a requeriment de l’objecte compartit" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "no s’ha pogut tancar un descriptor de fitxer" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "el fitxer és massa curt" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "la capçalera ELF no és vàlida" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "la codificació de les dades del fitxer ELF no és bigâ€endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "la codificació de les dades del fitxer ELF no és littleâ€endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "la identificació de la versió del fitxer ELF no concorda amb l’actual" + + # ivb (2001/11(06) + # ivb ABI = Application Binary Interface (interfície binària d'aplicació) +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "l’ABI de sistema operatiu del fitxer ELF no és vàlida" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "la versió de l’ABI del fitxer ELF no és vàlida" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" +-msgstr "el replè d’«e_ident» no conté només zeros" ++msgstr "el replè de «e_ident» no conté només zeros" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "error intern" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "la versió del fitxer ELF no concorda amb l’actual" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "només es poden carregar els tipus ET_DYN i ET_EXEC" + + # ivb (2001/11/01) + # ivb La traducció completa de «phentsize» vindria a ser: mida d'entrada + # ivb de taula de la capçalera de programa. +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "el valor de «phentsize» del fitxer ELF no és l’esperat" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "la classe ELF no és vàlida: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "la classe ELF no és vàlida: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" +-msgstr "no s’ha pogut obrir el fitxer objecte compartit" ++msgstr "no s’ha pogut obrir el fitxer d’objecte compartit" + + #: elf/dl-load.h:128 + msgid "failed to map segment from shared object" +@@ -718,11 +721,11 @@ msgstr "no s’ha pogut mapar un segment + msgid "cannot map zero-fill pages" + msgstr "no s’han pogut mapar les pàgines plenes de zeros" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "error de reubicació" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "error en cercar el símbol" + +@@ -732,53 +735,40 @@ msgstr "no s’ha pogut estendre l’àm + + # ivb (2002/10/29) + # ivb TLS = Thread Local Storage +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "El comptador de generació de TLS s’ha esgotat! Per favor, informeu d’açò." + +-# Cas general. ivb +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "no es poden carregar més objectes amb el TLS estàtic" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "el mode de dlopen() no és vàlid" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "no resten espais de noms disponibles per a dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "l’espai de noms destí de dlmopen() no és vàlid" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "no s’ha pogut reservar memòria al bloc TLS estàtic" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "no s’ha pogut fer escrivible el segment per a reubicarâ€lo" + +-# ivb (2002/10/21) +-# ivb PLT = Procedure Linkage Table, Taula d'Enllaçat de Procediments +-# ivb PLTREL = tipus de reubicació usada per la PLT +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: no s’ha trobat el PLTREL de l’objecte «%s»\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: no resta memòria per a guardar els resultats de reubicar «%s»\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "no s’ha pogut restaurar la protecció del segment després de reubicarâ€lo" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "no s’ha pogut protegir la memòria després de reubicar" + +@@ -786,7 +776,7 @@ msgstr "no s’ha pogut protegir la memà + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "s’ha emprat RTLD_NEXT en un codi no carregat dinàmicament" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "no s’han pogut crear les estructures de dades TLS" + +@@ -857,7 +847,7 @@ msgstr "FORMAT a emprar: «new» (nou), + + #: elf/ldconfig.c:151 + msgid "Ignore auxiliary cache file" +-msgstr "No té en compte el fitxer de memòria cau auxilar." ++msgstr "No té en compte el fitxer de memòria cau auxiliar." + + #: elf/ldconfig.c:159 + msgid "Configure Dynamic Linker Run Time Bindings." +@@ -935,7 +925,7 @@ msgstr "no s’ha creat l’enllaç perq + msgid "Can't open directory %s" + msgstr "no s’ha pogut obrir el directori «%s»" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "no s’ha trobat el fitxer d’entrada «%s»\n" +@@ -1048,7 +1038,7 @@ msgstr "" + + #: elf/ldd.bash.in:80 + msgid "ldd: option \\`$1' is ambiguous" +-msgstr "ldd: l’opció «$1» és ambígua" ++msgstr "ldd: l’opció «$1» és ambigua" + + #: elf/ldd.bash.in:87 + msgid "unrecognized option" +@@ -1071,7 +1061,7 @@ msgstr "El fitxer o directori no existei + + # ivb (2001/10/31) + # ivb Cal tenir en compte que «ordinary» a l'anglés és cosa pler diferent ;) +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "no és un fitxer ordinari" + +@@ -1119,70 +1109,76 @@ msgstr "no s’ha pogut llegir «r_debug + msgid "cannot read program interpreter" + msgstr "no s’ha pogut llegir l’intèrpret del programa" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "no s’ha pogut llegir el mapa d’enllaçat" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "no s’ha pogut llegir el nom de l’objecte" + ++# Condició d’error. ivb ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "no s’ha pogut reservar memòria intermèdia per al nom de l’objecte" ++ + # Descripció del programa. ivb +-#: elf/pldd.c:63 ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "Llista els objectes compatits dinàmics carregats en un procés." + + # Crec que el terme és suficient conegut. ivb +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "cal exactament un paràmetre amb l’identificador de procés\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "l’identificador de procés «%s» no és vàlid" + + # No usa quote(). ivb +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "no s’ha pogut obrir «%s»" + + # No usa quote. ivb +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "no s’ha pogut obrir «%s/task»" + + # No usa quote(). ivb +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "no s’ha pogut preparar la lectura de «%s/task»" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "l’identificador de fil «%s» no és vàlid" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "no s’ha pogut associar al procés %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "no s’ha pogut obtenir informació sobre el procés %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "el procés %lu no pertany a un programa ELF" +@@ -1210,34 +1206,34 @@ msgstr "la classe ELF del fitxer «%s» + #: elf/readelflib.c:77 + #, c-format + msgid "%s is not a shared object file (Type: %d).\n" +-msgstr "«%s» no és un fitxer objecte compartit (tipus: %d)\n" ++msgstr "«%s» no és un fitxer d’objecte compartit (tipus: %d)\n" + + #: elf/readelflib.c:108 + #, c-format + msgid "more than one dynamic segment\n" + msgstr "hi ha més d’un segment dinàmic\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "ha fallat fstat() sobre el fitxer «%s»\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "el fitxer «%s» és buit, no es comprova" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "el fitxer «%s» és massa menut, no es comprova" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "ha fallat mmap() sobre el fitxer «%s»\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "«%s» no és un fitxer ELF: els octets màgics del començament no són correctes\n" +@@ -1321,7 +1317,7 @@ msgstr "%s: l’opció «%c» necessita + + #: elf/sotruss.sh:61 + msgid "%s: option is ambiguous; possibilities:" +-msgstr "%s: l’opció és ambígua; possibilitats:" ++msgstr "%s: l’opció és ambigua; possibilitats:" + + #: elf/sotruss.sh:79 + msgid "Written by %s.\\n" +@@ -1374,10 +1370,10 @@ msgstr "OBJECTE_COMPARTIT [DADES_PERFILA + msgid "failed to load shared object `%s'" + msgstr "no s’ha pogut carregar l’objecte compartit «%s»" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "no s’han pogut crear els descriptors interns" ++msgid "cannot create internal descriptor" ++msgstr "no s’ha pogut crear un descriptor intern" + + #: elf/sprof.c:554 + #, c-format +@@ -1444,11 +1440,6 @@ msgstr "ha fallat mmap() sobre el fitxer + msgid "error while closing the profiling data file" + msgstr "error en tancar el fitxer de dades de perfilat" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "no s’ha pogut crear un descriptor intern" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1642,7 +1633,7 @@ msgstr "No cerca en els directoris està + #: iconv/iconvconfig.c:299 + #, c-format + msgid "Directory arguments required when using --nostdlib" +-msgstr "Cal proporcionar arguments directori en emprar «--nostdlib»." ++msgstr "Cal proporcionar arguments de directori en emprar «--nostdlib»." + + #: iconv/iconvconfig.c:341 locale/programs/localedef.c:294 + #, c-format +@@ -1700,27 +1691,27 @@ msgstr "socket: fallada del protocol en + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: lectura incompleta" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "ha fallat lstat()" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "no s’ha pogut obrir" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "ha fallat fstat()" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "el propietari no és vàlid" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "és modificable per altres que no en són el propietari" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "té un enllaç fort en altre lloc" + +@@ -1743,7 +1734,7 @@ msgstr "la paraula clau «%s» de «.net + + #: libidn/nfkc.c:463 + msgid "Character out of range for UTF-8" +-msgstr "el caràcter és fora de rang respecte UTF-8" ++msgstr "el caràcter és fora de rang respecte a UTF-8" + + #: locale/programs/charmap-dir.c:57 + #, c-format +@@ -1843,8 +1834,8 @@ msgid "no symbolic name given for end of + msgstr "no s’ha indicat un nom simbòlic per a la fi del rang" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1871,8 +1862,8 @@ msgid "%s: error in state machine" + msgstr "%s: error a la màquina d’estats" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1893,7 +1884,7 @@ msgstr "el caràcter «%s» no és coneg + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "el nombre d’octets de les seqüències d’inici i final del rang no són iguals: %d i %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "els noms del rang de caràcters no són vàlids" +@@ -1918,8 +1909,8 @@ msgstr "el límit superior del rang és + msgid "resulting bytes for range not representable." + msgstr "els octets resultants del rang no són representables" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1987,7 +1978,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: el codi numèric de país «%d» no és vàlid" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -2009,8 +2000,8 @@ msgstr "%s: el camp «%s» ha estat decl + msgid "%s: unknown character in field `%s'" + msgstr "%s: el camp «%s» conté un caràcter desconegut" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -2019,12 +2010,12 @@ msgstr "%s: el camp «%s» conté un car + msgid "%s: incomplete `END' line" + msgstr "%s: la línia «END» és incompleta" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -2034,476 +2025,476 @@ msgstr "%s: la línia «END» és incomp + msgid "%s: syntax error" + msgstr "%s: error de sintaxi" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "«%.*s» ja ha estat definit al mapa de caràcters" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "«%.*s» ja ha estat definit al repertori" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "«%.*s» ja ha estat definit com a símbol d’ordenació" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "«%.*s» ja ha estat definit com a element d’ordenació" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: «forward» i «backward» són mútuament excloents" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: s’ha mencionat «%s» més d’una volta a la definició de pes %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: sobren regles; la primera entrada només en tenia %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: no hi ha suficients regles d’ordenació" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: no es permet la cadena buida com a nom de pes" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: els pesos han d’emprar el mateix símbol d’el·lipsi que el nom" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: sobren valors" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "l’ordre de «%.*s» ja ha estat definit a %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: els símbols inicial i final d’un rang han de representar caràcters" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: les seqüències d’octets del primer i darrer caràcter han de tenir la mateixa longitud" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: la seqüència d’octets del primer caràcter del rang no és menor que la del darrer caràcter" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" +-msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just darrere d’«order_start»" ++msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just darrere de «order_start»" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" +-msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just davant d’«order_end»" ++msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just davant de «order_end»" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "«%s» i «%.*s» no són noms vàlids de rangs simbòlics" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: l’ordre de «%.*s» ja ha estat definit a %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: «%s» ha de ser un caràcter" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: cal emprar «position» per a un nivell específic a totes les seccions o a cap" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "el símbol «%s» no ha estat definit" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "el símbol «%s» té la mateixa codificació que" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "el símbol «%s»" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "no s’ha definit «UNDEFINED»" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "hi ha massa errors: s’abandona" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: no es permeten els condicionals niats" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: hi ha més d’una clàusula «else»" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: la definició de «%s» és duplicada" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: la declaració de la secció «%s» és duplicada" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: el nom del símbol d’ordenació conté un caràcter desconegut" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: el nom de la definició equivalent conté un caràcter desconegut" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: el valor de la definició equivalent conté un caràcter desconegut" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: la definició equivalent conté el símbol desconegut «%s»" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "error en afegir un símbol d’ordenació equivalent" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "la definició de l’escriptura «%s» és duplicada" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: el nom de secció «%.*s» no és conegut" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: hi ha múltiples definicions d’ordre de la secció «%s»" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: el nombre de regles d’ordenació no és vàlid" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: hi ha múltiples definicions d’ordre a la secció sense nom" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: manca la paraula clau «order_end»" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: l’ordre del símbol d’ordenació «%.*s» encara no ha estat definit" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: l’ordre de l’element d’ordenació «%.*s» encara no ha estat definit" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: no s’ha pogut reordenar després de «%.*s»: el símbol no és conegut" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: manca la paraula clau «reorder-end»" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: la secció «%.*s» no és coneguda" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: el símbol <%.*s> no és vàlid" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: «%s» no es pot trobar al final d’un rang amb el·lipsi" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: no es permet una descripció buida de la categoria" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: manca la paraula clau «reorder-sections-end»" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: s’ha trobat un «%s» sense el corresponent «ifdef» o «ifndef»" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: s’ha trobat un «endif» sense el corresponent «ifdef» o «ifndef»" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "no s’ha indicat cap nom de joc de caràcters al mapa de caràcters" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "el caràcter L«\\u%0*x» de la classe «%s» ha de ser a la classe «%s»" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "el caràcter L«\\u%0*x» de la classe «%s» no ha de ser a la classe «%s»" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "error intern a «%s», línia %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "el caràcter «%s» de la classe «%s» ha de ser a la classe «%s»" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "el caràcter «%s» de la classe «%s» no ha de ser a la classe «%s»" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "el caràcter no és a la classe «%s»" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "el caràcter no ha de ser a la classe «%s»" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "el caràcter no ha estat definit a la taula de caràcters" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "les entrades de la categoria «digit» no estan agrupades de deu en deu" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "no s’han definit dígits d’entrada i cap dels noms estàndard es troba al mapa de caràcters" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "no tots els caràcters emprats a «outdigit» es troben al mapa de caràcters" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "no tots els caràcters emprats a «outdigit» es troben al repertori" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "la classe de caràcters «%s» ja ha estat definida" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "límit d’implementació: no es permeten més de %Zd classes de caràcters" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "el mapa de caràcters «%s» ja ha estat definit" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "límit d’implementació: no es permeten més de %d taules de caràcters" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: el camp «%s» no conté deu entrades exactament" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "el valor final del rang és menor que l’inicial " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "les seqüències de caràcters inicial i final del rang han de tenir la mateixa longitud" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "la seqüència de caràcters final és menor que la seqüència inicial" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "fi prematura de la definició «translit_ignore»" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "error de sintaxi" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: error de sintaxi a la definició de nova classe de caràcters" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: error de sintaxi a la definició de nou mapa de caràcters" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "el rang amb el·lipsi ha d’estar marcat per dos operands del mateix tipus" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "no s’ha d’emprar l’el·lipsi absoluta «...» amb els valors de rang de noms simbòlics" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "cal emprar l’el·lipsi simbòlica hexadecimal «..» amb els valors de rang UCS" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" +-msgstr "cal emprar l’el·lispi absoluta «...» amb els valors de rang de codis de caràcters" ++msgstr "cal emprar l’el·lipsi absoluta «...» amb els valors de rang de codis de caràcters" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "la definició del mapa «%s» és duplicada" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: la secció «translit_start» no acaba amb «translit_end»" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: la definició de «default_missing» és duplicada" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "la definició prèvia es troba ací" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: no s’ha trobat cap definició representable de «default_missing»" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no ha estat definit" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: el caràcter «%s» del mapa de caràcters no es pot representar amb un sol octet" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no es pot representar amb un sol octet" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" +-msgstr "no s’han definit dígits d’eixida i cap del noms estàndard es troba al mapa de caràcters" ++msgstr "no s’han definit dígits d’eixida i cap dels noms estàndard es troba al mapa de caràcters" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: les dades de transliteració del locale «%s» no es troben disponibles" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: taula de la classe «%s»: %lu octets\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: taula del mapa «%s»: %lu octets\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: taula d’amplada: %lu bytes\n" +@@ -2855,7 +2846,7 @@ msgstr "Genera eixida bigâ€endian." + # ivb Pose el punt final pq és la descripció curta de l'ordre. + #: locale/programs/localedef.c:157 + msgid "Compile locale specification" +-msgstr "Compil·la una especificació de locale." ++msgstr "Compila una especificació de locale." + + #: locale/programs/localedef.c:160 + msgid "" +@@ -2919,12 +2910,12 @@ msgstr "no s’ha pogut crear un fitxer + #: locale/programs/locarchive.c:167 locale/programs/locarchive.c:430 + #, c-format + msgid "cannot initialize archive file" +-msgstr "no s’ha pogut iniciar el fitxer arxiu" ++msgstr "no s’ha pogut iniciar el fitxer d’arxiu" + + #: locale/programs/locarchive.c:174 locale/programs/locarchive.c:437 + #, c-format + msgid "cannot resize archive file" +-msgstr "no s’ha pogut redimensionar el fitxer arxiu" ++msgstr "no s’ha pogut redimensionar el fitxer d’arxiu" + + #: locale/programs/locarchive.c:189 locale/programs/locarchive.c:452 + #: locale/programs/locarchive.c:674 +@@ -2952,7 +2943,7 @@ msgstr "no s’han pogut llegir les dade + #: locale/programs/locarchive.c:355 + #, c-format + msgid "cannot map locale archive file" +-msgstr "no s’ha pogut mapar el fitxer arxiu de locales" ++msgstr "no s’ha pogut mapar el fitxer d’arxiu de locales" + + #: locale/programs/locarchive.c:460 + #, c-format +@@ -2962,7 +2953,7 @@ msgstr "no s’ha pogut blocar el nou ar + #: locale/programs/locarchive.c:529 + #, c-format + msgid "cannot extend locale archive file" +-msgstr "no s’ha pogut estendre el fitxer arxiu de locales" ++msgstr "no s’ha pogut estendre el fitxer d’arxiu de locales" + + #: locale/programs/locarchive.c:538 + #, c-format +@@ -3116,7 +3107,7 @@ msgstr "no s’ha trobat el fitxer «%s + #: login/programs/pt_chown.c:78 + #, c-format + msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n" +-msgstr "Estableix el propietari, grup i permissos d’accés del pseudoâ€terminal esclau corresponent al pseudoâ€terminal mestre passat en el descriptor de fitxer %d. Aquest és el programa auxiliar per a la funció grantpt(), i no està pensat per a ser executat directament des de la línia d’ordres.\n" ++msgstr "Estableix el propietari, grup i permisos d’accés del pseudoâ€terminal esclau corresponent al pseudoâ€terminal mestre passat en el descriptor de fitxer %d. Aquest és el programa auxiliar per a la funció grantpt(), i no està pensat per a ser executat directament des de la línia d’ordres.\n" + + #: login/programs/pt_chown.c:92 + #, c-format +@@ -3125,7 +3116,7 @@ msgid "" + "\n" + "%s" + msgstr "" +-"S’estableix el propietari a l’usuari actual, el grup a «%s» i els permissos d’accés a %o.\n" ++"S’estableix el propietari a l’usuari actual, el grup a «%s» i els permisos d’accés a %o.\n" + "\n" + "%s" + +@@ -3157,7 +3148,7 @@ msgstr "s’ha alliberat el bloc dues vo + + #: malloc/mcheck.c:358 + msgid "bogus mcheck_status, library is buggy\n" +-msgstr "el valor d’«mcheck_status» és estrany; la biblioteca té errors\n" ++msgstr "el valor de «mcheck_status» és estrany; la biblioteca té errors\n" + + #: malloc/memusage.sh:32 + msgid "%s: option '%s' requires an argument\\n" +@@ -3232,7 +3223,7 @@ msgstr "" + + #: malloc/memusage.sh:191 + msgid "memusage: option \\`${1##*=}' is ambiguous" +-msgstr "memusage: l’opció «${1##*=}» és ambígua" ++msgstr "memusage: l’opció «${1##*=}» és ambigua" + + #: malloc/memusage.sh:200 + msgid "memusage: unrecognized option \\`$1'" +@@ -3257,7 +3248,7 @@ msgstr "Cadena amb el títol a emprar al + + #: malloc/memusagestat.c:58 + msgid "Generate output linear to time (default is linear to number of function calls)" +-msgstr "Genera una eixida lineal respecte el temps (per defecte és lineal respecte el nombre de crides a funció)." ++msgstr "Genera una eixida lineal respecte al temps (per defecte és lineal respecte al nombre de crides a funció)." + + #: malloc/memusagestat.c:62 + msgid "Also draw graph for total memory consumption" +@@ -3919,7 +3910,7 @@ msgstr "Codi d’error desconegut de NIS + + #: nis/ypclnt.c:922 + msgid "Internal ypbind error" +-msgstr "Error intern d’«ypbind»" ++msgstr "Error intern de «ypbind»" + + #: nis/ypclnt.c:925 + msgid "Domain not bound" +@@ -3931,7 +3922,7 @@ msgstr "No s’han pogut assignar recurs + + #: nis/ypclnt.c:931 + msgid "Unknown ypbind error" +-msgstr "Error desconegut d’«ypbind»" ++msgstr "Error desconegut de «ypbind»" + + #: nis/ypclnt.c:972 + msgid "yp_update: cannot convert host to netname\n" +@@ -3966,18 +3957,26 @@ msgstr "s’afegeix una nova entrada «% + msgid " (first)" + msgstr " (primer)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++# Missatge de depuració amb error. ivb ++# No usa quote(). ivb ++#: nscd/cache.c:288 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "ha fallat stat() sobre el fitxer «%s»: %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "en comprovar el fitxer vigilat «%s»: %s" + +-#: nscd/cache.c:331 ++# No usa quote(). ivb ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "el fitxer vigilat «%s» ha canviat (segons la data de modificació)" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "neteja de la memòria cau de «%s», hora %ld" + + # La 2a. és de l’estil de «GETPWBYNAME». ivb +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "es considera l’entrada %s «%s», expiració %" +@@ -4063,39 +4062,69 @@ msgstr "no s’ha pogut indicar que el c + msgid "cannot enable socket to accept connections: %s" + msgstr "no s’ha pogut habilitar el connector per a acceptar connexions: %s" + ++# Cap de les 2 usa quote(). ivb ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "s’inhabilita la vigilància «inotify» per al fitxer «%s»: %s" ++ ++# No usa quote(). ivb ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "s’està vigilant el fitxer «%s» (%d)" ++ ++# Cap de les 2 usa quote(). ivb ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "s’inhabilita la vigilància «inotify» per al directori «%s»: %s" ++ ++# Missatge de depuració. ivb ++# No usa quote(). ivb ++#: nscd/connections.c:994 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "s’està vigilant el directori «%s» (%d)" ++ + # Cap usa quote(). ivb + # Missatge de depuració. ivb +-# Allò traçat és el fitxer, segons el codi. ivb +-#: nscd/connections.c:984 ++#: nscd/connections.c:1022 + #, c-format +-msgid "register trace file %s for database %s" +-msgstr "es registra el fitxer traçat «%s» per a la base de dades «%s»" ++msgid "monitoring file %s for database %s" ++msgstr "s’està vigilant el fitxer «%s» per a la base de dades «%s»" + +-#: nscd/connections.c:1114 ++# Cap usa quote(). ivb ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "ha fallat stat() sobre el fitxer «%s», es tornarà a provar: %s" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "es proporciona accés al descriptor de fitxer %d, per a «%s»" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "no s’ha pogut atendre la petició amb versió antiga %d; la versió actual és %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" +-msgstr "no s’atén la petició de %ld per manca de permissos" ++msgstr "no s’atén la petició de %ld per manca de permisos" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" +-msgstr "no s’atén la petició de «%s» (%ld) per manca de permissos" ++msgstr "no s’atén la petició de «%s» (%ld) per manca de permisos" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" +-msgstr "no s’atén la petició per manca de permissos" ++msgstr "no s’atén la petició per manca de permisos" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "no s’ha pogut escriure el resultat: %s" +@@ -4105,121 +4134,166 @@ msgstr "no s’ha pogut escriure el resu + # ivb dimoni «nscd» per consultar la memòria cau o invalidar-la. Per + # ivb això faig servir «programa de control» (com «ndc» amb «named» o + # ivb «chronyc» amb «chronyd»). +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "error en obtenir l’identificador del programa de control: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "no s’ha pogut obrir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "no s’ha pogut llegir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "no s’ha pogut tornar a l’UID vell: %s; s’inhabilita el mode paranoic" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "no s’ha pogut tornar al GID vell: %s; s’inhabilita el mode paranoic" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "no s’ha pogut tornar al directori vell de treball: %s; s’inhabilita el mode paranoic" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "ha fallat la reexecució: %s; s’inhabilita el mode paranoic" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "no s’ha pogut canviar el directori de treball a «/»: %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "lectura incompleta en llegir la petició: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "la longitud de la clau de la petició és massa gran: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "lectura incompleta en llegir la clau de la petició: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: s’ha rebut una petició (amb versió %d) del PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: s’ha rebut una petició (amb versió %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++# No usa quote(). ivb ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "s’ha descartat l’esdeveniment d’«inotify» per a «%s» (el fitxer existeix)" ++ ++# No usa quote(), el segon és «moved» o «deleted». ivb ++# FIXME: Inner verb cannot be translated! ivb ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "el fitxer vigilat «%s» ha estat %s, se n’elimina el monitor" ++ ++# Cap usa quote(). ivb ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "no s’ha pogut eliminar el monitor del fitxer «%s»: %s" ++ ++# No usa quote(). ivb ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "el fitxer vigilat «%s» ha rebut una escriptura" ++ ++# No usa quote(), el segon és «moved» o «deleted». ivb ++# FIXME: Inner verb cannot be translated! ivb ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "el directori pare vigilat «%s» ha estat %s, s’elimina el monitor per a «%s»" ++ ++# No usa quote(), el segon és «created» o «moved into place». ivb ++# FIXME: Inner verb cannot be translated! ivb ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "el fitxer vigilat «%s» ha estat %s, se n’afegeix el monitor" ++ ++# Cap dels 2 usa quote(). ivb ++#: nscd/connections.c:2053 + #, c-format +-msgid "disabled inotify after read error %d" +-msgstr "s’inhabilita «inotify» per l’error de lectura amb codi %d" ++msgid "failed to add file watch `%s`: %s" ++msgstr "no s’ha pogut afegir un monitor per al fitxer «%s»: %s" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "s’inhabilita la vigilància «inotify» per l’error de lectura amb codi %d" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "no s’ha pogut iniciar la variable condicional" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "no s’ha pogut iniciar el fil d’execució de neteja; s’està finalitzant" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "no s’ha pogut iniciar cap fil d’execució treballador; s’està finalitzant" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "no s’ha pogut executar «nscd» com a l’usuari «%s»" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "ha fallat getgrouplist() inicial" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "ha fallat getgrouplist()" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "ha fallat setgroups()" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "escriptura incompleta a «%s»: %s" + + # El nom de la base de dades s’usa més a sovint que la descripció. ivb +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "no s’ha trobat «%s» a la memòria cau de «group»" + + # El nom de la base de dades s’usa més a sovint que la descripció. ivb +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "es torna a carregar «%s» a la memòria cau de «group»" +@@ -4284,7 +4358,7 @@ msgstr "NOMBRE" + + #: nscd/nscd.c:111 + msgid "Start NUMBER threads" +-msgstr "Llança NOMBRE fils d’exeució." ++msgstr "Llança NOMBRE fils d’execució." + + #: nscd/nscd.c:112 + msgid "Shut the server down" +@@ -4314,7 +4388,7 @@ msgstr "Empra una memòria cau diferent + msgid "Name Service Cache Daemon." + msgstr "Dimoni de memòria cau del servei de noms." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "el nombre d’arguments és incorrecte" +@@ -4347,7 +4421,7 @@ msgstr "no s’ha pogut canviar el direc + msgid "Could not create log file" + msgstr "no s’ha pogut crear el fitxer de registre" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "escriptura incompleta" +@@ -4362,7 +4436,7 @@ msgstr "no s’ha pogut llegir l’ACK d + msgid "invalidation failed" + msgstr "la invalidació ha fallat" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "només root pot emprar aquesta opció" +@@ -4447,67 +4521,67 @@ msgstr "no s’ha pogut obtenir el direc + msgid "maximum file size for %s database too small" + msgstr "la mida màxima de fitxer per a la base de dades «%s» és massa menuda" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "no s’han pogut escriure les estadístiques: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "sí" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "no" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "només root o %s pot emprar aquesta opció" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd no està en marxa\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "no s’han pogut llegir les dades estadístiques" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" + "\n" + "%15d server debug level\n" + msgstr "" +-"Configuració d’nscd:\n" ++"Configuració de nscd:\n" + "\n" + "%15d nivell de depuració del servidor\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus de funcionament del servidor\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus de funcionament del servidor\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus de funcionament del servidor\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus de funcionament del servidor\n" + + # FIXME: interval, not internal. ivb +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4525,7 +4599,7 @@ msgstr "" + "%15u nombre de recàrregues\n" + + # El primer camp és passwd, group, shadow... ivb +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4593,85 +4667,85 @@ msgstr "es torna a carregar «%s» a la + msgid "Invalid numeric uid \"%s\"!" + msgstr "«%s» no és un identificador numèric d’usuari vàlid" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" +-msgstr "no s’ha pogut obrir una connexió amb el subâ€sistema d’auditoria: %m" ++msgstr "no s’ha pogut obrir una connexió amb el subsistema d’auditoria: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "no s’han pogut establir les capacitats a mantenir" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "ha fallat prctl(KEEPCAPS)" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "no s’ha pogut començar a renunciar a capacitats" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "ha fallat cap_init()" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" +-msgstr "no s’ha pogunt renunciar a les capacitats" ++msgstr "no s’ha pogut renunciar a les capacitats" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "ha fallat cap_set_proc()" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" +-msgstr "no s’han pogut desestablir les capacitats a mantenir" ++msgstr "no s’han pogut treure les capacitats a mantenir" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "no s’ha pogut determinar si el nucli accepta SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "no s’ha pogut iniciar el fil d’execució de l’AVC" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "no s’ha pogut crear el blocatge de l’AVC" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "no s’ha pogut iniciar l’AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "s’ha iniciat la memòria cau de vectors d’accés (AVC)" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." +-msgstr "error en consultar la política per a classes d’objectes i permissos desconeguts" ++msgstr "error en consultar la política per a classes d’objectes i permisos desconeguts" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." +-msgstr "error en obtenir la classe de seguretat d’«nscd»" ++msgstr "error en obtenir la classe de seguretat de «nscd»" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "error en traduir el nom de permís «%s» a un vector de bits d’accés" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "error en obtenir el context de l’extrem remot del connector" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" +-msgstr "error en obtenir el context d’«nscd»" ++msgstr "error en obtenir el context de «nscd»" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "error en obtenir el SID del context" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4736,16 +4810,16 @@ msgstr "Obté entrades de les bases de d + msgid "Enumeration not supported on %s\n" + msgstr "no es permet l’enumeració sobre «%s»\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "el nom de la base de dades no és conegut" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Bases de dades acceptades:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "la base de dades no és coneguda: %s\n" +@@ -4793,7 +4867,7 @@ msgstr "no s’ha pogut obrir el fitxer + #: nss/makedb.c:272 + #, c-format + msgid "no entries to be processed" +-msgstr "no hi ha cap entrada que processar" ++msgstr "no hi ha cap entrada a processar" + + #: nss/makedb.c:282 + #, c-format +@@ -4881,7 +4955,7 @@ msgstr "" + "\n" + "Obté el valor de configuració per a la VARIABLE, o per a la VARIABLE_DE_CAMÃ\n" + "donat un CAMÃ. Si s’indica una ESPECIFICACIÓ, mostra els valors per a l’entorn\n" +-"de compil·lació indicat.\n" ++"de compilació indicat.\n" + "\n" + + #: posix/getconf.c:537 +@@ -4908,7 +4982,7 @@ msgstr "la variable «%s» no és recone + #: posix/getopt.c:592 posix/getopt.c:621 + #, c-format + msgid "%s: option '%s' is ambiguous; possibilities:" +-msgstr "%s: l’opció «%s» és ambígua; possibilitats:" ++msgstr "%s: l’opció «%s» és ambigua; possibilitats:" + + #: posix/getopt.c:662 posix/getopt.c:666 + #, c-format +@@ -4949,7 +5023,7 @@ msgstr "%s: l’opció «%c» necessita + #: posix/getopt.c:972 posix/getopt.c:988 + #, c-format + msgid "%s: option '-W %s' is ambiguous\n" +-msgstr "%s: l’opció «-W %s» és ambígua\n" ++msgstr "%s: l’opció «-W %s» és ambigua\n" + + #: posix/getopt.c:1012 posix/getopt.c:1030 + #, c-format +@@ -5029,7 +5103,7 @@ msgstr "«)» o «\\)» desaparellat" + msgid "No previous regular expression" + msgstr "No hi ha expressió regular prèvia" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "el paràmetre és nul o no s’ha establert" + +@@ -5159,7 +5233,7 @@ msgstr "L’adreça no es troba mapada a + + #: stdio-common/psiginfo-data.h:23 + msgid "Invalid permissions for mapped object" +-msgstr "Els permissos no són vàlids per a l’objecte mapat" ++msgstr "Els permisos no són vàlids per a l’objecte mapat" + + #: stdio-common/psiginfo-data.h:26 + msgid "Invalid address alignment" +@@ -5187,11 +5261,11 @@ msgstr "Un fill ha eixit" + + #: stdio-common/psiginfo-data.h:36 + msgid "Child has terminated abnormally and did not create a core file" +-msgstr "Un fill ha eixit abnormalment i no ha creat un fitxer de bolcat" ++msgstr "Un fill ha eixit anormalment i no ha creat un fitxer de bolcat" + + #: stdio-common/psiginfo-data.h:37 + msgid "Child has terminated abnormally and created a core file" +-msgstr "Un fill ha eixit abnormalment i ha creat un fitxer de bolcat" ++msgstr "Un fill ha eixit anormalment i ha creat un fitxer de bolcat" + + #: stdio-common/psiginfo-data.h:38 + msgid "Traced child has trapped" +@@ -5309,7 +5383,7 @@ msgstr "no resta memòria\n" + # ivb D'acord amb un comentari del propi fitxer. + #: sunrpc/auth_unix.c:349 + msgid "auth_unix.c: Fatal marshalling problem" +-msgstr "auth_none.c: error fatal de preserialització" ++msgstr "auth_none.c: error fatal de serialització" + + #: sunrpc/clnt_perr.c:95 sunrpc/clnt_perr.c:111 + #, c-format +@@ -5364,7 +5438,7 @@ msgstr "RPC: El programa no es troba dis + + #: sunrpc/clnt_perr.c:188 + msgid "RPC: Program/version mismatch" +-msgstr "RPC: No hi ha coincidència programa/versió" ++msgstr "RPC: No hi ha coincidència de programa/versió" + + #: sunrpc/clnt_perr.c:192 + msgid "RPC: Procedure unavailable" +@@ -5596,7 +5670,7 @@ msgstr "" + #: sunrpc/rpc_main.c:1422 + #, c-format + msgid "-a\t\tgenerate all files, including samples\n" +-msgstr " -a Genera tots els fitxers, incloent els exemples.\n" ++msgstr " -a Genera tots els fitxers, incloentâ€hi els exemples.\n" + + #: sunrpc/rpc_main.c:1423 + #, c-format +@@ -6442,7 +6516,7 @@ msgstr "La xarxa ha tallat la connexió + #. TRANS A network connection was aborted locally. + #: sysdeps/gnu/errlist.c:604 + msgid "Software caused connection abort" +-msgstr "El programari ha tallat la conexió" ++msgstr "El programari ha tallat la connexió" + + #. TRANS A network connection was closed for reasons outside the control of the + #. TRANS local host, such as by the remote machine rebooting or an unrecoverable +@@ -6810,7 +6884,7 @@ msgstr "Interbloqueig pel blocatge d’u + + #: sysdeps/gnu/errlist.c:1231 + msgid "Bad font file format" +-msgstr "El fitxer de font no té un format vàlid" ++msgstr "El fitxer de tipus de lletra no té un format vàlid" + + #: sysdeps/gnu/errlist.c:1239 + msgid "Machine is not on the network" +@@ -6863,7 +6937,7 @@ msgstr "Accés una biblioteca compartida + + #: sysdeps/gnu/errlist.c:1327 + msgid ".lib section in a.out corrupted" +-msgstr "La secció «.lib» de l’a.out és corrupta" ++msgstr "La secció «.lib» del «a.out» és corrupta" + + #: sysdeps/gnu/errlist.c:1335 + msgid "Attempting to link in too many shared libraries" +@@ -6932,7 +7006,7 @@ msgstr "L’estat no és recuperable" + # RFKill és el nom d’un subsistema de Linux. ivb + #: sysdeps/gnu/errlist.c:1463 + msgid "Operation not possible due to RF-kill" +-msgstr "L’operació no és possible degut a RFKill" ++msgstr "L’operació no és possible a causa de RFKill" + + #: sysdeps/gnu/errlist.c:1471 + msgid "Memory page has hardware error" +@@ -6955,7 +7029,7 @@ msgstr "Fallada temporal a la resolució + + #: sysdeps/posix/gai_strerror-strs.h:3 + msgid "Bad value for ai_flags" +-msgstr "El valor d’«ai_flags» no és vàlid" ++msgstr "El valor de «ai_flags» no és vàlid" + + #: sysdeps/posix/gai_strerror-strs.h:4 + msgid "Non-recoverable failure in name resolution" +@@ -6963,7 +7037,7 @@ msgstr "Fallada irrecuperable a la resol + + #: sysdeps/posix/gai_strerror-strs.h:5 + msgid "ai_family not supported" +-msgstr "No es permet l’ús d’aquest valor d’«ai_family»" ++msgstr "No es permet l’ús d’aquest valor de «ai_family»" + + #: sysdeps/posix/gai_strerror-strs.h:6 + msgid "Memory allocation failure" +@@ -6979,11 +7053,11 @@ msgstr "El nom o servei no és conegut" + + #: sysdeps/posix/gai_strerror-strs.h:9 + msgid "Servname not supported for ai_socktype" +-msgstr "El valor d’«ai_socktype» no permet l’ús d’aquest servei" ++msgstr "El valor de «ai_socktype» no permet l’ús d’aquest servei" + + #: sysdeps/posix/gai_strerror-strs.h:10 + msgid "ai_socktype not supported" +-msgstr "El valor d’«ai_socktype» no està permés" ++msgstr "El valor de «ai_socktype» no està permès" + + #: sysdeps/posix/gai_strerror-strs.h:11 + msgid "System error" +@@ -7131,7 +7205,7 @@ msgstr "" + + #: timezone/zic.c:505 + msgid "wild compilation-time specification of zic_t" +-msgstr "l’especificació de «zic_t» en temps de compil·lació no és vàlida" ++msgstr "l’especificació de «zic_t» en temps de compilació no és vàlida" + + #: timezone/zic.c:524 + #, c-format +Index: glibc-2.23/po/cs.po +=================================================================== +--- glibc-2.23.orig/po/cs.po ++++ glibc-2.23/po/cs.po +@@ -2,13 +2,13 @@ + # Copyright (C) 1997 Free Software Foundation, Inc. + # This file is distributed under the same license as the glibc package. + # Vladimir Michl , 1997. +-# Petr Pisar , 2007, 2009, 2011, 2012, 2013, 2014. ++# Petr Pisar , 2007, 2009, 2011, 2012, 2013, 2014, 2015. + # + # Thanks to: + # Petr Kolar + # Stanislav Brabec , 1998. + # +-# Describe of some function: ++# Description of some function: + # error(status, errnum, "message") => "progname: message: error_message" + # perror("message") => "message: error_message" + # +@@ -16,15 +16,16 @@ + # host, name, hostname - jméno, název, oznaÄení? + # Untranslated: netid (RFC 1833: Network Identifier), nettype + # Translations of "socket" => "soket", +-# byte => bajt, "out of memory" => "nedostatek pamÄ›ti" ++# byte => bajt ++# out of memory => nedostatek pamÄ›ti + # collation something => ??? + # ellipsis range => ??? + # + msgid "" + msgstr "" +-"Project-Id-Version: libc 2.19.90\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" +-"PO-Revision-Date: 2014-08-21 18:52+0200\n" ++"Project-Id-Version: libc 2.22-pre1\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"PO-Revision-Date: 2015-08-02 22:09+0200\n" + "Last-Translator: Petr Pisar \n" + "Language-Team: Czech \n" + "Language: cs\n" +@@ -164,10 +165,10 @@ msgstr "" + "[ VÃSTUPNÃ_SOUBOR [VSTUPNÃ_SOUBOR]…]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -179,7 +180,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -197,7 +198,7 @@ msgstr "" + "a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NÄšJAKà KONKRÉTNà ÚČEL.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -453,11 +454,11 @@ msgstr "ZmÄ›na přístupových práv k  + msgid "Renaming of %s to %s failed" + msgstr "PÅ™ejmenování z %s na %s selhalo" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "seznam rozsahů nelze vytvoÅ™it" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "sdílený objekt není otevÅ™en" + +@@ -530,127 +531,127 @@ msgstr "nelze vytvoÅ™it pole vyhledávac + msgid "cannot stat shared object" + msgstr "nelze získat informace o sdíleném objektu" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "nulami vyplnÄ›né zařízení (zero) nelze otevřít" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "deskriptor sdíleného objektu nelze vytvoÅ™it" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "data ze souboru nelze naÄíst" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "Zarovnání kódu zavadÄ›Äe formátu ELF nelícuje se stránkou" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "Adresa/ofset kódu zavadÄ›Äe formátu ELF není správnÄ› zarovnána" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "Datové struktury TLS prvního vlákna nelze alokovat" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "nelze zpracovat data TLS" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "objektový soubor nemá žádné nahratelné segmenty" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "spustitelný kód nelze dynamicky nahrát" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "objektový soubor nemá žádnou dynamickou sekci" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "sdílený objekt nebylo možné naÄíst funkcí dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "nelze alokovat paměť pro hlaviÄku programu" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "nepřípustný kód volání" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "ochrany pamÄ›ti nelze zmÄ›nit" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "nemohu povolit spustitelnost zásobníku, jak vyžaduje sdílený objekt" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "deskriptor souboru nelze zavřít" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "soubor je příliÅ¡ krátký" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "neplatný hlaviÄka ELF" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "Kódování dat souboru ELF nemá velkou endianitu" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "Kódování dat souboru ELF nemá malou endianitu" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ident verze souboru ELF se neshoduje se souÄasnou" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "Chybné ABI OS souboru ELF" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "Chybná verze ABI souboru ELF" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "nenulová výplň v e_ident" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "vnitÅ™ní chyba" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "Verze souboru ELD se neshoduje se souÄasnou" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "jen ET_DYN a ET_EXEC mohou být nahráni" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "phentsize souboru ELF má neoÄekávanou velikost" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "chybná třída ELF: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "chybná třída ELF: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "sdílený objektový soubor nelze otevřít" + +@@ -662,11 +663,11 @@ msgstr "namapování segmentu ze sdílen + msgid "cannot map zero-fill pages" + msgstr "nulami vyplnÄ›né stránky nelze mapovat" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "chyba pÅ™i pÅ™emisÅ¥ování" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "chyba pÅ™i vyhledávání symbolu" + +@@ -674,49 +675,40 @@ msgstr "chyba pÅ™i vyhledávání symbol + msgid "cannot extend global scope" + msgstr "globální rozsah nelze rozšířit" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "ČítaÄ generátoru TLS oříznut! Prosím, tuto skuteÄnost nahlaste." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "nelze zavést žádný další objekt se statickým TLS" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "neplatný mód pro dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "pro dlmopen() již není dostupný žádný další jmenný prostor" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "neplatný cílový jmenný prostor v dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "nelze alokovat paměť uvnitÅ™ statického bloku TLS" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "segment nelze kvůli pÅ™emístÄ›ní uÄinit zapisovatelný" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: v objektu %s nenalezen žádný PLTREL\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: pro uložení výsledků pÅ™emístÄ›ní %s není dost pamÄ›ti\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "segment prot nelze po reloc obnovit" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "po pÅ™emístÄ›ní nelze nelze uplatnit dodateÄnou ochranu pamÄ›ti" + +@@ -724,7 +716,7 @@ msgstr "po pÅ™emístÄ›ní nelze nelze up + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT je použito pro kód, který není dynamicky zaveden" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "datové struktury TLS nelze vytvoÅ™it" + +@@ -868,7 +860,7 @@ msgstr "Protože nebyl nalezen název sd + msgid "Can't open directory %s" + msgstr "Adresář %s nelze otevřít" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Vstupní soubor %s nebyl nalezen.\n" +@@ -1000,7 +992,7 @@ msgstr "postrádám souborové argumenty + msgid "No such file or directory" + msgstr "Adresář nebo soubor neexistuje" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "není obyÄejným souborem" + +@@ -1045,65 +1037,70 @@ msgstr "r_debug nelze pÅ™eÄíst" + msgid "cannot read program interpreter" + msgstr "interpretr programu nelze pÅ™eÄíst" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "mapování odkazů nelze naÄíst" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "název objektu nelze pÅ™eÄíst" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "nelze alokovat vyrovnávací paměť pro název objektu" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "Vypíše dynamické sdílené objekty zavedené do procesu." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Je tÅ™eba právÄ› jeden parametr s ID procesu.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "neplatné ID procesu „%s“" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "%s nelze otevřít" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "%s/task nelze otevřít" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "Ätení %s/task nelze pÅ™ipravit" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "neplatné ID vlákna „%s“" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "k procesu %lu se nelze pÅ™ipojit" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "o procesu %lu nelze získat údaje" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "proces %lu není programem ELF" +@@ -1138,27 +1135,27 @@ msgstr "%s není sdíleným objektovým + msgid "more than one dynamic segment\n" + msgstr "více jak jeden dynamický segment\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "O souboru %s nelze získat informace službou fstat().\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Soubor %s je prázdný, nezkontrolováno." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Soubor %s je příliÅ¡ malý, nezkontrolováno." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Soubor %s nelze namapovat.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s není soubor typu ELF – na svém zaÄátku má chybné magické bajty.\n" +@@ -1293,10 +1290,10 @@ msgstr "SDÃLENÃ_OBJEKT [PROF_DATA]" + msgid "failed to load shared object `%s'" + msgstr "sdílený objekt „%s“ se nepodaÅ™ilo zavést" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "interní deskriptory nelze vytvoÅ™it" ++msgid "cannot create internal descriptor" ++msgstr "interní deskriptor nelze vytvoÅ™it" + + #: elf/sprof.c:554 + #, c-format +@@ -1365,11 +1362,6 @@ msgstr "soubor profilovacích dat se nep + msgid "error while closing the profiling data file" + msgstr "chyba bÄ›hem uzavírání souboru profilovacích dat" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "interní deskriptor nelze vytvoÅ™it" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1616,27 +1608,27 @@ msgstr "soket: chyba protokolu pÅ™i přà + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: krátce naÄteno" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "funkce lstat() skonÄila s chybou" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "nelze otevřít" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "funkce fstat() skonÄila s chybou" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "chybný vlastník" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "zapisovatelný nejen pro vlastníka" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "nÄ›kde existuje pevný odkaz" + +@@ -1756,8 +1748,8 @@ msgid "no symbolic name given for end of + msgstr "žádné symbolické jméno nebylo pro konec rozsahu zadáno" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1783,8 +1775,8 @@ msgid "%s: error in state machine" + msgstr "%s: chyba ve stavovém automatu" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1805,7 +1797,7 @@ msgstr "neznámý znak „%s“" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "poÄet bajtů sekvence pro poÄátek a konec rozsahu není stejný: %d vs. %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nepovolené názvy pro rozsah znaků" +@@ -1827,8 +1819,8 @@ msgstr "horní mez rozsahu je menší ne + msgid "resulting bytes for range not representable." + msgstr "výsledné bajty rozsahu nejsou reprezentovatelné." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1892,7 +1884,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: Äíselný kód zemÄ› „%d“ není platný" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1914,8 +1906,8 @@ msgstr "%s: položka „%s“ deklarov + msgid "%s: unknown character in field `%s'" + msgstr "%s: neznámý znak v položce „%s“" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1924,12 +1916,12 @@ msgstr "%s: neznámý znak v položce â + msgid "%s: incomplete `END' line" + msgstr "%s: neúplný řádek „END“" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1939,477 +1931,477 @@ msgstr "%s: neúplný řádek „END†+ msgid "%s: syntax error" + msgstr "%s: chyba syntaxe" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "„%.*s“ již definováno v mapÄ› znaků" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "„%.*s“ již definováno v repertoáru" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "„%.*s“ již definovaná jako Å™adicí symbol" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "„%.*s“ již definováno jako Å™adicí prvek" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: poÅ™adí Å™azení „forward“ (dopÅ™edné) a „backward“ (zpÄ›tné) se navzájem vyluÄují" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: “%s“ zmínÄ›no v definici o váze %d více krát" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: příliÅ¡ mnoho pravidel, jen první položka jich má %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: nedostatek Å™adicích pravidel" + + # prázdné jméno váhy - řádek ignorován +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: Å™etÄ›zec s prázdnou váhou není povolen" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: váhy musí používat stejný symbol výpustky jako jméno" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: příliÅ¡ mnoho hodnot" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "poÅ™adí „%.*s“ již definováno v %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: poÄáteÄní a koncový symbol rozsahu musí být znakem" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: sekvence bajtů prvního a posledního znaku musí mít stejnou délku" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: sekvence bajtů prvního znaku z rozsahu není menší než sekvence posledního znaku" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: výpustky symbolického rozsahu nesmí následovat hned za „order_start“" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: výpustky symbolického rozsahu nesmí být přímo následovány „order_end“" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "„%s“ a „%.*s“ nejsou platné názvy pro symbolický rozsah" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: poÅ™adí pro „%.*s“ již definováno v %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: „%s“ musí být znak" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: „position“ (pozice) musí být použita pro urÄitou úroveň ve vÅ¡ech sekcích, nebo v žádné" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "symbol „%s“ nedefinován" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "symbol „%s“ má stejné kódování jako" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "symbol „%s“" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "chybí definice symbolu „UNDEFINED“" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "příliÅ¡ mnoho chyb, vzdávám to" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: vnoÅ™ené podmínky nejsou podporovány" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: více jak jeden „else“" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: duplicitní definice „%s“" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: duplicitní deklarace sekce „%s“" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: neznámý znak v názvu Å™adicího symbolu" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: neznámý znak ve jménÄ› definice rovnocennosti" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: neznámý znak v hodnotÄ› definice rovnocennosti" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: neznámý symbol „%s“ v definici rovnocennosti" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "chyba pÅ™i pÅ™idávání rovnocenného Å™adicího symbolu" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "duplicitní definice skriptu „%s“" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: jméno sekce „%.*s“ není známo" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: násobná definice poÅ™adí pro sekci „%s“" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: neplatné Äíslo Å™adicího pravidla" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: násobná definice poÅ™adí pro nepojmenovanou sekci" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: chybí klíÄové slovo „order_end“" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: poÅ™adí pro Å™adicí symbol %.*s nebylo jeÅ¡tÄ› definováno" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: poÅ™adí pro Å™adicí prvek %.*s nebylo jeÅ¡tÄ› definováno" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: po %.*s nelze zmÄ›nit poÅ™adí: symbol není znám" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: chybí klíÄové slovo „reorder-end“" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: sekce „%.*s“ není známa" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: chybný symbol <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: nemohu mít „%s“ jako konec výpustkového rozsahu" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: prázdný popis kategorie není dovolen" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: chybí klíÄové slovo „reorder-sections-end“" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: „%s“ bez odpovídajícího „ifdef“ nebo „ifndef“" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: „endif“ bez odpovídajícího „ifdef“ nebo „ifndef“" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "V mapÄ› znaků není urÄena znaková sada" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "znak L'\\u%0*x' ve třídÄ› „%s“ musí být ve třídÄ› „%s“" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "znak L'\\u%0*x' ve třídÄ› „%s“ nesmí být ve třídÄ› „%s“" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "vnitÅ™ní chyba ve funkci %s na řádku %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "znak „%s“ ve třídÄ› „%s“ musí být ve třídÄ› „%s“" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "znak „%s“ ve třídÄ› „%s“ nesmí být ve třídÄ› „%s“" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "znak ve třídÄ› „%s“ není" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "znak nesmí ve třídÄ› „%s“ být" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "znak není ve znakové sadÄ› definován" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "kategorie „digit“ (Äíslice) nemá položky ve skupinách po deseti" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "nedefinovány žádné vstupní Äíslice a žádná standardní jména v mapÄ› znaků" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "ne vÅ¡echny znaky použité v „outdigit“ (výstupní Äíslice) jsou dostupné v mapÄ› znaků" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "ne vÅ¡echny znaky použité v „outdigit“ (výstupní Äíslice) jsou dostupné v repertoáru" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "třída znaků „%s“ již je definována" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "implementaÄní omezení: maximální poÄet tříd znaků je %Zd" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "znaková sada „%s“ již je definována" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "implementaÄní omezení: maximální poÄet znakových sad je %d" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: pole „%s“ neobsahuje pÅ™esnÄ› deset položek" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "horní mez rozsahu je menší než dolní mez " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "úvodní a závÄ›reÄná sekvence znaků rozsahu musí mít stejnou délku" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "sekvence znaků horní meze je menší než sekvence dolní meze" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "pÅ™edÄasný konec definice „translit_ignore“" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "chyba syntaxe" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: syntaktická chyba v definici nové třídy znaků" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: syntaktická chyba v definici nové znakové sady" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "výpustkový rozsah musí být vyznaÄen dvÄ›ma operandy stejného typu" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "s hodnotami symbolického jmenného rozsahu nelze použit absolutní výpustku „...“" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "spolu s hodnotami UCS rozsahu se musí použít Å¡estnáctková symbolická výpustka „..“" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "spolu s hodnotami rozsahu kódů znaku se misí použít absolutní výpustka „...“" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "duplicitní definice mapovaní „%s“" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: sekce „translit_start“ nekonÄí na „translit_end“" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: duplicitní definice „default_missing“" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "pÅ™edchozí definice byla zde" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: nenalezena žádná reprezentovatelná definice „default_missing“" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: znak „%s“ potÅ™ebný jako implicitní hodnota není definován" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: znak „%s“ z mapy znaků není reprezentovatelný jedním bajtem" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: znak „%s“ potÅ™ebný jako implicitní hodnota není reprezentovatelný jedním bajtem" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "nedefinovány žádné výstupní Äíslice a žádná standardní jména v mapÄ› znaků" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: pÅ™episovací data pro národní prostÅ™ední „%s“ nejsou dostupná" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabulka pro třídu „%s“: %lu bajtů\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabulka pro mapu „%s“: %lu bajtů\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabulka se šířkou: %lu bajtů\n" +@@ -3837,17 +3829,22 @@ msgstr "pÅ™idat novou položku „%s“ + msgid " (first)" + msgstr " (první)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, c-format ++msgid "checking for monitored file `%s': %s" ++msgstr "kontroluje se sledovaný soubor „%s“: %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "na soubor „%s“ nelze vykonat stat(): %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "sledovaný soubor „%s“ se zmÄ›nil (zmÄ›na Äasu obsahu)" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "Äistím keÅ¡ %s, Äas %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "zvažuji %s-položku „%s“, životnost %" +@@ -3933,153 +3930,213 @@ msgstr "soket nelze nastavit na uzavÅ™en + msgid "cannot enable socket to accept connections: %s" + msgstr "soket nemůže pÅ™ijímat spojení: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "sledování souboru „%s“ pomocí inotify zakázáno: %s" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "sleduje se soubor „%s“ (%d)" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "sledování adresáře „%s“ pomocí inotify zakázáno: %s" ++ ++#: nscd/connections.c:994 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "sleduje se adresář „%s“ (%d)" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "sleduje se soubor %s pro databázi %s" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" +-msgstr "registrovat trasovací soubor %s pro databázi %s" ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "volání stat nad souborem „%s“ selhalo, zkusí se pozdÄ›ji: %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "poskytnout přístup na deskriptor souboru %d pro %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "žádost staré verze (%d) nelze zpracovat; aktuální verze je %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "požadavek z %ld neobsloužen kvůli chybÄ›jícím právům" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "požadavek z „%s“ [%ld] neobsloužen kvůli chybÄ›jícím právům" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "požadavek neobsloužen kvůli chybÄ›jícím právům" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "výsledek nelze zapsat: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "chyba pÅ™i zjiÅ¡Å¥ování id volajícího: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "/proc/self/cmdline nelze otevřít: %s, vypínám paranoidní režim" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "/proc/self/cmdline nelze naÄíst: %s, vypínám paranoidní režim" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "nelze se pÅ™epnout do starého UID: %s. vypínám paranoidní režim" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "nelze se pÅ™epnout do starého GID: %s, vypínám paranoidní režim" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "nelze se pÅ™epnout do starého pracovního adresáře: %s. vypínám paranoidní režim" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "znovuspuÅ¡tÄ›ní selhalo: %s, paranoidní režim bude vypnut" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "souÄasný pracovní adresář nelze zmÄ›nit na „/“: %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "neúplné Ätení žádosti: „%s“" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "délka klíÄe v žádosti je příliÅ¡ dlouhá: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "neúplné Ätení klíÄe žádosti: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: žádost pÅ™ijata (verze = %d) od PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: žádost pÅ™ijata (verze = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "událost inotify pro „%s“ ignorována (soubor existuje)" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "sledovaný soubor „%s“ byl %s, hlídání se ruší" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "zruÅ¡ení hlídání souboru „%s“ selhalo: %s" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "do sledovaného souboru „%s“ bylo zapsáno" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "sledovaný rodiÄovský adresář „%s“ byl %s, ruší se hlídání „%s“" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "sledovaný soubor „%s“ byl %s, zaÄíná se hlídat" ++ ++#: nscd/connections.c:2053 + #, c-format +-msgid "disabled inotify after read error %d" +-msgstr "po chybÄ› v Ätení %d zakázáno inotify" ++msgid "failed to add file watch `%s`: %s" ++msgstr "hlídání souboru „%s“ se nepodaÅ™ilo zahájit: %s" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "po chybÄ› v Ätení %d bylo zakázáno sledování pomocí inotify" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "promÄ›nnou podmínky nebylo možné inicializovat" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "nebylo možné spustit úklidové vlákno, konÄím" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "nebylo možné spustit jakékoliv výkonné vlákno, konÄím" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "SpuÅ¡tÄ›ní nscd pod uživatelem „%s“ selhalo" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "prvotní získání seznamu skupin (getgrouplist) selhalo" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist (získej seznam skupin) selhalo" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "funkce setgroups() selhala" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "neúplný zápis v %s(): %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "„%s“ nebylo v cache pamÄ›ti pro skupiny nalezeno!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Znovu se nahrává „%s“ do keÅ¡e skupin!" +@@ -4167,7 +4224,7 @@ msgstr "Použije oddÄ›lenou cache pro ka + msgid "Name Service Cache Daemon." + msgstr "NSC (Name Service Cache) démon [pro keÅ¡ování jmenných služeb]." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "chybný poÄet argumentů" +@@ -4200,7 +4257,7 @@ msgstr "nelze zmÄ›nit souÄasný pracovn + msgid "Could not create log file" + msgstr "Soubor s protokolem nelze vytvoÅ™it" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "neúplný zápis" +@@ -4215,7 +4272,7 @@ msgstr "zneplatnÄ›ný ACK (potvrzení) + msgid "invalidation failed" + msgstr "zneplatnÄ›ní selhalo" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Tento pÅ™epínaÄ je dostupný pouze superuživateli!" +@@ -4301,35 +4358,35 @@ msgstr "nelze získat název souÄasnéh + msgid "maximum file size for %s database too small" + msgstr "maximální velikost souboru pro databázi %s je příliÅ¡ malá" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "statistiku nelze zapsat: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "ano" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "ne" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Tento pÅ™epínaÄ je dostupný pouze uživateli root nebo %s!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd neběží!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "statistické údaje nelze naÄíst" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4340,28 +4397,28 @@ msgstr "" + "\n" + "%15d úroveň ladÄ›ní serveru\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus doba bÄ›hu serveru\n" + + # See nscd -g for indentation reasons +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus doba bÄ›hu serveru\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus doba bÄ›hu serveru\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus doba bÄ›hu serveru\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4378,7 +4435,7 @@ msgstr "" + "%15lu vnitÅ™ních restartů\n" + "%15u poÄet znovunaÄtení\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4444,85 +4501,85 @@ msgstr "Znovu naÄítám „%s“ do ke + msgid "Invalid numeric uid \"%s\"!" + msgstr "Neplatné Äíselné UID „%s“" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "OtevÅ™ení spojení do auditního subsystému selhalo: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Nastavení „keep“ kvalifikací selhalo" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) selhalo" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Příprava na vzdání se kvalifikací selhala" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "funkce cap_init() selhala" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Vzdání se kvalifikací selhalo" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc selhala" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Vypnutí „keep“ kvalifikací selhalo" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Nelze zjistit, zda jádro podporuje SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "SpuÅ¡tÄ›ní vlákna AVC selhalo" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "VytvoÅ™ení zámku AVC selhalo" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "SpuÅ¡tÄ›ní AVC selhalo" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "KeÅ¡ přístupových vektorů (AVC) nastartována" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "Chyba pÅ™i dotazování politiky na nedefinované třídy objektů nebo práva." + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "Chyba pÅ™i získávání bezpeÄnostní třídy pro nscd." + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "Chyba pÅ™i pÅ™ekládání názvu práv „%s“ na bit přístupového vektoru." + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Chyba pÅ™i zjiÅ¡Å¥ování kontextu dvojice soketů" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Chyba pÅ™i zjiÅ¡Å¥ování kontextu nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Chyba pÅ™i získávání SID z kontextu" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4584,16 +4641,16 @@ msgstr "Získá záznamy ze správní da + msgid "Enumeration not supported on %s\n" + msgstr "VýÄet není podporován na %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Neznámé jméno databáze" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Podporované databáze:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Neznámá databáze: %s\n" +@@ -4875,7 +4932,7 @@ msgstr "Nepárová ) or \\)" + msgid "No previous regular expression" + msgstr "PÅ™edchozí regulární výraz neexistuje" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parametr je nullový nebo prázdný" + +@@ -7266,6 +7323,15 @@ msgstr "příliÅ¡ mnoho nebo příliÅ¡ d + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: Adresář %s nelze vytvoÅ™it: %s\n" + ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "nelze zavést žádný další objekt se statickým TLS" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: v objektu %s nenalezen žádný PLTREL\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "interní deskriptory nelze vytvoÅ™it" ++ + #~ msgid "compile-time support for database policy missing" + #~ msgstr "podpora pro politiku databází v dobÄ› pÅ™ekladu chybí" + +Index: glibc-2.23/po/da.po +=================================================================== +--- glibc-2.23.orig/po/da.po ++++ glibc-2.23/po/da.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc-2.11.1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2010-11-01 10:37+0100\n" + "Last-Translator: Keld Simonsen \n" + "Language-Team: Danish \n" +@@ -143,10 +143,10 @@ msgstr "" + "[UDFIL [INDFIL]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, fuzzy, c-format +@@ -162,7 +162,7 @@ msgstr "" + "Rapportér fejl eller synspunkter pÃ¥ oversættelsen til .\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -180,7 +180,7 @@ msgstr "" + "TIL NOGEN SPECIEL OPGAVE.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -445,11 +445,11 @@ msgstr "Ændring af adgangsrettigheder f + msgid "Renaming of %s to %s failed" + msgstr "Omdøbning af %s til %s fejlede" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "kan ikke oprette omfangsliste" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "delt objekt er ikke Ã¥bent" + +@@ -524,127 +524,127 @@ msgstr "kan ikke oprette tabel over søg + msgid "cannot stat shared object" + msgstr "kan ikke tage status pÃ¥ delt objekt" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "kan ikke Ã¥bne nulstil-enhed" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "kan ikke oprette delt objektbeskriver" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "kan ikke indlæse fildata" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF-indlæsningskommandos tilpasning er ikke tilpasset siden" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF-indlæsningskommandos adresse/tillæg er ikke tilpasset ordentligt" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "kan ikke oprette TLS-datastrukturer for første trÃ¥d" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "kan ikke behandle TLS-data" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "objektfil har ingen indlæsbare segmenter" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "kan ikke indlæse udførbare programmer dynamisk" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "objektfil har ingen dynamisk sektion" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "delt objekt kan ikke Ã¥bnes med dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "kan ikke allokere hukommelse til programhoved" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "ugyldig opkalder" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "kan ikke ændre hukommelsesbeskyttelser" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "kan ikke oprette udførbar stak som kræves af delt objekt" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "kan ikke lukke filbeskriver" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "for kort fil" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "ugyldigt ELF-hoved" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "Kodning for ELF-fildata er ikke \"big-endian\"" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "Kodning for ELF-fildata er ikke \"little-endian\"" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF-filens version-identitet passer ikke med den aktuelle" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF-filens OS ABI er ugyldigt" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF-filens ABI-version er ugyldig" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "intern fejl" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF-filens version passer ikke med den aktuelle" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "kun ET_DYN og ET_EXEC kan indlæses" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "ELF-filens 'phentsize' er ikke den forventede størrelse" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "forkert ELF-klasse: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "forkert ELF-klasse: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "kan ikke Ã¥bne delt objektfil" + +@@ -656,11 +656,11 @@ msgstr "kunne ikke afbilde segment fra d + msgid "cannot map zero-fill pages" + msgstr "kan ikke mappe nulstil-sider" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "fejl ved relokering" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "fejl ved opslag af symbol" + +@@ -668,51 +668,40 @@ msgstr "fejl ved opslag af symbol" + msgid "cannot extend global scope" + msgstr "kan ikke udvide globalt defineringomrÃ¥de" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "Generationstæller for TLS tilbagestillet! Vær sød at indsende fejlrapport." + +-#: elf/dl-open.c:542 +-#, fuzzy +-#| msgid "cannot allocate memory in static TLS block" +-msgid "cannot load any more object with static TLS" +-msgstr "Kan ikke tildele hukommelse i statisk TLS-blok" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "ugyldig modus for dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "ikke flere navnerum tilgængelige for dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "ugyldigt mÃ¥l-navnerum for dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "Kan ikke tildele hukommelse i statisk TLS-blok" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "kan ikke gøre segment skrivbart for relokering" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: ingen PLTREL fundet i objekt %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: ikke mere hukommelse til at gemme relokeringsresultat for %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "kan ikke genskabe segmentbeskyttelse efter flytning" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "kan ikke udføre yderligere hukommelsesbeskyttelser efter flytning" + +@@ -720,7 +709,7 @@ msgstr "kan ikke udføre yderligere huko + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT brugt i kode er ikke dynamisk indlæst" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "kan ikke oprette datastrukturer for TLS" + +@@ -866,7 +855,7 @@ msgstr "Ingen lænke oprettet da .so-nav + msgid "Can't open directory %s" + msgstr "Kan ikke Ã¥bne katalog %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Inddatafilen %s ikke fundet\n" +@@ -997,7 +986,7 @@ msgstr "mangler filargumenter" + msgid "No such file or directory" + msgstr "Ingen sÃ¥dan fil eller filkatalog" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "ikke en almindelig fil" + +@@ -1047,72 +1036,78 @@ msgstr "kan ikke læse hoved" + msgid "cannot read program interpreter" + msgstr "kan ikke læse arkivhoved" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "kan ikke indlæse fildata" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "kan ikke læse hoved" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "kan ikke allokere hukommelse til programhoved" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid pointer size" + msgid "invalid process ID '%s'" + msgstr "ugyldig størrelse for pegere" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "kan ikke Ã¥bne '%s'" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "kan ikke Ã¥bne '%s'" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "ugyldigt ELF-hoved" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot access '%s'" + msgid "cannot attach to process %lu" + msgstr "kan ikke fÃ¥ adgang til '%s'" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1147,27 +1142,27 @@ msgstr "%s er ikke en delt objektfil (Ty + msgid "more than one dynamic segment\n" + msgstr "mere end ét dynamisk segment\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Kan ikke fstat() fil %s\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Fil %s er tom, ikke afprøvet." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Fil %s er for lille, ikke afprøvet." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Kan ikke mmap fil %s\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s er ikke en ELF-fil - den har de forkerte signaturtegn i starten.\n" +@@ -1295,10 +1290,10 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "kunne ikke indlæse delt objekt '%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "kan ikke oprette interne deskriptorer" ++msgid "cannot create internal descriptor" ++msgstr "kan ikke oprette intern deskriptor" + + #: elf/sprof.c:554 + #, c-format +@@ -1365,11 +1360,6 @@ msgstr "kunne ikke mmap'e filen med prof + msgid "error while closing the profiling data file" + msgstr "fejl ved lukning af datafilen for profilering" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "kan ikke oprette intern deskriptor" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1627,27 +1617,27 @@ msgstr "sokkel: protokolfejl i opsætnin + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: kort indlæsning" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat fejlede" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "kan ikke Ã¥bne" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat fejlede" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "forkert ejer" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "skrivbar af andre end ejer" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "hÃ¥rdlænket et eller andet sted" + +@@ -1767,8 +1757,8 @@ msgid "no symbolic name given for end of + msgstr "ikke noget symbolsk navn givet for slutningen pÃ¥ omrÃ¥det" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1794,8 +1784,8 @@ msgid "%s: error in state machine" + msgstr "%s: fejl i tilstandsmaskinen" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1818,7 +1808,7 @@ msgstr "" + "antal byte for bytesekvens angivet i begyndelsen respektive slutningen af intervallet\n" + "er forskellige: %d respektive %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "ugyldige navne for tegnomrÃ¥de" +@@ -1840,8 +1830,8 @@ msgstr "øvre grænse i omrÃ¥de er mindr + msgid "resulting bytes for range not representable." + msgstr "de resulterende bytes for omrÃ¥det kan ikke repræsenteres." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1905,7 +1895,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: numerisk landekode '%d' er ugyldig" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1927,8 +1917,8 @@ msgstr "%s: felt '%s' erklæret mere end + msgid "%s: unknown character in field `%s'" + msgstr "%s: ukendt tegn i felt '%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1937,12 +1927,12 @@ msgstr "%s: ukendt tegn i felt '%s'" + msgid "%s: incomplete `END' line" + msgstr "%s: ufuldstændig 'END'-linje" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1952,477 +1942,477 @@ msgstr "%s: ufuldstændig 'END'-linje" + msgid "%s: syntax error" + msgstr "%s: syntaksfejl" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "'%.*s' allerede defineret i tegntabel" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "'%.*s' allerede defineret i repertoire" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "'%.*s' allerede defineret som sammenligningssymbol" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "'%.*s' allerede defineret som sammenligningselement" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: sorteringsrækkefølgen 'forward' og 'backward' udelukker hinanden" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: '%s' nævnt mere end én gang i definitionen af vægt %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: for mange regler; første indgang havde kun %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: ikke nok sorteringsregler" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: tom vægt-streng ikke tilladt" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: vægte skal bruge det samme ellipse-symbol som navnet" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: For mange værdier" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "sorteringsorden for '%.*s' allerede defineret ved %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: start- og slut-symbolet for et interval skal stÃ¥ for tegn" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: bytesekvensen for første og sidste tegn skal have samme længde" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: bytesekvensen af det første tegn i omrÃ¥det er ikke mindre end sekvensen for det sidste tegn" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: symbolsk interval-ellipse mÃ¥ ikke komme umiddelbart efter 'order_start'" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: symbolsk interval-ellipse mÃ¥ ikke være fulgt umiddelbart af 'order_end'" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "'%s' og '%.*s' er ikke gyldige navne for symbolsk omrÃ¥de" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: rækkefølge for '%.*s' allerede defineret ved %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: '%s' skal være et tegn" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: 'position' skal bruges pÃ¥ det samme niveau i alle sektioner, ellers ingen" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "symbol '%s' ikke defineret" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "symbol '%s' har den samme kodning som" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "symbol '%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "ingen definition af 'UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "for mange fejl, giver op" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s betingelser i niveauer er ikke understøttet" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: Mere end ét 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: duplikér definition af '%s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: duplikér definition af sektion '%s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: ukendt tegn i sammenligningsymbolnavn" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: ukendt tegn i ækvivalens-definitions-navn" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: ukendt tegn i ækvivalens-definitions-værdi" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: ukendt symbol '%s' i ækvivalens-definition" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "fejl under indsætning af ækvivalens-sammenligningssymbol" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "duplikér definition af skript '%s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: ukendt sektionsnavn '%.*s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: flere definitioner af orden for sektion '%s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: ugyldigt antal sorteringsregler" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: flere definitioner af orden for unavngiven sektion" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: manglende 'order_end' nøgleord" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: rækkefølge for sammenligningssymbol '%.*s' endnu ikke defineret" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: rækkefølge for sammenligningselement '%.*s' endnu ikke defineret" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: kan ikke ordne efter %.*s: symbol ikke kendt" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: manglende 'reorder-end' nøgleord" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: sektion '%.*s' ukendt" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: dÃ¥rligt symbol: <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: kan ikke have '%s' som slutning pÃ¥ ellipse-interval" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: tom kategori-beskrivelse ikke tilladt" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: manglende 'reorder-sections-end' nøgleord" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: \"%s\" uden tilsvarende \"ifdef\" eller \"ifndef\"" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: \"endif\" uden tilsvarende \"ifdef\" eller \"ifndef\"" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Intet tegnsætsnavn angivet i tegntabel" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "tegnet L'\\u%0*x' i klassen '%s' skal være i klassen '%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "tegnet L'\\u%0*x' i klassen '%s' kan ikke være i klassen '%s'" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "intern fejl i %s, linje %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "tegnet '%s' i klassen '%s' skal være i klassen '%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "tegnet '%s' i klassen '%s' mÃ¥ ikke være i klassen '%s'" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "tegnet er ikke i klassen '%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "tegnet mÃ¥ ikke være i klassen '%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "tegnet ikke defineret i tegntabellen" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "'digit' kategori har ikke elementer i grupper af ti" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "ingen inddata-cifre defineret, og ingen af standardnavnene i tegntabellen" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "ikke alle tegn brugt i 'outdigit' er tilstede i tegntabellen" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "ikke alle tegn brugt i 'outdigit' er tilstede i repertoiret" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "tegnklassen '%s' allerede defineret" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "implementationsbegrænsning: ikke flere end %Zd tegnklasser er tilladt" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "tegntabellen '%s' allerede defineret" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "implementationsbegrænsning: ikke flere end %d tegntabeller tilladt" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: felt '%s' indeholder ikke præcis 10 elementer" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "'to'-værdi i intervallet er mindre end 'from'-værdi " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "start og slut tegnsekvens for omrÃ¥der skal have samme længde" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "'to'-værdi tegnfølgen er mindre end 'from'-værdi tegnfølgen" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "For tidlig afslutning pÃ¥ 'translit_ignore' definition" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "syntaksfejl" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: syntaksfejl i definition af ny tegnklasse" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: syntaksfejl i definition af ny tegntabel" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "ellipse-omrÃ¥der skal angives ved to operander af samme type" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "ved symbolske interval-værdier mÃ¥ den absolutte ellipse '...' ikke bruges" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "ved UCS-interval-værdier skal man bruge heksadecimal symbolsk ellipse" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "ved tegnkode interval-værdier skal man bruge absolut ellipse '...'" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "duplikeret definition af afbildning '%s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: 'translit_start'-sektionen slutter ikke med 'translit_end'" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: duplikér definition af 'default_missing'" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "den foregÃ¥ende definition var her" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: ingen repræsenterbar 'default_missing' definition fundet" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: tegnet '%s' ikke defineret, men behøves som standardværdi" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: tegnet '%s' i tegntabel ikke repræsenterbar med én byte" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: Tegnet '%s' brugt som standardværdi er ikke repræsenterbar med én byte" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "ingen uddata-cifre defineret, og ingen af standardnavnene i tegntabellen" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: transliterationsdata fra lokale '%s' ikke tilgængelige" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabel for class \"%s\": %lu byte\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabel for map \"%s\": %lu byte\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabel for width: %lu byte\n" +@@ -3859,17 +3849,23 @@ msgstr "tilføj ny post \"%s\" af typen + msgid " (first)" + msgstr " (første)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "kan ikke Ã¥bne databasefil '%s': %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "kan ikke udføre stat() pÃ¥ fil '%s': %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "formindsker %s cache; tid %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "overvejer %s-post \"%s\", tidsgrænse %" +@@ -3955,154 +3951,217 @@ msgstr "kan ikke fÃ¥ sokkel til at lukke + msgid "cannot enable socket to accept connections: %s" + msgstr "kan ikke fÃ¥ sokkel til at acceptere forbindelser: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Kan ikke Ã¥bne katalog %s" ++ ++#: nscd/connections.c:1022 + #, fuzzy, c-format + #| msgid "no more memory for database '%s'" +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "Ikke mere hukommelse for database '%s'" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "giv adgang til FD %d, for %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "kan ikke hÃ¥ndtere gammel forespørgsel af version %d. Nuværende version er %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "forespørgsel fra %ld ikke behandlet da rettigheder mangler" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "forespørgsel fra \"%s\" [%ld] ikke behandlet da rettigheder mangler" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "forespørgsel ikke behandlet da rettigheder mangler" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "kan ikke udskrive resultat: '%s'" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "fejl ved indhentning af opkalders id: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "kan ikke Ã¥bne /proc/self/cmdline: %s, deaktiverer paranoiatilstand" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "kan ikke læse /proc/self/cmdline: %s, deaktiverer paranoiatilstand" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "kan ikke ændre til foregÃ¥ende UID: %s; deaktiverer paranoiatilstand" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "kan ikke ændre til foregÃ¥ende GID: %s; deaktiverer paranoiatilstand" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "kan ikke ændre til foregÃ¥ende arbejdskatalog: %s; deaktiverer paranoiatilstand" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "genstart mislykkedes: %s; deaktiverer paranoiatilstand" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "kan ikke ændre aktuelt arbejdskatalog to \"/\": %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "afkortet læsning ved læsning af forespørgsel: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "nøglelængde i forespørgsel for lang: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "afkortet læsning ved læsning af forespørgsels-nøgle: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: forespørgsel modtaget (version = %d) fra PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: forespørgsel modtaget (version = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "kunne ikke indlæse delt objekt '%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "deaktiverede inotify efter læsefejl %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "kan ikke initiere betingelsesvariabel" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "kunne ikke starte oprydningstrÃ¥d; afslutter" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "kunne ikke starte nogen arbejdstrÃ¥d; afslutter" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Kunne ikke køre nscd som bruger \"%s\"" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "indledende getgrouplist mislykkedes" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist mislykkedes" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups mislykkedes" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "afkortet skrivning i %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Har ikke fundet '%s' i gruppe-nærbuffer!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Genindlæser '%s' i gruppe-nærbuffer!" +@@ -4194,7 +4253,7 @@ msgstr "Brug separat buffer for hver bru + msgid "Name Service Cache Daemon." + msgstr "Dæmon for bufring af navnetjeneste" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "galt antal argumenter" +@@ -4228,7 +4287,7 @@ msgstr "kan ikke ændre aktuelt arbejdsk + msgid "Could not create log file" + msgstr "Kunne ikke oprette logfil" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "skrivning ufuldstændig" +@@ -4243,7 +4302,7 @@ msgstr "kan ikke læse ugyldiggørelses- + msgid "invalidation failed" + msgstr "ugyldiggørelse mislykkedes" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Kun 'root' har lov til at bruge dette flag!" +@@ -4325,35 +4384,35 @@ msgstr "kan ikke fÃ¥ fat pÃ¥ aktuelt arb + msgid "maximum file size for %s database too small" + msgstr "maksimal filstørrelse for \"%s\"-databasen er for lille" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "kan ikke udskrive statistik: '%s'" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "ja" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "nej" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Kun 'root' eller '%s' har lov til at bruge dette flag!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd kører ikke!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "kan ikke læse statistikdata" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4364,27 +4423,27 @@ msgstr "" + "\n" + "%15d fejlsøgningsniveau for server\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus kørende server\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus kørende server\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus kørende server\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus kørende server\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, fuzzy, c-format + #| msgid "" + #| "%15d current number of threads\n" +@@ -4406,7 +4465,7 @@ msgstr "" + "%15s paranoiatilstand aktiveret\n" + "%15lu genstart internt\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4472,87 +4531,87 @@ msgstr "Genindlæser '%s' i adgangskode- + msgid "Invalid numeric uid \"%s\"!" + msgstr "Ugyldig numerisk bruger-id (uid) \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Kunne ikke Ã¥bne en forbindelse til undersystemet for revision (audit): %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Kunne ikke sætte \"keep\"-kapabiliteter" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) mislykkedes" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Kunne ikke initiere fjernelse af kapabiliteter" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init mislykkedes" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Kunne ikke fjerne kapabiliteter" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc mislykkedes" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Kunne ikke fjerne \"keep\"-kapabiliteter" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Kunne ikke finde ud af om kernen understøtter SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Kunne ikke starte AVC-trÃ¥d" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Kunne ikke oprette AVC-lÃ¥s" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Kunne ikke starte AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Access Vector Cache (AVC) startet" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + #| msgid "Error getting context of nscd" + msgid "Error getting security class for nscd." + msgstr "Kunne ikke hente kontekst for nscd" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Kunne ikke hente kontekst for sokkelpartner (socket peer)" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Kunne ikke hente kontekst for nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Kunne ikke hente \"sid\" fra kontekst" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4616,16 +4675,16 @@ msgstr "Hent poster fra administrativ da + msgid "Enumeration not supported on %s\n" + msgstr "Enumeration er ikke understøttet pÃ¥ %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Ukendt databasenavn" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Understøttede databaser:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Ukendt database: %s\n" +@@ -4920,7 +4979,7 @@ msgstr "Ubalanceret ) eller \\)" + msgid "No previous regular expression" + msgstr "Intet foregÃ¥ende regulært udtryk" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parameter er nul eller ikke sat" + +@@ -7360,15 +7419,24 @@ msgstr "%s: Kan ikke oprette filkatalog + #~ msgid "xtrace: option \\`$1' requires an argument.\\n" + #~ msgstr "xtrace: flaget '$1' skal have et argument.\\n" + ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: ingen PLTREL fundet i objekt %s\n" ++ + #~ msgid "Can't open configuration file %s" + #~ msgstr "Kan ikke Ã¥bne konfigurationsfil %s" + ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "kan ikke oprette interne deskriptorer" ++ + #~ msgid "Try \\`memusage --help' for more information." + #~ msgstr "Prøv 'memusage --help' for mere information." + + #~ msgid "memusage: option \\`$1' requires an argument" + #~ msgstr "memusage: flaget \\\"$1\\\" behøver et argument" + ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "kan ikke udføre stat() pÃ¥ fil '%s': %s" ++ + #~ msgid "invalid value for 'reload-count': %u" + #~ msgstr "ugyldig værdi for 'reload-count': %u" + +Index: glibc-2.23/po/el.po +=================================================================== +--- glibc-2.23.orig/po/el.po ++++ glibc-2.23/po/el.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.2.3\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2001-05-21 19:20:31+0000\n" + "Last-Translator: Nikos Mavroyanopoulos \n" + "Language-Team: Greek \n" +@@ -145,10 +145,10 @@ msgstr "" + "[ΑΡΧΕΙΟ-ΕΞΟΔΟΥ [ΑΡΧΕΙΟ-ΕΙΣΟΔΟΥ]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -158,7 +158,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -176,7 +176,7 @@ msgstr "" + "ΚΑΠΟΙΟ ΣΥΓΚΕΚΡΙΜΕÎΟ ΣΚΟΠΟ.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -447,12 +447,12 @@ msgstr "αποτυχία αντιστοΠ+ msgid "Renaming of %s to %s failed" + msgstr "αποτυχία αντιστοίχισης κεφαλίδων τμημάτων" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + #, fuzzy + msgid "cannot create scope list" + msgstr "αδυναμία ανάγνωσης από τον πελάτη" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + #, fuzzy + msgid "shared object not open" + msgstr "Μη έγκυÏο αντικείμενο για λειτουÏγία" +@@ -537,140 +537,140 @@ msgstr "αδυναμία δημιουÏÎ + msgid "cannot stat shared object" + msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + #, fuzzy + msgid "cannot open zero fill device" + msgstr "αδυναμία ανοίγματος αÏχείου εξόδου" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + #, fuzzy + msgid "cannot create shared object descriptor" + msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + #, fuzzy + msgid "cannot read file data" + msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + #, fuzzy + msgid "cannot handle TLS data" + msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + #, fuzzy + msgid "cannot allocate memory for program header" + msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + msgid "invalid caller" + msgstr "μη έγκυÏος χÏόνος αναπήδης" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + #, fuzzy + msgid "cannot change memory protections" + msgstr "αδυναμία επεξεÏγασίας των Ï€ÏοδιαγÏαφών σειÏάς" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + #, fuzzy + msgid "cannot enable executable stack as shared object requires" + msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + #| msgid "cannot create internal descriptor" + msgid "cannot close file descriptor" + msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + #, fuzzy + msgid "file too short" + msgstr "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ αÏχείο" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + #, fuzzy + msgid "invalid ELF header" + msgstr "μη έγκυÏος χÏόνος λήξης" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + #, fuzzy + msgid "internal error" + msgstr "ΕσωτεÏικό σφάλμα NIS" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + #, fuzzy + msgid "cannot open shared object file" + msgstr "αδυναμία ανοίγματος αÏχείου εξόδου" +@@ -685,13 +685,13 @@ msgstr "αποτυχία φόÏÏ„Ï‰ÏƒÎ·Ï + msgid "cannot map zero-fill pages" + msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + #, fuzzy + #| msgid "Authentication error" + msgid "relocation error" + msgstr "Σφάλμα πιστοποίησης" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -699,55 +699,45 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "" + +-#: elf/dl-open.c:542 +-#, fuzzy +-msgid "cannot load any more object with static TLS" +-msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "μη έγκυÏη κατάσταση για την dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + #| msgid "invalid mode for dlopen()" + msgid "invalid target namespace in dlmopen()" + msgstr "μη έγκυÏη κατάσταση για την dlopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + #| msgid "Cannot allocate memory" + msgid "cannot allocate memory in static TLS block" + msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + #, fuzzy + msgid "cannot restore segment prot after reloc" + msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + #, fuzzy + msgid "cannot apply additional memory protection after relocation" + msgstr "αδυναμία επεξεÏγασίας των Ï€ÏοδιαγÏαφών σειÏάς" +@@ -756,7 +746,7 @@ msgstr "αδυναμία επεξεÏγΠ+ msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "Το RTLD_NEXT που χÏησιμοποιείται στον κώδικα δεν φοÏτώθηκε δυναμικά" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + #, fuzzy + #| msgid "cannot create internal descriptors" + msgid "cannot create TLS data structures" +@@ -906,7 +896,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κατάλογος %s: %s\n" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, fuzzy, c-format + msgid "Input file %s not found.\n" + msgstr "το αÏχείο πίνακα ÏεποÏτοÏίου `%s' δε βÏέθηκε" +@@ -1041,7 +1031,7 @@ msgstr "αδÏνατη η απελευθ + msgid "No such file or directory" + msgstr "Δεν υπάÏχει τέτοιο αÏχείο ή κατάλογος" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "δεν είναι κανονικό αÏχείο" + +@@ -1089,68 +1079,73 @@ msgstr "αδυναμία ανάγνωσΠ+ msgid "cannot read program interpreter" + msgstr "αδυναμία ανάγνωσης καταλόγου locale `%s'" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + msgid "cannot read link map" + msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + msgid "cannot read object name" + msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + msgid "invalid process ID '%s'" + msgstr "μη έγκυÏο όνομα μήνα" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "αδυναμία ανοίγματος του `%s'" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "αδυναμία ανοίγματος του `%s'" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + msgid "cannot prepare reading %s/task" + msgstr "αδυναμία ανάγνωσης από τον πελάτη" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + msgid "invalid thread ID '%s'" + msgstr "μη έγκυÏος χÏόνος λήξης" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot find C preprocessor: %s \n" + msgid "cannot attach to process %lu" + msgstr "δε βÏέθηκε ο Ï€ÏοεπεξεÏγαστής C: %s \n" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1185,27 +1180,27 @@ msgstr "" + msgid "more than one dynamic segment\n" + msgstr "" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, fuzzy, c-format + msgid "Cannot fstat file %s.\n" + msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Αδυναμία μεταφοÏάς στη μνήμη (mmap) του αÏχείου %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "" +@@ -1337,10 +1332,10 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "αδυναμία δημιουÏγίας εσωτεÏικών πεÏιγÏαφέων" ++msgid "cannot create internal descriptor" ++msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" + + #: elf/sprof.c:554 + #, c-format +@@ -1410,11 +1405,6 @@ msgstr "αποτυχία στη λειτ + msgid "error while closing the profiling data file" + msgstr "σφάλμα κατά το κλείσιμο του αÏχείου δεδομένων Ï€Ïοφίλ" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1681,27 +1671,27 @@ msgstr "socket: αποτυχία Ï€ÏÏ‰Ï + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "το lstat απέτυχε" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "αδυναμία ανοίγματος" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "το fstat απέτυχε" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "κακός ιδιοκτήτης" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "το αÏχείο είναι εγγÏάψιμο και από άλλους εκτός του ιδιοκτήτη" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "σθεναÏά συνδεδεμένο κάπου" + +@@ -1826,8 +1816,8 @@ msgid "no symbolic name given for end of + msgstr "δεν δώθηκε συμβολικό όνομα για το τέλος πεδίου" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1853,8 +1843,8 @@ msgid "%s: error in state machine" + msgstr "%s: Σφάλμα στο μηχανισμό κατάστασης" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1875,7 +1865,7 @@ msgstr "άγνωστος χαÏÎ±ÎºÏ„Î®Ï + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + #, fuzzy + msgid "invalid names for character range" +@@ -1900,8 +1890,8 @@ msgstr "το επάνω ÏŒÏιο στο + msgid "resulting bytes for range not representable." + msgstr "" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1965,7 +1955,7 @@ msgid "%s: numeric country code `%d' not + msgstr "" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1987,8 +1977,8 @@ msgstr "" + msgid "%s: unknown character in field `%s'" + msgstr "άγνωστος χαÏακτήÏας `%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1997,12 +1987,12 @@ msgstr "άγνωστος χαÏÎ±ÎºÏ„Î®Ï + msgid "%s: incomplete `END' line" + msgstr "" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -2012,480 +2002,480 @@ msgstr "" + msgid "%s: syntax error" + msgstr "" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: οι κατευθÏνσεις ταξινόμησης `forward' και `backward' είναι αμοιβαία αποκλειώμενες" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, fuzzy, c-format + msgid "%s: empty weight string not allowed" + msgstr "άδεια βαÏÏτητα ονόματος: γÏαμμή αγνοήθηκε" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, fuzzy, c-format + msgid "%s: too many values" + msgstr "%s: ΠάÏα πολλά οÏίσματα\n" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, fuzzy, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, fuzzy, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "Τα <%s> και <%s> είναι μη αποδεκτά ονόματα για ÏŒÏιο" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, fuzzy, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: το `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, fuzzy, c-format + msgid "symbol `%s' not defined" + msgstr "άγνωστο σÏμβολο `%.*s': γÏαμμή αγνοήθηκε" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "κανένας οÏισμός του `UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + #| msgid "Operation not supported" + msgid "%s: nested conditionals not supported" + msgstr "Η λειτουÏγία δεν υποστηÏίζεται" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: More than one -l option specified\n" + msgid "%s: more than one 'else'" + msgstr "%s: ΠεÏισσότεÏες από μία -l επιλογές καθοÏίστηκαν\n" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, fuzzy, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, fuzzy, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "συντακτικό σφάλμα στον οÏισμό μετατÏοπής χαÏακτήÏων" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "συντακτικό σφάλμα στον οÏισμό μετατÏοπής χαÏακτήÏων" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, fuzzy, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "άγνωστο σÏμβολο `%.*s': γÏαμμή αγνοήθηκε" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, fuzzy, c-format + msgid "duplicate definition of script `%s'" + msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "άγνωστο σετ `%s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, fuzzy, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, fuzzy, c-format + msgid "No character set name specified in charmap" + msgstr "ο χαÏακτήÏας δεν οÏίστηκε στον χάÏτη χαÏακτήÏων" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, fuzzy, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' Ï€Ïέπει να είναι στην κλάση `%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, fuzzy, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' δεν Ï€Ïέπει να είναι στην κλάση `%s'" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "εσωτεÏικό σφάλμα στο %s, γÏαμμή %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' Ï€Ïέπει να είναι στην κλάση `%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' δεν Ï€Ïέπει να είναι στην κλάση `%s'" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "Ο χαÏακτήÏας δεν είναι στην κλάση `%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "Ο χαÏακτήÏας δεν Ï€Ïέπει να είναι στην κλάση `%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "ο χαÏακτήÏας δεν οÏίστηκε στον χάÏτη χαÏακτήÏων" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "η κλάση χαÏακτήÏων `%s' οÏίστηκε ήδη" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, fuzzy, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "ÏŒÏιο υλοποίησης: δεν επιτÏέπονται πάνω από %d κλάσεις χαÏακτήÏων" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "ÏŒÏιο υλοποίησης: δεν επιτÏέπονται πάνω από %d χάÏτες χαÏακτήÏων" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + #, fuzzy + msgid "premature end of `translit_ignore' definition" + msgstr "ΠÏόωÏο τέλος της κανονικής έκφÏασης" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + #, fuzzy + msgid "syntax error" + msgstr "Σφάλμα στον δίαυλο(bus)" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, fuzzy, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "συντακτικό σφάλμα στον οÏισμό της νέας κλάσης χαÏακτήÏων" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, fuzzy, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "συντακτικό σφάλμα στον οÏισμό του νέο χάÏτη χαÏακτήÏων" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, fuzzy, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: διπλός οÏισμός `default_missing'" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, fuzzy, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "ο χαÏακτήÏας `%s' δεν οÏίστηκε ενώ χÏειάζεται σαν Ï€ÏοκαθοÏισμένη τιμή" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, fuzzy, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: αδÏνατο το άνοιγμα του %s: %m\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -3924,17 +3914,23 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "αδυναμία ανοίγματος αÏχείου βάσεως δεδομένων `%s': %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -4029,159 +4025,220 @@ msgstr "αδÏνατη η ενεÏγοπ + msgid "cannot enable socket to accept connections: %s" + msgstr "αδÏνατη η ενεÏγοποίηση υποδοχής για αποδοχή συνδέσεων: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "disabled inotify-based monitoring for directory `%s': %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κατάλογος %s: %s\n" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "δε μποÏεί να εξυπηÏετηθεί η αίτηση παλαιάς έκδοσης %d, η Ï„Ïέχουσα έκδοση είναι %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "αδυναμία εγγÏαφής αποτελέσματος: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, fuzzy, c-format + #| msgid "error getting callers id: %s" + msgid "error getting caller's id: %s" + msgstr "σφάλμα στη λήψη της ταυτότητας Î±Ï…Ï„Î¿Ï Ï€Î¿Ï… κάλεσε: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "σÏντομη ανάγνωση κατά την αίτηση ανάγνωσης: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, fuzzy, c-format + msgid "key length in request too long: %d" + msgstr "το μήκος ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î·Î½ αίτηση είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿: %Zd" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "σÏντομη ανάγνωση κατά την ανάγνωση του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Î¯Ï„Î·ÏƒÎ·Ï‚: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, fuzzy, c-format + #| msgid "handle_request: request received (Version = %d)" + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: λήψη αίτησης (Έκδοση = %d)" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: λήψη αίτησης (Έκδοση = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + #, fuzzy + #| msgid "lstat failed" + msgid "getgrouplist failed" + msgstr "το lstat απέτυχε" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + #, fuzzy + #| msgid "fstat failed" + msgid "setgroups failed" + msgstr "το fstat απέτυχε" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "σÏντομη ανάγνωση στο %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη ομάδας!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, fuzzy, c-format + #| msgid "Haven't found \"%s\" in group cache!" + msgid "Reloading \"%s\" in group cache!" +@@ -4277,7 +4334,7 @@ msgstr "ΧÏήση ξεχωÏιστής + msgid "Name Service Cache Daemon." + msgstr "Λανθάνουσα ΥπηÏεσία ΕξυπηÏέτησης Αντιστοιχιών Ονομάτων." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "λάθος αÏιθμός παÏαμέτÏων" +@@ -4314,7 +4371,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "ΑδÏνατη η δημιουÏγία αÏχείου καταγÏαφών \"%s\"" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "μη πλήÏης εγγÏαφή" +@@ -4330,7 +4387,7 @@ msgstr "αδÏνατη η φόÏτωση + msgid "invalidation failed" + msgstr "Η Ï„Ïοποποίηση απέτυχε" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Μόνο ο διαχειÏιστής επιτÏέπετε να χÏησιμοποιήσει αυτήν την επιλογή!" +@@ -4413,36 +4470,36 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "αδυναμία εγγÏαφής στατιστικών: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, fuzzy, c-format + #| msgid "Only root is allowed to use this option!" + msgid "Only root or %s is allowed to use this option!" + msgstr "Μόνο ο διαχειÏιστής επιτÏέπετε να χÏησιμοποιήσει αυτήν την επιλογή!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "το nscd δεν εκτελείτε!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "αδÏνατη η ανάγνωση δεδομένων στατιστικών" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4453,27 +4510,27 @@ msgstr "" + "\n" + "%15d επίπεδο εκσφαλμάτωσης εξυπηÏετητή\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4484,7 +4541,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + #| msgid "" + #| "\n" +@@ -4555,93 +4612,93 @@ msgstr "Δε βÏέθηκε το \"%s\" + msgid "Invalid numeric uid \"%s\"!" + msgstr "" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + #| msgid "fstat failed" + msgid "cap_init failed" + msgstr "το fstat απέτυχε" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + #| msgid "cache_set: victim alloc failed" + msgid "cap_set_proc failed" + msgstr "cache_set: η εκχώÏηση θÏματος απέτυχε" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + #| msgid "Unable to create callback" + msgid "Failed to create AVC lock" + msgstr "ΑδÏνατη η δημιουÏγία διαδικασίας ανάδÏασης" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + #, fuzzy + #| msgid "error getting callers id: %s" + msgid "Error getting context of nscd" + msgstr "σφάλμα στη λήψη της ταυτότητας Î±Ï…Ï„Î¿Ï Ï€Î¿Ï… κάλεσε: %s" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4698,17 +4755,17 @@ msgstr "getent - λήψη ÎºÎ±Ï„Î±Ï‡Ï‰Ï + msgid "Enumeration not supported on %s\n" + msgstr "Η λειτουÏγία δεν υποστηÏίζεται" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + #| msgid "Unknown database: %s\n" + msgid "Unknown database name" + msgstr "Άγνωστη βάση δεδομένων: %s\n" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Άγνωστη βάση δεδομένων: %s\n" +@@ -5003,7 +5060,7 @@ msgstr "ΑταίÏιαστο ) ή \\)" + msgid "No previous regular expression" + msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +@@ -7743,6 +7800,13 @@ msgstr "%s: Δεν είναι δυνατ + #~ msgid "broadcast: ioctl (get interface flags)" + #~ msgstr "broadcast: ioctl (λήψη ενδείξεις υποδοχής)" + ++#, fuzzy ++#~ msgid "cannot load shared object file" ++#~ msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" ++ ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s" ++ + #~ msgid "character `%s' not defined while needed as default value" + #~ msgstr "ο χαÏακτήÏας `%s' δεν οÏίστηκε ενώ χÏειάζεται σαν Ï€ÏοκαθοÏισμένη τιμή" + +Index: glibc-2.23/po/eo.po +=================================================================== +--- glibc-2.23.orig/po/eo.po ++++ glibc-2.23/po/eo.po +@@ -9,7 +9,7 @@ msgid "" + msgstr "" + "Project-Id-Version: libc 2.19.90\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2014-08-31 23:02+0200\n" + "Last-Translator: Benno Schulenberg \n" + "Language-Team: Esperanto \n" +@@ -149,10 +149,10 @@ msgstr "" + "[ELIGDOSIERO [ENIGDOSIERO...]]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -164,7 +164,7 @@ msgstr "" + " %s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -181,7 +181,7 @@ msgstr "" + "DoniÄas NENIA GARANTIO; eĉ ne por KOMERCKVALITO aÅ­ ADEKVATECO POR IU CELO.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -427,11 +427,11 @@ msgstr "Malsukcesis ÅanÄi la atingperm + msgid "Renaming of %s to %s failed" + msgstr "Malsukcesis alinomi %s al %s" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "ne eblas krei ampleksliston" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "komuna objekto ne estas malferma" + +@@ -504,127 +504,127 @@ msgstr "" + msgid "cannot stat shared object" + msgstr "malsukcesis eltrovi statinformon pri komuna objekto" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "ne eblas legi dosierdatumojn" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "nevalida vokanto" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "ne eblas fermi dosierpriaĵon" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "dosiero tro mallongas" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "nevalida ELF-ĉapo" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "**interna programmiso**" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "malÄusta ELF-klaso: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "malÄusta ELF-klaso: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "ne eblas malfermi komunan objektdosieron" + +@@ -636,11 +636,11 @@ msgstr "" + msgid "cannot map zero-fill pages" + msgstr "" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -648,49 +648,40 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "nevalida moduso por 'dlopen()'" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "" + +@@ -698,7 +689,7 @@ msgstr "" + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "" + +@@ -845,7 +836,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "ne eblas malfermi dosierujon %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Eniga dosiero %s ne troviÄas.\n" +@@ -969,7 +960,7 @@ msgstr "mankas dosieraj argumentoj" + msgid "No such file or directory" + msgstr "Dosiero aÅ­ dosierujo ne ekzistas" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "ne estas normala dosiero" + +@@ -1014,65 +1005,71 @@ msgstr "ne eblas legi 'r_debug'" + msgid "cannot read program interpreter" + msgstr "ne eblas legi programinterpretilon" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "ne eblas legi ligojmapon" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "ne eblas legi objektnomon" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "unable to allocate buffer for input" ++msgid "cannot allocate buffer for object name" ++msgstr "mankas sufiĉa memoro por eniga bufro" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "nevalida indiko de procezo: '%s'" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "ne eblas malfermi %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "ne eblas malfermi %s/task" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "ne eblas prepari legado de %s/task" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "ne eblas ekhavi informon pri procezo %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "procezo %lu ne estas ELF-programo" +@@ -1107,27 +1104,27 @@ msgstr "" + msgid "more than one dynamic segment\n" + msgstr "pli ol unu dinamika segmento\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Malsukcesis eltrovi statinformon pri %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Dosiero %s vakas; ne kontroliÄas." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Dosiero %s tro malgrandas; ne kontroliÄas." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Malsukcesis meti tutan dosieron %s en memoro.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "" +@@ -1246,9 +1243,9 @@ msgstr "" + msgid "failed to load shared object `%s'" + msgstr "" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "" + + #: elf/sprof.c:554 +@@ -1316,11 +1313,6 @@ msgstr "" + msgid "error while closing the profiling data file" + msgstr "" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1570,27 +1562,27 @@ msgstr "" + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "malsukcesis eltrovi statinformon" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "ne eblas malfermi" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "malsukcesis eltrovi statinformon" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "" + +@@ -1710,8 +1702,8 @@ msgid "no symbolic name given for end of + msgstr "ne indikatas simbola nomo por fino de gamo" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1737,8 +1729,8 @@ msgid "%s: error in state machine" + msgstr "%s: **interna programmiso** en statmaÅino" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1759,7 +1751,7 @@ msgstr "nekonata signo «%s»" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nevalidaj nomoj por signogamo" +@@ -1783,8 +1775,8 @@ msgstr "suba limo en gamo pli grandas ol + msgid "resulting bytes for range not representable." + msgstr "" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1848,7 +1840,7 @@ msgid "%s: numeric country code `%d' not + msgstr "" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1870,8 +1862,8 @@ msgstr "" + msgid "%s: unknown character in field `%s'" + msgstr "" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1880,12 +1872,12 @@ msgstr "" + msgid "%s: incomplete `END' line" + msgstr "" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1895,476 +1887,476 @@ msgstr "" + msgid "%s: syntax error" + msgstr "%s: sintakseraro" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "simbolo «%s» havas la saman kodon kiel" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "simbolo «%s»" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: pli ol unu 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "**interna programmiso** en %s, linio %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "trofrua fino de difino de 'translit_ignore'" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "sintakseraro" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -3744,17 +3736,23 @@ msgstr "aldoni novan eron \"%s\" de tipo + msgid " (first)" + msgstr " (unua)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 +-#, c-format +-msgid "cannot stat() file `%s': %s" ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "malsukcesis eltrovi statinformon pri dosiero '%s': %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "pritondo de %s-kaÅmemoro; tempo %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "konsidero de %s-ero \"%s\", templimo %" +@@ -3840,153 +3838,215 @@ msgstr "" + msgid "cannot enable socket to accept connections: %s" + msgstr "" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "ne eblas malfermi dosierujon %s" ++ ++#: nscd/connections.c:1022 ++#, fuzzy, c-format ++#| msgid "maximum file size for %s database too small" ++msgid "monitoring file %s for database %s" ++msgstr "tro malgrandas maksimuma dosiergrando por %s-datumbazo" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "ne eblas skribi rezulton: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "ignored inotify event for `%s` (file exists)" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "" +@@ -4074,7 +4134,7 @@ msgstr "uzi apartan kaÅmemoron por ĉiu + msgid "Name Service Cache Daemon." + msgstr "Nomserva kaÅmemora servo." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "malÄusta nombro de argumentoj" +@@ -4107,7 +4167,7 @@ msgstr "ne eblas ÅanÄi aktualan dosier + msgid "Could not create log file" + msgstr "ne eblas krei protokolan dosieron" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "skribo ne kompletiÄis" +@@ -4122,7 +4182,7 @@ msgstr "ne eblas legi malvalidigan konse + msgid "invalidation failed" + msgstr "malsukcesis malvalidigo" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Nur sistemestro rajtas uzi ĉi tiun opcion!" +@@ -4207,35 +4267,35 @@ msgstr "ne eblas eltrovi aktualan dosier + msgid "maximum file size for %s database too small" + msgstr "tro malgrandas maksimuma dosiergrando por %s-datumbazo" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "ne eblas skribi statistikojn: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "jes" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "ne" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Nur sistemestro aÅ­ %s rajtas uzi ĉi tiun opcion!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "'nscd' ne rulas!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "ne eblas legi statistikajn datumojn" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4243,27 +4303,27 @@ msgid "" + "%15d server debug level\n" + msgstr "" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4274,7 +4334,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4317,85 +4377,85 @@ msgstr "ReÅargo de \"%s\" en pasvortan + msgid "Invalid numeric uid \"%s\"!" + msgstr "Nevalida numera UID \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4447,16 +4507,16 @@ msgstr "Prenas erojn el administrativa d + msgid "Enumeration not supported on %s\n" + msgstr "listigo ne subtenatas en dosiero '%s'\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "nekonata datumbaznomo" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Subtenataj datumbazoj:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "nekonata datumbazo: %s\n" +@@ -4729,7 +4789,7 @@ msgstr "Senpara ) aÅ­ \\)" + msgid "No previous regular expression" + msgstr "Mankas antaÅ­a regulesprimo" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +Index: glibc-2.23/po/es.po +=================================================================== +--- glibc-2.23.orig/po/es.po ++++ glibc-2.23/po/es.po +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: GNU libc 2.19.90\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2014-08-25 16:18-0700\n" + "Last-Translator: Santiago Vila Doncel \n" + "Language-Team: Spanish \n" +@@ -164,10 +164,10 @@ msgstr "" + "[FICHERO-SALIDA [FICHERO-ENTRADA]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -179,7 +179,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -197,7 +197,7 @@ msgstr "" + "FIN DETERMINADO.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -457,11 +457,11 @@ msgstr "El cambio de los derechos de acc + msgid "Renaming of %s to %s failed" + msgstr "Falló el renombramiento de %s a %s" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "no se puede crear la lista de ámbito" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "el objeto compartido no está abierto" + +@@ -541,127 +541,127 @@ msgstr "no se puede crear la matriz de l + msgid "cannot stat shared object" + msgstr "no se puede efectuar `stat' sobre el objeto compartido" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "no se puede abrir el dispositivo de `zero fill'" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "no se puede crear el descriptor del objeto compartido" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "no se pueden leer los datos del fichero" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "El alineamiento de la orden de carga ELF no está alineada a la página" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "La dirección/desplazamiento de la orden de carga ELF no está bien alineada" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "no se pueden crear las estructuras de datos TLS para el hilo inicial" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "no se pueden manejar los datos de TLS" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "el fichero objeto no tiene segmentos cargables" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "no se puede cargar el ejecutable dinámicamente" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "el fichero objeto no tiene sección dinámica" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "no se puede efectuar dlopen() sobre el objeto compartido" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "no se puede asignar memoria para la cabecera del programa" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "llamante inválido" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "no se pueden cambiar las protecciones de memoria" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "no se puede activar la pila ejecutable tal y como el objeto compartido necesita" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "no se puede cerrar el descriptor de fichero" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "fichero demasiado corto" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "cabecera ELF inválida" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "La codificación de los datos del fichero ELF no es `big-endian'" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "La codificación de los datos del fichero ELF no es `little-endian'" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "La identificación de versión del fichero ELF no encaja con la actual" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ABI del OS del fichero ELF inválida" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "Versión de ABI del fichero ELF inválida" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "relleno con no ceros en e_ident" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "error interno" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "La versión del fichero ELF no coincide con la actual" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "solamente pueden cargarse ET_DYN y ET_EXEC" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "El `phentsize' del fichero ELF no es el tamaño esperado" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "clase ELF errónea: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "clase ELF errónea: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "no se puede abrir el fichero del objeto compartido" + +@@ -673,11 +673,11 @@ msgstr "fallo al asignar un segmento del + msgid "cannot map zero-fill pages" + msgstr "no se pueden asignar páginas de tipo `zero-fill'" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "error de relocalización" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "error de búsqueda de símbolo" + +@@ -685,50 +685,41 @@ msgstr "error de búsqueda de símbolo" + msgid "cannot extend global scope" + msgstr "no se puede extender el ámbito global" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "¡El contador de generaciones TLS ha vuelto a cero! Por favor envíe un informe." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "no se puede cargar ningún objeto más con TLS estático" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "modo inválido para dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "no hay más espacios de nombres disponibles para dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "espacio de nombres objetivo inválido para dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "No se pudo asignar memoria en el bloque TLS estático" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "no se puede hacer el segmento escribible para su relocalización" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s no se encontró ningún PLTREL en el objeto %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: memoria agotada para almacenar los resultados de relocalización para %s\n" + + # Se admiten sugerencias. sv +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "no se puede restaurar el `prot' del segmento después de la relocalización" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "no se pueden aplicar protecciones de memoria adicionales después de relocalizar" + +@@ -736,7 +727,7 @@ msgstr "no se pueden aplicar proteccione + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "Se ha usado RTLD_NEXT en una parte del código que no se cargó dinámicamente" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "no se pueden crear las estructuras de datos TLS" + +@@ -884,7 +875,7 @@ msgstr "No se creó el enlace ya que no + msgid "Can't open directory %s" + msgstr "No se puede abrir el directorio %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "No se encontró el fichero de entrada %s.\n" +@@ -1016,7 +1007,7 @@ msgid "No such file or directory" + msgstr "No existe el fichero o el directorio" + + # Antes decía: .rhosts no es un fichero regular +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "no es un fichero regular" + +@@ -1061,65 +1052,71 @@ msgstr "no se puede leer r_debug" + msgid "cannot read program interpreter" + msgstr "no se puede leer el intérprete del programa" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "no se puede leer la asignación de enlace" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "no se puede leer el nombre del objeto" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "no se puede asignar memoria para la cabecera del programa" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "Lista los objetos compartidos dinámicos cargados en este proceso." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Se requiere exactamente un parámetro con el ID de proceso.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "ID de proceso inválido '%s'" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "no se puede abrir %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "no se puede abrir %s/tarea" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "no se puede preparar la lectura de %s/tarea" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "ID de hilo inválido '%s'" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "no se puede asociar al proceso %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "no se puede obtener información sobre el proceso %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "el proceso %lu no es un programa ELF" +@@ -1154,27 +1151,27 @@ msgstr "%s no es un fichero `shared obje + msgid "more than one dynamic segment\n" + msgstr "más de un segmento dinámico\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "No se puede efectuar `fstat' sobre el fichero %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "El fichero %s está vacío, no se comprueba." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "El fichero %s es demasiado pequeño, no se comprueba." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "No se puede efectuar `mmap' sobre el fichero %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s no es un fichero ELF - tiene los bytes mágicos equivocados en el comienzo.\n" +@@ -1326,10 +1323,10 @@ msgstr "SHOBJ [DATOSPROF]" + msgid "failed to load shared object `%s'" + msgstr "fallo al cargar el objeto compartido `%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "no se pueden crear descriptores internos" ++msgid "cannot create internal descriptor" ++msgstr "no se puede crear un descriptor interno" + + #: elf/sprof.c:554 + #, c-format +@@ -1401,11 +1398,6 @@ msgstr "no se pudo hacer mmap con el fic + msgid "error while closing the profiling data file" + msgstr "error al cerrar el fichero de datos de `profiling'" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "no se puede crear un descriptor interno" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1665,30 +1657,30 @@ msgstr "rcmd: %s: lectura insuficiente" + + # ## Lo mismo con lstat. sv + # Antes decía: No se pudo obtener información (lstat) del fichero .rhosts +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat ha fallado" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "no se puede abrir" + + # ## Sugerencia: Añadir (fstat) después de información. sv + # Antes decía: No se pudo obtener información (fstat) del fichero .rhosts +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat ha fallado" + + # Antes decía: El propietario del fichero .rhosts no es válido +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "propietario incorrecto" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "puede ser modificado por otros además del propietario" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "hay un enlace duro en alguna parte" + +@@ -1812,8 +1804,8 @@ msgid "no symbolic name given for end of + msgstr "no se ha especificado ningún nombre simbólico para el final del rango" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1840,8 +1832,8 @@ msgid "%s: error in state machine" + msgstr "%s: error en la máquina de estados" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1864,7 +1856,7 @@ msgstr "" + "el número de bytes para la sucesión de bytes de comienzo y final del rango\n" + "no es el mismo: %d vs %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nombres inválidos para el rango de caracteres" +@@ -1886,8 +1878,8 @@ msgstr "el límite superior del rango es + msgid "resulting bytes for range not representable." + msgstr "los bytes resultantes para el rango no son representables." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1953,7 +1945,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: el código numérico de país `%d' no es válido" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1975,8 +1967,8 @@ msgstr "%s: el campo `%s' ha sido declar + msgid "%s: unknown character in field `%s'" + msgstr "%s: carácter desconocido en el campo `%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1985,12 +1977,12 @@ msgstr "%s: carácter desconocido en el + msgid "%s: incomplete `END' line" + msgstr "%s: línea `END' incompleta" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -2000,463 +1992,463 @@ msgstr "%s: línea `END' incompleta" + msgid "%s: syntax error" + msgstr "%s: error de sintaxis" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' ya está definido en la tabla de caracteres" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' ya está definido en el repertorio" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' ya está definido como símbolo de ordenación" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' ya está definido como elemento de ordenación" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: `forward' y `backward' se excluyen mutuamente" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: `%s' mencionado más de una vez en la definición del peso %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: demasiadas reglas; la primera entrada solamente tenía %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: no hay suficientes reglas de ordenación" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: no se permite una cadena de peso vacía" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: los pesos deben usar el mismo símbolo de elipsis que el nombre" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: demasiados valores" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "el orden para `%.*s' ya está definido en %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: los símbolos de comienzo y de final de un rango deben representar caracteres" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "" + "%s: los órdenes de byte de los caracteres primero y último deben tener\n" + "la misma longitud" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + "%s: el orden de byte del primer carácter del rango no es menor que\n" + "el del último carácter" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: el rango simbólico de la elipsis no debe seguir directamente a `order_start'" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: el rango simbólico de la elipsis no debe estar directamente seguido por `order_end'" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' y `%.*s' no son nombres válidos para el rango simbólico" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: el orden para `%.*s' ya está definido en %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' debe ser un carácter" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `position' debe utilizarse para un nivel específico en todas las secciones o en ninguna" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "el símbolo `%s' no está definido" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "el símbolo `%s' tiene la misma codificación que" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "el símbolo `%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "no hay definición para `UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "demasiados errores; abandono" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: no se admiten condicionales anidados" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: más de un 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: definición duplicada de `%s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: definición duplicada de la sección `%s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: carácter desconocido en el nombre de un símbolo de ordenación" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: carácter desconocido en el nombre de definición equivalente" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: carácter desconocido en el valor de definición equivalente" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: símbolo desconocido `%s' en la definición equivalente" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "error al añadir símbolo de ordenación equivalente" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "definición duplicada de `script' `%s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: nombre de sección desconocido `%.*s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: hay varias definiciones de orden para la sección `%s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: número inválido de reglas de ordenación" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: varias definiciones de orden para la sección sin nombre" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: falta la palabra clave `order_end'" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: el orden para el símbolo de ordenación %.*s todavía no está definido" + + # FIXME: ¿Por qué este y el siguiente no son iguales? +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: el orden para el elemento de ordenación %.*s todavía no está definido" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: no se puede reordenar después de %.*s: símbolo desconocido" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: falta la palabra clave `reorder-end'" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: la sección `%.*s' es desconocida" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: símbolo erróneo <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: no puede tener `%s' como final de un rango de elipsis" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: no se permite una descripción de categoría vacía" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: falta la palabra clave `reorder-sections-end'" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: '%s' sin el 'ifdef' o 'ifndef' correspondiente" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'endif' sin el 'ifdef' o 'ifndef' correspondiente" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "" + "No se ha especificado ningún nombre de conjunto de caracteres en la tabla\n" + "de caracteres" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "el carácter L'\\u%0*x' en la clase `%s' debe estar en la clase `%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "el carácter L'\\u%0*x' en la clase `%s' no debe estar en la clase `%s" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "error interno en %s, línea %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "el carácter '%s' en la clase `%s' debe estar en la clase `%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "el carácter '%s' en la clase `%s' no debe estar en la clase `%s" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "El carácter no está en la clase `%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "El carácter no debe estar en la clase `%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "el carácter no está definido en la tabla de caracteres" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "la categoría `digit' no tiene entradas en grupos de diez" + + # FIXME: El original no se entiende. ¿Es gramaticalmente correcto? sv +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + "no hay ningún dígito de entrada definido y ninguno de los nombres estándar\n" + "en el conjunto de caracteres" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + "no todos los caracteres usados en `outdigit' están disponibles en la tabla\n" + "de caracteres" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "no todos los caracteres usados en `outdigit' están disponibles en el repertorio" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "la clase de carácter `%s' ya fue definida" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "límite de la implementación: no se permiten más de %Zd clases de caracteres" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "la tabla de caracteres `%s' ya está definida" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "límite de la implementación: no se permiten más de %d tablas de caracteres" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: el campo `%s' no contiene exactamente diez entradas" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "el valor `to' del rango es más pequeño que el valor `from' " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "los caracteres de comienzo y final del rango debe tener la misma longitud" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "el valor `to' de la sucesión de caracteres es más pequeño que el valor `from'" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "Fin no esperado de la definición `translit_ignore'" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "error de sintaxis" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: error de sintaxis en la definición de una nueva clase de caracteres" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: error de sintaxis en la definición de un nueva tabla de caracteres" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "el rango de la elipsis debe estar marcada mediante dos operandos del mismo tipo" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "con valores de rango nombre simbólico la elipsis absoluta `...' no debe usarse" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "con valores de rango UCS se debe utilizar la elipsis simbólica hexadecimal `..'" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "con valores de rango código de caracteres se debe utilizar la elipsis absoluta `...'" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "definición duplicada para la asignación `%s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: la sección `translit_start' no termina con `translit_end'" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: definición `default_missing' duplicada" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "aquí estaba la definición anterior" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: no se ha encontrado ninguna definición de `default_missing' representable" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: el carácter `%s' no está definido cuando se necesitó como valor predeterminado" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: el carácter `%s' en la tabla de caracteres no es representable con un byte" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" +@@ -2464,7 +2456,7 @@ msgstr "" + "con un byte" + + # FIXME: Lo mismo de antes. +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" +@@ -2472,22 +2464,22 @@ msgstr "" + "en el conjunto de caracteres" + + # Pregunta: ¿De verdad existe transliteración en español? sv +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: los datos de transliteración del local `%s' no están disponibles" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabla para la clase \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabla para la asignación \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabla para el ancho: %lu bytes\n" +@@ -3948,17 +3940,23 @@ msgstr "añade nueva entrada \"%s\" de t + msgid " (first)" + msgstr " (primero)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 +-#, c-format +-msgid "cannot stat() file `%s': %s" ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "no se puede ejecutar stat() sobre el fichero `%s': %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "limpiando %s caché; tiempo %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "considerando la entrada %s \"%s\", tiempo límite %" +@@ -4044,155 +4042,219 @@ msgstr "no se puede establecer el `socke + msgid "cannot enable socket to accept connections: %s" + msgstr "no se puede activar el `socket' para aceptar conexiones: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "No se puede abrir el directorio %s" ++ ++#: nscd/connections.c:1022 ++#, fuzzy, c-format ++#| msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "registra el fichero de seguimiento %s para la base de datos %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "proporciona acceso al descriptor de fichero %d, para %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + "no se pueden manejar peticiones de la versión %d, la versión\n" + "actual es %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "la petición de %ld no ha sido atendida por falta de permisos" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "la petición de '%s' [%ld] no ha sido atendida por falta de permisos" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "la petición no ha sido atendida por falta de permisos" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "no se puede escribir el resultado: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "error al obtener el id de los llamantes: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "no se puede abrir /proc/self/cmdline: %s; se desactiva el modo paranoia" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "no se puede leer /proc/self/cmdline: %s; se desactiva el modo paranoia" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "no se puede cambiar al UID antiguo: %s; se desactiva el modo paranoia" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "no se puede cambiar al GID antiguo: %s; se desactiva el modo paranoia" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "no se puede cambiar al directorio de trabajo antiguo: %s; se desactiva el modo paranoia" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "falló la re-ejecución: %s; se desactiva el modo paranoia" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "no se puede cambiar el directorio de trabajo a \"/\": %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "lectura insuficiente mientras se leía la petición: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "la longitud de la clave en la petición es demasiado larga: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "se acabaron los datos mientras se leía la clave de petición: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: petición recibida (Versión = %d) del PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: petición recibida (Versión = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "fallo al cargar el objeto compartido `%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "se desactiva `inotify' después de un error de lectura %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "no se pudo inicializar la variable condicional" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "no se pudo iniciar el hilo de limpieza; terminando" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "no se pudo iniciar ningún hilo de trabajo; terminando" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Fallo al ejecutar nscd como usuario `%s'" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "falló el `getgrouplist' inicial" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "falló `getgrouplist'" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "falló `setgroups'" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "escritura insuficiente en %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "No se ha encontrado \"%s\" en el caché de grupos" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Recargando \"%s\" en el caché de grupos" +@@ -4280,7 +4342,7 @@ msgstr "Utiliza una caché separada para + msgid "Name Service Cache Daemon." + msgstr "Daemon de Caché del Servicio de Nombres." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "número incorrecto de argumentos" +@@ -4313,7 +4375,7 @@ msgstr "no se puede cambiar el directori + msgid "Could not create log file" + msgstr "No se pudo crear el fichero de registro" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "escritura incompleta" +@@ -4328,7 +4390,7 @@ msgstr "no se puede leer el ACK de inval + msgid "invalidation failed" + msgstr "fallo en la invalidación" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Solamente root puede usar esta opción" +@@ -4413,35 +4475,35 @@ msgstr "no se puede obtener el directori + msgid "maximum file size for %s database too small" + msgstr "el tamaño máximo de fichero para la base de datos %s es demasiado pequeño" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "no se pueden escribir las estadísticas: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "sí" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "no" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Solamente root o %s puede usar esta opción" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd no está en ejecución\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "no se pueden leer los datos de estadística" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4452,27 +4514,27 @@ msgstr "" + "\n" + "%15d nivel de depuración del servidor\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus tiempo de funcionamiento del servidor\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus tiempo de funcionamiento del servidor\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus tiempo de funcionamiento del servidor\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus tiempo de funcionamiento del servidor\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4489,7 +4551,7 @@ msgstr "" + "%15lu reinicio interno\n" + "%15u recarga contadores\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4555,87 +4617,87 @@ msgstr "Recargando \"%s\" en el caché d + msgid "Invalid numeric uid \"%s\"!" + msgstr "¡uid numérico inválido \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Fallo al abrir la conexión al subsistema de auditoría: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Fallo al establecer las capacidades que se mantienen" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "Falló prctl(KEEPCAPS)" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Fallo al inicializar el abandono de capacidades" + + # ## Lo mismo con lstat. sv + # Antes decía: No se pudo obtener información (lstat) del fichero .rhosts +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init ha fallado" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Fallo al abandonar capacidades" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc ha fallado" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Fallo al desactivar las capacidades que se mantienen" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Fallo al determinar si el núcleo admite SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Fallo al iniciar hilo AVC" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Fallo al crear bloqueo AVC" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Fallo al iniciar AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Access Vector Cache (AVC) iniciado" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "Error al consultar la política para clases de objetos o permisos no definidos" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "Error al obtener la clase de seguridad de nscd" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "Error al traducir el nombre de permiso \"%s\" a un vector de bits de acceso" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Error al obtener el contexto del `socket' remoto" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Error al obtener el contexto de nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Error al obtener sid del contexto" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4697,16 +4759,16 @@ msgstr "Obtiene entradas de la base de d + msgid "Enumeration not supported on %s\n" + msgstr "La enumeración no está soportada sobre %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Nombre de base de datos desconocido" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Bases de datos admitidas:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Base de datos desconocida: %s\n" +@@ -4999,7 +5061,7 @@ msgstr ") ó \\) desemparejados" + msgid "No previous regular expression" + msgstr "No existe ninguna expresión regular anterior" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parámetro nulo o no establecido" + +@@ -7751,3 +7813,12 @@ msgstr "demasiadas abreviaturas de zona + #, c-format + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: No se puede crear el directorio %s: %s\n" ++ ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "no se puede cargar ningún objeto más con TLS estático" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s no se encontró ningún PLTREL en el objeto %s\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "no se pueden crear descriptores internos" +Index: glibc-2.23/po/fi.po +=================================================================== +--- glibc-2.23.orig/po/fi.po ++++ glibc-2.23/po/fi.po +@@ -25,7 +25,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.21-pre1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2015-07-28 20:29+0300\n" + "Last-Translator: Lauri Nurmi \n" + "Language-Team: Finnish \n" +@@ -163,10 +163,10 @@ msgstr "" + "[TULOSTIEDOSTO [SYÖTETIEDOSTO]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, fuzzy, c-format +@@ -178,7 +178,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -195,7 +195,7 @@ msgstr "" + "ole, ei edes KAUPALLISESTI HYVÄKSYTTÄVÄSTÄ LAADUSTA tai SOPIVUUDESTA TIETTYYN TARKOITUKSEEN.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -452,11 +452,11 @@ msgstr "Tiedoston %s oikeuksien muutos a + msgid "Renaming of %s to %s failed" + msgstr "Uudelleennimeäminen %s -> %s epäonnistui" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "aluelistaa ei voi luoda" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "jaettu objekti ei ole avoin" + +@@ -531,130 +531,130 @@ msgstr "hakupolkutaulukkoa ei voi luoda" + msgid "cannot stat shared object" + msgstr "jaetun objektin tilaa ei voi lukea" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "nollatäyttölaitetta ei voi avata" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "jaettua objektikahvaa ei voi luoda" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "tiedoston dataa ei voi lukea" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF-latauskomennon tasaus ei ole sivutasattu" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF-latauskomennon osoite/siirtymä ei ole tasattu oikein" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "alkusäikeelle ei voi varata TLS-tietorakenteita" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "TLS-dataa ei voi käsitellä" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + #, fuzzy + msgid "object file has no loadable segments" + msgstr "objektitiedostossa ei ole dynaamista osaa" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "suoritettavaa tiedostoa ei voi ladata dynaamisesti" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "objektitiedostossa ei ole dynaamista osaa" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "jaettua objektia ei voi avata funktiolla dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "ohjelman otsakkeelle ei voi varata muistia" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "virheellinen kutsuja" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "muistin suojausta ei voi muuttaa" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + #, fuzzy + msgid "cannot enable executable stack as shared object requires" + msgstr "jaettua objektikahvaa ei voi luoda" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + msgid "cannot close file descriptor" + msgstr "tiedostoa %s ei voi sulkea" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "tiedosto on liian lyhyt" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "virheellinen ELF-otsikko" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "ELF-tiedoston tavujärjestys ei ole â€big-endianâ€" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "ELF-tiedoston tavujärjestys ei ole â€little-endianâ€" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF-tiedoston versiotunnus ei vastaa nykyistä" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF-tiedoston OS ABI on virheellinen" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF-tiedoston ABI-versio virheellinen" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "sisäinen virhe" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF-tiedoston versio ei vastaa nykyistä" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "vain ET_DYN ja ET_EXEC voidaan ladata" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "ELF-tiedoston phent-koko ei ole odotetun kokoinen" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "väärä ELF-luokka: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "väärä ELF-luokka: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "jaettua objektitiedostoa ei voi avata" + +@@ -666,11 +666,11 @@ msgstr "segmentin kartoitus jaetusta obj + msgid "cannot map zero-fill pages" + msgstr "nollatäytteisiä sivuja ei voi kartoittaa" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "uudelleensijoitusvirhe" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "virhe symbolien haussa" + +@@ -678,53 +678,43 @@ msgstr "virhe symbolien haussa" + msgid "cannot extend global scope" + msgstr "globaalia aluetta ei voi laajentaa" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + #, fuzzy + msgid "TLS generation counter wrapped! Please report this." + msgstr "TLS-luontilaskurin ylivuoto! Lähetä tästä raportti." + +-#: elf/dl-open.c:542 +-#, fuzzy +-msgid "cannot load any more object with static TLS" +-msgstr "Muistin varaaminen ei onnistu" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "virheellinen tila funktiolle dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + msgid "invalid target namespace in dlmopen()" + msgstr "virheellinen nimiavaruus" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + msgid "cannot allocate memory in static TLS block" + msgstr "Muistin varaaminen ei onnistu" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "segmenttiä ei voi muuttaa kirjoitettavaksi uudelleensijoitusta varten" + +-#: elf/dl-reloc.c:275 +-#, fuzzy, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "Objektin nimi : %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "segmentin suojausta ei voi palauttaa uudelleensijoituksen jälkeen" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + #, fuzzy + msgid "cannot apply additional memory protection after relocation" + msgstr "muistin suojausta ei voi muuttaa" +@@ -733,7 +723,7 @@ msgstr "muistin suojausta ei voi muuttaa + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT:iä käytetty koodissa, jota ei ole ladattu dynaamisesti" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "TLS-tietorakenteita ei voi luoda" + +@@ -882,7 +872,7 @@ msgstr "Linkkiä ei luotu, koska tiedost + msgid "Can't open directory %s" + msgstr "Hakemistoa %s ei voi avata" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Syötetiedostoa %s ei löydy.\n" +@@ -1014,7 +1004,7 @@ msgstr "tiedostoargumentit puuttuvat" + msgid "No such file or directory" + msgstr "Tiedostoa tai hakemistoa ei ole" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "ei ole tavallinen tiedosto" + +@@ -1062,65 +1052,71 @@ msgstr "ei voida lukea" + msgid "cannot read program interpreter" + msgstr "ei voida lukea" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + msgid "cannot read link map" + msgstr "symbolista linkkiä %s ei voi lukea" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + msgid "cannot read object name" + msgstr "Saman niminen objekti on olemassa" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "ohjelman otsakkeelle ei voi varata muistia" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "pid" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + msgid "invalid process ID '%s'" + msgstr "virheellinen prosessi-ID â€%sâ€" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + msgid "cannot open %s" + msgstr "laitetta %s ei voi avata" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + msgid "cannot open %s/task" + msgstr "pistoketta ei voi avata: %s" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + msgid "cannot prepare reading %s/task" + msgstr "ei voi avata laitetta %s lukutilaan" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + msgid "invalid thread ID '%s'" + msgstr "virheellinen prosessi-ID â€%sâ€" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + msgid "cannot attach to process %lu" + msgstr "tiedostoa â€%s†ei voi avata" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, fuzzy, c-format + msgid "process %lu is no ELF program" + msgstr "ohjelma %lu ei ole käytettävissä\n" +@@ -1155,27 +1151,27 @@ msgstr "%s ei ole jaettu objektitiedosto + msgid "more than one dynamic segment\n" + msgstr "useampi kuin yksi dynaaminen segmentti\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Tiedoston %s tilaa ei voi lukea.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Tiedosto %s on tyhjä, ei tarkastettu." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Tiedosto %s on liian pieni, ei tarkastettu." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Tiedoston %s muistikartoitus epäonnistui.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s ei ole ELF-tiedosto - sen alussa on väärät taikatavut.\n" +@@ -1294,10 +1290,10 @@ msgstr "JAETTU_OBJEKTI [PROFILOINTIDATA] + msgid "failed to load shared object `%s'" + msgstr "jaettua objektia â€%s†ei voitu ladata" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "sisäisiä kahvoja ei voi luoda" ++msgid "cannot create internal descriptor" ++msgstr "sisäistä kahvaa ei voi ladata" + + #: elf/sprof.c:554 + #, c-format +@@ -1364,11 +1360,6 @@ msgstr "profilointidatatiedoston muistik + msgid "error while closing the profiling data file" + msgstr "virhe suljettaessa profilointidatatiedostoa" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "sisäistä kahvaa ei voi ladata" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1617,27 +1608,27 @@ msgstr "socket: protokollavirhe piiriase + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: vajaa luku" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "tiedoston tilan luku epäonnistui" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "ei voi avata" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "tiedoston tilan luku epäonnistui" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "virheellinen omistaja" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "kirjoitusoikeus muulla kuin omistajalla" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "kovalinkitetty johonkin" + +@@ -1757,8 +1748,8 @@ msgid "no symbolic name given for end of + msgstr "välin lopulle ei ole annettu symbolista nimeä" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1784,8 +1775,8 @@ msgid "%s: error in state machine" + msgstr "%s: virhe tilakoneessa" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1806,7 +1797,7 @@ msgstr "tuntematon merkki â€%sâ€" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "välin alku- ja lopputavusarjojen tavumäärä ei ole sama: %d vs %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "virheelliset nimet merkkivälille" +@@ -1828,8 +1819,8 @@ msgstr "välin yläraja on pienempi kuin + msgid "resulting bytes for range not representable." + msgstr "välin tulostavut eivät ole esitettävissä." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1893,7 +1884,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: numeerinen maakoodi â€%d†ei kelpaa" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1915,8 +1906,8 @@ msgstr "%s: kenttä â€%s†määritelt + msgid "%s: unknown character in field `%s'" + msgstr "%s: tuntematon merkki kentässä â€%sâ€" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1925,12 +1916,12 @@ msgstr "%s: tuntematon merkki kentässä + msgid "%s: incomplete `END' line" + msgstr "%s: epätäydellinen â€ENDâ€-rivi" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1940,476 +1931,476 @@ msgstr "%s: epätäydellinen â€ENDâ€-r + msgid "%s: syntax error" + msgstr "%s: syntaksivirhe" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "â€%.*s†on jo määritelty merkistökartassa" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "â€%.*s†on jo määritelty valikoimassa" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "â€%.*s†on jo määritelty vertailusymboliksi" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "â€%.*s†on jo määritelty vertailuelementiksi" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: â€forward†ja â€backward†sulkevat toisensa pois" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: â€%s†mainittu useammin kuin kerran painon %d määrittelyssä" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: liian monta sääntöä; ensimmäisellä merkinnällä oli vain %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: ei riittävästi lajittelusääntöjä" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: tyhjiä painomerkkijonoja ei sallita" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: painojen on käytettävä samaa sanankatkaisusymbolia kuin nimen" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: liian monta arvoa" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "järjestys â€%.*sâ€:lle on jo määritelty paikassa %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: välin alku- ja loppusymbolien tulee edustaa merkkejä" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: ensimmäisen ja viimeisen merkin tavusarjojen on oltava saman pituiset" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, fuzzy, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: sarjan ensimmäisen merkin tavusarja ei ole matalampi kuin viimeisen" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: symbolisen välin sanankatkaisu ei saa suoraan seurata sanaa â€order_startâ€" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: symbolisen välin sanankatkaisua ei saa suoraan seurata â€order_endâ€" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "â€%s†ja â€%.*s†eivät ole kelvollisia nimiä symboliselle välille" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: järjestys â€%.*sâ€:lle on jo määritelty kohdassa %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: â€%s†on oltava merkki" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: â€position†on käytetävä tietylle tasolle kaikissa osissa tai ei yhdessäkään" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "symbolia â€%s†ei ole määritelty" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "symbolilla â€%s†on sama koodaus kuin" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "symboli â€%sâ€" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "â€UNDEFINED†ei ole määritelty" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "liian monta virhettä; luovutetaan" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + msgid "%s: nested conditionals not supported" + msgstr "muunnos merkistöstä â€%s†ei ole tuettu" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: useampi kuin yksi â€elseâ€" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: kaksinkertainen määrittely â€%sâ€" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: kaksinkertainen määrittely osalle â€%sâ€" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: tuntematon merkki vertailusymbolin nimessä" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: tuntematon merkki yhtäläisyysmäärittelyn nimessä" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: tuntematon merkki yhtäläisyysmäärittelyn arvossa" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: tuntematon symboli â€%s†yhtäläisyysmäärittelyssä" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "virhe lisättäessä yhtäläisyysvertailusymbolia" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "kaksinkertainen skriptin â€%s†määrittely" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: tuntematon osan nimi â€%.*sâ€" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: useita järjestysmäärittelyjä osalle â€%sâ€" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: virheellinen määrä lajittelusääntöjä" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: useita järjestysmäärittelyjä nimettömälle osalle" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: avainsana â€order_end†puuttuu" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: vertailusymbolin %.*s järjestystä ei ole vielä määritelty" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: vertailuelementin %.*s järjestystä ei ole vielä määritelty" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: uudelleenjärjestys kohdan %.*s jälkeen ei onnistu: tuntematon symboli" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: avainsana â€reorder-end†puuttuu" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: osaa â€%.*s†ei tunneta" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: virheellinen symboli <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: â€%s†ei voi olla sanankatkaisuvälin loppuna" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: tyhjää kategoriakuvausta ei sallita" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: avainsana â€reorder-sections-end†puuttuu" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Merkistön nimeä ei ole määritelty merkistökartassa" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "merkin L'\\u%0*x' luokassa â€%s†on oltava luokassa â€%sâ€" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "merkki L'\\u%0*x' luokassa â€%s†ei saa olla luokassa â€%sâ€" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "sisäinen virhe tiedostossa %s, rivillä %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "merkin '%s' luokassa â€%s†on oltava luokassa â€%sâ€" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "merkin '%s' luokassa â€%s†ei saa olla luokassa â€%sâ€" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "-merkki ei ole luokassa â€%sâ€" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "-merkki ei saa olla luokassa â€%sâ€" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "merkkiä ei ole määritelty merkistökartassa" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "â€digitâ€-kategorian merkinnät eivät ole kymmenen ryhmissä" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "syötenumeroita ei ole määritelty, eikä merkistökartassa ole standardinimiä" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "kaikki â€outdigitâ€:in merkit eivät ole käytettävissä merkistökartassa" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "kaikki â€outdititâ€:in merkit eivät ole käytettävissä valikoimassa" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "merkkiluokka â€%s†on jo määritelty" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "toteutuksen rajoitus: korkeintaan %Zd merkkiluokkaa sallittu" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "merkistökartta â€%s†on jo määritelty" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "toteutuksen rajoitus: korkeintaan %d merkistökarttaa sallittu" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: kenttä â€%s†ei sisällä tasan kymmentä merkintää" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "välin to-arvo on pienempi kuin from-arvo " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "välin aloitus- ja lopetusmerkkisarjojen on oltava saman pituiset" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "to-arvon merkkisarja on pienempi kuin from-arvon sarja" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "ennenaikainen â€translit_ignoreâ€-määrittelyn loppu" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "syntaksivirhe" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: syntaksivirhe uuden merkkiluokan määrittelyssä" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: syntaksivirhe uuden merkistökartan määrittelyssä" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "sanankatkaisuväliä on merkittävä kahdella saman tyyppisellä operandilla" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "absoluuttista sanankatkaisua â€...†ei saa käyttää symbolisen nimivälin arvojen kanssa" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "UCS-välin arvojen kanssa on käytettävä heksadesimaalista symbolista sanankatkaisua â€..â€" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "merkkikoodivälin arvojen kanssa on käytettävä absoluuttista sanankatkaisua â€...â€" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "kaksinkertainen määrittely kartoitukselle â€%sâ€" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: â€translit_startâ€-osa ei lopu tekstiin â€translit_endâ€" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: kaksinkertainen â€default_missingâ€-määrittely" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "edellinen määrittely oli täällä" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: esitettävissä olevaa â€default_missingâ€-määrittelyä ei löytynyt" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: oletusarvona tarvittavaa merkkiä â€%s†ei ole määritelty" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: merkistökartan merkki â€%s†ei ole esitettävissä yhdellä tavulla" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: oletusarvona tarvittava merkki â€%s†ei ole esitettävissä yhdellä tavulla" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "tulostenumeroita ei ole määritelty, eikä merkistökartassa ole standardinimiä" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: translitterointidata maa-asetustosta â€%s†ei ole käytettävissä" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: taulukko luokalle â€%sâ€: %lu tavua\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: taulukko kartalle â€%sâ€: %lu tavua\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: taulukko leveydelle: %lu tavua\n" +@@ -3804,17 +3795,23 @@ msgstr "" + msgid " (first)" + msgstr " (ensimmäinen)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 +-#, c-format +-msgid "cannot stat() file `%s': %s" ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "tiedoston â€%s†tilaa ei voi lukea: %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3901,155 +3898,217 @@ msgstr "pistoketta ei voi asettaa vastaa + msgid "cannot enable socket to accept connections: %s" + msgstr "pistoketta ei voi asettaa vastaanottamaan yhteyksiä: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Hakemistoa %s ei voi avata" ++ ++#: nscd/connections.c:1022 + #, fuzzy, c-format +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "Karttatietokannassa ei ole enempää tietueita" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, fuzzy, c-format + msgid "provide access to FD %d, for %s" + msgstr "suljetaan %s (fd=%d)" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "vanhaa pyyntöversiota %d ei voi käsitellä; nykyinen versio on %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "tulosta ei voi kirjoittaa: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "virhe kutsujan tunnisteen hakemisessa: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, fuzzy, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "hakemistoon %s ei voi siirtyä" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "vajaa luku luettaessa pyyntöä: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "avaimen pituus pyynnössä liian pitkä: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "vajaa luku luettaessa pyyntöavainta: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, fuzzy, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: pyyntö vastaanotettu (Versio = %d)" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: pyyntö vastaanotettu (Versio = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "failed to remove file watch `%s`: %s" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "jaettua objektia â€%s†ei voitu ladata" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + #, fuzzy + msgid "could not initialize conditional variable" + msgstr "arkistotiedostoa ei voi alustaa" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Ohjelman nscd ajaminen käyttäjän â€%s†oikeuksilla epäonnistui" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + #, fuzzy + msgid "initial getgrouplist failed" + msgstr "getgrouplist epäonnistui" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist epäonnistui" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups epäonnistui" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "vajaa kirjoitus tiedostossa %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "â€%s†ei löytynyt ryhmävälimuistista!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, fuzzy, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "â€%s†ei löytynyt ryhmävälimuistista!" +@@ -4140,7 +4199,7 @@ msgstr "Käytä erillistä välimuistia + msgid "Name Service Cache Daemon." + msgstr "Nimipalvelun välimuistidemoni." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "väärä määrä argumentteja" +@@ -4175,7 +4234,7 @@ msgstr "työhakemistoa ei voi vaihtaa †+ msgid "Could not create log file" + msgstr "Lokitiedostoa ei voitu luoda" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "keskeneräinen kirjoitus" +@@ -4190,7 +4249,7 @@ msgstr "ei voida lukea" + msgid "invalidation failed" + msgstr "EI TÄSMÄÄ" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Vain root-käyttäjä voi käyttää tätä valitsinta!" +@@ -4272,35 +4331,35 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "tilastoa ei voi kirjoittaa: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "kyllä" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "ei" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Vain root ja %s voivat käyttää tätä valitsinta!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd ei ole käynnissä!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "tilastodataa ei voi lukea" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4311,27 +4370,27 @@ msgstr "" + "\n" + "%15d palvelimen debug-taso\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, fuzzy, c-format + msgid " %2lus server runtime\n" + msgstr "Pääpalvelin :\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, fuzzy, c-format + msgid "" + "%15d current number of threads\n" +@@ -4347,7 +4406,7 @@ msgstr "" + "%15s paranoiatila käytössä\n" + "%15lu restart internal\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + msgid "" + "\n" +@@ -4403,93 +4462,93 @@ msgstr "â€%s†ei löytynyt salasanavà + msgid "Invalid numeric uid \"%s\"!" + msgstr "Virheellinen numeerinen uid â€%sâ€!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + #, fuzzy + msgid "Failed to set keep-capabilities" + msgstr "PATHin asetus epäonnistui" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) epäonnistui" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init epäonnistui" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + #, fuzzy + msgid "Failed to drop capabilities" + msgstr "EI TÄSMÄÄ" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + msgid "cap_set_proc failed" + msgstr "PATHin asetus epäonnistui" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + #, fuzzy + msgid "Failed to start AVC thread" + msgstr "muunnoksen aloittaminen epäonnistui" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + msgid "Failed to create AVC lock" + msgstr "vastakutsua ei voi luoda" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + #, fuzzy + msgid "Failed to start AVC" + msgstr "muunnoksen aloittaminen epäonnistui" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + msgid "Error getting security class for nscd." + msgstr "virhe kutsujan tunnisteen hakemisessa: %s" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + #, fuzzy + msgid "Error getting context of nscd" + msgstr "virhe kutsujan tunnisteen hakemisessa: %s" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4542,16 +4601,16 @@ msgstr "getent - hae merkintöjä hallin + msgid "Enumeration not supported on %s\n" + msgstr "%s ei tue luettelemista\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Tuntematon tietokannan nimi" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Tuetut tietokannat:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Tuntematon tietokanta: %s\n" +@@ -4824,7 +4883,7 @@ msgstr "Pariton ) tai \\)" + msgid "No previous regular expression" + msgstr "Ei edeltävää säännöllistä lauseketta" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parametri on null tai asettamatta" + +@@ -7208,6 +7267,17 @@ msgstr "liian monta tai liian pitkä aik + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: Hakemistoa %s ei voi luoda: %s\n" + ++#, fuzzy ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "Muistin varaaminen ei onnistu" ++ ++#, fuzzy ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "Objektin nimi : %s\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "sisäisiä kahvoja ei voi luoda" ++ + #~ msgid "time before zero" + #~ msgstr "aika ennen nollaa" + +Index: glibc-2.23/po/fr.po +=================================================================== +--- glibc-2.23.orig/po/fr.po ++++ glibc-2.23/po/fr.po +@@ -1,4 +1,4 @@ +-# translation of libc-2.9.90.fr.po to Français ++# translation of libc-2.22-pre1.fr.po to Français + # Messages français pour GNU concernant libc. + # Copyright © 2004, 2008, 2009 Free Software Foundation, Inc. + # This file is distributed under the same license as the glibc package. +@@ -7,17 +7,17 @@ + # kerb , 2008, 2009. + msgid "" + msgstr "" +-"Project-Id-Version: libc-2.19.90\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" +-"PO-Revision-Date: 2014-08-21 11:11+0100\n" +-"Last-Translator: kerb \n" ++"Project-Id-Version: libc 2.22-pre1\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"PO-Revision-Date: 2015-09-20 17:00+0100\n" ++"Last-Translator: Kerb \n" + "Language-Team: French \n" + "Language: fr\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n > 1);\n" +-"X-Generator: KBabel 1.11.4\n" ++"X-Generator: Poedit 1.5.4\n" + + #: argp/argp-help.c:227 + #, c-format +@@ -148,10 +148,10 @@ msgstr "" + "[FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -163,7 +163,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -181,7 +181,7 @@ msgstr "" + "COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -436,11 +436,11 @@ msgstr "Échec de la modification des dr + msgid "Renaming of %s to %s failed" + msgstr "Échec du changement de nom de %s vers %s" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "ne peut créer une liste panorama" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "objet partagé non ouvert" + +@@ -513,127 +513,127 @@ msgstr "ne peut créer un tableau des ch + msgid "cannot stat shared object" + msgstr "ne peut évaluer par stat() l'objet partagé" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "ne peut ouvrir le fichier de périphérique rempli de zéros" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "ne peut créer un descripteur d'objet partagé" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "ne peut lire les données du fichier" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "Commande de chargement sur une page ELF qui n'est pas alignée" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "Commande de chargement sur une adresse ELF incorrectement alignée" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "ne peut allouer une structure de données TLS pour un thread initial" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "ne peut traiter les données TLS" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "le fichier objet n'a pas de segment chargeable" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "ne peut dynamiquement charger un exécutable" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "le fichier objet n'a pas de section dynamique" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "l'objet partagé ne peut pas être ouvert via dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "ne peut allouer de la mémoire pour une en-tête de programme" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "appelant invalide" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "ne peut modifier les protections de mémoire" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "ne peut activer une pile exécutable comme l'objet partagé le requiert" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "ne peut pas fermer le descripteur de fichier" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "fichier trop court" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "en-tête ELF invalide" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "l'encodage des données du fichier ELF n'est pas big-endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "l'encodage des données du fichier ELF n'est pas little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "l'identifiant de version du fichier ELF ne concorde pas avec la version courante" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "Système d'exploitation du fichier ELF ABI invalide" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "Version du fichier ELF ABI invalide" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "remplissage sans zéro dans e_ident" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "Erreur interne" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "Version du fichier ELF ne concorde pas avec la version courante" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "Seuls ET_DYN et ET_EXEC peuvent être chargés" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "« Phentize » du fichier ELF ne concorde pas avec la taille prévue" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "mauvaise classe ELF : ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "mauvaise classe ELF : ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "Ne peut ouvrir le fichier d'objet partagé" + +@@ -645,11 +645,11 @@ msgstr "échec d'adressage (mapping) du + msgid "cannot map zero-fill pages" + msgstr "ne peut adresser des pages remplies de zéros" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "erreur de réaffectation" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "erreur de recherche de symbole" + +@@ -657,49 +657,40 @@ msgstr "erreur de recherche de symbole" + msgid "cannot extend global scope" + msgstr "ne peut augmenter l'étendue de la plage globale" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "Le compteur de génération TLS a bouclé ! SVP expédier un rapport avec le script 'glibcbug'." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "ne peut pas charger plus d'objets avec TLS statique" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "mode invalide pour dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "plus d'espace de nommage disponible pour dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "espace de nommage cible invalide dans dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "ne peut allouer de la mémoire dans un bloc statique TLS" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "ne peut rendre le segment inscritible pour une réaffectation" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s : aucun PLTREL trouvé dans l'objet %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s : manque de mémoire pour stocker les résultats de la réaffectation pour %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "ne peut restaurer le segment prot après reloc" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "ne peut appliquer les protections additionnelle de mémoire après la réaffectation" + +@@ -707,7 +698,7 @@ msgstr "ne peut appliquer les protection + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT est utilisé dans du code qui n'est pas chargé dynamiquement" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "ne peut créer les structures de données TLS" + +@@ -851,7 +842,7 @@ msgstr "Aucun lien créé étant donné + msgid "Can't open directory %s" + msgstr "Ne peut ouvrir le dossier %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Fichier d'entrée %s non repéré\n" +@@ -982,7 +973,7 @@ msgstr "arguments de fichier manquants" + msgid "No such file or directory" + msgstr "Aucun fichier ou dossier de ce type" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "n'est pas un fichier régulier" + +@@ -1027,65 +1018,70 @@ msgstr "ne peut lire r_debug" + msgid "cannot read program interpreter" + msgstr "ne peut lire l'interpréteur de programme" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "ne peut lire la carte lien (link map)" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "ne peut lire le nom d'objet" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "ne peut allouer de la mémoire pour une en-tête de programme" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "Liste les objets partagés dynamiques chargés dans le process." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Un paramètre exactement avec le process ID est requis.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "process ID invalide '%s'" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "Ne peut ouvrir %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "Ne peut ouvrir %s/tâche" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "ne peut préparer la lecture %s/tâche" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "ID de fil (thread) invalide '%s'" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "ne peut s'attacher au process %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "ne peut récupérer l'information à propos du process %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "le process %lu n'est pas un programme ELF" +@@ -1120,27 +1116,27 @@ msgstr "%s n'est pas un fichier objet pa + msgid "more than one dynamic segment\n" + msgstr "plus d'un segment dynamique\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Ne peut évaluer par fstat() %s\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Fichier %s est vide, n'a pas été vérifié." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Fichier %s trop petit, n'a pas été vérifié." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Erreur de la procédure mmap sur le fichier %s\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s n'est pas un fichier de type ELF - il a un octet magique au début incorrect.\n" +@@ -1276,10 +1272,10 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "échec de chargement de l'objet partagé « %s »" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "ne peut créer les descripteurs internes" ++msgid "cannot create internal descriptor" ++msgstr "ne peut créer un descripteur interne" + + #: elf/sprof.c:554 + #, c-format +@@ -1346,11 +1342,6 @@ msgstr "Échec de la procédure mmap sur + msgid "error while closing the profiling data file" + msgstr "erreur lors de la fermeture du fichier de données de profilage" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "ne peut créer un descripteur interne" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1598,27 +1589,27 @@ msgstr "socket : échec de protocole da + msgid "rcmd: %s: short read" + msgstr "rcmd : %s : lecture écourtée" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "échec de lstat()" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "ne peut ouvrir" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "échec de fstat()" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "mauvais propriétaire" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "accessible en écriture par d'autres que le propriétaire" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "lien direct rencontré" + +@@ -1738,8 +1729,8 @@ msgid "no symbolic name given for end of + msgstr "pas de nom symbolique fourni pour la fin de l'intervalle" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1767,8 +1758,8 @@ msgid "%s: error in state machine" + msgstr "%s : erreur de l'automate à états finis" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1789,7 +1780,7 @@ msgstr "caractère inconnu « %s »" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "nombre d'octets pour une séquence d'octets de début et de fin de plage n'est pas le même : %d vs %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nom invalide pour un intervalle de caractères" +@@ -1811,8 +1802,8 @@ msgstr "la limite supérieure de l'inter + msgid "resulting bytes for range not representable." + msgstr "les octets résultants pour la plage ne sont pas représentables." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1876,7 +1867,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s : code numérique invalide pour le pays « %d »" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1898,8 +1889,8 @@ msgstr "%s : champ « %s » déclaré p + msgid "%s: unknown character in field `%s'" + msgstr "%s : caractère inconnu dans le champ « %s »" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1908,12 +1899,12 @@ msgstr "%s : caractère inconnu dans le + msgid "%s: incomplete `END' line" + msgstr "%s : ligne « END » incomplète" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1923,476 +1914,476 @@ msgstr "%s : ligne « END » incomplèt + msgid "%s: syntax error" + msgstr "%s : erreur de syntaxe" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "« %.*s » déjà défini dans la table des caractères" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "« %.*s » déjà défini dans le dossier" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "« %.*s » déjà défini comme symbole de classement (collation)" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "« %.*s » déjà défini comme élément de classement (collation)" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s : « forward » et « backward » sont mutuellement exclusifs" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s : « %s » mentionné plus d'une fois dans la définition du poids %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s : trop de règles; la 1ère entrée n'a que %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s : pas assez de règles de tri" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s : chaîne de poids vide non permise" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s : les poids doivent utiliser les mêmes symboles d'ellipse que les noms" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s : trop de valeurs" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "L'ordre de « %.*s » est déjà défini dans %s :%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s : le symbole de départ et de fin d'une plage doit être en caractères" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s : séquences d'octets du 1er et dernier caractère doivent avoir la même longueur" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s : séquence d'octet du 1er caractère d'un intervalle n'est pas plus petit que celle du dernier caractère" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s : plage de l'ellipse symbolique ne doit pas être suivie directement de « order_start »" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s : plage de l'ellipse symbolique ne doit pas être suivie directement de « order_end »" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "« %s » et « %.*s » sont des noms invalides pour un intervalle symbolique" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s : ordre de « %.*s » déjà défini comme %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s : « %s » doit être un caractère" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s : « position » doit être utilisé pour un niveau spécifique dans toutes les sections ou aucune" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "Symbole « %s » n'est pas défini" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "Symbole « %s » a le même encodage que" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "Symbole « %s »" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "Pas de définition de type « UNDEFINED »" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "trop d'erreurs; abandon" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s : conditions imbriquées non supportées" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s : plus d'un 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s : double définition de « %s »" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s : double déclaration de section « %s »" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s : caractère inconnu dans le nom du symbole de collation" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s : caractère inconnu dans la définition équivalent d'un nom" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s : caractère inconnu dans la définition équivalente d'une valeur" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s : symbole inconnu « %s » dans une définition équivalente" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "Erreur lors de l'ajout d'un symbole de collation équivalent" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "Double définitions du script « %s »" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s : nom de section inconnu `% *s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s : définitions d'ordre multiple de la section « %s »" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s : nombre invalide de règles de tri" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s : définitions d'ordre multiple pour une section sans nom" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s : mot clé « order_end » manquant" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s : ordre de fusionnement de symboles %.*s n'est pas encore défini" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s : ordre de fusionnement d'éléments %.*s n'est pas encore défini" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s : ne peut réordonner après %.*s : symbole inconnu" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s : mot clé « reorder-end » manquant" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s : section « %.*s » inconnue" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s : symbole erroné <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s : ne peut avoir « %s » à la fin d'une plage d'ellipse" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s : description de catégorie vide non permise" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s : mot clé « reorder-sections-end » manquant" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s : '%s' sans correspondance 'ifdef' ou 'ifndef'" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s : 'endif' sans 'ifdef' ou 'ifndef' correspondant" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Pas de nom de jeu caractères spéecifié dans la table des caractères" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "Le caractère L'\\u%0*x» de la classe « %s » doit être dans la classe « %s »" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "Le caractère L'\\u%0*x» de la classe « %s » ne doit pas être dans la classe « %s »" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "Erreur interne dans %s, ligne %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "Caractère « %s » de la classe « %s » doit être dans la classe « %s »" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "Caractère « %s » de la classe « %s » ne doit pas être dans la classe « %s »" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "Le caractère n'est pas dans la classe « %s »" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "Le caractère ne doit pas être dans la classe « %s »" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "Caractère non défini dans la table des caractères" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "catégorie « digit » n'a pas d'entrées dans les groupe des dizaines" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "Pas de chiffre défini et aucun des noms standards dans la table des caractères" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "Pas tous les caractères utilisés dans « outdigit » sont disponibles dans la table des caractères" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "Pas tous les caractères utilisés dans « outdigit » sont disponibles dans le dossier" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "Classe de caractères « %s » déjà définie" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "Limite d'implantation : pas plus de %Zd classes de caractères permises" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "Table de caractères « %s » déjà définie" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "Limite d'implantation : pas plus de %d tables de caractères sont permises" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s : champ « %s » ne contient pas exactement 10 entrées" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "Valeur-finale de l'intervalle est plus petite que la valeur-départ " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "Début et fin de l'intervalle de la séquence de caractères doivent avoir la même longueur" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "Valeur finale de la séquence des caractères est plus petite que la valeur de départ" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "Fin prématurée de la définition de « translit_ignore »" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "Erreur de syntaxe" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s : erreur de syntaxe dans la définition d'une nouvelle classe de caractères" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s : erreur de syntaxe dans la définition d'une nouvelle table de caractères" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "Plage de l'ellipse doit être marqué par 2 opérandes du même type" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "Les valeurs d'une plage de noms symboliques d'une ellipse absolue « .... » ne doivent pas être utilisés" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "Les valeurs d'une plage UCS doivent utiliser une ellipse symbolique en hexadécimal « .. »" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "Les valeurs d'une plage de caractères doivent utiliser une ellipse absolu « ... »" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "Double définitions de la table « %s »" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s : la section « transit_start » n'est pas terminée par « translit_end »" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s : double définition de « default_missing »" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "Le définition précédente était ici" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s : aucune définition « default_missing » pour les non représentables" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s : caractère « %s » non défini alors qu'attendu comme valeur par défaut" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s : caractère « %s » dans la table des caractères n'est pas représentable par un seul octet" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s : caractère « %s » nécessaire comme valeur par défaut n'est pas représentable par un seul octet" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "Pas de chiffre défini et aucun des noms standards dans la table des caractères" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s : le particularisme local « %s » ne dispose pas des données de transposition" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s : table pour la classe « %s » : %lu octets\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s : table de caractères « %s » : %lu octets\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s : table de largeur : %lu octets\n" +@@ -3818,17 +3809,22 @@ msgstr "ajoute une nouvelle entrée «  + msgid " (first)" + msgstr " (premier)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, c-format ++msgid "checking for monitored file `%s': %s" ++msgstr "recherche fichier surveillé `%s': %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "Ne peut évaluer par stat() le fichier « %s » : %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "fichier surveillé `%s` modifié (mtime)" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "écourte %s cache; time %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "considérant %s entrée « %s », timeout %" +@@ -3914,153 +3910,213 @@ msgstr "ne peut établir le socket à l' + msgid "cannot enable socket to accept connections: %s" + msgstr "Ne peut activer le socket pour accepter des connexions : %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 + #, c-format +-msgid "register trace file %s for database %s" +-msgstr "inscrit le fichier de trace %s pour la base de données %s" ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "surveillance basée sur inotify désactivée pour fichier `%s': %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "fichier de surveillance `%s` (%d)" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "surveillance basée sur inotify désactivée pour répertoire `%s': %s" ++ ++#: nscd/connections.c:994 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "répertoire de surveillance `%s` (%d)" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "fichier de surveillance %s pour base de données %s" ++ ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "stat en échec pour fichier `%s'; nouvel essai plus tard: %s" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "fournit l'accès à FD %d, pour %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" +-msgstr "Ne peut traiter une requête d'une vieille version %d; la version courante est %d" ++msgstr "Ne peut traiter une vieille version de requête %d; la version courante est %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "la requête de %ld non prise en compte du fait du manque de permission" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "la requête de '%s' [%ld] non prise en compte du fait du manque de permission" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "la requête de %ld " + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "Ne peut écrire les résultats : « %s »" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "erreur lors de la récupération de l'identifiant de l'appelant : %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "ne peut ouvrir /proc/self/cmdline : %s; désactive le mode paranoïa" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "ne peut lire /proc/self/cmdline : %s; désactive le mode paranoïa" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "ne peut réétablir l'ancien UID : %s; désactive le mode paranoïa" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "ne peut réétablir l'ancien GID : %s; désactive le mode paranoïa" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "ne peut réétablir l'ancien dossier de travail : %s; désactive le mode paranoïa" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "re-exec a échoué : %s; désactive le mode paranoïa" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "ne peut établir le dossier de travail courant à « / » : %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "Lecture écourtée lors de la lecture de la requête : « %s »" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "La longueur de la clé de la requête est trop longue : %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "Lecture écourtée lors de la lecture de la clé de requête : %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request : requête reçue (Version = %d) à partir du PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request : requête reçue (Version = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "événement inotify ignoré pour `%s` (fichier existe)" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "fichier surveillé `%s` était %s, suprresion surveillance" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "échec de suppression de surveillance de fichier `%s`: %s" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "fichier surveillé `%s` a été écrit sur" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "le répertoire parent surveillé `%s` était %s, arrêt surveillance sur `%s`" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "fichier surveillé `%s` était %s, ajout surveillance" ++ ++#: nscd/connections.c:2053 + #, c-format +-msgid "disabled inotify after read error %d" +-msgstr "désactive inotify après erreur de lecture %d" ++msgid "failed to add file watch `%s`: %s" ++msgstr "échec de l'ajout du fichier de surveillance `%s`: %s" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "surveillance basée sur inotify désactivée après erreur de lecture %d" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "n'a pu initialiser une variable conditionnelle" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "n'a pu démarrer le process(thread) de nettoyage ; en train de s'achever" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "n'a pas pu démarrer de process de travail (threads) ; en train de s'achever" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Échec d'exécution de nscd en tant qu'usager « %s »" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "échec du getgrouplist initial" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "échec de getgrouplist" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "échec de setgroups" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "Écriture écourtée dans %s : %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "N'a pas trouvé « %s » dans la cache du groupe !" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Recharge « %s » dans le cache groupe !" +@@ -4148,7 +4204,7 @@ msgstr "Utiliser une cache séparée pou + msgid "Name Service Cache Daemon." + msgstr "« Daemon » du cache du service de noms." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "Mauvais nombre d'arguments" +@@ -4181,7 +4237,7 @@ msgstr "ne peut établir le dossier de t + msgid "Could not create log file" + msgstr "N'a pu créé le fichier journal" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "écriture incomplète" +@@ -4196,7 +4252,7 @@ msgstr "ne peut lire les ACK invalidés" + msgid "invalidation failed" + msgstr "l'invalidation a échoué" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Seul ROOT est autorisé à utiliser cette option !" +@@ -4281,35 +4337,35 @@ msgstr "ne peut obtenir le dossier de tr + msgid "maximum file size for %s database too small" + msgstr "la taille maximale de fichier pour la base de données %s est trop petite" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "Ne peut écrire les statistiques : « %s »" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "oui" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "non" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Seul ROOT ou %s est autorisé à utiliser cette option !" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd n'est pas en exécution !\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "Ne peut lire les données de statistiques" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4320,27 +4376,27 @@ msgstr "" + "\n" + "%15d niveau serveur de déboggage\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus temps d'exécution du serveur\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus temps d'exécution du serveur\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus temps d'exécution du serveur\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus temps d'exécution du serveur\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4357,7 +4413,7 @@ msgstr "" + "%15lu redémarrage interne\n" + "%15u compte de rechargement\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4424,85 +4480,85 @@ msgstr "Recharge « %s » dans le cache + msgid "Invalid numeric uid \"%s\"!" + msgstr "uid numérique invalide « %s » !" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Echec d'ouverture de la connection au sous-système d'audit : %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "A échoué à établir les possibilités de garde(keep-capabilities)" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "échec de prctl(KEEPCAPS)" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "A échoué à initialiser l'abandon de possibilités" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init a échoué" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "A échoué à abandonner les possibilités" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc a échoué" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "A échoué à désactiver les possibilités de garde (keep-capabilities)" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "A échoué à déterminer si le noyau supporte SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "A échoué à démarrer le fil AVC (thread)" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "A échoué à créer un verrou AVC" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "A échoué à démarrer AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Access Vector Cache (AVC) démarré" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "Erreur à l'interrogation de la politique pour les classes ou permissions d'objet indéfini." + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "Erreur à la récupération de la classe de sécurité pour nscd." + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "Erreur à la traduction du nom de la permission \"%s\" pour accéder le bit vecteur." + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Erreur à la récupération du contexte du pair du socket" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Erreur à la récupération du contexte de nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "erreur de récupération du sid depuis le contexte" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4564,16 +4620,16 @@ msgstr "Obtient des entrées de la base + msgid "Enumeration not supported on %s\n" + msgstr "Énumération non supportée sur %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Base de données inconnue" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Base de données supportées :\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Base de données inconnue : « %s »\n" +@@ -4853,7 +4909,7 @@ msgstr "Échec du pairage de ) ou de \\) + msgid "No previous regular expression" + msgstr "Aucune expression régulière précédente" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "paramètre nul ou non initialisé" + +@@ -7230,6 +7286,15 @@ msgstr "trop ou de trop longues abrévia + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s : ne peut créer le dossier %s : %s\n" + ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "ne peut pas charger plus d'objets avec TLS statique" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s : aucun PLTREL trouvé dans l'objet %s\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "ne peut créer les descripteurs internes" ++ + #~ msgid "compile-time support for database policy missing" + #~ msgstr "il manque le support du temps de compilation pour la politique de base de données" + +Index: glibc-2.23/po/gl.po +=================================================================== +--- glibc-2.23.orig/po/gl.po ++++ glibc-2.23/po/gl.po +@@ -5,7 +5,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.3.2\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2003-03-03 20:13+0100\n" + "Last-Translator: Jacobo Tarrio \n" + "Language-Team: Galician \n" +@@ -141,10 +141,10 @@ msgstr "" + "[FICHEIRO-SAÃDA [FICHEIRO-ENTRADA]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -154,7 +154,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -171,7 +171,7 @@ msgstr "" + "garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN DETERMINADO.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -434,11 +434,11 @@ msgstr "O cambio dos dereitos de acceso + msgid "Renaming of %s to %s failed" + msgstr "Fallou o renomeado de %s a %s" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "non se pode crea-la lista de alcance" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "o obxecto compartido non está aberto" + +@@ -515,135 +515,135 @@ msgstr "non se pode crea-lo vector de ru + msgid "cannot stat shared object" + msgstr "non se puido facer stat sobre o obxecto compartido" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "non se pode abrir un dispositivo de recheo de ceros" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "non se pode crear un descriptor de obxecto compartido" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "non se pode le-los datos do ficheiro" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "O comando de carga ELF non está aliñado coa páxina" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "O enderezo/desprazamento do comando de carga ELF non está ben aliñado" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "non se poden crea-las estructuras de datos TLS para o fío inicial" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "non se poden manexa-los datos TLS" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + #, fuzzy + #| msgid "object file has no dynamic section" + msgid "object file has no loadable segments" + msgstr "o ficheiro obxecto non ten unha sección dinámica" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "non se pode cargar dinamicamente o executable" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "o ficheiro obxecto non ten unha sección dinámica" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "non se pode facer dlopen() sobre o obxecto compartido" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "Non se pode reservar memoria para a cabeceira do programa" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + #| msgid "invalid line" + msgid "invalid caller" + msgstr "liña non válida" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "non se poden cambia-las proteccións de memoria" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + #, fuzzy + #| msgid "cannot create shared object descriptor" + msgid "cannot enable executable stack as shared object requires" + msgstr "non se pode crear un descriptor de obxecto compartido" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + #| msgid "cannot create internal descriptor" + msgid "cannot close file descriptor" + msgstr "non se pode crear un descriptor interno" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "ficheiro pequeno de máis" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "cabeceira ELF non válida" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "A codificación dos datos do ficheiro ELF non é \"big-endian\"" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "A codificación dos datos do ficheiro ELF non é \"little-endian\"" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "O identificador da versión do ficheiro ELF non coincide co actual" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ABI do SO do ficheiro ELF non válida" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "Versión do ABI do ficheiro ELF non válida" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "erro interno" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "A versión do ficheiro ELF non coincide coa actual" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "só se pode cargar ET_DYN e ET_EXEC" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "O phentsize do ficheiro ELF non é o tamaño esperado" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "non se pode abrir un ficheiro de obxecto compartido" + +@@ -655,11 +655,11 @@ msgstr "non se puido mapear un segmento + msgid "cannot map zero-fill pages" + msgstr "non se poden mapear páxinas de recheo de ceros" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "erro de cambio de reserva" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -667,58 +667,46 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "non se pode extende-lo alcance global" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + #, fuzzy + #| msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script." + msgid "TLS generation counter wrapped! Please report this." + msgstr "O xerador de TLS deu unha volta completa. Informe co script 'glibcbug'." + +-#: elf/dl-open.c:542 +-#, fuzzy +-#| msgid "cannot load shared object file" +-msgid "cannot load any more object with static TLS" +-msgstr "non se pode carga-lo ficheiro de obxecto compartido" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "modo incorrecto para dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + #| msgid "invalid mode for dlopen()" + msgid "invalid target namespace in dlmopen()" + msgstr "modo incorrecto para dlopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + #| msgid "Cannot allocate memory" + msgid "cannot allocate memory in static TLS block" + msgstr "Non se pode reservar memoria" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "non se pode face-lo segmento gravable para o movemento" + +-#: elf/dl-reloc.c:275 +-#, fuzzy, c-format +-#| msgid "%s: profiler found no PLTREL in object %s\n" +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: o perfilador non atopou PLTREL no obxecto %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "non se pode restaura-la protección do segmento despois de movelo" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + #, fuzzy + #| msgid "cannot change memory protections" + msgid "cannot apply additional memory protection after relocation" +@@ -728,7 +716,7 @@ msgstr "non se poden cambia-las protecci + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "Úsase RTLD_NEXT en código non cargado dinamicamente" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "non se poden crea-las estructuras de datos TLS" + +@@ -874,7 +862,7 @@ msgstr "Non se creou unha ligazón porqu + msgid "Can't open directory %s" + msgstr "Non se puido abri-lo directorio %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Non se atopou o ficheiro de entrada %s.\n" +@@ -1010,7 +998,7 @@ msgstr "non se pode libera-los parámetr + msgid "No such file or directory" + msgstr "Non hai tal ficheiro ou directorio" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "non é un ficheiro normal" + +@@ -1062,73 +1050,79 @@ msgstr "non se pode le-la cabeceira" + msgid "cannot read program interpreter" + msgstr "non se pode le-la cabeceira do arquivo" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "non se pode le-los datos do ficheiro" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "non se pode le-la cabeceira" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "Non se pode reservar memoria para a cabeceira do programa" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid pointer size" + msgid "invalid process ID '%s'" + msgstr "tamaño de punteiro non válido" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "non se pode abrir `%s'" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "non se pode abrir `%s'" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + #| msgid "cannot create searchlist" + msgid "cannot prepare reading %s/task" + msgstr "non se pode crea-la lista de busca" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "cabeceira ELF non válida" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot find C preprocessor: %s \n" + msgid "cannot attach to process %lu" + msgstr "non podo atopa-lo preprocesador de C: %s \n" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1163,28 +1157,28 @@ msgstr "%s non é un ficheiro de obxecto + msgid "more than one dynamic segment\n" + msgstr "máis dun segmento dinámico\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Non se puido executar fstat sobre o ficheiro %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, fuzzy, c-format + #| msgid "File %s is too small, not checked." + msgid "File %s is empty, not checked." + msgstr "O ficheiro %s é pequeno de máis, non se comproba." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "O ficheiro %s é pequeno de máis, non se comproba." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Non se puido executar mmap sobre o ficheiro %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s non é un ficheiro ELF - non ten os bytes máxicos correctos ao principio.\n" +@@ -1317,10 +1311,10 @@ msgstr "SOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "non se puido carga-lo obxecto compartido `%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "non se poden crear descriptores internos" ++msgid "cannot create internal descriptor" ++msgstr "non se pode crear un descriptor interno" + + #: elf/sprof.c:554 + #, c-format +@@ -1391,11 +1385,6 @@ msgstr "non se puido facer mmap sobre o + msgid "error while closing the profiling data file" + msgstr "erro ao pecha-lo ficheiro de datos de perfís" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "non se pode crear un descriptor interno" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1655,27 +1644,27 @@ msgstr "socket: fallo do protocolo no es + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: lectura curta" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "fallou a chamada a lstat" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "non se pode abrir" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fallou a chamada a fstat" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "propietario incorrecto" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "escribible por alguén distinto do propietario" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "ten un enlace duro nalgún sitio" + +@@ -1797,8 +1786,8 @@ msgid "no symbolic name given for end of + msgstr "non se deu un nome simbólico para a fin do rango" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1824,8 +1813,8 @@ msgid "%s: error in state machine" + msgstr "%s: erro na máquina de estados" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1846,7 +1835,7 @@ msgstr "carácter `%s' descoñecido" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "os números de bytes para as secuencias de bytes do inicio e fin de rango non son os mesmos: %d contra %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nomes non válidos para o rango de caracteres" +@@ -1870,8 +1859,8 @@ msgstr "o límite superior do rango non + msgid "resulting bytes for range not representable." + msgstr "os bytes resultantes do rango non son representables" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1936,7 +1925,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: código numérico de país `%d' non válido" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1958,8 +1947,8 @@ msgstr "%s: o campo `%s' está declarado + msgid "%s: unknown character in field `%s'" + msgstr "%s: carácter descoñecido no campo `%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1968,12 +1957,12 @@ msgstr "%s: carácter descoñecido no ca + msgid "%s: incomplete `END' line" + msgstr "%s: liña `END' incompleta" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1983,481 +1972,481 @@ msgstr "%s: liña `END' incompleta" + msgid "%s: syntax error" + msgstr "%s: erro de sintaxe" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' xa está definido no mapa de caracteres" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' xa está definido no repertorio" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' xa está definido coma un símbolo de ordenación" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' xa está definido coma un elemento de ordenación" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: as direccións de ordenación `forward' e `backward' son mutuamente excluíntes" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: `%s' mencionouse máis dunha vez na definición do peso %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: demasiadas regras; a primeira entrada só tiña %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: non hai regras de ordenación de abondo" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: non se admite unha cadea de peso baleira" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: os pesos deben emprega-lo mesmo signo de puntos suspensivos có nome" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: demasiados valores" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "a orde de `%.*s' xa está definida en %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: os símbolos inicial e final dun rango deben corresponderse con caracteres" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: as secuencias de bytes do primeiro e derradeiro carácter deben te-la mesma lonxitude" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, fuzzy, c-format + #| msgid "%s: byte sequence of first character of sequence is not lower than that of the last character" + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: a secuencia de bytes do primeiro carácter da secuencia non é menor cá do derradeiro carácter" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: os puntos suspensivos do rango simbólico non deben seguir directamente a `order_start'" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: os puntos suspensivos do rango simbólico non deben ir seguidos directamente por `order_end'" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, fuzzy, c-format + #| msgid "`%s' and `%.*s' are no valid names for symbolic range" + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' e `%.*s' non son nomes válidos para o rango simbólico" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: a orde de `%.*s' xa está definida en %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' debe ser un carácter" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `position' débese empregar para un nivel determinado en tódalas seccións ou en ningunha" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "o símbolo `%s' non está definido" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "o símbolo `%s' ten a mesma codificación có" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "símbolo `%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "non hai unha definición de `UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "demasiados erros; ríndome" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + #| msgid "Operation not supported" + msgid "%s: nested conditionals not supported" + msgstr "Operación non soportada" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: More than one -l option specified\n" + msgid "%s: more than one 'else'" + msgstr "%s: Indicouse máis dunha opción -l\n" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: definición de `%s' duplicada" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: definición da sección `%s' duplicada" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: carácter descoñecido no nome do símbolo de ordenación" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: carácter descoñecido no nome da definición de equivalentes" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: erro de sintaxe no valor da definición de equivalentes" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: símbolo `%s' descoñecido na definición de equivalentes" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "erro ao engadir un símbolo de ordenación equivalente" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "definición do script `%s' duplicada" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + #| msgid "%s: unknown section name `%s'" + msgid "%s: unknown section name `%.*s'" + msgstr "%s: nome de sección `%s' descoñecido" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: definicións de orde múltiples na sección `%s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: número non válido de regras de ordenación" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: hai varias definicións de orde para unha sección sen nome" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: falla a palabra clave `order_end'" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: a orde do símbolo de ordenación %.*s non está definida" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: a orde do elemento de ordenación %.*s non está definida" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: non se pode reordenar despois de %.*s: símbolo descoñecido" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: falla a palabra clave `reorder-end'" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: sección `%.*s' descoñecida" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: símbolo <%.*s> incorrecto" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: non se pode ter `%s' coma final dun rango de puntos suspensivos" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: non se admite unha descrición de categoría baleira" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: falla a palabra clave `reorder-sections-end'" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Non se especificou un nome de xogo de caracteres no mapa de caracteres" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "o carácter L'\\u%0*x' na clase `%s' debe estar na clase `%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "o carácter L'\\u%0*x' na clase `%s' non debe estar na clase `%s'" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "erro interno en %s, liña %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "o carácter '%s' na clase `%s' debe estar na clase `%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "o carácter '%s' na clase `%s' non debe estar na clase `%s'" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "O carácter non está na clase `%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "O carácter non debe estar na clase `%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "carácter non definido no mapa de caracteres" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "a categoría `digit' non ten entradas en grupos de dez" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "non se definiron díxitos de entrada e ningún dos nomes estándar do mapa de caracteres" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "non tódolos caracteres empregados en `outdigit' están dispoñibles no mapa de caracteres" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "non tódolos caracteres empregados en `outdigit' están dispoñibles no repertorio" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "clase de caracteres `%s' xa definida" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "límite da implementación: non se admiten máis de %Zd clases de caracteres" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "mapa de caracteres `%s' xa definido" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "límite da implementación: non se admiten máis de %d mapas de caracteres" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: o campo `%s' non contén exactamente dez entradas" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "o valor-a do rango é menor có valor-dende " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "as secuencias de caracteres do inicio e fin do rango deben te-la mesma lonxitude" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "a secuencia de caracteres do valor-a é menor cá secuencia do valor-dende" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "final prematura da definición `translit_ignore'" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "erro de sintaxe" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: erro de sintaxe na definición da nova clase de caracteres" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: erro de sintaxe na definición dun novo mapa de caracteres" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "o rango de puntos suspensivos debe estar marcado por dous operandos do mesmo tipo" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "débense emprega-los puntos suspensivos absolutos `...' cos valores de rangos de nomes simbólicos" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "débense emprega-los puntos suspensivos simbólicos hexadecimais `...' cos valores de rangos UCS" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "débense emprega-los puntos suspensivos absolutos `...' cos valores de rangos de códigos de caracteres" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "definición do mapeado `%s' duplicada" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: a sección `translit_start' non remata con `translit_end'" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: definición de `default_missing' duplicada" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "a definición anterior estaba aquí" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: non se atopou unha definición `default_missing' representable" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: carácter `%s' non definido, cando facía falta por ser valor por omisión" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: o carácter `%s' do mapa de caracteres non se pode representar cun só byte" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: o carácter `%s' que se precisa coma valor por defecto non se pode representar cun só byte" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "non se definiron díxitos de saída e ningún dos nomes estándar do mapa de caracteres" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: os datos de transliteración dende o locale `%s' non están dispoñibles" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: táboa para a clase \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: táboa para o mapa \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: táboa para o ancho: %lu bytes\n" +@@ -3878,17 +3867,23 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "non se pode abri-lo ficheiro de bases de datos `%s': %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "non se pode facer stat() sobre o ficheiro `%s': %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3988,159 +3983,221 @@ msgstr "non se pode facer que o socket a + msgid "cannot enable socket to accept connections: %s" + msgstr "non se pode facer que o socket acepte conexións: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Non se puido abri-lo directorio %s" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "non se pode manexa-la antiga petición versión %d; a versión actual é %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "non se pode escribi-lo resultado: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, fuzzy, c-format + #| msgid "error getting callers id: %s" + msgid "error getting caller's id: %s" + msgstr "erro ao obte-lo identificador do chamante: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "lectura demasiado curta ao le-la petición: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "lonxitude da clave da petición demasiado grande: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "lectura demasiado curta ao le-la clave de petición: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, fuzzy, c-format + #| msgid "handle_request: request received (Version = %d)" + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: petición recibida (Version = %d)" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: petición recibida (Version = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "non se puido carga-lo obxecto compartido `%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + #, fuzzy + #| msgid "cannot initialize archive file" + msgid "could not initialize conditional variable" + msgstr "non se pode inicializa-lo ficheiro de arquivo" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Non se puido executar nscd coma o usuario '%s'" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + #, fuzzy + #| msgid "getgrouplist failed" + msgid "initial getgrouplist failed" + msgstr "fallou a chamada a getgrouplist" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "fallou a chamada a getgrouplist" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "fallou a chamada a setgroups" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "escritura demasiado curta en %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "¡Non atopei \"%s\" na caché de grupos!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, fuzzy, c-format + #| msgid "Haven't found \"%s\" in group cache!" + msgid "Reloading \"%s\" in group cache!" +@@ -4236,7 +4293,7 @@ msgstr "Usar unha caché separada para c + msgid "Name Service Cache Daemon." + msgstr "Demo de Cache de Servicio de Nomes." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "número de parámetros incorrecto" +@@ -4274,7 +4331,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "Non se puido crea-lo ficheiro de rexistro \"%s\"" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "escritura incompleta" +@@ -4291,7 +4348,7 @@ msgstr "non se pode le-los datos do fich + msgid "invalidation failed" + msgstr "Fallo ao modificar" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "¡Só root pode usar esa opción!" +@@ -4377,36 +4434,36 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "non se poden escribi-las estatísticas: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, fuzzy, c-format + #| msgid "Only root is allowed to use this option!" + msgid "Only root or %s is allowed to use this option!" + msgstr "¡Só root pode usar esa opción!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "¡Non se está a executar nscd!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "non se poden le-los datos estatísticos" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4417,27 +4474,27 @@ msgstr "" + "\n" + "%15d nivel de depuración do servidor\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4448,7 +4505,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + #| msgid "" + #| "\n" +@@ -4519,95 +4576,95 @@ msgstr "¡Non atopei \"%s\" na caché de + msgid "Invalid numeric uid \"%s\"!" + msgstr "¡Identificación numérica de usuario \"%s\" non válida!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + #| msgid "lstat failed" + msgid "cap_init failed" + msgstr "fallou a chamada a lstat" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + #| msgid "setgroups failed" + msgid "cap_set_proc failed" + msgstr "fallou a chamada a setgroups" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + #| msgid "Unable to create callback" + msgid "Failed to create AVC lock" + msgstr "Non se pode crea-lo callback" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + #, fuzzy + #| msgid "error getting callers id: %s" + msgid "Error getting context of nscd" + msgstr "erro ao obte-lo identificador do chamante: %s" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + #, fuzzy + #| msgid "Error writing standard output" + msgid "Error getting sid from context" + msgstr "Erro ao escribir na saída estándar" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4662,19 +4719,19 @@ msgstr "getent - obte-las entradas da ba + msgid "Enumeration not supported on %s\n" + msgstr "A enumeración non está soportada en %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + #| msgid "Unknown database: %s\n" + msgid "Unknown database name" + msgstr "Base de datos descoñecida: %s\n" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + #, fuzzy + #| msgid "Supported databases:" + msgid "Supported databases:\n" + msgstr "Bases de datos soportadas:" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Base de datos descoñecida: %s\n" +@@ -4970,7 +5027,7 @@ msgstr ") ou \\) sen parella" + msgid "No previous regular expression" + msgstr "Non hai unha expresión regular precedente" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parámetro nulo ou non estabrecido" + +@@ -7743,6 +7800,9 @@ msgstr "%s: Non se pode crea-lo director + #~ msgid "while allocating hash table entry" + #~ msgstr "ao reservar espacio para a entrada da táboa hash" + ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "non se pode facer stat() sobre o ficheiro `%s': %s" ++ + #~ msgid "Cannot run nscd in secure mode as unprivileged user" + #~ msgstr "Non se pode executar nscd en modo seguro coma usuario non privilexiado" + +@@ -7782,6 +7842,9 @@ msgstr "%s: Non se pode crea-lo director + #~ msgid "shared object cannot be dlopen()ed: static TLS memory too small" + #~ msgstr "non se pode facer dlopen() sobre o obxecto compartido: a memoria TLS estática é pequena de máis" + ++#~ msgid "%s: profiler found no PLTREL in object %s\n" ++#~ msgstr "%s: o perfilador non atopou PLTREL no obxecto %s\n" ++ + #~ msgid "%s: profiler out of memory shadowing PLTREL of %s\n" + #~ msgstr "%s: o perfilador esgotou a memoria sombreando o PLTREL de %s\n" + +@@ -7827,6 +7890,9 @@ msgstr "%s: Non se pode crea-lo director + #~ msgid "XCHS" + #~ msgstr "XCHS" + ++#~ msgid "cannot load shared object file" ++#~ msgstr "non se pode carga-lo ficheiro de obxecto compartido" ++ + #~ msgid "fcntl: F_SETFD" + #~ msgstr "fcntl: F_SETFD" + +Index: glibc-2.23/po/hr.po +=================================================================== +--- glibc-2.23.orig/po/hr.po ++++ glibc-2.23/po/hr.po +@@ -7,7 +7,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.17-pre1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2012-12-20 22:34+0100\n" + "Last-Translator: Tomislav Krznar \n" + "Language-Team: Croatian \n" +@@ -143,10 +143,10 @@ msgstr "" + "[IZLAZNA-DATOTEKA [ULAZNA-DATOTEKA]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -158,7 +158,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -175,7 +175,7 @@ msgstr "" + "Äak ni za TRGOVINSKU PRIKLADNOST ili ODGOVARANJE ODREÄENOJ SVRSI.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -429,11 +429,11 @@ msgstr "Promjena pristupnih dozvola %s u + msgid "Renaming of %s to %s failed" + msgstr "Preimenovanje %s u %s nije uspjelo" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "ne mogu napraviti popis podruÄja" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "dijeljeni objekt nije otvoren" + +@@ -506,127 +506,127 @@ msgstr "ne mogu napraviti polje putanja + msgid "cannot stat shared object" + msgstr "ne mogu izvrÅ¡iti stat na dijeljenom objektu" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "ne mogu otvoriti neispunjeni ureÄ‘aj" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "ne mogu napraviti opisnik dijeljenog objekta" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "ne mogu proÄitati podatke datoteke" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF load naredba nije poravnata sa stranicom" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "Adresa/pomak ELF load naredbe nema pravilno poravnanje" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "ne mogu alocirati TLS podatkovne strukture za poÄetnu dretvu" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "ne mogu raditi s TLS podacima" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "datoteka objekta nema uÄitljive segmente" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "ne mogu dinamiÄki uÄitati izvrÅ¡nu datoteku" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "datoteka objekta nema dinamiÄki odjeljak" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "dijeljeni objekt se ne može otvoriti s dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "ne mogu alocirati memoriju za zaglavlje programa" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "neispravan pozivatelj" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "ne mogu promijeniti zaÅ¡tite memorije" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "ne mogu omogućiti izvrÅ¡ni stog, Å¡to zahtijeva dijeljeni objekt" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "ne mogu zatvoriti opisnik datoteke" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "datoteka je prekratka" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "neispravno ELF zaglavlje" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "Kodiranje podataka ELF datoteke nije „big-endianâ€" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "Kodiranje podataka ELF datoteke nije „little-endianâ€" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "Identifikator inaÄice ELF datoteke ne odgovara trenutnom" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "OS ABI ELF datoteke nije ispravan" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ABI inaÄica ELF datoteke nije ispravna" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "Popunjavanje u e_ident nije nula" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "interna greÅ¡ka" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "InaÄica ELF datoteke ne odgovara trenutnoj" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "samo ET_DYN i ET_EXEC se mogu uÄitati" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "phentsize ELF datoteke nije oÄekivane veliÄine" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "neispravan ELF razred: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "neispravan ELF razred: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "ne mogu otvoriti datoteku dijeljenog objekta" + +@@ -638,11 +638,11 @@ msgstr "nisam uspio pridružiti segment + msgid "cannot map zero-fill pages" + msgstr "ne mogu pridružiti neispunjene stranice" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "greÅ¡ka premjeÅ¡tanja" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "greÅ¡ka traženja simbola" + +@@ -650,49 +650,40 @@ msgstr "greÅ¡ka traženja simbola" + msgid "cannot extend global scope" + msgstr "ne mogu proÅ¡iriti globalno podruÄje" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "Omatanje brojaÄa TLS stvaranja! Molim prijavite ovo." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "ne mogu uÄitati viÅ¡e objekata sa statiÄkim TLS-om" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "neispravan mod za dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "nema viÅ¡e prostora imena dostupnih za dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "neispravan odrediÅ¡ni prostor imena u dlopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "ne mogu alocirati memoriju u statiÄkom TLS bloku" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "ne mogu pretvoriti segment u zapisiv za premjeÅ¡tanje" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: u objektu %s nije naÄ‘en PLTREL\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: nema dovoljno memorije za spremanje rezultata premjeÅ¡tanja za %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "ne mogu obnoviti zaÅ¡titu segmenta nakon premjeÅ¡tanja" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "ne mogu primijeniti dodatnu zaÅ¡titu memorije nakon premjeÅ¡tanja" + +@@ -700,7 +691,7 @@ msgstr "ne mogu primijeniti dodatnu zaÅ¡ + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT koriÅ¡ten u kodu se ne uÄitava dinamiÄki" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "ne mogu napraviti TLS podatkovne strukture" + +@@ -844,7 +835,7 @@ msgstr "Veza nije stvorena jer nije pron + msgid "Can't open directory %s" + msgstr "Ne mogu otvoriti direktorij %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Ulazna datoteka %s nije pronaÄ‘ena.\n" +@@ -975,7 +966,7 @@ msgstr "nedostaju argumenti datoteke" + msgid "No such file or directory" + msgstr "Nema takve datoteke ili direktorija" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "nije obiÄna datoteka" + +@@ -1020,65 +1011,71 @@ msgstr "ne mogu proÄitati r_debug" + msgid "cannot read program interpreter" + msgstr "ne mogu proÄitati interpreter programa" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "ne mogu Äitati mapu veza" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "ne mogu proÄitati ime objekta" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "ne mogu alocirati memoriju za zaglavlje programa" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "IspiÅ¡i dinamiÄke dijeljene objekte uÄitane u proces." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Potreban je toÄno jedan parametar s identifikatorom procesa.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "neispravan identifikator procesa „%sâ€" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "ne mogu otvoriti %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "ne mogu otvoriti %s/task" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "ne mogu pripremiti Äitanje %s/task" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "neispravan identifikator dretve „%sâ€" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "ne mogu pridružiti procesu %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "ne mogu saznati informacije o procesu %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "proces %lu nije ELF program" +@@ -1113,27 +1110,27 @@ msgstr "%s nije datoteka dijeljenog obje + msgid "more than one dynamic segment\n" + msgstr "viÅ¡e od jednog dinamiÄkog segmenta\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Ne mogu izvrÅ¡iti fstat na datoteci %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Datoteka %s je prazna, ne provjeravam." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Datoteka %s je premalena, ne provjeravam." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Ne mogu izvrÅ¡iti mmap na datoteci %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s nije ELF datoteka - ima neispravne bajtove na poÄetku.\n" +@@ -1267,10 +1264,10 @@ msgstr "DIJOBJ [PROFPODACI]" + msgid "failed to load shared object `%s'" + msgstr "nisam uspio uÄitati dijeljeni objekt „%sâ€" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "ne mogu napraviti interne opisnike" ++msgid "cannot create internal descriptor" ++msgstr "ne mogu napraviti interni opisnik" + + #: elf/sprof.c:554 + #, c-format +@@ -1337,11 +1334,6 @@ msgstr "nisam uspio izvrÅ¡iti mmap na da + msgid "error while closing the profiling data file" + msgstr "greÅ¡ka pri zatvaranju datoteke podataka za profiliranje" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "ne mogu napraviti interni opisnik" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1599,27 +1591,27 @@ msgstr "socket: greÅ¡ka protokola u post + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: kratko Äitanje" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat nije uspio" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "ne mogu otvoriti" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat nije uspio" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "nepostojeći vlasnik" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "mogu pisati i nevlasnici" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "negdje je Ävrsto povezan" + +@@ -1739,8 +1731,8 @@ msgid "no symbolic name given for end of + msgstr "nije navedeno simboliÄko ime kraja raspona" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1766,8 +1758,8 @@ msgid "%s: error in state machine" + msgstr "%s: greÅ¡ka u automatu" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1788,7 +1780,7 @@ msgstr "nepoznat znak „%sâ€" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "broj bajtova niza bajtova na poÄetku i kraju raspona nije jednak: %d i %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "neispravna imena raspona znakova" +@@ -1810,8 +1802,8 @@ msgstr "gornja granica u rasponu je manj + msgid "resulting bytes for range not representable." + msgstr "rezultirajući bajtovi raspona se ne mogu prikazati." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1875,7 +1867,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: brojÄani kod zemlje „%d†nije ispravan" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1897,8 +1889,8 @@ msgstr "%s: polje „%s†je deklariran + msgid "%s: unknown character in field `%s'" + msgstr "%s: nepoznat znak u polju „%sâ€" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1907,12 +1899,12 @@ msgstr "%s: nepoznat znak u polju „%sâ + msgid "%s: incomplete `END' line" + msgstr "%s: nepotpuni „END†redak" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1922,477 +1914,477 @@ msgstr "%s: nepotpuni „END†redak" + msgid "%s: syntax error" + msgstr "%s: sintaksna greÅ¡ka" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "„%.*s†je već definiran u skupu znakova" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "„%.*s†je već definiran u repertoaru" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "„%.*s†je već definiran kao simbol razvrstavanja" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "„%.*s†je već definiran kao element razvrstavanja" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: „forward†i „backward†se meÄ‘usobno iskljuÄuju" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: „%s†spomenuto viÅ¡e puta u definiciji težine %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: previÅ¡e pravila, prva stavka je imala samo %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: nema dovoljno pravila razvrstavanja" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: prazan niz znakova nije dozvoljen" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: težine moraju koristiti isti znak trotoÄja kao ime" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: previÅ¡e vrijednosti" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "redoslijed za „%.*s†je već definiran u %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: poÄetni i krajnji simbol raspona moraju predstavljati znakove" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: nizovi bajtova prvog i zadnjeg znaka moraju biti iste duljine" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: niz bajtova prvog znaka raspona nije manji od onoga zadnjeg znaka" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: trotoÄje simboliÄkog raspona ne smije izravno slijediti nakon „order_startâ€" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: trotoÄje simboliÄkog raspona ne smije izravno slijediti „order_endâ€" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "„%s†i „%.*s†nisu ispravna imena simboliÄkog raspona" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: redoslijed za „%.*s†je već definiran u %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: „%s†mora biti znak" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: „position†se mora koristiti za odreÄ‘enu razinu u svim dijelovima ili niti u jednom" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "simbol „%s†nije definiran" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "simbol „%s†ima isto kodiranje kao" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "simbol „%sâ€" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "nema definicije od „UNDEFINEDâ€" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "previÅ¡e greÅ¡aka, odustajem" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: ugniježđeni uvjeti nisu podržani" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: viÅ¡e od jednog „elseâ€" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: dvostruka definicija „%sâ€" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: dvostruka deklaracija dijela „%sâ€" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: nepoznat znak u imenu simbola razvrstavanja" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: nepoznat znak u imenu ekvivalentne definicije" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: nepoznat znak u vrijednosti ekvivalentne definicije" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: nepoznat simbol „%s†u ekvivalentnoj definiciji" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "greÅ¡ka pri dodavanju ekvivalentnog simbola razvrstavanja" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "dvostruka definicija pisma „%sâ€" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: nepoznato ime odjeljka „%.*sâ€" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: viÅ¡estruke definicije redoslijeda za odjeljak „%sâ€" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: neispravan broj pravila razvrstavanja" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: viÅ¡estruke definicije redoslijeda za neimenovani odjeljak" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: nedostaje kljuÄna rijeÄ â€žorder_endâ€" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: redoslijed za simbol razvrstavanja %.*s joÅ¡ nije definiran" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: redoslijed za element razvrstavanja %.*s joÅ¡ nije definiran" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: ne mogu promijeniti raspored poslije %.*s: simbol nije poznat" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: nedostaje kljuÄna rijeÄ â€žreorder-endâ€" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: odjeljak „%.*s†nije poznat" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: neispravan simbol <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: na kraju raspona trotoÄja ne može biti „%sâ€" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: prazan opis kategorije nije dozvoljen" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: nedostaje kljuÄna rijeÄ â€žreorder-sections-endâ€" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: „%s†bez odgovarajućeg „ifdef†ili „ifndefâ€" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: „endif†bez odgovarajućeg „ifdef†ili „ifndefâ€" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Nema imena skupa znakova navedenog u tablici znakova" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "znak L„\\u%0*x†iz razreda „%s†mora biti u razredu „%sâ€" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "znak L„\\u%0*x†iz razreda „%s†ne smije biti u razredu „%sâ€" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "interna greÅ¡ka u %s, redak %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "znak „%s†iz razreda „%s†mora biti u razredu „%sâ€" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "znak „%s†iz razreda „%s†ne smije biti u razredu „%sâ€" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr " znak nije u razredu „%sâ€" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr " znak ne smije biti u razredu „%sâ€" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "znak nije definiran u tablici znakova" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "kategorija „digit†nema stavke u grupama od po deset" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "nema definiranih ulaznih znamenaka i nijednog od standardnih imena iz tablice znakova" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "neki znakovi koriÅ¡teni u „outdigit†nisu dostupni u tablici znakova" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "neki znakovi koriÅ¡teni u „outdigit†nisu dostupni u repertoaru" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "razred znakova „%s†je već definiran" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "ograniÄenje implementacije: nije dozvoljeno viÅ¡e od %Zd razreda znakova" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "tablica znakova „%s†je već definirana" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "ograniÄenje implementacije: nije dozvoljeno viÅ¡e od %d tablica znakova" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: polje „%s†ne sadrži toÄno deset stavki" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "„doâ€-vrijednost raspona je manja od „odâ€-vrijednosti " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "poÄetni i krajnji niz znakova raspona moraju imati istu duljinu" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "„odâ€-vrijednost niza znakova je manja od „doâ€-vrijednosti niza" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "preuranjen kraj definicije „translit_ignoreâ€" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "sintaksna greÅ¡ka" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: sintaksna greÅ¡ka u definiciji novog razreda znakova" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: sintaksna greÅ¡ka u definiciji nove tablice znakova" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "raspon trotoÄja mora biti oznaÄen s dva operanda iste vrste" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "uz simboliÄka imena vrijednosti raspona ne smije se koristiti apsolutno trotoÄje „...â€" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "uz UCS vrijednosti raspona mora se koristiti heksadekadsko simboliÄko trotoÄje „..â€" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "uz kodove znakova vrijednosti raspona mora se koristiti apsolutno trotoÄje „...â€" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "dvostruka definicija pridruživanja „%sâ€" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: „translit_start†odjeljak ne zavÅ¡ava sa „translit_endâ€" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: dvostruka „default_missing†definicija" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "postoji prethodna definicija" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: nema reprezentativne definicije „default_missingâ€" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: znak „%s†nije definiran dok je potreban kao zadana vrijednost" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: znak „%s†u tablici znakova ne može se prikazati jednim bajtom" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: znak „%s†potreban kao zadana vrijednost ne može se prikazati jednim bajtom" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "izlazne znamenke nisu definirane i nemaju standardna imena iz tablice znakova" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: podaci transliteracije iz lokala „%s†nisu dostupni" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tablica razreda „%sâ€: %lu bajtova\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tablica znakovne tablice „%sâ€: %lu bajtova\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tablica za Å¡irinu: %lu bajtova\n" +@@ -3815,17 +3807,23 @@ msgstr "dodaj novu stavku „%s†vrste + msgid " (first)" + msgstr " (prvi)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 +-#, c-format +-msgid "cannot stat() file `%s': %s" ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "ne mogu izvrÅ¡iti stat() na datoteci „%sâ€: %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "Äistim %s spremnik, vrijeme %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "razmatram %s stavku „%sâ€, vremensko ograniÄenje %" +@@ -3911,153 +3909,217 @@ msgstr "ne mogu postaviti utiÄnicu za z + msgid "cannot enable socket to accept connections: %s" + msgstr "ne mogu omogućiti utiÄnicu za prihvaćanje veza: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Ne mogu otvoriti direktorij %s" ++ ++#: nscd/connections.c:1022 ++#, fuzzy, c-format ++#| msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "registriraj datoteku praćenja %s za bazu podataka %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "omogući pristup u FD %d, za %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "ne mogu obraditi staru inaÄicu zahtjeva %d, trenutna inaÄica je %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "zahtjev od %ld nije obraÄ‘en zbog nedostajućih dozvola" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "zahtjev od „%s†[%ld] nije obraÄ‘en zbog nedostajućih dozvola" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "zahtjev nije obraÄ‘en zbog nedostajućih dozvola" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "ne mogu zapisati rezultat: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "greÅ¡ka pri dohvatu broja pozivatelja: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "ne mogu otvoriti /proc/self/cmdline: %s, onemogućujem paranoiÄni naÄin" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "ne mogu Äitati /proc/self/cmdline: %s, onemogućujem paranoiÄni naÄin" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "ne mogu promijeniti u stari UID: %s, onemogućujem paranoiÄni naÄin" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "ne mogu promijeniti u stari GID: %s, onemogućujem paranoiÄni naÄin" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "ne mogu promijeniti u stari radni direktorij: %s, onemogućujem paranoiÄni naÄin" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "ponovljeno izvrÅ¡avanje nije uspjelo: %s, onemogućujem paranoiÄni naÄin" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "ne mogu promijeniti trenutni radni direktorij u „/â€: %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "kratko Äitanje pri Äitanju zahtjeva: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "duljina kljuÄa u zahtjevu je prevelika: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "kratko Äitanje pri Äitanju kljuÄa zahtjeva: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: primljen zahtjev (InaÄica = %d) od PID-a %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: primljen zahtjev (InaÄica = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "nisam uspio uÄitati dijeljeni objekt „%sâ€" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "onemogućen inotify nakon greÅ¡ke Äitanja %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "ne mogu inicijalizirati varijablu uvjeta" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "ne mogu pokrenuti dretvu Äišćenja, zavrÅ¡avam" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "ne mogu pokrenuti nijednu radnu dretvu, zavrÅ¡avam" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Nisam uspio pokrenuti nscd kao korisnik „%sâ€" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "inicijalni getgrouplist nije uspio" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist nije uspio" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups nije uspio" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "kratko pisanje u %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Nisam pronaÅ¡ao „%s†u spremniku grupa!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Ponovo uÄitavam „%s†u spremnik grupa!" +@@ -4145,7 +4207,7 @@ msgstr "Koristi odvojeni spremnik za sva + msgid "Name Service Cache Daemon." + msgstr "Pozadinski proces spremnika usluga imena." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "neispravan broj argumenata" +@@ -4179,7 +4241,7 @@ msgstr "ne mogu promijeniti trenutni rad + msgid "Could not create log file" + msgstr "Ne mogu napraviti datoteku dnevnika" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "pisanje nedovrÅ¡eno" +@@ -4194,7 +4256,7 @@ msgstr "ne mogu Äitati nevažeći ACK" + msgid "invalidation failed" + msgstr "nisam uspio uÄiniti nevažećim" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Samo root smije koristiti ovu opciju!" +@@ -4283,35 +4345,35 @@ msgstr "ne mogu otkriti trenutni radni d + msgid "maximum file size for %s database too small" + msgstr "najveća veliÄina datoteke za bazu podataka %s je premalena" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "ne mogu pisati statistiku: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "da" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "ne" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Samo root ili %s smiju koristiti ovu opciju!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd nije pokrenut!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "ne mogu Äitati statistiÄke podatke" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4322,27 +4384,27 @@ msgstr "" + "\n" + "%15d debug razina poslužitelja\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus vrijeme rada poslužitelja\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus vrijeme rada poslužitelja\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus vrijeme rada poslužitelja\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus vrijeme rada poslužitelja\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4359,7 +4421,7 @@ msgstr "" + "%15lu ponovo pokreni interno\n" + "%15u broj ponovljenih uÄitavanja\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4425,87 +4487,87 @@ msgstr "Ponovo uÄitavam „%s†u spre + msgid "Invalid numeric uid \"%s\"!" + msgstr "Neispravan numeriÄki uid „%sâ€!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Nisam uspio otvoriti vezu na revizorski podsustav: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Nisam uspio postaviti keep-capabilities" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) nije uspio" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Nisam uspio inicijalizirati ispuÅ¡tanje mogućnosti" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init nije uspio" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Nisam uspio ispustiti mogućnosti" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc nije uspio" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Nisam uspio postaviti keep-capabilities na poÄetnu vrijednost" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Nisam uspio odrediti podržava li jezgra SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Nisam uspio pokrenuti AVC dretvu" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Nisam uspio napraviti AVC zakljuÄavanje" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Nisam uspio pokrenuti AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Pristup spremniku vektora (AVC - Access Vector Cache) je pokrenut" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + #| msgid "Error getting context of nscd" + msgid "Error getting security class for nscd." + msgstr "GreÅ¡ka pri dohvatu konteksta nscd-a" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "GreÅ¡ka pri dohvatu konteksta utiÄnice" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "GreÅ¡ka pri dohvatu konteksta nscd-a" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "GreÅ¡ka pri dohvatu sid-a iz konteksta " + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4569,16 +4631,16 @@ msgstr "Dohvati stavke iz administrativn + msgid "Enumeration not supported on %s\n" + msgstr "Numeriranje nije podržano na %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Nepoznata baza podataka" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Podržane baze podataka:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Nepoznata baza podataka: %s\n" +@@ -4858,7 +4920,7 @@ msgstr "Neuparena ) ili \\)" + msgid "No previous regular expression" + msgstr "Nedostaje prethodni regularni izraz" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parametar prazan ili nije postavljen" + +@@ -7248,6 +7310,15 @@ msgstr "previÅ¡e kratica vremenskih zona + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: Ne mogu napraviti direktorij %s: %s\n" + ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "ne mogu uÄitati viÅ¡e objekata sa statiÄkim TLS-om" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: u objektu %s nije naÄ‘en PLTREL\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "ne mogu napraviti interne opisnike" ++ + #~ msgid "compile-time support for database policy missing" + #~ msgstr "nedostaje podrÅ¡ka za vrijeme kompajliranja police baze podataka" + +Index: glibc-2.23/po/hu.po +=================================================================== +--- glibc-2.23.orig/po/hu.po ++++ glibc-2.23/po/hu.po +@@ -7,7 +7,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.10.1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2009-08-04 02:23+0200\n" + "Last-Translator: Gabor Kelemen \n" + "Language-Team: Hungarian \n" +@@ -144,10 +144,10 @@ msgstr "" + "[KIMENETIFÃJL [BEMENETIFÃJL]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, fuzzy, c-format +@@ -162,7 +162,7 @@ msgstr "" + ".\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -179,7 +179,7 @@ msgstr "" + "garancia, még az ADOTT CÉLRE VALÓ ELADHATÓSÃGRA VAGY MEGFELELÅSÉGRE SEM.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -444,11 +444,11 @@ msgstr "%s hozzáférési jogainak módo + msgid "Renaming of %s to %s failed" + msgstr "%s átnevezése meghiúsult erre: %s" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "Nem hozható létre hatókörlista" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "a megosztott objektum nincs megnyitva" + +@@ -521,127 +521,127 @@ msgstr "nem hozható létre keresésiút + msgid "cannot stat shared object" + msgstr "nem érhetÅ‘ el a megosztott objektum" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "nem nyitható meg a nullával kitöltÅ‘ eszköz" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "nem hozható létre megosztott objektumleíró" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "nem olvashatók a fájladatok" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "az ELF betöltési parancs igazítása nem lapokhoz igazított" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "az ELF betöltési parancs címe/eltolása nincs megfelelÅ‘en igazítva" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "nem foglalhatók TLS adatszerkezetek a kiinduló szálhoz" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "a TLS adatok nem kezelhetÅ‘k" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "az objektumfájlnak nincsenek betölthetÅ‘ szakaszai" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "nem tölthetÅ‘ be dinamikusan a végrehajtható fájl" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "az objektumfájlnak nincs dinamikus szakasza" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "megosztott objektumra nem hívható meg a dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "nem foglalható memória a program fejlécének" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "érvénytelen hívó" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "a memóriavédelem nem módosítható" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "nem engedélyezhetÅ‘ a végrehajtható verem, mint ahogy a megosztott objektum megköveteli" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "nem zárható le a fájlleíró" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "a fájl túl rövid" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "érvénytelen ELF fejléc" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "az ELF fájladatok kódolása nem big endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "az ELF fájladatok kódolása nem little endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "az ELF fájlverzió azonosítója nem felel meg az aktuálisnak" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "az ELF fájl OS ABI-ja érvénytelen" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "az ELF fájl ABI verziója érvénytelen" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "belsÅ‘ hiba" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "az ELF fájlverzió nem felel meg az aktuálisnak" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "csak az ET_DYN és ET_EXEC tölthetÅ‘ be" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "az ELF fájl phentsize értéke nem a várt méretű" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "hibás ELF osztály: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "hibás ELF osztály: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "nem nyitható meg a megosztott objektumfájl" + +@@ -653,11 +653,11 @@ msgstr "a szegmens leképezése meghiús + msgid "cannot map zero-fill pages" + msgstr "nem képezhetÅ‘k le a nullával kitöltött lapok" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "áthelyezési hiba" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "szimbólumkikeresési hiba" + +@@ -665,49 +665,40 @@ msgstr "szimbólumkikeresési hiba" + msgid "cannot extend global scope" + msgstr "a globális hatáskör nem bÅ‘víthetÅ‘" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "" + +@@ -715,7 +706,7 @@ msgstr "" + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "" + +@@ -861,7 +852,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "" +@@ -992,7 +983,7 @@ msgstr "" + msgid "No such file or directory" + msgstr "Nincs ilyen fájl vagy könyvtár" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "" + +@@ -1041,71 +1032,77 @@ msgstr "a fejléc nem olvasható" + msgid "cannot read program interpreter" + msgstr "a fejléc nem olvasható" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "nem olvashatók a fájladatok" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "a fejléc nem olvasható" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "nem foglalható memória a program fejlécének" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid pointer size" + msgid "invalid process ID '%s'" + msgstr "érvénytelen mutatóméret" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "„%s†nem nyitható meg" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "„%s†nem nyitható meg" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "érvénytelen ELF fejléc" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1140,27 +1137,27 @@ msgstr "" + msgid "more than one dynamic segment\n" + msgstr "" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "" +@@ -1286,9 +1283,9 @@ msgstr "" + msgid "failed to load shared object `%s'" + msgstr "" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "" + + #: elf/sprof.c:554 +@@ -1356,11 +1353,6 @@ msgstr "" + msgid "error while closing the profiling data file" + msgstr "" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1604,27 +1596,27 @@ msgstr "" + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "" + +@@ -1744,8 +1736,8 @@ msgid "no symbolic name given for end of + msgstr "" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1771,8 +1763,8 @@ msgid "%s: error in state machine" + msgstr "" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1793,7 +1785,7 @@ msgstr "" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "" +@@ -1815,8 +1807,8 @@ msgstr "" + msgid "resulting bytes for range not representable." + msgstr "" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1880,7 +1872,7 @@ msgid "%s: numeric country code `%d' not + msgstr "" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1902,8 +1894,8 @@ msgstr "" + msgid "%s: unknown character in field `%s'" + msgstr "" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1912,12 +1904,12 @@ msgstr "" + msgid "%s: incomplete `END' line" + msgstr "" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1927,476 +1919,476 @@ msgstr "" + msgid "%s: syntax error" + msgstr "" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "szintaktikai hiba" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -3775,17 +3767,22 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 + #, c-format +-msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3871,153 +3868,213 @@ msgstr "" + msgid "cannot enable socket to accept connections: %s" + msgstr "" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "failed to add file watch `%s`: %s" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "" +@@ -4105,7 +4162,7 @@ msgstr "" + msgid "Name Service Cache Daemon." + msgstr "" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "" +@@ -4139,7 +4196,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "" +@@ -4154,7 +4211,7 @@ msgstr "" + msgid "invalidation failed" + msgstr "" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "" +@@ -4235,35 +4292,35 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "igen" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "nem" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4271,27 +4328,27 @@ msgid "" + "%15d server debug level\n" + msgstr "" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4302,7 +4359,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4345,85 +4402,85 @@ msgstr "" + msgid "Invalid numeric uid \"%s\"!" + msgstr "" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4474,16 +4531,16 @@ msgstr "" + msgid "Enumeration not supported on %s\n" + msgstr "" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "" +@@ -4765,7 +4822,7 @@ msgstr "Pár nélküli ) vagy \\)" + msgid "No previous regular expression" + msgstr "Nincs megelÅ‘zÅ‘ szabályos kifejezés" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +Index: glibc-2.23/po/ia.po +=================================================================== +--- glibc-2.23.orig/po/ia.po ++++ glibc-2.23/po/ia.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.17-pre1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2013-04-26 04:10+0400\n" + "Last-Translator: Nik Kalach \n" + "Language-Team: Interlingua \n" +@@ -143,10 +143,10 @@ msgstr "" + "[FILE-OUTPUT [FILE-INPUT]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -158,7 +158,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -175,7 +175,7 @@ msgstr "" + "NULLE garantia; atque pro MERCABILETATE o APTITUDE PRO UN PROPOSITO PARTICULAR.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -430,11 +430,11 @@ msgstr "Insuccesso del modification del + msgid "Renaming of %s to %s failed" + msgstr "Insuccesso del cambiamento de nomine %s a %s" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "impossibile de crear un lista de ambito" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "objecto condivise non aperte" + +@@ -507,127 +507,127 @@ msgstr "impossibile de crear un array de + msgid "cannot stat shared object" + msgstr "impossibile de effectuar stat sur le objecto condivise" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "impossibile de aperir un dispositovo de impletion con zeros" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "impossibile de crear un descriptor de objecto condivise" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "impossibile de leger datos del file" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "Le commando de cargar ELF non es alineate a un pagina" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "Le adresso o displaciamento del commando de cargar ELF non es alineate correctemente" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "impossibile de allocar le structura de datos TLS pro le filo initial" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "impossibile de tractar datos TLS" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "le file de objecto non ha segmentos cargabile" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "impossibile de cargar dynamicamente un executabile" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "le file de objecto non ha un section dynamic" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "le objecto condivise non pote esser aperite via dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "impossibile de allocar le memoria pro un testa de programma" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "appellante invalide" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "impossibile de modificar le protection de memoria" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "impossibile de habilitar un pila executabile como le objecto condivise necessita" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "impossibile de clauder un descriptor de file" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "file troppo curte" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "testa ELF incorrecte" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "le codification de datos del file ELF non es big-endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "le codification de datos del file ELF non es little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "le identificator de version del file ELF non corresponde con le version actual" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ABI de systema operative del file ELF invalide" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "Version de ABI del file ELF invalide" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "impletion con non-zeros in e_ident" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "error interne" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "Le version del file ELF non corresponde con le version actual" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "solo ET_DYN e ET_EXEC pote esser cargate" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "Le valor `phentsize' del file ELF non concorda con le expectation" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "classe ELF incorrecte: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "classe ELF incorrecte: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "impossibile de aperir un file de objecto condivise" + +@@ -639,11 +639,11 @@ msgstr "insuccesso de mmap sur un object + msgid "cannot map zero-fill pages" + msgstr "impossibile de mmap paginas del dispositivo de impletion con zeros" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "error de relocation" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "error de cerca de symbolo" + +@@ -651,49 +651,40 @@ msgstr "error de cerca de symbolo" + msgid "cannot extend global scope" + msgstr "impossibile de extender le ambito global" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "Le contator de generation TLS ha permitite! Reporta iste problema." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "impossibile de cargar necun altere objectos con TLS static" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "modo invalide pro dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "necun altere spatios de nomines disponibile pro dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "spatio de nomines de destination invalide in dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "impossibile de allocar memoria in un bloco TLS static" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "impossibile de render un segmento scribibile pro le relocation" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: necun PLTREL trovate in le objecto %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: memoria exhauste pro immagazinar le resultatos de relocation pro %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "impossibile de restabilir le protection del segmento post le relocation" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "impossibile de applicar le protection de memoria additional post le relocation" + +@@ -701,7 +692,7 @@ msgstr "impossibile de applicar le prote + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT usate in le codice non cargate dynamicamente" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "impossibile de crear structuras de datos TLS" + +@@ -845,7 +836,7 @@ msgstr "Ligamine non create proque il no + msgid "Can't open directory %s" + msgstr "Impossibile de aperir le directorio %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Le file de entrata %s non trovate.\n" +@@ -976,7 +967,7 @@ msgstr "argumentos de file mancante" + msgid "No such file or directory" + msgstr "Necun tal file o directorio" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "le file non es regular" + +@@ -1021,65 +1012,71 @@ msgstr "impossibile de leger r_debug" + msgid "cannot read program interpreter" + msgstr "impossibile de leger le interprete de programma" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "impossibile de leger le mappa de ligamines" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "impossibile de leger le nomine de objecto" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "impossibile de allocar le memoria pro un testa de programma" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "Monstrar objectos condivise dynamic incargate in le processo." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Un parametro exactemente con le identificator de processo es necessari.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "identificator de processo invalide '%s'" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "impossibile de aperir %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "impossibile de aperir %s/task" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "impossibile de preparar a leger %s/task" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "identificator de filo invalide '%s'" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "impossibile de attaccar al processo %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "impossibile de obtener le information super le processo %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "le processo %lu non es un programma ELF" +@@ -1114,27 +1111,27 @@ msgstr "%s non es un file de objectos co + msgid "more than one dynamic segment\n" + msgstr "plus de un segmento dynamic\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Impossibile de effectuar fstat sur le file %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Le file %s es vacue, non controlate." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Le file %s es troppo parve, non controlate." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Impossible de effectuar mmap sur le file %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s non es un file ELF - illo ha le bytes magic incorrecte al testa.\n" +@@ -1268,10 +1265,10 @@ msgstr "OBJCONDIV [DATOSPROF]" + msgid "failed to load shared object `%s'" + msgstr "insuccesso del cargamento del objecto condivise `%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "impossibile de crear descriptores interne" ++msgid "cannot create internal descriptor" ++msgstr "impossibile de crear un descriptor interne" + + #: elf/sprof.c:554 + #, c-format +@@ -1338,11 +1335,6 @@ msgstr "insuccesso de mmap sur le file d + msgid "error while closing the profiling data file" + msgstr "error al clauder le file de datos de profilage" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "impossibile de crear un descriptor interne" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1600,27 +1592,27 @@ msgstr "socket: insuccesso de protocollo + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: lectura curte" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "insuccesso de lstat" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "impossibile de aperir" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "insuccesso de fstat" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "proprietario incorrecte" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "accessibile pro scriber per alteres que le proprietario" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "ha un ligamine dur in alicun parte" + +@@ -1740,8 +1732,8 @@ msgid "no symbolic name given for end of + msgstr "necun nomine symbolic fornite pro le fin del intervallo" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1767,8 +1759,8 @@ msgid "%s: error in state machine" + msgstr "%s: error in le automato de statos finite" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1789,7 +1781,7 @@ msgstr "character incognite `%s'" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "le numero de bytes in le sequentia de initio e de fin del intervallo non es le mesme: %d contra %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nomines invalide pro un intervallo de characteres" +@@ -1811,8 +1803,8 @@ msgstr "le limite alte in le intervallo + msgid "resulting bytes for range not representable." + msgstr "le bytes resultante pro le intervallo non es representabile." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1876,7 +1868,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: le codice numeric de pais `%d' non es valide" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1898,8 +1890,8 @@ msgstr "%s: le campo `%s' es declarate p + msgid "%s: unknown character in field `%s'" + msgstr "%s: character incognite in le campo `%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1908,12 +1900,12 @@ msgstr "%s: character incognite in le ca + msgid "%s: incomplete `END' line" + msgstr "%s: linea `END' incomplete" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1923,477 +1915,477 @@ msgstr "%s: linea `END' incomplete" + msgid "%s: syntax error" + msgstr "%s: error de syntaxe" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' jam definite in le tabula de characteres" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' jam definite in repertoire" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' jam definite como symbolo de collation" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' jam definite como elemento de collation" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: `forward' e `backward' son mutualmente exclusive" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: `%s' mentionate plus de un vice in le definition del peso %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: tro de regulas; le prime entrata habeva solmente %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: il non ha sufficiente regulas a assortir" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: catena de peso vacue non es permittite" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: le pesos debe usar le mesmo symbolo de ellipse que le nomine" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: tro de valores" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "le ordine pro `%.*s' jam es definite in %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: le symbolos de initio e de fin de un intervallo debe representar characteres" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: le sequentias de bytes del prime e del ultime characteres debe haber le mesme longitude" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: le sequentia de bytes del prime character del intervallo non es plus parve que illo del ultime character" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: le ellipse de intervallo symbolic non debe sequer directemente `order_start'" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: le ellipse de intervallo symbolic non debe esser sequite directemente per `order_end'" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' e `%.*s' non es nomines valide pro un intervallo symbolic" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: le ordine pro `%.*s' jam es definite in %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' debe esser un character" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `position' debe utilisar se pro un nivello specific in tote le sectiones o in necun" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "le symbolo `%s' non es definite" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "le symbolo `%s' ha le mesme codification que" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "le symbolo `%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "nulle definition de `UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "tro de errores; abandono" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: le conditionales annidate non es supportate" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: plus de un 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: definition duplicate de `%s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: declaration duplicate del section `%s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: character incognite in le nomine de un symbolo de collation" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: character incognite in le nomine de un definition de equivalente" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: character incognite in le valor de un definition de equivalente" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: symbolo incognite `%s' in un definition de equivalente" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "error durante le addition de un symbolo de collation equivalente" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "definition duplicate del scriptura `%s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: nomine de section incognite `%.*s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: multiple definitiones de ordine pro le section `%s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: le numero de regulas a assortir es incorrecte" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: multiple definitiones de ordine pro un section innominate" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: parola clave `order_end' mancante" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: ordine non ancora definite pro le symbolo de collation %.*s" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: ordine non ancora definite pro le elemento de collation %.*s" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: impossibile de reordinar post %.*s: symbolo incognite" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: parola clave `reorder-end' mancante" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: section `%.*s' incognite" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: symbolo invalide <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: impossibile de haber `%s' como fin de un intervallo de ellipse" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: le description de categoria vacue non es permittite" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: parola clave `reorder-sections-end' mancante" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: '%s' sin correspondente 'ifdef' o 'ifndef'" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'endif' sin correspondente 'ifdef' o 'ifndef'" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Necun nomine de collection de characteres es specificate in le tabula de characteres" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "le character L'\\u%0*x' del classe `%s' debe esser in le classe `%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "le character L'\\u%0*x' del classe `%s' non debe esser in le classe `%s'" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "error interne in %s, linea %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "le character '%s' del classe `%s' debe esser in le classe `%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "le character '%s' del classe `%s' non debe esser in le classe `%s'" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "le character non es in le classe `%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "le character non debe esser in le classe `%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "le character non es definite in le tabula de characteres" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "le categoria `digit' non ha entratas in gruppos de dece" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "necun cifras de entrata definite e necun del nomines standard in le tabula de characteres" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "non tote le characteres usate in `outdigit' es disponibile in le tabula de characteres" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "non tote le characteres usate in `outdigit' es disponibile in le repertoire" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "le classe de characteres `%s' jam ha essite definite" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "limite de implementation: il se non permitte plus de %Zd classes de characteres" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "le mappa de characteres `%s' jam ha essite definite" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "limite de implementation: il se non permitte plus de %d mappas de characteres" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: le campo `%s' non contine exactemente dece entratas" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "le valor final del intervallo es plus parve que le valor initial " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "le sequantias de characteres initial e final del intervallo debe haber le mesme longitude" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "le sequentia de characteres del valor final es plus parve que le sequentia del valor initial" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "le fin prematur del definition de `translit_ignore'" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "error de syntaxe" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: error de syntaxe in le definition de un nove classe de characteres" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: error de syntaxe in le definition de un nove mappa de characteres" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "le intervallo de ellipse debe ser marcate per duo operandos del mesme typo" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "con intervallo definite per nomines symbolic le ellipse absolute `...' non debe ser utilisate" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "con intervallo definite per UCS on debe usar le ellipse symbolic hexadecimal `..'" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "con intervallo definite per codices de characteres on debe usar le ellipse absolute `...'" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "definition duplicate del tabula `%s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: le section `translit_start' non fini con `translit_end'" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: definition duplicate de `default_missing'" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "le definition previe era hic" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: necun definition `default_missing' representabile trovate" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: le character `%s' non es definite quando illo es necesse como valor predefinite" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: le character `%s' in tabula de characteres non es representabile con un byte" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: le character `%s' requirite como valor predefinite non es representabile con un byte" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "necun cifras de output es definite e nihil del nomines standard es in le tabula de characteres" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: le datos de transliteration del localitate `%s' non es disponibile" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabula pro le classe \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabula de characteres \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabula pro le largor: %lu bytes\n" +@@ -3776,17 +3768,22 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 + #, c-format +-msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3872,153 +3869,215 @@ msgstr "" + msgid "cannot enable socket to accept connections: %s" + msgstr "" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Impossibile de aperir le directorio %s" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, removing watch" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "insuccesso del cargamento del objecto condivise `%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "" +@@ -4106,7 +4165,7 @@ msgstr "" + msgid "Name Service Cache Daemon." + msgstr "" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "" +@@ -4140,7 +4199,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "" +@@ -4155,7 +4214,7 @@ msgstr "" + msgid "invalidation failed" + msgstr "" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "" +@@ -4241,35 +4300,35 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4277,27 +4336,27 @@ msgid "" + "%15d server debug level\n" + msgstr "" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4308,7 +4367,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4351,85 +4410,85 @@ msgstr "" + msgid "Invalid numeric uid \"%s\"!" + msgstr "" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4482,16 +4541,16 @@ msgstr "" + msgid "Enumeration not supported on %s\n" + msgstr "" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "" +@@ -4761,7 +4820,7 @@ msgstr "" + msgid "No previous regular expression" + msgstr "" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +@@ -7125,3 +7184,12 @@ msgstr "" + #, c-format + msgid "%s: Can't create directory %s: %s\n" + msgstr "" ++ ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "impossibile de cargar necun altere objectos con TLS static" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: necun PLTREL trovate in le objecto %s\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "impossibile de crear descriptores interne" +Index: glibc-2.23/po/id.po +=================================================================== +--- glibc-2.23.orig/po/id.po ++++ glibc-2.23/po/id.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.10.1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2009-06-23 12:30+0700\n" + "Last-Translator: Arif E. Nugroho \n" + "Language-Team: Indonesian \n" +@@ -142,10 +142,10 @@ msgstr "" + "[BERKAS-KELUARAN [BERKAS-MASUKAN]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, fuzzy, c-format +@@ -160,7 +160,7 @@ msgstr "" + ".\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -177,7 +177,7 @@ msgstr "" + "garansi; bahkan untuk PERDAGANGAN atau KECOCOKAN UNTUK SEBUAH TUJUAN TERTENTU.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -442,11 +442,11 @@ msgstr "Mengubah ijin akses dari %s ke % + msgid "Renaming of %s to %s failed" + msgstr "Mengubah nama dari %s ke %s gagal" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "tidak dapat membuat daftar scope" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "shared objek tidak dapat dibuka" + +@@ -519,127 +519,127 @@ msgstr "tidak dapat membuah array jalur + msgid "cannot stat shared object" + msgstr "tidak dapat memperoleh statistik objek terbagi" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "tidak dapat membuka perangkat pengisi nol" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "tidak dapat membuat deskripsi objek terbagi" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "tidak dapat membaca berkas data" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF perintah angkut tidak teralign-halaman" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF perintah angkut alamat/ofset tidak secara benar ter-align" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "tidak dapat mengalokasikan struktur data TLS untuk inisial thread" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "tidak dapat menangani data TLS" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "berkas objek tidak memiliki segmen yang dapat diangkut" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "tidak dapat secara dinamis mengangkut aplikasi" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "berkas objek tidak memiliki bagian dinamis" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "objek terbagi tidak dapat di dlopen()ed" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "tidak dapat mengalokasikan memori untuk aplikasi header" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "pemanggil tidak valid" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "tidak dapat mengubah proteksi memori" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "tidak dapat mengaktifkan stack aplikasi sebagai objek terbagi yang dibutuhkan" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "tidak dapat menutup berkas deskripsi" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "berkas terlalu pendek" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "header ELF tidak valid" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "berkas data enkoding ELF bukan big-endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "berkas data enkoding ELF bukan little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "berkas versi ident ELF tidak cocok dengan yang sekarang" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "berkas OS ABI ELF tidak valid" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "berkas versi ABI ELF tidak valid" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "internal error" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "berkas versi ELF tidak cocok dengan yang sekarang" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "hanya ET_DYN dan ET_EXEC yang dapat diangkut" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "berkas phentsize ELF tidak seperti ukuran yang diduga" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "kelas ELF salah: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "kelas ELF salah: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "tidak dapat membuka berkas objek terbagi" + +@@ -651,11 +651,11 @@ msgstr "gagal untuk memetakan segmen dar + msgid "cannot map zero-fill pages" + msgstr "tidak dapat memetakan halaman pengisian-nol" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "relokasi error" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "simbol lookup error" + +@@ -663,51 +663,40 @@ msgstr "simbol lookup error" + msgid "cannot extend global scope" + msgstr "tidak dapat mengeksten global scope" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "pembuatan TLS penghitung wrapped! Tolong laporkan ini." + +-#: elf/dl-open.c:542 +-#, fuzzy +-#| msgid "cannot allocate memory in static TLS block" +-msgid "cannot load any more object with static TLS" +-msgstr "tidak dapat mengalokasikan memori dalam blok TLS statis" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "mode untuk dlopen() tidak valid" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "tidak ada lagi ruang-nama yang tersedia untuk dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "target ruang-nama dalam dlmopen() tidak valid" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "tidak dapat mengalokasikan memori dalam blok TLS statis" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "tidak dapat membuat segmen dapat ditulis untuk relokasi" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: tidak ada PLTREL ditemukan dalam objek %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: kehabisan dari memori untuk menyimpan hasil relokasi untuk %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "tidak dapat merestore segmen prot setelah relokasi" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "tidak dapat mengaplikasikan proteksi memori tambahan setelah relokasi" + +@@ -715,7 +704,7 @@ msgstr "tidak dapat mengaplikasikan prot + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT digunakan dalam kode yang tidak secara dinamis diangkut" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "tidak dapat membuat struktur data TLS" + +@@ -861,7 +850,7 @@ msgstr "Tidak ada hubungan yang dibuat k + msgid "Can't open directory %s" + msgstr "Tidak dapat membuka direktori %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Berkas masukan %s tidak ditemukan.\n" +@@ -992,7 +981,7 @@ msgstr "hilang berkas argumen" + msgid "No such file or directory" + msgstr "Tidak ada berkas atau direktori seperti itu" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "bukan sebuah berkas regular" + +@@ -1042,73 +1031,79 @@ msgstr "tidak dapat membaca header" + msgid "cannot read program interpreter" + msgstr "tidak dapat membaca archive header" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "tidak dapat membaca berkas data" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "tidak dapat membaca header" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "tidak dapat mengalokasikan memori untuk aplikasi header" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid pointer size" + msgid "invalid process ID '%s'" + msgstr "ukuran penunjuk tidak valid" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "tidak dapat membuka `%s'" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "tidak dapat membuka `%s'" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + #| msgid "cannot create searchlist" + msgid "cannot prepare reading %s/task" + msgstr "tidak dapat membuat daftar pencarian" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "header ELF tidak valid" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot access '%s'" + msgid "cannot attach to process %lu" + msgstr "tidak dapat mengakses '%s'" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1143,27 +1138,27 @@ msgstr "%s bukan sebuah berkas objek ter + msgid "more than one dynamic segment\n" + msgstr "lebih dari satu segmen dinamis\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Tidak dapat fstat berkas %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Berkas %s kosong, tidak diperiksa." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Berkas %s terlalu kecil, tidak diperiksa." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Tidak dapat mmap berkas %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s bukan sebuah berkas ELF - ini memiliki magis bytes salah di awal.\n" +@@ -1291,9 +1286,9 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "gagal mengangkut objek terbagi `%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "tidak dapat membuat deskripsi internal" + + #: elf/sprof.c:554 +@@ -1361,11 +1356,6 @@ msgstr "gagal untuk memetakan berkas dat + msgid "error while closing the profiling data file" + msgstr "error ketika menutup berkas data profiling" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "tidak dapat membuat deskripsi internal" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1623,27 +1613,27 @@ msgstr "socket: protokol gagal dalam kon + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: pembacaan pendek" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat gagal" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "tidak dapat membuka" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat gagal" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "pemilik buruk" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "dapat ditulis oleh selain dari pemilik" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "hard linked kesuatu tempat" + +@@ -1763,8 +1753,8 @@ msgid "no symbolic name given for end of + msgstr "tidak ada nama simbolis yang diberikan untuk akhir dari jangkauan" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1790,8 +1780,8 @@ msgid "%s: error in state machine" + msgstr "%s: error dalam mesin status" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1812,7 +1802,7 @@ msgstr "karakter `%s' tidak dikenal" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "jumlah dari bytes untuk urutan byte dari awal dan akhir dari jangkauan tidak sama: %d vs %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nama tidak valid untuk jangkauan karakter" +@@ -1834,8 +1824,8 @@ msgstr "batas atas dalam jangkauan adala + msgid "resulting bytes for range not representable." + msgstr "menghasilkan bytes untuk jangkauan tidak dapat direpresentasikan." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1899,7 +1889,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: kode negara numerik `%d' tidak valid" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1921,8 +1911,8 @@ msgstr "%s: daerah `%s' terdeklarasi leb + msgid "%s: unknown character in field `%s'" + msgstr "%s: karakter dalam daerah `%s' tidak dikenal" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1931,12 +1921,12 @@ msgstr "%s: karakter dalam daerah `%s' t + msgid "%s: incomplete `END' line" + msgstr "%s: tidak lengkap `END' baris" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1946,477 +1936,477 @@ msgstr "%s: tidak lengkap `END' baris" + msgid "%s: syntax error" + msgstr "%s: sintaks error" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' telah terdefinisi dalam charmap" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' telah terdefinisi dalam repertoire" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' telah terdefinisi sebagai simbol collating" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' telah terdefinisi sebagai elemen collating" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: `forward' dan `backward' adalah secara muttual excluding satu sama lain" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: `%s' disebutkan lebih dari sekali dalam definisi dari berat %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: terlalu banyak aturan; masukan pertama hanya memiliki %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: tidak cukup aturan pengurutan" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: berat kosong string tidak diijinkan" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: berat seharusnya menggunakan ellipsis sama simbol sebagai nama" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: terlalu banyak nilai" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "perintah untuk `%.*s' telah terdefinisi di %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: awal dan akhir dari simbol dari sebuah jangkauan harus berdiri untuk karakter" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: urutan byte dari karakter awal dan akhir harus memiliki panjang sama" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: urutan byte dari awal karakter dari jangkauan tidak lebih rendah dari karakter terakhir" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: jangkauan simbolis ellipsis tidak boleh secara langsung mengikuti `order_start'" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: jangkauan simbolis ellipsis tidak boleh secara langsung mengikuti `order_end'" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' dan `%.*s' bukan sebuah nama valid untuk jangkauan simbolis" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: urutan untuk `%.*s' telah terdefinisi di %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' harus berupa sebuah karakter" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `posisi' harus digunakan untuk tingkat spesifik dalam seluruh bagian atau kosong" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "simbol `%s' tidak terdefinisi" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "simbol `%s' memiliki pengkodean yang sama seperti" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "simbol `%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "tidak ada definisi dari `UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "terlalu banyak error; menyerah" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: nested kondisional tidak didukung" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: lebih dari satu 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: duplikasi definisi dari `%s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: duplikasi deklarasi dari daerah `%s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: karakter tidak dikenal dalam nama simbol collating" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: karakter tidak dikenal dalam definisi nama yang ekuivalen" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: karakter tidak dikenal dalam nilai definisi yang ekuivalen" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: simbol tidak dikenal `%s' definisi ekuivalen" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "error ketika menambahkan simbol collating ekuivalen" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "duplikasi definisi dari skrip `%s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: nama daerah `%.*s' tidak dikenal" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: multiple tingkat definisi untuk daerah `%s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: nomor tidak valid untuk aturan pengurutan" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: banyak tingkat definisi untuk daerah tidak bernama" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: hilang `order_end' kata-kunci" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: tingkat untuk collaing simbol %.*s belum terdefinisi" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: tingkat untuk collating elemen %.*s belum terdefinisi" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: tidak dapat mengurutkan setelah %.*s: simbol tidak diketahui" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: hilang `reorder-end' kata-kunci" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: bagian `%.*s' tidak dikenal" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: simbol buruk <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: tidak dapat memiliki `%s' sebagai akhir dari jangkauan ellipsis" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: deskripsi kategori kosong tidak diperbolehkan" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: hilang `reorder-section-end' kata-kunci" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: '%s' tanpa pencocokan 'ifdef' atau 'ifndef'" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'endif' tanpa pencocokan 'ifdef' atau 'ifndef'" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Tidak ada nama karakter set yang dispesifikasikan dalam charmap" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "karakter L'\\u%0*x' dalam kelas `%s' harus berada dalam kelas `%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "karakter L'\\u%0*x' dalam kelas `%s' tidak boleh berada dalam kelas `%s'" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "internal error dalam %s, baris %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "karakter '%s' dalam kelas `%s' harus berada dalam kelas `%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "karakter '%s' dalam kelas `%s' tidak boleh berada dalam kelas `%s'" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr " karakter tidak dalam kelas `%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr " karakter tidak boleh berada dalam kelas `%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "karakter tidak terdefinisi dalam peta karakter" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "`digit' kategori tidak memiliki masukan dalam grup dari sepuluh" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "tidak ada masukan digit yang terdefinisi dan kosong dari nama baku dalam charmap" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "tidak semua karakter digunakan dalam `outdigit' tersedia dalam charmap" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "tidak semua karakter yang digunakan dalam `outdigit' tersedia dalam repertoire" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "karakter kelas `%s' telah terdefinisi" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "batas implementasi: tidak lebih dari %Zd karakter kelas diperbolehkan" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "peta karakter `%s' telah terdefinisi" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "batas implementasi: tidak lebih dari %d peta karakter diperbolehkan" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: daerah `%s' tidak berisi tepat sepuluh masukan" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "ke-nilai dari jangkauan adalah lebih kecil dari dari-nilai " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "awal dan akhir urutan karakter dari jangkauan harus memiliki panjang yang sama" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "ke-nilai urutan karakter lebih kecil daripada urutan dari-nilai" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "prematur akhir dari `translit_ignore' definisi" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "sintaks error" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: sintaks error dalam definisi dari kelas karakter baru" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: sintaks error dalam definisi dari peta karakter baru" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "jangkauan ellipsis harus ditandai dengan dua operan dari tipe yang sama" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "dengann nilai jangkauan nama simbol absolut ellipsis `...' tidak boleh digunakan" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "dengan nilai jangkauan UCS salah satu harus menggunakan heksadesimal simbolis ellipsis `..'" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "dengan nilai jangkauan kode karakter salah satu harus menggunakan ellipsis absolut `...'" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "duplikasi definisi untuk pemetaan `%s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: `translit_start' daerah tidak berakhir dengan `translit_end'" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: duplikasi `default_missing' definisi" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "definisi sebelumnya ada disini" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: tidak ada representasi `default_missing' definisi ditemukan" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: karakter `%s' tidak terdefinisi ketika dibutuhkan sebagai nilai default" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: karakter `%s' dalam charmap tidak dapat direpresentasikan dengan satu byte" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: karakter `%s' dibutuhkan sebagai nilai baku tidak dapat direpresentasikan dengan satu byte" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "tidak ada keluaran digital terdefinisi dan tidak ada nama baku dalam charmaps" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: transliteration data dari lokal `%s' tidak tersedia" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabel untuk kelas \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabel untuk peta \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabel untuk lebar: %lu bytes\n" +@@ -3853,17 +3843,23 @@ msgstr "penambahan masukan baru \"%s\" d + msgid " (first)" + msgstr " (pertama)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "tidak dapat membuka berkas basis data `%s': %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "tidak dapat stat() berkas `%s': %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "pruning %s cache; waktu %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "mempertimbangkan %s masukan \"%s\", waktu habis %" +@@ -3949,154 +3945,217 @@ msgstr "tidak dapat menset socket untuk + msgid "cannot enable socket to accept connections: %s" + msgstr "tidak dapat mengaktifkan socket untuk menerima koneksi: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Tidak dapat membuka direktori %s" ++ ++#: nscd/connections.c:1022 + #, fuzzy, c-format + #| msgid "no more memory for database '%s'" +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "tidak ada memori lagi untuk basis data '%s'" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "menyediakan akses ke FD %d, untuk %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "tidak dapat menangani versi permintaan lama %d; versi sekarang adalah %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "permintaan dari %ld tidak dapat ditangani karena tidak ada ijin" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "permintaan dari '%s' [%ld] tidak dapat ditangani karena tidak ada ijin" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "permintaan tidak dapat ditangani karena tidak ada ijin" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "tidak dapat menulis hasil: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "error memperoleh id pemanggil: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "tidak dapat membuka /proc/self/cmdline: %s; menonaktifkan mode paranoia" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "tidak dapat membaca /proc/self/cmdline: %s; menonaktifkan mode paranoia" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "tidak dapat mengubah ke UID lama: %s; menonaktifkan mode paranoia" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "tidak dapat mengubah ke GID lama: %s; menonaktifkan mode paranoia" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "tidak dapat berubah ke direktori kerja lama: %s; menonaktifkan mode paranoia" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "re-exec gagal: %s; menonaktifkan mode paranoia" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "tidak dapat mengubah direktori kerja ke \"/\": %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "pembacaan singkat ketika membaca permintaan: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "panjang kunci dalam permintaan terlalu panjang: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "pembacaan singkat ketika membaca permintaan kunci: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: permintaan diterima (Versi = %d) dari PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: permintaan diterima (Versi = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "gagal mengangkut objek terbagi `%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "menonaktifkan inotify setelah error membaca %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "tidak dapat menginisialisasi variabel kondisional" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "tidak dapat memulai threads pembersihan; mengakhiri" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "tidak dapat memulai threads pekerja apapun; mengakhiri" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Gagal untuk menjalankan nscd sebagai pengguna '%s'" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "inisial getgrouplist gagal" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist gagal" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups gagal" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "penulisan pendek dalam %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Belum ditemukan \"%s\" dalam grup cache!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Reloading \"%s\" dalam grup cache!" +@@ -4188,7 +4247,7 @@ msgstr "Gunakan pemisah cache untuk seti + msgid "Name Service Cache Daemon." + msgstr "Cache Layanan Pengguna Daemon." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "jumlah salah dari argumen" +@@ -4222,7 +4281,7 @@ msgstr "tidak dapat mengubah direktori k + msgid "Could not create log file" + msgstr "Tidak dapat membuat berkas log" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "penulisan tidak lengkap" +@@ -4237,7 +4296,7 @@ msgstr "tidak dapat membaca invalidate A + msgid "invalidation failed" + msgstr "invalidation gagal" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Hanya root yang diperbolehkan untuk menggunakan pilihan ini!" +@@ -4319,35 +4378,35 @@ msgstr "tidak dapat memperoleh direktori + msgid "maximum file size for %s database too small" + msgstr "ukuran berkas maksimal untuk %s basis data terlalu kecil" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "tidak dapat menulis statistik: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "ya" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "tidak" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Hanya root atau %s yang diperbolehkan untuk menggunakan pilihan ini!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd tidak berjalan!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "tidak dapat membaca data statistik" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4358,27 +4417,27 @@ msgstr "" + "\n" + "%15d server tingkat debug\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %u2d %2um %2lus server waktu jalan\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus server waktu jalan\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus server waktu jalan\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus server waktu jalan\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, fuzzy, c-format + #| msgid "" + #| "%15d current number of threads\n" +@@ -4400,7 +4459,7 @@ msgstr "" + "%15s mode paranoia diaktifkan\n" + "%15lu restart internal\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4466,87 +4525,87 @@ msgstr "Reloading \"%s\" dalam cache kat + msgid "Invalid numeric uid \"%s\"!" + msgstr "uid numerik \"%s\" tidak valid !" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Gagal membuka koneksi ke audit subsistem: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Gagal menset keep-kapabiliti" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) gagal" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Gagal menginisialisasi drop dari kapabiliti" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init gagal" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Gagal untuk mendrop kapabiliti" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc gagal" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Gagal untuk menunset keep-kapabiliti" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Gagal untuk menentukan jika kernel mensupport SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Gagal untuk menjalankan thread AVC" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Gagal untuk membuat kunci AVC" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Gagal untuk menjalankan AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Akses Vektor Cache (AVC) berjalan" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + #| msgid "Error getting context of nscd" + msgid "Error getting security class for nscd." + msgstr "Error memperoleh konteks dari nscd" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Error memperoleh konteks dari socket peer" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Error memperoleh konteks dari nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Error memperoleh sid dari konteks" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4610,16 +4669,16 @@ msgstr "Dapatkan masukan dari basis data + msgid "Enumeration not supported on %s\n" + msgstr "Enumerasi tidak didukung di %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Nama basis data tidak dikenal" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Basis data yang didukung:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Basis data tidak dikenal: %s\n" +@@ -4914,7 +4973,7 @@ msgstr "Tidak cocok ) atau \\)" + msgid "No previous regular expression" + msgstr "Tidak ada ekspresi regular sebelumnya" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parameter kosong atau tidak diset" + +@@ -7355,15 +7414,24 @@ msgstr "%s: Tidak dapat membuat direktor + #~ msgid "xtrace: option \\`$1' requires an argument.\\n" + #~ msgstr "xtrace: pilihan \\`$1' membutuhkan sebuah argumen.\\n" + ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: tidak ada PLTREL ditemukan dalam objek %s\n" ++ + #~ msgid "Can't open configuration file %s" + #~ msgstr "Tidak dapat membuka berkas konfigurasi %s" + ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "tidak dapat membuat deskripsi internal" ++ + #~ msgid "Try \\`memusage --help' for more information." + #~ msgstr "Coba \\`memusage --help' untuk informasi lebih lanjut." + + #~ msgid "memusage: option \\`$1' requires an argument" + #~ msgstr "memusage: pilihan \\`$1' membutuhkan sebuah argumen" + ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "tidak dapat stat() berkas `%s': %s" ++ + #~ msgid "invalid value for 'reload-count': %u" + #~ msgstr "nilai tidak valid untuk 'reload-count': %u" + +Index: glibc-2.23/po/it.po +=================================================================== +--- glibc-2.23.orig/po/it.po ++++ glibc-2.23/po/it.po +@@ -9,7 +9,7 @@ msgid "" + msgstr "" + "Project-Id-Version: libc-2.14\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2011-10-17 14:21+0200\n" + "Last-Translator: Sergio Zanchetta \n" + "Language-Team: Italian \n" +@@ -155,10 +155,10 @@ msgstr "" + "[FILE-OUTPUT [FILE-INPUT]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, fuzzy, c-format +@@ -173,7 +173,7 @@ msgstr "" + ".\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -192,7 +192,7 @@ msgstr "" + + # lf + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -476,12 +476,12 @@ msgstr "Rinomina di %s a %s non riuscita + + # lf + # +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "impossibile creare l'elenco di ambito" + + # lf +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "oggetto condiviso non aperto" + +@@ -565,148 +565,148 @@ msgstr "impossibile creare l'array dei p + msgid "cannot stat shared object" + msgstr "impossibile fare stat sull'oggetto condiviso" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "impossibile aprire il device riempito con zeri" + + # lf +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "impossibile creare il descrittore di oggetto condiviso" + + # lf +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "impossibile leggere il file di dati" + + # lf +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "comando di caricamento ELF non allineato alla pagina" + + # lf +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "indirizzo/offset del comando di caricamento ELF non propriamente allineato" + + # lf +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "impossibile allocare strutture dati TLS per il thread iniziale" + + # lf +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "impossibile gestire i dati TLS" + + # lf +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "il file oggetto non presenta segmenti caricabili" + + # lf +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "impossibile caricare dinamicamente l'eseguibile" + + # lf + # +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "il file oggetto non presenta una sezione dinamica" + + # lf +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "impossibile eseguire dlopen() sull'oggetto condiviso" + + # lf +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "impossibile allocare memoria per l'intestazione di programma" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "chiamante non valido" + + # lf +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "impossibile cambiare le protezioni della memoria" + + # lf +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "impossibile abilitare lo stack eseguibile come richiesto dall'oggetto condiviso" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "impossibile chiudere il descrittore di file" + + # lf +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "file troppo corto" + + # lf +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "intestazione ELF non valida" + + # lf +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "la codifica dati del file ELF non è big-endian" + + # lf +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "la codifica dati del file ELF non è little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "l'identificatore di versione del file ELF non corrisponde a quello attuale" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ABI del file ELF del sistema operativo non valido" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "versione ABI del file ELF non valida" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "riempimento con valori diversi da zero in e_ident" + + # lf +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "errore interno" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "La versione del file ELF non corrisponde a quella attuale" + + # lf +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "è possibile caricare solo ET_DYN ed ET_EXEC" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "La phentsize del file ELF non corrisponde a quella attesa" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "classe ELF errata: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "classe ELF errata: ELFCLASS32" + + # lf +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "impossibile aprire il file oggetto condiviso" + +@@ -722,11 +722,11 @@ msgid "cannot map zero-fill pages" + msgstr "impossibile mappare le pagine riempite con zeri" + + # lf +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "errore di rilocazione" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "errore nella ricerca del simbolo" + +@@ -736,53 +736,43 @@ msgstr "errore nella ricerca del simbolo + msgid "cannot extend global scope" + msgstr "impossibile estendere l'ambito globale" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "contatore TLS di generazione azzerato. Segnalare questo problema." + +-# lf +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "impossibile caricare altri oggetti con un TLS statico" +- + # ls +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "modo non valido per dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "nessuno spazio dei nomi disponibile per dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "spazio dei nomi di destinazione non valido in dlmopen()" + + # lf +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "impossibile allocare memoria nel blocco statico TLS" + + # lf +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "impossibile rendere il segmento scrivibile per la rilocazione" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: nessun PLTREL trovato nell'oggetto %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: memoria esaurita per memorizzare i risultati della rilocazione per %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "impossibile ripristinare la protezione del segmento dopo la rilocazione" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "impossibile applicare una protezione supplementare della memoria dopo la rilocazione" + +@@ -792,7 +782,7 @@ msgid "RTLD_NEXT used in code not dynami + msgstr "RTLD_NEXT usato in codice caricato non dinamicamente" + + # lf +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "impossibile creare le strutture dati TLS" + +@@ -953,7 +943,7 @@ msgstr "Collegamenti non creati poiché + msgid "Can't open directory %s" + msgstr "Impossibile aprire la directory %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "File di input %s non trovato.\n" +@@ -1090,7 +1080,7 @@ msgstr "argomenti relativi al file manca + msgid "No such file or directory" + msgstr "File o directory non esistente" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "non è un file normale" + +@@ -1146,77 +1136,84 @@ msgid "cannot read program interpreter" + msgstr "impossibile leggere l'intestazione dell'archivio" + + # lf +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "impossibile leggere il file di dati" + + # lf +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "impossibile leggere l'intestazione" + +-#: elf/pldd.c:63 ++# lf ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "impossibile allocare memoria per l'intestazione di programma" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + + # lf +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid pointer size" + msgid "invalid process ID '%s'" + msgstr "dimensione puntatore non valida" + + # lf +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "impossibile aprire \"%s\"" + + # lf +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "impossibile aprire \"%s\"" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "" + + # lf +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "intestazione ELF non valida" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot access '%s'" + msgid "cannot attach to process %lu" + msgstr "impossibile accedere a \"%s\"" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1255,27 +1252,27 @@ msgstr "%s non è un file oggetto condiv + msgid "more than one dynamic segment\n" + msgstr "più di un segmento dinamico\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Impossibile fare fstat di %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Il file %s è vuoto, non controllato." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Il file %s è troppo piccolo, non controllato." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Impossibile fare mmap del file %s\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s non è un file ELF - i byte magic iniziali sono sbagliati.\n" +@@ -1428,10 +1425,10 @@ msgid "failed to load shared object `%s' + msgstr "caricamento dell'oggetto condiviso \"%s\" non riuscito" + + # lf +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "impossibile creare descrittori interni" ++msgid "cannot create internal descriptor" ++msgstr "impossibile creare il descrittore interno" + + # lf + #: elf/sprof.c:554 +@@ -1504,12 +1501,6 @@ msgid "error while closing the profiling + msgstr "errore durante la chiusura del file di dati di profiling" + + # lf +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "impossibile creare il descrittore interno" +- +-# lf + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1798,27 +1789,27 @@ msgstr "socket: errore del protocollo ne + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: lettura breve" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat non riuscita" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "impossibile aprire" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat non riuscita" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "proprietario errato" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "scrivibile da altri oltre che dal proprietario" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "collegato fisicamente da qualche parte" + +@@ -1952,8 +1943,8 @@ msgid "no symbolic name given for end of + msgstr "nessun nome simbolico fornito per la fine dell'intervallo" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1980,8 +1971,8 @@ msgid "%s: error in state machine" + msgstr "%s: errore nella macchina a stati" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -2004,7 +1995,7 @@ msgid "number of bytes for byte sequence + msgstr "il numero di byte per la sequenza d'inizio e di fine dell'intervallo non sono gli stessi: %d contro %d" + + # lf +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "nomi non validi per l'intervallo di caratteri" +@@ -2027,8 +2018,8 @@ msgid "resulting bytes for range not rep + msgstr "i byte risultanti per l'intervallo non sono rappresentabili." + + # lf +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -2093,7 +2084,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: codice numerico di nazione \"%d\" non valido" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -2116,8 +2107,8 @@ msgstr "%s: campo \"%s\" dichiarato più + msgid "%s: unknown character in field `%s'" + msgstr "%s: carattere sconosciuto nel campo \"%s\"" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -2126,12 +2117,12 @@ msgstr "%s: carattere sconosciuto nel ca + msgid "%s: incomplete `END' line" + msgstr "%s: riga \"END\" incompleta" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -2142,490 +2133,490 @@ msgid "%s: syntax error" + msgstr "%s: errore di sintassi" + + # lf +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "\"%.*s\" già definito nella mappa caratteri" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "\"%.*s\" già definito nel repertorio" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "\"%.*s\" già definito come simbolo di collazione" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "\"%.*s\" già definito come elemento di collazione" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: \"forward\" e \"backward\" sono mutuamente esclusivi" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: \"%s\" menzionato più di una volta nella definizione del peso %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: troppe regole; la prima voce ne aveva solo %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: regole di ordinamento non sufficienti" + + # lf +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: stringa vuota del peso non consentita" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: i pesi devono usare lo stesso simbolo ellissi del nome" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: troppi valori" + + # lf +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "ordine per \"%.*s\" già definito su %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: i simboli iniziale e finale di un intervallo devono rappresentare caratteri" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: la sequenza di byte del primo e dell'ultimo carattere devono avere la stessa lunghezza" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: la sequenza di byte del primo carattere dell'intervallo non è più piccola di quella dell'ultimo carattere" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: l'ellissi dell'intervallo simbolico non deve seguire direttamente \"order_start\"" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: l'ellissi dell'intervallo simbolico non deve essere seguita direttamente da \"order_end\"" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "\"%s\" e \"%.*s\" non sono nomi validi per un intervallo simbolico" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: ordine per \"%.*s\" già definito su %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: \"%s\" deve essere un carattere" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: \"position\" deve essere usato per uno specifico livello o in tutte le sezioni o in nessuna" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "simbolo \"%s\" non definito" + + # lf +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "il simbolo \"%s\" ha la stessa codifica di" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "simbolo \"%s\"" + + # lf +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "nessuna definizione di \"UNDEFINED\"" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "troppi errori; uscita" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: le condizioni nidificate non sono supportate" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: più di un \"else\"" + + # lf +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: definizione duplicata di \"%s\"" + + # lf +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: dichiarazione duplicata della sezione \"%s\"" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: carattere sconosciuto nel nome del simbolo di collazione" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: carattere sconosciuto nel nome della definizione equivalente" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s carattere sconosciuto nel valore della definizione equivalente" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: simbolo sconosciuto \"%s\" nella definizione equivalente" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "errore durante l'aggiunta di un simbolo di collazione equivalente" + + # lf +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "definizione dello script \"%s\" duplicata" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: nome della sezione sconosciuto \"%.*s\"" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: definizioni di ordine multiplo per la sezione \"%s\"" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: numero di regole di ordinamento non valido" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: definizioni multiple di ordinamento per la sezione senza nome" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: parola chiave \"order_end\" mancante" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: ordine non ancora definito per il simbolo di collazione %.*s" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: ordine non ancora definito per l'elemento di collazione %.*s" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: impossibile riordinare dopo %.*s: simbolo sconosciuto" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: parola chiave \"reorder-end\" mancante" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: sezione \"%.*s\" sconosciuta" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: simbolo non valido <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: impossibile avere \"%s\" come fine dell'intervallo con ellissi" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: descrizione vuota della categoria non consentita" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: parola chiave \"reorder-sections-end\" mancante" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: \"%s\" senza il corrispondente \"ifdef\" o \"ifndef\"" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: \"endif\" senza il corrispondente \"ifdef\" o \"ifndef\"" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Nessun nome specificato per il set nella mappa caratteri" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "il carattere L\"\\u%0*x\" nella classe \"%s\" deve stare nella classe \"%s\"" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "il carattere L\"\\u%0*x\" nella classe \"%s\" non deve stare nella classe \"%s\"" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "errore interno in %s, riga %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "il carattere \"%s\" nella classe \"%s\" deve stare nella classe \"%s\"" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "il carattere \"%s\" nella classe \"%s\" non deve stare nella classe \"%s\"" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "Il carattere non è nella classe \"%s\"" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "Il carattere non deve stare nella classe \"%s\"" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "carattere non definito nella mappa caratteri" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "la categoria \"digit\" non contiene voci a gruppi di dieci" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "nessuna cifra di input definita e nessuno dei nomi standard nella mappa caratteri" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "non tutti i caratteri usati in \"outdigit\" sono disponibili nella mappa caratteri" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "non tutti i caratteri usati in \"outdigit\" sono disponibili nel repertorio" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "classe di caratteri \"%s\" già definita" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "limite di implementazione: non sono permesse più di %Zd classi di carattere" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "mappa caratteri \"%s\" già definita" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "limite di implementazione: non sono ammesse più di %d mappe caratteri" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: il campo \"%s\" non contiene esattamente dieci voci" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "Il valore \"fino a\" dell'intervallo è più piccolo del valore \"da\"" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "la sequenza di caratteri iniziale e finale dell'intervallo devono avere la stessa lunghezza" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "Il valore \"fino a\" della sequenza di caratteri è più piccolo del valore \"da\" della sequenza" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "fine prematura della definizione di \"translit_ignore\"" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "errore di sintassi" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: errore di sintassi nella definizione della nuova classe di caratteri" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: errore di sintassi nella definizione della nuova mappa di caratteri" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "l'intervallo con ellissi deve essere marcato da due operandi dello stesso tipo" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "con nomi simbolici come valori dell'intervallo non deve essere usata l'ellissi assoluta \"...\"" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "con valori UCS per l'intervallo, deve essere usata l'ellissi simbolica esadecimale \"..\"" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "con codici carattere come valori dell'intervallo deve essere usata l'ellissi assoluta \"...\"" + + # lf +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "definizione duplicata per la mappatura \"%s\"" + + # lf +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: la sezione \"translit_start\" non termina con \"translit_end\"" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: definizione duplicata di \"default_missing\"" + + # lf +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "la definizione precedente era qui" + + # lf +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: nessuna definizione \"default_missing\" rappresentabile trovata" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: carattere \"%s\" non definito nonostante sia necessario come valore predefinito" + + # lf +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: carattere \"%s\" nella mappa caratteri non rappresentabile con un byte" + + # lf +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: carattere \"%s\" necessario come valore predefinito non rappresentabile con un byte" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "nessuna cifra di output definita e nessun nome standard nella mappa caratteri" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: dati di traslitterazione dalla localizzazione \"%s\" non disponibili" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabella per la classe \"%s\": %lu byte\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabella per la mappa \"%s\": %lu byte\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabella per la larghezza: %lu byte\n" +@@ -4137,18 +4128,23 @@ msgstr "aggiunta della nuova voce \"%s\" + msgid " (first)" + msgstr " (prima)" + +-# lf +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "impossibile aprire il file \"%s\" del database: %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "impossibile fare stat() sul file \"%s\": %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "pulizia della cache di %s; tempo %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "considerata la voce di %s \"%s\", timeout %" +@@ -4236,103 +4232,129 @@ msgstr "impossibile impostare il socket + msgid "cannot enable socket to accept connections: %s" + msgstr "impossibile abilitare il socket per accettare le connessioni: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Impossibile aprire la directory %s" ++ ++#: nscd/connections.c:1022 + #, fuzzy, c-format + #| msgid "no more memory for database '%s'" +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "memoria esaurita per il database \"%s\"" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "fornisce l'accesso a %d FD, per %s" + + # lf +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "impossibile gestire vecchie richieste in versione %d: la versione attuale è %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "richiesta da %ld non gestita a causa di permessi mancanti" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "richiesta da \"%s\" [%ld] non gestita a causa di permessi mancanti" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "richiesta non gestita a causa di permessi mancanti" + + # lf +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "impossibile scrivere il risultato: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "errore durante l'acquisizione dell'id del chiamante: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "impossibile aprire /proc/self/cmdline: %s; modalità paranoia disabilitata" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "impossibile leggere /proc/self/cmdline: %s; modalità paranoia disabilitata" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "impossibile ripristinare l'UID precedente: %s; modalità paranoia disabilitata" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "impossibile ripristinare il GID precedente: %s; modalità paranoia disabilitata" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "impossibile ritornare alla directory di lavoro precedente: %s; modalità paranoia disabilitata" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "re-exec non riuscita: %s; modalità paranoia disabilitata" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "impossibile cambiare l'attuale directory di lavoro in \"/\": %s" + + # ls +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "lettura breve nella lettura della richiesta: %s" + + # lf +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "lunghezza troppo lunga della chiave nella richiesta: %d" + + # lf +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "lettura breve nella lettura della chiave richiesta: %s" + + # lf +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: ricevuta richiesta (versione = %d) dal PID %ld" +@@ -4340,63 +4362,101 @@ msgstr "handle_request: ricevuta richies + # lf + # + # credo che version sia una parola chiave... +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: ricevuta richiesta (Version = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++# lf ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "caricamento dell'oggetto condiviso \"%s\" non riuscito" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "inotify disabilitato dopo un errore di lettura %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "impossibile inizializzare la variabile condizionale" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "impossibile avviare il thread di pulizia; arresto" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "impossibile avviare thread di tipo worker; arresto" + + # lf +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Esecuzione di nscd come utente \"%s\" non riuscita" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "getgrouplist iniziale non riuscita" + + # lf +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist non riuscita" + + # lf +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups non riuscita" + + # lf +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "scrittura breve in %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "\"%s\" non trovato nella cache dei gruppi." + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Ricaricamento di \"%s\" nella cache dei gruppi." +@@ -4494,7 +4554,7 @@ msgstr "Usa una cache separata per ciasc + msgid "Name Service Cache Daemon." + msgstr "Demone di cache dei nomi di servizio (NSCD)." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "numero di argomenti errato" +@@ -4529,7 +4589,7 @@ msgstr "Impossibile cambiare l'attuale d + msgid "Could not create log file" + msgstr "Impossibile creare il file di registro" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "scrittura incompleta" +@@ -4544,7 +4604,7 @@ msgstr "impossibile leggere l'ACK invali + msgid "invalidation failed" + msgstr "invalidazione non riuscita" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Solo l'utente root ha il permesso per usare questa opzione." +@@ -4628,35 +4688,35 @@ msgstr "impossibile acquisire l'attuale + msgid "maximum file size for %s database too small" + msgstr "dimensione massima del file per il database %s troppo piccola" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "impossibile scrivere le statistiche: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "sì" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "no" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Solo l'utente root o %s ha il permesso per usare questa opzione." + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd non è in esecuzione.\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "impossibile leggere i dati statistici" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4667,27 +4727,27 @@ msgstr "" + "\n" + "%15d livello di debug del server\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ug %2uo %2um %2lus runtime del server\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uo %2um %2lus runtime del server\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus runtime del server\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus runtime del server\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4704,7 +4764,7 @@ msgstr "" + "%15lu riavvii interni\n" + "%15u totale ricaricamenti\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4771,87 +4831,87 @@ msgstr "Ricaricamento di \"%s\" nella ca + msgid "Invalid numeric uid \"%s\"!" + msgstr "UID numerico \"%s\" non valido." + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Apertura della connessione al sottosistema audit non riuscita: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Impostazione di keep-capabilities non riuscita" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) non riuscita" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Inizializzazione della rimozione delle possibilità non riuscita" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init non riuscita" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Rimozione delle possibilità non riuscita" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc non riuscita" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Rimozione di keep-capabilities non riuscita" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Non si è riusciti a determinare se il kernel supporta SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Avvio del thread AVC non riuscito" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Creazione del lock AVC non riuscita" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Avvio di AVC non riuscito" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Access Vector Cache (AVC) avviato" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + #| msgid "Error getting context of nscd" + msgid "Error getting security class for nscd." + msgstr "Errore nell'ottenere il contesto di nscd" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Errore nell'ottenere il contesto del corrispondente del socket" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Errore nell'ottenere il contesto di nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Errore nell'ottenere il sid dal contesto" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4915,16 +4975,16 @@ msgstr "Ottiene voci da un database ammi + msgid "Enumeration not supported on %s\n" + msgstr "Enumerazione non supportata su %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Nome del database sconosciuto" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Database supportati:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Database sconosciuto: %s\n" +@@ -5230,7 +5290,7 @@ msgid "No previous regular expression" + msgstr "Nessuna espressione regolare precedente" + + # lf +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parametro nullo o non impostato" + +@@ -7842,9 +7902,24 @@ msgstr "%s: impossibile creare la direct + #~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n" + #~ msgstr "Usare \\\"%s --help\" o \"%s --usage\" per ulteriori informazioni.\\n" + ++# lf ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "impossibile caricare altri oggetti con un TLS statico" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: nessun PLTREL trovato nell'oggetto %s\n" ++ + #~ msgid "Can't open configuration file %s" + #~ msgstr "Impossibile aprire il file di configurazione %s" + ++# lf ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "impossibile creare descrittori interni" ++ ++# lf ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "impossibile fare stat() sul file \"%s\": %s" ++ + #~ msgid "invalid value for 'reload-count': %u" + #~ msgstr "valore non valido per \"reload-count\": %u" + +Index: glibc-2.23/po/ja.po +=================================================================== +--- glibc-2.23.orig/po/ja.po ++++ glibc-2.23/po/ja.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.14\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2011-10-08 23:43+0900\n" + "Last-Translator: Yasuaki Taniguchi \n" + "Language-Team: Japanese \n" +@@ -145,10 +145,10 @@ msgstr "" + "[OUTPUT-FILE [INPUT-FILE]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, fuzzy, c-format +@@ -163,7 +163,7 @@ msgstr "" + ".\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -180,7 +180,7 @@ msgstr "" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -440,11 +440,11 @@ msgstr "%s ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©é™ã‚’ %#o + msgid "Renaming of %s to %s failed" + msgstr "%s ã‹ã‚‰ %s ã¸ã®åå‰å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "スコープリストを作æˆã§ãã¾ã›ã‚“" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "共有オブジェクトãŒé–‹ã‘ã¾ã›ã‚“" + +@@ -517,127 +517,127 @@ msgstr "探索パスé…列を作æˆã§ã + msgid "cannot stat shared object" + msgstr "共有オブジェクトã®çŠ¶æ…‹å–å¾— (stat) ãŒã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "ゼロã§åŸ‹ã‚られãŸãƒ‡ãƒã‚¤ã‚¹ã‚’é–‹ã‘ã¾ã›ã‚“" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "共有オブジェクト記述å­ã‚’作æˆã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "ファイルデータを読ã¿è¾¼ã‚ã¾ã›ã‚“" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF ロードコマンド整列ãŒãƒšãƒ¼ã‚¸ã§æ•´åˆ—ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF ロードコマンドã®ã‚¢ãƒ‰ãƒ¬ã‚¹/オフセットãŒé©åˆ‡ã«æ•´åˆ—ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "åˆæœŸã‚¹ãƒ¬ãƒƒãƒ‰ç”¨ã® TLS データ構造体ãŒé…ç½®ã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "TLS データをå–り扱ãˆã¾ã›ã‚“" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "オブジェクトファイルã¯ãƒ­ãƒ¼ãƒ‰å¯èƒ½ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’æŒã£ã¦ã„ã¾ã›ã‚“" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "実行ファイルを動的ã«ãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "オブジェクトファイルã¯å‹•çš„セクションをæŒã£ã¦ã„ã¾ã›ã‚“" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "共有オブジェクト㯠dlopen() ã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "プログラムヘッダー用ã®ãƒ¡ãƒ¢ãƒªã‚’é…ç½®ã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "無効ãªå‘¼ã³å‡ºã—å…ƒã§ã™" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "メモリä¿è­·ã‚’変更ã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "共有オブジェクトãŒå¿…è¦ã¨ã—ã¦ã„る実行å¯èƒ½ã‚¹ã‚¿ãƒƒã‚¯ã‚’有効ã«ã§ãã¾ã›ã‚“" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "ファイル記述å­ã‚’é–‰ã˜ã‚‰ã‚Œã¾ã›ã‚“" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "ファイルãŒå°ã•ã™ãŽã¾ã™" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "無効㪠ELF ヘッダーã§ã™" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "ELF ファイルデータã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒãƒ“ッグエンディアンã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "ELF ファイルデータã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒãƒªãƒˆãƒ«ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF ファイルãƒãƒ¼ã‚¸ãƒ§ãƒ³è­˜åˆ¥å­ãŒç¾åœ¨ã®ã‚‚ã®ã¨ä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF ファイル OS ABI ãŒç„¡åŠ¹ã§ã™" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF ファイル ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒç„¡åŠ¹ã§ã™" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "e_ident 内ã«ã‚¼ãƒ­ã§ãªã„è©°ã‚文字ãŒã‚ã‚Šã¾ã™" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "内部エラー" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELFファイルã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ãŒç¾åœ¨ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "ET_DYN 㨠ET_EXEC ã®ã¿ãƒ­ãƒ¼ãƒ‰å¯èƒ½ã§ã™" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "ELF ファイル㮠phentsize ãŒäºˆæœŸã•ã‚ŒãŸã‚µã‚¤ã‚ºã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "é–“é•ã£ãŸ ELF クラスã§ã™: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "é–“é•ã£ãŸ ELF クラスã§ã™: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "共有オブジェクトファイルを開ã‘ã¾ã›ã‚“" + +@@ -649,11 +649,11 @@ msgstr "共有オブジェクトã®ã‚»ã‚ + msgid "cannot map zero-fill pages" + msgstr "ゼロã§åŸ‹ã‚られãŸãƒšãƒ¼ã‚¸ã‚’マップã§ãã¾ã›ã‚“" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "å†é…置エラーã§ã™" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "シンボル検索エラーã§ã™" + +@@ -661,49 +661,40 @@ msgstr "シンボル検索エラーã§ã + msgid "cannot extend global scope" + msgstr "大域スコープを拡張ã§ãã¾ã›ã‚“" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "TLS 生æˆã‚«ã‚¦ãƒ³ã‚¿ãŒä¸€å‘¨ã—ã¾ã—ãŸ! ã“れを報告ã—ã¦ãã ã•ã„。" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "é™çš„ TLS ブロックã§ã¯ã“れ以上オブジェクトをロードã§ãã¾ã›ã‚“" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "dlopen() 用ã®ç„¡åŠ¹ãªãƒ¢ãƒ¼ãƒ‰ã§ã™" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "dlmopen() 用ã«ã“れ以上åå‰ç©ºé–“を使用出æ¥ã¾ã›ã‚“" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "dlmopen() 内ã§ç„¡åŠ¹ãªã‚¿ãƒ¼ã‚²ãƒƒãƒˆåå‰ç©ºé–“ã§ã™" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "é™çš„ TLS ブロック内ã«ãƒ¡ãƒ¢ãƒªã‚’é…置出æ¥ã¾ã›ã‚“" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "セグメントをå†é…置用ã«æ›¸ãè¾¼ã¿å¯èƒ½ã«å‡ºæ¥ã¾ã›ã‚“" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: PLTREL ãŒã‚ªãƒ–ジェクト %s 内ã«è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: %s 用ã®å†é…ç½®çµæžœã‚’ä¿å­˜ã™ã‚‹ã¨ãã«ãƒ¡ãƒ¢ãƒªãŒè¶³ã‚Šãªããªã‚Šã¾ã—ãŸ\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "å†é…置後ã«ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® prot を復元ã§ãã¾ã›ã‚“" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "å†é…置後ã«è¿½åŠ ã®ãƒ¡ãƒ¢ãƒªä¿è­·ã‚’é©ç”¨ã§ãã¾ã›ã‚“" + +@@ -711,7 +702,7 @@ msgstr "å†é…置後ã«è¿½åŠ ã®ãƒ¡ãƒ¢ãƒ + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "コード内ã§ä½¿ç”¨ã•ã‚Œã¦ã„ã‚‹ RTLD_NEXT ã‚’å‹•çš„ã«ãƒ­ãƒ¼ãƒ‰å‡ºæ¥ã¾ã›ã‚“" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "TLS データ構造体を作æˆã§ãã¾ã›ã‚“" + +@@ -855,7 +846,7 @@ msgstr "%s 用ã®å‹•çš„ライブラリå + msgid "Can't open directory %s" + msgstr "ディレクトリ %s ã‚’é–‹ã‘ã¾ã›ã‚“" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "入力ファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。\n" +@@ -986,7 +977,7 @@ msgstr "ファイル引数ãŒã‚ã‚Šã¾ã + msgid "No such file or directory" + msgstr "ãã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚„ディレクトリã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "通常ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +@@ -1036,73 +1027,79 @@ msgstr "ヘッダーを読ã¿è¾¼ã‚ã¾ã + msgid "cannot read program interpreter" + msgstr "書庫ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "ファイルデータを読ã¿è¾¼ã‚ã¾ã›ã‚“" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "プログラムヘッダー用ã®ãƒ¡ãƒ¢ãƒªã‚’é…ç½®ã§ãã¾ã›ã‚“" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid argument %s for %s" + msgid "invalid process ID '%s'" + msgstr "%2$s ã«å¯¾ã™ã‚‹å¼•æ•° %1$s ãŒé–“é•ã£ã¦ã„ã¾ã™" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "`%s'ã‚’é–‹ã‘ã¾ã›ã‚“" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "`%s'ã‚’é–‹ã‘ã¾ã›ã‚“" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + #| msgid "cannot create searchlist" + msgid "cannot prepare reading %s/task" + msgstr "サーãƒãƒªã‚¹ãƒˆã‚’作æˆã§ãã¾ã›ã‚“" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "無効㪠ELF ヘッダーã§ã™" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot access '%s'" + msgid "cannot attach to process %lu" + msgstr "'%s' ã«ã‚¢ã‚¯ã‚»ã‚¹å‡ºæ¥ã¾ã›ã‚“" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1137,27 +1134,27 @@ msgstr "%s ã¯å…±æœ‰ã‚ªãƒ–ジェクトム+ msgid "more than one dynamic segment\n" + msgstr "二ã¤ä»¥ä¸Šã®å‹•çš„セグメントãŒã‚ã‚Šã¾ã™\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "ファイル %s ã®çŠ¶æ…‹å–å¾— (fstat) ãŒã§ãã¾ã›ã‚“。\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "ファイル %s ã¯ç©ºã§ã™ã€‚検査ã•ã‚Œã¾ã›ã‚“。" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "ファイル %s ã¯å°ã•ã™ãŽã¾ã™ã€‚検査ã•ã‚Œã¾ã›ã‚“。" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "ファイル %s ã‚’ mmap ã§ãã¾ã›ã‚“。\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s 㯠ELF ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“ - 先頭ã«èª¤ã£ãŸãƒžã‚¸ãƒƒã‚¯ãƒã‚¤ãƒˆã‚’æŒã£ã¦ã„ã¾ã™ã€‚\n" +@@ -1304,9 +1301,9 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "共有オブジェクト `%s' ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "内部記述å­ã‚’作æˆã§ãã¾ã›ã‚“" + + #: elf/sprof.c:554 +@@ -1374,11 +1371,6 @@ msgstr "プロファイルデータフ゠+ msgid "error while closing the profiling data file" + msgstr "プロファイルデータファイルを閉ã˜ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "内部記述å­ã‚’作æˆã§ãã¾ã›ã‚“" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1636,27 +1628,27 @@ msgstr "socket: 回線ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒ + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: 短ã„読込ã¿" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "é–‹ã‘ã¾ã›ã‚“" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "誤ã£ãŸæ‰€æœ‰è€…ã§ã™" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "所有者以外ãŒæ›¸ãè¾¼ã¿ãŒå¯èƒ½ã§ã™" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "ã©ã“ã‹ã§ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã•ã‚Œã¦ã„ã¾ã™" + +@@ -1776,8 +1768,8 @@ msgid "no symbolic name given for end of + msgstr "領域ã®æœ€å¾Œã«ã‚·ãƒ³ãƒœãƒ«åãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1803,8 +1795,8 @@ msgid "%s: error in state machine" + msgstr "%s: 状態マシン内ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1825,7 +1817,7 @@ msgstr "ä¸æ˜Žãªæ–‡å­— `%s' ã§ã™" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®é–‹å§‹ã‹ã‚‰çµ‚了ã¾ã§ã®ãƒã‚¤ãƒˆæ•°ã¨ã€ç¯„囲ã®çµ‚ã‚ã‚Šã¨ãŒä¸€è‡´ã—ã¾ã›ã‚“: %d 㨠%d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "キャラクタ範囲ã¨ã—ã¦ä¸æ­£ãªåå‰ã§ã™" +@@ -1847,8 +1839,8 @@ msgstr "範囲ã®ä¸Šé™ãŒä¸‹é™ã‚ˆã‚Šå° + msgid "resulting bytes for range not representable." + msgstr "範囲ã®çµæžœãƒã‚¤ãƒˆãŒè¡¨ç¤ºå¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“。" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1912,7 +1904,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: æ•°å­—ã®å›½ã‚³ãƒ¼ãƒ‰ `%d' ãŒç„¡åŠ¹ã§ã™" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1934,8 +1926,8 @@ msgstr "%s: フィールド `%s' ãŒäºŒå + msgid "%s: unknown character in field `%s'" + msgstr "%s: フィールド `%s' 内ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1944,12 +1936,12 @@ msgstr "%s: フィールド `%s' 内ã«ä + msgid "%s: incomplete `END' line" + msgstr "%s: ä¸å®Œå…¨ãª `END' è¡Œã§ã™" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1959,477 +1951,477 @@ msgstr "%s: ä¸å®Œå…¨ãª `END' è¡Œã§ã™ + msgid "%s: syntax error" + msgstr "%s: 構文エラー" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' ã¯æ—¢ã«æ–‡å­—マップ内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' ã¯æ—¢ã«ãƒ¬ãƒ‘ートリ内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' ã¯æ—¢ã«ç…§åˆã‚·ãƒ³ãƒœãƒ«ã¨ã—ã¦å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' ã¯æ—¢ã«ç…§åˆè¦ç´ ã¨ã—ã¦å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: `forward' 㨠`backward' ã¯æŽ’ä»–çš„ã§ã™" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: `%s'ã¯é‡ã¿å®šç¾© %d 中ã§è¤‡æ•°å›žä½¿ã‚ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: è¦å‰‡ãŒå¤šã™ãŽã¾ã™; 最åˆã®ã‚¨ãƒ³ãƒˆãƒªã¯ %d ã‚’æŒã£ã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: 並ã³æ›¿ãˆè¦å‰‡ãŒä¸å分ã§ã™" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: 空ã®é‡ã¿æ–‡å­—列ã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: é‡ã¿ã¯ãã®å称ã¨ã—ã¦åŒã˜çœç•¥ã‚·ãƒ³ãƒœãƒ«ã‚’使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: 値ãŒå¤šã™ãŽã¾ã™" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "`%.*s' 用ã®é †åºã¯ %s:%Zu ã§æ—¢ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: 範囲ã®é–‹å§‹ãƒ»çµ‚了シンボルã¯æ–‡å­—ã‚’æ„味ã—ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: 最åˆã¨æœ€å¾Œã®æ–‡å­—ã®ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¯åŒä¸€é•·ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: 範囲ã®æœ€åˆã®æ–‡å­—ã®ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¯æœ€å¾Œã®æ–‡å­—ã®ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚ˆã‚Šå°ã•ãã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: シンボルã®ç¯„囲ã®çœç•¥ã¯`order_start'ã®ã™ã後ã«ç½®ã„ã¦ã¯ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: シンボル範囲çœç•¥è¨˜å·ã¯`order_end'ã®ã™ã後ã«ç¶šã„ã¦ã¯ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' 㨠`%.*s' ã¯ã‚·ãƒ³ãƒœãƒ«ç¯„囲用ã¨ã—ã¦ç„¡åŠ¹ãªåå‰ã§ã™" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: `%.*s' 用ã®é †åºã¯æ—¢ã« %s:%Zu ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' ã¯å˜ä¸€æ–‡å­—ã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `position'ã¯ç‰¹å®šãƒ¬ãƒ™ãƒ«ã«å¯¾ã—ã€å…¨ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã§ä½¿ç”¨ã‹æœªä½¿ç”¨ã‹ã®ã©ã¡ã‚‰ã‹ã§ã™" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "シンボル `%s' ãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "シンボル `%s' ã¯ä»¥ä¸‹ã¨åŒã˜ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’æŒã£ã¦ã„ã¾ã™" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "シンボル `%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "`UNDEFINED' ã®å®šç¾©ãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "エラーãŒå¤šã™ãŽã¾ã™ã€‚処ç†ã‚’ã‚ãらã‚ã¾ã™" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: 入れå­ã«ãªã£ãŸæ¡ä»¶ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: 'else' ãŒäºŒå›žä»¥ä¸Šã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: `%s' ã®é‡è¤‡ã—ãŸå®šç¾©ã§ã™" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: セクション `%s' ã®é‡è¤‡ã—ãŸå®£è¨€ã§ã™" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: ç…§åˆã‚·ãƒ³ãƒœãƒ«å内ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: 等価ãªå®šç¾©å内ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: 等価ãªå®šç¾©å€¤å†…ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: 等価ãªå®šç¾©å†…ã«æœªçŸ¥ã®ã‚·ãƒ³ãƒœãƒ« `%s' ãŒã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "等価ãªç…§åˆã‚·ãƒ³ãƒœãƒ«è¿½åŠ ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "スクリプト `%s' ã®é‡è¤‡ã—ãŸå®šç¾©ã§ã™" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: ä¸æ˜Žãªã‚»ã‚¯ã‚·ãƒ§ãƒ³å `%.*s' ã§ã™" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: セクション `%s' 用ã®é †åºå®šç¾©ãŒè¤‡æ•°ã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: 無効ãªä¸¦ã³æ›¿ãˆè¦å‰‡ã®ç•ªå·ã§ã™" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: åå‰ã®ãªã„セクションã«å¯¾ã™ã‚‹ä¸¦ã³æ›¿ãˆå®šç¾©ãŒè¤‡æ•°ã‚ã‚Šã¾ã™" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: `order_end' キーワードãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: ç…§åˆã‚·ãƒ³ãƒœãƒ« %.*s ã«å¯¾ã™ã‚‹ä¸¦ã¹æ›¿ãˆãŒã¾ã å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: ç…§åˆè¦ç´  %.*s ã«å¯¾ã™ã‚‹ä¸¦ã¹æ›¿ãˆãŒã¾ã å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: %.*sã®å¾Œã§å†ä¸¦ã³æ›¿ãˆãŒã§ãã¾ã›ã‚“: ä¸æ˜Žãªã‚·ãƒ³ãƒœãƒ«ã§ã™" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: `reorder-end' キーワードãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: セクション `%.*s' ã¯ä¸æ˜Žã§ã™" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: é–“é•ã£ãŸã‚·ãƒ³ãƒœãƒ« <%.*s> ã§ã™" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: çœç•¥è¨˜å·ã®ç¯„囲ã®çµ‚ã‚ã‚Šã¨ã—㦠`%s' ã‚’æŒã¤ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: 空ã®ã‚«ãƒ†ã‚´ãƒªè¨˜è¿°ã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: `reorder-sections-end' キーワードãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: '%s' ã«å¯¾å¿œã—ã¦ã„ã‚‹ 'ifdef' ã¾ãŸã¯ 'ifndef' ãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'endif' ã«å¯¾å¿œã—ã¦ã„ã‚‹ 'ifdef' ã¾ãŸã¯ 'ifndef' ãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "文字マップ内ã«æŒ‡å®šã—ãŸæ–‡å­—集åˆåãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "文字 L'\\u%0*x' (クラス `%s' 内) ã¯ã‚¯ãƒ©ã‚¹`%s' 内ã«ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "文字 L'\\u%0*x' (クラス `%s' 内) ã¯ã‚¯ãƒ©ã‚¹ `%s' 内ã«ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "%s 内ã€%u è¡Œã§å†…部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "クラス `%2$s' ã®æ–‡å­— `%1$s' ã¯ã‚¯ãƒ©ã‚¹ `%3$s' ã«ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "クラス `%2$s' 内ã®æ–‡å­— `%1$s' ã¯ã‚¯ãƒ©ã‚¹ `%3$s' ã«ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr " 文字ã¯ã‚¯ãƒ©ã‚¹ `%s' 内ã«ã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr " 文字ã¯ã‚¯ãƒ©ã‚¹ `%s' 内ã«ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "文字 ãŒæ–‡å­—マップ内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "`digit' カテゴリã¯ã‚°ãƒ«ãƒ¼ãƒ—中ã«10個ã®ã‚¨ãƒ³ãƒˆãƒªã‚’æŒã£ã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "入力æ¡ãŒå®šç¾©ã•ã‚Œã¦ã„ãªã„ã‹ã€æ–‡å­—マップ中ã«æ¨™æº–åãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "`outdigit' 内ã§ä½¿ç”¨ã•ã‚Œã¦ã„る文字ã®å…¨ã¦ãŒæ–‡å­—マップ内ã§åˆ©ç”¨å¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "`outdigit'ã§ä½¿ç”¨ä¸­ã®æ–‡å­—ã®ä¸€éƒ¨ã¯ãƒ¬ãƒ‘ートリマップã§åˆ©ç”¨å¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "文字クラス `%s' ã¯æ—¢ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "実装上ã®åˆ¶é™: %Zd より大ãã„文字クラスã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "文字マップ `%s' ã¯æ—¢ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "実装上ã®åˆ¶é™: %d より大ãã„文字マップã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: フィールド `%s' ã¯åŽ³å¯†ã«10項目をå«ã‚“ã§ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "範囲㮠to ã®å€¤ 㯠from ã®å€¤ よりå°ã•ã„ã§ã™" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "範囲ã®é–‹å§‹ã¨çµ‚了文字シーケンスã¯åŒä¸€é•·ã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "to 値ã®æ–‡å­—シーケンス㯠from 値ã®æ–‡å­—シーケンスよりもå°ã•ã™ãŽã¾ã™" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "`translit_ignore' 定義ã®çµ‚端ãŒæ—©ã™ãŽã¾ã™" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "構文エラーã§ã™" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: æ–°ã—ã„文字クラスã®å®šç¾©å†…ã§æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ã§ã™" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: æ–°ã—ã„文字マップã®å®šç¾©å†…ã§æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ã§ã™" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "çœç•¥ã®ç¯„囲ã¯åŒã˜åž‹ã®äºŒå€‹ã®è¢«æ¼”ç®—å­ã«ã‚ˆã‚Šãƒžãƒ¼ã‚¯ã•ã‚Œã¦ã„ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "シンボルåã®å€¤ã®ç¯„囲ã¨ã—ã¦çµ¶å¯¾çœç•¥ `...' ã¯ä½¿ç”¨ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "UCS ã®å€¤ã®ç¯„囲ã¨ã—ã¦16進シンボルçœç•¥ `..' を使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "文字コードã®å€¤ã®ç¯„囲ã¨ã—ã¦çµ¶å¯¾çœç•¥ `...' を使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "é‡è¤‡ã—ãŸãƒžãƒƒãƒ”ング `%s' ã®å®šç¾©ã§ã™" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: `translit_start' セクション㌠`translit_end' ã§çµ‚ã£ã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: é‡è¤‡ã—㟠`default_missing' 定義ã§ã™" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "å‰ã®å®šç¾©ãŒã“ã“ã«ã‚ã‚Šã¾ã—ãŸ" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: 表ç¾å¯èƒ½ãª `default_missing' 定義ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: 文字 `%s' ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¨ã—ã¦å¿…è¦ã§ã™ãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: 文字マップ内ã®æ–‡å­— `%s' ã¯ä¸€ãƒã‚¤ãƒˆã§è¡¨ç¾ã§ãã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: デフォルト値ã¨ã—ã¦å¿…è¦ãªæ–‡å­— `%s' ãŒä¸€ãƒã‚¤ãƒˆã§è¡¨ç¾ã§ãã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "出力æ¡ãŒå®šç¾©ã•ã‚Œã¦ã„ãªã„ã‹ã€æ–‡å­—マップ内ã«æ¨™æº–åãŒã‚ã‚Šã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: ロケール `%s' ã‹ã‚‰ã®ãƒªãƒ†ãƒ©ãƒ«å¤‰æ›ãƒ‡ãƒ¼ã‚¿ãŒä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: クラス \"%s\" 用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: マップ \"%s\" 用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: 幅用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n" +@@ -3851,17 +3843,23 @@ msgstr "" + msgid " (first)" + msgstr " (最åˆ)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "データベースファイル `%s' ã‚’é–‹ã‘ã¾ã›ã‚“: %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "ファイル `%s' ã‚’ stat() ã§ãã¾ã›ã‚“: %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "%s キャッシュを切り詰ã‚ã¦ã„ã¾ã™ã€‚時間 %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3947,154 +3945,218 @@ msgstr "ソケットを実行時ã«é–‰ã + msgid "cannot enable socket to accept connections: %s" + msgstr "接続をå—ã‘付ã‘るソケットを有効ã«ã§ãã¾ã›ã‚“: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "ディレクトリ %s ã‚’é–‹ã‘ã¾ã›ã‚“" ++ ++#: nscd/connections.c:1022 + #, fuzzy, c-format + #| msgid "no more memory for database '%s'" +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "データベース '%s' 用ã®ãƒ¡ãƒ¢ãƒªãŒã“れ以上ã‚ã‚Šã¾ã›ã‚“" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ %d ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’æä¾›ã—ã¾ã™ (%s 用)" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "è¦æ±‚ã•ã‚ŒãŸå¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %d を扱ã†ã“ã¨ãŒã§ãã¾ã›ã‚“。ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ %d ã§ã™" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "%ld ã‹ã‚‰ã®è¦æ±‚ã¯æ¨©é™ãŒç„¡ã„ãŸã‚å–り扱ã‚ã‚Œã¾ã›ã‚“" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "'%s' [%ld] ã‹ã‚‰ã®è¦æ±‚ã¯æ¨©é™ãŒç„¡ã„ãŸã‚å–り扱ã‚ã‚Œã¾ã›ã‚“" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "è¦æ±‚ã¯æ¨©é™ãŒç„¡ã„ãŸã‚å–り扱ã‚ã‚Œã¾ã›ã‚“" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "çµæžœã‚’書ãè¾¼ã‚ã¾ã›ã‚“: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "呼ã³å‡ºã—å…ƒ ID ã®å–得時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "/proc/self/cmdline ã‚’é–‹ã‘ã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "/proc/self/cmdline を読ã¿è¾¼ã‚ã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "å¤ã„ UID ã¸å¤‰æ›´ã§ãã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "å¤ã„ GID ã«å¤‰æ›´ã§ãã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "å¤ã„作業ディレクトリã«ç§»å‹•ã§ãã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "å†å®Ÿè¡Œã«å¤±æ•—ã—ã¾ã—ãŸ: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ \"/\" ã«å¤‰æ›´ã§ãã¾ã›ã‚“: %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "読ã¿è¾¼ã¿è¦æ±‚より短ã„読ã¿è¾¼ã¿ã§ã™: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "è¦æ±‚ã«å«ã¾ã‚Œã‚‹ã‚­ãƒ¼é•·ãŒé•·ã™ãŽã¾ã™: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "è¦æ±‚キーã®èª­ã¿è¾¼ã¿ã‚ˆã‚ŠçŸ­ã„読ã¿è¾¼ã¿ã§ã™: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: è¦æ±‚ã‚’å—ã‘å–ã‚Šã¾ã—㟠(ãƒãƒ¼ã‚¸ãƒ§ãƒ³ = %d) é€ä¿¡PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: è¦æ±‚ã‚’å—ã‘å–ã‚Šã¾ã—㟠(ãƒãƒ¼ã‚¸ãƒ§ãƒ³ = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, fuzzy, c-format ++#| msgid "failed to reopen %s with mode %s" ++msgid "failed to remove file watch `%s`: %s" ++msgstr "%s をモード %s ã§å†åº¦é–‹ãã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "共有オブジェクト `%s' ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ %d ãŒç™ºç”Ÿã—ãŸãŸã‚ inotify を無効ã«ã—ã¾ã—ãŸ" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "æ¡ä»¶å¤‰æ•°ã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "クリーンアップスレッドを開始ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚終了ã—ã¾ã™" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "作業スレッドを全ã開始ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚終了ã—ã¾ã™" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "ユーザー '%s' 㧠nscd を実行ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "getgrouplist åˆæœŸåŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist㫠失敗ã—ã¾ã—ãŸ" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "%s ã§ã®çŸ­ã„書ãè¾¼ã¿: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "グループキャッシュ内㫠\"%s\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "グループキャッシュ内㮠\"%s\" ã‚’å†ãƒ­ãƒ¼ãƒ‰ã—ã¦ã„ã¾ã™!" +@@ -4186,7 +4248,7 @@ msgstr "ユーザã”ã¨ã«ã‚­ãƒ£ãƒƒã‚·ãƒ + msgid "Name Service Cache Daemon." + msgstr "åå‰ã‚µãƒ¼ãƒ“スキャッシュデーモン。" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™" +@@ -4220,7 +4282,7 @@ msgstr "ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒ + msgid "Could not create log file" + msgstr "ログファイルを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "書込ã¿ãŒä¸å®Œå…¨ã§ã™" +@@ -4235,7 +4297,7 @@ msgstr "無効ã«ã—㟠ACK を読ã¿è¾¼ + msgid "invalidation failed" + msgstr "無効化ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "root ã®ã¿ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã“ã¨ã‚’許å¯ã•ã‚Œã¦ã„ã¾ã™!" +@@ -4317,35 +4379,35 @@ msgstr "ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒ + msgid "maximum file size for %s database too small" + msgstr "%s データベース用ã®æœ€å¤§ã‚µã‚¤ã‚ºãŒå°ã•ã™ãŽã¾ã™" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "統計情報を書ãè¾¼ã‚ã¾ã›ã‚“: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "yes" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "no" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "root ã¾ãŸã¯ %s ã ã‘ãŒã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscdã¯èµ·å‹•ã—ã¦ã„ã¾ã›ã‚“!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "統計情報を読ã¿è¾¼ã‚ã¾ã›ã‚“" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4356,27 +4418,27 @@ msgstr "" + "\n" + "%15d サーãƒãƒ¼ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus サーãƒãƒ¼ 実行時間\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus サーãƒãƒ¼ 実行時間\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus サーãƒãƒ¼ 実行時間\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus サーãƒãƒ¼ 実行時間\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4393,7 +4455,7 @@ msgstr "" + "%15lu 内部å†èµ·å‹•\n" + "%15u å†èµ·å‹•å›žæ•°\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4459,87 +4521,87 @@ msgstr "ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚­ãƒ£ãƒƒã‚·ãƒ¥å† + msgid "Invalid numeric uid \"%s\"!" + msgstr "無効㪠uid ã®æ•°å€¤ \"%s\" ã§ã™!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "監査サブシステムã¸ã®æŽ¥ç¶šã‚’é–‹ãã®ã«å¤±æ•—ã—ã¾ã—ãŸ: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "keep-capabilities ã®è¨­å®šã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "権é™ã‚’å–り除ã„ã¦åˆæœŸåŒ–ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "権é™ã‚’å–り除ãã®ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "keep-capabilities ã®è¨­å®šè§£é™¤ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "カーãƒãƒ«ãŒ SELinux をサãƒãƒ¼ãƒˆã™ã‚‹ã‹ã©ã†ã‹ã®åˆ¤å®šã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "AVC スレッドã®é–‹å§‹ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "AVC ロックã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "AVC ã®é–‹å§‹ã«å¤±æ•—ã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Access Vector Cache (AVC) ãŒé–‹å§‹ã•ã‚Œã¾ã—ãŸ" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + #| msgid "Error getting context of nscd" + msgid "Error getting security class for nscd." + msgstr "nscd ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "ソケット対å‘ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "nscd ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "コンテキストã‹ã‚‰ sid ã‚’å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4603,16 +4665,16 @@ msgstr "管ç†ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‹ã‚‰ã‚ + msgid "Enumeration not supported on %s\n" + msgstr "エミュレーション㯠%s 上ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "ä¸æ˜Žãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹åã§ã™" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„るデータベース:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "ä¸æ˜Žãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã§ã™: %s\n" +@@ -4904,7 +4966,7 @@ msgstr ") ã¾ãŸã¯ \\) ãŒä¸ä¸€è‡´ã§ã + msgid "No previous regular expression" + msgstr "以å‰ã«æ­£è¦è¡¨ç¾ãŒã‚ã‚Šã¾ã›ã‚“" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "パラメータ㌠NULL ã§ã‚ã‚‹ã‹è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“" + +@@ -7313,9 +7375,21 @@ msgstr "%s: ディレクトリ%sã‚’ä½œæˆ + #~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n" + #~ msgstr "詳細㯠\\`%s --help' ã¾ãŸã¯ `%s --usage' を実行ã—ã¦ãã ã•ã„。\\n" + ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "é™çš„ TLS ブロックã§ã¯ã“れ以上オブジェクトをロードã§ãã¾ã›ã‚“" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: PLTREL ãŒã‚ªãƒ–ジェクト %s 内ã«è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n" ++ + #~ msgid "Can't open configuration file %s" + #~ msgstr "設定ファイル %s ã‚’é–‹ã‘ã¾ã›ã‚“" + ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "内部記述å­ã‚’作æˆã§ãã¾ã›ã‚“" ++ ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "ファイル `%s' ã‚’ stat() ã§ãã¾ã›ã‚“: %s" ++ + #~ msgid "invalid value for 'reload-count': %u" + #~ msgstr "'reload-count' 用ã®ç„¡åŠ¹ãªå€¤ã§ã™: %u" + +@@ -7707,9 +7781,6 @@ msgstr "%s: ディレクトリ%sã‚’ä½œæˆ + #~ msgid "unknown stream" + #~ msgstr "ä¸æ˜Žãªã‚¹ãƒˆãƒªãƒ¼ãƒ " + +-#~ msgid "failed to reopen %s with mode %s" +-#~ msgstr "%s をモード %s ã§å†åº¦é–‹ãã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" +- + #~ msgid "string comparison failed" + #~ msgstr "文字列ã®æ¯”較ã«å¤±æ•—ã—ã¾ã—ãŸ" + +Index: glibc-2.23/po/lt.po +=================================================================== +--- glibc-2.23.orig/po/lt.po ++++ glibc-2.23/po/lt.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc-2.7\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2009-02-12 05:24+0200\n" + "Last-Translator: Gintautas Miliauskas \n" + "Language-Team: Lithuanian \n" +@@ -141,10 +141,10 @@ msgstr "" + "[IÅ VEDIMO-FAILAS [DUOMENŲ-FAILAS]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -154,7 +154,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -168,7 +168,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -420,12 +420,12 @@ msgstr "%s pervardinimas į %s nesÄ—kmin + msgid "Renaming of %s to %s failed" + msgstr "%s pervadinimas į %s nesÄ—kmingas" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + #, fuzzy + msgid "cannot create scope list" + msgstr "nepavyko sukurti paieÅ¡kos sÄ…raÅ¡o" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "bendrasis objektas neatvertas" + +@@ -505,132 +505,132 @@ msgstr "nepavyko sukurti paieÅ¡kos sÄ…ra + msgid "cannot stat shared object" + msgstr "nepavyko atverti bendrojo objekto failo" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + #, fuzzy + msgid "cannot open zero fill device" + msgstr "nepavyko atverti duomenų failo „%s“" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + #, fuzzy + msgid "cannot create shared object descriptor" + msgstr "nepavyko užverti failo deskriptoriaus" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "nepavyko nuskaityti failo duomenų" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "nepavyko apdoroti TLS duomenų" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "objektiniame faile nÄ—ra įkeliamų segmentų" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + #, fuzzy + msgid "cannot dynamically load executable" + msgstr "\tne dinaminis paleidžiamasis failas" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "objektiniame faile nÄ—ra dinaminÄ—s sekcijos" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "bendrasis objektas negali bÅ«ti atvertas su dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "nepavyko iÅ¡skirti atminties programos antraÅ¡tei" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + msgid "invalid caller" + msgstr "netaisyklingas kvietÄ—jas" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + #, fuzzy + msgid "cannot change memory protections" + msgstr "nepavyko iÅ¡skirti atminties programos antraÅ¡tei" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "nepavyko užverti failo deskriptoriaus" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "failas per trumpas" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "netaisyklinga ELF antraÅ¡tÄ—" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "ELF failo duomenų koduotÄ— ne big-endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "ELF failo duomenų koduotÄ— ne little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF failo versijos identifikatorius neatitinka esamo" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF failo OS ABI netaisyklingas" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF failo ABI versija netaisyklinga" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "vidinÄ— klaida" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF failo versija neatitinka esamos" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "klaidinga ELF klasÄ—: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "klaidinga ELF klasÄ—: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "nepavyko atverti bendrojo objekto failo" + +@@ -642,11 +642,11 @@ msgstr "" + msgid "cannot map zero-fill pages" + msgstr "" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "relokacijos klaida" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "simbolio paieÅ¡kos klaida" + +@@ -654,52 +654,42 @@ msgstr "simbolio paieÅ¡kos klaida" + msgid "cannot extend global scope" + msgstr "" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "TLS kartų skaitiklis persivertÄ—! PraÅ¡ytume apie tai praneÅ¡ti." + +-#: elf/dl-open.c:542 +-#, fuzzy +-msgid "cannot load any more object with static TLS" +-msgstr "Nepavyko iÅ¡skirti atminties" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "netaisyklinga veiksena dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + msgid "invalid target namespace in dlmopen()" + msgstr "netaisyklinga veiksena dlopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + msgid "cannot allocate memory in static TLS block" + msgstr "Nepavyko iÅ¡skirti atminties" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: objekte %s nerasta PLTREL\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "" + +@@ -708,7 +698,7 @@ msgstr "" + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_SELF panaudotas ne dinamiÅ¡kai įkeltame kode" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "nepavyko sukurti TLS duomenų struktÅ«rų" + +@@ -855,7 +845,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "Nepavyko atverti aplanko %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Ä®vedimo failas %s nerastas.\n" +@@ -980,7 +970,7 @@ msgstr "trÅ«ksta failo argumento" + msgid "No such file or directory" + msgstr "Toks failas ar aplankas neegzistuoja" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "ne paprastas failas" + +@@ -1029,71 +1019,77 @@ msgstr "nepavyko perskaityti antraÅ¡tÄ—s + msgid "cannot read program interpreter" + msgstr "nepavyko perskaityti antraÅ¡tÄ—s" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "nepavyko nuskaityti failo duomenų" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "nepavyko perskaityti antraÅ¡tÄ—s" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "nepavyko iÅ¡skirti atminties programos antraÅ¡tei" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + msgid "invalid process ID '%s'" + msgstr "netaisyklingas naudotojas" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "nepavyko atverti „%s“" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "nepavyko atverti „%s“" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + #| msgid "cannot create searchlist" + msgid "cannot prepare reading %s/task" + msgstr "nepavyko sukurti paieÅ¡kos sÄ…raÅ¡o" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "netaisyklinga ELF antraÅ¡tÄ—" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + msgid "cannot attach to process %lu" + msgstr "nepavyko atverti bendrojo objekto failo" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1128,27 +1124,27 @@ msgstr "" + msgid "more than one dynamic segment\n" + msgstr "daugiau negu vienas dinaminis segmentas\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, fuzzy, c-format + msgid "Cannot fstat file %s.\n" + msgstr "%s: nepavyko atverti laikinojo failo: %s" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Failas %s tuÅ¡Äias, todÄ—l netikrintas." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Failas %s per mažas, todÄ—l netikrintas." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, fuzzy, c-format + msgid "Cannot mmap file %s.\n" + msgstr "%s: nepavyko atverti laikinojo failo: %s" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s nÄ—ra ELF failas - magiÅ¡kieji baitai failo pradžioje neteisingi.\n" +@@ -1277,9 +1273,9 @@ msgstr "" + msgid "failed to load shared object `%s'" + msgstr "nepavyko atverti bendrojo objekto failo" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, fuzzy, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "nepavyko užverti failo deskriptoriaus" + + #: elf/sprof.c:554 +@@ -1347,11 +1343,6 @@ msgstr "" + msgid "error while closing the profiling data file" + msgstr "klaida užveriant iÅ¡vedimo failÄ…" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, fuzzy, c-format +-msgid "cannot create internal descriptor" +-msgstr "nepavyko užverti failo deskriptoriaus" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1602,29 +1593,29 @@ msgstr "" + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + #, fuzzy + msgid "cannot open" + msgstr "nepavyko atverti" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + #, fuzzy + msgid "bad owner" + msgstr "blogas jungtukas" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "" + +@@ -1748,8 +1739,8 @@ msgid "no symbolic name given for end of + msgstr "neduotas joks simbolinis vardas" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1775,8 +1766,8 @@ msgid "%s: error in state machine" + msgstr "%s: klaida bÅ«senų automate" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1797,7 +1788,7 @@ msgstr "nežinomas simbolis „%s“" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + #, fuzzy + msgid "invalid names for character range" +@@ -1820,8 +1811,8 @@ msgstr "virÅ¡utinÄ— riba mažesnÄ— už a + msgid "resulting bytes for range not representable." + msgstr "" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1885,7 +1876,7 @@ msgid "%s: numeric country code `%d' not + msgstr "" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1907,8 +1898,8 @@ msgstr "%s: laukas „%s“ apibrėžtas + msgid "%s: unknown character in field `%s'" + msgstr "%s: nežinomas simbolis lauke „%s“" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1917,12 +1908,12 @@ msgstr "%s: nežinomas simbolis lauke †+ msgid "%s: incomplete `END' line" + msgstr "%s: nepilna „END“ eilutÄ—" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1932,477 +1923,477 @@ msgstr "%s: nepilna „END“ eilutÄ—" + msgid "%s: syntax error" + msgstr "%s: sintaksÄ—s klaida" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, fuzzy, c-format + msgid "%s: too many values" + msgstr "%s: Per daug argumentų\n" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, fuzzy, c-format + msgid "%s: `%s' must be a character" + msgstr "„%s“: trÅ«ksta formato simbolio" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "simbolis „%s“ neapibrėžtas" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "simbolis „%s“" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "per daug klaidų; pasiduodu" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + msgid "%s: nested conditionals not supported" + msgstr "Operacija nepalaikoma" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + msgid "%s: more than one 'else'" + msgstr "%s: nÄ—ra baigimo specifikacijos" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, fuzzy, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "kartotinis <%s> apibrėžimas" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, fuzzy, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "kartotinis <%s> apibrėžimas" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, fuzzy, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: nežinomas simbolis lauke „%s“" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: nežinomas simbolis lauke „%s“" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: nežinomas simbolis lauke „%s“" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + #, fuzzy + msgid "error while adding equivalent collating symbol" + msgstr "klaida įkeliant bendrÄ…sias bibliotekas" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, fuzzy, c-format + msgid "duplicate definition of script `%s'" + msgstr "kartotinis <%s> apibrėžimas" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "„%s“: nežinomas funkcijos pavadinimas" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, fuzzy, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: netaisyklingas argumentas" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, fuzzy, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: trÅ«ksta dvitaÅ¡kio skirtuko" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, fuzzy, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: trÅ«ksta dvitaÅ¡kio skirtuko" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, fuzzy, c-format + msgid "%s: section `%.*s' not known" + msgstr "Duomenų failas %s nerastas.\n" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, fuzzy, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: laukas „%s“ apibrėžtas daugiau negu vienÄ… kartÄ…" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "sintaksÄ—s klaida" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, fuzzy, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "sintaksÄ—s klaida %s apraÅ¡yme: %s" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, fuzzy, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "kartotinis <%s> apibrėžimas" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, fuzzy, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, fuzzy, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "pakartotinis rinkinio apibrėžimas" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, fuzzy, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: nepavyko atverti %s: %m\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -3820,17 +3811,23 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 + #, fuzzy, c-format +-msgid "cannot stat() file `%s': %s" ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "nepavyko atverti duomenų bazÄ—s failo „%s“: %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3921,153 +3918,214 @@ msgstr "nepavyko sukurti laikino failo â + msgid "cannot enable socket to accept connections: %s" + msgstr "" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Nepavyko atverti aplanko %s" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, fuzzy, c-format + msgid "cannot write result: %s" + msgstr "%s:%u: nepavyko perskaityti aplanko %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, fuzzy, c-format + msgid "error getting caller's id: %s" + msgstr "raÅ¡omas %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, fuzzy, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, fuzzy, c-format + msgid "short read while reading request: %s" + msgstr "problemos skaitant „%s“" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "nepavyko atverti bendrojo objekto failo" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, fuzzy, c-format + msgid "short write in %s: %s" + msgstr "%s: Klaida raÅ¡ant %s\n" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "" +@@ -4158,7 +4216,7 @@ msgstr "" + msgid "Name Service Cache Daemon." + msgstr "" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, fuzzy, c-format + msgid "wrong number of arguments" + msgstr "per daug argumentų" +@@ -4192,7 +4250,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "" +@@ -4207,7 +4265,7 @@ msgstr "nepavyko nuskaityti failo duomen + msgid "invalidation failed" + msgstr "netinkamas mÄ—nesio pavadinimas" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "" +@@ -4289,35 +4347,35 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, fuzzy, c-format + msgid "cannot write statistics: %s" + msgstr "nepavyko sukurti paieÅ¡kos sÄ…raÅ¡o" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "taip" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "ne" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, fuzzy, c-format + msgid "cannot read statistics data" + msgstr "nepavyko nuskaityti failo duomenų" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4325,27 +4383,27 @@ msgid "" + "%15d server debug level\n" + msgstr "" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4356,7 +4414,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4399,86 +4457,86 @@ msgstr "" + msgid "Invalid numeric uid \"%s\"!" + msgstr "nekorektiÅ¡ka eilutÄ—" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Nepavyko nustatyti, ar branduolys palaiko SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + #, fuzzy + msgid "Failed to start AVC" + msgstr "failas per trumpas" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4531,16 +4589,16 @@ msgstr "" + msgid "Enumeration not supported on %s\n" + msgstr "Operacija nepalaikoma" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Nežinomas duomenų bazÄ—s vardas" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Palaikomos duomenų bazÄ—s:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Nežinoma duomenų bazÄ—: %s\n" +@@ -4829,7 +4887,7 @@ msgstr "Nesuderintas ) arba \\)" + msgid "No previous regular expression" + msgstr "NÄ—ra ankstesniosios reguliariosios iÅ¡raiÅ¡kos" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parametras tuÅ¡Äias arba nenustatytas" + +@@ -7283,15 +7341,26 @@ msgstr "Nepavyko atverti aplanko %s" + #~ msgid "xtrace: option \\`$1' requires an argument.\\n" + #~ msgstr "memusage: parametrui „$1“ reikia argumento" + ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: objekte %s nerasta PLTREL\n" ++ + #~ msgid "Can't open configuration file %s" + #~ msgstr "Nepavyko atverti konfigÅ«racijos failo %s" + ++#, fuzzy ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "nepavyko užverti failo deskriptoriaus" ++ + #~ msgid "Try \\`memusage --help' for more information." + #~ msgstr "Pabandykite „memusage --help“, jei norite gauti daugiau informacijos." + + #~ msgid "memusage: option \\`$1' requires an argument" + #~ msgstr "memusage: parametrui „$1“ reikia argumento" + ++#, fuzzy ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "nepavyko atverti duomenų bazÄ—s failo „%s“: %s" ++ + #~ msgid "incorrectly formatted file" + #~ msgstr "netaisyklingas failo formatas" + +Index: glibc-2.23/po/nb.po +=================================================================== +--- glibc-2.23.orig/po/nb.po ++++ glibc-2.23/po/nb.po +@@ -7,7 +7,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.3.2\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2003-08-28 09:27+0100\n" + "Last-Translator: Eivind Tagseth \n" + "Language-Team: Norwegian \n" +@@ -144,10 +144,10 @@ msgstr "" + "[UTFIL [INNFIL]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -157,7 +157,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -175,7 +175,7 @@ msgstr "" + "TIL NOEN SPESIELL OPPGAVE.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -442,12 +442,12 @@ msgstr "" + msgid "Renaming of %s to %s failed" + msgstr "mapping av seksjonsoverskrifter feilet" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + #, fuzzy + msgid "cannot create scope list" + msgstr "kan ikke skrive til klient" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + #, fuzzy + msgid "shared object not open" + msgstr "Nanvgitt objekt er ikke søkbart" +@@ -531,140 +531,140 @@ msgstr "kan ikke opprette intern deskrip + msgid "cannot stat shared object" + msgstr "klarte ikke Ã¥ laste delt objekt «%s»" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + #, fuzzy + msgid "cannot open zero fill device" + msgstr "kan ikke Ã¥pne utfil" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + #, fuzzy + msgid "cannot create shared object descriptor" + msgstr "kan ikke opprette intern deskriptor" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + #, fuzzy + msgid "cannot read file data" + msgstr "kan ikke laste inn profileringsdata" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + #, fuzzy + msgid "cannot handle TLS data" + msgstr "kan ikke allokere symboldata" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + #, fuzzy + msgid "cannot allocate memory for program header" + msgstr "Kan ikke tildele minne" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + msgid "invalid caller" + msgstr "ugyldig skuddÃ¥r" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + #, fuzzy + msgid "cannot change memory protections" + msgstr "kan ikke behandle spesifikasjon av rekkefølge" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + #, fuzzy + msgid "cannot enable executable stack as shared object requires" + msgstr "kan ikke opprette intern deskriptor" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + #| msgid "cannot create internal descriptor" + msgid "cannot close file descriptor" + msgstr "kan ikke opprette intern deskriptor" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + #, fuzzy + msgid "file too short" + msgstr "For stor fil" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + #, fuzzy + msgid "invalid ELF header" + msgstr "ugyldig sluttÃ¥r" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + #, fuzzy + msgid "internal error" + msgstr "Intern NIS-feil" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + #, fuzzy + msgid "cannot open shared object file" + msgstr "kan ikke Ã¥pne utfil" +@@ -679,12 +679,12 @@ msgstr "klarte ikke Ã¥ laste delt objekt + msgid "cannot map zero-fill pages" + msgstr "kan ikke laste inn profileringsdata" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + #, fuzzy + msgid "relocation error" + msgstr "Autentiseringsfeil" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -692,53 +692,44 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "ugyldig modus for dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + #| msgid "invalid mode for dlopen()" + msgid "invalid target namespace in dlmopen()" + msgstr "ugyldig modus for dlopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + #| msgid "Cannot allocate memory" + msgid "cannot allocate memory in static TLS block" + msgstr "Kan ikke tildele minne" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + #, fuzzy + msgid "cannot apply additional memory protection after relocation" + msgstr "kan ikke behandle spesifikasjon av rekkefølge" +@@ -747,7 +738,7 @@ msgstr "kan ikke behandle spesifikasjon + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT brukt i kode som ikke er dynamisk lastet" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + #, fuzzy + msgid "cannot create TLS data structures" + msgstr "kan ikke opprette interne deskriptorer" +@@ -897,7 +888,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "%s: Kan ikke opprette filkatalog %s: %s\n" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, fuzzy, c-format + msgid "Input file %s not found.\n" + msgstr "ferdighetskartfilen «%s» ikke funnet" +@@ -1033,7 +1024,7 @@ msgstr "kan ikke frigjøre argumenter" + msgid "No such file or directory" + msgstr "Ingen slik fil eller filkatalog" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "ikke en vanlig fil" + +@@ -1080,68 +1071,73 @@ msgstr "kan ikke lese hode fra «%s»" + msgid "cannot read program interpreter" + msgstr "kan ikke lese hode fra «%s»" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + msgid "cannot read link map" + msgstr "kan ikke laste inn profileringsdata" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + msgid "cannot read object name" + msgstr "kan ikke lese hode fra «%s»" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "Kan ikke tildele minne" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + msgid "invalid process ID '%s'" + msgstr "ugyldig mÃ¥nedsnavn" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "kan ikke Ã¥pne «%s»" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "kan ikke Ã¥pne «%s»" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + msgid "cannot prepare reading %s/task" + msgstr "kan ikke lese fra klient" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + msgid "invalid thread ID '%s'" + msgstr "ugyldig sluttÃ¥r" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot find C preprocessor: %s \n" + msgid "cannot attach to process %lu" + msgstr "kan ikke finn C-preprosessor: %s \n" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1176,27 +1172,27 @@ msgstr "" + msgid "more than one dynamic segment\n" + msgstr "" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, fuzzy, c-format + msgid "Cannot fstat file %s.\n" + msgstr "kan ikke utføre stat() pÃ¥ fil «%s»: %s" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, fuzzy, c-format + msgid "Cannot mmap file %s.\n" + msgstr "kan ikke Ã¥pne innfil «%s»" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "" +@@ -1331,10 +1327,10 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "klarte ikke Ã¥ laste delt objekt «%s»" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "kan ikke opprette interne deskriptorer" ++msgid "cannot create internal descriptor" ++msgstr "kan ikke opprette intern deskriptor" + + #: elf/sprof.c:554 + #, c-format +@@ -1403,11 +1399,6 @@ msgstr "klarte ikke Ã¥ mmap'e filen med + msgid "error while closing the profiling data file" + msgstr "feil ved lukking av datafilen for profilering" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "kan ikke opprette intern deskriptor" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1670,27 +1661,27 @@ msgstr "socket: protokollfeil i oppsetti + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat feilet" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "kan ikke Ã¥pne" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat feilet" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "feil eier" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "skrivbar av andre enn eier" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "hardlinket et eller annet sted" + +@@ -1814,8 +1805,8 @@ msgid "no symbolic name given for end of + msgstr "ikke noe symbolsk navn gitt for slutten pÃ¥ omrÃ¥det" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1841,8 +1832,8 @@ msgid "%s: error in state machine" + msgstr "%s: feil i tilstandsmaskinen" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1863,7 +1854,7 @@ msgstr "ukjent tegn «%s»" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "antall bytes for bytesekvens pÃ¥ begynnelse og slutt av omrÃ¥de er ikke de samme: %d mot %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "ulovlige navn for tegnomrÃ¥de" +@@ -1887,8 +1878,8 @@ msgstr "øvre grense i omrÃ¥de er ikke m + msgid "resulting bytes for range not representable." + msgstr "resulterende bytes for omrÃ¥de kan ikke representerbare" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1953,7 +1944,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: nummerisk landkode «%d» er ugyldig" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1975,8 +1966,8 @@ msgstr "%s: felt «%s» deklarert mer en + msgid "%s: unknown character in field `%s'" + msgstr "%s: ukjent tegn i felt «%s»" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1985,12 +1976,12 @@ msgstr "%s: ukjent tegn i felt «%s»" + msgid "%s: incomplete `END' line" + msgstr "%s: ugyldig «END»-linje" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -2000,483 +1991,483 @@ msgstr "%s: ugyldig «END»-linje" + msgid "%s: syntax error" + msgstr "%s: syntaksfeil" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "«%.*s» er allerede definert i tegnkart" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, fuzzy, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "«%.*s» er allerede definert i innhold" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "«%.*s» er allerede definert som sorteringssymbol" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "«%.*s» er allerede definert som sorteringselement" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: sorteringsrekkefølge «forward» og «backward» utelukker hverandre" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: «%s» er nevnt mer enn en gang i definisjon med vekt %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: for mange regler; første innslag hadde bare %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: ikke nok sorteringsregler" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: tomt vektstreng ikke tillatt" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: vekter mÃ¥ bruke det samme ellipsesymbolet som navnet" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: For mange verdier" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "rekkefølgen for «%.*s» er allerede definert ved %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: startsymbol og slyttsymbol for et omrÃ¥de mÃ¥ stÃ¥ for tegn" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: bytesekvens for første og siste tegn mÃ¥ ha samme lengde" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, fuzzy, c-format + #| msgid "%s: byte sequence of first character of sequence is not lower than that of the last character" + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: bytesekvens for første tegn i en sekvens er ikke lavere enn den for siste tegn" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: symbolsk omrÃ¥de-ellipse mÃ¥ ikke følge direkte etter «order_start»" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: symbolsk omrÃ¥de-ellipse mÃ¥ ikke følges direkte av «order_end»" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, fuzzy, c-format + #| msgid "`%s' and `%.*s' are no valid names for symbolic range" + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "«%s» og «%.*s» er ulovlige navn for symbolsk omrÃ¥de" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: rekkefølge for «%.*s» er allerede definert ved %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: «%s» mÃ¥ være et tegn" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: «position» mÃ¥ bli brukt for et spesielt nivÃ¥ i alle seksjoner eller ingen" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "symbol «%s» ikke definert" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "symbol «%s» har samme koding som" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "symbol «%s»" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "ingen definisjon av «UNDEFINED»" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "for mange feil: gir opp" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + #| msgid "Operation not supported" + msgid "%s: nested conditionals not supported" + msgstr "Operasjonen er ikke støttet" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: More than one -l option specified\n" + msgid "%s: more than one 'else'" + msgstr "%s: Mer enn ett -l-flagg spesifisert\n" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: duplisert definisjon av «%s»" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: duplisert definisjon av seksjon «%s»" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: ukjent tegn i navn pÃ¥ sorteringssymbol" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: ukjent tegn i tilsvarende definisjonsnavn" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: syntaksfeil i definisjon av tegnkonvertering" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, fuzzy, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "ukjent symbol «%.*s»: linje ignorert" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, fuzzy, c-format + msgid "duplicate definition of script `%s'" + msgstr "duplisert definisjon av tegn «%.*s»" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + #| msgid "%s: unknown section name `%s'" + msgid "%s: unknown section name `%.*s'" + msgstr "%s: ukjent seksjonsnavn «%s»" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: flere rekkefølgedefinisjoner for seksjon «%s»" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: ugyldig antall sorteringsregler" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: flere rekkefølgedefinisjoner for ikke navngitt seksjon" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: mangler «order_end»-nøkkelord" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: rekkefølge for sorteringssymbol %.*s ennÃ¥ ikke definert" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: rekkefølge for sorteringselement %.*s ennÃ¥ ikke definert" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, fuzzy, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: kan ikke omsortere etter %.*s: symbolet er ukjent" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: mangler «reorder-end»-nøkkelord" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: seksjon «%.*s» er ukjent" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: ugyldig symbol <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: kan ikke ha «%s» som avslutning av ellipse-omrÃ¥de" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: tom kategori-beskrivelse ikke tillatt" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: mangler «reorder-sections-end»-nøkkelord" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, fuzzy, c-format + msgid "No character set name specified in charmap" + msgstr "tegnet ikke definert i tegnkartet" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, fuzzy, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "tegnet %s'%s' i klassen «%s» mÃ¥ være i klassen «%s»" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, fuzzy, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "tegnet %s'%s' i klassen «%s» kan ikke være i klassen «%s»" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "intern feil i %s, linje %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, fuzzy, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "tegnet %s'%s' i klassen «%s» mÃ¥ være i klassen «%s»" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, fuzzy, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "tegnet %s'%s' i klassen «%s» kan ikke være i klassen «%s»" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "tegnet er ikke i klassen «%s»" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "tegnet kan ikke være i klassen «%s»" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "tegnet ikke definert i tegnkartet" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "tegnklassen «%s» allerede definert" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, fuzzy, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "implementasjonsbegrensning: ikke flere enn %d tegnklasser tillatt" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "tegnkartet «%s» allerede definert" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "implementasjonsbegrensning: ikke flere enn %d tegnkart tillatt" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + #, fuzzy + msgid "premature end of `translit_ignore' definition" + msgstr "For tidlig slutt pÃ¥ regulært uttrykk" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + #, fuzzy + msgid "syntax error" + msgstr "Systemfeil" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, fuzzy, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "syntaksfeil i definisjon av ny tegnklasse" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, fuzzy, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "syntaksfeil i definisjon av nytt tegnkart" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, fuzzy, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "duplisert definisjon av tegn «%.*s»" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, fuzzy, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "duplisert definition av sett" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, fuzzy, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "tegnet «%s» ikke definert, men behøves som standardverdi" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -3907,17 +3898,23 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "kan ikke Ã¥pne databasefil «%s»: %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "kan ikke utføre stat() pÃ¥ fil «%s»: %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -4012,157 +4009,218 @@ msgstr "kan ikke fÃ¥ socket til Ã¥ aksep + msgid "cannot enable socket to accept connections: %s" + msgstr "kan ikke fÃ¥ socket til Ã¥ akseptere forbindelser: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "%s: Kan ikke opprette filkatalog %s: %s\n" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "kan ikke hÃ¥ndtere gammel forespørsel av versjon %d. NÃ¥værende versjon er %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "kan ikke skrive ut resultat: «%s»" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "avkortet lesing ved lesing av forespørsel: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, fuzzy, c-format + msgid "key length in request too long: %d" + msgstr "nøkkellengde i forespørsel for lang: %Zd" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, fuzzy, c-format + msgid "short read while reading request key: %s" + msgstr "avkortet lesing under lesing av forespørsel-nøkkel: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, fuzzy, c-format + #| msgid "handle_request: request received (Version = %d)" + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: forespørsel mottatt (versjon = %d)" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: forespørsel mottatt (versjon = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, removing watch" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "klarte ikke Ã¥ laste delt objekt «%s»" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + #, fuzzy + msgid "initial getgrouplist failed" + msgstr "lstat feilet" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + #, fuzzy + msgid "getgrouplist failed" + msgstr "lstat feilet" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + #, fuzzy + msgid "setgroups failed" + msgstr "fstat feilet" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "avkortet skriving i %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Har ikke funnet «%s» i gruppe-nærbuffer!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, fuzzy, c-format + #| msgid "Haven't found \"%s\" in group cache!" + msgid "Reloading \"%s\" in group cache!" +@@ -4261,7 +4319,7 @@ msgstr "" + msgid "Name Service Cache Daemon." + msgstr "Demon for buffring av navnetjeneste" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "feil antall argumenter" +@@ -4298,7 +4356,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "Kunne ikke opprette loggfil «%s»" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "skriving ufullstendig" +@@ -4314,7 +4372,7 @@ msgstr "kan ikke laste inn profileringsd + msgid "invalidation failed" + msgstr "Endring feilet" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Bare root har lov til Ã¥ bruke dette flagget!" +@@ -4397,36 +4455,36 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "kan ikke skrive ut statistikk: «%s»" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, fuzzy, c-format + #| msgid "Only root is allowed to use this option!" + msgid "Only root or %s is allowed to use this option!" + msgstr "Bare root har lov til Ã¥ bruke dette flagget!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd kjører ikke!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "kan ikke lese statisitkkdata" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4437,27 +4495,27 @@ msgstr "" + "\n" + "%15d debugnivÃ¥ for tjener\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4468,7 +4526,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + #| msgid "" + #| "\n" +@@ -4539,91 +4597,91 @@ msgstr "Har ikke funnet «%s» i passord + msgid "Invalid numeric uid \"%s\"!" + msgstr "" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + #| msgid "lstat failed" + msgid "cap_init failed" + msgstr "lstat feilet" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + msgid "cap_set_proc failed" + msgstr "fstat feilet" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + #| msgid "Unable to create callback" + msgid "Failed to create AVC lock" + msgstr "Ikke i stand til Ã¥ lage tilbakekall" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + #, fuzzy + msgid "Error getting sid from context" + msgstr "%s: Feil ved skriving til standard ut " + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4679,17 +4737,17 @@ msgstr "getent - hent innslag fra admini + msgid "Enumeration not supported on %s\n" + msgstr "Operasjonen er ikke støttet" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + #| msgid "Unknown database: %s\n" + msgid "Unknown database name" + msgstr "Ukjent database: %s\n" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Ukjent database: %s\n" +@@ -4981,7 +5039,7 @@ msgstr "Ubalansert ) eller \\)" + msgid "No previous regular expression" + msgstr "Intet foregÃ¥ende regulært uttrykk" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +@@ -7798,6 +7856,9 @@ msgstr "%s: Kan ikke opprette filkatalog + #~ msgid "while allocating hash table entry" + #~ msgstr "under allokering av hashtabell-innslag" + ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "kan ikke utføre stat() pÃ¥ fil «%s»: %s" ++ + #, fuzzy + #~ msgid "while allocating cache: %s" + #~ msgstr "under allokering av nærbuffer-innslag" +Index: glibc-2.23/po/nl.po +=================================================================== +--- glibc-2.23.orig/po/nl.po ++++ glibc-2.23/po/nl.po +@@ -1,19 +1,21 @@ + # Dutch translations for GNU libc. +-# Copyright (C) 2014 Free Software Foundation, Inc. ++# Copyright (C) 2015 Free Software Foundation, Inc. + # This file is distributed under the same license as the glibc package. + # +-# "Full persoon kaputt." ++# «Finfine mondo estis ie por vivi, ++# por sin promeni, por trinki teon, ++# kaj estis mi neniam tiel karesema.» + # + # Elros Cyriatan , 2004. + # Erwin Poeze , 2009. + # Benno Schulenberg , 2006, 2007, 2008, 2010. +-# Benno Schulenberg , 2011, 2012, 2013, 2014. ++# Benno Schulenberg , 2011, 2012, 2013, 2014, 2015. + msgid "" + msgstr "" +-"Project-Id-Version: libc-2.19.90\n" ++"Project-Id-Version: libc-2.22-pre1\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" +-"PO-Revision-Date: 2014-08-25 12:10+0200\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"PO-Revision-Date: 2015-08-05 20:03+0200\n" + "Last-Translator: Benno Schulenberg \n" + "Language-Team: Dutch \n" + "Language: nl\n" +@@ -155,10 +157,10 @@ msgstr "" + "[UITVOERBESTAND [INVOERBESTAND...]]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -170,7 +172,7 @@ msgstr "" + " %s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -188,7 +190,7 @@ msgstr "" + "VOOR EEN BEPAALD DOEL.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -443,11 +445,11 @@ msgstr "Wijzigen van toegangsrechten van + msgid "Renaming of %s to %s failed" + msgstr "Naamswijziging van %s naar %s is mislukt" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "kan lijst voor geldigheidsbereik niet aanmaken" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "gedeeld object is niet open" + +@@ -520,127 +522,127 @@ msgstr "kan zoekpad-array niet aanmaken" + msgid "cannot stat shared object" + msgstr "kan gedeeld object niet vinden" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "kan nullenapparaat niet openen" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "kan descriptor voor gedeeld object niet aanmaken" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "kan bestandsgegevens niet lezen" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "uitlijning in ELF-laadopdracht ligt niet op een paginagrens" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "adres/positie in ELF-laadopdracht is niet correct uitgelijnd" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "kan geen geheugen reserveren voor TLS-gegevensstructuren van initiële thread" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "kan TLS-gegevens niet verwerken" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "objectbestand heeft geen laadbare segmenten" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "kan uitvoerbaar bestand niet dynamisch laden" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "objectbestand heeft geen dynamische sectie" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "gedeeld object kan niet met dlopen() geopend worden -- heeft DF_1_NOOPEN-vlag" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "kan geen geheugen reserveren voor programmakop" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "ongeldige aanroeper" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "kan geheugenbeschermingen niet veranderen" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "kan uitvoerbare stack niet aanzetten zoals gedeeld object vereist" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "kan bestandsdescriptor niet sluiten" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "bestand is te kort" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "ongeldige ELF-header" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "gegevenscodering van ELF-bestand is niet big-endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "gegevenscodering van ELF-bestand is niet little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF-bestands-identversie komt niet overeen met huidige" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "OS-ABI van ELF-bestand is ongeldig" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ABI-versie van ELF-bestand is ongeldig" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "opvulling met niet-nullen in e_ident()" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "**interne fout**" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF-bestandsversie komt niet overeen met huidige" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "alleen ET_DYN en ET_EXEC kunnen worden geladen" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "'phentsize' van ELF-bestand heeft niet de verwachte grootte" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "verkeerde ELF-klasse: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "verkeerde ELF-klasse: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "kan gedeeld objectbestand niet openen" + +@@ -652,11 +654,11 @@ msgstr "kan segment van gedeeld object n + msgid "cannot map zero-fill pages" + msgstr "kan nul-gevulde pagina's niet in het geheugen plaatsen" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "verplaatsingsfout" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "opzoekfout voor symbool" + +@@ -664,51 +666,42 @@ msgstr "opzoekfout voor symbool" + msgid "cannot extend global scope" + msgstr "kan globaal geldigheidsbereik niet uitbreiden" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "" + "De TLS-generatieteller is opnieuw bij nul begonnen!\n" + "Dit is een **programmafout**. Graag rapporteren." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "kan geen objecten meer laden met statische TLS" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "ongeldige modus voor dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "geen naamsruimten meer beschikbaar voor dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "ongeldige doelnaamsruimte in dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "kan geen geheugen reserveren binnen statisch TLS-blok" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "kan segment niet schrijfbaar maken voor verplaatsing" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: geen PLTREL in object %s gevonden\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: onvoldoende geheugen om verplaatsingsresultaten van %s op te slaan\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "kan segmentbescherming niet herstellen na verplaatsing" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "kan extra geheugenbescherming niet toepassen na verplaatsing" + +@@ -716,7 +709,7 @@ msgstr "kan extra geheugenbescherming ni + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT is gebruikt in code die niet dynamisch geladen is" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "kan TLS-gegevensstructuren niet aanmaken" + +@@ -864,7 +857,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "Kan map %s niet openen" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Kan invoerbestand %s niet vinden\n" +@@ -998,7 +991,7 @@ msgstr "ontbrekende bestandsargumenten" + msgid "No such file or directory" + msgstr "Bestand of map bestaat niet" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "niet een normaal bestand" + +@@ -1043,65 +1036,70 @@ msgstr "kan 'r_debug' niet lezen" + msgid "cannot read program interpreter" + msgstr "kan programma-interpreter niet lezen" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "kan link-kaart niet lezen" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "kan objectnaam niet lezen" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "kan geen geheugen reserveren voor objectnaambuffer" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "Dynamische gedeelde objecten tonen die in proces geladen zijn." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Precies één argument met proces-ID is vereist.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "ongeldig proces-ID: '%s'" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "kan '%s' niet openen" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "kan '%s/task' niet openen" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "kan lezen van '%s/task' niet voorbereiden" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "ongeldig thread-ID: '%s'" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "kan niet aanhechten aan proces %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "kan geen informatie verkrijgen over proces %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "proces %lu is geen ELF-programma" +@@ -1136,27 +1134,27 @@ msgstr "%s is niet een gedeeld objectbes + msgid "more than one dynamic segment\n" + msgstr "meer dan één dynamisch segment\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Kan status van %s niet opvragen\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Bestand %s is leeg; niet gecontroleerd" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Bestand %s is te klein; niet gecontroleerd" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Kan bestand %s niet geheel in het geheugen plaatsen\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s is geen ELF-bestand -- het heeft de verkeerde magische bytes aan het begin\n" +@@ -1291,11 +1289,11 @@ msgstr "GEDEELD_OBJECT [ANALYSEGEGEVENS] + msgid "failed to load shared object `%s'" + msgstr "laden van gedeeld object '%s' is mislukt" + +-# FIXME: doublure (see below) +-#: elf/sprof.c:442 ++# FIXME: doublure (see above) ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "kan geen interne descriptors aanmaken" ++msgid "cannot create internal descriptor" ++msgstr "kan interne descriptor niet aanmaken" + + #: elf/sprof.c:554 + #, c-format +@@ -1362,12 +1360,6 @@ msgstr "kan analysegegevensbestand niet + msgid "error while closing the profiling data file" + msgstr "fout bij sluiten van analysegegevensbestand" + +-# FIXME: doublure (see above) +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "kan interne descriptor niet aanmaken" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1617,27 +1609,27 @@ msgstr "socket: protocolfout bij opzette + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: te weinig gelezen" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat() is mislukt" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "kan niet openen" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat() is mislukt" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "verkeerde eigenaar" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "schrijfbaar door anderen dan eigenaar" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "ergens hard gekoppeld" + +@@ -1759,8 +1751,8 @@ msgid "no symbolic name given for end of + msgstr "geen symbolische naam gegeven voor einde-van-bereik" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1786,8 +1778,8 @@ msgid "%s: error in state machine" + msgstr "%s: **interne fout** in toestandsmachine" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1808,7 +1800,7 @@ msgstr "onbekend teken '%s'" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "het aantal bytes in de bytereeks is voor begin en einde van het bereik niet hetzelfde: %d tegenover %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "ongeldige namen voor tekenbereik" +@@ -1830,8 +1822,8 @@ msgstr "bovengrens in bereik is kleiner + msgid "resulting bytes for range not representable." + msgstr "resulterende bytes voor bereik zijn niet te representeren" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1895,7 +1887,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: numerieke landcode '%d' is ongeldig" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1917,8 +1909,8 @@ msgstr "%s: het veld '%s' is meerdere ke + msgid "%s: unknown character in field `%s'" + msgstr "%s: onbekend teken in het veld '%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1927,12 +1919,12 @@ msgstr "%s: onbekend teken in het veld ' + msgid "%s: incomplete `END' line" + msgstr "%s: onvolledige 'END'-regel" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1942,479 +1934,479 @@ msgstr "%s: onvolledige 'END'-regel" + msgid "%s: syntax error" + msgstr "%s: syntaxfout" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "'%.*s' is al gedefinieerd in tekensetdefinitie" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "'%.*s' is al gedefinieerd in repertoire" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "'%.*s' is al gedefinieerd als sorteringssymbool" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "'%.*s' is al gedefinieerd als sorteringselement" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: 'forward' en 'backward' sluiten elkaar uit" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: '%s' wordt meerdere keren genoemd in definitie van gewicht %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: te veel voorschriften; het eerste item had er slechts %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: niet genoeg sorteervoorschriften" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: lege gewichtstekenreeks is niet toegestaan" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: gewichten moeten hetzelfde beletselteken gebruiken als de naam" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: te veel waarden" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "sorteervolgorde voor '%.*s' is al gedefinieerd in %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: het begin- en eindsymbool van een bereik moeten enkele tekens aanduiden" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: de bytereeksen van het eerste en laatste bereikteken moeten dezelfde lengte hebben" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: de bytereeks van het eerste bereikteken is niet kleiner dan die van het laatste" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: beletselteken van symbolenbereik mag niet direct na 'order_start' staan" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: beletselteken van symbolenbereik mag niet direct voor 'order_end' staan" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "'%s' en '%.*s' zijn geen geldige namen voor een symbolenbereik" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: sorteervolgorde van '%.*s' is al gedefinieerd in %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: '%s' moet een teken zijn" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: 'position' moet voor een specifiek niveau gebruikt worden ofwel in alle secties ofwel in geen" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "symbool '%s' is niet gedefinieerd" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "symbool '%s' heeft dezelfde codering als" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "symbool '%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "geen definitie van 'UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "te veel fouten -- gestopt" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: geneste voorwaardelijke constructies worden niet ondersteund" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: meer dan één 'else'" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: dubbele definitie van '%s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: dubbele declaratie van sectie '%s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: onbekend teken in naam van sorteringssymbool" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: onbekend teken in naam van equivalentiedefinitie" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: onbekend teken in waarde van equivalentiedefinitie" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: onbekend symbool '%s' in equivalentiedefinitie" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "fout bij toevoegen van equivalent sorteringssymbool" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "dubbele definitie van script '%s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: onbekende sectienaam '%.*s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: meerdere sorteervolgorde-definities voor sectie '%s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: ongeldig aantal sorteervoorschriften" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: meerdere sorteervolgorde-definities voor naamloze sectie" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: ontbrekend sleutelwoord 'order_end'" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: sorteervolgorde voor symbool '%.*s' is nog niet gedefinieerd" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: sorteervolgorde voor element '%.*s' is nog niet gedefinieerd" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: kan niet herordenen na '%.*s': dit symbool is onbekend" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: ontbrekend sleutelwoord 'reorder-end'" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: sectie '%.*s' is onbekend" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: onjuist symbool <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: '%s' kan geen einde van bereik zijn" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: lege categoriebeschrijving is niet toegestaan" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: ontbrekend sleutelwoord 'reorder-sections-end'" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: '%s' zonder bijpassende 'ifdef' of 'ifndef'" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'endif' zonder bijpassende 'ifdef' of 'ifndef'" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Geen tekensetnaam aangegeven in tekensetdefinitie" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "teken L'\\u%0*x' in klasse '%s' moet in klasse '%s' zitten" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "teken L'\\u%0*x' in klasse '%s' mag niet in klasse '%s' zitten" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "**interne fout** in %s, regel %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "teken '%s' in klasse '%s' moet in klasse '%s' zitten" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "teken '%s' in klasse '%s' mag niet in klasse '%s' zitten" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "-teken zit niet in klasse '%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "-teken mag niet in klasse '%s' zitten" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "-teken is niet gedefinieerd in tekensetdefinitie" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "het aantal items in de cijferscategorie is geen veelvoud van tien" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "er zijn geen invoercijfers gedefinieerd en geen van de standaardnamen zit in de tekensetdefinitie" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "niet alle tekens in 'outdigit' zijn beschikbaar in de tekensetdefinitie" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "niet alle tekens gebruikt in 'outdigit' zijn beschikbaar in het repertoire" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "tekenklasse '%s' is al gedefinieerd" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "implementatiegrens: er zijn niet meer dan %Zd tekenklassen toegestaan" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "tekensetdefinitie '%s' is al gedefinieerd" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "implementatiegrens: er zijn niet meer dan %d tekensetdefinities toegestaan" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: het veld '%s' bevat niet precies tien items" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "eindwaarde van bereik is kleiner dan beginwaarde " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "begin- en eindbytereeks van bereik moeten dezelfde lengte hebben" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "eindwaarde is kleiner dan beginwaarde" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "voortijdig einde van definitie van 'translit_ignore'" + + # + # This error message is issued when yacc finds an error at parse time. + # +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "syntaxfout" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: syntaxfout in definitie van nieuwe tekenklasse" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: syntaxfout in nieuwe tekensetdefinitie" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "een bereik met een beletselteken moet twee parameters van dezelfde soort bevatten" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "in een bereik met symbolische namen mag het absolute beletselteken '...' niet gebruikt worden" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "in een bereik met UCS-waarden moet het hexadecimale symbolische beletselsteken '..' gebruikt worden" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "in een bereik met tekencodes moet het absolute beletselteken '...' gebruikt worden" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "dubbele definitie van afbeelding '%s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: sectie 'translit_start' eindigt niet met 'translit_end'" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: dubbele definitie van 'default_missing'" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "de vorige definitie was hier" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: geen representeerbare definitie van 'default_missing' gevonden" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: teken '%s' is niet gedefinieerd maar is nodig als standaardwaarde" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: teken '%s' in de tekensetdefinitie is niet te representeren met één byte" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: teken '%s' is nodig als standaardwaarde maar niet te representeren met één byte" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "er zijn geen uitvoercijfers gedefinieerd en geen van de standaardnamen zit in de tekensetdefinitie" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: transliteratiegegevens van taalregio '%s' zijn niet beschikbaar" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabel voor klasse \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabel voor kaart \"%s\": %lu bytes\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabel voor breedte: %lu bytes\n" +@@ -3844,17 +3836,22 @@ msgstr "toevoegen van nieuw item \"%s\" + msgid " (first)" + msgstr " (eerste)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "kan status van bestand '%s' niet opvragen: %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "controleren van gemonitord bestand '%s': %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "gemonitord bestand '%s' is gewijzigd (mtime)" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "snoeien van cache %s; tijd %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "overwegen van %s-item \"%s\", tijdslimiet %" +@@ -3942,153 +3939,216 @@ msgstr "kan socket niet op sluiten-bij-e + msgid "cannot enable socket to accept connections: %s" + msgstr "kan socket geen verbindingen laten accepteren: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "'inotify'-monitoring van bestand '%s' is uitgeschakeld: %s" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "bestand '%s' wordt gemonitord (%d)" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "'inotify'-monitoring van map '%s' is uitgeschakeld: %s" ++ ++#: nscd/connections.c:994 + #, c-format +-msgid "register trace file %s for database %s" +-msgstr "trace-bestand '%s' registreren voor gegevensbank '%s'" ++msgid "monitoring directory `%s` (%d)" ++msgstr "map '%s' wordt gemonitord (%d)" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "bestand '%s' wordt gemonitord voor gegevensbank '%s'" ++ ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "opvragen van status van bestand '%s' is mislukt; zal het later opnieuw proberen: %s" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "toegang verleend aan bestandsdescriptor %d, voor %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "kan verzoek voor oude versie %d niet behandelen; huidige versie is %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "verzoek van %ld is niet behandeld omdat er rechten ontbreken" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "verzoek van '%s' [%ld] is niet behandeld omdat er rechten ontbreken" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "verzoek is niet behandeld omdat er rechten ontbreken" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "kan resultaat niet schrijven: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "fout bij opvragen van ID van aanroeper: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "kan '/proc/self/cmdline' niet openen: %s -- paranoia-modus is uitgeschakeld" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "kan '/proc/self/cmdline' niet openen: %s -- paranoia-modus wordt uitgeschakeld" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "kan niet overschakelen naar oude UID: %s -- paranoia-modus is uitgeschakeld" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "kan niet overschakelen naar oude GID: %s -- paranoia-modus is uitgeschakeld" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "kan niet overschakelen naar oude werkmap: %s -- paranoia-modus is uitgeschakeld" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "her-exec() is mislukt: %s -- paranoia-modus is uitgeschakeld" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "kan huidige werkmap niet overschakelen naar '/': %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "te weinig gelezen bij lezen van verzoek: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "sleutellengte in verzoek is te lang: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "te weinig gelezen bij lezen van verzoeksleutel: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request(): verzoek ontvangen (versie = %d) van PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request(): verzoek ontvangen (versie = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "'inotify'-gebeurtenis voor '%s' is genegeerd (bestand bestaat al)" ++ ++# FIXME: missing translatable word in second %s ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "gemonitord bestand '%s' werd «%s»; wachter wordt verwijderd" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "verwijderen van bestandswachter '%s' is mislukt: %s" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "er is geschreven naar gemonitord bestand '%s'" ++ ++# FIXME: untranslatable second %s ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "gemonitorde oudermap '%s' werd «%s»; wachter op '%s' wordt verwijderd`" ++ ++# FIXME: untranslatable second %s ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "gemonitord bestand '%s' werd «%s»; wachter wordt toegevoegd" ++ ++#: nscd/connections.c:2053 ++#, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "toevoegen van bestandswachter '%s' is mislukt: %s" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 + #, c-format +-msgid "disabled inotify after read error %d" +-msgstr "'inotify' is uitgeschakeld na leesfout %d" ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "'inotify'-monitoring is uitgeschakeld na leesfout %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "kan conditionele variabele niet initialiseren" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "kan opschoon-thread niet starten -- gestopt" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "kan geen enkele werk-thread starten -- gestopt" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "uitvoeren van nscd als gebruiker '%s' is mislukt" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "eerste getgrouplist() is mislukt" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist() is mislukt" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups() is mislukt" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "te weinig geschreven in %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Item \"%s\" niet gevonden in groeps-cache!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Herladen van \"%s\" in groeps-cache!" +@@ -4178,7 +4238,7 @@ msgstr "" + " \n" + "Daemon voor namen-cache." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "Verkeerd aantal argumenten" +@@ -4211,7 +4271,7 @@ msgstr "kan '/' niet de huidige werkmap + msgid "Could not create log file" + msgstr "Kan geen logbestand aanmaken" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "ongeldigmakingsopdracht is onvolledig geschreven" +@@ -4226,7 +4286,7 @@ msgstr "geen ongeldigheidsbevestiging on + msgid "invalidation failed" + msgstr "het ongeldigmaken is mislukt" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Alleen root mag deze optie gebruiken!" +@@ -4311,35 +4371,35 @@ msgstr "Kan huidige werkmap niet bepalen + msgid "maximum file size for %s database too small" + msgstr "Maximum bestandsgrootte voor %s-gegevensbank is te klein" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "Kan statistieken niet schrijven: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "ja" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "nee" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Alleen root of %s mag deze optie gebruiken!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "Er is geen nscd-proces actief!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "Kan statistieken niet lezen" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4350,27 +4410,27 @@ msgstr "" + "\n" + "%15d debugniveau van server\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus looptijd van server\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus looptijd van server\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus looptijd van server\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus looptijd van server\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4387,7 +4447,7 @@ msgstr "" + "%15lu interne herstarts\n" + "%15u aantal herladingen\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4453,85 +4513,85 @@ msgstr "Herladen van \"%s\" in wachtwoor + msgid "Invalid numeric uid \"%s\"!" + msgstr "Ongeldig numeriek UID '%s'!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Kan geen verbinding maken met audit-subsysteem: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Kan 'keep-capabilities' (privilegesbehoud) niet inschakelen" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) is mislukt" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Privilegesvermindering werkt niet" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init() is mislukt" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Verminderen van privileges is mislukt" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc() is mislukt" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Kan 'keep-capabilities' (privilegesbehoud) niet uitschakelen" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Kan niet bepalen of de kernel SELinux ondersteunt" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Kan geen AVC-thread starten" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Kan geen AVC-grendel aanmaken" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Kan AVC niet starten" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "AVC (Access Vector Cache) is gestart" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "Fout bij opvragen van beleid voor ongedefinieerde objectklassen of toegangsrechten." + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "Fout bij verkrijgen van veiligheidsklasse voor nscd." + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "Fout bij vertalen van toegangsrechtennaam \"%s\" naar een toegangsvectorbit." + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Kan geen context voor partnersocket verkrijgen" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Kan geen context voor nscd verkrijgen" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Kan uit de context geen SID verkrijgen" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4593,16 +4653,16 @@ msgstr "Haalt items op uit een administr + msgid "Enumeration not supported on %s\n" + msgstr "Opsomming wordt niet ondersteund op %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Onbekende gegevensbanknaam" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Ondersteunde gegevensbanken:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Onbekende gegevensbank: %s\n" +@@ -4885,7 +4945,7 @@ msgstr "Ongepaarde ) of \\)" + msgid "No previous regular expression" + msgstr "Geen eerdere reguliere expressie" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parameter is null of niet ingesteld" + +@@ -7141,7 +7201,7 @@ msgstr "ongeldig 'Rolling'/'Stationary'- + + #: timezone/zic.c:1246 + msgid "leap second precedes Big Bang" +-msgstr "schrikkelseconde valt voor de Big Bang" ++msgstr "schrikkelseconde valt voor de oerknal" + + #: timezone/zic.c:1259 + msgid "wrong number of fields on Link line" +@@ -7273,6 +7333,12 @@ msgstr "te veel of te lange tijdzone-afk + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: Kan map %s niet aanmaken: %s\n" + ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "kan geen objecten meer laden met statische TLS" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: geen PLTREL in object %s gevonden\n" ++ + #~ msgid "compile-time support for database policy missing" + #~ msgstr "ondersteuning voor gegevensbankbeleid is niet meegecompileerd" + +Index: glibc-2.23/po/pt_BR.po +=================================================================== +--- glibc-2.23.orig/po/pt_BR.po ++++ glibc-2.23/po/pt_BR.po +@@ -9,7 +9,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 1999-06-29 18:07-0300\n" + "Last-Translator: Rodrigo Parra Novo \n" + "Language-Team: Brazilian Portuguese \n" +@@ -148,10 +148,10 @@ msgstr "" + "[ARQUIVO-SAÃDA [ARQUIVO-ENTRADA...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -161,7 +161,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -178,7 +178,7 @@ msgstr "" + "garantia; nem para comércio ou adequacão para propóstios particulares.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -466,13 +466,13 @@ msgstr "" + msgid "Renaming of %s to %s failed" + msgstr "mapeamento dos cabeçalhos da seção falhou" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + #, fuzzy + #| msgid "cannot write to client" + msgid "cannot create scope list" + msgstr "não é possível escrever para o cliente" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + #, fuzzy + #| msgid "Named object is not searchable" + msgid "shared object not open" +@@ -565,149 +565,149 @@ msgstr "não é possível criar descrito + msgid "cannot stat shared object" + msgstr "falha no carregamento do objeto compartilhado `%s'" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + #, fuzzy + #| msgid "cannot open output file" + msgid "cannot open zero fill device" + msgstr "não é possível abrir arquivo de saída" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + #, fuzzy + #| msgid "cannot create internal descriptor" + msgid "cannot create shared object descriptor" + msgstr "não é possível criar descritor interno" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + #, fuzzy + #| msgid "cannot load profiling data" + msgid "cannot read file data" + msgstr "impossível carregar perfis de dados" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + #, fuzzy + #| msgid "cannot allocate symbol data" + msgid "cannot handle TLS data" + msgstr "Não foi possível alocar memória" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + #, fuzzy + #| msgid "Cannot allocate memory" + msgid "cannot allocate memory for program header" + msgstr "Não foi possível alocar memória" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + #| msgid "Invalid exchange" + msgid "invalid caller" + msgstr "Troca inválida" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + #, fuzzy + #| msgid "cannot process order specification" + msgid "cannot change memory protections" + msgstr "não é possível processar specificação de ordem" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + #| msgid "cannot create internal descriptor" + msgid "cannot close file descriptor" + msgstr "não é possível criar descritor interno" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + #, fuzzy + #| msgid "File too large" + msgid "file too short" + msgstr "Arquivo muito grande" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + #, fuzzy + #| msgid "invalid ending year" + msgid "invalid ELF header" + msgstr "ano final inválido" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + #, fuzzy + #| msgid "Internal NIS error" + msgid "internal error" + msgstr "Erro NIS interno" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + #, fuzzy + #| msgid "cannot open output file" + msgid "cannot open shared object file" +@@ -725,13 +725,13 @@ msgstr "falha no carregamento do objeto + msgid "cannot map zero-fill pages" + msgstr "impossível carregar perfis de dados" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + #, fuzzy + #| msgid "Authentication error" + msgid "relocation error" + msgstr "Erro de autenticação" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -739,53 +739,44 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "modo inválido para dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + #| msgid "invalid mode for dlopen()" + msgid "invalid target namespace in dlmopen()" + msgstr "modo inválido para dlopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + #| msgid "Cannot allocate memory" + msgid "cannot allocate memory in static TLS block" + msgstr "Não foi possível alocar memória" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "" + +@@ -793,7 +784,7 @@ msgstr "" + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT usado em código não dinamicamente carregado" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + #, fuzzy + #| msgid "cannot create internal descriptors" + msgid "cannot create TLS data structures" +@@ -952,7 +943,7 @@ msgstr "" + msgid "Can't open directory %s" + msgstr "%s: Não é possível criar o diretório %s: %s\n" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, fuzzy, c-format + #| msgid "repertoire map file `%s' not found" + msgid "Input file %s not found.\n" +@@ -1090,7 +1081,7 @@ msgstr "não consegui liberar parâmetro + msgid "No such file or directory" + msgstr "Arquivo ou diretório não encontrado" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "não é arquivo normal" + +@@ -1140,70 +1131,76 @@ msgstr "não é possível ler do cliente + msgid "cannot read program interpreter" + msgstr "não é possível ler do cliente" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read from client" + msgid "cannot read link map" + msgstr "não é possível ler do cliente" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read from client" + msgid "cannot read object name" + msgstr "não é possível ler do cliente" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "unable to allocate buffer for input" ++msgid "cannot allocate buffer for object name" ++msgstr "incapaz de alocar espaço para entrada" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "não é possível abrir `%s'" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "não é possível abrir `%s'" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot find C preprocessor: %s \n" + msgid "cannot attach to process %lu" + msgstr "impossível encontrar pré-processador C: %s\n" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1238,29 +1235,29 @@ msgstr "" + msgid "more than one dynamic segment\n" + msgstr "" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, fuzzy, c-format + #| msgid "cannot stat() file `%s': %s" + msgid "Cannot fstat file %s.\n" + msgstr "não é possível ler atributos do arquivo `%s': %s" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, fuzzy, c-format + #| msgid "cannot open input file `%s'" + msgid "Cannot mmap file %s.\n" + msgstr "não é possível abrir arquivo de entrada `%s'" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "" +@@ -1392,10 +1389,10 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "falha no carregamento do objeto compartilhado `%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "não é possivel criar descritores internos" ++msgid "cannot create internal descriptor" ++msgstr "não é possível criar descritor interno" + + #: elf/sprof.c:554 + #, c-format +@@ -1466,11 +1463,6 @@ msgstr "falha para mapear (mmap) o arqui + msgid "error while closing the profiling data file" + msgstr "erro fechando arquivo de dados de perfil" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "não é possível criar descritor interno" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1747,27 +1739,27 @@ msgstr "socket: falha de protocolo na co + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "falha em lstat" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "impossível abrir" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "falha em fstat" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "dono inválido" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "permissão de escrita para outros" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "vinculo (hard linked) em algúm lugar" + +@@ -1898,8 +1890,8 @@ msgid "no symbolic name given for end of + msgstr "nenhum nome simbólico dado para fim do intervalo" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1926,8 +1918,8 @@ msgid "%s: error in state machine" + msgstr "%s: erro na máquina de estados" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1948,7 +1940,7 @@ msgstr "caracter desconhecido `%s'" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + #, fuzzy + #| msgid "illegal names for character range" +@@ -1975,8 +1967,8 @@ msgstr "o limite inferior do intervalo à + msgid "resulting bytes for range not representable." + msgstr "" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -2045,7 +2037,7 @@ msgid "%s: numeric country code `%d' not + msgstr "" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -2068,8 +2060,8 @@ msgstr "" + msgid "%s: unknown character in field `%s'" + msgstr "caracter desconhecido `%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -2078,12 +2070,12 @@ msgstr "caracter desconhecido `%s'" + msgid "%s: incomplete `END' line" + msgstr "" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -2093,511 +2085,511 @@ msgstr "" + msgid "%s: syntax error" + msgstr "" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, fuzzy, c-format + #| msgid "sorting order `forward' and `backward' are mutually exclusive" + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "as ordens de classificação `forward' e `backward' são mutuamente exclusivas" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, fuzzy, c-format + #| msgid "empty weight name: line ignored" + msgid "%s: empty weight string not allowed" + msgstr "nome do peso vazio: linha ignorada" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, fuzzy, c-format + #| msgid "%s: Too many arguments\n" + msgid "%s: too many values" + msgstr "%s: Muitos parâmetros\n" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, fuzzy, c-format + #| msgid "character map `%s' already defined" + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "mapa de caracteres `%s' já definido" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, fuzzy, c-format + #| msgid "<%s> and <%s> are illegal names for range" + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "<%s> e <%s> são nomes ilegais para faixa de caracteres" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, fuzzy, c-format + #| msgid "character map `%s' already defined" + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "mapa de caracteres `%s' já definido" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, fuzzy, c-format + #| msgid "argument to `%s' must be a single character" + msgid "%s: `%s' must be a character" + msgstr "argumento para `%s' deve ser um caracter simples" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, fuzzy, c-format + #| msgid "unknown symbol `%.*s': line ignored" + msgid "symbol `%s' not defined" + msgstr "símbolo desconhecido `%.*s': linha ignorada" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "não há definição de `UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + #| msgid "Operation not supported" + msgid "%s: nested conditionals not supported" + msgstr "Operação não suportada " + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: More than one -l option specified\n" + msgid "%s: more than one 'else'" + msgstr "%s: Mais que uma opção -l especificada\n" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, fuzzy, c-format + #| msgid "duplicate definition for character `%.*s'" + msgid "%s: duplicate definition of `%s'" + msgstr "definição para caracter duplicada `%.*s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, fuzzy, c-format + #| msgid "duplicate definition for character `%.*s'" + msgid "%s: duplicate declaration of section `%s'" + msgstr "definição para caracter duplicada `%.*s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, fuzzy, c-format + #| msgid "syntax error in character conversion definition" + msgid "%s: unknown character in equivalent definition name" + msgstr "erro de sintaxe na definição de conversão de caracteres" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, fuzzy, c-format + #| msgid "syntax error in character conversion definition" + msgid "%s: unknown character in equivalent definition value" + msgstr "erro de sintaxe na definição de conversão de caracteres" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, fuzzy, c-format + #| msgid "unknown symbol `%.*s': line ignored" + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "símbolo desconhecido `%.*s': linha ignorada" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, fuzzy, c-format + #| msgid "duplicate definition for character `%.*s'" + msgid "duplicate definition of script `%s'" + msgstr "definição para caracter duplicada `%.*s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + #| msgid "unknown set `%s'" + msgid "%s: unknown section name `%.*s'" + msgstr "conjunto desconhecido `%s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, fuzzy, c-format + #| msgid "duplicate definition for character `%.*s'" + msgid "%s: multiple order definitions for section `%s'" + msgstr "definição para caracter duplicada `%.*s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, fuzzy, c-format + #| msgid "specification of sorting weight for collation symbol does not make sense" + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "especificação de peso para símbolo de comparação não faz sentido" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, fuzzy, c-format + #| msgid "symbol for multicharacter collating element `%.*s' duplicates element definition" + msgid "%s: order for collating element %.*s not yet defined" + msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do elemento" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, fuzzy, c-format + #| msgid "character not defined in character map" + msgid "No character set name specified in charmap" + msgstr "caracter não definido no mapa de caracteres" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, fuzzy, c-format + #| msgid "character %s'%s' in class `%s' must be in class `%s'" + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "caracter %s'%s' na classe `%s' deve estar na classe `%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, fuzzy, c-format + #| msgid "character %s'%s' in class `%s' must not be in class `%s'" + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "caracter %s'%s' na classe `%s' não deve estar na classe `%s'" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "erro interno em %s, linha %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, fuzzy, c-format + #| msgid "character %s'%s' in class `%s' must be in class `%s'" + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "caracter %s'%s' na classe `%s' deve estar na classe `%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, fuzzy, c-format + #| msgid "character %s'%s' in class `%s' must not be in class `%s'" + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "caracter %s'%s' na classe `%s' não deve estar na classe `%s'" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr " caracter não está na classe `%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr " caracter não deve estar na classe `%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "caracter não definido no mapa de caracteres" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "classe de caracter `%s' já definida" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, fuzzy, c-format + #| msgid "implementation limit: no more than %d character classes allowed" + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "limite de implementacão: não são permitidas mais que %d classes de caracter" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "mapa de caracteres `%s' já definido" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "limite de implementacão: não são permitidos mais que %d mapas de caracter" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + #, fuzzy + #| msgid "Premature end of regular expression" + msgid "premature end of `translit_ignore' definition" + msgstr "Fim prematuro da expressão regular" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + #, fuzzy + #| msgid "Bus error" + msgid "syntax error" + msgstr "Erro no barramento" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, fuzzy, c-format + #| msgid "syntax error in definition of new character class" + msgid "%s: syntax error in definition of new character class" + msgstr "erro de sintaxe na definição de uma nova classe de caracteres" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, fuzzy, c-format + #| msgid "syntax error in definition of new character map" + msgid "%s: syntax error in definition of new character map" + msgstr "erro de sintaxe na definição de um novo mapa de caracteres" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, fuzzy, c-format + #| msgid "duplicate definition for character `%.*s'" + msgid "duplicated definition for mapping `%s'" + msgstr "definição para caracter duplicada `%.*s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, fuzzy, c-format + #| msgid "duplicate set definition" + msgid "%s: duplicate `default_missing' definition" + msgstr "definição de conjunto duplicada" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, fuzzy, c-format + #| msgid "character `%s' not defined while needed as default value" + msgid "%s: character `%s' not defined while needed as default value" + msgstr "caracter `%s' não definido enquanto necessário como valor default" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -4083,17 +4075,23 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "não é possível abrir arquivo de banco de dados `%s': %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "não é possível ler atributos do arquivo `%s': %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -4188,159 +4186,220 @@ msgstr "impossível habilitar soquete pa + msgid "cannot enable socket to accept connections: %s" + msgstr "impossível habilitar soquete para aceitar conecções: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "impossível lidar com requisições de versões antigas %d; a versão atual é %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "não é possível escrever resultado: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "problems lendo `%s'" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, fuzzy, c-format + #| msgid "key length in request too long: %Zd" + msgid "key length in request too long: %d" + msgstr "tamanho de chave na requisição muito longa: %Zd" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "falha na leitura lendo chave de requisição: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, fuzzy, c-format + #| msgid "handle_request: request received (Version = %d)" + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: requisição recebida (Versão = %d)" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: requisição recebida (Versão = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, removing watch" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "falha no carregamento do objeto compartilhado `%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + #, fuzzy + #| msgid "lstat failed" + msgid "getgrouplist failed" + msgstr "falha em lstat" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + #, fuzzy + #| msgid "fstat failed" + msgid "setgroups failed" + msgstr "falha em fstat" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "Erro escrevendo em %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Não encontrado \"%s\" no cache de grupo!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, fuzzy, c-format + #| msgid "Haven't found \"%s\" in group cache!" + msgid "Reloading \"%s\" in group cache!" +@@ -4440,7 +4499,7 @@ msgstr "" + msgid "Name Service Cache Daemon." + msgstr "Servidor de Cache de Nomes." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "número incorreto de argumentos" +@@ -4477,7 +4536,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "não é possível ler arquivo de registro \"%s\"" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "escrita incompleta" +@@ -4494,7 +4553,7 @@ msgstr "impossível ler dados de estatí + msgid "invalidation failed" + msgstr "Modificação falhou" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Somente o superusuário pode usar esta opção!" +@@ -4577,36 +4636,36 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "não é possível escrever estatisticas: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, fuzzy, c-format + #| msgid "Only root is allowed to use this option!" + msgid "Only root or %s is allowed to use this option!" + msgstr "Somente o superusuário pode usar esta opção!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd não está rodando!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "impossível ler dados de estatística" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4617,27 +4676,27 @@ msgstr "" + "\n" + "%15d nível de debug do servidor\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4648,7 +4707,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + #| msgid "" + #| "\n" +@@ -4716,91 +4775,91 @@ msgstr "Não encontrado \"%s\" no cache + msgid "Invalid numeric uid \"%s\"!" + msgstr "" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + #| msgid "fstat failed" + msgid "cap_init failed" + msgstr "falha em fstat" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + #| msgid "cache_set: victim alloc failed" + msgid "cap_set_proc failed" + msgstr "cache_set: alocação de vítima falhou" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + #| msgid "Unable to create callback" + msgid "Failed to create AVC lock" + msgstr "Impossível criar chamador" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4858,17 +4917,17 @@ msgstr "getent - pega entrada da base de + msgid "Enumeration not supported on %s\n" + msgstr "Operação não suportada " + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + #| msgid "Unknown database: %s\n" + msgid "Unknown database name" + msgstr "Base de dados desconhecida: %s\n" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Base de dados desconhecida: %s\n" +@@ -5167,7 +5226,7 @@ msgstr ") ou \\) descasados" + msgid "No previous regular expression" + msgstr "Não há expressão regular anterior" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +Index: glibc-2.23/po/rw.po +=================================================================== +--- glibc-2.23.orig/po/rw.po ++++ glibc-2.23/po/rw.po +@@ -14,7 +14,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.3\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2005-04-04 10:55-0700\n" + "Last-Translator: Steven Michael Murphy \n" + "Language-Team: Kinyarwanda \n" +@@ -175,10 +175,10 @@ msgid "" + msgstr "-o" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -188,7 +188,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -202,7 +202,7 @@ msgid "" + msgstr "C ni Kigenga i Inkomoko kugirango ni OYA ATARIIGIHARWE kugirango Cyangwa A" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -478,12 +478,12 @@ msgstr "Bya Kuri Byanze" + msgid "Renaming of %s to %s failed" + msgstr "Bya Kuri Byanze" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + #, fuzzy + msgid "cannot create scope list" + msgstr "Kurema Ingano: Urutonde" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + #, fuzzy + msgid "shared object not open" + msgstr "Igikoresho OYA Gufungura" +@@ -571,154 +571,154 @@ msgstr "Kurema Gushaka Inzira Imboneraha + msgid "cannot stat shared object" + msgstr "Igikoresho" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + #, fuzzy + msgid "cannot open zero fill device" + msgstr "Gufungura Zeru Kuzuza APAREYE" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + #, fuzzy + msgid "cannot create shared object descriptor" + msgstr "Kurema Igikoresho" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + #, fuzzy + msgid "cannot read file data" + msgstr "Gusoma IDOSIYE Ibyatanzwe" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + #, fuzzy + msgid "ELF load command alignment not page-aligned" + msgstr "Ibirimo Komandi: Itunganya OYA Ipaji" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + #, fuzzy + msgid "ELF load command address/offset not properly aligned" + msgstr "Ibirimo Komandi: Aderesi Nta- boneza OYA" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + #, fuzzy + msgid "cannot allocate TLS data structures for initial thread" + msgstr "Kurema Ibyatanzwe" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + #, fuzzy + msgid "cannot handle TLS data" + msgstr "Gusoma IDOSIYE Ibyatanzwe" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + #, fuzzy + msgid "object file has no loadable segments" + msgstr "Igikoresho IDOSIYE Oya Icyiciro" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + #, fuzzy + msgid "cannot dynamically load executable" + msgstr "Ibirimo" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + #, fuzzy + msgid "object file has no dynamic section" + msgstr "Igikoresho IDOSIYE Oya Icyiciro" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + #, fuzzy + msgid "shared object cannot be dlopen()ed" + msgstr "Igikoresho" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + #, fuzzy + msgid "cannot allocate memory for program header" + msgstr "Ububiko kugirango Porogaramu Umutwempangano" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + msgid "invalid caller" + msgstr "Sibyo Umurongo" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + #, fuzzy + msgid "cannot change memory protections" + msgstr "Guhindura>> Ububiko" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + #, fuzzy + msgid "cannot enable executable stack as shared object requires" + msgstr "Kurema Igikoresho" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + msgid "cannot close file descriptor" + msgstr "Kurema By'imbere" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + #, fuzzy + msgid "file too short" + msgstr "IDOSIYE" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + #, fuzzy + msgid "invalid ELF header" + msgstr "Sibyo Umutwempangano" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + #, fuzzy + msgid "ELF file data encoding not big-endian" + msgstr "IDOSIYE Ibyatanzwe Imisobekere: OYA" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + #, fuzzy + msgid "ELF file data encoding not little-endian" + msgstr "IDOSIYE Ibyatanzwe Imisobekere: OYA" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + #, fuzzy + msgid "ELF file version ident does not match current one" + msgstr "IDOSIYE Verisiyo OYA BIHUYE KIGEZWEHO" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + #, fuzzy + msgid "ELF file OS ABI invalid" + msgstr "IDOSIYE Sibyo" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + #, fuzzy + msgid "ELF file ABI version invalid" + msgstr "IDOSIYE Verisiyo Sibyo" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + #, fuzzy + msgid "internal error" + msgstr "Ikosa ry'imbere" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + #, fuzzy + msgid "ELF file version does not match current one" + msgstr "IDOSIYE Verisiyo OYA BIHUYE KIGEZWEHO" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + #, fuzzy + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "Na" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + #, fuzzy + msgid "ELF file's phentsize not the expected size" + msgstr "OYA i Ikitezwe: Ingano" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + #, fuzzy + msgid "cannot open shared object file" + msgstr "Gufungura Igikoresho IDOSIYE" +@@ -733,12 +733,12 @@ msgstr "Byanze Kuri Bivuye Igikoresho" + msgid "cannot map zero-fill pages" + msgstr "Zeru Kuzuza Amapaji" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + #, fuzzy + msgid "relocation error" + msgstr "Ikosa" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -747,55 +747,46 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "Ingano:" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + #, fuzzy + msgid "TLS generation counter wrapped! Please report this." + msgstr "Kohereza Icyegeranyo Na: i IYANDIKA" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + #, fuzzy + msgid "invalid mode for dlopen()" + msgstr "Sibyo Ubwoko kugirango" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + msgid "invalid target namespace in dlmopen()" + msgstr "Sibyo Ubwoko kugirango" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + #, fuzzy + msgid "cannot allocate memory in static TLS block" + msgstr "Ububiko" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + #, fuzzy + msgid "cannot make segment writable for relocation" + msgstr "Ubwoko kugirango" + +-#: elf/dl-reloc.c:275 +-#, fuzzy, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s:Byabonetse Oya in Igikoresho" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + #, fuzzy + msgid "cannot restore segment prot after reloc" + msgstr "Kugarura Nyuma" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + #, fuzzy + msgid "cannot apply additional memory protection after relocation" + msgstr "Guhindura>> Ububiko" +@@ -805,7 +796,7 @@ msgstr "Guhindura>> Ububiko" + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "in ITEGEKONGENGA OYA" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + #, fuzzy + msgid "cannot create TLS data structures" + msgstr "Kurema Ibyatanzwe" +@@ -964,7 +955,7 @@ msgstr "Ihuza Byaremwe guhera OYA Byabon + msgid "Can't open directory %s" + msgstr "Gufungura ububiko ntibishoboka" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, fuzzy, c-format + msgid "Input file %s not found.\n" + msgstr "IDOSIYE OYA Byabonetse" +@@ -1094,7 +1085,7 @@ msgstr "Kuri Kigenga ingingo" + msgid "No such file or directory" + msgstr "IDOSIYE Cyangwa bushyinguro" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + #, fuzzy + msgid "not regular file" + msgstr "OYA Ibisanzwe IDOSIYE" +@@ -1141,65 +1132,70 @@ msgstr "Gusoma Umutwempangano" + msgid "cannot read program interpreter" + msgstr "Gusoma Umutwempangano" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + msgid "cannot read link map" + msgstr "Gusoma IDOSIYE Ibyatanzwe" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + msgid "cannot read object name" + msgstr "Gusoma Umutwempangano" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "Ububiko kugirango Porogaramu Umutwempangano" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + msgid "invalid process ID '%s'" + msgstr "Sibyo Mweretsi Ingano" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + msgid "cannot open %s" + msgstr "Gufungura" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + msgid "cannot open %s/task" + msgstr "Gufungura" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + msgid "cannot prepare reading %s/task" + msgstr "Kurema" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + msgid "invalid thread ID '%s'" + msgstr "Sibyo Umutwempangano" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + msgid "cannot attach to process %lu" + msgstr "Gushaka C" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1234,27 +1230,27 @@ msgstr "%sni OYA a Igikoresho IDOSIYE" + msgid "more than one dynamic segment\n" + msgstr "Birenzeho" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, fuzzy, c-format + msgid "Cannot fstat file %s.\n" + msgstr "IDOSIYE" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, fuzzy, c-format + msgid "File %s is empty, not checked." + msgstr "Idosiye ni Gitoya OYA Ivivuwe" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, fuzzy, c-format + msgid "File %s is too small, not checked." + msgstr "Idosiye ni Gitoya OYA Ivivuwe" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, fuzzy, c-format + msgid "Cannot mmap file %s.\n" + msgstr "IDOSIYE" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, fuzzy, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%sni OYA IDOSIYE i Bayite ku i Gutangira" +@@ -1379,9 +1375,9 @@ msgstr "" + msgid "failed to load shared object `%s'" + msgstr "Byanze Kuri Ibirimo Igikoresho" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, fuzzy, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "Kurema By'imbere" + + #: elf/sprof.c:554 +@@ -1449,11 +1445,6 @@ msgstr "Byanze Kuri i Ibyatanzwe IDOSIYE + msgid "error while closing the profiling data file" + msgstr "Ikosa i Ibyatanzwe IDOSIYE" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, fuzzy, c-format +-msgid "cannot create internal descriptor" +-msgstr "Kurema By'imbere" +- + #: elf/sprof.c:899 + #, fuzzy, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1714,31 +1705,31 @@ msgstr "Porotokole in" + msgid "rcmd: %s: short read" + msgstr "Gusoma" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + #, fuzzy + msgid "lstat failed" + msgstr "Byanze" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + #, fuzzy + msgid "cannot open" + msgstr "Gufungura" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + #, fuzzy + msgid "fstat failed" + msgstr "Byanze" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + #, fuzzy + msgid "writeable by other than owner" + msgstr "ku Ikindi" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + #, fuzzy + msgid "hard linked somewhere" + msgstr "Ikomeye" +@@ -1869,8 +1860,8 @@ msgid "no symbolic name given for end of + msgstr "Oya Izina: kugirango Impera Bya Urutonde" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1897,8 +1888,8 @@ msgid "%s: error in state machine" + msgstr "%s:Ikosa in Leta" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1919,7 +1910,7 @@ msgstr "Kitazwi Inyuguti" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "Umubare Bya Bayite kugirango Bayite Bya Itangiriro Na Impera Bya Urutonde OYA i" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + #, fuzzy + msgid "invalid names for character range" +@@ -1945,8 +1936,8 @@ msgstr "Nkuru in Urutonde ni OYA Gitoya + msgid "resulting bytes for range not representable." + msgstr "Bayite kugirango Urutonde OYA" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -2010,7 +2001,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s:Bikurikije umubare Igihugu ITEGEKONGENGA OYA Byemewe" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -2032,8 +2023,8 @@ msgstr "%s:Umwanya Birenzeho Rimwe" + msgid "%s: unknown character in field `%s'" + msgstr "%s:Kitazwi Inyuguti in Umwanya" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -2043,12 +2034,12 @@ msgid "%s: incomplete `END' line" + msgstr "%s:Umurongo" + + # sw/source\ui\utlui\initui.src:RID_SW_SHELLRES.STR_CALC_SYNTAX.text +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -2058,7 +2049,7 @@ msgstr "%s:Umurongo" + msgid "%s: syntax error" + msgstr "%s:Ikosa ry'iyandikanteruro**" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, fuzzy, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" +@@ -2071,7 +2062,7 @@ msgstr "" + "X- Generator: KBabel 1. 0\n" + "." + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, fuzzy, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" +@@ -2084,7 +2075,7 @@ msgstr "" + "X- Generator: KBabel 1. 0\n" + "." + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, fuzzy, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" +@@ -2097,7 +2088,7 @@ msgstr "" + "X- Generator: KBabel 1. 0\n" + "." + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, fuzzy, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" +@@ -2110,387 +2101,387 @@ msgstr "" + "X- Generator: KBabel 1. 0\n" + "." + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, fuzzy, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s:`Na Ikindi" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, fuzzy, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s:`%s'Birenzeho Rimwe in Insobanuro Bya Uburemere" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, fuzzy, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s:Itangira Icyinjijwe" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, fuzzy, c-format + msgid "%s: not enough sorting rules" + msgstr "%s:OYA Ishungura" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, fuzzy, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s:ubusa Uburemere Ikurikiranyanyuguti OYA" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, fuzzy, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s:Gukoresha i IKIMENYETSO Nka i Izina:" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, fuzzy, c-format + msgid "%s: too many values" + msgstr "%s:Uduciro" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, fuzzy, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "Itondekanya kugirango ku" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, fuzzy, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s:i Gutangira Na i Impera IKIMENYETSO Bya a Urutonde kugirango Inyuguti" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, fuzzy, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s:Bayite Bya Itangira Na Iheruka Inyuguti i Uburebure" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, fuzzy, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s:Bayite Bya Itangira Inyuguti Bya ni OYA Ntoya Bya i Iheruka Inyuguti" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, fuzzy, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s:Urutonde OYA" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, fuzzy, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s:Urutonde OYA ku" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, fuzzy, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s'Na." + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, fuzzy, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s:Itondekanya kugirango ku" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, fuzzy, c-format + msgid "%s: `%s' must be a character" + msgstr "%s:`%s'a Inyuguti" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, fuzzy, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s:`kugirango a urwego in Byose Ibyatoranyijwe Cyangwa Ntacyo" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, fuzzy, c-format + msgid "symbol `%s' not defined" + msgstr "IKIMENYETSO OYA" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, fuzzy, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "IKIMENYETSO i Imisobekere: Nka" + + # officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Font.CharSet..10.text +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, fuzzy, c-format + msgid "symbol `%s'" + msgstr "IKIMENYETSO" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, fuzzy, c-format + msgid "no definition of `UNDEFINED'" + msgstr "Oya Insobanuro Bya" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, fuzzy, c-format + msgid "too many errors; giving up" + msgstr "Amakosa Hejuru" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + msgid "%s: nested conditionals not supported" + msgstr "OYA" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + msgid "%s: more than one 'else'" + msgstr "%s:L Ihitamo" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, fuzzy, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s:Gusubiramo Insobanuro Bya" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, fuzzy, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s:Gusubiramo Bya Icyiciro" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, fuzzy, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s:Kitazwi Inyuguti in IKIMENYETSO Izina:" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s:Kitazwi Inyuguti in Insobanuro Izina:" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, fuzzy, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s:Kitazwi Inyuguti in Insobanuro Agaciro" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, fuzzy, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s:Kitazwi IKIMENYETSO in Insobanuro" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + #, fuzzy + msgid "error while adding equivalent collating symbol" + msgstr "Ikosa Wongera IKIMENYETSO" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, fuzzy, c-format + msgid "duplicate definition of script `%s'" + msgstr "Gusubiramo Insobanuro Bya IYANDIKA" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s:Kitazwi Icyiciro Izina:" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, fuzzy, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s:Igikubo Itondekanya kugirango Icyiciro" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, fuzzy, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s:Sibyo Umubare Bya Ishungura" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, fuzzy, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s:Igikubo Itondekanya kugirango Kitiswe Icyiciro" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, fuzzy, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s:Ibuze Ijambo- banze" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, fuzzy, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s:Itondekanya kugirango IKIMENYETSO S OYA" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, fuzzy, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s:Itondekanya kugirango Ikigize: S OYA" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, fuzzy, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s:Kwongera gupanga Nyuma S IKIMENYETSO OYA" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, fuzzy, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s:Ibuze Kwongera gupanga Ijambo- banze" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, fuzzy, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s:Icyiciro." + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, fuzzy, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s:IKIMENYETSO S" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, fuzzy, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s:Nka Impera Bya Urutonde" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, fuzzy, c-format + msgid "%s: empty category description not allowed" + msgstr "%s:ubusa Icyiciro Isobanuramiterere OYA" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, fuzzy, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s:Ibuze Kwongera gupanga Ibyatoranyijwe Ijambo- banze" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, fuzzy, c-format + msgid "No character set name specified in charmap" + msgstr "Inyuguti Gushyiraho Izina: in" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, fuzzy, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "Inyuguti in ishuri in ishuri" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, fuzzy, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "Inyuguti in ishuri OYA in ishuri" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, fuzzy, c-format + msgid "internal error in %s, line %u" + msgstr "By'imbere Ikosa in Umurongo" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, fuzzy, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "Inyuguti in ishuri in ishuri" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, fuzzy, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "Inyuguti in ishuri OYA in ishuri" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, fuzzy, c-format + msgid " character not in class `%s'" + msgstr " character must not be in class `%s'" + msgstr " not defined in character map" + msgstr "Inyuguti OYA in Inyuguti" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, fuzzy, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "`Icyiciro OYA Ibyinjijwe in Amatsinda Bya" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, fuzzy, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "Oya Iyinjiza Na Ntacyo Bya i Bisanzwe Amazina in i" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, fuzzy, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "OYA Byose Inyuguti in Bihari in i" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, fuzzy, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "OYA Byose Inyuguti in Bihari in i" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, fuzzy, c-format + msgid "character class `%s' already defined" + msgstr "Inyuguti ishuri" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, fuzzy, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "Oya Birenzeho Inyuguti Inzego" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, fuzzy, c-format + msgid "character map `%s' already defined" + msgstr "Inyuguti" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, fuzzy, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "Oya Birenzeho Inyuguti Amakarita" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, fuzzy, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s:Umwanya OYA Ibyinjijwe" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, fuzzy, c-format + msgid "to-value of range is smaller than from-value " + msgstr "Kuri Agaciro U Bya Urutonde ni Gitoya Bivuye Agaciro U" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + #, fuzzy + msgid "start and end character sequence of range must have the same length" + msgstr "Gutangira Na Impera Inyuguti Bya Urutonde i Uburebure" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + #, fuzzy + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "Kuri Agaciro Inyuguti ni Gitoya Bivuye Agaciro" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + #, fuzzy + msgid "premature end of `translit_ignore' definition" + msgstr "Impera Bya Insobanuro" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "Ikosa mu myandikire" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, fuzzy, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s:Ikosa in Insobanuro Bya Gishya Inyuguti ishuri" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, fuzzy, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s:Ikosa in Insobanuro Bya Gishya Inyuguti" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + #, fuzzy + msgid "ellipsis range must be marked by two operands of same type" + msgstr "Urutonde cy/ byagarajwe ku Bya Ubwoko" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + #, fuzzy + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "Na: Izina: Urutonde Uduciro i OYA" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + #, fuzzy + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" +@@ -2503,81 +2494,81 @@ msgstr "" + "X- Generator: KBabel 1. 0\n" + "." + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + #, fuzzy + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "Na: Inyuguti ITEGEKONGENGA Urutonde Uduciro Gukoresha i" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, fuzzy, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "Insobanuro kugirango Igereranya" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, fuzzy, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s:`Icyiciro OYA Impera Na:" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, fuzzy, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s:Gusubiramo Insobanuro" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + #, fuzzy + msgid "previous definition was here" + msgstr "Ibanjirije Insobanuro" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, fuzzy, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s:Oya Insobanuro Byabonetse" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, fuzzy, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s:Inyuguti OYA Nka Mburabuzi Agaciro" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, fuzzy, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s:Inyuguti in OYA Na: Bayite" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, fuzzy, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s:Inyuguti Nka Mburabuzi Agaciro OYA Na: Bayite" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, fuzzy, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "Oya Ibisohoka Na Ntacyo Bya i Bisanzwe Amazina in i" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, fuzzy, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s:Ibyatanzwe Bivuye Umwanya OYA Bihari" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, fuzzy, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s:imbonerahamwe# kugirango ishuri" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, fuzzy, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s:imbonerahamwe# kugirango" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, fuzzy, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s:imbonerahamwe# kugirango Ubugari" +@@ -4111,17 +4102,22 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 + #, fuzzy, c-format +-msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "IDOSIYE" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -4210,157 +4206,218 @@ msgstr "Gushoboza Kuri Kwemera Ukwihuza" + msgid "cannot enable socket to accept connections: %s" + msgstr "Gushoboza Kuri Kwemera Ukwihuza" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++# svtools/source\dialogs\filedlg2.src:STR_FILEDLG_CANTOPENDIR.text ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "Gufungura ububiko ntibishoboka" ++ ++#: nscd/connections.c:1022 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, fuzzy, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "ki/ bishaje Kubaza... Verisiyo KIGEZWEHO Verisiyo ni" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, fuzzy, c-format + msgid "cannot write result: %s" + msgstr "Kwandika Igisubizo" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, fuzzy, c-format + msgid "error getting caller's id: %s" + msgstr "Ikosa ID" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, fuzzy, c-format + msgid "short read while reading request: %s" + msgstr "Gusoma Kubaza..." + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, fuzzy, c-format + msgid "key length in request too long: %d" + msgstr "Urufunguzo Uburebure in Kubaza..." + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, fuzzy, c-format + msgid "short read while reading request key: %s" + msgstr "Gusoma Kubaza... Urufunguzo" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, fuzzy, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "Kubaza... BYAKIRIWE" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, fuzzy, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "Kubaza... BYAKIRIWE" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "Byanze Kuri Ibirimo Igikoresho" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + #, fuzzy + msgid "could not initialize conditional variable" + msgstr "gutangiza IDOSIYE" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, fuzzy, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Kuri Gukoresha Nka Ukoresha:" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + #, fuzzy + msgid "initial getgrouplist failed" + msgstr "Byanze" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + #, fuzzy + msgid "getgrouplist failed" + msgstr "Byanze" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + #, fuzzy + msgid "setgroups failed" + msgstr "Byanze" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, fuzzy, c-format + msgid "short write in %s: %s" + msgstr "Kwandika in" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, fuzzy, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Byabonetse in Itsinda Ubwihisho" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, fuzzy, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Byabonetse in Itsinda Ubwihisho" +@@ -4458,7 +4515,7 @@ msgstr "Ubwihisho kugirango Ukoresha:" + msgid "Name Service Cache Daemon." + msgstr "" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, fuzzy, c-format + msgid "wrong number of arguments" + msgstr "Umubare Bya ingingo" +@@ -4492,7 +4549,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "OYA Kurema LOG IDOSIYE" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, fuzzy, c-format + msgid "write incomplete" + msgstr "Kwandika" +@@ -4507,7 +4564,7 @@ msgstr "Gusoma IDOSIYE Ibyatanzwe" + msgid "invalidation failed" + msgstr "Byanze" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, fuzzy, c-format + msgid "Only root is allowed to use this option!" + msgstr "Imizi ni Kuri Gukoresha iyi Ihitamo" +@@ -4587,35 +4644,35 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, fuzzy, c-format + msgid "cannot write statistics: %s" + msgstr "Kwandika Sitatisitiki" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, fuzzy, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Imizi ni Kuri Gukoresha iyi Ihitamo" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, fuzzy, c-format + msgid "nscd not running!\n" + msgstr "OYA" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, fuzzy, c-format + msgid "cannot read statistics data" + msgstr "Gusoma Sitatisitiki Ibyatanzwe" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, fuzzy, c-format + msgid "" + "nscd configuration:\n" +@@ -4623,27 +4680,27 @@ msgid "" + "%15d server debug level\n" + msgstr "Iboneza Seriveri Kosora amakosa" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4654,7 +4711,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + msgid "" + "\n" +@@ -4697,90 +4754,90 @@ msgstr "Byabonetse in Ijambobanga... Ubw + msgid "Invalid numeric uid \"%s\"!" + msgstr "Bikurikije umubare UID" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + msgid "cap_init failed" + msgstr "Byanze" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + msgid "cap_set_proc failed" + msgstr "Byanze" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + msgid "Failed to create AVC lock" + msgstr "Kuri Kurema" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + #, fuzzy + msgid "Error getting context of nscd" + msgstr "Ikosa ID" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + #, fuzzy + msgid "Error getting sid from context" + msgstr "Bisanzwe Ibisohoka" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4834,17 +4891,17 @@ msgstr "Kubona Ibyinjijwe Bivuye Ububiko + msgid "Enumeration not supported on %s\n" + msgstr "OYA ku" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + msgid "Unknown database name" + msgstr "Ububikoshingiro" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + #, fuzzy + msgid "Supported databases:\n" + msgstr "Ububikoshingiro" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, fuzzy, c-format + msgid "Unknown database: %s\n" + msgstr "Ububikoshingiro" +@@ -5129,7 +5186,7 @@ msgstr "Cyangwa" + msgid "No previous regular expression" + msgstr "Ibanjirije Ibisanzwe imvugo" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + #, fuzzy + msgid "parameter null or not set" + msgstr "NTAGIHARI Cyangwa OYA Gushyiraho" +@@ -8115,6 +8172,10 @@ msgstr "%s:Kurema bushyinguro" + #~ msgstr "ubusa Ikurikiranyanyuguti" + + #, fuzzy ++#~ msgid "%s: profiler found no PLTREL in object %s\n" ++#~ msgstr "%s:Byabonetse Oya in Igikoresho" ++ ++#, fuzzy + #~ msgid "%s: profiler out of memory shadowing PLTREL of %s\n" + #~ msgstr "%s:Inyuma Bya Ububiko Ishyiraho ry'igicucu Bya" + +Index: glibc-2.23/po/sk.po +=================================================================== +--- glibc-2.23.orig/po/sk.po ++++ glibc-2.23/po/sk.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.3.3\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2004-08-05 22:19+0200\n" + "Last-Translator: Marcel Telka \n" + "Language-Team: Slovak \n" +@@ -141,10 +141,10 @@ msgstr "" + "[VÃSTUPNÃ_SÚBOR [VSTUPNÃ_SÚBOR]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -154,7 +154,7 @@ msgid "" + msgstr "" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -172,7 +172,7 @@ msgstr "" + "NA KONKRÉTNY ÚČEL.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -431,11 +431,11 @@ msgstr "Zmena prístupových práv %s na + msgid "Renaming of %s to %s failed" + msgstr "Premenovanie %s na %s zlyhalo" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "nie je možné vytvoriÅ¥ zoznam pôsobnosti" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "zdieľaný objekt nie je otvorený" + +@@ -512,131 +512,131 @@ msgstr "nie je možné vytvoriÅ¥ pole ci + msgid "cannot stat shared object" + msgstr "nepodarilo sa zistiÅ¥ stav zdieľaného objektu" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "nie je možné otvoriÅ¥ zariadenie pre naplnenie nulami" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "nie je možné vytvoriÅ¥ deskriptor zdieľaného objektu" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "nie je možné naÄítaÅ¥ údaje súboru" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF zarovnanie príkazu nie je zarovnané na stránku" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF zavádzacia adresa/posunutie nie je správne zarovnaná" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "nie je možné prideliÅ¥ dátové Å¡truktúry TLS pre poÄiatoÄné vlákno" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "nie je možné spracovaÅ¥ TLS dáta" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "objektový súbor neobsahuje žiadny nahrateľný segment" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "nie je možné dynamicky naÄítaÅ¥ spustiteľný súbor" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "objektový súbor neobsahuje žiadnu dynamickú sekciu" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "zdieľaný objekt nemôže byÅ¥ otvorený pomocou dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "nie je možné prideliÅ¥ pamäť pre hlaviÄku programu" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + #, fuzzy + #| msgid "invalid line" + msgid "invalid caller" + msgstr "neprípustný riadok" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "nie je možné zmeniÅ¥ ochranu pamäti" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "nie je možné povoliÅ¥ spustiteľný zásobník ako vyžaduje zdieľaný objekt" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + #, fuzzy + #| msgid "cannot create internal descriptor" + msgid "cannot close file descriptor" + msgstr "nie je možné vytvoriÅ¥ interný deskriptor" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "súbor je príliÅ¡ krátky" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "neprípustná ELF hlaviÄka" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "Kódovanie dát v ELF súbore nie je big-endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "Kódovanie dát v ELF súbore nie je little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "Identifikácia verzie ELF súboru sa nezhoduje s aktuálnou" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "Neplatný OS ABI ELF súboru" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "Neplatná verzia ABI ELF súboru" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "interná chyba" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "Verzia súboru ELF sa nezhoduje s aktuálnou" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "iba ET_DYN a ET_EXEC môžu byÅ¥ naÄítané" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "phentsize ELF súboru nie je oÄakávaná" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "nie je možné otvoriÅ¥ súbor zdieľaného objektu" + +@@ -648,11 +648,11 @@ msgstr "nepodarilo sa namapovaÅ¥ segment + msgid "cannot map zero-fill pages" + msgstr "nie je možné namapovaÅ¥ stránky vyplnené nulami" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "chyba relokácie" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "" + +@@ -660,56 +660,44 @@ msgstr "" + msgid "cannot extend global scope" + msgstr "nie je možné rozšíriÅ¥ globálny rozsah" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + #, fuzzy + #| msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script." + msgid "TLS generation counter wrapped! Please report this." + msgstr "PoÄítadlo generovania TLS pretieklo! Prosím poÅ¡lite správu pomocou skriptu 'glibcbug'." + +-#: elf/dl-open.c:542 +-#, fuzzy +-#| msgid "cannot allocate memory in static TLS block" +-msgid "cannot load any more object with static TLS" +-msgstr "nie je možné prideliÅ¥ pamäť v statickom bloku TLS" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "neprípustný mód pre dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + #, fuzzy + #| msgid "invalid mode for dlopen()" + msgid "invalid target namespace in dlmopen()" + msgstr "neprípustný mód pre dlopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "nie je možné prideliÅ¥ pamäť v statickom bloku TLS" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "nie je možné zmeniÅ¥ segment na zapisovateľný pre relokáciu" + +-#: elf/dl-reloc.c:275 +-#, fuzzy, c-format +-#| msgid "%s: profiler found no PLTREL in object %s\n" +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: profiler nenaÅ¡iel PLTREL v objekte %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "nie je možné obnoviÅ¥ segment prot po reloc" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + #, fuzzy + #| msgid "cannot change memory protections" + msgid "cannot apply additional memory protection after relocation" +@@ -719,7 +707,7 @@ msgstr "nie je možné zmeniÅ¥ ochranu p + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT je použité pre kód, ktorý nie je dynamicky zavedený" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "nie je možné dátové Å¡truktúry TLS" + +@@ -865,7 +853,7 @@ msgstr "Odkaz nebol vytvorený, keÄže + msgid "Can't open directory %s" + msgstr "Nie je možné otvoriÅ¥ adresár %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Vstupný súbor %s nebol nájdený.\n" +@@ -1001,7 +989,7 @@ msgstr "nie je možné uvoľniÅ¥ argumen + msgid "No such file or directory" + msgstr "Adresár alebo súbor neexistuje" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "nie je regulérny súbor" + +@@ -1053,73 +1041,79 @@ msgstr "nie je možné preÄítaÅ¥ hlavi + msgid "cannot read program interpreter" + msgstr "nie je možné preÄítaÅ¥ hlaviÄku archívu" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "nie je možné naÄítaÅ¥ údaje súboru" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "nie je možné preÄítaÅ¥ hlaviÄku" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "nie je možné prideliÅ¥ pamäť pre hlaviÄku programu" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid pointer size" + msgid "invalid process ID '%s'" + msgstr "neprípustná veľkostÅ¥ ukazovateľa" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "nie je možné otvoriÅ¥ `%s'" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "nie je možné otvoriÅ¥ `%s'" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + #| msgid "cannot create searchlist" + msgid "cannot prepare reading %s/task" + msgstr "nie je možné vytvoriÅ¥ vyhľadávací zoznam" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "neprípustná ELF hlaviÄka" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot find C preprocessor: %s \n" + msgid "cannot attach to process %lu" + msgstr "nie je možné nájsÅ¥ preprocesor: %s \n" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1154,28 +1148,28 @@ msgstr "%s nie je zdieľaný objektový + msgid "more than one dynamic segment\n" + msgstr "viac ako jeden dynamický segment\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Nie je možné vykonaÅ¥ fstat() súboru %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, fuzzy, c-format + #| msgid "File %s is too small, not checked." + msgid "File %s is empty, not checked." + msgstr "Súbor %s je príliÅ¡ krátky, neskontrolovaný." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Súbor %s je príliÅ¡ krátky, neskontrolovaný." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Nie je možné mmap-ovaÅ¥ súbor %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s nie je ELF súbor - na zaÄiatku obsahujé chybné magické bajty.\n" +@@ -1308,10 +1302,10 @@ msgstr "ZDIEĽ_OBJEKT [PROF_ÚDAJE]" + msgid "failed to load shared object `%s'" + msgstr "nepodarilo sa naÄítaÅ¥ zdieľaný objekt `%s'" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "nie je možné vytvoriÅ¥ interné deskriptory" ++msgid "cannot create internal descriptor" ++msgstr "nie je možné vytvoriÅ¥ interný deskriptor" + + #: elf/sprof.c:554 + #, c-format +@@ -1382,11 +1376,6 @@ msgstr "nepodarilo sa mmap-ovaÅ¥ súbor + msgid "error while closing the profiling data file" + msgstr "chyba poÄas zatvárania súboru profilovacích údajov" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "nie je možné vytvoriÅ¥ interný deskriptor" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1645,27 +1634,27 @@ msgstr "socket: chyba protokolu pri prí + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: krátke Äítanie" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat zlyhal" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "nie je možné otvoriÅ¥" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat sa nepodaril" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "chybný vlastník" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "zapisovateľný nielen pre vlastníka" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "niekde existuje pevný odkaz" + +@@ -1787,8 +1776,8 @@ msgid "no symbolic name given for end of + msgstr "nebolo zadané žiadne symbolické meno pre koniec rozsahu" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1814,8 +1803,8 @@ msgid "%s: error in state machine" + msgstr "%s: chyba v stavovom automate" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1836,7 +1825,7 @@ msgstr "neznámy znak `%s'" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "poÄet bajtov pre postupnosÅ¥ bajtov zaÄiatku a konca rozsahu nie sú rovnaké: %d a %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "neprípustné mená pre rozsah znakov" +@@ -1860,8 +1849,8 @@ msgstr "horný limit rozsahu je menší + msgid "resulting bytes for range not representable." + msgstr "výsledné bajty rozsahu nie sú zobraziteľné" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1926,7 +1915,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: Äíselný kód krajiny `%d' nie je platný" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1948,8 +1937,8 @@ msgstr "%s: pole `%s' deklarované viac + msgid "%s: unknown character in field `%s'" + msgstr "%s: neznámy znak v poli `%s'" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1958,12 +1947,12 @@ msgstr "%s: neznámy znak v poli `%s'" + msgid "%s: incomplete `END' line" + msgstr "%s: nekompletný riadok `END'" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1973,481 +1962,481 @@ msgstr "%s: nekompletný riadok `END'" + msgid "%s: syntax error" + msgstr "%s: chyba syntaxe" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' bol už definovaný v znakovej mape" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' bol už definovaný v repertoári" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' bol už definovaný ako symbol triedenia" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' bol už definovaný ako element triedenia" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: `forward' a `backward' sa navzájom vyluÄujú" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: `%s' spomenuté viac ako raz v definícii váhy %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: priveľa pravidiel; prvý záznam mal iba %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: nedostatoÄný poÄet pravidiel triedenia" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: prázdny reÅ¥azec váhy nie je povolený" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: váhy musia ako názov použiÅ¥ rovnaký symbol pokraÄovania" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: priveľa hodnôt" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "poradie pre `%.*s' je už definované na %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: poÄiatoÄný a koncový symbol rozsahu musia zastupovaÅ¥ znaky" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: bajtové sekvencie prvého a posledného znaku musia maÅ¥ rovnakú dĺžku" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, fuzzy, c-format + #| msgid "%s: byte sequence of first character of sequence is not lower than that of the last character" + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: poradie bajtu prvého znaku sekvencie nie je menÅ¡ie ako posledného" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: pokraÄovanie symbolického rozsahu nesmie priamo nasledoÅ¥ `order_start'" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: pokraÄovanie symbolického rozsahu nesmie byÅ¥ priamo nasledované `order_end'" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, fuzzy, c-format + #| msgid "`%s' and `%.*s' are no valid names for symbolic range" + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' a `%.*s' sú neprípustné názvy pre symbolický rozsah" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: poradie pre `%.*s' je už definované na %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' musí byÅ¥ znak" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `position' musí byÅ¥ pre danú úroveň použitá vo vÅ¡etkých sekciách, alebo v žiadnej" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "symbol `%s' nie je definovaný" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "symbol `%s' má rovnaké kódovanie ako" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "symbol `%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "neexistuje definícia pre `UNDEFINED'" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "príliÅ¡ veľa chýb; vzdávam to" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + #| msgid "Operation not supported" + msgid "%s: nested conditionals not supported" + msgstr "Operácia nie je podporovaná" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: More than one -l option specified\n" + msgid "%s: more than one 'else'" + msgstr "%s: Voľba -l zadaná viac ako raz\n" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: duplicitná definícia `%s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: duplicitná deklarácia sekcie `%s'" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: neznámy znak v názve symbolu triedenia" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: neznámy znak v názve ekvivalentnej definície" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: neznámy znak v hodnote ekvivalentnej definície" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: neznámy symbol `%s' v ekvivalentnej definícii" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "chyba pri pridávaní ekvivalentného symbolu triedenia" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "duplicitná definícia skriptu `%s'" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + #| msgid "%s: unknown section name `%s'" + msgid "%s: unknown section name `%.*s'" + msgstr "%s: neznámy názov sekcie `%s'" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: viacnásobná definícia poradia pre sekciu `%s'" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: chybný poÄet pravidiel triedenia" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: viacnásobná definícia poradia pre sekciu bez mena" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: chýbajúce kľúÄové slovo `order_end'" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: poradie pre symbol triedenia `%.*s' eÅ¡te nebolo definované" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: poradie pre element triedenia `%.*s' eÅ¡te nebolo definované" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: nie je možné preradiÅ¥ za %.*s: neznámy symbol" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: chýbajúce kľúÄové slovo `reorder-end'" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: neznáma sekcia `%.*s'" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: zlý symbol <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: `%s' nemôže byÅ¥ koncovým znakom rozsahu pokraÄovania" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: prázdny popis kategórie nie je povolený" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: chýbajúce kľúÄové slovo `reorder-sections-end'" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "V znakovej mape nie je zadaný názov znakovej sady" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "znak L'\\u%0*x' v triede `%s' musí byÅ¥ v triede `%s'" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "znak L'\\u%0*x' v triede `%s' nesmie byÅ¥ v triede `%s'" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "vnútorná chyba %s na riadku %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "znak '%s' v triede `%s' musí byÅ¥ v triede `%s'" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "znak '%s' v triede `%s' nesmie byÅ¥ v triede `%s'" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr " znak nie je v triede `%s'" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr " znak nesmie byÅ¥ v triede `%s'" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "znak nie je definovaný v znakovej sade" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "kategória `digit' neobsahuje záznamy v skupinách po desiatich" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "neboli definované žiadne vstupné Äíslice a v znakovej mape nie je žiadne zo Å¡tandardných mien" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "nie vÅ¡etky znaky použité v `outdigit' sú dostupné v znakovej mape" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "nie vÅ¡etky znaky použité v `outdigit' sú dostupné v repertoári" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "trieda znakov `%s' je už definovaná" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "limit implementácie: maximálne množstvo tried znakov je %Zd" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "znaková sada `%s' je už definovaná" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "limit implementácie: maximálne množstvo sád znakov je %d" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: pole `%s' neobsahuje presne desaÅ¥ položiek" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "to-value rozsahu je menÅ¡ia ako from-value " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "úvodná a koncová znaková sekvencia rozsahu musia maÅ¥ rovnakú dĺžku" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "to-value sekvencia znakov je menÅ¡ia ako sekvencia from-value" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "predÄasný koniec definície `translit_ignore'" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "chyba syntaxe" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: chyba syntaxe v definícii novej triedy znakov" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: chyba syntaxe v definícii novej znakovej mapy" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "rozsah pokraÄovania musí byÅ¥ oznaÄený dvomi operandami rovnakého typu" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "v symbolickom rozsahu hodnôt nesmie byÅ¥ použité absolútne pokraÄovanie `...'" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "v rozsahu hodnôt UCS treba použiÅ¥ hexadecimálne symbolické pokraÄovanie `..'" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "v rozsahu hodnôt kódov znakov treba použiÅ¥ absolútne pokraÄovanie `...'" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "duplicitná definícia mapovania `%s'" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: sekcia `translit_start' nekonÄí `translit_end'" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: duplicitná definícia `default_missing'" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "predchádzajúca definícia bola tu" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: nenájdená zobraziteľná definícia `default_missing'" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: znak `%s' nie je definovaný a je potrebný ako implicitná hodnota" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: znak `%s' v znakovej mape nie je vyjadriteľný jedným bajtom" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: znak `%s' je potrebný ako prednastavená hodnota nevyjadriteľná jedným bajtom" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "neboli definované žiadne výstupné Äíslice a v znakovej mape nie je žiadne zo Å¡tandardných mien" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: transliteraÄné údaje prostredia `%s' nie sú dostupné" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabuľka triedy \"%s\": %lu bajtov\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabuľka mapy \"%s\": %lu bajtov\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabuľka šírky: %lu bajtov\n" +@@ -3865,17 +3854,23 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 +-#, c-format +-msgid "cannot stat() file `%s': %s" ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "nie je možné vykonaÅ¥ stat() súboru `%s': %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3974,158 +3969,220 @@ msgstr "nie je možné povoliÅ¥ socketu + msgid "cannot enable socket to accept connections: %s" + msgstr "nie je možné povoliÅ¥ socketu prijímaÅ¥ spojenia: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "disabled inotify-based monitoring for file `%s': %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Nie je možné otvoriÅ¥ adresár %s" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "nie je možné spracovaÅ¥ starú verziu žiadosti %d; aktuálna verzia je %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "nie je možné zapísaÅ¥ výsledok: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, fuzzy, c-format + #| msgid "error getting callers id: %s" + msgid "error getting caller's id: %s" + msgstr "chyba pri získaní id volajúceho: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "neúplné Äítanie žiadosti: `%s'" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "dĺžka kľúÄa v žiadosti príliÅ¡ dlhá: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "neúplné Äítanie kľúÄa žiadosti: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: žiadosÅ¥ prijatá (verzia = %d) z PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: žiadosÅ¥ prijatá (verzia = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "nepodarilo sa naÄítaÅ¥ zdieľaný objekt `%s'" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + #, fuzzy + #| msgid "cannot initialize archive file" + msgid "could not initialize conditional variable" + msgstr "nie je možné inicializovaÅ¥ archívny súbor" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Zlyhalo spustenie nscd ako používateľ '%s'" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + #, fuzzy + #| msgid "getgrouplist failed" + msgid "initial getgrouplist failed" + msgstr "getgrouplist zlyhalo" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist zlyhalo" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups zlyhalo" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "neúplný zápis v %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Nenájdené \"%s\" v cache skupín!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, fuzzy, c-format + #| msgid "Haven't found \"%s\" in group cache!" + msgid "Reloading \"%s\" in group cache!" +@@ -4221,7 +4278,7 @@ msgstr "PoužiÅ¥ samostatnú cache pre k + msgid "Name Service Cache Daemon." + msgstr "Démon cache služby názvov." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "chybný poÄet argumentov" +@@ -4259,7 +4316,7 @@ msgstr "" + msgid "Could not create log file" + msgstr "Nie je možné vytvoriÅ¥ žurnálový súbor \"%s\"" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "neúplný zápis" +@@ -4276,7 +4333,7 @@ msgstr "nie je možné naÄítaÅ¥ údaje + msgid "invalidation failed" + msgstr "Modifikácia zlyhala" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Táto voľba je dostupná iba superužívateľovi!" +@@ -4361,35 +4418,35 @@ msgstr "" + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "nie je možné zapísaÅ¥ Å¡tatistiku: `%s'" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Len správca alebo %s má dostupnú túto voľbu!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd nebeží!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "nie je možné naÄítaÅ¥ Å¡tatistické údaje" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4400,27 +4457,27 @@ msgstr "" + "\n" + "%15d ladiaca úroveň servera\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus doba behu servera\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus doba behu servera\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus doba behu servera\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus doba behu servera\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4431,7 +4488,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, fuzzy, c-format + #| msgid "" + #| "\n" +@@ -4512,95 +4569,95 @@ msgstr "Nenájdené \"%s\" v cache hesie + msgid "Invalid numeric uid \"%s\"!" + msgstr "Neplatné Äíselné uid \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + #| msgid "lstat failed" + msgid "cap_init failed" + msgstr "lstat zlyhal" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + #| msgid "setgroups failed" + msgid "cap_set_proc failed" + msgstr "setgroups zlyhalo" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + #| msgid "Unable to create callback" + msgid "Failed to create AVC lock" + msgstr "Nie je možné vytvoriÅ¥ spätné volanie" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + #, fuzzy + #| msgid "error getting callers id: %s" + msgid "Error getting context of nscd" + msgstr "chyba pri získaní id volajúceho: %s" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + #, fuzzy + #| msgid "Error writing standard output" + msgid "Error getting sid from context" + msgstr "Chyba pri zápise na Å¡tandardný výstup" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4655,19 +4712,19 @@ msgstr "getent - získaÅ¥ záznamy z adm + msgid "Enumeration not supported on %s\n" + msgstr "Enumerácia %s nie je podporované\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + #| msgid "Unknown database: %s\n" + msgid "Unknown database name" + msgstr "Neznáma databáza %s\n" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + #, fuzzy + #| msgid "Supported databases:" + msgid "Supported databases:\n" + msgstr "Podporované databázy:" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Neznáma databáza %s\n" +@@ -4967,7 +5024,7 @@ msgstr "Nepárová ) or \\)" + msgid "No previous regular expression" + msgstr "Žiadny predchádzajúci regulérny výraz" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "prázdny alebo nenastavený parameter" + +@@ -7785,6 +7842,9 @@ msgstr "%s: Nie je možné vytvoriÅ¥ adr + #~ msgid "empty dynamics string token substitution" + #~ msgstr "prázdna substitúcia tokenu reÅ¥azca dynamiky" + ++#~ msgid "%s: profiler found no PLTREL in object %s\n" ++#~ msgstr "%s: profiler nenaÅ¡iel PLTREL v objekte %s\n" ++ + #~ msgid "%s: profiler out of memory shadowing PLTREL of %s\n" + #~ msgstr "%s: profiler vyÄerpal pamäť pri vytváraní kópie PLTREL z %s\n" + +Index: glibc-2.23/po/sl.po +=================================================================== +--- glibc-2.23.orig/po/sl.po ++++ glibc-2.23/po/sl.po +@@ -1,14 +1,14 @@ + # -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU libc. +-# Copyright (C) 2013, 2014 Free Software Foundation, Inc. ++# Copyright (C) 2013, 2014, 2015, 2016 Free Software Foundation, Inc. + # This file is distributed under the same license as the glibc package. +-# Primož Peterlin , 2013, 2014. +-# $Id: libc-2.18.90.20140105.sl.po,v 1.1 2014/02/02 15:58:03 peterlin Exp $ ++# Primož Peterlin , 2013, 2014, 2015, 2016. ++# $Id: libc-2.22-pre1.sl.po,v 1.5 2016/01/04 22:59:34 peterlin Exp $ + msgid "" + msgstr "" +-"Project-Id-Version: libc 2.18.90.20140105\n" ++"Project-Id-Version: libc 2.22-pre1\n" + "Report-Msgid-Bugs-To: bug-coreutils@gnu.org\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" +-"PO-Revision-Date: 2014-02-02 16:58+0100\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"PO-Revision-Date: 2016-01-04 23:59+0100\n" + "Last-Translator: Primož Peterlin \n" + "Language-Team: Slovenian \n" + "Language: sl\n" +@@ -142,10 +142,10 @@ msgstr "" + "[IZHODNA_DATOTEKA [VHODNA_DATOTEKA]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -157,7 +157,7 @@ msgstr "" + "%s.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -175,7 +175,7 @@ msgstr "" + "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA RABO.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -428,11 +428,11 @@ msgstr "Sprememba pravic dostopa za %s n + msgid "Renaming of %s to %s failed" + msgstr "Preimenovanje %s v %s ni uspelo" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "seznama podroÄja ni mogoÄe ustvariti" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "deljeni predmet ni odprt" + +@@ -505,127 +505,127 @@ msgstr "polja iskalnih poti ni mogoÄe u + msgid "cannot stat shared object" + msgstr "statusa deljenega predmeta ni mogoÄe ugotoviti" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "ni mogoÄe odpreti naprave /dev/zero" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "deljenega predmetnega deskriptorja ni mogoÄe ustvariti" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "podatkov datoteke ni mogoÄe prebrati" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "poravnava ukaza ELF za nalaganje ni poravnana s stranjo" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "naslov/odmik ukaza ELF za nalaganje ni primerno poravnan" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "podatkovnih struktur TLS za zaÄetno nit ni mogoÄe dodeliti" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "rokovanje s podatki TLS ni mogoÄe" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "predmetna datoteka nima vÄitljivega segmenta" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "dinamiÄno nalaganje izvedljive datoteke ni mogoÄe" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "predmetna datoteka nima dinamiÄne sekcije" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "dlopen() na deljenih predmetih ni mogoÄ" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "dodelitev pomnilnika za glavo programa ni mogoÄa" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "neveljaven klicatelj" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "sprememba zaÅ¡Äite pomnilnika ni mogoÄa" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "izvedljivega sklada ni mogoÄe omogoÄiti, kot to zahteva deljeni predmet" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "datoteÄnega deskriptorja ni mogoÄe zapreti" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "datoteka je prekratka" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "neveljavna glava ELF" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "kodiranje podatkov datoteke ELF ni »big-endian«" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "kodiranje podatkov datoteke ELF ni »little-endian«" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "identifikator razliÄice datoteke ELF se ne ujema s trenutnim" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "OS ABI datoteke ELF ni veljaven" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "razliÄica ABI datoteke ELF ni veljavna" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "neniÄelno zapolnjenje pri e_ident" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "interna napaka" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "razliÄica datoteke ELF se ne ujema s trenutno" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "samo ET_DYN in ET_EXEC je mogoÄe naložiti" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "phentsize datoteke ELF ni priÄakovane velikosti" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "napaÄen razred ELF: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "napaÄen razred ELF: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "deljene predmetne datoteke ni mogoÄe odpreti" + +@@ -637,11 +637,11 @@ msgstr "preslikava segmenta iz deljenega + msgid "cannot map zero-fill pages" + msgstr "niÄelnih strani ni mogoÄe preslikati" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "napaka pri premikanju" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "napaka pri iskanju simbola" + +@@ -649,49 +649,40 @@ msgstr "napaka pri iskanju simbola" + msgid "cannot extend global scope" + msgstr "ni mogoÄe razÅ¡iriti globalnega podroÄja" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "Zapletanje Å¡tevca generacij TLS! Prosim, javite to napako." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "nobenega predmeta s statiÄnim TLS ni veÄ mogoÄe naložiti" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "neveljavni naÄin za dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "nobenega imenskega prostora za dlmopen() ni veÄ na voljo" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "neveljavni ciljni imenski prostor pri dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "ni mogoÄe dodeliti pomnilnika v statiÄnem bloku TLS" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "segmenta se ne da odÅ¡Äititi za pisanje pred premikom" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: v predmetu %s ni najti PLTREL\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: pomnilnika ni dovolj za shranjevanje rezultatov premikanja %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "zaÅ¡Äite segmenta po premiku ni mogoÄe povrniti" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "dodatne zaÅ¡Äite pomnilnika po premiku ni mogoÄe uporabiti" + +@@ -699,7 +690,7 @@ msgstr "dodatne zaÅ¡Äite pomnilnika po + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT uporabljen v kodi se ni dinamiÄno naložil" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "podatkovnih struktur TLS ni mogoÄe ustvariti" + +@@ -843,7 +834,7 @@ msgstr "Povezava ni bila ustvarjena, ker + msgid "Can't open directory %s" + msgstr "Ni mogoÄe odpreti imenika %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Vhodne datoteke %s ni moÄ najti.\n" +@@ -980,7 +971,7 @@ msgstr "manjkajoÄi argumenti datoteke" + msgid "No such file or directory" + msgstr "Datoteka ali imenik s tem imenom ne obstaja" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "ni navadna datoteka" + +@@ -1025,65 +1016,70 @@ msgstr "branje r_debug ni mogoÄe" + msgid "cannot read program interpreter" + msgstr "programskega tolmaÄa ni mogoÄe prebrati" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "preslikave povezav ni mogoÄe prebrati" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "imena predmeta ni mogoÄe prebrati" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "dodelitev medpomnilnika za ime predmeta ni mogoÄa" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "IzpiÅ¡i seznam dinamiÄnih deljenih predmetov, naloženih v proces." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Zahtevan je natanÄno en parameter z ID procesa.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "neveljavna identifikacijska Å¡tevilka procesa »%s«" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "ni mogoÄe odpreti %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "ni mogoÄe odpreti %s/task" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "ni mogoÄe pripraviti %s/task za branje" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "neveljavna identifikacijska Å¡tevilka niti »%s«" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "pripenjanje k procesu %lu ni mogoÄe" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "informacije o procesu %lu niso na voljo" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "proces %lu ni program ELF" +@@ -1118,27 +1114,27 @@ msgstr "%s ni deljena predmetna datoteka + msgid "more than one dynamic segment\n" + msgstr "veÄ kot en dinamiÄni segment\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "fstat() na datoteki %s ni mogoÄe izvesti.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Datoteka %s je prazna, brez preverjanja." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Datoteka %s je premajhna, brez preverjanja." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "mmap() na datoteki %s ni mogoÄe izvesti.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s ni datoteka ELF - magiÄno zaporedje bajtov na zaÄetku je napaÄno.\n" +@@ -1149,6 +1145,8 @@ msgid "" + "Usage: sln src dest|file\n" + "\n" + msgstr "" ++"Uporaba: sln IZVOR CILJ|DATOTEKA\n" ++"\n" + + #: elf/sln.c:109 + #, c-format +@@ -1178,7 +1176,7 @@ msgstr "%s: neveljaven cilj: %s\n" + #: elf/sln.c:207 elf/sln.c:216 + #, c-format + msgid "Invalid link from \"%s\" to \"%s\": %s\n" +-msgstr "" ++msgstr "Neveljavna povezava z »%s« na »%s«: %s\n" + + #: elf/sotruss.sh:32 + #, sh-format +@@ -1196,6 +1194,18 @@ msgid "" + " --usage Give a short usage message\n" + " --version Print program version" + msgstr "" ++"Usage: sotruss [IZBIRA...] [--] PROGRAM [IZBIRA_PROGRAMA...]\n" ++" -F, --from SEZNAM Sledi klicem predmetov s SEZNAMA\n" ++" -T, --to SEZNAM Sledi klicem predmetom s SEZNAMA\n" ++"\n" ++" -e, --exit Prikaži tudi izhode klicev funkcij\n" ++" -f, --follow Sledi procesom naslednikom\n" ++" -o, --output DATOTEKA ZapiÅ¡i izhod na DATOTEKO (ali DATOTEKO.$PID, Äe\n" ++" je uporabljena izbira -f) namesto na standardni izhod\n" ++"\n" ++" -?, --help Prikaži ta seznam pomoÄi\n" ++" --usage Prikaži kratko sporoÄilo o rabi\n" ++" --version IzpiÅ¡i razliÄico programa" + + #: elf/sotruss.sh:46 + msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n" +@@ -1220,6 +1230,10 @@ msgid "" + "\t [--help] [--usage] [--version] [--]\n" + "\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" + msgstr "" ++"Usage: %s [-ef] [-F SEZNAM] [-o DATOTEKA] [-T SEZNAM] [--exit]\n" ++" [--follow] [--from SEZNAM] [--output DATOTEKA] [--to SEZNAM]\n" ++" [-help] [--usage] [--version] [--]\n" ++" PROGRAM [IZBIRA_PROGRAMA...]" + + #: elf/sotruss.sh:134 + msgid "%s: unrecognized option '%c%s'\\n" +@@ -1231,33 +1245,33 @@ msgstr "Izbira izhoda:" + + #: elf/sprof.c:79 + msgid "print list of count paths and their number of use" +-msgstr "" ++msgstr "izpiÅ¡i seznam Å¡tetih poti in Å¡tevilo njihovih rab" + + #: elf/sprof.c:81 + msgid "generate flat profile with counts and ticks" +-msgstr "" ++msgstr "ustvari enostavni profil s Å¡tevili in takti" + + #: elf/sprof.c:82 + msgid "generate call graph" +-msgstr "" ++msgstr "ustvari graf klicev" + + #: elf/sprof.c:89 + msgid "Read and display shared object profiling data." +-msgstr "" ++msgstr "Preberi in prikaži profilne podatke za deljeni predmet." + + #: elf/sprof.c:94 + msgid "SHOBJ [PROFDATA]" +-msgstr "" ++msgstr "SHOBJ [PROFDATA]" + + #: elf/sprof.c:433 + #, c-format + msgid "failed to load shared object `%s'" + msgstr "nalaganje deljenega predmeta »%s« ni uspelo" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "internih deskriptorjev ni mogoÄe ustvariti" ++msgid "cannot create internal descriptor" ++msgstr "internega deskriptorja ni mogoÄe ustvariti" + + #: elf/sprof.c:554 + #, c-format +@@ -1294,7 +1308,7 @@ msgstr "branje zaglavja ELF ni uspelo" + #: elf/sprof.c:685 + #, c-format + msgid "*** The file `%s' is stripped: no detailed analysis possible\n" +-msgstr "" ++msgstr "*** Datoteka »%s« je posneta; podrobna analiza ni mogoÄa\n" + + #: elf/sprof.c:715 + #, c-format +@@ -1304,37 +1318,32 @@ msgstr "nalaganje simbolnih podatkov ni + #: elf/sprof.c:780 + #, c-format + msgid "cannot load profiling data" +-msgstr "" ++msgstr "profilnih podatkov ni mogoÄe naložiti" + + #: elf/sprof.c:789 + #, c-format + msgid "while stat'ing profiling data file" +-msgstr "" ++msgstr "ob branju statistike datoteke s profilnimi podatki" + + #: elf/sprof.c:797 + #, c-format + msgid "profiling data file `%s' does not match shared object `%s'" +-msgstr "" ++msgstr "datoteka s profilimi podatki »%s« ne ustreza deljenemu predmetu »%s«" + + #: elf/sprof.c:808 + #, c-format + msgid "failed to mmap the profiling data file" +-msgstr "" ++msgstr "klic mmap() na datoteki s profilnimi podatki ni uspel" + + #: elf/sprof.c:816 + #, c-format + msgid "error while closing the profiling data file" + msgstr "napaka pri zapiranju datoteke s podatki za profiliranje" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "internega deskriptorja ni mogoÄe ustvariti" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +-msgstr "" ++msgstr "»%s« ni prava datoteka s profilnimi podatki za »%s«" + + #: elf/sprof.c:1080 elf/sprof.c:1138 + #, c-format +@@ -1354,7 +1363,7 @@ msgstr "napaka pri zapiranju vhoda »%s + #: iconv/iconv_charmap.c:435 + #, c-format + msgid "illegal input sequence at position %Zd" +-msgstr "" ++msgstr "neveljavno vhodno zaporedje na poziciji %Zd" + + #: iconv/iconv_charmap.c:454 iconv/iconv_prog.c:539 + #, c-format +@@ -1465,7 +1474,7 @@ msgstr "pretvorba ustavljena zaradi tež + #: iconv/iconv_prog.c:535 + #, c-format + msgid "illegal input sequence at position %ld" +-msgstr "" ++msgstr "neveljavno vhodno zaporedje na poziciji %ld" + + #: iconv/iconv_prog.c:543 + #, c-format +@@ -1486,10 +1495,16 @@ msgid "" + "\n" + " " + msgstr "" ++"SledeÄi seznam vsebuje vse poznane kodirane nabore znakov. To ne pomeni nujno,\n" ++"da je mogoÄe katerokoli kombinacijo uporabiti za izbiro vhodnega in izhodnega\n" ++"kodiranja v ukazni vrstici. Posamezni kodirani nabor znakov je lahko naÅ¡tet\n" ++"pod veÄ sinonimi.\n" ++"\n" ++" " + + #: iconv/iconvconfig.c:109 + msgid "Create fastloading iconv module configuration file." +-msgstr "" ++msgstr "Ustvarjam konfiguracijsko datoteko za hitro-naložljiv modul iconv." + + #: iconv/iconvconfig.c:113 + msgid "[DIR...]" +@@ -1501,30 +1516,30 @@ msgstr "POT" + + #: iconv/iconvconfig.c:127 + msgid "Prefix used for all file accesses" +-msgstr "" ++msgstr "Predpona za vse dostope do datotek" + + #: iconv/iconvconfig.c:128 + msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)" +-msgstr "" ++msgstr "ZapiÅ¡i izhod v DATOTEKO namesto na obiÄajno mesto (--prefix se ne nanaÅ¡a na DATOTEKO)" + + #: iconv/iconvconfig.c:132 + msgid "Do not search standard directories, only those on the command line" +-msgstr "" ++msgstr "Ne preiskuj standardnih imenikov, ampak le tiste, navedene v ukazni vrstici" + + #: iconv/iconvconfig.c:299 + #, c-format + msgid "Directory arguments required when using --nostdlib" +-msgstr "" ++msgstr "Pri izbiri --nostdlib mora biti podan imenik" + + #: iconv/iconvconfig.c:341 locale/programs/localedef.c:294 + #, c-format + msgid "no output file produced because warnings were issued" +-msgstr "" ++msgstr "zaradi opozoril med potekom izhodna datoteka ni bila ustvarjena" + + #: iconv/iconvconfig.c:430 + #, c-format + msgid "while inserting in search tree" +-msgstr "" ++msgstr "med vrivanjem v iskalno drevo" + + #: iconv/iconvconfig.c:1239 + #, c-format +@@ -1537,12 +1552,12 @@ msgstr "rcmd: Pomnilnika ni mogoÄe reze + + #: inet/rcmd.c:178 + msgid "rcmd: socket: All ports in use\n" +-msgstr "rcmd: vtiÄnica: Vsa vrata so v rabi\n" ++msgstr "rcmd: socket: Vsa vrata so v rabi\n" + + #: inet/rcmd.c:206 + #, c-format + msgid "connect to address %s: " +-msgstr "priklapljanje na naslov %s: " ++msgstr "priklop na naslov %s: " + + #: inet/rcmd.c:219 + #, c-format +@@ -1552,49 +1567,49 @@ msgstr "PoskuÅ¡a se %s...\n" + #: inet/rcmd.c:255 + #, c-format + msgid "rcmd: write (setting up stderr): %m\n" +-msgstr "" ++msgstr "rcmd: write (nastavljanje stderr): %m\n" + + #: inet/rcmd.c:271 + #, c-format + msgid "rcmd: poll (setting up stderr): %m\n" +-msgstr "" ++msgstr "rcmd: poll (nastavljanje stderr): %m\n" + + #: inet/rcmd.c:274 + msgid "poll: protocol failure in circuit setup\n" +-msgstr "" ++msgstr "poll: napaka v protokolu pri nastavljanju vezja\n" + + #: inet/rcmd.c:306 + msgid "socket: protocol failure in circuit setup\n" +-msgstr "" ++msgstr "socket: napaka v protokolu pri nastavljanju vezja\n" + + #: inet/rcmd.c:330 + #, c-format + msgid "rcmd: %s: short read" +-msgstr "" ++msgstr "rcmd: %s: manjkajoÄi podatki pri branju" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat ni uspel" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "ni mogoÄe odpreti" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat ni uspel" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" +-msgstr "" ++msgstr "nepravi lastnik" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" +-msgstr "" ++msgstr "dovoljenje za pisanje ima ne-lastnik" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" +-msgstr "" ++msgstr "obstaja trda povezava" + + #: inet/ruserpass.c:170 inet/ruserpass.c:193 + msgid "out of memory" +@@ -1602,11 +1617,11 @@ msgstr "zmanjkalo pomnilnika" + + #: inet/ruserpass.c:184 + msgid "Error: .netrc file is readable by others." +-msgstr "" ++msgstr "Napaka: datoteko .netrc lahko berejo drugi." + + #: inet/ruserpass.c:185 + msgid "Remove password or make file unreadable by others." +-msgstr "" ++msgstr "Odstranite geslo ali napravite datoteke neberljivo za druge." + + #: inet/ruserpass.c:277 + #, c-format +@@ -1618,108 +1633,102 @@ msgid "Character out of range for UTF-8" + msgstr "Znak izven obsega UTF-8" + + #: locale/programs/charmap-dir.c:57 +-#, fuzzy, c-format ++#, c-format + msgid "cannot read character map directory `%s'" +-msgstr "imenika %s ni mogoÄe ustvariti" ++msgstr "imenika »%s« s preslikavami znakov ni mogoÄe prebrati" + + #: locale/programs/charmap.c:138 +-#, fuzzy, c-format ++#, c-format + msgid "character map file `%s' not found" +-msgstr "Datoteke z vzorcem datuma ni najti" ++msgstr "datoteke »%s« s preslikavami znakov ni najti" + + #: locale/programs/charmap.c:195 +-#, fuzzy, c-format ++#, c-format + msgid "default character map file `%s' not found" +-msgstr "znakovne enote niso podprte" ++msgstr "privzete datoteke »%s« s preslikavami znakov ni najti" + + #: locale/programs/charmap.c:258 + #, c-format + msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n" +-msgstr "" ++msgstr "preslikava znakov »%s« ni združljiva z ASCII, okolje ne ustreza ISO C\n" + + #: locale/programs/charmap.c:337 +-#, fuzzy, c-format ++#, c-format + msgid "%s: must be greater than \n" +-msgstr "%s: Å¡tevilo vrstice mora biti pozitivno" ++msgstr "%s: mora biti veÄje od \n" + + #: locale/programs/charmap.c:357 locale/programs/charmap.c:374 + #: locale/programs/repertoire.c:174 +-#, fuzzy, c-format ++#, c-format + msgid "syntax error in prolog: %s" +-msgstr "napaka v %s: %s" ++msgstr "skladenjska napaka v preambuli: %s" + + #: locale/programs/charmap.c:358 +-#, fuzzy + msgid "invalid definition" +-msgstr "%s:%d: neveljavna definicija niza" ++msgstr "neveljavna definicija" + + #: locale/programs/charmap.c:375 locale/programs/locfile.c:131 + #: locale/programs/locfile.c:158 locale/programs/repertoire.c:175 +-#, fuzzy + msgid "bad argument" +-msgstr "neveljavni argument %s" ++msgstr "neveljavni argument" + + #: locale/programs/charmap.c:403 +-#, fuzzy, c-format ++#, c-format + msgid "duplicate definition of <%s>" +-msgstr "podvojena definicija sporoÄila" ++msgstr "podvojena definicija <%s>" + + #: locale/programs/charmap.c:410 + #, c-format + msgid "value for <%s> must be 1 or greater" +-msgstr "" ++msgstr "vrednost <%s> mora biti 1 ali veÄ" + + #: locale/programs/charmap.c:422 + #, c-format + msgid "value of <%s> must be greater or equal than the value of <%s>" +-msgstr "" ++msgstr "vrednost <%s> mora biti veÄja ali enaka od vrednosti <%s>" + + #: locale/programs/charmap.c:445 locale/programs/repertoire.c:183 +-#, fuzzy, c-format ++#, c-format + msgid "argument to <%s> must be a single character" +-msgstr "argument %s mora biti eno samo loÄilo" ++msgstr "argument <%s> mora biti en sam znak" + + #: locale/programs/charmap.c:471 +-#, fuzzy + msgid "character sets with locking states are not supported" +-msgstr "znakovne enote niso podprte" ++msgstr "nabori znakov z zaklepnimi stanji niso podprti" + + #: locale/programs/charmap.c:498 locale/programs/charmap.c:552 + #: locale/programs/charmap.c:584 locale/programs/charmap.c:678 + #: locale/programs/charmap.c:733 locale/programs/charmap.c:774 + #: locale/programs/charmap.c:815 +-#, fuzzy, c-format ++#, c-format + msgid "syntax error in %s definition: %s" +-msgstr "napaka v %s: %s" ++msgstr "skladenjska napaka v definiciji %s: %s" + + #: locale/programs/charmap.c:499 locale/programs/charmap.c:679 + #: locale/programs/charmap.c:775 locale/programs/repertoire.c:230 +-#, fuzzy + msgid "no symbolic name given" +-msgstr "Ime arhiva ni podano" ++msgstr "simbolno ime ni podano" + + #: locale/programs/charmap.c:553 +-#, fuzzy + msgid "invalid encoding given" +-msgstr "neveljavni padajoÄi razpon" ++msgstr "podano je neveljavno kodiranje" + + #: locale/programs/charmap.c:562 + msgid "too few bytes in character encoding" +-msgstr "" ++msgstr "premalo bajtov v kodiranju znakov" + + #: locale/programs/charmap.c:564 +-#, fuzzy + msgid "too many bytes in character encoding" +-msgstr "preveÄ znakov v množici" ++msgstr "preveÄ bajtov v kodiranju znakov" + + #: locale/programs/charmap.c:586 locale/programs/charmap.c:734 + #: locale/programs/charmap.c:817 locale/programs/repertoire.c:296 + msgid "no symbolic name given for end of range" +-msgstr "" ++msgstr "simbolno ime za konec razpona ni podano" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1728,78 +1737,77 @@ msgstr "" + #: locale/programs/repertoire.c:313 + #, c-format + msgid "%1$s: definition does not end with `END %1$s'" +-msgstr "" ++msgstr "%1$s: definicija se ne zakljuÄi z »END %1$s«" + + #: locale/programs/charmap.c:643 + msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" +-msgstr "" ++msgstr "definiciji CHARMAP smejo slediti le definicije WIDTH" + + #: locale/programs/charmap.c:651 locale/programs/charmap.c:714 + #, c-format + msgid "value for %s must be an integer" +-msgstr "" ++msgstr "vrednost %s mora biti celo Å¡tevilo" + + #: locale/programs/charmap.c:842 +-#, fuzzy, c-format ++#, c-format + msgid "%s: error in state machine" +-msgstr "%s: napaka pri krajÅ¡anju" ++msgstr "%s: napaka v stroju stanj" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 + #: locale/programs/ld-numeric.c:342 locale/programs/ld-paper.c:230 + #: locale/programs/ld-telephone.c:294 locale/programs/ld-time.c:959 + #: locale/programs/locfile.c:1000 locale/programs/repertoire.c:324 +-#, fuzzy, c-format ++#, c-format + msgid "%s: premature end of file" +-msgstr "PredÄasen znak za konec datoteke" ++msgstr "%s: predÄasen konec datoteke" + + #: locale/programs/charmap.c:869 locale/programs/charmap.c:880 + #, c-format + msgid "unknown character `%s'" +-msgstr "" ++msgstr "neznani znak »%s«" + + #: locale/programs/charmap.c:888 + #, c-format + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" +-msgstr "" ++msgstr "Å¡tevilo bajtov v zaporedju bajtov za zaÄetek in konec razpona ni enako: %d proti %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 +-#, fuzzy + msgid "invalid names for character range" +-msgstr "neveljavno ime razreda znakov" ++msgstr "neveljavna imena za razpon znakov" + + #: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431 + msgid "hexadecimal range format should use only capital characters" +-msgstr "" ++msgstr "v Å¡estnajstiÅ¡kem zapisu razpona so dovoljene le velike Ärke" + + #: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449 + #, c-format + msgid "<%s> and <%s> are invalid names for range" +-msgstr "" ++msgstr "<%s> in <%s> sta neveljavni imeni za razpon" + + #: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456 + msgid "upper limit in range is smaller than lower limit" +-msgstr "" ++msgstr "zgornja meja v razponu je manjÅ¡a od spodnje meje" + + #: locale/programs/charmap.c:1087 + #, fuzzy + msgid "resulting bytes for range not representable." + msgstr "vrednost %s je tolikÅ¡na, da ni strojno predstavljiva" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 + #: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159 + #, c-format + msgid "No definition for %s category found" +-msgstr "" ++msgstr "Za kategorijo %s ni mogoÄe najti definicije" + + #: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184 + #: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231 +@@ -1813,50 +1821,50 @@ msgstr "" + #: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105 + #: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175 + #: locale/programs/ld-time.c:196 +-#, fuzzy, c-format ++#, c-format + msgid "%s: field `%s' not defined" +-msgstr "tip terminala »%s« ni doloÄen" ++msgstr "%s: polje »%s« ni doloÄeno" + + #: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210 + #: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278 + #: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117 + #, c-format + msgid "%s: field `%s' must not be empty" +-msgstr "" ++msgstr "%s: polje »%s« ne sme biti prazno" + + #: locale/programs/ld-address.c:170 + #, c-format + msgid "%s: invalid escape `%%%c' sequence in field `%s'" +-msgstr "" ++msgstr "%s: neveljavno ubežno zaporedje »%%%c« v polju »%s«" + + #: locale/programs/ld-address.c:221 +-#, fuzzy, c-format ++#, c-format + msgid "%s: terminology language code `%s' not defined" +-msgstr "tip terminala »%s« ni doloÄen" ++msgstr "%s: terminoloÅ¡ka koda jezika »%s« ni doloÄena" + + #: locale/programs/ld-address.c:246 +-#, fuzzy, c-format ++#, c-format + msgid "%s: field `%s' must not be defined" +-msgstr "tip terminala »%s« ni doloÄen" ++msgstr "%s: polje »%s« ne sme biti doloÄeno" + + #: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289 + #, c-format + msgid "%s: language abbreviation `%s' not defined" +-msgstr "" ++msgstr "%s: okrajÅ¡ava jezika »%s« ni doloÄena" + + #: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295 + #: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341 +-#, fuzzy, c-format ++#, c-format + msgid "%s: `%s' value does not match `%s' value" +-msgstr "Del %s ne ustreza %s" ++msgstr "%s: vrednost »%s« ne ustreza vrednosti »%s«" + + #: locale/programs/ld-address.c:314 + #, c-format + msgid "%s: numeric country code `%d' not valid" +-msgstr "" ++msgstr "%s: Å¡tevilÄna koda države »%d« ni doloÄena" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1864,9 +1872,9 @@ msgstr "" + #: locale/programs/ld-numeric.c:218 locale/programs/ld-paper.c:197 + #: locale/programs/ld-telephone.c:253 locale/programs/ld-time.c:848 + #: locale/programs/ld-time.c:890 +-#, fuzzy, c-format ++#, c-format + msgid "%s: field `%s' declared more than once" +-msgstr "izbira --output: polje %s je uporabljeno veÄ kot enkrat" ++msgstr "%s: polje »%s« je deklarirano veÄ kot enkrat" + + #: locale/programs/ld-address.c:440 locale/programs/ld-address.c:478 + #: locale/programs/ld-identification.c:284 locale/programs/ld-messages.c:277 +@@ -1874,507 +1882,507 @@ msgstr "izbira --output: polje %s je upo + #: locale/programs/ld-name.c:241 locale/programs/ld-numeric.c:222 + #: locale/programs/ld-telephone.c:257 locale/programs/ld-time.c:742 + #: locale/programs/ld-time.c:811 locale/programs/ld-time.c:853 +-#, fuzzy, c-format ++#, c-format + msgid "%s: unknown character in field `%s'" +-msgstr "zablodeli znak v doloÄilu polja" ++msgstr "%s: neznani znak v polju »%s«" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 + #: locale/programs/ld-telephone.c:276 locale/programs/ld-time.c:941 + #, c-format + msgid "%s: incomplete `END' line" +-msgstr "" ++msgstr "%s: nepopolna vrstica »END«" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 + #: locale/programs/ld-numeric.c:333 locale/programs/ld-paper.c:221 + #: locale/programs/ld-telephone.c:285 locale/programs/ld-time.c:950 +-#, fuzzy, c-format ++#, c-format + msgid "%s: syntax error" +-msgstr "napaka v skladnji" ++msgstr "%s: napaka v skladnji" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" +-msgstr "" ++msgstr "»%.*s« je že definiran v kodni preslikavi" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" +-msgstr "" ++msgstr "»%.*s« je že definiran v naboru" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" +-msgstr "" ++msgstr "»%.*s« je že definiran kot sortirni simbol" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" +-msgstr "" ++msgstr "»%.*s« je že definiran kot sortirni element" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" +-msgstr "" ++msgstr "%s: »forward« in »backward« se vzajemno izkljuÄujeta" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" +-msgstr "" ++msgstr "%s: »%s« je omenjeno veÄ kot enkrat v definiciji uteži %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" +-msgstr "" ++msgstr "%s: preveÄ pravil; prvi vnos jih je imel %d" + +-#: locale/programs/ld-collate.c:624 +-#, fuzzy, c-format ++#: locale/programs/ld-collate.c:625 ++#, c-format + msgid "%s: not enough sorting rules" +-msgstr "z uporabo %s pravil za urejanje" ++msgstr "%s: pravil za urejanje ni dovolj" + +-#: locale/programs/ld-collate.c:789 +-#, fuzzy, c-format ++#: locale/programs/ld-collate.c:790 ++#, c-format + msgid "%s: empty weight string not allowed" +-msgstr "prazen %s ni dovoljen" ++msgstr "%s: prazen utežni niz ni dovoljen" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" +-msgstr "" ++msgstr "%s: uteži morajo uporabljati isti simbol za tripiÄje kot ime" + +-#: locale/programs/ld-collate.c:940 +-#, fuzzy, c-format ++#: locale/programs/ld-collate.c:941 ++#, c-format + msgid "%s: too many values" +-msgstr "%s: PreveÄ argumentov\n" ++msgstr "%s: preveÄ vrednosti" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" +-msgstr "" ++msgstr "red za »%.*s« je že definiran pri %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" +-msgstr "" ++msgstr "%s: simbola za zaÄetek in konec razpona morata oznaÄevati znaka" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" +-msgstr "" ++msgstr "%s: zaporedji bajtov za prvi in zadnji znak morata imeti isto dolžino" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1387 +-#, fuzzy, c-format ++#: locale/programs/ld-collate.c:1388 ++#, c-format + msgid "%s: `%s' must be a character" +-msgstr "razmejilnik mora biti en sam znak" ++msgstr "%s: »%s« mora biti znak" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1607 +-#, fuzzy, c-format ++#: locale/programs/ld-collate.c:1608 ++#, c-format + msgid "symbol `%s' not defined" +-msgstr "tip terminala »%s« ni doloÄen" ++msgstr "simbol »%s« ni doloÄen" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" +-msgstr "" ++msgstr "simbol »%s« ima isto kodiranje kot" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" +-msgstr "" ++msgstr "simbol »%s«" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, fuzzy, c-format + msgid "too many errors; giving up" + msgstr "preveÄ napak, nadaljevanje ni možno" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, fuzzy, c-format + msgid "%s: nested conditionals not supported" + msgstr "ukaz »e« ni podprt" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + msgid "%s: more than one 'else'" + msgstr "nobena izbira za pretvorbo ni podana" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, fuzzy, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "podvojena definicija sporoÄila" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, fuzzy, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: neznano dejanje za kontrolno toÄko" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + #, fuzzy + msgid "error while adding equivalent collating symbol" + msgstr "Napaka pri brisanju %s" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, fuzzy, c-format + msgid "duplicate definition of script `%s'" + msgstr "podvojena definicija sporoÄila" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, fuzzy, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "Neznano ime signala: %s" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, fuzzy, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: neveljavno Å¡tevilo vrstic" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, fuzzy, c-format + msgid "%s: empty category description not allowed" + msgstr "prazen %s ni dovoljen" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, fuzzy, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "Najdeno »~%c« brez ujemajoÄega »~%c«." + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, fuzzy, c-format + msgid "internal error in %s, line %u" + msgstr "interna napaka" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, fuzzy, c-format + msgid " character not in class `%s'" + msgstr "neveljavni razred znakov %s" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, fuzzy, c-format + msgid "character not defined in character map" + msgstr "razmejilni znak je dolg veÄ kot en bajt" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, fuzzy, c-format + msgid "character map `%s' already defined" + msgstr "znakovna enota" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + #, fuzzy + msgid "premature end of `translit_ignore' definition" + msgstr "PredÄasen zakljuÄek regularnega izraza" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "napaka v skladnji" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, fuzzy, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "podvojena definicija sporoÄila" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, fuzzy, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "podvojena definicija sporoÄila" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, fuzzy, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: Zapisanih samo %lu od skupno %lu bajtov" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "" +@@ -3805,17 +3813,22 @@ msgstr "" + msgid " (first)" + msgstr "" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 + #, fuzzy, c-format +-msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "ni mogoÄe ugotoviti statistike %s: %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "" +@@ -3905,156 +3918,218 @@ msgstr "ni mogoÄe nastaviti Äasa za » + msgid "cannot enable socket to accept connections: %s" + msgstr "" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Ni mogoÄe odpreti imenika %s" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "" ++ ++#: nscd/connections.c:1032 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, fuzzy, c-format + msgid "cannot write result: %s" + msgstr "Pisanje na %s ni možno" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, fuzzy, c-format + msgid "error getting caller's id: %s" + msgstr "napaka pri Äakanju na %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, fuzzy, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "imenik %s ni dosegljiv" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, fuzzy, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "korenskega imenika ni mogoÄe prestaviti na %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, fuzzy, c-format + msgid "short read while reading request: %s" + msgstr "napaka pri branju \"%s\"" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was written to" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "nalaganje deljenega predmeta »%s« ni uspelo" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, fuzzy, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "nastavitev novega uporabnika %s ni uspela" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + #, fuzzy + msgid "initial getgrouplist failed" + msgstr "neveljaven seznam skupin %s" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + #, fuzzy + msgid "getgrouplist failed" + msgstr "pisanje ni uspelo" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + #, fuzzy + msgid "setgroups failed" + msgstr "odpiranje ni uspelo" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, fuzzy, c-format + msgid "short write in %s: %s" + msgstr "napaka v %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "" +@@ -4142,7 +4217,7 @@ msgstr "" + msgid "Name Service Cache Daemon." + msgstr "" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "napaÄno Å¡tevilo argumentov" +@@ -4177,7 +4252,7 @@ msgstr "trenutnega imenika ni mogoÄe po + msgid "Could not create log file" + msgstr "%s: Ni mogoÄe ustvariti datoteke" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, fuzzy, c-format + msgid "write incomplete" + msgstr "POZOR: Arhiv nepopoln" +@@ -4192,7 +4267,7 @@ msgstr "ure s stvarnim Äasom ni moÄ pr + msgid "invalidation failed" + msgstr "pretvorba niza ni uspela" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "" +@@ -4276,35 +4351,35 @@ msgstr "trenutnega imenika ni mogoÄe po + msgid "maximum file size for %s database too small" + msgstr "" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, fuzzy, c-format + msgid "cannot write statistics: %s" + msgstr "Pisanje na %s ni možno" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, fuzzy, c-format + msgid "cannot read statistics data" + msgstr "ure s stvarnim Äasom ni moÄ prebrati" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4312,27 +4387,27 @@ msgid "" + "%15d server debug level\n" + msgstr "" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr "" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4343,7 +4418,7 @@ msgid "" + "%15u reload count\n" + msgstr "" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4386,94 +4461,94 @@ msgstr "" + msgid "Invalid numeric uid \"%s\"!" + msgstr "neveljavno Å¡tevilo %s" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + #, fuzzy + msgid "Failed to set keep-capabilities" + msgstr "nastavitev spremenljivke okolja %s ni uspela" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + #, fuzzy + msgid "Failed to initialize drop of capabilities" + msgstr "Inicializacija porazdeljene zgoÅ¡Äevalne tabele ni uspela" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + #, fuzzy + msgid "cap_init failed" + msgstr "poizvedba po statusu ni uspela" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + #, fuzzy + msgid "Failed to drop capabilities" + msgstr "Celotna ovržba privilegijev ni uspela" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + #, fuzzy + msgid "cap_set_proc failed" + msgstr "zapiranje ni uspelo" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + #, fuzzy + msgid "Failed to unset keep-capabilities" + msgstr "ni mogoÄe odnastaviti spremenljivke %s" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + #, fuzzy + msgid "Failed to start AVC thread" + msgstr "branje statistike %s ni uspelo" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + #, fuzzy + msgid "Failed to create AVC lock" + msgstr "ni mogoÄe ustvariti trde povezave %s" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + #, fuzzy + msgid "Failed to start AVC" + msgstr "branje statistike %s ni uspelo" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4524,16 +4599,16 @@ msgstr "" + msgid "Enumeration not supported on %s\n" + msgstr "Operacija ni podprta" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, fuzzy, c-format + msgid "Unknown database name" + msgstr "Neznana format datuma" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, fuzzy, c-format + msgid "Unknown database: %s\n" + msgstr "Neznano ime signala: %s" +@@ -4808,7 +4883,7 @@ msgstr "Zaklepaj ) ali \\) brez para" + msgid "No previous regular expression" + msgstr "ManjkajoÄ prejÅ¡nji regularni izraz" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "" + +@@ -7294,6 +7369,15 @@ msgstr "" + msgid "%s: Can't create directory %s: %s\n" + msgstr "imenika %s ni mogoÄe ustvariti" + ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "nobenega predmeta s statiÄnim TLS ni veÄ mogoÄe naložiti" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: v predmetu %s ni najti PLTREL\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "internih deskriptorjev ni mogoÄe ustvariti" ++ + #, fuzzy + #~ msgid "time before zero" + #~ msgstr "pred -le" +Index: glibc-2.23/po/sv.po +=================================================================== +--- glibc-2.23.orig/po/sv.po ++++ glibc-2.23/po/sv.po +@@ -5,7 +5,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.21-pre1\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2015-01-24 10:35+0100\n" + "Last-Translator: Jan Djärv \n" + "Language-Team: Swedish \n" +@@ -143,10 +143,10 @@ msgstr "" + "[UTFIL [INFIL]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -159,7 +159,7 @@ msgstr "" + "Rapportera fel eller synpunkter pÃ¥ översättningen till .\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -177,7 +177,7 @@ msgstr "" + "ÄNDAMÃ…L.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -433,11 +433,11 @@ msgstr "Misslyckades med att byta Ã¥tkom + msgid "Renaming of %s to %s failed" + msgstr "Namnbyte pÃ¥ %s till %s misslyckades" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "kan inte skapa omfÃ¥ngslista" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "delat objekt är inte öppnat" + +@@ -512,127 +512,127 @@ msgstr "kan inte skapa sökvägslista" + msgid "cannot stat shared object" + msgstr "kan inte ta status pÃ¥ delat objekt" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "kan inte öppna nollfyllnadsenhet" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "kan inte skapa delad objektdeskriptor" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "kan inte läsa fildata" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF-laddkommando är inte pÃ¥ sidgräns" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "Adress/position för ELF-laddkommando är inte pÃ¥ rätt bytegräns" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "kan inte skapa TLS-datastrukturer för första trÃ¥den" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "kan inte hantera TLS-data" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "objektfilen har inga laddbara segment" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "kan inte ladda exekverbar fil dynamiskt" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "objektfilen har ingen dynamisk sektion" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "delat objekt kan inte göras dlopen() pÃ¥" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "kan inte allokera minne för programhuvud" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "ogiltig anropare" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "kan inte ändra minnesskydd" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "kan inte skapa exekverbar stack som delat objekt kräver" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "kan inte stänga filidentifierare" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "fil för kort" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "ogiltigt ELF-huvud" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "Kodning för ELF-fildata är inte rak byteordning" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "Kodning för ELF-fildata är inte omvänd byteordning" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF-filens versionsidentitet stämmer inte med nuvarande" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF-fil har felaktig version pÃ¥ OS-ABI" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF-fil har felaktig version pÃ¥ ABI" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "utfyllnad med annat än nolltecken i e_ident" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "internt fel" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF-filens version stämmer inte med nuvarande" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "bara ET_DYN och ET_EXEC kan laddas" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "ELF-filens värde pÃ¥ \"phentsize\" är inte den förväntade" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "fel ELF-klass: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "fel ELF-klass: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "kan inte öppna delad objektfil" + +@@ -644,11 +644,11 @@ msgstr "misslyckades att mappa segment f + msgid "cannot map zero-fill pages" + msgstr "kan inte mappa nollfyllda sidor" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "fel vid relokering" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "fel vid symboluppslagning" + +@@ -656,49 +656,40 @@ msgstr "fel vid symboluppslagning" + msgid "cannot extend global scope" + msgstr "kan inte utöka globalt omrÃ¥de" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "Generationsräknare för TLS slog runt! Var snäll och rapportera detta." + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "kan inte ladda fler objekt med statiskt TLS" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "ogiltiga flaggor för dlopen()" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "inga fler namnrymder tillgängliga för dlmopen()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "ogiltig mÃ¥lnamnrymd för dlmopen()" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "kan inte allokera minne i statiskt TLS-block" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "kan inte göra segment skrivbart för relokering" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: hittade inga PLTREL i objekt %s\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: slut pÃ¥ minne för att lagra relokeringsresultat för %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "kan inte Ã¥terställa segmenträttigheter efter relokering" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "kan inte applicera extra minnesskydd efter relokering" + +@@ -706,7 +697,7 @@ msgstr "kan inte applicera extra minness + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT används i kod som inte är dynamiskt laddad" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "kan inte skapa datastrukturer för TLS" + +@@ -850,7 +841,7 @@ msgstr "Ingen länk skapad eftersom \"so + msgid "Can't open directory %s" + msgstr "Kan inte öppna katalog %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Hittar inte infil %s.\n" +@@ -981,7 +972,7 @@ msgstr "filargument saknas" + msgid "No such file or directory" + msgstr "Filen eller katalogen finns inte" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "inte en normal fil" + +@@ -1026,65 +1017,71 @@ msgstr "kan inte läsa r_debug" + msgid "cannot read program interpreter" + msgstr "kan inte läsa programtolk" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "kan inte läsa länkmappning" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "kan inte läsa objektnamn" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "kan inte allokera minne för programhuvud" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "Visa dynamiska bibliotek som laddats i processen." + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "PID" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "Exakt en parameter med process-ID krävs.\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "ogiltig process-ID \"%s\"" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "kan inte öppna %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "kan inte öppna %s/task" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "kan inte förbereda läsning av %s/task" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "ogiltig trÃ¥d-ID \"%s\"" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "kan inte binda till process %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "kan inte hämta information om process %lu" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "process %lu är inte ett ELF-program" +@@ -1119,27 +1116,27 @@ msgstr "%s är inte en delad objektfil ( + msgid "more than one dynamic segment\n" + msgstr "fler än ett dynamiskt segment\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "Kan inte ta status (fstat) pÃ¥ fil %s.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "Fil %s är tom, inte kontrollerad." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "Fil %s är för liten, inte kontrollerad." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "Kan inte minnesmappa (mmap) fil %s.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s är inte en ELF-fil, den har inte rätt magiskt tal i början.\n" +@@ -1274,10 +1271,10 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "misslyckades med att ladda delat objekt \"%s\"" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "kan inte skapa interna deskriptorer" ++msgid "cannot create internal descriptor" ++msgstr "kan inte skapa intern deskriptor" + + #: elf/sprof.c:554 + #, c-format +@@ -1344,11 +1341,6 @@ msgstr "misslyckades att mappa (mmap) pr + msgid "error while closing the profiling data file" + msgstr "fel vid stängning av profildatafilen" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "kan inte skapa intern deskriptor" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1596,27 +1588,27 @@ msgstr "uttag (socket): protokollfel i f + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: läsning gav för lite data" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "misslyckades ta status (lstat)" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "kan inte öppna" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "misslyckades ta status (fstat)" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "felaktig ägare" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "skrivbar för andra än ägaren" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "hÃ¥rdlänkad nÃ¥gonstans" + +@@ -1736,8 +1728,8 @@ msgid "no symbolic name given for end of + msgstr "inget symboliskt namn givet för slutet av intervallet" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1763,8 +1755,8 @@ msgid "%s: error in state machine" + msgstr "%s: fel i tillstÃ¥ndsmaskin" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1787,7 +1779,7 @@ msgstr "" + "antal byte för bytesekvens angivet i början respektive slutet av intervallet\n" + "skiljer sig: %d respektive %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "ogiltiga namn för teckenintervall" +@@ -1809,8 +1801,8 @@ msgstr "övre gräns i intervall är min + msgid "resulting bytes for range not representable." + msgstr "resulterande byte för intervall är inte representerbara." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1874,7 +1866,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: numerisk landkod \"%d\" är inte giltig" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1896,8 +1888,8 @@ msgstr "%s: fält \"%s\" är deklarerad + msgid "%s: unknown character in field `%s'" + msgstr "%s: okänt tecken i fält \"%s\"" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1906,12 +1898,12 @@ msgstr "%s: okänt tecken i fält \"%s\" + msgid "%s: incomplete `END' line" + msgstr "%s: ofullständig \"END\"-rad" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1921,476 +1913,476 @@ msgstr "%s: ofullständig \"END\"-rad" + msgid "%s: syntax error" + msgstr "%s: syntaxfel" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "\"%.*s\" redan definierad i teckenuppsättning" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "\"%.*s\" redan definierad i repertoar" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "\"%.*s\" redan definierad som ett kollationssymbol" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "\"%.*s\" redan definierad som ett kollationselement" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: sorteringsordning \"forward\" och \"backward\" är ömsesidigt uteslutande" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: \"%s\" är nämnd fler än en gÃ¥ng i definitionen av vikt %d" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: för mÃ¥nga regler, första delen hade bara %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: inte tillräckligt med sorteringsregler" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: tomt viktnamn är inte tillÃ¥tet" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: vikter mÃ¥ste använda samma intervallsymbol som namn" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: för mÃ¥nga värden" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "ordningsföljd för \"%.*s\" redan definierad vid %s:%Zu" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: start- och slut-symbol i ett intervall mÃ¥ste representera tecken" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: bytesekvens för första och sista tecknet mÃ¥ste ha samma längd" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: bytesekvens för första tecknet i intervallet är inte mindre än den för sista tecknet" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: symboliskt intervall fÃ¥r inte vara omedelbart efter \"order_start\"" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: symboliskt intervall fÃ¥r inte omedelbart följas av \"order_end\"" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "\"%s\" och \"%.*s\" är otillÃ¥tna namn för symboliskt intervall" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: ordningsföljd för \"%.*s\" redan definierad i %s:%Zu" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: \"%s\" mÃ¥ste vara ett enskilt tecken" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: \"position\" mÃ¥ste användas för en given nivÃ¥ i alla sektioner eller inte alls" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "symbol \"%s\" inte definierad" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "symbol \"%s\" har samma värde som" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "symbol \"%s\"" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "ingen definition av \"UNDEFINED\"" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "för mÃ¥nga fel, ger upp" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: nästlade villkor stöds inte" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, c-format + msgid "%s: more than one 'else'" + msgstr "%s: mer än en \"else\"" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: dubbla definitioner av \"%s\"" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: dubbla deklarationer för sektion \"%s\"" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: okänt tecken i namn för kollationssymbol" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: okänt tecken i namnet i ekvivalensdefinitionen" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: okänt tecken i värdet i ekvivalensdefinitionen" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: okänd symbol \"%s\" i ekvivalensdefinition" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "fel när ekvivalent kollationssymbol lades till" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "dubblerad definition för skript \"%s\"" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: okänt sektionsnamn \"%.*s\"" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: dubbla definitioner av ordningsföljd i sektion \"%s\"" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: ogiltigt antal sorteringsregler" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: flera definitioner av ordningsföljd i namnlös sektion" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: nyckelord \"order_end\" saknas" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: ordningsföljd för kollationssymbol %.*s är inte definierad ännu" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: ordningsföljd för kollationselement %.*s är inte definierad ännu" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: kan inte byta ordning efter %.*s: okänd symbol" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: nyckelord \"reorder-end\" saknas" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: sektion \"%.*s\" okänd" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: ogiltig symbol: <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: kan inte ha \"%s\" som ändpunkt pÃ¥ ellips" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: tom kategoribeskrivning är inte tillÃ¥tet" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: nyckelord \"reorder-sections-end\" saknas" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: \"%s\" utan matchande \"ifdef\" eller \"ifndef\"" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: \"endif\" utan matchande \"ifdef\" eller \"ifndef\"" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Inget namn definierat i teckenuppsättning" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "tecken L\"\\u%0*x\" i klass \"%s\" mÃ¥ste vara i klass \"%s\"" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "tecken L\"\\u%0*x\" i klass \"%s\" fÃ¥r inte vara i klass \"%s\"" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "internt fel i %s, rad %u" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "tecken \"%s\" i klass \"%s\" mÃ¥ste vara i klass \"%s\"" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "tecken \"%s\" i klass \"%s\" fÃ¥r inte vara i klass \"%s\"" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "-tecknet är inte i klass \"%s\"" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "-tecknet fÃ¥r inte vara i klass \"%s\"" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "tecken inte definierat i teckenuppsättning" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "\"digit\"-kategori har inte poster i grupper av tio" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "inga siffror för indata definierade och inga standardnamn finns i teckenuppsättningen" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "alla tecken i \"outdigit\" är inte tillgängliga i teckenuppsättningen" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "alla tecken i \"outdigit\" är inte tillgängliga i repertoaren" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "teckenklass \"%s\" redan definierad" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "implementationsbegränsning: inte fler än %Zd teckenklasser tillÃ¥tna" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "teckenuppsättning \"%s\" redan definierad" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "implementationsbegränsning: inte fler än %d teckenuppsättningar tillÃ¥tet" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: fält \"%s\" innehÃ¥ller inte exakt tio poster" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "tillvärdet i intervallet är mindre än frÃ¥nvärdet " + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "start- och slutteckensekvens för intervall mÃ¥ste ha samma längd" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "tillvärdets teckensekvens är mindre än frÃ¥nvärdets sekvens" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "för tidigt slut pÃ¥ definition för \"translit_ignore\"" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "syntaxfel" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: syntaxfel i definition av ny teckenklass" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: syntaxfel i definition av ny teckenuppsättning" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "intervall mÃ¥ste markeras med tvÃ¥ operander av samma typ" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "med symboliska namn som intervallvärden kan inte absoluta intervallet \"...\" användas" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "med UCS som intervallvärden mÃ¥ste man använda symboliska hexadecimala intervallet \"..\"" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "med teckenkoder som intervallvärden mÃ¥ste man använda absoluta intervallet \"...\"" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "dubblerad definition för mappning \"%s\"" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: sektion \"translit_start\" avslutas inte med \"translit_end\"" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: dubbla definitioner av \"default_missing\"" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "här var föregÃ¥ende definition" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: ingen representerbar definition av \"default_missing\" hittades" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: tecken \"%s\" inte definierat men behövs som standardvärde" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: tecken \"%s\" i teckenuppsättning kan inte representeras med en byte" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: tecken \"%s\" som behövs som standardvärde kan inte representeras med en byte" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "inga siffror för utdata definierade och inga standardnamn finns i teckenuppsättningen" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: transkriberingsdata för lokal \"%s\" är inte tillgänglig" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: tabell för klass \"%s\": %lu byte\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: tabell för \"%s\": %lu byte\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: tabell för teckenstorlek: %lu byte\n" +@@ -3809,17 +3801,23 @@ msgstr "lägg till ny post \"%s\" av typ + msgid " (first)" + msgstr " (första)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 +-#, c-format +-msgid "cannot stat() file `%s': %s" ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "kan inte ta status pÃ¥ fil \"%s\": %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "beskär %s cache; tid %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "överväger %s-post \"%s\", tidsgräns %" +@@ -3905,153 +3903,217 @@ msgstr "kan inte sätta uttag (socket) a + msgid "cannot enable socket to accept connections: %s" + msgstr "kan inte fÃ¥ uttag (socket) att acceptera förbindelser: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "Kan inte öppna katalog %s" ++ ++#: nscd/connections.c:1022 ++#, fuzzy, c-format ++#| msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "registrera spÃ¥rningsfil %s för databas %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "ge Ã¥tkomst till FD %d, för %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "kan inte hantera äldre förfrÃ¥gansversion %d, nuvarande version är %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "begäran frÃ¥n %ld inte hanterad för att rättigheter saknas" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "begäran frÃ¥n \"%s\" [%ld] inte hanterad för att rättigheter saknas" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "begäran inte hanterad för att rättigheter saknas" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "kan inte skriva resultat: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "kunde inte hämta anropandes identitet: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "kan inte öppna /proc/slef/cmdline: %s, kopplar ur paranoialäge" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "kan inte läsa /proc/self/cmdline: %s, kopplar ur paranoialäge" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "kan inte byta till föregÃ¥ende UID: %s; kopplar ur paranoialäge" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "kan inte byta till föregÃ¥ende GID: %s; kopplar ur paranoialäge" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "kan inte byta till föregÃ¥ende arbetskatalog: %s; kopplar ur paranoialäge" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "Ã¥terstart misslyckades: %s; kopplar ur paranoialäge" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "kan inte byta aktuell katalog till \"/\": %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "fattas data vid läsning av begäran: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "nyckellängd i begäran för lÃ¥ng: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "fattas data vid läsning av begäransnyckel: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: begäran mottagen (Version = %d) frÃ¥n PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: begäran mottagen (Version = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "misslyckades med att ladda delat objekt \"%s\"" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "inaktiverade inotify efter läsfel %d" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "kan inte initiera villkorsvariabel" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "kunde inte starta städtrÃ¥d; avslutar" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "kunde inte starta nÃ¥gon arbetstrÃ¥d; avslutar" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "Misslyckades att köra nscd som användare \"%s\"" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "första getgrouplist misslyckades" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist misslyckades" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups misslyckades" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "ofullständig skrivning i %s: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "Hittar inte \"%s\" i gruppcache!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "Omladdar \"%s\" i gruppcache!" +@@ -4139,7 +4201,7 @@ msgstr "Använd separat cache för varje + msgid "Name Service Cache Daemon." + msgstr "Namntjänst cache-demon" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "fel antal argument" +@@ -4172,7 +4234,7 @@ msgstr "kan inte byta aktuell katalog ti + msgid "Could not create log file" + msgstr "Kunde inte skapa loggfil" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "ofullständig skrivning" +@@ -4187,7 +4249,7 @@ msgstr "kan inte läsa ogiltigförklarin + msgid "invalidation failed" + msgstr "ogiltigförklaring misslyckades" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Bara root har tillÃ¥telse att använda denna operation!" +@@ -4272,35 +4334,35 @@ msgstr "kan inte hämta aktuell katalog: + msgid "maximum file size for %s database too small" + msgstr "maximal filstorlek för \"%s\"-databasen är för liten" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "kan inte skriva statistik: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "ja" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "nej" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Bara root eller %s har tillÃ¥telse att använda denna operation!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd kör inte!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "kan inte läsa statistikdata" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4311,27 +4373,27 @@ msgstr "" + "\n" + "%15d servers felsökningsläge\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus servers körtid\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus servers körtid\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus servers körtid\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus servers körtid\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4348,7 +4410,7 @@ msgstr "" + "%15lu omstart internt\n" + "%15u antal omläsningar\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4414,85 +4476,85 @@ msgstr "Omladdar \"%s\" i lösenordscach + msgid "Invalid numeric uid \"%s\"!" + msgstr "Ogiltigt numeriskt användarid (uid) \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "Misslyckades med att öppna en förbindelse till undersystemet för granskning (audit): %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Misslyckades med att sätta \"keep\"-kapabiliteter" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) misslyckades" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "Misslyckades med att initiera borttagning av kapabiliteter" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init misslyckades" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Misslyckades med att ta bort kapabiliteter" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc misslyckades" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Misslyckades med att ta bort \"keep\"-kapabiliteter" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Misslyckades med att ta reda pÃ¥ om kärnan stödjer SELinux" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "Misslyckades med att starta AVC-trÃ¥d" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "Misslyckade med att skapa AVC-lÃ¥s" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "Misslyckades med att starta AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "Access Vector Cache (AVC) startad" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "Fel när policy för odefinierade objektklasser eller rättigheter hämtades" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." + msgstr "Fel när säkerhetsklass för nscd hämtades" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "Fel vid översättning av rättighetsnamn \"%s\" till en accessvektorbit." + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "Kunde inte hämta kontext för uttagsparter (socket peer)" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "Kunde inte hämta kontext för nscd" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "Kunde inte hämta \"sid\" frÃ¥n kontext" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4554,16 +4616,16 @@ msgstr "Hämta poster frÃ¥n den administ + msgid "Enumeration not supported on %s\n" + msgstr "Uppräkning stöds inte pÃ¥ %s\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Okänt databasnamn" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Databaser som stöds:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Okänd databas: %s\n" +@@ -4843,7 +4905,7 @@ msgstr "Obalanserade ) eller \\)" + msgid "No previous regular expression" + msgstr "Inget föregÃ¥ende reguljärt uttryck" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parameter är tom eller inte satt" + +@@ -7214,3 +7276,12 @@ msgstr "för mÃ¥nga eller för lÃ¥nga ti + #, c-format + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: Kan inte skapa katalog %s: %s\n" ++ ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "kan inte ladda fler objekt med statiskt TLS" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: hittade inga PLTREL i objekt %s\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "kan inte skapa interna deskriptorer" +Index: glibc-2.23/po/tr.po +=================================================================== +--- glibc-2.23.orig/po/tr.po ++++ glibc-2.23/po/tr.po +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.7\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2007-11-19 11:17+0200\n" + "Last-Translator: Nilgün Belma Bugüner \n" + "Language-Team: Turkish \n" +@@ -145,10 +145,10 @@ msgstr "" + "[ÇIKTI-DOSYASI [GÄ°RDÄ°-DOSYASI]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, fuzzy, c-format +@@ -164,7 +164,7 @@ msgstr "" + "Çeviri hatalarını adresine bildiriniz.\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -182,7 +182,7 @@ msgstr "" + "UYGUNLUÄžU için bile garanti verilmez.\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -465,11 +465,11 @@ msgstr "%s eriÅŸim hakları %#o olarak d + msgid "Renaming of %s to %s failed" + msgstr "%s'in ismi %s olarak deÄŸiÅŸtirilemedi" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "etki alanı listesi oluÅŸturulamıyor" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "paylaşımlı nesne açık deÄŸil" + +@@ -542,127 +542,127 @@ msgstr "dosya arama yolu dizisi oluÅŸtur + msgid "cannot stat shared object" + msgstr "paylaşımlı nesne durumlanamıyor" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "sıfırlar içeren aygıt açılamaz" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "paylaşımlı nesne tanımlayıcı oluÅŸturulamıyor" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "dosya verisi okunamıyor" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF yükleme komutu hizalaması sayfa-hizalamalı deÄŸil" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF yükleme komutu adresi/baÅŸvurusu gereÄŸi gibi hizalanamıyor" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "ilk kanak için TLS veri yapıları oluÅŸturulamıyor" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "TLS verisi alınamıyor" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "nesne dosyasının yüklenebilir segmanı yok" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "çalıştırılabilir dosya dinamik olarak yüklenemiyor" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "nesne dosyasının dinamik bölümü yok" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "paylaşımlı nesne dlopen()'lanamıyor" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "uygulama baÅŸlığı için bellek ayrılamadı" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "çaÄŸrıcı geçersiz" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "bellek korumaları deÄŸiÅŸtirilemiyor" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "paylaşımlı nesnenin gerektirdiÄŸi çalıştırılabilir yığıt etkinleÅŸtirilemiyor" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "dosya tanıtıcı kapatılamıyor" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "dosya çok küçük" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "ELF baÅŸlığı geçersiz" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "ELF dosyası verisinin kodlaması en-kıymetli-bayt-ilk (big-endian) deÄŸil" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "ELF dosyası verisinin kodlaması en-kıymetli-bayt-son (little-endian) deÄŸil" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF dosyası sürüm kimliÄŸi mevcut biriyle eÅŸleÅŸmiyor" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF dosyası OS ABI geçersiz" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF dosyası ABI sürümü geçersiz" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "iç hata" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF dosyası sürümü mevcut biriyle eÅŸleÅŸmiyor" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "sadece ET_DYN ve ET_EXEC yüklü olabilir" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "ELF dosyasının phent uzunluÄŸu beklenen uzunlukta deÄŸil" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "yanlış ELF sınıfı: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "yanlış ELF sınıfı: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "paylaşımlı nesne dosyası açılamıyor" + +@@ -674,11 +674,11 @@ msgstr "parça paylaşımlı nesneden eÅ + msgid "cannot map zero-fill pages" + msgstr "sıfırlar içeren sayfalar eÅŸleÅŸtirilemez" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "yeniden konumlama hatası" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "simge arama hatası" + +@@ -686,51 +686,40 @@ msgstr "simge arama hatası" + msgid "cannot extend global scope" + msgstr "genel kapsam geniÅŸletilemiyor" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "TLS üretecinin sayacı baÅŸa döndü! Bunu lütfen bildirin." + +-#: elf/dl-open.c:542 +-#, fuzzy +-#| msgid "cannot allocate memory in static TLS block" +-msgid "cannot load any more object with static TLS" +-msgstr "duraÄŸan TLS bloÄŸunda bellek ayrılamıyor" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "dlopen() için kip geçersiz" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "dlmopen() için artık isim alanı kalmadı" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "dlmopen() için hedef isim alanı geçersiz" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "duraÄŸan TLS bloÄŸunda bellek ayrılamıyor" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "yeniden konumlama için parça yazılabilir yapılamıyor" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: %s nesnesinde PLTREL yok\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: %s için yeniden ayırma iÅŸleminin sonuçlarını saklamak için bellek yetersiz\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "reloc iÅŸleminden sonra prot segmanı eski haline getirilemedi" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "yeniden ayırma iÅŸleminden sonra ek bellek koruması uygulanamaz" + +@@ -738,7 +727,7 @@ msgstr "yeniden ayırma iÅŸleminden sonr + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "RTLD_NEXT kullanılan kod dinamik olarak yüklenmedi" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "TLS veri yapıları oluÅŸturulamıyor" + +@@ -884,7 +873,7 @@ msgstr "%s için kitaplık ismi bulunama + msgid "Can't open directory %s" + msgstr "%s dizini açılamıyor" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "Girdi dosyası %s bulunamadı.\n" +@@ -1029,7 +1018,7 @@ msgstr "dosya nitelikleri eksik" + msgid "No such file or directory" + msgstr "Böyle bir dosya ya da dizin yok" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "düzenli dosya deÄŸil" + +@@ -1079,73 +1068,79 @@ msgstr "baÅŸlık okunamıyor" + msgid "cannot read program interpreter" + msgstr "arÅŸiv baÅŸlığı okunamıyor" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, fuzzy, c-format + #| msgid "cannot read file data" + msgid "cannot read link map" + msgstr "dosya verisi okunamıyor" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, fuzzy, c-format + #| msgid "cannot read header" + msgid "cannot read object name" + msgstr "baÅŸlık okunamıyor" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "uygulama baÅŸlığı için bellek ayrılamadı" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, fuzzy, c-format + #| msgid "invalid pointer size" + msgid "invalid process ID '%s'" + msgstr "imleyici uzunluÄŸu geçersiz" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s" + msgstr "`%s' açılamıyor" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, fuzzy, c-format + #| msgid "cannot open `%s'" + msgid "cannot open %s/task" + msgstr "`%s' açılamıyor" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, fuzzy, c-format + #| msgid "cannot create searchlist" + msgid "cannot prepare reading %s/task" + msgstr "arama listesi oluÅŸturulamıyor" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, fuzzy, c-format + #| msgid "invalid ELF header" + msgid "invalid thread ID '%s'" + msgstr "ELF baÅŸlığı geçersiz" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, fuzzy, c-format + #| msgid "cannot find C preprocessor: %s \n" + msgid "cannot attach to process %lu" + msgstr "C ön iÅŸlemci bulunamıyor: %s \n" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "" +@@ -1180,27 +1175,27 @@ msgstr "%s paylaşımlı nesne dosyası + msgid "more than one dynamic segment\n" + msgstr "bir dinamik parçadan fazla\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "%s dosyası fstat yapılamıyor.\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "%s dosyası boÅŸ olduÄŸundan denetlenemiyor." + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "%s dosyası çok küçük, kontrol edilemedi." + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "%s dosyası mmap yapılamıyor.\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s bir ELF dosyası deÄŸil - BaÅŸlangıcındaki dosya tanımı hatalı.\n" +@@ -1331,10 +1326,10 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "paylaşımlı nesne `%s' yüklenemedi" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" +-msgstr "iç tanıtıcılar oluÅŸturulamıyor" ++msgid "cannot create internal descriptor" ++msgstr "iç tanıtıcı oluÅŸturulamıyor" + + #: elf/sprof.c:554 + #, c-format +@@ -1401,11 +1396,6 @@ msgstr "ÅŸekillendirme verisi dosyası m + msgid "error while closing the profiling data file" + msgstr "ÅŸekillendirici verisi dosyası kapatılırken hata" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "iç tanıtıcı oluÅŸturulamıyor" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1663,27 +1653,27 @@ msgstr "soket: devre ayarında protokol + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: kısa okuma" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat baÅŸarısız" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "açılamıyor" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat baÅŸarısız" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "Sahip hatalı" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "sahibinden baÅŸkası yazabilir" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "bir yere sabit baÄŸlı" + +@@ -1803,8 +1793,8 @@ msgid "no symbolic name given for end of + msgstr "kapsam sonu için sembolik isim verilmemiÅŸ" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1830,8 +1820,8 @@ msgid "%s: error in state machine" + msgstr "%s: durum motorunda hata" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1852,7 +1842,7 @@ msgstr "`%s' karakteri bilinmiyor" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "aralığın başındaki ve sonundaki bayt dizilerideki baytların sayısı aynı deÄŸil: %d ve %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "karakter kapsamı için geçersiz isimler" +@@ -1874,8 +1864,8 @@ msgstr "aralığın üst sınırı alt s + msgid "resulting bytes for range not representable." + msgstr "sonuçlanan baytlar kapsam için gösterilebilir deÄŸil." + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1939,7 +1929,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: sayısal ülke kodu `%d' geçersiz" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1961,8 +1951,8 @@ msgstr "%s: `%s' alanı bir kereden fazl + msgid "%s: unknown character in field `%s'" + msgstr "%s: `%s' alanında bilinmeyen karakter" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1971,12 +1961,12 @@ msgstr "%s: `%s' alanında bilinmeyen ka + msgid "%s: incomplete `END' line" + msgstr "%s: tamamlanmamış `END' satırı" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1986,477 +1976,477 @@ msgstr "%s: tamamlanmamış `END' satır + msgid "%s: syntax error" + msgstr "%s: sözdizimi hatası" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' karakter eÅŸlem olarak zaten atanmış" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' repertuvar olarak zaten atanmış" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' karşılaÅŸtırma sembolü olarak zaten atanmış" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' karşılaÅŸtırma elemanı olarak zaten atanmış" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: `forward' ve `backward' karşılıklı olarak bir diÄŸerini dışlar" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s:`%s' %d ağırlıklı tanımda bir kereden fazla anıldı" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: çok fazla kural var; sadece ilk girdide kural sayısı %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: sıralama kuralları yetersiz" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: boÅŸ ağırlık dizgesine izin verilmez" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: ağırlıklar isim olarak aynı elips sembolünü kullanmalıdır" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: çok fazla deÄŸer var" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "`%.*s' için sıralama zaten %s:%Zu içinde atanmış" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: bir kapsamın baÅŸlangıç ve bitiÅŸ sembolleri, karakterleri temsil etmelidir" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: ilk ve son karakterin bayt serisi aynı uzunlukta olmalı" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: aralığın ilk karakterinin bayt dizisi son karakterininkinden daha düşük deÄŸil" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: sembolik kapsam elipsleri `order_start' ın hemen ardından gelmemelidir" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: sembolik kapsam elipslerinin hemen ardından `order_end' gelmemelidir" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' ve `%.*s' simgesel aralık için geçerli isimler deÄŸil" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: `%.*s' için abecesel sıra zaten %s:%Zu içinde atanmış" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' bir karakter olmalı" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `position' tüm alt bölümlerde özel bir düzey için kullanılmış olmalı ya da hiç bulunmamalı" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "`%s' sembolü atanmamış" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "`%s' sembolü bununla aynı kodlamaya sahip:" + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "`%s' sembolü" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "`UNDEFINED' tanımı yok" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "çok fazla hata: bırakılıyor" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: iç içe koÅŸullu ifadeler desteklenmiyor" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: birden fazla 'else' belirtilmiÅŸ" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: `%s' tanımı tekrarlanmış" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: `%s' bölüm bildirimi tekrarlanmış" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: karşılaÅŸtırma sembolü isminde bilinmeyen karakter" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: eÅŸdeÄŸer tanımlama isminde bilinmeyen karakter" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: eÅŸdeÄŸer tanımlama deÄŸerinde bilinmeyen karakter" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: eÅŸdeÄŸer tanımlamada bilinmeyen sembol: `%s'" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "eÅŸdeÄŸer karşılaÅŸtırma sembolünü eklerken hata" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "`%s' betiÄŸinin ataması tekrarlanmış" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: bölüm ismi `%.*s' bilinmiyor" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: `%s' alt bölümünde çok sayıda sıralama tanımı" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: sıralama kurallarının sayısı geçersiz" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: isimsiz alt bölümde çok sayıda sıralama tanımı" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: `order_end' anahtar-sözcüğü kayıp" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: karşılaÅŸtırma sembolü %.*s için abecesel sıra henüz atanmamış" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: karşılaÅŸtırma elemanı %.*s için abecesel sıra henüz atanmamış" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: %.*s sembolünden sonra tekrar sıralanamıyor: sembol bilinmiyor" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: `reorder_end' anahtar-sözcüğü kayıp" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: `%.*s' alt bölümü bilinmiyor" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: hatalı sembol <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: `%s' elips kapsamının sonu olamıyor" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: boÅŸ kategori açıklamasına izin verilmez" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: `reorder_section_end' anahtar-sözcüğü kayıp" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'ifdef' veya 'ifndef' ile eÅŸleÅŸmeyen '%s'" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s: 'ifdef' veya 'ifndef' ile eÅŸleÅŸmeyen 'endif'" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "Karakter eÅŸleÅŸme listesinde karakter kümesi ismi belirtilmemiÅŸ" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "L'\\u%0*x' karakteri `%s' sınıfında, `%s' sınıfında olmalı" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "L'\\u%0*x' karakteri `%s' sınıfında, `%s' sınıfında olmamalı" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "%s, %u satırında içsel hata" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "`%s' karakteri `%s' sınıfı yerine `%s' sınıfında olmalı" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "`%s' karakteri `%s' sınıfında ama `%s' sınıfında olmamalı" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr " karakteri `%s' sınıfında deÄŸil" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr " karakteri `%s' sınıfında olmamalı" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr " karakteri karakter eÅŸlemde atanmamış" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "`digit' kategorisi 10 gruptan hiç birinde girdiye sahip deÄŸil" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "karakter eÅŸleÅŸme listesinde standart isimlerin hiç biri ve atanmış girdi rakamları yok" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "`outdigit' içinde kullanılan karakterlerin bir kısmı karakter eÅŸleÅŸme listesinde mevcut" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "`outdigit' içinde kullanılan karakterlerin bir kısmı repertuvarda mevcut" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "`%s' karakter sınıfı zaten atanmış" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "tamamlama sınırı: %Zd karakterden fazla olmayan sınıflara izin verilmedi" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "`%s' karakter eÅŸlem zaten atanmış" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "tamamlama sınırı: %d karakterden fazla olmayan karakter eÅŸleÅŸme listesine izin verilmedi" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: `%s' alanı tamı tamına 10 girdi içeremez" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "kapsamdaki `to' deÄŸeri `from' deÄŸerinden daha küçük" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "kapsamın baÅŸlangıç ve bitiÅŸ karakter zincirleri aynı uzunlukta olmalı" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "karakter dizisindeki `to' deÄŸeri `from' deÄŸerinden daha küçük" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "`translit_ignore' tanımının sonu eksik" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "sözdizimi hatası" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: yeni karakter sınıfının tanımında sözdizimi hatası" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: yeni karakter eÅŸlemleri tanımında sözdizimi hatası" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "elips kapsamı aynı türde iki veri öğesi ile sınırlanmış olmalıdır" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "mutlak elips `...' sembolik isim kapsamındaki deÄŸerlerle kullanılmamalı" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "onaltılık sembolik elips `..' UCS kapsam deÄŸerlerinden biriyle kullanılmalı" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "mutlak elips `...' karakter kod deÄŸerlerinden biriyle kullanılmalı" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "`%s' eÅŸlemi için atama tekrarlanmış" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: `translit_start' bölümü `translit_end' ile bitmiyor" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: `default_missing' tanımı tekrarlanmış" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "önceki tanım burasıydı" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: temsil edilebilir `default_missing' ataması bulunamadı" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: öntanımlı deÄŸer olarak gerekli olmasına raÄŸmen `%s' karakteri atanmamış" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: karakter eÅŸlem listesinde `%s' karakteri bir bayt ile temsil edilemez" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: öntanımlı deÄŸer olarak gerekli olan `%s' karakteri tek bayt ile temsil edilemez" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "karakter eÅŸleÅŸme listesinde standart isimlerin hiç biri ve atanmış çıktı rakamları yok" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: `%s' yerelinden baÅŸka bir dilin alfabesinde yazma verisi yok" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: \"%s\" sınıfının tablosu: %lu bayt\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: \"%s\" eÅŸlemlerinin tablosu: %lu bayt\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: geniÅŸlik için tablo: %lu bayt\n" +@@ -3932,17 +3922,23 @@ msgstr "%3$s için %2$s türündeki yeni + msgid " (first)" + msgstr " (ilk)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot open database file `%s': %s" ++msgid "checking for monitored file `%s': %s" ++msgstr "`%s' veritabanı dosyası açılamıyor: %s" ++ ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "`%s' dosyası stat() olamıyor: %s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "%s arabelleÄŸi budanıyor; süre %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "girdi \"%2$s\" %1$s olarak ele elınıyor, zamanaşımı %3$" +@@ -4031,160 +4027,222 @@ msgstr "exec üzerinde kapatılacak soke + msgid "cannot enable socket to accept connections: %s" + msgstr "baÄŸlantıları kabul etmek üzere soket etkinleÅŸtirilemiyor: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "%s dizini açılamıyor" ++ ++#: nscd/connections.c:1022 + #, fuzzy, c-format + #| msgid "no more memory for database '%s'" +-msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "veritabanı '%s' için bellek kalmadı" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "%2$s için dosya tanıtıcı %1$d'ye eriÅŸim saÄŸlar" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "eski istem sürümü %d elde edilemedi; mevcut sürüm %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "sonuç yazılamıyor: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "çaÄŸrıcı kimliÄŸi alınırken hata: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "/proc/self/cmdline açılamadı: %s; paranoya kipi iptal ediliyor" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "/proc/self/cmdline okunamadı: %s; paranoya kipi iptal ediliyor" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "eski UID'e dönülemedi: %s; paranoya kipi iptal ediliyor" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "eski GID'e dönülemedi: %s; paranoya kipi iptal ediliyor" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "eski çalışma dizinine dönülemiyor: %s; paranoya kipi iptal ediliyor" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "re-exec baÅŸarısız: %s; paranoya kipi iptal ediliyor" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "çalışma dizini \"/\" yapılamadı: %s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "istenen okuma kısa: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "istenen anahtar/tuÅŸ uzunluÄŸu fazla: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "istenen anahtar/tuÅŸ okunurken kısa okuma: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: %2$ld numaralı süreçden istek alındı (Sürüm = %1$d)" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: istek alındı (Sürüm = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, adding watch" + msgstr "" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "paylaşımlı nesne `%s' yüklenemedi" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "" ++ ++#: nscd/connections.c:2543 + #, fuzzy + #| msgid "cannot initialize archive file" + msgid "could not initialize conditional variable" + msgstr "arÅŸiv dosyası ilklendirilemiyor" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + #, fuzzy + #| msgid "could only start %d threads; terminating" + msgid "could not start clean-up thread; terminating" + msgstr "sadece %d evre baÅŸlatılabilir; sonlanıyor" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + #, fuzzy + #| msgid "could only start %d threads; terminating" + msgid "could not start any worker thread; terminating" + msgstr "sadece %d evre baÅŸlatılabilir; sonlanıyor" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "nscd '%s' kullanıcısı olarak çalıştırılamadı" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "ilk getgrouplist baÅŸarısız" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist baÅŸarısız" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups baÅŸarısız" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "%s içinde kısa yazma: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "\"%s\" grup arabelleÄŸinde yok!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "\"%s\" grup arabelleÄŸine yeniden yükleniyor!" +@@ -4278,7 +4336,7 @@ msgstr "Her kullanıcı için ayrı arab + msgid "Name Service Cache Daemon." + msgstr "Name Service Cache Daemon." + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "argüman sayısı hatalı" +@@ -4312,7 +4370,7 @@ msgstr "çalışma dizini \"/\" yapılam + msgid "Could not create log file" + msgstr "Günlük dosyası oluÅŸturulamadı" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "yazma tamamlanamıyor" +@@ -4327,7 +4385,7 @@ msgstr "geçersizleÅŸtirme ACK'sı okuna + msgid "invalidation failed" + msgstr "geçersizleÅŸtirme baÅŸarısız" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "Bu seçenek sadece root tarafından kullanılabilir!" +@@ -4410,35 +4468,35 @@ msgstr "çalışılmakta olan dizin alı + msgid "maximum file size for %s database too small" + msgstr "%s veritabanı için azami dosya boyu çok küçük" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "istatistikler yazılamıyor: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "evet" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "hayır" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "Bu seçenek sadece root veya %s tarafından kullanılabilir!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd çalışmıyor!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "istatistik verileri okunamıyor" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4449,27 +4507,27 @@ msgstr "" + "\n" + "%15d sunucu hata ayıklama seviyesi\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus sunucu çalışma zamanı\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus sunucu çalışma zamanı\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus sunucu çalışma zamanı\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus sunucu çalışma zamanı\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, fuzzy, c-format + #| msgid "" + #| "%15d current number of threads\n" +@@ -4491,7 +4549,7 @@ msgstr "" + "%15s paranoya kipi etkin\n" + "%15lu dahili yeniden baÅŸlatma\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4557,87 +4615,87 @@ msgstr "\"%s\" parola arabelleÄŸine yeri + msgid "Invalid numeric uid \"%s\"!" + msgstr "\"%s\" kullanıcı numarası geçersiz!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "denetim altsistemine baÄŸlantı kurulamadı: %m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "Tutma yetenekleri ayarlanamadı" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) baÅŸarısız" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "yeteneklerin kaldırılması baÅŸlatılamadı" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init baÅŸarısız" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "Yetenekler kaldırılamadı" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc baÅŸarısız" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "Tutma yetenekleri kaldırılamadı" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "Çekirdek SELinux'u destekliyor mu, saptanamadı." + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "EVA evresi baÅŸlatılamadı" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "EVA kilidi oluÅŸturulamadı" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "EVA baÅŸlatılamadı" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "EriÅŸim Vektörleri ArabelleÄŸi (EVA) baÅŸlatıldı" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + #| msgid "Error getting context of nscd" + msgid "Error getting security class for nscd." + msgstr "nscd baÄŸlamı alınırken hata" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "soket çifti baÄŸlamı alınırken hata" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "nscd baÄŸlamı alınırken hata" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "BaÄŸlamdan sid alınırken hata" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4701,16 +4759,16 @@ msgstr "" + msgid "Enumeration not supported on %s\n" + msgstr "Numaralama %s ile desteklenmiyor\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "Bilinmeyen veritabanı ismi" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "Desteklenen veritabanları:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "Bilinmeyen veritabanı: %s\n" +@@ -5006,7 +5064,7 @@ msgstr ") ya da \\) eÅŸleÅŸmiyor" + msgid "No previous regular expression" + msgstr "Önceki düzenli ifade yok" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "parametre ya null ya da verilmemiÅŸ" + +@@ -7454,6 +7512,9 @@ msgstr "%s: %s dizini oluÅŸturulamıyor: + #~ msgid "xtrace: option \\`$1' requires an argument.\\n" + #~ msgstr "xtrace: \\`$1' seçeneÄŸi bir argümanla kullanılır\\n" + ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: %s nesnesinde PLTREL yok\n" ++ + #~ msgid "Can't open configuration file %s" + #~ msgstr "Yapılandırma dosyası %s açılamıyor" + +@@ -7466,6 +7527,9 @@ msgstr "%s: %s dizini oluÅŸturulamıyor: + #~ " adresine bakınız.\n" + #~ "Çeviri hatalarını adresine bildiriniz.\n" + ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "iç tanıtıcılar oluÅŸturulamıyor" ++ + #~ msgid "%s: stopping date is invalid in string %Zd in `era' field" + #~ msgstr "%s: `era' alanındaki %Zd dizgesinde bitiÅŸ tarihi geçersiz" + +@@ -7484,6 +7548,9 @@ msgstr "%s: %s dizini oluÅŸturulamıyor: + #~ msgid "memusage: option \\`$1' requires an argument" + #~ msgstr "memusage: \\`$1' seçeneÄŸi bir argümanla kullanılır" + ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "`%s' dosyası stat() olamıyor: %s" ++ + #~ msgid "invalid value for 'reload-count': %u" + #~ msgstr "'reload-count' için deÄŸer geçersiz: %u" + +Index: glibc-2.23/po/zh_CN.po +=================================================================== +--- glibc-2.23.orig/po/zh_CN.po ++++ glibc-2.23/po/zh_CN.po +@@ -1,19 +1,26 @@ +-# SOME DESCRIPTIVE TITLE. +-# Copyright (C) 2002, 2007 Free Software Foundation, Inc. +-# LI Daobing , 2007. ++# zh_CN translation for GNU libc. ++# Copyright (C) 2000, 2002, 2005, 2007-2008, 2011 Free Software Foundation, Inc. ++# This file is distributed under the same license as the glibc package. ++# Tung-Han Hsieh , 2000. ++# Yuan-Chung Cheng , 2000. + # Wang Li , 2002. ++# Wei-Lun Chao , 2005, 2008, 2011. ++# LI Daobing , 2007. ++# Wei-Lun Chao , 2012, 2013. ++# Mingye Wang , 2015. + # + msgid "" + msgstr "" +-"Project-Id-Version: libc 2.7\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" +-"PO-Revision-Date: 2007-11-18 12:34+0800\n" +-"Last-Translator: LI Daobing \n" ++"Project-Id-Version: libc 2.22-pre1\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"PO-Revision-Date: 2015-09-19 19:13-0400\n" ++"Last-Translator: Mingye Wang \n" + "Language-Team: Chinese (simplified) \n" + "Language: zh_CN\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" ++"X-Generator: Poedit 1.8.4\n" + + #: argp/argp-help.c:227 + #, c-format +@@ -58,7 +65,7 @@ msgstr "将错误报告给 %s。\n" + + #: argp/argp-parse.c:101 + msgid "Give this help list" +-msgstr "给出该系统求助列表" ++msgstr "给出此帮助列表" + + #: argp/argp-parse.c:102 + msgid "Give a short usage message" +@@ -76,7 +83,7 @@ msgstr "设定程åºå" + + #: argp/argp-parse.c:105 + msgid "SECS" +-msgstr "" ++msgstr "秒数" + + #: argp/argp-parse.c:106 + msgid "Hang for SECS seconds (default 3600)" +@@ -88,7 +95,7 @@ msgstr "打å°ç¨‹åºç‰ˆæœ¬å·" + + #: argp/argp-parse.c:183 + msgid "(PROGRAM ERROR) No version known!?" +-msgstr "(程åºé”™è¯¯) ä¸çŸ¥é“版本å·ï¼ï¼Ÿ" ++msgstr "(程åºé”™è¯¯) 版本å·æœªçŸ¥ï¼ï¼Ÿ" + + #: argp/argp-parse.c:623 + #, c-format +@@ -105,12 +112,13 @@ msgid "%s%s%s:%u: %s%sUnexpected error: + msgstr "%s%s%s:%u:%s%sæ„外的错误:%s。\n" + + #: assert/assert.c:101 +-#, fuzzy, c-format +-#| msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" ++#, c-format + msgid "" + "%s%s%s:%u: %s%sAssertion `%s' failed.\n" + "%n" +-msgstr "%s%s%s:%u:%s%s断言“%sâ€å¤±è´¥ã€‚\n" ++msgstr "" ++"%s%s%s:%u:%s%så‡è®¾ ‘%s’ 失败。\n" ++"%n" + + #: catgets/gencat.c:110 + msgid "Create C header file NAME containing symbol definitions" +@@ -129,6 +137,8 @@ msgid "" + "Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" + "is -, output is written to standard output.\n" + msgstr "" ++"äº§ç”Ÿæ¶ˆæ¯ catelog。\\v如果输入文件å是 -, 将从标准输入读å–输入。\n" ++"如果输出文件å是 -, 则输出将写到标准输出去。\n" + + #: catgets/gencat.c:123 + msgid "" +@@ -139,10 +149,10 @@ msgstr "" + "[输出文件 [输入文件]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -150,9 +160,11 @@ msgid "" + "For bug reporting instructions, please see:\n" + "%s.\n" + msgstr "" ++"è¦çŸ¥é“错误报告指令,请å‚看:\n" ++"%s。\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -164,9 +176,12 @@ msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" + msgstr "" ++"Copyright (C) %s 自由软件基金会。\n" ++"这是一个自由软件;请è§æºä»£ç çš„授æƒæ¡æ¬¾ã€‚本软件ä¸å«ä»»ä½•æ²¡æœ‰æ‹…ä¿ï¼›ç”šè‡³ä¸ä¿è¯é€‚销性\n" ++"或者适åˆæŸäº›ç‰¹æ®Šç›®çš„。\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -229,7 +244,7 @@ msgstr "无效的行" + + #: catgets/gencat.c:820 + msgid "malformed line ignored" +-msgstr "" ++msgstr "忽略格å¼é”™è¯¯çš„è¡Œ" + + #: catgets/gencat.c:984 catgets/gencat.c:1025 + #, c-format +@@ -265,7 +280,7 @@ msgstr "ä¸è¦å¯¹è¾“出进行缓冲" + + #: debug/pcprofiledump.c:58 + msgid "Dump information generated by PC profiling." +-msgstr "" ++msgstr "将产生于 PC 测速评估的数æ®å€¾å¸å‡ºæ¥" + + #: debug/pcprofiledump.c:61 + msgid "[FILE]" +@@ -288,20 +303,16 @@ msgstr "无效的指针大å°" + + #: debug/xtrace.sh:26 debug/xtrace.sh:44 + msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" +-msgstr "" ++msgstr "用法:xtrace [选项]… ç¨‹åº [PROGRAMOPTION]…\\n" + + #: debug/xtrace.sh:32 elf/sotruss.sh:56 elf/sotruss.sh:67 elf/sotruss.sh:135 + #: malloc/memusage.sh:26 +-#, fuzzy +-#| msgid "Try `%s --help' or `%s --usage' for more information.\n" + msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n" +-msgstr "试用“%s --helpâ€æˆ–“%s --usageâ€ä»¥èŽ·å–更多信æ¯ã€‚\n" ++msgstr "请å°è¯• \\ ‘%s --help’ 或\\ ‘%s --usage’ 以获得更多信æ¯ã€‚\\n" + + #: debug/xtrace.sh:38 +-#, fuzzy +-#| msgid "%s: option `%s' requires an argument\n" + msgid "%s: option '%s' requires an argument.\\n" +-msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" ++msgstr "%s:选项 ‘%s’ 需è¦ä¸€ä¸ªå‚æ•°.\\n" + + #: debug/xtrace.sh:45 + msgid "" +@@ -317,11 +328,22 @@ msgid "" + "short options.\n" + "\n" + msgstr "" ++"ç»ç”±æ‰“å°ç›®å‰è¿è¡Œçš„函数æ¥è¿½è¸ªç¨‹åºçš„è¿è¡Œã€‚\n" ++"\n" ++" --data=文件 无法è¿è¿›ç¨‹åºï¼Œä»…从文件å°å‡ºæ•°æ®ã€‚\n" ++"\n" ++" -?,--help 打å°è¿™ä»½è¯´æ˜Žç„¶åŽç¦»å¼€\n" ++" --usage 给出简短用法消æ¯\n" ++" -V,--version å°å‡ºç‰ˆæœ¬ä¿¡æ¯ç„¶åŽç¦»å¼€\n" ++"\n" ++"对于长选项必è¦çš„å‚æ•°åŒæ ·å¿…è¦äºŽä»»ä½•ç›¸åº”çš„\n" ++"短选项。\n" ++"\n" + + #: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.sh:49 + #: malloc/memusage.sh:64 + msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n" +-msgstr "" ++msgstr "è¦çŸ¥é“错误报告指令,请å‚看:\\\\n%s.\\\\n" + + #: debug/xtrace.sh:125 + msgid "xtrace: unrecognized option \\`$1'\\n" +@@ -334,7 +356,7 @@ msgstr "未指定程åºå" + #: debug/xtrace.sh:146 + #, sh-format + msgid "executable \\`$program' not found\\n" +-msgstr "" ++msgstr "å¯è¿è¡Œæ–‡ä»¶ “$program†找ä¸åˆ°\\n" + + #: debug/xtrace.sh:150 + #, sh-format +@@ -343,7 +365,7 @@ msgstr "“$programâ€ä¸å¯æ‰§è¡Œ\\n" + + #: dlfcn/dlinfo.c:63 + msgid "RTLD_SELF used in code not dynamically loaded" +-msgstr "" ++msgstr "代ç æ‰€ä½¿ç”¨çš„ RTLD_SELF 没有动æ€åŠ è½½" + + #: dlfcn/dlinfo.c:72 + msgid "unsupported dlinfo request" +@@ -414,11 +436,11 @@ msgstr "å°† %s 的访问æƒé™æ”¹å˜ä¸º + msgid "Renaming of %s to %s failed" + msgstr "å°† %s 改å为 %s 失败" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "无法创建范围列表" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "共享库未打开" + +@@ -433,7 +455,7 @@ msgstr "空动æ€å­—符串替æ¢" + #: elf/dl-deps.c:131 + #, c-format + msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" +-msgstr "" ++msgstr "由于空的动æ€å­—串字组替æ¢è€Œæ— æ³•åŠ è½½å¤–部的 `%s'\n" + + #: elf/dl-deps.c:467 + msgid "cannot allocate dependency list" +@@ -445,7 +467,7 @@ msgstr "无法分é…符å·æœç´¢åˆ—表" + + #: elf/dl-deps.c:544 + msgid "Filters not supported with LD_TRACE_PRELINKING" +-msgstr "" ++msgstr "过滤程åºä¸æ”¯æŒä¸Ž LD_TRACE_PRELINKING 共用" + + #: elf/dl-error.c:77 + msgid "DYNAMIC LINKER BUG!!!" +@@ -491,127 +513,127 @@ msgstr "无法创建æœç´¢è·¯å¾„数组" + msgid "cannot stat shared object" + msgstr "无法对共享目标进行 stat æ“作" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "无法打开零填充设备" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "无法创建共享对象æ述符" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "无法读入文件数æ®" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF 加载命令对é½ä¸æ˜¯æŒ‰é¡µå¯¹é½çš„" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF 装入命令的地å€/å移é‡æ²¡æœ‰æ­£ç¡®åœ°å¯¹é½" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" +-msgstr "" ++msgstr "无法é…ç½® TLS æ•°æ®ç»“构用以起始线程" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "æ— æ³•å¤„ç† TLS æ•°æ®" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "目标文件没有å¯åŠ è½½æ®µ" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "无法动æ€è£…å…¥å¯æ‰§è¡Œæ–‡ä»¶" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "目标文件没有动æ€èŠ‚" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "无法用 dlopen() 打开共享库" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "无法为程åºå¤´åˆ†é…内存" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "无效的调用者" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "无法改å˜å†…å­˜ä¿æŠ¤" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "无法å¯ç”¨å…±äº«ç›®æ ‡éœ€è¦çš„执行栈" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "无法关闭文件æ述符" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "文件过短" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "无效的 ELF 头" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "ELF 文件数æ®ç¼–ç ä¸æ˜¯ big-endian" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "ELF 文件数æ®ç¼–ç ä¸æ˜¯ little-endian" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" +-msgstr "" ++msgstr "ELF 档版本 ident ä¸ç¬¦åˆç›®å‰æ‰€ä½¿ç”¨çš„" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF 文件 OS ABI 无效" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF 文件 ABI 版本无效" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" +-msgstr "" ++msgstr "在 e_ident 中填补éžé›¶å€¼" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "内部错误" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF 文件版本与当å‰ç‰ˆæœ¬ä¸åŒ¹é…" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" +-msgstr "" ++msgstr "åªæœ‰ ET_DYN ä»¥åŠ ET_EXEC å¯ä»¥åŠ è½½" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" +-msgstr "" ++msgstr "ELF 档的 phentsize 并ä¸æ˜¯é¢„期中的大å°" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "错误 ELF ç±»: ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "错误 ELF ç±»: ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "无法打开共享对象文件" + +@@ -623,11 +645,11 @@ msgstr "æ— æ³•ä»Žå…±äº«ç›®æ ‡ä¸­æ˜ å°„æ® + msgid "cannot map zero-fill pages" + msgstr "无法映射用零填充的页" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "é‡å®šä½é”™è¯¯" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "符å·æŸ¥è¯¢é”™è¯¯" + +@@ -635,67 +657,54 @@ msgstr "符å·æŸ¥è¯¢é”™è¯¯" + msgid "cannot extend global scope" + msgstr "无法扩展全局范围" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." +-msgstr "" +- +-#: elf/dl-open.c:542 +-#, fuzzy +-#| msgid "cannot allocate memory in static TLS block" +-msgid "cannot load any more object with static TLS" +-msgstr "无法在é™æ€ TLS å—中分é…内存" ++msgstr "TLS 产生计数器被转æ¢è¿è¡Œï¼ 请报告这个情况。" + +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "无效的 dlopen() 模å¼" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" +-msgstr "" ++msgstr "无更多命å空间å¯è§äºŽ dlmopen ()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "dlmopen() 中无效的目标å字空间" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "无法在é™æ€ TLS å—中分é…内存" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" +-msgstr "" +- +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "" ++msgstr "在é‡æ–°å¯»å€ä»¥åŽæ— æ³•å°†èŠ‚设为å¯å†™å…¥çŠ¶æ€" + +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" +-msgstr "" ++msgstr "%s: 内存ä¸è¶³ä»¥ä¿å­˜é‡å¯»å€ç»“果用于 %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "é‡å®šä½åŽæ— æ³•æ¢å¤æ®µ prot" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "无法在é‡å®šä½åŽåº”用é¢å¤–的内存ä¿æŠ¤" + + #: elf/dl-sym.c:153 + msgid "RTLD_NEXT used in code not dynamically loaded" +-msgstr "" ++msgstr "代ç æ‰€ä½¿ç”¨çš„ RTLD_NEXT 没有动æ€åŠ è½½" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "无法创建 TLS æ•°æ®ç»“æž„" + + #: elf/dl-version.c:166 +-#, fuzzy +-#| msgid "symbol lookup error" + msgid "version lookup error" +-msgstr "符å·æŸ¥è¯¢é”™è¯¯" ++msgstr "版本查找错误" + + #: elf/dl-version.c:296 + msgid "cannot allocate version reference table" +@@ -763,7 +772,7 @@ msgstr "忽略辅助缓存文件" + + #: elf/ldconfig.c:159 + msgid "Configure Dynamic Linker Run Time Bindings." +-msgstr "" ++msgstr "设置è¿è¡Œæ—¶æœŸåŠ¨æ€è¿žæŽ¥" + + #: elf/ldconfig.c:346 + #, c-format +@@ -793,7 +802,7 @@ msgstr "%s ä¸æ˜¯ç¬¦å·è¿žæŽ¥\n" + #: elf/ldconfig.c:517 + #, c-format + msgid "Can't unlink %s" +-msgstr "" ++msgstr "无法å–消链接 %s" + + #: elf/ldconfig.c:523 + #, c-format +@@ -833,7 +842,7 @@ msgstr "未创建链接,因为 %s æ— æ + msgid "Can't open directory %s" + msgstr "无法打开目录 %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "未找到输入文件 %s。\n" +@@ -866,32 +875,32 @@ msgstr "目录 %3$s 中的 %1$s å’Œ %2$s + #: elf/ldconfig.c:1094 + #, c-format + msgid "Warning: ignoring configuration file that cannot be opened: %s" +-msgstr "" ++msgstr "警告:正在忽略无法打开的组æ€æ–‡ä»¶ï¼š%s" + + #: elf/ldconfig.c:1160 + #, c-format + msgid "%s:%u: bad syntax in hwcap line" +-msgstr "" ++msgstr "%s:%u: 在 hwcap 行中有ä¸å½“的语法" + + #: elf/ldconfig.c:1166 + #, c-format + msgid "%s:%u: hwcap index %lu above maximum %u" +-msgstr "" ++msgstr "%s:%u: hwcap 索引 %lu 以上的最大值 %u" + + #: elf/ldconfig.c:1173 elf/ldconfig.c:1181 + #, c-format + msgid "%s:%u: hwcap index %lu already defined as %s" +-msgstr "" ++msgstr "%s:%u: hwcap 索引 %lu å·²ç»è¢«å®šä¹‰ä¸º %s" + + #: elf/ldconfig.c:1184 + #, c-format + msgid "%s:%u: duplicate hwcap %lu %s" +-msgstr "" ++msgstr "%s:%u: é‡åˆ¶ hwcap %lu %s" + + #: elf/ldconfig.c:1206 + #, c-format + msgid "need absolute file name for configuration file when using -r" +-msgstr "" ++msgstr "需è¦ç»å¯¹æ–‡ä»¶å称用于组æ€æ–‡ä»¶æ—¶æ­£åœ¨ä½¿ç”¨ -r" + + #: elf/ldconfig.c:1213 locale/programs/xmalloc.c:64 malloc/obstack.c:416 + #: malloc/obstack.c:418 posix/getconf.c:441 posix/getconf.c:661 +@@ -907,7 +916,7 @@ msgstr "%s:%u: 无法读å–目录 %s" + #: elf/ldconfig.c:1289 + #, c-format + msgid "relative path `%s' used to build cache" +-msgstr "" ++msgstr "用æ¥å»ºç½®ç¼“存的相对路径 `%s'" + + #: elf/ldconfig.c:1319 + #, c-format +@@ -933,6 +942,13 @@ msgid "" + " -u, --unused print unused direct dependencies\n" + " -v, --verbose print all information\n" + msgstr "" ++"用法:ldd [选项]… 文件…\n" ++" --help å°å‡ºè¿™ä»½è¯´æ˜Žç„¶åŽç¦»å¼€\n" ++" --version å°å‡ºç‰ˆæœ¬ä¿¡æ¯ç„¶åŽç¦»å¼€\n" ++" -d, --data-relocs 进程数æ®é‡å¯»å€\n" ++" -r, --function-relocs 进程数æ®å’Œå‡½æ•°é‡å¯»å€\n" ++" -u, --unused å°å‡ºæœªä½¿ç”¨çš„直接ä¾èµ–关系\n" ++" -v, --verbose å°å‡ºæ‰€æœ‰ä¿¡æ¯\n" + + #: elf/ldd.bash.in:80 + msgid "ldd: option \\`$1' is ambiguous" +@@ -957,7 +973,7 @@ msgstr "缺少文件å‚æ•°" + msgid "No such file or directory" + msgstr "没有那个文件或目录" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "ä¸æ˜¯æ™®é€šæ–‡ä»¶" + +@@ -978,105 +994,97 @@ msgid "error: you do not have read permi + msgstr "错误: 你没有读æƒé™ " + + #: elf/pldd-xx.c:105 +-#, fuzzy, c-format +-#| msgid "cannot read header from `%s'" ++#, c-format + msgid "cannot find program header of process" +-msgstr "无法从“%sâ€ä¸­è¯»å…¥å¤´" ++msgstr "找ä¸åˆ°è¿›ç¨‹çš„程åºæ ‡å¤´" + + #: elf/pldd-xx.c:110 +-#, fuzzy, c-format +-#| msgid "cannot read header" ++#, c-format + msgid "cannot read program header" +-msgstr "无法读入头" ++msgstr "无法读å–程åºæ ‡å¤´" + + #: elf/pldd-xx.c:135 +-#, fuzzy, c-format +-#| msgid "object file has no dynamic section" ++#, c-format + msgid "cannot read dynamic section" +-msgstr "目标文件没有动æ€èŠ‚" ++msgstr "无法读å–动æ€èŠ‚" + + #: elf/pldd-xx.c:147 +-#, fuzzy, c-format +-#| msgid "cannot read header" ++#, c-format + msgid "cannot read r_debug" +-msgstr "无法读入头" ++msgstr "æ— æ³•è¯»å– r_debug" + + #: elf/pldd-xx.c:167 +-#, fuzzy, c-format +-#| msgid "cannot read archive header" ++#, c-format + msgid "cannot read program interpreter" +-msgstr "无法读入归档文件头" ++msgstr "无法读å–程åºè§£è¯‘器" + +-#: elf/pldd-xx.c:196 +-#, fuzzy, c-format +-#| msgid "cannot read file data" ++#: elf/pldd-xx.c:197 ++#, c-format + msgid "cannot read link map" +-msgstr "无法读入文件数æ®" ++msgstr "无法读å–链结映射" + +-#: elf/pldd-xx.c:207 +-#, fuzzy, c-format +-#| msgid "cannot read header" ++#: elf/pldd-xx.c:209 ++#, c-format + msgid "cannot read object name" +-msgstr "无法读入头" ++msgstr "无法读å–对象å称" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "无法为对象å称分é…缓冲区" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." +-msgstr "" ++msgstr "列出已加载进程中的动æ€å…±ç”¨å¯¹è±¡ã€‚" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" +-msgstr "" ++msgstr "进程识别å·" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" +-msgstr "" ++msgstr "需è¦åˆšå¥½ä¸€ä¸ªé™„有进程识别å·çš„å‚数。\n" + +-#: elf/pldd.c:111 +-#, fuzzy, c-format +-#| msgid "invalid pointer size" ++#: elf/pldd.c:112 ++#, c-format + msgid "invalid process ID '%s'" +-msgstr "无效的指针大å°" ++msgstr "æ— æ•ˆçš„è¿›ç¨‹è¯†åˆ«å· %s" + +-#: elf/pldd.c:119 +-#, fuzzy, c-format +-#| msgid "cannot open `%s'" ++#: elf/pldd.c:120 ++#, c-format + msgid "cannot open %s" +-msgstr "无法打开“%sâ€" ++msgstr "无法打开 %s" + +-#: elf/pldd.c:144 +-#, fuzzy, c-format +-#| msgid "cannot open `%s'" ++#: elf/pldd.c:152 ++#, c-format + msgid "cannot open %s/task" +-msgstr "无法打开“%sâ€" ++msgstr "无法打开 %s/任务" + +-#: elf/pldd.c:147 +-#, fuzzy, c-format +-#| msgid "cannot create searchlist" ++#: elf/pldd.c:155 ++#, c-format + msgid "cannot prepare reading %s/task" +-msgstr "无法创建æœç´¢åˆ—表" ++msgstr "æ— æ³•å‡†å¤‡è¯»å– %s/任务" + +-#: elf/pldd.c:160 +-#, fuzzy, c-format +-#| msgid "invalid ELF header" ++#: elf/pldd.c:168 ++#, c-format + msgid "invalid thread ID '%s'" +-msgstr "无效的 ELF 头" ++msgstr "æ— æ•ˆçš„çº¿ç¨‹è¯†åˆ«å· %s" + +-#: elf/pldd.c:171 +-#, fuzzy, c-format +-#| msgid "cannot find C preprocessor: %s \n" ++#: elf/pldd.c:179 ++#, c-format + msgid "cannot attach to process %lu" +-msgstr "无法找到 C 预处ç†å™¨ï¼š%s\n" ++msgstr "无法附加到进程 %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" +-msgstr "" ++msgstr "无法获得进程 %lu 的相关信æ¯" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" +-msgstr "" ++msgstr "进程 %lu å¹¶éž ELF 程åº" + + #: elf/readelflib.c:34 + #, c-format +@@ -1108,72 +1116,69 @@ msgstr "%s ä¸æ˜¯å…±äº«ç›®æ ‡æ–‡ä»¶ (ç±» + msgid "more than one dynamic segment\n" + msgstr "多于一个动æ€æ®µ\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "无法对文件 %s 进行 fstat æ“作。\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "文件 %s 为空,未检查。" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "文件 %s 过å°ï¼Œæœªæ£€æŸ¥ã€‚" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "无法对文件 %s 进行 mmap æ“作。\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" +-msgstr "%s ä¸æ˜¯ ELF 文件 - 它起始的魔数错误。\n" ++msgstr "%s ä¸æ˜¯ ELF 文件 - 起始处的魔数有误。\n" + + #: elf/sln.c:84 +-#, fuzzy, c-format +-#| msgid "usage: %s infile\n" ++#, c-format + msgid "" + "Usage: sln src dest|file\n" + "\n" +-msgstr "用法:%s 输入文件\n" ++msgstr "" ++"用法:sln æºä»£ç  目的|文件\n" ++"\n" + + #: elf/sln.c:109 +-#, fuzzy, c-format +-#| msgid "%s: unable to open %s: %m\n" ++#, c-format + msgid "%s: file open error: %m\n" +-msgstr "%s:无法打开 %s:%m\n" ++msgstr "%s:文件打开错误:%m\n" + + #: elf/sln.c:146 + #, c-format + msgid "No target in line %d\n" +-msgstr "" ++msgstr "没有目标于第 %d è¡Œ\n" + + #: elf/sln.c:178 +-#, fuzzy, c-format +-#| msgid "%s:%u: cannot read directory %s" ++#, c-format + msgid "%s: destination must not be a directory\n" +-msgstr "%s:%u: 无法读å–目录 %s" ++msgstr "%s:目的必须ä¸æ˜¯ç›®å½•\n" + + #: elf/sln.c:184 + #, c-format + msgid "%s: failed to remove the old destination\n" +-msgstr "" ++msgstr "%s:无法移除旧的目的\n" + + #: elf/sln.c:192 +-#, fuzzy, c-format +-#| msgid "%s: invalid option -- %c\n" ++#, c-format + msgid "%s: invalid destination: %s\n" +-msgstr "%s:无效选项 -- %c\n" ++msgstr "%s:无效的目的:%s\n" + + #: elf/sln.c:207 elf/sln.c:216 +-#, fuzzy, c-format +-#| msgid "%s: Can't link from %s to %s: %s\n" ++#, c-format + msgid "Invalid link from \"%s\" to \"%s\": %s\n" +-msgstr "%s:无法从 %s 连接到 %s:%s\n" ++msgstr "从 “%s†到 “%s†的链结无效:%s\n" + + #: elf/sotruss.sh:32 + #, sh-format +@@ -1191,30 +1196,34 @@ msgid "" + " --usage Give a short usage message\n" + " --version Print program version" + msgstr "" ++"用法:sotruss [选项…] [--] å¯è¿è¡Œæ–‡ä»¶ [EXECUTABLE-OPTION...]\n" ++" -F, --from FROMLIST 追踪æ¥è‡ª FROMLIST 上对象的调用\n" ++" -T, --to TOLIST 追踪æ¥è‡ª TOLIST 上对象的调用\n" ++"\n" ++" -e, --exit 也显示æ¥è‡ªå‡½æ•°çš„离开调用\n" ++" -f, --follow 追踪å­è¿›ç¨‹\n" ++" -o, --output 文件å 将输出写入 FILENAME (当åŒæ—¶ä½¿ç”¨ -f æ—¶\n" ++"\t\t\t 则使用 FILENAME.$PID) 以代替标准错误\n" ++"\n" ++" -?, --help 给出这份说明清å•\n" ++" --usage 给出简短用法消æ¯\n" ++" --version å°å‡ºç¨‹åºç‰ˆæœ¬" + + #: elf/sotruss.sh:46 +-#, fuzzy +-#| msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." + msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n" +-msgstr "长选项的强制或å¯é€‰å‚数对对应的短选项也是强制或å¯é€‰çš„。" ++msgstr "长选项的必è¦å‚æ•°åŒæ ·ä¹Ÿæ˜¯ç›¸å¯¹åº”短选项的必è¦å‚数。" + + #: elf/sotruss.sh:55 +-#, fuzzy +-#| msgid "%s: option requires an argument -- %c\n" + msgid "%s: option requires an argument -- '%s'\\n" +-msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n" ++msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° -- ‘%s’ \\n" + + #: elf/sotruss.sh:61 +-#, fuzzy +-#| msgid "%s: option `%s' is ambiguous\n" + msgid "%s: option is ambiguous; possibilities:" +-msgstr "%s:选项“%sâ€å…·æœ‰äºŒä¹‰æ€§\n" ++msgstr "%s:选项是模糊的;å¯èƒ½æ˜¯ï¼š" + + #: elf/sotruss.sh:79 +-#, fuzzy +-#| msgid "Written by %s.\n" + msgid "Written by %s.\\n" +-msgstr "ç”± %s 编写。\n" ++msgstr "作者 %s。\\n" + + #: elf/sotruss.sh:86 + msgid "" +@@ -1223,12 +1232,14 @@ msgid "" + "\t [--help] [--usage] [--version] [--]\n" + "\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" + msgstr "" ++"用法:%s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n" ++"\t [--follow] [--from FROMLIST] [--output 文件å] [--to TOLIST]\n" ++"\t [--help] [--usage] [--version] [--]\n" ++"\t å¯è¿è¡Œæ–‡ä»¶ [EXECUTABLE-OPTION...]\\n" + + #: elf/sotruss.sh:134 +-#, fuzzy +-#| msgid "%s: unrecognized option `%c%s'\n" + msgid "%s: unrecognized option '%c%s'\\n" +-msgstr "%s:无法识别的选项“%c%sâ€\n" ++msgstr "%s:无法辨识的选项 ‘%c%s’ \\n" + + #: elf/sprof.c:77 + msgid "Output selection:" +@@ -1240,7 +1251,7 @@ msgstr "打å°å½“å‰è·¯å¾„çš„åˆ—è¡¨å’Œä» + + #: elf/sprof.c:81 + msgid "generate flat profile with counts and ticks" +-msgstr "" ++msgstr "从è¿è¡Œæ¬¡æ•°ä¸Žç»åŽ†æ—¶é—´çš„æ•°æ®ä¸­äº§ç”Ÿç›´æŽ¥çš„测速结果" + + #: elf/sprof.c:82 + msgid "generate call graph" +@@ -1248,7 +1259,7 @@ msgstr "生æˆè°ƒç”¨å›¾" + + #: elf/sprof.c:89 + msgid "Read and display shared object profiling data." +-msgstr "" ++msgstr "读å–和显示共用对象规范数æ®ã€‚" + + #: elf/sprof.c:94 + msgid "SHOBJ [PROFDATA]" +@@ -1259,9 +1270,9 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "装入共享目标文件“%sâ€å¤±è´¥" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "无法创建内部æ述符" + + #: elf/sprof.c:554 +@@ -1317,27 +1328,22 @@ msgstr "å½“åˆ†æž profile æ•°æ®æ–‡ä»¶" + #: elf/sprof.c:797 + #, c-format + msgid "profiling data file `%s' does not match shared object `%s'" +-msgstr "" ++msgstr "测试数æ®æ¡£ `%s' 与共用目的档 `%s' ä¸ç¬¦åˆ" + + #: elf/sprof.c:808 + #, c-format + msgid "failed to mmap the profiling data file" +-msgstr "" ++msgstr "测试数æ®æ–‡ä»¶ mmap 失败" + + #: elf/sprof.c:816 + #, c-format + msgid "error while closing the profiling data file" +-msgstr "" +- +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "无法创建内部æ述符" ++msgstr "正在关闭测试数æ®æ–‡ä»¶æ—¶å‘生错误" + + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +-msgstr "" ++msgstr "`%s' ä¸æ˜¯ `%s' 中正确的测速评估数æ®æ¡£" + + #: elf/sprof.c:1080 elf/sprof.c:1138 + #, c-format +@@ -1407,10 +1413,8 @@ msgstr "ä»Žè¾“å‡ºä¸­å¿½ç•¥æ— æ•ˆçš„å­—ç¬ + #: locale/programs/localedef.c:122 locale/programs/localedef.c:124 + #: locale/programs/localedef.c:126 locale/programs/localedef.c:147 + #: malloc/memusagestat.c:56 +-#, fuzzy +-#| msgid "[FILE]" + msgid "FILE" +-msgstr "[文件]" ++msgstr "文件" + + #: iconv/iconv_prog.c:66 + msgid "output file" +@@ -1491,6 +1495,11 @@ msgid "" + "\n" + " " + msgstr "" ++"以下的列表包å«æ‰€æœ‰å·²çŸ¥çš„ç¼–ç å­—符集,但这ä¸ä»£è¡¨æ‰€æœ‰çš„字符å称组åˆçš†å¯ç”¨äºŽ\n" ++"命令行的 \"æ¥æº\" ä»¥åŠ \"目的\" å‚数。一个编ç å­—符集å¯ä»¥ç”¨å‡ ä¸ªä¸åŒçš„å称\n" ++"æ¥è¡¨ç¤º (å³ \"别å\")。\n" ++"\n" ++" " + + #: iconv/iconvconfig.c:109 + msgid "Create fastloading iconv module configuration file." +@@ -1502,7 +1511,7 @@ msgstr "[目录...]" + + #: iconv/iconvconfig.c:126 locale/programs/localedef.c:133 + msgid "PATH" +-msgstr "" ++msgstr "路径" + + #: iconv/iconvconfig.c:127 + msgid "Prefix used for all file accesses" +@@ -1510,16 +1519,16 @@ msgstr "用于所有文件访问的å‰ç¼ + + #: iconv/iconvconfig.c:128 + msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)" +-msgstr "" ++msgstr "在 FILE 中置放输出以代替已安装的ä½ç½® (--prefix ä¸å¥—用到 FILE)" + + #: iconv/iconvconfig.c:132 + msgid "Do not search standard directories, only those on the command line" +-msgstr "" ++msgstr "ä¸æœç´¢æ ‡å‡†ç›®å½•ï¼Œåªä½¿ç”¨å‘½ä»¤è¡ŒæŒ‡å®šçš„" + + #: iconv/iconvconfig.c:299 + #, c-format + msgid "Directory arguments required when using --nostdlib" +-msgstr "" ++msgstr "目录å‚æ•°å¿…è¦é¡¹æ—¶æ­£åœ¨ä½¿ç”¨ --nostdlib" + + #: iconv/iconvconfig.c:341 locale/programs/localedef.c:294 + #, c-format +@@ -1557,47 +1566,47 @@ msgstr "正在å°è¯• %s...\n" + #: inet/rcmd.c:255 + #, c-format + msgid "rcmd: write (setting up stderr): %m\n" +-msgstr "" ++msgstr "rcmd: write (正在设置标准错误输出): %m\n" + + #: inet/rcmd.c:271 + #, c-format + msgid "rcmd: poll (setting up stderr): %m\n" +-msgstr "" ++msgstr "rcmd: poll (正在设置标准错误输出): %m\n" + + #: inet/rcmd.c:274 + msgid "poll: protocol failure in circuit setup\n" +-msgstr "" ++msgstr "poll: 通信å定在设置线路时失效\n" + + #: inet/rcmd.c:306 + msgid "socket: protocol failure in circuit setup\n" +-msgstr "" ++msgstr "socket: 通信å定在设置线路时失效\n" + + #: inet/rcmd.c:330 + #, c-format + msgid "rcmd: %s: short read" +-msgstr "" ++msgstr "rcmd: %s: 读入数æ®è¿‡çŸ­" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat æ“作失败" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "无法打开" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat 失败" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "错误的拥有者" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "å¯ç”±é™¤æ‰€æœ‰è€…之外的人写入" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "æŸå¤„的硬连接" + +@@ -1640,7 +1649,7 @@ msgstr "找ä¸åˆ°é»˜è®¤å­—ç¬¦æ˜ å°„æ–‡ä» + #: locale/programs/charmap.c:258 + #, c-format + msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n" +-msgstr "" ++msgstr "字符对应 `%s' ä¸æ˜¯ ASCII 兼容ç ï¼ŒåŒºåŸŸåŒ–æ•°æ®åº“ä¸ç¬¦åˆ ISO C\n" + + #: locale/programs/charmap.c:337 + #, c-format +@@ -1717,8 +1726,8 @@ msgid "no symbolic name given for end of + msgstr "没有为范围的结æŸç»™å‡ºç¬¦å·åŒ–çš„å称" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1731,7 +1740,7 @@ msgstr "%1$s:定义ä¸ä»¥â€œEND %1$s†+ + #: locale/programs/charmap.c:643 + msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" +-msgstr "" ++msgstr "åªæœ‰ WIDTH 定义æ‰èƒ½ç›´æŽ¥å†™åœ¨ CHARMAP 定义之åŽ" + + #: locale/programs/charmap.c:651 locale/programs/charmap.c:714 + #, c-format +@@ -1744,8 +1753,8 @@ msgid "%s: error in state machine" + msgstr "%s:状æ€æœºå‡ºé”™" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1764,16 +1773,16 @@ msgstr "未知的字符“%sâ€" + #: locale/programs/charmap.c:888 + #, c-format + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" +-msgstr "" ++msgstr "在范围起始与结æŸçš„字节åºåˆ—中,字节的数目并ä¸ä¸€è‡´: %d vs %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" +-msgstr "" ++msgstr "无效的字符范围å称" + + #: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431 + msgid "hexadecimal range format should use only capital characters" +-msgstr "" ++msgstr "在表示å六进制的范围时åªèƒ½ç”¨å¤§å†™çš„英文本æ¯è¡¨ç¤º" + + #: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449 + #, c-format +@@ -1786,17 +1795,17 @@ msgstr "范围的上é™å°äºŽä¸‹é™" + + #: locale/programs/charmap.c:1087 + msgid "resulting bytes for range not representable." +-msgstr "" ++msgstr "用æ¥å®šä¹‰èŒƒå›´çš„字节无法被表述出æ¥" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 + #: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159 + #, c-format + msgid "No definition for %s category found" +-msgstr "" ++msgstr "找ä¸åˆ° %s 类别的定义" + + #: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184 + #: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231 +@@ -1829,7 +1838,7 @@ msgstr "%1$s:域“%3$sâ€ä¸­æ— æ•ˆçš„ + #: locale/programs/ld-address.c:221 + #, c-format + msgid "%s: terminology language code `%s' not defined" +-msgstr "" ++msgstr "%s: æœ¯è¯­è¯­è¨€ç¼–ç  `%s' 未定义" + + #: locale/programs/ld-address.c:246 + #, c-format +@@ -1853,7 +1862,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s:数值国家编ç â€œ%dâ€æ— æ•ˆ" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1875,8 +1884,8 @@ msgstr "%s:多次声明域“%sâ€" + msgid "%s: unknown character in field `%s'" + msgstr "%s:域“%sâ€ä¸­å«æœ‰æœªçŸ¥å­—符" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1885,12 +1894,12 @@ msgstr "%s:域“%sâ€ä¸­å«æœ‰æœªçŸ¥å + msgid "%s: incomplete `END' line" + msgstr "%s:ä¸å®Œæ•´çš„“ENDâ€è¡Œ" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1900,491 +1909,489 @@ msgstr "%s:ä¸å®Œæ•´çš„“ENDâ€è¡Œ" + msgid "%s: syntax error" + msgstr "%s:语法错误" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "å·²ç»åœ¨å­—符映射表中定义了“%.*sâ€" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "å·²ç»åœ¨æŒ‡ä»¤è¡¨ä¸­å®šä¹‰äº†â€œ%.*sâ€" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" +-msgstr "" ++msgstr "`%.*s' 已被定义为对照符å·" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" +-msgstr "" ++msgstr "`%.*s' 已被定义为对照元素" + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s:“forwardâ€å’Œâ€œbackwardâ€æ˜¯äº’斥的" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" +-msgstr "" ++msgstr "%s: `%s' ä¸åªä¸€æ¬¡åœ°åœ¨æƒé‡ %d 中被æ到" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s:规则过多;第一个æ¡ç›®åªå«æœ‰ %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s:排åºè§„则ä¸è¶³" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s:ä¸å…许空æƒå­—符串" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" +-msgstr "" ++msgstr "%s: æƒé‡å¿…须使用与å称相åŒçš„çœç•¥ç¬¦å·" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s:值过多" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" +-msgstr "" ++msgstr "`%.*s' 的顺åºå·²ç»åœ¨ %s:%Zu 里é¢å®šä¹‰äº†" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" +-msgstr "" ++msgstr "%s: å¯å§‹ä¸Žç»“æŸç¬¦å·èŒƒå›´å¿…须代表字符" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s:字节åºåˆ—的第一个和最åŽä¸€ä¸ªå­—符的长度必须相åŒ" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s:范围的字节åºåˆ—的第一个字符ä¸å°äºŽæœ€åŽä¸€ä¸ªå­—符" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" +-msgstr "" ++msgstr "%s: 符å·èŒƒå›´çš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_start' 之åŽ" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" +-msgstr "" ++msgstr "%s: 符å·èŒƒå›´çš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_end' 之å‰" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "“%sâ€å’Œâ€œ%.*sâ€æ˜¯æ— æ•ˆçš„符å·èŒƒå›´å" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" +-msgstr "" ++msgstr "%s: `%.*s' 的顺åºå·²åœ¨ %s:%Zu 中定义" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s:“%sâ€å¿…须是一个字符" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" +-msgstr "" ++msgstr "%s: `position' 必须在所有区å—里特定的等级中使用,å¦åˆ™ä¸èƒ½ä½¿ç”¨" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "符å·â€œ%sâ€æœªå®šä¹‰" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" +-msgstr "" ++msgstr "è·Ÿç¬¦å· `%s' 有相åŒçš„ç¼–ç : " + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "符å·â€œ%sâ€" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "没有关于“UNDEFINIEDâ€çš„定义" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "错误过多;放弃" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: ä¸æ”¯æŒåµŒå¥—æ¡ä»¶" + +-#: locale/programs/ld-collate.c:2536 +-#, fuzzy, c-format +-#| msgid "%s: more then one 'else'" ++#: locale/programs/ld-collate.c:2545 ++#, c-format + msgid "%s: more than one 'else'" +-msgstr "%s: 多于一个'else'" ++msgstr "%s: 使用多于一个 “elseâ€" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s:é‡å¤å®šä¹‰â€œ%sâ€" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s:é‡å¤å£°æ˜ŽèŠ‚“%sâ€" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" +-msgstr "" ++msgstr "%s: 未知的字符在对照符å·å称中" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s:等价定义å中未知的字符" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s:等价定义值中未知的字符" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s:等价定义中未知的符å·â€œ%sâ€" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" +-msgstr "" ++msgstr "正在加入åŒä¹‰å¯¹ç…§ç¬¦å·æ—¶å‘生错误" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "é‡å¤å®šä¹‰è„šæœ¬â€œ%sâ€" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s:未知的节å“%.*sâ€" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s:关于“%sâ€èŠ‚出现多个顺åºå®šä¹‰" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s:排åºè§„则的数é‡æ— æ•ˆ" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s:关于未命å节出现多个顺åºå®šä¹‰" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s:é—æ¼å…³é”®å­—“order_endâ€" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" +-msgstr "" ++msgstr "%s: å¯¹ç…§ç¬¦å· %.*s 的顺åºå°šæœªå®šä¹‰" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" +-msgstr "" ++msgstr "%s: 对照元素 %.*s 的顺åºå°šæœªå®šä¹‰" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" +-msgstr "" ++msgstr "%s: 无法é‡æ–°æŽ’列在 %.*s 之åŽ: 未知的符å·" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s:以åŽå…³é”®å­—“reorder-endâ€" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s:未知的节“%.*sâ€" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" +-msgstr "" ++msgstr "%s: ä¸å½“çš„ç¬¦å· <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" +-msgstr "" ++msgstr "%s: 无法用 `%s' 作为çœç•¥èŠ‚的结尾" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s:ä¸å…许空范畴æè¿°" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s:é—æ¼å…³é”®å­—“reorder-sections-endâ€" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" +-msgstr "" ++msgstr "%s: “%s†而ä¸éœ€å»åˆä¸­ “ifdef†或 “ifndef†" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" +-msgstr "" ++msgstr "%s: “endif†而ä¸éœ€å»åˆä¸­ “ifdef†或 “ifndef†" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "字符映射表中未给出字符集å称" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" +-msgstr "" ++msgstr "character L'\\u%0*x' (放在类别 `%s' 之中) 必须在类别 `%s' 里é¢" + +-# msgstr "类“%2$sâ€ä¸­çš„字符 L'\\u%0*x' 必须属于类“%3$sâ€" +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" +-msgstr "" ++msgstr "character L'\\u%0*x' (放在类别 `%s' 之中) ä¸èƒ½åœ¨ç±»åˆ« `%s' 里é¢" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "在 %s 的第 %u 行出现内部错误" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "类“%2$sâ€ä¸­çš„字符“%1$sâ€å¿…须属于类“%3$sâ€" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "类“%2$sâ€ä¸­çš„字符“%1$sâ€ä¸å¾—属于类“%3$sâ€" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr "字符 ä¸åœ¨ç±»â€œ%sâ€ä¸­" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr "字符 ä¸èƒ½å±žäºŽç±»â€œ%sâ€" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "字符映射中未定义字符 " + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" +-msgstr "" ++msgstr "`digit' 类别在群组 \"å\" 中没有项目" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" +-msgstr "" ++msgstr "没有定义输入数字,在字集对照档中也找ä¸åˆ°ç›¸ç¬¦çš„标准å称" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" +-msgstr "" ++msgstr "在字集对照表中无法找到æŸäº›åœ¨ `outdigit' 中用到的字符" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" +-msgstr "" ++msgstr "在编ç æ˜ å°„档中无法找到æŸäº›åœ¨ `outdigit' 中用到的字符" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "字符类“%sâ€å·²å®šä¹‰" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" +-msgstr "" ++msgstr "程åºå®žçŽ°çš„é™åˆ¶: ä¸èƒ½ä½¿ç”¨è¶…过 %Zd 个字集类别" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" +-msgstr "" ++msgstr "字集对照档 `%s' å·²ç»å®šä¹‰è¿‡äº†" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "实现é™åˆ¶ï¼šä¸å¾—多于 %d 个字符映射表" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s:域“%sâ€å«æœ‰æ¡ç›®çš„个数ä¸æ˜¯å个" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " +-msgstr "" ++msgstr "区域定义的结尾值 比起始值 还è¦å°" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "范围的起始和终止字符åºåˆ—必须具有相åŒçš„长度" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" +-msgstr "" ++msgstr "字符åºåˆ—定义的结尾值比起始值还è¦å°" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" +-msgstr "" ++msgstr "`translit_ignore' 定义没有按时结æŸ" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "语法错误" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s:在定义新字符集åˆä¸­å‡ºçŽ°è¯­æ³•é”™è¯¯" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s:在新字符映射中出现语法错误" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" +-msgstr "" ++msgstr "çœç•¥åŒºåŸŸå¿…须用两个型别相åŒçš„算符标示出æ¥" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" +-msgstr "" ++msgstr "用符å·å称æ¥æŒ‡å®šå­—符编ç èŒƒå›´æ—¶ä¸å¯ä»¥ç”¨ç»å¯¹ä½ç½®çš„çœç•¥ç¬¦å· `…'" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" +-msgstr "" ++msgstr "用æ¥æŒ‡å®š UCS 值的范围时得用å六进制表示的çœç•¥ç¬¦å· `..'" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" +-msgstr "" ++msgstr "用æ¥æŒ‡å®šå­—符编ç å€¼çš„范围时得用ç»å¯¹ä½ç½®çš„çœç•¥ç¬¦å· `…'" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "é‡å¤å®šä¹‰æ˜ å°„“%sâ€" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s:“translit_startâ€èŠ‚ä¸ä»¥â€œtranslit_endâ€ç»“æŸ" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s:é‡å¤å®šä¹‰â€œdefault_missingâ€" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "å‰ä¸€ä¸ªå®šä¹‰åœ¨è¿™é‡Œ" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" +-msgstr "" ++msgstr "%s: 找ä¸åˆ°å¯è¡¨ç¤ºä¸º `default_missing' 的定义" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" +-msgstr "" ++msgstr "%s: 字符 `%s' 没有定义,但它是必需的默认值" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" +-msgstr "" ++msgstr "%s: 字集对照表中的字符 `%s' 无法表示为å•ä¸€å­—节" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s:需è¦ä½œä¸ºé»˜è®¤å€¼çš„字符“%sâ€æ— æ³•ä»¥å•ä¸ªå­—节æ¥è¡¨ç¤º" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" +-msgstr "" ++msgstr "没有定义输出数字,在字集对照档中也找ä¸åˆ°ç›¸ç¬¦çš„标准å称" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" +-msgstr "" ++msgstr "%s: 语区数æ®`%s' 的音译数æ®ä¸å­˜åœ¨" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" +-msgstr "" ++msgstr "%s: 类别 \"%s\" 表格: %lu 字节\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" +-msgstr "" ++msgstr "%s: 映射表 \"%s\" 表格: %lu 字节\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" +-msgstr "" ++msgstr "%s: 宽度表格: %lu 字节\n" + + #: locale/programs/ld-identification.c:170 + #, c-format + msgid "%s: no identification for category `%s'" +-msgstr "" ++msgstr "%s: 类别 `%s' 没有认è¯" + + #: locale/programs/ld-identification.c:351 + #, c-format + msgid "%s: duplicate category version definition" +-msgstr "" ++msgstr "%s: é‡å¤çš„类别版本定义" + + #: locale/programs/ld-measurement.c:113 + #, c-format +@@ -2450,62 +2457,62 @@ msgstr "%s:域“%sâ€ä¸­å«æœ‰æ— æ•ˆè + #: locale/programs/ld-time.c:247 + #, c-format + msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'" +-msgstr "" ++msgstr "%s: 在 `era' 字段的字串 %Zd 中,方å‘旗标既ä¸æ˜¯ '+' 也ä¸æ˜¯ '-'" + + #: locale/programs/ld-time.c:258 + #, c-format + msgid "%s: direction flag in string %Zd in `era' field is not a single character" +-msgstr "" ++msgstr "%s: 在 `era' 字段的字串 %Zd 中,方å‘æ——æ ‡ä¸æ˜¯ä¸€ä¸ªå•ä¸€å­—符" + + #: locale/programs/ld-time.c:271 + #, c-format + msgid "%s: invalid number for offset in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 在 `era' 字段ã€å­—串 %Zd 中的ä½ç§»æ•°å­—ä¸é€‚用" + + #: locale/programs/ld-time.c:279 + #, c-format + msgid "%s: garbage at end of offset value in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 无用的数æ®ï¼Œåœ¨ `era' 字段ã€å­—串 %Zd 中末尾的ä½ç§»å€¼" + + #: locale/programs/ld-time.c:330 + #, c-format + msgid "%s: invalid starting date in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 在 `era' 字段ã€å­—串 %Zd 中的起始日期ä¸é€‚用" + + #: locale/programs/ld-time.c:339 + #, c-format + msgid "%s: garbage at end of starting date in string %Zd in `era' field " +-msgstr "" ++msgstr "%s: 无用的数æ®ï¼Œåœ¨ `era' 字段ã€å­—串 %Zd 中末尾的起始日期" + + #: locale/programs/ld-time.c:358 + #, c-format + msgid "%s: starting date is invalid in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 在 `era' 区域的字串 %Zd 中的å¯å§‹æ—¥æœŸæ˜¯ä¸é€‚用的" + + #: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435 + #, c-format + msgid "%s: invalid stopping date in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 在 `era' 字段ã€å­—串 %Zd 中的结æŸæ—¥æœŸä¸é€‚用" + + #: locale/programs/ld-time.c:416 + #, c-format + msgid "%s: garbage at end of stopping date in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 无用的数æ®ï¼Œåœ¨ `era' 区域ã€å­—串 %Zd 中末尾的结æŸæ—¥æœŸ" + + #: locale/programs/ld-time.c:444 + #, c-format + msgid "%s: missing era name in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 缺少 era å称,在 `era' 字段ã€å­—串 %Zd 中" + + #: locale/programs/ld-time.c:456 + #, c-format + msgid "%s: missing era format in string %Zd in `era' field" +-msgstr "" ++msgstr "%s: 缺少 era æ ¼å¼ï¼Œåœ¨ `era' 字段ã€å­—串 %Zd 中" + + #: locale/programs/ld-time.c:497 + #, c-format + msgid "%s: third operand for value of field `%s' must not be larger than %d" +-msgstr "" ++msgstr "%s: 字段 `%s' 值的第三个算符ä¸å¯ä»¥æ¯” %d 大" + + #: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513 + #: locale/programs/ld-time.c:521 +@@ -2529,15 +2536,15 @@ msgstr "%s:域“%sâ€çš„值过多" + + #: locale/programs/linereader.c:130 + msgid "trailing garbage at end of line" +-msgstr "" ++msgstr "行尾出现无用字符" + + #: locale/programs/linereader.c:298 + msgid "garbage at end of number" +-msgstr "数字末尾有垃圾" ++msgstr "数字末尾有无用字符" + + #: locale/programs/linereader.c:410 + msgid "garbage at end of character code specification" +-msgstr "" ++msgstr "字符编ç è®¾ç½®ç»“æŸä½ç½®çš„无用数æ®" + + #: locale/programs/linereader.c:496 + msgid "unterminated symbolic name" +@@ -2558,18 +2565,17 @@ msgstr "ä¸åº”该使用éžç¬¦å·å­—ç¬¦çš + #: locale/programs/linereader.c:816 + #, c-format + msgid "symbol `%.*s' not in charmap" +-msgstr "" ++msgstr "ç¬¦å· `%.*s' 并ä¸åœ¨å­—集对照表中" + + #: locale/programs/linereader.c:837 + #, c-format + msgid "symbol `%.*s' not in repertoire map" +-msgstr "" ++msgstr "ç¬¦å· `%.*s' 并ä¸åœ¨ç¼–ç æ˜ å°„档中" + + #: locale/programs/locale-spec.c:130 +-#, fuzzy, c-format +-#| msgid "unknown set `%s'" ++#, c-format + msgid "unknown name \"%s\"" +-msgstr "未知集åˆâ€œ%sâ€" ++msgstr "ä¸æ˜Žå称 “%s†" + + #: locale/programs/locale.c:72 + msgid "System information:" +@@ -2608,26 +2614,28 @@ msgid "" + "NAME\n" + "[-a|-m]" + msgstr "" ++"å称\n" ++"[-a|-m]" + + #: locale/programs/locale.c:192 + #, c-format + msgid "Cannot set LC_CTYPE to default locale" +-msgstr "" ++msgstr "无法将 LC_CTYPE 设置为缺çœçš„语区" + + #: locale/programs/locale.c:194 + #, c-format + msgid "Cannot set LC_MESSAGES to default locale" +-msgstr "" ++msgstr "无法将 LC_MESSAGES 设置为缺çœçš„语区" + + #: locale/programs/locale.c:207 + #, c-format + msgid "Cannot set LC_COLLATE to default locale" +-msgstr "" ++msgstr "无法将 LC_COLLATE 设置为缺çœçš„语区" + + #: locale/programs/locale.c:223 + #, c-format + msgid "Cannot set LC_ALL to default locale" +-msgstr "" ++msgstr "无法将 LC_ALL 设置为缺çœçš„语区" + + #: locale/programs/locale.c:519 + #, c-format +@@ -2640,7 +2648,7 @@ msgstr "输入文件:" + + #: locale/programs/localedef.c:123 + msgid "Symbolic character names defined in FILE" +-msgstr "" ++msgstr "符å·å­—符的å称定义在文件 FILE 中" + + #: locale/programs/localedef.c:125 + msgid "Source definitions are found in FILE" +@@ -2648,7 +2656,7 @@ msgstr "在 FILE 中找到æºå®šä¹‰" + + #: locale/programs/localedef.c:127 + msgid "FILE contains mapping from symbolic names to UCS4 values" +-msgstr "" ++msgstr "文件 FILE 内å«ç¬¦å·å与 UCS4 ç¼–ç ä¹‹é—´çš„映射" + + #: locale/programs/localedef.c:131 + msgid "Create output even if warning messages were issued" +@@ -2663,10 +2671,8 @@ msgid "Optional output file prefix" + msgstr "å¯é€‰çš„输出文件å‰ç¼€" + + #: locale/programs/localedef.c:134 +-#, fuzzy +-#| msgid "Be strictly POSIX conform" + msgid "Strictly conform to POSIX" +-msgstr "严格éµå¾ª POSIX" ++msgstr "严格éµä»Ž POSIX" + + #: locale/programs/localedef.c:136 + msgid "Suppress warnings and information messages" +@@ -2706,11 +2712,11 @@ msgstr "在制作归档文件时å‚考 l + + #: locale/programs/localedef.c:150 + msgid "Generate little-endian output" +-msgstr "" ++msgstr "生æˆå°ç«¯åºè¾“出" + + #: locale/programs/localedef.c:152 + msgid "Generate big-endian output" +-msgstr "" ++msgstr "生æˆå¤§ç«¯åºè¾“出" + + #: locale/programs/localedef.c:157 + msgid "Compile locale specification" +@@ -2755,6 +2761,10 @@ msgid "" + "\t\t locale path : %s\n" + "%s" + msgstr "" ++"系统的字符对应目录:%s\n" ++"\t\t ç¼–ç å¯¹åº”:%s\n" ++"\t\t 语区路径 :%s\n" ++"%s" + + #: locale/programs/localedef.c:582 + #, c-format +@@ -2767,10 +2777,9 @@ msgid "cannot add already read locale `% + msgstr "无法å†æ¬¡æ·»åŠ å·²ç»è¯»å…¥çš„“%sâ€" + + #: locale/programs/locarchive.c:133 locale/programs/locarchive.c:380 +-#, fuzzy, c-format +-#| msgid "cannot create temporary file" ++#, c-format + msgid "cannot create temporary file: %s" +-msgstr "无法创建临时文件" ++msgstr "无法产生暂时档:%s" + + #: locale/programs/locarchive.c:167 locale/programs/locarchive.c:430 + #, c-format +@@ -2799,10 +2808,9 @@ msgid "cannot change mode of new locale + msgstr "无法改å˜æ–°å½’档文件的模å¼" + + #: locale/programs/locarchive.c:324 +-#, fuzzy, c-format +-#| msgid "cannot add to locale archive" ++#, c-format + msgid "cannot read data from locale archive" +-msgstr "无法添加到区域归档文件" ++msgstr "无法从语区归档读å–æ•°æ®" + + #: locale/programs/locarchive.c:355 + #, c-format +@@ -2926,10 +2934,8 @@ msgid "cannot create output file `%s' fo + msgstr "无法为范畴“%2$sâ€åˆ›å»ºè¾“出文件“%1$sâ€" + + #: locale/programs/locfile.c:956 +-#, fuzzy +-#| msgid "expect string argument for `copy'" + msgid "expecting string argument for `copy'" +-msgstr "“copyâ€éœ€è¦å­—符串å‚æ•°" ++msgstr "`copy' çš„å‚数应该是字串æ‰å¯¹" + + #: locale/programs/locfile.c:960 + msgid "locale name should consist only of portable characters" +@@ -2948,7 +2954,7 @@ msgstr "对“%1$sâ€çš„定义并ä¸ä»¥â + #: locale/programs/repertoire.c:295 + #, c-format + msgid "syntax error in repertoire map definition: %s" +-msgstr "" ++msgstr "ç¼–ç æ˜ å°„档中的定义有语法错误: %s" + + #: locale/programs/repertoire.c:271 + msgid "no or value given" +@@ -2962,12 +2968,12 @@ msgstr "无法ä¿å­˜æ–°çš„指令表" + #: locale/programs/repertoire.c:342 + #, c-format + msgid "repertoire map file `%s' not found" +-msgstr "" ++msgstr "找ä¸åˆ°ç¼–ç æ˜ å°„æ¡£ `%s'" + + #: login/programs/pt_chown.c:78 + #, c-format + msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n" +-msgstr "" ++msgstr "设置与以文件æ述符 %d 指定的主伪终端对应的从属伪终端的所有者ã€ç»„å’Œæƒé™ 。 此辅助程åºç”¨äºŽ “grantpt†函数,并未用于直接从命令行è¿è¡Œã€‚\n" + + #: login/programs/pt_chown.c:92 + #, c-format +@@ -2976,6 +2982,9 @@ msgid "" + "\n" + "%s" + msgstr "" ++"拥有者设置为目å‰ç”¨æˆ·ï¼Œç¾¤ç»„设置为 “%s†,而æƒé™è®¾ç½®ä¸º “%o†。\n" ++"\n" ++"%s" + + #: login/programs/pt_chown.c:198 + #, c-format +@@ -2985,7 +2994,7 @@ msgstr "选项过多" + #: login/programs/pt_chown.c:206 + #, c-format + msgid "needs to be installed setuid `root'" +-msgstr "" ++msgstr "需è¦æ˜¯å·²å®‰è£…çš„ setuid “rootâ€" + + #: malloc/mcheck.c:346 + msgid "memory is consistent, library is buggy\n" +@@ -2993,11 +3002,11 @@ msgstr "内存ä¸ä¸€è‡´ï¼Œåº“有错误\n + + #: malloc/mcheck.c:349 + msgid "memory clobbered before allocated block\n" +-msgstr "" ++msgstr "内存在分é…之å‰å°±è¢«è¦†å†™äº†\n" + + #: malloc/mcheck.c:352 + msgid "memory clobbered past end of allocated block\n" +-msgstr "" ++msgstr "内存覆写超过了ç»è¿‡çš„已分é…的区å—尾部\n" + + #: malloc/mcheck.c:355 + msgid "block freed twice\n" +@@ -3005,13 +3014,11 @@ msgstr "å—释放了两次\n" + + #: malloc/mcheck.c:358 + msgid "bogus mcheck_status, library is buggy\n" +-msgstr "" ++msgstr "å†…å­˜æ£€æŸ¥çŠ¶æ€ (mcheck_ststus) 有误,您所用的函数库有问题\n" + + #: malloc/memusage.sh:32 +-#, fuzzy +-#| msgid "%s: option `%s' requires an argument\n" + msgid "%s: option '%s' requires an argument\\n" +-msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" ++msgstr "%s:选项 ‘%s’ 需è¦ä¸€ä¸ªå‚æ•°\\n" + + #: malloc/memusage.sh:38 + msgid "" +@@ -3041,6 +3048,30 @@ msgid "" + "short options.\n" + "\n" + msgstr "" ++"用法:memusage [选项]… ç¨‹åº [PROGRAMOPTION]…\n" ++"剖æžç¨‹åºçš„内存用é‡æƒ…况。\n" ++"\n" ++" -n,--progname=å称 è¦è¢«åˆ†æžçš„的程åºæ–‡ä»¶å称\n" ++" -p,--png=文件 产生 PNG 图形并存为文件\n" ++" -d,--data=文件 产生二进制数æ®å¹¶å­˜ä¸ºæ–‡ä»¶\n" ++" -u,--unbuffered ä¸è¦å°†è¾“出缓冲\n" ++" -b,--buffer=å¤§å° æ”¶é›†<大å°>æ¡é¡¹ç›®åŽå†è¾“出\n" ++" --no-timer ä¸é€šè¿‡è®¡æ—¶å™¨æ”¶é›†é™„加信æ¯\n" ++" -m,--mmap åŒæ—¶è¿½è¸ª mmap 和相关者\n" ++"\n" ++" -?,--help 打å°è¿™ä¸ªè¯´æ˜Žç„¶åŽç¦»å¼€\n" ++" --usage 给出简短用法消æ¯\n" ++" -V,--version 打å°ç‰ˆæœ¬ä¿¡æ¯ç„¶åŽç¦»å¼€\n" ++"\n" ++"下列的选项åªåœ¨äº§ç”Ÿå›¾å½¢è¾“出时有效:\n" ++" -t,--time-based 使图åƒåœ¨æ—¶é—´ä¸Šæ˜¯çº¿æ€§çš„\n" ++" -T,--total åŒæ—¶ç»˜åˆ¶æ€»è®¡å†…存使用é‡å›¾å½¢\n" ++" --title=字串 使用字串作为图形的标题\n" ++" -x,--x-size=å¤§å° å®šåˆ¶å›¾å½¢å¤§å°åƒç´ å®½åº¦\n" ++" -y,--y-size=å¤§å° å®šåˆ¶å›¾å½¢å¤§å°åƒç´ é«˜åº¦\n" ++"\n" ++"长选项的必è¦å‚æ•°åŒæ ·ä¹Ÿæ˜¯ç›¸å¯¹åº”短选项的必è¦å‚数。\n" ++"\n" + + #: malloc/memusage.sh:99 + msgid "" +@@ -3049,6 +3080,10 @@ msgid "" + "\t [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n" + "\t PROGRAM [PROGRAMOPTION]..." + msgstr "" ++"语法:memusage [--data=文件] [--progname=å称] [--png=文件] [--unbuffered]\n" ++"\t [--buffer=大å°] [--no-timer] [--time-based] [--total]\n" ++"\t [--title=字串] [--x-size=大å°] [--y-size=大å°]\n" ++"\t ç¨‹åº [PROGRAMOPTION]…" + + #: malloc/memusage.sh:191 + msgid "memusage: option \\`${1##*=}' is ambiguous" +@@ -3068,7 +3103,7 @@ msgstr "å输出文件" + + #: malloc/memusagestat.c:57 + msgid "STRING" +-msgstr "" ++msgstr "字串" + + #: malloc/memusagestat.c:57 + msgid "Title string used in output graphic" +@@ -3076,27 +3111,27 @@ msgstr "ç”¨äºŽè¾“å‡ºå›¾å½¢çš„æ ‡é¢˜å­—ç¬ + + #: malloc/memusagestat.c:58 + msgid "Generate output linear to time (default is linear to number of function calls)" +-msgstr "" ++msgstr "产生输出与时间呈线性关系 (缺çœæ˜¯ä¸Žå‡½æ•°è°ƒç”¨æ•°ç›®å‘ˆçº¿æ€§å…³ç³»)" + + #: malloc/memusagestat.c:62 + msgid "Also draw graph for total memory consumption" +-msgstr "" ++msgstr "åŒæ—¶å¯¹æ€»å†…存用é‡ä½œå›¾" + + #: malloc/memusagestat.c:63 + msgid "VALUE" +-msgstr "" ++msgstr "åƒç´ å€¼" + + #: malloc/memusagestat.c:64 + msgid "Make output graphic VALUE pixels wide" +-msgstr "" ++msgstr "定制输出图形的宽度åƒç´ å€¼" + + #: malloc/memusagestat.c:65 + msgid "Make output graphic VALUE pixels high" +-msgstr "" ++msgstr "定制输出图形的高度åƒç´ å€¼" + + #: malloc/memusagestat.c:70 + msgid "Generate graphic from memory profiling data" +-msgstr "" ++msgstr "从内存性能测试数æ®äº§ç”Ÿå›¾åƒ" + + #: malloc/memusagestat.c:73 + msgid "DATAFILE [OUTFILE]" +@@ -3117,7 +3152,7 @@ msgstr "æˆåŠŸ" + + #: nis/nis_error.h:2 + msgid "Probable success" +-msgstr "" ++msgstr "å¯èƒ½æˆåŠŸ" + + #: nis/nis_error.h:3 + msgid "Not found" +@@ -3125,7 +3160,7 @@ msgstr "找ä¸åˆ°" + + #: nis/nis_error.h:4 + msgid "Probably not found" +-msgstr "" ++msgstr "å¯èƒ½æ‰¾ä¸åˆ°" + + #: nis/nis_error.h:5 + msgid "Cache expired" +@@ -3145,11 +3180,11 @@ msgstr "æœåŠ¡å™¨å¿™ï¼Œé‡è¯•" + + #: nis/nis_error.h:9 + msgid "Generic system error" +-msgstr "通用系统错误" ++msgstr "一般系统错误" + + #: nis/nis_error.h:10 + msgid "First/next chain broken" +-msgstr "" ++msgstr "第一个/下一个链å掉了" + + #. TRANS Permission denied; the file permissions do not allow the attempted operation. + #: nis/nis_error.h:11 nis/ypclnt.c:876 sysdeps/gnu/errlist.c:158 +@@ -3162,7 +3197,7 @@ msgstr "ä¸æ˜¯æ‰€æœ‰è€…" + + #: nis/nis_error.h:13 + msgid "Name not served by this server" +-msgstr "" ++msgstr "域åæœåŠ¡ä¸æ˜¯ç”±æ­¤æœåŠ¡å™¨æä¾›" + + #: nis/nis_error.h:14 + msgid "Server out of memory" +@@ -3182,7 +3217,7 @@ msgstr "æ“作无效的对象" + + #: nis/nis_error.h:18 + msgid "Malformed name, or illegal name" +-msgstr "" ++msgstr "奇怪的å字,或ä¸åˆæ³•çš„åå­—" + + #: nis/nis_error.h:19 + msgid "Unable to create callback" +@@ -3190,7 +3225,7 @@ msgstr "无法创建回调函数" + + #: nis/nis_error.h:20 + msgid "Results sent to callback proc" +-msgstr "" ++msgstr "结果å‘é€ç»™è¿”回进程" + + #: nis/nis_error.h:21 + msgid "Not found, no such name" +@@ -3242,7 +3277,7 @@ msgstr "与回调函数交互时出错" + + #: nis/nis_error.h:33 + msgid "Non NIS+ namespace encountered" +-msgstr "" ++msgstr "é­é‡è¿å NIS+ 命å规则的å称" + + #: nis/nis_error.h:34 + msgid "Illegal object type for operation" +@@ -3250,7 +3285,7 @@ msgstr "æ“作的éžæ³•å¯¹è±¡ç±»åž‹" + + #: nis/nis_error.h:35 + msgid "Passed object is not the same object on server" +-msgstr "" ++msgstr "ç»è¿‡çš„对象与æœåŠ¡å™¨ä¸Šçš„并ä¸ç›¸åŒ" + + #: nis/nis_error.h:36 + msgid "Modify operation failed" +@@ -3282,7 +3317,7 @@ msgstr "NIS+ æœåŠ¡å™¨ä¸å¯ç”¨æˆ–未安 + + #: nis/nis_error.h:43 + msgid "Yes, 42 is the meaning of life" +-msgstr "" ++msgstr "是的,42 就是存在的æ„义" + + #: nis/nis_error.h:44 + msgid "Unable to authenticate NIS+ server" +@@ -3302,12 +3337,12 @@ msgstr "无法在æœåŠ¡å™¨ä¸Šåˆ›å»ºè¿›ç¨ + + #: nis/nis_error.h:48 + msgid "Master server busy, full dump rescheduled." +-msgstr "" ++msgstr "主è¦æœåŠ¡å™¨å¿™ä¸­ï¼Œå®Œæ•´æ•°æ®è½¬å‚¨å·²è¢«é‡è°ƒåº¦ã€‚" + + #: nis/nis_local_names.c:121 + #, c-format + msgid "LOCAL entry for UID %d in directory %s not unique\n" +-msgstr "" ++msgstr "%2$s 目录中 UID 为 %1$d 的项目在 LOCAL 中ä¸æ˜¯å”¯ä¸€çš„\n" + + #: nis/nis_print.c:51 + msgid "UNKNOWN" +@@ -3315,7 +3350,7 @@ msgstr "未知" + + #: nis/nis_print.c:109 + msgid "BOGUS OBJECT\n" +-msgstr "" ++msgstr "å‡çš„对象\n" + + #: nis/nis_print.c:112 + msgid "NO OBJECT\n" +@@ -3352,25 +3387,25 @@ msgstr "(未知对象)\n" + #: nis/nis_print.c:167 + #, c-format + msgid "Name : `%s'\n" +-msgstr "å称 :“%sâ€\n" ++msgstr "å称:“%sâ€\n" + + #: nis/nis_print.c:168 + #, c-format + msgid "Type : %s\n" +-msgstr "类型 : %s\n" ++msgstr "类型:%s\n" + + #: nis/nis_print.c:173 + msgid "Master Server :\n" +-msgstr "主æœåŠ¡å™¨ :\n" ++msgstr "主æœåŠ¡å™¨ï¼š\n" + + #: nis/nis_print.c:175 + msgid "Replicate :\n" +-msgstr "" ++msgstr "å¤åˆ¶ï¼š\n" + + #: nis/nis_print.c:176 + #, c-format + msgid "\tName : %s\n" +-msgstr "\tå称 :%s\n" ++msgstr "\tå称 :%s\n" + + #: nis/nis_print.c:177 + msgid "\tPublic Key : " +@@ -3383,7 +3418,7 @@ msgstr "无。\n" + #: nis/nis_print.c:184 + #, c-format + msgid "Diffie-Hellmann (%d bits)\n" +-msgstr "" ++msgstr "Diffie-Hellmann (%d ä½)\n" + + #: nis/nis_print.c:189 + #, c-format +@@ -3392,7 +3427,7 @@ msgstr "RSA (%d ä½)\n" + + #: nis/nis_print.c:192 + msgid "Kerberos.\n" +-msgstr "" ++msgstr "Kerberos.\n" + + #: nis/nis_print.c:195 + #, c-format +@@ -3402,7 +3437,7 @@ msgstr "未知 (类型 = %dï¼Œä½ = %d)\ + #: nis/nis_print.c:206 + #, c-format + msgid "\tUniversal addresses (%u)\n" +-msgstr "" ++msgstr "\tç»å¯¹åœ°å€ (%u)\n" + + #: nis/nis_print.c:228 + msgid "Time to live : " +@@ -3455,7 +3490,7 @@ msgstr "æœç´¢è·¯å¾„ :%s\n" + + #: nis/nis_print.c:273 + msgid "Columns :\n" +-msgstr "" ++msgstr "列数 :\n" + + #: nis/nis_print.c:276 + #, c-format +@@ -3482,7 +3517,7 @@ msgstr "连接到 :%s\n" + #: nis/nis_print.c:302 + #, c-format + msgid "\tEntry data of type %s\n" +-msgstr "" ++msgstr "\t型别为 %s 的项目数æ®\n" + + #: nis/nis_print.c:305 + #, c-format +@@ -3567,7 +3602,7 @@ msgstr "对象 #%d:\n" + #: nis/nis_print_group_entry.c:116 + #, c-format + msgid "Group entry for \"%s.%s\" group:\n" +-msgstr "" ++msgstr "群组 \"%s.%s\" 群组项目:\n" + + #: nis/nis_print_group_entry.c:124 + msgid " Explicit members:\n" +@@ -3595,19 +3630,19 @@ msgstr " 无递归æˆå‘˜\n" + + #: nis/nis_print_group_entry.c:148 + msgid " Explicit nonmembers:\n" +-msgstr "" ++msgstr " 明确的éžæˆå‘˜:\n" + + #: nis/nis_print_group_entry.c:153 + msgid " No explicit nonmembers\n" +-msgstr "" ++msgstr " 没有明确的éžæˆå‘˜\n" + + #: nis/nis_print_group_entry.c:156 + msgid " Implicit nonmembers:\n" +-msgstr "" ++msgstr " ä¸æ˜Žç¡®çš„éžæˆå‘˜:\n" + + #: nis/nis_print_group_entry.c:161 + msgid " No implicit nonmembers\n" +-msgstr "" ++msgstr " 没有ä¸æ˜Žç¡®çš„éžæˆå‘˜\n" + + #: nis/nis_print_group_entry.c:164 + msgid " Recursive nonmembers:\n" +@@ -3615,18 +3650,18 @@ msgstr " 递归éžæˆå‘˜ï¼š\n" + + #: nis/nis_print_group_entry.c:169 + msgid " No recursive nonmembers\n" +-msgstr "" ++msgstr " 没有递归的éžæˆå‘˜\n" + + #: nis/nss_nisplus/nisplus-publickey.c:100 + #: nis/nss_nisplus/nisplus-publickey.c:182 + #, c-format + msgid "DES entry for netname %s not unique\n" +-msgstr "" ++msgstr "netname %s çš„ DES 项目并ä¸å”¯ä¸€\n" + + #: nis/nss_nisplus/nisplus-publickey.c:219 + #, c-format + msgid "netname2user: missing group id list in `%s'" +-msgstr "" ++msgstr "netname2user:在 “%s†中缺少群组识别å·æ¸…å•" + + #: nis/nss_nisplus/nisplus-publickey.c:301 + #: nis/nss_nisplus/nisplus-publickey.c:307 +@@ -3634,12 +3669,12 @@ msgstr "" + #: nis/nss_nisplus/nisplus-publickey.c:381 + #, c-format + msgid "netname2user: (nis+ lookup): %s\n" +-msgstr "" ++msgstr "netname2user: (nis+ æœç´¢): %s\n" + + #: nis/nss_nisplus/nisplus-publickey.c:320 + #, c-format + msgid "netname2user: DES entry for %s in directory %s not unique" +-msgstr "" ++msgstr "netname2user: %s çš„ DES 项目在 %s 目录下并ä¸æ˜¯å”¯ä¸€çš„" + + #: nis/nss_nisplus/nisplus-publickey.c:338 + #, c-format +@@ -3649,7 +3684,7 @@ msgstr "netname2user:基本å称“%s + #: nis/nss_nisplus/nisplus-publickey.c:394 + #, c-format + msgid "netname2user: LOCAL entry for %s in directory %s not unique" +-msgstr "" ++msgstr "netname2user: %s 的本地端项目在 %s 目录下并ä¸æ˜¯å”¯ä¸€çš„" + + #: nis/nss_nisplus/nisplus-publickey.c:401 + msgid "netname2user: should not have uid 0" +@@ -3661,7 +3696,7 @@ msgstr "请求å‚数错误" + + #: nis/ypclnt.c:837 + msgid "RPC failure on NIS operation" +-msgstr "" ++msgstr "NIS è¿ä½œ RPC 失败" + + #: nis/ypclnt.c:840 + msgid "Can't bind to server which serves this domain" +@@ -3669,11 +3704,11 @@ msgstr "无法于为此域æœåŠ¡çš„æœåŠ + + #: nis/ypclnt.c:843 + msgid "No such map in server's domain" +-msgstr "" ++msgstr "在æœåŠ¡å™¨çš„领域数æ®ä¸­æ‰¾ä¸åˆ°æ­¤ä¸€æ˜ å°„表" + + #: nis/ypclnt.c:846 + msgid "No such key in map" +-msgstr "" ++msgstr "在映射表中没有此一键值" + + #: nis/ypclnt.c:849 + msgid "Internal NIS error" +@@ -3685,7 +3720,7 @@ msgstr "本地资æºåˆ†é…失败" + + #: nis/ypclnt.c:855 + msgid "No more records in map database" +-msgstr "" ++msgstr "在映射表数æ®åº“中没有其他纪录了" + + #: nis/ypclnt.c:858 + msgid "Can't communicate with portmapper" +@@ -3756,41 +3791,44 @@ msgstr "在主机缓冲区中é‡æ–°åŠ è½ + #: nscd/cache.c:151 + #, c-format + msgid "add new entry \"%s\" of type %s for %s to cache%s" +-msgstr "" ++msgstr "加入新的项目 “%sâ€ çš„åž‹æ€ %s 用于 %s 到 cache%s" + + #: nscd/cache.c:153 + msgid " (first)" +-msgstr "" ++msgstr " (首先)" ++ ++#: nscd/cache.c:288 ++#, c-format ++msgid "checking for monitored file `%s': %s" ++msgstr "检查监视的文件 '%s': %s" + +-#: nscd/cache.c:285 nscd/connections.c:1000 ++#: nscd/cache.c:298 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "无法对文件“%sâ€è¿›è¡Œ stat() æ“作:%s" ++msgid "monitored file `%s` changed (mtime)" ++msgstr "监视的文件 '%s' å˜äº† (mtime)" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" +-msgstr "" ++msgstr "pruning %s 缓存;时间 %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" +-msgstr "" ++msgstr "认为中 %s 项目 “%s†,逾时 %" + + #: nscd/connections.c:553 + #, c-format + msgid "invalid persistent database file \"%s\": %s" +-msgstr "" ++msgstr "无效的永久性的数æ®åº“文件 “%s†:%s" + + #: nscd/connections.c:561 +-#, fuzzy +-#| msgid "invalid ELF header" + msgid "uninitialized header" +-msgstr "无效的 ELF 头" ++msgstr "未起始的标头" + + #: nscd/connections.c:566 + msgid "header size does not match" +-msgstr "" ++msgstr "标头大å°ä¸å»åˆ" + + #: nscd/connections.c:576 + msgid "file size does not match" +@@ -3803,7 +3841,7 @@ msgstr "验è¯å¤±è´¥" + #: nscd/connections.c:607 + #, c-format + msgid "suggested size of table for database %s larger than the persistent database's table" +-msgstr "" ++msgstr "用于数æ®åº“ %s 的建议表格大å°å¤§äºŽæ°¸ä¹…性的数æ®åº“表格" + + #: nscd/connections.c:618 nscd/connections.c:702 + #, c-format +@@ -3811,15 +3849,14 @@ msgid "cannot create read-only descripto + msgstr "无法为“%sâ€åˆ›å»ºåªè¯»æ述符;没有 mmap" + + #: nscd/connections.c:634 +-#, fuzzy, c-format +-#| msgid "cannot open `%s'" ++#, c-format + msgid "cannot access '%s'" +-msgstr "无法打开“%sâ€" ++msgstr "无法访问 ‘%s’" + + #: nscd/connections.c:682 + #, c-format + msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart" +-msgstr "" ++msgstr "æ•°æ®åº“用于 %s å·²æŸå或被åŒæ­¥åœ°ä½¿ç”¨ï¼›è‹¥å¿…è¦ï¼Œæ‰‹åŠ¨ç§»é™¤ %s 并é‡å¯" + + #: nscd/connections.c:688 + #, c-format +@@ -3839,7 +3876,7 @@ msgstr "无法写入数æ®åº“文件 %s: + #: nscd/connections.c:801 + #, c-format + msgid "cannot set socket to close on exec: %s; disabling paranoia mode" +-msgstr "" ++msgstr "无法设置通信端到关闭于 exec:%s; åœç”¨ paranoia 模å¼" + + #: nscd/connections.c:850 + #, c-format +@@ -3861,155 +3898,213 @@ msgstr "无法设定套接字为 exec æ— + msgid "cannot enable socket to accept connections: %s" + msgstr "无法å¯ç”¨å¥—接字以接å—连接:%s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 + #, c-format +-msgid "register trace file %s for database %s" +-msgstr "" ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "为 `%s' ç¦ç”¨åŸºäºŽ inotify 的监控: %s" ++ ++#: nscd/connections.c:977 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "监控文件 `%s' (%d)" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "为目录 `%s' ç¦ç”¨åŸºäºŽ inotify 的监控: %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:994 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "监视目录 `%s` (%d)" ++ ++#: nscd/connections.c:1022 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "监视文件 %s, 用于数æ®åº“ %s" ++ ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "stat 文件 `%s' 失败;将ç¨åŽå†è¯•: %s" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" +-msgstr "" ++msgstr "æ供访问到 FD %d, 用于 %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "无法处ç†æ—§è¯·æ±‚版本 %d;当å‰ç‰ˆæœ¬ä¸º %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" +-msgstr "" ++msgstr "由于缺少æƒé™è€Œæ— æ³•å¤„ç†æ¥è‡ª %ld çš„è¦æ±‚" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" +-msgstr "" ++msgstr "由于缺少æƒé™è€Œæ— æ³•å¤„ç†æ¥è‡ª '%s' [%ld] çš„è¦æ±‚" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" +-msgstr "" ++msgstr "è¦æ±‚无法控柄的由于缺少æƒé™" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "无法写入结果:“%sâ€" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" +-msgstr "" ++msgstr "å–得调用程åºè¯†åˆ«ç æ—¶å‘生错误: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" +-msgstr "" ++msgstr "无法打开/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" +-msgstr "" ++msgstr "无法读å–/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" +-msgstr "" ++msgstr "无法å˜æ›´ä¸ºæ—§çš„ UID:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" +-msgstr "" ++msgstr "无法å˜æ›´ä¸ºæ—§çš„ GID:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" +-msgstr "" ++msgstr "无法å˜æ›´ä¸ºæ—§çš„工作目录:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" +-msgstr "" ++msgstr "re-exec 失败:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" +-msgstr "" ++msgstr "无法å˜æ›´ç›®å‰çš„工作目录到 “/†:%s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "读å–请求时没有读入足够的数æ®ï¼š%s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "请求中的键过长:%d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "读入请求键的时候没有读入足够的数æ®ï¼š%s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "处ç†è¯·æ±‚:已从进程ID %2$ld 收到请求 (版本 = %1$d)" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "处ç†è¯·æ±‚:已收到请求 (版本 = %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 + #, c-format +-msgid "disabled inotify after read error %d" +-msgstr "" ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "为 `%s` 忽略 inotify 事件(文件存在)" + +-#: nscd/connections.c:2375 +-#, fuzzy +-#| msgid "cannot initialize archive file" ++#: nscd/connections.c:1968 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "监视文件 `%s' 原为 %s,移除监视" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "移除文件监视 `%s' 失败: %s" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "监视的文件 '%s' 被写入" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "监视父目录 `%s' 原为 %s,移除 `%s' 上的监视" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "监视文件 `%s' 原为 %s,添加监视" ++ ++#: nscd/connections.c:2053 ++#, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "添加文件监视 `%s' 失败: %s" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "åœç”¨åŸºäºŽ inotify 的监控,在读å–错误 %d å‘生åŽ" ++ ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" +-msgstr "无法åˆå§‹åŒ–归档文件" ++msgstr "无法åˆå§‹åŒ–æ¡ä»¶å˜é‡" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" +-msgstr "" ++msgstr "无法开始清ç†çº¿ç¨‹ï¼›ç»ˆæ­¢ä¸­" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" +-msgstr "" ++msgstr "无法开始任何背景工作线程;终止中" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" +-msgstr "" ++msgstr "以用户 '%s' 的身分è¿è¡Œ nscd 失败" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "åˆå§‹åŒ– getgrouplist 失败" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist 失败" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups 失败" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" +-msgstr "" ++msgstr "写入 %s çš„æ•°æ®è¿‡çŸ­: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "无法在组缓冲区中找到“%sâ€ï¼" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "在组缓冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼" +@@ -4017,41 +4112,37 @@ msgstr "在组缓冲区中é‡æ–°åŠ è½½â€ + #: nscd/grpcache.c:531 + #, c-format + msgid "Invalid numeric gid \"%s\"!" +-msgstr "" ++msgstr "无效的 gid 数值 \"%s\"!" + + #: nscd/mem.c:425 + #, c-format + msgid "freed %zu bytes in %s cache" +-msgstr "" ++msgstr "在 %2$s 缓存中 %1$zu 字节å¯ç”¨" + + #: nscd/mem.c:568 + #, c-format + msgid "no more memory for database '%s'" +-msgstr "" ++msgstr "无内存å¯ç”¨äºŽæ•°æ®åº“ “%s†" + + #: nscd/netgroupcache.c:121 +-#, fuzzy, c-format +-#| msgid "Haven't found \"%s\" in group cache!" ++#, c-format + msgid "Haven't found \"%s\" in netgroup cache!" +-msgstr "无法在组缓冲区中找到“%sâ€ï¼" ++msgstr "尚未在网络群组缓存中找到 “%s†ï¼" + + #: nscd/netgroupcache.c:123 +-#, fuzzy, c-format +-#| msgid "Reloading \"%s\" in group cache!" ++#, c-format + msgid "Reloading \"%s\" in netgroup cache!" +-msgstr "在组缓冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼" ++msgstr "é‡æ–°åœ¨ç½‘络群组缓存中加载 “%s†ï¼" + + #: nscd/netgroupcache.c:495 +-#, fuzzy, c-format +-#| msgid "Haven't found \"%s\" in group cache!" ++#, c-format + msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!" +-msgstr "无法在组缓冲区中找到“%sâ€ï¼" ++msgstr "尚未在网络群组缓存中找到 “%s (%s,%s,%s)†ï¼" + + #: nscd/netgroupcache.c:498 +-#, fuzzy, c-format +-#| msgid "Reloading \"%s\" in group cache!" ++#, c-format + msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!" +-msgstr "在组缓冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼" ++msgstr "é‡æ–°åœ¨ç½‘络群组缓存中加载 “%s (%s,%s,%s)†ï¼" + + #: nscd/nscd.c:106 + msgid "Read configuration data from NAME" +@@ -4059,15 +4150,15 @@ msgstr "从 NAME 中读å–é…置数æ®" + + #: nscd/nscd.c:108 + msgid "Do not fork and display messages on the current tty" +-msgstr "" ++msgstr "ä¸åœ¨ç›®å‰çš„ tty 产生å­è¿›ç¨‹ (fork) 以åŠæ˜¾ç¤ºæ¶ˆæ¯" + + #: nscd/nscd.c:110 + msgid "Do not fork, but otherwise behave like a daemon" +-msgstr "" ++msgstr "ä¸è¡ç”Ÿï¼Œä½†æ˜¯å¦åˆ™ behave 如åŒå®ˆæŠ¤ç¨‹åº" + + #: nscd/nscd.c:111 + msgid "NUMBER" +-msgstr "" ++msgstr "å·ç " + + #: nscd/nscd.c:111 + msgid "Start NUMBER threads" +@@ -4078,22 +4169,20 @@ msgid "Shut the server down" + msgstr "关闭æœåŠ¡å™¨" + + #: nscd/nscd.c:113 +-#, fuzzy +-#| msgid "Print current configuration statistic" + msgid "Print current configuration statistics" +-msgstr "打å°å½“å‰é…置统计" ++msgstr "å°å‡ºç›®å‰ç»„æ€ç»Ÿè®¡" + + #: nscd/nscd.c:114 + msgid "TABLE" +-msgstr "" ++msgstr "表格" + + #: nscd/nscd.c:115 + msgid "Invalidate the specified cache" +-msgstr "" ++msgstr "使选定的缓存无效" + + #: nscd/nscd.c:116 + msgid "TABLE,yes" +-msgstr "" ++msgstr "è¦åˆ¶ä½œè¡¨æ ¼" + + #: nscd/nscd.c:117 + msgid "Use separate cache for each user" +@@ -4101,9 +4190,9 @@ msgstr "为æ¯ä¸ªç”¨æˆ·ä½¿ç”¨åˆ†ç¦»çš„ç¼ + + #: nscd/nscd.c:122 + msgid "Name Service Cache Daemon." +-msgstr "" ++msgstr "网域å称缓存精çµ" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "å‚数个数错误" +@@ -4119,10 +4208,9 @@ msgid "already running" + msgstr "å·²ç»åœ¨è¿è¡Œ" + + #: nscd/nscd.c:194 +-#, fuzzy, c-format +-#| msgid "cannot create directory for output files" ++#, c-format + msgid "cannot create a pipe to talk to the child" +-msgstr "无法为输出文件创建目录" ++msgstr "无法为åŒå­è¿›ç¨‹äº¤æµåˆ›å»ºç®¡é“" + + #: nscd/nscd.c:198 + #, c-format +@@ -4131,13 +4219,13 @@ msgstr "无法 fork" + + #: nscd/nscd.c:268 + msgid "cannot change current working directory to \"/\"" +-msgstr "" ++msgstr "无法å˜æ›´ç›®å‰çš„工作目录到 “/†" + + #: nscd/nscd.c:276 + msgid "Could not create log file" + msgstr "无法创建日志文件" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "写入ä¸å®Œæ•´" +@@ -4152,21 +4240,20 @@ msgstr "无法读入 invalidate ACK" + msgid "invalidation failed" + msgstr "无效化失败" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "åªæœ‰æ ¹ç”¨æˆ·å…许使用本选项ï¼" + + #: nscd/nscd.c:437 +-#, fuzzy, c-format +-#| msgid "%s is not a known library type" ++#, c-format + msgid "'%s' is not a known database" +-msgstr "%s ä¸æ˜¯å·²çŸ¥ç±»åž‹çš„库" ++msgstr " ‘%s’ 并éžä¸€å·²çŸ¥æ•°æ®åº“" + + #: nscd/nscd.c:452 + #, c-format + msgid "secure services not implemented anymore" +-msgstr "" ++msgstr "安全æœåŠ¡ä¸å†å®žçŽ°" + + #: nscd/nscd.c:485 + #, c-format +@@ -4177,23 +4264,26 @@ msgid "" + "For bug reporting instructions, please see:\n" + "%s.\n" + msgstr "" ++"支æŒçš„表:\n" ++"%s\n" ++"\n" ++"è¦èŽ·å¾— bug 报告指示,请è§ï¼š\n" ++"%s。\n" + + #: nscd/nscd.c:635 +-#, fuzzy, c-format +-#| msgid "lstat failed" ++#, c-format + msgid "'wait' failed\n" +-msgstr "lstat æ“作失败" ++msgstr "'wait' 失败\n" + + #: nscd/nscd.c:642 + #, c-format + msgid "child exited with status %d\n" +-msgstr "" ++msgstr "å­è¿›ç¨‹ä»¥çŠ¶æ€ %d 退出\n" + + #: nscd/nscd.c:647 +-#, fuzzy, c-format +-#| msgid "Interrupted by a signal" ++#, c-format + msgid "child terminated by signal %d\n" +-msgstr "被信å·ä¸­æ–­" ++msgstr "å­è¿›ç¨‹è¢«ä¿¡å· %d 中断\n" + + #: nscd/nscd_conf.c:54 + #, c-format +@@ -4208,17 +4298,17 @@ msgstr "解æžé”™è¯¯ï¼š%s" + #: nscd/nscd_conf.c:191 + #, c-format + msgid "Must specify user name for server-user option" +-msgstr "" ++msgstr "必须为æœåŠ¡å™¨ç”¨æˆ·é€‰é¡¹æŒ‡å®šç”¨æˆ·å" + + #: nscd/nscd_conf.c:198 + #, c-format + msgid "Must specify user name for stat-user option" +-msgstr "" ++msgstr "必须为 stat 用户选项指定用户å" + + #: nscd/nscd_conf.c:255 + #, c-format + msgid "Must specify value for restart-interval option" +-msgstr "" ++msgstr "必须指定用于 restart-interval 选项的值" + + #: nscd/nscd_conf.c:269 + #, c-format +@@ -4228,42 +4318,42 @@ msgstr "未知的选项:%s %s %s" + #: nscd/nscd_conf.c:282 + #, c-format + msgid "cannot get current working directory: %s; disabling paranoia mode" +-msgstr "" ++msgstr "无法å–å¾—ç›®å‰çš„工作目录:%s; åœç”¨ paranoia 模å¼" + + #: nscd/nscd_conf.c:302 + #, c-format + msgid "maximum file size for %s database too small" +-msgstr "" ++msgstr "最大值文件大å°ç”¨äºŽ %s æ•°æ®åº“太å°" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "无法写入统计:%s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" +-msgstr "" ++msgstr "是" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" +-msgstr "" ++msgstr "æ— " + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "åªæœ‰æ ¹ç”¨æˆ·æˆ– %s å…许使用本选项ï¼" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd 未è¿è¡Œï¼\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "无法读入统计数æ®" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4274,27 +4364,27 @@ msgstr "" + "\n" + "%15d æœåŠ¡å™¨è°ƒè¯•çº§åˆ«\n" + +-#: nscd/nscd_stat.c:231 +-#, c-format ++#: nscd/nscd_stat.c:233 ++#, fuzzy, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" +-msgstr "" ++msgstr "%3ud %2uh %2um %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶\n" + +-#: nscd/nscd_stat.c:234 +-#, c-format ++#: nscd/nscd_stat.c:236 ++#, fuzzy, c-format + msgid " %2uh %2um %2lus server runtime\n" +-msgstr "" ++msgstr " %2uh %2um %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶\n" + +-#: nscd/nscd_stat.c:236 +-#, c-format ++#: nscd/nscd_stat.c:238 ++#, fuzzy, c-format + msgid " %2um %2lus server runtime\n" +-msgstr "" ++msgstr " %2um %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶æœŸ\n" + +-#: nscd/nscd_stat.c:238 +-#, c-format ++#: nscd/nscd_stat.c:240 ++#, fuzzy, c-format + msgid " %2lus server runtime\n" +-msgstr "" ++msgstr " %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶æœŸ\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4304,8 +4394,14 @@ msgid "" + "%15lu restart internal\n" + "%15u reload count\n" + msgstr "" ++"%15d ç›®å‰çº¿ç¨‹æ•°é‡\n" ++"%15d 最大线程数é‡\n" ++"%15lu 客户端必须等待的次数\n" ++"%15s paranoia 模å¼å·²å¯ç”¨\n" ++"%15lu 内部é‡æ–°å¯åŠ¨\n" ++"%15u é‡æ–°åŠ è½½è®¡æ•°\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4332,6 +4428,29 @@ msgid "" + "%15 memory allocations failed\n" + "%15s check /etc/%s for changes\n" + msgstr "" ++"\n" ++"%s 缓存:\n" ++"\n" ++"%15s 缓存已å¯ç”¨\n" ++"%15s 缓存为æŒç»­çš„\n" ++"%15s 缓存为共享\n" ++"%15zu 建议的大å°\n" ++"%15zu 总计数æ®ä¿å­˜æ± å¤§å°\n" ++"%15zu 使用的数æ®ä¿å­˜æ± å¤§å°\n" ++"%15lu 正项目的存在时间(秒)\n" ++"%15lu 负项目的存在时间(秒)\n" ++"%15 正项目中找到缓存数\n" ++"%15 负项目中找到缓存数\n" ++"%15 正项目中é—æ¼çš„缓存数\n" ++"%15 负项目中é—æ¼çš„缓存数\n" ++"%15lu%% 缓存找到的比例\n" ++"%15zu ç›®å‰ç¼“存的数é‡å€¼\n" ++"%15zu 最大值缓存数é‡å€¼\n" ++"%15zu å·²æœç´¢æœ€å¤§å€¼é“¾æŽ¥é•¿åº¦\n" ++"%15 rdlock 延迟数é‡\n" ++"%15 wrlock 延迟数é‡\n" ++"%15 内存é…置失败\n" ++"%15s 检查 /etc/%s çš„å˜æ›´\n" + + #: nscd/pwdcache.c:428 + #, c-format +@@ -4346,89 +4465,87 @@ msgstr "在å£ä»¤ç¼“冲区中é‡æ–°åŠ è½ + #: nscd/pwdcache.c:511 + #, c-format + msgid "Invalid numeric uid \"%s\"!" +-msgstr "" ++msgstr "无效的 uid 数值 \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" +-msgstr "" ++msgstr "失败的打开连接到审核å­ç³»ç»Ÿï¼š%m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" +-msgstr "" ++msgstr "设置功能ä¿æŒæ—¶å¤±è´¥" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" +-msgstr "" ++msgstr "prctl(KEEPCAPS) 失败" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" +-msgstr "" ++msgstr "åˆå§‹åŒ–功能放弃时失败" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init 失败" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" +-msgstr "" ++msgstr "放弃功能时失败" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc 失败" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" +-msgstr "" ++msgstr "解除设置功能ä¿æŒæ—¶å¤±è´¥" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" +-msgstr "" ++msgstr "å†³å®šå¦‚æžœå†…æ ¸æ”¯æŒ SELinux 时失败" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" +-msgstr "" ++msgstr "开始 AVC 线程时失败" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "无法创建 AVC é”" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "无法å¯åŠ¨ AVC" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" +-msgstr "" ++msgstr "访问矢é‡ç¼“å­˜ (AVC) 开始" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." +-msgstr "" ++msgstr "为未定义的对象类型或æƒé™è¯·æ±‚策略时出错。" + +-#: nscd/selinux.c:376 +-#, fuzzy +-#| msgid "Error getting sid from context" ++#: nscd/selinux.c:375 + msgid "Error getting security class for nscd." +-msgstr "æ— æ³•ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– sid" ++msgstr "å–å¾— nscd 的安全类时å‘生错误" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." +-msgstr "" ++msgstr "å°†æƒé™å \"%s\" 翻译到访问矢é‡ä½æ—¶å‡ºé”™ã€‚" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" +-msgstr "" ++msgstr "å–得对等通信端的状æ€ç»„åˆæ—¶å‘生错误" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" +-msgstr "" ++msgstr "å–å¾— nscd 的状æ€ç»„åˆæ—¶å‘生错误" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "æ— æ³•ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– sid" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4443,6 +4560,17 @@ msgid "" + "%15u CAV probes\n" + "%15u CAV misses\n" + msgstr "" ++"\n" ++"SELinux AVC 统计:\n" ++"\n" ++"%15u 项目查找\n" ++"%15u 项目符åˆé¡¹ç›®\n" ++"%15u 项目缺少\n" ++"%15u 项目èˆå¼ƒ\n" ++"%15u CAV 查找\n" ++"%15u CAV 符åˆé¡¹ç›®\n" ++"%15u CAV 探查\n" ++"%15u CAV 缺少\n" + + #: nscd/servicescache.c:387 + #, c-format +@@ -4459,10 +4587,8 @@ msgid "database [key ...]" + msgstr "æ•°æ®åº“ [é”® ...]" + + #: nss/getent.c:58 +-#, fuzzy +-#| msgid "CONF" + msgid "CONFIG" +-msgstr "CONF" ++msgstr "组æ€" + + #: nss/getent.c:58 + msgid "Service configuration to be used" +@@ -4470,56 +4596,54 @@ msgstr "è¦ä½¿ç”¨çš„æœåŠ¡é…ç½®" + + #: nss/getent.c:59 + msgid "disable IDN encoding" +-msgstr "" ++msgstr "åœç”¨ IDN ç¼–ç " + + #: nss/getent.c:64 +-#, fuzzy +-#| msgid "getent - get entries from administrative database." + msgid "Get entries from administrative database." +-msgstr "getent - é‡ç®¡ç†æ•°æ®åº“获å–æ¡ç›®ã€‚" ++msgstr "从管ç†æ•°æ®åº“å–å¾—æ¡ç›®ã€‚" + + #: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522 + #, c-format + msgid "Enumeration not supported on %s\n" + msgstr "%s ä¸æ”¯æŒæžšä¸¾\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "未知的数æ®åº“å" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "支æŒçš„æ•°æ®åº“:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "未知的数æ®åº“:%s\n" + + #: nss/makedb.c:119 + msgid "Convert key to lower case" +-msgstr "" ++msgstr "转æ¢é”®è½¬æ¢ä¸ºå°å†™" + + #: nss/makedb.c:122 + msgid "Do not print messages while building database" +-msgstr "" ++msgstr "ä¸å°å‡ºæ¶ˆæ¯å½“创建数æ®åº“" + + #: nss/makedb.c:124 + msgid "Print content of database file, one entry a line" +-msgstr "" ++msgstr "å°å‡ºå†…容的数æ®åº“文件,æ¯é¡¹ä¸€è¡Œ" + + #: nss/makedb.c:125 + msgid "CHAR" +-msgstr "" ++msgstr "字符" + + #: nss/makedb.c:126 + msgid "Generated line not part of iteration" +-msgstr "" ++msgstr "产生的行ä¸æ˜¯è¿­ä»£çš„一部分" + + #: nss/makedb.c:131 + msgid "Create simple database from textual input." +-msgstr "" ++msgstr "从文本输入创建简å•çš„æ•°æ®åº“。" + + #: nss/makedb.c:134 + msgid "" +@@ -4532,21 +4656,19 @@ msgstr "" + "-u 输入文件" + + #: nss/makedb.c:227 +-#, fuzzy, c-format +-#| msgid "cannot open database file `%s': %s" ++#, c-format + msgid "cannot open database file `%s'" +-msgstr "无法打开数æ®åº“文件“%sâ€: %s" ++msgstr "无法打开数æ®åº“文件 %s" + + #: nss/makedb.c:272 + #, c-format + msgid "no entries to be processed" +-msgstr "" ++msgstr "没有æ¡ç›®å¯ä¾›å¤„ç†" + + #: nss/makedb.c:282 +-#, fuzzy, c-format +-#| msgid "cannot create temporary file" ++#, c-format + msgid "cannot create temporary file name" +-msgstr "无法创建临时文件" ++msgstr "无法创建暂存文件å称" + + #: nss/makedb.c:288 + #, c-format +@@ -4554,26 +4676,23 @@ msgid "cannot create temporary file" + msgstr "无法创建临时文件" + + #: nss/makedb.c:304 +-#, fuzzy, c-format +-#| msgid "cannot map locale archive file" ++#, c-format + msgid "cannot stat newly created file" +-msgstr "无法映射区域归档文件" ++msgstr "无法å–得新创建文件的状æ€" + + #: nss/makedb.c:315 +-#, fuzzy, c-format +-#| msgid "cannot create temporary file" ++#, c-format + msgid "cannot rename temporary file" +-msgstr "无法创建临时文件" ++msgstr "无法é‡å‘½å暂存文件" + + #: nss/makedb.c:531 nss/makedb.c:554 +-#, fuzzy, c-format +-#| msgid "cannot create searchlist" ++#, c-format + msgid "cannot create search tree" +-msgstr "无法创建æœç´¢åˆ—表" ++msgstr "无法创建æœç´¢æ ‘" + + #: nss/makedb.c:560 + msgid "duplicate key" +-msgstr "" ++msgstr "é‡å¤é”®å€¼" + + #: nss/makedb.c:572 + #, c-format +@@ -4581,34 +4700,29 @@ msgid "problems while reading `%s'" + msgstr "读å–“%sâ€æ—¶å‡ºé”™" + + #: nss/makedb.c:799 +-#, fuzzy, c-format +-#| msgid "while writing database file" ++#, c-format + msgid "failed to write new database file" +-msgstr "当写数æ®åº“文件" ++msgstr "写入新数æ®åº“文件时失败" + + #: nss/makedb.c:812 +-#, fuzzy, c-format +-#| msgid "cannot write to database file %s: %s" ++#, c-format + msgid "cannot stat database file" +-msgstr "无法写入数æ®åº“文件 %s: %s" ++msgstr "无法å–å¾—æ•°æ®åº“文件的状æ€" + + #: nss/makedb.c:817 +-#, fuzzy, c-format +-#| msgid "cannot open database file `%s': %s" ++#, c-format + msgid "cannot map database file" +-msgstr "无法打开数æ®åº“文件“%sâ€: %s" ++msgstr "无法映射数æ®åº“文件" + + #: nss/makedb.c:820 +-#, fuzzy, c-format +-#| msgid "while writing database file" ++#, c-format + msgid "file not a database file" +-msgstr "当写数æ®åº“文件" ++msgstr "文件ä¸æ˜¯æ•°æ®åº“文件" + + #: nss/makedb.c:871 +-#, fuzzy, c-format +-#| msgid "cannot open output file `%s' for category `%s'" ++#, c-format + msgid "cannot set file creation context for `%s'" +-msgstr "无法为范畴“%2$sâ€æ‰“开输出文件“%1$sâ€" ++msgstr "无法为 %s 设置文件创建语境" + + #: posix/getconf.c:400 + #, c-format +@@ -4618,7 +4732,7 @@ msgstr "用法:%s [-v 规范] å˜é‡å + #: posix/getconf.c:403 + #, c-format + msgid " %s -a [pathname]\n" +-msgstr "" ++msgstr " %s -a [路径å称]\n" + + #: posix/getconf.c:479 + #, c-format +@@ -4631,6 +4745,13 @@ msgid "" + "environment SPEC.\n" + "\n" + msgstr "" ++"用法:getconf [-v SPEC] VAR\n" ++" 或: getconf [-v SPEC] PATH_VAR 路径\n" ++"\n" ++"å–å¾—å˜é‡ VAR 的组æ€å€¼ï¼Œæˆ–是å˜é‡ PATH_VAR\n" ++"用于路径 PATH。 如果已æä¾› SPEC,就给出用于编译的\n" ++"环境 SPEC 值。\n" ++"\n" + + #: posix/getconf.c:537 + #, c-format +@@ -4640,7 +4761,7 @@ msgstr "未知的规范“%sâ€" + #: posix/getconf.c:589 + #, c-format + msgid "Couldn't execute %s" +-msgstr "" ++msgstr "无法è¿è¡Œ %s" + + #: posix/getconf.c:633 posix/getconf.c:649 + msgid "undefined" +@@ -4652,71 +4773,60 @@ msgid "Unrecognized variable `%s'" + msgstr "ä¸å¯è¯†åˆ«çš„å˜é‡â€œ%sâ€" + + #: posix/getopt.c:592 posix/getopt.c:621 +-#, fuzzy, c-format +-#| msgid "%s: option `%s' is ambiguous\n" ++#, c-format + msgid "%s: option '%s' is ambiguous; possibilities:" +-msgstr "%s:选项“%sâ€å…·æœ‰äºŒä¹‰æ€§\n" ++msgstr "%s:选项 ‘%s’ 是模棱两å¯çš„ï¼›å¯èƒ½æ˜¯ï¼š" + + #: posix/getopt.c:662 posix/getopt.c:666 +-#, fuzzy, c-format +-#| msgid "%s: option `--%s' doesn't allow an argument\n" ++#, c-format + msgid "%s: option '--%s' doesn't allow an argument\n" +-msgstr "%s:选项“--%sâ€ä¸æŽ¥å—任何å‚æ•°\n" ++msgstr "%s: 选项 `--%s' ä¸å…许附加å‚æ•°\n" + + #: posix/getopt.c:675 posix/getopt.c:680 +-#, fuzzy, c-format +-#| msgid "%s: option `%c%s' doesn't allow an argument\n" ++#, c-format + msgid "%s: option '%c%s' doesn't allow an argument\n" +-msgstr "%s:选项“%c%sâ€ä¸æŽ¥å—å‚æ•°\n" ++msgstr "%s: 选项 `%c%s' ä¸å…许附加å‚æ•°\n" + + #: posix/getopt.c:723 posix/getopt.c:742 +-#, fuzzy, c-format +-#| msgid "%s: option `%s' requires an argument\n" ++#, c-format + msgid "%s: option '--%s' requires an argument\n" +-msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" ++msgstr "%s:选项 ‘--%s’ 需è¦ä¸€ä¸ªå‚æ•°\n" + + #: posix/getopt.c:780 posix/getopt.c:783 +-#, fuzzy, c-format +-#| msgid "%s: unrecognized option `--%s'\n" ++#, c-format + msgid "%s: unrecognized option '--%s'\n" +-msgstr "%s:无法识别的选项“--%sâ€\n" ++msgstr "%s: 未知的选项 `--%s'\n" + + #: posix/getopt.c:791 posix/getopt.c:794 +-#, fuzzy, c-format +-#| msgid "%s: unrecognized option `%c%s'\n" ++#, c-format + msgid "%s: unrecognized option '%c%s'\n" +-msgstr "%s:无法识别的选项“%c%sâ€\n" ++msgstr "%s: 未知的选项 `%c%s'\n" + + #: posix/getopt.c:843 posix/getopt.c:846 +-#, fuzzy, c-format +-#| msgid "%s: invalid option -- %c\n" ++#, c-format + msgid "%s: invalid option -- '%c'\n" +-msgstr "%s:无效选项 -- %c\n" ++msgstr "%s: ä¸é€‚用的选项 -- %c\n" + + #: posix/getopt.c:899 posix/getopt.c:916 posix/getopt.c:1126 + #: posix/getopt.c:1144 +-#, fuzzy, c-format +-#| msgid "%s: option requires an argument -- %c\n" ++#, c-format + msgid "%s: option requires an argument -- '%c'\n" +-msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n" ++msgstr "%s: 选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n" + + #: posix/getopt.c:972 posix/getopt.c:988 +-#, fuzzy, c-format +-#| msgid "%s: option `-W %s' is ambiguous\n" ++#, c-format + msgid "%s: option '-W %s' is ambiguous\n" +-msgstr "%s:选项“-W %sâ€å…·æœ‰äºŒä¹‰æ€§\n" ++msgstr "%s: 选项 `-W %s' å«ä¹‰ä¸æ¸…\n" + + #: posix/getopt.c:1012 posix/getopt.c:1030 +-#, fuzzy, c-format +-#| msgid "%s: option `-W %s' doesn't allow an argument\n" ++#, c-format + msgid "%s: option '-W %s' doesn't allow an argument\n" +-msgstr "%s:选项“-W %sâ€ä¸æŽ¥å—å‚æ•°\n" ++msgstr "%s: 选项 `-W %s' ä¸å…许附加å‚æ•°\n" + + #: posix/getopt.c:1051 posix/getopt.c:1069 +-#, fuzzy, c-format +-#| msgid "%s: option `%s' requires an argument\n" ++#, c-format + msgid "%s: option '-W %s' requires an argument\n" +-msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" ++msgstr "%s:选项 ‘-W %s’ 需è¦ä¸€ä¸ªå‚æ•°\n" + + #: posix/regcomp.c:140 + msgid "No match" +@@ -4728,7 +4838,7 @@ msgstr "无效的常规表达å¼" + + #: posix/regcomp.c:146 + msgid "Invalid collation character" +-msgstr "" ++msgstr "ä¸é€‚用的对照字符" + + #: posix/regcomp.c:149 + msgid "Invalid character class name" +@@ -4736,7 +4846,7 @@ msgstr "无效的字符类å" + + #: posix/regcomp.c:152 + msgid "Trailing backslash" +-msgstr "" ++msgstr "尾端的å斜线" + + #: posix/regcomp.c:155 + msgid "Invalid back reference" +@@ -4760,7 +4870,7 @@ msgstr "无效的 \\{\\} 的内容" + + #: posix/regcomp.c:170 + msgid "Invalid range end" +-msgstr "" ++msgstr "ä¸é€‚用的范围结æŸ" + + #: posix/regcomp.c:173 + msgid "Memory exhausted" +@@ -4786,7 +4896,7 @@ msgstr "ä¸åŒ¹é…çš„ ) 或 \\)" + msgid "No previous regular expression" + msgstr "没有å‰ä¸€ä¸ªå¸¸è§„表达å¼" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "å‚数为 null 或未设置" + +@@ -4841,227 +4951,188 @@ msgstr "%s:行 %d:错误命令“%sâ + #: resolv/res_hconf.c:283 + #, c-format + msgid "%s: line %d: ignoring trailing garbage `%s'\n" +-msgstr "" ++msgstr "%s: è¡Œ %d: æ­£åœ¨å¿½ç•¥å°¾ç«¯çš„æ— ç”¨æ•°æ® `%s'\n" + + #: stdio-common/psiginfo-data.h:2 +-#, fuzzy +-#| msgid "Illegal seek" + msgid "Illegal opcode" +-msgstr "éžæ³• seek æ“作" ++msgstr "ä¸åˆæ³•çš„ opcode" + + #: stdio-common/psiginfo-data.h:3 +-#, fuzzy +-#| msgid "Illegal seek" + msgid "Illegal operand" +-msgstr "éžæ³• seek æ“作" ++msgstr "ä¸åˆæ³•çš„算符" + + #: stdio-common/psiginfo-data.h:4 + msgid "Illegal addressing mode" +-msgstr "" ++msgstr "ä¸åˆæ³•çš„寻å€æ¨¡å¼" + + #: stdio-common/psiginfo-data.h:5 +-#, fuzzy +-#| msgid "Illegal seek" + msgid "Illegal trap" +-msgstr "éžæ³• seek æ“作" ++msgstr "ä¸åˆæ³•çš„陷阱" + + #: stdio-common/psiginfo-data.h:6 + msgid "Privileged opcode" +-msgstr "" ++msgstr "需è¦æƒé™çš„ opcode" + + #: stdio-common/psiginfo-data.h:7 + msgid "Privileged register" +-msgstr "" ++msgstr "需è¦æƒé™çš„暂存器" + + #: stdio-common/psiginfo-data.h:8 +-#, fuzzy +-#| msgid "preprocessor error" + msgid "Coprocessor error" +-msgstr "预处ç†é”™è¯¯" ++msgstr "辅助处ç†å™¨é”™è¯¯" + + #: stdio-common/psiginfo-data.h:9 +-#, fuzzy +-#| msgid "Internal NIS error" + msgid "Internal stack error" +-msgstr "内部 NIS 错误" ++msgstr "内部堆栈错误" + + #: stdio-common/psiginfo-data.h:12 + msgid "Integer divide by zero" +-msgstr "" ++msgstr "整数被零除" + + #: stdio-common/psiginfo-data.h:13 +-#, fuzzy +-#| msgid "time overflow" + msgid "Integer overflow" +-msgstr "时间溢出" ++msgstr "整数溢出" + + #: stdio-common/psiginfo-data.h:14 +-#, fuzzy +-#| msgid "Floating point exception" + msgid "Floating-point divide by zero" +-msgstr "浮点数例外" ++msgstr "浮点数被零除" + + #: stdio-common/psiginfo-data.h:15 +-#, fuzzy +-#| msgid "Floating point exception" + msgid "Floating-point overflow" +-msgstr "浮点数例外" ++msgstr "浮点数溢出" + + #: stdio-common/psiginfo-data.h:16 +-#, fuzzy +-#| msgid "Floating point exception" + msgid "Floating-point underflow" +-msgstr "浮点数例外" ++msgstr "浮点数下é™æº¢å‡º" + + #: stdio-common/psiginfo-data.h:17 +-#, fuzzy +-#| msgid "Floating point exception" + msgid "Floating-poing inexact result" +-msgstr "浮点数例外" ++msgstr "ä¸ç²¾ç¡®çš„浮点数结果" + + #: stdio-common/psiginfo-data.h:18 +-#, fuzzy +-#| msgid "Invalid object for operation" + msgid "Invalid floating-point operation" +-msgstr "æ“作无效的对象" ++msgstr "无效的浮点数æ“作" + + #: stdio-common/psiginfo-data.h:19 +-#, fuzzy +-#| msgid "Link number out of range" + msgid "Subscript out of range" +-msgstr "连接数超出范围" ++msgstr "注标超出范围" + + #: stdio-common/psiginfo-data.h:22 + msgid "Address not mapped to object" +-msgstr "" ++msgstr "地å€æ²¡æœ‰æ˜ å°„到对象" + + #: stdio-common/psiginfo-data.h:23 + msgid "Invalid permissions for mapped object" +-msgstr "" ++msgstr "对于映射对象的æƒé™æ— æ•ˆ" + + #: stdio-common/psiginfo-data.h:26 +-#, fuzzy +-#| msgid "Invalid argument" + msgid "Invalid address alignment" +-msgstr "无效的å‚æ•°" ++msgstr "无效的地å€å¯¹é½" + + #: stdio-common/psiginfo-data.h:27 + msgid "Nonexisting physical address" +-msgstr "" ++msgstr "ä¸å­˜åœ¨çš„实体地å€" + + #: stdio-common/psiginfo-data.h:28 + msgid "Object-specific hardware error" +-msgstr "" ++msgstr "对象特定的硬件错误" + + #: stdio-common/psiginfo-data.h:31 + msgid "Process breakpoint" +-msgstr "" ++msgstr "进程中断点" + + #: stdio-common/psiginfo-data.h:32 + msgid "Process trace trap" +-msgstr "" ++msgstr "进程追踪陷阱" + + #: stdio-common/psiginfo-data.h:35 +-#, fuzzy +-#| msgid "Child exited" + msgid "Child has exited" +-msgstr "å­è¿›ç¨‹å·²é€€å‡º" ++msgstr "å­è¿›ç¨‹å·²ç»“æŸ" + + #: stdio-common/psiginfo-data.h:36 + msgid "Child has terminated abnormally and did not create a core file" +-msgstr "" ++msgstr "å­è¿›ç¨‹å·²å¼‚常终止且未创建内存文件" + + #: stdio-common/psiginfo-data.h:37 + msgid "Child has terminated abnormally and created a core file" +-msgstr "" ++msgstr "å­è¿›ç¨‹å¼‚常终止,创建了内存转储文件" + + #: stdio-common/psiginfo-data.h:38 + msgid "Traced child has trapped" +-msgstr "" ++msgstr "追踪的å­è¿›ç¨‹å·²è½å…¥é™·é˜±" + + #: stdio-common/psiginfo-data.h:39 +-#, fuzzy +-#| msgid "Child exited" + msgid "Child has stopped" +-msgstr "å­è¿›ç¨‹å·²é€€å‡º" ++msgstr "å­è¿›ç¨‹å·²åœæ­¢" + + #: stdio-common/psiginfo-data.h:40 + msgid "Stopped child has continued" +-msgstr "" ++msgstr "åœæ­¢çš„å­è¿›ç¨‹å·²ç»§ç»­" + + #: stdio-common/psiginfo-data.h:43 +-#, fuzzy +-#| msgid "No data available" + msgid "Data input available" +-msgstr "没有å¯ç”¨çš„æ•°æ®" ++msgstr "æ•°æ®è¾“å…¥å¯ç”¨" + + #: stdio-common/psiginfo-data.h:44 +-#, fuzzy +-#| msgid "No buffer space available" + msgid "Output buffers available" +-msgstr "没有å¯ç”¨çš„缓冲区空间" ++msgstr "输出缓冲区å¯ç”¨" + + #: stdio-common/psiginfo-data.h:45 +-#, fuzzy +-#| msgid "No buffer space available" + msgid "Input message available" +-msgstr "没有å¯ç”¨çš„缓冲区空间" ++msgstr "输入消æ¯å¯ç”¨" + + #: stdio-common/psiginfo-data.h:46 + msgid "I/O error" + msgstr "I/O 错误" + + #: stdio-common/psiginfo-data.h:47 +-#, fuzzy +-#| msgid "RPC program not available" + msgid "High priority input available" +-msgstr "RPC 程åºä¸å¯ç”¨" ++msgstr "高优先æƒè¾“å…¥å¯ç”¨" + + #: stdio-common/psiginfo-data.h:48 + msgid "Device disconnected" +-msgstr "" ++msgstr "设备已ç»ç»“æŸè¿žæŽ¥" + + #: stdio-common/psiginfo.c:139 + msgid "Signal sent by kill()" +-msgstr "" ++msgstr "kill() å·²å‘é€ä¿¡å·" + + #: stdio-common/psiginfo.c:142 + msgid "Signal sent by sigqueue()" +-msgstr "" ++msgstr "sigqueue() å·²å‘é€ä¿¡å·" + + #: stdio-common/psiginfo.c:145 + msgid "Signal generated by the expiration of a timer" +-msgstr "" ++msgstr "计时器的逾期已产生信å·" + + #: stdio-common/psiginfo.c:148 + msgid "Signal generated by the completion of an asynchronous I/O request" +-msgstr "" ++msgstr "异步 I/O è¦æ±‚的完æˆå·²äº§ç”Ÿä¿¡å·" + + #: stdio-common/psiginfo.c:152 + msgid "Signal generated by the arrival of a message on an empty message queue" +-msgstr "" ++msgstr "空消æ¯é˜Ÿåˆ—中到达的消æ¯å·²äº§ç”Ÿä¿¡å·" + + #: stdio-common/psiginfo.c:157 + msgid "Signal sent by tkill()" +-msgstr "" ++msgstr "tkill() å·²å‘é€ä¿¡å·" + + #: stdio-common/psiginfo.c:162 + msgid "Signal generated by the completion of an asynchronous name lookup request" +-msgstr "" ++msgstr "异步å称查找è¦æ±‚的完æˆå·²äº§ç”Ÿä¿¡å·" + + #: stdio-common/psiginfo.c:168 + msgid "Signal generated by the completion of an I/O request" +-msgstr "" ++msgstr "I/O è¦æ±‚的完æˆå·²äº§ç”Ÿä¿¡å·" + + #: stdio-common/psiginfo.c:174 + msgid "Signal sent by the kernel" +-msgstr "" ++msgstr "内核已å‘é€ä¿¡å·" + + #: stdio-common/psiginfo.c:198 +-#, fuzzy, c-format +-#| msgid "Unknown signal %d" ++#, c-format + msgid "Unknown signal %d\n" +-msgstr "æœªçŸ¥ä¿¡å· %d" ++msgstr "ä¸æ˜Žä¿¡å· %d\n" + + #: stdio-common/psignal.c:43 + #, c-format +@@ -5095,30 +5166,27 @@ msgstr "æœªçŸ¥ä¿¡å· %d" + #: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 + #: sunrpc/xdr.c:631 sunrpc/xdr.c:793 sunrpc/xdr_array.c:97 + #: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:76 +-#, fuzzy +-#| msgid "out of memory" + msgid "out of memory\n" +-msgstr "内存ä¸è¶³" ++msgstr "内存ä¸è¶³\n" + + #: sunrpc/auth_unix.c:349 + msgid "auth_unix.c: Fatal marshalling problem" +-msgstr "" ++msgstr "auth_unix.c: 严é‡çš„编组问题" + + #: sunrpc/clnt_perr.c:95 sunrpc/clnt_perr.c:111 + #, c-format + msgid "%s: %s; low version = %lu, high version = %lu" +-msgstr "" ++msgstr "%s: %s; 低版本 = %lu,高版本 = %lu" + + #: sunrpc/clnt_perr.c:102 + #, c-format + msgid "%s: %s; why = %s\n" +-msgstr "" ++msgstr "%s: %s; 原因 = %s\n" + + #: sunrpc/clnt_perr.c:104 +-#, fuzzy, c-format +-#| msgid "(unknown authentication error - %d)" ++#, c-format + msgid "%s: %s; why = (unknown authentication error - %d)\n" +-msgstr "(未知的认è¯é”™è¯¯ - %d)" ++msgstr "%s: %s; 原因 = (ä¸æ˜Žçš„认è¯é”™è¯¯ - %d)\n" + + #: sunrpc/clnt_perr.c:153 + msgid "RPC: Success" +@@ -5162,7 +5230,7 @@ msgstr "RPC:程åº/版本ä¸åŒ¹é…" + + #: sunrpc/clnt_perr.c:192 + msgid "RPC: Procedure unavailable" +-msgstr "" ++msgstr "RPC: 无法å–得进程" + + #: sunrpc/clnt_perr.c:196 + msgid "RPC: Server can't decode arguments" +@@ -5182,7 +5250,7 @@ msgstr "RPC:未知åè®®" + + #: sunrpc/clnt_perr.c:212 + msgid "RPC: Port mapper failure" +-msgstr "" ++msgstr "RPC: 通信阜映射错误" + + #: sunrpc/clnt_perr.c:216 + msgid "RPC: Program not registered" +@@ -5234,7 +5302,7 @@ msgstr "clnt_raw.c: 致命的头编åºé” + + #: sunrpc/pm_getmaps.c:77 + msgid "pmap_getmaps.c: rpc problem" +-msgstr "" ++msgstr "pmap_getmaps.c: 远程进程调用问题" + + #: sunrpc/pmap_clnt.c:127 + msgid "Cannot register service" +@@ -5254,7 +5322,7 @@ msgstr "无法å‘é€å¹¿æ’­åŒ…" + + #: sunrpc/pmap_rmt.c:327 + msgid "Broadcast poll problem" +-msgstr "" ++msgstr "Broadcast 调查有问题" + + #: sunrpc/pmap_rmt.c:340 + msgid "Cannot receive reply to broadcast" +@@ -5276,10 +5344,9 @@ msgid "%s: while writing output %s: %m" + msgstr "%s:写入输出 %s 时:%m" + + #: sunrpc/rpc_main.c:336 sunrpc/rpc_main.c:375 +-#, fuzzy, c-format +-#| msgid "cannot find C preprocessor: %s \n" ++#, c-format + msgid "cannot find C preprocessor: %s\n" +-msgstr "无法找到 C 预处ç†å™¨ï¼š%s\n" ++msgstr "找ä¸åˆ° C å‰ç½®å¤„ç†å™¨ï¼š%s\n" + + #: sunrpc/rpc_main.c:411 + #, c-format +@@ -5304,7 +5371,7 @@ msgstr "rpcgen:定义过多\n" + #: sunrpc/rpc_main.c:1101 + #, c-format + msgid "rpcgen: arglist coding error\n" +-msgstr "" ++msgstr "rpcgen: arglist ç¼–ç é”™è¯¯\n" + + #. TRANS: the file will not be removed; this is an + #. TRANS: informative message. +@@ -5321,7 +5388,7 @@ msgstr "æ— æ³•æŒ‡å®šå¤šä¸ªè¾“å…¥æ–‡ä»¶ï¼ + #: sunrpc/rpc_main.c:1349 + #, c-format + msgid "This implementation doesn't support newstyle or MT-safe code!\n" +-msgstr "" ++msgstr "此实现方å¼ä¸æ”¯æŒæ–°å¼ (newstyle) 或多线程安全 (MT-Safe) 的程åº!\n" + + #: sunrpc/rpc_main.c:1358 + #, c-format +@@ -5336,7 +5403,7 @@ msgstr "无法在未使用 TIRPC çš„æ—¶å + #: sunrpc/rpc_main.c:1374 + #, c-format + msgid "Cannot use table flags with newstyle!\n" +-msgstr "无法以新风格使用表格标志ï¼\n" ++msgstr "无法以新风格 (newstyle) 使用表格标志ï¼\n" + + #: sunrpc/rpc_main.c:1393 + #, c-format +@@ -5376,141 +5443,137 @@ msgstr "\t%s [-n 网络 id]* [-o 输出æ + #: sunrpc/rpc_main.c:1421 + #, c-format + msgid "options:\n" +-msgstr "" ++msgstr "选项:\n" + + #: sunrpc/rpc_main.c:1422 + #, c-format + msgid "-a\t\tgenerate all files, including samples\n" +-msgstr "" ++msgstr "-a\t\t产生所有文件,包å«æ ·æœ¬\n" + + #: sunrpc/rpc_main.c:1423 + #, c-format + msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n" +-msgstr "" ++msgstr "-b\t\tå‘åŽå…¼å®¹æ¨¡å¼ (产生用于 SunOS 4.1 çš„ç¼–ç )\n" + + #: sunrpc/rpc_main.c:1424 + #, c-format + msgid "-c\t\tgenerate XDR routines\n" +-msgstr "" ++msgstr "-c\t\t产生 XDR 例程\n" + + #: sunrpc/rpc_main.c:1425 + #, c-format + msgid "-C\t\tANSI C mode\n" +-msgstr "" ++msgstr "-C\t\tANSI C 模å¼\n" + + #: sunrpc/rpc_main.c:1426 + #, c-format + msgid "-Dname[=value]\tdefine a symbol (same as #define)\n" +-msgstr "" ++msgstr "-Då称[=值]\tå®šä¹‰ä¸€ä¸ªç¬¦å· (å¦‚åŒ #define)\n" + + #: sunrpc/rpc_main.c:1427 + #, c-format + msgid "-h\t\tgenerate header file\n" +-msgstr "" ++msgstr "-h\t\t产生标头档\n" + + #: sunrpc/rpc_main.c:1428 + #, c-format + msgid "-i size\t\tsize at which to start generating inline code\n" +-msgstr "" ++msgstr "-i 大å°\t\tå¯å§‹äº§ç”Ÿå†…è”ç¼–ç çš„大å°\n" + + #: sunrpc/rpc_main.c:1429 + #, c-format + msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n" +-msgstr "" ++msgstr "-I\t\t产生在æœåŠ¡å™¨ä¸­æ”¯æŒçš„ inetd ç¼–ç  (用于 SunOS 4.1)\n" + + #: sunrpc/rpc_main.c:1430 + #, c-format + msgid "-K seconds\tserver exits after K seconds of inactivity\n" +-msgstr "" ++msgstr "-K 秒\tä¸ä½œç”¨ K 秒之åŽç¦»å¼€æœåŠ¡å™¨\n" + + #: sunrpc/rpc_main.c:1431 + #, c-format + msgid "-l\t\tgenerate client side stubs\n" +-msgstr "" ++msgstr "-l\t\t产生客户端残余\n" + + #: sunrpc/rpc_main.c:1432 + #, c-format + msgid "-L\t\tserver errors will be printed to syslog\n" +-msgstr "" ++msgstr "-L\t\tæœåŠ¡å™¨é”™è¯¯å°†è¢«æ‰“å°åˆ° syslog\n" + + #: sunrpc/rpc_main.c:1433 + #, c-format + msgid "-m\t\tgenerate server side stubs\n" +-msgstr "" ++msgstr "-m\t\t产生æœåŠ¡å™¨ç«¯æ®‹ä½™\n" + + #: sunrpc/rpc_main.c:1434 + #, c-format + msgid "-M\t\tgenerate MT-safe code\n" +-msgstr "" ++msgstr "-M\t\t产生多线程安全代ç \n" + + #: sunrpc/rpc_main.c:1435 + #, c-format + msgid "-n netid\tgenerate server code that supports named netid\n" +-msgstr "" ++msgstr "-n netid\t产生支æŒå…·å netid çš„æœåŠ¡å™¨ç¼–ç \n" + + #: sunrpc/rpc_main.c:1436 + #, c-format + msgid "-N\t\tsupports multiple arguments and call-by-value\n" +-msgstr "" ++msgstr "-N\t\t支æŒå¤šé‡å‚数和传值调用\n" + + #: sunrpc/rpc_main.c:1437 +-#, fuzzy, c-format +-#| msgid "cannot generate output file" ++#, c-format + msgid "-o outfile\tname of the output file\n" +-msgstr "无法生æˆè¾“出文件" ++msgstr "-o 输出档\t输出文件的å称\n" + + #: sunrpc/rpc_main.c:1438 + #, c-format + msgid "-s nettype\tgenerate server code that supports named nettype\n" +-msgstr "" ++msgstr "-s nettype\t产生支æŒå…·å nettype çš„æœåŠ¡å™¨ç¼–ç \n" + + #: sunrpc/rpc_main.c:1439 + #, c-format + msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n" +-msgstr "" ++msgstr "-Sc\t\t产生使用远程进程的范例客户端编ç \n" + + #: sunrpc/rpc_main.c:1440 + #, c-format + msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n" +-msgstr "" ++msgstr "-Ss\t\t产生定义远程进程的范例æœåŠ¡å™¨ç¼–ç \n" + + #: sunrpc/rpc_main.c:1441 + #, c-format + msgid "-Sm \t\tgenerate makefile template \n" +-msgstr "" ++msgstr "-Sm\t\t产生 makefile 模æ¿\n" + + #: sunrpc/rpc_main.c:1442 + #, c-format + msgid "-t\t\tgenerate RPC dispatch table\n" +-msgstr "" ++msgstr "-t\t\t产生 RPC æ´¾é€è¡¨\n" + + #: sunrpc/rpc_main.c:1443 + #, c-format + msgid "-T\t\tgenerate code to support RPC dispatch tables\n" +-msgstr "" ++msgstr "-T\t\täº§ç”Ÿæ”¯æŒ RPC æ´¾é€è¡¨çš„ç¼–ç \n" + + #: sunrpc/rpc_main.c:1444 +-#, fuzzy, c-format +-#| msgid "cannot find any C preprocessor (cpp)\n" ++#, c-format + msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n" +-msgstr "无法找到任何 C 预处ç†å™¨ (cpp)\n" ++msgstr "-Y 路径\t\tè¦å¯»æ‰¾ C å‰ç½®å¤„ç†å™¨ (cpp) 的目录å称\n" + + #: sunrpc/rpc_main.c:1445 + #, c-format + msgid "-5\t\tSysVr4 compatibility mode\n" +-msgstr "" ++msgstr "-5\t\tSysVr4 兼容模å¼\n" + + #: sunrpc/rpc_main.c:1446 +-#, fuzzy, c-format +-#| msgid "Give this help list" ++#, c-format + msgid "--help\t\tgive this help list\n" +-msgstr "给出该系统求助列表" ++msgstr "--help\t\t给出这个使用方å¼åˆ—表\n" + + #: sunrpc/rpc_main.c:1447 +-#, fuzzy, c-format +-#| msgid "Print program version" ++#, c-format + msgid "--version\tprint program version\n" +-msgstr "打å°ç¨‹åºç‰ˆæœ¬å·" ++msgstr "--version\t打å°ç¨‹åºç‰ˆæœ¬\n" + + #: sunrpc/rpc_main.c:1449 + #, c-format +@@ -5519,6 +5582,9 @@ msgid "" + "For bug reporting instructions, please see:\n" + "%s.\n" + msgstr "" ++"\n" ++"è¦çŸ¥é“错误报告指令,请å‚看:\n" ++"%s。\n" + + #: sunrpc/rpc_scan.c:112 + msgid "constant or identifier expected" +@@ -5534,7 +5600,7 @@ msgstr "未终止的字符串常é‡" + + #: sunrpc/rpc_scan.c:379 + msgid "empty char string" +-msgstr "" ++msgstr "空的字符字串" + + #: sunrpc/rpc_scan.c:521 sunrpc/rpc_scan.c:531 + msgid "preprocessor error" +@@ -5580,7 +5646,7 @@ msgstr "rpcinfo:广播失败:%s\n" + + #: sunrpc/rpcinfo.c:667 + msgid "Sorry. You are not root\n" +-msgstr "抱歉。您ä¸æ˜¯æ ¹ç”¨æˆ·\n" ++msgstr "抱歉。您ä¸æ˜¯ root 用户\n" + + #: sunrpc/rpcinfo.c:674 + #, c-format +@@ -5623,7 +5689,7 @@ msgstr "svc_run: - 内存ä¸è¶³" + + #: sunrpc/svc_run.c:91 + msgid "svc_run: - poll failed" +-msgstr "" ++msgstr "svc_run: - poll 失败" + + #: sunrpc/svc_simple.c:80 + #, c-format +@@ -5646,7 +5712,7 @@ msgstr "registerrpc:内存ä¸è¶³\n" + #: sunrpc/svc_simple.c:169 + #, c-format + msgid "trouble replying to prog %d\n" +-msgstr "" ++msgstr "å›žåº”ç¨‹åº %d æ—¶å‘生困难\n" + + #: sunrpc/svc_simple.c:178 + #, c-format +@@ -5687,7 +5753,7 @@ msgstr "enablecache:无法分é…缓冲 + + #: sunrpc/svc_udp.c:518 + msgid "enablecache: could not allocate cache fifo" +-msgstr "" ++msgstr "enablecache: 无法é…置缓存 fifo 管线" + + #: sunrpc/svc_udp.c:554 + msgid "cache_set: victim not found" +@@ -5727,7 +5793,7 @@ msgstr "éžæ³•æŒ‡ä»¤" + + #: sysdeps/generic/siglist.h:32 + msgid "Trace/breakpoint trap" +-msgstr "" ++msgstr "追踪与中断点陷阱" + + #: sysdeps/generic/siglist.h:33 + msgid "Aborted" +@@ -5768,7 +5834,7 @@ msgstr "已终止" + + #: sysdeps/generic/siglist.h:41 + msgid "Urgent I/O condition" +-msgstr "" ++msgstr "紧急的输出入状æ€" + + #: sysdeps/generic/siglist.h:42 + msgid "Stopped (signal)" +@@ -5796,7 +5862,7 @@ msgstr "åœæ­¢ (tty 输出)" + + #: sysdeps/generic/siglist.h:48 + msgid "I/O possible" +-msgstr "" ++msgstr "I/O å¯è¡Œ" + + #: sysdeps/generic/siglist.h:49 + msgid "CPU time limit exceeded" +@@ -5812,7 +5878,7 @@ msgstr "虚拟计时器超时" + + #: sysdeps/generic/siglist.h:52 + msgid "Profiling timer expired" +-msgstr "" ++msgstr "测速评估用的计时器已过时å–消了" + + #: sysdeps/generic/siglist.h:53 + msgid "User defined signal 1" +@@ -5824,7 +5890,7 @@ msgstr "ç”¨æˆ·å®šä¹‰ä¿¡å· 2" + + #: sysdeps/generic/siglist.h:58 + msgid "EMT trap" +-msgstr "" ++msgstr "EMT 陷阱" + + #: sysdeps/generic/siglist.h:61 + msgid "Bad system call" +@@ -5848,7 +5914,7 @@ msgstr "资æºä¸¢å¤±" + + #: sysdeps/generic/siglist.h:75 + msgid "Window changed" +-msgstr "" ++msgstr "范围改å˜äº†" + + #. TRANS Operation not permitted; only the owner of the file (or other resource) + #. TRANS or processes with special privileges can perform the operation. +@@ -6210,7 +6276,7 @@ msgstr "由软件导致的连接断开" + #. TRANS protocol violation. + #: sysdeps/gnu/errlist.c:615 + msgid "Connection reset by peer" +-msgstr "" ++msgstr "连接被对方é‡è®¾" + + #. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this + #. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the +@@ -6316,7 +6382,7 @@ msgstr "超出ç£ç›˜é™é¢" + #. TRANS and remounting the file system. + #: sysdeps/gnu/errlist.c:789 + msgid "Stale file handle" +-msgstr "" ++msgstr "过旧的文件控柄" + + #. TRANS An attempt was made to NFS-mount a remote file system with a file name that + #. TRANS already specifies an NFS-mounted file. +@@ -6349,7 +6415,7 @@ msgstr "RPC 程åºç‰ˆæœ¬é”™è¯¯" + #. TRANS ??? + #: sysdeps/gnu/errlist.c:846 + msgid "RPC bad procedure for program" +-msgstr "" ++msgstr "程åºçš„ RPC 进程错误" + + #. TRANS No locks available. This is used by the file locking facilities; see + #. TRANS @ref{File Locks}. This error is never generated by @gnuhurdsystems{}, but +@@ -6424,7 +6490,7 @@ msgstr "对åŽå°è¿›ç¨‹çš„ä¸é€‚当æ“ä½ + #. TRANS up, before it has connected to the file. + #: sysdeps/gnu/errlist.c:957 + msgid "Translator died" +-msgstr "" ++msgstr "中介程åºå·²ç»ç»“æŸ" + + #. TRANS The experienced user will know what is wrong. + #. TRANS @c This error code is a joke. Its perror text is part of the joke. +@@ -6436,17 +6502,49 @@ msgstr "?" + #. TRANS You did @strong{what}? + #: sysdeps/gnu/errlist.c:977 + msgid "You really blew it this time" +-msgstr "" ++msgstr "这次真的被您打败了" + ++# This is error EIEIO, errno 104 ++# ++# - Macro: int EIEIO ++# Go home and have a glass of warm, dairy-fresh milk. ++# ++# The following messages were copied & pasted ++# from es.po by Santiago Vila Doncel . ++# ++# ++# 稣u diablos es esto?, esperemos a tener las fuentes ++# estupendo, este error parece mostrarse en dos ocasiones ++# - Macro: int EIEIO ++# Go home and have a glass of warm, dairy-fresh milk. ++# Jochen tambien lo traduce as. em ++# ++# Okay. Since you are dying to know, I'll tell you. ++# This is a joke, obviously. There is a children's song which begins, ++# "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real) ++# errno macro EIO, I think about that song. Probably most of my ++# compatriots who program on Unix do, too. One of them must have stayed ++# up a little too late one night and decided to add it to Hurd or Glibc. ++# Whoever did it should be castigated, but it made me laugh. ++# --jtobey@channel1.com ++# ++# "bought the farm" means "died". -jtobey ++# ++# Bueno, pues despu廥 de pensarlo mucho, he seguido el ejemplo de la ++# traduccié® francesa (traduccié® libre). sv ++# ++# ++# 简å•çš„说,儿歌 "å”è€å…ˆç”Ÿæœ‰å—地...",然åŽå‘¢?? ;-p ++# + #. TRANS Go home and have a glass of warm, dairy-fresh milk. + #: sysdeps/gnu/errlist.c:986 + msgid "Computer bought the farm" +-msgstr "" ++msgstr "è¿™å°ç”µè„‘买了一å—地啰" + + #. TRANS This error code has no purpose. + #: sysdeps/gnu/errlist.c:995 + msgid "Gratuitous error" +-msgstr "" ++msgstr "无故的错误" + + #: sysdeps/gnu/errlist.c:1003 + msgid "Bad message" +@@ -6458,7 +6556,7 @@ msgstr "标识符已删除" + + #: sysdeps/gnu/errlist.c:1019 + msgid "Multihop attempted" +-msgstr "" ++msgstr "å°è¯• Multihop" + + #: sysdeps/gnu/errlist.c:1027 + msgid "No data available" +@@ -6466,11 +6564,11 @@ msgstr "没有å¯ç”¨çš„æ•°æ®" + + #: sysdeps/gnu/errlist.c:1035 + msgid "Link has been severed" +-msgstr "" ++msgstr "链接已有æœåŠ¡" + + #: sysdeps/gnu/errlist.c:1043 + msgid "No message of desired type" +-msgstr "" ++msgstr "没有符åˆéœ€æ±‚æ ¼å¼çš„消æ¯" + + #: sysdeps/gnu/errlist.c:1051 + msgid "Out of streams resources" +@@ -6558,7 +6656,7 @@ msgstr "无效的请求ç " + + #: sysdeps/gnu/errlist.c:1215 + msgid "Invalid slot" +-msgstr "" ++msgstr "ä¸é€‚用的 slot" + + #: sysdeps/gnu/errlist.c:1223 + msgid "File locking deadlock error" +@@ -6578,11 +6676,11 @@ msgstr "包未安装" + + #: sysdeps/gnu/errlist.c:1255 + msgid "Advertise error" +-msgstr "" ++msgstr "通知错误" + + #: sysdeps/gnu/errlist.c:1263 + msgid "Srmount error" +-msgstr "" ++msgstr "Srmount 错误" + + #: sysdeps/gnu/errlist.c:1271 + msgid "Communication error on send" +@@ -6590,11 +6688,11 @@ msgstr "å‘é€æ—¶å‡ºçŽ°é€šè®¯é”™è¯¯" + + #: sysdeps/gnu/errlist.c:1279 + msgid "RFS specific error" +-msgstr "" ++msgstr "RFS 特定错误" + + #: sysdeps/gnu/errlist.c:1287 + msgid "Name not unique on network" +-msgstr "" ++msgstr "网络上的å称ä¸æ˜¯å”¯ä¸€çš„" + + #: sysdeps/gnu/errlist.c:1295 + msgid "File descriptor in bad state" +@@ -6666,29 +6764,27 @@ msgstr "关键字已过期" + + #: sysdeps/gnu/errlist.c:1431 + msgid "Key has been revoked" +-msgstr "" ++msgstr "键值已å–消" + + #: sysdeps/gnu/errlist.c:1439 + msgid "Key was rejected by service" +-msgstr "" ++msgstr "键值被æœåŠ¡æ‰€æ‹’ç»" + + #: sysdeps/gnu/errlist.c:1447 + msgid "Owner died" +-msgstr "" ++msgstr "拥有者已消é€" + + #: sysdeps/gnu/errlist.c:1455 + msgid "State not recoverable" +-msgstr "" ++msgstr "状æ€æ— æ³•å›žå¤" + + #: sysdeps/gnu/errlist.c:1463 +-#, fuzzy +-#| msgid "Operation not applicable" + msgid "Operation not possible due to RF-kill" +-msgstr "ä¸å¯åº”用的æ“作" ++msgstr "由于 RF-kill 而无法æ“作" + + #: sysdeps/gnu/errlist.c:1471 + msgid "Memory page has hardware error" +-msgstr "" ++msgstr "内存分页有硬件错误" + + #: sysdeps/mach/_strerror.c:56 + msgid "Error in unknown error system: " +@@ -6728,7 +6824,7 @@ msgstr "未知的å称或æœåŠ¡" + + #: sysdeps/posix/gai_strerror-strs.h:9 + msgid "Servname not supported for ai_socktype" +-msgstr "" ++msgstr "ä¸æ”¯æŒ ai_socktype 的伺æœå称" + + #: sysdeps/posix/gai_strerror-strs.h:10 + msgid "ai_socktype not supported" +@@ -6740,7 +6836,7 @@ msgstr "系统错误" + + #: sysdeps/posix/gai_strerror-strs.h:12 + msgid "Processing request in progress" +-msgstr "" ++msgstr "此项请求已ç»åœ¨å¤„ç†å½“中" + + #: sysdeps/posix/gai_strerror-strs.h:13 + msgid "Request canceled" +@@ -6760,7 +6856,7 @@ msgstr "被信å·ä¸­æ–­" + + #: sysdeps/posix/gai_strerror-strs.h:17 + msgid "Parameter string not correctly encoded" +-msgstr "" ++msgstr "å‚数字串无法正确编ç " + + #: sysdeps/unix/sysv/linux/i386/readelflib.c:65 + #, c-format +@@ -6778,6 +6874,8 @@ msgid "" + "Usage: lddlibc4 FILE\n" + "\n" + msgstr "" ++"用法:lddlibc4 文件\n" ++"\n" + + #: sysdeps/unix/sysv/linux/lddlibc4.c:81 + #, c-format +@@ -6791,33 +6889,35 @@ msgstr "无法从“%sâ€ä¸­è¯»å…¥å¤´" + + #: timezone/zdump.c:282 + msgid "lacks alphabetic at start" +-msgstr "" ++msgstr "lacks å­—æ¯é¡ºåºäºŽå¼€å§‹" + + #: timezone/zdump.c:284 + msgid "has fewer than 3 alphabetics" +-msgstr "" ++msgstr "有更少的比 3 å­—æ¯é¡ºåº" + + #: timezone/zdump.c:286 + msgid "has more than 6 alphabetics" +-msgstr "" ++msgstr "有超过 6 å­—æ¯é¡ºåº" + + #: timezone/zdump.c:294 + msgid "differs from POSIX standard" +-msgstr "" ++msgstr "differs 从 POSIX 标准" + + #: timezone/zdump.c:300 + #, c-format + msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" +-msgstr "" ++msgstr "%s: 警告:区域 “%s†缩写 “%s†%s\n" + + #: timezone/zdump.c:309 +-#, fuzzy, c-format +-#| msgid "%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n" ++#, c-format + msgid "" + "%s: usage: %s [--version] [--help] [-{vV}] [-{ct} [lo,]hi] zonename ...\n" + "\n" + "Report bugs to %s.\n" +-msgstr "%s:用法为 %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] 区域å ...\n" ++msgstr "" ++"%s:用法: %s [--version] [--help] [-v] [-c [低年分,]高年分 ] 区域å称 ...\n" ++"\n" ++"将错误通报给 %s。\n" + + #: timezone/zdump.c:386 + #, c-format +@@ -6825,10 +6925,9 @@ msgid "%s: wild -c argument %s\n" + msgstr "%s: 怪异的 -c 选项 %s\n" + + #: timezone/zdump.c:419 +-#, fuzzy, c-format +-#| msgid "%s: wild -c argument %s\n" ++#, c-format + msgid "%s: wild -t argument %s\n" +-msgstr "%s: 怪异的 -c 选项 %s\n" ++msgstr "%s: wild -c å‚æ•° %s\n" + + #: timezone/zdump.c:508 + msgid "Error writing to standard output" +@@ -6840,15 +6939,14 @@ msgid "%s: Memory exhausted: %s\n" + msgstr "%s:内存耗尽:%s\n" + + #: timezone/zic.c:438 +-#, fuzzy, c-format +-#| msgid "\"%s\", line %d: %s" ++#, c-format + msgid "\"%s\", line %d: " +-msgstr "“%sâ€ï¼Œè¡Œ %d:%s" ++msgstr "\"%s\", 第 %d è¡Œ: " + + #: timezone/zic.c:441 + #, c-format + msgid " (rule from \"%s\", line %d)" +-msgstr "" ++msgstr " (规则æ¥è‡ª \"%s\", 第 %d è¡Œ)" + + #: timezone/zic.c:460 + #, c-format +@@ -6856,22 +6954,21 @@ msgid "warning: " + msgstr "警告:" + + #: timezone/zic.c:470 +-#, fuzzy, c-format +-#| msgid "" +-#| "%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" +-#| "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" ++#, c-format + msgid "" + "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" + "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" + "\n" + "Report bugs to %s.\n" + msgstr "" +-"%s:用法为 %s [ --version ] [ -v ] [ -l 本地时间 ] [ -p posix 规则 ] \\\n" +-"\t[ -d 目录 ] [ -L leapseconds ] [ -y yearistype ] [ 文件å ... ]\n" ++"%s:用法为 %s [ --version ] [ --help ] [ -v ] [ -l 本地时间 ] [ -p POSIX规则 ] \\\n" ++"\t[ -d 目录 ] [ -L 跳跃秒数 ] [ -y 年分类型 ] [ 文件å ... ]\n" ++"\n" ++"将错误通报给 %s。\n" + + #: timezone/zic.c:505 + msgid "wild compilation-time specification of zic_t" +-msgstr "" ++msgstr "zic_t 的万用编译时间规格" + + #: timezone/zic.c:524 + #, c-format +@@ -6907,10 +7004,9 @@ msgid "hard link failed, symbolic link u + msgstr "硬连接失败,使用符å·è¿žæŽ¥" + + #: timezone/zic.c:688 +-#, fuzzy, c-format +-#| msgid "%s: Can't create %s: %s\n" ++#, c-format + msgid "%s: Can't read %s: %s\n" +-msgstr "%s:无法创建 %s:%s\n" ++msgstr "%s: æ— æ³•è¯»å– %s: %s\n" + + #: timezone/zic.c:696 timezone/zic.c:1595 + #, c-format +@@ -6928,10 +7024,8 @@ msgid "%s: Error writing %s\n" + msgstr "%s:写 %s 错误\n" + + #: timezone/zic.c:714 +-#, fuzzy +-#| msgid "hard link failed, symbolic link used" + msgid "link failed, copy used" +-msgstr "硬连接失败,使用符å·è¿žæŽ¥" ++msgstr "链接失败,使用å¤åˆ¶ä»£æ›¿" + + #: timezone/zic.c:802 timezone/zic.c:804 + msgid "same rule name in multiple files" +@@ -6939,12 +7033,12 @@ msgstr "多个文件中的相åŒè§„则å + + #: timezone/zic.c:845 + msgid "unruly zone" +-msgstr "" ++msgstr "没有规则的时区" + + #: timezone/zic.c:852 + #, c-format + msgid "%s in ruleless zone" +-msgstr "" ++msgstr "%s 在没有规则的节" + + #: timezone/zic.c:872 + msgid "standard input" +@@ -6966,12 +7060,12 @@ msgstr "未知类型的输入行" + #: timezone/zic.c:924 + #, c-format + msgid "%s: Leap line in non leap seconds file %s\n" +-msgstr "" ++msgstr "%s: 闰时设置行出现在ä¸å«é—°ç§’的设置档 %s 中\n" + + #: timezone/zic.c:931 timezone/zic.c:1339 timezone/zic.c:1361 + #, c-format + msgid "%s: panic: Invalid l_value %d\n" +-msgstr "" ++msgstr "%s: 严é‡é”™è¯¯: 错误的 l_value %d\n" + + #: timezone/zic.c:946 + #, c-format +@@ -6988,7 +7082,7 @@ msgstr "时间溢出" + + #: timezone/zic.c:997 + msgid "values over 24 hours not handled by pre-2007 versions of zic" +-msgstr "" ++msgstr "24 å°æ—¶ä»¥ä¸Šçš„值无法由早于 2007 çš„ zic 版本所处ç†" + + #: timezone/zic.c:1008 + msgid "wrong number of fields on Rule line" +@@ -6999,8 +7093,9 @@ msgid "nameless rule" + msgstr "æ— å规则" + + #: timezone/zic.c:1017 ++#, fuzzy + msgid "invalid saved time" +-msgstr "" ++msgstr "无效的节约时间" + + #: timezone/zic.c:1034 + msgid "wrong number of fields on Zone line" +@@ -7009,12 +7104,12 @@ msgstr "区域行中域的个数错误" + #: timezone/zic.c:1039 + #, c-format + msgid "\"Zone %s\" line and -l option are mutually exclusive" +-msgstr "" ++msgstr "\"Zone %s\" 行和 -l 选项是互斥的" + + #: timezone/zic.c:1045 + #, c-format + msgid "\"Zone %s\" line and -p option are mutually exclusive" +-msgstr "" ++msgstr "\"Zone %s\" 行和 -p 选项是互斥的" + + #: timezone/zic.c:1053 + #, c-format +@@ -7023,13 +7118,11 @@ msgstr "é‡å¤çš„区域å %s (文件“ + + #: timezone/zic.c:1066 + msgid "wrong number of fields on Zone continuation line" +-msgstr "" ++msgstr "时区接续行的字段数目ä¸å¯¹" + + #: timezone/zic.c:1103 +-#, fuzzy +-#| msgid "invalid UTC offset" + msgid "invalid UT offset" +-msgstr "无效的 UTC å移é‡" ++msgstr "无效的 UT å移é‡" + + #: timezone/zic.c:1106 + msgid "invalid abbreviation format" +@@ -7037,11 +7130,11 @@ msgstr "无效的缩略格å¼" + + #: timezone/zic.c:1135 + msgid "Zone continuation line end time is not after end time of previous line" +-msgstr "" ++msgstr "时区接续行的结æŸæ—¶é—´ä¸åœ¨ä¸Šä¸€è¡Œçš„结æŸæ—¶é—´ä¹‹åŽ" + + #: timezone/zic.c:1161 + msgid "wrong number of fields on Leap line" +-msgstr "" ++msgstr "闰时设置行的字段数目错误" + + #: timezone/zic.c:1170 + msgid "invalid leaping year" +@@ -7057,7 +7150,7 @@ msgstr "无效的日" + + #: timezone/zic.c:1208 + msgid "time too small" +-msgstr "" ++msgstr "时间太å°" + + #: timezone/zic.c:1212 + msgid "time too large" +@@ -7069,15 +7162,15 @@ msgstr "无效的时间" + + #: timezone/zic.c:1235 + msgid "illegal CORRECTION field on Leap line" +-msgstr "" ++msgstr "在闰时设置行中有ä¸åˆæ³•çš„ CORRECTION 字段" + + #: timezone/zic.c:1240 + msgid "illegal Rolling/Stationary field on Leap line" +-msgstr "" ++msgstr "在闰时设置行中有ä¸åˆæ³•çš„ Rolling/Stationary 字段" + + #: timezone/zic.c:1246 + msgid "leap second precedes Big Bang" +-msgstr "" ++msgstr "闰秒出现在大爆炸之å‰" + + #: timezone/zic.c:1259 + msgid "wrong number of fields on Link line" +@@ -7105,7 +7198,7 @@ msgstr "起始年份大于终止年份" + + #: timezone/zic.c:1376 + msgid "typed single year" +-msgstr "" ++msgstr "输入的年分是åŒä¸€å¹´" + + #: timezone/zic.c:1411 + msgid "invalid weekday name" +@@ -7113,7 +7206,7 @@ msgstr "无效的星期å" + + #: timezone/zic.c:1530 + msgid "pre-2014 clients may mishandle more than 1200 transition times" +-msgstr "" ++msgstr "2014 之å‰çš„客户端å¯èƒ½ä¼šé”™è¯¯å¤„ç†è¶…过 1200 次的改å˜æ¬¡æ•°" + + #: timezone/zic.c:1585 + #, c-format +@@ -7122,16 +7215,16 @@ msgstr "%s:无法删除 %s:%s\n" + + #: timezone/zic.c:2143 + msgid "no POSIX environment variable for zone" +-msgstr "" ++msgstr "æ—  POSIX 环境å˜é‡ç”¨äºŽåŒº" + + #: timezone/zic.c:2149 + #, c-format + msgid "%s: pre-%d clients may mishandle distant timestamps" +-msgstr "" ++msgstr "%s: %d 之å‰çš„客户端å¯èƒ½ä¼šé”™è¯¯å¤„ç†ä¹…远的时间戳" + + #: timezone/zic.c:2329 + msgid "can't determine time zone abbreviation to use just after until time" +-msgstr "" ++msgstr "无法决定在结æŸæ—¶é—´ä»¥åŽè¯¥ä½¿ç”¨çš„时区简写" + + #: timezone/zic.c:2375 timezone/zic.c:2450 + msgid "too many local time types" +@@ -7150,22 +7243,20 @@ msgid "internal error - addtype called w + msgstr "内部错误 - 以错误的 ttisgmt 调用 addtype" + + #: timezone/zic.c:2454 +-#, fuzzy +-#| msgid "UTC offset out of range" + msgid "UT offset out of range" +-msgstr "UTC å移值超出范围" ++msgstr "UTC å移超出范围" + + #: timezone/zic.c:2478 + msgid "too many leap seconds" +-msgstr "" ++msgstr "太多闰秒" + + #: timezone/zic.c:2484 + msgid "repeated leap second moment" +-msgstr "" ++msgstr "é‡å¤çš„闰秒设置" + + #: timezone/zic.c:2534 + msgid "Wild result from command execution" +-msgstr "" ++msgstr "命令è¿è¡Œå¯¼è‡´å¥‡æ€ªçš„结果" + + #: timezone/zic.c:2535 + #, c-format +@@ -7178,27 +7269,27 @@ msgstr "奇数个引å·" + + #: timezone/zic.c:2703 + msgid "use of 2/29 in non leap-year" +-msgstr "" ++msgstr "在éžé—°å¹´æ—¶ç”¨åˆ° 2/29 æ—¥" + + #: timezone/zic.c:2738 + msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic" +-msgstr "" ++msgstr "规则超过开始/结æŸæœˆåˆ†--将无法适用早于 2004 çš„ zic 版本" + + #: timezone/zic.c:2769 + msgid "time zone abbreviation lacks alphabetic at start" +-msgstr "" ++msgstr "时区缩写开头缺少字æ¯" + + #: timezone/zic.c:2771 + msgid "time zone abbreviation has fewer than 3 alphabetics" +-msgstr "" ++msgstr "时间区缩写少于 3 个字æ¯" + + #: timezone/zic.c:2773 + msgid "time zone abbreviation has too many alphabetics" +-msgstr "" ++msgstr "时区缩写太多字æ¯" + + #: timezone/zic.c:2783 + msgid "time zone abbreviation differs from POSIX standard" +-msgstr "" ++msgstr "时区缩写与 POSIX 标准ä¸åŒ" + + #: timezone/zic.c:2789 + msgid "too many, or too long, time zone abbreviations" +@@ -7218,12 +7309,18 @@ msgstr "%s:无法创建目录 %s:%s\ + #~ msgid "Can't open configuration file %s" + #~ msgstr "无法打开é…置文件 %s" + ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "无法创建内部æ述符" ++ + #~ msgid "Try \\`memusage --help' for more information." + #~ msgstr "试用“memusage --helpâ€ä»¥èŽ·å–更多信æ¯ã€‚" + + #~ msgid "memusage: option \\`$1' requires an argument" + #~ msgstr "memusage:选项“$1â€éœ€è¦ä¸€ä¸ªå‚æ•°" + ++#~ msgid "cannot stat() file `%s': %s" ++#~ msgstr "无法对文件“%sâ€è¿›è¡Œ stat() æ“作:%s" ++ + #~ msgid "invalid value for 'reload-count': %u" + #~ msgstr "“reload-countâ€çš„值无效: %u" + +Index: glibc-2.23/po/zh_TW.po +=================================================================== +--- glibc-2.23.orig/po/zh_TW.po ++++ glibc-2.23/po/zh_TW.po +@@ -9,7 +9,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: libc 2.17.90.20130724\n" +-"POT-Creation-Date: 2015-01-20 22:14-0500\n" ++"POT-Creation-Date: 2015-07-31 00:10-0400\n" + "PO-Revision-Date: 2013-09-03 13:39+0800\n" + "Last-Translator: Wei-Lun Chao \n" + "Language-Team: Chinese (traditional) \n" +@@ -146,10 +146,10 @@ msgstr "" + "[輸出檔案å稱 [輸入檔案å稱]...]" + + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 +-#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 ++#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 + #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 ++#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 + #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format +@@ -161,7 +161,7 @@ msgstr "" + "%s。\n" + + #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 +-#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 ++#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 + #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 +@@ -178,7 +178,7 @@ msgstr "" + "售或者é©åˆæŸäº›ç‰¹æ®Šç›®çš„。\n" + + #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 +-#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 ++#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 + #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 + #: locale/programs/localedef.c:407 malloc/memusage.sh:75 + #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 +@@ -433,11 +433,11 @@ msgstr "更改 %s çš„å­˜å–權é™ç‚º %#o + msgid "Renaming of %s to %s failed" + msgstr "å°‡ %s 改å為 %s 失敗" + +-#: elf/dl-close.c:385 elf/dl-open.c:470 ++#: elf/dl-close.c:396 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "無法建立作用域列表" + +-#: elf/dl-close.c:770 ++#: elf/dl-close.c:816 + msgid "shared object not open" + msgstr "共用目的檔案沒有開啟" + +@@ -510,127 +510,127 @@ msgstr "無法建立æœå°‹è·¯å¾‘陣列" + msgid "cannot stat shared object" + msgstr "無法 stat 共用目的檔" + +-#: elf/dl-load.c:963 ++#: elf/dl-load.c:962 + msgid "cannot open zero fill device" + msgstr "無法開啟以零填滿的è£ç½®" + +-#: elf/dl-load.c:1010 elf/dl-load.c:2165 ++#: elf/dl-load.c:1009 elf/dl-load.c:2159 + msgid "cannot create shared object descriptor" + msgstr "無法建立共用目的檔敘述項" + +-#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 ++#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 + msgid "cannot read file data" + msgstr "無法讀å–檔案資料" + +-#: elf/dl-load.c:1069 ++#: elf/dl-load.c:1068 + msgid "ELF load command alignment not page-aligned" + msgstr "ELF 載入命令å°é½Šä¸¦æ²’æœ‰æŒ‰ç…§è¨˜æ†¶é«”åˆ†é  (page) å°é½Š" + +-#: elf/dl-load.c:1076 ++#: elf/dl-load.c:1075 + msgid "ELF load command address/offset not properly aligned" + msgstr "ELF 載入命令ä½å€/ä½ç§»ä¸¦æ²’有é©ç•¶åœ°å°é½Š" + +-#: elf/dl-load.c:1160 ++#: elf/dl-load.c:1159 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "無法é…ç½® TLS 資料çµæ§‹ç”¨ä»¥èµ·å§‹åŸ·è¡Œç·’" + +-#: elf/dl-load.c:1183 ++#: elf/dl-load.c:1182 + msgid "cannot handle TLS data" + msgstr "ç„¡æ³•è™•ç† TLS 資料" + +-#: elf/dl-load.c:1202 ++#: elf/dl-load.c:1201 + msgid "object file has no loadable segments" + msgstr "目的檔中沒有å¯è¼‰å…¥çš„å€æ®µ" + +-#: elf/dl-load.c:1211 elf/dl-load.c:1662 ++#: elf/dl-load.c:1210 elf/dl-load.c:1660 + msgid "cannot dynamically load executable" + msgstr "無法動態載入執行檔" + +-#: elf/dl-load.c:1232 ++#: elf/dl-load.c:1231 + msgid "object file has no dynamic section" + msgstr "共用目的檔中沒有動態å€æ®µ" + +-#: elf/dl-load.c:1255 ++#: elf/dl-load.c:1254 + msgid "shared object cannot be dlopen()ed" + msgstr "共用目的檔無法被 dlopen()" + +-#: elf/dl-load.c:1268 ++#: elf/dl-load.c:1267 + msgid "cannot allocate memory for program header" + msgstr "無法é…置記憶體給程å¼æ¨™é ­å€ä½¿ç”¨" + +-#: elf/dl-load.c:1284 elf/dl-open.c:195 ++#: elf/dl-load.c:1283 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "無效的呼å«è€…" + +-#: elf/dl-load.c:1307 elf/dl-load.h:130 ++#: elf/dl-load.c:1306 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "無法改變記憶體ä¿è­·ç‹€æ…‹" + +-#: elf/dl-load.c:1327 ++#: elf/dl-load.c:1326 + msgid "cannot enable executable stack as shared object requires" + msgstr "無法開啟å¯åŸ·è¡Œå †ç–Šåšç‚ºå…±ç”¨ç›®çš„檔" + +-#: elf/dl-load.c:1340 ++#: elf/dl-load.c:1339 + msgid "cannot close file descriptor" + msgstr "無法關閉檔案æ述符號" + +-#: elf/dl-load.c:1570 ++#: elf/dl-load.c:1568 + msgid "file too short" + msgstr "檔案太å°" + +-#: elf/dl-load.c:1605 ++#: elf/dl-load.c:1603 + msgid "invalid ELF header" + msgstr "無效的 ELF 標頭" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1615 + msgid "ELF file data encoding not big-endian" + msgstr "ELF 檔資料編碼並éžå¤§å°¾åº" + +-#: elf/dl-load.c:1619 ++#: elf/dl-load.c:1617 + msgid "ELF file data encoding not little-endian" + msgstr "ELF 檔資料編碼並éžå°å°¾åº" + +-#: elf/dl-load.c:1623 ++#: elf/dl-load.c:1621 + msgid "ELF file version ident does not match current one" + msgstr "ELF 檔版本 ident ä¸ç¬¦åˆç›®å‰æ‰€ä½¿ç”¨çš„" + +-#: elf/dl-load.c:1627 ++#: elf/dl-load.c:1625 + msgid "ELF file OS ABI invalid" + msgstr "ELF 檔 OS ABI 版本ä¸é©ç”¨" + +-#: elf/dl-load.c:1630 ++#: elf/dl-load.c:1628 + msgid "ELF file ABI version invalid" + msgstr "ELF 檔 ABI 版本ä¸é©ç”¨" + +-#: elf/dl-load.c:1633 ++#: elf/dl-load.c:1631 + msgid "nonzero padding in e_ident" + msgstr "在 e_ident 中填補éžé›¶å€¼" + +-#: elf/dl-load.c:1636 ++#: elf/dl-load.c:1634 + msgid "internal error" + msgstr "內部錯誤" + +-#: elf/dl-load.c:1643 ++#: elf/dl-load.c:1641 + msgid "ELF file version does not match current one" + msgstr "ELF 檔版本ä¸ç¬¦åˆç›®å‰çš„版本" + +-#: elf/dl-load.c:1651 ++#: elf/dl-load.c:1649 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "åªæœ‰ ET_DYN ä»¥åŠ ET_EXEC å¯ä»¥è¼‰å…¥" + +-#: elf/dl-load.c:1667 ++#: elf/dl-load.c:1665 + msgid "ELF file's phentsize not the expected size" + msgstr "ELF 檔的 phentsize 並ä¸æ˜¯é æœŸä¸­çš„大å°" + +-#: elf/dl-load.c:2184 ++#: elf/dl-load.c:2178 + msgid "wrong ELF class: ELFCLASS64" + msgstr "錯誤 ELF 類別:ELFCLASS64" + +-#: elf/dl-load.c:2185 ++#: elf/dl-load.c:2179 + msgid "wrong ELF class: ELFCLASS32" + msgstr "錯誤 ELF 類別:ELFCLASS32" + +-#: elf/dl-load.c:2188 ++#: elf/dl-load.c:2182 + msgid "cannot open shared object file" + msgstr "無法開啟共用目的檔" + +@@ -642,11 +642,11 @@ msgstr "從共用目的檔中å°æ˜ å€æ® + msgid "cannot map zero-fill pages" + msgstr "無法å°æ‡‰ä»¥é›¶å¡«æ»¿çš„分é å€" + +-#: elf/dl-lookup.c:791 ++#: elf/dl-lookup.c:845 + msgid "relocation error" + msgstr "é‡å®šå€éŒ¯èª¤" + +-#: elf/dl-lookup.c:818 ++#: elf/dl-lookup.c:872 + msgid "symbol lookup error" + msgstr "符號查找錯誤" + +@@ -654,49 +654,40 @@ msgstr "符號查找錯誤" + msgid "cannot extend global scope" + msgstr "無法延展全域變數的作用域" + +-#: elf/dl-open.c:520 ++#: elf/dl-open.c:528 + msgid "TLS generation counter wrapped! Please report this." + msgstr "TLS 產生計數器被轉æ›åŸ·è¡Œï¼ 請報告這個情æ³ã€‚" + +-#: elf/dl-open.c:542 +-msgid "cannot load any more object with static TLS" +-msgstr "無法以éœæ…‹ TLS å†è¼‰å…¥ä»»ä½•ç‰©ä»¶" +- +-#: elf/dl-open.c:599 ++#: elf/dl-open.c:592 + msgid "invalid mode for dlopen()" + msgstr "無效的 dlopen() 模å¼" + +-#: elf/dl-open.c:616 ++#: elf/dl-open.c:609 + msgid "no more namespaces available for dlmopen()" + msgstr "無更多命å空間å¯è¦‹æ–¼ dlmopen ()" + +-#: elf/dl-open.c:634 ++#: elf/dl-open.c:633 + msgid "invalid target namespace in dlmopen()" + msgstr "dlmopen() 中的無效目標命å空間" + +-#: elf/dl-reloc.c:120 ++#: elf/dl-reloc.c:121 + msgid "cannot allocate memory in static TLS block" + msgstr "無法在éœæ…‹ TLS å€å¡Šä¸­é…置記憶體" + +-#: elf/dl-reloc.c:212 ++#: elf/dl-reloc.c:206 + msgid "cannot make segment writable for relocation" + msgstr "在é‡æ–°å®šå€ä»¥å¾Œç„¡æ³•å°‡å€æ®µè¨­ç‚ºå¯å¯«å…¥ç‹€æ…‹" + +-#: elf/dl-reloc.c:275 +-#, c-format +-msgid "%s: no PLTREL found in object %s\n" +-msgstr "%s: 在目的檔 %s 中沒有找到 PLTREL\n" +- +-#: elf/dl-reloc.c:290 ++#: elf/dl-reloc.c:276 + #, c-format + msgid "%s: out of memory to store relocation results for %s\n" + msgstr "%s: 記憶體ä¸è¶³ä»¥å„²å­˜é‡å®šå€çµæžœç”¨æ–¼ %s\n" + +-#: elf/dl-reloc.c:306 ++#: elf/dl-reloc.c:292 + msgid "cannot restore segment prot after reloc" + msgstr "在 reloc 之後無法復原 segment prot" + +-#: elf/dl-reloc.c:335 ++#: elf/dl-reloc.c:323 + msgid "cannot apply additional memory protection after relocation" + msgstr "é‡å®šå€ä¹‹å¾Œç„¡æ³•å¥—用é¡å¤–記憶體ä¿è­·" + +@@ -704,7 +695,7 @@ msgstr "é‡å®šå€ä¹‹å¾Œç„¡æ³•å¥—用é¡å¤ + msgid "RTLD_NEXT used in code not dynamically loaded" + msgstr "程å¼ç¢¼æ‰€ä½¿ç”¨çš„ RTLD_NEXT 沒有動態載入" + +-#: elf/dl-tls.c:933 ++#: elf/dl-tls.c:934 + msgid "cannot create TLS data structures" + msgstr "無法建立 TLS 資料çµæ§‹" + +@@ -848,7 +839,7 @@ msgstr "由於找ä¸åˆ° %s 的共用目ç + msgid "Can't open directory %s" + msgstr "無法開啟目錄 %s" + +-#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 ++#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 + #, c-format + msgid "Input file %s not found.\n" + msgstr "輸入檔 %s 找ä¸åˆ°ã€‚\n" +@@ -979,7 +970,7 @@ msgstr "缺少檔案引數" + msgid "No such file or directory" + msgstr "沒有此一檔案或目錄" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:488 ++#: elf/ldd.bash.in:150 inet/rcmd.c:492 + msgid "not regular file" + msgstr "並éžæ­£å¸¸çš„檔案" + +@@ -1024,65 +1015,71 @@ msgstr "ç„¡æ³•è®€å– r_debug" + msgid "cannot read program interpreter" + msgstr "無法讀å–程å¼è§£è­¯å™¨" + +-#: elf/pldd-xx.c:196 ++#: elf/pldd-xx.c:197 + #, c-format + msgid "cannot read link map" + msgstr "無法讀å–éˆçµæ˜ å°„" + +-#: elf/pldd-xx.c:207 ++#: elf/pldd-xx.c:209 + #, c-format + msgid "cannot read object name" + msgstr "無法讀å–物件å稱" + +-#: elf/pldd.c:63 ++#: elf/pldd-xx.c:219 ++#, fuzzy, c-format ++#| msgid "cannot allocate memory for program header" ++msgid "cannot allocate buffer for object name" ++msgstr "無法é…置記憶體給程å¼æ¨™é ­å€ä½¿ç”¨" ++ ++#: elf/pldd.c:64 + msgid "List dynamic shared objects loaded into process." + msgstr "列出已載入行程中的動態共用物件。" + +-#: elf/pldd.c:67 ++#: elf/pldd.c:68 + msgid "PID" + msgstr "行程識別號" + +-#: elf/pldd.c:99 ++#: elf/pldd.c:100 + #, c-format + msgid "Exactly one parameter with process ID required.\n" + msgstr "需è¦å‰›å¥½ä¸€å€‹é™„有行程識別號的åƒæ•¸ã€‚\n" + +-#: elf/pldd.c:111 ++#: elf/pldd.c:112 + #, c-format + msgid "invalid process ID '%s'" + msgstr "無效的行程識別號 %s" + +-#: elf/pldd.c:119 ++#: elf/pldd.c:120 + #, c-format + msgid "cannot open %s" + msgstr "無法開啟 %s" + +-#: elf/pldd.c:144 ++#: elf/pldd.c:152 + #, c-format + msgid "cannot open %s/task" + msgstr "無法開啟 %s/任務" + +-#: elf/pldd.c:147 ++#: elf/pldd.c:155 + #, c-format + msgid "cannot prepare reading %s/task" + msgstr "ç„¡æ³•æº–å‚™è®€å– %s/任務" + +-#: elf/pldd.c:160 ++#: elf/pldd.c:168 + #, c-format + msgid "invalid thread ID '%s'" + msgstr "無效的執行緒識別號 %s" + +-#: elf/pldd.c:171 ++#: elf/pldd.c:179 + #, c-format + msgid "cannot attach to process %lu" + msgstr "無法附加到行程 %lu" + +-#: elf/pldd.c:286 ++#: elf/pldd.c:294 + #, c-format + msgid "cannot get information about process %lu" + msgstr "無法ç²å¾—行程 %lu 的相關資訊" + +-#: elf/pldd.c:299 ++#: elf/pldd.c:307 + #, c-format + msgid "process %lu is no ELF program" + msgstr "行程 %lu ä¸¦éž ELF 程å¼" +@@ -1117,27 +1114,27 @@ msgstr "%s ä¸æ˜¯ä¸€å€‹å…±ç”¨ç›®çš„檔 ( + msgid "more than one dynamic segment\n" + msgstr "超éŽä¸€å€‹çš„å‹•æ…‹å€æ®µ\n" + +-#: elf/readlib.c:96 ++#: elf/readlib.c:103 + #, c-format + msgid "Cannot fstat file %s.\n" + msgstr "無法 fstat 檔案 %s。\n" + +-#: elf/readlib.c:107 ++#: elf/readlib.c:114 + #, c-format + msgid "File %s is empty, not checked." + msgstr "檔案 %s 為空,ä¸åšæª¢æŸ¥ã€‚" + +-#: elf/readlib.c:113 ++#: elf/readlib.c:120 + #, c-format + msgid "File %s is too small, not checked." + msgstr "檔案 %s 太å°ï¼Œä¸åšæª¢æŸ¥ã€‚" + +-#: elf/readlib.c:123 ++#: elf/readlib.c:130 + #, c-format + msgid "Cannot mmap file %s.\n" + msgstr "無法 mmap 檔案 %s。\n" + +-#: elf/readlib.c:161 ++#: elf/readlib.c:169 + #, c-format + msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" + msgstr "%s ä¸æ˜¯ä¸€å€‹ ELF 檔 - 其開頭的魔術ä½å…ƒçµ„是錯的。\n" +@@ -1271,9 +1268,9 @@ msgstr "SHOBJ [PROFDATA]" + msgid "failed to load shared object `%s'" + msgstr "開啟共用目的檔 `%s' 失敗" + +-#: elf/sprof.c:442 ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 + #, c-format +-msgid "cannot create internal descriptors" ++msgid "cannot create internal descriptor" + msgstr "無法建立內部敘述項" + + #: elf/sprof.c:554 +@@ -1341,11 +1338,6 @@ msgstr "測試資料檔案 mmap 失敗" + msgid "error while closing the profiling data file" + msgstr "正在關閉測試資料檔案時發生錯誤" + +-#: elf/sprof.c:825 elf/sprof.c:923 +-#, c-format +-msgid "cannot create internal descriptor" +-msgstr "無法建立內部敘述項" +- + #: elf/sprof.c:899 + #, c-format + msgid "`%s' is no correct profile data file for `%s'" +@@ -1600,27 +1592,27 @@ msgstr "socket: 通訊å”定在設定線 + msgid "rcmd: %s: short read" + msgstr "rcmd: %s: 讀入資料éŽçŸ­" + +-#: inet/rcmd.c:486 ++#: inet/rcmd.c:490 + msgid "lstat failed" + msgstr "lstat 失敗" + +-#: inet/rcmd.c:493 ++#: inet/rcmd.c:497 + msgid "cannot open" + msgstr "無法開啟" + +-#: inet/rcmd.c:495 ++#: inet/rcmd.c:499 + msgid "fstat failed" + msgstr "fstat 失敗" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:501 + msgid "bad owner" + msgstr "錯誤的æ“有者" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:503 + msgid "writeable by other than owner" + msgstr "使用者以外的人亦å¯å¯«å…¥" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:505 + msgid "hard linked somewhere" + msgstr "被實體連çµåˆ°æŸè™•" + +@@ -1740,8 +1732,8 @@ msgid "no symbolic name given for end of + msgstr "沒有給此å€çš„最後一個字元符號å稱" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 +-#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 ++#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 + #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 +@@ -1767,8 +1759,8 @@ msgid "%s: error in state machine" + msgstr "%s: 狀態機錯誤" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 +-#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 ++#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 + #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 +@@ -1789,7 +1781,7 @@ msgstr "ä¸æ˜Žçš„å­—å…ƒ `%s'" + msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" + msgstr "在範åœèµ·å§‹èˆ‡çµæŸçš„ä½å…ƒçµ„åºåˆ—中,ä½å…ƒçµ„的數目並ä¸ä¸€è‡´: %d vs %d" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "無效的字元範åœå稱" +@@ -1811,8 +1803,8 @@ msgstr "範åœä¸­ä¸Šé™å°æ–¼ä¸‹é™" + msgid "resulting bytes for range not representable." + msgstr "用來定義範åœçš„ä½å…ƒçµ„無法被表述出來" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 +-#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 + #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 +@@ -1876,7 +1868,7 @@ msgid "%s: numeric country code `%d' not + msgstr "%s: 國家數字代碼 `%d' 錯誤" + + #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 +-#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 ++#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 + #: locale/programs/ld-identification.c:280 + #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 + #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 +@@ -1898,8 +1890,8 @@ msgstr "%s: `%s' 欄ä½ä¸åªä¸€æ¬¡åœ°å® + msgid "%s: unknown character in field `%s'" + msgstr "%s: æœªçŸ¥çš„å­—å…ƒåœ¨æ¬„ä½ `%s' 中" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 +-#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 + #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 +@@ -1908,12 +1900,12 @@ msgstr "%s: æœªçŸ¥çš„å­—å…ƒåœ¨æ¬„ä½ `%s + msgid "%s: incomplete `END' line" + msgstr "%s: ä¸å®Œæ•´çš„ `END' 列" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 +-#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 +-#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 +-#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 +-#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 +-#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 ++#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 ++#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 ++#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 ++#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 + #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 + #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 +@@ -1923,477 +1915,477 @@ msgstr "%s: ä¸å®Œæ•´çš„ `END' 列" + msgid "%s: syntax error" + msgstr "%s: 語法錯誤" + +-#: locale/programs/ld-collate.c:426 ++#: locale/programs/ld-collate.c:427 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "`%.*s' 在字集å°ç…§è¡¨ä¸­å·²ç¶“定義éŽäº†" + +-#: locale/programs/ld-collate.c:435 ++#: locale/programs/ld-collate.c:436 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "`%.*s' 在編碼å°æ˜ æª”中已經被定義éŽäº†" + +-#: locale/programs/ld-collate.c:442 ++#: locale/programs/ld-collate.c:443 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "`%.*s' 已被定義為å°ç…§ç¬¦è™Ÿ" + +-#: locale/programs/ld-collate.c:449 ++#: locale/programs/ld-collate.c:450 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "`%.*s' 已被定義為å°ç…§å…ƒç´ " + +-#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "%s: `forward' ä»¥åŠ `backward' 彼此互相排斥" + +-#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 +-#: locale/programs/ld-collate.c:532 ++#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 ++#: locale/programs/ld-collate.c:533 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "%s: `%s' ä¸åªä¸€æ¬¡åœ°åœ¨æ¬Šé‡ %d 中被æ到" + +-#: locale/programs/ld-collate.c:588 ++#: locale/programs/ld-collate.c:589 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "%s: 太多è¦å‰‡ï¼›ç¬¬ä¸€å€‹é …ç›®åªåŒ…å« %d" + +-#: locale/programs/ld-collate.c:624 ++#: locale/programs/ld-collate.c:625 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "%s: 排åºè¦å‰‡ä¸è¶³" + +-#: locale/programs/ld-collate.c:789 ++#: locale/programs/ld-collate.c:790 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "%s: 空白的權é‡å­—串是ä¸å…許的" + +-#: locale/programs/ld-collate.c:884 ++#: locale/programs/ld-collate.c:885 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "%s: 權é‡å¿…須使用與å稱相åŒçš„çœç•¥ç¬¦è™Ÿ" + +-#: locale/programs/ld-collate.c:940 ++#: locale/programs/ld-collate.c:941 + #, c-format + msgid "%s: too many values" + msgstr "%s: 太多變數值" + +-#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 ++#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "`%.*s' çš„é †åºå·²ç¶“在 %s:%Zu 裡é¢å®šç¾©äº†" + +-#: locale/programs/ld-collate.c:1110 ++#: locale/programs/ld-collate.c:1111 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "%s: 啟始與çµæŸç¬¦è™Ÿç¯„åœå¿…須代表字元" + +-#: locale/programs/ld-collate.c:1137 ++#: locale/programs/ld-collate.c:1138 + #, c-format + msgid "%s: byte sequences of first and last character must have the same length" + msgstr "%s: 第一個與最後一個字元的ä½å…ƒçµ„åºåˆ—必須有相åŒçš„長度" + +-#: locale/programs/ld-collate.c:1179 ++#: locale/programs/ld-collate.c:1180 + #, c-format + msgid "%s: byte sequence of first character of range is not lower than that of the last character" + msgstr "%s: 範åœé¦–字元的ä½å…ƒçµ„åºåˆ—沒有低於末字元的ä½å…ƒçµ„åºåˆ—" + +-#: locale/programs/ld-collate.c:1304 ++#: locale/programs/ld-collate.c:1305 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "%s: 符號範åœçš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_start' 之後" + +-#: locale/programs/ld-collate.c:1308 ++#: locale/programs/ld-collate.c:1309 + #, c-format + msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "%s: 符號範åœçš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_end' 之å‰" + +-#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 ++#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "`%s' å’Œ `%.*s' 皆éžç¬¦è™Ÿç¯„åœä¸­é©ç”¨çš„å稱" + +-#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 ++#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "%s: `%.*s' çš„é †åºå·²åœ¨ %s:%Zu 中定義" + +-#: locale/programs/ld-collate.c:1387 ++#: locale/programs/ld-collate.c:1388 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "%s: `%s' 必須是一個字元" + +-#: locale/programs/ld-collate.c:1582 ++#: locale/programs/ld-collate.c:1583 + #, c-format + msgid "%s: `position' must be used for a specific level in all sections or none" + msgstr "%s: `position' 必須在所有å€å¡Šè£¡ç‰¹å®šçš„等級中使用,å¦å‰‡ä¸èƒ½ä½¿ç”¨" + +-#: locale/programs/ld-collate.c:1607 ++#: locale/programs/ld-collate.c:1608 + #, c-format + msgid "symbol `%s' not defined" + msgstr "並未定義 `%s' 符號" + +-#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "跟符號 `%s' 有相åŒçš„編碼: " + +-#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 ++#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 + #, c-format + msgid "symbol `%s'" + msgstr "符號 `%s'" + +-#: locale/programs/ld-collate.c:1833 ++#: locale/programs/ld-collate.c:1834 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "沒有找到 `UNDEFINED' 的定義" + +-#: locale/programs/ld-collate.c:1862 ++#: locale/programs/ld-collate.c:1863 + #, c-format + msgid "too many errors; giving up" + msgstr "發生太多錯誤;放棄中" + +-#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 ++#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "%s: ä¸æ”¯æ´å·¢ç‹€æ¢ä»¶" + +-#: locale/programs/ld-collate.c:2536 ++#: locale/programs/ld-collate.c:2545 + #, fuzzy, c-format + #| msgid "%s: more then one 'else'" + msgid "%s: more than one 'else'" + msgstr "%s: 使用多於一個「elseã€" + +-#: locale/programs/ld-collate.c:2711 ++#: locale/programs/ld-collate.c:2720 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "%s: é‡è¤‡çš„定義 `%s'" + +-#: locale/programs/ld-collate.c:2747 ++#: locale/programs/ld-collate.c:2756 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "%s: é‡è¤‡çš„ `%s' å€å¡Šå®£å‘Š" + +-#: locale/programs/ld-collate.c:2883 ++#: locale/programs/ld-collate.c:2892 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "%s: 未知的字元在å°ç…§ç¬¦è™Ÿå稱中" + +-#: locale/programs/ld-collate.c:3012 ++#: locale/programs/ld-collate.c:3021 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "%s: 未知的字元在åŒç¾©å®šç¾©å稱中" + +-#: locale/programs/ld-collate.c:3023 ++#: locale/programs/ld-collate.c:3032 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "%s: 未知的字元在åŒç¾©å®šç¾©å€¼ä¸­" + +-#: locale/programs/ld-collate.c:3033 ++#: locale/programs/ld-collate.c:3042 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "%s: 未知的符號 `%s' 在åŒç¾©å®šç¾©ä¸­" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3051 + msgid "error while adding equivalent collating symbol" + msgstr "正在加入åŒç¾©å°ç…§ç¬¦è™Ÿæ™‚發生錯誤" + +-#: locale/programs/ld-collate.c:3080 ++#: locale/programs/ld-collate.c:3089 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "敘述 `%s' 的定義é‡è¤‡äº†" + +-#: locale/programs/ld-collate.c:3128 ++#: locale/programs/ld-collate.c:3137 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "%s: ä¸æ˜Žçš„節段å稱「%.*sã€" + +-#: locale/programs/ld-collate.c:3157 ++#: locale/programs/ld-collate.c:3166 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "%s: `%s' å€å¡Šä¸­æœ‰å¤šå€‹é †åºå®šç¾©" + +-#: locale/programs/ld-collate.c:3185 ++#: locale/programs/ld-collate.c:3194 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "%s: ä¸é©ç”¨çš„排åºè¦å‰‡æ•¸ç›®" + +-#: locale/programs/ld-collate.c:3212 ++#: locale/programs/ld-collate.c:3221 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "%s: 未命åçš„å€å¡Šä¸­æœ‰å¤šå€‹é †åºå®šç¾©" + +-#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 +-#: locale/programs/ld-collate.c:3760 ++#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 ++#: locale/programs/ld-collate.c:3769 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "%s: 缺少 `order_end' é—œéµå­—" + +-#: locale/programs/ld-collate.c:3330 ++#: locale/programs/ld-collate.c:3339 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "%s: å°ç…§ç¬¦è™Ÿ %.*s çš„é †åºå°šæœªå®šç¾©" + +-#: locale/programs/ld-collate.c:3348 ++#: locale/programs/ld-collate.c:3357 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "%s: å°ç…§å…ƒç´  %.*s çš„é †åºå°šæœªå®šç¾©" + +-#: locale/programs/ld-collate.c:3359 ++#: locale/programs/ld-collate.c:3368 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "%s: 無法é‡æ–°æŽ’列在 %.*s 之後: 未知的符號" + +-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "%s: 缺少 `reorder-end' é—œéµå­—" + +-#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 ++#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "%s: 未知的å€å¡Š `%.*s'" + +-#: locale/programs/ld-collate.c:3510 ++#: locale/programs/ld-collate.c:3519 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "%s: ä¸ç•¶çš„符號 <%.*s>" + +-#: locale/programs/ld-collate.c:3706 ++#: locale/programs/ld-collate.c:3715 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "%s: 無法用 `%s' åšç‚ºçœç•¥å€æ®µçš„çµå°¾" + +-#: locale/programs/ld-collate.c:3756 ++#: locale/programs/ld-collate.c:3765 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "%s: 空白的類別æ述是ä¸å…許的" + +-#: locale/programs/ld-collate.c:3775 ++#: locale/programs/ld-collate.c:3784 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "%s: 缺少 `reorder-sections-end' é—œéµå­—" + +-#: locale/programs/ld-collate.c:3939 ++#: locale/programs/ld-collate.c:3948 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "%s:「%sã€è€Œä¸éœ€å»åˆä¸­ã€Œifdefã€æˆ–「ifndefã€" + +-#: locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-collate.c:3966 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "%s:「endifã€è€Œä¸éœ€å»åˆä¸­ã€Œifdefã€æˆ–「ifndefã€" + +-#: locale/programs/ld-ctype.c:484 ++#: locale/programs/ld-ctype.c:450 + #, c-format + msgid "No character set name specified in charmap" + msgstr "在字元å°æ‡‰ (charmap) 中沒有設定字集å稱" + +-#: locale/programs/ld-ctype.c:513 ++#: locale/programs/ld-ctype.c:479 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" + msgstr "character L'\\u%0*x' (放在類別 `%s' 之中) 必須在類別 `%s' 裡é¢" + +-#: locale/programs/ld-ctype.c:528 ++#: locale/programs/ld-ctype.c:494 + #, c-format + msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" + msgstr "character L'\\u%0*x' (放在類別 `%s' 之中) ä¸èƒ½åœ¨é¡žåˆ¥ `%s' 裡é¢" + +-#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 ++#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 + #, c-format + msgid "internal error in %s, line %u" + msgstr "%s 的第 %u 列發生內部錯誤" + +-#: locale/programs/ld-ctype.c:571 ++#: locale/programs/ld-ctype.c:537 + #, c-format + msgid "character '%s' in class `%s' must be in class `%s'" + msgstr "å­—å…ƒ '%s' (放在類別 `%s' 之中) 必須在類別 `%s' 裡é¢" + +-#: locale/programs/ld-ctype.c:587 ++#: locale/programs/ld-ctype.c:553 + #, c-format + msgid "character '%s' in class `%s' must not be in class `%s'" + msgstr "å­—å…ƒ '%s' (放在類別 `%s' 之中) ä¸èƒ½åœ¨é¡žåˆ¥ `%s' 裡é¢" + +-#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 ++#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 + #, c-format + msgid " character not in class `%s'" + msgstr " å­—å…ƒä¸åœ¨é¡žåˆ¥ `%s' 中" + +-#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 ++#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 + #, c-format + msgid " character must not be in class `%s'" + msgstr " å­—å…ƒä¸å¯ä»¥åœ¨é¡žåˆ¥ `%s' 中" + +-#: locale/programs/ld-ctype.c:644 ++#: locale/programs/ld-ctype.c:610 + #, c-format + msgid "character not defined in character map" + msgstr "å­—å…ƒ 在字集å°ç…§æª”中沒有定義" + +-#: locale/programs/ld-ctype.c:780 ++#: locale/programs/ld-ctype.c:746 + #, c-format + msgid "`digit' category has not entries in groups of ten" + msgstr "`digit' 類別在群組 \"å\" 中沒有項目" + +-#: locale/programs/ld-ctype.c:829 ++#: locale/programs/ld-ctype.c:795 + #, c-format + msgid "no input digits defined and none of the standard names in the charmap" + msgstr "沒有定義輸入數字,在字集å°ç…§æª”中也找ä¸åˆ°ç›¸ç¬¦çš„標準å稱" + +-#: locale/programs/ld-ctype.c:894 ++#: locale/programs/ld-ctype.c:860 + #, c-format + msgid "not all characters used in `outdigit' are available in the charmap" + msgstr "在字集å°ç…§è¡¨ä¸­ç„¡æ³•æ‰¾åˆ°æŸäº›åœ¨ `outdigit' 中用到的字元" + +-#: locale/programs/ld-ctype.c:911 ++#: locale/programs/ld-ctype.c:877 + #, c-format + msgid "not all characters used in `outdigit' are available in the repertoire" + msgstr "在編碼å°æ˜ æª”中無法找到æŸäº›åœ¨ `outdigit' 中用到的字元" + +-#: locale/programs/ld-ctype.c:1176 ++#: locale/programs/ld-ctype.c:1142 + #, c-format + msgid "character class `%s' already defined" + msgstr "字元類別 `%s' 已經定義éŽäº†" + +-#: locale/programs/ld-ctype.c:1182 ++#: locale/programs/ld-ctype.c:1148 + #, c-format + msgid "implementation limit: no more than %Zd character classes allowed" + msgstr "程å¼å¯¦ä½œçš„é™åˆ¶: ä¸èƒ½ä½¿ç”¨è¶…éŽ %Zd 個字集類別" + +-#: locale/programs/ld-ctype.c:1208 ++#: locale/programs/ld-ctype.c:1174 + #, c-format + msgid "character map `%s' already defined" + msgstr "字集å°ç…§æª” `%s' 已經定義éŽäº†" + +-#: locale/programs/ld-ctype.c:1214 ++#: locale/programs/ld-ctype.c:1180 + #, c-format + msgid "implementation limit: no more than %d character maps allowed" + msgstr "程å¼å¯¦ä½œçš„é™åˆ¶: ä¸èƒ½ä½¿ç”¨è¶…éŽ %d 個字集å°ç…§æª”" + +-#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 +-#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 +-#: locale/programs/ld-ctype.c:3397 ++#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 ++#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 ++#: locale/programs/ld-ctype.c:3324 + #, c-format + msgid "%s: field `%s' does not contain exactly ten entries" + msgstr "%s: `%s' 欄ä½æ²’有精確包å«å個項目" + +-#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 ++#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 + #, c-format + msgid "to-value of range is smaller than from-value " + msgstr "å€åŸŸå®šç¾©çš„çµå°¾å€¼ 比起始值 é‚„è¦å°" + +-#: locale/programs/ld-ctype.c:1634 ++#: locale/programs/ld-ctype.c:1600 + msgid "start and end character sequence of range must have the same length" + msgstr "從起始到çµæŸä¹‹é–“çš„å­—å…ƒåºåˆ—長度跟編碼範åœå¿…須相åŒ" + +-#: locale/programs/ld-ctype.c:1641 ++#: locale/programs/ld-ctype.c:1607 + msgid "to-value character sequence is smaller than from-value sequence" + msgstr "å­—å…ƒåºåˆ—定義的çµå°¾å€¼æ¯”起始值還è¦å°" + +-#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 ++#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 + msgid "premature end of `translit_ignore' definition" + msgstr "`translit_ignore' 定義沒有按時çµæŸ" + +-#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 +-#: locale/programs/ld-ctype.c:2100 ++#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 ++#: locale/programs/ld-ctype.c:2066 + msgid "syntax error" + msgstr "語法錯誤" + +-#: locale/programs/ld-ctype.c:2233 ++#: locale/programs/ld-ctype.c:2199 + #, c-format + msgid "%s: syntax error in definition of new character class" + msgstr "%s: 在定義新字元類別時語法錯誤" + +-#: locale/programs/ld-ctype.c:2248 ++#: locale/programs/ld-ctype.c:2214 + #, c-format + msgid "%s: syntax error in definition of new character map" + msgstr "%s: 在定義新字元å°æ‡‰æ™‚語法錯誤" + +-#: locale/programs/ld-ctype.c:2422 ++#: locale/programs/ld-ctype.c:2374 + msgid "ellipsis range must be marked by two operands of same type" + msgstr "çœç•¥å€åŸŸå¿…須用兩個型別相åŒçš„é‹ç®—元標示出來" + +-#: locale/programs/ld-ctype.c:2431 ++#: locale/programs/ld-ctype.c:2383 + msgid "with symbolic name range values the absolute ellipsis `...' must not be used" + msgstr "用符號å稱來指定字元編碼範åœæ™‚ä¸å¯ä»¥ç”¨çµ•å°ä½ç½®çš„çœç•¥ç¬¦è™Ÿ `…'" + +-#: locale/programs/ld-ctype.c:2446 ++#: locale/programs/ld-ctype.c:2398 + msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" + msgstr "用來指定 UCS 值的範åœæ™‚得用å六進ä½è¡¨ç¤ºçš„çœç•¥ç¬¦è™Ÿ `..'" + +-#: locale/programs/ld-ctype.c:2460 ++#: locale/programs/ld-ctype.c:2412 + msgid "with character code range values one must use the absolute ellipsis `...'" + msgstr "用來指定字元編碼值的範åœæ™‚得用絕å°ä½ç½®çš„çœç•¥ç¬¦è™Ÿ `…'" + +-#: locale/programs/ld-ctype.c:2611 ++#: locale/programs/ld-ctype.c:2563 + #, c-format + msgid "duplicated definition for mapping `%s'" + msgstr "å°æ˜  `%s' 的定義é‡è¤‡äº†" + +-#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 ++#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 + #, c-format + msgid "%s: `translit_start' section does not end with `translit_end'" + msgstr "%s: `translit_start' å°ç¯€ä¸¦æ²’有以 `translit_end' åšç‚ºçµæŸ" + +-#: locale/programs/ld-ctype.c:2792 ++#: locale/programs/ld-ctype.c:2744 + #, c-format + msgid "%s: duplicate `default_missing' definition" + msgstr "%s: é‡è¤‡çš„ `default_missing' 定義" + +-#: locale/programs/ld-ctype.c:2797 ++#: locale/programs/ld-ctype.c:2749 + msgid "previous definition was here" + msgstr "å…ˆå‰çš„設定在此" + +-#: locale/programs/ld-ctype.c:2819 ++#: locale/programs/ld-ctype.c:2771 + #, c-format + msgid "%s: no representable `default_missing' definition found" + msgstr "%s: 找ä¸åˆ°å¯è¡¨ç¤ºç‚º `default_missing' 的定義" + +-#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 +-#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 +-#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 +-#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 +-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 +-#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 ++#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 ++#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 ++#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 ++#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 ++#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 ++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 + #, c-format + msgid "%s: character `%s' not defined while needed as default value" + msgstr "%s: å­—å…ƒ `%s' 沒有定義,但它是必需的é è¨­å€¼" + +-#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 +-#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 +-#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 +-#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 +-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 ++#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 ++#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 ++#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 ++#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 ++#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 + #, c-format + msgid "%s: character `%s' in charmap not representable with one byte" + msgstr "%s: 字集å°ç…§è¡¨ä¸­çš„å­—å…ƒ `%s' 無法表示為單一ä½å…ƒçµ„" + +-#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 ++#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 + #, c-format + msgid "%s: character `%s' needed as default value not representable with one byte" + msgstr "%s: åšç‚ºé è¨­å€¼æ‰€éœ€çš„å­—å…ƒ `%s' 無法表示為單一ä½å…ƒçµ„" + +-#: locale/programs/ld-ctype.c:3419 ++#: locale/programs/ld-ctype.c:3346 + #, c-format + msgid "no output digits defined and none of the standard names in the charmap" + msgstr "沒有定義輸出數字,在字集å°ç…§æª”中也找ä¸åˆ°ç›¸ç¬¦çš„標準å稱" + +-#: locale/programs/ld-ctype.c:3668 ++#: locale/programs/ld-ctype.c:3595 + #, c-format + msgid "%s: transliteration data from locale `%s' not available" + msgstr "%s: 語å€è³‡æ–™`%s' 的音譯資料ä¸å­˜åœ¨" + +-#: locale/programs/ld-ctype.c:3768 ++#: locale/programs/ld-ctype.c:3695 + #, c-format + msgid "%s: table for class \"%s\": %lu bytes\n" + msgstr "%s: 類別 \"%s\" 表格: %lu ä½å…ƒçµ„\n" + +-#: locale/programs/ld-ctype.c:3833 ++#: locale/programs/ld-ctype.c:3760 + #, c-format + msgid "%s: table for map \"%s\": %lu bytes\n" + msgstr "%s: å°æ˜ è¡¨ \"%s\" 表格: %lu ä½å…ƒçµ„\n" + +-#: locale/programs/ld-ctype.c:3958 ++#: locale/programs/ld-ctype.c:3885 + #, c-format + msgid "%s: table for width: %lu bytes\n" + msgstr "%s: 寬度表格: %lu ä½å…ƒçµ„\n" +@@ -3812,17 +3804,23 @@ msgstr "加入新的項目「%sã€çš„åž‹ + msgid " (first)" + msgstr " (å…ˆ)" + +-#: nscd/cache.c:285 nscd/connections.c:1000 +-#, c-format +-msgid "cannot stat() file `%s': %s" ++#: nscd/cache.c:288 ++#, fuzzy, c-format ++#| msgid "cannot stat() file `%s': %s" ++msgid "checking for monitored file `%s': %s" + msgstr "無法 stat() 檔案 `%s': %s" + +-#: nscd/cache.c:331 ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "" ++ ++#: nscd/cache.c:341 + #, c-format + msgid "pruning %s cache; time %ld" + msgstr "pruning %s å¿«å–;時間 %ld" + +-#: nscd/cache.c:360 ++#: nscd/cache.c:370 + #, c-format + msgid "considering %s entry \"%s\", timeout %" + msgstr "èªç‚ºä¸­ %s 項目「%sã€ï¼Œé€¾æ™‚ %" +@@ -3908,153 +3906,217 @@ msgstr "無法設定通訊端於 exec: + msgid "cannot enable socket to accept connections: %s" + msgstr "無法開啟 socket 來接å—連線: %s" + +-#: nscd/connections.c:984 ++#: nscd/connections.c:973 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:977 + #, c-format +-msgid "register trace file %s for database %s" ++msgid "monitoring file `%s` (%d)" ++msgstr "" ++ ++#: nscd/connections.c:990 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "" ++ ++#: nscd/connections.c:994 ++#, fuzzy, c-format ++#| msgid "Can't open directory %s" ++msgid "monitoring directory `%s` (%d)" ++msgstr "無法開啟目錄 %s" ++ ++#: nscd/connections.c:1022 ++#, fuzzy, c-format ++#| msgid "register trace file %s for database %s" ++msgid "monitoring file %s for database %s" + msgstr "註冊追蹤檔案 %s 用於資料庫 %s" + +-#: nscd/connections.c:1114 ++#: nscd/connections.c:1032 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "" ++ ++#: nscd/connections.c:1151 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "æ供存å–到 FD %d, 用於 %s" + +-#: nscd/connections.c:1126 ++#: nscd/connections.c:1163 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "ä¸èƒ½è™•ç†èˆŠ %d 版的請求;目å‰ä½¿ç”¨çš„版本是 %d" + +-#: nscd/connections.c:1148 ++#: nscd/connections.c:1185 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "由於缺少權é™è€Œç„¡æ³•è™•ç†ä¾†è‡ª %ld çš„è¦æ±‚" + +-#: nscd/connections.c:1153 ++#: nscd/connections.c:1190 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "由於缺少權é™è€Œç„¡æ³•è™•ç†ä¾†è‡ª '%s' [%ld] çš„è¦æ±‚" + +-#: nscd/connections.c:1158 ++#: nscd/connections.c:1195 + msgid "request not handled due to missing permission" + msgstr "è¦æ±‚無法控柄的由於缺少權é™" + +-#: nscd/connections.c:1196 nscd/connections.c:1249 ++#: nscd/connections.c:1233 nscd/connections.c:1286 + #, c-format + msgid "cannot write result: %s" + msgstr "無法寫入çµæžœ: %s" + +-#: nscd/connections.c:1340 ++#: nscd/connections.c:1377 + #, c-format + msgid "error getting caller's id: %s" + msgstr "å–得呼å«ç¨‹å¼è­˜åˆ¥ç¢¼æ™‚發生錯誤: %s" + +-#: nscd/connections.c:1400 ++#: nscd/connections.c:1437 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "無法開啟/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1414 ++#: nscd/connections.c:1451 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "無法讀å–/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1454 ++#: nscd/connections.c:1491 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "無法變更為舊的 UID:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1464 ++#: nscd/connections.c:1501 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "無法變更為舊的 GID:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1477 ++#: nscd/connections.c:1514 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "無法變更為舊的工作目錄:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1523 ++#: nscd/connections.c:1560 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "re-exec 失敗:%s; åœç”¨ paranoia 模å¼" + +-#: nscd/connections.c:1532 ++#: nscd/connections.c:1569 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "無法變更目å‰çš„工作目錄到「/ã€ï¼š%s" + +-#: nscd/connections.c:1725 ++#: nscd/connections.c:1762 + #, c-format + msgid "short read while reading request: %s" + msgstr "讀å–請求時發ç¾è¼¸å…¥å€¼éŽçŸ­: %s" + +-#: nscd/connections.c:1758 ++#: nscd/connections.c:1795 + #, c-format + msgid "key length in request too long: %d" + msgstr "在此請求中使用的éµå€¼å¤ªé•·äº†: %d" + +-#: nscd/connections.c:1771 ++#: nscd/connections.c:1808 + #, c-format + msgid "short read while reading request key: %s" + msgstr "讀å–請求的éµå€¼æ™‚發ç¾è¼¸å…¥å€¼éŽçŸ­: %s" + +-#: nscd/connections.c:1781 ++#: nscd/connections.c:1818 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "handle_request: è«‹æ±‚å·²è¢«æŽ¥å— (版本為 %d) 來自於 PID %ld" + +-#: nscd/connections.c:1786 ++#: nscd/connections.c:1823 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "handle_request: è«‹æ±‚å·²è¢«æŽ¥å— (版本為 %d)" + +-#: nscd/connections.c:2050 nscd/connections.c:2252 ++#: nscd/connections.c:1963 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "" ++ ++#: nscd/connections.c:1968 + #, c-format +-msgid "disabled inotify after read error %d" ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "" ++ ++#: nscd/connections.c:1976 nscd/connections.c:2018 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "" ++ ++#: nscd/connections.c:1991 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "" ++ ++#: nscd/connections.c:2015 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "" ++ ++#: nscd/connections.c:2041 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "" ++ ++#: nscd/connections.c:2053 ++#, fuzzy, c-format ++#| msgid "failed to load shared object `%s'" ++msgid "failed to add file watch `%s`: %s" ++msgstr "開啟共用目的檔 `%s' 失敗" ++ ++#: nscd/connections.c:2247 nscd/connections.c:2428 ++#, fuzzy, c-format ++#| msgid "disabled inotify after read error %d" ++msgid "disabled inotify-based monitoring after read error %d" + msgstr "è®€å– %d 錯誤之後已åœç”¨ inotify" + +-#: nscd/connections.c:2375 ++#: nscd/connections.c:2543 + msgid "could not initialize conditional variable" + msgstr "無法åˆå§‹åŒ–æ¢ä»¶è®Šæ•¸" + +-#: nscd/connections.c:2383 ++#: nscd/connections.c:2551 + msgid "could not start clean-up thread; terminating" + msgstr "無法開始清ç†åŸ·è¡Œç·’;終止中" + +-#: nscd/connections.c:2397 ++#: nscd/connections.c:2565 + msgid "could not start any worker thread; terminating" + msgstr "無法開始任何背景工作執行緒;終止中" + +-#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 +-#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 +-#: nscd/connections.c:2519 ++#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 ++#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 ++#: nscd/connections.c:2687 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "以使用者 '%s' 的身分執行 nscd 失敗" + +-#: nscd/connections.c:2472 ++#: nscd/connections.c:2640 + msgid "initial getgrouplist failed" + msgstr "åˆå§‹ getgrouplist 失敗" + +-#: nscd/connections.c:2481 ++#: nscd/connections.c:2649 + msgid "getgrouplist failed" + msgstr "getgrouplist 失敗" + +-#: nscd/connections.c:2499 ++#: nscd/connections.c:2667 + msgid "setgroups failed" + msgstr "setgroups 失敗" + +-#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 ++#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 + #: nscd/pwdcache.c:383 nscd/servicescache.c:338 + #, c-format + msgid "short write in %s: %s" + msgstr "寫入 %s 的資料éŽçŸ­: %s" + +-#: nscd/grpcache.c:450 nscd/initgrcache.c:77 ++#: nscd/grpcache.c:450 nscd/initgrcache.c:78 + #, c-format + msgid "Haven't found \"%s\" in group cache!" + msgstr "尚未在群組快å–中找到 \"%s\"!" + +-#: nscd/grpcache.c:452 nscd/initgrcache.c:79 ++#: nscd/grpcache.c:452 nscd/initgrcache.c:80 + #, c-format + msgid "Reloading \"%s\" in group cache!" + msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼ç¾¤çµ„å¿«å–ï¼" +@@ -4142,7 +4204,7 @@ msgstr "å°ä¸åŒä½¿ç”¨è€…使用ä¸åŒçš + msgid "Name Service Cache Daemon." + msgstr "網域å稱快å–ç²¾éˆ" + +-#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "åƒæ•¸æ•¸ç›®ä¸å°" +@@ -4176,7 +4238,7 @@ msgstr "無法變更目å‰çš„å·¥ä½œç›®éŒ + msgid "Could not create log file" + msgstr "無法建立記錄檔" + +-#: nscd/nscd.c:355 nscd/nscd_stat.c:192 ++#: nscd/nscd.c:355 nscd/nscd_stat.c:194 + #, c-format + msgid "write incomplete" + msgstr "寫入ä¸å®Œå…¨" +@@ -4191,7 +4253,7 @@ msgstr "無法讀å–設為無效的 ACK" + msgid "invalidation failed" + msgstr "無效化失敗" + +-#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 + #, c-format + msgid "Only root is allowed to use this option!" + msgstr "åªæœ‰ root æ‰å¯ä»¥ä½¿ç”¨æ­¤ä¸€é¸é …!" +@@ -4280,35 +4342,35 @@ msgstr "無法å–å¾—ç›®å‰çš„å·¥ä½œç›®éŒ + msgid "maximum file size for %s database too small" + msgstr "最大值檔案大å°ç”¨æ–¼ %s 資料庫太å°" + +-#: nscd/nscd_stat.c:142 ++#: nscd/nscd_stat.c:144 + #, c-format + msgid "cannot write statistics: %s" + msgstr "無法寫入統計資料: %s" + +-#: nscd/nscd_stat.c:157 ++#: nscd/nscd_stat.c:159 + msgid "yes" + msgstr "是" + +-#: nscd/nscd_stat.c:158 ++#: nscd/nscd_stat.c:160 + msgid "no" + msgstr "ç„¡" + +-#: nscd/nscd_stat.c:169 ++#: nscd/nscd_stat.c:171 + #, c-format + msgid "Only root or %s is allowed to use this option!" + msgstr "åªæœ‰ root 或 %s æ‰å…許使用此一é¸é …!" + +-#: nscd/nscd_stat.c:180 ++#: nscd/nscd_stat.c:182 + #, c-format + msgid "nscd not running!\n" + msgstr "nscd 並沒有在執行!\n" + +-#: nscd/nscd_stat.c:204 ++#: nscd/nscd_stat.c:206 + #, c-format + msgid "cannot read statistics data" + msgstr "無法讀å–統計資料" + +-#: nscd/nscd_stat.c:207 ++#: nscd/nscd_stat.c:209 + #, c-format + msgid "" + "nscd configuration:\n" +@@ -4319,27 +4381,27 @@ msgstr "" + "\n" + "%15d 伺æœç¨‹å¼éŒ¯èª¤è¨Šæ¯å ±å‘Šç­‰ç´š\n" + +-#: nscd/nscd_stat.c:231 ++#: nscd/nscd_stat.c:233 + #, c-format + msgid "%3ud %2uh %2um %2lus server runtime\n" + msgstr "%3ud %2uh %2um %2lus 伺æœå™¨ 執行時期\n" + +-#: nscd/nscd_stat.c:234 ++#: nscd/nscd_stat.c:236 + #, c-format + msgid " %2uh %2um %2lus server runtime\n" + msgstr " %2uh %2um %2lus 伺æœå™¨ 執行時期\n" + +-#: nscd/nscd_stat.c:236 ++#: nscd/nscd_stat.c:238 + #, c-format + msgid " %2um %2lus server runtime\n" + msgstr " %2um %2lus 伺æœå™¨ 執行時期\n" + +-#: nscd/nscd_stat.c:238 ++#: nscd/nscd_stat.c:240 + #, c-format + msgid " %2lus server runtime\n" + msgstr " %2lus 伺æœå™¨ 執行時期\n" + +-#: nscd/nscd_stat.c:240 ++#: nscd/nscd_stat.c:242 + #, c-format + msgid "" + "%15d current number of threads\n" +@@ -4356,7 +4418,7 @@ msgstr "" + "%15lu 內部é‡æ–°å•Ÿå‹•\n" + "%15u é‡æ–°è¼‰å…¥è¨ˆæ•¸\n" + +-#: nscd/nscd_stat.c:275 ++#: nscd/nscd_stat.c:277 + #, c-format + msgid "" + "\n" +@@ -4422,87 +4484,87 @@ msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼å¯†ç¢¼å¿« + msgid "Invalid numeric uid \"%s\"!" + msgstr "無效的 uid 數值 \"%s\"!" + +-#: nscd/selinux.c:155 ++#: nscd/selinux.c:154 + #, c-format + msgid "Failed opening connection to the audit subsystem: %m" + msgstr "失敗的開啟連線到稽核å­ç³»çµ±ï¼š%m" + +-#: nscd/selinux.c:176 ++#: nscd/selinux.c:175 + msgid "Failed to set keep-capabilities" + msgstr "設定功能ä¿æŒæ™‚失敗" + +-#: nscd/selinux.c:177 nscd/selinux.c:240 ++#: nscd/selinux.c:176 nscd/selinux.c:239 + msgid "prctl(KEEPCAPS) failed" + msgstr "prctl(KEEPCAPS) 失敗" + +-#: nscd/selinux.c:191 ++#: nscd/selinux.c:190 + msgid "Failed to initialize drop of capabilities" + msgstr "åˆå§‹åŒ–功能放棄時失敗" + +-#: nscd/selinux.c:192 ++#: nscd/selinux.c:191 + msgid "cap_init failed" + msgstr "cap_init 失敗" + +-#: nscd/selinux.c:213 nscd/selinux.c:230 ++#: nscd/selinux.c:212 nscd/selinux.c:229 + msgid "Failed to drop capabilities" + msgstr "放棄功能時失敗" + +-#: nscd/selinux.c:214 nscd/selinux.c:231 ++#: nscd/selinux.c:213 nscd/selinux.c:230 + msgid "cap_set_proc failed" + msgstr "cap_set_proc 失敗" + +-#: nscd/selinux.c:239 ++#: nscd/selinux.c:238 + msgid "Failed to unset keep-capabilities" + msgstr "解除設定功能ä¿æŒæ™‚失敗" + +-#: nscd/selinux.c:255 ++#: nscd/selinux.c:254 + msgid "Failed to determine if kernel supports SELinux" + msgstr "æ±ºå®šå¦‚æžœå…§æ ¸æ”¯æ´ SELinux 時失敗" + +-#: nscd/selinux.c:270 ++#: nscd/selinux.c:269 + msgid "Failed to start AVC thread" + msgstr "開始 AVC 執行緒時失敗" + +-#: nscd/selinux.c:292 ++#: nscd/selinux.c:291 + msgid "Failed to create AVC lock" + msgstr "建立 AVC 鎖定時失敗" + +-#: nscd/selinux.c:332 ++#: nscd/selinux.c:331 + msgid "Failed to start AVC" + msgstr "啟始 AVC 時失敗" + +-#: nscd/selinux.c:334 ++#: nscd/selinux.c:333 + msgid "Access Vector Cache (AVC) started" + msgstr "å­˜å–å‘é‡å¿«å– (AVC) 開始" + +-#: nscd/selinux.c:369 ++#: nscd/selinux.c:368 + msgid "Error querying policy for undefined object classes or permissions." + msgstr "" + +-#: nscd/selinux.c:376 ++#: nscd/selinux.c:375 + #, fuzzy + #| msgid "Error getting context of nscd" + msgid "Error getting security class for nscd." + msgstr "å–å¾— nscd 的狀態組åˆæ™‚發生錯誤" + +-#: nscd/selinux.c:381 ++#: nscd/selinux.c:380 + #, c-format + msgid "Error translating permission name \"%s\" to access vector bit." + msgstr "" + +-#: nscd/selinux.c:391 ++#: nscd/selinux.c:390 + msgid "Error getting context of socket peer" + msgstr "å–å¾—å°ç­‰é€šè¨Šç«¯çš„狀態組åˆæ™‚發生錯誤" + +-#: nscd/selinux.c:396 ++#: nscd/selinux.c:395 + msgid "Error getting context of nscd" + msgstr "å–å¾— nscd 的狀態組åˆæ™‚發生錯誤" + +-#: nscd/selinux.c:402 ++#: nscd/selinux.c:401 + msgid "Error getting sid from context" + msgstr "從狀態組åˆå–å¾— sid 時發生錯誤" + +-#: nscd/selinux.c:440 ++#: nscd/selinux.c:439 + #, c-format + msgid "" + "\n" +@@ -4564,16 +4626,16 @@ msgstr "從管ç†è³‡æ–™åº«å–å¾—æ¢ç›®ã€ + msgid "Enumeration not supported on %s\n" + msgstr "此項目在 %s 中ä¸è¢«æ”¯æ´\n" + +-#: nss/getent.c:917 ++#: nss/getent.c:921 + #, c-format + msgid "Unknown database name" + msgstr "ä¸æ˜Žçš„資料庫å稱" + +-#: nss/getent.c:947 ++#: nss/getent.c:951 + msgid "Supported databases:\n" + msgstr "支æ´çš„資料庫:\n" + +-#: nss/getent.c:1013 ++#: nss/getent.c:1017 + #, c-format + msgid "Unknown database: %s\n" + msgstr "未知的資料庫: %s\n" +@@ -4853,7 +4915,7 @@ msgstr ") 或 \\) ä¸èƒ½åŒ¹é…" + msgid "No previous regular expression" + msgstr "å…ˆå‰ä¸¦æœªä½¿ç”¨éŽå¸¸è¦è¡¨ç¤ºå¼" + +-#: posix/wordexp.c:1844 ++#: posix/wordexp.c:1851 + msgid "parameter null or not set" + msgstr "åƒæ•¸ç‚ºç©ºå­—元或是未設置" + +@@ -7273,6 +7335,15 @@ msgstr "時å€ç¸®å¯«å¤ªå¤šæˆ–者太長" + msgid "%s: Can't create directory %s: %s\n" + msgstr "%s: 無法建立目錄 %s: %s\n" + ++#~ msgid "cannot load any more object with static TLS" ++#~ msgstr "無法以éœæ…‹ TLS å†è¼‰å…¥ä»»ä½•ç‰©ä»¶" ++ ++#~ msgid "%s: no PLTREL found in object %s\n" ++#~ msgstr "%s: 在目的檔 %s 中沒有找到 PLTREL\n" ++ ++#~ msgid "cannot create internal descriptors" ++#~ msgstr "無法建立內部敘述項" ++ + #~ msgid "compile-time support for database policy missing" + #~ msgstr "compile-time 支æ´ç”¨æ–¼è³‡æ–™åº«ç­–略缺少" + diff --git a/0002-Regenerate-libc.pot-for-2.23.patch b/0002-Regenerate-libc.pot-for-2.23.patch new file mode 100644 index 0000000..e1212a8 --- /dev/null +++ b/0002-Regenerate-libc.pot-for-2.23.patch @@ -0,0 +1,2313 @@ +2016-02-18 Adhemerval Zanella + + * po/libc.pot: Regenerated. + +Index: glibc-2.23/po/libc.pot +=================================================================== +--- glibc-2.23.orig/po/libc.pot ++++ glibc-2.23/po/libc.pot +@@ -5,8 +5,8 @@ + #, fuzzy + msgid "" + msgstr "" +-"Project-Id-Version: libc 2.21.90\n" +-"POT-Creation-Date: 2015-07-31 00:10-0400\n" ++"Project-Id-Version: libc 2.23.90\n" ++"POT-Creation-Date: 2016-02-18 17:26-0200\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +@@ -140,9 +140,9 @@ msgstr "" + #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 + #: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 + #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 +-#: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 +-#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 +-#: posix/getconf.c:486 sunrpc/rpcinfo.c:691 ++#: locale/programs/localedef.c:376 login/programs/pt_chown.c:89 ++#: malloc/memusagestat.c:563 nss/getent.c:913 nss/makedb.c:369 ++#: posix/getconf.c:486 sunrpc/rpcinfo.c:676 + #: sysdeps/unix/sysv/linux/lddlibc4.c:61 + #, c-format + msgid "" +@@ -154,7 +154,7 @@ msgstr "" + #: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 + #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 + #: locale/programs/locale.c:294 locale/programs/localedef.c:402 +-#: login/programs/pt_chown.c:62 malloc/memusage.sh:71 ++#: login/programs/pt_chown.c:63 malloc/memusage.sh:71 + #: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:86 nss/makedb.c:385 + #: posix/getconf.c:468 sysdeps/unix/sysv/linux/lddlibc4.c:68 + #, c-format +@@ -411,11 +411,11 @@ msgstr "" + msgid "Renaming of %s to %s failed" + msgstr "" + +-#: elf/dl-close.c:396 elf/dl-open.c:478 ++#: elf/dl-close.c:397 elf/dl-open.c:478 + msgid "cannot create scope list" + msgstr "" + +-#: elf/dl-close.c:816 ++#: elf/dl-close.c:817 + msgid "shared object not open" + msgstr "" + +@@ -470,147 +470,147 @@ msgstr "" + msgid "cannot create capability list" + msgstr "" + +-#: elf/dl-load.c:410 ++#: elf/dl-load.c:412 + msgid "cannot allocate name record" + msgstr "" + +-#: elf/dl-load.c:495 elf/dl-load.c:611 elf/dl-load.c:694 elf/dl-load.c:813 ++#: elf/dl-load.c:497 elf/dl-load.c:613 elf/dl-load.c:696 elf/dl-load.c:815 + msgid "cannot create cache for search path" + msgstr "" + +-#: elf/dl-load.c:586 ++#: elf/dl-load.c:588 + msgid "cannot create RUNPATH/RPATH copy" + msgstr "" + +-#: elf/dl-load.c:680 ++#: elf/dl-load.c:682 + msgid "cannot create search path array" + msgstr "" + +-#: elf/dl-load.c:885 ++#: elf/dl-load.c:888 + msgid "cannot stat shared object" + msgstr "" + +-#: elf/dl-load.c:962 ++#: elf/dl-load.c:965 + msgid "cannot open zero fill device" + msgstr "" + +-#: elf/dl-load.c:1009 elf/dl-load.c:2159 ++#: elf/dl-load.c:1012 elf/dl-load.c:2212 + msgid "cannot create shared object descriptor" + msgstr "" + +-#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 ++#: elf/dl-load.c:1031 elf/dl-load.c:1596 elf/dl-load.c:1708 + msgid "cannot read file data" + msgstr "" + +-#: elf/dl-load.c:1068 ++#: elf/dl-load.c:1071 + msgid "ELF load command alignment not page-aligned" + msgstr "" + +-#: elf/dl-load.c:1075 ++#: elf/dl-load.c:1078 + msgid "ELF load command address/offset not properly aligned" + msgstr "" + +-#: elf/dl-load.c:1159 ++#: elf/dl-load.c:1161 + msgid "cannot allocate TLS data structures for initial thread" + msgstr "" + +-#: elf/dl-load.c:1182 ++#: elf/dl-load.c:1184 + msgid "cannot handle TLS data" + msgstr "" + +-#: elf/dl-load.c:1201 ++#: elf/dl-load.c:1203 + msgid "object file has no loadable segments" + msgstr "" + +-#: elf/dl-load.c:1210 elf/dl-load.c:1660 ++#: elf/dl-load.c:1212 elf/dl-load.c:1688 + msgid "cannot dynamically load executable" + msgstr "" + +-#: elf/dl-load.c:1231 ++#: elf/dl-load.c:1233 + msgid "object file has no dynamic section" + msgstr "" + +-#: elf/dl-load.c:1254 ++#: elf/dl-load.c:1256 + msgid "shared object cannot be dlopen()ed" + msgstr "" + +-#: elf/dl-load.c:1267 ++#: elf/dl-load.c:1269 + msgid "cannot allocate memory for program header" + msgstr "" + +-#: elf/dl-load.c:1283 elf/dl-open.c:195 ++#: elf/dl-load.c:1285 elf/dl-open.c:195 + msgid "invalid caller" + msgstr "" + +-#: elf/dl-load.c:1306 elf/dl-load.h:130 ++#: elf/dl-load.c:1308 elf/dl-load.h:130 + msgid "cannot change memory protections" + msgstr "" + +-#: elf/dl-load.c:1326 ++#: elf/dl-load.c:1328 + msgid "cannot enable executable stack as shared object requires" + msgstr "" + +-#: elf/dl-load.c:1339 ++#: elf/dl-load.c:1341 + msgid "cannot close file descriptor" + msgstr "" + +-#: elf/dl-load.c:1568 ++#: elf/dl-load.c:1596 + msgid "file too short" + msgstr "" + +-#: elf/dl-load.c:1603 ++#: elf/dl-load.c:1631 + msgid "invalid ELF header" + msgstr "" + +-#: elf/dl-load.c:1615 ++#: elf/dl-load.c:1643 + msgid "ELF file data encoding not big-endian" + msgstr "" + +-#: elf/dl-load.c:1617 ++#: elf/dl-load.c:1645 + msgid "ELF file data encoding not little-endian" + msgstr "" + +-#: elf/dl-load.c:1621 ++#: elf/dl-load.c:1649 + msgid "ELF file version ident does not match current one" + msgstr "" + +-#: elf/dl-load.c:1625 ++#: elf/dl-load.c:1653 + msgid "ELF file OS ABI invalid" + msgstr "" + +-#: elf/dl-load.c:1628 ++#: elf/dl-load.c:1656 + msgid "ELF file ABI version invalid" + msgstr "" + +-#: elf/dl-load.c:1631 ++#: elf/dl-load.c:1659 + msgid "nonzero padding in e_ident" + msgstr "" + +-#: elf/dl-load.c:1634 ++#: elf/dl-load.c:1662 + msgid "internal error" + msgstr "" + +-#: elf/dl-load.c:1641 ++#: elf/dl-load.c:1669 + msgid "ELF file version does not match current one" + msgstr "" + +-#: elf/dl-load.c:1649 ++#: elf/dl-load.c:1677 + msgid "only ET_DYN and ET_EXEC can be loaded" + msgstr "" + +-#: elf/dl-load.c:1665 ++#: elf/dl-load.c:1693 + msgid "ELF file's phentsize not the expected size" + msgstr "" + +-#: elf/dl-load.c:2178 ++#: elf/dl-load.c:2231 + msgid "wrong ELF class: ELFCLASS64" + msgstr "" + +-#: elf/dl-load.c:2179 ++#: elf/dl-load.c:2232 + msgid "wrong ELF class: ELFCLASS32" + msgstr "" + +-#: elf/dl-load.c:2182 ++#: elf/dl-load.c:2235 + msgid "cannot open shared object file" + msgstr "" + +@@ -881,7 +881,7 @@ msgstr "" + msgid "need absolute file name for configuration file when using -r" + msgstr "" + +-#: elf/ldconfig.c:1213 locale/programs/xmalloc.c:64 malloc/obstack.c:416 ++#: elf/ldconfig.c:1213 locale/programs/xmalloc.c:63 malloc/obstack.c:416 + #: malloc/obstack.c:418 posix/getconf.c:441 posix/getconf.c:661 + #, c-format + msgid "memory exhausted" +@@ -945,7 +945,7 @@ msgstr "" + msgid "No such file or directory" + msgstr "" + +-#: elf/ldd.bash.in:150 inet/rcmd.c:492 ++#: elf/ldd.bash.in:150 inet/rcmd.c:479 + msgid "not regular file" + msgstr "" + +@@ -1120,32 +1120,32 @@ msgid "" + "\n" + msgstr "" + +-#: elf/sln.c:109 ++#: elf/sln.c:108 + #, c-format + msgid "%s: file open error: %m\n" + msgstr "" + +-#: elf/sln.c:146 ++#: elf/sln.c:145 + #, c-format + msgid "No target in line %d\n" + msgstr "" + +-#: elf/sln.c:178 ++#: elf/sln.c:175 + #, c-format + msgid "%s: destination must not be a directory\n" + msgstr "" + +-#: elf/sln.c:184 ++#: elf/sln.c:181 + #, c-format + msgid "%s: failed to remove the old destination\n" + msgstr "" + +-#: elf/sln.c:192 ++#: elf/sln.c:189 + #, c-format + msgid "%s: invalid destination: %s\n" + msgstr "" + +-#: elf/sln.c:207 elf/sln.c:216 ++#: elf/sln.c:204 elf/sln.c:213 + #, c-format + msgid "Invalid link from \"%s\" to \"%s\": %s\n" + msgstr "" +@@ -1499,84 +1499,84 @@ msgstr "" + msgid "cannot generate output file" + msgstr "" + +-#: inet/rcmd.c:163 ++#: inet/rcmd.c:159 + msgid "rcmd: Cannot allocate memory\n" + msgstr "" + +-#: inet/rcmd.c:178 ++#: inet/rcmd.c:174 + msgid "rcmd: socket: All ports in use\n" + msgstr "" + +-#: inet/rcmd.c:206 ++#: inet/rcmd.c:202 + #, c-format + msgid "connect to address %s: " + msgstr "" + +-#: inet/rcmd.c:219 ++#: inet/rcmd.c:215 + #, c-format + msgid "Trying %s...\n" + msgstr "" + +-#: inet/rcmd.c:255 ++#: inet/rcmd.c:251 + #, c-format + msgid "rcmd: write (setting up stderr): %m\n" + msgstr "" + +-#: inet/rcmd.c:271 ++#: inet/rcmd.c:267 + #, c-format + msgid "rcmd: poll (setting up stderr): %m\n" + msgstr "" + +-#: inet/rcmd.c:274 ++#: inet/rcmd.c:270 + msgid "poll: protocol failure in circuit setup\n" + msgstr "" + +-#: inet/rcmd.c:306 ++#: inet/rcmd.c:302 + msgid "socket: protocol failure in circuit setup\n" + msgstr "" + +-#: inet/rcmd.c:330 ++#: inet/rcmd.c:326 + #, c-format + msgid "rcmd: %s: short read" + msgstr "" + +-#: inet/rcmd.c:490 ++#: inet/rcmd.c:477 + msgid "lstat failed" + msgstr "" + +-#: inet/rcmd.c:497 ++#: inet/rcmd.c:484 + msgid "cannot open" + msgstr "" + +-#: inet/rcmd.c:499 ++#: inet/rcmd.c:486 + msgid "fstat failed" + msgstr "" + +-#: inet/rcmd.c:501 ++#: inet/rcmd.c:488 + msgid "bad owner" + msgstr "" + +-#: inet/rcmd.c:503 ++#: inet/rcmd.c:490 + msgid "writeable by other than owner" + msgstr "" + +-#: inet/rcmd.c:505 ++#: inet/rcmd.c:492 + msgid "hard linked somewhere" + msgstr "" + +-#: inet/ruserpass.c:170 inet/ruserpass.c:193 ++#: inet/ruserpass.c:169 inet/ruserpass.c:192 + msgid "out of memory" + msgstr "" + +-#: inet/ruserpass.c:184 ++#: inet/ruserpass.c:183 + msgid "Error: .netrc file is readable by others." + msgstr "" + +-#: inet/ruserpass.c:185 ++#: inet/ruserpass.c:184 + msgid "Remove password or make file unreadable by others." + msgstr "" + +-#: inet/ruserpass.c:277 ++#: inet/ruserpass.c:276 + #, c-format + msgid "Unknown .netrc keyword %s" + msgstr "" +@@ -1681,7 +1681,7 @@ msgid "no symbolic name given for end of + msgstr "" + + #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 +-#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 ++#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 + #: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 + #: locale/programs/ld-identification.c:368 + #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 +@@ -1708,7 +1708,7 @@ msgid "%s: error in state machine" + msgstr "" + + #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 +-#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 ++#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 + #: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 + #: locale/programs/ld-identification.c:384 + #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 +@@ -1732,7 +1732,7 @@ msgid "" + "same: %d vs %d" + msgstr "" + +-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 ++#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 + #: locale/programs/repertoire.c:419 + msgid "invalid names for character range" + msgstr "" +@@ -1754,7 +1754,7 @@ msgstr "" + msgid "resulting bytes for range not representable." + msgstr "" + +-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 ++#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 + #: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 + #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 + #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 +@@ -1841,7 +1841,7 @@ msgstr "" + msgid "%s: unknown character in field `%s'" + msgstr "" + +-#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 ++#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 + #: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 + #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 + #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 +@@ -1851,10 +1851,10 @@ msgstr "" + msgid "%s: incomplete `END' line" + msgstr "" + +-#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 +-#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 +-#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 +-#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 ++#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 ++#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 ++#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 ++#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 + #: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 + #: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 + #: locale/programs/ld-identification.c:375 +@@ -1866,268 +1866,268 @@ msgstr "" + msgid "%s: syntax error" + msgstr "" + +-#: locale/programs/ld-collate.c:427 ++#: locale/programs/ld-collate.c:426 + #, c-format + msgid "`%.*s' already defined in charmap" + msgstr "" + +-#: locale/programs/ld-collate.c:436 ++#: locale/programs/ld-collate.c:435 + #, c-format + msgid "`%.*s' already defined in repertoire" + msgstr "" + +-#: locale/programs/ld-collate.c:443 ++#: locale/programs/ld-collate.c:442 + #, c-format + msgid "`%.*s' already defined as collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:450 ++#: locale/programs/ld-collate.c:449 + #, c-format + msgid "`%.*s' already defined as collating element" + msgstr "" + +-#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 ++#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 + #, c-format + msgid "%s: `forward' and `backward' are mutually excluding each other" + msgstr "" + +-#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 +-#: locale/programs/ld-collate.c:533 ++#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 ++#: locale/programs/ld-collate.c:532 + #, c-format + msgid "%s: `%s' mentioned more than once in definition of weight %d" + msgstr "" + +-#: locale/programs/ld-collate.c:589 ++#: locale/programs/ld-collate.c:588 + #, c-format + msgid "%s: too many rules; first entry only had %d" + msgstr "" + +-#: locale/programs/ld-collate.c:625 ++#: locale/programs/ld-collate.c:624 + #, c-format + msgid "%s: not enough sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:790 ++#: locale/programs/ld-collate.c:789 + #, c-format + msgid "%s: empty weight string not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:885 ++#: locale/programs/ld-collate.c:884 + #, c-format + msgid "%s: weights must use the same ellipsis symbol as the name" + msgstr "" + +-#: locale/programs/ld-collate.c:941 ++#: locale/programs/ld-collate.c:940 + #, c-format + msgid "%s: too many values" + msgstr "" + +-#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 ++#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 + #, c-format + msgid "order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1111 ++#: locale/programs/ld-collate.c:1110 + #, c-format + msgid "%s: the start and the end symbol of a range must stand for characters" + msgstr "" + +-#: locale/programs/ld-collate.c:1138 ++#: locale/programs/ld-collate.c:1137 + #, c-format + msgid "" + "%s: byte sequences of first and last character must have the same length" + msgstr "" + +-#: locale/programs/ld-collate.c:1180 ++#: locale/programs/ld-collate.c:1179 + #, c-format + msgid "" + "%s: byte sequence of first character of range is not lower than that of the " + "last character" + msgstr "" + +-#: locale/programs/ld-collate.c:1305 ++#: locale/programs/ld-collate.c:1304 + #, c-format + msgid "%s: symbolic range ellipsis must not directly follow `order_start'" + msgstr "" + +-#: locale/programs/ld-collate.c:1309 ++#: locale/programs/ld-collate.c:1308 + #, c-format + msgid "" + "%s: symbolic range ellipsis must not be directly followed by `order_end'" + msgstr "" + +-#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 ++#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1374 + #, c-format + msgid "`%s' and `%.*s' are not valid names for symbolic range" + msgstr "" + +-#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 ++#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 + #, c-format + msgid "%s: order for `%.*s' already defined at %s:%Zu" + msgstr "" + +-#: locale/programs/ld-collate.c:1388 ++#: locale/programs/ld-collate.c:1387 + #, c-format + msgid "%s: `%s' must be a character" + msgstr "" + +-#: locale/programs/ld-collate.c:1583 ++#: locale/programs/ld-collate.c:1582 + #, c-format + msgid "" + "%s: `position' must be used for a specific level in all sections or none" + msgstr "" + +-#: locale/programs/ld-collate.c:1608 ++#: locale/programs/ld-collate.c:1607 + #, c-format + msgid "symbol `%s' not defined" + msgstr "" + +-#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 ++#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 + #, c-format + msgid "symbol `%s' has the same encoding as" + msgstr "" + +-#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 ++#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 + #, c-format + msgid "symbol `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:1834 ++#: locale/programs/ld-collate.c:1833 + #, c-format + msgid "no definition of `UNDEFINED'" + msgstr "" + +-#: locale/programs/ld-collate.c:1863 ++#: locale/programs/ld-collate.c:1862 + #, c-format + msgid "too many errors; giving up" + msgstr "" + +-#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 ++#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 + #, c-format + msgid "%s: nested conditionals not supported" + msgstr "" + +-#: locale/programs/ld-collate.c:2545 ++#: locale/programs/ld-collate.c:2536 + #, c-format + msgid "%s: more than one 'else'" + msgstr "" + +-#: locale/programs/ld-collate.c:2720 ++#: locale/programs/ld-collate.c:2711 + #, c-format + msgid "%s: duplicate definition of `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2756 ++#: locale/programs/ld-collate.c:2747 + #, c-format + msgid "%s: duplicate declaration of section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:2892 ++#: locale/programs/ld-collate.c:2883 + #, c-format + msgid "%s: unknown character in collating symbol name" + msgstr "" + +-#: locale/programs/ld-collate.c:3021 ++#: locale/programs/ld-collate.c:3012 + #, c-format + msgid "%s: unknown character in equivalent definition name" + msgstr "" + +-#: locale/programs/ld-collate.c:3032 ++#: locale/programs/ld-collate.c:3023 + #, c-format + msgid "%s: unknown character in equivalent definition value" + msgstr "" + +-#: locale/programs/ld-collate.c:3042 ++#: locale/programs/ld-collate.c:3033 + #, c-format + msgid "%s: unknown symbol `%s' in equivalent definition" + msgstr "" + +-#: locale/programs/ld-collate.c:3051 ++#: locale/programs/ld-collate.c:3042 + msgid "error while adding equivalent collating symbol" + msgstr "" + +-#: locale/programs/ld-collate.c:3089 ++#: locale/programs/ld-collate.c:3080 + #, c-format + msgid "duplicate definition of script `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3137 ++#: locale/programs/ld-collate.c:3128 + #, c-format + msgid "%s: unknown section name `%.*s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3166 ++#: locale/programs/ld-collate.c:3157 + #, c-format + msgid "%s: multiple order definitions for section `%s'" + msgstr "" + +-#: locale/programs/ld-collate.c:3194 ++#: locale/programs/ld-collate.c:3185 + #, c-format + msgid "%s: invalid number of sorting rules" + msgstr "" + +-#: locale/programs/ld-collate.c:3221 ++#: locale/programs/ld-collate.c:3212 + #, c-format + msgid "%s: multiple order definitions for unnamed section" + msgstr "" + +-#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 +-#: locale/programs/ld-collate.c:3769 ++#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 ++#: locale/programs/ld-collate.c:3760 + #, c-format + msgid "%s: missing `order_end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3339 ++#: locale/programs/ld-collate.c:3330 + #, c-format + msgid "%s: order for collating symbol %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3357 ++#: locale/programs/ld-collate.c:3348 + #, c-format + msgid "%s: order for collating element %.*s not yet defined" + msgstr "" + +-#: locale/programs/ld-collate.c:3368 ++#: locale/programs/ld-collate.c:3359 + #, c-format + msgid "%s: cannot reorder after %.*s: symbol not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 ++#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 + #, c-format + msgid "%s: missing `reorder-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 ++#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 + #, c-format + msgid "%s: section `%.*s' not known" + msgstr "" + +-#: locale/programs/ld-collate.c:3519 ++#: locale/programs/ld-collate.c:3510 + #, c-format + msgid "%s: bad symbol <%.*s>" + msgstr "" + +-#: locale/programs/ld-collate.c:3715 ++#: locale/programs/ld-collate.c:3706 + #, c-format + msgid "%s: cannot have `%s' as end of ellipsis range" + msgstr "" + +-#: locale/programs/ld-collate.c:3765 ++#: locale/programs/ld-collate.c:3756 + #, c-format + msgid "%s: empty category description not allowed" + msgstr "" + +-#: locale/programs/ld-collate.c:3784 ++#: locale/programs/ld-collate.c:3775 + #, c-format + msgid "%s: missing `reorder-sections-end' keyword" + msgstr "" + +-#: locale/programs/ld-collate.c:3948 ++#: locale/programs/ld-collate.c:3939 + #, c-format + msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" + msgstr "" + +-#: locale/programs/ld-collate.c:3966 ++#: locale/programs/ld-collate.c:3957 + #, c-format + msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" + msgstr "" +@@ -2604,7 +2604,7 @@ msgstr "" + msgid "Cannot set LC_ALL to default locale" + msgstr "" + +-#: locale/programs/locale.c:519 ++#: locale/programs/locale.c:525 + #, c-format + msgid "while preparing output" + msgstr "" +@@ -2707,7 +2707,7 @@ msgid "FATAL: system does not define `_P + msgstr "" + + #: locale/programs/localedef.c:260 locale/programs/localedef.c:276 +-#: locale/programs/localedef.c:614 locale/programs/localedef.c:634 ++#: locale/programs/localedef.c:612 locale/programs/localedef.c:632 + #, c-format + msgid "cannot open locale definition file `%s'" + msgstr "" +@@ -2726,12 +2726,12 @@ msgid "" + "%s" + msgstr "" + +-#: locale/programs/localedef.c:582 ++#: locale/programs/localedef.c:580 + #, c-format + msgid "circular dependencies between locale definitions" + msgstr "" + +-#: locale/programs/localedef.c:588 ++#: locale/programs/localedef.c:586 + #, c-format + msgid "cannot add already read locale `%s' a second time" + msgstr "" +@@ -2829,42 +2829,42 @@ msgstr "" + msgid "cannot add to locale archive" + msgstr "" + +-#: locale/programs/locarchive.c:1206 ++#: locale/programs/locarchive.c:1203 + #, c-format + msgid "locale alias file `%s' not found" + msgstr "" + +-#: locale/programs/locarchive.c:1357 ++#: locale/programs/locarchive.c:1351 + #, c-format + msgid "Adding %s\n" + msgstr "" + +-#: locale/programs/locarchive.c:1363 ++#: locale/programs/locarchive.c:1357 + #, c-format + msgid "stat of \"%s\" failed: %s: ignored" + msgstr "" + +-#: locale/programs/locarchive.c:1369 ++#: locale/programs/locarchive.c:1363 + #, c-format + msgid "\"%s\" is no directory; ignored" + msgstr "" + +-#: locale/programs/locarchive.c:1376 ++#: locale/programs/locarchive.c:1370 + #, c-format + msgid "cannot open directory \"%s\": %s: ignored" + msgstr "" + +-#: locale/programs/locarchive.c:1448 ++#: locale/programs/locarchive.c:1442 + #, c-format + msgid "incomplete set of locale files in \"%s\"" + msgstr "" + +-#: locale/programs/locarchive.c:1512 ++#: locale/programs/locarchive.c:1506 + #, c-format + msgid "cannot read all files in \"%s\": ignored" + msgstr "" + +-#: locale/programs/locarchive.c:1584 ++#: locale/programs/locarchive.c:1576 + #, c-format + msgid "locale \"%s\" not in archive" + msgstr "" +@@ -2930,7 +2930,7 @@ msgstr "" + msgid "repertoire map file `%s' not found" + msgstr "" + +-#: login/programs/pt_chown.c:78 ++#: login/programs/pt_chown.c:79 + #, c-format + msgid "" + "Set the owner, group and access permission of the slave pseudo terminal " +@@ -2939,7 +2939,7 @@ msgid "" + "to be run directly from the command line.\n" + msgstr "" + +-#: login/programs/pt_chown.c:92 ++#: login/programs/pt_chown.c:93 + #, c-format + msgid "" + "The owner is set to the current user, the group is set to `%s', and the " +@@ -2948,33 +2948,33 @@ msgid "" + "%s" + msgstr "" + +-#: login/programs/pt_chown.c:198 ++#: login/programs/pt_chown.c:204 + #, c-format + msgid "too many arguments" + msgstr "" + +-#: login/programs/pt_chown.c:206 ++#: login/programs/pt_chown.c:212 + #, c-format + msgid "needs to be installed setuid `root'" + msgstr "" + +-#: malloc/mcheck.c:346 ++#: malloc/mcheck.c:344 + msgid "memory is consistent, library is buggy\n" + msgstr "" + +-#: malloc/mcheck.c:349 ++#: malloc/mcheck.c:347 + msgid "memory clobbered before allocated block\n" + msgstr "" + +-#: malloc/mcheck.c:352 ++#: malloc/mcheck.c:350 + msgid "memory clobbered past end of allocated block\n" + msgstr "" + +-#: malloc/mcheck.c:355 ++#: malloc/mcheck.c:353 + msgid "block freed twice\n" + msgstr "" + +-#: malloc/mcheck.c:358 ++#: malloc/mcheck.c:356 + msgid "bogus mcheck_status, library is buggy\n" + msgstr "" + +@@ -3084,7 +3084,7 @@ msgstr "" + msgid "unable to free arguments" + msgstr "" + +-#: nis/nis_error.h:1 nis/ypclnt.c:831 nis/ypclnt.c:919 posix/regcomp.c:137 ++#: nis/nis_error.h:1 nis/ypclnt.c:817 nis/ypclnt.c:905 posix/regcomp.c:137 + #: sysdeps/gnu/errlist.c:21 + msgid "Success" + msgstr "" +@@ -3126,7 +3126,7 @@ msgid "First/next chain broken" + msgstr "" + + #. TRANS Permission denied; the file permissions do not allow the attempted operation. +-#: nis/nis_error.h:11 nis/ypclnt.c:876 sysdeps/gnu/errlist.c:158 ++#: nis/nis_error.h:11 nis/ypclnt.c:862 sysdeps/gnu/errlist.c:158 + msgid "Permission denied" + msgstr "" + +@@ -3625,91 +3625,91 @@ msgstr "" + msgid "netname2user: should not have uid 0" + msgstr "" + +-#: nis/ypclnt.c:834 ++#: nis/ypclnt.c:820 + msgid "Request arguments bad" + msgstr "" + +-#: nis/ypclnt.c:837 ++#: nis/ypclnt.c:823 + msgid "RPC failure on NIS operation" + msgstr "" + +-#: nis/ypclnt.c:840 ++#: nis/ypclnt.c:826 + msgid "Can't bind to server which serves this domain" + msgstr "" + +-#: nis/ypclnt.c:843 ++#: nis/ypclnt.c:829 + msgid "No such map in server's domain" + msgstr "" + +-#: nis/ypclnt.c:846 ++#: nis/ypclnt.c:832 + msgid "No such key in map" + msgstr "" + +-#: nis/ypclnt.c:849 ++#: nis/ypclnt.c:835 + msgid "Internal NIS error" + msgstr "" + +-#: nis/ypclnt.c:852 ++#: nis/ypclnt.c:838 + msgid "Local resource allocation failure" + msgstr "" + +-#: nis/ypclnt.c:855 ++#: nis/ypclnt.c:841 + msgid "No more records in map database" + msgstr "" + +-#: nis/ypclnt.c:858 ++#: nis/ypclnt.c:844 + msgid "Can't communicate with portmapper" + msgstr "" + +-#: nis/ypclnt.c:861 ++#: nis/ypclnt.c:847 + msgid "Can't communicate with ypbind" + msgstr "" + +-#: nis/ypclnt.c:864 ++#: nis/ypclnt.c:850 + msgid "Can't communicate with ypserv" + msgstr "" + +-#: nis/ypclnt.c:867 ++#: nis/ypclnt.c:853 + msgid "Local domain name not set" + msgstr "" + +-#: nis/ypclnt.c:870 ++#: nis/ypclnt.c:856 + msgid "NIS map database is bad" + msgstr "" + +-#: nis/ypclnt.c:873 ++#: nis/ypclnt.c:859 + msgid "NIS client/server version mismatch - can't supply service" + msgstr "" + +-#: nis/ypclnt.c:879 ++#: nis/ypclnt.c:865 + msgid "Database is busy" + msgstr "" + +-#: nis/ypclnt.c:882 ++#: nis/ypclnt.c:868 + msgid "Unknown NIS error code" + msgstr "" + +-#: nis/ypclnt.c:922 ++#: nis/ypclnt.c:908 + msgid "Internal ypbind error" + msgstr "" + +-#: nis/ypclnt.c:925 ++#: nis/ypclnt.c:911 + msgid "Domain not bound" + msgstr "" + +-#: nis/ypclnt.c:928 ++#: nis/ypclnt.c:914 + msgid "System resource allocation failure" + msgstr "" + +-#: nis/ypclnt.c:931 ++#: nis/ypclnt.c:917 + msgid "Unknown ypbind error" + msgstr "" + +-#: nis/ypclnt.c:972 ++#: nis/ypclnt.c:958 + msgid "yp_update: cannot convert host to netname\n" + msgstr "" + +-#: nis/ypclnt.c:990 ++#: nis/ypclnt.c:976 + msgid "yp_update: cannot get server address\n" + msgstr "" + +@@ -3752,283 +3752,273 @@ msgstr "" + msgid "considering %s entry \"%s\", timeout %" + msgstr "" + +-#: nscd/connections.c:553 ++#: nscd/connections.c:548 + #, c-format + msgid "invalid persistent database file \"%s\": %s" + msgstr "" + +-#: nscd/connections.c:561 ++#: nscd/connections.c:556 + msgid "uninitialized header" + msgstr "" + +-#: nscd/connections.c:566 ++#: nscd/connections.c:561 + msgid "header size does not match" + msgstr "" + +-#: nscd/connections.c:576 ++#: nscd/connections.c:571 + msgid "file size does not match" + msgstr "" + +-#: nscd/connections.c:593 ++#: nscd/connections.c:588 + msgid "verification failed" + msgstr "" + +-#: nscd/connections.c:607 ++#: nscd/connections.c:602 + #, c-format + msgid "" + "suggested size of table for database %s larger than the persistent " + "database's table" + msgstr "" + +-#: nscd/connections.c:618 nscd/connections.c:702 ++#: nscd/connections.c:613 nscd/connections.c:697 + #, c-format + msgid "cannot create read-only descriptor for \"%s\"; no mmap" + msgstr "" + +-#: nscd/connections.c:634 ++#: nscd/connections.c:629 + #, c-format + msgid "cannot access '%s'" + msgstr "" + +-#: nscd/connections.c:682 ++#: nscd/connections.c:677 + #, c-format + msgid "" + "database for %s corrupted or simultaneously used; remove %s manually if " + "necessary and restart" + msgstr "" + +-#: nscd/connections.c:688 ++#: nscd/connections.c:683 + #, c-format + msgid "cannot create %s; no persistent database used" + msgstr "" + +-#: nscd/connections.c:691 ++#: nscd/connections.c:686 + #, c-format + msgid "cannot create %s; no sharing possible" + msgstr "" + +-#: nscd/connections.c:762 ++#: nscd/connections.c:757 + #, c-format + msgid "cannot write to database file %s: %s" + msgstr "" + +-#: nscd/connections.c:801 ++#: nscd/connections.c:796 + #, c-format + msgid "cannot set socket to close on exec: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:850 ++#: nscd/connections.c:831 + #, c-format + msgid "cannot open socket: %s" + msgstr "" + +-#: nscd/connections.c:870 nscd/connections.c:934 +-#, c-format +-msgid "cannot change socket to nonblocking mode: %s" +-msgstr "" +- +-#: nscd/connections.c:878 nscd/connections.c:944 +-#, c-format +-msgid "cannot set socket to close on exec: %s" +-msgstr "" +- +-#: nscd/connections.c:891 ++#: nscd/connections.c:850 + #, c-format + msgid "cannot enable socket to accept connections: %s" + msgstr "" + +-#: nscd/connections.c:973 ++#: nscd/connections.c:907 + #, c-format + msgid "disabled inotify-based monitoring for file `%s': %s" + msgstr "" + +-#: nscd/connections.c:977 ++#: nscd/connections.c:911 + #, c-format + msgid "monitoring file `%s` (%d)" + msgstr "" + +-#: nscd/connections.c:990 ++#: nscd/connections.c:924 + #, c-format + msgid "disabled inotify-based monitoring for directory `%s': %s" + msgstr "" + +-#: nscd/connections.c:994 ++#: nscd/connections.c:928 + #, c-format + msgid "monitoring directory `%s` (%d)" + msgstr "" + +-#: nscd/connections.c:1022 ++#: nscd/connections.c:956 + #, c-format + msgid "monitoring file %s for database %s" + msgstr "" + +-#: nscd/connections.c:1032 ++#: nscd/connections.c:966 + #, c-format + msgid "stat failed for file `%s'; will try again later: %s" + msgstr "" + +-#: nscd/connections.c:1151 ++#: nscd/connections.c:1085 + #, c-format + msgid "provide access to FD %d, for %s" + msgstr "" + +-#: nscd/connections.c:1163 ++#: nscd/connections.c:1097 + #, c-format + msgid "cannot handle old request version %d; current version is %d" + msgstr "" + +-#: nscd/connections.c:1185 ++#: nscd/connections.c:1119 + #, c-format + msgid "request from %ld not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1190 ++#: nscd/connections.c:1124 + #, c-format + msgid "request from '%s' [%ld] not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1195 ++#: nscd/connections.c:1129 + msgid "request not handled due to missing permission" + msgstr "" + +-#: nscd/connections.c:1233 nscd/connections.c:1286 ++#: nscd/connections.c:1167 nscd/connections.c:1220 + #, c-format + msgid "cannot write result: %s" + msgstr "" + +-#: nscd/connections.c:1377 ++#: nscd/connections.c:1311 + #, c-format + msgid "error getting caller's id: %s" + msgstr "" + +-#: nscd/connections.c:1437 ++#: nscd/connections.c:1371 + #, c-format + msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1451 ++#: nscd/connections.c:1385 + #, c-format + msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1491 ++#: nscd/connections.c:1425 + #, c-format + msgid "cannot change to old UID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1501 ++#: nscd/connections.c:1435 + #, c-format + msgid "cannot change to old GID: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1514 ++#: nscd/connections.c:1448 + #, c-format + msgid "cannot change to old working directory: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1560 ++#: nscd/connections.c:1494 + #, c-format + msgid "re-exec failed: %s; disabling paranoia mode" + msgstr "" + +-#: nscd/connections.c:1569 ++#: nscd/connections.c:1503 + #, c-format + msgid "cannot change current working directory to \"/\": %s" + msgstr "" + +-#: nscd/connections.c:1762 ++#: nscd/connections.c:1696 + #, c-format + msgid "short read while reading request: %s" + msgstr "" + +-#: nscd/connections.c:1795 ++#: nscd/connections.c:1729 + #, c-format + msgid "key length in request too long: %d" + msgstr "" + +-#: nscd/connections.c:1808 ++#: nscd/connections.c:1742 + #, c-format + msgid "short read while reading request key: %s" + msgstr "" + +-#: nscd/connections.c:1818 ++#: nscd/connections.c:1752 + #, c-format + msgid "handle_request: request received (Version = %d) from PID %ld" + msgstr "" + +-#: nscd/connections.c:1823 ++#: nscd/connections.c:1757 + #, c-format + msgid "handle_request: request received (Version = %d)" + msgstr "" + +-#: nscd/connections.c:1963 ++#: nscd/connections.c:1897 + #, c-format + msgid "ignored inotify event for `%s` (file exists)" + msgstr "" + +-#: nscd/connections.c:1968 ++#: nscd/connections.c:1902 + #, c-format + msgid "monitored file `%s` was %s, removing watch" + msgstr "" + +-#: nscd/connections.c:1976 nscd/connections.c:2018 ++#: nscd/connections.c:1910 nscd/connections.c:1952 + #, c-format + msgid "failed to remove file watch `%s`: %s" + msgstr "" + +-#: nscd/connections.c:1991 ++#: nscd/connections.c:1925 + #, c-format + msgid "monitored file `%s` was written to" + msgstr "" + +-#: nscd/connections.c:2015 ++#: nscd/connections.c:1949 + #, c-format + msgid "monitored parent directory `%s` was %s, removing watch on `%s`" + msgstr "" + +-#: nscd/connections.c:2041 ++#: nscd/connections.c:1975 + #, c-format + msgid "monitored file `%s` was %s, adding watch" + msgstr "" + +-#: nscd/connections.c:2053 ++#: nscd/connections.c:1987 + #, c-format + msgid "failed to add file watch `%s`: %s" + msgstr "" + +-#: nscd/connections.c:2247 nscd/connections.c:2428 ++#: nscd/connections.c:2181 nscd/connections.c:2362 + #, c-format + msgid "disabled inotify-based monitoring after read error %d" + msgstr "" + +-#: nscd/connections.c:2543 ++#: nscd/connections.c:2477 + msgid "could not initialize conditional variable" + msgstr "" + +-#: nscd/connections.c:2551 ++#: nscd/connections.c:2485 + msgid "could not start clean-up thread; terminating" + msgstr "" + +-#: nscd/connections.c:2565 ++#: nscd/connections.c:2499 + msgid "could not start any worker thread; terminating" + msgstr "" + +-#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 +-#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 +-#: nscd/connections.c:2687 ++#: nscd/connections.c:2554 nscd/connections.c:2556 nscd/connections.c:2572 ++#: nscd/connections.c:2582 nscd/connections.c:2600 nscd/connections.c:2611 ++#: nscd/connections.c:2621 + #, c-format + msgid "Failed to run nscd as user '%s'" + msgstr "" + +-#: nscd/connections.c:2640 ++#: nscd/connections.c:2574 + msgid "initial getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2649 ++#: nscd/connections.c:2583 + msgid "getgrouplist failed" + msgstr "" + +-#: nscd/connections.c:2667 ++#: nscd/connections.c:2601 + msgid "setgroups failed" + msgstr "" + +@@ -4131,7 +4121,7 @@ msgstr "" + msgid "Name Service Cache Daemon." + msgstr "" + +-#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 ++#: nscd/nscd.c:155 nss/getent.c:947 nss/makedb.c:206 + #, c-format + msgid "wrong number of arguments" + msgstr "" +@@ -4493,21 +4483,21 @@ msgstr "" + msgid "Get entries from administrative database." + msgstr "" + +-#: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522 ++#: nss/getent.c:148 nss/getent.c:441 nss/getent.c:486 + #, c-format + msgid "Enumeration not supported on %s\n" + msgstr "" + +-#: nss/getent.c:921 ++#: nss/getent.c:861 + #, c-format + msgid "Unknown database name" + msgstr "" + +-#: nss/getent.c:951 ++#: nss/getent.c:891 + msgid "Supported databases:\n" + msgstr "" + +-#: nss/getent.c:1017 ++#: nss/getent.c:957 + #, c-format + msgid "Unknown database: %s\n" + msgstr "" +@@ -4573,41 +4563,41 @@ msgstr "" + msgid "cannot rename temporary file" + msgstr "" + +-#: nss/makedb.c:531 nss/makedb.c:554 ++#: nss/makedb.c:527 nss/makedb.c:550 + #, c-format + msgid "cannot create search tree" + msgstr "" + +-#: nss/makedb.c:560 ++#: nss/makedb.c:556 + msgid "duplicate key" + msgstr "" + +-#: nss/makedb.c:572 ++#: nss/makedb.c:568 + #, c-format + msgid "problems while reading `%s'" + msgstr "" + +-#: nss/makedb.c:799 ++#: nss/makedb.c:795 + #, c-format + msgid "failed to write new database file" + msgstr "" + +-#: nss/makedb.c:812 ++#: nss/makedb.c:808 + #, c-format + msgid "cannot stat database file" + msgstr "" + +-#: nss/makedb.c:817 ++#: nss/makedb.c:813 + #, c-format + msgid "cannot map database file" + msgstr "" + +-#: nss/makedb.c:820 ++#: nss/makedb.c:816 + #, c-format + msgid "file not a database file" + msgstr "" + +-#: nss/makedb.c:871 ++#: nss/makedb.c:867 + #, c-format + msgid "cannot set file creation context for `%s'" + msgstr "" +@@ -4773,11 +4763,11 @@ msgstr "" + msgid "Unmatched ) or \\)" + msgstr "" + +-#: posix/regcomp.c:685 ++#: posix/regcomp.c:673 + msgid "No previous regular expression" + msgstr "" + +-#: posix/wordexp.c:1851 ++#: posix/wordexp.c:1852 + msgid "parameter null or not set" + msgstr "" + +@@ -4809,27 +4799,27 @@ msgstr "" + msgid "Unknown resolver error" + msgstr "" + +-#: resolv/res_hconf.c:125 ++#: resolv/res_hconf.c:126 + #, c-format + msgid "%s: line %d: cannot specify more than %d trim domains" + msgstr "" + +-#: resolv/res_hconf.c:146 ++#: resolv/res_hconf.c:147 + #, c-format + msgid "%s: line %d: list delimiter not followed by domain" + msgstr "" + +-#: resolv/res_hconf.c:205 ++#: resolv/res_hconf.c:206 + #, c-format + msgid "%s: line %d: expected `on' or `off', found `%s'\n" + msgstr "" + +-#: resolv/res_hconf.c:248 ++#: resolv/res_hconf.c:249 + #, c-format + msgid "%s: line %d: bad command `%s'\n" + msgstr "" + +-#: resolv/res_hconf.c:283 ++#: resolv/res_hconf.c:284 + #, c-format + msgid "%s: line %d: ignoring trailing garbage `%s'\n" + msgstr "" +@@ -4962,7 +4952,7 @@ msgstr "" + msgid "Input message available" + msgstr "" + +-#: stdio-common/psiginfo-data.h:46 ++#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:541 timezone/zic.c:483 + msgid "I/O error" + msgstr "" + +@@ -5029,7 +5019,7 @@ msgstr "" + msgid "Unknown error " + msgstr "" + +-#: string/strerror.c:42 ++#: string/strerror.c:41 + msgid "Unknown error" + msgstr "" + +@@ -5045,9 +5035,9 @@ msgstr "" + + #: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:135 + #: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233 +-#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 +-#: sunrpc/xdr.c:631 sunrpc/xdr.c:793 sunrpc/xdr_array.c:97 +-#: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:76 ++#: sunrpc/svc_udp.c:160 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 ++#: sunrpc/xdr.c:627 sunrpc/xdr.c:787 sunrpc/xdr_array.c:101 ++#: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:78 + msgid "out of memory\n" + msgstr "" + +@@ -5190,23 +5180,23 @@ msgstr "" + msgid "Cannot register service" + msgstr "" + +-#: sunrpc/pmap_rmt.c:243 ++#: sunrpc/pmap_rmt.c:244 + msgid "Cannot create socket for broadcast rpc" + msgstr "" + +-#: sunrpc/pmap_rmt.c:250 ++#: sunrpc/pmap_rmt.c:251 + msgid "Cannot set socket option SO_BROADCAST" + msgstr "" + +-#: sunrpc/pmap_rmt.c:302 ++#: sunrpc/pmap_rmt.c:303 + msgid "Cannot send broadcast packet" + msgstr "" + +-#: sunrpc/pmap_rmt.c:327 ++#: sunrpc/pmap_rmt.c:328 + msgid "Broadcast poll problem" + msgstr "" + +-#: sunrpc/pmap_rmt.c:340 ++#: sunrpc/pmap_rmt.c:341 + msgid "Cannot receive reply to broadcast" + msgstr "" + +@@ -5487,79 +5477,79 @@ msgstr "" + msgid "preprocessor error" + msgstr "" + +-#: sunrpc/rpcinfo.c:246 sunrpc/rpcinfo.c:392 ++#: sunrpc/rpcinfo.c:243 sunrpc/rpcinfo.c:386 + #, c-format + msgid "program %lu is not available\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:273 sunrpc/rpcinfo.c:319 sunrpc/rpcinfo.c:342 +-#: sunrpc/rpcinfo.c:416 sunrpc/rpcinfo.c:462 sunrpc/rpcinfo.c:485 +-#: sunrpc/rpcinfo.c:519 ++#: sunrpc/rpcinfo.c:270 sunrpc/rpcinfo.c:316 sunrpc/rpcinfo.c:339 ++#: sunrpc/rpcinfo.c:410 sunrpc/rpcinfo.c:456 sunrpc/rpcinfo.c:479 ++#: sunrpc/rpcinfo.c:510 + #, c-format + msgid "program %lu version %lu is not available\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:524 ++#: sunrpc/rpcinfo.c:515 + #, c-format + msgid "program %lu version %lu ready and waiting\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:565 sunrpc/rpcinfo.c:572 ++#: sunrpc/rpcinfo.c:554 sunrpc/rpcinfo.c:561 + msgid "rpcinfo: can't contact portmapper" + msgstr "" + +-#: sunrpc/rpcinfo.c:579 ++#: sunrpc/rpcinfo.c:568 + msgid "No remote programs registered.\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:583 ++#: sunrpc/rpcinfo.c:572 + msgid " program vers proto port\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:622 ++#: sunrpc/rpcinfo.c:611 + msgid "(unknown)" + msgstr "" + +-#: sunrpc/rpcinfo.c:646 ++#: sunrpc/rpcinfo.c:633 + #, c-format + msgid "rpcinfo: broadcast failed: %s\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:667 ++#: sunrpc/rpcinfo.c:652 + msgid "Sorry. You are not root\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:674 ++#: sunrpc/rpcinfo.c:659 + #, c-format + msgid "rpcinfo: Could not delete registration for prog %s version %s\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:683 ++#: sunrpc/rpcinfo.c:668 + msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:685 ++#: sunrpc/rpcinfo.c:670 + msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:687 ++#: sunrpc/rpcinfo.c:672 + msgid " rpcinfo -p [ host ]\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:688 ++#: sunrpc/rpcinfo.c:673 + msgid " rpcinfo -b prognum versnum\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:689 ++#: sunrpc/rpcinfo.c:674 + msgid " rpcinfo -d prognum versnum\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:714 ++#: sunrpc/rpcinfo.c:698 + #, c-format + msgid "rpcinfo: %s is unknown service\n" + msgstr "" + +-#: sunrpc/rpcinfo.c:751 ++#: sunrpc/rpcinfo.c:732 + #, c-format + msgid "rpcinfo: %s is unknown host\n" + msgstr "" +@@ -5608,43 +5598,43 @@ msgstr "" + msgid "svc_tcp.c - cannot getsockname or listen" + msgstr "" + +-#: sunrpc/svc_udp.c:137 ++#: sunrpc/svc_udp.c:135 + msgid "svcudp_create: socket creation problem" + msgstr "" + +-#: sunrpc/svc_udp.c:151 ++#: sunrpc/svc_udp.c:149 + msgid "svcudp_create - cannot getsockname" + msgstr "" + +-#: sunrpc/svc_udp.c:183 ++#: sunrpc/svc_udp.c:181 + msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n" + msgstr "" + +-#: sunrpc/svc_udp.c:495 ++#: sunrpc/svc_udp.c:480 + msgid "enablecache: cache already enabled" + msgstr "" + +-#: sunrpc/svc_udp.c:501 ++#: sunrpc/svc_udp.c:486 + msgid "enablecache: could not allocate cache" + msgstr "" + +-#: sunrpc/svc_udp.c:510 ++#: sunrpc/svc_udp.c:495 + msgid "enablecache: could not allocate cache data" + msgstr "" + +-#: sunrpc/svc_udp.c:518 ++#: sunrpc/svc_udp.c:503 + msgid "enablecache: could not allocate cache fifo" + msgstr "" + +-#: sunrpc/svc_udp.c:554 ++#: sunrpc/svc_udp.c:539 + msgid "cache_set: victim not found" + msgstr "" + +-#: sunrpc/svc_udp.c:565 ++#: sunrpc/svc_udp.c:550 + msgid "cache_set: victim alloc failed" + msgstr "" + +-#: sunrpc/svc_udp.c:572 ++#: sunrpc/svc_udp.c:557 + msgid "cache_set: could not allocate new rpc_buffer" + msgstr "" + +@@ -6734,28 +6724,24 @@ msgstr "" + msgid "cannot read header from `%s'" + msgstr "" + +-#: timezone/zdump.c:282 +-msgid "lacks alphabetic at start" +-msgstr "" +- +-#: timezone/zdump.c:284 +-msgid "has fewer than 3 alphabetics" ++#: timezone/zdump.c:494 ++msgid "has fewer than 3 characters" + msgstr "" + +-#: timezone/zdump.c:286 +-msgid "has more than 6 alphabetics" ++#: timezone/zdump.c:496 ++msgid "has more than 6 characters" + msgstr "" + +-#: timezone/zdump.c:294 +-msgid "differs from POSIX standard" ++#: timezone/zdump.c:498 ++msgid "has characters other than ASCII alphanumerics, '-' or '+'" + msgstr "" + +-#: timezone/zdump.c:300 ++#: timezone/zdump.c:503 + #, c-format + msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" + msgstr "" + +-#: timezone/zdump.c:309 ++#: timezone/zdump.c:553 + #, c-format + msgid "" + "%s: usage: %s [--version] [--help] [-{vV}] [-{ct} [lo,]hi] zonename ...\n" +@@ -6763,381 +6749,411 @@ msgid "" + "Report bugs to %s.\n" + msgstr "" + +-#: timezone/zdump.c:386 ++#: timezone/zdump.c:635 + #, c-format + msgid "%s: wild -c argument %s\n" + msgstr "" + +-#: timezone/zdump.c:419 ++#: timezone/zdump.c:668 + #, c-format + msgid "%s: wild -t argument %s\n" + msgstr "" + +-#: timezone/zdump.c:508 +-msgid "Error writing to standard output" +-msgstr "" +- +-#: timezone/zic.c:371 ++#: timezone/zic.c:361 + #, c-format + msgid "%s: Memory exhausted: %s\n" + msgstr "" + +-#: timezone/zic.c:438 ++#: timezone/zic.c:369 ++msgid "size overflow" ++msgstr "" ++ ++#: timezone/zic.c:416 ++msgid "int overflow" ++msgstr "" ++ ++#: timezone/zic.c:451 + #, c-format + msgid "\"%s\", line %d: " + msgstr "" + +-#: timezone/zic.c:441 ++#: timezone/zic.c:454 + #, c-format + msgid " (rule from \"%s\", line %d)" + msgstr "" + +-#: timezone/zic.c:460 ++#: timezone/zic.c:473 + #, c-format + msgid "warning: " + msgstr "" + +-#: timezone/zic.c:470 ++#: timezone/zic.c:498 + #, c-format + msgid "" +-"%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p " +-"posixrules ] \\\n" +-"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" ++"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n" ++"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n" ++"\t[ -L leapseconds ] [ filename ... ]\n" + "\n" + "Report bugs to %s.\n" + msgstr "" + +-#: timezone/zic.c:505 ++#: timezone/zic.c:534 + msgid "wild compilation-time specification of zic_t" + msgstr "" + +-#: timezone/zic.c:524 ++#: timezone/zic.c:554 + #, c-format + msgid "%s: More than one -d option specified\n" + msgstr "" + +-#: timezone/zic.c:534 ++#: timezone/zic.c:564 + #, c-format + msgid "%s: More than one -l option specified\n" + msgstr "" + +-#: timezone/zic.c:544 ++#: timezone/zic.c:574 + #, c-format + msgid "%s: More than one -p option specified\n" + msgstr "" + +-#: timezone/zic.c:554 ++#: timezone/zic.c:584 + #, c-format + msgid "%s: More than one -y option specified\n" + msgstr "" + +-#: timezone/zic.c:564 ++#: timezone/zic.c:594 + #, c-format + msgid "%s: More than one -L option specified\n" + msgstr "" + +-#: timezone/zic.c:611 ++#: timezone/zic.c:603 ++msgid "-s ignored" ++msgstr "" ++ ++#: timezone/zic.c:641 + msgid "link to link" + msgstr "" + +-#: timezone/zic.c:678 +-msgid "hard link failed, symbolic link used" ++#: timezone/zic.c:644 timezone/zic.c:648 ++msgid "command line" + msgstr "" + +-#: timezone/zic.c:688 ++#: timezone/zic.c:664 ++msgid "empty file name" ++msgstr "" ++ ++#: timezone/zic.c:667 + #, c-format +-msgid "%s: Can't read %s: %s\n" ++msgid "file name '%s' begins with '/'" + msgstr "" + +-#: timezone/zic.c:696 timezone/zic.c:1595 ++#: timezone/zic.c:676 + #, c-format +-msgid "%s: Can't create %s: %s\n" ++msgid "file name '%s' contains '%.*s' component" ++msgstr "" ++ ++#: timezone/zic.c:682 ++#, c-format ++msgid "file name '%s' component contains leading '-'" + msgstr "" + +-#: timezone/zic.c:704 timezone/zic.c:939 ++#: timezone/zic.c:685 + #, c-format +-msgid "%s: Error reading %s\n" ++msgid "file name '%s' contains overlength component '%.*s...'" + msgstr "" + +-#: timezone/zic.c:710 timezone/zic.c:1792 ++#: timezone/zic.c:713 + #, c-format +-msgid "%s: Error writing %s\n" ++msgid "file name '%s' contains byte '%c'" + msgstr "" + + #: timezone/zic.c:714 ++#, c-format ++msgid "file name '%s' contains byte '\\%o'" ++msgstr "" ++ ++#: timezone/zic.c:757 ++#, c-format ++msgid "%s: link from %s failed: %s" ++msgstr "" ++ ++#: timezone/zic.c:792 ++msgid "hard link failed, symbolic link used" ++msgstr "" ++ ++#: timezone/zic.c:802 ++#, c-format ++msgid "%s: Can't read %s: %s\n" ++msgstr "" ++ ++#: timezone/zic.c:810 timezone/zic.c:1701 ++#, c-format ++msgid "%s: Can't create %s: %s\n" ++msgstr "" ++ ++#: timezone/zic.c:818 + msgid "link failed, copy used" + msgstr "" + +-#: timezone/zic.c:802 timezone/zic.c:804 ++#: timezone/zic.c:913 timezone/zic.c:915 + msgid "same rule name in multiple files" + msgstr "" + +-#: timezone/zic.c:845 ++#: timezone/zic.c:956 + msgid "unruly zone" + msgstr "" + +-#: timezone/zic.c:852 ++#: timezone/zic.c:963 + #, c-format + msgid "%s in ruleless zone" + msgstr "" + +-#: timezone/zic.c:872 ++#: timezone/zic.c:983 + msgid "standard input" + msgstr "" + +-#: timezone/zic.c:877 ++#: timezone/zic.c:988 + #, c-format + msgid "%s: Can't open %s: %s\n" + msgstr "" + +-#: timezone/zic.c:888 ++#: timezone/zic.c:999 + msgid "line too long" + msgstr "" + +-#: timezone/zic.c:908 ++#: timezone/zic.c:1019 + msgid "input line of unknown type" + msgstr "" + +-#: timezone/zic.c:924 ++#: timezone/zic.c:1034 + #, c-format +-msgid "%s: Leap line in non leap seconds file %s\n" ++msgid "%s: Leap line in non leap seconds file %s" + msgstr "" + +-#: timezone/zic.c:931 timezone/zic.c:1339 timezone/zic.c:1361 ++#: timezone/zic.c:1042 timezone/zic.c:1447 timezone/zic.c:1469 + #, c-format + msgid "%s: panic: Invalid l_value %d\n" + msgstr "" + +-#: timezone/zic.c:946 +-#, c-format +-msgid "%s: Error closing %s: %s\n" +-msgstr "" +- +-#: timezone/zic.c:951 ++#: timezone/zic.c:1051 + msgid "expected continuation line not found" + msgstr "" + +-#: timezone/zic.c:992 timezone/zic.c:2644 timezone/zic.c:2658 ++#: timezone/zic.c:1093 timezone/zic.c:2826 + msgid "time overflow" + msgstr "" + +-#: timezone/zic.c:997 ++#: timezone/zic.c:1098 + msgid "values over 24 hours not handled by pre-2007 versions of zic" + msgstr "" + +-#: timezone/zic.c:1008 ++#: timezone/zic.c:1109 + msgid "wrong number of fields on Rule line" + msgstr "" + +-#: timezone/zic.c:1012 ++#: timezone/zic.c:1113 + msgid "nameless rule" + msgstr "" + +-#: timezone/zic.c:1017 ++#: timezone/zic.c:1118 + msgid "invalid saved time" + msgstr "" + +-#: timezone/zic.c:1034 ++#: timezone/zic.c:1135 + msgid "wrong number of fields on Zone line" + msgstr "" + +-#: timezone/zic.c:1039 ++#: timezone/zic.c:1140 + #, c-format + msgid "\"Zone %s\" line and -l option are mutually exclusive" + msgstr "" + +-#: timezone/zic.c:1045 ++#: timezone/zic.c:1146 + #, c-format + msgid "\"Zone %s\" line and -p option are mutually exclusive" + msgstr "" + +-#: timezone/zic.c:1053 ++#: timezone/zic.c:1154 + #, c-format + msgid "duplicate zone name %s (file \"%s\", line %d)" + msgstr "" + +-#: timezone/zic.c:1066 ++#: timezone/zic.c:1167 + msgid "wrong number of fields on Zone continuation line" + msgstr "" + +-#: timezone/zic.c:1103 ++#: timezone/zic.c:1207 + msgid "invalid UT offset" + msgstr "" + +-#: timezone/zic.c:1106 ++#: timezone/zic.c:1211 + msgid "invalid abbreviation format" + msgstr "" + +-#: timezone/zic.c:1135 ++#: timezone/zic.c:1220 ++#, c-format ++msgid "format '%s' not handled by pre-2015 versions of zic" ++msgstr "" ++ ++#: timezone/zic.c:1247 + msgid "Zone continuation line end time is not after end time of previous line" + msgstr "" + +-#: timezone/zic.c:1161 ++#: timezone/zic.c:1274 + msgid "wrong number of fields on Leap line" + msgstr "" + +-#: timezone/zic.c:1170 ++#: timezone/zic.c:1283 + msgid "invalid leaping year" + msgstr "" + +-#: timezone/zic.c:1190 timezone/zic.c:1293 ++#: timezone/zic.c:1303 timezone/zic.c:1401 + msgid "invalid month name" + msgstr "" + +-#: timezone/zic.c:1203 timezone/zic.c:1406 timezone/zic.c:1420 ++#: timezone/zic.c:1316 timezone/zic.c:1514 timezone/zic.c:1528 + msgid "invalid day of month" + msgstr "" + +-#: timezone/zic.c:1208 ++#: timezone/zic.c:1321 + msgid "time too small" + msgstr "" + +-#: timezone/zic.c:1212 ++#: timezone/zic.c:1325 + msgid "time too large" + msgstr "" + +-#: timezone/zic.c:1216 timezone/zic.c:1322 ++#: timezone/zic.c:1329 timezone/zic.c:1430 + msgid "invalid time of day" + msgstr "" + +-#: timezone/zic.c:1235 ++#: timezone/zic.c:1348 + msgid "illegal CORRECTION field on Leap line" + msgstr "" + +-#: timezone/zic.c:1240 ++#: timezone/zic.c:1353 + msgid "illegal Rolling/Stationary field on Leap line" + msgstr "" + +-#: timezone/zic.c:1246 ++#: timezone/zic.c:1359 + msgid "leap second precedes Big Bang" + msgstr "" + +-#: timezone/zic.c:1259 ++#: timezone/zic.c:1372 + msgid "wrong number of fields on Link line" + msgstr "" + +-#: timezone/zic.c:1263 ++#: timezone/zic.c:1376 + msgid "blank FROM field on Link line" + msgstr "" + +-#: timezone/zic.c:1267 +-msgid "blank TO field on Link line" +-msgstr "" +- +-#: timezone/zic.c:1343 ++#: timezone/zic.c:1451 + msgid "invalid starting year" + msgstr "" + +-#: timezone/zic.c:1365 ++#: timezone/zic.c:1473 + msgid "invalid ending year" + msgstr "" + +-#: timezone/zic.c:1369 ++#: timezone/zic.c:1477 + msgid "starting year greater than ending year" + msgstr "" + +-#: timezone/zic.c:1376 ++#: timezone/zic.c:1484 + msgid "typed single year" + msgstr "" + +-#: timezone/zic.c:1411 ++#: timezone/zic.c:1519 + msgid "invalid weekday name" + msgstr "" + +-#: timezone/zic.c:1530 ++#: timezone/zic.c:1638 + msgid "pre-2014 clients may mishandle more than 1200 transition times" + msgstr "" + +-#: timezone/zic.c:1585 ++#: timezone/zic.c:1691 + #, c-format + msgid "%s: Can't remove %s: %s\n" + msgstr "" + +-#: timezone/zic.c:2143 +-msgid "no POSIX environment variable for zone" +-msgstr "" +- +-#: timezone/zic.c:2149 ++#: timezone/zic.c:1918 + #, c-format +-msgid "%s: pre-%d clients may mishandle distant timestamps" ++msgid "%%z UTC offset magnitude exceeds 99:59:59" + msgstr "" + +-#: timezone/zic.c:2329 +-msgid "can't determine time zone abbreviation to use just after until time" ++#: timezone/zic.c:2291 ++msgid "no POSIX environment variable for zone" + msgstr "" + +-#: timezone/zic.c:2375 timezone/zic.c:2450 +-msgid "too many local time types" ++#: timezone/zic.c:2297 ++#, c-format ++msgid "%s: pre-%d clients may mishandle distant timestamps" + msgstr "" + +-#: timezone/zic.c:2423 +-msgid "internal error - addtype called with bad isdst" ++#: timezone/zic.c:2428 ++msgid "two rules for same instant" + msgstr "" + +-#: timezone/zic.c:2427 +-msgid "internal error - addtype called with bad ttisstd" ++#: timezone/zic.c:2485 ++msgid "can't determine time zone abbreviation to use just after until time" + msgstr "" + +-#: timezone/zic.c:2431 +-msgid "internal error - addtype called with bad ttisgmt" ++#: timezone/zic.c:2531 timezone/zic.c:2593 ++msgid "too many local time types" + msgstr "" + +-#: timezone/zic.c:2454 ++#: timezone/zic.c:2597 + msgid "UT offset out of range" + msgstr "" + +-#: timezone/zic.c:2478 ++#: timezone/zic.c:2621 + msgid "too many leap seconds" + msgstr "" + +-#: timezone/zic.c:2484 ++#: timezone/zic.c:2627 + msgid "repeated leap second moment" + msgstr "" + +-#: timezone/zic.c:2534 ++#: timezone/zic.c:2677 + msgid "Wild result from command execution" + msgstr "" + +-#: timezone/zic.c:2535 ++#: timezone/zic.c:2678 + #, c-format + msgid "%s: command was '%s', result was %d\n" + msgstr "" + +-#: timezone/zic.c:2626 ++#: timezone/zic.c:2810 + msgid "Odd number of quotation marks" + msgstr "" + +-#: timezone/zic.c:2703 ++#: timezone/zic.c:2896 + msgid "use of 2/29 in non leap-year" + msgstr "" + +-#: timezone/zic.c:2738 ++#: timezone/zic.c:2931 + msgid "" +-"rule goes past start/end of month--will not work with pre-2004 versions of " ++"rule goes past start/end of month; will not work with pre-2004 versions of " + "zic" + msgstr "" + +-#: timezone/zic.c:2769 +-msgid "time zone abbreviation lacks alphabetic at start" +-msgstr "" +- +-#: timezone/zic.c:2771 +-msgid "time zone abbreviation has fewer than 3 alphabetics" ++#: timezone/zic.c:2958 ++msgid "time zone abbreviation has fewer than 3 characters" + msgstr "" + +-#: timezone/zic.c:2773 +-msgid "time zone abbreviation has too many alphabetics" ++#: timezone/zic.c:2960 ++msgid "time zone abbreviation has too many characters" + msgstr "" + +-#: timezone/zic.c:2783 ++#: timezone/zic.c:2962 + msgid "time zone abbreviation differs from POSIX standard" + msgstr "" + +-#: timezone/zic.c:2789 ++#: timezone/zic.c:2968 + msgid "too many, or too long, time zone abbreviations" + msgstr "" + +-#: timezone/zic.c:2829 ++#: timezone/zic.c:3004 + #, c-format +-msgid "%s: Can't create directory %s: %s\n" ++msgid "%s: Can't create directory %s: %s" + msgstr "" diff --git a/0003-Regenerated-configure-scripts.patch b/0003-Regenerated-configure-scripts.patch new file mode 100644 index 0000000..b094467 --- /dev/null +++ b/0003-Regenerated-configure-scripts.patch @@ -0,0 +1,17 @@ +2016-02-18 Adhemerval Zanella + + * configure: Regenerated. + +Index: glibc-2.23/configure +=================================================================== +--- glibc-2.23.orig/configure ++++ glibc-2.23/configure +@@ -3864,7 +3864,7 @@ if test -z "$enable_hacker_mode" && test + *** The GNU C library is currently unavailable for this platform. + *** If you are interested in seeing glibc on this platform visit + *** the \"How to submit a new port\" in the wiki: +-*** https://sourceware.org/glibc/wiki/HomePage#Development ++*** https://sourceware.org/glibc/wiki/#Development + *** and join the community!" "$LINENO" 5 + ;; + esac diff --git a/0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch b/0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch new file mode 100644 index 0000000..97faae1 --- /dev/null +++ b/0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch @@ -0,0 +1,101 @@ +2016-02-22 H.J. Lu + + [BZ #19679] + * sysdeps/x86_64/dl-trampoline.S (DL_RUNIME_UNALIGNED_VEC_SIZE): + Renamed to ... + (DL_RUNTIME_UNALIGNED_VEC_SIZE): This. Set to 8. + (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ... + (DL_RUNTIME_RESOLVE_REALIGN_STACK): This. Updated. + (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ... + (DL_RUNTIME_RESOLVE_REALIGN_STACK): This. + * sysdeps/x86_64/dl-trampoline.h + (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ... + (DL_RUNTIME_RESOLVE_REALIGN_STACK): This. + +Index: glibc-2.23/sysdeps/x86_64/dl-trampoline.S +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/dl-trampoline.S ++++ glibc-2.23/sysdeps/x86_64/dl-trampoline.S +@@ -33,15 +33,19 @@ + # define DL_STACK_ALIGNMENT 8 + #endif + +-#ifndef DL_RUNIME_UNALIGNED_VEC_SIZE +-/* The maximum size of unaligned vector load and store. */ +-# define DL_RUNIME_UNALIGNED_VEC_SIZE 16 ++#ifndef DL_RUNTIME_UNALIGNED_VEC_SIZE ++/* The maximum size in bytes of unaligned vector load and store in the ++ dynamic linker. Since SSE optimized memory/string functions with ++ aligned SSE register load and store are used in the dynamic linker, ++ we must set this to 8 so that _dl_runtime_resolve_sse will align the ++ stack before calling _dl_fixup. */ ++# define DL_RUNTIME_UNALIGNED_VEC_SIZE 8 + #endif + + /* True if _dl_runtime_resolve should align stack to VEC_SIZE bytes. */ +-#define DL_RUNIME_RESOLVE_REALIGN_STACK \ ++#define DL_RUNTIME_RESOLVE_REALIGN_STACK \ + (VEC_SIZE > DL_STACK_ALIGNMENT \ +- && VEC_SIZE > DL_RUNIME_UNALIGNED_VEC_SIZE) ++ && VEC_SIZE > DL_RUNTIME_UNALIGNED_VEC_SIZE) + + /* Align vector register save area to 16 bytes. */ + #define REGISTER_SAVE_VEC_OFF 0 +@@ -76,7 +80,7 @@ + #ifdef HAVE_AVX512_ASM_SUPPORT + # define VEC_SIZE 64 + # define VMOVA vmovdqa64 +-# if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT ++# if DL_RUNTIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT + # define VMOV vmovdqa64 + # else + # define VMOV vmovdqu64 +@@ -100,7 +104,7 @@ strong_alias (_dl_runtime_profile_avx, _ + + #define VEC_SIZE 32 + #define VMOVA vmovdqa +-#if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT ++#if DL_RUNTIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT + # define VMOV vmovdqa + #else + # define VMOV vmovdqu +@@ -119,7 +123,7 @@ strong_alias (_dl_runtime_profile_avx, _ + /* movaps/movups is 1-byte shorter. */ + #define VEC_SIZE 16 + #define VMOVA movaps +-#if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT ++#if DL_RUNTIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT + # define VMOV movaps + #else + # define VMOV movups +Index: glibc-2.23/sysdeps/x86_64/dl-trampoline.h +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/dl-trampoline.h ++++ glibc-2.23/sysdeps/x86_64/dl-trampoline.h +@@ -30,7 +30,7 @@ + #undef REGISTER_SAVE_AREA + #undef LOCAL_STORAGE_AREA + #undef BASE +-#if DL_RUNIME_RESOLVE_REALIGN_STACK ++#if DL_RUNTIME_RESOLVE_REALIGN_STACK + # define REGISTER_SAVE_AREA (REGISTER_SAVE_AREA_RAW + 8) + /* Local stack area before jumping to function address: RBX. */ + # define LOCAL_STORAGE_AREA 8 +@@ -57,7 +57,7 @@ + cfi_startproc + _dl_runtime_resolve: + cfi_adjust_cfa_offset(16) # Incorporate PLT +-#if DL_RUNIME_RESOLVE_REALIGN_STACK ++#if DL_RUNTIME_RESOLVE_REALIGN_STACK + # if LOCAL_STORAGE_AREA != 8 + # error LOCAL_STORAGE_AREA must be 8 + # endif +@@ -146,7 +146,7 @@ _dl_runtime_resolve: + VMOV (REGISTER_SAVE_VEC_OFF + VEC_SIZE * 5)(%rsp), %VEC(5) + VMOV (REGISTER_SAVE_VEC_OFF + VEC_SIZE * 6)(%rsp), %VEC(6) + VMOV (REGISTER_SAVE_VEC_OFF + VEC_SIZE * 7)(%rsp), %VEC(7) +-#if DL_RUNIME_RESOLVE_REALIGN_STACK ++#if DL_RUNTIME_RESOLVE_REALIGN_STACK + mov %RBX_LP, %RSP_LP + cfi_def_cfa_register(%rsp) + movq (%rsp), %rbx diff --git a/0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch b/0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch new file mode 100644 index 0000000..d04cc62 --- /dev/null +++ b/0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch @@ -0,0 +1,19 @@ +2016-02-22 Roland McGrath + + * sysdeps/arm/nacl/libc.abilist (GLIBC_2.23): Add GLIBC_2.23, + fts64_children, fts64_close, fts64_open, fts64_read and fts64_set. + +Index: glibc-2.23/sysdeps/arm/nacl/libc.abilist +=================================================================== +--- glibc-2.23.orig/sysdeps/arm/nacl/libc.abilist ++++ glibc-2.23/sysdeps/arm/nacl/libc.abilist +@@ -1834,3 +1834,9 @@ GLIBC_2.22 wprintf F + GLIBC_2.22 write F + GLIBC_2.22 writev F + GLIBC_2.22 wscanf F ++GLIBC_2.23 GLIBC_2.23 A ++GLIBC_2.23 fts64_children F ++GLIBC_2.23 fts64_close F ++GLIBC_2.23 fts64_open F ++GLIBC_2.23 fts64_read F ++GLIBC_2.23 fts64_set F diff --git a/no-long-double.patch b/0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch similarity index 66% rename from no-long-double.patch rename to 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch index cedd20d..3f92cfa 100644 --- a/no-long-double.patch +++ b/0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch @@ -1,7 +1,12 @@ -Index: glibc-2.22/math/test-math-isinff.cc +2016-02-24 Andreas Schwab + + * math/test-math-isinff.cc (do_test): Only call isinfl and isnanl + if !NO_LONG_DOUBLE. + +Index: glibc-2.23/math/test-math-isinff.cc =================================================================== ---- glibc-2.22.orig/math/test-math-isinff.cc -+++ glibc-2.22/math/test-math-isinff.cc +--- glibc-2.23.orig/math/test-math-isinff.cc ++++ glibc-2.23/math/test-math-isinff.cc @@ -30,12 +30,17 @@ do_test (void) header fix this test will not compile. */ if (isinff (1.0f) diff --git a/0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch b/0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch new file mode 100644 index 0000000..e325c0a --- /dev/null +++ b/0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch @@ -0,0 +1,17 @@ +2016-02-24 Marko Myllynen + + * NEWS (2.23): Fix typo in bug 19048 text. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -38,7 +38,7 @@ Version 2.23 + unnecessary serialization of memory allocation requests across threads. + The defect is now corrected. Users should see a substantial increase in + the concurent throughput of allocation requests for applications which +- trigger this bug. Affected applications typically create create and ++ trigger this bug. Affected applications typically create and + destroy threads frequently. (Bug 19048 was reported and analyzed by + Ericsson.) + diff --git a/0008-Update-NEWS.patch b/0008-Update-NEWS.patch new file mode 100644 index 0000000..1ab59d6 --- /dev/null +++ b/0008-Update-NEWS.patch @@ -0,0 +1,22 @@ +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -5,6 +5,17 @@ See the end for copying conditions. + Please send GNU C library bug reports via + using `glibc' in the "product" field. + ++Version 2.23.1 ++ ++Security related changes: ++ ++ [Add security related changes here] ++ ++The following bugs are resolved with this release: ++ ++ [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack ++ ++ + Version 2.23 + + * Unicode 8.0.0 Support: Character encoding, character type info, and diff --git a/0009-sln-use-stat64.patch b/0009-sln-use-stat64.patch new file mode 100644 index 0000000..c84deb7 --- /dev/null +++ b/0009-sln-use-stat64.patch @@ -0,0 +1,23 @@ +2016-03-07 Hongjiu Zhang + + * elf/sln.c (makesymlink): Change struct stat to stat64, and lstat + to lstat64. + +Index: glibc-2.23/elf/sln.c +=================================================================== +--- glibc-2.23.orig/elf/sln.c ++++ glibc-2.23/elf/sln.c +@@ -164,11 +164,11 @@ makesymlinks (const char *file) + static int + makesymlink (const char *src, const char *dest) + { +- struct stat stats; ++ struct stat64 stats; + const char *error; + + /* Destination must not be a directory. */ +- if (lstat (dest, &stats) == 0) ++ if (lstat64 (dest, &stats) == 0) + { + if (S_ISDIR (stats.st_mode)) + { diff --git a/0010-Add-sys-auxv.h-wrapper-to-include-sys.patch b/0010-Add-sys-auxv.h-wrapper-to-include-sys.patch new file mode 100644 index 0000000..3f185b3 --- /dev/null +++ b/0010-Add-sys-auxv.h-wrapper-to-include-sys.patch @@ -0,0 +1,10 @@ +2016-03-08 Aurelien Jarno + + * include/sys/auxv.h: New file. + +Index: glibc-2.23/include/sys/auxv.h +=================================================================== +--- /dev/null ++++ glibc-2.23/include/sys/auxv.h +@@ -0,0 +1 @@ ++#include diff --git a/0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch b/0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch new file mode 100644 index 0000000..dde2850 --- /dev/null +++ b/0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch @@ -0,0 +1,43 @@ +2016-03-09 Aurelien Jarno + + [BZ #19792] + * sysdeps/unix/sysv/linux/mips/makecontext.S (__makecontext): + Terminate FDE before return label. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -14,6 +14,7 @@ Security related changes: + The following bugs are resolved with this release: + + [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack ++ [19792] MIPS: backtrace yields infinite backtrace with makecontext + + + Version 2.23 +Index: glibc-2.23/sysdeps/unix/sysv/linux/mips/makecontext.S +=================================================================== +--- glibc-2.23.orig/sysdeps/unix/sysv/linux/mips/makecontext.S ++++ glibc-2.23/sysdeps/unix/sysv/linux/mips/makecontext.S +@@ -153,6 +153,11 @@ NESTED (__makecontext, FRAMESZ, ra) + #endif + jr ra + ++ /* We need to terminate the FDE to stop unwinding if backtrace was ++ called within a context created by makecontext. */ ++ cfi_endproc ++ nop ++ + 99: + #ifdef __PIC__ + move gp, s1 +@@ -186,6 +191,8 @@ NESTED (__makecontext, FRAMESZ, ra) + 1: + lb zero, (zero) + b 1b ++ ++ cfi_startproc + PSEUDO_END (__makecontext) + + weak_alias (__makecontext, makecontext) diff --git a/0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch b/0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch new file mode 100644 index 0000000..0893646 --- /dev/null +++ b/0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch @@ -0,0 +1,135 @@ +2016-03-10 H.J. Lu + + [BZ #19762] + * sysdeps/i386/i686/multiarch/bcopy.S (bcopy): Use + HAS_ARCH_FEATURE with Fast_Rep_String. + * sysdeps/i386/i686/multiarch/bzero.S (__bzero): Likewise. + * sysdeps/i386/i686/multiarch/memcpy.S (memcpy): Likewise. + * sysdeps/i386/i686/multiarch/memcpy_chk.S (__memcpy_chk): + Likewise. + * sysdeps/i386/i686/multiarch/memmove_chk.S (__memmove_chk): + Likewise. + * sysdeps/i386/i686/multiarch/mempcpy.S (__mempcpy): Likewise. + * sysdeps/i386/i686/multiarch/mempcpy_chk.S (__mempcpy_chk): + Likewise. + * sysdeps/i386/i686/multiarch/memset.S (memset): Likewise. + * sysdeps/i386/i686/multiarch/memset_chk.S (__memset_chk): + Likewise. + +Index: glibc-2.23/sysdeps/i386/i686/multiarch/bcopy.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/bcopy.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/bcopy.S +@@ -36,7 +36,7 @@ ENTRY(bcopy) + HAS_CPU_FEATURE (SSSE3) + jz 2f + LOAD_FUNC_GOT_EAX (__bcopy_ssse3) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__bcopy_ssse3_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/bzero.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/bzero.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/bzero.S +@@ -31,7 +31,7 @@ ENTRY(__bzero) + HAS_CPU_FEATURE (SSE2) + jz 2f + LOAD_FUNC_GOT_EAX ( __bzero_sse2) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__bzero_sse2_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/memcpy.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memcpy.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/memcpy.S +@@ -38,7 +38,7 @@ ENTRY(memcpy) + HAS_CPU_FEATURE (SSSE3) + jz 2f + LOAD_FUNC_GOT_EAX (__memcpy_ssse3) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__memcpy_ssse3_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/memcpy_chk.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memcpy_chk.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/memcpy_chk.S +@@ -39,7 +39,7 @@ ENTRY(__memcpy_chk) + HAS_CPU_FEATURE (SSSE3) + jz 2f + LOAD_FUNC_GOT_EAX (__memcpy_chk_ssse3) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__memcpy_chk_ssse3_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/memmove_chk.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memmove_chk.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/memmove_chk.S +@@ -36,7 +36,7 @@ ENTRY(__memmove_chk) + HAS_CPU_FEATURE (SSSE3) + jz 2f + LOAD_FUNC_GOT_EAX (__memmove_chk_ssse3) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__memmove_chk_ssse3_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/mempcpy.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy.S +@@ -38,7 +38,7 @@ ENTRY(__mempcpy) + HAS_CPU_FEATURE (SSSE3) + jz 2f + LOAD_FUNC_GOT_EAX (__mempcpy_ssse3) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__mempcpy_ssse3_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy_chk.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/mempcpy_chk.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy_chk.S +@@ -39,7 +39,7 @@ ENTRY(__mempcpy_chk) + HAS_CPU_FEATURE (SSSE3) + jz 2f + LOAD_FUNC_GOT_EAX (__mempcpy_chk_ssse3) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__mempcpy_chk_ssse3_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/memset.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memset.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/memset.S +@@ -31,7 +31,7 @@ ENTRY(memset) + HAS_CPU_FEATURE (SSE2) + jz 2f + LOAD_FUNC_GOT_EAX (__memset_sse2) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__memset_sse2_rep) + 2: ret +Index: glibc-2.23/sysdeps/i386/i686/multiarch/memset_chk.S +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memset_chk.S ++++ glibc-2.23/sysdeps/i386/i686/multiarch/memset_chk.S +@@ -31,7 +31,7 @@ ENTRY(__memset_chk) + HAS_CPU_FEATURE (SSE2) + jz 2f + LOAD_FUNC_GOT_EAX (__memset_chk_sse2) +- HAS_CPU_FEATURE (Fast_Rep_String) ++ HAS_ARCH_FEATURE (Fast_Rep_String) + jz 2f + LOAD_FUNC_GOT_EAX (__memset_chk_sse2_rep) + 2: ret diff --git a/0013-Mention-BZ-19762-in-NEWS.patch b/0013-Mention-BZ-19762-in-NEWS.patch new file mode 100644 index 0000000..067906f --- /dev/null +++ b/0013-Mention-BZ-19762-in-NEWS.patch @@ -0,0 +1,12 @@ +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -14,6 +14,7 @@ Security related changes: + The following bugs are resolved with this release: + + [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack ++ [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String + [19792] MIPS: backtrace yields infinite backtrace with makecontext + + diff --git a/0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch b/0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch new file mode 100644 index 0000000..7271518 --- /dev/null +++ b/0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch @@ -0,0 +1,31 @@ +2016-03-11 H.J. Lu + + [BZ #19759] + * sysdeps/x86/bits/string.h (_HAVE_STRING_ARCH_mempcpy): New. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -14,6 +14,7 @@ Security related changes: + The following bugs are resolved with this release: + + [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack ++ [19759] Don't inline mempcpy for x86 + [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String + [19792] MIPS: backtrace yields infinite backtrace with makecontext + +Index: glibc-2.23/sysdeps/x86/bits/string.h +=================================================================== +--- glibc-2.23.orig/sysdeps/x86/bits/string.h ++++ glibc-2.23/sysdeps/x86/bits/string.h +@@ -23,6 +23,9 @@ + /* Use the unaligned string inline ABI. */ + #define _STRING_INLINE_unaligned 1 + ++/* Don't inline mempcpy into memcpy as x86 has an optimized mempcpy. */ ++#define _HAVE_STRING_ARCH_mempcpy 1 ++ + /* Enable inline functions only for i486 or better when compiling for + ia32. */ + #if !defined __x86_64__ && (defined __i486__ || defined __pentium__ \ diff --git a/0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch b/0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch new file mode 100644 index 0000000..c101b6b --- /dev/null +++ b/0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch @@ -0,0 +1,31 @@ +2016-03-11 H.J. Lu + + [BZ #19758] + * sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h + (EXTRA_LD_ENVVARS): Or bit_Prefer_MAP_32BIT_EXEC. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -14,6 +14,7 @@ Security related changes: + The following bugs are resolved with this release: + + [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack ++ [19758] Or bit_Prefer_MAP_32BIT_EXEC in EXTRA_LD_ENVVARS + [19759] Don't inline mempcpy for x86 + [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String + [19792] MIPS: backtrace yields infinite backtrace with makecontext +Index: glibc-2.23/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h +=================================================================== +--- glibc-2.23.orig/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h ++++ glibc-2.23/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h +@@ -33,7 +33,7 @@ + case 21: \ + if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ + GLRO(dl_x86_cpu_features).feature[index_Prefer_MAP_32BIT_EXEC] \ +- = bit_Prefer_MAP_32BIT_EXEC; \ ++ |= bit_Prefer_MAP_32BIT_EXEC; \ + break; + + /* Extra unsecure variables. The names are all stuffed in a single diff --git a/resolv-mem-leak.patch b/0016-Fix-resource-leak-in-resolver-bug-19257.patch similarity index 62% rename from resolv-mem-leak.patch rename to 0016-Fix-resource-leak-in-resolver-bug-19257.patch index 2e4e8e4..56ff81d 100644 --- a/resolv-mem-leak.patch +++ b/0016-Fix-resource-leak-in-resolver-bug-19257.patch @@ -1,16 +1,14 @@ -Fix resource leak in resolver (bug 19257) +2016-03-15 Andreas Schwab + [BZ #19257] * resolv/res_init.c (__res_iclose): Use statp->nscount instead of statp->_u._ext.nscount as loop count. ---- - resolv/res_init.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -Index: glibc-2.22/resolv/res_init.c +Index: glibc-2.23/resolv/res_init.c =================================================================== ---- glibc-2.22.orig/resolv/res_init.c -+++ glibc-2.22/resolv/res_init.c -@@ -593,7 +593,7 @@ __res_iclose(res_state statp, bool free_ +--- glibc-2.23.orig/resolv/res_init.c ++++ glibc-2.23/resolv/res_init.c +@@ -594,7 +594,7 @@ __res_iclose(res_state statp, bool free_ statp->_vcsock = -1; statp->_flags &= ~(RES_F_VC | RES_F_CONN); } diff --git a/0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch b/0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch new file mode 100644 index 0000000..0819d55 --- /dev/null +++ b/0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch @@ -0,0 +1,32 @@ +2016-03-21 Dylan Alex Simon + + [BZ #19822] + * math/Makefile ($(inst_libdir)/libm.so): Write output to $@.tmp and + move it to the final $@ location. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -18,6 +18,7 @@ The following bugs are resolved with thi + [19759] Don't inline mempcpy for x86 + [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String + [19792] MIPS: backtrace yields infinite backtrace with makecontext ++ [19822] libm.so install clobbers old version + + + Version 2.23 +Index: glibc-2.23/math/Makefile +=================================================================== +--- glibc-2.23.orig/math/Makefile ++++ glibc-2.23/math/Makefile +@@ -100,7 +100,8 @@ $(inst_libdir)/libm.so: $(common-objpfx) + cat $<; \ + echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \ + 'AS_NEEDED ( $(libdir)/libmvec_nonshared.a $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \ +- ) > $@ ++ ) > $@.new ++ mv -f $@.new $@ + endif + + # Rules for the test suite. diff --git a/0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch b/0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch new file mode 100644 index 0000000..a512c58 --- /dev/null +++ b/0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch @@ -0,0 +1,187 @@ +2016-03-25 Florian Weimer + + [BZ #19791] + * resolv/res_send.c (close_and_return_error): New function. + (send_dg): Initialize *resplen2 after reopen failure. Call + close_and_return_error for error returns. On error paths without + __res_iclose, initialze *resplen2 explicitly. Update comment for + successful return. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -17,6 +17,7 @@ The following bugs are resolved with thi + [19758] Or bit_Prefer_MAP_32BIT_EXEC in EXTRA_LD_ENVVARS + [19759] Don't inline mempcpy for x86 + [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String ++ [19791] Assertion failure in res_query.c with un-connectable name server addresses + [19792] MIPS: backtrace yields infinite backtrace with makecontext + [19822] libm.so install clobbers old version + +Index: glibc-2.23/resolv/res_send.c +=================================================================== +--- glibc-2.23.orig/resolv/res_send.c ++++ glibc-2.23/resolv/res_send.c +@@ -649,6 +649,18 @@ get_nsaddr (res_state statp, int n) + return (struct sockaddr *) (void *) &statp->nsaddr_list[n]; + } + ++/* Close the resolver structure, assign zero to *RESPLEN2 if RESPLEN2 ++ is not NULL, and return zero. */ ++static int ++__attribute__ ((warn_unused_result)) ++close_and_return_error (res_state statp, int *resplen2) ++{ ++ __res_iclose(statp, false); ++ if (resplen2 != NULL) ++ *resplen2 = 0; ++ return 0; ++} ++ + /* The send_vc function is responsible for sending a DNS query over TCP + to the nameserver numbered NS from the res_state STATP i.e. + EXT(statp).nssocks[ns]. The function supports sending both IPv4 and +@@ -1114,7 +1126,11 @@ send_dg(res_state statp, + retry_reopen: + retval = reopen (statp, terrno, ns); + if (retval <= 0) +- return retval; ++ { ++ if (resplen2 != NULL) ++ *resplen2 = 0; ++ return retval; ++ } + retry: + evNowTime(&now); + evConsTime(&timeout, seconds, 0); +@@ -1127,8 +1143,6 @@ send_dg(res_state statp, + int recvresp2 = buf2 == NULL; + pfd[0].fd = EXT(statp).nssocks[ns]; + pfd[0].events = POLLOUT; +- if (resplen2 != NULL) +- *resplen2 = 0; + wait: + if (need_recompute) { + recompute_resend: +@@ -1136,9 +1150,7 @@ send_dg(res_state statp, + if (evCmpTime(finish, now) <= 0) { + poll_err_out: + Perror(statp, stderr, "poll", errno); +- err_out: +- __res_iclose(statp, false); +- return (0); ++ return close_and_return_error (statp, resplen2); + } + evSubTime(&timeout, &finish, &now); + need_recompute = 0; +@@ -1185,7 +1197,9 @@ send_dg(res_state statp, + } + + *gotsomewhere = 1; +- return (0); ++ if (resplen2 != NULL) ++ *resplen2 = 0; ++ return 0; + } + if (n < 0) { + if (errno == EINTR) +@@ -1253,7 +1267,7 @@ send_dg(res_state statp, + + fail_sendmmsg: + Perror(statp, stderr, "sendmmsg", errno); +- goto err_out; ++ return close_and_return_error (statp, resplen2); + } + } + else +@@ -1271,7 +1285,7 @@ send_dg(res_state statp, + if (errno == EINTR || errno == EAGAIN) + goto recompute_resend; + Perror(statp, stderr, "send", errno); +- goto err_out; ++ return close_and_return_error (statp, resplen2); + } + just_one: + if (nwritten != 0 || buf2 == NULL || single_request) +@@ -1349,7 +1363,7 @@ send_dg(res_state statp, + goto wait; + } + Perror(statp, stderr, "recvfrom", errno); +- goto err_out; ++ return close_and_return_error (statp, resplen2); + } + *gotsomewhere = 1; + if (__glibc_unlikely (*thisresplenp < HFIXEDSZ)) { +@@ -1360,7 +1374,7 @@ send_dg(res_state statp, + (stdout, ";; undersized: %d\n", + *thisresplenp)); + *terrno = EMSGSIZE; +- goto err_out; ++ return close_and_return_error (statp, resplen2); + } + if ((recvresp1 || hp->id != anhp->id) + && (recvresp2 || hp2->id != anhp->id)) { +@@ -1409,7 +1423,7 @@ send_dg(res_state statp, + ? *thisanssizp : *thisresplenp); + /* record the error */ + statp->_flags |= RES_F_EDNS0ERR; +- goto err_out; ++ return close_and_return_error (statp, resplen2); + } + #endif + if (!(statp->options & RES_INSECURE2) +@@ -1461,10 +1475,10 @@ send_dg(res_state statp, + goto wait; + } + +- __res_iclose(statp, false); + /* don't retry if called from dig */ + if (!statp->pfcode) +- return (0); ++ return close_and_return_error (statp, resplen2); ++ __res_iclose(statp, false); + } + if (anhp->rcode == NOERROR && anhp->ancount == 0 + && anhp->aa == 0 && anhp->ra == 0 && anhp->arcount == 0) { +@@ -1486,6 +1500,8 @@ send_dg(res_state statp, + __res_iclose(statp, false); + // XXX if we have received one reply we could + // XXX use it and not repeat it over TCP... ++ if (resplen2 != NULL) ++ *resplen2 = 0; + return (1); + } + /* Mark which reply we received. */ +@@ -1501,21 +1517,22 @@ send_dg(res_state statp, + __res_iclose (statp, false); + retval = reopen (statp, terrno, ns); + if (retval <= 0) +- return retval; ++ { ++ if (resplen2 != NULL) ++ *resplen2 = 0; ++ return retval; ++ } + pfd[0].fd = EXT(statp).nssocks[ns]; + } + } + goto wait; + } +- /* +- * All is well, or the error is fatal. Signal that the +- * next nameserver ought not be tried. +- */ ++ /* All is well. We have received both responses (if ++ two responses were requested). */ + return (resplen); +- } else if (pfd[0].revents & (POLLERR | POLLHUP | POLLNVAL)) { +- /* Something went wrong. We can stop trying. */ +- goto err_out; +- } ++ } else if (pfd[0].revents & (POLLERR | POLLHUP | POLLNVAL)) ++ /* Something went wrong. We can stop trying. */ ++ return close_and_return_error (statp, resplen2); + else { + /* poll should not have returned > 0 in this case. */ + abort (); diff --git a/0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch b/0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch new file mode 100644 index 0000000..12b92e6 --- /dev/null +++ b/0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch @@ -0,0 +1,857 @@ +2016-04-01 Stefan Liebler + + * sysdeps/s390/s390-32/dl-trampoline.S: Include dl-trampoline.h twice + to create a non-vector/vector version for _dl_runtime_resolve and + _dl_runtime_profile. Move implementation to ... + * sysdeps/s390/s390-32/dl-trampoline.h: ... here. + (_dl_runtime_resolve) Save and restore fpr/vrs. + (_dl_runtime_profile) Save and restore vrs and fix some issues + if _dl_call_pltexit is called. + * sysdeps/s390/s390-32/dl-machine.h (elf_machine_runtime_setup): + Choose the correct resolver function if running on a machine with vx. + * sysdeps/s390/s390-64/dl-trampoline.S: Include dl-trampoline.h twice + to create a non-vector/vector version for _dl_runtime_resolve and + _dl_runtime_profile. Move implementation to ... + * sysdeps/s390/s390-64/dl-trampoline.h: ... here. + (_dl_runtime_resolve) Save and restore fpr/vrs. + (_dl_runtime_profile) Save and restore vrs and fix some issues + * sysdeps/s390/s390-64/dl-machine.h: (elf_machine_runtime_setup): + Choose the correct resolver function if running on a machine with vx. + +Index: glibc-2.23/sysdeps/s390/s390-32/dl-machine.h +=================================================================== +--- glibc-2.23.orig/sysdeps/s390/s390-32/dl-machine.h ++++ glibc-2.23/sysdeps/s390/s390-32/dl-machine.h +@@ -89,6 +89,11 @@ elf_machine_runtime_setup (struct link_m + { + extern void _dl_runtime_resolve (Elf32_Word); + extern void _dl_runtime_profile (Elf32_Word); ++#if defined HAVE_S390_VX_ASM_SUPPORT ++ extern void _dl_runtime_resolve_vx (Elf32_Word); ++ extern void _dl_runtime_profile_vx (Elf32_Word); ++#endif ++ + + if (l->l_info[DT_JMPREL] && lazy) + { +@@ -116,7 +121,14 @@ elf_machine_runtime_setup (struct link_m + end in this function. */ + if (__glibc_unlikely (profile)) + { ++#if defined HAVE_S390_VX_ASM_SUPPORT ++ if (GLRO(dl_hwcap) & HWCAP_S390_VX) ++ got[2] = (Elf32_Addr) &_dl_runtime_profile_vx; ++ else ++ got[2] = (Elf32_Addr) &_dl_runtime_profile; ++#else + got[2] = (Elf32_Addr) &_dl_runtime_profile; ++#endif + + if (GLRO(dl_profile) != NULL + && _dl_name_match_p (GLRO(dl_profile), l)) +@@ -125,9 +137,18 @@ elf_machine_runtime_setup (struct link_m + GL(dl_profile_map) = l; + } + else +- /* This function will get called to fix up the GOT entry indicated by +- the offset on the stack, and then jump to the resolved address. */ +- got[2] = (Elf32_Addr) &_dl_runtime_resolve; ++ { ++ /* This function will get called to fix up the GOT entry indicated by ++ the offset on the stack, and then jump to the resolved address. */ ++#if defined HAVE_S390_VX_ASM_SUPPORT ++ if (GLRO(dl_hwcap) & HWCAP_S390_VX) ++ got[2] = (Elf32_Addr) &_dl_runtime_resolve_vx; ++ else ++ got[2] = (Elf32_Addr) &_dl_runtime_resolve; ++#else ++ got[2] = (Elf32_Addr) &_dl_runtime_resolve; ++#endif ++ } + } + + return lazy; +Index: glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.S +=================================================================== +--- glibc-2.23.orig/sysdeps/s390/s390-32/dl-trampoline.S ++++ glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.S +@@ -16,130 +16,18 @@ + License along with the GNU C Library; if not, see + . */ + +-/* This code is used in dl-runtime.c to call the `fixup' function +- and then redirect to the address it returns. */ +- +-/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile +- * with the following linkage: +- * r2 - r6 : parameter registers +- * f0, f2 : floating point parameter registers +- * 24(r15), 28(r15) : PLT arguments PLT1, PLT2 +- * 96(r15) : additional stack parameters +- * The normal clobber rules for function calls apply: +- * r0 - r5 : call clobbered +- * r6 - r13 : call saved +- * r14 : return address (call clobbered) +- * r15 : stack pointer (call saved) +- * f4, f6 : call saved +- * f0 - f3, f5, f7 - f15 : call clobbered +- */ +- + #include + + .text +- .globl _dl_runtime_resolve +- .type _dl_runtime_resolve, @function +- cfi_startproc +- .align 16 +-_dl_runtime_resolve: +- stm %r2,%r5,32(%r15) # save registers +- st %r14,8(%r15) +- cfi_offset (r14, -88) +- lr %r0,%r15 # create stack frame +- ahi %r15,-96 +- cfi_adjust_cfa_offset (96) +- st 0,0(%r15) +- lm %r2,%r3,120(%r15) # load args saved by PLT +- basr %r1,0 +-0: l %r14,1f-0b(%r1) +- bas %r14,0(%r14,%r1) # call resolver +- lr %r1,%r2 # function addr returned in r2 +- ahi %r15,96 # remove stack frame +- cfi_adjust_cfa_offset (-96) +- l %r14,8(15) # restore registers +- lm %r2,%r5,32(%r15) +- br %r1 +-1: .long _dl_fixup - 0b +- cfi_endproc +- .size _dl_runtime_resolve, .-_dl_runtime_resolve +- +- +-#ifndef PROF +- .globl _dl_runtime_profile +- .type _dl_runtime_profile, @function +- cfi_startproc +- .align 16 +-_dl_runtime_profile: +- stm %r2,%r6,32(%r15) # save registers +- std %f0,56(%r15) +- std %f2,64(%r15) +- st %r6,8(%r15) +- st %r12,12(%r15) +- st %r14,16(%r15) +- cfi_offset (r6, -64) +- cfi_offset (f0, -40) +- cfi_offset (f2, -32) +- cfi_offset (r12, -84) +- cfi_offset (r14, -80) +- lr %r12,%r15 # create stack frame +- cfi_def_cfa_register (12) +- ahi %r15,-96 +- st %r12,0(%r15) +- lm %r2,%r3,24(%r12) # load arguments saved by PLT +- lr %r4,%r14 # return address as third parameter +- basr %r1,0 +-0: l %r14,6f-0b(%r1) +- la %r5,32(%r12) # pointer to struct La_s390_32_regs +- la %r6,20(%r12) # long int * framesize +- bas %r14,0(%r14,%r1) # call resolver +- lr %r1,%r2 # function addr returned in r2 +- icm %r0,15,20(%r12) # load & test framesize +- jnm 2f +- +- lm %r2,%r6,32(%r12) +- ld %f0,56(%r12) +- ld %f2,64(%r12) +- lr %r15,%r12 # remove stack frame +- cfi_def_cfa_register (15) +- l %r14,16(%r15) # restore registers +- l %r12,12(%r15) +- br %r1 # tail-call to the resolved function +- +- cfi_def_cfa_register (12) +-2: jz 4f # framesize == 0 ? +- ahi %r0,7 # align framesize to 8 +- lhi %r2,-8 +- nr %r0,%r2 +- slr %r15,%r0 # make room for framesize bytes +- st %r12,0(%r15) +- la %r2,96(%r15) +- la %r3,96(%r12) +- srl %r0,3 +-3: mvc 0(8,%r2),0(%r3) # copy additional parameters +- la %r2,8(%r2) +- la %r3,8(%r3) +- brct %r0,3b +-4: lm %r2,%r6,32(%r12) # load register parameters +- ld %f0,56(%r12) +- ld %f2,64(%r12) +- basr %r14,%r1 # call resolved function +- stm %r2,%r3,72(%r12) +- std %f0,80(%r12) +- lm %r2,%r3,24(%r12) # load arguments saved by PLT +- basr %r1,0 +-5: l %r14,7f-5b(%r1) +- la %r4,32(%r12) # pointer to struct La_s390_32_regs +- la %r5,72(%r12) # pointer to struct La_s390_32_retval +- basr %r14,%r1 # call _dl_call_pltexit +- +- lr %r15,%r12 # remove stack frame +- cfi_def_cfa_register (15) +- l %r14,16(%r15) # restore registers +- l %r12,12(%r15) +- br %r14 +- +-6: .long _dl_profile_fixup - 0b +-7: .long _dl_call_pltexit - 5b +- cfi_endproc +- .size _dl_runtime_profile, .-_dl_runtime_profile ++/* Create variant of _dl_runtime_resolve/profile for machines before z13. ++ No vector registers are saved/restored. */ ++#include ++ ++#if defined HAVE_S390_VX_ASM_SUPPORT ++/* Create variant of _dl_runtime_resolve/profile for z13 and newer. ++ The vector registers are saved/restored, too.*/ ++# define _dl_runtime_resolve _dl_runtime_resolve_vx ++# define _dl_runtime_profile _dl_runtime_profile_vx ++# define RESTORE_VRS ++# include + #endif +Index: glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h +=================================================================== +--- /dev/null ++++ glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h +@@ -0,0 +1,215 @@ ++/* PLT trampolines. s390 version. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This code is used in dl-runtime.c to call the `fixup' function ++ and then redirect to the address it returns. */ ++ ++/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile ++ * with the following linkage: ++ * r2 - r6 : parameter registers ++ * f0, f2 : floating point parameter registers ++ * v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers ++ * 24(r15), 28(r15) : PLT arguments PLT1, PLT2 ++ * 96(r15) : additional stack parameters ++ * The normal clobber rules for function calls apply: ++ * r0 - r5 : call clobbered ++ * r6 - r13 : call saved ++ * r14 : return address (call clobbered) ++ * r15 : stack pointer (call saved) ++ * f4, f6 : call saved ++ * f0 - f3, f5, f7 - f15 : call clobbered ++ * v0 - v3, v5, v7 - v15 : bytes 0-7 overlap with fprs: call clobbered ++ bytes 8-15: call clobbered ++ * v4, v6 : bytes 0-7 overlap with f4, f6: call saved ++ bytes 8-15: call clobbered ++ * v16 - v31 : call clobbered ++ */ ++ ++ ++ .globl _dl_runtime_resolve ++ .type _dl_runtime_resolve, @function ++ cfi_startproc ++ .align 16 ++_dl_runtime_resolve: ++ stm %r2,%r5,32(%r15) # save registers ++ cfi_offset (r2, -64) ++ cfi_offset (r3, -60) ++ cfi_offset (r4, -56) ++ cfi_offset (r5, -52) ++ std %f0,56(%r15) ++ cfi_offset (f0, -40) ++ std %f2,64(%r15) ++ cfi_offset (f2, -32) ++ st %r14,8(%r15) ++ cfi_offset (r14, -88) ++ lr %r0,%r15 ++ lm %r2,%r3,24(%r15) # load args saved by PLT ++#ifdef RESTORE_VRS ++ ahi %r15,-224 # create stack frame ++ cfi_adjust_cfa_offset (224) ++ .machine push ++ .machine "z13" ++ .machinemode "zarch_nohighgprs" ++ vstm %v24,%v31,96(%r15) # store call-clobbered vr arguments ++ cfi_offset (v24, -224) ++ cfi_offset (v25, -208) ++ cfi_offset (v26, -192) ++ cfi_offset (v27, -176) ++ cfi_offset (v28, -160) ++ cfi_offset (v29, -144) ++ cfi_offset (v30, -128) ++ cfi_offset (v31, -112) ++ .machine pop ++#else ++ ahi %r15,-96 # create stack frame ++ cfi_adjust_cfa_offset (96) ++#endif ++ st %r0,0(%r15) # write backchain ++ basr %r1,0 ++0: l %r14,1f-0b(%r1) ++ bas %r14,0(%r14,%r1) # call _dl_fixup ++ lr %r1,%r2 # function addr returned in r2 ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ .machinemode "zarch_nohighgprs" ++ vlm %v24,%v31,96(%r15) # restore vector registers ++ .machine pop ++ ahi %r15,224 # remove stack frame ++ cfi_adjust_cfa_offset (-224) ++#else ++ ahi %r15,96 # remove stack frame ++ cfi_adjust_cfa_offset (-96) ++#endif ++ l %r14,8(15) # restore registers ++ ld %f0,56(%r15) ++ ld %f2,64(%r15) ++ lm %r2,%r5,32(%r15) ++ br %r1 ++1: .long _dl_fixup - 0b ++ cfi_endproc ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve ++ ++ ++#ifndef PROF ++ .globl _dl_runtime_profile ++ .type _dl_runtime_profile, @function ++ cfi_startproc ++ .align 16 ++_dl_runtime_profile: ++ stm %r2,%r6,32(%r15) # save registers ++ cfi_offset (r2, -64) # + r6 needed as arg for ++ cfi_offset (r3, -60) # _dl_profile_fixup ++ cfi_offset (r4, -56) ++ cfi_offset (r5, -52) ++ cfi_offset (r6, -48) ++ std %f0,56(%r15) ++ cfi_offset (f0, -40) ++ std %f2,64(%r15) ++ cfi_offset (f2, -32) ++ st %r12,12(%r15) # r12 is used as backup of r15 ++ cfi_offset (r12, -84) ++ st %r14,16(%r15) ++ cfi_offset (r14, -80) ++ lr %r12,%r15 # backup stack pointer ++ cfi_def_cfa_register (12) ++#ifdef RESTORE_VRS ++ ahi %r15,-224 # create stack frame ++ .machine push ++ .machine "z13" ++ .machinemode "zarch_nohighgprs" ++ vstm %v24,%v31,96(%r15) # store call-clobbered vr arguments ++ cfi_offset (v24, -224) ++ cfi_offset (v25, -208) ++ cfi_offset (v26, -192) ++ cfi_offset (v27, -176) ++ cfi_offset (v28, -160) ++ cfi_offset (v29, -144) ++ cfi_offset (v30, -128) ++ cfi_offset (v31, -112) ++ .machine pop ++#else ++ ahi %r15,-96 # create stack frame ++#endif ++ st %r12,0(%r15) # save backchain ++ lm %r2,%r3,24(%r12) # load arguments saved by PLT ++ lr %r4,%r14 # return address as third parameter ++ basr %r1,0 ++0: l %r14,6f-0b(%r1) ++ la %r5,32(%r12) # pointer to struct La_s390_32_regs ++ la %r6,20(%r12) # long int * framesize ++ bas %r14,0(%r14,%r1) # call resolver ++ lr %r1,%r2 # function addr returned in r2 ++ ld %f0,56(%r12) # restore call-clobbered arg fprs ++ ld %f2,64(%r12) ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ .machinemode "zarch_nohighgprs" ++ vlm %v24,%v31,96(%r15) # restore call-clobbered arg vrs ++ .machine pop ++#endif ++ icm %r0,15,20(%r12) # load & test framesize ++ jnm 2f ++ ++ lm %r2,%r6,32(%r12) ++ lr %r15,%r12 # remove stack frame ++ cfi_def_cfa_register (15) ++ l %r14,16(%r15) # restore registers ++ l %r12,12(%r15) ++ br %r1 # tail-call to the resolved function ++ ++ cfi_def_cfa_register (12) ++2: jz 4f # framesize == 0 ? ++ ahi %r0,7 # align framesize to 8 ++ lhi %r2,-8 ++ nr %r0,%r2 ++ slr %r15,%r0 # make room for framesize bytes ++ st %r12,0(%r15) # save backchain ++ la %r2,96(%r15) ++ la %r3,96(%r12) ++ srl %r0,3 ++3: mvc 0(8,%r2),0(%r3) # copy additional parameters ++ la %r2,8(%r2) ++ la %r3,8(%r3) ++ brct %r0,3b ++4: lm %r2,%r6,32(%r12) # load register parameters ++ basr %r14,%r1 # call resolved function ++ stm %r2,%r3,72(%r12) # store return values r2, r3, f0 ++ std %f0,80(%r12) # to struct La_s390_32_retval ++ lm %r2,%r3,24(%r12) # load arguments saved by PLT ++ basr %r1,0 ++5: l %r14,7f-5b(%r1) ++ la %r4,32(%r12) # pointer to struct La_s390_32_regs ++ la %r5,72(%r12) # pointer to struct La_s390_32_retval ++ bas %r14,0(%r14,%r1) # call _dl_call_pltexit ++ ++ lr %r15,%r12 # remove stack frame ++ cfi_def_cfa_register (15) ++ l %r14,16(%r15) # restore registers ++ l %r12,12(%r15) ++ l %r2,72(%r15) # restore return values ++ l %r3,76(%r15) ++ ld %f0,80(%r15) ++ br %r14 ++ ++6: .long _dl_profile_fixup - 0b ++7: .long _dl_call_pltexit - 5b ++ cfi_endproc ++ .size _dl_runtime_profile, .-_dl_runtime_profile ++#endif +Index: glibc-2.23/sysdeps/s390/s390-64/dl-machine.h +=================================================================== +--- glibc-2.23.orig/sysdeps/s390/s390-64/dl-machine.h ++++ glibc-2.23/sysdeps/s390/s390-64/dl-machine.h +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + + #define ELF_MACHINE_IRELATIVE R_390_IRELATIVE +@@ -78,6 +79,10 @@ elf_machine_runtime_setup (struct link_m + { + extern void _dl_runtime_resolve (Elf64_Word); + extern void _dl_runtime_profile (Elf64_Word); ++#if defined HAVE_S390_VX_ASM_SUPPORT ++ extern void _dl_runtime_resolve_vx (Elf64_Word); ++ extern void _dl_runtime_profile_vx (Elf64_Word); ++#endif + + if (l->l_info[DT_JMPREL] && lazy) + { +@@ -105,7 +110,14 @@ elf_machine_runtime_setup (struct link_m + end in this function. */ + if (__glibc_unlikely (profile)) + { ++#if defined HAVE_S390_VX_ASM_SUPPORT ++ if (GLRO(dl_hwcap) & HWCAP_S390_VX) ++ got[2] = (Elf64_Addr) &_dl_runtime_profile_vx; ++ else ++ got[2] = (Elf64_Addr) &_dl_runtime_profile; ++#else + got[2] = (Elf64_Addr) &_dl_runtime_profile; ++#endif + + if (GLRO(dl_profile) != NULL + && _dl_name_match_p (GLRO(dl_profile), l)) +@@ -114,9 +126,18 @@ elf_machine_runtime_setup (struct link_m + GL(dl_profile_map) = l; + } + else +- /* This function will get called to fix up the GOT entry indicated by +- the offset on the stack, and then jump to the resolved address. */ +- got[2] = (Elf64_Addr) &_dl_runtime_resolve; ++ { ++ /* This function will get called to fix up the GOT entry indicated by ++ the offset on the stack, and then jump to the resolved address. */ ++#if defined HAVE_S390_VX_ASM_SUPPORT ++ if (GLRO(dl_hwcap) & HWCAP_S390_VX) ++ got[2] = (Elf64_Addr) &_dl_runtime_resolve_vx; ++ else ++ got[2] = (Elf64_Addr) &_dl_runtime_resolve; ++#else ++ got[2] = (Elf64_Addr) &_dl_runtime_resolve; ++#endif ++ } + } + + return lazy; +Index: glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.S +=================================================================== +--- glibc-2.23.orig/sysdeps/s390/s390-64/dl-trampoline.S ++++ glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.S +@@ -16,126 +16,18 @@ + License along with the GNU C Library; if not, see + . */ + +-/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile +- * with the following linkage: +- * r2 - r6 : parameter registers +- * f0, f2, f4, f6 : floating point parameter registers +- * 48(r15), 56(r15) : PLT arguments PLT1, PLT2 +- * 160(r15) : additional stack parameters +- * The normal clobber rules for function calls apply: +- * r0 - r5 : call clobbered +- * r6 - r13 : call saved +- * r14 : return address (call clobbered) +- * r15 : stack pointer (call saved) +- * f1, f3, f5, f7 : call saved +- * f0 - f3, f5, f7 - f15 : call clobbered +- */ +- + #include + + .text +- .globl _dl_runtime_resolve +- .type _dl_runtime_resolve, @function +- cfi_startproc +- .align 16 +-_dl_runtime_resolve: +- stmg %r2,%r5,64(15) # save call-clobbered argument registers +- stg %r14,96(15) +- cfi_offset (r14, -64) +- lgr %r0,%r15 +- aghi %r15,-160 # create stack frame +- cfi_adjust_cfa_offset (160) +- stg %r0,0(%r15) # write backchain +- lmg %r2,%r3,208(%r15)# load args saved by PLT +- brasl %r14,_dl_fixup # call fixup +- lgr %r1,%r2 # function addr returned in r2 +- aghi %r15,160 # remove stack frame +- cfi_adjust_cfa_offset (-160) +- lg %r14,96(15) # restore registers +- lmg %r2,%r5,64(15) +- br %r1 +- cfi_endproc +- .size _dl_runtime_resolve, .-_dl_runtime_resolve +- +- +-#ifndef PROF +- .globl _dl_runtime_profile +- .type _dl_runtime_profile, @function +- cfi_startproc +- .align 16 +-_dl_runtime_profile: +- stmg %r2,%r6,64(%r15) # save call-clobbered arg regs +- std %f0,104(%r15) # + r6 needed as arg for +- std %f2,112(%r15) # _dl_profile_fixup +- std %f4,120(%r15) +- std %f6,128(%r15) +- stg %r12,24(%r15) # r12 is used as backup of r15 +- stg %r14,32(%r15) +- cfi_offset (r6, -96) +- cfi_offset (f0, -56) +- cfi_offset (f2, -48) +- cfi_offset (f4, -40) +- cfi_offset (f6, -32) +- cfi_offset (r12, -136) +- cfi_offset (r14, -128) +- lgr %r12,%r15 # backup stack pointer +- cfi_def_cfa_register (12) +- aghi %r15,-160 # create stack frame +- stg %r12,0(%r15) # save backchain +- lmg %r2,%r3,48(%r12) # load arguments saved by PLT +- lgr %r4,%r14 # return address as third parameter +- la %r5,64(%r12) # pointer to struct La_s390_32_regs +- la %r6,40(%r12) # long int * framesize +- brasl %r14,_dl_profile_fixup # call resolver +- lgr %r1,%r2 # function addr returned in r2 +- lg %r0,40(%r12) # load framesize +- ltgr %r0,%r0 +- jnm 1f +- +- lmg %r2,%r6,64(%r12) # framesize < 0 means no pltexit call +- ld %f0,104(%r12) # so we can do a tail call without +- ld %f2,112(%r12) # copying the arg overflow area +- ld %f4,120(%r12) +- ld %f6,128(%r12) +- +- lgr %r15,%r12 # remove stack frame +- cfi_def_cfa_register (15) +- lg %r14,32(%r15) # restore registers +- lg %r12,24(%r15) +- br %r1 # tail-call to resolved function +- +- cfi_def_cfa_register (12) +-1: jz 4f # framesize == 0 ? +- aghi %r0,7 # align framesize to 8 +- nill %r0,0xfff8 +- slgr %r15,%r0 # make room for framesize bytes +- stg %r12,0(%r15) +- la %r2,160(%r15) +- la %r3,160(%r12) +- srlg %r0,%r0,3 +-3: mvc 0(8,%r2),0(%r3) # copy additional parameters +- la %r2,8(%r2) +- la %r3,8(%r3) +- brctg %r0,3b +-4: lmg %r2,%r6,64(%r12) # load register parameters +- ld %f0,104(%r12) # restore call-clobbered arg regs +- ld %f2,112(%r12) +- ld %f4,120(%r12) +- ld %f6,128(%r12) +- basr %r14,%r1 # call resolved function +- stg %r2,136(%r12) +- std %f0,144(%r12) +- lmg %r2,%r3,48(%r12) # load arguments saved by PLT +- la %r4,32(%r12) # pointer to struct La_s390_32_regs +- la %r5,72(%r12) # pointer to struct La_s390_32_retval +- brasl %r14,_dl_call_pltexit +- +- lgr %r15,%r12 # remove stack frame +- cfi_def_cfa_register (15) +- lg %r14,32(%r15) # restore registers +- lg %r12,24(%r15) +- br %r14 +- +- cfi_endproc +- .size _dl_runtime_profile, .-_dl_runtime_profile ++/* Create variant of _dl_runtime_resolve/profile for machines before z13. ++ No vector registers are saved/restored. */ ++#include ++ ++#if defined HAVE_S390_VX_ASM_SUPPORT ++/* Create variant of _dl_runtime_resolve/profile for z13 and newer. ++ The vector registers are saved/restored, too.*/ ++# define _dl_runtime_resolve _dl_runtime_resolve_vx ++# define _dl_runtime_profile _dl_runtime_profile_vx ++# define RESTORE_VRS ++# include + #endif +Index: glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h +=================================================================== +--- /dev/null ++++ glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h +@@ -0,0 +1,211 @@ ++/* PLT trampolines. s390x version. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile ++ * with the following linkage: ++ * r2 - r6 : parameter registers ++ * f0, f2, f4, f6 : floating point parameter registers ++ * v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers ++ * 48(r15), 56(r15) : PLT arguments PLT1, PLT2 ++ * 160(r15) : additional stack parameters ++ * The normal clobber rules for function calls apply: ++ * r0 - r5 : call clobbered ++ * r6 - r13 : call saved ++ * r14 : return address (call clobbered) ++ * r15 : stack pointer (call saved) ++ * f0 - f7 : call clobbered ++ * f8 - f15 : call saved ++ * v0 - v7 : bytes 0-7 overlap with f0-f7: call clobbered ++ bytes 8-15: call clobbered ++ * v8 - v15 : bytes 0-7 overlap with f8-f15: call saved ++ bytes 8-15: call clobbered ++ * v16 - v31 : call clobbered ++ */ ++ ++ .globl _dl_runtime_resolve ++ .type _dl_runtime_resolve, @function ++ cfi_startproc ++ .align 16 ++_dl_runtime_resolve: ++ stmg %r2,%r5,64(%r15) # save call-clobbered argument registers ++ cfi_offset (r2, -96) ++ cfi_offset (r3, -88) ++ cfi_offset (r4, -80) ++ cfi_offset (r5, -72) ++ std %f0,104(%r15) ++ cfi_offset (f0, -56) ++ std %f2,112(%r15) ++ cfi_offset (f2, -48) ++ std %f4,120(%r15) ++ cfi_offset (f4, -40) ++ std %f6,128(%r15) ++ cfi_offset (f6, -32) ++ stg %r14,96(15) ++ cfi_offset (r14, -64) ++ lmg %r2,%r3,48(%r15) # load args for fixup saved by PLT ++ lgr %r0,%r15 ++#ifdef RESTORE_VRS ++ aghi %r15,-288 # create stack frame ++ cfi_adjust_cfa_offset (288) ++ .machine push ++ .machine "z13" ++ vstm %v24,%v31,160(%r15)# store call-clobbered vector argument registers ++ cfi_offset (v24, -288) ++ cfi_offset (v25, -272) ++ cfi_offset (v26, -256) ++ cfi_offset (v27, -240) ++ cfi_offset (v28, -224) ++ cfi_offset (v29, -208) ++ cfi_offset (v30, -192) ++ cfi_offset (v31, -176) ++ .machine pop ++#else ++ aghi %r15,-160 # create stack frame ++ cfi_adjust_cfa_offset (160) ++#endif ++ stg %r0,0(%r15) # write backchain ++ brasl %r14,_dl_fixup # call _dl_fixup ++ lgr %r1,%r2 # function addr returned in r2 ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ vlm %v24,%v31,160(%r15)# restore vector registers ++ .machine pop ++ aghi %r15,288 # remove stack frame ++ cfi_adjust_cfa_offset (-288) ++#else ++ aghi %r15,160 # remove stack frame ++ cfi_adjust_cfa_offset (-160) ++#endif ++ lg %r14,96(%r15) # restore registers ++ ld %f0,104(%r15) ++ ld %f2,112(%r15) ++ ld %f4,120(%r15) ++ ld %f6,128(%r15) ++ lmg %r2,%r5,64(%r15) ++ br %r1 ++ cfi_endproc ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve ++ ++ ++#ifndef PROF ++ .globl _dl_runtime_profile ++ .type _dl_runtime_profile, @function ++ cfi_startproc ++ .align 16 ++_dl_runtime_profile: ++ stmg %r2,%r6,64(%r15) # save call-clobbered arg regs ++ cfi_offset (r2, -96) # + r6 needed as arg for ++ cfi_offset (r3, -88) # _dl_profile_fixup ++ cfi_offset (r4, -80) ++ cfi_offset (r5, -72) ++ cfi_offset (r6, -64) ++ std %f0,104(%r15) ++ cfi_offset (f0, -56) ++ std %f2,112(%r15) ++ cfi_offset (f2, -48) ++ std %f4,120(%r15) ++ cfi_offset (f4, -40) ++ std %f6,128(%r15) ++ cfi_offset (f6, -32) ++ stg %r12,24(%r15) # r12 is used as backup of r15 ++ cfi_offset (r12, -136) ++ stg %r14,32(%r15) ++ cfi_offset (r14, -128) ++ lgr %r12,%r15 # backup stack pointer ++ cfi_def_cfa_register (12) ++#ifdef RESTORE_VRS ++ aghi %r15,-288 # create stack frame ++ .machine push ++ .machine "z13" ++ vstm %v24,%v31,160(%r15)# store call-clobbered vector argument registers ++ cfi_offset (v24, -288) ++ cfi_offset (v25, -272) ++ cfi_offset (v26, -256) ++ cfi_offset (v27, -240) ++ cfi_offset (v28, -224) ++ cfi_offset (v29, -208) ++ cfi_offset (v30, -192) ++ cfi_offset (v31, -176) ++ .machine pop ++#else ++ aghi %r15,-160 # create stack frame ++#endif ++ stg %r12,0(%r15) # save backchain ++ lmg %r2,%r3,48(%r12) # load arguments saved by PLT ++ lgr %r4,%r14 # return address as third parameter ++ la %r5,64(%r12) # pointer to struct La_s390_64_regs ++ la %r6,40(%r12) # long int * framesize ++ brasl %r14,_dl_profile_fixup # call resolver ++ lgr %r1,%r2 # function addr returned in r2 ++ ld %f0,104(%r12) # restore call-clobbered arg fprs ++ ld %f2,112(%r12) ++ ld %f4,120(%r12) ++ ld %f6,128(%r12) ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ vlm %v24,%v31,160(%r15) # restore call-clobbered arg vrs ++ .machine pop ++#endif ++ lg %r0,40(%r12) # load framesize ++ ltgr %r0,%r0 ++ jnm 1f ++ ++ lmg %r2,%r6,64(%r12) # framesize < 0 means no pltexit call ++ # so we can do a tail call without ++ # copying the arg overflow area ++ lgr %r15,%r12 # remove stack frame ++ cfi_def_cfa_register (15) ++ lg %r14,32(%r15) # restore registers ++ lg %r12,24(%r15) ++ br %r1 # tail-call to resolved function ++ ++ cfi_def_cfa_register (12) ++1: jz 4f # framesize == 0 ? ++ aghi %r0,7 # align framesize to 8 ++ nill %r0,0xfff8 ++ slgr %r15,%r0 # make room for framesize bytes ++ stg %r12,0(%r15) # save backchain ++ la %r2,160(%r15) ++ la %r3,160(%r12) ++ srlg %r0,%r0,3 ++3: mvc 0(8,%r2),0(%r3) # copy additional parameters ++ la %r2,8(%r2) # depending on framesize ++ la %r3,8(%r3) ++ brctg %r0,3b ++4: lmg %r2,%r6,64(%r12) # restore call-clobbered arg gprs ++ basr %r14,%r1 # call resolved function ++ stg %r2,136(%r12) # store return values r2, f0 ++ std %f0,144(%r12) # to struct La_s390_64_retval ++ lmg %r2,%r3,48(%r12) # load arguments saved by PLT ++ la %r4,64(%r12) # pointer to struct La_s390_64_regs ++ la %r5,136(%r12) # pointer to struct La_s390_64_retval ++ brasl %r14,_dl_call_pltexit ++ ++ lgr %r15,%r12 # remove stack frame ++ cfi_def_cfa_register (15) ++ lg %r14,32(%r15) # restore registers ++ lg %r12,24(%r15) ++ lg %r2,136(%r15) # restore return values ++ ld %f0,144(%r15) ++ br %r14 # Jump back to caller ++ ++ cfi_endproc ++ .size _dl_runtime_profile, .-_dl_runtime_profile ++#endif diff --git a/0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch b/0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch new file mode 100644 index 0000000..879ce76 --- /dev/null +++ b/0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch @@ -0,0 +1,371 @@ +2016-04-01 Stefan Liebler + + * sysdeps/s390/bits/link.h: (La_s390_vr) New typedef. + (La_s390_32_regs): Append vector register lr_v24-lr_v31. + (La_s390_64_regs): Likewise. + (La_s390_32_retval): Append vector register lrv_v24. + (La_s390_64_retval): Likeweise. + * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_profile): + Handle extended structs La_s390_32_regs and La_s390_32_retval. + * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_profile): + Handle extended structs La_s390_64_regs and La_s390_64_retval. + +Index: glibc-2.23/sysdeps/s390/bits/link.h +=================================================================== +--- glibc-2.23.orig/sysdeps/s390/bits/link.h ++++ glibc-2.23/sysdeps/s390/bits/link.h +@@ -19,6 +19,9 @@ + # error "Never include directly; use instead." + #endif + ++#if defined HAVE_S390_VX_ASM_SUPPORT ++typedef char La_s390_vr[16]; ++#endif + + #if __ELF_NATIVE_CLASS == 32 + +@@ -32,6 +35,16 @@ typedef struct La_s390_32_regs + uint32_t lr_r6; + double lr_fp0; + double lr_fp2; ++# if defined HAVE_S390_VX_ASM_SUPPORT ++ La_s390_vr lr_v24; ++ La_s390_vr lr_v25; ++ La_s390_vr lr_v26; ++ La_s390_vr lr_v27; ++ La_s390_vr lr_v28; ++ La_s390_vr lr_v29; ++ La_s390_vr lr_v30; ++ La_s390_vr lr_v31; ++# endif + } La_s390_32_regs; + + /* Return values for calls from PLT on s390-32. */ +@@ -40,6 +53,9 @@ typedef struct La_s390_32_retval + uint32_t lrv_r2; + uint32_t lrv_r3; + double lrv_fp0; ++# if defined HAVE_S390_VX_ASM_SUPPORT ++ La_s390_vr lrv_v24; ++# endif + } La_s390_32_retval; + + +@@ -77,6 +93,16 @@ typedef struct La_s390_64_regs + double lr_fp2; + double lr_fp4; + double lr_fp6; ++# if defined HAVE_S390_VX_ASM_SUPPORT ++ La_s390_vr lr_v24; ++ La_s390_vr lr_v25; ++ La_s390_vr lr_v26; ++ La_s390_vr lr_v27; ++ La_s390_vr lr_v28; ++ La_s390_vr lr_v29; ++ La_s390_vr lr_v30; ++ La_s390_vr lr_v31; ++# endif + } La_s390_64_regs; + + /* Return values for calls from PLT on s390-64. */ +@@ -84,6 +110,9 @@ typedef struct La_s390_64_retval + { + uint64_t lrv_r2; + double lrv_fp0; ++# if defined HAVE_S390_VX_ASM_SUPPORT ++ La_s390_vr lrv_v24; ++# endif + } La_s390_64_retval; + + +Index: glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h +=================================================================== +--- glibc-2.23.orig/sysdeps/s390/s390-32/dl-trampoline.h ++++ glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h +@@ -112,28 +112,31 @@ _dl_runtime_resolve: + cfi_startproc + .align 16 + _dl_runtime_profile: +- stm %r2,%r6,32(%r15) # save registers +- cfi_offset (r2, -64) # + r6 needed as arg for +- cfi_offset (r3, -60) # _dl_profile_fixup +- cfi_offset (r4, -56) +- cfi_offset (r5, -52) +- cfi_offset (r6, -48) +- std %f0,56(%r15) +- cfi_offset (f0, -40) +- std %f2,64(%r15) +- cfi_offset (f2, -32) + st %r12,12(%r15) # r12 is used as backup of r15 + cfi_offset (r12, -84) + st %r14,16(%r15) + cfi_offset (r14, -80) + lr %r12,%r15 # backup stack pointer + cfi_def_cfa_register (12) ++ ahi %r15,-264 # create stack frame: ++ # 96 + sizeof(La_s390_32_regs) ++ st %r12,0(%r15) # save backchain ++ ++ stm %r2,%r6,96(%r15) # save registers ++ cfi_offset (r2, -264) # + r6 needed as arg for ++ cfi_offset (r3, -260) # _dl_profile_fixup ++ cfi_offset (r4, -256) ++ cfi_offset (r5, -252) ++ cfi_offset (r6, -248) ++ std %f0,120(%r15) ++ cfi_offset (f0, -240) ++ std %f2,128(%r15) ++ cfi_offset (f2, -232) + #ifdef RESTORE_VRS +- ahi %r15,-224 # create stack frame + .machine push + .machine "z13" + .machinemode "zarch_nohighgprs" +- vstm %v24,%v31,96(%r15) # store call-clobbered vr arguments ++ vstm %v24,%v31,136(%r15) # store call-clobbered vr arguments + cfi_offset (v24, -224) + cfi_offset (v25, -208) + cfi_offset (v26, -192) +@@ -143,31 +146,31 @@ _dl_runtime_profile: + cfi_offset (v30, -128) + cfi_offset (v31, -112) + .machine pop +-#else +- ahi %r15,-96 # create stack frame + #endif +- st %r12,0(%r15) # save backchain ++ + lm %r2,%r3,24(%r12) # load arguments saved by PLT + lr %r4,%r14 # return address as third parameter + basr %r1,0 + 0: l %r14,6f-0b(%r1) +- la %r5,32(%r12) # pointer to struct La_s390_32_regs ++ la %r5,96(%r15) # pointer to struct La_s390_32_regs + la %r6,20(%r12) # long int * framesize + bas %r14,0(%r14,%r1) # call resolver + lr %r1,%r2 # function addr returned in r2 +- ld %f0,56(%r12) # restore call-clobbered arg fprs +- ld %f2,64(%r12) ++ ld %f0,120(%r15) # restore call-clobbered arg fprs ++ ld %f2,128(%r15) + #ifdef RESTORE_VRS + .machine push + .machine "z13" + .machinemode "zarch_nohighgprs" +- vlm %v24,%v31,96(%r15) # restore call-clobbered arg vrs ++ vlm %v24,%v31,136(%r15) # restore call-clobbered arg vrs + .machine pop + #endif + icm %r0,15,20(%r12) # load & test framesize + jnm 2f + +- lm %r2,%r6,32(%r12) ++ lm %r2,%r6,96(%r15) # framesize < 0 means no pltexit call ++ # so we can do a tail call without ++ # copying the arg overflow area + lr %r15,%r12 # remove stack frame + cfi_def_cfa_register (15) + l %r14,16(%r15) # restore registers +@@ -175,7 +178,9 @@ _dl_runtime_profile: + br %r1 # tail-call to the resolved function + + cfi_def_cfa_register (12) +-2: jz 4f # framesize == 0 ? ++2: la %r4,96(%r15) # pointer to struct La_s390_32_regs ++ st %r4,32(%r12) ++ jz 4f # framesize == 0 ? + ahi %r0,7 # align framesize to 8 + lhi %r2,-8 + nr %r0,%r2 +@@ -188,24 +193,35 @@ _dl_runtime_profile: + la %r2,8(%r2) + la %r3,8(%r3) + brct %r0,3b +-4: lm %r2,%r6,32(%r12) # load register parameters ++4: lm %r2,%r6,0(%r4) # load register parameters + basr %r14,%r1 # call resolved function +- stm %r2,%r3,72(%r12) # store return values r2, r3, f0 +- std %f0,80(%r12) # to struct La_s390_32_retval +- lm %r2,%r3,24(%r12) # load arguments saved by PLT ++ stm %r2,%r3,40(%r12) # store return values r2, r3, f0 ++ std %f0,48(%r12) # to struct La_s390_32_retval ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ vst %v24,56(%r12) # store return value v24 ++ .machine pop ++#endif ++ lm %r2,%r4,24(%r12) # r2, r3: load arguments saved by PLT ++ # r4: pointer to struct La_s390_32_regs + basr %r1,0 + 5: l %r14,7f-5b(%r1) +- la %r4,32(%r12) # pointer to struct La_s390_32_regs +- la %r5,72(%r12) # pointer to struct La_s390_32_retval ++ la %r5,40(%r12) # pointer to struct La_s390_32_retval + bas %r14,0(%r14,%r1) # call _dl_call_pltexit + + lr %r15,%r12 # remove stack frame + cfi_def_cfa_register (15) + l %r14,16(%r15) # restore registers + l %r12,12(%r15) +- l %r2,72(%r15) # restore return values +- l %r3,76(%r15) +- ld %f0,80(%r15) ++ lm %r2,%r3,40(%r15) # restore return values ++ ld %f0,48(%r15) ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ vl %v24,56(%r15) # restore return value v24 ++ .machine pop ++#endif + br %r14 + + 6: .long _dl_profile_fixup - 0b +Index: glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h +=================================================================== +--- glibc-2.23.orig/sysdeps/s390/s390-64/dl-trampoline.h ++++ glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h +@@ -109,31 +109,34 @@ _dl_runtime_resolve: + cfi_startproc + .align 16 + _dl_runtime_profile: +- stmg %r2,%r6,64(%r15) # save call-clobbered arg regs +- cfi_offset (r2, -96) # + r6 needed as arg for +- cfi_offset (r3, -88) # _dl_profile_fixup +- cfi_offset (r4, -80) +- cfi_offset (r5, -72) +- cfi_offset (r6, -64) +- std %f0,104(%r15) +- cfi_offset (f0, -56) +- std %f2,112(%r15) +- cfi_offset (f2, -48) +- std %f4,120(%r15) +- cfi_offset (f4, -40) +- std %f6,128(%r15) +- cfi_offset (f6, -32) + stg %r12,24(%r15) # r12 is used as backup of r15 + cfi_offset (r12, -136) + stg %r14,32(%r15) + cfi_offset (r14, -128) + lgr %r12,%r15 # backup stack pointer + cfi_def_cfa_register (12) ++ aghi %r15,-360 # create stack frame: ++ # 160 + sizeof(La_s390_64_regs) ++ stg %r12,0(%r15) # save backchain ++ ++ stmg %r2,%r6,160(%r15) # save call-clobbered arg regs ++ cfi_offset (r2, -360) # + r6 needed as arg for ++ cfi_offset (r3, -352) # _dl_profile_fixup ++ cfi_offset (r4, -344) ++ cfi_offset (r5, -336) ++ cfi_offset (r6, -328) ++ std %f0,200(%r15) ++ cfi_offset (f0, -320) ++ std %f2,208(%r15) ++ cfi_offset (f2, -312) ++ std %f4,216(%r15) ++ cfi_offset (f4, -304) ++ std %f6,224(%r15) ++ cfi_offset (f6, -296) + #ifdef RESTORE_VRS +- aghi %r15,-288 # create stack frame + .machine push + .machine "z13" +- vstm %v24,%v31,160(%r15)# store call-clobbered vector argument registers ++ vstm %v24,%v31,232(%r15) # store call-clobbered vector arguments + cfi_offset (v24, -288) + cfi_offset (v25, -272) + cfi_offset (v26, -256) +@@ -143,31 +146,28 @@ _dl_runtime_profile: + cfi_offset (v30, -192) + cfi_offset (v31, -176) + .machine pop +-#else +- aghi %r15,-160 # create stack frame + #endif +- stg %r12,0(%r15) # save backchain + lmg %r2,%r3,48(%r12) # load arguments saved by PLT + lgr %r4,%r14 # return address as third parameter +- la %r5,64(%r12) # pointer to struct La_s390_64_regs ++ la %r5,160(%r15) # pointer to struct La_s390_64_regs + la %r6,40(%r12) # long int * framesize + brasl %r14,_dl_profile_fixup # call resolver + lgr %r1,%r2 # function addr returned in r2 +- ld %f0,104(%r12) # restore call-clobbered arg fprs +- ld %f2,112(%r12) +- ld %f4,120(%r12) +- ld %f6,128(%r12) ++ ld %f0,200(%r15) # restore call-clobbered arg fprs ++ ld %f2,208(%r15) ++ ld %f4,216(%r15) ++ ld %f6,224(%r15) + #ifdef RESTORE_VRS + .machine push + .machine "z13" +- vlm %v24,%v31,160(%r15) # restore call-clobbered arg vrs ++ vlm %v24,%v31,232(%r15) # restore call-clobbered arg vrs + .machine pop + #endif + lg %r0,40(%r12) # load framesize + ltgr %r0,%r0 + jnm 1f + +- lmg %r2,%r6,64(%r12) # framesize < 0 means no pltexit call ++ lmg %r2,%r6,160(%r15) # framesize < 0 means no pltexit call + # so we can do a tail call without + # copying the arg overflow area + lgr %r15,%r12 # remove stack frame +@@ -177,7 +177,9 @@ _dl_runtime_profile: + br %r1 # tail-call to resolved function + + cfi_def_cfa_register (12) +-1: jz 4f # framesize == 0 ? ++1: la %r4,160(%r15) # pointer to struct La_s390_64_regs ++ stg %r4,64(%r12) ++ jz 4f # framesize == 0 ? + aghi %r0,7 # align framesize to 8 + nill %r0,0xfff8 + slgr %r15,%r0 # make room for framesize bytes +@@ -189,21 +191,33 @@ _dl_runtime_profile: + la %r2,8(%r2) # depending on framesize + la %r3,8(%r3) + brctg %r0,3b +-4: lmg %r2,%r6,64(%r12) # restore call-clobbered arg gprs ++4: lmg %r2,%r6,0(%r4) # restore call-clobbered arg gprs + basr %r14,%r1 # call resolved function +- stg %r2,136(%r12) # store return values r2, f0 +- std %f0,144(%r12) # to struct La_s390_64_retval +- lmg %r2,%r3,48(%r12) # load arguments saved by PLT +- la %r4,64(%r12) # pointer to struct La_s390_64_regs +- la %r5,136(%r12) # pointer to struct La_s390_64_retval ++ stg %r2,72(%r12) # store return values r2, f0 ++ std %f0,80(%r12) # to struct La_s390_64_retval ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ vst %v24,88(%r12) # store return value v24 ++ .machine pop ++#endif ++ lmg %r2,%r4,48(%r12) # r2, r3: load arguments saved by PLT ++ # r4: pointer to struct La_s390_64_regs ++ la %r5,72(%r12) # pointer to struct La_s390_64_retval + brasl %r14,_dl_call_pltexit + + lgr %r15,%r12 # remove stack frame + cfi_def_cfa_register (15) + lg %r14,32(%r15) # restore registers + lg %r12,24(%r15) +- lg %r2,136(%r15) # restore return values +- ld %f0,144(%r15) ++ lg %r2,72(%r15) # restore return values ++ ld %f0,80(%r15) ++#ifdef RESTORE_VRS ++ .machine push ++ .machine "z13" ++ vl %v24,88(%r15) # restore return value v24 ++ .machine pop ++#endif + br %r14 # Jump back to caller + + cfi_endproc diff --git a/0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch b/0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch new file mode 100644 index 0000000..f7ab7c7 --- /dev/null +++ b/0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch @@ -0,0 +1,60 @@ +2016-04-01 Florian Weimer + + [BZ #19879] + CVE-2016-3075 + * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Do not + copy name. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -9,7 +9,10 @@ Version 2.23.1 + + Security related changes: + +- [Add security related changes here] ++* The getnetbyname implementation in nss_dns had a potentially unbounded ++ alloca call (in the form of a call to strdupa), leading to a stack ++ overflow (stack exhaustion) and a crash if getnetbyname is invoked ++ on a very long name. (CVE-2016-3075) + + The following bugs are resolved with this release: + +@@ -17,9 +20,12 @@ The following bugs are resolved with thi + [19758] Or bit_Prefer_MAP_32BIT_EXEC in EXTRA_LD_ENVVARS + [19759] Don't inline mempcpy for x86 + [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String +- [19791] Assertion failure in res_query.c with un-connectable name server addresses ++ [19791] Assertion failure in res_query.c with un-connectable name server ++ addresses + [19792] MIPS: backtrace yields infinite backtrace with makecontext + [19822] libm.so install clobbers old version ++ [19879] network: nss_dns: Stack overflow in getnetbyname implementation ++ (CVE-2016-3075) + + + Version 2.23 +Index: glibc-2.23/resolv/nss_dns/dns-network.c +=================================================================== +--- glibc-2.23.orig/resolv/nss_dns/dns-network.c ++++ glibc-2.23/resolv/nss_dns/dns-network.c +@@ -118,17 +118,14 @@ _nss_dns_getnetbyname_r (const char *nam + } net_buffer; + querybuf *orig_net_buffer; + int anslen; +- char *qbuf; + enum nss_status status; + + if (__res_maybe_init (&_res, 0) == -1) + return NSS_STATUS_UNAVAIL; + +- qbuf = strdupa (name); +- + net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); + +- anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, ++ anslen = __libc_res_nsearch (&_res, name, C_IN, T_PTR, net_buffer.buf->buf, + 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); + if (anslen < 0) + { diff --git a/0022-configure-fix-test-usage.patch b/0022-configure-fix-test-usage.patch new file mode 100644 index 0000000..dcde656 --- /dev/null +++ b/0022-configure-fix-test-usage.patch @@ -0,0 +1,77 @@ +2016-04-09 Mike Frysinger + + * sysdeps/i386/configure.ac: Change == to = when calling test. + * sysdeps/x86_64/configure.ac: Likewise. + * sysdeps/i386/configure: Regenerated. + * sysdeps/x86_64/configure: Likewise. + +Index: glibc-2.23/sysdeps/i386/configure +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/configure ++++ glibc-2.23/sysdeps/i386/configure +@@ -72,7 +72,7 @@ rm -f conftest* + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_mpx" >&5 + $as_echo "$libc_cv_asm_mpx" >&6; } +-if test $libc_cv_asm_mpx == yes; then ++if test $libc_cv_asm_mpx = yes; then + $as_echo "#define HAVE_MPX_SUPPORT 1" >>confdefs.h + + fi +Index: glibc-2.23/sysdeps/i386/configure.ac +=================================================================== +--- glibc-2.23.orig/sysdeps/i386/configure.ac ++++ glibc-2.23/sysdeps/i386/configure.ac +@@ -41,7 +41,7 @@ else + libc_cv_asm_mpx=no + fi + rm -f conftest*]) +-if test $libc_cv_asm_mpx == yes; then ++if test $libc_cv_asm_mpx = yes; then + AC_DEFINE(HAVE_MPX_SUPPORT) + fi + +Index: glibc-2.23/sysdeps/x86_64/configure +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/configure ++++ glibc-2.23/sysdeps/x86_64/configure +@@ -24,7 +24,7 @@ rm -f conftest* + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_avx512" >&5 + $as_echo "$libc_cv_asm_avx512" >&6; } +-if test $libc_cv_asm_avx512 == yes; then ++if test $libc_cv_asm_avx512 = yes; then + $as_echo "#define HAVE_AVX512_ASM_SUPPORT 1" >>confdefs.h + + fi +@@ -77,7 +77,7 @@ rm -f conftest* + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_mpx" >&5 + $as_echo "$libc_cv_asm_mpx" >&6; } +-if test $libc_cv_asm_mpx == yes; then ++if test $libc_cv_asm_mpx = yes; then + $as_echo "#define HAVE_MPX_SUPPORT 1" >>confdefs.h + + fi +Index: glibc-2.23/sysdeps/x86_64/configure.ac +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/configure.ac ++++ glibc-2.23/sysdeps/x86_64/configure.ac +@@ -13,7 +13,7 @@ else + libc_cv_asm_avx512=no + fi + rm -f conftest*]) +-if test $libc_cv_asm_avx512 == yes; then ++if test $libc_cv_asm_avx512 = yes; then + AC_DEFINE(HAVE_AVX512_ASM_SUPPORT) + fi + +@@ -37,7 +37,7 @@ else + libc_cv_asm_mpx=no + fi + rm -f conftest*]) +-if test $libc_cv_asm_mpx == yes; then ++if test $libc_cv_asm_mpx = yes; then + AC_DEFINE(HAVE_MPX_SUPPORT) + fi + diff --git a/glibc-gcc6.patch b/0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch similarity index 64% rename from glibc-gcc6.patch rename to 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch index e0d3f54..ebba8d2 100644 --- a/glibc-gcc6.patch +++ b/0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch @@ -1,29 +1,12 @@ -From: Yvan Roux -Date: Fri, 15 Apr 2016 13:29:26 +0200 -Subject: Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses -Patch-mainline: yes -Git-commit: df1cf48777fe4cd81ad7fb09ecbe5b31432b7c1c +2016-04-20 Yvan Roux -Signed-off-by: Jiri Slaby ---- - ChangeLog | 5 +++++ - nis/nis_call.c | 20 +++++++++++--------- - stdlib/setenv.c | 24 +++++++++++++----------- - 3 files changed, 29 insertions(+), 20 deletions(-) + * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'. + * nis/nis_call.c (nis_server_cache_add): Likewise. ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,8 @@ -+2016-04-15 Yvan Roux -+ -+ * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'. -+ * nis/nis_call.c (nis_server_cache_add): Likewise. -+ - 2016-02-18 Adhemerval Zanella - - * version.h (RELEASE): Set to "stable". ---- a/nis/nis_call.c -+++ b/nis/nis_call.c +Index: glibc-2.23/nis/nis_call.c +=================================================================== +--- glibc-2.23.orig/nis/nis_call.c ++++ glibc-2.23/nis/nis_call.c @@ -680,16 +680,18 @@ nis_server_cache_add (const_nis_name nam /* Choose which entry should be evicted from the cache. */ loc = &nis_server_cache[0]; @@ -52,8 +35,10 @@ Signed-off-by: Jiri Slaby old = *loc; *loc = new; ---- a/stdlib/setenv.c -+++ b/stdlib/setenv.c +Index: glibc-2.23/stdlib/setenv.c +=================================================================== +--- glibc-2.23.orig/stdlib/setenv.c ++++ glibc-2.23/stdlib/setenv.c @@ -278,18 +278,20 @@ unsetenv (const char *name) ep = __environ; if (ep != NULL) diff --git a/0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch b/0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch new file mode 100644 index 0000000..b4b7a9c --- /dev/null +++ b/0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch @@ -0,0 +1,21 @@ +2016-03-29 Florian Weimer + + [BZ #19837] + * nss/nss_db/db-XXX.c (_nss_db_getENTNAME_r): Propagate ERANGE + error if parse_line fails. + +Index: glibc-2.23/nss/nss_db/db-XXX.c +=================================================================== +--- glibc-2.23.orig/nss/nss_db/db-XXX.c ++++ glibc-2.23/nss/nss_db/db-XXX.c +@@ -288,8 +288,8 @@ CONCAT(_nss_db_get,ENTNAME_r) (struct ST + } + if (err < 0) + { +- H_ERRNO_SET (HOST_NOT_FOUND); +- status = NSS_STATUS_NOTFOUND; ++ H_ERRNO_SET (NETDB_INTERNAL); ++ status = NSS_STATUS_TRYAGAIN; + break; + } + diff --git a/0025-getnameinfo-Do-not-preserve-errno.patch b/0025-getnameinfo-Do-not-preserve-errno.patch new file mode 100644 index 0000000..7bebd96 --- /dev/null +++ b/0025-getnameinfo-Do-not-preserve-errno.patch @@ -0,0 +1,48 @@ +2016-04-28 Florian Weimer + + * inet/getnameinfo.c (getnameinfo): Do not preserve errno. + +Index: glibc-2.23/inet/getnameinfo.c +=================================================================== +--- glibc-2.23.orig/inet/getnameinfo.c ++++ glibc-2.23/inet/getnameinfo.c +@@ -175,7 +175,6 @@ getnameinfo (const struct sockaddr *sa, + socklen_t hostlen, char *serv, socklen_t servlen, + int flags) + { +- int serrno = errno; + int herrno; + struct hostent th; + int ok = 0; +@@ -326,10 +325,7 @@ getnameinfo (const struct sockaddr *sa, + if (!ok) + { + if (flags & NI_NAMEREQD) +- { +- __set_errno (serrno); +- return EAI_NONAME; +- } ++ return EAI_NONAME; + else + { + const char *c; +@@ -406,10 +402,7 @@ getnameinfo (const struct sockaddr *sa, + }; + + if (flags & NI_NAMEREQD) +- { +- __set_errno (serrno); +- return EAI_NONAME; +- } ++ return EAI_NONAME; + + strncpy (host, "localhost", hostlen); + break; +@@ -463,7 +456,6 @@ getnameinfo (const struct sockaddr *sa, + host[hostlen-1] = 0; + if (serv && (servlen > 0)) + serv[servlen-1] = 0; +- errno = serrno; + return 0; + } + libc_hidden_def (getnameinfo) diff --git a/0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch b/0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch new file mode 100644 index 0000000..0d83128 --- /dev/null +++ b/0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch @@ -0,0 +1,635 @@ +2016-04-29 Florian Weimer + + [BZ #19642] + * inet/getnameinfo.c (gni_host_inet_name, gni_host_inet_numeric) + (gni_host_inet, gni_host_local, gni_host, gni_serv_inet) + (gni_serv_local, gni_serv): New functions extracted from + getnameinfo. + (getnameinfo): Call gni_host and gni_serv to perform the + processing. Always free scratch buffer. + +Index: glibc-2.23/inet/getnameinfo.c +=================================================================== +--- glibc-2.23.orig/inet/getnameinfo.c ++++ glibc-2.23/inet/getnameinfo.c +@@ -1,3 +1,21 @@ ++/* Convert socket address to string using Name Service Switch modules. ++ Copyright (C) 1997-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ + /* The Inner Net License, Version 2.00 + + The author(s) grant permission for redistribution and use in source and +@@ -169,19 +187,323 @@ nrl_domainname (void) + return domain; + }; + ++/* Convert host name, AF_INET/AF_INET6 case, name only. */ ++static int ++gni_host_inet_name (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *host, socklen_t hostlen, int flags) ++{ ++ int herrno; ++ struct hostent th; ++ struct hostent *h = NULL; ++ if (sa->sa_family == AF_INET6) ++ { ++ while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in6 *) sa)->sin6_addr), ++ sizeof(struct in6_addr), ++ AF_INET6, &th, ++ tmpbuf->data, tmpbuf->length, ++ &h, &herrno)) ++ if (herrno == NETDB_INTERNAL && errno == ERANGE) ++ { ++ if (!scratch_buffer_grow (tmpbuf)) ++ { ++ __set_h_errno (herrno); ++ return EAI_MEMORY; ++ } ++ } ++ else ++ break; ++ } ++ else ++ { ++ while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in *)sa)->sin_addr), ++ sizeof(struct in_addr), ++ AF_INET, &th, ++ tmpbuf->data, tmpbuf->length, ++ &h, &herrno)) ++ if (herrno == NETDB_INTERNAL && errno == ERANGE) ++ { ++ if (!scratch_buffer_grow (tmpbuf)) ++ { ++ __set_h_errno (herrno); ++ return EAI_MEMORY; ++ } ++ } ++ else ++ break; ++ } ++ ++ if (h == NULL) ++ { ++ if (herrno == NETDB_INTERNAL) ++ { ++ __set_h_errno (herrno); ++ return EAI_SYSTEM; ++ } ++ if (herrno == TRY_AGAIN) ++ { ++ __set_h_errno (herrno); ++ return EAI_AGAIN; ++ } ++ } ++ ++ if (h) ++ { ++ char *c; ++ if ((flags & NI_NOFQDN) ++ && (c = nrl_domainname ()) ++ && (c = strstr (h->h_name, c)) ++ && (c != h->h_name) && (*(--c) == '.')) ++ /* Terminate the string after the prefix. */ ++ *c = '\0'; ++ ++#ifdef HAVE_LIBIDN ++ /* If requested, convert from the IDN format. */ ++ if (flags & NI_IDN) ++ { ++ int idn_flags = 0; ++ if (flags & NI_IDN_ALLOW_UNASSIGNED) ++ idn_flags |= IDNA_ALLOW_UNASSIGNED; ++ if (flags & NI_IDN_USE_STD3_ASCII_RULES) ++ idn_flags |= IDNA_USE_STD3_ASCII_RULES; ++ ++ char *out; ++ int rc = __idna_to_unicode_lzlz (h->h_name, &out, ++ idn_flags); ++ if (rc != IDNA_SUCCESS) ++ { ++ if (rc == IDNA_MALLOC_ERROR) ++ return EAI_MEMORY; ++ if (rc == IDNA_DLOPEN_ERROR) ++ return EAI_SYSTEM; ++ return EAI_IDN_ENCODE; ++ } ++ ++ if (out != h->h_name) ++ { ++ h->h_name = strdupa (out); ++ free (out); ++ } ++ } ++#endif ++ ++ size_t len = strlen (h->h_name) + 1; ++ if (len > hostlen) ++ return EAI_OVERFLOW; ++ ++ memcpy (host, h->h_name, len); ++ ++ return 0; ++ } ++ ++ return EAI_NONAME; ++} ++ ++/* Convert host name, AF_INET/AF_INET6 case, numeric conversion. */ ++static int ++gni_host_inet_numeric (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *host, socklen_t hostlen, int flags) ++{ ++ const char *c; ++ if (sa->sa_family == AF_INET6) ++ { ++ const struct sockaddr_in6 *sin6p; ++ uint32_t scopeid; ++ ++ sin6p = (const struct sockaddr_in6 *) sa; ++ ++ c = inet_ntop (AF_INET6, ++ (const void *) &sin6p->sin6_addr, host, hostlen); ++ scopeid = sin6p->sin6_scope_id; ++ if (scopeid != 0) ++ { ++ /* Buffer is >= IFNAMSIZ+1. */ ++ char scopebuf[IFNAMSIZ + 1]; ++ char *scopeptr; ++ int ni_numericscope = 0; ++ size_t real_hostlen = __strnlen (host, hostlen); ++ size_t scopelen = 0; ++ ++ scopebuf[0] = SCOPE_DELIMITER; ++ scopebuf[1] = '\0'; ++ scopeptr = &scopebuf[1]; ++ ++ if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr) ++ || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr)) ++ { ++ if (if_indextoname (scopeid, scopeptr) == NULL) ++ ++ni_numericscope; ++ else ++ scopelen = strlen (scopebuf); ++ } ++ else ++ ++ni_numericscope; ++ ++ if (ni_numericscope) ++ scopelen = 1 + __snprintf (scopeptr, ++ (scopebuf ++ + sizeof scopebuf ++ - scopeptr), ++ "%u", scopeid); ++ ++ if (real_hostlen + scopelen + 1 > hostlen) ++ /* Signal the buffer is too small. This is ++ what inet_ntop does. */ ++ c = NULL; ++ else ++ memcpy (host + real_hostlen, scopebuf, scopelen + 1); ++ } ++ } ++ else ++ c = inet_ntop (AF_INET, ++ (const void *) &(((const struct sockaddr_in *) sa)->sin_addr), ++ host, hostlen); ++ if (c == NULL) ++ return EAI_OVERFLOW; ++ return 0; ++} ++ ++static int ++gni_host_inet (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *host, socklen_t hostlen, int flags) ++{ ++ if (!(flags & NI_NUMERICHOST)) ++ { ++ int result = gni_host_inet_name ++ (tmpbuf, sa, addrlen, host, hostlen, flags); ++ if (result != EAI_NONAME) ++ return result; ++ } ++ ++ if (flags & NI_NAMEREQD) ++ return EAI_NONAME; ++ else ++ return gni_host_inet_numeric ++ (tmpbuf, sa, addrlen, host, hostlen, flags); ++} ++ ++static int ++gni_host_local (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *host, socklen_t hostlen, int flags) ++{ ++ ++ if (!(flags & NI_NUMERICHOST)) ++ { ++ struct utsname utsname; ++ ++ if (!uname (&utsname)) ++ { ++ strncpy (host, utsname.nodename, hostlen); ++ return 0; ++ } ++ } ++ ++ if (flags & NI_NAMEREQD) ++ return EAI_NONAME; ++ ++ strncpy (host, "localhost", hostlen); ++ return 0; ++} ++ ++static int ++gni_host (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *host, socklen_t hostlen, int flags) ++{ ++ switch (sa->sa_family) ++ { ++ case AF_INET: ++ case AF_INET6: ++ return gni_host_inet (tmpbuf, sa, addrlen, host, hostlen, flags); ++ ++ case AF_LOCAL: ++ return gni_host_local (tmpbuf, sa, addrlen, host, hostlen, flags); ++ ++ default: ++ return EAI_FAMILY; ++ } ++} ++ ++/* Convert service to string, AF_INET and AF_INET6 variant. */ ++static int ++gni_serv_inet (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *serv, socklen_t servlen, int flags) ++{ ++ _Static_assert ++ (offsetof (struct sockaddr_in, sin_port) ++ == offsetof (struct sockaddr_in6, sin6_port) ++ && sizeof (((struct sockaddr_in) {}).sin_port) == sizeof (in_port_t) ++ && sizeof (((struct sockaddr_in6) {}).sin6_port) == sizeof (in_port_t), ++ "AF_INET and AF_INET6 port consistency"); ++ if (!(flags & NI_NUMERICSERV)) ++ { ++ struct servent *s, ts; ++ int e; ++ while ((e = __getservbyport_r (((const struct sockaddr_in *) sa)->sin_port, ++ ((flags & NI_DGRAM) ++ ? "udp" : "tcp"), &ts, ++ tmpbuf->data, tmpbuf->length, &s))) ++ { ++ if (e == ERANGE) ++ { ++ if (!scratch_buffer_grow (tmpbuf)) ++ return EAI_MEMORY; ++ } ++ else ++ break; ++ } ++ if (s) ++ { ++ strncpy (serv, s->s_name, servlen); ++ return 0; ++ } ++ /* Fall through to numeric conversion. */ ++ } ++ if (__snprintf (serv, servlen, "%d", ++ ntohs (((const struct sockaddr_in *) sa)->sin_port)) ++ + 1 > servlen) ++ return EAI_OVERFLOW; ++ return 0; ++} ++ ++/* Convert service to string, AF_LOCAL variant. */ ++static int ++gni_serv_local (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *serv, socklen_t servlen, int flags) ++{ ++ strncpy (serv, ((const struct sockaddr_un *) sa)->sun_path, servlen); ++ return 0; ++} ++ ++/* Convert service to string, dispatching to the implementations ++ above. */ ++static int ++gni_serv (struct scratch_buffer *tmpbuf, ++ const struct sockaddr *sa, socklen_t addrlen, ++ char *serv, socklen_t servlen, int flags) ++{ ++ switch (sa->sa_family) ++ { ++ case AF_INET: ++ case AF_INET6: ++ return gni_serv_inet (tmpbuf, sa, addrlen, serv, servlen, flags); ++ case AF_LOCAL: ++ return gni_serv_local (tmpbuf, sa, addrlen, serv, servlen, flags); ++ default: ++ return EAI_FAMILY; ++ } ++} + + int + getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, + socklen_t hostlen, char *serv, socklen_t servlen, + int flags) + { +- int herrno; +- struct hostent th; +- int ok = 0; +- struct scratch_buffer tmpbuf; +- +- scratch_buffer_init (&tmpbuf); +- + if (flags & ~(NI_NUMERICHOST|NI_NUMERICSERV|NI_NOFQDN|NI_NAMEREQD|NI_DGRAM + #ifdef HAVE_LIBIDN + |NI_IDN|NI_IDN_ALLOW_UNASSIGNED|NI_IDN_USE_STD3_ASCII_RULES +@@ -213,249 +535,34 @@ getnameinfo (const struct sockaddr *sa, + return EAI_FAMILY; + } + +- if (host != NULL && hostlen > 0) +- switch (sa->sa_family) +- { +- case AF_INET: +- case AF_INET6: +- if (!(flags & NI_NUMERICHOST)) +- { +- struct hostent *h = NULL; +- if (sa->sa_family == AF_INET6) +- { +- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in6 *) sa)->sin6_addr), +- sizeof(struct in6_addr), +- AF_INET6, &th, +- tmpbuf.data, tmpbuf.length, +- &h, &herrno)) +- if (herrno == NETDB_INTERNAL && errno == ERANGE) +- { +- if (!scratch_buffer_grow (&tmpbuf)) +- { +- __set_h_errno (herrno); +- return EAI_MEMORY; +- } +- } +- else +- break; +- } +- else +- { +- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in *)sa)->sin_addr), +- sizeof(struct in_addr), +- AF_INET, &th, +- tmpbuf.data, tmpbuf.length, +- &h, &herrno)) +- if (herrno == NETDB_INTERNAL && errno == ERANGE) +- { +- if (!scratch_buffer_grow (&tmpbuf)) +- { +- __set_h_errno (herrno); +- return EAI_MEMORY; +- } +- } +- else +- break; +- } +- +- if (h == NULL) +- { +- if (herrno == NETDB_INTERNAL) +- { +- __set_h_errno (herrno); +- return EAI_SYSTEM; +- } +- if (herrno == TRY_AGAIN) +- { +- __set_h_errno (herrno); +- return EAI_AGAIN; +- } +- } +- +- if (h) +- { +- char *c; +- if ((flags & NI_NOFQDN) +- && (c = nrl_domainname ()) +- && (c = strstr (h->h_name, c)) +- && (c != h->h_name) && (*(--c) == '.')) +- /* Terminate the string after the prefix. */ +- *c = '\0'; +- +-#ifdef HAVE_LIBIDN +- /* If requested, convert from the IDN format. */ +- if (flags & NI_IDN) +- { +- int idn_flags = 0; +- if (flags & NI_IDN_ALLOW_UNASSIGNED) +- idn_flags |= IDNA_ALLOW_UNASSIGNED; +- if (flags & NI_IDN_USE_STD3_ASCII_RULES) +- idn_flags |= IDNA_USE_STD3_ASCII_RULES; +- +- char *out; +- int rc = __idna_to_unicode_lzlz (h->h_name, &out, +- idn_flags); +- if (rc != IDNA_SUCCESS) +- { +- if (rc == IDNA_MALLOC_ERROR) +- return EAI_MEMORY; +- if (rc == IDNA_DLOPEN_ERROR) +- return EAI_SYSTEM; +- return EAI_IDN_ENCODE; +- } +- +- if (out != h->h_name) +- { +- h->h_name = strdupa (out); +- free (out); +- } +- } +-#endif +- +- size_t len = strlen (h->h_name) + 1; +- if (len > hostlen) +- return EAI_OVERFLOW; +- +- memcpy (host, h->h_name, len); +- +- ok = 1; +- } +- } +- +- if (!ok) +- { +- if (flags & NI_NAMEREQD) +- return EAI_NONAME; +- else +- { +- const char *c; +- if (sa->sa_family == AF_INET6) +- { +- const struct sockaddr_in6 *sin6p; +- uint32_t scopeid; +- +- sin6p = (const struct sockaddr_in6 *) sa; +- +- c = inet_ntop (AF_INET6, +- (const void *) &sin6p->sin6_addr, host, hostlen); +- scopeid = sin6p->sin6_scope_id; +- if (scopeid != 0) +- { +- /* Buffer is >= IFNAMSIZ+1. */ +- char scopebuf[IFNAMSIZ + 1]; +- char *scopeptr; +- int ni_numericscope = 0; +- size_t real_hostlen = __strnlen (host, hostlen); +- size_t scopelen = 0; +- +- scopebuf[0] = SCOPE_DELIMITER; +- scopebuf[1] = '\0'; +- scopeptr = &scopebuf[1]; +- +- if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr) +- || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr)) +- { +- if (if_indextoname (scopeid, scopeptr) == NULL) +- ++ni_numericscope; +- else +- scopelen = strlen (scopebuf); +- } +- else +- ++ni_numericscope; +- +- if (ni_numericscope) +- scopelen = 1 + __snprintf (scopeptr, +- (scopebuf +- + sizeof scopebuf +- - scopeptr), +- "%u", scopeid); +- +- if (real_hostlen + scopelen + 1 > hostlen) +- /* Signal the buffer is too small. This is +- what inet_ntop does. */ +- c = NULL; +- else +- memcpy (host + real_hostlen, scopebuf, scopelen + 1); +- } +- } +- else +- c = inet_ntop (AF_INET, +- (const void *) &(((const struct sockaddr_in *) sa)->sin_addr), +- host, hostlen); +- if (c == NULL) +- return EAI_OVERFLOW; +- } +- ok = 1; +- } +- break; +- +- case AF_LOCAL: +- if (!(flags & NI_NUMERICHOST)) +- { +- struct utsname utsname; +- +- if (!uname (&utsname)) +- { +- strncpy (host, utsname.nodename, hostlen); +- break; +- }; +- }; +- +- if (flags & NI_NAMEREQD) +- return EAI_NONAME; +- +- strncpy (host, "localhost", hostlen); +- break; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + +- default: +- return EAI_FAMILY; ++ if (host != NULL && hostlen > 0) ++ { ++ int result = gni_host (&tmpbuf, sa, addrlen, host, hostlen, flags); ++ if (result != 0) ++ { ++ scratch_buffer_free (&tmpbuf); ++ return result; ++ } + } + + if (serv && (servlen > 0)) +- switch (sa->sa_family) +- { +- case AF_INET: +- case AF_INET6: +- if (!(flags & NI_NUMERICSERV)) +- { +- struct servent *s, ts; +- int e; +- while ((e = __getservbyport_r (((const struct sockaddr_in *) sa)->sin_port, +- ((flags & NI_DGRAM) +- ? "udp" : "tcp"), &ts, +- tmpbuf.data, tmpbuf.length, &s))) +- { +- if (e == ERANGE) +- { +- if (!scratch_buffer_grow (&tmpbuf)) +- return EAI_MEMORY; +- } +- else +- break; +- } +- if (s) +- { +- strncpy (serv, s->s_name, servlen); +- break; +- } +- } +- +- if (__snprintf (serv, servlen, "%d", +- ntohs (((const struct sockaddr_in *) sa)->sin_port)) +- + 1 > servlen) +- return EAI_OVERFLOW; +- +- break; +- +- case AF_LOCAL: +- strncpy (serv, ((const struct sockaddr_un *) sa)->sun_path, servlen); +- break; ++ { ++ int result = gni_serv (&tmpbuf, sa, addrlen, serv, servlen, flags); ++ if (result != 0) ++ { ++ scratch_buffer_free (&tmpbuf); ++ return result; ++ } + } + + if (host && (hostlen > 0)) + host[hostlen-1] = 0; + if (serv && (servlen > 0)) + serv[servlen-1] = 0; ++ scratch_buffer_free (&tmpbuf); + return 0; + } + libc_hidden_def (getnameinfo) diff --git a/0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch b/0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch new file mode 100644 index 0000000..73de233 --- /dev/null +++ b/0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch @@ -0,0 +1,119 @@ +2016-05-04 Florian Weimer + + * inet/getnameinfo.c (gni_host_inet_name): Use temporaries to + avoid long lines. + (gni_host_inet_numeric): Likewise. Reduce scope of local + variables. + (gni_host_inet, gni_host_local): Add comment. + (gni_host): Add comment. Use temporary to avoid long lines. + +Index: glibc-2.23/inet/getnameinfo.c +=================================================================== +--- glibc-2.23.orig/inet/getnameinfo.c ++++ glibc-2.23/inet/getnameinfo.c +@@ -198,10 +198,9 @@ gni_host_inet_name (struct scratch_buffe + struct hostent *h = NULL; + if (sa->sa_family == AF_INET6) + { +- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in6 *) sa)->sin6_addr), +- sizeof(struct in6_addr), +- AF_INET6, &th, +- tmpbuf->data, tmpbuf->length, ++ const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; ++ while (__gethostbyaddr_r (&sin6p->sin6_addr, sizeof(struct in6_addr), ++ AF_INET6, &th, tmpbuf->data, tmpbuf->length, + &h, &herrno)) + if (herrno == NETDB_INTERNAL && errno == ERANGE) + { +@@ -216,10 +215,9 @@ gni_host_inet_name (struct scratch_buffe + } + else + { +- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in *)sa)->sin_addr), +- sizeof(struct in_addr), +- AF_INET, &th, +- tmpbuf->data, tmpbuf->length, ++ const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; ++ while (__gethostbyaddr_r (&sinp->sin_addr, sizeof(struct in_addr), ++ AF_INET, &th, tmpbuf->data, tmpbuf->length, + &h, &herrno)) + if (herrno == NETDB_INTERNAL && errno == ERANGE) + { +@@ -308,14 +306,10 @@ gni_host_inet_numeric (struct scratch_bu + const char *c; + if (sa->sa_family == AF_INET6) + { +- const struct sockaddr_in6 *sin6p; +- uint32_t scopeid; +- +- sin6p = (const struct sockaddr_in6 *) sa; +- ++ const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; + c = inet_ntop (AF_INET6, + (const void *) &sin6p->sin6_addr, host, hostlen); +- scopeid = sin6p->sin6_scope_id; ++ uint32_t scopeid = sin6p->sin6_scope_id; + if (scopeid != 0) + { + /* Buffer is >= IFNAMSIZ+1. */ +@@ -356,14 +350,16 @@ gni_host_inet_numeric (struct scratch_bu + } + } + else +- c = inet_ntop (AF_INET, +- (const void *) &(((const struct sockaddr_in *) sa)->sin_addr), +- host, hostlen); ++ { ++ const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; ++ c = inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen); ++ } + if (c == NULL) + return EAI_OVERFLOW; + return 0; + } + ++/* Convert AF_INET or AF_INET6 socket address, host part. */ + static int + gni_host_inet (struct scratch_buffer *tmpbuf, + const struct sockaddr *sa, socklen_t addrlen, +@@ -384,6 +380,7 @@ gni_host_inet (struct scratch_buffer *tm + (tmpbuf, sa, addrlen, host, hostlen, flags); + } + ++/* Convert AF_LOCAL socket address, host part. */ + static int + gni_host_local (struct scratch_buffer *tmpbuf, + const struct sockaddr *sa, socklen_t addrlen, +@@ -408,6 +405,7 @@ gni_host_local (struct scratch_buffer *t + return 0; + } + ++/* Convert the host part of an AF_LOCAK socket address. */ + static int + gni_host (struct scratch_buffer *tmpbuf, + const struct sockaddr *sa, socklen_t addrlen, +@@ -439,11 +437,12 @@ gni_serv_inet (struct scratch_buffer *tm + && sizeof (((struct sockaddr_in) {}).sin_port) == sizeof (in_port_t) + && sizeof (((struct sockaddr_in6) {}).sin6_port) == sizeof (in_port_t), + "AF_INET and AF_INET6 port consistency"); ++ const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; + if (!(flags & NI_NUMERICSERV)) + { + struct servent *s, ts; + int e; +- while ((e = __getservbyport_r (((const struct sockaddr_in *) sa)->sin_port, ++ while ((e = __getservbyport_r (sinp->sin_port, + ((flags & NI_DGRAM) + ? "udp" : "tcp"), &ts, + tmpbuf->data, tmpbuf->length, &s))) +@@ -463,9 +462,7 @@ gni_serv_inet (struct scratch_buffer *tm + } + /* Fall through to numeric conversion. */ + } +- if (__snprintf (serv, servlen, "%d", +- ntohs (((const struct sockaddr_in *) sa)->sin_port)) +- + 1 > servlen) ++ if (__snprintf (serv, servlen, "%d", ntohs (sinp->sin_port)) + 1 > servlen) + return EAI_OVERFLOW; + return 0; + } diff --git a/0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch b/0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch new file mode 100644 index 0000000..6aef3f3 --- /dev/null +++ b/0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch @@ -0,0 +1,47 @@ +2016-05-04 Florian Weimer + + * inet/getnameinfo.c (gni_host_inet_numeric): Return EAI_OVERFLOW + in case of inet_ntop failure. + +Index: glibc-2.23/inet/getnameinfo.c +=================================================================== +--- glibc-2.23.orig/inet/getnameinfo.c ++++ glibc-2.23/inet/getnameinfo.c +@@ -303,12 +303,12 @@ gni_host_inet_numeric (struct scratch_bu + const struct sockaddr *sa, socklen_t addrlen, + char *host, socklen_t hostlen, int flags) + { +- const char *c; + if (sa->sa_family == AF_INET6) + { + const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; +- c = inet_ntop (AF_INET6, +- (const void *) &sin6p->sin6_addr, host, hostlen); ++ if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) ++ return EAI_OVERFLOW; ++ + uint32_t scopeid = sin6p->sin6_scope_id; + if (scopeid != 0) + { +@@ -344,7 +344,7 @@ gni_host_inet_numeric (struct scratch_bu + if (real_hostlen + scopelen + 1 > hostlen) + /* Signal the buffer is too small. This is + what inet_ntop does. */ +- c = NULL; ++ return EAI_OVERFLOW; + else + memcpy (host + real_hostlen, scopebuf, scopelen + 1); + } +@@ -352,10 +352,9 @@ gni_host_inet_numeric (struct scratch_bu + else + { + const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; +- c = inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen); ++ if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) ++ return EAI_OVERFLOW; + } +- if (c == NULL) +- return EAI_OVERFLOW; + return 0; + } + diff --git a/0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch b/0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch new file mode 100644 index 0000000..a08d7b3 --- /dev/null +++ b/0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch @@ -0,0 +1,176 @@ +2016-05-04 Florian Weimer + + [BZ #19787] + * inet/getnameinfo.c (check_sprintf_result): New function. + (CHECKED_SNPRINTF): New macro. + (gni_host_inet_numeric): Use CHECKED_SNPRINTF to write the scope + to the host buffer. + (gni_host_local): Use checked_copy to copy the host name. + (gni_serv_inet): Use CHECKED_SNPRINTF to write the service name. + (gni_serv_local): Use checked_copy to copy the service name. + (getnameinfo): Remove unnecessary truncation of result buffers. + +Index: glibc-2.23/inet/getnameinfo.c +=================================================================== +--- glibc-2.23.orig/inet/getnameinfo.c ++++ glibc-2.23/inet/getnameinfo.c +@@ -187,6 +187,39 @@ nrl_domainname (void) + return domain; + }; + ++/* Copy a string to a destination buffer with length checking. Return ++ EAI_OVERFLOW if the buffer is not large enough, and 0 on ++ success. */ ++static int ++checked_copy (char *dest, size_t destlen, const char *source) ++{ ++ size_t source_length = strlen (source); ++ if (source_length + 1 > destlen) ++ return EAI_OVERFLOW; ++ memcpy (dest, source, source_length + 1); ++ return 0; ++} ++ ++/* Helper function for CHECKED_SNPRINTF below. */ ++static int ++check_sprintf_result (int result, size_t destlen) ++{ ++ if (result < 0) ++ return EAI_SYSTEM; ++ if ((size_t) result >= destlen) ++ /* If ret == destlen, there was no room for the terminating NUL ++ character. */ ++ return EAI_OVERFLOW; ++ return 0; ++} ++ ++/* Format a string in the destination buffer. Return 0 on success, ++ EAI_OVERFLOW in case the buffer is too small, or EAI_SYSTEM on any ++ other error. */ ++#define CHECKED_SNPRINTF(dest, destlen, format, ...) \ ++ check_sprintf_result \ ++ (__snprintf (dest, destlen, format, __VA_ARGS__), destlen) ++ + /* Convert host name, AF_INET/AF_INET6 case, name only. */ + static int + gni_host_inet_name (struct scratch_buffer *tmpbuf, +@@ -312,41 +345,22 @@ gni_host_inet_numeric (struct scratch_bu + uint32_t scopeid = sin6p->sin6_scope_id; + if (scopeid != 0) + { +- /* Buffer is >= IFNAMSIZ+1. */ +- char scopebuf[IFNAMSIZ + 1]; +- char *scopeptr; +- int ni_numericscope = 0; +- size_t real_hostlen = __strnlen (host, hostlen); +- size_t scopelen = 0; +- +- scopebuf[0] = SCOPE_DELIMITER; +- scopebuf[1] = '\0'; +- scopeptr = &scopebuf[1]; ++ size_t used_hostlen = __strnlen (host, hostlen); ++ /* Location of the scope string in the host buffer. */ ++ char *scope_start = host + used_hostlen; ++ size_t scope_length = hostlen - used_hostlen; + + if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr) + || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr)) + { +- if (if_indextoname (scopeid, scopeptr) == NULL) +- ++ni_numericscope; +- else +- scopelen = strlen (scopebuf); ++ char scopebuf[IFNAMSIZ]; ++ if (if_indextoname (scopeid, scopebuf) != NULL) ++ return CHECKED_SNPRINTF ++ (scope_start, scope_length, ++ "%c%s", SCOPE_DELIMITER, scopebuf); + } +- else +- ++ni_numericscope; +- +- if (ni_numericscope) +- scopelen = 1 + __snprintf (scopeptr, +- (scopebuf +- + sizeof scopebuf +- - scopeptr), +- "%u", scopeid); +- +- if (real_hostlen + scopelen + 1 > hostlen) +- /* Signal the buffer is too small. This is +- what inet_ntop does. */ +- return EAI_OVERFLOW; +- else +- memcpy (host + real_hostlen, scopebuf, scopelen + 1); ++ return CHECKED_SNPRINTF ++ (scope_start, scope_length, "%c%u", SCOPE_DELIMITER, scopeid); + } + } + else +@@ -385,23 +399,17 @@ gni_host_local (struct scratch_buffer *t + const struct sockaddr *sa, socklen_t addrlen, + char *host, socklen_t hostlen, int flags) + { +- + if (!(flags & NI_NUMERICHOST)) + { + struct utsname utsname; +- +- if (!uname (&utsname)) +- { +- strncpy (host, utsname.nodename, hostlen); +- return 0; +- } ++ if (uname (&utsname) == 0) ++ return checked_copy (host, hostlen, utsname.nodename); + } + + if (flags & NI_NAMEREQD) + return EAI_NONAME; + +- strncpy (host, "localhost", hostlen); +- return 0; ++ return checked_copy (host, hostlen, "localhost"); + } + + /* Convert the host part of an AF_LOCAK socket address. */ +@@ -455,15 +463,10 @@ gni_serv_inet (struct scratch_buffer *tm + break; + } + if (s) +- { +- strncpy (serv, s->s_name, servlen); +- return 0; +- } ++ return checked_copy (serv, servlen, s->s_name); + /* Fall through to numeric conversion. */ + } +- if (__snprintf (serv, servlen, "%d", ntohs (sinp->sin_port)) + 1 > servlen) +- return EAI_OVERFLOW; +- return 0; ++ return CHECKED_SNPRINTF (serv, servlen, "%d", ntohs (sinp->sin_port)); + } + + /* Convert service to string, AF_LOCAL variant. */ +@@ -472,8 +475,8 @@ gni_serv_local (struct scratch_buffer *t + const struct sockaddr *sa, socklen_t addrlen, + char *serv, socklen_t servlen, int flags) + { +- strncpy (serv, ((const struct sockaddr_un *) sa)->sun_path, servlen); +- return 0; ++ return checked_copy ++ (serv, servlen, ((const struct sockaddr_un *) sa)->sun_path); + } + + /* Convert service to string, dispatching to the implementations +@@ -554,10 +557,6 @@ getnameinfo (const struct sockaddr *sa, + } + } + +- if (host && (hostlen > 0)) +- host[hostlen-1] = 0; +- if (serv && (servlen > 0)) +- serv[servlen-1] = 0; + scratch_buffer_free (&tmpbuf); + return 0; + } diff --git a/0030-hesiod-Remove-RCS-keywords.patch b/0030-hesiod-Remove-RCS-keywords.patch new file mode 100644 index 0000000..5f3e7cc --- /dev/null +++ b/0030-hesiod-Remove-RCS-keywords.patch @@ -0,0 +1,48 @@ +2016-05-02 Florian Weimer + + * hesiod/hesiod.h: Remove RCS keyword. + * hesiod/hesiod_p.h: Likewise. + * hesiod/hesiod.c: Likewise. + +Index: glibc-2.23/hesiod/hesiod.c +=================================================================== +--- glibc-2.23.orig/hesiod/hesiod.c ++++ glibc-2.23/hesiod/hesiod.c +@@ -1,7 +1,3 @@ +-#if defined(LIBC_SCCS) && !defined(lint) +-static const char rcsid[] = "$BINDId: hesiod.c,v 1.21 2000/02/28 14:51:08 vixie Exp $"; +-#endif +- + /* + * Copyright (c) 1996,1999 by Internet Software Consortium. + * +Index: glibc-2.23/hesiod/hesiod.h +=================================================================== +--- glibc-2.23.orig/hesiod/hesiod.h ++++ glibc-2.23/hesiod/hesiod.h +@@ -19,10 +19,6 @@ + * This file is primarily maintained by and . + */ + +-/* +- * $BINDId: hesiod.h,v 1.7 1999/01/08 19:22:45 vixie Exp $ +- */ +- + #ifndef _HESIOD_H_INCLUDED + #define _HESIOD_H_INCLUDED + +Index: glibc-2.23/hesiod/hesiod_p.h +=================================================================== +--- glibc-2.23.orig/hesiod/hesiod_p.h ++++ glibc-2.23/hesiod/hesiod_p.h +@@ -20,10 +20,6 @@ + */ + + /* +- * $BINDId: hesiod_p.h,v 1.9 1999/01/08 19:24:39 vixie Exp $ +- */ +- +-/* + * hesiod_p.h -- private definitions for the hesiod library + */ + diff --git a/0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch b/0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch new file mode 100644 index 0000000..7266c57 --- /dev/null +++ b/0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch @@ -0,0 +1,440 @@ +2016-05-02 Florian Weimer + + [BZ #19573] + * hesiod/Makefile (libnss_hesiod-routines): Remove hesiod-init. + * hesiod/nss_hesiod/hesiod-init.c: Remove file. + * hesiod/nss_hesiod/nss_hesiod.h: Likewise. + * hesiod/hesiod.h (__hesiod_res_get, __hesiod_res_set): Remove. + (hesiod_init, hesiod_end, hesiod_to_bind, hesiod_resolve) + (hesiod_free_list): Mark as hidden. + * hesiod/hesiod_p (struct hesiod_p): Remove res, free_res, + res_set, res_get. + * hesiod/hesiod.c: Remove unnecessary forward declarations. + (init, __hesiod_res_get, __hesiod_res_set): Remove. + (hesiod_init): Remove obsolete res_ninit call. + (hesiod_end): Do not free resolver state. Do not invoke callback. + (hesiod_bind): Do not call init. + (get_txt_records): Use res_mkquery, res_send instead of + res_nmkquery, res_nsend. + * hesiod/nss_hesiod/hesiod-grp.c (lookup): Call hesiod_init + instead of _nss_hesiod_init. + (_nss_hesiod_initgroups_dyn): Likewise. + * hesiod/nss_hesiod/hesiod-proto.c (lookup): Likewise. + * hesiod/nss_hesiod/hesiod-pwd.c (lookup): Likewise. + * hesiod/nss_hesiod/hesiod-service.c (lookup): Likewise. + +Index: glibc-2.23/hesiod/Makefile +=================================================================== +--- glibc-2.23.orig/hesiod/Makefile ++++ glibc-2.23/hesiod/Makefile +@@ -28,7 +28,7 @@ extra-libs-others = $(extra-libs) + subdir-dirs = nss_hesiod + vpath %.c nss_hesiod + +-libnss_hesiod-routines := hesiod hesiod-grp hesiod-init hesiod-proto \ ++libnss_hesiod-routines := hesiod hesiod-grp hesiod-proto \ + hesiod-pwd hesiod-service + # Build only shared library + libnss_hesiod-inhibit-o = $(filter-out .os,$(object-suffixes)) +Index: glibc-2.23/hesiod/hesiod.c +=================================================================== +--- glibc-2.23.orig/hesiod/hesiod.c ++++ glibc-2.23/hesiod/hesiod.c +@@ -1,3 +1,20 @@ ++/* Copyright (C) 1997-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ + /* + * Copyright (c) 1996,1999 by Internet Software Consortium. + * +@@ -48,18 +65,9 @@ + + /* Forward */ + +-int hesiod_init(void **context); +-void hesiod_end(void *context); +-char * hesiod_to_bind(void *context, const char *name, +- const char *type); +-char ** hesiod_resolve(void *context, const char *name, +- const char *type); +-void hesiod_free_list(void *context, char **list); +- + static int parse_config_file(struct hesiod_p *ctx, const char *filename); + static char ** get_txt_records(struct hesiod_p *ctx, int class, + const char *name); +-static int init(struct hesiod_p *ctx); + + /* Public */ + +@@ -78,7 +86,6 @@ hesiod_init(void **context) { + + ctx->LHS = NULL; + ctx->RHS = NULL; +- ctx->res = NULL; + /* Set default query classes. */ + ctx->classes[0] = C_IN; + ctx->classes[1] = C_HS; +@@ -127,11 +134,6 @@ hesiod_init(void **context) { + goto cleanup; + } + +-#if 0 +- if (res_ninit(ctx->res) < 0) +- goto cleanup; +-#endif +- + *context = ctx; + return (0); + +@@ -148,12 +150,8 @@ hesiod_end(void *context) { + struct hesiod_p *ctx = (struct hesiod_p *) context; + int save_errno = errno; + +- if (ctx->res) +- res_nclose(ctx->res); + free(ctx->RHS); + free(ctx->LHS); +- if (ctx->res && ctx->free_res) +- (*ctx->free_res)(ctx->res); + free(ctx); + __set_errno(save_errno); + } +@@ -228,10 +226,6 @@ hesiod_resolve(void *context, const char + + if (bindname == NULL) + return (NULL); +- if (init(ctx) == -1) { +- free(bindname); +- return (NULL); +- } + + retvec = get_txt_records(ctx, ctx->classes[0], bindname); + +@@ -361,13 +355,13 @@ get_txt_records(struct hesiod_p *ctx, in + /* + * Construct the query and send it. + */ +- n = res_nmkquery(ctx->res, QUERY, name, class, T_TXT, NULL, 0, ++ n = res_mkquery(QUERY, name, class, T_TXT, NULL, 0, + NULL, qbuf, MAX_HESRESP); + if (n < 0) { + __set_errno(EMSGSIZE); + return (NULL); + } +- n = res_nsend(ctx->res, qbuf, n, abuf, MAX_HESRESP); ++ n = res_send(qbuf, n, abuf, MAX_HESRESP); + if (n < 0) { + __set_errno(ECONNREFUSED); + return (NULL); +@@ -460,44 +454,3 @@ get_txt_records(struct hesiod_p *ctx, in + free(list); + return (NULL); + } +- +-struct __res_state * +-__hesiod_res_get(void *context) { +- struct hesiod_p *ctx = context; +- +- if (!ctx->res) { +- struct __res_state *res; +- res = (struct __res_state *)calloc(1, sizeof *res); +- if (res == NULL) +- return (NULL); +- __hesiod_res_set(ctx, res, free); +- } +- +- return (ctx->res); +-} +- +-void +-__hesiod_res_set(void *context, struct __res_state *res, +- void (*free_res)(void *)) { +- struct hesiod_p *ctx = context; +- +- if (ctx->res && ctx->free_res) { +- res_nclose(ctx->res); +- (*ctx->free_res)(ctx->res); +- } +- +- ctx->res = res; +- ctx->free_res = free_res; +-} +- +-static int +-init(struct hesiod_p *ctx) { +- +- if (!ctx->res && !__hesiod_res_get(ctx)) +- return (-1); +- +- if (__res_maybe_init (ctx->res, 0) == -1) +- return (-1); +- +- return (0); +-} +Index: glibc-2.23/hesiod/hesiod.h +=================================================================== +--- glibc-2.23.orig/hesiod/hesiod.h ++++ glibc-2.23/hesiod/hesiod.h +@@ -1,3 +1,20 @@ ++/* Copyright (C) 1997-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ + /* + * Copyright (c) 1996,1999 by Internet Software Consortium. + * +@@ -22,15 +39,12 @@ + #ifndef _HESIOD_H_INCLUDED + #define _HESIOD_H_INCLUDED + +-int hesiod_init (void **context); +-void hesiod_end (void *context); ++int hesiod_init (void **context) attribute_hidden; ++void hesiod_end (void *context) attribute_hidden; + char * hesiod_to_bind (void *context, const char *name, +- const char *type); ++ const char *type) attribute_hidden; + char ** hesiod_resolve (void *context, const char *name, +- const char *type); +-void hesiod_free_list (void *context, char **list); +-struct __res_state * __hesiod_res_get (void *context); +-void __hesiod_res_set (void *context, struct __res_state *, +- void (*)(void *)); ++ const char *type) attribute_hidden; ++void hesiod_free_list (void *context, char **list) attribute_hidden; + + #endif /*_HESIOD_H_INCLUDED*/ +Index: glibc-2.23/hesiod/hesiod_p.h +=================================================================== +--- glibc-2.23.orig/hesiod/hesiod_p.h ++++ glibc-2.23/hesiod/hesiod_p.h +@@ -1,3 +1,20 @@ ++/* Copyright (C) 1997-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ + /* + * Copyright (c) 1996,1999 by Internet Software Consortium. + * +@@ -32,11 +49,6 @@ + struct hesiod_p { + char * LHS; /* normally ".ns" */ + char * RHS; /* AKA the default hesiod domain */ +- struct __res_state * res; /* resolver context */ +- void (*free_res)(void *); +- void (*res_set)(struct hesiod_p *, struct __res_state *, +- void (*)(void *)); +- struct __res_state * (*res_get)(struct hesiod_p *); + int classes[2]; /* The class search order. */ + }; + +Index: glibc-2.23/hesiod/nss_hesiod/hesiod-grp.c +=================================================================== +--- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-grp.c ++++ glibc-2.23/hesiod/nss_hesiod/hesiod-grp.c +@@ -26,8 +26,6 @@ + #include + #include + +-#include "nss_hesiod.h" +- + /* Get the declaration of the parser function. */ + #define ENTNAME grent + #define STRUCTURE group +@@ -58,8 +56,7 @@ lookup (const char *name, const char *ty + size_t len; + int olderr = errno; + +- context = _nss_hesiod_init (); +- if (context == NULL) ++ if (hesiod_init (&context) < 0) + return NSS_STATUS_UNAVAIL; + + list = hesiod_resolve (context, name, type); +@@ -179,8 +176,7 @@ _nss_hesiod_initgroups_dyn (const char * + gid_t *groups = *groupsp; + int save_errno; + +- context = _nss_hesiod_init (); +- if (context == NULL) ++ if (hesiod_init (&context) < 0) + return NSS_STATUS_UNAVAIL; + + list = hesiod_resolve (context, user, "grplist"); +Index: glibc-2.23/hesiod/nss_hesiod/hesiod-init.c +=================================================================== +--- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-init.c ++++ /dev/null +@@ -1,38 +0,0 @@ +-/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Mark Kettenis , 2000. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include /* Needs to come before . */ +-#include +-#include +-#include +- +-#include "nss_hesiod.h" +- +-void * +-_nss_hesiod_init (void) +-{ +- void *context; +- +- if (hesiod_init (&context) == -1) +- return NULL; +- +- /* Use the default (per-thread) resolver state. */ +- __hesiod_res_set (context, &_res, NULL); +- +- return context; +-} +Index: glibc-2.23/hesiod/nss_hesiod/hesiod-proto.c +=================================================================== +--- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-proto.c ++++ glibc-2.23/hesiod/nss_hesiod/hesiod-proto.c +@@ -25,8 +25,6 @@ + #include + #include + +-#include "nss_hesiod.h" +- + /* Declare a parser for Hesiod protocol entries. Although the format + of the entries is identical to those in /etc/protocols, here is no + predefined parser for us to use. */ +@@ -68,8 +66,7 @@ lookup (const char *name, const char *ty + int found; + int olderr = errno; + +- context = _nss_hesiod_init (); +- if (context == NULL) ++ if (hesiod_init (&context) < 0) + return NSS_STATUS_UNAVAIL; + + list = hesiod_resolve (context, name, type); +Index: glibc-2.23/hesiod/nss_hesiod/hesiod-pwd.c +=================================================================== +--- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-pwd.c ++++ glibc-2.23/hesiod/nss_hesiod/hesiod-pwd.c +@@ -24,8 +24,6 @@ + #include + #include + +-#include "nss_hesiod.h" +- + /* Get the declaration of the parser function. */ + #define ENTNAME pwent + #define STRUCTURE passwd +@@ -56,8 +54,7 @@ lookup (const char *name, const char *ty + size_t len; + int olderr = errno; + +- context = _nss_hesiod_init (); +- if (context == NULL) ++ if (hesiod_init (&context) < 0) + return NSS_STATUS_UNAVAIL; + + list = hesiod_resolve (context, name, type); +Index: glibc-2.23/hesiod/nss_hesiod/hesiod-service.c +=================================================================== +--- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-service.c ++++ glibc-2.23/hesiod/nss_hesiod/hesiod-service.c +@@ -25,8 +25,6 @@ + #include + #include + +-#include "nss_hesiod.h" +- + /* Hesiod uses a format for service entries that differs from the + traditional format. We therefore declare our own parser. */ + +@@ -69,8 +67,7 @@ lookup (const char *name, const char *ty + int found; + int olderr = errno; + +- context = _nss_hesiod_init (); +- if (context == NULL) ++ if (hesiod_init (&context) < 0) + return NSS_STATUS_UNAVAIL; + + list = hesiod_resolve (context, name, type); +Index: glibc-2.23/hesiod/nss_hesiod/nss_hesiod.h +=================================================================== +--- glibc-2.23.orig/hesiod/nss_hesiod/nss_hesiod.h ++++ /dev/null +@@ -1,20 +0,0 @@ +-/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Mark Kettenis , 2000. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* Initialize a Hesiod context. */ +-extern void *_nss_hesiod_init (void); diff --git a/0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch b/0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch new file mode 100644 index 0000000..9f99ef8 --- /dev/null +++ b/0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch @@ -0,0 +1,19 @@ +2016-05-02 Florian Weimer + + [BZ #20031] + * hesiod/hesiod.c (get_txt_records): Return error if TXT record is + completely empty. + +Index: glibc-2.23/hesiod/hesiod.c +=================================================================== +--- glibc-2.23.orig/hesiod/hesiod.c ++++ glibc-2.23/hesiod/hesiod.c +@@ -411,7 +411,7 @@ get_txt_records(struct hesiod_p *ctx, in + cp += INT16SZ + INT32SZ; /* skip the ttl, too */ + rr.dlen = ns_get16(cp); + cp += INT16SZ; +- if (cp + rr.dlen > eom) { ++ if (rr.dlen == 0 || cp + rr.dlen > eom) { + __set_errno(EMSGSIZE); + goto cleanup; + } diff --git a/0033-malloc-Remove-NO_THREADS.patch b/0033-malloc-Remove-NO_THREADS.patch new file mode 100644 index 0000000..3d15822 --- /dev/null +++ b/0033-malloc-Remove-NO_THREADS.patch @@ -0,0 +1,73 @@ +2016-02-19 Florian Weimer + + * sysdeps/generic/malloc-machine.h: Assume mutex_init is always + available. Do not define NO_THREADS. + * malloc/malloc.c: Do not check NO_THREADS. + * malloc/arena.c: Likewise. + +Index: glibc-2.23/malloc/arena.c +=================================================================== +--- glibc-2.23.orig/malloc/arena.c ++++ glibc-2.23/malloc/arena.c +@@ -130,8 +130,6 @@ int __malloc_initialized = -1; + + /**************************************************************************/ + +-#ifndef NO_THREADS +- + /* atfork support. */ + + static void *(*save_malloc_hook)(size_t __size, const void *); +@@ -330,7 +328,6 @@ ptmalloc_unlock_all2 (void) + + # define ptmalloc_unlock_all2 ptmalloc_unlock_all + # endif +-#endif /* !NO_THREADS */ + + /* Initialization routine. */ + #include +Index: glibc-2.23/malloc/malloc.c +=================================================================== +--- glibc-2.23.orig/malloc/malloc.c ++++ glibc-2.23/malloc/malloc.c +@@ -1074,10 +1074,8 @@ static void* realloc_check(void* oldme + const void *caller); + static void* memalign_check(size_t alignment, size_t bytes, + const void *caller); +-#ifndef NO_THREADS + static void* malloc_atfork(size_t sz, const void *caller); + static void free_atfork(void* mem, const void *caller); +-#endif + + /* ------------------ MMAP support ------------------ */ + +Index: glibc-2.23/sysdeps/generic/malloc-machine.h +=================================================================== +--- glibc-2.23.orig/sysdeps/generic/malloc-machine.h ++++ glibc-2.23/sysdeps/generic/malloc-machine.h +@@ -22,25 +22,6 @@ + + #include + +-#ifndef mutex_init /* No threads, provide dummy macros */ +- +-# define NO_THREADS +- +-/* The mutex functions used to do absolutely nothing, i.e. lock, +- trylock and unlock would always just return 0. However, even +- without any concurrently active threads, a mutex can be used +- legitimately as an `in use' flag. To make the code that is +- protected by a mutex async-signal safe, these macros would have to +- be based on atomic test-and-set operations, for example. */ +-typedef int mutex_t; +- +-# define mutex_init(m) (*(m) = 0) +-# define mutex_lock(m) ({ *(m) = 1; 0; }) +-# define mutex_trylock(m) (*(m) ? 1 : ((*(m) = 1), 0)) +-# define mutex_unlock(m) (*(m) = 0) +- +-#endif /* !defined mutex_init */ +- + #ifndef atomic_full_barrier + # define atomic_full_barrier() __asm ("" ::: "memory") + #endif diff --git a/0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch b/0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch new file mode 100644 index 0000000..0cf4861 --- /dev/null +++ b/0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch @@ -0,0 +1,26 @@ +2016-03-22 Samuel Thibault + + * malloc/Makefile ($(objpfx)tst-malloc-backtrace, + $(objpfx)tst-malloc-thread-exit, $(objpfx)tst-malloc-thread-fail): Use + $(shared-thread-library) instead of hardcoding the path to libpthread. + +Index: glibc-2.23/malloc/Makefile +=================================================================== +--- glibc-2.23.orig/malloc/Makefile ++++ glibc-2.23/malloc/Makefile +@@ -46,12 +46,9 @@ extra-libs-others = $(extra-libs) + libmemusage-routines = memusage + libmemusage-inhibit-o = $(filter-out .os,$(object-suffixes)) + +-$(objpfx)tst-malloc-backtrace: $(common-objpfx)nptl/libpthread.so \ +- $(common-objpfx)nptl/libpthread_nonshared.a +-$(objpfx)tst-malloc-thread-exit: $(common-objpfx)nptl/libpthread.so \ +- $(common-objpfx)nptl/libpthread_nonshared.a +-$(objpfx)tst-malloc-thread-fail: $(common-objpfx)nptl/libpthread.so \ +- $(common-objpfx)nptl/libpthread_nonshared.a ++$(objpfx)tst-malloc-backtrace: $(shared-thread-library) ++$(objpfx)tst-malloc-thread-exit: $(shared-thread-library) ++$(objpfx)tst-malloc-thread-fail: $(shared-thread-library) + + # These should be removed by `make clean'. + extra-objs = mcheck-init.o libmcheck.a diff --git a/0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch b/0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch new file mode 100644 index 0000000..4663e79 --- /dev/null +++ b/0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch @@ -0,0 +1,568 @@ +2016-04-14 Florian Weimer + + [BZ #19431] + Run the malloc fork handler as late as possible to avoid deadlocks. + * malloc/malloc-internal.h: New file. + * malloc/malloc.c: Include it. + * malloc/arena.c (ATFORK_MEM): Remove. + (__malloc_fork_lock_parent): Rename from ptmalloc_lock_all. + Update comment. + (__malloc_fork_unlock_parent): Rename from ptmalloc_unlock_all. + (__malloc_fork_unlock_child): Rename from ptmalloc_unlock_all2. + Remove outdated comment. + (ptmalloc_init): Do not call thread_atfork. Remove + thread_atfork_static. + * malloc/tst-malloc-fork-deadlock.c: New file. + * Makefile (tests): Add tst-malloc-fork-deadlock. + (tst-malloc-fork-deadlock): Link against libpthread. + * manual/memory.texi (Aligned Memory Blocks): Update safety + annotation comments. + * sysdeps/nptl/fork.c (__libc_fork): Call + __malloc_fork_lock_parent, __malloc_fork_unlock_parent, + __malloc_fork_unlock_child. + * sysdeps/mach/hurd/fork.c (__fork): Likewise. + +Index: glibc-2.23/malloc/Makefile +=================================================================== +--- glibc-2.23.orig/malloc/Makefile ++++ glibc-2.23/malloc/Makefile +@@ -29,7 +29,7 @@ tests := mallocbug tst-malloc tst-valloc + tst-malloc-usable tst-realloc tst-posix_memalign \ + tst-pvalloc tst-memalign tst-mallopt tst-scratch_buffer \ + tst-malloc-backtrace tst-malloc-thread-exit \ +- tst-malloc-thread-fail ++ tst-malloc-thread-fail tst-malloc-fork-deadlock + test-srcs = tst-mtrace + + routines = malloc morecore mcheck mtrace obstack \ +@@ -49,6 +49,7 @@ libmemusage-inhibit-o = $(filter-out .os + $(objpfx)tst-malloc-backtrace: $(shared-thread-library) + $(objpfx)tst-malloc-thread-exit: $(shared-thread-library) + $(objpfx)tst-malloc-thread-fail: $(shared-thread-library) ++$(objpfx)tst-malloc-fork-deadlock: $(shared-thread-library) + + # These should be removed by `make clean'. + extra-objs = mcheck-init.o libmcheck.a +Index: glibc-2.23/malloc/arena.c +=================================================================== +--- glibc-2.23.orig/malloc/arena.c ++++ glibc-2.23/malloc/arena.c +@@ -136,10 +136,6 @@ static void *(*save_malloc_hook)(size_t + static void (*save_free_hook) (void *__ptr, const void *); + static void *save_arena; + +-# ifdef ATFORK_MEM +-ATFORK_MEM; +-# endif +- + /* Magic value for the thread-specific arena pointer when + malloc_atfork() is in use. */ + +@@ -205,14 +201,14 @@ free_atfork (void *mem, const void *call + /* Counter for number of times the list is locked by the same thread. */ + static unsigned int atfork_recursive_cntr; + +-/* The following two functions are registered via thread_atfork() to +- make sure that the mutexes remain in a consistent state in the +- fork()ed version of a thread. Also adapt the malloc and free hooks +- temporarily, because the `atfork' handler mechanism may use +- malloc/free internally (e.g. in LinuxThreads). */ ++/* The following three functions are called around fork from a ++ multi-threaded process. We do not use the general fork handler ++ mechanism to make sure that our handlers are the last ones being ++ called, so that other fork handlers can use the malloc ++ subsystem. */ + +-static void +-ptmalloc_lock_all (void) ++void ++__malloc_fork_lock_parent (void) + { + mstate ar_ptr; + +@@ -220,7 +216,7 @@ ptmalloc_lock_all (void) + return; + + /* We do not acquire free_list_lock here because we completely +- reconstruct free_list in ptmalloc_unlock_all2. */ ++ reconstruct free_list in __malloc_fork_unlock_child. */ + + if (mutex_trylock (&list_lock)) + { +@@ -245,7 +241,7 @@ ptmalloc_lock_all (void) + __free_hook = free_atfork; + /* Only the current thread may perform malloc/free calls now. + save_arena will be reattached to the current thread, in +- ptmalloc_lock_all, so save_arena->attached_threads is not ++ __malloc_fork_lock_parent, so save_arena->attached_threads is not + updated. */ + save_arena = thread_arena; + thread_arena = ATFORK_ARENA_PTR; +@@ -253,8 +249,8 @@ out: + ++atfork_recursive_cntr; + } + +-static void +-ptmalloc_unlock_all (void) ++void ++__malloc_fork_unlock_parent (void) + { + mstate ar_ptr; + +@@ -265,8 +261,8 @@ ptmalloc_unlock_all (void) + return; + + /* Replace ATFORK_ARENA_PTR with save_arena. +- save_arena->attached_threads was not changed in ptmalloc_lock_all +- and is still correct. */ ++ save_arena->attached_threads was not changed in ++ __malloc_fork_lock_parent and is still correct. */ + thread_arena = save_arena; + __malloc_hook = save_malloc_hook; + __free_hook = save_free_hook; +@@ -280,15 +276,8 @@ ptmalloc_unlock_all (void) + (void) mutex_unlock (&list_lock); + } + +-# ifdef __linux__ +- +-/* In NPTL, unlocking a mutex in the child process after a +- fork() is currently unsafe, whereas re-initializing it is safe and +- does not leak resources. Therefore, a special atfork handler is +- installed for the child. */ +- +-static void +-ptmalloc_unlock_all2 (void) ++void ++__malloc_fork_unlock_child (void) + { + mstate ar_ptr; + +@@ -324,11 +313,6 @@ ptmalloc_unlock_all2 (void) + atfork_recursive_cntr = 0; + } + +-# else +- +-# define ptmalloc_unlock_all2 ptmalloc_unlock_all +-# endif +- + /* Initialization routine. */ + #include + extern char **_environ; +@@ -397,7 +381,6 @@ ptmalloc_init (void) + #endif + + thread_arena = &main_arena; +- thread_atfork (ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2); + const char *s = NULL; + if (__glibc_likely (_environ != NULL)) + { +@@ -472,14 +455,6 @@ ptmalloc_init (void) + __malloc_initialized = 1; + } + +-/* There are platforms (e.g. Hurd) with a link-time hook mechanism. */ +-#ifdef thread_atfork_static +-thread_atfork_static (ptmalloc_lock_all, ptmalloc_unlock_all, \ +- ptmalloc_unlock_all2) +-#endif +- +- +- + /* Managing heaps and arenas (for concurrent threads) */ + + #if MALLOC_DEBUG > 1 +@@ -828,7 +803,8 @@ _int_new_arena (size_t size) + limit is reached). At this point, some arena has to be attached + to two threads. We could acquire the arena lock before list_lock + to make it less likely that reused_arena picks this new arena, +- but this could result in a deadlock with ptmalloc_lock_all. */ ++ but this could result in a deadlock with ++ __malloc_fork_lock_parent. */ + + (void) mutex_lock (&a->mutex); + +Index: glibc-2.23/malloc/malloc-internal.h +=================================================================== +--- /dev/null ++++ glibc-2.23/malloc/malloc-internal.h +@@ -0,0 +1,32 @@ ++/* Internal declarations for malloc, for use within libc. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++#ifndef _MALLOC_PRIVATE_H ++#define _MALLOC_PRIVATE_H ++ ++/* Called in the parent process before a fork. */ ++void __malloc_fork_lock_parent (void) internal_function attribute_hidden; ++ ++/* Called in the parent process after a fork. */ ++void __malloc_fork_unlock_parent (void) internal_function attribute_hidden; ++ ++/* Called in the child process after a fork. */ ++void __malloc_fork_unlock_child (void) internal_function attribute_hidden; ++ ++ ++#endif /* _MALLOC_PRIVATE_H */ +Index: glibc-2.23/malloc/malloc.c +=================================================================== +--- glibc-2.23.orig/malloc/malloc.c ++++ glibc-2.23/malloc/malloc.c +@@ -244,6 +244,7 @@ + /* For ALIGN_UP et. al. */ + #include + ++#include + + /* + Debugging: +Index: glibc-2.23/malloc/tst-malloc-fork-deadlock.c +=================================================================== +--- /dev/null ++++ glibc-2.23/malloc/tst-malloc-fork-deadlock.c +@@ -0,0 +1,220 @@ ++/* Test concurrent fork, getline, and fflush (NULL). ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int do_test (void); ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" ++ ++enum { ++ /* Number of threads which call fork. */ ++ fork_thread_count = 4, ++ /* Number of threads which call getline (and, indirectly, ++ malloc). */ ++ read_thread_count = 8, ++}; ++ ++static bool termination_requested; ++ ++static void * ++fork_thread_function (void *closure) ++{ ++ while (!__atomic_load_n (&termination_requested, __ATOMIC_RELAXED)) ++ { ++ pid_t pid = fork (); ++ if (pid < 0) ++ { ++ printf ("error: fork: %m\n"); ++ abort (); ++ } ++ else if (pid == 0) ++ _exit (17); ++ ++ int status; ++ if (waitpid (pid, &status, 0) < 0) ++ { ++ printf ("error: waitpid: %m\n"); ++ abort (); ++ } ++ if (!WIFEXITED (status) || WEXITSTATUS (status) != 17) ++ { ++ printf ("error: waitpid returned invalid status: %d\n", status); ++ abort (); ++ } ++ } ++ return NULL; ++} ++ ++static char *file_to_read; ++ ++static void * ++read_thread_function (void *closure) ++{ ++ FILE *f = fopen (file_to_read, "r"); ++ if (f == NULL) ++ { ++ printf ("error: fopen (%s): %m\n", file_to_read); ++ abort (); ++ } ++ ++ while (!__atomic_load_n (&termination_requested, __ATOMIC_RELAXED)) ++ { ++ rewind (f); ++ char *line = NULL; ++ size_t line_allocated = 0; ++ ssize_t ret = getline (&line, &line_allocated, f); ++ if (ret < 0) ++ { ++ printf ("error: getline: %m\n"); ++ abort (); ++ } ++ free (line); ++ } ++ fclose (f); ++ ++ return NULL; ++} ++ ++static void * ++flushall_thread_function (void *closure) ++{ ++ while (!__atomic_load_n (&termination_requested, __ATOMIC_RELAXED)) ++ if (fflush (NULL) != 0) ++ { ++ printf ("error: fflush (NULL): %m\n"); ++ abort (); ++ } ++ return NULL; ++} ++ ++static void ++create_threads (pthread_t *threads, size_t count, void *(*func) (void *)) ++{ ++ for (size_t i = 0; i < count; ++i) ++ { ++ int ret = pthread_create (threads + i, NULL, func, NULL); ++ if (ret != 0) ++ { ++ errno = ret; ++ printf ("error: pthread_create: %m\n"); ++ abort (); ++ } ++ } ++} ++ ++static void ++join_threads (pthread_t *threads, size_t count) ++{ ++ for (size_t i = 0; i < count; ++i) ++ { ++ int ret = pthread_join (threads[i], NULL); ++ if (ret != 0) ++ { ++ errno = ret; ++ printf ("error: pthread_join: %m\n"); ++ abort (); ++ } ++ } ++} ++ ++/* Create a file which consists of a single long line, and assigns ++ file_to_read. The hope is that this triggers an allocation in ++ getline which needs a lock. */ ++static void ++create_file_with_large_line (void) ++{ ++ int fd = create_temp_file ("bug19431-large-line", &file_to_read); ++ if (fd < 0) ++ { ++ printf ("error: create_temp_file: %m\n"); ++ abort (); ++ } ++ FILE *f = fdopen (fd, "w+"); ++ if (f == NULL) ++ { ++ printf ("error: fdopen: %m\n"); ++ abort (); ++ } ++ for (int i = 0; i < 50000; ++i) ++ fputc ('x', f); ++ fputc ('\n', f); ++ if (ferror (f)) ++ { ++ printf ("error: fputc: %m\n"); ++ abort (); ++ } ++ if (fclose (f) != 0) ++ { ++ printf ("error: fclose: %m\n"); ++ abort (); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ /* Make sure that we do not exceed the arena limit with the number ++ of threads we configured. */ ++ if (mallopt (M_ARENA_MAX, 400) == 0) ++ { ++ printf ("error: mallopt (M_ARENA_MAX) failed\n"); ++ return 1; ++ } ++ ++ /* Leave some room for shutting down all threads gracefully. */ ++ int timeout = 3; ++ if (timeout > TIMEOUT) ++ timeout = TIMEOUT - 1; ++ ++ create_file_with_large_line (); ++ ++ pthread_t fork_threads[fork_thread_count]; ++ create_threads (fork_threads, fork_thread_count, fork_thread_function); ++ pthread_t read_threads[read_thread_count]; ++ create_threads (read_threads, read_thread_count, read_thread_function); ++ pthread_t flushall_threads[1]; ++ create_threads (flushall_threads, 1, flushall_thread_function); ++ ++ struct timespec ts = {timeout, 0}; ++ if (nanosleep (&ts, NULL)) ++ { ++ printf ("error: error: nanosleep: %m\n"); ++ abort (); ++ } ++ ++ __atomic_store_n (&termination_requested, true, __ATOMIC_RELAXED); ++ ++ join_threads (flushall_threads, 1); ++ join_threads (read_threads, read_thread_count); ++ join_threads (fork_threads, fork_thread_count); ++ ++ free (file_to_read); ++ ++ return 0; ++} +Index: glibc-2.23/manual/memory.texi +=================================================================== +--- glibc-2.23.orig/manual/memory.texi ++++ glibc-2.23/manual/memory.texi +@@ -1051,14 +1051,6 @@ systems that do not support @w{ISO C11}. + @c _dl_addr_inside_object ok + @c determine_info ok + @c __rtld_lock_unlock_recursive (dl_load_lock) @aculock +-@c thread_atfork @asulock @aculock @acsfd @acsmem +-@c __register_atfork @asulock @aculock @acsfd @acsmem +-@c lll_lock (__fork_lock) @asulock @aculock +-@c fork_handler_alloc @asulock @aculock @acsfd @acsmem +-@c calloc dup @asulock @aculock @acsfd @acsmem +-@c __linkin_atfork ok +-@c catomic_compare_and_exchange_bool_acq ok +-@c lll_unlock (__fork_lock) @aculock + @c *_environ @mtsenv + @c next_env_entry ok + @c strcspn dup ok +Index: glibc-2.23/sysdeps/mach/hurd/fork.c +=================================================================== +--- glibc-2.23.orig/sysdeps/mach/hurd/fork.c ++++ glibc-2.23/sysdeps/mach/hurd/fork.c +@@ -26,6 +26,7 @@ + #include + #include "hurdmalloc.h" /* XXX */ + #include ++#include + + #undef __fork + +@@ -107,6 +108,12 @@ __fork (void) + /* Run things that prepare for forking before we create the task. */ + RUN_HOOK (_hurd_fork_prepare_hook, ()); + ++ /* Acquire malloc locks. This needs to come last because fork ++ handlers may use malloc, and the libio list lock has an ++ indirect malloc dependency as well (via the getdelim ++ function). */ ++ __malloc_fork_lock_parent (); ++ + /* Lock things that want to be locked before we fork. */ + { + void *const *p; +@@ -604,6 +611,9 @@ __fork (void) + nthreads * sizeof (*threads)); + } + ++ /* Release malloc locks. */ ++ __malloc_fork_unlock_parent (); ++ + /* Run things that want to run in the parent to restore it to + normality. Usually prepare hooks and parent hooks are + symmetrical: the prepare hook arrests state in some way for the +@@ -655,6 +665,9 @@ __fork (void) + /* Forking clears the trace flag. */ + __sigemptyset (&_hurdsig_traced); + ++ /* Release malloc locks. */ ++ __malloc_fork_unlock_child (); ++ + /* Run things that want to run in the child task to set up. */ + RUN_HOOK (_hurd_fork_child_hook, ()); + +Index: glibc-2.23/sysdeps/nptl/fork.c +=================================================================== +--- glibc-2.23.orig/sysdeps/nptl/fork.c ++++ glibc-2.23/sysdeps/nptl/fork.c +@@ -31,7 +31,7 @@ + #include + #include + #include +- ++#include + + static void + fresetlockfiles (void) +@@ -111,6 +111,11 @@ __libc_fork (void) + + _IO_list_lock (); + ++ /* Acquire malloc locks. This needs to come last because fork ++ handlers may use malloc, and the libio list lock has an indirect ++ malloc dependency as well (via the getdelim function). */ ++ __malloc_fork_lock_parent (); ++ + #ifndef NDEBUG + pid_t ppid = THREAD_GETMEM (THREAD_SELF, tid); + #endif +@@ -168,6 +173,9 @@ __libc_fork (void) + # endif + #endif + ++ /* Release malloc locks. */ ++ __malloc_fork_unlock_child (); ++ + /* Reset the file list. These are recursive mutexes. */ + fresetlockfiles (); + +@@ -209,6 +217,9 @@ __libc_fork (void) + /* Restore the PID value. */ + THREAD_SETMEM (THREAD_SELF, pid, parentpid); + ++ /* Release malloc locks, parent process variant. */ ++ __malloc_fork_unlock_parent (); ++ + /* We execute this even if the 'fork' call failed. */ + _IO_list_unlock (); + diff --git a/0036-malloc-Remove-malloc-hooks-from-fork-handler.patch b/0036-malloc-Remove-malloc-hooks-from-fork-handler.patch new file mode 100644 index 0000000..7909a39 --- /dev/null +++ b/0036-malloc-Remove-malloc-hooks-from-fork-handler.patch @@ -0,0 +1,216 @@ +2016-04-14 Florian Weimer + + Remove malloc hooks from fork handler. They are no longer needed + because malloc runs right before fork, and no malloc calls from + other fork handlers are not possible anymore. + * malloc/malloc.c (malloc_atfork, free_atfork): Remove + declarations. + * malloc/arena.c (save_malloc_hook, save_free_hook, save_arena) + (ATFORK_ARENA_PTR, malloc_atfork, free_atfork) + (atfork_recursive_cntr): Remove. + (__malloc_fork_lock_parent): Do not override malloc hooks and + thread_arena. + (__malloc_fork_unlock_parent): Do not restore malloc hooks and + thread_arena. + (__malloc_fork_unlock_child): Do not restore malloc hooks. Use + thread_arena instead of save_arena. + +Index: glibc-2.23/malloc/arena.c +=================================================================== +--- glibc-2.23.orig/malloc/arena.c ++++ glibc-2.23/malloc/arena.c +@@ -132,75 +132,6 @@ int __malloc_initialized = -1; + + /* atfork support. */ + +-static void *(*save_malloc_hook)(size_t __size, const void *); +-static void (*save_free_hook) (void *__ptr, const void *); +-static void *save_arena; +- +-/* Magic value for the thread-specific arena pointer when +- malloc_atfork() is in use. */ +- +-# define ATFORK_ARENA_PTR ((void *) -1) +- +-/* The following hooks are used while the `atfork' handling mechanism +- is active. */ +- +-static void * +-malloc_atfork (size_t sz, const void *caller) +-{ +- void *victim; +- +- if (thread_arena == ATFORK_ARENA_PTR) +- { +- /* We are the only thread that may allocate at all. */ +- if (save_malloc_hook != malloc_check) +- { +- return _int_malloc (&main_arena, sz); +- } +- else +- { +- if (top_check () < 0) +- return 0; +- +- victim = _int_malloc (&main_arena, sz + 1); +- return mem2mem_check (victim, sz); +- } +- } +- else +- { +- /* Suspend the thread until the `atfork' handlers have completed. +- By that time, the hooks will have been reset as well, so that +- mALLOc() can be used again. */ +- (void) mutex_lock (&list_lock); +- (void) mutex_unlock (&list_lock); +- return __libc_malloc (sz); +- } +-} +- +-static void +-free_atfork (void *mem, const void *caller) +-{ +- mstate ar_ptr; +- mchunkptr p; /* chunk corresponding to mem */ +- +- if (mem == 0) /* free(0) has no effect */ +- return; +- +- p = mem2chunk (mem); /* do not bother to replicate free_check here */ +- +- if (chunk_is_mmapped (p)) /* release mmapped memory. */ +- { +- munmap_chunk (p); +- return; +- } +- +- ar_ptr = arena_for_chunk (p); +- _int_free (ar_ptr, p, thread_arena == ATFORK_ARENA_PTR); +-} +- +- +-/* Counter for number of times the list is locked by the same thread. */ +-static unsigned int atfork_recursive_cntr; +- + /* The following three functions are called around fork from a + multi-threaded process. We do not use the general fork handler + mechanism to make sure that our handlers are the last ones being +@@ -210,63 +141,30 @@ static unsigned int atfork_recursive_cnt + void + __malloc_fork_lock_parent (void) + { +- mstate ar_ptr; +- + if (__malloc_initialized < 1) + return; + + /* We do not acquire free_list_lock here because we completely + reconstruct free_list in __malloc_fork_unlock_child. */ + +- if (mutex_trylock (&list_lock)) +- { +- if (thread_arena == ATFORK_ARENA_PTR) +- /* This is the same thread which already locks the global list. +- Just bump the counter. */ +- goto out; ++ (void) mutex_lock (&list_lock); + +- /* This thread has to wait its turn. */ +- (void) mutex_lock (&list_lock); +- } +- for (ar_ptr = &main_arena;; ) ++ for (mstate ar_ptr = &main_arena;; ) + { + (void) mutex_lock (&ar_ptr->mutex); + ar_ptr = ar_ptr->next; + if (ar_ptr == &main_arena) + break; + } +- save_malloc_hook = __malloc_hook; +- save_free_hook = __free_hook; +- __malloc_hook = malloc_atfork; +- __free_hook = free_atfork; +- /* Only the current thread may perform malloc/free calls now. +- save_arena will be reattached to the current thread, in +- __malloc_fork_lock_parent, so save_arena->attached_threads is not +- updated. */ +- save_arena = thread_arena; +- thread_arena = ATFORK_ARENA_PTR; +-out: +- ++atfork_recursive_cntr; + } + + void + __malloc_fork_unlock_parent (void) + { +- mstate ar_ptr; +- + if (__malloc_initialized < 1) + return; + +- if (--atfork_recursive_cntr != 0) +- return; +- +- /* Replace ATFORK_ARENA_PTR with save_arena. +- save_arena->attached_threads was not changed in +- __malloc_fork_lock_parent and is still correct. */ +- thread_arena = save_arena; +- __malloc_hook = save_malloc_hook; +- __free_hook = save_free_hook; +- for (ar_ptr = &main_arena;; ) ++ for (mstate ar_ptr = &main_arena;; ) + { + (void) mutex_unlock (&ar_ptr->mutex); + ar_ptr = ar_ptr->next; +@@ -279,25 +177,19 @@ __malloc_fork_unlock_parent (void) + void + __malloc_fork_unlock_child (void) + { +- mstate ar_ptr; +- + if (__malloc_initialized < 1) + return; + +- thread_arena = save_arena; +- __malloc_hook = save_malloc_hook; +- __free_hook = save_free_hook; +- +- /* Push all arenas to the free list, except save_arena, which is ++ /* Push all arenas to the free list, except thread_arena, which is + attached to the current thread. */ + mutex_init (&free_list_lock); +- if (save_arena != NULL) +- ((mstate) save_arena)->attached_threads = 1; ++ if (thread_arena != NULL) ++ thread_arena->attached_threads = 1; + free_list = NULL; +- for (ar_ptr = &main_arena;; ) ++ for (mstate ar_ptr = &main_arena;; ) + { + mutex_init (&ar_ptr->mutex); +- if (ar_ptr != save_arena) ++ if (ar_ptr != thread_arena) + { + /* This arena is no longer attached to any thread. */ + ar_ptr->attached_threads = 0; +@@ -310,7 +202,6 @@ __malloc_fork_unlock_child (void) + } + + mutex_init (&list_lock); +- atfork_recursive_cntr = 0; + } + + /* Initialization routine. */ +Index: glibc-2.23/malloc/malloc.c +=================================================================== +--- glibc-2.23.orig/malloc/malloc.c ++++ glibc-2.23/malloc/malloc.c +@@ -1075,8 +1075,6 @@ static void* realloc_check(void* oldme + const void *caller); + static void* memalign_check(size_t alignment, size_t bytes, + const void *caller); +-static void* malloc_atfork(size_t sz, const void *caller); +-static void free_atfork(void* mem, const void *caller); + + /* ------------------ MMAP support ------------------ */ + diff --git a/0037-malloc-Add-missing-internal_function-attributes-on-f.patch b/0037-malloc-Add-missing-internal_function-attributes-on-f.patch new file mode 100644 index 0000000..a63f941 --- /dev/null +++ b/0037-malloc-Add-missing-internal_function-attributes-on-f.patch @@ -0,0 +1,34 @@ +2016-04-14 Florian Weimer + + * malloc/arena.c (__malloc_fork_lock_parent) + (__malloc_fork_unlock_parent, __malloc_fork_unlock_child): Add + internal_function attribute. + +Index: glibc-2.23/malloc/arena.c +=================================================================== +--- glibc-2.23.orig/malloc/arena.c ++++ glibc-2.23/malloc/arena.c +@@ -139,6 +139,7 @@ int __malloc_initialized = -1; + subsystem. */ + + void ++internal_function + __malloc_fork_lock_parent (void) + { + if (__malloc_initialized < 1) +@@ -159,6 +160,7 @@ __malloc_fork_lock_parent (void) + } + + void ++internal_function + __malloc_fork_unlock_parent (void) + { + if (__malloc_initialized < 1) +@@ -175,6 +177,7 @@ __malloc_fork_unlock_parent (void) + } + + void ++internal_function + __malloc_fork_unlock_child (void) + { + if (__malloc_initialized < 1) diff --git a/0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch b/0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch new file mode 100644 index 0000000..0e835ba --- /dev/null +++ b/0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch @@ -0,0 +1,24 @@ +2016-04-11 Florian Weimer + + [BZ #19865] + * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Restore + original buffer before retry. + +Index: glibc-2.23/resolv/nss_dns/dns-canon.c +=================================================================== +--- glibc-2.23.orig/resolv/nss_dns/dns-canon.c ++++ glibc-2.23/resolv/nss_dns/dns-canon.c +@@ -144,6 +144,13 @@ _nss_dns_getcanonname_r (const char *nam + ptr += sizeof (uint16_t) + __ns_get16 (ptr); + } + } ++ ++ /* Restore original buffer before retry. */ ++ if (ansp.ptr != buf) ++ { ++ free (ansp.ptr); ++ ansp.ptr = buf; ++ } + } + + out: diff --git a/0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch b/0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch new file mode 100644 index 0000000..5b620d4 --- /dev/null +++ b/0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch @@ -0,0 +1,77 @@ +2016-04-27 Florian Weimer + + [BZ #19830] + * resolv/nss_dns/dns-host.c (getanswer_r): Check RDATA length. + (gaih_getanswer_slice): Likewise. + * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Likewise. + Also check for availability of RR metadata. + +Index: glibc-2.23/resolv/nss_dns/dns-canon.c +=================================================================== +--- glibc-2.23.orig/resolv/nss_dns/dns-canon.c ++++ glibc-2.23/resolv/nss_dns/dns-canon.c +@@ -103,6 +103,11 @@ _nss_dns_getcanonname_r (const char *nam + + ptr += s; + ++ /* Check that there are enough bytes for the RR ++ metadata. */ ++ if (endptr - ptr < 10) ++ goto unavail; ++ + /* Check whether type and class match. */ + uint_fast16_t type; + NS_GET16 (type, ptr); +@@ -137,11 +142,16 @@ _nss_dns_getcanonname_r (const char *nam + if (__ns_get16 (ptr) != ns_c_in) + goto unavail; + +- /* Also skip over the TTL. */ ++ /* Also skip over class and TTL. */ + ptr += sizeof (uint16_t) + sizeof (uint32_t); + +- /* Skip over the data length and data. */ +- ptr += sizeof (uint16_t) + __ns_get16 (ptr); ++ /* Skip over RDATA length and RDATA itself. */ ++ uint16_t rdatalen = __ns_get16 (ptr); ++ ptr += sizeof (uint16_t); ++ /* Not enough room for RDATA. */ ++ if (endptr - ptr < rdatalen) ++ goto unavail; ++ ptr += rdatalen; + } + } + +Index: glibc-2.23/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.23.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.23/resolv/nss_dns/dns-host.c +@@ -751,6 +751,14 @@ getanswer_r (const querybuf *answer, int + cp += INT32SZ; /* TTL */ + n = __ns_get16 (cp); + cp += INT16SZ; /* len */ ++ ++ if (end_of_message - cp < n) ++ { ++ /* RDATA extends beyond the end of the packet. */ ++ ++had_error; ++ continue; ++ } ++ + if (__glibc_unlikely (class != C_IN)) + { + /* XXX - debug? syslog? */ +@@ -1077,6 +1085,13 @@ gaih_getanswer_slice (const querybuf *an + n = __ns_get16 (cp); + cp += INT16SZ; /* len */ + ++ if (end_of_message - cp < n) ++ { ++ /* RDATA extends beyond the end of the packet. */ ++ ++had_error; ++ continue; ++ } ++ + if (class != C_IN) + { + cp += n; diff --git a/0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch b/0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch new file mode 100644 index 0000000..960a37a --- /dev/null +++ b/0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch @@ -0,0 +1,150 @@ +2016-04-27 Florian Weimer + + [BZ #19862] + * resolv/nss_dns/dns-host.c (AskedForGot): Remove. + (getanswer_r): Do not call syslog. + (gaih_getanswer_slice): Likewise. + * resolv/gethnamaddr.c (AskedForGot): Remove. + (getanswer): Do not call syslog. + (gethostbyaddr): Likewise. + +Index: glibc-2.23/resolv/gethnamaddr.c +=================================================================== +--- glibc-2.23.orig/resolv/gethnamaddr.c ++++ glibc-2.23/resolv/gethnamaddr.c +@@ -70,7 +70,6 @@ static char sccsid[] = "@(#)gethostnamad + #include + #include + #include +-#include + + #define RESOLVSORT + +@@ -100,9 +99,6 @@ static char sccsid[] = "@(#)gethostnamad + #define MAXALIASES 35 + #define MAXADDRS 35 + +-static const char AskedForGot[] = +- "gethostby*.getanswer: asked for \"%s\", got \"%s\""; +- + static char *h_addr_ptrs[MAXADDRS + 1]; + + static struct hostent host; +@@ -335,20 +331,12 @@ getanswer (const querybuf *answer, int a + * uses many different types in responses that do not + * match QTYPE. + */ +- if ((_res.options & RES_USE_DNSSEC) == 0) { +- syslog(LOG_NOTICE|LOG_AUTH, +- "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"", +- qname, p_class(C_IN), p_type(qtype), +- p_type(type)); +- } + cp += n; + continue; /* XXX - had_error++ ? */ + } + switch (type) { + case T_PTR: + if (strcasecmp(tname, bp) != 0) { +- syslog(LOG_NOTICE|LOG_AUTH, +- AskedForGot, qname, bp); + cp += n; + continue; /* XXX - had_error++ ? */ + } +@@ -397,8 +385,6 @@ getanswer (const querybuf *answer, int a + case T_A: + case T_AAAA: + if (strcasecmp(host.h_name, bp) != 0) { +- syslog(LOG_NOTICE|LOG_AUTH, +- AskedForGot, host.h_name, bp); + cp += n; + continue; /* XXX - had_error++ ? */ + } +@@ -740,9 +726,6 @@ gethostbyaddr (const void *addr, socklen + _res.options &= ~RES_DNSRCH; + _res.options |= RES_DEFNAMES; + if (!(rhp = gethostbyname(hname2))) { +- syslog(LOG_NOTICE|LOG_AUTH, +- "gethostbyaddr: No A record for %s (verifying [%s])", +- hname2, inet_ntoa(*((struct in_addr *)addr))); + _res.options = old_options; + __set_h_errno (HOST_NOT_FOUND); + return (NULL); +@@ -752,9 +735,6 @@ gethostbyaddr (const void *addr, socklen + if (!memcmp(*haddr, addr, INADDRSZ)) + break; + if (!*haddr) { +- syslog(LOG_NOTICE|LOG_AUTH, +- "gethostbyaddr: A record of %s != PTR record [%s]", +- hname2, inet_ntoa(*((struct in_addr *)addr))); + __set_h_errno (HOST_NOT_FOUND); + return (NULL); + } +Index: glibc-2.23/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.23.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.23/resolv/nss_dns/dns-host.c +@@ -78,7 +78,6 @@ + #include + #include + #include +-#include + + #include "nsswitch.h" + +@@ -99,10 +98,6 @@ + #endif + #define MAXHOSTNAMELEN 256 + +-static const char AskedForGot[] = "\ +-gethostby*.getanswer: asked for \"%s\", got \"%s\""; +- +- + /* We need this time later. */ + typedef union querybuf + { +@@ -838,14 +833,6 @@ getanswer_r (const querybuf *answer, int + have_to_map = 1; + else if (__glibc_unlikely (type != qtype)) + { +- /* Log a low priority message if we get an unexpected record, but +- skip it if we are using DNSSEC since it uses many different types +- in responses that do not match QTYPE. */ +- if ((_res.options & RES_USE_DNSSEC) == 0) +- syslog (LOG_NOTICE | LOG_AUTH, +- "gethostby*.getanswer: asked for \"%s %s %s\", " +- "got type \"%s\"", +- qname, p_class (C_IN), p_type (qtype), p_type (type)); + cp += n; + continue; /* XXX - had_error++ ? */ + } +@@ -855,7 +842,6 @@ getanswer_r (const querybuf *answer, int + case T_PTR: + if (__glibc_unlikely (strcasecmp (tname, bp) != 0)) + { +- syslog (LOG_NOTICE | LOG_AUTH, AskedForGot, qname, bp); + cp += n; + continue; /* XXX - had_error++ ? */ + } +@@ -899,7 +885,6 @@ getanswer_r (const querybuf *answer, int + case T_AAAA: + if (__builtin_expect (strcasecmp (result->h_name, bp), 0) != 0) + { +- syslog (LOG_NOTICE | LOG_AUTH, AskedForGot, result->h_name, bp); + cp += n; + continue; /* XXX - had_error++ ? */ + } +@@ -1152,13 +1137,6 @@ gaih_getanswer_slice (const querybuf *an + || __builtin_expect (type == T_DNAME, 0)) + #endif + { +- /* We don't support DNSSEC yet. For now, ignore the record +- and send a low priority message to syslog. +- +- We also don't expect T_PTR or T_DNAME messages. */ +- syslog (LOG_DEBUG | LOG_AUTH, +- "getaddrinfo*.gaih_getanswer: got type \"%s\"", +- p_type (type)); + cp += n; + continue; + } diff --git a/0041-nss_dns-Check-address-length-before-creating-addrinf.patch b/0041-nss_dns-Check-address-length-before-creating-addrinf.patch new file mode 100644 index 0000000..8a537fc --- /dev/null +++ b/0041-nss_dns-Check-address-length-before-creating-addrinf.patch @@ -0,0 +1,104 @@ +2016-04-27 Florian Weimer + + [BZ #19831] + * resolv/nss_dns/dns-host.c (rrtype_to_rdata_length): New + function. + (getanswer_r): Check RDATA length against RRTYPE and QTYPE. + (gaih_getanswer_slice): Check RDATA length against RRTYPE. + +Index: glibc-2.23/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.23.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.23/resolv/nss_dns/dns-host.c +@@ -134,6 +134,22 @@ extern enum nss_status _nss_dns_gethostb + char **canonp); + hidden_proto (_nss_dns_gethostbyname3_r) + ++/* Return the expected RDATA length for an address record type (A or ++ AAAA). */ ++static int ++rrtype_to_rdata_length (int type) ++{ ++ switch (type) ++ { ++ case T_A: ++ return INADDRSZ; ++ case T_AAAA: ++ return IN6ADDRSZ; ++ default: ++ return -1; ++ } ++} ++ + enum nss_status + _nss_dns_gethostbyname3_r (const char *name, int af, struct hostent *result, + char *buffer, size_t buflen, int *errnop, +@@ -888,6 +904,15 @@ getanswer_r (const querybuf *answer, int + cp += n; + continue; /* XXX - had_error++ ? */ + } ++ ++ /* Stop parsing at a record whose length is incorrect. */ ++ if (n != rrtype_to_rdata_length (type)) ++ { ++ ++had_error; ++ break; ++ } ++ ++ /* Skip records of the wrong type. */ + if (n != result->h_length) + { + cp += n; +@@ -1124,25 +1149,25 @@ gaih_getanswer_slice (const querybuf *an + } + continue; + } +-#if 1 +- // We should not see any types other than those explicitly listed +- // below. Some types sent by server seem missing, though. Just +- // collect the data for now. +- if (__glibc_unlikely (type != T_A && type != T_AAAA)) +-#else +- if (__builtin_expect (type == T_SIG, 0) +- || __builtin_expect (type == T_KEY, 0) +- || __builtin_expect (type == T_NXT, 0) +- || __builtin_expect (type == T_PTR, 0) +- || __builtin_expect (type == T_DNAME, 0)) +-#endif ++ ++ /* Stop parsing if we encounter a record with incorrect RDATA ++ length. */ ++ if (type == T_A || type == T_AAAA) + { ++ if (n != rrtype_to_rdata_length (type)) ++ { ++ ++had_error; ++ continue; ++ } ++ } ++ else ++ { ++ /* Skip unknown records. */ + cp += n; + continue; + } +- if (type != T_A && type != T_AAAA) +- abort (); + ++ assert (type == T_A || type == T_AAAA); + if (*pat == NULL) + { + uintptr_t pad = (-(uintptr_t) buffer +@@ -1176,12 +1201,6 @@ gaih_getanswer_slice (const querybuf *an + } + + (*pat)->family = type == T_A ? AF_INET : AF_INET6; +- if (__builtin_expect ((type == T_A && n != INADDRSZ) +- || (type == T_AAAA && n != IN6ADDRSZ), 0)) +- { +- ++had_error; +- continue; +- } + memcpy ((*pat)->addr, cp, n); + cp += n; + (*pat)->scopeid = 0; diff --git a/0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch b/0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch new file mode 100644 index 0000000..af28b03 --- /dev/null +++ b/0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch @@ -0,0 +1,55 @@ +2016-03-25 Florian Weimer + + [BZ #19868] + * resolv/nss_dns/dns-network.c (getanswer_r): Implement additional + DNS packet syntax checks (which were not needed before). Skip + over non-PTR records. + +Index: glibc-2.23/resolv/nss_dns/dns-network.c +=================================================================== +--- glibc-2.23.orig/resolv/nss_dns/dns-network.c ++++ glibc-2.23/resolv/nss_dns/dns-network.c +@@ -345,10 +345,23 @@ getanswer_r (const querybuf *answer, int + if (n < 0 || res_dnok (bp) == 0) + break; + cp += n; ++ ++ if (end_of_message - cp < 10) ++ { ++ __set_h_errno (NO_RECOVERY); ++ return NSS_STATUS_UNAVAIL; ++ } ++ + GETSHORT (type, cp); + GETSHORT (class, cp); + cp += INT32SZ; /* TTL */ +- GETSHORT (n, cp); ++ uint16_t rdatalen; ++ GETSHORT (rdatalen, cp); ++ if (end_of_message - cp < rdatalen) ++ { ++ __set_h_errno (NO_RECOVERY); ++ return NSS_STATUS_UNAVAIL; ++ } + + if (class == C_IN && type == T_PTR) + { +@@ -370,7 +383,7 @@ getanswer_r (const querybuf *answer, int + cp += n; + return NSS_STATUS_UNAVAIL; + } +- cp += n; ++ cp += rdatalen; + if (alias_pointer + 2 < &net_data->aliases[MAX_NR_ALIASES]) + { + *alias_pointer++ = bp; +@@ -381,6 +394,9 @@ getanswer_r (const querybuf *answer, int + ++have_answer; + } + } ++ else ++ /* Skip over unknown record data. */ ++ cp += rdatalen; + } + + if (have_answer) diff --git a/0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch b/0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch new file mode 100644 index 0000000..6a0be9f --- /dev/null +++ b/0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch @@ -0,0 +1,113 @@ +2016-04-27 Florian Weimer + + [BZ #19825] + * resolv/res_send.c (send_vc): Remove early *resplen2 + initialization. Set *resplen2 on socket error. Call + close_and_return_error for other errors. + +Index: glibc-2.23/resolv/res_send.c +=================================================================== +--- glibc-2.23.orig/resolv/res_send.c ++++ glibc-2.23/resolv/res_send.c +@@ -762,8 +762,6 @@ send_vc(res_state statp, + u_short len2; + u_char *cp; + +- if (resplen2 != NULL) +- *resplen2 = 0; + connreset = 0; + same_ns: + truncating = 0; +@@ -789,6 +787,8 @@ send_vc(res_state statp, + if (statp->_vcsock < 0) { + *terrno = errno; + Perror(statp, stderr, "socket(vc)", errno); ++ if (resplen2 != NULL) ++ *resplen2 = 0; + return (-1); + } + __set_errno (0); +@@ -798,8 +798,7 @@ send_vc(res_state statp, + : sizeof (struct sockaddr_in6)) < 0) { + *terrno = errno; + Aerror(statp, stderr, "connect/vc", errno, nsap); +- __res_iclose(statp, false); +- return (0); ++ return close_and_return_error (statp, resplen2); + } + statp->_flags |= RES_F_VC; + } +@@ -822,8 +821,7 @@ send_vc(res_state statp, + if (TEMP_FAILURE_RETRY (writev(statp->_vcsock, iov, niov)) != explen) { + *terrno = errno; + Perror(statp, stderr, "write failed", errno); +- __res_iclose(statp, false); +- return (0); ++ return close_and_return_error (statp, resplen2); + } + /* + * Receive length & response +@@ -845,7 +843,6 @@ send_vc(res_state statp, + if (n <= 0) { + *terrno = errno; + Perror(statp, stderr, "read failed", errno); +- __res_iclose(statp, false); + /* + * A long running process might get its TCP + * connection reset if the remote server was +@@ -855,11 +852,13 @@ send_vc(res_state statp, + * instead of failing. We only allow one reset + * per query to prevent looping. + */ +- if (*terrno == ECONNRESET && !connreset) { +- connreset = 1; +- goto same_ns; +- } +- return (0); ++ if (*terrno == ECONNRESET && !connreset) ++ { ++ __res_iclose (statp, false); ++ connreset = 1; ++ goto same_ns; ++ } ++ return close_and_return_error (statp, resplen2); + } + int rlen = ntohs (rlen16); + +@@ -891,11 +890,11 @@ send_vc(res_state statp, + /* Always allocate MAXPACKET, callers expect + this specific size. */ + u_char *newp = malloc (MAXPACKET); +- if (newp == NULL) { +- *terrno = ENOMEM; +- __res_iclose(statp, false); +- return (0); +- } ++ if (newp == NULL) ++ { ++ *terrno = ENOMEM; ++ return close_and_return_error (statp, resplen2); ++ } + *thisanssizp = MAXPACKET; + *thisansp = newp; + if (thisansp == ansp2) +@@ -922,8 +921,7 @@ send_vc(res_state statp, + Dprint(statp->options & RES_DEBUG, + (stdout, ";; undersized: %d\n", len)); + *terrno = EMSGSIZE; +- __res_iclose(statp, false); +- return (0); ++ return close_and_return_error (statp, resplen2); + } + + cp = *thisansp; +@@ -934,8 +932,7 @@ send_vc(res_state statp, + if (__glibc_unlikely (n <= 0)) { + *terrno = errno; + Perror(statp, stderr, "read(vc)", errno); +- __res_iclose(statp, false); +- return (0); ++ return close_and_return_error (statp, resplen2); + } + if (__glibc_unlikely (truncating)) { + /* diff --git a/0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch b/0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch new file mode 100644 index 0000000..4dd4632 --- /dev/null +++ b/0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch @@ -0,0 +1,274 @@ +2016-03-07 Florian Weimer + + [BZ #19269] + * sysdeps/x86_64/Makefile (tst-audit4): Depend on + tst-audit4-aux.o. + (tst-audit10): Depend on tst-audit10-aux.o. + (CFLAGS-tst-audit4-aux.c): Compile with AVX enabled. + (CFLAGS-tst-audit10-aux.c): Compile with AVX512 enabled. + * sysdeps/x86_64/tst-audit4.c (do_test): Call tst_audit4_aux + instead of inline AVX code. + * sysdeps/x86_64/tst-audit10.c (do_test): Call tst_audit10_aux + instead of inline AVX512 code. + * sysdeps/x86_64/tst-audit4-aux.c: New file + * sysdeps/x86_64/tst-audit10-aux.c: New file + +Index: glibc-2.23/sysdeps/x86_64/Makefile +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/Makefile ++++ glibc-2.23/sysdeps/x86_64/Makefile +@@ -60,7 +60,7 @@ $(objpfx)tst-audit3: $(objpfx)tst-auditm + $(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so + tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so + +-$(objpfx)tst-audit4: $(objpfx)tst-auditmod4a.so ++$(objpfx)tst-audit4: $(objpfx)tst-audit4-aux.o $(objpfx)tst-auditmod4a.so + $(objpfx)tst-audit4.out: $(objpfx)tst-auditmod4b.so + tst-audit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod4b.so + +@@ -77,12 +77,12 @@ $(objpfx)tst-audit7: $(objpfx)tst-auditm + $(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so + tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so + +-$(objpfx)tst-audit10: $(objpfx)tst-auditmod10a.so ++$(objpfx)tst-audit10: $(objpfx)tst-audit10-aux.o $(objpfx)tst-auditmod10a.so + $(objpfx)tst-audit10.out: $(objpfx)tst-auditmod10b.so + tst-audit10-ENV = LD_AUDIT=$(objpfx)tst-auditmod10b.so + + AVX-CFLAGS=-mavx -mno-vzeroupper +-CFLAGS-tst-audit4.c += $(AVX-CFLAGS) ++CFLAGS-tst-audit4-aux.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod4a.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod4b.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) +@@ -90,7 +90,7 @@ CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) + ifeq (yes,$(config-cflags-avx512)) + AVX512-CFLAGS = -mavx512f +-CFLAGS-tst-audit10.c += $(AVX512-CFLAGS) ++CFLAGS-tst-audit10-aux.c += $(AVX512-CFLAGS) + CFLAGS-tst-auditmod10a.c += $(AVX512-CFLAGS) + CFLAGS-tst-auditmod10b.c += $(AVX512-CFLAGS) + endif +Index: glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c +=================================================================== +--- /dev/null ++++ glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c +@@ -0,0 +1,41 @@ ++/* Test case for preserved AVX512 registers in dynamic linker, -mavx512f part. ++ Copyright (C) 2012-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, ++ __m512i, __m512i, __m512i, __m512i); ++ ++int ++tst_audit10_aux (void) ++{ ++#ifdef __AVX512F__ ++ __m512i zmm = _mm512_setzero_si512 (); ++ __m512i ret = audit_test (zmm, zmm, zmm, zmm, zmm, zmm, zmm, zmm); ++ ++ zmm = _mm512_set1_epi64 (0x12349876); ++ ++ if (memcmp (&zmm, &ret, sizeof (ret))) ++ abort (); ++ return 0; ++#else /* __AVX512F__ */ ++ return 77; ++#endif /* __AVX512F__ */ ++} +Index: glibc-2.23/sysdeps/x86_64/tst-audit10.c +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/tst-audit10.c ++++ glibc-2.23/sysdeps/x86_64/tst-audit10.c +@@ -1,4 +1,5 @@ +-/* Copyright (C) 2012-2016 Free Software Foundation, Inc. ++/* Test case for preserved AVX512 registers in dynamic linker. ++ Copyright (C) 2012-2016 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 +@@ -15,13 +16,9 @@ + License along with the GNU C Library; if not, see + . */ + +-/* Test case for x86-64 preserved registers in dynamic linker. */ +- +-#ifdef __AVX512F__ +-#include +-#include + #include +-#include ++ ++int tst_audit10_aux (void); + + static int + avx512_enabled (void) +@@ -42,32 +39,15 @@ avx512_enabled (void) + return (eax & 0xe6) == 0xe6; + } + +- +-extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, +- __m512i, __m512i, __m512i, __m512i); + static int + do_test (void) + { + /* Run AVX512 test only if AVX512 is supported. */ + if (avx512_enabled ()) +- { +- __m512i zmm = _mm512_setzero_si512 (); +- __m512i ret = audit_test (zmm, zmm, zmm, zmm, zmm, zmm, zmm, zmm); +- +- zmm = _mm512_set1_epi64 (0x12349876); +- +- if (memcmp (&zmm, &ret, sizeof (ret))) +- abort (); +- } +- return 0; +-} +-#else +-static int +-do_test (void) +-{ +- return 0; ++ return tst_audit10_aux (); ++ else ++ return 77; + } +-#endif + + #define TEST_FUNCTION do_test () + #include "../../test-skeleton.c" +Index: glibc-2.23/sysdeps/x86_64/tst-audit4-aux.c +=================================================================== +--- /dev/null ++++ glibc-2.23/sysdeps/x86_64/tst-audit4-aux.c +@@ -0,0 +1,39 @@ ++/* Test case for preserved AVX registers in dynamic linker, -mavx part. ++ Copyright (C) 2009-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i, ++ __m256i, __m256i, __m256i, __m256i); ++ ++int ++tst_audit4_aux (void) ++{ ++#ifdef __AVX__ ++ __m256i ymm = _mm256_setzero_si256 (); ++ __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm); ++ ymm = _mm256_set1_epi32 (0x12349876); ++ if (memcmp (&ymm, &ret, sizeof (ret))) ++ abort (); ++ return 0; ++#else /* __AVX__ */ ++ return 77; ++#endif /* __AVX__ */ ++} +Index: glibc-2.23/sysdeps/x86_64/tst-audit4.c +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/tst-audit4.c ++++ glibc-2.23/sysdeps/x86_64/tst-audit4.c +@@ -1,11 +1,24 @@ +-/* Test case for x86-64 preserved registers in dynamic linker. */ ++/* Test case for preserved AVX registers in dynamic linker. ++ Copyright (C) 2009-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ + +-#ifdef __AVX__ +-#include +-#include + #include +-#include + ++int tst_audit4_aux (void); + + static int + avx_enabled (void) +@@ -22,31 +35,15 @@ avx_enabled (void) + return (eax & 6) == 6; + } + +- +-extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i, +- __m256i, __m256i, __m256i, __m256i); + static int + do_test (void) + { + /* Run AVX test only if AVX is supported. */ + if (avx_enabled ()) +- { +- __m256i ymm = _mm256_setzero_si256 (); +- __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm); +- +- ymm = _mm256_set1_epi32 (0x12349876); +- if (memcmp (&ymm, &ret, sizeof (ret))) +- abort (); +- } +- return 0; +-} +-#else +-static int +-do_test (void) +-{ +- return 0; ++ return tst_audit4_aux (); ++ else ++ return 77; + } +-#endif + + #define TEST_FUNCTION do_test () + #include "../../test-skeleton.c" diff --git a/0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch b/0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch new file mode 100644 index 0000000..25d9ec6 --- /dev/null +++ b/0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch @@ -0,0 +1,39 @@ +2016-03-08 Roland McGrath + + * sysdeps/x86_64/tst-audit10.c: #include . + * sysdeps/x86_64/tst-audit10-aux.c: Move audit_test extern decl ... + (tst_audit10_aux) [__AVX512F__]: ... here. + +Index: glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/tst-audit10-aux.c ++++ glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c +@@ -20,13 +20,13 @@ + #include + #include + +-extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, +- __m512i, __m512i, __m512i, __m512i); +- + int + tst_audit10_aux (void) + { + #ifdef __AVX512F__ ++ extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, ++ __m512i, __m512i, __m512i, __m512i); ++ + __m512i zmm = _mm512_setzero_si512 (); + __m512i ret = audit_test (zmm, zmm, zmm, zmm, zmm, zmm, zmm, zmm); + +Index: glibc-2.23/sysdeps/x86_64/tst-audit10.c +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/tst-audit10.c ++++ glibc-2.23/sysdeps/x86_64/tst-audit10.c +@@ -17,6 +17,7 @@ + . */ + + #include ++#include + + int tst_audit10_aux (void); + diff --git a/0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch b/0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch new file mode 100644 index 0000000..3289638 --- /dev/null +++ b/0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch @@ -0,0 +1,35 @@ +2016-03-25 Florian Weimer + + [BZ# 19860] + * sysdeps/x86_64/tst-audit10.c (avx512_enabled): Always return + zero if the compiler does not provide the AVX512F bit. + +Index: glibc-2.23/sysdeps/x86_64/tst-audit10.c +=================================================================== +--- glibc-2.23.orig/sysdeps/x86_64/tst-audit10.c ++++ glibc-2.23/sysdeps/x86_64/tst-audit10.c +@@ -17,13 +17,13 @@ + . */ + + #include +-#include + + int tst_audit10_aux (void); + + static int + avx512_enabled (void) + { ++#ifdef bit_AVX512F + unsigned int eax, ebx, ecx, edx; + + if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0 +@@ -38,6 +38,9 @@ avx512_enabled (void) + + /* Verify that ZMM, YMM and XMM states are enabled. */ + return (eax & 0xe6) == 0xe6; ++#else ++ return 0; ++#endif + } + + static int diff --git a/0047-strfmon_l-Use-specified-locale-for-number-formatting.patch b/0047-strfmon_l-Use-specified-locale-for-number-formatting.patch new file mode 100644 index 0000000..b71eeca --- /dev/null +++ b/0047-strfmon_l-Use-specified-locale-for-number-formatting.patch @@ -0,0 +1,465 @@ +2016-04-04 Florian Weimer + + [BZ #19633] + Use specified locale for number formatting in strfmon_l. + * locale/localeinfo.h (__nl_lookup, _nl_lookup_wstr) + (__nl_lookup_word): New inline functions. + * include/printf.h (__print_fp_l): Declare. + * stdio-common/printf_fp.c (___printf_fp_l): Renamed from + ___printf_fp. Add locale argument. Replace _NL_CURRENT with + _nl_lookup and _NL_CURRENT_WORD with _nl_lookup_word. + (___printf_fp): New function. + * stdlib/strfmon_l.c (__printf_fp): Remove declaration. + (__vstrfmon_l): Call __printf_fp_l instead of printf_fp. + * stdlib/tst-strfmon_l.c (do_test): New test. + * stdlib/Makefile (tests): Add kt. + (LOCALES): Build additional locales. + (tst-strfmon_l.out): Require locales. + +Index: glibc-2.23/include/printf.h +=================================================================== +--- glibc-2.23.orig/include/printf.h ++++ glibc-2.23/include/printf.h +@@ -1,6 +1,7 @@ + #ifndef _PRINTF_H + + #include ++#include + + /* Now define the internal interfaces. */ + extern int __printf_fphex (FILE *, const struct printf_info *, +@@ -8,5 +9,8 @@ extern int __printf_fphex (FILE *, const + extern int __printf_fp (FILE *, const struct printf_info *, + const void *const *); + libc_hidden_proto (__printf_fp) ++extern int __printf_fp_l (FILE *, locale_t, const struct printf_info *, ++ const void *const *); ++libc_hidden_proto (__printf_fp_l) + + #endif +Index: glibc-2.23/locale/localeinfo.h +=================================================================== +--- glibc-2.23.orig/locale/localeinfo.h ++++ glibc-2.23/locale/localeinfo.h +@@ -299,6 +299,27 @@ extern __thread struct __locale_data *co + + #endif + ++/* Extract CATEGORY locale's string for ITEM. */ ++static inline const char * ++_nl_lookup (locale_t l, int category, int item) ++{ ++ return l->__locales[category]->values[_NL_ITEM_INDEX (item)].string; ++} ++ ++/* Extract CATEGORY locale's wide string for ITEM. */ ++static inline const wchar_t * ++_nl_lookup_wstr (locale_t l, int category, int item) ++{ ++ return (wchar_t *) l->__locales[category] ++ ->values[_NL_ITEM_INDEX (item)].wstr; ++} ++ ++/* Extract the CATEGORY locale's word for ITEM. */ ++static inline uint32_t ++_nl_lookup_word (locale_t l, int category, int item) ++{ ++ return l->__locales[category]->values[_NL_ITEM_INDEX (item)].word; ++} + + /* Default search path if no LOCPATH environment variable. */ + extern const char _nl_default_locale_path[] attribute_hidden; +Index: glibc-2.23/stdio-common/printf_fp.c +=================================================================== +--- glibc-2.23.orig/stdio-common/printf_fp.c ++++ glibc-2.23/stdio-common/printf_fp.c +@@ -209,9 +209,9 @@ hack_digit (struct hack_digit_param *p) + } + + int +-___printf_fp (FILE *fp, +- const struct printf_info *info, +- const void *const *args) ++___printf_fp_l (FILE *fp, locale_t loc, ++ const struct printf_info *info, ++ const void *const *args) + { + /* The floating-point value to output. */ + union +@@ -263,18 +263,19 @@ ___printf_fp (FILE *fp, + /* Figure out the decimal point character. */ + if (info->extra == 0) + { +- decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); +- decimalwc = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC); ++ decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT); ++ decimalwc = _nl_lookup_word ++ (loc, LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC); + } + else + { +- decimal = _NL_CURRENT (LC_MONETARY, MON_DECIMAL_POINT); ++ decimal = _nl_lookup (loc, LC_MONETARY, MON_DECIMAL_POINT); + if (*decimal == '\0') +- decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); +- decimalwc = _NL_CURRENT_WORD (LC_MONETARY, ++ decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT); ++ decimalwc = _nl_lookup_word (loc, LC_MONETARY, + _NL_MONETARY_DECIMAL_POINT_WC); + if (decimalwc == L'\0') +- decimalwc = _NL_CURRENT_WORD (LC_NUMERIC, ++ decimalwc = _nl_lookup_word (loc, LC_NUMERIC, + _NL_NUMERIC_DECIMAL_POINT_WC); + } + /* The decimal point character must not be zero. */ +@@ -284,9 +285,9 @@ ___printf_fp (FILE *fp, + if (info->group) + { + if (info->extra == 0) +- grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); ++ grouping = _nl_lookup (loc, LC_NUMERIC, GROUPING); + else +- grouping = _NL_CURRENT (LC_MONETARY, MON_GROUPING); ++ grouping = _nl_lookup (loc, LC_MONETARY, MON_GROUPING); + + if (*grouping <= 0 || *grouping == CHAR_MAX) + grouping = NULL; +@@ -296,19 +297,20 @@ ___printf_fp (FILE *fp, + if (wide) + { + if (info->extra == 0) +- thousands_sepwc = +- _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC); ++ thousands_sepwc = _nl_lookup_word ++ (loc, LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC); + else + thousands_sepwc = +- _NL_CURRENT_WORD (LC_MONETARY, ++ _nl_lookup_word (loc, LC_MONETARY, + _NL_MONETARY_THOUSANDS_SEP_WC); + } + else + { + if (info->extra == 0) +- thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP); ++ thousands_sep = _nl_lookup (loc, LC_NUMERIC, THOUSANDS_SEP); + else +- thousands_sep = _NL_CURRENT (LC_MONETARY, MON_THOUSANDS_SEP); ++ thousands_sep = _nl_lookup ++ (loc, LC_MONETARY, MON_THOUSANDS_SEP); + } + + if ((wide && thousands_sepwc == L'\0') +@@ -1171,9 +1173,11 @@ ___printf_fp (FILE *fp, + size_t decimal_len; + size_t thousands_sep_len; + wchar_t *copywc; +- size_t factor = (info->i18n +- ? _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX) +- : 1); ++ size_t factor; ++ if (info->i18n) ++ factor = _nl_lookup_word (loc, LC_CTYPE, _NL_CTYPE_MB_CUR_MAX); ++ else ++ factor = 1; + + decimal_len = strlen (decimal); + +@@ -1244,8 +1248,18 @@ ___printf_fp (FILE *fp, + } + return done; + } ++ldbl_hidden_def (___printf_fp_l, __printf_fp_l) ++ldbl_strong_alias (___printf_fp_l, __printf_fp_l) ++ ++int ++___printf_fp (FILE *fp, const struct printf_info *info, ++ const void *const *args) ++{ ++ return ___printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args); ++} + ldbl_hidden_def (___printf_fp, __printf_fp) + ldbl_strong_alias (___printf_fp, __printf_fp) ++ + + /* Return the number of extra grouping characters that will be inserted + into a number with INTDIG_MAX integer digits. */ +Index: glibc-2.23/stdlib/Makefile +=================================================================== +--- glibc-2.23.orig/stdlib/Makefile ++++ glibc-2.23/stdlib/Makefile +@@ -76,7 +76,7 @@ tests := tst-strtol tst-strtod testmb t + tst-secure-getenv tst-strtod-overflow tst-strtod-round \ + tst-tininess tst-strtod-underflow tst-tls-atexit \ + tst-setcontext3 tst-tls-atexit-nodelete \ +- tst-strtol-locale tst-strtod-nan-locale ++ tst-strtol-locale tst-strtod-nan-locale tst-strfmon_l + tests-static := tst-secure-getenv + + modules-names = tst-tls-atexit-lib +@@ -126,7 +126,8 @@ include ../Rules + + ifeq ($(run-built-tests),yes) + LOCALES := cs_CZ.UTF-8 de_DE.UTF-8 en_US.ISO-8859-1 tr_TR.UTF-8 \ +- tr_TR.ISO-8859-9 ++ tr_TR.ISO-8859-9 tg_TJ.UTF-8 te_IN.UTF-8 bn_IN.UTF-8 \ ++ el_GR.UTF-8 + include ../gen-locales.mk + + $(objpfx)bug-strtod2.out: $(gen-locales) +@@ -137,6 +138,7 @@ $(objpfx)tst-strtod4.out: $(gen-locales) + $(objpfx)tst-strtod5.out: $(gen-locales) + $(objpfx)tst-strtol-locale.out: $(gen-locales) + $(objpfx)tst-strtod-nan-locale.out: $(gen-locales) ++$(objpfx)tst-strfmon_l.out: $(gen-locales) + endif + + # Testdir has to be named stdlib and needs to be writable +Index: glibc-2.23/stdlib/strfmon_l.c +=================================================================== +--- glibc-2.23.orig/stdlib/strfmon_l.c ++++ glibc-2.23/stdlib/strfmon_l.c +@@ -68,9 +68,6 @@ + #define _NL_CURRENT(category, item) \ + (current->values[_NL_ITEM_INDEX (item)].string) + +-extern int __printf_fp (FILE *, const struct printf_info *, +- const void *const *); +-libc_hidden_proto (__printf_fp) + /* This function determines the number of digit groups in the output. + The definition is in printf_fp.c. */ + extern unsigned int __guess_grouping (unsigned int intdig_max, +@@ -532,7 +529,7 @@ __vstrfmon_l (char *s, size_t maxsize, _ + info.extra = 1; /* This means use values from LC_MONETARY. */ + + ptr = &fpnum; +- done = __printf_fp (&f._sbf._f, &info, &ptr); ++ done = __printf_fp_l (&f._sbf._f, loc, &info, &ptr); + if (done < 0) + return -1; + +Index: glibc-2.23/stdlib/tst-strfmon_l.c +=================================================================== +--- /dev/null ++++ glibc-2.23/stdlib/tst-strfmon_l.c +@@ -0,0 +1,220 @@ ++/* Test locale dependence of strfmon_l. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static const char *const en_us_name = "en_US.ISO-8859-1"; ++ ++/* Locale value to be used by tests. */ ++static locale_t loc; ++static const char *loc_name; ++ ++/* Set the global locale to GLOBAL_NAME, and the locale referenced by ++ the loc variable above to LOCAL_NAME. */ ++static void ++init_loc (const char *global_name, const char *local_name) ++{ ++ loc = newlocale (LC_ALL_MASK, local_name, 0); ++ if (loc == 0) ++ { ++ printf ("error: newlocale (%s): %m\n", local_name); ++ abort (); ++ } ++ loc_name = local_name; ++ ++ if (setlocale (LC_ALL, global_name) == NULL) ++ { ++ printf ("error: setlocale (%s): %m\n", global_name); ++ abort (); ++ } ++} ++ ++/* Expected strings for a positive or negative value. */ ++struct testcase ++{ ++ const char *i; /* %i */ ++ const char *n; /* %n */ ++ const char *i_ungrouped; /* %^i */ ++ const char *n_ungrouped; /* %^n */ ++}; ++ ++/* Collected expected strings for both positive and negative ++ values. */ ++struct testcase_pair ++{ ++ struct testcase positive; /* 1234567.89 */ ++ struct testcase negative; /* -1234567.89 */ ++}; ++ ++static bool errors; ++ ++/* Test one value using the locale loc. */ ++static void ++test_one (const char *format, double value, const char *expected) ++{ ++ static char actual[64]; ++ int result = strfmon_l (actual, sizeof (actual), loc, format, value); ++ if (result < 0) ++ { ++ printf ("error: locale %s, format \"%s\", value %g: strfmon_l: %m\n", ++ loc_name, format, value); ++ errors = true; ++ } ++ else if (strcmp (actual, expected) != 0) ++ { ++ printf ("error: locale %s, format \"%s\", value %g: mismatch\n", ++ loc_name, format, value); ++ printf ("error: expected: \"%s\"\n", expected); ++ printf ("error: actual: \"%s\"\n", actual); ++ errors = true; ++ } ++} ++ ++static void ++test_pair (const struct testcase_pair *pair) ++{ ++ double positive = 1234567.89; ++ test_one ("%i", positive, pair->positive.i); ++ test_one ("%n", positive, pair->positive.n); ++ test_one ("%^i", positive, pair->positive.i_ungrouped); ++ test_one ("%^n", positive, pair->positive.n_ungrouped); ++ double negative = -1234567.89; ++ test_one ("%i", negative, pair->negative.i); ++ test_one ("%n", negative, pair->negative.n); ++ test_one ("%^i", negative, pair->negative.i_ungrouped); ++ test_one ("%^n", negative, pair->negative.n_ungrouped); ++} ++ ++static const struct testcase_pair en_us = ++ { ++ { ++ "USD 1,234,567.89", "$1,234,567.89", ++ "USD 1234567.89", "$1234567.89" ++ }, ++ { ++ "-USD 1,234,567.89", "-$1,234,567.89", ++ "-USD 1234567.89", "-$1234567.89" ++ } ++ }; ++ ++static void ++test_en_us (const char *other_name) ++{ ++ init_loc (other_name, en_us_name); ++ test_pair (&en_us); ++ freelocale (loc); ++} ++ ++struct locale_pair ++{ ++ const char *locale_name; ++ struct testcase_pair pair; ++}; ++ ++static const struct locale_pair tests[] = ++ { ++ { ++ "de_DE.UTF-8", ++ { ++ { ++ "1.234.567,89 EUR", "1.234.567,89 \u20ac", ++ "1234567,89 EUR", "1234567,89 \u20ac" ++ }, ++ { ++ "-1.234.567,89 EUR", "-1.234.567,89 \u20ac", ++ "-1234567,89 EUR", "-1234567,89 \u20ac" ++ } ++ }, ++ }, ++ { ++ "tg_TJ.UTF-8", ++ { ++ { ++ "1 234 567.89 TJS", "1 234 567.89 \u0440\u0443\u0431", ++ "1234567.89 TJS", "1234567.89 \u0440\u0443\u0431" ++ }, ++ { ++ "-1 234 567.89 TJS", "-1 234 567.89 \u0440\u0443\u0431", ++ "-1234567.89 TJS", "-1234567.89 \u0440\u0443\u0431" ++ } ++ } ++ }, ++ { ++ "te_IN.UTF-8", ++ { ++ { ++ "INR12,34,567.89", "\u20b912,34,567.89", ++ "INR1234567.89", "\u20b91234567.89" ++ }, ++ { ++ "-INR12,34,567.89", "-\u20b912,34,567.89", ++ "-INR1234567.89", "-\u20b91234567.89" ++ } ++ } ++ }, ++ { ++ "bn_IN.UTF-8", ++ { ++ { ++ "INR 12,345,67.89", "\u20b9 12,345,67.89", ++ "INR 1234567.89", "\u20b9 1234567.89" ++ }, ++ { ++ "-INR 12,345,67.89", "-\u20b9 12,345,67.89", ++ "-INR 1234567.89", "-\u20b9 1234567.89" ++ } ++ } ++ }, ++ { ++ "el_GR.UTF-8", ++ { ++ { ++ "1.234.567,89EUR", "1.234.567,89\u20ac", ++ "1234567,89EUR", "1234567,89\u20ac" ++ }, ++ { ++ "-EUR1.234.567,89", "-\u20ac1.234.567,89", ++ "-EUR1234567,89", "-\u20ac1234567,89", ++ } ++ } ++ }, ++ {} ++ }; ++ ++static int ++do_test (void) ++{ ++ for (const struct locale_pair *test = tests; ++ test->locale_name != NULL; ++test) ++ { ++ init_loc (en_us_name, test->locale_name); ++ test_pair (&test->pair); ++ freelocale (loc); ++ test_en_us (test->locale_name); ++ } ++ ++ return errors; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch b/0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch new file mode 100644 index 0000000..57a1a1f --- /dev/null +++ b/0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch @@ -0,0 +1,212 @@ +2016-04-29 Florian Weimer + + glob: Simplify and document the interface for the GLOB_ALTDIRFUNC + callback function gl_readdir. + * posix/glob.c (NAMELEN, CONVERT_D_NAMLEN): Remove. + (CONVERT_DIRENT_DIRENT64): Use strcpy instead of memcpy. + (glob_in_dir): Remove len. Use strdup instead of malloc and + memcpy to copy the name. + * manual/pattern.texi (Calling Glob): Document requirements for + implementations of the gl_readdir callback function. + * manual/examples/mkdirent.c: New example. + * posix/bug-glob2.c (my_readdir): Set d_ino to 1 unconditionally, + per the manual guidance. + * posix/tst-gnuglob.c (my_readdir): Likewise. + +Index: glibc-2.23/manual/examples/mkdirent.c +=================================================================== +--- /dev/null ++++ glibc-2.23/manual/examples/mkdirent.c +@@ -0,0 +1,42 @@ ++/* Example for creating a struct dirent object for use with glob. ++ Copyright (C) 2016 Free Software Foundation, Inc. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version 2 ++ of the License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, if not, see . ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++ ++struct dirent * ++mkdirent (const char *name) ++{ ++ size_t dirent_size = offsetof (struct dirent, d_name) + 1; ++ size_t name_length = strlen (name); ++ size_t total_size = dirent_size + name_length; ++ if (total_size < dirent_size) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ struct dirent *result = malloc (total_size); ++ if (result == NULL) ++ return NULL; ++ result->d_type = DT_UNKNOWN; ++ result->d_ino = 1; /* Do not skip this entry. */ ++ memcpy (result->d_name, name, name_length + 1); ++ return result; ++} +Index: glibc-2.23/manual/pattern.texi +=================================================================== +--- glibc-2.23.orig/manual/pattern.texi ++++ glibc-2.23/manual/pattern.texi +@@ -237,7 +237,44 @@ function used to read the contents of a + @code{GLOB_ALTDIRFUNC} bit is set in the flag parameter. The type of + this field is @w{@code{struct dirent *(*) (void *)}}. + +-This is a GNU extension. ++An implementation of @code{gl_readdir} needs to initialize the following ++members of the @code{struct dirent} object: ++ ++@table @code ++@item d_type ++This member should be set to the file type of the entry if it is known. ++Otherwise, the value @code{DT_UNKNOWN} can be used. The @code{glob} ++function may use the specified file type to avoid callbacks in cases ++where the file type indicates that the data is not required. ++ ++@item d_ino ++This member needs to be non-zero, otherwise @code{glob} may skip the ++current entry and call the @code{gl_readdir} callback function again to ++retrieve another entry. ++ ++@item d_name ++This member must be set to the name of the entry. It must be ++null-terminated. ++@end table ++ ++The example below shows how to allocate a @code{struct dirent} object ++containing a given name. ++ ++@smallexample ++@include mkdirent.c.texi ++@end smallexample ++ ++The @code{glob} function reads the @code{struct dirent} members listed ++above and makes a copy of the file name in the @code{d_name} member ++immediately after the @code{gl_readdir} callback function returns. ++Future invocations of any of the callback functions may dealloacte or ++reuse the buffer. It is the responsibility of the caller of the ++@code{glob} function to allocate and deallocate the buffer, around the ++call to @code{glob} or using the callback functions. For example, an ++application could allocate the buffer in the @code{gl_readdir} callback ++function, and deallocate it in the @code{gl_closedir} callback function. ++ ++The @code{gl_readdir} member is a GNU extension. + + @item gl_opendir + The address of an alternative implementation of the @code{opendir} +Index: glibc-2.23/posix/bug-glob2.c +=================================================================== +--- glibc-2.23.orig/posix/bug-glob2.c ++++ glibc-2.23/posix/bug-glob2.c +@@ -193,7 +193,7 @@ my_readdir (void *gdir) + return NULL; + } + +- dir->d.d_ino = dir->idx; ++ dir->d.d_ino = 1; /* glob should not skip this entry. */ + + #ifdef _DIRENT_HAVE_D_TYPE + dir->d.d_type = filesystem[dir->idx].type; +Index: glibc-2.23/posix/glob.c +=================================================================== +--- glibc-2.23.orig/posix/glob.c ++++ glibc-2.23/posix/glob.c +@@ -57,10 +57,8 @@ + + #if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__ + # include +-# define NAMLEN(dirent) strlen((dirent)->d_name) + #else + # define dirent direct +-# define NAMLEN(dirent) (dirent)->d_namlen + # ifdef HAVE_SYS_NDIR_H + # include + # endif +@@ -76,12 +74,6 @@ + #endif + + +-/* In GNU systems, defines this macro for us. */ +-#ifdef _D_NAMLEN +-# undef NAMLEN +-# define NAMLEN(d) _D_NAMLEN(d) +-#endif +- + /* When used in the GNU libc the symbol _DIRENT_HAVE_D_TYPE is available + if the `d_type' member for `struct dirent' is available. + HAVE_STRUCT_DIRENT_D_TYPE plays the same role in GNULIB. */ +@@ -105,12 +97,6 @@ + + /* If the system has the `struct dirent64' type we use it internally. */ + #if defined _LIBC && !defined COMPILE_GLOB64 +-# if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__ +-# define CONVERT_D_NAMLEN(d64, d32) +-# else +-# define CONVERT_D_NAMLEN(d64, d32) \ +- (d64)->d_namlen = (d32)->d_namlen; +-# endif + + # if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ + # define CONVERT_D_INO(d64, d32) +@@ -127,8 +113,7 @@ + # endif + + # define CONVERT_DIRENT_DIRENT64(d64, d32) \ +- memcpy ((d64)->d_name, (d32)->d_name, NAMLEN (d32) + 1); \ +- CONVERT_D_NAMLEN (d64, d32) \ ++ strcpy ((d64)->d_name, (d32)->d_name); \ + CONVERT_D_INO (d64, d32) \ + CONVERT_D_TYPE (d64, d32) + #endif +@@ -1554,7 +1539,6 @@ glob_in_dir (const char *pattern, const + while (1) + { + const char *name; +- size_t len; + #if defined _LIBC && !defined COMPILE_GLOB64 + struct dirent64 *d; + union +@@ -1622,12 +1606,10 @@ glob_in_dir (const char *pattern, const + names = newnames; + cur = 0; + } +- len = NAMLEN (d); +- names->name[cur] = (char *) malloc (len + 1); ++ names->name[cur] = strdup (d->d_name); + if (names->name[cur] == NULL) + goto memory_error; +- *((char *) mempcpy (names->name[cur++], name, len)) +- = '\0'; ++ ++cur; + ++nfound; + } + } +Index: glibc-2.23/posix/tst-gnuglob.c +=================================================================== +--- glibc-2.23.orig/posix/tst-gnuglob.c ++++ glibc-2.23/posix/tst-gnuglob.c +@@ -211,7 +211,7 @@ my_readdir (void *gdir) + return NULL; + } + +- dir->d.d_ino = dir->idx; ++ dir->d.d_ino = 1; /* glob should not skip this entry. */ + + #ifdef _DIRENT_HAVE_D_TYPE + dir->d.d_type = filesystem[dir->idx].type; diff --git a/0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch b/0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch new file mode 100644 index 0000000..030e2ca --- /dev/null +++ b/0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch @@ -0,0 +1,396 @@ +2016-05-04 Florian Weimer + + [BZ #19779] + CVE-2016-1234 + Avoid copying names of directory entries. + * posix/glob.c (DIRENT_MUST_BE, DIRENT_MIGHT_BE_SYMLINK) + (DIRENT_MIGHT_BE_DIR, CONVERT_D_INO, CONVERT_D_TYPE) + (CONVERT_DIRENT_DIRENT64, REAL_DIR_ENTRY): Remove macros. + (struct readdir_result): New type. + (D_TYPE_TO_RESULT, D_INO_TO_RESULT, READDIR_RESULT_INITIALIZER) + (GL_READDIR): New macros. + (readdir_result_might_be_symlink, readdir_result_might_be_dir) + (convert_dirent, convert_dirent64): New functions. + (glob_in_dir): Use struct readdir_result. Call convert_dirent or + convert_dirent64. Adjust references to the readdir result. + * sysdeps/unix/sysv/linux/i386/glob64.c: + (convert_dirent, GL_READDIR): Redefine for second file inclusion. + * posix/bug-glob2.c (LONG_NAME): Define. + (filesystem): Add LONG_NAME. + (my_DIR): Increase the size of room_for_dirent. + +Index: glibc-2.23/NEWS +=================================================================== +--- glibc-2.23.orig/NEWS ++++ glibc-2.23/NEWS +@@ -14,6 +14,10 @@ Security related changes: + overflow (stack exhaustion) and a crash if getnetbyname is invoked + on a very long name. (CVE-2016-3075) + ++* The glob function suffered from a stack-based buffer overflow when it was ++ called with the GLOB_ALTDIRFUNC flag and encountered a long file name. ++ Reported by Alexander Cherepanov. (CVE-2016-1234) ++ + The following bugs are resolved with this release: + + [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack +Index: glibc-2.23/posix/bug-glob2.c +=================================================================== +--- glibc-2.23.orig/posix/bug-glob2.c ++++ glibc-2.23/posix/bug-glob2.c +@@ -40,6 +40,17 @@ + # define PRINTF(fmt, args...) + #endif + ++#define LONG_NAME \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ ++ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + + static struct + { +@@ -58,6 +69,7 @@ static struct + { ".", 3, DT_DIR, 0755 }, + { "..", 3, DT_DIR, 0755 }, + { "a", 3, DT_REG, 0644 }, ++ { LONG_NAME, 3, DT_REG, 0644 }, + { "unreadable", 2, DT_DIR, 0111 }, + { ".", 3, DT_DIR, 0111 }, + { "..", 3, DT_DIR, 0755 }, +@@ -75,7 +87,7 @@ typedef struct + int level; + int idx; + struct dirent d; +- char room_for_dirent[NAME_MAX]; ++ char room_for_dirent[sizeof (LONG_NAME)]; + } my_DIR; + + +Index: glibc-2.23/posix/glob.c +=================================================================== +--- glibc-2.23.orig/posix/glob.c ++++ glibc-2.23/posix/glob.c +@@ -24,7 +24,9 @@ + #include + #include + #include ++#include + #include ++#include + + /* Outcomment the following line for production quality code. */ + /* #define NDEBUG 1 */ +@@ -73,69 +75,8 @@ + # endif /* HAVE_VMSDIR_H */ + #endif + +- +-/* When used in the GNU libc the symbol _DIRENT_HAVE_D_TYPE is available +- if the `d_type' member for `struct dirent' is available. +- HAVE_STRUCT_DIRENT_D_TYPE plays the same role in GNULIB. */ +-#if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE +-/* True if the directory entry D must be of type T. */ +-# define DIRENT_MUST_BE(d, t) ((d)->d_type == (t)) +- +-/* True if the directory entry D might be a symbolic link. */ +-# define DIRENT_MIGHT_BE_SYMLINK(d) \ +- ((d)->d_type == DT_UNKNOWN || (d)->d_type == DT_LNK) +- +-/* True if the directory entry D might be a directory. */ +-# define DIRENT_MIGHT_BE_DIR(d) \ +- ((d)->d_type == DT_DIR || DIRENT_MIGHT_BE_SYMLINK (d)) +- +-#else /* !HAVE_D_TYPE */ +-# define DIRENT_MUST_BE(d, t) false +-# define DIRENT_MIGHT_BE_SYMLINK(d) true +-# define DIRENT_MIGHT_BE_DIR(d) true +-#endif /* HAVE_D_TYPE */ +- +-/* If the system has the `struct dirent64' type we use it internally. */ +-#if defined _LIBC && !defined COMPILE_GLOB64 +- +-# if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ +-# define CONVERT_D_INO(d64, d32) +-# else +-# define CONVERT_D_INO(d64, d32) \ +- (d64)->d_ino = (d32)->d_ino; +-# endif +- +-# ifdef _DIRENT_HAVE_D_TYPE +-# define CONVERT_D_TYPE(d64, d32) \ +- (d64)->d_type = (d32)->d_type; +-# else +-# define CONVERT_D_TYPE(d64, d32) +-# endif +- +-# define CONVERT_DIRENT_DIRENT64(d64, d32) \ +- strcpy ((d64)->d_name, (d32)->d_name); \ +- CONVERT_D_INO (d64, d32) \ +- CONVERT_D_TYPE (d64, d32) +-#endif +- +- +-#if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ +-/* Posix does not require that the d_ino field be present, and some +- systems do not provide it. */ +-# define REAL_DIR_ENTRY(dp) 1 +-#else +-# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) +-#endif /* POSIX */ +- + #include + #include +- +-/* NAME_MAX is usually defined in or . */ +-#include +-#ifndef NAME_MAX +-# define NAME_MAX (sizeof (((struct dirent *) 0)->d_name)) +-#endif +- + #include + + #ifdef _LIBC +@@ -180,8 +121,111 @@ + + static const char *next_brace_sub (const char *begin, int flags) __THROWNL; + ++/* A representation of a directory entry which does not depend on the ++ layout of struct dirent, or the size of ino_t. */ ++struct readdir_result ++{ ++ const char *name; ++# if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE ++ uint8_t type; ++# endif ++ bool skip_entry; ++}; ++ ++# if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE ++/* Initializer based on the d_type member of struct dirent. */ ++# define D_TYPE_TO_RESULT(source) (source)->d_type, ++ ++/* True if the directory entry D might be a symbolic link. */ ++static bool ++readdir_result_might_be_symlink (struct readdir_result d) ++{ ++ return d.type == DT_UNKNOWN || d.type == DT_LNK; ++} ++ ++/* True if the directory entry D might be a directory. */ ++static bool ++readdir_result_might_be_dir (struct readdir_result d) ++{ ++ return d.type == DT_DIR || readdir_result_might_be_symlink (d); ++} ++# else /* defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE */ ++# define D_TYPE_TO_RESULT(source) ++ ++/* If we do not have type information, symbolic links and directories ++ are always a possibility. */ ++ ++static bool ++readdir_result_might_be_symlink (struct readdir_result d) ++{ ++ return true; ++} ++ ++static bool ++readdir_result_might_be_dir (struct readdir_result d) ++{ ++ return true; ++} ++ ++# endif /* defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE */ ++ ++# if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ ++/* Initializer for skip_entry. POSIX does not require that the d_ino ++ field be present, and some systems do not provide it. */ ++# define D_INO_TO_RESULT(source) false, ++# else ++# define D_INO_TO_RESULT(source) (source)->d_ino == 0, ++# endif ++ ++/* Construct an initializer for a struct readdir_result object from a ++ struct dirent *. No copy of the name is made. */ ++#define READDIR_RESULT_INITIALIZER(source) \ ++ { \ ++ source->d_name, \ ++ D_TYPE_TO_RESULT (source) \ ++ D_INO_TO_RESULT (source) \ ++ } ++ + #endif /* !defined _LIBC || !defined GLOB_ONLY_P */ + ++/* Call gl_readdir on STREAM. This macro can be overridden to reduce ++ type safety if an old interface version needs to be supported. */ ++#ifndef GL_READDIR ++# define GL_READDIR(pglob, stream) ((pglob)->gl_readdir (stream)) ++#endif ++ ++/* Extract name and type from directory entry. No copy of the name is ++ made. If SOURCE is NULL, result name is NULL. Keep in sync with ++ convert_dirent64 below. */ ++static struct readdir_result ++convert_dirent (const struct dirent *source) ++{ ++ if (source == NULL) ++ { ++ struct readdir_result result = { NULL, }; ++ return result; ++ } ++ struct readdir_result result = READDIR_RESULT_INITIALIZER (source); ++ return result; ++} ++ ++#ifndef COMPILE_GLOB64 ++/* Like convert_dirent, but works on struct dirent64 instead. Keep in ++ sync with convert_dirent above. */ ++static struct readdir_result ++convert_dirent64 (const struct dirent64 *source) ++{ ++ if (source == NULL) ++ { ++ struct readdir_result result = { NULL, }; ++ return result; ++ } ++ struct readdir_result result = READDIR_RESULT_INITIALIZER (source); ++ return result; ++} ++#endif ++ ++ + #ifndef attribute_hidden + # define attribute_hidden + #endif +@@ -1538,55 +1582,36 @@ glob_in_dir (const char *pattern, const + + while (1) + { +- const char *name; +-#if defined _LIBC && !defined COMPILE_GLOB64 +- struct dirent64 *d; +- union +- { +- struct dirent64 d64; +- char room [offsetof (struct dirent64, d_name[0]) +- + NAME_MAX + 1]; +- } +- d64buf; +- +- if (__glibc_unlikely (flags & GLOB_ALTDIRFUNC)) +- { +- struct dirent *d32 = (*pglob->gl_readdir) (stream); +- if (d32 != NULL) +- { +- CONVERT_DIRENT_DIRENT64 (&d64buf.d64, d32); +- d = &d64buf.d64; +- } +- else +- d = NULL; +- } +- else +- d = __readdir64 (stream); ++ struct readdir_result d; ++ { ++ if (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)) ++ d = convert_dirent (GL_READDIR (pglob, stream)); ++ else ++ { ++#ifdef COMPILE_GLOB64 ++ d = convert_dirent (__readdir (stream)); + #else +- struct dirent *d = (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) +- ? ((struct dirent *) +- (*pglob->gl_readdir) (stream)) +- : __readdir (stream)); ++ d = convert_dirent64 (__readdir64 (stream)); + #endif +- if (d == NULL) ++ } ++ } ++ if (d.name == NULL) + break; +- if (! REAL_DIR_ENTRY (d)) ++ if (d.skip_entry) + continue; + + /* If we shall match only directories use the information + provided by the dirent call if possible. */ +- if ((flags & GLOB_ONLYDIR) && !DIRENT_MIGHT_BE_DIR (d)) ++ if ((flags & GLOB_ONLYDIR) && !readdir_result_might_be_dir (d)) + continue; + +- name = d->d_name; +- +- if (fnmatch (pattern, name, fnm_flags) == 0) ++ if (fnmatch (pattern, d.name, fnm_flags) == 0) + { + /* If the file we found is a symlink we have to + make sure the target file exists. */ +- if (!DIRENT_MIGHT_BE_SYMLINK (d) +- || link_exists_p (dfd, directory, dirlen, name, pglob, +- flags)) ++ if (!readdir_result_might_be_symlink (d) ++ || link_exists_p (dfd, directory, dirlen, d.name, ++ pglob, flags)) + { + if (cur == names->count) + { +@@ -1606,7 +1631,7 @@ glob_in_dir (const char *pattern, const + names = newnames; + cur = 0; + } +- names->name[cur] = strdup (d->d_name); ++ names->name[cur] = strdup (d.name); + if (names->name[cur] == NULL) + goto memory_error; + ++cur; +Index: glibc-2.23/sysdeps/unix/sysv/linux/i386/glob64.c +=================================================================== +--- glibc-2.23.orig/sysdeps/unix/sysv/linux/i386/glob64.c ++++ glibc-2.23/sysdeps/unix/sysv/linux/i386/glob64.c +@@ -1,3 +1,21 @@ ++/* Two glob variants with 64-bit support, for dirent64 and __olddirent64. ++ Copyright (C) 1998-2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ + #include + #include + #include +@@ -38,11 +56,15 @@ int __old_glob64 (const char *__pattern, + + #undef dirent + #define dirent __old_dirent64 ++#undef GL_READDIR ++# define GL_READDIR(pglob, stream) \ ++ ((struct __old_dirent64 *) (pglob)->gl_readdir (stream)) + #undef __readdir + #define __readdir(dirp) __old_readdir64 (dirp) + #undef glob + #define glob(pattern, flags, errfunc, pglob) \ + __old_glob64 (pattern, flags, errfunc, pglob) ++#define convert_dirent __old_convert_dirent + #define glob_in_dir __old_glob_in_dir + #define GLOB_ATTRIBUTE attribute_compat_text_section + diff --git a/0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch b/0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch new file mode 100644 index 0000000..ab490fd --- /dev/null +++ b/0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch @@ -0,0 +1,132 @@ +2016-03-07 Florian Weimer + + [BZ #19610] + * elf/ldconfig.c (opt_link): Update comment. + (options): Update help string for option -X. + (search_dir): Unlink stale symbolic link only if updating symbolic + links. + * elf/tst-ldconfig-X.sh: New file. + * elf/Makefile (tests-special): Add tst-ldconfig-X.out. + (tst-ldconfig-X.out): New rule to run tst-ldconfig-X.sh. + +Index: glibc-2.23/elf/Makefile +=================================================================== +--- glibc-2.23.orig/elf/Makefile ++++ glibc-2.23/elf/Makefile +@@ -163,7 +163,8 @@ endif + endif + ifeq ($(run-built-tests),yes) + tests-special += $(objpfx)tst-leaks1-mem.out \ +- $(objpfx)tst-leaks1-static-mem.out $(objpfx)noload-mem.out ++ $(objpfx)tst-leaks1-static-mem.out $(objpfx)noload-mem.out \ ++ $(objpfx)tst-ldconfig-X.out + endif + tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +@@ -1252,3 +1253,7 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin + $(objpfx)tst-prelink-conflict.out + cmp $^ > $@; \ + $(evaluate-test) ++ ++$(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig ++ $(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \ ++ $(evaluate-test) +Index: glibc-2.23/elf/ldconfig.c +=================================================================== +--- glibc-2.23.orig/elf/ldconfig.c ++++ glibc-2.23/elf/ldconfig.c +@@ -100,7 +100,8 @@ int opt_format = 1; + /* Build cache. */ + static int opt_build_cache = 1; + +-/* Generate links. */ ++/* Enable symbolic link processing. If set, create or update symbolic ++ links, and remove stale symbolic links. */ + static int opt_link = 1; + + /* Only process directories specified on the command line. */ +@@ -141,7 +142,7 @@ static const struct argp_option options[ + { "print-cache", 'p', NULL, 0, N_("Print cache"), 0}, + { "verbose", 'v', NULL, 0, N_("Generate verbose messages"), 0}, + { NULL, 'N', NULL, 0, N_("Don't build cache"), 0}, +- { NULL, 'X', NULL, 0, N_("Don't generate links"), 0}, ++ { NULL, 'X', NULL, 0, N_("Don't update symbolic links"), 0}, + { NULL, 'r', N_("ROOT"), 0, N_("Change to and use ROOT as root directory"), 0}, + { NULL, 'C', N_("CACHE"), 0, N_("Use CACHE as cache file"), 0}, + { NULL, 'f', N_("CONF"), 0, N_("Use CONF as configuration file"), 0}, +@@ -800,7 +801,7 @@ search_dir (const struct dir_entry *entr + error (0, errno, _("Cannot stat %s"), file_name); + + /* Remove stale symlinks. */ +- if (strstr (direntry->d_name, ".so.")) ++ if (opt_link && strstr (direntry->d_name, ".so.")) + unlink (real_file_name); + continue; + } +Index: glibc-2.23/elf/tst-ldconfig-X.sh +=================================================================== +--- /dev/null ++++ glibc-2.23/elf/tst-ldconfig-X.sh +@@ -0,0 +1,62 @@ ++#!/bin/sh ++# Test that ldconfig -X does not remove stale symbolic links. ++# Copyright (C) 2000-2016 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 ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -ex ++ ++common_objpfx=$1 ++test_wrapper_env=$2 ++run_program_env=$3 ++ ++testroot="${common_objpfx}elf/bug19610-test-directory" ++cleanup () { ++ rm -rf "$testroot" ++} ++trap cleanup 0 ++ ++rm -rf "$testroot" ++mkdir -p $testroot/lib $testroot/etc ++ ++# Relative symbolic link target. ++ln -s libdoesnotexist.so.1.1 $testroot/lib/libdoesnotexist.so.1 ++ ++# Absolute symbolic link target. ++ln -s $testroot/opt/sw/lib/libdoesnotexist2.so.1.1 $testroot/lib/ ++ ++errors=0 ++check_files () { ++ for name in libdoesnotexist.so.1 libdoesnotexist2.so.1.1 ; do ++ path="$testroot/lib/$name" ++ if test ! -h $path ; then ++ echo "error: missing file: $path" ++ errors=1 ++ fi ++ done ++} ++ ++check_files ++ ++${test_wrapper_env} \ ++${run_program_env} \ ++${common_objpfx}elf/ldconfig -X -f /dev/null \ ++ -C $testroot/etc/ld.so.cache \ ++ $testroot/lib ++ ++check_files ++ ++exit $errors diff --git a/0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch b/0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch new file mode 100644 index 0000000..8851a4e --- /dev/null +++ b/0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch @@ -0,0 +1,158 @@ +2016-03-31 Florian Weimer + + [BZ #19509] + * elf/dl-lookup.c (_dl_lookup_symbol_x): Report error even if + skip_map != NULL. + * elf/tst-dlsym-error.c: New file. + * elf/Makefile (tests): Add tst-dlsym-error. + (tst-dlsym-error): Link against libdl. + +Index: glibc-2.23/elf/Makefile +=================================================================== +--- glibc-2.23.orig/elf/Makefile ++++ glibc-2.23/elf/Makefile +@@ -149,7 +149,7 @@ tests += loadtest restest1 preloadtest l + tst-nodelete) \ + tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \ + tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ +- tst-nodelete2 tst-audit11 tst-audit12 ++ tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error + # reldep9 + ifeq ($(build-hardcoded-path-in-tests),yes) + tests += tst-dlopen-aout +@@ -1257,3 +1257,5 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin + $(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig + $(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \ + $(evaluate-test) ++ ++$(objpfx)tst-dlsym-error: $(libdl) +Index: glibc-2.23/elf/dl-lookup.c +=================================================================== +--- glibc-2.23.orig/elf/dl-lookup.c ++++ glibc-2.23/elf/dl-lookup.c +@@ -858,7 +858,6 @@ _dl_lookup_symbol_x (const char *undef_n + if (__glibc_unlikely (current_value.s == NULL)) + { + if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) +- && skip_map == NULL + && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) + { + /* We could find no value for a strong reference. */ +Index: glibc-2.23/elf/tst-dlsym-error.c +=================================================================== +--- /dev/null ++++ glibc-2.23/elf/tst-dlsym-error.c +@@ -0,0 +1,113 @@ ++/* Test error reporting for dlsym, dlvsym failures. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* Used to disambiguate symbol names. */ ++static int counter; ++ ++static void ++test_one (void *handle, const char *name, void *(func) (void *, const char *), ++ const char *suffix) ++{ ++ ++counter; ++ char symbol[32]; ++ snprintf (symbol, sizeof (symbol), "no_such_symbol_%d", counter); ++ char *expected_message; ++ if (asprintf (&expected_message, ": undefined symbol: %s%s", ++ symbol, suffix) < 0) ++ { ++ printf ("error: asprintf: %m\n"); ++ abort (); ++ } ++ ++ void *addr = func (handle, symbol); ++ if (addr != NULL) ++ { ++ printf ("error: %s: found symbol \"no_such_symbol\"\n", name); ++ abort (); ++ } ++ const char *message = dlerror (); ++ if (message == NULL) ++ { ++ printf ("error: %s: missing error message\n", name); ++ abort (); ++ } ++ const char *message_without_path = strchrnul (message, ':'); ++ if (strcmp (message_without_path, expected_message) != 0) ++ { ++ printf ("error: %s: unexpected error message: %s\n", name, message); ++ abort (); ++ } ++ free (expected_message); ++ ++ message = dlerror (); ++ if (message != NULL) ++ { ++ printf ("error: %s: unexpected error message: %s\n", name, message); ++ abort (); ++ } ++} ++ ++static void ++test_handles (const char *name, void *(func) (void *, const char *), ++ const char *suffix) ++{ ++ test_one (RTLD_DEFAULT, name, func, suffix); ++ test_one (RTLD_NEXT, name, func, suffix); ++ ++ void *handle = dlopen (LIBC_SO, RTLD_LAZY); ++ if (handle == NULL) ++ { ++ printf ("error: cannot dlopen %s: %s\n", LIBC_SO, dlerror ()); ++ abort (); ++ } ++ test_one (handle, name, func, suffix); ++ dlclose (handle); ++} ++ ++static void * ++dlvsym_no_such_version (void *handle, const char *name) ++{ ++ return dlvsym (handle, name, "NO_SUCH_VERSION"); ++} ++ ++static void * ++dlvsym_glibc_private (void *handle, const char *name) ++{ ++ return dlvsym (handle, name, "GLIBC_PRIVATE"); ++} ++ ++static int ++do_test (void) ++{ ++ test_handles ("dlsym", dlsym, ""); ++ test_handles ("dlvsym", dlvsym_no_such_version, ++ ", version NO_SUCH_VERSION"); ++ test_handles ("dlvsym", dlvsym_glibc_private, ++ ", version GLIBC_PRIVATE"); ++ ++ return 0; ++} ++ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/0052-Fix-tst-dlsym-error-build.patch b/0052-Fix-tst-dlsym-error-build.patch new file mode 100644 index 0000000..5a0bed9 --- /dev/null +++ b/0052-Fix-tst-dlsym-error-build.patch @@ -0,0 +1,16 @@ +2016-03-31 Adhemerval Zanella + + * elf/tst-dlsym-error.c: Include for strchrnul. + +Index: glibc-2.23/elf/tst-dlsym-error.c +=================================================================== +--- glibc-2.23.orig/elf/tst-dlsym-error.c ++++ glibc-2.23/elf/tst-dlsym-error.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + /* Used to disambiguate symbol names. */ + static int counter; diff --git a/0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch b/0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch new file mode 100644 index 0000000..95ac610 --- /dev/null +++ b/0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch @@ -0,0 +1,46 @@ +2016-02-19 Florian Weimer + + [BZ #19581] + * locales/sr_ME (date_fmt): Remove newline. + * locales/sr_RS (date_fmt): Likewise. + * locales/sr_RS@latin (date_fmt): Likewise. + +Index: glibc-2.23/localedata/locales/sr_ME +=================================================================== +--- glibc-2.23.orig/localedata/locales/sr_ME ++++ glibc-2.23/localedata/locales/sr_ME +@@ -119,7 +119,7 @@ am_pm "";"" + t_fmt_ampm "" + date_fmt "/ + / +-" ++" + week 7;19971130;4 + first_weekday 2 + first_workday 2 +Index: glibc-2.23/localedata/locales/sr_RS +=================================================================== +--- glibc-2.23.orig/localedata/locales/sr_RS ++++ glibc-2.23/localedata/locales/sr_RS +@@ -300,7 +300,7 @@ am_pm "";"" + t_fmt_ampm "" + date_fmt "/ + / +-" ++" + week 7;19971130;4 + first_weekday 2 + first_workday 2 +Index: glibc-2.23/localedata/locales/sr_RS@latin +=================================================================== +--- glibc-2.23.orig/localedata/locales/sr_RS@latin ++++ glibc-2.23/localedata/locales/sr_RS@latin +@@ -120,7 +120,7 @@ am_pm "";"" + t_fmt_ampm "" + date_fmt "/ + / +-" ++" + week 7;19971130;4 + first_weekday 2 + first_workday 2 diff --git a/0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch b/0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch new file mode 100644 index 0000000..12bde6f --- /dev/null +++ b/0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch @@ -0,0 +1,150 @@ +Index: glibc-2.23/elf/Makefile +=================================================================== +--- glibc-2.23.orig/elf/Makefile ++++ glibc-2.23/elf/Makefile +@@ -149,7 +149,7 @@ tests += loadtest restest1 preloadtest l + tst-nodelete) \ + tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \ + tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ +- tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error ++ tst-nodelete2 tst-audit11 tst-audit12 + # reldep9 + ifeq ($(build-hardcoded-path-in-tests),yes) + tests += tst-dlopen-aout +@@ -1257,5 +1257,3 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin + $(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig + $(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \ + $(evaluate-test) +- +-$(objpfx)tst-dlsym-error: $(libdl) +Index: glibc-2.23/elf/dl-lookup.c +=================================================================== +--- glibc-2.23.orig/elf/dl-lookup.c ++++ glibc-2.23/elf/dl-lookup.c +@@ -858,6 +858,7 @@ _dl_lookup_symbol_x (const char *undef_n + if (__glibc_unlikely (current_value.s == NULL)) + { + if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) ++ && skip_map == NULL + && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) + { + /* We could find no value for a strong reference. */ +Index: glibc-2.23/elf/tst-dlsym-error.c +=================================================================== +--- glibc-2.23.orig/elf/tst-dlsym-error.c ++++ /dev/null +@@ -1,114 +0,0 @@ +-/* Test error reporting for dlsym, dlvsym failures. +- Copyright (C) 2016 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +-#include +-#include +- +-/* Used to disambiguate symbol names. */ +-static int counter; +- +-static void +-test_one (void *handle, const char *name, void *(func) (void *, const char *), +- const char *suffix) +-{ +- ++counter; +- char symbol[32]; +- snprintf (symbol, sizeof (symbol), "no_such_symbol_%d", counter); +- char *expected_message; +- if (asprintf (&expected_message, ": undefined symbol: %s%s", +- symbol, suffix) < 0) +- { +- printf ("error: asprintf: %m\n"); +- abort (); +- } +- +- void *addr = func (handle, symbol); +- if (addr != NULL) +- { +- printf ("error: %s: found symbol \"no_such_symbol\"\n", name); +- abort (); +- } +- const char *message = dlerror (); +- if (message == NULL) +- { +- printf ("error: %s: missing error message\n", name); +- abort (); +- } +- const char *message_without_path = strchrnul (message, ':'); +- if (strcmp (message_without_path, expected_message) != 0) +- { +- printf ("error: %s: unexpected error message: %s\n", name, message); +- abort (); +- } +- free (expected_message); +- +- message = dlerror (); +- if (message != NULL) +- { +- printf ("error: %s: unexpected error message: %s\n", name, message); +- abort (); +- } +-} +- +-static void +-test_handles (const char *name, void *(func) (void *, const char *), +- const char *suffix) +-{ +- test_one (RTLD_DEFAULT, name, func, suffix); +- test_one (RTLD_NEXT, name, func, suffix); +- +- void *handle = dlopen (LIBC_SO, RTLD_LAZY); +- if (handle == NULL) +- { +- printf ("error: cannot dlopen %s: %s\n", LIBC_SO, dlerror ()); +- abort (); +- } +- test_one (handle, name, func, suffix); +- dlclose (handle); +-} +- +-static void * +-dlvsym_no_such_version (void *handle, const char *name) +-{ +- return dlvsym (handle, name, "NO_SUCH_VERSION"); +-} +- +-static void * +-dlvsym_glibc_private (void *handle, const char *name) +-{ +- return dlvsym (handle, name, "GLIBC_PRIVATE"); +-} +- +-static int +-do_test (void) +-{ +- test_handles ("dlsym", dlsym, ""); +- test_handles ("dlvsym", dlvsym_no_such_version, +- ", version NO_SUCH_VERSION"); +- test_handles ("dlvsym", dlvsym_glibc_private, +- ", version GLIBC_PRIVATE"); +- +- return 0; +-} +- +- +-#define TEST_FUNCTION do_test () +-#include "../test-skeleton.c" diff --git a/0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch b/0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch new file mode 100644 index 0000000..856d198 --- /dev/null +++ b/0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch @@ -0,0 +1,175 @@ +2016-04-29 Florian Weimer + + [BZ #20010] + CVE-2016-3706 + * sysdeps/posix/getaddrinfo.c + (convert_hostent_to_gaih_addrtuple): New function. + (gethosts): Call convert_hostent_to_gaih_addrtuple. + (gaih_inet): Use convert_hostent_to_gaih_addrtuple to convert + AF_INET data. + +Index: glibc-2.23/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.23.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.23/sysdeps/posix/getaddrinfo.c +@@ -168,9 +168,58 @@ gaih_inet_serv (const char *servicename, + return 0; + } + ++/* Convert struct hostent to a list of struct gaih_addrtuple objects. ++ h_name is not copied, and the struct hostent object must not be ++ deallocated prematurely. *RESULT must be NULL or a pointer to an ++ object allocated using malloc, which is freed. */ ++static bool ++convert_hostent_to_gaih_addrtuple (const struct addrinfo *req, ++ int family, ++ struct hostent *h, ++ struct gaih_addrtuple **result) ++{ ++ free (*result); ++ *result = NULL; ++ ++ /* Count the number of addresses in h->h_addr_list. */ ++ size_t count = 0; ++ for (char **p = h->h_addr_list; *p != NULL; ++p) ++ ++count; ++ ++ /* Report no data if no addresses are available, or if the incoming ++ address size is larger than what we can store. */ ++ if (count == 0 || h->h_length > sizeof (((struct gaih_addrtuple) {}).addr)) ++ return true; ++ ++ struct gaih_addrtuple *array = calloc (count, sizeof (*array)); ++ if (array == NULL) ++ return false; ++ ++ for (size_t i = 0; i < count; ++i) ++ { ++ if (family == AF_INET && req->ai_family == AF_INET6) ++ { ++ /* Perform address mapping. */ ++ array[i].family = AF_INET6; ++ memcpy(array[i].addr + 3, h->h_addr_list[i], sizeof (uint32_t)); ++ array[i].addr[2] = htonl (0xffff); ++ } ++ else ++ { ++ array[i].family = family; ++ memcpy (array[i].addr, h->h_addr_list[i], h->h_length); ++ } ++ array[i].next = array + i + 1; ++ } ++ array[0].name = h->h_name; ++ array[count - 1].next = NULL; ++ ++ *result = array; ++ return true; ++} ++ + #define gethosts(_family, _type) \ + { \ +- int i; \ + int herrno; \ + struct hostent th; \ + struct hostent *h; \ +@@ -219,36 +268,23 @@ gaih_inet_serv (const char *servicename, + } \ + else if (h != NULL) \ + { \ +- for (i = 0; h->h_addr_list[i]; i++) \ ++ /* Make sure that addrmem can be freed. */ \ ++ if (!malloc_addrmem) \ ++ addrmem = NULL; \ ++ if (!convert_hostent_to_gaih_addrtuple (req, _family,h, &addrmem)) \ + { \ +- if (*pat == NULL) \ +- { \ +- *pat = __alloca (sizeof (struct gaih_addrtuple)); \ +- (*pat)->scopeid = 0; \ +- } \ +- uint32_t *addr = (*pat)->addr; \ +- (*pat)->next = NULL; \ +- (*pat)->name = i == 0 ? strdupa (h->h_name) : NULL; \ +- if (_family == AF_INET && req->ai_family == AF_INET6) \ +- { \ +- (*pat)->family = AF_INET6; \ +- addr[3] = *(uint32_t *) h->h_addr_list[i]; \ +- addr[2] = htonl (0xffff); \ +- addr[1] = 0; \ +- addr[0] = 0; \ +- } \ +- else \ +- { \ +- (*pat)->family = _family; \ +- memcpy (addr, h->h_addr_list[i], sizeof(_type)); \ +- } \ +- pat = &((*pat)->next); \ ++ _res.options |= old_res_options & RES_USE_INET6; \ ++ result = -EAI_SYSTEM; \ ++ goto free_and_return; \ + } \ ++ *pat = addrmem; \ ++ /* The conversion uses malloc unconditionally. */ \ ++ malloc_addrmem = true; \ + \ + if (localcanon != NULL && canon == NULL) \ + canon = strdupa (localcanon); \ + \ +- if (_family == AF_INET6 && i > 0) \ ++ if (_family == AF_INET6 && *pat != NULL) \ + got_ipv6 = true; \ + } \ + } +@@ -612,44 +648,16 @@ gaih_inet (const char *name, const struc + { + if (h != NULL) + { +- int i; +- /* We found data, count the number of addresses. */ +- for (i = 0; h->h_addr_list[i]; ++i) +- ; +- if (i > 0 && *pat != NULL) +- --i; +- +- if (__libc_use_alloca (alloca_used +- + i * sizeof (struct gaih_addrtuple))) +- addrmem = alloca_account (i * sizeof (struct gaih_addrtuple), +- alloca_used); +- else ++ /* We found data, convert it. */ ++ if (!convert_hostent_to_gaih_addrtuple ++ (req, AF_INET, h, &addrmem)) + { +- addrmem = malloc (i +- * sizeof (struct gaih_addrtuple)); +- if (addrmem == NULL) +- { +- result = -EAI_MEMORY; +- goto free_and_return; +- } +- malloc_addrmem = true; +- } +- +- /* Now convert it into the list. */ +- struct gaih_addrtuple *addrfree = addrmem; +- for (i = 0; h->h_addr_list[i]; ++i) +- { +- if (*pat == NULL) +- { +- *pat = addrfree++; +- (*pat)->scopeid = 0; +- } +- (*pat)->next = NULL; +- (*pat)->family = AF_INET; +- memcpy ((*pat)->addr, h->h_addr_list[i], +- h->h_length); +- pat = &((*pat)->next); ++ result = -EAI_MEMORY; ++ goto free_and_return; + } ++ *pat = addrmem; ++ /* The conversion uses malloc unconditionally. */ ++ malloc_addrmem = true; + } + } + else diff --git a/0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch b/0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch new file mode 100644 index 0000000..29897aa --- /dev/null +++ b/0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch @@ -0,0 +1,41 @@ +2016-04-14 Stefan Liebler + + * stdio-common/printf_fp.c (__printf_fp_l): + Rename ___printf_fp_l to __printf_fp_l and + remove strong alias. Use libc_hidden_def instead + of ldbl_hidden_def macro. + +Index: glibc-2.23/stdio-common/printf_fp.c +=================================================================== +--- glibc-2.23.orig/stdio-common/printf_fp.c ++++ glibc-2.23/stdio-common/printf_fp.c +@@ -209,9 +209,9 @@ hack_digit (struct hack_digit_param *p) + } + + int +-___printf_fp_l (FILE *fp, locale_t loc, +- const struct printf_info *info, +- const void *const *args) ++__printf_fp_l (FILE *fp, locale_t loc, ++ const struct printf_info *info, ++ const void *const *args) + { + /* The floating-point value to output. */ + union +@@ -1248,14 +1248,13 @@ ___printf_fp_l (FILE *fp, locale_t loc, + } + return done; + } +-ldbl_hidden_def (___printf_fp_l, __printf_fp_l) +-ldbl_strong_alias (___printf_fp_l, __printf_fp_l) ++libc_hidden_def (__printf_fp_l) + + int + ___printf_fp (FILE *fp, const struct printf_info *info, + const void *const *args) + { +- return ___printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args); ++ return __printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args); + } + ldbl_hidden_def (___printf_fp, __printf_fp) + ldbl_strong_alias (___printf_fp, __printf_fp) diff --git a/_service b/_service new file mode 100644 index 0000000..1aa053b --- /dev/null +++ b/_service @@ -0,0 +1,15 @@ + + + 2.23.90.%cd.g%h + git://sourceware.org/git/glibc + git + + + + xz + *.tar + + + glibc + + diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index a3bdd8c..4d5120f 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6a14542a109c83551de0684d5ce7896e9574b8a6582ff1ed51a46b9897088a4 -size 328969 +oid sha256:88419776f97fb76adac25cec0540b5be19c90d7a745cd56512f79bb523b7da37 +size 328722 diff --git a/glibc-c-utf8-locale.patch b/glibc-c-utf8-locale.patch index 2aa622b..13f6318 100644 --- a/glibc-c-utf8-locale.patch +++ b/glibc-c-utf8-locale.patch @@ -44,18 +44,18 @@ index 0000000..fdf460e +revision "1.0" +date "2015-08-10" +% -+category "C:2015";LC_IDENTIFICATION -+category "C:2015";LC_CTYPE -+category "C:2015";LC_COLLATE -+category "C:2015";LC_TIME -+category "C:2015";LC_NUMERIC -+category "C:2015";LC_MONETARY -+category "C:2015";LC_MESSAGES -+category "C:2015";LC_PAPER -+category "C:2015";LC_NAME -+category "C:2015";LC_ADDRESS -+category "C:2015";LC_TELEPHONE -+category "C:2015";LC_MEASUREMENT ++category "i18n:2012";LC_IDENTIFICATION ++category "i18n:2012";LC_CTYPE ++category "i18n:2012";LC_COLLATE ++category "i18n:2012";LC_TIME ++category "i18n:2012";LC_NUMERIC ++category "i18n:2012";LC_MONETARY ++category "i18n:2012";LC_MESSAGES ++category "i18n:2012";LC_PAPER ++category "i18n:2012";LC_NAME ++category "i18n:2012";LC_ADDRESS ++category "i18n:2012";LC_TELEPHONE ++category "i18n:2012";LC_MEASUREMENT +END LC_IDENTIFICATION + +LC_CTYPE @@ -265,6 +265,3 @@ index 0000000..fdf460e +measurement 1 +END LC_MEASUREMENT + --- -2.4.3 - diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 2e3e737..e2af952 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,77 @@ +------------------------------------------------------------------- +Wed May 11 09:33:47 UTC 2016 - schwab@suse.de + +- Import patches from 2.23 branch + 0001-Updated-translations-for-2.23.patch + 0002-Regenerate-libc.pot-for-2.23.patch + 0003-Regenerated-configure-scripts.patch + 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch + 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch + 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch + 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch + 0008-Update-NEWS.patch + 0009-sln-use-stat64.patch + 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch + 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch + 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch + 0013-Mention-BZ-19762-in-NEWS.patch + 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch + 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch + 0016-Fix-resource-leak-in-resolver-bug-19257.patch + 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch + 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch + 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch + 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch + 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch + 0022-configure-fix-test-usage.patch + 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch + 0025-getnameinfo-Do-not-preserve-errno.patch + 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch + 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch + 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch + 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch + 0030-hesiod-Remove-RCS-keywords.patch + 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch + 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch + 0033-malloc-Remove-NO_THREADS.patch + 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch + 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch + 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch + 0037-malloc-Add-missing-internal_function-attributes-on-f.patch + 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch + 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch + 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch + 0041-nss_dns-Check-address-length-before-creating-addrinf.patch + 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch + 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch + 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch + 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch + 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch + 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch + 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch + 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch + 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch + 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch + 0052-Fix-tst-dlsym-error-build.patch + 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch + 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch + 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch + 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch +- CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 +- resolv-mem-leak.patch: renamed to + 0016-Fix-resource-leak-in-resolver-bug-19257.patch +- no-long-double.patch: renamed to + 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch +- glibc-gcc6.patch: renamed to + 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + +------------------------------------------------------------------- +Mon May 9 14:00:41 UTC 2016 - schwab@suse.de + +- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories +- glibc-2.3.locales.diff.bz2: likewise + ------------------------------------------------------------------- Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 4615d9b..3582f1d 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -16,6 +16,8 @@ # +%define build_snapshot 0 + # PLEASE run pre_checkin.sh in this directory before submitting # this package. Otherwise the .spec and .changes for glibc-testsuite # and glibc-utils aren't updated. @@ -105,12 +107,19 @@ BuildRequires: gd-devel Version: 2.23 Release: 0 +%if !%{build_snapshot} %define git_id 10ed3a0ffbb4 +%define libversion %version +%else +%define git_id %(echo %version | sed 's/.*\.g//') +%define libversion %(echo %version | sed 's/\.[^.]*\.g.*//') +%endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -#Source: glibc-%{version}-%{git_id}.tar.xz Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +%if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%endif Source2: glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -240,12 +249,63 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch1000: resolv-mem-leak.patch -# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE -Patch1001: no-long-double.patch -# PATCH-FIX-UPSTREAM Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses -Patch1002: glibc-gcc6.patch +# PATCH-FIX-UPSTREAM Patches from 2.23 branch +Patch1000: 0001-Updated-translations-for-2.23.patch +Patch1001: 0002-Regenerate-libc.pot-for-2.23.patch +Patch1002: 0003-Regenerated-configure-scripts.patch +Patch1003: 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch +Patch1004: 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch +Patch1005: 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch +Patch1006: 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch +Patch1007: 0008-Update-NEWS.patch +Patch1008: 0009-sln-use-stat64.patch +Patch1009: 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch +Patch1010: 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch +Patch1011: 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch +Patch1012: 0013-Mention-BZ-19762-in-NEWS.patch +Patch1013: 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch +Patch1014: 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch +Patch1015: 0016-Fix-resource-leak-in-resolver-bug-19257.patch +Patch1016: 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch +Patch1017: 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch +Patch1018: 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch +Patch1019: 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch +Patch1020: 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch +Patch1021: 0022-configure-fix-test-usage.patch +Patch1022: 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch +Patch1023: 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch +Patch1024: 0025-getnameinfo-Do-not-preserve-errno.patch +Patch1025: 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch +Patch1026: 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch +Patch1027: 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch +Patch1028: 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch +Patch1029: 0030-hesiod-Remove-RCS-keywords.patch +Patch1030: 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch +Patch1031: 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch +Patch1032: 0033-malloc-Remove-NO_THREADS.patch +Patch1033: 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch +Patch1034: 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch +Patch1035: 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch +Patch1036: 0037-malloc-Add-missing-internal_function-attributes-on-f.patch +Patch1037: 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch +Patch1038: 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch +Patch1039: 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch +Patch1040: 0041-nss_dns-Check-address-length-before-creating-addrinf.patch +Patch1041: 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch +Patch1042: 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch +Patch1043: 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch +Patch1044: 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch +Patch1045: 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch +Patch1046: 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch +Patch1047: 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch +Patch1048: 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch +Patch1049: 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch +Patch1050: 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch +Patch1051: 0052-Fix-tst-dlsym-error-build.patch +Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch +Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch +Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch +Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch ### # Patches awaiting upstream approval @@ -387,7 +447,7 @@ License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier -Provides: %{name}-static = %version +Provides: %{name}-static = %{version} %description devel-static The glibc-devel-static package contains the C library static libraries @@ -471,6 +531,59 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 +%patch1020 -p1 +%patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 +%patch1024 -p1 +%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 +%patch1028 -p1 +%patch1029 -p1 +%patch1030 -p1 +%patch1031 -p1 +%patch1032 -p1 +%patch1033 -p1 +%patch1034 -p1 +%patch1035 -p1 +%patch1036 -p1 +%patch1037 -p1 +%patch1038 -p1 +%patch1039 -p1 +%patch1040 -p1 +%patch1041 -p1 +%patch1042 -p1 +%patch1043 -p1 +%patch1044 -p1 +%patch1045 -p1 +%patch1046 -p1 +%patch1047 -p1 +%patch1048 -p1 +%patch1049 -p1 +%patch1050 -p1 +%patch1051 -p1 +%patch1052 -p1 +%patch1053 -p1 +%patch1054 -p1 +%patch1055 -p1 %patch2000 -p1 %patch2001 -p1 @@ -847,7 +960,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{libversion}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -962,7 +1075,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1097,7 +1210,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{version}.so +/%{_lib}/ld-%{libversion}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1140,62 +1253,62 @@ exit 0 /%{_lib}/*-lsb*.so.3 %endif -/%{_lib}/libBrokenLocale-%{version}.so +/%{_lib}/libBrokenLocale-%{libversion}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{version}.so +/%{_lib}/libanl-%{libversion}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{version}.so +/%{_lib}/libc-%{libversion}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{version}.so +/%{_lib}/libcidn-%{libversion}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{version}.so +/%{_lib}/libcrypt-%{libversion}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{version}.so +/%{_lib}/libowcrypt-%{libversion}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{version}.so +/%{_lib}/libdl-%{libversion}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{version}.so +/%{_lib}/libm-%{libversion}.so /%{_lib}/libm.so.6* %ifarch x86_64 -/%{_lib}/libmvec-%{version}.so +/%{_lib}/libmvec-%{libversion}.so /%{_lib}/libmvec.so.1 %endif -/%{_lib}/libnsl-%{version}.so +/%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{version}.so +/%{_lib}/libnss_compat-%{libversion}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{version}.so +/%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{version}.so +/%{_lib}/libnss_dns-%{libversion}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{version}.so +/%{_lib}/libnss_files-%{libversion}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{version}.so +/%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{version}.so +/%{_lib}/libnss_nis-%{libversion}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{version}.so +/%{_lib}/libnss_nisplus-%{libversion}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{version}.so +/%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{version}.so +/%{_lib}/libresolv-%{libversion}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{version}.so +/%{_lib}/librt-%{libversion}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{version}.so +/%{_lib}/libutil-%{libversion}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{version}.so\ + /%{_lib}/%1/libc-%{libversion}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{version}.so\ + /%{_lib}/%1/libm-%{libversion}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{version}.so\ + /%{_lib}/%1/libpthread-%{libversion}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{version}.so\ + /%{_lib}/%1/librt-%{libversion}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 2e3e737..e2af952 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,77 @@ +------------------------------------------------------------------- +Wed May 11 09:33:47 UTC 2016 - schwab@suse.de + +- Import patches from 2.23 branch + 0001-Updated-translations-for-2.23.patch + 0002-Regenerate-libc.pot-for-2.23.patch + 0003-Regenerated-configure-scripts.patch + 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch + 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch + 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch + 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch + 0008-Update-NEWS.patch + 0009-sln-use-stat64.patch + 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch + 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch + 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch + 0013-Mention-BZ-19762-in-NEWS.patch + 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch + 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch + 0016-Fix-resource-leak-in-resolver-bug-19257.patch + 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch + 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch + 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch + 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch + 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch + 0022-configure-fix-test-usage.patch + 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch + 0025-getnameinfo-Do-not-preserve-errno.patch + 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch + 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch + 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch + 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch + 0030-hesiod-Remove-RCS-keywords.patch + 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch + 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch + 0033-malloc-Remove-NO_THREADS.patch + 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch + 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch + 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch + 0037-malloc-Add-missing-internal_function-attributes-on-f.patch + 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch + 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch + 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch + 0041-nss_dns-Check-address-length-before-creating-addrinf.patch + 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch + 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch + 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch + 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch + 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch + 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch + 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch + 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch + 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch + 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch + 0052-Fix-tst-dlsym-error-build.patch + 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch + 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch + 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch + 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch +- CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 +- resolv-mem-leak.patch: renamed to + 0016-Fix-resource-leak-in-resolver-bug-19257.patch +- no-long-double.patch: renamed to + 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch +- glibc-gcc6.patch: renamed to + 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + +------------------------------------------------------------------- +Mon May 9 14:00:41 UTC 2016 - schwab@suse.de + +- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories +- glibc-2.3.locales.diff.bz2: likewise + ------------------------------------------------------------------- Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com diff --git a/glibc-utils.spec b/glibc-utils.spec index 32cbea0..572ca31 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -16,6 +16,8 @@ # +%define build_snapshot 0 + # PLEASE run pre_checkin.sh in this directory before submitting # this package. Otherwise the .spec and .changes for glibc-testsuite # and glibc-utils aren't updated. @@ -104,12 +106,19 @@ BuildRequires: gd-devel Version: 2.23 Release: 0 +%if !%{build_snapshot} %define git_id 10ed3a0ffbb4 +%define libversion %version +%else +%define git_id %(echo %version | sed 's/.*\.g//') +%define libversion %(echo %version | sed 's/\.[^.]*\.g.*//') +%endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -#Source: glibc-%{version}-%{git_id}.tar.xz Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +%if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%endif Source2: glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -239,12 +248,63 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch1000: resolv-mem-leak.patch -# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE -Patch1001: no-long-double.patch -# PATCH-FIX-UPSTREAM Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses -Patch1002: glibc-gcc6.patch +# PATCH-FIX-UPSTREAM Patches from 2.23 branch +Patch1000: 0001-Updated-translations-for-2.23.patch +Patch1001: 0002-Regenerate-libc.pot-for-2.23.patch +Patch1002: 0003-Regenerated-configure-scripts.patch +Patch1003: 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch +Patch1004: 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch +Patch1005: 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch +Patch1006: 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch +Patch1007: 0008-Update-NEWS.patch +Patch1008: 0009-sln-use-stat64.patch +Patch1009: 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch +Patch1010: 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch +Patch1011: 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch +Patch1012: 0013-Mention-BZ-19762-in-NEWS.patch +Patch1013: 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch +Patch1014: 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch +Patch1015: 0016-Fix-resource-leak-in-resolver-bug-19257.patch +Patch1016: 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch +Patch1017: 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch +Patch1018: 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch +Patch1019: 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch +Patch1020: 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch +Patch1021: 0022-configure-fix-test-usage.patch +Patch1022: 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch +Patch1023: 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch +Patch1024: 0025-getnameinfo-Do-not-preserve-errno.patch +Patch1025: 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch +Patch1026: 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch +Patch1027: 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch +Patch1028: 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch +Patch1029: 0030-hesiod-Remove-RCS-keywords.patch +Patch1030: 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch +Patch1031: 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch +Patch1032: 0033-malloc-Remove-NO_THREADS.patch +Patch1033: 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch +Patch1034: 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch +Patch1035: 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch +Patch1036: 0037-malloc-Add-missing-internal_function-attributes-on-f.patch +Patch1037: 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch +Patch1038: 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch +Patch1039: 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch +Patch1040: 0041-nss_dns-Check-address-length-before-creating-addrinf.patch +Patch1041: 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch +Patch1042: 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch +Patch1043: 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch +Patch1044: 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch +Patch1045: 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch +Patch1046: 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch +Patch1047: 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch +Patch1048: 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch +Patch1049: 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch +Patch1050: 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch +Patch1051: 0052-Fix-tst-dlsym-error-build.patch +Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch +Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch +Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch +Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch ### # Patches awaiting upstream approval @@ -387,7 +447,7 @@ License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier -Provides: %{name}-static = %version +Provides: %{name}-static = %{version} %description devel-static The glibc-devel-static package contains the C library static libraries @@ -471,6 +531,59 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 +%patch1020 -p1 +%patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 +%patch1024 -p1 +%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 +%patch1028 -p1 +%patch1029 -p1 +%patch1030 -p1 +%patch1031 -p1 +%patch1032 -p1 +%patch1033 -p1 +%patch1034 -p1 +%patch1035 -p1 +%patch1036 -p1 +%patch1037 -p1 +%patch1038 -p1 +%patch1039 -p1 +%patch1040 -p1 +%patch1041 -p1 +%patch1042 -p1 +%patch1043 -p1 +%patch1044 -p1 +%patch1045 -p1 +%patch1046 -p1 +%patch1047 -p1 +%patch1048 -p1 +%patch1049 -p1 +%patch1050 -p1 +%patch1051 -p1 +%patch1052 -p1 +%patch1053 -p1 +%patch1054 -p1 +%patch1055 -p1 %patch2000 -p1 %patch2001 -p1 @@ -847,7 +960,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{libversion}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -962,7 +1075,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1097,7 +1210,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{version}.so +/%{_lib}/ld-%{libversion}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1140,62 +1253,62 @@ exit 0 /%{_lib}/*-lsb*.so.3 %endif -/%{_lib}/libBrokenLocale-%{version}.so +/%{_lib}/libBrokenLocale-%{libversion}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{version}.so +/%{_lib}/libanl-%{libversion}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{version}.so +/%{_lib}/libc-%{libversion}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{version}.so +/%{_lib}/libcidn-%{libversion}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{version}.so +/%{_lib}/libcrypt-%{libversion}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{version}.so +/%{_lib}/libowcrypt-%{libversion}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{version}.so +/%{_lib}/libdl-%{libversion}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{version}.so +/%{_lib}/libm-%{libversion}.so /%{_lib}/libm.so.6* %ifarch x86_64 -/%{_lib}/libmvec-%{version}.so +/%{_lib}/libmvec-%{libversion}.so /%{_lib}/libmvec.so.1 %endif -/%{_lib}/libnsl-%{version}.so +/%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{version}.so +/%{_lib}/libnss_compat-%{libversion}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{version}.so +/%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{version}.so +/%{_lib}/libnss_dns-%{libversion}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{version}.so +/%{_lib}/libnss_files-%{libversion}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{version}.so +/%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{version}.so +/%{_lib}/libnss_nis-%{libversion}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{version}.so +/%{_lib}/libnss_nisplus-%{libversion}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{version}.so +/%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{version}.so +/%{_lib}/libresolv-%{libversion}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{version}.so +/%{_lib}/librt-%{libversion}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{version}.so +/%{_lib}/libutil-%{libversion}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{version}.so\ + /%{_lib}/%1/libc-%{libversion}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{version}.so\ + /%{_lib}/%1/libm-%{libversion}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{version}.so\ + /%{_lib}/%1/libpthread-%{libversion}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{version}.so\ + /%{_lib}/%1/librt-%{libversion}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/glibc.changes b/glibc.changes index 2e3e737..e2af952 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,77 @@ +------------------------------------------------------------------- +Wed May 11 09:33:47 UTC 2016 - schwab@suse.de + +- Import patches from 2.23 branch + 0001-Updated-translations-for-2.23.patch + 0002-Regenerate-libc.pot-for-2.23.patch + 0003-Regenerated-configure-scripts.patch + 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch + 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch + 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch + 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch + 0008-Update-NEWS.patch + 0009-sln-use-stat64.patch + 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch + 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch + 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch + 0013-Mention-BZ-19762-in-NEWS.patch + 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch + 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch + 0016-Fix-resource-leak-in-resolver-bug-19257.patch + 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch + 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch + 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch + 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch + 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch + 0022-configure-fix-test-usage.patch + 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch + 0025-getnameinfo-Do-not-preserve-errno.patch + 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch + 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch + 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch + 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch + 0030-hesiod-Remove-RCS-keywords.patch + 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch + 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch + 0033-malloc-Remove-NO_THREADS.patch + 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch + 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch + 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch + 0037-malloc-Add-missing-internal_function-attributes-on-f.patch + 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch + 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch + 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch + 0041-nss_dns-Check-address-length-before-creating-addrinf.patch + 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch + 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch + 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch + 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch + 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch + 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch + 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch + 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch + 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch + 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch + 0052-Fix-tst-dlsym-error-build.patch + 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch + 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch + 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch + 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch +- CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 +- resolv-mem-leak.patch: renamed to + 0016-Fix-resource-leak-in-resolver-bug-19257.patch +- no-long-double.patch: renamed to + 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch +- glibc-gcc6.patch: renamed to + 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + +------------------------------------------------------------------- +Mon May 9 14:00:41 UTC 2016 - schwab@suse.de + +- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories +- glibc-2.3.locales.diff.bz2: likewise + ------------------------------------------------------------------- Mon Apr 25 08:55:47 UTC 2016 - jslaby@suse.com diff --git a/glibc.spec b/glibc.spec index 3b320c7..804c5ba 100644 --- a/glibc.spec +++ b/glibc.spec @@ -16,6 +16,8 @@ # +%define build_snapshot 0 + # PLEASE run pre_checkin.sh in this directory before submitting # this package. Otherwise the .spec and .changes for glibc-testsuite # and glibc-utils aren't updated. @@ -105,12 +107,19 @@ BuildRequires: gd-devel Version: 2.23 Release: 0 +%if !%{build_snapshot} %define git_id 10ed3a0ffbb4 +%define libversion %version +%else +%define git_id %(echo %version | sed 's/.*\.g//') +%define libversion %(echo %version | sed 's/\.[^.]*\.g.*//') +%endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -#Source: glibc-%{version}-%{git_id}.tar.xz Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz +%if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%endif Source2: glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -240,12 +249,63 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch1000: resolv-mem-leak.patch -# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE -Patch1001: no-long-double.patch -# PATCH-FIX-UPSTREAM Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses -Patch1002: glibc-gcc6.patch +# PATCH-FIX-UPSTREAM Patches from 2.23 branch +Patch1000: 0001-Updated-translations-for-2.23.patch +Patch1001: 0002-Regenerate-libc.pot-for-2.23.patch +Patch1002: 0003-Regenerated-configure-scripts.patch +Patch1003: 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch +Patch1004: 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch +Patch1005: 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch +Patch1006: 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch +Patch1007: 0008-Update-NEWS.patch +Patch1008: 0009-sln-use-stat64.patch +Patch1009: 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch +Patch1010: 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch +Patch1011: 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch +Patch1012: 0013-Mention-BZ-19762-in-NEWS.patch +Patch1013: 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch +Patch1014: 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch +Patch1015: 0016-Fix-resource-leak-in-resolver-bug-19257.patch +Patch1016: 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch +Patch1017: 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch +Patch1018: 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch +Patch1019: 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch +Patch1020: 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch +Patch1021: 0022-configure-fix-test-usage.patch +Patch1022: 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch +Patch1023: 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch +Patch1024: 0025-getnameinfo-Do-not-preserve-errno.patch +Patch1025: 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch +Patch1026: 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch +Patch1027: 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch +Patch1028: 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch +Patch1029: 0030-hesiod-Remove-RCS-keywords.patch +Patch1030: 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch +Patch1031: 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch +Patch1032: 0033-malloc-Remove-NO_THREADS.patch +Patch1033: 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch +Patch1034: 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch +Patch1035: 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch +Patch1036: 0037-malloc-Add-missing-internal_function-attributes-on-f.patch +Patch1037: 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch +Patch1038: 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch +Patch1039: 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch +Patch1040: 0041-nss_dns-Check-address-length-before-creating-addrinf.patch +Patch1041: 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch +Patch1042: 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch +Patch1043: 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch +Patch1044: 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch +Patch1045: 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch +Patch1046: 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch +Patch1047: 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch +Patch1048: 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch +Patch1049: 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch +Patch1050: 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch +Patch1051: 0052-Fix-tst-dlsym-error-build.patch +Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch +Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch +Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch +Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch ### # Patches awaiting upstream approval @@ -387,7 +447,7 @@ License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier -Provides: %{name}-static = %version +Provides: %{name}-static = %{version} %description devel-static The glibc-devel-static package contains the C library static libraries @@ -471,6 +531,59 @@ rm nscd/s-stamp %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 +%patch1020 -p1 +%patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 +%patch1024 -p1 +%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 +%patch1028 -p1 +%patch1029 -p1 +%patch1030 -p1 +%patch1031 -p1 +%patch1032 -p1 +%patch1033 -p1 +%patch1034 -p1 +%patch1035 -p1 +%patch1036 -p1 +%patch1037 -p1 +%patch1038 -p1 +%patch1039 -p1 +%patch1040 -p1 +%patch1041 -p1 +%patch1042 -p1 +%patch1043 -p1 +%patch1044 -p1 +%patch1045 -p1 +%patch1046 -p1 +%patch1047 -p1 +%patch1048 -p1 +%patch1049 -p1 +%patch1050 -p1 +%patch1051 -p1 +%patch1052 -p1 +%patch1053 -p1 +%patch1054 -p1 +%patch1055 -p1 %patch2000 -p1 %patch2001 -p1 @@ -847,7 +960,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{libversion}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -962,7 +1075,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1097,7 +1210,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{version}.so +/%{_lib}/ld-%{libversion}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1140,62 +1253,62 @@ exit 0 /%{_lib}/*-lsb*.so.3 %endif -/%{_lib}/libBrokenLocale-%{version}.so +/%{_lib}/libBrokenLocale-%{libversion}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{version}.so +/%{_lib}/libanl-%{libversion}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{version}.so +/%{_lib}/libc-%{libversion}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{version}.so +/%{_lib}/libcidn-%{libversion}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{version}.so +/%{_lib}/libcrypt-%{libversion}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{version}.so +/%{_lib}/libowcrypt-%{libversion}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{version}.so +/%{_lib}/libdl-%{libversion}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{version}.so +/%{_lib}/libm-%{libversion}.so /%{_lib}/libm.so.6* %ifarch x86_64 -/%{_lib}/libmvec-%{version}.so +/%{_lib}/libmvec-%{libversion}.so /%{_lib}/libmvec.so.1 %endif -/%{_lib}/libnsl-%{version}.so +/%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{version}.so +/%{_lib}/libnss_compat-%{libversion}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{version}.so +/%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{version}.so +/%{_lib}/libnss_dns-%{libversion}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{version}.so +/%{_lib}/libnss_files-%{libversion}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{version}.so +/%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{version}.so +/%{_lib}/libnss_nis-%{libversion}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{version}.so +/%{_lib}/libnss_nisplus-%{libversion}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{version}.so +/%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{version}.so +/%{_lib}/libresolv-%{libversion}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{version}.so +/%{_lib}/librt-%{libversion}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{version}.so +/%{_lib}/libutil-%{libversion}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{version}.so\ + /%{_lib}/%1/libc-%{libversion}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{version}.so\ + /%{_lib}/%1/libm-%{libversion}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{version}.so\ + /%{_lib}/%1/libpthread-%{libversion}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{version}.so\ + /%{_lib}/%1/librt-%{libversion}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 From 2debe4de02e3bcbd10d5dfd1b7c5b249829814f243702460dd749dd9203c8abc Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 5 Jun 2016 12:17:28 +0000 Subject: [PATCH 194/204] Accepting request 398988 from Base:System - clntudp-call-alloca.patch: do not use alloca in clntudp_call (CVE-2016-4429, bsc#980854, BZ #20112) (forwarded request 398987 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/398988 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=203 --- clntudp-call-alloca.patch | 41 +++++++++++++++++++++++++++++++++++++++ glibc-testsuite.changes | 6 ++++++ glibc-testsuite.spec | 3 +++ glibc-utils.changes | 6 ++++++ glibc-utils.spec | 3 +++ glibc.changes | 6 ++++++ glibc.spec | 3 +++ 7 files changed, 68 insertions(+) create mode 100644 clntudp-call-alloca.patch diff --git a/clntudp-call-alloca.patch b/clntudp-call-alloca.patch new file mode 100644 index 0000000..c848131 --- /dev/null +++ b/clntudp-call-alloca.patch @@ -0,0 +1,41 @@ +2016-05-23 Florian Weimer + + CVE-2016-4429 + [BZ #20112] + * sunrpc/clnt_udp.c (clntudp_call): Use malloc/free for the error + payload. + +Index: glibc-2.23/sunrpc/clnt_udp.c +=================================================================== +--- glibc-2.23.orig/sunrpc/clnt_udp.c ++++ glibc-2.23/sunrpc/clnt_udp.c +@@ -391,9 +391,15 @@ send_again: + struct sock_extended_err *e; + struct sockaddr_in err_addr; + struct iovec iov; +- char *cbuf = (char *) alloca (outlen + 256); ++ char *cbuf = malloc (outlen + 256); + int ret; + ++ if (cbuf == NULL) ++ { ++ cu->cu_error.re_errno = errno; ++ return (cu->cu_error.re_status = RPC_CANTRECV); ++ } ++ + iov.iov_base = cbuf + 256; + iov.iov_len = outlen; + msg.msg_name = (void *) &err_addr; +@@ -418,10 +424,12 @@ send_again: + cmsg = CMSG_NXTHDR (&msg, cmsg)) + if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR) + { ++ free (cbuf); + e = (struct sock_extended_err *) CMSG_DATA(cmsg); + cu->cu_error.re_errno = e->ee_errno; + return (cu->cu_error.re_status = RPC_CANTRECV); + } ++ free (cbuf); + } + #endif + do diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index e2af952..99e1209 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 30 08:23:03 UTC 2016 - schwab@suse.de + +- clntudp-call-alloca.patch: do not use alloca in clntudp_call + (CVE-2016-4429, bsc#980854, BZ #20112) + ------------------------------------------------------------------- Wed May 11 09:33:47 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 3582f1d..f81a47f 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -306,6 +306,8 @@ Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch +# PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) +Patch1056: clntudp-call-alloca.patch ### # Patches awaiting upstream approval @@ -584,6 +586,7 @@ rm nscd/s-stamp %patch1053 -p1 %patch1054 -p1 %patch1055 -p1 +%patch1056 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index e2af952..99e1209 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 30 08:23:03 UTC 2016 - schwab@suse.de + +- clntudp-call-alloca.patch: do not use alloca in clntudp_call + (CVE-2016-4429, bsc#980854, BZ #20112) + ------------------------------------------------------------------- Wed May 11 09:33:47 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 572ca31..1b7ad53 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -305,6 +305,8 @@ Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch +# PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) +Patch1056: clntudp-call-alloca.patch ### # Patches awaiting upstream approval @@ -584,6 +586,7 @@ rm nscd/s-stamp %patch1053 -p1 %patch1054 -p1 %patch1055 -p1 +%patch1056 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc.changes b/glibc.changes index e2af952..99e1209 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 30 08:23:03 UTC 2016 - schwab@suse.de + +- clntudp-call-alloca.patch: do not use alloca in clntudp_call + (CVE-2016-4429, bsc#980854, BZ #20112) + ------------------------------------------------------------------- Wed May 11 09:33:47 UTC 2016 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 804c5ba..3187cfc 100644 --- a/glibc.spec +++ b/glibc.spec @@ -306,6 +306,8 @@ Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch +# PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) +Patch1056: clntudp-call-alloca.patch ### # Patches awaiting upstream approval @@ -584,6 +586,7 @@ rm nscd/s-stamp %patch1053 -p1 %patch1054 -p1 %patch1055 -p1 +%patch1056 -p1 %patch2000 -p1 %patch2001 -p1 From 0103a1896ab9fce096c56e0d51393d17447f0301ae92836e9c7f860215f3acc0 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 3 Jul 2016 10:17:24 +0000 Subject: [PATCH 195/204] Accepting request 401557 from Base:System - nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ #19755) (forwarded request 401556 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/401557 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=204 --- glibc-testsuite.changes | 11 +++++-- glibc-testsuite.spec | 5 +++ glibc-utils.changes | 11 +++++-- glibc-utils.spec | 5 +++ glibc.changes | 11 +++++-- glibc.spec | 5 +++ nscd-gc-crash.patch | 73 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 115 insertions(+), 6 deletions(-) create mode 100644 nscd-gc-crash.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 99e1209..8fad9b6 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de + +- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ + #19755) + ------------------------------------------------------------------- Mon May 30 08:23:03 UTC 2016 - schwab@suse.de @@ -295,7 +301,7 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de * The header is deprecated, and will be removed in a future release. * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 - bsc#940195 bsc#940332 + bsc#940195 bsc#940332 bsc#944494 bsc#968787 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch @@ -441,7 +447,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de and the LC_* variables), are more tightly checked for proper syntax * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions - * CVE-2013-7423 bsc#915526 bsc#934084 + * CVE-2013-7423 bsc#915526 bsc#934084 bsc#973010 - Patches from upstream removed * nss-dns-memleak.patch * sin-sign.patch @@ -466,6 +472,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de * resolv-dont-ignore-second-answer.patch * iconv-ibm-sentinel-check.patch - Remove sprof.1, and mtrace.1, now included in the man-pages package + (bsc#967190) ------------------------------------------------------------------- Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index f81a47f..b491508 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -308,6 +308,8 @@ Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch # PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) Patch1056: clntudp-call-alloca.patch +# PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) +Patch1057: nscd-gc-crash.patch ### # Patches awaiting upstream approval @@ -587,6 +589,7 @@ rm nscd/s-stamp %patch1054 -p1 %patch1055 -p1 %patch1056 -p1 +%patch1057 -p1 %patch2000 -p1 %patch2001 -p1 @@ -872,6 +875,8 @@ make -C cc-base -k check || { done < $sum done set -$o + # Fail build if there where compilation errors during testsuite run + test -f tests.sum } %else # This has to pass on all platforms! diff --git a/glibc-utils.changes b/glibc-utils.changes index 99e1209..8fad9b6 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de + +- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ + #19755) + ------------------------------------------------------------------- Mon May 30 08:23:03 UTC 2016 - schwab@suse.de @@ -295,7 +301,7 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de * The header is deprecated, and will be removed in a future release. * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 - bsc#940195 bsc#940332 + bsc#940195 bsc#940332 bsc#944494 bsc#968787 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch @@ -441,7 +447,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de and the LC_* variables), are more tightly checked for proper syntax * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions - * CVE-2013-7423 bsc#915526 bsc#934084 + * CVE-2013-7423 bsc#915526 bsc#934084 bsc#973010 - Patches from upstream removed * nss-dns-memleak.patch * sin-sign.patch @@ -466,6 +472,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de * resolv-dont-ignore-second-answer.patch * iconv-ibm-sentinel-check.patch - Remove sprof.1, and mtrace.1, now included in the man-pages package + (bsc#967190) ------------------------------------------------------------------- Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 1b7ad53..bdfd810 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -307,6 +307,8 @@ Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch # PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) Patch1056: clntudp-call-alloca.patch +# PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) +Patch1057: nscd-gc-crash.patch ### # Patches awaiting upstream approval @@ -587,6 +589,7 @@ rm nscd/s-stamp %patch1054 -p1 %patch1055 -p1 %patch1056 -p1 +%patch1057 -p1 %patch2000 -p1 %patch2001 -p1 @@ -872,6 +875,8 @@ make -C cc-base -k check || { done < $sum done set -$o + # Fail build if there where compilation errors during testsuite run + test -f tests.sum } %else # This has to pass on all platforms! diff --git a/glibc.changes b/glibc.changes index 99e1209..8fad9b6 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de + +- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ + #19755) + ------------------------------------------------------------------- Mon May 30 08:23:03 UTC 2016 - schwab@suse.de @@ -295,7 +301,7 @@ Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de * The header is deprecated, and will be removed in a future release. * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 - bsc#940195 bsc#940332 + bsc#940195 bsc#940332 bsc#944494 bsc#968787 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch @@ -441,7 +447,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de and the LC_* variables), are more tightly checked for proper syntax * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions - * CVE-2013-7423 bsc#915526 bsc#934084 + * CVE-2013-7423 bsc#915526 bsc#934084 bsc#973010 - Patches from upstream removed * nss-dns-memleak.patch * sin-sign.patch @@ -466,6 +472,7 @@ Mon Sep 8 09:48:26 UTC 2014 - schwab@suse.de * resolv-dont-ignore-second-answer.patch * iconv-ibm-sentinel-check.patch - Remove sprof.1, and mtrace.1, now included in the man-pages package + (bsc#967190) ------------------------------------------------------------------- Tue Sep 2 07:52:36 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 3187cfc..f1e5cf0 100644 --- a/glibc.spec +++ b/glibc.spec @@ -308,6 +308,8 @@ Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch # PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) Patch1056: clntudp-call-alloca.patch +# PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) +Patch1057: nscd-gc-crash.patch ### # Patches awaiting upstream approval @@ -587,6 +589,7 @@ rm nscd/s-stamp %patch1054 -p1 %patch1055 -p1 %patch1056 -p1 +%patch1057 -p1 %patch2000 -p1 %patch2001 -p1 @@ -872,6 +875,8 @@ make -C cc-base -k check || { done < $sum done set -$o + # Fail build if there where compilation errors during testsuite run + test -f tests.sum } %else # This has to pass on all platforms! diff --git a/nscd-gc-crash.patch b/nscd-gc-crash.patch new file mode 100644 index 0000000..cc842bc --- /dev/null +++ b/nscd-gc-crash.patch @@ -0,0 +1,73 @@ + [BZ #19755] + * nscd/pwdcache.c (cache_addpw): Lock prune_run_lock while adding + new entries in auto-propagate mode. + * nscd/grpcache.c (cache_addgr): Likewise. + +Index: glibc-2.23/nscd/grpcache.c +=================================================================== +--- glibc-2.23.orig/nscd/grpcache.c ++++ glibc-2.23/nscd/grpcache.c +@@ -205,10 +205,19 @@ cache_addgr (struct database_dyn *db, in + dataset = NULL; + + if (he == NULL) +- dataset = (struct dataset *) mempool_alloc (db, total + n, 1); ++ { ++ /* Prevent an INVALIDATE request from pruning the data between ++ the two calls to cache_add. */ ++ if (db->propagate) ++ pthread_mutex_lock (&db->prune_run_lock); ++ dataset = (struct dataset *) mempool_alloc (db, total + n, 1); ++ } + + if (dataset == NULL) + { ++ if (he == NULL && db->propagate) ++ pthread_mutex_unlock (&db->prune_run_lock); ++ + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +@@ -396,6 +405,8 @@ cache_addgr (struct database_dyn *db, in + + out: + pthread_rwlock_unlock (&db->lock); ++ if (he == NULL && db->propagate) ++ pthread_mutex_unlock (&db->prune_run_lock); + } + } + +Index: glibc-2.23/nscd/pwdcache.c +=================================================================== +--- glibc-2.23.orig/nscd/pwdcache.c ++++ glibc-2.23/nscd/pwdcache.c +@@ -198,10 +198,19 @@ cache_addpw (struct database_dyn *db, in + dataset = NULL; + + if (he == NULL) +- dataset = (struct dataset *) mempool_alloc (db, total + n, 1); ++ { ++ /* Prevent an INVALIDATE request from pruning the data between ++ the two calls to cache_add. */ ++ if (db->propagate) ++ pthread_mutex_lock (&db->prune_run_lock); ++ dataset = (struct dataset *) mempool_alloc (db, total + n, 1); ++ } + + if (dataset == NULL) + { ++ if (he == NULL && db->propagate) ++ pthread_mutex_unlock (&db->prune_run_lock); ++ + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +@@ -374,6 +383,8 @@ cache_addpw (struct database_dyn *db, in + + out: + pthread_rwlock_unlock (&db->lock); ++ if (he == NULL && db->propagate) ++ pthread_mutex_unlock (&db->prune_run_lock); + } + } + From b1c9f643aeb5739d56ff65fd96f5a5f36115471505cf684a7c5333c6b0cd2ed3 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sat, 16 Jul 2016 20:10:12 +0000 Subject: [PATCH 196/204] Accepting request 407108 from Base:System - strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for stncat on i586 (BZ #20260) - Update glibc.keyring - Unset MALLOC_CHECK_ during testsuite run - nsswitch.conf: Add fallback to files for passwd and group to prepare for libnsl removal. - nis-initgroups-status.patch: Return proper status from _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) - robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to check for timeout (bsc#985170, BZ #20263) (forwarded request 407107 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/407108 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=205 --- glibc-testsuite.changes | 22 ++++ glibc-testsuite.spec | 13 +- glibc-utils.changes | 22 ++++ glibc-utils.spec | 13 +- glibc.changes | 22 ++++ glibc.keyring | Bin 9425 -> 31153 bytes glibc.spec | 13 +- nis-initgroups-status.patch | 53 ++++++++ nsswitch.conf | 4 +- robust-mutex-deadlock.patch | 152 +++++++++++++++++++++++ strncat-avoid-array-bounds-warning.patch | 31 +++++ 11 files changed, 340 insertions(+), 5 deletions(-) create mode 100644 nis-initgroups-status.patch create mode 100644 robust-mutex-deadlock.patch create mode 100644 strncat-avoid-array-bounds-warning.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 8fad9b6..2ff2ee7 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de + +- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for + stncat on i586 (BZ #20260) +- Update glibc.keyring +- Unset MALLOC_CHECK_ during testsuite run + +------------------------------------------------------------------- +Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de + +- nsswitch.conf: Add fallback to files for passwd and group to prepare for + libnsl removal. + +------------------------------------------------------------------- +Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de + +- nis-initgroups-status.patch: Return proper status from + _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) +- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to + check for timeout (bsc#985170, BZ #20263) + ------------------------------------------------------------------- Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index b491508..fd0c742 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -120,7 +120,7 @@ Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig %endif -Source2: glibc.keyring +Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -310,6 +310,12 @@ Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch Patch1056: clntudp-call-alloca.patch # PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) Patch1057: nscd-gc-crash.patch +# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) +Patch1058: nis-initgroups-status.patch +# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) +Patch1059: robust-mutex-deadlock.patch +# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) +Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -590,6 +596,9 @@ rm nscd/s-stamp %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 +# The testsuite does its own malloc checking +unset MALLOC_CHECK_ make -C cc-base -k check || { cd cc-base o=$- diff --git a/glibc-utils.changes b/glibc-utils.changes index 8fad9b6..2ff2ee7 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de + +- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for + stncat on i586 (BZ #20260) +- Update glibc.keyring +- Unset MALLOC_CHECK_ during testsuite run + +------------------------------------------------------------------- +Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de + +- nsswitch.conf: Add fallback to files for passwd and group to prepare for + libnsl removal. + +------------------------------------------------------------------- +Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de + +- nis-initgroups-status.patch: Return proper status from + _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) +- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to + check for timeout (bsc#985170, BZ #20263) + ------------------------------------------------------------------- Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index bdfd810..1412c89 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -119,7 +119,7 @@ Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig %endif -Source2: glibc.keyring +Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -309,6 +309,12 @@ Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch Patch1056: clntudp-call-alloca.patch # PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) Patch1057: nscd-gc-crash.patch +# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) +Patch1058: nis-initgroups-status.patch +# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) +Patch1059: robust-mutex-deadlock.patch +# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) +Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -590,6 +596,9 @@ rm nscd/s-stamp %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 +# The testsuite does its own malloc checking +unset MALLOC_CHECK_ make -C cc-base -k check || { cd cc-base o=$- diff --git a/glibc.changes b/glibc.changes index 8fad9b6..2ff2ee7 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de + +- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for + stncat on i586 (BZ #20260) +- Update glibc.keyring +- Unset MALLOC_CHECK_ during testsuite run + +------------------------------------------------------------------- +Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de + +- nsswitch.conf: Add fallback to files for passwd and group to prepare for + libnsl removal. + +------------------------------------------------------------------- +Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de + +- nis-initgroups-status.patch: Return proper status from + _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) +- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to + check for timeout (bsc#985170, BZ #20263) + ------------------------------------------------------------------- Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring index 4de855c27a150de0cc37c29b2f9b4577f4c0bc9e97f48b3b573847b3caacce56..e070aa84aee0a70c7e718dca3ed735dd6edd77fb8864f1bda0ea9cd6a1bd9522 100644 GIT binary patch literal 31153 zcmb5VWk6iZwk^D{;7)LN5AG10;7+jM?(S|uf=h6BcZXm>65QQAK|%;FUz5Fa4rkwc z-uGVfqoJEMde*2~V~$xhI|U38QsHA88W;?)PDvURDYuPn_NAyNlVi93`&Od)WISDw zXR}2h4_#q$uVHnisR;^JCBx+|ROVYmY2q4+sxUC_eafva#bhX`f^6x4hf!-YE?a(r9X5(+rfCM9~|_bC$?2-7k)? z-?wT?eh)ctQ+Slta-}9|;v{L1vF0-yGXiYo+|n$}e^$X(lo+meHc!?#!Luw1iPC5J zE<1)B2}dDFj9#fam5iFReyCaT%MY%qfym2xlO^APrCwitL;r;!=U`AC1)R-wGs@6( zOi|d+#&NKVg7KpOqDBfq!MWVq*hSY>0ss{Z0IMe!vN3Wn)^{XUHZ*h9Hz4M7{QWHG z=j9lC{d*fKYP4+A76g!uS;#CL{DI}8t<-=$zYUwxpH6(YcIDZ9G=WnG{@IKZ(_ z4lf~X+}|g3al^&LHj6Ec=~*(!t{x`7EnhaGNn-06WQWG!gI{CpjH7}me8-51a`Cz& zsfFEu?R1{&XsZG^tQCbq_<@vETB8dP)$LcRo0MZj3EOLApbD{WjEhLl$zm(ZjX5z9*LG0@vhH&ouq2iDzsNlehC+a>$Jh3A>Ln0mEA~&;h3uF%{)#3Yskup7mV#lB` zk>6e6YiI-6C!$P#vBSbK(7QSAeam?|`0rB->xuqPvt(raACr_q$@hOfN$rs^z~Cn& zWwkPjiAt~A?X0R1>v+biqc-aNcY_1-3;IhpyL-%~WRelYg;jC4VGV;#K4TiMJ4cmg z6nDj-cgl%as2A?Wz{YMONxX7urEw*}G@YrgluV3pS5`-gR*I#QG7fUlaFgr1DdrdM z7)w83b$^6VDZ;q>_97)by8O(v5$Z4@a6neA8hAm z2tr2TADk80J|9e`MKRFuD)`s*;~n3<#~RSvsAkxzc^#X3v^dKRXf71PDe!`+NVjSB=3W+oO|34v>{HjGut)$W1McAmU_=U>X*9v7eBPq;OT% zE&rC5?WoL4rp=))NVs)R=@<#3qA>Z zRaD8n#879*+*QF?{&~xypamj;DD3iG>}#)yV{H+y-JB^mO9fN3@{QTL$Jy-jh)-u7 zjAyFGZMC778B)G(y+jm{zD}_3TLgmN5wYof<{6IGiiWu>g~JvJ!g2MG$_Jmn1)ENj zp0SwrGH^ehKspzLSMdEY9)3o~WjINIX3BDH3Uiv;nHachTYuOUM=X&Zf9Fg(BY^xy z?C7_&gnh0_$(7%rxEHPU+i7Hvxttb0G};R3z4xq^%x`oXgZ^aVd`(iIX5XXF0z|wE z%z428cCf+n9v-j!I?-sCTqQ-63HhoL9pxxCJ4*hnI%1rCDqeaDFP@EWq`)8RVPlK@ z-b_(X4?wwrt-;8AapY7!d~SDNGl018qs$Fe+*RboTF^_@!byiVcnrIqn=Wf%s#rM> z0(u0$1(~H^1VZr6fZ$ID~N&(A-6d;VcM1=%Kx^FmvmTzZyD1wlB(9FZzo-fQ$ zi*O7FF^;@QU+PB{Maf{V^on>(0?% z4>_AS3zRYL3PaORI*{;0{uXy{^(F^wPQAoMZD|Oy7ScJ3>OM2>bN4Zm#1!&TiDMHj zFQz;mke!rw^J3K>D=C4w&dK&_>(WJnfDGb+oEeSemc??0&u&3)O&I6U@gp?E6jW*H3W$x;h5O*6;jfv ztM?}qGLN_Hvxa-$bR*W36{Zl(_Rw9RVs6G>YY5?F$I>CcI@6w5qAS-&PVr9*7qfw+ zf&>aRpt~@*#L~3FtEb!BZ_=rvXZqwp{O~0V_R6jsudk95YKL6%+4Ll6 zB{NikDci7!N;h*Qd+3+@q}hjHRgfOW(o{79Kh4^2s}9}w9lwZ6QvI~$x?9i)hh1*} zxy)5{pO)v%)o|Bx`1NbTR`b^BhoB#XhI&x-#7eeS`Zh+yvW5~4`c7uVd=9_=7Bq3N zHTaz&L$!Yk2tFh{C@Vs|1c!jY1phlBg5!WefrF;_>S^gOUb4gaw9Qg*@dD}aUiC)w z*MS(1Rh+R=p`^@HAD9M!4D`uhJno+UFvX3iKDgMPlg{AQvC!8LP$&X~ajmB3Zf@%^ zxF1o$6On=JBPf(_;e3!iUXiDopU|n@L-SFlnH$_8i!()If~6^N)8qHvGzec{TIzaX) ziP>xaE`Zx#Dgd(kV?WaI1~%=#c`TLhC2@&ia$}oU2`LR9C1ey#M*Q+Rn=$C-7VSI(+^h zcGh~L|FU3BZJht2_3!oin^x!le_9XOfpnx^dnm(L3*=0MlM(&y@50!mE+0Xw*yw&F zzIZI`wt*^QXkO>$41*=-53j@j=5?$L$WAMEHZ8XsTKd>qs9sR7?n-RYWeQ~H(y_>t z_^~fXJbosNOAqr?#B#~|7q8?0=G9Uk;+~Me_B+pDEdT9fJoRxdI3t!Wbn9)-dA>t_ z2!9vt4FaO2Nn|#k^NhTHys_D~b6A>%l{8nr!Ww5pTOD(9yR(gmr*!BF=X-yVU_Sb{ z^fpp&hF`ewNp+umsaw_Ka2FW~T0Jxya(d)P4%C+%TYmistN~YhHLjC7iQw+!hY~^y zI3h@`qiIlJfM6c}4fgn5Y?=s-Anm33H>zQ4tBNNm)#C7!wJQ2dETdoX=3r+BR!A|N z><8=ohB$fk9g@b}jjSj-k&a@s zMk!hAYUf}Szh9H}=6A#*XuRH8`y$oK1~%)ZU2=hZjmVs+NBRS1L@Bm19BarF%+J~3 z6BpOlh2<;&0t)(p-!jhao(A{3{||n65>@pX%zU4FekKLHZ^g>twY*c&&8g{Qv)zHz z_oI;_tYI}&mz74|Zy$Z+WlxZ1f>7V$Z)7kE4||}Oc^``IcRZG~Br1r{4w47+jZK(=?DtzqI;_mLzG8wUq<;Aws?12>sJ^*AJgsrqRh*a21pfmx`Y1 zZyFy8RL3aJ)2mjwV;$P(Mi6koyF;q%Q2X4!BqC0G)bc9%$RrTdmc0dg+j4{s!yi4D ztuc9G=WPxf-yLMMbGm;CxrZ+}yRj^L%cIXVmB&z%O1WybMW>vcxcWwYR>2HK@Qy`m)_uWYiixlmVHHV10+w zI?_EC_U+loD0|iIu1k<9pminV=U@be0(3!;T=WMWAE%0M^Dmw%K%Dt4w5Wh_ahKVkg!{eK;?c& zJTtMI!a9`C`+^=7VfQv`bcEan=><2|T_WZb2@v zT?1uHub1V)d$RaSATIkAssx%;U4K)}+riD%fXsT<_N4BtVrCbha+jflN(J1YI=QpN zMVUk%sLIG&^POe=C?D4N(-%+%D_!HJm9`1iA*p(CTSp_M+Pv5~Vt z7`VXilAIa}{AuBU6dVc`Z5RT0@mFE~zt`nQ9}kcWN`2TA@sJ-#`8i!Mi41ht->De1 zu{--&ED_3AWZVqiF|L6fLX99kv7#>;hknBuHSb%xa>APdjGTqiY@GDESeC}Uj!e1H_F%L zhfWaF1-C;a8gKj);<~vTvB#TQXDpn)I_*Gmxs*({y9Zn?6*Sj$BS`IM@4mR>f>#KA z*&1*8LK$Bt{E@oDvR&_m9`(oL90P$CoMF^C%a&-^+Cc90!tjpd{FpKh8$?r=$(dmf z$-^8C`1+TT8`JNrx>Mm-A`KVxRE{_|{mv;qE*rtoLb$e`c>Sc`L$2L}UPE6OgPyi~ zjqBQ7{Mk7meX9MEt3-t~ohCF!$o!|*&XtWW9E;?N&E_YjB7-QnpxlF(k{!ok=rjZo zT3#B%V$F8-NxZ(i%q>Orry-nTMmemufafV_WxZ1Txi&#S3?uGqtV-TZX-bFGU!KF#2Na)D+24{=82s%M`X$2qEtsi_ zck*Md5NJU~Z|`xG>f+a0ot?XDqtCF)v^`FQCRB?BQ)TH*lJJ+}Kc5ST^ZS3+R5on> z#eZ16=WOR1yk`Q1E$zgJ2j(`o&hBGls_J?8iFjzo7&9@+Ry4FL5sa{U&J)$+_)tfz zqsqz7P>)q-h~{COa2-RcO3lRPsxhNw{NPX&KC(=#-3eNeB(fI8G)@9nwmJ0tmSJ2k zeWAE69Xpy2F-ZgkIpJJ?c_Y5oM;Ra3wc$zLS43bad#T$s3ELvm-j3*Yawm1}F_j!K_?4!OCi-Z{GV!+@>^realTbzVGuaiB>>1mHa_c)NEExwg_;mYMU2=+xU zE1|;0t!QN-ggJ|v-#)2M9Z9uTYpOq`?GST)H`EWscP8)=q0h@N{YtkIfkmJt4E3{+ z`K48U%Df1QI{Oz6dgZ|oU^W?P0QD|XNM<5Oi5JX=}RozgQnK;g80Vxl|XU` z&k|wX1eQYNj&#I1lXx^<yCP9TWvqgR;{F_i9PhWkN_B9G-=#Y8A3;I*OHiJY z+8^C0!$*FgV}k48Qw&0uQJ?%lM(Qb@7B*K*FYf^!nc7XQPeR=rq8nI`jg-hGb;etd z3PXwe-h=s#^&K(nhzC8a4irB$H~G)R7gj$AzS{@it7PJnGigS&MioHF5}#zvlCX1% zj~9%wcH+W+w_HeNnm#HFcFXZM2ps1V7;i+*5GfZCj>1Bnd*{C^Uf;kSKfO0D-7yv~ zjz(gB{+_xWPrItsL6RAoFz2U$wnJ>a@F*T8mY9LPB^p&Aqkmz#Y%(L3>ftc#FJ)or zQt41B5_#9%qk`SJG!3o~AbThwMvQEu`a?uqNt35N2X|R-!rn2sK@nFl1|>=_6{`cf zce`V!7}iUMHc**^Imq{j60_II;}GBH=9nYUoXPo`qoC;CkEtAAdnzMbQv7qvdlj2x zT%GLG)}`7LStDVt!4`?p{rpBWwZPX+9m%SAWX4S!Bc%Qwa7WX*W;?Sffyi zuX#S!)fY&Q%o<%mZ#US=qtd1p-d~>2#d3akRDDPeZBMbse!+Trp4F`9KRYjDP-5ag z|L*cs(@I|p+XNb-fa_ksu|z)W8|v8%9Uzn;^QJ_)`v8pOb@P4C1a9{GC}*d#*hl%o zwx*Qm*!Ict&B?rQo9IpS?D_ej00=0njRZt*i=U}CZPQWuN64N~oK0Ao3omkC;Wf|U zeGPuvu;8aU=K^h56ku29VD639mD5w-VRtlt9$}DXo7KU(CAwY-R~&ct0 zz=MiVQ4xNyouSvT%g3~mx3Rq^fSe3Ly=TWlS;q;2JnWh!1F{eLq!(PrX5b{8e#$kkTL$s znLH&g0_$?2hJC~Id>4T)IC>RV=6uC7jRp!l%NCnalh?N;hKN7tY;NAo9oHdr%rEJU zQ~W#SM?1hw1RYZs>KA?V2&N%1lgHF(Eo(-?z~ftvEkUH?fs{^?4--K{ey6>k(v^qD z8Fcew9dk-V>hUD?ZHV8R8{0hXTJV92X;(pWV`JmLYCnzNB{dEd_|rW8mwH;ATS@tf z=3r0iJ&>g!6$z7)f>2pvYtETZAoneQtj!e2a!^${X%8`_wbX5(Pt)ilYi8<*s~3Cz zxzuJ(PIf%6Ub(uuGMXA&={wmnI@>t9KKU0$eP^1#jVifdUuAH5U2r)#;xg zH#dL`JXgh0cc!z134~A~Bzy=4jJ(rhAWQo(>oo@*JCZna+#q7sLZD|6JJHi7EokI? zD3HKl;Jc0evmj?qqU6h|Q!Ncra+cX0U82Bj|6z*Rux%+$H|29KHvd?VIf z1#m}ff^wP{o4`q6Ke_GJzht;{_fTcElk40AAQ2&fPWF`E%z7GjQihSP>B(Y)s6mIX zgKXXNb2^Dsa@C9aIa(_t_hLYc?JF>V*+@`mmZN)le?0n=9gAUoa|Jf+)%4*uVX=Bu^2P34xA)ahYy?qwI_HFPPKZU@|82LY>?=iZM|izms*h zT*ikS{JV&GV&zHi|L{6V2&5yw9OP+q0G+Zlv{}gp`Kq-M&@BO3l9o!gTSf)7?Ujks z#C|J$SYOV@Q$W1R5#+0a&eax7<%!Z2vUEnHl8ER`odm9<9xGS{4&wXU$pq<;y1s4P zSM~Q6G6M_B5()g`{d4v|*=3{v=8&wE`Nq)s8LXQ~;xYf6s~bgWFow&yq7u- z3JkZ@&~Xaxd%3hZL$m$^7YPt;p7P8rOl?D2PW7x(%IN2n@S4b^I;FK$TinF zdOOW|a6v5@7ek)cw%440nRprzeFrOBM`C#@QCk~hD=T6?!{09mI=VYL8C#p_TR9mU z{k|o`!1#W_hO~CyAcJq)g!C@f&amGe*0w-ccEA{B&1Ov3CSu9Rl zhMgPeSKqPZdi7GZO@+5qAJMYu{!G05E@X*!_)?*$#4xV&>3eZ4}@}lY>sa@Nq(#XdXQI#}{$MoGhiI)wpB<&REjc9}4Ul_zTRGJ~KJl)ZMue{0K zWtpf!p2=@8U(*x&d1A{y3xA`f6;*d>sO1QSWn_f{V*=#2#)JC#x??`!8QE1=WtR&` zVBL-K9b9_fM5r~%^9^mcni?#w{H(N>A&2ao=bCa;Zii?YVHs_eS5ErxW0!w< zxxbbZ$jdz~r>A@S&$_|QfPQpv7+hib;Afjo`T%1jo!s41YBU)8jv!HvsZg#Tna2ub z+gqQ$K?|#20-iA$0MyDJ}Q8{(9!vT=IyFdGqU6q3;smy|O7) zWk8u0H>dIfFmcq6Na}(k7!4by57YPMaCugW=60PAVUz5I94WyT6F6%07lw_s`bM-% znlWp3nve4=V-~j81)lea6tX`j=3gm59D0x&9;LiW7HR3g1V2uywTG=>8B2{|3G^yP z;NYhm3P6T3s2af;-_n+$7!%fCt`MhU9!goM>+hPGZuPYdN*ph3T3ob_?~MIk94U0Y zF+er@&Ro<*yN2K}U444&NwMVTd~`vIm6es*K542I;k^VNxLdoGOADVXGIsc2ND`lu z*F4gWb&*rl5pA85^4iRH|8=kI`!F@N1^#vL*ct`TPA_2J3~h|2n5UV%t2vrgUXdi3 zsCnN!c{#Z&L8-j|Fni5{y_wZ4mTU*@j)&Ftq&yhWD<)TpJqo8>5$c^ZDSq{Uu>7~w z=F0?VI{Sy8ufUb43%(}9|Gc^FjF@o0_wTGLTBdH+%@5^0b?5epkTIJgt@S%Q8Cop2Z%n>c`sgpuRl zO2zeCsYs!~pO^#X=Ktf412m>nIMak`MU61@qr6HI-7+4F4_8Y7?cm)c7*bza!C_`3 zFHDcbDbuxlb*?Mcz{)!j-MRqr5{k%?D-jj~Q=y4%XSBl0Qz-u_T`uS^l=5%sU~J86 z4tyWIjy$5VTYC6AQ>7_zyyyZE_KV`EFppC{o^#=|4K~he!up|Vqz$Ir!#`@BNt$No zdf*g2>L_j-yB_;H-d)GtdeF^Fn5>A;z2&_1+9}u0Aa{7|+!t6ry`m|($H~#B6!vF~%_4=yRM~&`!CiB)K{;kQ({3E=PS9N2I6twCjPB<|2ky;Yf1h- zWd5`AexX1=ybAA^dX%t|)ab3!yuM*qn$D8|4<11?8$4Er<)YP$5==OcNLP;eoG8*e zp6mQFp4*I3uvC1s;i7gQ+C37Bx%73M$;xzb>G@|^))($z^tuwQaopdB<{1JclGz1n zd6O+IBz`88^+za$eJ>}u9UgDo9T1Fu4WUHAN$ahiI{VsqYqq}0w?1+OrXXS8?0xr0 zT)Z2Ti|erkVG;(Xc2)wn=)kAl5hG`Vr1wh|K1$mS%lsR!i`Ey}7Jag8R!3XXL-Hx+kA}rP6PD;TZN6hAO2E|3Ov^r%Wy?_zQ2V#@qd`BuXeBZ>{C2 zYmgh^*$IW8YBo-LhK{F0X4IL)?$!^&Cj2=G@c6+;^+K(`G?DJH`dv}$eR%%>a2UcMP}h& z>Zeg)bh6g9uRNc9#THmoz&&sefGmw%MnQKUUylwg#w)!%Q9q+!F@WDP&zOjo;&r{T*kB)2 zdkRt``Ugz!GoOr=41ttAkIWOf9LOD6E1A~w{(*CWGPi(~eNZjXrOJ@R-wA8!#Cz;) z8|_hh0@qVM2nP8R|OewSB>cWKU z)CR>GlA_eScSe;wE#zI_y((7}a}Qcl#p(ul_DejKomo@waFc^O>H<*X$zy-#`?_Hq zi?ri}?!%CZFcXb>8X+rVH&DIiU`#A;W$vO+%xC-bBxvPm#At2^DxJ&?^{wp~4IBhQ z)qeLBVg9prg97I~9<+Q?7A3ZzcV{iczbbiw><#mF`qSPIetD;l9F^~5x2iSiT!HLR zAaj z+H%bTd5WdyX2{7corj}WoU&u9Gl!Hu!RJNXpLdNSO||BJ)sIF?Z(U33B|I99fyT7~8Q$8mS#`vRRhnUU{yv?u z=IwKw`lBZt@*e`PcRv7eIG~l%nE4eIKInQZgsXChdt5b;{{U_q$Ueh?08{jJcX8?< z6O_Sx7>+4mHF}0Kk7@gaqoGJ8;~%{x$PC&%s=xR}%$n;aWvbTZw5{^Rof<7%5>(kf zN-<1PYh4OvC6laxMH%5>d^~!Fvmm|mgrnHcO6=}Epi6oQWEXaOe=_5v&byoBzDAqv zHKwm?a0aqGkZn^`3AD7$A`p0fd3!0|QmKW3aQ^NE6xfu5dcv`H^e(*Wn~;y&1kw?P zx(1j9yG?}NjkDfH6{%=w-^gB`hk%}V|AUl@VQ(Zx~5uUtgM5m8FtXPaOGXuz8lF?pQnAXO^*_?}u zu_sZ5@tTMQ4dvfb@#$$Of23m15y+$#%53r|Bqk8S7BJChu=n|7>(mcqvX&|evVDWo zX_mNzz=#wN@0Zc&ct-66=esAIKT@Hf3}orfmy~v`@cZcPBOgc-Y`fL|?EeVr$D=2G zp)HJn_<)*Tji@Fk4Hk_K^&ICvr9zJl$YjYB7t8z_z+lMHcrNTDk*wRtN(5xb=mo~- z_0)*4{gB0DbM?Scw=_g}hBK)K`4rC|saUiEvfQCR;ZMd3UMGBsG=Vz!o?hmesSN5D zIj*TR5ekHYE0kiop<+bcK`$71#?L>b0?HT2vQ#pn?1TB~g8^Bz*s^_MHl#GF4P+3g z?~-clcOB6?R^&?rui9R^KG;8t=O0obBnhNJzuEFrKJ_6ymN@e)3^v46Kt#9^bxm%BMSO-cjn45ju0K){a|&cBV^Z)E5RVm`P{WDyeC`Pur-W1k zGEiS}O5Y^daxtsvn;`1=pY_C5JfHWONP;JvKT=`F0c6sSs=}6$huCQBtiq=IQPU)d zj<5k)_Cg^A3ezmd9FE{E6UpcbsEMLz&*J%qRK!UES*l%yc=%pWFms$nO{~c2@eJa& z(Lg4RBNi7vo-#}b0R(Tg45`q2Uux#(IR7aX@JB$lzf9w*6UTd*I(^@8-NR45HdHbw zKz8cEApZWAO7zas_xj33>tScqE9qxA|B#AnUC!6M0jXSa;$17vyU zzYFeev-gtByhX$+GS*BntDOYJ^KYp@dE)txR5XE-!PJA#(ksZ9k~3%$+at$hFCkxs zg8G({N+FCA`*U3I*27?6YRoZur5a7@$^M5_=>KIa9E^?3^qv0dUeo=ZuZcj_++R)H zpq{n=5DZY8Q0utZQxt#HqVoliWi1v3Wzgty?t&@pfDwwhuzGW41Y{|WtzAS|1U7dd z1h@Q5;NsF4FP{dD=D(>07?33{KG{oc5{^pohKceUMbZTWRA4!fh^|r-W!YC>gS7dj*bq069amCY7;K;` zdzhv7BlK)ZVVy3w;5m-KhbNrRU7rU?BC+RAZ-DHSdme)maEX&hqjg3t^aLFW&8k`; zld62=;P^7iGqe>mvIkqGDQd{;Ka7ssmnWP*1_eU^$a2FIczozHBc+{##E0X`{bX2L z1xmnV2{dCNaB^oA8iGn8+RJc_dOBUt;`xW_sHFf|8b`)NVCE-|>_H+9DL;=*!pPlU zf$s8aPWPDiALrOpBVgbF!v^yJTM&jhl+s&_AwNbqww+Ub7F zU?{)6!sMd?vX?9FM`;oJAai0H4TUDoK2jD=5I)2Chw2Q?0@=YsVB5L7(I=7MTeh2> zS9QKP`cgn9Q}fD1zXL8UHkX5G@uhLeny%*UvvK`Hb4Y)hM&}9Vk1?G!+I||>AA{n34$22K3!cIiB-3lD zA&qFlDod|Zzw-dupMGdS?zy0k{0Lrq`4ze~&@Unw`dK`)B*9NOG*{ckrlCo?l`5bX z&R-?p$Gk*g196xNd^C+hUU!Mhf!3i$0a|6-GAhlXrhf7(Fbh84i1NrDEc3L~raA1R@P`~3| zBB9fqe}=Olz4jE(AH(#z3dm0AWnjo5x!65rfK!6=i;>po!~h-O;LwT6!0s7xedbF? z?_jxXX}dBw2I2e{6>RwqWY1Ru>!_~;KIwQNhsfY@EE#gagPNGv#Q5AK1TiEmJ%u)M zdkbLmK7@Hci)Sk^<|&?43B_T^@%!qmHMcWx_^A*cc@7f3*k1~CTn8Q0gL9t0%pk{Zq{#Xpb&rtFPb6C+Za0ZR$zo@Bi7RY{Xhw{0z-tSYaWtjP=RV)E&s%lY<<-HHG7UgY^eI--H= z#~$791MGit{R5s8CS{%NV?8IR8*VNs!*DgfEU> zRXPLT-}g=J7X($nPvd~%FozHEKZwlj!4b~8I~6CbAw}|8Jpb@skB~riRsQGw55y?n zvgcP11}`bTS(nURfV2n_ky-vFDfFxt+`BImJ~<>Vm_yHS{-J{EW2Zn2=Ai4G%RB zM=E!33c4gK8C0oISi^|ika);ynD!pWRXrpJbtFE+`G@z?1ZDM)u=DVwc{^QHUAdWG z{AhN(nvkM_?74jPim%1(3!|-K#_`4SvmDNE-9R}1MRhWUfb1N)tMWu&sY&ssc3muE zXZ}boS3@AXrHnN!Q;8UQkw_$AOgU=cme$a3I-Y)8Wt7?4gmuZ0UjO!2Mrw=g8-L^kN_7SpO~DHikOt1 z3?HAGlZKv&nT?H&h>Dw^i-nJom5t>I1Pm4y76Bds8xawkg#@33<^TEd*ae`%00}@W z1Q;p+jtT~W3ij9s-~#{{B*cFV0}SE?G&m#_4Cq}!&=4UYz@VU@AYq`Oo`wnrfI~n+ zp}s&PVHQ$^Mkm#`XA$;~&4IxPsCkJ+CaPr6J%Py@mwQUC>`=P_Lcj%41OfIRJb^tS zya2sN5BiQGI5-$282AgY-{2s4a0pZqNHh>OR4h6v2s+0egG@wu;&Bl`07VIo3V{l| z20kgkK!UF0RCUQIa0>HcZvx{t^mQsA*!DZ;OZ!0rCFFA}x@wWW|J|k40=pU30@<6Y zl9SC_LD0rK{~Pb1BkeCl%hU(vo((+tZa?BET#FWMoqa0DjP|%5N!8=3uWx$eywrS# zb!8Q?DNdy(rmKUQ&9cz6Fr}``?=!T-tESaZ@GLvjCaXPTzqt5Ly3&}WFL-**T2p9=B+Y5{POlB0h zWnN|Ik3=AZuVCUQNR09{G-x^n3tqL44U+b4GqtH1X(6sH#}AlMr^kPW7GAPukA4+TiaNDQ`|*=yQPII3{m%_h z19nKli(Yh1?o89omI_weSGt5e2AkD~q9RL~mZ{6qOWkGD%WW9}6}m`X6J-|KrQi5o z>UC70N_p=_4oou~Bw76Ai3&+^uR@EEg+JK!QbOP_f^zQb>)%*kjhB|S2DQwq(oNjw zS`fTcSes}tJ~!HxqB+~on1fgmFeJhtOd0ns)Nr2RGUo04=4j~1fKZ7iQeu9Yw#yl% zN1U4dd*qO|nwHWgp*5{rb}rLVU(F9vy&OMf@AG8p5(f_9HoaYG$k@5WE5B7A48c5( z!h8haC3f91&A6ypA~Uut^e&^&MEf&2dgc1r!2DVmhL2A4%MAxm3FT{oPWa?0BHn^#C^D?35RinA(9-$={yGT+dW*m*hhAAMwt(#t-71dRF1#mY9V zbB}jLydpcXkl`&-xssyf@Rxqzcfl(HpgG>twRPfg_^RsC{B>n=iq(2AWq)Ei-Va(S zZ~%Ag?J|31PU?a7=Ikw#Ad(h>`|`wf{BU+OF^bhVC;Nvp$l@&6s)XP<>>L|_0L?e5kYzKpn88)5cHDT{IQV)SlcAhCM_sn}pZS z(dZM`AuaHUpI4YP?%@1X=D%0@qc)NdbSbjd zg~lR+$DaHnFpbG_@&1WAB@S@GU}N~>HWHTQ3E(6Q&}oCVyCvLoh~K7+o0t(7rNu;*xF>m-H@bTLRnx0y zJ1})UZhNhh+Hd8F4vAJocS92Q83askqwj5%6+~BhINEQFjjiGtm-#7qu0ylxoV4~B zPAB;wxV-Wyg`RkIaENwZdbsAo2|h)B_`{t#JVB0Tr%BDF^jV(t5{{*&u&nbBlX zYu-ssm(C>2FSm&l2o5M`L*f%8N+xv-Wmx5Q$=zCf6!*WpDO6dJ1DSX7jSyFme)wmF zkDA~qw_S5;D9c>Ta4olm;2>~W+SfG`0zZaUK8?_o$VoOuetQ$yzhGU)RWOaFBLCsi z)`i=qUv<~{;Ddzgv2YcN0G7D1r%ZEiDr;<1>AA7@NxV}c*vPzN)7coi*4#4Bjn`7t zl4M(k3PYh663G~uqX%K96phB}R2GA$NhRDu7YYnN(S^s1c>3pu;p}ptsD}BxD4BX&5KX8#)#Qi<#xHhEZm} zwC%rqgTK)mgBQ^Mig{y-%fMHe=c~`mm+-Zhyn05p97_F7IA*)=lMd%Z)!I zy)zTPo6zDDjpc?E=~oTh|k4f|}E84KQ5@QS2-;qi`dTd!cH4xiH&uA6Nf z=vBmvh`30{oioJwGWW8B`{$&g(tB;m#^t?&Xk;e7I`b9bS*liS8J8tFeeyVYG>7sM zkm{lnezhHtcZo17b-d6^)omS_GLT1l1cWtxK;NTz?@oLMZH0yIa3p?qR9>5LRH(O) zJ&t_a7$Xz|y7iT(C8c>OgO^^}LR=RoFIy<1=O=Z)g=wEuQU1ujG4Ev>%MAhTPgt6? z+CaCJ9MM;xW~rAm{SxEzk)um3y!b}OmAcMSsMBVZ^^S$uJ6Y5E_?7yO)feb1)elDDiWZZSp#D(hgoojdoV!J8RKJfrA=F^J4NO@vZjsc>g(wo7irdVTpXTkIB1z z)tbcFs76P!_;QXbGXpVaaCE~*T4S~_oMsL5Mhp?=Z4R%^tP%WcSwDTHJ&)2bYQj}M zw)b4Vw6`C6$LR3efj}+tOF{lNBhV1BpCQZSS9IAoVM8scMu(%Im#9_;81C%q+I>_H z_$u41hr>xPcLq$6&39|U%x&YHX4=>hJRvgYh>%84vf}dX8NTsPl(^Uk7bL8?rIL}^ z$KW1qXil*x(Gf1=T9&2IS1>{*?Tqg8P)Ctu>^T&B3O0|adLuB}MYKX9{21c%k(9z6Oq>OCf ziG-Y$#Gike`3axPMI@(1uKzjOjG`>6(P^<_QBxc%%zUN#)G;y>${ekT=|F8rLlG=W zDl#cHu$HSN4GF%OBYi(dzkBtPkiyiGL9=vpoWYr)HFZ{qtRxLj{Tg?<;XM_QsiAd# zvEnqwXR#za`&}69DaHF9J3azSu0xQwjkj7A9Yu4}wORyD_S1EnD<6GZ3ZR@o|8ul( z9+KTTOxCmr>dqQ-+qGiyq0*zCZ(=LbN0m^$jJVgbnD2rq^5ZUNd@yj0-DV2dD4J>< z+?S zxY7|>IF~x5PJi}I)MfL!({7AlZFI&I^&4ksF`@k@1UyzM&yTNpPjaG`5Dx*)a-wI{R1CVeZJdSB%KR zgr?W@0z=bP%16aP^IftlqK^D)XapZ}Lid7#;>yyf)Fd3rOp)5bEpx|ouK@Toi3_xw zn8gffgEosAp34D|20? z*^X>D{Fb|;DeonfD9s=dd6@8Zc!;|LQKIsR2h$+|Y#4A9Y|wp)EvOH!52aOht6bK& zMqaO8Y?#pf%8}n%M0suNVI*%dZ)=nw6}NA5_)5w3Nq}Nu(mCniQX_KKtFJk3-r_s!n5?R-2EKJa z?=1HZ_njtoPEj;TM|D@5G|uDsSRivE=5@ zkX`Bcd754mx1O%fMvovv9})=AbCWV_*}tCrX6Q0I3elyf5B^m2Kx1HYq4owKD1rfD zFfUO=;rvlxlF({K_2)@y5x#S6hh#R7J_4e`30RedikV1AWZC}ofqUNARtH~1sKQ|utG5w6mh?W3G@;;7~szYhwugl z6$OPFN3^yJ=FeqBj|>0q&=;6h3jOaL`hPY!?N5O0YDc-Sd`F{EPt-Y`oOi)3ySM&@ zKz2btQ@tTTThR|@gg$>`ONrJlvmYw zwr$(CZEGgBolI=owr$&HgKXp6cqSK2`k*`j5)x z=%l+#%8*R9(5TBFx~QkVHmBYn7tkS5yBrUtTQK#K?}VebOJ+w=_4DF${2FHMC(DBU zrbrX2^%ZH6r;2Jhbo<(Z`I z%RfTz%7)p?38XgJWll(`YXY!*ar`{N00ktlRD~Q5h1pU>ws+Sd+`i=?;&pbyti4#w zQK(huT+{{6NIm#u%3>;3f#Eqp{{}5H+!HxDK3Yi!8ig00qT&-MRJIY~8#ng^yd>*0>fjTVpDjb}rVR zwtTcd2KkpN2*45JfS<)C=yAhzg=h>9p}xJHpDY~ z_3g@PLW0v4Y@_nN4!4fU4pF?{$ps;$&Wm1H!xn%#LN1rQN&@x`glSc1+cF7hRMCmAh3 zIh)*rA-Rf+TQkQ-_H^5+l;SQLuwnq7yqwV?gds4BWPzi@P+HaaU806CmI?WMFa?g*iI5w2m8u zJM#!y?v7uI)Z+*{m>c2=Sm|3Df3^-A{JH1*d$HH(ugyjD-?fRq29!t+4OxKw)jJG^ z0tNX68tl(RFTkIzcNb8JejfbtA*kyG= zRKZ52gi=8D#^PFADY=INVS&Pba@C)6uOx@Y`u;3blw&DDOe$#6#R>5teK~8Cp(db( zza;UNj@QqoKqO1p$Ghak;xC=CzjZB_Y!WW@TO_h7ck+1T`Or}cL}-u!UXh;yzt88J zIug8K)DvO)GG)(qC}q;l{HK;ysm-u5g~4`VW5iiSs~>kT#;46DPDf}E)i@? zPzmq#gph>?!CDH5TMjZ|va-_I4%Sd%2bXP$Ms{BnN!?bC>*F<7BRF$07Y-T63kKBa zM-Fq?KyRAW+81Rd8Hx{vm2mS2C%yH%9_qV_I7o7*LQ?v}hK5p;8I9!MsZ|{CBZQ#T zes&oBbXyP|l|v^T=MfwULx5vJNXigIBIhwzXp~{1ysolbz}N+J)-(N0B(gt{HJ+ob ziIc1TC;VsUU~B52Z*6Vt@Yy0|Y+%67XW;Hk^I2Wu3DN&cI{g2Z?vHVY?EkZF{r-S# z=c*@lH1nO+Ifou`@Lj=lf5bhnPl}-Y)$02)<>IwekmOu4TE{DV-Q(xk_djb(;_j?& ze`GsZ^r6_~cR+0p_(ZRGPqn4=ZpMjA>~8~%Q1fn9s>cA?GW^h_^tc;ddB%D8{16P2 z9Iqi|f1RQKLw@yR1t9`zWxM! zbUy*l=u?ARwH73NqKZ*g1rBhtoT;P?TQ3>uxh%GDDF4Avmu(?lp=v}o?Q8PfK=cgn z;EJxm>$p^##-zNpQ3)&tCd4H!$kQ`*tc$b6+_+NTyvFU4%2ped>s7G5$C<4>K6X>S z$0$37j<@Sg)8O;1ADy4c;h?{cPR>2wwIe4K!ail=$h4yg=}SZkIT)R5Gcx%1DNHua z3f#5HtnHW-wcRUi5(p*d-6LhYtE z$1i)q$4)dtU+-|X;=1*?dsIzdQ8i^;2~de0M92lLgIa{LLM|m&mcM~ZdL24(4LT6V zS}u62J#QlFq}vQP%p$!6nWfM^DZZ}wb6;ytK3QQ@QrMhX{`m_1G(6_#SLlx{;bYu4 zt5*Z%HGB~Y8X!|1l(vITuYQXoVSN6(eyhh^mGP|JpA(uSd&HWddvBsb)<_6z5j{;fJiKVJ_S~iw&OT1jf|h43R zaP{e#4G^hHLE0}?T?3F=LlW;R*#puh_x*?Ee2L79RQ)b|cbkYM)+T;gj|-CE5ZS*5 ze!u}^e*N5g0eK&vjWu0NN`Lpi+Rv(_aj%~Zhw2fXaL||b5bCda+TobTpS8*^YhbFJ z=VZ1rI|*arp*g+_ErXWN4nWC(98`FCK$(7iT%tdoQ5t>HD#Bd7SLrE8OxVnY`65Ib zUd7oR{KV_i>^FnH;XUQ_qP8#c$VfJu>Gwayk;pvA<{N<7bGl7)(!`7W8YW7Obr92p ztPb8K+@3^tG6&_ipzMTa*w(!c`N?;AU5N0+DQoR&1B5~uJsAagP#&`4vx5gX9XF7c zsC5Hcyefj7=MqEIjeSJ`4F?=~9wG(fsMn9xrP(qn-j~NeLft1s4no2eH04LU!04sa zd5jT=1?6FkCyMHHt(%FIJ-~4oT^dkBNcjXYr-&6;zxK%7w+UuH7|TN&<%DB!24*Q@D3S%@kuNw#c5hc}z?@$s-FgBSmbqrV>$w18H zqc-OtjQWPr<1{Cny$S`Pq$|Q=XT(&o^_V#Q^Ce}eU+uCkl_CxRscejV}SR!Qv0vg(jMldf{`7TOD zu`qg&(Pj6DtH+8=yp<_ArK8w^&DxM&gEn!3Fy=YHxR+*I-B<4*_0NN`-Ac6jZ`=(F z;E!%xfBC{~eQ_D-U4}eHF>kZq%CA-M{*_Ove^`eewo&L@IfNBYI0c#eV~K2x_DoY< zzZ(j(7H)d0-4`>h4z+-pedD#F;QBk1klvjYP_JY0S#Sr#=mu_d2a&v}^|WlJ`@uN! zSt4n|gNC-1v%z$s1t2{2rr1lPHOHkcFB6xFjbcxs3OCtyl?Q$rLXX0>_8>=?EKBNy&=U zqnswKlAxo2?t93du!oHh@xKDh=fK22QQ)n^t~ea=P27vdBHKCerW<3r#_ zw!hGpmrG~5)n~;$ZAMuXw4qcIU?zM}p)fy~!p}I8{sIjaD_c^wh;U}Dq7yBT5Ga<+ zZ%@8Y_OKoUmc7(z{57@`hC}}X74|9XnVd-OyR@KVTG4vsY>t<*lWW~aIAV-@+Ap;? zd-~x+AaHhrdzM5A2;RuU8%}cwh5cv}AgEyNrxp|py_#hV^7;Do#J08alSZpjbtj~~ z%zo*d&PR6+F)hi8c9CG*j_}Eh{hCK8#y#en@mSoGscH!CJ48$s_9hY=qMc1ML3|cm zkjknv%XodP0XFO+ooS2oBwi5Qz&wl1wjy(%o2`hQe{{F~UlQX`Adb)0wl9D`neqQj zsr~^*{*}!>d}hplWcgP@3orTwke>W5j3G=xIwbS>=a#NbfteT9K_KZDAr`uQ zah;2viOUpILYrW&LR38G#F^}KUbkoVJS%ox##fXJ@^r`8!=SS-M%{HAB$xlaeRr93 zAq2na0{(C_<|7C^F?ww`Js)uHSVP6Ud0!JD)X#ko4km7pyDkcQo~PK4r{Tjw%Qw%_ zBO0$kgnpD~I5h4!C%JNHtU~e;z`9xjt#yR0E8L%Og~G*wl2g;_C$P2qafKI}nU1*g z0juJ$Kn{+QgntjxL723nBFI5za+$Fs5Nx>t@`1*%m0wv+*i_?jF;#GPQ3hUrI$>^p zvFfUQXk@hyHYZUh-=9A2@wa?$XiWF-PP_8iY?8lD4wsPHOEQgbU{=_jjUT2^cLex3 zKTV!(X=%n_EN3QOAzurHPDPUX?}@RImWulUUnDOL)Bsha|K>b!`F5%Xl2*nKGn3n=)vny4(bGl()P60a!6d)E<@V@ zLKZ!IFUEr1{g3tC(Cz3wbo1+_*Fo5geaED*xXGVNC;m#nlvjl&fjfk ztNO2m6)A$15%lpwk2A*fU^@M>-uVg$Ln=MS1lG%aytG>?evW)p42keM*OZHpxVDsD9d6tZP=X$WP625R_2c`-k-}c^@MSnWI^bCJk6|9 zuTuVJ)&=NqtPAv)FHm0~prIh4J}DO%1S~`ZI5-3XbPQxHaw19!G9pq^Y6d=5YC3K@ zQc^Z4c5XpoF>x_U7FlH(5hXrRG2y>hm#;7|2yh7ah=};YG^8}b|KGR2SeH+xJwFnGyuLj+ zGJ^o4f`Nm7Y+MZ?kzh`bq9X)Tz|8fHkkTL0Z*{oVws7aAtAW z)io=<`c*5aLFD!UD6VAd>cJ-rCMf$Y-1VR)rZRp0<71@c~FX zV9)j>R|!ZFx< zaPXK6CdF-}V(_ymoi)r_-Kjzyl$v<2&n_-vSB!j7hs(-W*#q9N#z^1W4lV?KW3bTw z-4`RxNIKGSYWrZ+)$StC?x;E^{yXN@zzHswA0iej3^wNj;LmiM zhgHI6sid&M#8NAatx@P)2BjIg&Y%^OQ18W(_^6W2z?T z07XFhVx+h7zyU!bg7$l~uG{sQO|f6gkFWQd+B&vdtlr6ajDA>98=p_-^*dz7GG^>e z#VD!DpowLUnOn?VZxlIA+T~RX3R%%QIxDmGmnJa9w^kXA(G$f<(gmnSiNrUWgZRU; zz{h_VdCn>3tc(tP5lxObq@TD@gYC}jZHqyQ+gbWWk=Yu2mVFw*-_nI)9v9 zlD7+TK#|~JX2%&Vv=nB_qFX|_a7*CCy##v|R#4^~*uz~E&o?y2u{MmTa#qsKWwYdf zFJNfjnrAXmj5|OrRLBYI8xYEp5vuJd--fN^tS%)@rFbe`<8<}3ec*kvlWWWv+T+$L#(3y!b$t#Kyl#|4&<;pv#rnbpu4yXcwiZJ571 zK_<-XwbD%WajslBj_Yb_tWIhKPvD+Z_xf(LoU<>d;x_poxaA6?1?&Bq_JeZfS3z>W zvb7G|8Q0quKb4vD7CO@B4Vn4y&0p&Ks}2u4UDkqVuroPnpv$peaWsAaC?ckV;*FTx zoP`Ti#MyDM;_-;$JcvO)>V;p*>aF8*5U>}VS&Y;8En3CMoRS4GF_1HfjB$%cQ#l7NU(=AC7{K%T zf(=w;!BJy?XTX#=>@7|OZpn09+EgkjeggxSTor+QsIM|cV<9df5D4_2p{x-Pi!EIy zi`VBaJoJiLgHFWszO=N?w0WEE*eJ?viQ`R69@6Y`CfhMbRVfU^Ij89hk=)Rp=`NcL z%gC;)3}=!*Cj!wo9O3Vo3Ae*H3!=c1-ZzhIA7$HX`#E~w8z%|;C6cy8fBu`$N&w6Gf@7Mr6&+k+q&N$ZK8#lCeS?G|sVd~;K7#yKg4Zl|x)524>b9UE4|7!6^~?*(SW z*Q~HkpyabJXEv|U#15XMQ%{rI>nsn8!W-$$IjKWs=nkho4Q7+iuJAI3Dz9MX zGffv@$;4g&5TQ=4pYX$jBnj7E1^T9Pv~iL|e7|f@jl|l(;Nl8@WP@+9M^74 zu8;Bp?@0Ibg)4gg7Opr>nWkw{9zuU+{s2hC=+%o?^iG{um;n|DgZ$jd*nh$#;-h4v z<&zG=3Aw{K?gtj9SNlzrDmp7*<#Z)0x%%zZR*?+Z#ifx;VDORAhE`e!8mRmrIK|0C zJU%~37mDPhh_-I*?PBk`E$OlqO5^0Q{#77a$ANW_7mHI7@U?t)w15&UHe=1(uf%~; zmpXG(mtw@Oh;-oVk+lvCOK92_l4RjNd!=CDRa&>ZF7eWdv%`iYdwKA+@X`n1)KW_P z6v-mLmHdKvi7E60Fl(SP%^|Jhr87)$~H2T_mot;Bt44?=DNj=5xvK->V( z0!yD5cWdjpKi#8!b=3ARWOnLBJ7=AZrsah?xOL)@}u zFFCEo+2&T+4n<`YBYa+@`8#KDl|(VxS!#BIiB`#cl}&5jX;q8(I$&mPYZSv?((HyGtXO~h0G`MSI}hX)PyZ8H zfO8RwlOjJhi6bmfV=JR^cU%kQjP~={7* zT!U`RYWES6QAZxIYcyY2)*QG%_H&J~5_E7|sCmP3VmWh7H6$n@L?ky78fu20`hcc|F{ zWhriYfymP7s5Be#bE>nC!OcSM$^a6CKiRZ(KbjUvtn}5!&lNIuhK>$x_WK$>c}bV`IW9t9MzzxsGr5Max?h;Jo@Vrik@JfmEsfl$$x!-_?wL)@Jd!gtr{`|G z!C$R;DfuK^gPY~Va$2OC>S23C#kt}$!>FX0WQA;nEw6jE`?{~I3xz>(;Lid?p4f4k zw4Oc8ch7^LX1#Y~R+#dhX5s1;w*oYB%-}eG?1CqxS)&xABSdWmJJXCzgic`QvO1|) z1(t&wIvWIgDv9|DQy61kNh<)CQ>I_@E^v(#*( zM&ZH%z28upPpo|Ju@Hw=fZqc(evaiUTV03e-s|d=dkmes!rBtCyfxJwIq^ro{jUfm#8$k8JN2{4UZb%Jx zZrYB%lm@Xwv6+nx8V=>Y6kEh_)vy^d!-VNAh(&P{_u%S>)U}#rcT#N@vmZtm2J;(^N{y;jUt(tcHoS>?utm7=MMlkI1qjpr|OWt5(u5LQxFoj!GUSgB!y> zIQNvlgn++wEo#}Q5k{S+KM8kPI9`M#8#wVG>y&!g7_F4s;DSPeO;D9IU%py=W;F#e zxTN~jq;A&Y)_@(~+6b5tO`EcemJ~*UU(-n-khRnZBC%vo)Fh+`Ixxj*l4LdM@w^pk z$cv9(jif$J14o(=8r0W|-77p*dyeH^!)Z@AXX>CDLqM>paonScs0_U_iuJ2y>;u8F zA~fY^xac$eEEW6Z^^N^Z7e5=(9!+ATC%xqds)`%zCO70%IA~rAQc0_=w6sj$uSRE& z*b;WZio5Vvc|a)vpn9RYNMkRA8m*;$;?Uv=T&2-ApXIEZ^djuG@@b~4r3niWrv91z z7RGyP&ZaLmn~6yS6^(&R8kl;QNebrL!@>w#8(@RI2K8>rjP!})^?|h?fJjFy9)U?h zh|PjIuDAyrK?AN&=eE7W-QZ-Ei`^O*e+-kRa8`?#z2TPkuPtNTvloFC6d+^Cb(uL$ zoR*R{dr(sWQa-SjEIT6zCX;OAMq#Uc9+exlfd?yAl>X^KAac#ZKV?!pnPs^UWnv>D zm}N$ZhR}$5O4z9^<>e0DAZE3NSIJ>A!2hQ%(|@GP+G4Y}XMV_x zJe`WHz@ai@OALvoA+aztc)olDPgTBt1mna4>0spvj9)3zH04|<`zW`g#UYilMP=CG zG_xDYgv56m$I3cSBXwCa^)<~izj*T3%(n?ZF~9@DdrFah z-wAxe_FZFIwofen`qj1b{zO@~?`G{bF62G?Erp#+5G5^*Q(Q|L0(+6MnxVNq(yOOD zvJDElY;<7A%sh3m#}FTQbWB(yU2+Omf$l!fA>V;I;qJH7Cui#dR)ib<3D%Vrm2}# z+lQ77yUTv^xHTDxE*x+jce8b-WyPIOB@WUU?M;S8^xgvDzg>|V-i{rnfjA+|ONy$( z(dX%GY&SvfkT{P&^ z&Zg~4CZD~c!t=I8_?{enTQ1mFOJ9SInOa?nLUTs>Gq9fJimj7j@)_h`$<^w?g zHoMH~jA9^F{Z?|zb2Exp|nQnt*nGaR7t=U_M%xKQ_kK`~i$Nc?syeIJ&W z!_iohjOnV?<#^I-xpiXibtQg0iRZp&S1|q)PqAj_q7ed(sC0?JwVA(9!GcE`EAp95 z6zkP~coWOTX)*IYTbW!to8vl>lc6wP%cgkvFjm6p00|y^1SSdzA`Tx#Z72qW%i{Oo zP$qxM2dKjkuSKhwxGh~`vA&X*TMZ;6XHPs4=aHfb5HSrw0;Pi#Aj7nlOguf9*F~mi zT3_xsx$CL;DTg{ozH=Pf+%DDecS+U|PAS@Zag!mOHp>q{Ukb};TBqK0>toilI?sUq zOA(OaaFOJe#s#Xl_BY%$!mzCk3%*kvb3}o7O(Cm7HKtq1-`2nUSQo@No}Fa~H{;Hy z_~LFb9Eh-M361jcxCCMdZx!0*=3*0BU&p)L%G|gZysq-BSMIK0q&AbvK~R-*VJ z7OkXs4d6I|_|0MXev+Geg^C0p+a445ncoj{RxM`w% zUYcf`Gai{TaZKmWJx!{UZ5JCWG^@76KGhfvM8M+dKJe@>&Y+Bp7Pp9swVkL}B>SCK z9jQ)xXL*5jE3zG%d2&v4X~pCYVpx9Za+P1rjo&q8zO*7Wq&J|~oJR!K114tA&*FHZ znL<*$ zfb{JN#&M7x&;HmkbQV!TO}7rH!W{t@(K&h{=I|d*%nc!i+sv9XiV0^T$~q}fzUC|o z<#R!Pru8&$qiBT=`em*4=$)_i}>M4+7oX5jCd=I%knW+MxbOuHkw&W#tPJ~};V*k{i!QNd(OIWvy z$mFnKPSk4m4zc?%z1toHW`0pKK@^`=+LrcxAU|#}YzoCp!G$9?BtCX5lV6MjQqMR-Cz_RpR#6Ah;F=YucR-i`_Jj1pfh79Q`?2zG6~|@l z|Hq1>`zpkTAyySaJ`YsKT|ay|>a1-1-GSM8`>K50C{~#Msu1U0Zl?9*YrHVDGoQO? zO1LYs7~|*gX>V?Z-0S*p52}%A;R(F=zEFPizFfc?j|vC-$bve~Rv~UStSTi`pS{5$_VnL0D}=nVLxPl4fvnuW zYYU>(+fof(hb+%P_C1$lvL zVAO*sF)>uNz%L3vvBA}XU}tJrjo+N~_ub|B>+MQNn4F@CX|{GEDUh$$?<%gSU`O)b ze{8;||3S+Bi6soi^f;oj7moe}&5n6z*n}H@l(}B4sOI7lpmY_ny8JE7@Et3~mdC~D zl1W{%4H1+*hH26r=}79x(-Q1E|A@1no@zh~LO!J2tTuw%rKh0i&jhVZs^JzJDYU>} zJhFf(2JBU~cMC9glHFW1iE+(qxZF9xmu09x+j-6{h@iJ;d$DVB>K~wo1wrC&ld%rA zdxj#Cr5yg72q`>%Mak^|3g$#YIByP-33uzAd?T=zH73%DnlJg(83TF@YXZRjAl^MN z2OjOS-ca0#e*96f5m~MQ96$|BF%b_`?nJF6l4odWXg+?odTKjeO|XeJ*p_Lk=9 zz)G=yxtBEl+xXHifBqx$k6HeSeEf?osNebmNJS8VIkeB4i;*hxUsB$7^NgiCO+Q(D@ zUc7YMhkZhX{n?E<4y|gP`l%XB)S^V-wT~b4ituuEH|6^QsXak~4`+8JCQh_a^F(WI ex{2BeErzfa_jcx*#I5|(I%b^@I5*uB&wl|rN>g3{ literal 9425 zcmaKS$Fi&1l5L-_IDO&I(OlCd7ZS`jgXs{q|o#P%djbjsNE_Y5ZE!UmFSlgDse> z@F-@{XE}yX5}2w+k*lJWc=ipoB$y3?F$pc60TPKNZJfzyJIN5BOfOW%1M^E@(7=>? z9+8euaZp!axHWS$Gnk-ys-UJHffHO`52*pI*>QJ}tk1~Db>EVXpak-s`G99FcRh>a zgz}#9F|6|n?U^T8!qj2BIPwfW@P{`w|FGbt{-it=mc@b8#2WZOhvo9ptXu8jE4p`q zpeGrwj7)C1=czNt{>6}7*f88YsE0Y>!)t?dHW{~5|2~a|0^HmqPyV@9q*UW^4U1ai z+78WZu5FuNj~6aJO0@`qa05Y!>UM^*%W0| zCWH?(z9uMxI*efjmSH4V^UWq7jx9e~ONE^+8-f+cIEIQ*@ysOpvSky`F{jVMrpaWd zPdI$bha7B$SP)o&W0+WEdPZqBh2iSXMzkDVD`4s8W4lUX8D313uh`cG#Z0#HET{htWx$_e#vglE<~=cL^Qkh#>Ft8uvy ztfD5KUXw&M-bTfc16PrR)x|JlTdDWA3yV@nITVYiT_vrL%G6){-vG+LLpY5efCpWG zfQJl69Fy}*Z3j$U^DG;4%r0kq`&ficHGk0qZO|+7otHN=3;2^9Yk=?VgkIUS6OWVj`3&Y)5V^%qI&C@G@0H1La$4=c1T{bur(t zFB~C`ujoIAv*&DLOgthS!XT>7OFB9E(jpe#(v3(`3Wy})o5(oH2Yx$V^B4t)EN1@Z zMy!KM_PdEIG@d178EO-YJJ#B5kFga-vz1KQeHGxsn5~&u=j>W$c0~|vMPYV3Wa|4^ zo5%esnfqw1xRx=d>F%bQRDp{&t}|DyTOgo24H;tAbf~<8Em4Xq->;WRZ*!32N!*Tv zRwz1$KODmqFQRI~&rO2QJ&ID9q?@1s*vOuot&sg7<=><>o|rJKwUb6ix?ga})|1Am zCrH9QYsIK5`wcz5@q$0!2;0H@3qa2OVw$M`s&#X=HQXmsnjrJR*XR|A$HqL_OT^pE zG&7}c8E;$;s@6n$T05;Ig%Ma7NB^vJs=^86*+)%?hrU6QHu}24&fSc9{Lm6Dfowx` ztZ%y-ZOOA%WqEySy=(^ncE_NChLpMgGx;Lql};Mbg9=HM!MYrTpNwxpG5s!$GE^^6 zmJ(&-8NaCj?m9xy0SP@k|627r_TG6Pis1A-Da578u7q{re^S`ZU{iq7XL@$EC7BzL zNc1-ekJXmdJN%|8IQ*5N@EcYLElWdqW7nPmyDPeJ=tyw0Dn;caCh!>7m9r#w(-AnKpb$4qH^^rh_%AsRaoAy zsAd?AbC@0=_nFVQS%VN|W+6CS6}T(xDtc8JwTZ{RNin0M@BznEzmQZ~&o4~o*ED0d z;A)==0C%S7>aWAG)oPdPiJZ)~CBrGz<1KXH4L5Z9)#WH}b-o}zajV(}{?r1uw!F_< zuK{Jg)Jqo$@7g}BPcLkE)i{`V78`x&R8icR?TunFl9#?FL=mPJ-p{X`bPX*E-24I1 zb=SDDu5?B97M7WTG9fDu@dCwNd5rNw^K$Zh@C=A{^>;UAOeoO|IUPvx7m0c!0F8xY zpSBPxKmCoZbI#;Pf1yY_kTNukzn8BKBoF%8Bj8R=aIe-k!X~pGMrR9R(*c2o=w+%A zLlS)ayL8$wyl}9HG1m0WgolAGi1*=HK91Bi!;IQH3n4@CK9lylC5jEmhjmu?og#9`U^FLwP2vO)+~qj+lHzXKDy z3^*;yWCbY@9?OT97tljph%lBmU_{}>%#oBIXqi6Y;T{ z1OP6*V*#dRbL%|(lCie%iLKviM89OaEyITCs{olP#?m}F8#CN@ag|LU?`9gBxsZVu zzP5s)_HG>PLtjG_u@U8EvpY|ZsL#!P@nzl*&8+)L7lvevJDz5dk)6O)yUOnYa8TLu zviC8DUq`hI!Yv#a?p9+R-7-bYNv9!lc7G?1k+?f1b~iYd^*N3)eiIDvC&T;~!4x-t zauKRm;zzR^=NEv*@vi9*a zX4o?1U->gX%kxWHx;50#*BF;W^+85M1g1X3cO!q(9-ZQ7AX$ptzOUO7T0X`>0+=t)HIgBu?k4#a2bs!^iPk-aw|val77|fTM= z>@W(HA?Tl!e7z7pP&xaNQ!{S?u~iHGH%mp829XVOah@xg3uVfbR72zO9=CE4P_W;8 zjqF_R^3%~Uw`cPfLT{Mz0H7j^K=qMl-(gv{GOSm$gWTrOlAX zawNgL)(@}#C&2)JGRz+YQ)TFnD$fM=lY}^&VaoR=osTs&63a5qufZby8Z4ZWp}#xN zTrks~!7m;6IR9%p?M%`QV6#r5 zpSLU;hsT_7k3VEFqyosDggvxPmMryXF%*u9YB4K#>fm8V$)Pa($R7FqN`f#s73#Ll z^!So&L-mp$`(y-QctV};Mx|5X>>AlbAzH~7(hH#6Oe=q;mb0%0My7^o@Qu=HG7kwK zylRfG$B-}xko6d7?c)c1M)nx%#pNOUv5suIxLFz7{SxlqXWlh@k3j8%Ik4b`b(2U7 z#tGJ=ECS?;alS3r$DXJ}y_B|qsrFO-xRSHxCj~mvA#2Xt`FLMlm|PAjz_fgR?p+hL z&bVEHqlPyxG0Xm)>|;hyOj-u@yLb;o(w#xO(KT(Tu*$YOjU=C)MyVDJ3cl>=4BS`OOt&s(esr;Vk24QdSiJtx$Nya(1OG35{O3H#T=-Vl zuU8{D*ta9pq`VaS^mia(b8Z+Nv%zX#1}m}u7JA!&i&dX*NJ+FyMv9wUIFB#X3f#}k z^0Kp8BUG_$+(t2=n@vx}ubPa*=RV;&n|XCsdxB=Guhgs|kh3P^;^N)71#DbtCYC7= z2hy#GoxVI_1IMe424SM=OrWRNZr_TWWM{Wqrs*@>dtmpC!_Nb!4mV$G8-!kHVfeZg zXp;S5J@8(>1FwU7&etI=LS^qkd?7>3+3WeB*p6Zgq(GC63&(U5EyZKACzbZBW_{-u z_$XKv0|;Y7EZN1x&TUTqeA1uClo!X4B9<zx4n0&&KM1+PK7z!nt7)CWvBpC`Y##QxGpHIkmQv>v{`XzeV7a*C|4RN?Nq&)UM> zjRN$76;HAZ$=;4nm+Ra%X*=i~6?MI?nZ_`pMN-VWu3PWSWBgePiog$#vxV&=v%vQ0 z)aSgXM2?%B$Wnt3JN`47T%|!W;{h8Y%W}ziiZ%bO&wVqc5K(ZdZd_p}o%aFMZ1s}A zlc9Hx_M}^O|JA^+%tq$?Rh0U1TL;g_C(IcWrX#ED#tBqK?v0}&b9bs@0mw=4G_>S-)D)4a$>zv8jrY>Hk}!q4 z$q*286!fo?eNMS!5wkodWcGfq)i&zX_2N+y1w#k7OYyI0V>cOS(dEsx}m`v);?5O2tYF$%e z{Dw@a;9rrj_ZO@-n1)E|C9A+tpx3eT0iw@P_HYAOdt>Nl{&XbakXmcrn`U#IRTzc6 zQ1s^^m+w3@J!?>4-lPu&P;7=_Y@68z1QsSgxu%pDoV{3KI2n$*V=R^{T!v^ajGNcx z^q)}z1s^++zAEBa8qi#LT*S@hmoJ$|tt;SD&Hbtj^|axlJi+IhL(}EXdLO%PLp8;m zIrkXbWYC3^K5zi28Cm`mVV9_ictTK*CC1y5v96CgjcpJQj@?$oVB||ruWoN^mB6sh zZOnD_evf+$xM$v~i0ql6b01@NZOP`Gpm#!NWH&m;{nJ_Q0Q9pQdCCr=} z0b|cU*>Ab}-z>jZCsVQidlKs%x1Ol8zt5B}ZLWq}ig|4v+r-9qPt5|5`lfm&mpOfJ zHG;Hb5P2=?3KpV#wogdT>qrZhGbI0T{9b+JANg+pASRHt?PBkf&kbSUAtZs%7Gc-0 zLXIYDd@hs_dAK%>J2RQ81I8cMPI*w0D2sTa6p$R@t)c1Tp9q6HFUD_#1LVC){U4RZuEfQ2Iln{<(qx_t~;z3_WJxA&ZWj+S}mX^H`BI zQ+X2Io`xsBgc^A4}sg-d``9Yq|}L-jI~EsmVU0rO;Hk&f?J{aJh)`l`9A=l>E{#zI}ddN z_5)*Ezjp}fJY4)E_tLPRg9IlA6G{m<)AUfdb@OZ$yoBQ<_mPezHjlW1#0T_QdSmq|KJ>BMXiJfgf(ocxV$!9@{ zkM|c5(ta@i=!L6q{U6y2ETN%$ZzRMc_wmbe-@sCdDAT%&sW{3HcszS&CkB4nm0PQi zbQKpBUc9yT$yts@m$%GAq9Y5CKSJo+=%=0iu%NRSY36&Z{_4LYL&|ZFp%x=S<18;= zcZikf?4r3h%MsRL^(_hoZBp__Dv9ZvPUpH%O!((9_iZfvoB~Mtx3dHC$KwplyW1=^ zwww-X&~nv}qOI%>W#Ic#z$ETMQdm7ubiJPs`1=y}M1fO4Y`)?v^r$~Vc%L2h8zK6> zrl*1`A0nI{J6CD}>cirbV6VBe^RxoiW*h{bc(?*}w=*R?Ni!i(cgKxxk;vPp8?BP6i<^sIRYlCfqil>_q%++8*{-ehguNgi>*^l2l&&vH(deU;3U7>*$y6(vNm!^ zjrvR%uayHRYTZf@C;x%av9QPgobx#h?R3l{2USOK7gDK9BmDGfOfbB9)y|JwSft?cz@hN^d{IC#1NH3~pZ;#o@kJB-Q~zvE&_I0KgEg!gj_URf#ry_v z{=RGK1c)<#C=c)kb~TqUUFbT0-jk=pTm=zyY4+^$Ydpy(}hXgKIcop5Xo5Ztfw9NoGo?j-4slh0Nb^u}#A zF!uPFFD{Gfc0+!8;lBV#Zu$EZW>SS`=ee+hMango^DBt*>mt0>jT65350+o`og`a}w2vpTAfB5d_6#k9SH6YvkbX%acCuU3K8ov)O*4L6$$ercm$+E9r!yvl^x z=f>kUAf(}{EvUlX<{{MCWs_hhL|5E7Ir5=)zRj4{I2dZ|mQ+0B;FCPRa2B43oLkru z0iySs2;5ZrQor~pezNo~LhXRV?kS`L>sfD}GG9hps^Yf-6>rQtF3$??c}j3g-y6&P zR6X;;=l-ECIs=9bArke+-Q5vhmq<-Ak6uX3WQKu_Zt)dM@{3HQZAPd^#{!~lhys7lx^S8i zm1SMYH&NKKaL7`Lmv0->jyYL z(+MH06Shh67Mc2yFiz)?ZYt531ho;lyc#Q+tsnp^BQ9Td3Y? zXSnY!>=#7Y}fluXjxr3HFTD-I{!@RyG zc4h>r#4wp+4|_dx#nW~c#c-8tZlQvcQ*EOUj>iFV>jFC z-tYr(fhzB!8C0Bd^8Ii|>H@}7)9IFYS}H$`(BpA|)^veHl@j{ZMa3cB%KG+3D#bU3 zMpUw7)~_=tPrO;c7cZuOJqc6NVyOG(0(KYW!Ciba`0jXE%KAsTeVA&|XotG52Y)k? z^^68qlipJ(bLz_xZ$^^o<90O{11+Ae4k8m9L425@k6 zUZe6FWYMM(#p&nr5I|s!B27RP;11H7}o8RgQ<*ZP$SFz6TdD3kB6{V}Fr6<3$ wE`Z0<35V8JQx~Yd5z;fX5A`lcj#=WO{*V6v{$r%(2>AUtl3?=xpJ$c+FPEhGKmY&$ diff --git a/glibc.spec b/glibc.spec index f1e5cf0..b383069 100644 --- a/glibc.spec +++ b/glibc.spec @@ -120,7 +120,7 @@ Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig %endif -Source2: glibc.keyring +Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -310,6 +310,12 @@ Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch Patch1056: clntudp-call-alloca.patch # PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) Patch1057: nscd-gc-crash.patch +# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) +Patch1058: nis-initgroups-status.patch +# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) +Patch1059: robust-mutex-deadlock.patch +# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) +Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -590,6 +596,9 @@ rm nscd/s-stamp %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 +# The testsuite does its own malloc checking +unset MALLOC_CHECK_ make -C cc-base -k check || { cd cc-base o=$- diff --git a/nis-initgroups-status.patch b/nis-initgroups-status.patch new file mode 100644 index 0000000..786c4e6 --- /dev/null +++ b/nis-initgroups-status.patch @@ -0,0 +1,53 @@ + [BZ #20262] + * nis/nss_nis/nis-initgroups.c (_nss_nis_initgroups_dyn): Return + NSS_STATUS_SUCCESS when done. Return NSS_STATUS_TRYAGAIN when out + of memory. + +Index: glibc-2.23/nis/nss_nis/nis-initgroups.c +=================================================================== +--- glibc-2.23.orig/nis/nss_nis/nis-initgroups.c ++++ glibc-2.23/nis/nss_nis/nis-initgroups.c +@@ -266,7 +266,7 @@ _nss_nis_initgroups_dyn (const char *use + + tmpbuf = __alloca (buflen); + +- do ++ while (1) + { + while ((status = + internal_getgrent_r (&grpbuf, tmpbuf, buflen, errnop, +@@ -275,8 +275,11 @@ _nss_nis_initgroups_dyn (const char *use + tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); + + if (status != NSS_STATUS_SUCCESS) +- goto done; +- ++ { ++ if (status == NSS_STATUS_NOTFOUND) ++ status = NSS_STATUS_SUCCESS; ++ goto done; ++ } + + g = &grpbuf; + if (g->gr_gid != group) +@@ -304,7 +307,11 @@ _nss_nis_initgroups_dyn (const char *use + + newgroups = realloc (groups, newsize * sizeof (*groups)); + if (newgroups == NULL) +- goto done; ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ *errnop = errno; ++ goto done; ++ } + *groupsp = groups = newgroups; + *size = newsize; + } +@@ -316,7 +323,6 @@ _nss_nis_initgroups_dyn (const char *use + } + } + } +- while (status == NSS_STATUS_SUCCESS); + + done: + while (intern.start != NULL) diff --git a/nsswitch.conf b/nsswitch.conf index 9d628f0..fbd63fd 100644 --- a/nsswitch.conf +++ b/nsswitch.conf @@ -26,8 +26,8 @@ # shadow: files nis # group: files nis -passwd: compat -group: compat +passwd: compat [NOTFOUND=return] files +group: compat [NOTFOUND=return] files hosts: files dns networks: files dns diff --git a/robust-mutex-deadlock.patch b/robust-mutex-deadlock.patch new file mode 100644 index 0000000..a7edfc2 --- /dev/null +++ b/robust-mutex-deadlock.patch @@ -0,0 +1,152 @@ + [BZ #20263] + * nptl/lowlevelrobustlock.c (__lll_robust_timedlock_wait) + [__ASSUME_FUTEX_CLOCK_REALTIME]: Check for timeout from + lll_futex_timed_wait_bitset. + * nptl/tst-robust10.c: New test. + * nptl/Makefile (tests): Add tst-robust10. + +Index: glibc-2.23/nptl/Makefile +=================================================================== +--- glibc-2.23.orig/nptl/Makefile ++++ glibc-2.23/nptl/Makefile +@@ -288,7 +288,7 @@ tests = tst-typesizes \ + tst-initializers1 $(addprefix tst-initializers1-,\ + c89 gnu89 c99 gnu99 c11 gnu11) \ + tst-bad-schedattr \ +- tst-thread_local1 tst-mutex-errorcheck ++ tst-thread_local1 tst-mutex-errorcheck tst-robust10 + xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \ + tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 + test-srcs = tst-oddstacklimit +Index: glibc-2.23/nptl/lowlevelrobustlock.c +=================================================================== +--- glibc-2.23.orig/nptl/lowlevelrobustlock.c ++++ glibc-2.23/nptl/lowlevelrobustlock.c +@@ -118,8 +118,10 @@ __lll_robust_timedlock_wait (int *futex, + || !defined lll_futex_timed_wait_bitset) + lll_futex_timed_wait (futex, newval, &rt, private); + #else +- lll_futex_timed_wait_bitset (futex, newval, abstime, +- FUTEX_CLOCK_REALTIME, private); ++ int err = lll_futex_timed_wait_bitset (futex, newval, abstime, ++ FUTEX_CLOCK_REALTIME, private); ++ if (err == -ETIMEDOUT) ++ return -err; + #endif + + try: +Index: glibc-2.23/nptl/tst-robust10.c +=================================================================== +--- /dev/null ++++ glibc-2.23/nptl/tst-robust10.c +@@ -0,0 +1,110 @@ ++/* Test that pthread_mutex_timedlock properly times out. ++ Copyright (C) 2016 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++pthread_mutex_t mutex; ++ ++static void * ++thr (void *arg) ++{ ++ struct timespec abstime; ++ clock_gettime (CLOCK_REALTIME, &abstime); ++ abstime.tv_sec += 1; ++ int ret = pthread_mutex_timedlock (&mutex, &abstime); ++ if (ret == 0) ++ { ++ puts ("mutex_timedlock didn't fail"); ++ exit (1); ++ } ++ if (ret != ETIMEDOUT) ++ { ++ printf ("mutex_timedlock failed: %s\n", strerror (ret)); ++ exit (1); ++ } ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ pthread_t pt; ++ pthread_mutexattr_t ma; ++ ++ if (pthread_mutexattr_init (&ma) != 0) ++ { ++ puts ("mutexattr_init failed"); ++ return 0; ++ } ++ if (pthread_mutexattr_setrobust_np (&ma, PTHREAD_MUTEX_ROBUST_NP) != 0) ++ { ++ puts ("mutexattr_setrobust failed"); ++ return 1; ++ } ++ if (pthread_mutex_init (&mutex, &ma)) ++ { ++ puts ("mutex_init failed"); ++ return 1; ++ } ++ ++ if (pthread_mutexattr_destroy (&ma)) ++ { ++ puts ("mutexattr_destroy failed"); ++ return 1; ++ } ++ ++ if (pthread_mutex_lock (&mutex)) ++ { ++ puts ("mutex_lock failed"); ++ return 1; ++ } ++ ++ if (pthread_create (&pt, NULL, thr, NULL)) ++ { ++ puts ("pthread_create failed"); ++ return 1; ++ } ++ ++ if (pthread_join (pt, NULL)) ++ { ++ puts ("pthread_join failed"); ++ return 1; ++ } ++ ++ if (pthread_mutex_unlock (&mutex)) ++ { ++ puts ("mutex_unlock failed"); ++ return 1; ++ } ++ ++ if (pthread_mutex_destroy (&mutex)) ++ { ++ puts ("mutex_destroy failed"); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/strncat-avoid-array-bounds-warning.patch b/strncat-avoid-array-bounds-warning.patch new file mode 100644 index 0000000..f196c34 --- /dev/null +++ b/strncat-avoid-array-bounds-warning.patch @@ -0,0 +1,31 @@ +Subject: [PATCH] Avoid array-bounds warning for strncat on i586 + + [BZ #20260] + * sysdeps/x86/bits/string.h (__strncat_g) [!__i686__]: Compute the + address before the beginning of the string as an integer to avoid + array-bounds warning. + +diff --git a/sysdeps/x86/bits/string.h b/sysdeps/x86/bits/string.h +index 8dfce05..805d33f 100644 +--- a/sysdeps/x86/bits/string.h ++++ b/sysdeps/x86/bits/string.h +@@ -1089,7 +1089,6 @@ __strncat_g (char *__dest, const char __src[], size_t __n) + : "g" (__n), "0" (0), "1" (__tmp), "2" (__src), "3" (0xffffffff) + : "memory", "cc"); + # else +- --__tmp; + __asm__ __volatile__ + ("1:\n\t" + "cmpb $0,1(%1)\n\t" +@@ -1108,7 +1107,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n) + "3:\n\t" + "movb $0,(%1)" + : "=&q" (__dummy), "=&r" (__tmp), "=&r" (__src), "=&r" (__n) +- : "1" (__tmp), "2" (__src), "3" (__n) ++ : "1" ((unsigned long) __tmp - 1), "2" (__src), "3" (__n) + : "memory", "cc"); + #endif + return __dest; +-- +2.9.0 + From 71b68757649cc1669b287867b5a8749aed5f0bff27c9d92f0569495487d4e5bc Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 9 Sep 2016 08:12:50 +0000 Subject: [PATCH 197/204] Accepting request 417981 from Base:System - Update to glibc 2.24 * The minimum Linux kernel version that this version of the GNU C Library can be used with is 3.2 * The pap_AN locale has been deleted * The readdir_r and readdir64_r functions have been deprecated * The type `union wait' has been removed * A new NSS action is added to facilitate large distributed system administration * The deprecated __malloc_initialize_hook variable has been removed from the API * The long unused localedef --old-style option has been removed * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added to libm * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed (CVE-2016-3075) * Previously, getaddrinfo copied large amounts of address data to the stack, even after the fix for CVE-2013-4458 has been applied, potentially resulting in a stack overflow. getaddrinfo now uses a heap allocation instead (CVE-2016-3706) * The glob function suffered from a stack-based buffer overflow when it was called with the GLOB_ALTDIRFUNC flag and encountered a long file name (CVE-2016-1234) * The Sun RPC UDP client could exhaust all available stack space when flooded with crafted ICMP and UDP messages (CVE-2016-4429) * The IPv6 name server management code in libresolv could result in a memory leak for each thread which is created, performs a failing naming lookup, and exits (CVE-2016-5417) - startcontext-cantunwind.patch: mark __startcontext as .cantunwind (bsc#974800, BZ #20435) - Removed patches: OBS-URL: https://build.opensuse.org/request/show/417981 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=206 --- 0001-Updated-translations-for-2.23.patch | 52713 ---------------- 0002-Regenerate-libc.pot-for-2.23.patch | 2313 - 0003-Regenerated-configure-scripts.patch | 17 - ...t-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch | 101 - ...64_-to-sysdeps-arm-nacl-libc.abilist.patch | 19 - ...ouble-math-functions-if-NO_LONG_DOUB.patch | 28 - ...NEWS-2.23-Fix-typo-in-bug-19048-text.patch | 17 - 0008-Update-NEWS.patch | 22 - 0009-sln-use-stat64.patch | 23 - ...dd-sys-auxv.h-wrapper-to-include-sys.patch | 10 - ...he-FDE-before-the-return-trampoline-.patch | 43 - ...AS_ARCH_FEATURE-with-Fast_Rep_String.patch | 135 - 0013-Mention-BZ-19762-in-NEWS.patch | 12 - ...AVE_STRING_ARCH_mempcpy-to-1-for-x86.patch | 31 - ...r_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch | 31 - ...-resource-leak-in-resolver-bug-19257.patch | 19 - ...bber-old-libm.so-on-install-BZ-19822.patch | 32 - ...t-resplen2-out-parameter-in-send_dg-.patch | 187 - ...store-fprs-vrs-while-resolving-symbo.patch | 857 - ...cts-La_s390_regs-La_s390_retval-with.patch | 371 - ...ack-overflow-in-_nss_dns_getnetbynam.patch | 60 - 0022-configure-fix-test-usage.patch | 77 - ...arning-about-ambiguous-else-with-Wpa.patch | 73 - ...-ERANGE-error-if-parse_line-fails-BZ.patch | 21 - 0025-getnameinfo-Do-not-preserve-errno.patch | 48 - ...efactor-and-fix-memory-leak-BZ-19642.patch | 635 - ...ce-line-length-and-add-missing-comme.patch | 119 - ...d-calling-strnlen-on-uninitialized-b.patch | 47 - ...rn-EAI_OVERFLOW-in-more-cases-BZ-197.patch | 176 - 0030-hesiod-Remove-RCS-keywords.patch | 48 - ...e-thread-local-resolver-state-BZ-195.patch | 440 - ...p-overflow-in-get_txt_records-BZ-200.patch | 19 - 0033-malloc-Remove-NO_THREADS.patch | 73 - ...loc-threaded-tests-link-on-non-Linux.patch | 26 - ...handler-as-late-as-possible-BZ-19431.patch | 568 - ...emove-malloc-hooks-from-fork-handler.patch | 216 - ...ng-internal_function-attributes-on-f.patch | 34 - ...rtion-failure-in-_nss_dns_getcanonna.patch | 24 - ...-RDATA-length-against-packet-length-.patch | 77 - ...emove-remaining-syslog-logging-BZ-19.patch | 150 - ...dress-length-before-creating-addrinf.patch | 104 - ...r-non-PTR-records-in-the-netent-code.patch | 55 - ...t-resplen2-out-parameter-in-send_vc-.patch | 113 - ...udit10-Compile-AVX-AVX-512-code-sepa.patch | 274 - ...build-when-mavx512f-is-not-supported.patch | 39 - ...compilation-on-compilers-without-bit.patch | 35 - ...ecified-locale-for-number-formatting.patch | 465 - ...e-interface-for-the-GLOB_ALTDIRFUNC-.patch | 212 - ...ob-Do-not-copy-d_name-field-of-struc.patch | 396 - ...remove-stale-symbolic-links-with-X-B.patch | 132 - ...sym-lookup-errors-using-dlerror-BZ-1.patch | 158 - 0052-Fix-tst-dlsym-error-build.patch | 16 - ...newline-from-date_fmt-in-Serbian-loc.patch | 46 - ...sym-dlvsym-lookup-errors-using-dlerr.patch | 150 - ...taddrinfo-stack-overflow-in-hostent-.patch | 175 - ...e-specified-locale-for-number-format.patch | 41 - _service | 2 +- clntudp-call-alloca.patch | 41 - fnmatch-collating-elements.patch | 10 +- glibc-2.23.tar.xz | 3 - glibc-2.23.tar.xz.sig | 11 - glibc-2.24.tar.xz | 3 + glibc-2.24.tar.xz.sig | 17 + glibc-2.4-china.diff | 19 +- glibc-memset-nontemporal.diff | 40 - glibc-resolv-reload.diff | 7 +- glibc-testsuite.changes | 96 + glibc-testsuite.spec | 139 +- glibc-utils.changes | 96 + glibc-utils.spec | 139 +- glibc.changes | 96 + glibc.keyring | Bin 31153 -> 33423 bytes glibc.spec | 139 +- iconv-reset-input-buffer.patch | 50 +- nis-initgroups-status.patch | 53 - nscd-gc-crash.patch | 73 - reinitialize-dl_load_write_lock.patch | 4 +- robust-mutex-deadlock.patch | 152 - startcontext-cantunwind.patch | 42 + strncat-avoid-array-bounds-warning.patch | 31 - 80 files changed, 421 insertions(+), 63165 deletions(-) delete mode 100644 0001-Updated-translations-for-2.23.patch delete mode 100644 0002-Regenerate-libc.pot-for-2.23.patch delete mode 100644 0003-Regenerated-configure-scripts.patch delete mode 100644 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch delete mode 100644 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch delete mode 100644 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch delete mode 100644 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch delete mode 100644 0008-Update-NEWS.patch delete mode 100644 0009-sln-use-stat64.patch delete mode 100644 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch delete mode 100644 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch delete mode 100644 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch delete mode 100644 0013-Mention-BZ-19762-in-NEWS.patch delete mode 100644 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch delete mode 100644 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch delete mode 100644 0016-Fix-resource-leak-in-resolver-bug-19257.patch delete mode 100644 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch delete mode 100644 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch delete mode 100644 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch delete mode 100644 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch delete mode 100644 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch delete mode 100644 0022-configure-fix-test-usage.patch delete mode 100644 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch delete mode 100644 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch delete mode 100644 0025-getnameinfo-Do-not-preserve-errno.patch delete mode 100644 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch delete mode 100644 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch delete mode 100644 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch delete mode 100644 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch delete mode 100644 0030-hesiod-Remove-RCS-keywords.patch delete mode 100644 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch delete mode 100644 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch delete mode 100644 0033-malloc-Remove-NO_THREADS.patch delete mode 100644 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch delete mode 100644 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch delete mode 100644 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch delete mode 100644 0037-malloc-Add-missing-internal_function-attributes-on-f.patch delete mode 100644 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch delete mode 100644 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch delete mode 100644 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch delete mode 100644 0041-nss_dns-Check-address-length-before-creating-addrinf.patch delete mode 100644 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch delete mode 100644 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch delete mode 100644 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch delete mode 100644 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch delete mode 100644 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch delete mode 100644 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch delete mode 100644 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch delete mode 100644 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch delete mode 100644 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch delete mode 100644 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch delete mode 100644 0052-Fix-tst-dlsym-error-build.patch delete mode 100644 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch delete mode 100644 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch delete mode 100644 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch delete mode 100644 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch delete mode 100644 clntudp-call-alloca.patch delete mode 100644 glibc-2.23.tar.xz delete mode 100644 glibc-2.23.tar.xz.sig create mode 100644 glibc-2.24.tar.xz create mode 100644 glibc-2.24.tar.xz.sig delete mode 100644 glibc-memset-nontemporal.diff delete mode 100644 nis-initgroups-status.patch delete mode 100644 nscd-gc-crash.patch delete mode 100644 robust-mutex-deadlock.patch create mode 100644 startcontext-cantunwind.patch delete mode 100644 strncat-avoid-array-bounds-warning.patch diff --git a/0001-Updated-translations-for-2.23.patch b/0001-Updated-translations-for-2.23.patch deleted file mode 100644 index 3534c1f..0000000 --- a/0001-Updated-translations-for-2.23.patch +++ /dev/null @@ -1,52713 +0,0 @@ -2016-02-18 Adhemerval Zanella - - * po/be.po: Updated translation. - * po/bg.po: Likewise. - * po/ca.po: Likewise. - * po/cs.po: Likewise. - * po/da.po: Likewise. - * po/el.po: Likewise. - * po/eo.po: Likewise. - * po/es.po: Likewise. - * po/fi.po: Likewise. - * po/fr.po: Likewise. - * po/gl.po: Likewise. - * po/hr.po: Likewise. - * po/hu.po: Likewise. - * po/ia.po: Likewise. - * po/id.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/lt.po: Likewise. - * po/nb.po: Likewise. - * po/nl.po: Likewise. - * po/pt_BR.po: Likewise. - * po/rw.po: Likewise. - * po/sk.po: Likewise. - * po/sl.po: Likewise. - * po/sv.po: Likewise. - * po/tr.po: Likewise. - * po/zh_CN.po: Likewise. - * po/zh_TW.po: Likewise. - -Index: glibc-2.23/po/be.po -=================================================================== ---- glibc-2.23.orig/po/be.po -+++ glibc-2.23/po/be.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.19.90\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2014-12-24 15:35+0300\n" - "Last-Translator: Viktar Siarheichyk \n" - "Language-Team: Belarusian \n" -@@ -139,10 +139,10 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -152,7 +152,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -166,7 +166,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -422,12 +422,12 @@ msgstr "" - msgid "Renaming of %s to %s failed" - msgstr "" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - #, fuzzy - msgid "cannot create scope list" - msgstr "немагчыма Ñтварыць кÑш Ð´Ð»Ñ ÑˆÐ»Ñху пошуку" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "" - -@@ -501,131 +501,131 @@ msgstr "" - msgid "cannot stat shared object" - msgstr "" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "немагчыма разьмеркаваць памÑць Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÑƒ праграмы" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - #| msgid "invalid saved time" - msgid "invalid caller" - msgstr "нерÑчаіÑны захаваны чаÑ" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - #| msgid "cannot create internal descriptor" - msgid "cannot close file descriptor" - msgstr "немагчыма Ñтварыць унутраны дÑÑкрыптар" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "нерÑчаіÑÐ½Ð°Ñ ABI вÑÑ€ÑÑ‹Ñ ELF файла" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "" - -@@ -637,11 +637,11 @@ msgstr "" - msgid "cannot map zero-fill pages" - msgstr "" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -649,51 +649,42 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - #| msgid "Cannot allocate memory" - msgid "cannot allocate memory in static TLS block" - msgstr "немагчыма разьмеркаваць памÑць" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "" - -@@ -701,7 +692,7 @@ msgstr "" - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - #, fuzzy - msgid "cannot create TLS data structures" - msgstr "немагчыма Ñтварыць ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ñ‹Ñ Ð´ÑÑкрыптары" -@@ -846,7 +837,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "Ðемагчыма адчыніць Ñ‚Ñчку %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Файл уводу %s неадшуканы.\n" -@@ -975,7 +966,7 @@ msgstr "" - msgid "No such file or directory" - msgstr "файл ці Ñ‚Ñчка Ð½Ñ Ð¹Ñнуе" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "" - -@@ -1024,70 +1015,76 @@ msgstr "немагчыма прачытР- msgid "cannot read program interpreter" - msgstr "немагчыма прачытаць загаловак" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read link map" - msgstr "немагчыма прачытаць загаловак" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "немагчыма прачытаць загаловак" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "немагчыма разьмеркаваць памÑць Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÑƒ праграмы" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "немагчыма адчыніць \"%s\"" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "немагчыма адчыніць \"%s\"" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot find C preprocessor: %s \n" - msgid "cannot attach to process %lu" - msgstr "немагчыма адшукаць C прÑпрацÑÑар: %s \n" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1122,27 +1119,27 @@ msgstr "" - msgid "more than one dynamic segment\n" - msgstr "" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s - гÑта не ELF файл - ён мае памылковы \"чароўны байт\" на пачатку файлу.\n" -@@ -1263,10 +1260,10 @@ msgstr "" - msgid "failed to load shared object `%s'" - msgstr "" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "немагчыма Ñтварыць ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ñ‹Ñ Ð´ÑÑкрыптары" -+msgid "cannot create internal descriptor" -+msgstr "немагчыма Ñтварыць унутраны дÑÑкрыптар" - - #: elf/sprof.c:554 - #, c-format -@@ -1334,11 +1331,6 @@ msgstr "" - msgid "error while closing the profiling data file" - msgstr "" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "немагчыма Ñтварыць унутраны дÑÑкрыптар" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1583,27 +1575,27 @@ msgstr "" - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "немагчыма адчыніць" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "дрÑнны ўладальнік" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "" - -@@ -1723,8 +1715,8 @@ msgid "no symbolic name given for end of - msgstr "" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1750,8 +1742,8 @@ msgid "%s: error in state machine" - msgstr "" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1772,7 +1764,7 @@ msgstr "" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "" -@@ -1794,8 +1786,8 @@ msgstr "" - msgid "resulting bytes for range not representable." - msgstr "" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1860,7 +1852,7 @@ msgid "%s: numeric country code `%d' not - msgstr "" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1882,8 +1874,8 @@ msgstr "%s: поле `%s' абвешча - msgid "%s: unknown character in field `%s'" - msgstr "" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1892,12 +1884,12 @@ msgstr "" - msgid "%s: incomplete `END' line" - msgstr "" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1907,479 +1899,479 @@ msgstr "" - msgid "%s: syntax error" - msgstr "" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' павінен быць знакам" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - #| msgid "conversion to `%s' is not supported" - msgid "%s: nested conditionals not supported" - msgstr "пераўтварÑньне Ñž \"%s\" не падтрымліваецца" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: More than one -l option specified\n" - msgid "%s: more than one 'else'" - msgstr "%s: больш чым адзін выбар -l зададзены\n" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - #| msgid "unknown set `%s'" - msgid "%s: unknown section name `%.*s'" - msgstr "невÑдомае мноÑтва `%s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -3767,17 +3759,22 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 - #, c-format --msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3871,153 +3868,214 @@ msgstr "" - msgid "cannot enable socket to accept connections: %s" - msgstr "" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 - #, c-format --msgid "register trace file %s for database %s" -+msgid "disabled inotify-based monitoring for file `%s': %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Ðемагчыма адчыніць Ñ‚Ñчку %s" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "немагчыма запіÑаць вынік: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "ignored inotify event for `%s` (file exists)" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "" -@@ -4105,7 +4163,7 @@ msgstr "ВыкарыÑтоўваць Ð°Ñ - msgid "Name Service Cache Daemon." - msgstr "" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "" -@@ -4142,7 +4200,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "Ðемагчыма Ñтварыць log-файл \"%s\"" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "Ð·Ð°Ð¿Ñ–Ñ Ð½ÑÑкончаны" -@@ -4159,7 +4217,7 @@ msgstr "немагчыма прачытР- msgid "invalidation failed" - msgstr "Памылка зьмÑненьнÑ" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "" -@@ -4241,35 +4299,35 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "немагчыма запіÑаць ÑтатыÑтыку: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4277,27 +4335,27 @@ msgid "" - "%15d server debug level\n" - msgstr "" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4308,7 +4366,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - #| msgid "" - #| "\n" -@@ -4377,91 +4435,91 @@ msgstr "" - msgid "Invalid numeric uid \"%s\"!" - msgstr "" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - #| msgid "Modification failed" - msgid "cap_init failed" - msgstr "Памылка зьмÑненьнÑ" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - #| msgid "failed to create new locale archive" - msgid "Failed to create AVC lock" - msgstr "немагчыма Ñтварыць новы архіў мÑÑцоваÑьці" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - #, fuzzy - #| msgid "Error writing standard output" - msgid "Error getting sid from context" - msgstr "Памылка запіÑу Ñтандартнага вываду" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4512,17 +4570,17 @@ msgstr "" - msgid "Enumeration not supported on %s\n" - msgstr "ПералічÑньне непадтрымліваецца на %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - #| msgid "Unknown database: %s\n" - msgid "Unknown database name" - msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð±Ð°Ð·Ð° даньнÑÑž: %s\n" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð±Ð°Ð·Ð° даньнÑÑž: %s\n" -@@ -4808,7 +4866,7 @@ msgstr "" - msgid "No previous regular expression" - msgstr "" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -@@ -7221,6 +7279,9 @@ msgstr "" - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: немагчыма Ñтварыць Ñ‚Ñчку %s: %s\n" - -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "немагчыма Ñтварыць ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ñ‹Ñ Ð´ÑÑкрыптары" -+ - #~ msgid "Error 0" - #~ msgstr "Памылка 0" - -Index: glibc-2.23/po/bg.po -=================================================================== ---- glibc-2.23.orig/po/bg.po -+++ glibc-2.23/po/bg.po -@@ -7,9 +7,9 @@ - # - msgid "" - msgstr "" --"Project-Id-Version: libc 2.19.90\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" --"PO-Revision-Date: 2014-08-21 22:16+0300\n" -+"Project-Id-Version: libc 2.22-pre1\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"PO-Revision-Date: 2015-08-02 23:16+0300\n" - "Last-Translator: Roumen Petrov \n" - "Language-Team: Bulgarian \n" - "Language: bg\n" -@@ -146,10 +146,10 @@ msgstr "" - "[ИЗХОДЕÐ-ФÐЙЛ [ВХОДЕÐ_ФÐЙЛ]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -161,7 +161,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -178,7 +178,7 @@ msgstr "" - "ГÐРÐÐЦИИ, включително без предполагаемите гаранции за полезноÑÑ‚ и пригодноÑÑ‚.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -433,11 +433,11 @@ msgstr "Пропадна ÑмÑната - msgid "Renaming of %s to %s failed" - msgstr "Пропадна преименуването от %s към %s" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "не може да Ñе Ñъздаде ÑпиÑък на обхватът" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "не е отворен ÑподелениÑÑ‚ обект" - -@@ -510,127 +510,127 @@ msgstr "не може да Ñе Ñъзд - msgid "cannot stat shared object" - msgstr "не може да Ñе определÑÑ‚ атрибутите на Ñподелен обект" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "не може да Ñе отвори уÑтройÑтвото за запълване Ñ Ð½ÑƒÐ»Ð¸(/dev/zero)" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "не може да Ñе Ñъздаде опиÑание за Ñподелен обект" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "не може да Ñе прочетат данни от файлът" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "подравнÑването, в командата за зареждане на ELF, не е подравнено на Ñтраници" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "адреÑÑŠÑ‚/отмеÑтването, в командата за зареждане на ELF, не е подравнен правилно" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "за първоначалната нишка, не може да Ñе заделÑÑ‚ Ñтруктурите за TLS данни" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "не Ñе поддържат TLS данни" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "обектниÑÑ‚ файл е без дÑлове за Ñвързване" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "изпълнимиÑÑ‚ файл не може да Ñе Ñвърже динамично" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "обектниÑÑ‚ файл е без ÑÐµÐºÑ†Ð¸Ñ Ð·Ð° динамично Ñвързване" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "не е възможно dlopen() за ÑподелениÑÑ‚ обект" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "не може да Ñе задели памет за заглавието на програмата" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "неправилен извикващ" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "не може да Ñе промени защитата на паметта" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "Ñтекът не може да Ñе разреши за изпълнение, както е поиÑкано от ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "не може да Ñе затвори опиÑанието на файлът" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "файлът е твърде къÑ" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "неправилен ELF заглавен блок" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "данните от ELF файлът не Ñа кодирани ÑÑŠÑ Ñтарши байт първи(big-endian)" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "данните от ELF файлът не Ñа кодирани Ñ Ð¼Ð»Ð°Ð´ÑˆÐ¸ байт първи(little-endian)" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "идентификаторът на верÑÐ¸Ñ Ð¾Ñ‚ ELF файлът не ÑъответÑтва на текущата" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF файлът е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ номер на ДПИ(ABI-двоичен програмен интерфейÑ) за ОС " - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF файлът е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð° верÑÐ¸Ñ Ð·Ð° ДПИ(двоичен програмен интерфейÑ)" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "ненулево допълване при e_ident" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "вътрешна грешка" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "верÑиÑта, на ELF файлът, не ÑъответÑтва на текущата" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "Ñамо ET_DYN и ET_EXEC могат да Ñе Ñвържат" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "неочакван размер на елемент(phentsize) в заглавието на ELF файл" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "неправилен ELF клаÑ: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "неправилен ELF клаÑ: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "не може да Ñе отвори файлът ÑÑŠÑ ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚" - -@@ -642,11 +642,11 @@ msgstr "пропадна изображР- msgid "cannot map zero-fill pages" - msgstr "не може да Ñе изобразÑÑ‚ Ñтраници запълнени Ñ Ð½ÑƒÐ»Ð¸" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "грешка при премеÑтване" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "грешка при Ñ‚ÑŠÑ€Ñене на Ñимвол" - -@@ -654,49 +654,40 @@ msgstr "грешка при Ñ‚ÑŠÑ€Ñен - msgid "cannot extend global scope" - msgstr "не може да Ñе увеличи общата облаÑÑ‚" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "ПревъртÑн броÑч за пораждане на TLS! ÐœÐ¾Ð»Ñ Ñ€Ð°Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð¹Ñ‚Ðµ го." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "не може да Ñе заредÑÑ‚ повече обектив Ñтатичен TSL блок" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "неправилен режим за dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "не Ñа налични повече именувани проÑтранÑтва за dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "неправилно именувано целево проÑтранÑтво в dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "не може да Ñе задели памет в Ñтатичен TSL блок" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "дÑлът не може да Ñе маркира като запиÑваем за \"премеÑтваем код\"" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: не е намерен PLTREL за обекта %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: недоÑтиг на памет за ÑъхранÑване на резултата за \"премеÑтваем код\" на %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "не може да Ñе възÑтанови защитата на дÑла Ñлед премеÑтване" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "Ñлед премеÑтването не може да Ñе поÑтави допълнителна защита на паметта" - -@@ -704,7 +695,7 @@ msgstr "Ñлед премеÑÑ‚Ð²Ð°Ð½ÐµÑ - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT е използван в код, който не е за динамично Ñвързване" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "не може да Ñе Ñъздадат Ñтруктури за TLS данни" - -@@ -848,7 +839,7 @@ msgstr "Ðе е Ñъздадена Ð²Ñ€Ñ - msgid "Can't open directory %s" - msgstr "Ðе може да Ñе отвори Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Ð’Ñ…Ð¾Ð´Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» %s не е намерен.\n" -@@ -979,7 +970,7 @@ msgstr "липÑва аргумент з - msgid "No such file or directory" - msgstr "ÐÑма такъв файл или директориÑ" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "не е обикновен файл" - -@@ -1024,65 +1015,70 @@ msgstr "не може да Ñе проч - msgid "cannot read program interpreter" - msgstr "не може да Ñе прочете програмното възпроизвеждане" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "не може да Ñе прочете изобразÑването на връзките" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "не може да Ñе прочете името на обекта" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "не може да Ñе задели памет име на обекта" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "ИзброÑване на динамично Ñвързаните обекти заредени от процеÑа." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "Ðом.проц." - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Ðеобходим е точно един параметър Ñ Ð½Ð¾Ð¼ÐµÑ€ на процеÑ.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "неправилен разпознавател на Ð¿Ñ€Ð¾Ñ†ÐµÑ '%s'" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "не може да Ñе отвори %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "не може да Ñе отвори задача %s" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "не е готово четенето на задача %s" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "неправилен разпознавател за нишка '%s'" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "не може да Ñе закачи към Ð¿Ñ€Ð¾Ñ†ÐµÑ %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "не може да Ñе вземат ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð·Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑ %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "процеÑа %lu не е ELF-програма" -@@ -1117,27 +1113,27 @@ msgstr "%s не е файл за ÑпоР- msgid "more than one dynamic segment\n" - msgstr "повече от един дÑл за динамично Ñвързване\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Ðе може да Ñе определÑÑ‚ атрибутите(fstat) на файлът %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Файлът %s е празен и не е проверен." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Файлът %s е много ÐºÑŠÑ Ð¸ не е проверен." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Файлът %s не може да Ñе изобрази в паметта(mmap).\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s не е ELF файл - започва Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð¸ магичеÑки байтове.\n" -@@ -1271,10 +1267,10 @@ msgstr "СПОД_ОБЕКТ [ДИÐГ_Д - msgid "failed to load shared object `%s'" - msgstr "пропадна зареждането на ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ \"%s\"" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "не може да Ñе Ñъздадат вътрешни опиÑаниÑ" -+msgid "cannot create internal descriptor" -+msgstr "не може да Ñе Ñъздаде вътрешно опиÑание" - - #: elf/sprof.c:554 - #, c-format -@@ -1341,11 +1337,6 @@ msgstr "ÐеуÑпех при изобр - msgid "error while closing the profiling data file" - msgstr "грешка при затварÑне на файл Ñ Ð´Ð¸Ð°Ð³Ð½Ð¾Ñтични данни" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "не може да Ñе Ñъздаде вътрешно опиÑание" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1593,27 +1584,27 @@ msgstr "socket: неуÑпех на пр - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: недоÑтиг при четене" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "пропадна lstat" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "не може да Ñе отвори" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "пропадна fstat" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "неправилен ÑобÑтвеник" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "оÑвен ÑобÑтвеника, може да Ñе запиÑва и от други" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "твърдо Ñвързан нанÑкъде" - -@@ -1733,8 +1724,8 @@ msgid "no symbolic name given for end of - msgstr "не е зададено Ñимволично име за край на диапазон" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1760,8 +1751,8 @@ msgid "%s: error in state machine" - msgstr "%s: грешка в ÑÑŠÑтоÑнието на машината" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1782,7 +1773,7 @@ msgstr "неизвеÑтен знак \" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "Ð±Ð¾Ñ Ð½Ð° байтовете, в поÑледователноÑÑ‚ от байтове за начало и край на диапазон, не е ÑъщиÑ: %d Ñ/у %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "неправилни имена за диапазон от знаци" -@@ -1804,8 +1795,8 @@ msgstr "горната граница з - msgid "resulting bytes for range not representable." - msgstr "резултата от байтове за диапазона не може да Ñе предÑтавÑÑ‚." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1869,7 +1860,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: неправилен цифров код на държава \"%d\"" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1891,8 +1882,8 @@ msgstr "%s: полето \"%s\" е Ð¾Ð±Ñ - msgid "%s: unknown character in field `%s'" - msgstr "%s: неизвеÑтен знак в полето \"%s\"" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1901,12 +1892,12 @@ msgstr "%s: неизвеÑтен знаР- msgid "%s: incomplete `END' line" - msgstr "%s: непълен ред \"END\"" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1916,477 +1907,477 @@ msgstr "%s: непълен ред \"END\ - msgid "%s: syntax error" - msgstr "%s: Ñинтактична грешка" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "\"%.*s\" е вече определен в изображението на знаците" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "\"%.*s\" е вече определен в набора от знаци" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "\"%.*s\" е вече определен като Ñимвол за подреждане" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "\"%.*s\" е вече определен като елемент за подреждане" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: \"forward\" и \"backward\" Ñа взаимоизключващи Ñе" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: \"%s\" Ñе Ñреща повече от веднъж в определение за тегло %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: твърде много правила; за първиÑÑ‚ Ð·Ð°Ð¿Ð¸Ñ Ð±Ñха %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: недоÑтатъчно правила за Ñортиране" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: не е разрешен празен низ за тегло" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: теглата Ñ‚Ñ€Ñбва да използват Ñъщото многоточие като името" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: твърде много ÑтойноÑти" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "редът за \"%.*s\" е вече определен при %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: началниÑÑ‚ и крайниÑÑ‚ Ñимвол за диапазон Ñ‚Ñ€Ñбва да обозначават знаци" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: поÑледователноÑтта от байтове, за Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð¸ поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð·Ð½Ð°Ðº, Ñ‚Ñ€Ñбва да е Ñ ÐµÐ´Ð½Ð°ÐºÐ²Ð° дължина" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: поÑледователноÑтта от байтове за Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð·Ð½Ð°Ðº на диапазона не е по-малка от тази за поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð·Ð½Ð°Ðº" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: многоточие за Ñимволичен диапазон не може веднага да Ñледва \"order_start\"" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: многоточие за Ñимволичен диапазон не може да бъде поÑледвано веднага от \"order_end\"" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "\"%s\" и \"%.*s\" не Ñа правилни имена за Ñимволичен диапазон" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: редът за \"%.*s\" е вече определен при %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: \"%s\" Ñ‚Ñ€Ñбва да е знак" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: \"position\" Ñ‚Ñ€Ñбва да Ñе използва на точно определено ниво във вÑички ÑÐµÐºÑ†Ð¸Ñ Ð¸Ð»Ð¸ в нито една" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "Ñимволът \"%s\" е неопределен" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "Ñимволът \"%s\" е Ñ Ñъщото кодиране като" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "Ñимвола \"%s\"" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "нÑма определение за \"UNDEFINED\"" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "твърде много грешки; отказване" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: не Ñе поддържа вграждане на уÑловиÑ" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: повече от един 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: повторно определÑне на \"%s\"" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: повторно обÑвÑване на дÑл \"%s\"" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: неизвеÑтен знак за име на Ñимвол за подреждане" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: неизвеÑтен знак за име в определение за еквивалентноÑÑ‚" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: неизвеÑтен знак за ÑтойноÑÑ‚ в определение за еквивалентноÑÑ‚" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: неизвеÑтен Ñимвол \"%s\" в определение за еквивалентноÑÑ‚" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "грешка при добавÑне на равноÑтоен Ñимвол за подреждане" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "повторно определение за пиÑменоÑÑ‚ \"%s\"" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: неизвеÑтно име на ÑÐµÐºÑ†Ð¸Ñ \"%.*s\"" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: многократни Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð° ред в ÑÐµÐºÑ†Ð¸Ñ \"%s\"" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: неправилен брой правила за Ñортиране" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: многократни Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð° ред в безимена ÑекциÑ" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: липÑващ ключ \"order_end\"" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: вÑе още не е определен редът на Ñимвола за подреждане %.*s" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: вÑе още не е определен редът на елемента за подреждане %.*s" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: не може да Ñе пренареди Ñлед %.*s: Ñимволът е неизвеÑтен" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: липÑва ключ \"reorder-end\"" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: неизвеÑтна ÑÐµÐºÑ†Ð¸Ñ \"%.*s\"" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: неправилен Ñимвол <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: \"%s\" не може да бъде край на диапазон Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñ‚Ð¾Ñ‡Ð¸Ðµ" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: не е разрешено празно опиÑание на категориÑ" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: липÑва ключ \"reorder-sections-end\"" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: '%s' е без ÑъответÑтващ 'ifdef' или 'ifndef'" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'endif' без ÑъответÑтващ 'ifdef' или 'ifndef'" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Ðеопределено име на множеÑтвото от знаци в изображението на знаците" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "знакът L'\\u%0*x' от ÐºÐ»Ð°Ñ \"%s\" Ñ‚Ñ€Ñбва да е в ÐºÐ»Ð°Ñ \"%s\"" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "знакът L'\\u%0*x' от ÐºÐ»Ð°Ñ \"%s\" не може да е в ÐºÐ»Ð°Ñ \"%s\"" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "вътрешна грешка в %s, на ред %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "знакът \"%s\" от ÐºÐ»Ð°Ñ \"%s\" Ñ‚Ñ€Ñбва да е в ÐºÐ»Ð°Ñ \"%s\"" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "знакът \"%s\" от ÐºÐ»Ð°Ñ \"%s\" не може да е в ÐºÐ»Ð°Ñ \"%s\"" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "знакът не е в ÐºÐ»Ð°Ñ \"%s\"" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "знакът не може да е в ÐºÐ»Ð°Ñ \"%s\"" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "знакът не е определен в изображението на знаците" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "впиÑваниÑта в категориÑта \"digit\" не Ñе групират по деÑет" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "в изображението на знаците не Ñа определени входÑщите цифри и никое от Ñтандартните имена" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "не вÑички знаци използвани в \"outdigit\" Ñа доÑтъпни в изображението на знаците" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "не вÑички знаци използвани в \"outdigit\" Ñа доÑтъпни в Ð·Ð½Ð°ÐºÐ¾Ð²Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "вече е определен клаÑÑŠÑ‚ знаци \"%s\"" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "ограничение в реализациÑта: не за разрешени повече от %Zd клаÑа за знаци" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "изображението на знаците \"%s\" вече е определено" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "ограничение в реализациÑта: не Ñа разрешени повече от %d Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° знаци" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: полето \"%s\" не Ñъдържа точно деÑет запиÑа" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "горната граница на диапазона е по-малка от долната " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "началната и крайната знакова поÑледователноÑÑ‚ на диапазона Ñ‚Ñ€Ñбва да Ñа Ñ ÐµÐ´Ð½Ð°ÐºÐ²Ð° дължина" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "началната знакова поÑледователноÑÑ‚ е по-малка от крайната" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "преждевременен край на определение \"translit_ignore\"" - - # TODO --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "Ñинтактична грешка" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: Ñинтактична грешка в определението за опиÑание за ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: Ñинтактична грешка в определението на ново изображение на знаци" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "диапазон Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñ‚Ð¾Ñ‡Ð¸Ðµ Ñ‚Ñ€Ñбва да бъде ограничен от два еднотипни операнда" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "при диапазон ÑÑŠÑ Ñимволично име Ñ‚Ñ€Ñбва да Ñе използва ÑамоÑтоÑтелно многоточие \"...\"" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "при UCS диапазон Ñ‚Ñ€Ñбва да Ñе използва шеÑтнадеÑетично Ñимволично многоточие \"..\"" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "при диапазон от кодове на знаци Ñ‚Ñ€Ñбва да Ñе използва ÑамоÑтоÑтелно многоточие \"...\"" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "повторно определÑне на изображението \"%s\"" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: \"translit_start\" - ÑекциÑта не завършва Ñ \"translit_end\"" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: повторно определени за \"default_missing\"" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "предишното определение бе тук" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: не е намерено предÑтавимо определение за \"default_missing\"" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: знакът \"%s\" е неопределен, въпреки че е необходим като ÑтойноÑÑ‚ по подразбиране" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: знакът \"%s\", от изображението на знаците, не е предÑтавим Ñ ÐµÐ´Ð¸Ð½ байт" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: знакът \"%s\", необходим като ÑтойноÑÑ‚ по подразбиране, не може да Ñе предÑтави Ñ ÐµÐ´Ð¸Ð½ байт" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "в изображението на знаците не Ñа определени изходÑщите цифри и никое от Ñтандартните имена" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: не Ñа налични данни за транÑÐ»Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ езикова наÑтройка \"%s\"" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: таблица за ÐºÐ»Ð°Ñ \"%s\": %lu байта\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: таблица за изображение \"%s\": %lu байта\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: таблица за ширина: %lu байта\n" -@@ -3809,17 +3800,22 @@ msgstr "добавÑне на нов зР- msgid " (first)" - msgstr " (първи)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, c-format -+msgid "checking for monitored file `%s': %s" -+msgstr "проверка на Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s': %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "не може да Ñе изпълни stat() за файла \"%s\": %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' е променен (mtime)" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "подрÑзване на кеша %s - Ñ‡Ð°Ñ %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "разглеждане на Ð·Ð°Ð¿Ð¸Ñ %s \"%s\", проÑрочка %" -@@ -3905,153 +3901,213 @@ msgstr "не може да Ñе зада - msgid "cannot enable socket to accept connections: %s" - msgstr "не може да Ñе направи гнездото да приеме ÑвързваниÑ: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "забранено inotify наблюдение за файл '%s': %s" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "наблюдаване на файл '%s' (%d)" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "забранено inotify наблюдение за Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s': %s" -+ -+#: nscd/connections.c:994 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "наблюдаване на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s' (%d)" -+ -+#: nscd/connections.c:1022 - #, c-format --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "впиÑване на файл за проÑледÑване %s, за база данни %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "stat не уÑÐ¿Ñ Ð·Ð° файл '%s'; по-къÑно ще Ñе опира пак: %s" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "оÑигурÑване на доÑтъп, до файлов деÑкриптор %d, за %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "не може да Ñе обработи заÑвка от Ñтара верÑÐ¸Ñ %d - текущата верÑÐ¸Ñ Ðµ %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "заÑвката от %ld не е обработена поради липÑващи права" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "заÑвката от '%s' [%ld] не е обработена поради липÑващи права" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "заÑвката не е обработена поради липÑващи права" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "не може да Ñе запише резултата: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "грешка при получаване на идентификатора на извикващиÑ: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "не може да Ñе отвори /proc/self/cmdline: %s- забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "не може да Ñе прочете /proc/self/cmdline: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "не може да Ñе върне към Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ на потребител: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "не може да Ñе върне към Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ на група: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "не може да Ñе върне към предишната работна директориÑ: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "повторното изпълнение не уÑпÑ: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "не може да Ñе Ñмени текущата работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° \"/\": %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "недоÑтиг при четене докато Ñе четеше заÑвката: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "дължината на ключа в заÑвката е твърде голÑма: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "недоÑтиг при четене докато Ñе четеше заÑÐ²ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: получена заÑвка (верÑÐ¸Ñ = %d) от Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€(PID) %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: получена заÑвка (верÑÐ¸Ñ = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "пренебрегване на Ñъбитие inotify за '%s', файла ÑъщеÑтвува" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' бе %s (премеÑтен или изтрит), премахване на Ñледенето" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "не можа да Ñе премахне Ñледенето на файл '%s': %s" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' е запиÑан в" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "наблюдаваната родителÑка Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s' бе %s(премеÑтен или изтрит), премахване на Ñледенето на '%s'" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s' бе %s(Ñъздаден или премеÑтен), добавÑне на Ñледене" -+ -+#: nscd/connections.c:2053 -+#, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "не може да Ñе добави Ñледене на '%s': %s" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 - #, c-format --msgid "disabled inotify after read error %d" --msgstr "inotify е забранен Ñлед грешка при четене %d" -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "inotify наблюдение е забранено Ñлед грешка при четене %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "не може да Ñе инициализира уÑловна променлива" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "не може да Ñе Ñтартира почиÑтваща нишка; прекратÑване" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "не може да Ñе Ñтартира работна нишка; прекратÑване" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Ðе уÑÐ¿Ñ Ð´Ð° Ñе пуÑне nscd от името на потребител \"%s\"" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "първоначалниÑÑ‚ getgrouplist не уÑпÑ" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist не уÑпÑ" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups не уÑпÑ" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "недоÑтиг при Ð·Ð°Ð¿Ð¸Ñ Ð² %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Ðе е намерено \"%s\" в кеша за групи!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Презареждане на \"%s\" в кеша за групи!" -@@ -4139,7 +4195,7 @@ msgstr "Да Ñе използва отР- msgid "Name Service Cache Daemon." - msgstr "Демон на уÑлуга за кеширане на имена(nscd)." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "неправилен брой на аргументи" -@@ -4172,7 +4228,7 @@ msgstr "не може да Ñе Ñмен - msgid "Could not create log file" - msgstr "Ðе може да Ñе Ñъздаде региÑтрационен файл" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "непълно запиÑване" -@@ -4187,7 +4243,7 @@ msgstr "не може да Ñе проч - msgid "invalidation failed" - msgstr "пропадна обезÑилването" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Разрешено е Ñамо Ñуперпотребител да използва тази опциÑ!" -@@ -4273,35 +4329,35 @@ msgstr "не може да Ñе взем - msgid "maximum file size for %s database too small" - msgstr "макÑималниÑÑ‚ размер на файл, за база данни %s, е много малък" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "не може да Ñе запише ÑтатиÑтиката: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "да" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "не" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Разрешено е Ñамо на Ñуперпотребител или %s да използва тази опциÑ!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd не е пуÑнат!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "не може да Ñе прочетат ÑтатиÑтичеÑките данни" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4312,27 +4368,27 @@ msgstr "" - "\n" - "%15d ниво за оÑведомÑваме на Ñървъра\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3uд %2uч %2uм %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uч %2uм %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2uм %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2luÑ Ð²Ñ€ÐµÐ¼Ðµ на работа на Ñървъра\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4349,7 +4405,7 @@ msgstr "" - "%15lu вътрешни реÑтартираниÑ\n" - "%15u брой презарежданиÑ\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4415,85 +4471,85 @@ msgstr "Презареждане на \" - msgid "Invalid numeric uid \"%s\"!" - msgstr "Ðеправилен чиÑлов идентификатор на потребител \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Пропадна отварÑнето на връзка към подÑиÑтемата за Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¸ контрол: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Ðе можа да Ñе вдигне флага \"задръж-ÑпоÑобноÑти\"" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) не уÑпÑ" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Ðе можа да Ñе подготви ÑвалÑнето на \"ÑпоÑобноÑтите\"" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init не уÑпÑ" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Ðе можаха да Ñе ÑвалÑÑ‚ \"ÑпоÑобноÑтите\"" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc не уÑпÑ" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Ðе можа да Ñе Ñвали флагът \"задръж-ÑпоÑобноÑти\"" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Ðе можа да Ñе уÑтанови дали Ñдрото поддържа SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Ðе можа да Ñе пуÑне нишка за AVC" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Ðе можа да Ñе Ñъздаде заключване за AVC" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Пропадна пуÑкането на AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Access Vector Cache (AVC) пуÑнат" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "Грешка при запитване за политиката при неопределени обектни клаÑове или права." - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "Грешка при взимане клаÑа за ÑигурноÑÑ‚ на nscd" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "Грешка при преобразуване от право \"%s\" към бит от вектора за доÑтъп" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Грешка при извличане, от гнездото, на контекÑта на другата Ñтрана" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Грешка при взимане на контекÑта на nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Грешка при извличане на sid от контекÑта" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4555,16 +4611,16 @@ msgstr "Получаване на зап - msgid "Enumeration not supported on %s\n" - msgstr "Ðе Ñе поддържа изброим тип от %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "ÐеизвеÑтно има на база данни" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Поддържани бази данни:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "ÐеизвеÑтна база данни: %s\n" -@@ -4844,7 +4900,7 @@ msgstr "ÐеÑъответÑтвие нР- msgid "No previous regular expression" - msgstr "ЛипÑва предишен регулÑрен израз" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "параметърът е празен или не е зададен" - -@@ -7232,24 +7288,3 @@ msgstr "твърде много или Ñ - #, c-format - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: Ðе може да Ñе Ñъздаде Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s: %s\n" -- --#~ msgid "compile-time support for database policy missing" --#~ msgstr "при компилирането не е зададена подръжка на правила в базата данни" -- --#~ msgid "24:00 not handled by pre-1998 versions of zic" --#~ msgstr "24:00 не Ñе поддържат от верÑии на zic преди 1998" -- --#~ msgid "time before zero" --#~ msgstr "СтойноÑтта за Ñ‡Ð°Ñ Ðµ преди нулата" -- --#~ msgid "too many transitions?!" --#~ msgstr "твърде много прехвърлÑниÑ?!" -- --#~ msgid "%s: use of -v on system with floating time_t other than float or double\n" --#~ msgstr "%s: употребÑвайте -v на ÑиÑтеми, за които типът на time_t, Ñ Ð¿Ð»Ð°Ð²Ð°Ñ‰Ð° точноÑÑ‚, е различен от float или double\n" -- --#~ msgid "%s: Can't link from %s to %s: %s\n" --#~ msgstr "%s: Ðе може да Ñе Ñъздаде връзка от %s към %s: %s\n" -- --#~ msgid "%s: %d did not sign extend correctly\n" --#~ msgstr "%s: при преобразуването %d не запази знак\n" -Index: glibc-2.23/po/ca.po -=================================================================== ---- glibc-2.23.orig/po/ca.po -+++ glibc-2.23/po/ca.po -@@ -1,7 +1,7 @@ - # Catalan messages for GNU libc. --# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013 Free Software Foundation, Inc. -+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013, 2015 Free Software Foundation, Inc. - # This file is distributed under the same license as the glibc package. --# Ivan Vilata i Balaguer , 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013, 2014. -+# Ivan Vilata i Balaguer , 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013, 2014, 2015. - # - # Sóc Ivan, aquestes són les convencions que adopte per a la 2.18.90.20140105: - # -@@ -42,11 +42,14 @@ - # - Els missatges marcats com a multilínia només arriben fins a la columna 70. - # A sovint contenen marques de format; en aquest cas s’hi inserta una nova - # línia perquè no hi ha forma de saber com serà de llarga la línia. -+# -+# He aplicat algunes de les recomanacions de -+# . - msgid "" - msgstr "" --"Project-Id-Version: libc 2.19.90\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" --"PO-Revision-Date: 2014-08-28 23:47+0200\n" -+"Project-Id-Version: libc 2.22-pre1\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"PO-Revision-Date: 2015-12-29 22:56+0100\n" - "Last-Translator: Ivan Vilata i Balaguer \n" - "Language-Team: Catalan \n" - "Language: ca\n" -@@ -158,7 +161,7 @@ msgstr "" - # Més ajudes. ivb - #: catgets/gencat.c:110 - msgid "Create C header file NAME containing symbol definitions" --msgstr "Crea el fitxer capçalera C NOM que contindrà les definicions de símbols." -+msgstr "Crea el fitxer de capçalera C NOM que contindrà les definicions de símbols." - - #: catgets/gencat.c:112 - msgid "Do not use existing catalog, force new output file" -@@ -189,10 +192,10 @@ msgstr "" - - # L’adreça es veu millor així. ivb - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -204,7 +207,7 @@ msgstr "" - "<%s>.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -222,7 +225,7 @@ msgstr "" - "ADEQUACIÓ PER A UN PROPÃ’SIT PARTICULAR.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -496,11 +499,11 @@ msgstr "no s’ha pogut canviar els dret - msgid "Renaming of %s to %s failed" - msgstr "no s’ha pogut reanomenar «%s» a «%s»" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "no s’ha pogut crear la llista d’àmbits" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "l’objecte compartit no és obert" - -@@ -553,7 +556,7 @@ msgstr "no s’han pogut mapar pàgines - - #: elf/dl-fptr.c:221 sysdeps/hppa/dl-fptr.c:236 - msgid "internal error: symidx out of range of fptr table" --msgstr "error intern: «symidx» és fora de rang respecte la taula «fptr»" -+msgstr "error intern: «symidx» és fora de rang respecte a la taula «fptr»" - - #: elf/dl-hwcaps.c:184 elf/dl-hwcaps.c:196 - msgid "cannot create capability list" -@@ -581,134 +584,134 @@ msgstr "ha fallat stat() sobre l’objec - - # ivb (2001/10/28) - # ivb Es refereix a /dev/zero . --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "no s’ha pogut obrir el dispositiu de zeros" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "no s’ha pogut crear el descriptor d’objecte compartit" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "no s’han pogut llegir les dades del fitxer" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "l’alineament de l’ordre ELF de càrrega no està alineada amb la pàgina" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "l’adreça o desplaçament de l’ordre ELF de càrrega no està correctament alineada" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "no s’han pogut reservar les estructures de dades TLS per al fil inicial" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "no es pot tractar amb dades TLS" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" --msgstr "el fitxer objecte no té segments carregables" -+msgstr "el fitxer d’objecte no té segments carregables" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "no s’ha pogut carregar dinàmicament l’executable" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" --msgstr "el fitxer objecte no té secció dinàmica" -+msgstr "el fitxer d’objecte no té secció dinàmica" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "ha fallat dlopen() sobre l’objecte compartit" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "no s’ha pogut reservar memòria per a la capçalera del programa" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "la biblioteca que ha fet la crida no és vàlida" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "no s’han pogut canviar les proteccions de memòria" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "no s’ha pogut habilitar la pila executable a requeriment de l’objecte compartit" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "no s’ha pogut tancar un descriptor de fitxer" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "el fitxer és massa curt" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "la capçalera ELF no és vàlida" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "la codificació de les dades del fitxer ELF no és bigâ€endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "la codificació de les dades del fitxer ELF no és littleâ€endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "la identificació de la versió del fitxer ELF no concorda amb l’actual" - - # ivb (2001/11(06) - # ivb ABI = Application Binary Interface (interfície binària d'aplicació) --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "l’ABI de sistema operatiu del fitxer ELF no és vàlida" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "la versió de l’ABI del fitxer ELF no és vàlida" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" --msgstr "el replè d’«e_ident» no conté només zeros" -+msgstr "el replè de «e_ident» no conté només zeros" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "error intern" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "la versió del fitxer ELF no concorda amb l’actual" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "només es poden carregar els tipus ET_DYN i ET_EXEC" - - # ivb (2001/11/01) - # ivb La traducció completa de «phentsize» vindria a ser: mida d'entrada - # ivb de taula de la capçalera de programa. --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "el valor de «phentsize» del fitxer ELF no és l’esperat" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "la classe ELF no és vàlida: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "la classe ELF no és vàlida: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" --msgstr "no s’ha pogut obrir el fitxer objecte compartit" -+msgstr "no s’ha pogut obrir el fitxer d’objecte compartit" - - #: elf/dl-load.h:128 - msgid "failed to map segment from shared object" -@@ -718,11 +721,11 @@ msgstr "no s’ha pogut mapar un segment - msgid "cannot map zero-fill pages" - msgstr "no s’han pogut mapar les pàgines plenes de zeros" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "error de reubicació" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "error en cercar el símbol" - -@@ -732,53 +735,40 @@ msgstr "no s’ha pogut estendre l’àm - - # ivb (2002/10/29) - # ivb TLS = Thread Local Storage --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "El comptador de generació de TLS s’ha esgotat! Per favor, informeu d’açò." - --# Cas general. ivb --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "no es poden carregar més objectes amb el TLS estàtic" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "el mode de dlopen() no és vàlid" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "no resten espais de noms disponibles per a dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "l’espai de noms destí de dlmopen() no és vàlid" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "no s’ha pogut reservar memòria al bloc TLS estàtic" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "no s’ha pogut fer escrivible el segment per a reubicarâ€lo" - --# ivb (2002/10/21) --# ivb PLT = Procedure Linkage Table, Taula d'Enllaçat de Procediments --# ivb PLTREL = tipus de reubicació usada per la PLT --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: no s’ha trobat el PLTREL de l’objecte «%s»\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: no resta memòria per a guardar els resultats de reubicar «%s»\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "no s’ha pogut restaurar la protecció del segment després de reubicarâ€lo" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "no s’ha pogut protegir la memòria després de reubicar" - -@@ -786,7 +776,7 @@ msgstr "no s’ha pogut protegir la memà - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "s’ha emprat RTLD_NEXT en un codi no carregat dinàmicament" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "no s’han pogut crear les estructures de dades TLS" - -@@ -857,7 +847,7 @@ msgstr "FORMAT a emprar: «new» (nou), - - #: elf/ldconfig.c:151 - msgid "Ignore auxiliary cache file" --msgstr "No té en compte el fitxer de memòria cau auxilar." -+msgstr "No té en compte el fitxer de memòria cau auxiliar." - - #: elf/ldconfig.c:159 - msgid "Configure Dynamic Linker Run Time Bindings." -@@ -935,7 +925,7 @@ msgstr "no s’ha creat l’enllaç perq - msgid "Can't open directory %s" - msgstr "no s’ha pogut obrir el directori «%s»" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "no s’ha trobat el fitxer d’entrada «%s»\n" -@@ -1048,7 +1038,7 @@ msgstr "" - - #: elf/ldd.bash.in:80 - msgid "ldd: option \\`$1' is ambiguous" --msgstr "ldd: l’opció «$1» és ambígua" -+msgstr "ldd: l’opció «$1» és ambigua" - - #: elf/ldd.bash.in:87 - msgid "unrecognized option" -@@ -1071,7 +1061,7 @@ msgstr "El fitxer o directori no existei - - # ivb (2001/10/31) - # ivb Cal tenir en compte que «ordinary» a l'anglés és cosa pler diferent ;) --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "no és un fitxer ordinari" - -@@ -1119,70 +1109,76 @@ msgstr "no s’ha pogut llegir «r_debug - msgid "cannot read program interpreter" - msgstr "no s’ha pogut llegir l’intèrpret del programa" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "no s’ha pogut llegir el mapa d’enllaçat" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "no s’ha pogut llegir el nom de l’objecte" - -+# Condició d’error. ivb -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "no s’ha pogut reservar memòria intermèdia per al nom de l’objecte" -+ - # Descripció del programa. ivb --#: elf/pldd.c:63 -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "Llista els objectes compatits dinàmics carregats en un procés." - - # Crec que el terme és suficient conegut. ivb --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "cal exactament un paràmetre amb l’identificador de procés\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "l’identificador de procés «%s» no és vàlid" - - # No usa quote(). ivb --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "no s’ha pogut obrir «%s»" - - # No usa quote. ivb --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "no s’ha pogut obrir «%s/task»" - - # No usa quote(). ivb --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "no s’ha pogut preparar la lectura de «%s/task»" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "l’identificador de fil «%s» no és vàlid" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "no s’ha pogut associar al procés %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "no s’ha pogut obtenir informació sobre el procés %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "el procés %lu no pertany a un programa ELF" -@@ -1210,34 +1206,34 @@ msgstr "la classe ELF del fitxer «%s» - #: elf/readelflib.c:77 - #, c-format - msgid "%s is not a shared object file (Type: %d).\n" --msgstr "«%s» no és un fitxer objecte compartit (tipus: %d)\n" -+msgstr "«%s» no és un fitxer d’objecte compartit (tipus: %d)\n" - - #: elf/readelflib.c:108 - #, c-format - msgid "more than one dynamic segment\n" - msgstr "hi ha més d’un segment dinàmic\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "ha fallat fstat() sobre el fitxer «%s»\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "el fitxer «%s» és buit, no es comprova" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "el fitxer «%s» és massa menut, no es comprova" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "ha fallat mmap() sobre el fitxer «%s»\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "«%s» no és un fitxer ELF: els octets màgics del començament no són correctes\n" -@@ -1321,7 +1317,7 @@ msgstr "%s: l’opció «%c» necessita - - #: elf/sotruss.sh:61 - msgid "%s: option is ambiguous; possibilities:" --msgstr "%s: l’opció és ambígua; possibilitats:" -+msgstr "%s: l’opció és ambigua; possibilitats:" - - #: elf/sotruss.sh:79 - msgid "Written by %s.\\n" -@@ -1374,10 +1370,10 @@ msgstr "OBJECTE_COMPARTIT [DADES_PERFILA - msgid "failed to load shared object `%s'" - msgstr "no s’ha pogut carregar l’objecte compartit «%s»" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "no s’han pogut crear els descriptors interns" -+msgid "cannot create internal descriptor" -+msgstr "no s’ha pogut crear un descriptor intern" - - #: elf/sprof.c:554 - #, c-format -@@ -1444,11 +1440,6 @@ msgstr "ha fallat mmap() sobre el fitxer - msgid "error while closing the profiling data file" - msgstr "error en tancar el fitxer de dades de perfilat" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "no s’ha pogut crear un descriptor intern" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1642,7 +1633,7 @@ msgstr "No cerca en els directoris està - #: iconv/iconvconfig.c:299 - #, c-format - msgid "Directory arguments required when using --nostdlib" --msgstr "Cal proporcionar arguments directori en emprar «--nostdlib»." -+msgstr "Cal proporcionar arguments de directori en emprar «--nostdlib»." - - #: iconv/iconvconfig.c:341 locale/programs/localedef.c:294 - #, c-format -@@ -1700,27 +1691,27 @@ msgstr "socket: fallada del protocol en - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: lectura incompleta" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "ha fallat lstat()" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "no s’ha pogut obrir" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "ha fallat fstat()" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "el propietari no és vàlid" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "és modificable per altres que no en són el propietari" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "té un enllaç fort en altre lloc" - -@@ -1743,7 +1734,7 @@ msgstr "la paraula clau «%s» de «.net - - #: libidn/nfkc.c:463 - msgid "Character out of range for UTF-8" --msgstr "el caràcter és fora de rang respecte UTF-8" -+msgstr "el caràcter és fora de rang respecte a UTF-8" - - #: locale/programs/charmap-dir.c:57 - #, c-format -@@ -1843,8 +1834,8 @@ msgid "no symbolic name given for end of - msgstr "no s’ha indicat un nom simbòlic per a la fi del rang" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1871,8 +1862,8 @@ msgid "%s: error in state machine" - msgstr "%s: error a la màquina d’estats" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1893,7 +1884,7 @@ msgstr "el caràcter «%s» no és coneg - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "el nombre d’octets de les seqüències d’inici i final del rang no són iguals: %d i %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "els noms del rang de caràcters no són vàlids" -@@ -1918,8 +1909,8 @@ msgstr "el límit superior del rang és - msgid "resulting bytes for range not representable." - msgstr "els octets resultants del rang no són representables" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1987,7 +1978,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: el codi numèric de país «%d» no és vàlid" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -2009,8 +2000,8 @@ msgstr "%s: el camp «%s» ha estat decl - msgid "%s: unknown character in field `%s'" - msgstr "%s: el camp «%s» conté un caràcter desconegut" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -2019,12 +2010,12 @@ msgstr "%s: el camp «%s» conté un car - msgid "%s: incomplete `END' line" - msgstr "%s: la línia «END» és incompleta" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -2034,476 +2025,476 @@ msgstr "%s: la línia «END» és incomp - msgid "%s: syntax error" - msgstr "%s: error de sintaxi" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "«%.*s» ja ha estat definit al mapa de caràcters" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "«%.*s» ja ha estat definit al repertori" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "«%.*s» ja ha estat definit com a símbol d’ordenació" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "«%.*s» ja ha estat definit com a element d’ordenació" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: «forward» i «backward» són mútuament excloents" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: s’ha mencionat «%s» més d’una volta a la definició de pes %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: sobren regles; la primera entrada només en tenia %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: no hi ha suficients regles d’ordenació" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: no es permet la cadena buida com a nom de pes" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: els pesos han d’emprar el mateix símbol d’el·lipsi que el nom" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: sobren valors" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "l’ordre de «%.*s» ja ha estat definit a %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: els símbols inicial i final d’un rang han de representar caràcters" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: les seqüències d’octets del primer i darrer caràcter han de tenir la mateixa longitud" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: la seqüència d’octets del primer caràcter del rang no és menor que la del darrer caràcter" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" --msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just darrere d’«order_start»" -+msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just darrere de «order_start»" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" --msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just davant d’«order_end»" -+msgstr "%s: un rang simbòlic amb el·lipsi no pot anar just davant de «order_end»" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "«%s» i «%.*s» no són noms vàlids de rangs simbòlics" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: l’ordre de «%.*s» ja ha estat definit a %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: «%s» ha de ser un caràcter" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: cal emprar «position» per a un nivell específic a totes les seccions o a cap" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "el símbol «%s» no ha estat definit" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "el símbol «%s» té la mateixa codificació que" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "el símbol «%s»" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "no s’ha definit «UNDEFINED»" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "hi ha massa errors: s’abandona" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: no es permeten els condicionals niats" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: hi ha més d’una clàusula «else»" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: la definició de «%s» és duplicada" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: la declaració de la secció «%s» és duplicada" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: el nom del símbol d’ordenació conté un caràcter desconegut" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: el nom de la definició equivalent conté un caràcter desconegut" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: el valor de la definició equivalent conté un caràcter desconegut" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: la definició equivalent conté el símbol desconegut «%s»" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "error en afegir un símbol d’ordenació equivalent" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "la definició de l’escriptura «%s» és duplicada" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: el nom de secció «%.*s» no és conegut" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: hi ha múltiples definicions d’ordre de la secció «%s»" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: el nombre de regles d’ordenació no és vàlid" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: hi ha múltiples definicions d’ordre a la secció sense nom" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: manca la paraula clau «order_end»" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: l’ordre del símbol d’ordenació «%.*s» encara no ha estat definit" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: l’ordre de l’element d’ordenació «%.*s» encara no ha estat definit" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: no s’ha pogut reordenar després de «%.*s»: el símbol no és conegut" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: manca la paraula clau «reorder-end»" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: la secció «%.*s» no és coneguda" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: el símbol <%.*s> no és vàlid" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: «%s» no es pot trobar al final d’un rang amb el·lipsi" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: no es permet una descripció buida de la categoria" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: manca la paraula clau «reorder-sections-end»" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: s’ha trobat un «%s» sense el corresponent «ifdef» o «ifndef»" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: s’ha trobat un «endif» sense el corresponent «ifdef» o «ifndef»" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "no s’ha indicat cap nom de joc de caràcters al mapa de caràcters" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "el caràcter L«\\u%0*x» de la classe «%s» ha de ser a la classe «%s»" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "el caràcter L«\\u%0*x» de la classe «%s» no ha de ser a la classe «%s»" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "error intern a «%s», línia %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "el caràcter «%s» de la classe «%s» ha de ser a la classe «%s»" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "el caràcter «%s» de la classe «%s» no ha de ser a la classe «%s»" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "el caràcter no és a la classe «%s»" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "el caràcter no ha de ser a la classe «%s»" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "el caràcter no ha estat definit a la taula de caràcters" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "les entrades de la categoria «digit» no estan agrupades de deu en deu" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "no s’han definit dígits d’entrada i cap dels noms estàndard es troba al mapa de caràcters" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "no tots els caràcters emprats a «outdigit» es troben al mapa de caràcters" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "no tots els caràcters emprats a «outdigit» es troben al repertori" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "la classe de caràcters «%s» ja ha estat definida" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "límit d’implementació: no es permeten més de %Zd classes de caràcters" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "el mapa de caràcters «%s» ja ha estat definit" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "límit d’implementació: no es permeten més de %d taules de caràcters" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: el camp «%s» no conté deu entrades exactament" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "el valor final del rang és menor que l’inicial " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "les seqüències de caràcters inicial i final del rang han de tenir la mateixa longitud" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "la seqüència de caràcters final és menor que la seqüència inicial" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "fi prematura de la definició «translit_ignore»" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "error de sintaxi" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: error de sintaxi a la definició de nova classe de caràcters" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: error de sintaxi a la definició de nou mapa de caràcters" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "el rang amb el·lipsi ha d’estar marcat per dos operands del mateix tipus" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "no s’ha d’emprar l’el·lipsi absoluta «...» amb els valors de rang de noms simbòlics" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "cal emprar l’el·lipsi simbòlica hexadecimal «..» amb els valors de rang UCS" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" --msgstr "cal emprar l’el·lispi absoluta «...» amb els valors de rang de codis de caràcters" -+msgstr "cal emprar l’el·lipsi absoluta «...» amb els valors de rang de codis de caràcters" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "la definició del mapa «%s» és duplicada" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: la secció «translit_start» no acaba amb «translit_end»" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: la definició de «default_missing» és duplicada" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "la definició prèvia es troba ací" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: no s’ha trobat cap definició representable de «default_missing»" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no ha estat definit" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: el caràcter «%s» del mapa de caràcters no es pot representar amb un sol octet" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no es pot representar amb un sol octet" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" --msgstr "no s’han definit dígits d’eixida i cap del noms estàndard es troba al mapa de caràcters" -+msgstr "no s’han definit dígits d’eixida i cap dels noms estàndard es troba al mapa de caràcters" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: les dades de transliteració del locale «%s» no es troben disponibles" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: taula de la classe «%s»: %lu octets\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: taula del mapa «%s»: %lu octets\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: taula d’amplada: %lu bytes\n" -@@ -2855,7 +2846,7 @@ msgstr "Genera eixida bigâ€endian." - # ivb Pose el punt final pq és la descripció curta de l'ordre. - #: locale/programs/localedef.c:157 - msgid "Compile locale specification" --msgstr "Compil·la una especificació de locale." -+msgstr "Compila una especificació de locale." - - #: locale/programs/localedef.c:160 - msgid "" -@@ -2919,12 +2910,12 @@ msgstr "no s’ha pogut crear un fitxer - #: locale/programs/locarchive.c:167 locale/programs/locarchive.c:430 - #, c-format - msgid "cannot initialize archive file" --msgstr "no s’ha pogut iniciar el fitxer arxiu" -+msgstr "no s’ha pogut iniciar el fitxer d’arxiu" - - #: locale/programs/locarchive.c:174 locale/programs/locarchive.c:437 - #, c-format - msgid "cannot resize archive file" --msgstr "no s’ha pogut redimensionar el fitxer arxiu" -+msgstr "no s’ha pogut redimensionar el fitxer d’arxiu" - - #: locale/programs/locarchive.c:189 locale/programs/locarchive.c:452 - #: locale/programs/locarchive.c:674 -@@ -2952,7 +2943,7 @@ msgstr "no s’han pogut llegir les dade - #: locale/programs/locarchive.c:355 - #, c-format - msgid "cannot map locale archive file" --msgstr "no s’ha pogut mapar el fitxer arxiu de locales" -+msgstr "no s’ha pogut mapar el fitxer d’arxiu de locales" - - #: locale/programs/locarchive.c:460 - #, c-format -@@ -2962,7 +2953,7 @@ msgstr "no s’ha pogut blocar el nou ar - #: locale/programs/locarchive.c:529 - #, c-format - msgid "cannot extend locale archive file" --msgstr "no s’ha pogut estendre el fitxer arxiu de locales" -+msgstr "no s’ha pogut estendre el fitxer d’arxiu de locales" - - #: locale/programs/locarchive.c:538 - #, c-format -@@ -3116,7 +3107,7 @@ msgstr "no s’ha trobat el fitxer «%s - #: login/programs/pt_chown.c:78 - #, c-format - msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n" --msgstr "Estableix el propietari, grup i permissos d’accés del pseudoâ€terminal esclau corresponent al pseudoâ€terminal mestre passat en el descriptor de fitxer %d. Aquest és el programa auxiliar per a la funció grantpt(), i no està pensat per a ser executat directament des de la línia d’ordres.\n" -+msgstr "Estableix el propietari, grup i permisos d’accés del pseudoâ€terminal esclau corresponent al pseudoâ€terminal mestre passat en el descriptor de fitxer %d. Aquest és el programa auxiliar per a la funció grantpt(), i no està pensat per a ser executat directament des de la línia d’ordres.\n" - - #: login/programs/pt_chown.c:92 - #, c-format -@@ -3125,7 +3116,7 @@ msgid "" - "\n" - "%s" - msgstr "" --"S’estableix el propietari a l’usuari actual, el grup a «%s» i els permissos d’accés a %o.\n" -+"S’estableix el propietari a l’usuari actual, el grup a «%s» i els permisos d’accés a %o.\n" - "\n" - "%s" - -@@ -3157,7 +3148,7 @@ msgstr "s’ha alliberat el bloc dues vo - - #: malloc/mcheck.c:358 - msgid "bogus mcheck_status, library is buggy\n" --msgstr "el valor d’«mcheck_status» és estrany; la biblioteca té errors\n" -+msgstr "el valor de «mcheck_status» és estrany; la biblioteca té errors\n" - - #: malloc/memusage.sh:32 - msgid "%s: option '%s' requires an argument\\n" -@@ -3232,7 +3223,7 @@ msgstr "" - - #: malloc/memusage.sh:191 - msgid "memusage: option \\`${1##*=}' is ambiguous" --msgstr "memusage: l’opció «${1##*=}» és ambígua" -+msgstr "memusage: l’opció «${1##*=}» és ambigua" - - #: malloc/memusage.sh:200 - msgid "memusage: unrecognized option \\`$1'" -@@ -3257,7 +3248,7 @@ msgstr "Cadena amb el títol a emprar al - - #: malloc/memusagestat.c:58 - msgid "Generate output linear to time (default is linear to number of function calls)" --msgstr "Genera una eixida lineal respecte el temps (per defecte és lineal respecte el nombre de crides a funció)." -+msgstr "Genera una eixida lineal respecte al temps (per defecte és lineal respecte al nombre de crides a funció)." - - #: malloc/memusagestat.c:62 - msgid "Also draw graph for total memory consumption" -@@ -3919,7 +3910,7 @@ msgstr "Codi d’error desconegut de NIS - - #: nis/ypclnt.c:922 - msgid "Internal ypbind error" --msgstr "Error intern d’«ypbind»" -+msgstr "Error intern de «ypbind»" - - #: nis/ypclnt.c:925 - msgid "Domain not bound" -@@ -3931,7 +3922,7 @@ msgstr "No s’han pogut assignar recurs - - #: nis/ypclnt.c:931 - msgid "Unknown ypbind error" --msgstr "Error desconegut d’«ypbind»" -+msgstr "Error desconegut de «ypbind»" - - #: nis/ypclnt.c:972 - msgid "yp_update: cannot convert host to netname\n" -@@ -3966,18 +3957,26 @@ msgstr "s’afegeix una nova entrada «% - msgid " (first)" - msgstr " (primer)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+# Missatge de depuració amb error. ivb -+# No usa quote(). ivb -+#: nscd/cache.c:288 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "ha fallat stat() sobre el fitxer «%s»: %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "en comprovar el fitxer vigilat «%s»: %s" - --#: nscd/cache.c:331 -+# No usa quote(). ivb -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "el fitxer vigilat «%s» ha canviat (segons la data de modificació)" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "neteja de la memòria cau de «%s», hora %ld" - - # La 2a. és de l’estil de «GETPWBYNAME». ivb --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "es considera l’entrada %s «%s», expiració %" -@@ -4063,39 +4062,69 @@ msgstr "no s’ha pogut indicar que el c - msgid "cannot enable socket to accept connections: %s" - msgstr "no s’ha pogut habilitar el connector per a acceptar connexions: %s" - -+# Cap de les 2 usa quote(). ivb -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "s’inhabilita la vigilància «inotify» per al fitxer «%s»: %s" -+ -+# No usa quote(). ivb -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "s’està vigilant el fitxer «%s» (%d)" -+ -+# Cap de les 2 usa quote(). ivb -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "s’inhabilita la vigilància «inotify» per al directori «%s»: %s" -+ -+# Missatge de depuració. ivb -+# No usa quote(). ivb -+#: nscd/connections.c:994 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "s’està vigilant el directori «%s» (%d)" -+ - # Cap usa quote(). ivb - # Missatge de depuració. ivb --# Allò traçat és el fitxer, segons el codi. ivb --#: nscd/connections.c:984 -+#: nscd/connections.c:1022 - #, c-format --msgid "register trace file %s for database %s" --msgstr "es registra el fitxer traçat «%s» per a la base de dades «%s»" -+msgid "monitoring file %s for database %s" -+msgstr "s’està vigilant el fitxer «%s» per a la base de dades «%s»" - --#: nscd/connections.c:1114 -+# Cap usa quote(). ivb -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "ha fallat stat() sobre el fitxer «%s», es tornarà a provar: %s" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "es proporciona accés al descriptor de fitxer %d, per a «%s»" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "no s’ha pogut atendre la petició amb versió antiga %d; la versió actual és %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" --msgstr "no s’atén la petició de %ld per manca de permissos" -+msgstr "no s’atén la petició de %ld per manca de permisos" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" --msgstr "no s’atén la petició de «%s» (%ld) per manca de permissos" -+msgstr "no s’atén la petició de «%s» (%ld) per manca de permisos" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" --msgstr "no s’atén la petició per manca de permissos" -+msgstr "no s’atén la petició per manca de permisos" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "no s’ha pogut escriure el resultat: %s" -@@ -4105,121 +4134,166 @@ msgstr "no s’ha pogut escriure el resu - # ivb dimoni «nscd» per consultar la memòria cau o invalidar-la. Per - # ivb això faig servir «programa de control» (com «ndc» amb «named» o - # ivb «chronyc» amb «chronyd»). --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "error en obtenir l’identificador del programa de control: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "no s’ha pogut obrir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "no s’ha pogut llegir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "no s’ha pogut tornar a l’UID vell: %s; s’inhabilita el mode paranoic" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "no s’ha pogut tornar al GID vell: %s; s’inhabilita el mode paranoic" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "no s’ha pogut tornar al directori vell de treball: %s; s’inhabilita el mode paranoic" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "ha fallat la reexecució: %s; s’inhabilita el mode paranoic" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "no s’ha pogut canviar el directori de treball a «/»: %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "lectura incompleta en llegir la petició: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "la longitud de la clau de la petició és massa gran: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "lectura incompleta en llegir la clau de la petició: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: s’ha rebut una petició (amb versió %d) del PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: s’ha rebut una petició (amb versió %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+# No usa quote(). ivb -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "s’ha descartat l’esdeveniment d’«inotify» per a «%s» (el fitxer existeix)" -+ -+# No usa quote(), el segon és «moved» o «deleted». ivb -+# FIXME: Inner verb cannot be translated! ivb -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "el fitxer vigilat «%s» ha estat %s, se n’elimina el monitor" -+ -+# Cap usa quote(). ivb -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "no s’ha pogut eliminar el monitor del fitxer «%s»: %s" -+ -+# No usa quote(). ivb -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "el fitxer vigilat «%s» ha rebut una escriptura" -+ -+# No usa quote(), el segon és «moved» o «deleted». ivb -+# FIXME: Inner verb cannot be translated! ivb -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "el directori pare vigilat «%s» ha estat %s, s’elimina el monitor per a «%s»" -+ -+# No usa quote(), el segon és «created» o «moved into place». ivb -+# FIXME: Inner verb cannot be translated! ivb -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "el fitxer vigilat «%s» ha estat %s, se n’afegeix el monitor" -+ -+# Cap dels 2 usa quote(). ivb -+#: nscd/connections.c:2053 - #, c-format --msgid "disabled inotify after read error %d" --msgstr "s’inhabilita «inotify» per l’error de lectura amb codi %d" -+msgid "failed to add file watch `%s`: %s" -+msgstr "no s’ha pogut afegir un monitor per al fitxer «%s»: %s" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "s’inhabilita la vigilància «inotify» per l’error de lectura amb codi %d" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "no s’ha pogut iniciar la variable condicional" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "no s’ha pogut iniciar el fil d’execució de neteja; s’està finalitzant" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "no s’ha pogut iniciar cap fil d’execució treballador; s’està finalitzant" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "no s’ha pogut executar «nscd» com a l’usuari «%s»" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "ha fallat getgrouplist() inicial" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "ha fallat getgrouplist()" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "ha fallat setgroups()" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "escriptura incompleta a «%s»: %s" - - # El nom de la base de dades s’usa més a sovint que la descripció. ivb --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "no s’ha trobat «%s» a la memòria cau de «group»" - - # El nom de la base de dades s’usa més a sovint que la descripció. ivb --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "es torna a carregar «%s» a la memòria cau de «group»" -@@ -4284,7 +4358,7 @@ msgstr "NOMBRE" - - #: nscd/nscd.c:111 - msgid "Start NUMBER threads" --msgstr "Llança NOMBRE fils d’exeució." -+msgstr "Llança NOMBRE fils d’execució." - - #: nscd/nscd.c:112 - msgid "Shut the server down" -@@ -4314,7 +4388,7 @@ msgstr "Empra una memòria cau diferent - msgid "Name Service Cache Daemon." - msgstr "Dimoni de memòria cau del servei de noms." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "el nombre d’arguments és incorrecte" -@@ -4347,7 +4421,7 @@ msgstr "no s’ha pogut canviar el direc - msgid "Could not create log file" - msgstr "no s’ha pogut crear el fitxer de registre" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "escriptura incompleta" -@@ -4362,7 +4436,7 @@ msgstr "no s’ha pogut llegir l’ACK d - msgid "invalidation failed" - msgstr "la invalidació ha fallat" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "només root pot emprar aquesta opció" -@@ -4447,67 +4521,67 @@ msgstr "no s’ha pogut obtenir el direc - msgid "maximum file size for %s database too small" - msgstr "la mida màxima de fitxer per a la base de dades «%s» és massa menuda" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "no s’han pogut escriure les estadístiques: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "sí" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "no" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "només root o %s pot emprar aquesta opció" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd no està en marxa\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "no s’han pogut llegir les dades estadístiques" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" - "\n" - "%15d server debug level\n" - msgstr "" --"Configuració d’nscd:\n" -+"Configuració de nscd:\n" - "\n" - "%15d nivell de depuració del servidor\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus de funcionament del servidor\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus de funcionament del servidor\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus de funcionament del servidor\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus de funcionament del servidor\n" - - # FIXME: interval, not internal. ivb --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4525,7 +4599,7 @@ msgstr "" - "%15u nombre de recàrregues\n" - - # El primer camp és passwd, group, shadow... ivb --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4593,85 +4667,85 @@ msgstr "es torna a carregar «%s» a la - msgid "Invalid numeric uid \"%s\"!" - msgstr "«%s» no és un identificador numèric d’usuari vàlid" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" --msgstr "no s’ha pogut obrir una connexió amb el subâ€sistema d’auditoria: %m" -+msgstr "no s’ha pogut obrir una connexió amb el subsistema d’auditoria: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "no s’han pogut establir les capacitats a mantenir" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "ha fallat prctl(KEEPCAPS)" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "no s’ha pogut començar a renunciar a capacitats" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "ha fallat cap_init()" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" --msgstr "no s’ha pogunt renunciar a les capacitats" -+msgstr "no s’ha pogut renunciar a les capacitats" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "ha fallat cap_set_proc()" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" --msgstr "no s’han pogut desestablir les capacitats a mantenir" -+msgstr "no s’han pogut treure les capacitats a mantenir" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "no s’ha pogut determinar si el nucli accepta SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "no s’ha pogut iniciar el fil d’execució de l’AVC" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "no s’ha pogut crear el blocatge de l’AVC" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "no s’ha pogut iniciar l’AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "s’ha iniciat la memòria cau de vectors d’accés (AVC)" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." --msgstr "error en consultar la política per a classes d’objectes i permissos desconeguts" -+msgstr "error en consultar la política per a classes d’objectes i permisos desconeguts" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." --msgstr "error en obtenir la classe de seguretat d’«nscd»" -+msgstr "error en obtenir la classe de seguretat de «nscd»" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "error en traduir el nom de permís «%s» a un vector de bits d’accés" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "error en obtenir el context de l’extrem remot del connector" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" --msgstr "error en obtenir el context d’«nscd»" -+msgstr "error en obtenir el context de «nscd»" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "error en obtenir el SID del context" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4736,16 +4810,16 @@ msgstr "Obté entrades de les bases de d - msgid "Enumeration not supported on %s\n" - msgstr "no es permet l’enumeració sobre «%s»\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "el nom de la base de dades no és conegut" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Bases de dades acceptades:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "la base de dades no és coneguda: %s\n" -@@ -4793,7 +4867,7 @@ msgstr "no s’ha pogut obrir el fitxer - #: nss/makedb.c:272 - #, c-format - msgid "no entries to be processed" --msgstr "no hi ha cap entrada que processar" -+msgstr "no hi ha cap entrada a processar" - - #: nss/makedb.c:282 - #, c-format -@@ -4881,7 +4955,7 @@ msgstr "" - "\n" - "Obté el valor de configuració per a la VARIABLE, o per a la VARIABLE_DE_CAMÃ\n" - "donat un CAMÃ. Si s’indica una ESPECIFICACIÓ, mostra els valors per a l’entorn\n" --"de compil·lació indicat.\n" -+"de compilació indicat.\n" - "\n" - - #: posix/getconf.c:537 -@@ -4908,7 +4982,7 @@ msgstr "la variable «%s» no és recone - #: posix/getopt.c:592 posix/getopt.c:621 - #, c-format - msgid "%s: option '%s' is ambiguous; possibilities:" --msgstr "%s: l’opció «%s» és ambígua; possibilitats:" -+msgstr "%s: l’opció «%s» és ambigua; possibilitats:" - - #: posix/getopt.c:662 posix/getopt.c:666 - #, c-format -@@ -4949,7 +5023,7 @@ msgstr "%s: l’opció «%c» necessita - #: posix/getopt.c:972 posix/getopt.c:988 - #, c-format - msgid "%s: option '-W %s' is ambiguous\n" --msgstr "%s: l’opció «-W %s» és ambígua\n" -+msgstr "%s: l’opció «-W %s» és ambigua\n" - - #: posix/getopt.c:1012 posix/getopt.c:1030 - #, c-format -@@ -5029,7 +5103,7 @@ msgstr "«)» o «\\)» desaparellat" - msgid "No previous regular expression" - msgstr "No hi ha expressió regular prèvia" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "el paràmetre és nul o no s’ha establert" - -@@ -5159,7 +5233,7 @@ msgstr "L’adreça no es troba mapada a - - #: stdio-common/psiginfo-data.h:23 - msgid "Invalid permissions for mapped object" --msgstr "Els permissos no són vàlids per a l’objecte mapat" -+msgstr "Els permisos no són vàlids per a l’objecte mapat" - - #: stdio-common/psiginfo-data.h:26 - msgid "Invalid address alignment" -@@ -5187,11 +5261,11 @@ msgstr "Un fill ha eixit" - - #: stdio-common/psiginfo-data.h:36 - msgid "Child has terminated abnormally and did not create a core file" --msgstr "Un fill ha eixit abnormalment i no ha creat un fitxer de bolcat" -+msgstr "Un fill ha eixit anormalment i no ha creat un fitxer de bolcat" - - #: stdio-common/psiginfo-data.h:37 - msgid "Child has terminated abnormally and created a core file" --msgstr "Un fill ha eixit abnormalment i ha creat un fitxer de bolcat" -+msgstr "Un fill ha eixit anormalment i ha creat un fitxer de bolcat" - - #: stdio-common/psiginfo-data.h:38 - msgid "Traced child has trapped" -@@ -5309,7 +5383,7 @@ msgstr "no resta memòria\n" - # ivb D'acord amb un comentari del propi fitxer. - #: sunrpc/auth_unix.c:349 - msgid "auth_unix.c: Fatal marshalling problem" --msgstr "auth_none.c: error fatal de preserialització" -+msgstr "auth_none.c: error fatal de serialització" - - #: sunrpc/clnt_perr.c:95 sunrpc/clnt_perr.c:111 - #, c-format -@@ -5364,7 +5438,7 @@ msgstr "RPC: El programa no es troba dis - - #: sunrpc/clnt_perr.c:188 - msgid "RPC: Program/version mismatch" --msgstr "RPC: No hi ha coincidència programa/versió" -+msgstr "RPC: No hi ha coincidència de programa/versió" - - #: sunrpc/clnt_perr.c:192 - msgid "RPC: Procedure unavailable" -@@ -5596,7 +5670,7 @@ msgstr "" - #: sunrpc/rpc_main.c:1422 - #, c-format - msgid "-a\t\tgenerate all files, including samples\n" --msgstr " -a Genera tots els fitxers, incloent els exemples.\n" -+msgstr " -a Genera tots els fitxers, incloentâ€hi els exemples.\n" - - #: sunrpc/rpc_main.c:1423 - #, c-format -@@ -6442,7 +6516,7 @@ msgstr "La xarxa ha tallat la connexió - #. TRANS A network connection was aborted locally. - #: sysdeps/gnu/errlist.c:604 - msgid "Software caused connection abort" --msgstr "El programari ha tallat la conexió" -+msgstr "El programari ha tallat la connexió" - - #. TRANS A network connection was closed for reasons outside the control of the - #. TRANS local host, such as by the remote machine rebooting or an unrecoverable -@@ -6810,7 +6884,7 @@ msgstr "Interbloqueig pel blocatge d’u - - #: sysdeps/gnu/errlist.c:1231 - msgid "Bad font file format" --msgstr "El fitxer de font no té un format vàlid" -+msgstr "El fitxer de tipus de lletra no té un format vàlid" - - #: sysdeps/gnu/errlist.c:1239 - msgid "Machine is not on the network" -@@ -6863,7 +6937,7 @@ msgstr "Accés una biblioteca compartida - - #: sysdeps/gnu/errlist.c:1327 - msgid ".lib section in a.out corrupted" --msgstr "La secció «.lib» de l’a.out és corrupta" -+msgstr "La secció «.lib» del «a.out» és corrupta" - - #: sysdeps/gnu/errlist.c:1335 - msgid "Attempting to link in too many shared libraries" -@@ -6932,7 +7006,7 @@ msgstr "L’estat no és recuperable" - # RFKill és el nom d’un subsistema de Linux. ivb - #: sysdeps/gnu/errlist.c:1463 - msgid "Operation not possible due to RF-kill" --msgstr "L’operació no és possible degut a RFKill" -+msgstr "L’operació no és possible a causa de RFKill" - - #: sysdeps/gnu/errlist.c:1471 - msgid "Memory page has hardware error" -@@ -6955,7 +7029,7 @@ msgstr "Fallada temporal a la resolució - - #: sysdeps/posix/gai_strerror-strs.h:3 - msgid "Bad value for ai_flags" --msgstr "El valor d’«ai_flags» no és vàlid" -+msgstr "El valor de «ai_flags» no és vàlid" - - #: sysdeps/posix/gai_strerror-strs.h:4 - msgid "Non-recoverable failure in name resolution" -@@ -6963,7 +7037,7 @@ msgstr "Fallada irrecuperable a la resol - - #: sysdeps/posix/gai_strerror-strs.h:5 - msgid "ai_family not supported" --msgstr "No es permet l’ús d’aquest valor d’«ai_family»" -+msgstr "No es permet l’ús d’aquest valor de «ai_family»" - - #: sysdeps/posix/gai_strerror-strs.h:6 - msgid "Memory allocation failure" -@@ -6979,11 +7053,11 @@ msgstr "El nom o servei no és conegut" - - #: sysdeps/posix/gai_strerror-strs.h:9 - msgid "Servname not supported for ai_socktype" --msgstr "El valor d’«ai_socktype» no permet l’ús d’aquest servei" -+msgstr "El valor de «ai_socktype» no permet l’ús d’aquest servei" - - #: sysdeps/posix/gai_strerror-strs.h:10 - msgid "ai_socktype not supported" --msgstr "El valor d’«ai_socktype» no està permés" -+msgstr "El valor de «ai_socktype» no està permès" - - #: sysdeps/posix/gai_strerror-strs.h:11 - msgid "System error" -@@ -7131,7 +7205,7 @@ msgstr "" - - #: timezone/zic.c:505 - msgid "wild compilation-time specification of zic_t" --msgstr "l’especificació de «zic_t» en temps de compil·lació no és vàlida" -+msgstr "l’especificació de «zic_t» en temps de compilació no és vàlida" - - #: timezone/zic.c:524 - #, c-format -Index: glibc-2.23/po/cs.po -=================================================================== ---- glibc-2.23.orig/po/cs.po -+++ glibc-2.23/po/cs.po -@@ -2,13 +2,13 @@ - # Copyright (C) 1997 Free Software Foundation, Inc. - # This file is distributed under the same license as the glibc package. - # Vladimir Michl , 1997. --# Petr Pisar , 2007, 2009, 2011, 2012, 2013, 2014. -+# Petr Pisar , 2007, 2009, 2011, 2012, 2013, 2014, 2015. - # - # Thanks to: - # Petr Kolar - # Stanislav Brabec , 1998. - # --# Describe of some function: -+# Description of some function: - # error(status, errnum, "message") => "progname: message: error_message" - # perror("message") => "message: error_message" - # -@@ -16,15 +16,16 @@ - # host, name, hostname - jméno, název, oznaÄení? - # Untranslated: netid (RFC 1833: Network Identifier), nettype - # Translations of "socket" => "soket", --# byte => bajt, "out of memory" => "nedostatek pamÄ›ti" -+# byte => bajt -+# out of memory => nedostatek pamÄ›ti - # collation something => ??? - # ellipsis range => ??? - # - msgid "" - msgstr "" --"Project-Id-Version: libc 2.19.90\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" --"PO-Revision-Date: 2014-08-21 18:52+0200\n" -+"Project-Id-Version: libc 2.22-pre1\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"PO-Revision-Date: 2015-08-02 22:09+0200\n" - "Last-Translator: Petr Pisar \n" - "Language-Team: Czech \n" - "Language: cs\n" -@@ -164,10 +165,10 @@ msgstr "" - "[ VÃSTUPNÃ_SOUBOR [VSTUPNÃ_SOUBOR]…]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -179,7 +180,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -197,7 +198,7 @@ msgstr "" - "a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NÄšJAKà KONKRÉTNà ÚČEL.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -453,11 +454,11 @@ msgstr "ZmÄ›na přístupových práv k  - msgid "Renaming of %s to %s failed" - msgstr "PÅ™ejmenování z %s na %s selhalo" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "seznam rozsahů nelze vytvoÅ™it" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "sdílený objekt není otevÅ™en" - -@@ -530,127 +531,127 @@ msgstr "nelze vytvoÅ™it pole vyhledávac - msgid "cannot stat shared object" - msgstr "nelze získat informace o sdíleném objektu" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "nulami vyplnÄ›né zařízení (zero) nelze otevřít" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "deskriptor sdíleného objektu nelze vytvoÅ™it" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "data ze souboru nelze naÄíst" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "Zarovnání kódu zavadÄ›Äe formátu ELF nelícuje se stránkou" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "Adresa/ofset kódu zavadÄ›Äe formátu ELF není správnÄ› zarovnána" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "Datové struktury TLS prvního vlákna nelze alokovat" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "nelze zpracovat data TLS" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "objektový soubor nemá žádné nahratelné segmenty" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "spustitelný kód nelze dynamicky nahrát" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "objektový soubor nemá žádnou dynamickou sekci" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "sdílený objekt nebylo možné naÄíst funkcí dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "nelze alokovat paměť pro hlaviÄku programu" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "nepřípustný kód volání" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "ochrany pamÄ›ti nelze zmÄ›nit" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "nemohu povolit spustitelnost zásobníku, jak vyžaduje sdílený objekt" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "deskriptor souboru nelze zavřít" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "soubor je příliÅ¡ krátký" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "neplatný hlaviÄka ELF" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "Kódování dat souboru ELF nemá velkou endianitu" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "Kódování dat souboru ELF nemá malou endianitu" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ident verze souboru ELF se neshoduje se souÄasnou" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "Chybné ABI OS souboru ELF" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "Chybná verze ABI souboru ELF" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "nenulová výplň v e_ident" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "vnitÅ™ní chyba" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "Verze souboru ELD se neshoduje se souÄasnou" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "jen ET_DYN a ET_EXEC mohou být nahráni" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "phentsize souboru ELF má neoÄekávanou velikost" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "chybná třída ELF: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "chybná třída ELF: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "sdílený objektový soubor nelze otevřít" - -@@ -662,11 +663,11 @@ msgstr "namapování segmentu ze sdílen - msgid "cannot map zero-fill pages" - msgstr "nulami vyplnÄ›né stránky nelze mapovat" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "chyba pÅ™i pÅ™emisÅ¥ování" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "chyba pÅ™i vyhledávání symbolu" - -@@ -674,49 +675,40 @@ msgstr "chyba pÅ™i vyhledávání symbol - msgid "cannot extend global scope" - msgstr "globální rozsah nelze rozšířit" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "ČítaÄ generátoru TLS oříznut! Prosím, tuto skuteÄnost nahlaste." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "nelze zavést žádný další objekt se statickým TLS" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "neplatný mód pro dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "pro dlmopen() již není dostupný žádný další jmenný prostor" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "neplatný cílový jmenný prostor v dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "nelze alokovat paměť uvnitÅ™ statického bloku TLS" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "segment nelze kvůli pÅ™emístÄ›ní uÄinit zapisovatelný" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: v objektu %s nenalezen žádný PLTREL\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: pro uložení výsledků pÅ™emístÄ›ní %s není dost pamÄ›ti\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "segment prot nelze po reloc obnovit" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "po pÅ™emístÄ›ní nelze nelze uplatnit dodateÄnou ochranu pamÄ›ti" - -@@ -724,7 +716,7 @@ msgstr "po pÅ™emístÄ›ní nelze nelze up - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT je použito pro kód, který není dynamicky zaveden" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "datové struktury TLS nelze vytvoÅ™it" - -@@ -868,7 +860,7 @@ msgstr "Protože nebyl nalezen název sd - msgid "Can't open directory %s" - msgstr "Adresář %s nelze otevřít" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Vstupní soubor %s nebyl nalezen.\n" -@@ -1000,7 +992,7 @@ msgstr "postrádám souborové argumenty - msgid "No such file or directory" - msgstr "Adresář nebo soubor neexistuje" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "není obyÄejným souborem" - -@@ -1045,65 +1037,70 @@ msgstr "r_debug nelze pÅ™eÄíst" - msgid "cannot read program interpreter" - msgstr "interpretr programu nelze pÅ™eÄíst" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "mapování odkazů nelze naÄíst" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "název objektu nelze pÅ™eÄíst" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "nelze alokovat vyrovnávací paměť pro název objektu" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "Vypíše dynamické sdílené objekty zavedené do procesu." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Je tÅ™eba právÄ› jeden parametr s ID procesu.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "neplatné ID procesu „%s“" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "%s nelze otevřít" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "%s/task nelze otevřít" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "Ätení %s/task nelze pÅ™ipravit" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "neplatné ID vlákna „%s“" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "k procesu %lu se nelze pÅ™ipojit" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "o procesu %lu nelze získat údaje" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "proces %lu není programem ELF" -@@ -1138,27 +1135,27 @@ msgstr "%s není sdíleným objektovým - msgid "more than one dynamic segment\n" - msgstr "více jak jeden dynamický segment\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "O souboru %s nelze získat informace službou fstat().\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Soubor %s je prázdný, nezkontrolováno." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Soubor %s je příliÅ¡ malý, nezkontrolováno." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Soubor %s nelze namapovat.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s není soubor typu ELF – na svém zaÄátku má chybné magické bajty.\n" -@@ -1293,10 +1290,10 @@ msgstr "SDÃLENÃ_OBJEKT [PROF_DATA]" - msgid "failed to load shared object `%s'" - msgstr "sdílený objekt „%s“ se nepodaÅ™ilo zavést" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "interní deskriptory nelze vytvoÅ™it" -+msgid "cannot create internal descriptor" -+msgstr "interní deskriptor nelze vytvoÅ™it" - - #: elf/sprof.c:554 - #, c-format -@@ -1365,11 +1362,6 @@ msgstr "soubor profilovacích dat se nep - msgid "error while closing the profiling data file" - msgstr "chyba bÄ›hem uzavírání souboru profilovacích dat" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "interní deskriptor nelze vytvoÅ™it" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1616,27 +1608,27 @@ msgstr "soket: chyba protokolu pÅ™i přà - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: krátce naÄteno" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "funkce lstat() skonÄila s chybou" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "nelze otevřít" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "funkce fstat() skonÄila s chybou" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "chybný vlastník" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "zapisovatelný nejen pro vlastníka" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "nÄ›kde existuje pevný odkaz" - -@@ -1756,8 +1748,8 @@ msgid "no symbolic name given for end of - msgstr "žádné symbolické jméno nebylo pro konec rozsahu zadáno" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1783,8 +1775,8 @@ msgid "%s: error in state machine" - msgstr "%s: chyba ve stavovém automatu" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1805,7 +1797,7 @@ msgstr "neznámý znak „%s“" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "poÄet bajtů sekvence pro poÄátek a konec rozsahu není stejný: %d vs. %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nepovolené názvy pro rozsah znaků" -@@ -1827,8 +1819,8 @@ msgstr "horní mez rozsahu je menší ne - msgid "resulting bytes for range not representable." - msgstr "výsledné bajty rozsahu nejsou reprezentovatelné." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1892,7 +1884,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: Äíselný kód zemÄ› „%d“ není platný" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1914,8 +1906,8 @@ msgstr "%s: položka „%s“ deklarov - msgid "%s: unknown character in field `%s'" - msgstr "%s: neznámý znak v položce „%s“" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1924,12 +1916,12 @@ msgstr "%s: neznámý znak v položce â - msgid "%s: incomplete `END' line" - msgstr "%s: neúplný řádek „END“" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1939,477 +1931,477 @@ msgstr "%s: neúplný řádek „END†- msgid "%s: syntax error" - msgstr "%s: chyba syntaxe" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "„%.*s“ již definováno v mapÄ› znaků" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "„%.*s“ již definováno v repertoáru" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "„%.*s“ již definovaná jako Å™adicí symbol" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "„%.*s“ již definováno jako Å™adicí prvek" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: poÅ™adí Å™azení „forward“ (dopÅ™edné) a „backward“ (zpÄ›tné) se navzájem vyluÄují" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: “%s“ zmínÄ›no v definici o váze %d více krát" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: příliÅ¡ mnoho pravidel, jen první položka jich má %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: nedostatek Å™adicích pravidel" - - # prázdné jméno váhy - řádek ignorován --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: Å™etÄ›zec s prázdnou váhou není povolen" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: váhy musí používat stejný symbol výpustky jako jméno" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: příliÅ¡ mnoho hodnot" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "poÅ™adí „%.*s“ již definováno v %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: poÄáteÄní a koncový symbol rozsahu musí být znakem" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: sekvence bajtů prvního a posledního znaku musí mít stejnou délku" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: sekvence bajtů prvního znaku z rozsahu není menší než sekvence posledního znaku" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: výpustky symbolického rozsahu nesmí následovat hned za „order_start“" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: výpustky symbolického rozsahu nesmí být přímo následovány „order_end“" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "„%s“ a „%.*s“ nejsou platné názvy pro symbolický rozsah" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: poÅ™adí pro „%.*s“ již definováno v %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: „%s“ musí být znak" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: „position“ (pozice) musí být použita pro urÄitou úroveň ve vÅ¡ech sekcích, nebo v žádné" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "symbol „%s“ nedefinován" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "symbol „%s“ má stejné kódování jako" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "symbol „%s“" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "chybí definice symbolu „UNDEFINED“" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "příliÅ¡ mnoho chyb, vzdávám to" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: vnoÅ™ené podmínky nejsou podporovány" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: více jak jeden „else“" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: duplicitní definice „%s“" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: duplicitní deklarace sekce „%s“" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: neznámý znak v názvu Å™adicího symbolu" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: neznámý znak ve jménÄ› definice rovnocennosti" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: neznámý znak v hodnotÄ› definice rovnocennosti" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: neznámý symbol „%s“ v definici rovnocennosti" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "chyba pÅ™i pÅ™idávání rovnocenného Å™adicího symbolu" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "duplicitní definice skriptu „%s“" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: jméno sekce „%.*s“ není známo" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: násobná definice poÅ™adí pro sekci „%s“" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: neplatné Äíslo Å™adicího pravidla" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: násobná definice poÅ™adí pro nepojmenovanou sekci" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: chybí klíÄové slovo „order_end“" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: poÅ™adí pro Å™adicí symbol %.*s nebylo jeÅ¡tÄ› definováno" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: poÅ™adí pro Å™adicí prvek %.*s nebylo jeÅ¡tÄ› definováno" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: po %.*s nelze zmÄ›nit poÅ™adí: symbol není znám" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: chybí klíÄové slovo „reorder-end“" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: sekce „%.*s“ není známa" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: chybný symbol <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: nemohu mít „%s“ jako konec výpustkového rozsahu" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: prázdný popis kategorie není dovolen" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: chybí klíÄové slovo „reorder-sections-end“" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: „%s“ bez odpovídajícího „ifdef“ nebo „ifndef“" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: „endif“ bez odpovídajícího „ifdef“ nebo „ifndef“" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "V mapÄ› znaků není urÄena znaková sada" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "znak L'\\u%0*x' ve třídÄ› „%s“ musí být ve třídÄ› „%s“" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "znak L'\\u%0*x' ve třídÄ› „%s“ nesmí být ve třídÄ› „%s“" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "vnitÅ™ní chyba ve funkci %s na řádku %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "znak „%s“ ve třídÄ› „%s“ musí být ve třídÄ› „%s“" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "znak „%s“ ve třídÄ› „%s“ nesmí být ve třídÄ› „%s“" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "znak ve třídÄ› „%s“ není" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "znak nesmí ve třídÄ› „%s“ být" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "znak není ve znakové sadÄ› definován" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "kategorie „digit“ (Äíslice) nemá položky ve skupinách po deseti" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "nedefinovány žádné vstupní Äíslice a žádná standardní jména v mapÄ› znaků" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "ne vÅ¡echny znaky použité v „outdigit“ (výstupní Äíslice) jsou dostupné v mapÄ› znaků" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "ne vÅ¡echny znaky použité v „outdigit“ (výstupní Äíslice) jsou dostupné v repertoáru" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "třída znaků „%s“ již je definována" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "implementaÄní omezení: maximální poÄet tříd znaků je %Zd" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "znaková sada „%s“ již je definována" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "implementaÄní omezení: maximální poÄet znakových sad je %d" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: pole „%s“ neobsahuje pÅ™esnÄ› deset položek" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "horní mez rozsahu je menší než dolní mez " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "úvodní a závÄ›reÄná sekvence znaků rozsahu musí mít stejnou délku" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "sekvence znaků horní meze je menší než sekvence dolní meze" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "pÅ™edÄasný konec definice „translit_ignore“" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "chyba syntaxe" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: syntaktická chyba v definici nové třídy znaků" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: syntaktická chyba v definici nové znakové sady" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "výpustkový rozsah musí být vyznaÄen dvÄ›ma operandy stejného typu" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "s hodnotami symbolického jmenného rozsahu nelze použit absolutní výpustku „...“" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "spolu s hodnotami UCS rozsahu se musí použít Å¡estnáctková symbolická výpustka „..“" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "spolu s hodnotami rozsahu kódů znaku se misí použít absolutní výpustka „...“" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "duplicitní definice mapovaní „%s“" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: sekce „translit_start“ nekonÄí na „translit_end“" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: duplicitní definice „default_missing“" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "pÅ™edchozí definice byla zde" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: nenalezena žádná reprezentovatelná definice „default_missing“" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: znak „%s“ potÅ™ebný jako implicitní hodnota není definován" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: znak „%s“ z mapy znaků není reprezentovatelný jedním bajtem" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: znak „%s“ potÅ™ebný jako implicitní hodnota není reprezentovatelný jedním bajtem" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "nedefinovány žádné výstupní Äíslice a žádná standardní jména v mapÄ› znaků" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: pÅ™episovací data pro národní prostÅ™ední „%s“ nejsou dostupná" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabulka pro třídu „%s“: %lu bajtů\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabulka pro mapu „%s“: %lu bajtů\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabulka se šířkou: %lu bajtů\n" -@@ -3837,17 +3829,22 @@ msgstr "pÅ™idat novou položku „%s“ - msgid " (first)" - msgstr " (první)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, c-format -+msgid "checking for monitored file `%s': %s" -+msgstr "kontroluje se sledovaný soubor „%s“: %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "na soubor „%s“ nelze vykonat stat(): %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "sledovaný soubor „%s“ se zmÄ›nil (zmÄ›na Äasu obsahu)" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "Äistím keÅ¡ %s, Äas %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "zvažuji %s-položku „%s“, životnost %" -@@ -3933,153 +3930,213 @@ msgstr "soket nelze nastavit na uzavÅ™en - msgid "cannot enable socket to accept connections: %s" - msgstr "soket nemůže pÅ™ijímat spojení: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "sledování souboru „%s“ pomocí inotify zakázáno: %s" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "sleduje se soubor „%s“ (%d)" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "sledování adresáře „%s“ pomocí inotify zakázáno: %s" -+ -+#: nscd/connections.c:994 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "sleduje se adresář „%s“ (%d)" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "sleduje se soubor %s pro databázi %s" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" --msgstr "registrovat trasovací soubor %s pro databázi %s" -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "volání stat nad souborem „%s“ selhalo, zkusí se pozdÄ›ji: %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "poskytnout přístup na deskriptor souboru %d pro %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "žádost staré verze (%d) nelze zpracovat; aktuální verze je %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "požadavek z %ld neobsloužen kvůli chybÄ›jícím právům" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "požadavek z „%s“ [%ld] neobsloužen kvůli chybÄ›jícím právům" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "požadavek neobsloužen kvůli chybÄ›jícím právům" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "výsledek nelze zapsat: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "chyba pÅ™i zjiÅ¡Å¥ování id volajícího: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "/proc/self/cmdline nelze otevřít: %s, vypínám paranoidní režim" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "/proc/self/cmdline nelze naÄíst: %s, vypínám paranoidní režim" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "nelze se pÅ™epnout do starého UID: %s. vypínám paranoidní režim" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "nelze se pÅ™epnout do starého GID: %s, vypínám paranoidní režim" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "nelze se pÅ™epnout do starého pracovního adresáře: %s. vypínám paranoidní režim" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "znovuspuÅ¡tÄ›ní selhalo: %s, paranoidní režim bude vypnut" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "souÄasný pracovní adresář nelze zmÄ›nit na „/“: %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "neúplné Ätení žádosti: „%s“" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "délka klíÄe v žádosti je příliÅ¡ dlouhá: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "neúplné Ätení klíÄe žádosti: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: žádost pÅ™ijata (verze = %d) od PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: žádost pÅ™ijata (verze = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "událost inotify pro „%s“ ignorována (soubor existuje)" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "sledovaný soubor „%s“ byl %s, hlídání se ruší" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "zruÅ¡ení hlídání souboru „%s“ selhalo: %s" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "do sledovaného souboru „%s“ bylo zapsáno" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "sledovaný rodiÄovský adresář „%s“ byl %s, ruší se hlídání „%s“" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "sledovaný soubor „%s“ byl %s, zaÄíná se hlídat" -+ -+#: nscd/connections.c:2053 - #, c-format --msgid "disabled inotify after read error %d" --msgstr "po chybÄ› v Ätení %d zakázáno inotify" -+msgid "failed to add file watch `%s`: %s" -+msgstr "hlídání souboru „%s“ se nepodaÅ™ilo zahájit: %s" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "po chybÄ› v Ätení %d bylo zakázáno sledování pomocí inotify" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "promÄ›nnou podmínky nebylo možné inicializovat" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "nebylo možné spustit úklidové vlákno, konÄím" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "nebylo možné spustit jakékoliv výkonné vlákno, konÄím" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "SpuÅ¡tÄ›ní nscd pod uživatelem „%s“ selhalo" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "prvotní získání seznamu skupin (getgrouplist) selhalo" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist (získej seznam skupin) selhalo" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "funkce setgroups() selhala" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "neúplný zápis v %s(): %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "„%s“ nebylo v cache pamÄ›ti pro skupiny nalezeno!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Znovu se nahrává „%s“ do keÅ¡e skupin!" -@@ -4167,7 +4224,7 @@ msgstr "Použije oddÄ›lenou cache pro ka - msgid "Name Service Cache Daemon." - msgstr "NSC (Name Service Cache) démon [pro keÅ¡ování jmenných služeb]." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "chybný poÄet argumentů" -@@ -4200,7 +4257,7 @@ msgstr "nelze zmÄ›nit souÄasný pracovn - msgid "Could not create log file" - msgstr "Soubor s protokolem nelze vytvoÅ™it" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "neúplný zápis" -@@ -4215,7 +4272,7 @@ msgstr "zneplatnÄ›ný ACK (potvrzení) - msgid "invalidation failed" - msgstr "zneplatnÄ›ní selhalo" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Tento pÅ™epínaÄ je dostupný pouze superuživateli!" -@@ -4301,35 +4358,35 @@ msgstr "nelze získat název souÄasnéh - msgid "maximum file size for %s database too small" - msgstr "maximální velikost souboru pro databázi %s je příliÅ¡ malá" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "statistiku nelze zapsat: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "ano" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "ne" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Tento pÅ™epínaÄ je dostupný pouze uživateli root nebo %s!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd neběží!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "statistické údaje nelze naÄíst" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4340,28 +4397,28 @@ msgstr "" - "\n" - "%15d úroveň ladÄ›ní serveru\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus doba bÄ›hu serveru\n" - - # See nscd -g for indentation reasons --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus doba bÄ›hu serveru\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus doba bÄ›hu serveru\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus doba bÄ›hu serveru\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4378,7 +4435,7 @@ msgstr "" - "%15lu vnitÅ™ních restartů\n" - "%15u poÄet znovunaÄtení\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4444,85 +4501,85 @@ msgstr "Znovu naÄítám „%s“ do ke - msgid "Invalid numeric uid \"%s\"!" - msgstr "Neplatné Äíselné UID „%s“" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "OtevÅ™ení spojení do auditního subsystému selhalo: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Nastavení „keep“ kvalifikací selhalo" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) selhalo" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Příprava na vzdání se kvalifikací selhala" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "funkce cap_init() selhala" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Vzdání se kvalifikací selhalo" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc selhala" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Vypnutí „keep“ kvalifikací selhalo" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Nelze zjistit, zda jádro podporuje SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "SpuÅ¡tÄ›ní vlákna AVC selhalo" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "VytvoÅ™ení zámku AVC selhalo" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "SpuÅ¡tÄ›ní AVC selhalo" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "KeÅ¡ přístupových vektorů (AVC) nastartována" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "Chyba pÅ™i dotazování politiky na nedefinované třídy objektů nebo práva." - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "Chyba pÅ™i získávání bezpeÄnostní třídy pro nscd." - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "Chyba pÅ™i pÅ™ekládání názvu práv „%s“ na bit přístupového vektoru." - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Chyba pÅ™i zjiÅ¡Å¥ování kontextu dvojice soketů" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Chyba pÅ™i zjiÅ¡Å¥ování kontextu nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Chyba pÅ™i získávání SID z kontextu" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4584,16 +4641,16 @@ msgstr "Získá záznamy ze správní da - msgid "Enumeration not supported on %s\n" - msgstr "VýÄet není podporován na %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Neznámé jméno databáze" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Podporované databáze:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Neznámá databáze: %s\n" -@@ -4875,7 +4932,7 @@ msgstr "Nepárová ) or \\)" - msgid "No previous regular expression" - msgstr "PÅ™edchozí regulární výraz neexistuje" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parametr je nullový nebo prázdný" - -@@ -7266,6 +7323,15 @@ msgstr "příliÅ¡ mnoho nebo příliÅ¡ d - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: Adresář %s nelze vytvoÅ™it: %s\n" - -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "nelze zavést žádný další objekt se statickým TLS" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: v objektu %s nenalezen žádný PLTREL\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "interní deskriptory nelze vytvoÅ™it" -+ - #~ msgid "compile-time support for database policy missing" - #~ msgstr "podpora pro politiku databází v dobÄ› pÅ™ekladu chybí" - -Index: glibc-2.23/po/da.po -=================================================================== ---- glibc-2.23.orig/po/da.po -+++ glibc-2.23/po/da.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc-2.11.1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2010-11-01 10:37+0100\n" - "Last-Translator: Keld Simonsen \n" - "Language-Team: Danish \n" -@@ -143,10 +143,10 @@ msgstr "" - "[UDFIL [INDFIL]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, fuzzy, c-format -@@ -162,7 +162,7 @@ msgstr "" - "Rapportér fejl eller synspunkter pÃ¥ oversættelsen til .\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -180,7 +180,7 @@ msgstr "" - "TIL NOGEN SPECIEL OPGAVE.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -445,11 +445,11 @@ msgstr "Ændring af adgangsrettigheder f - msgid "Renaming of %s to %s failed" - msgstr "Omdøbning af %s til %s fejlede" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "kan ikke oprette omfangsliste" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "delt objekt er ikke Ã¥bent" - -@@ -524,127 +524,127 @@ msgstr "kan ikke oprette tabel over søg - msgid "cannot stat shared object" - msgstr "kan ikke tage status pÃ¥ delt objekt" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "kan ikke Ã¥bne nulstil-enhed" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "kan ikke oprette delt objektbeskriver" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "kan ikke indlæse fildata" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF-indlæsningskommandos tilpasning er ikke tilpasset siden" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF-indlæsningskommandos adresse/tillæg er ikke tilpasset ordentligt" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "kan ikke oprette TLS-datastrukturer for første trÃ¥d" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "kan ikke behandle TLS-data" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "objektfil har ingen indlæsbare segmenter" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "kan ikke indlæse udførbare programmer dynamisk" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "objektfil har ingen dynamisk sektion" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "delt objekt kan ikke Ã¥bnes med dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "kan ikke allokere hukommelse til programhoved" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "ugyldig opkalder" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "kan ikke ændre hukommelsesbeskyttelser" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "kan ikke oprette udførbar stak som kræves af delt objekt" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "kan ikke lukke filbeskriver" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "for kort fil" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "ugyldigt ELF-hoved" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "Kodning for ELF-fildata er ikke \"big-endian\"" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "Kodning for ELF-fildata er ikke \"little-endian\"" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF-filens version-identitet passer ikke med den aktuelle" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF-filens OS ABI er ugyldigt" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF-filens ABI-version er ugyldig" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "intern fejl" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF-filens version passer ikke med den aktuelle" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "kun ET_DYN og ET_EXEC kan indlæses" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "ELF-filens 'phentsize' er ikke den forventede størrelse" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "forkert ELF-klasse: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "forkert ELF-klasse: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "kan ikke Ã¥bne delt objektfil" - -@@ -656,11 +656,11 @@ msgstr "kunne ikke afbilde segment fra d - msgid "cannot map zero-fill pages" - msgstr "kan ikke mappe nulstil-sider" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "fejl ved relokering" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "fejl ved opslag af symbol" - -@@ -668,51 +668,40 @@ msgstr "fejl ved opslag af symbol" - msgid "cannot extend global scope" - msgstr "kan ikke udvide globalt defineringomrÃ¥de" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "Generationstæller for TLS tilbagestillet! Vær sød at indsende fejlrapport." - --#: elf/dl-open.c:542 --#, fuzzy --#| msgid "cannot allocate memory in static TLS block" --msgid "cannot load any more object with static TLS" --msgstr "Kan ikke tildele hukommelse i statisk TLS-blok" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "ugyldig modus for dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "ikke flere navnerum tilgængelige for dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "ugyldigt mÃ¥l-navnerum for dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "Kan ikke tildele hukommelse i statisk TLS-blok" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "kan ikke gøre segment skrivbart for relokering" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: ingen PLTREL fundet i objekt %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: ikke mere hukommelse til at gemme relokeringsresultat for %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "kan ikke genskabe segmentbeskyttelse efter flytning" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "kan ikke udføre yderligere hukommelsesbeskyttelser efter flytning" - -@@ -720,7 +709,7 @@ msgstr "kan ikke udføre yderligere huko - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT brugt i kode er ikke dynamisk indlæst" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "kan ikke oprette datastrukturer for TLS" - -@@ -866,7 +855,7 @@ msgstr "Ingen lænke oprettet da .so-nav - msgid "Can't open directory %s" - msgstr "Kan ikke Ã¥bne katalog %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Inddatafilen %s ikke fundet\n" -@@ -997,7 +986,7 @@ msgstr "mangler filargumenter" - msgid "No such file or directory" - msgstr "Ingen sÃ¥dan fil eller filkatalog" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "ikke en almindelig fil" - -@@ -1047,72 +1036,78 @@ msgstr "kan ikke læse hoved" - msgid "cannot read program interpreter" - msgstr "kan ikke læse arkivhoved" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "kan ikke indlæse fildata" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "kan ikke læse hoved" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "kan ikke allokere hukommelse til programhoved" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid pointer size" - msgid "invalid process ID '%s'" - msgstr "ugyldig størrelse for pegere" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "kan ikke Ã¥bne '%s'" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "kan ikke Ã¥bne '%s'" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "ugyldigt ELF-hoved" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot access '%s'" - msgid "cannot attach to process %lu" - msgstr "kan ikke fÃ¥ adgang til '%s'" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1147,27 +1142,27 @@ msgstr "%s er ikke en delt objektfil (Ty - msgid "more than one dynamic segment\n" - msgstr "mere end ét dynamisk segment\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Kan ikke fstat() fil %s\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Fil %s er tom, ikke afprøvet." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Fil %s er for lille, ikke afprøvet." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Kan ikke mmap fil %s\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s er ikke en ELF-fil - den har de forkerte signaturtegn i starten.\n" -@@ -1295,10 +1290,10 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "kunne ikke indlæse delt objekt '%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "kan ikke oprette interne deskriptorer" -+msgid "cannot create internal descriptor" -+msgstr "kan ikke oprette intern deskriptor" - - #: elf/sprof.c:554 - #, c-format -@@ -1365,11 +1360,6 @@ msgstr "kunne ikke mmap'e filen med prof - msgid "error while closing the profiling data file" - msgstr "fejl ved lukning af datafilen for profilering" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "kan ikke oprette intern deskriptor" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1627,27 +1617,27 @@ msgstr "sokkel: protokolfejl i opsætnin - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: kort indlæsning" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat fejlede" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "kan ikke Ã¥bne" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat fejlede" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "forkert ejer" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "skrivbar af andre end ejer" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "hÃ¥rdlænket et eller andet sted" - -@@ -1767,8 +1757,8 @@ msgid "no symbolic name given for end of - msgstr "ikke noget symbolsk navn givet for slutningen pÃ¥ omrÃ¥det" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1794,8 +1784,8 @@ msgid "%s: error in state machine" - msgstr "%s: fejl i tilstandsmaskinen" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1818,7 +1808,7 @@ msgstr "" - "antal byte for bytesekvens angivet i begyndelsen respektive slutningen af intervallet\n" - "er forskellige: %d respektive %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "ugyldige navne for tegnomrÃ¥de" -@@ -1840,8 +1830,8 @@ msgstr "øvre grænse i omrÃ¥de er mindr - msgid "resulting bytes for range not representable." - msgstr "de resulterende bytes for omrÃ¥det kan ikke repræsenteres." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1905,7 +1895,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: numerisk landekode '%d' er ugyldig" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1927,8 +1917,8 @@ msgstr "%s: felt '%s' erklæret mere end - msgid "%s: unknown character in field `%s'" - msgstr "%s: ukendt tegn i felt '%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1937,12 +1927,12 @@ msgstr "%s: ukendt tegn i felt '%s'" - msgid "%s: incomplete `END' line" - msgstr "%s: ufuldstændig 'END'-linje" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1952,477 +1942,477 @@ msgstr "%s: ufuldstændig 'END'-linje" - msgid "%s: syntax error" - msgstr "%s: syntaksfejl" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "'%.*s' allerede defineret i tegntabel" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "'%.*s' allerede defineret i repertoire" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "'%.*s' allerede defineret som sammenligningssymbol" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "'%.*s' allerede defineret som sammenligningselement" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: sorteringsrækkefølgen 'forward' og 'backward' udelukker hinanden" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: '%s' nævnt mere end én gang i definitionen af vægt %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: for mange regler; første indgang havde kun %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: ikke nok sorteringsregler" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: tom vægt-streng ikke tilladt" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: vægte skal bruge det samme ellipse-symbol som navnet" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: For mange værdier" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "sorteringsorden for '%.*s' allerede defineret ved %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: start- og slut-symbolet for et interval skal stÃ¥ for tegn" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: bytesekvensen for første og sidste tegn skal have samme længde" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: bytesekvensen af det første tegn i omrÃ¥det er ikke mindre end sekvensen for det sidste tegn" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: symbolsk interval-ellipse mÃ¥ ikke komme umiddelbart efter 'order_start'" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: symbolsk interval-ellipse mÃ¥ ikke være fulgt umiddelbart af 'order_end'" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "'%s' og '%.*s' er ikke gyldige navne for symbolsk omrÃ¥de" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: rækkefølge for '%.*s' allerede defineret ved %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: '%s' skal være et tegn" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: 'position' skal bruges pÃ¥ det samme niveau i alle sektioner, ellers ingen" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "symbol '%s' ikke defineret" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "symbol '%s' har den samme kodning som" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "symbol '%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "ingen definition af 'UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "for mange fejl, giver op" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s betingelser i niveauer er ikke understøttet" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: Mere end ét 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: duplikér definition af '%s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: duplikér definition af sektion '%s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: ukendt tegn i sammenligningsymbolnavn" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: ukendt tegn i ækvivalens-definitions-navn" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: ukendt tegn i ækvivalens-definitions-værdi" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: ukendt symbol '%s' i ækvivalens-definition" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "fejl under indsætning af ækvivalens-sammenligningssymbol" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "duplikér definition af skript '%s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: ukendt sektionsnavn '%.*s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: flere definitioner af orden for sektion '%s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: ugyldigt antal sorteringsregler" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: flere definitioner af orden for unavngiven sektion" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: manglende 'order_end' nøgleord" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: rækkefølge for sammenligningssymbol '%.*s' endnu ikke defineret" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: rækkefølge for sammenligningselement '%.*s' endnu ikke defineret" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: kan ikke ordne efter %.*s: symbol ikke kendt" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: manglende 'reorder-end' nøgleord" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: sektion '%.*s' ukendt" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: dÃ¥rligt symbol: <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: kan ikke have '%s' som slutning pÃ¥ ellipse-interval" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: tom kategori-beskrivelse ikke tilladt" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: manglende 'reorder-sections-end' nøgleord" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: \"%s\" uden tilsvarende \"ifdef\" eller \"ifndef\"" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: \"endif\" uden tilsvarende \"ifdef\" eller \"ifndef\"" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Intet tegnsætsnavn angivet i tegntabel" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "tegnet L'\\u%0*x' i klassen '%s' skal være i klassen '%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "tegnet L'\\u%0*x' i klassen '%s' kan ikke være i klassen '%s'" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "intern fejl i %s, linje %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "tegnet '%s' i klassen '%s' skal være i klassen '%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "tegnet '%s' i klassen '%s' mÃ¥ ikke være i klassen '%s'" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "tegnet er ikke i klassen '%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "tegnet mÃ¥ ikke være i klassen '%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "tegnet ikke defineret i tegntabellen" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "'digit' kategori har ikke elementer i grupper af ti" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "ingen inddata-cifre defineret, og ingen af standardnavnene i tegntabellen" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "ikke alle tegn brugt i 'outdigit' er tilstede i tegntabellen" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "ikke alle tegn brugt i 'outdigit' er tilstede i repertoiret" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "tegnklassen '%s' allerede defineret" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "implementationsbegrænsning: ikke flere end %Zd tegnklasser er tilladt" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "tegntabellen '%s' allerede defineret" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "implementationsbegrænsning: ikke flere end %d tegntabeller tilladt" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: felt '%s' indeholder ikke præcis 10 elementer" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "'to'-værdi i intervallet er mindre end 'from'-værdi " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "start og slut tegnsekvens for omrÃ¥der skal have samme længde" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "'to'-værdi tegnfølgen er mindre end 'from'-værdi tegnfølgen" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "For tidlig afslutning pÃ¥ 'translit_ignore' definition" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "syntaksfejl" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: syntaksfejl i definition af ny tegnklasse" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: syntaksfejl i definition af ny tegntabel" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "ellipse-omrÃ¥der skal angives ved to operander af samme type" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "ved symbolske interval-værdier mÃ¥ den absolutte ellipse '...' ikke bruges" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "ved UCS-interval-værdier skal man bruge heksadecimal symbolsk ellipse" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "ved tegnkode interval-værdier skal man bruge absolut ellipse '...'" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "duplikeret definition af afbildning '%s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: 'translit_start'-sektionen slutter ikke med 'translit_end'" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: duplikér definition af 'default_missing'" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "den foregÃ¥ende definition var her" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: ingen repræsenterbar 'default_missing' definition fundet" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: tegnet '%s' ikke defineret, men behøves som standardværdi" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: tegnet '%s' i tegntabel ikke repræsenterbar med én byte" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: Tegnet '%s' brugt som standardværdi er ikke repræsenterbar med én byte" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "ingen uddata-cifre defineret, og ingen af standardnavnene i tegntabellen" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: transliterationsdata fra lokale '%s' ikke tilgængelige" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabel for class \"%s\": %lu byte\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabel for map \"%s\": %lu byte\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabel for width: %lu byte\n" -@@ -3859,17 +3849,23 @@ msgstr "tilføj ny post \"%s\" af typen - msgid " (first)" - msgstr " (første)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "kan ikke Ã¥bne databasefil '%s': %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "kan ikke udføre stat() pÃ¥ fil '%s': %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "formindsker %s cache; tid %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "overvejer %s-post \"%s\", tidsgrænse %" -@@ -3955,154 +3951,217 @@ msgstr "kan ikke fÃ¥ sokkel til at lukke - msgid "cannot enable socket to accept connections: %s" - msgstr "kan ikke fÃ¥ sokkel til at acceptere forbindelser: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Kan ikke Ã¥bne katalog %s" -+ -+#: nscd/connections.c:1022 - #, fuzzy, c-format - #| msgid "no more memory for database '%s'" --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "Ikke mere hukommelse for database '%s'" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "giv adgang til FD %d, for %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "kan ikke hÃ¥ndtere gammel forespørgsel af version %d. Nuværende version er %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "forespørgsel fra %ld ikke behandlet da rettigheder mangler" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "forespørgsel fra \"%s\" [%ld] ikke behandlet da rettigheder mangler" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "forespørgsel ikke behandlet da rettigheder mangler" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "kan ikke udskrive resultat: '%s'" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "fejl ved indhentning af opkalders id: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "kan ikke Ã¥bne /proc/self/cmdline: %s, deaktiverer paranoiatilstand" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "kan ikke læse /proc/self/cmdline: %s, deaktiverer paranoiatilstand" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "kan ikke ændre til foregÃ¥ende UID: %s; deaktiverer paranoiatilstand" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "kan ikke ændre til foregÃ¥ende GID: %s; deaktiverer paranoiatilstand" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "kan ikke ændre til foregÃ¥ende arbejdskatalog: %s; deaktiverer paranoiatilstand" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "genstart mislykkedes: %s; deaktiverer paranoiatilstand" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "kan ikke ændre aktuelt arbejdskatalog to \"/\": %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "afkortet læsning ved læsning af forespørgsel: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "nøglelængde i forespørgsel for lang: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "afkortet læsning ved læsning af forespørgsels-nøgle: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: forespørgsel modtaget (version = %d) fra PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: forespørgsel modtaget (version = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "kunne ikke indlæse delt objekt '%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "deaktiverede inotify efter læsefejl %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "kan ikke initiere betingelsesvariabel" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "kunne ikke starte oprydningstrÃ¥d; afslutter" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "kunne ikke starte nogen arbejdstrÃ¥d; afslutter" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Kunne ikke køre nscd som bruger \"%s\"" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "indledende getgrouplist mislykkedes" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist mislykkedes" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups mislykkedes" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "afkortet skrivning i %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Har ikke fundet '%s' i gruppe-nærbuffer!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Genindlæser '%s' i gruppe-nærbuffer!" -@@ -4194,7 +4253,7 @@ msgstr "Brug separat buffer for hver bru - msgid "Name Service Cache Daemon." - msgstr "Dæmon for bufring af navnetjeneste" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "galt antal argumenter" -@@ -4228,7 +4287,7 @@ msgstr "kan ikke ændre aktuelt arbejdsk - msgid "Could not create log file" - msgstr "Kunne ikke oprette logfil" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "skrivning ufuldstændig" -@@ -4243,7 +4302,7 @@ msgstr "kan ikke læse ugyldiggørelses- - msgid "invalidation failed" - msgstr "ugyldiggørelse mislykkedes" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Kun 'root' har lov til at bruge dette flag!" -@@ -4325,35 +4384,35 @@ msgstr "kan ikke fÃ¥ fat pÃ¥ aktuelt arb - msgid "maximum file size for %s database too small" - msgstr "maksimal filstørrelse for \"%s\"-databasen er for lille" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "kan ikke udskrive statistik: '%s'" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "ja" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "nej" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Kun 'root' eller '%s' har lov til at bruge dette flag!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd kører ikke!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "kan ikke læse statistikdata" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4364,27 +4423,27 @@ msgstr "" - "\n" - "%15d fejlsøgningsniveau for server\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus kørende server\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus kørende server\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus kørende server\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus kørende server\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, fuzzy, c-format - #| msgid "" - #| "%15d current number of threads\n" -@@ -4406,7 +4465,7 @@ msgstr "" - "%15s paranoiatilstand aktiveret\n" - "%15lu genstart internt\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4472,87 +4531,87 @@ msgstr "Genindlæser '%s' i adgangskode- - msgid "Invalid numeric uid \"%s\"!" - msgstr "Ugyldig numerisk bruger-id (uid) \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Kunne ikke Ã¥bne en forbindelse til undersystemet for revision (audit): %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Kunne ikke sætte \"keep\"-kapabiliteter" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) mislykkedes" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Kunne ikke initiere fjernelse af kapabiliteter" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init mislykkedes" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Kunne ikke fjerne kapabiliteter" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc mislykkedes" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Kunne ikke fjerne \"keep\"-kapabiliteter" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Kunne ikke finde ud af om kernen understøtter SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Kunne ikke starte AVC-trÃ¥d" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Kunne ikke oprette AVC-lÃ¥s" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Kunne ikke starte AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Access Vector Cache (AVC) startet" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - #| msgid "Error getting context of nscd" - msgid "Error getting security class for nscd." - msgstr "Kunne ikke hente kontekst for nscd" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Kunne ikke hente kontekst for sokkelpartner (socket peer)" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Kunne ikke hente kontekst for nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Kunne ikke hente \"sid\" fra kontekst" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4616,16 +4675,16 @@ msgstr "Hent poster fra administrativ da - msgid "Enumeration not supported on %s\n" - msgstr "Enumeration er ikke understøttet pÃ¥ %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Ukendt databasenavn" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Understøttede databaser:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Ukendt database: %s\n" -@@ -4920,7 +4979,7 @@ msgstr "Ubalanceret ) eller \\)" - msgid "No previous regular expression" - msgstr "Intet foregÃ¥ende regulært udtryk" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parameter er nul eller ikke sat" - -@@ -7360,15 +7419,24 @@ msgstr "%s: Kan ikke oprette filkatalog - #~ msgid "xtrace: option \\`$1' requires an argument.\\n" - #~ msgstr "xtrace: flaget '$1' skal have et argument.\\n" - -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: ingen PLTREL fundet i objekt %s\n" -+ - #~ msgid "Can't open configuration file %s" - #~ msgstr "Kan ikke Ã¥bne konfigurationsfil %s" - -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "kan ikke oprette interne deskriptorer" -+ - #~ msgid "Try \\`memusage --help' for more information." - #~ msgstr "Prøv 'memusage --help' for mere information." - - #~ msgid "memusage: option \\`$1' requires an argument" - #~ msgstr "memusage: flaget \\\"$1\\\" behøver et argument" - -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "kan ikke udføre stat() pÃ¥ fil '%s': %s" -+ - #~ msgid "invalid value for 'reload-count': %u" - #~ msgstr "ugyldig værdi for 'reload-count': %u" - -Index: glibc-2.23/po/el.po -=================================================================== ---- glibc-2.23.orig/po/el.po -+++ glibc-2.23/po/el.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.2.3\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2001-05-21 19:20:31+0000\n" - "Last-Translator: Nikos Mavroyanopoulos \n" - "Language-Team: Greek \n" -@@ -145,10 +145,10 @@ msgstr "" - "[ΑΡΧΕΙΟ-ΕΞΟΔΟΥ [ΑΡΧΕΙΟ-ΕΙΣΟΔΟΥ]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -158,7 +158,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -176,7 +176,7 @@ msgstr "" - "ΚΑΠΟΙΟ ΣΥΓΚΕΚΡΙΜΕÎΟ ΣΚΟΠΟ.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -447,12 +447,12 @@ msgstr "αποτυχία αντιστοΠ- msgid "Renaming of %s to %s failed" - msgstr "αποτυχία αντιστοίχισης κεφαλίδων τμημάτων" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - #, fuzzy - msgid "cannot create scope list" - msgstr "αδυναμία ανάγνωσης από τον πελάτη" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - #, fuzzy - msgid "shared object not open" - msgstr "Μη έγκυÏο αντικείμενο για λειτουÏγία" -@@ -537,140 +537,140 @@ msgstr "αδυναμία δημιουÏÎ - msgid "cannot stat shared object" - msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - #, fuzzy - msgid "cannot open zero fill device" - msgstr "αδυναμία ανοίγματος αÏχείου εξόδου" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - #, fuzzy - msgid "cannot create shared object descriptor" - msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - #, fuzzy - msgid "cannot read file data" - msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - #, fuzzy - msgid "cannot handle TLS data" - msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - #, fuzzy - msgid "cannot allocate memory for program header" - msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - msgid "invalid caller" - msgstr "μη έγκυÏος χÏόνος αναπήδης" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - #, fuzzy - msgid "cannot change memory protections" - msgstr "αδυναμία επεξεÏγασίας των Ï€ÏοδιαγÏαφών σειÏάς" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - #, fuzzy - msgid "cannot enable executable stack as shared object requires" - msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - #| msgid "cannot create internal descriptor" - msgid "cannot close file descriptor" - msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - #, fuzzy - msgid "file too short" - msgstr "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ αÏχείο" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - #, fuzzy - msgid "invalid ELF header" - msgstr "μη έγκυÏος χÏόνος λήξης" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - #, fuzzy - msgid "internal error" - msgstr "ΕσωτεÏικό σφάλμα NIS" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - #, fuzzy - msgid "cannot open shared object file" - msgstr "αδυναμία ανοίγματος αÏχείου εξόδου" -@@ -685,13 +685,13 @@ msgstr "αποτυχία φόÏÏ„Ï‰ÏƒÎ·Ï - msgid "cannot map zero-fill pages" - msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - #, fuzzy - #| msgid "Authentication error" - msgid "relocation error" - msgstr "Σφάλμα πιστοποίησης" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -699,55 +699,45 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "" - --#: elf/dl-open.c:542 --#, fuzzy --msgid "cannot load any more object with static TLS" --msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "μη έγκυÏη κατάσταση για την dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - #| msgid "invalid mode for dlopen()" - msgid "invalid target namespace in dlmopen()" - msgstr "μη έγκυÏη κατάσταση για την dlopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - #| msgid "Cannot allocate memory" - msgid "cannot allocate memory in static TLS block" - msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - #, fuzzy - msgid "cannot restore segment prot after reloc" - msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - #, fuzzy - msgid "cannot apply additional memory protection after relocation" - msgstr "αδυναμία επεξεÏγασίας των Ï€ÏοδιαγÏαφών σειÏάς" -@@ -756,7 +746,7 @@ msgstr "αδυναμία επεξεÏγΠ- msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "Το RTLD_NEXT που χÏησιμοποιείται στον κώδικα δεν φοÏτώθηκε δυναμικά" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - #, fuzzy - #| msgid "cannot create internal descriptors" - msgid "cannot create TLS data structures" -@@ -906,7 +896,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κατάλογος %s: %s\n" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, fuzzy, c-format - msgid "Input file %s not found.\n" - msgstr "το αÏχείο πίνακα ÏεποÏτοÏίου `%s' δε βÏέθηκε" -@@ -1041,7 +1031,7 @@ msgstr "αδÏνατη η απελευθ - msgid "No such file or directory" - msgstr "Δεν υπάÏχει τέτοιο αÏχείο ή κατάλογος" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "δεν είναι κανονικό αÏχείο" - -@@ -1089,68 +1079,73 @@ msgstr "αδυναμία ανάγνωσΠ- msgid "cannot read program interpreter" - msgstr "αδυναμία ανάγνωσης καταλόγου locale `%s'" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - msgid "cannot read link map" - msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - msgid "cannot read object name" - msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - msgid "invalid process ID '%s'" - msgstr "μη έγκυÏο όνομα μήνα" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "αδυναμία ανοίγματος του `%s'" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "αδυναμία ανοίγματος του `%s'" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - msgid "cannot prepare reading %s/task" - msgstr "αδυναμία ανάγνωσης από τον πελάτη" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - msgid "invalid thread ID '%s'" - msgstr "μη έγκυÏος χÏόνος λήξης" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot find C preprocessor: %s \n" - msgid "cannot attach to process %lu" - msgstr "δε βÏέθηκε ο Ï€ÏοεπεξεÏγαστής C: %s \n" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1185,27 +1180,27 @@ msgstr "" - msgid "more than one dynamic segment\n" - msgstr "" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, fuzzy, c-format - msgid "Cannot fstat file %s.\n" - msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Αδυναμία μεταφοÏάς στη μνήμη (mmap) του αÏχείου %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "" -@@ -1337,10 +1332,10 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "αδυναμία δημιουÏγίας εσωτεÏικών πεÏιγÏαφέων" -+msgid "cannot create internal descriptor" -+msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" - - #: elf/sprof.c:554 - #, c-format -@@ -1410,11 +1405,6 @@ msgstr "αποτυχία στη λειτ - msgid "error while closing the profiling data file" - msgstr "σφάλμα κατά το κλείσιμο του αÏχείου δεδομένων Ï€Ïοφίλ" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1681,27 +1671,27 @@ msgstr "socket: αποτυχία Ï€ÏÏ‰Ï - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "το lstat απέτυχε" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "αδυναμία ανοίγματος" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "το fstat απέτυχε" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "κακός ιδιοκτήτης" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "το αÏχείο είναι εγγÏάψιμο και από άλλους εκτός του ιδιοκτήτη" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "σθεναÏά συνδεδεμένο κάπου" - -@@ -1826,8 +1816,8 @@ msgid "no symbolic name given for end of - msgstr "δεν δώθηκε συμβολικό όνομα για το τέλος πεδίου" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1853,8 +1843,8 @@ msgid "%s: error in state machine" - msgstr "%s: Σφάλμα στο μηχανισμό κατάστασης" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1875,7 +1865,7 @@ msgstr "άγνωστος χαÏÎ±ÎºÏ„Î®Ï - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - #, fuzzy - msgid "invalid names for character range" -@@ -1900,8 +1890,8 @@ msgstr "το επάνω ÏŒÏιο στο - msgid "resulting bytes for range not representable." - msgstr "" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1965,7 +1955,7 @@ msgid "%s: numeric country code `%d' not - msgstr "" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1987,8 +1977,8 @@ msgstr "" - msgid "%s: unknown character in field `%s'" - msgstr "άγνωστος χαÏακτήÏας `%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1997,12 +1987,12 @@ msgstr "άγνωστος χαÏÎ±ÎºÏ„Î®Ï - msgid "%s: incomplete `END' line" - msgstr "" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -2012,480 +2002,480 @@ msgstr "" - msgid "%s: syntax error" - msgstr "" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: οι κατευθÏνσεις ταξινόμησης `forward' και `backward' είναι αμοιβαία αποκλειώμενες" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, fuzzy, c-format - msgid "%s: empty weight string not allowed" - msgstr "άδεια βαÏÏτητα ονόματος: γÏαμμή αγνοήθηκε" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, fuzzy, c-format - msgid "%s: too many values" - msgstr "%s: ΠάÏα πολλά οÏίσματα\n" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, fuzzy, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, fuzzy, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "Τα <%s> και <%s> είναι μη αποδεκτά ονόματα για ÏŒÏιο" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, fuzzy, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: το `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, fuzzy, c-format - msgid "symbol `%s' not defined" - msgstr "άγνωστο σÏμβολο `%.*s': γÏαμμή αγνοήθηκε" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "κανένας οÏισμός του `UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - #| msgid "Operation not supported" - msgid "%s: nested conditionals not supported" - msgstr "Η λειτουÏγία δεν υποστηÏίζεται" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: More than one -l option specified\n" - msgid "%s: more than one 'else'" - msgstr "%s: ΠεÏισσότεÏες από μία -l επιλογές καθοÏίστηκαν\n" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, fuzzy, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, fuzzy, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "συντακτικό σφάλμα στον οÏισμό μετατÏοπής χαÏακτήÏων" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "συντακτικό σφάλμα στον οÏισμό μετατÏοπής χαÏακτήÏων" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, fuzzy, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "άγνωστο σÏμβολο `%.*s': γÏαμμή αγνοήθηκε" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, fuzzy, c-format - msgid "duplicate definition of script `%s'" - msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "άγνωστο σετ `%s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, fuzzy, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, fuzzy, c-format - msgid "No character set name specified in charmap" - msgstr "ο χαÏακτήÏας δεν οÏίστηκε στον χάÏτη χαÏακτήÏων" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, fuzzy, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' Ï€Ïέπει να είναι στην κλάση `%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, fuzzy, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' δεν Ï€Ïέπει να είναι στην κλάση `%s'" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "εσωτεÏικό σφάλμα στο %s, γÏαμμή %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' Ï€Ïέπει να είναι στην κλάση `%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "ο χαÏακτήÏας '%s' στην κλάση `%s' δεν Ï€Ïέπει να είναι στην κλάση `%s'" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "Ο χαÏακτήÏας δεν είναι στην κλάση `%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "Ο χαÏακτήÏας δεν Ï€Ïέπει να είναι στην κλάση `%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "ο χαÏακτήÏας δεν οÏίστηκε στον χάÏτη χαÏακτήÏων" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "η κλάση χαÏακτήÏων `%s' οÏίστηκε ήδη" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, fuzzy, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "ÏŒÏιο υλοποίησης: δεν επιτÏέπονται πάνω από %d κλάσεις χαÏακτήÏων" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "ÏŒÏιο υλοποίησης: δεν επιτÏέπονται πάνω από %d χάÏτες χαÏακτήÏων" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - #, fuzzy - msgid "premature end of `translit_ignore' definition" - msgstr "ΠÏόωÏο τέλος της κανονικής έκφÏασης" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - #, fuzzy - msgid "syntax error" - msgstr "Σφάλμα στον δίαυλο(bus)" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, fuzzy, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "συντακτικό σφάλμα στον οÏισμό της νέας κλάσης χαÏακτήÏων" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, fuzzy, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "συντακτικό σφάλμα στον οÏισμό του νέο χάÏτη χαÏακτήÏων" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, fuzzy, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: διπλός οÏισμός `default_missing'" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, fuzzy, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "ο χαÏακτήÏας `%s' δεν οÏίστηκε ενώ χÏειάζεται σαν Ï€ÏοκαθοÏισμένη τιμή" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, fuzzy, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: αδÏνατο το άνοιγμα του %s: %m\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -3924,17 +3914,23 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "αδυναμία ανοίγματος αÏχείου βάσεως δεδομένων `%s': %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -4029,159 +4025,220 @@ msgstr "αδÏνατη η ενεÏγοπ - msgid "cannot enable socket to accept connections: %s" - msgstr "αδÏνατη η ενεÏγοποίηση υποδοχής για αποδοχή συνδέσεων: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 - #, c-format --msgid "register trace file %s for database %s" -+msgid "disabled inotify-based monitoring for directory `%s': %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κατάλογος %s: %s\n" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "δε μποÏεί να εξυπηÏετηθεί η αίτηση παλαιάς έκδοσης %d, η Ï„Ïέχουσα έκδοση είναι %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "αδυναμία εγγÏαφής αποτελέσματος: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, fuzzy, c-format - #| msgid "error getting callers id: %s" - msgid "error getting caller's id: %s" - msgstr "σφάλμα στη λήψη της ταυτότητας Î±Ï…Ï„Î¿Ï Ï€Î¿Ï… κάλεσε: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "σÏντομη ανάγνωση κατά την αίτηση ανάγνωσης: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, fuzzy, c-format - msgid "key length in request too long: %d" - msgstr "το μήκος ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î·Î½ αίτηση είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿: %Zd" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "σÏντομη ανάγνωση κατά την ανάγνωση του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Î¯Ï„Î·ÏƒÎ·Ï‚: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, fuzzy, c-format - #| msgid "handle_request: request received (Version = %d)" - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: λήψη αίτησης (Έκδοση = %d)" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: λήψη αίτησης (Έκδοση = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - #, fuzzy - #| msgid "lstat failed" - msgid "getgrouplist failed" - msgstr "το lstat απέτυχε" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - #, fuzzy - #| msgid "fstat failed" - msgid "setgroups failed" - msgstr "το fstat απέτυχε" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "σÏντομη ανάγνωση στο %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη ομάδας!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, fuzzy, c-format - #| msgid "Haven't found \"%s\" in group cache!" - msgid "Reloading \"%s\" in group cache!" -@@ -4277,7 +4334,7 @@ msgstr "ΧÏήση ξεχωÏιστής - msgid "Name Service Cache Daemon." - msgstr "Λανθάνουσα ΥπηÏεσία ΕξυπηÏέτησης Αντιστοιχιών Ονομάτων." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "λάθος αÏιθμός παÏαμέτÏων" -@@ -4314,7 +4371,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "ΑδÏνατη η δημιουÏγία αÏχείου καταγÏαφών \"%s\"" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "μη πλήÏης εγγÏαφή" -@@ -4330,7 +4387,7 @@ msgstr "αδÏνατη η φόÏτωση - msgid "invalidation failed" - msgstr "Η Ï„Ïοποποίηση απέτυχε" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Μόνο ο διαχειÏιστής επιτÏέπετε να χÏησιμοποιήσει αυτήν την επιλογή!" -@@ -4413,36 +4470,36 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "αδυναμία εγγÏαφής στατιστικών: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, fuzzy, c-format - #| msgid "Only root is allowed to use this option!" - msgid "Only root or %s is allowed to use this option!" - msgstr "Μόνο ο διαχειÏιστής επιτÏέπετε να χÏησιμοποιήσει αυτήν την επιλογή!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "το nscd δεν εκτελείτε!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "αδÏνατη η ανάγνωση δεδομένων στατιστικών" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4453,27 +4510,27 @@ msgstr "" - "\n" - "%15d επίπεδο εκσφαλμάτωσης εξυπηÏετητή\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4484,7 +4541,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - #| msgid "" - #| "\n" -@@ -4555,93 +4612,93 @@ msgstr "Δε βÏέθηκε το \"%s\" - msgid "Invalid numeric uid \"%s\"!" - msgstr "" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - #| msgid "fstat failed" - msgid "cap_init failed" - msgstr "το fstat απέτυχε" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - #| msgid "cache_set: victim alloc failed" - msgid "cap_set_proc failed" - msgstr "cache_set: η εκχώÏηση θÏματος απέτυχε" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - #| msgid "Unable to create callback" - msgid "Failed to create AVC lock" - msgstr "ΑδÏνατη η δημιουÏγία διαδικασίας ανάδÏασης" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - #, fuzzy - #| msgid "error getting callers id: %s" - msgid "Error getting context of nscd" - msgstr "σφάλμα στη λήψη της ταυτότητας Î±Ï…Ï„Î¿Ï Ï€Î¿Ï… κάλεσε: %s" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4698,17 +4755,17 @@ msgstr "getent - λήψη ÎºÎ±Ï„Î±Ï‡Ï‰Ï - msgid "Enumeration not supported on %s\n" - msgstr "Η λειτουÏγία δεν υποστηÏίζεται" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - #| msgid "Unknown database: %s\n" - msgid "Unknown database name" - msgstr "Άγνωστη βάση δεδομένων: %s\n" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Άγνωστη βάση δεδομένων: %s\n" -@@ -5003,7 +5060,7 @@ msgstr "ΑταίÏιαστο ) ή \\)" - msgid "No previous regular expression" - msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -@@ -7743,6 +7800,13 @@ msgstr "%s: Δεν είναι δυνατ - #~ msgid "broadcast: ioctl (get interface flags)" - #~ msgstr "broadcast: ioctl (λήψη ενδείξεις υποδοχής)" - -+#, fuzzy -+#~ msgid "cannot load shared object file" -+#~ msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'" -+ -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s" -+ - #~ msgid "character `%s' not defined while needed as default value" - #~ msgstr "ο χαÏακτήÏας `%s' δεν οÏίστηκε ενώ χÏειάζεται σαν Ï€ÏοκαθοÏισμένη τιμή" - -Index: glibc-2.23/po/eo.po -=================================================================== ---- glibc-2.23.orig/po/eo.po -+++ glibc-2.23/po/eo.po -@@ -9,7 +9,7 @@ msgid "" - msgstr "" - "Project-Id-Version: libc 2.19.90\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2014-08-31 23:02+0200\n" - "Last-Translator: Benno Schulenberg \n" - "Language-Team: Esperanto \n" -@@ -149,10 +149,10 @@ msgstr "" - "[ELIGDOSIERO [ENIGDOSIERO...]]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -164,7 +164,7 @@ msgstr "" - " %s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -181,7 +181,7 @@ msgstr "" - "DoniÄas NENIA GARANTIO; eĉ ne por KOMERCKVALITO aÅ­ ADEKVATECO POR IU CELO.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -427,11 +427,11 @@ msgstr "Malsukcesis ÅanÄi la atingperm - msgid "Renaming of %s to %s failed" - msgstr "Malsukcesis alinomi %s al %s" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "ne eblas krei ampleksliston" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "komuna objekto ne estas malferma" - -@@ -504,127 +504,127 @@ msgstr "" - msgid "cannot stat shared object" - msgstr "malsukcesis eltrovi statinformon pri komuna objekto" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "ne eblas legi dosierdatumojn" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "nevalida vokanto" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "ne eblas fermi dosierpriaĵon" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "dosiero tro mallongas" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "nevalida ELF-ĉapo" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "**interna programmiso**" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "malÄusta ELF-klaso: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "malÄusta ELF-klaso: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "ne eblas malfermi komunan objektdosieron" - -@@ -636,11 +636,11 @@ msgstr "" - msgid "cannot map zero-fill pages" - msgstr "" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -648,49 +648,40 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "nevalida moduso por 'dlopen()'" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "" - -@@ -698,7 +689,7 @@ msgstr "" - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "" - -@@ -845,7 +836,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "ne eblas malfermi dosierujon %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Eniga dosiero %s ne troviÄas.\n" -@@ -969,7 +960,7 @@ msgstr "mankas dosieraj argumentoj" - msgid "No such file or directory" - msgstr "Dosiero aÅ­ dosierujo ne ekzistas" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "ne estas normala dosiero" - -@@ -1014,65 +1005,71 @@ msgstr "ne eblas legi 'r_debug'" - msgid "cannot read program interpreter" - msgstr "ne eblas legi programinterpretilon" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "ne eblas legi ligojmapon" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "ne eblas legi objektnomon" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "unable to allocate buffer for input" -+msgid "cannot allocate buffer for object name" -+msgstr "mankas sufiĉa memoro por eniga bufro" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "nevalida indiko de procezo: '%s'" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "ne eblas malfermi %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "ne eblas malfermi %s/task" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "ne eblas prepari legado de %s/task" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "ne eblas ekhavi informon pri procezo %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "procezo %lu ne estas ELF-programo" -@@ -1107,27 +1104,27 @@ msgstr "" - msgid "more than one dynamic segment\n" - msgstr "pli ol unu dinamika segmento\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Malsukcesis eltrovi statinformon pri %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Dosiero %s vakas; ne kontroliÄas." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Dosiero %s tro malgrandas; ne kontroliÄas." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Malsukcesis meti tutan dosieron %s en memoro.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "" -@@ -1246,9 +1243,9 @@ msgstr "" - msgid "failed to load shared object `%s'" - msgstr "" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "" - - #: elf/sprof.c:554 -@@ -1316,11 +1313,6 @@ msgstr "" - msgid "error while closing the profiling data file" - msgstr "" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1570,27 +1562,27 @@ msgstr "" - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "malsukcesis eltrovi statinformon" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "ne eblas malfermi" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "malsukcesis eltrovi statinformon" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "" - -@@ -1710,8 +1702,8 @@ msgid "no symbolic name given for end of - msgstr "ne indikatas simbola nomo por fino de gamo" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1737,8 +1729,8 @@ msgid "%s: error in state machine" - msgstr "%s: **interna programmiso** en statmaÅino" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1759,7 +1751,7 @@ msgstr "nekonata signo «%s»" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nevalidaj nomoj por signogamo" -@@ -1783,8 +1775,8 @@ msgstr "suba limo en gamo pli grandas ol - msgid "resulting bytes for range not representable." - msgstr "" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1848,7 +1840,7 @@ msgid "%s: numeric country code `%d' not - msgstr "" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1870,8 +1862,8 @@ msgstr "" - msgid "%s: unknown character in field `%s'" - msgstr "" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1880,12 +1872,12 @@ msgstr "" - msgid "%s: incomplete `END' line" - msgstr "" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1895,476 +1887,476 @@ msgstr "" - msgid "%s: syntax error" - msgstr "%s: sintakseraro" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "simbolo «%s» havas la saman kodon kiel" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "simbolo «%s»" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: pli ol unu 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "**interna programmiso** en %s, linio %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "trofrua fino de difino de 'translit_ignore'" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "sintakseraro" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -3744,17 +3736,23 @@ msgstr "aldoni novan eron \"%s\" de tipo - msgid " (first)" - msgstr " (unua)" - --#: nscd/cache.c:285 nscd/connections.c:1000 --#, c-format --msgid "cannot stat() file `%s': %s" -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "malsukcesis eltrovi statinformon pri dosiero '%s': %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "pritondo de %s-kaÅmemoro; tempo %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "konsidero de %s-ero \"%s\", templimo %" -@@ -3840,153 +3838,215 @@ msgstr "" - msgid "cannot enable socket to accept connections: %s" - msgstr "" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "ne eblas malfermi dosierujon %s" -+ -+#: nscd/connections.c:1022 -+#, fuzzy, c-format -+#| msgid "maximum file size for %s database too small" -+msgid "monitoring file %s for database %s" -+msgstr "tro malgrandas maksimuma dosiergrando por %s-datumbazo" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "ne eblas skribi rezulton: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "ignored inotify event for `%s` (file exists)" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "" -@@ -4074,7 +4134,7 @@ msgstr "uzi apartan kaÅmemoron por ĉiu - msgid "Name Service Cache Daemon." - msgstr "Nomserva kaÅmemora servo." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "malÄusta nombro de argumentoj" -@@ -4107,7 +4167,7 @@ msgstr "ne eblas ÅanÄi aktualan dosier - msgid "Could not create log file" - msgstr "ne eblas krei protokolan dosieron" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "skribo ne kompletiÄis" -@@ -4122,7 +4182,7 @@ msgstr "ne eblas legi malvalidigan konse - msgid "invalidation failed" - msgstr "malsukcesis malvalidigo" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Nur sistemestro rajtas uzi ĉi tiun opcion!" -@@ -4207,35 +4267,35 @@ msgstr "ne eblas eltrovi aktualan dosier - msgid "maximum file size for %s database too small" - msgstr "tro malgrandas maksimuma dosiergrando por %s-datumbazo" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "ne eblas skribi statistikojn: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "jes" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "ne" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Nur sistemestro aÅ­ %s rajtas uzi ĉi tiun opcion!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "'nscd' ne rulas!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "ne eblas legi statistikajn datumojn" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4243,27 +4303,27 @@ msgid "" - "%15d server debug level\n" - msgstr "" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4274,7 +4334,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4317,85 +4377,85 @@ msgstr "ReÅargo de \"%s\" en pasvortan - msgid "Invalid numeric uid \"%s\"!" - msgstr "Nevalida numera UID \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4447,16 +4507,16 @@ msgstr "Prenas erojn el administrativa d - msgid "Enumeration not supported on %s\n" - msgstr "listigo ne subtenatas en dosiero '%s'\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "nekonata datumbaznomo" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Subtenataj datumbazoj:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "nekonata datumbazo: %s\n" -@@ -4729,7 +4789,7 @@ msgstr "Senpara ) aÅ­ \\)" - msgid "No previous regular expression" - msgstr "Mankas antaÅ­a regulesprimo" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -Index: glibc-2.23/po/es.po -=================================================================== ---- glibc-2.23.orig/po/es.po -+++ glibc-2.23/po/es.po -@@ -8,7 +8,7 @@ msgid "" - msgstr "" - "Project-Id-Version: GNU libc 2.19.90\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2014-08-25 16:18-0700\n" - "Last-Translator: Santiago Vila Doncel \n" - "Language-Team: Spanish \n" -@@ -164,10 +164,10 @@ msgstr "" - "[FICHERO-SALIDA [FICHERO-ENTRADA]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -179,7 +179,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -197,7 +197,7 @@ msgstr "" - "FIN DETERMINADO.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -457,11 +457,11 @@ msgstr "El cambio de los derechos de acc - msgid "Renaming of %s to %s failed" - msgstr "Falló el renombramiento de %s a %s" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "no se puede crear la lista de ámbito" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "el objeto compartido no está abierto" - -@@ -541,127 +541,127 @@ msgstr "no se puede crear la matriz de l - msgid "cannot stat shared object" - msgstr "no se puede efectuar `stat' sobre el objeto compartido" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "no se puede abrir el dispositivo de `zero fill'" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "no se puede crear el descriptor del objeto compartido" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "no se pueden leer los datos del fichero" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "El alineamiento de la orden de carga ELF no está alineada a la página" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "La dirección/desplazamiento de la orden de carga ELF no está bien alineada" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "no se pueden crear las estructuras de datos TLS para el hilo inicial" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "no se pueden manejar los datos de TLS" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "el fichero objeto no tiene segmentos cargables" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "no se puede cargar el ejecutable dinámicamente" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "el fichero objeto no tiene sección dinámica" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "no se puede efectuar dlopen() sobre el objeto compartido" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "no se puede asignar memoria para la cabecera del programa" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "llamante inválido" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "no se pueden cambiar las protecciones de memoria" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "no se puede activar la pila ejecutable tal y como el objeto compartido necesita" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "no se puede cerrar el descriptor de fichero" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "fichero demasiado corto" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "cabecera ELF inválida" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "La codificación de los datos del fichero ELF no es `big-endian'" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "La codificación de los datos del fichero ELF no es `little-endian'" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "La identificación de versión del fichero ELF no encaja con la actual" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ABI del OS del fichero ELF inválida" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "Versión de ABI del fichero ELF inválida" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "relleno con no ceros en e_ident" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "error interno" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "La versión del fichero ELF no coincide con la actual" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "solamente pueden cargarse ET_DYN y ET_EXEC" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "El `phentsize' del fichero ELF no es el tamaño esperado" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "clase ELF errónea: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "clase ELF errónea: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "no se puede abrir el fichero del objeto compartido" - -@@ -673,11 +673,11 @@ msgstr "fallo al asignar un segmento del - msgid "cannot map zero-fill pages" - msgstr "no se pueden asignar páginas de tipo `zero-fill'" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "error de relocalización" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "error de búsqueda de símbolo" - -@@ -685,50 +685,41 @@ msgstr "error de búsqueda de símbolo" - msgid "cannot extend global scope" - msgstr "no se puede extender el ámbito global" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "¡El contador de generaciones TLS ha vuelto a cero! Por favor envíe un informe." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "no se puede cargar ningún objeto más con TLS estático" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "modo inválido para dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "no hay más espacios de nombres disponibles para dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "espacio de nombres objetivo inválido para dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "No se pudo asignar memoria en el bloque TLS estático" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "no se puede hacer el segmento escribible para su relocalización" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s no se encontró ningún PLTREL en el objeto %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: memoria agotada para almacenar los resultados de relocalización para %s\n" - - # Se admiten sugerencias. sv --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "no se puede restaurar el `prot' del segmento después de la relocalización" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "no se pueden aplicar protecciones de memoria adicionales después de relocalizar" - -@@ -736,7 +727,7 @@ msgstr "no se pueden aplicar proteccione - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "Se ha usado RTLD_NEXT en una parte del código que no se cargó dinámicamente" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "no se pueden crear las estructuras de datos TLS" - -@@ -884,7 +875,7 @@ msgstr "No se creó el enlace ya que no - msgid "Can't open directory %s" - msgstr "No se puede abrir el directorio %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "No se encontró el fichero de entrada %s.\n" -@@ -1016,7 +1007,7 @@ msgid "No such file or directory" - msgstr "No existe el fichero o el directorio" - - # Antes decía: .rhosts no es un fichero regular --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "no es un fichero regular" - -@@ -1061,65 +1052,71 @@ msgstr "no se puede leer r_debug" - msgid "cannot read program interpreter" - msgstr "no se puede leer el intérprete del programa" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "no se puede leer la asignación de enlace" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "no se puede leer el nombre del objeto" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "no se puede asignar memoria para la cabecera del programa" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "Lista los objetos compartidos dinámicos cargados en este proceso." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Se requiere exactamente un parámetro con el ID de proceso.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "ID de proceso inválido '%s'" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "no se puede abrir %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "no se puede abrir %s/tarea" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "no se puede preparar la lectura de %s/tarea" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "ID de hilo inválido '%s'" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "no se puede asociar al proceso %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "no se puede obtener información sobre el proceso %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "el proceso %lu no es un programa ELF" -@@ -1154,27 +1151,27 @@ msgstr "%s no es un fichero `shared obje - msgid "more than one dynamic segment\n" - msgstr "más de un segmento dinámico\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "No se puede efectuar `fstat' sobre el fichero %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "El fichero %s está vacío, no se comprueba." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "El fichero %s es demasiado pequeño, no se comprueba." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "No se puede efectuar `mmap' sobre el fichero %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s no es un fichero ELF - tiene los bytes mágicos equivocados en el comienzo.\n" -@@ -1326,10 +1323,10 @@ msgstr "SHOBJ [DATOSPROF]" - msgid "failed to load shared object `%s'" - msgstr "fallo al cargar el objeto compartido `%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "no se pueden crear descriptores internos" -+msgid "cannot create internal descriptor" -+msgstr "no se puede crear un descriptor interno" - - #: elf/sprof.c:554 - #, c-format -@@ -1401,11 +1398,6 @@ msgstr "no se pudo hacer mmap con el fic - msgid "error while closing the profiling data file" - msgstr "error al cerrar el fichero de datos de `profiling'" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "no se puede crear un descriptor interno" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1665,30 +1657,30 @@ msgstr "rcmd: %s: lectura insuficiente" - - # ## Lo mismo con lstat. sv - # Antes decía: No se pudo obtener información (lstat) del fichero .rhosts --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat ha fallado" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "no se puede abrir" - - # ## Sugerencia: Añadir (fstat) después de información. sv - # Antes decía: No se pudo obtener información (fstat) del fichero .rhosts --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat ha fallado" - - # Antes decía: El propietario del fichero .rhosts no es válido --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "propietario incorrecto" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "puede ser modificado por otros además del propietario" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "hay un enlace duro en alguna parte" - -@@ -1812,8 +1804,8 @@ msgid "no symbolic name given for end of - msgstr "no se ha especificado ningún nombre simbólico para el final del rango" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1840,8 +1832,8 @@ msgid "%s: error in state machine" - msgstr "%s: error en la máquina de estados" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1864,7 +1856,7 @@ msgstr "" - "el número de bytes para la sucesión de bytes de comienzo y final del rango\n" - "no es el mismo: %d vs %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nombres inválidos para el rango de caracteres" -@@ -1886,8 +1878,8 @@ msgstr "el límite superior del rango es - msgid "resulting bytes for range not representable." - msgstr "los bytes resultantes para el rango no son representables." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1953,7 +1945,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: el código numérico de país `%d' no es válido" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1975,8 +1967,8 @@ msgstr "%s: el campo `%s' ha sido declar - msgid "%s: unknown character in field `%s'" - msgstr "%s: carácter desconocido en el campo `%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1985,12 +1977,12 @@ msgstr "%s: carácter desconocido en el - msgid "%s: incomplete `END' line" - msgstr "%s: línea `END' incompleta" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -2000,463 +1992,463 @@ msgstr "%s: línea `END' incompleta" - msgid "%s: syntax error" - msgstr "%s: error de sintaxis" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' ya está definido en la tabla de caracteres" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' ya está definido en el repertorio" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' ya está definido como símbolo de ordenación" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' ya está definido como elemento de ordenación" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: `forward' y `backward' se excluyen mutuamente" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: `%s' mencionado más de una vez en la definición del peso %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: demasiadas reglas; la primera entrada solamente tenía %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: no hay suficientes reglas de ordenación" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: no se permite una cadena de peso vacía" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: los pesos deben usar el mismo símbolo de elipsis que el nombre" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: demasiados valores" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "el orden para `%.*s' ya está definido en %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: los símbolos de comienzo y de final de un rango deben representar caracteres" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "" - "%s: los órdenes de byte de los caracteres primero y último deben tener\n" - "la misma longitud" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - "%s: el orden de byte del primer carácter del rango no es menor que\n" - "el del último carácter" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: el rango simbólico de la elipsis no debe seguir directamente a `order_start'" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: el rango simbólico de la elipsis no debe estar directamente seguido por `order_end'" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' y `%.*s' no son nombres válidos para el rango simbólico" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: el orden para `%.*s' ya está definido en %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' debe ser un carácter" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `position' debe utilizarse para un nivel específico en todas las secciones o en ninguna" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "el símbolo `%s' no está definido" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "el símbolo `%s' tiene la misma codificación que" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "el símbolo `%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "no hay definición para `UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "demasiados errores; abandono" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: no se admiten condicionales anidados" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: más de un 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: definición duplicada de `%s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: definición duplicada de la sección `%s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: carácter desconocido en el nombre de un símbolo de ordenación" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: carácter desconocido en el nombre de definición equivalente" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: carácter desconocido en el valor de definición equivalente" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: símbolo desconocido `%s' en la definición equivalente" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "error al añadir símbolo de ordenación equivalente" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "definición duplicada de `script' `%s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: nombre de sección desconocido `%.*s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: hay varias definiciones de orden para la sección `%s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: número inválido de reglas de ordenación" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: varias definiciones de orden para la sección sin nombre" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: falta la palabra clave `order_end'" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: el orden para el símbolo de ordenación %.*s todavía no está definido" - - # FIXME: ¿Por qué este y el siguiente no son iguales? --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: el orden para el elemento de ordenación %.*s todavía no está definido" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: no se puede reordenar después de %.*s: símbolo desconocido" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: falta la palabra clave `reorder-end'" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: la sección `%.*s' es desconocida" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: símbolo erróneo <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: no puede tener `%s' como final de un rango de elipsis" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: no se permite una descripción de categoría vacía" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: falta la palabra clave `reorder-sections-end'" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: '%s' sin el 'ifdef' o 'ifndef' correspondiente" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'endif' sin el 'ifdef' o 'ifndef' correspondiente" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "" - "No se ha especificado ningún nombre de conjunto de caracteres en la tabla\n" - "de caracteres" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "el carácter L'\\u%0*x' en la clase `%s' debe estar en la clase `%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "el carácter L'\\u%0*x' en la clase `%s' no debe estar en la clase `%s" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "error interno en %s, línea %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "el carácter '%s' en la clase `%s' debe estar en la clase `%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "el carácter '%s' en la clase `%s' no debe estar en la clase `%s" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "El carácter no está en la clase `%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "El carácter no debe estar en la clase `%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "el carácter no está definido en la tabla de caracteres" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "la categoría `digit' no tiene entradas en grupos de diez" - - # FIXME: El original no se entiende. ¿Es gramaticalmente correcto? sv --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - "no hay ningún dígito de entrada definido y ninguno de los nombres estándar\n" - "en el conjunto de caracteres" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - "no todos los caracteres usados en `outdigit' están disponibles en la tabla\n" - "de caracteres" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "no todos los caracteres usados en `outdigit' están disponibles en el repertorio" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "la clase de carácter `%s' ya fue definida" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "límite de la implementación: no se permiten más de %Zd clases de caracteres" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "la tabla de caracteres `%s' ya está definida" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "límite de la implementación: no se permiten más de %d tablas de caracteres" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: el campo `%s' no contiene exactamente diez entradas" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "el valor `to' del rango es más pequeño que el valor `from' " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "los caracteres de comienzo y final del rango debe tener la misma longitud" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "el valor `to' de la sucesión de caracteres es más pequeño que el valor `from'" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "Fin no esperado de la definición `translit_ignore'" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "error de sintaxis" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: error de sintaxis en la definición de una nueva clase de caracteres" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: error de sintaxis en la definición de un nueva tabla de caracteres" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "el rango de la elipsis debe estar marcada mediante dos operandos del mismo tipo" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "con valores de rango nombre simbólico la elipsis absoluta `...' no debe usarse" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "con valores de rango UCS se debe utilizar la elipsis simbólica hexadecimal `..'" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "con valores de rango código de caracteres se debe utilizar la elipsis absoluta `...'" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "definición duplicada para la asignación `%s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: la sección `translit_start' no termina con `translit_end'" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: definición `default_missing' duplicada" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "aquí estaba la definición anterior" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: no se ha encontrado ninguna definición de `default_missing' representable" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: el carácter `%s' no está definido cuando se necesitó como valor predeterminado" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: el carácter `%s' en la tabla de caracteres no es representable con un byte" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" -@@ -2464,7 +2456,7 @@ msgstr "" - "con un byte" - - # FIXME: Lo mismo de antes. --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" -@@ -2472,22 +2464,22 @@ msgstr "" - "en el conjunto de caracteres" - - # Pregunta: ¿De verdad existe transliteración en español? sv --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: los datos de transliteración del local `%s' no están disponibles" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabla para la clase \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabla para la asignación \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabla para el ancho: %lu bytes\n" -@@ -3948,17 +3940,23 @@ msgstr "añade nueva entrada \"%s\" de t - msgid " (first)" - msgstr " (primero)" - --#: nscd/cache.c:285 nscd/connections.c:1000 --#, c-format --msgid "cannot stat() file `%s': %s" -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "no se puede ejecutar stat() sobre el fichero `%s': %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "limpiando %s caché; tiempo %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "considerando la entrada %s \"%s\", tiempo límite %" -@@ -4044,155 +4042,219 @@ msgstr "no se puede establecer el `socke - msgid "cannot enable socket to accept connections: %s" - msgstr "no se puede activar el `socket' para aceptar conexiones: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 - #, c-format --msgid "register trace file %s for database %s" -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "No se puede abrir el directorio %s" -+ -+#: nscd/connections.c:1022 -+#, fuzzy, c-format -+#| msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "registra el fichero de seguimiento %s para la base de datos %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "proporciona acceso al descriptor de fichero %d, para %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - "no se pueden manejar peticiones de la versión %d, la versión\n" - "actual es %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "la petición de %ld no ha sido atendida por falta de permisos" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "la petición de '%s' [%ld] no ha sido atendida por falta de permisos" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "la petición no ha sido atendida por falta de permisos" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "no se puede escribir el resultado: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "error al obtener el id de los llamantes: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "no se puede abrir /proc/self/cmdline: %s; se desactiva el modo paranoia" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "no se puede leer /proc/self/cmdline: %s; se desactiva el modo paranoia" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "no se puede cambiar al UID antiguo: %s; se desactiva el modo paranoia" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "no se puede cambiar al GID antiguo: %s; se desactiva el modo paranoia" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "no se puede cambiar al directorio de trabajo antiguo: %s; se desactiva el modo paranoia" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "falló la re-ejecución: %s; se desactiva el modo paranoia" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "no se puede cambiar el directorio de trabajo a \"/\": %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "lectura insuficiente mientras se leía la petición: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "la longitud de la clave en la petición es demasiado larga: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "se acabaron los datos mientras se leía la clave de petición: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: petición recibida (Versión = %d) del PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: petición recibida (Versión = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "fallo al cargar el objeto compartido `%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "se desactiva `inotify' después de un error de lectura %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "no se pudo inicializar la variable condicional" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "no se pudo iniciar el hilo de limpieza; terminando" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "no se pudo iniciar ningún hilo de trabajo; terminando" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Fallo al ejecutar nscd como usuario `%s'" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "falló el `getgrouplist' inicial" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "falló `getgrouplist'" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "falló `setgroups'" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "escritura insuficiente en %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "No se ha encontrado \"%s\" en el caché de grupos" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Recargando \"%s\" en el caché de grupos" -@@ -4280,7 +4342,7 @@ msgstr "Utiliza una caché separada para - msgid "Name Service Cache Daemon." - msgstr "Daemon de Caché del Servicio de Nombres." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "número incorrecto de argumentos" -@@ -4313,7 +4375,7 @@ msgstr "no se puede cambiar el directori - msgid "Could not create log file" - msgstr "No se pudo crear el fichero de registro" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "escritura incompleta" -@@ -4328,7 +4390,7 @@ msgstr "no se puede leer el ACK de inval - msgid "invalidation failed" - msgstr "fallo en la invalidación" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Solamente root puede usar esta opción" -@@ -4413,35 +4475,35 @@ msgstr "no se puede obtener el directori - msgid "maximum file size for %s database too small" - msgstr "el tamaño máximo de fichero para la base de datos %s es demasiado pequeño" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "no se pueden escribir las estadísticas: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "sí" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "no" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Solamente root o %s puede usar esta opción" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd no está en ejecución\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "no se pueden leer los datos de estadística" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4452,27 +4514,27 @@ msgstr "" - "\n" - "%15d nivel de depuración del servidor\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus tiempo de funcionamiento del servidor\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus tiempo de funcionamiento del servidor\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus tiempo de funcionamiento del servidor\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus tiempo de funcionamiento del servidor\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4489,7 +4551,7 @@ msgstr "" - "%15lu reinicio interno\n" - "%15u recarga contadores\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4555,87 +4617,87 @@ msgstr "Recargando \"%s\" en el caché d - msgid "Invalid numeric uid \"%s\"!" - msgstr "¡uid numérico inválido \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Fallo al abrir la conexión al subsistema de auditoría: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Fallo al establecer las capacidades que se mantienen" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "Falló prctl(KEEPCAPS)" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Fallo al inicializar el abandono de capacidades" - - # ## Lo mismo con lstat. sv - # Antes decía: No se pudo obtener información (lstat) del fichero .rhosts --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init ha fallado" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Fallo al abandonar capacidades" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc ha fallado" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Fallo al desactivar las capacidades que se mantienen" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Fallo al determinar si el núcleo admite SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Fallo al iniciar hilo AVC" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Fallo al crear bloqueo AVC" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Fallo al iniciar AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Access Vector Cache (AVC) iniciado" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "Error al consultar la política para clases de objetos o permisos no definidos" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "Error al obtener la clase de seguridad de nscd" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "Error al traducir el nombre de permiso \"%s\" a un vector de bits de acceso" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Error al obtener el contexto del `socket' remoto" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Error al obtener el contexto de nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Error al obtener sid del contexto" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4697,16 +4759,16 @@ msgstr "Obtiene entradas de la base de d - msgid "Enumeration not supported on %s\n" - msgstr "La enumeración no está soportada sobre %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Nombre de base de datos desconocido" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Bases de datos admitidas:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Base de datos desconocida: %s\n" -@@ -4999,7 +5061,7 @@ msgstr ") ó \\) desemparejados" - msgid "No previous regular expression" - msgstr "No existe ninguna expresión regular anterior" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parámetro nulo o no establecido" - -@@ -7751,3 +7813,12 @@ msgstr "demasiadas abreviaturas de zona - #, c-format - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: No se puede crear el directorio %s: %s\n" -+ -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "no se puede cargar ningún objeto más con TLS estático" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s no se encontró ningún PLTREL en el objeto %s\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "no se pueden crear descriptores internos" -Index: glibc-2.23/po/fi.po -=================================================================== ---- glibc-2.23.orig/po/fi.po -+++ glibc-2.23/po/fi.po -@@ -25,7 +25,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.21-pre1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2015-07-28 20:29+0300\n" - "Last-Translator: Lauri Nurmi \n" - "Language-Team: Finnish \n" -@@ -163,10 +163,10 @@ msgstr "" - "[TULOSTIEDOSTO [SYÖTETIEDOSTO]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, fuzzy, c-format -@@ -178,7 +178,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -195,7 +195,7 @@ msgstr "" - "ole, ei edes KAUPALLISESTI HYVÄKSYTTÄVÄSTÄ LAADUSTA tai SOPIVUUDESTA TIETTYYN TARKOITUKSEEN.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -452,11 +452,11 @@ msgstr "Tiedoston %s oikeuksien muutos a - msgid "Renaming of %s to %s failed" - msgstr "Uudelleennimeäminen %s -> %s epäonnistui" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "aluelistaa ei voi luoda" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "jaettu objekti ei ole avoin" - -@@ -531,130 +531,130 @@ msgstr "hakupolkutaulukkoa ei voi luoda" - msgid "cannot stat shared object" - msgstr "jaetun objektin tilaa ei voi lukea" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "nollatäyttölaitetta ei voi avata" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "jaettua objektikahvaa ei voi luoda" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "tiedoston dataa ei voi lukea" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF-latauskomennon tasaus ei ole sivutasattu" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF-latauskomennon osoite/siirtymä ei ole tasattu oikein" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "alkusäikeelle ei voi varata TLS-tietorakenteita" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "TLS-dataa ei voi käsitellä" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - #, fuzzy - msgid "object file has no loadable segments" - msgstr "objektitiedostossa ei ole dynaamista osaa" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "suoritettavaa tiedostoa ei voi ladata dynaamisesti" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "objektitiedostossa ei ole dynaamista osaa" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "jaettua objektia ei voi avata funktiolla dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "ohjelman otsakkeelle ei voi varata muistia" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "virheellinen kutsuja" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "muistin suojausta ei voi muuttaa" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - #, fuzzy - msgid "cannot enable executable stack as shared object requires" - msgstr "jaettua objektikahvaa ei voi luoda" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - msgid "cannot close file descriptor" - msgstr "tiedostoa %s ei voi sulkea" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "tiedosto on liian lyhyt" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "virheellinen ELF-otsikko" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "ELF-tiedoston tavujärjestys ei ole â€big-endianâ€" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "ELF-tiedoston tavujärjestys ei ole â€little-endianâ€" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF-tiedoston versiotunnus ei vastaa nykyistä" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF-tiedoston OS ABI on virheellinen" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF-tiedoston ABI-versio virheellinen" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "sisäinen virhe" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF-tiedoston versio ei vastaa nykyistä" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "vain ET_DYN ja ET_EXEC voidaan ladata" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "ELF-tiedoston phent-koko ei ole odotetun kokoinen" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "väärä ELF-luokka: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "väärä ELF-luokka: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "jaettua objektitiedostoa ei voi avata" - -@@ -666,11 +666,11 @@ msgstr "segmentin kartoitus jaetusta obj - msgid "cannot map zero-fill pages" - msgstr "nollatäytteisiä sivuja ei voi kartoittaa" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "uudelleensijoitusvirhe" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "virhe symbolien haussa" - -@@ -678,53 +678,43 @@ msgstr "virhe symbolien haussa" - msgid "cannot extend global scope" - msgstr "globaalia aluetta ei voi laajentaa" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - #, fuzzy - msgid "TLS generation counter wrapped! Please report this." - msgstr "TLS-luontilaskurin ylivuoto! Lähetä tästä raportti." - --#: elf/dl-open.c:542 --#, fuzzy --msgid "cannot load any more object with static TLS" --msgstr "Muistin varaaminen ei onnistu" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "virheellinen tila funktiolle dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - msgid "invalid target namespace in dlmopen()" - msgstr "virheellinen nimiavaruus" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - msgid "cannot allocate memory in static TLS block" - msgstr "Muistin varaaminen ei onnistu" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "segmenttiä ei voi muuttaa kirjoitettavaksi uudelleensijoitusta varten" - --#: elf/dl-reloc.c:275 --#, fuzzy, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "Objektin nimi : %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "segmentin suojausta ei voi palauttaa uudelleensijoituksen jälkeen" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - #, fuzzy - msgid "cannot apply additional memory protection after relocation" - msgstr "muistin suojausta ei voi muuttaa" -@@ -733,7 +723,7 @@ msgstr "muistin suojausta ei voi muuttaa - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT:iä käytetty koodissa, jota ei ole ladattu dynaamisesti" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "TLS-tietorakenteita ei voi luoda" - -@@ -882,7 +872,7 @@ msgstr "Linkkiä ei luotu, koska tiedost - msgid "Can't open directory %s" - msgstr "Hakemistoa %s ei voi avata" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Syötetiedostoa %s ei löydy.\n" -@@ -1014,7 +1004,7 @@ msgstr "tiedostoargumentit puuttuvat" - msgid "No such file or directory" - msgstr "Tiedostoa tai hakemistoa ei ole" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "ei ole tavallinen tiedosto" - -@@ -1062,65 +1052,71 @@ msgstr "ei voida lukea" - msgid "cannot read program interpreter" - msgstr "ei voida lukea" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - msgid "cannot read link map" - msgstr "symbolista linkkiä %s ei voi lukea" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - msgid "cannot read object name" - msgstr "Saman niminen objekti on olemassa" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "ohjelman otsakkeelle ei voi varata muistia" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "pid" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - msgid "invalid process ID '%s'" - msgstr "virheellinen prosessi-ID â€%sâ€" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - msgid "cannot open %s" - msgstr "laitetta %s ei voi avata" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - msgid "cannot open %s/task" - msgstr "pistoketta ei voi avata: %s" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - msgid "cannot prepare reading %s/task" - msgstr "ei voi avata laitetta %s lukutilaan" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - msgid "invalid thread ID '%s'" - msgstr "virheellinen prosessi-ID â€%sâ€" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - msgid "cannot attach to process %lu" - msgstr "tiedostoa â€%s†ei voi avata" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, fuzzy, c-format - msgid "process %lu is no ELF program" - msgstr "ohjelma %lu ei ole käytettävissä\n" -@@ -1155,27 +1151,27 @@ msgstr "%s ei ole jaettu objektitiedosto - msgid "more than one dynamic segment\n" - msgstr "useampi kuin yksi dynaaminen segmentti\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Tiedoston %s tilaa ei voi lukea.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Tiedosto %s on tyhjä, ei tarkastettu." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Tiedosto %s on liian pieni, ei tarkastettu." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Tiedoston %s muistikartoitus epäonnistui.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s ei ole ELF-tiedosto - sen alussa on väärät taikatavut.\n" -@@ -1294,10 +1290,10 @@ msgstr "JAETTU_OBJEKTI [PROFILOINTIDATA] - msgid "failed to load shared object `%s'" - msgstr "jaettua objektia â€%s†ei voitu ladata" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "sisäisiä kahvoja ei voi luoda" -+msgid "cannot create internal descriptor" -+msgstr "sisäistä kahvaa ei voi ladata" - - #: elf/sprof.c:554 - #, c-format -@@ -1364,11 +1360,6 @@ msgstr "profilointidatatiedoston muistik - msgid "error while closing the profiling data file" - msgstr "virhe suljettaessa profilointidatatiedostoa" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "sisäistä kahvaa ei voi ladata" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1617,27 +1608,27 @@ msgstr "socket: protokollavirhe piiriase - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: vajaa luku" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "tiedoston tilan luku epäonnistui" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "ei voi avata" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "tiedoston tilan luku epäonnistui" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "virheellinen omistaja" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "kirjoitusoikeus muulla kuin omistajalla" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "kovalinkitetty johonkin" - -@@ -1757,8 +1748,8 @@ msgid "no symbolic name given for end of - msgstr "välin lopulle ei ole annettu symbolista nimeä" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1784,8 +1775,8 @@ msgid "%s: error in state machine" - msgstr "%s: virhe tilakoneessa" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1806,7 +1797,7 @@ msgstr "tuntematon merkki â€%sâ€" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "välin alku- ja lopputavusarjojen tavumäärä ei ole sama: %d vs %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "virheelliset nimet merkkivälille" -@@ -1828,8 +1819,8 @@ msgstr "välin yläraja on pienempi kuin - msgid "resulting bytes for range not representable." - msgstr "välin tulostavut eivät ole esitettävissä." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1893,7 +1884,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: numeerinen maakoodi â€%d†ei kelpaa" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1915,8 +1906,8 @@ msgstr "%s: kenttä â€%s†määritelt - msgid "%s: unknown character in field `%s'" - msgstr "%s: tuntematon merkki kentässä â€%sâ€" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1925,12 +1916,12 @@ msgstr "%s: tuntematon merkki kentässä - msgid "%s: incomplete `END' line" - msgstr "%s: epätäydellinen â€ENDâ€-rivi" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1940,476 +1931,476 @@ msgstr "%s: epätäydellinen â€ENDâ€-r - msgid "%s: syntax error" - msgstr "%s: syntaksivirhe" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "â€%.*s†on jo määritelty merkistökartassa" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "â€%.*s†on jo määritelty valikoimassa" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "â€%.*s†on jo määritelty vertailusymboliksi" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "â€%.*s†on jo määritelty vertailuelementiksi" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: â€forward†ja â€backward†sulkevat toisensa pois" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: â€%s†mainittu useammin kuin kerran painon %d määrittelyssä" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: liian monta sääntöä; ensimmäisellä merkinnällä oli vain %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: ei riittävästi lajittelusääntöjä" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: tyhjiä painomerkkijonoja ei sallita" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: painojen on käytettävä samaa sanankatkaisusymbolia kuin nimen" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: liian monta arvoa" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "järjestys â€%.*sâ€:lle on jo määritelty paikassa %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: välin alku- ja loppusymbolien tulee edustaa merkkejä" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: ensimmäisen ja viimeisen merkin tavusarjojen on oltava saman pituiset" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, fuzzy, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: sarjan ensimmäisen merkin tavusarja ei ole matalampi kuin viimeisen" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: symbolisen välin sanankatkaisu ei saa suoraan seurata sanaa â€order_startâ€" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: symbolisen välin sanankatkaisua ei saa suoraan seurata â€order_endâ€" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "â€%s†ja â€%.*s†eivät ole kelvollisia nimiä symboliselle välille" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: järjestys â€%.*sâ€:lle on jo määritelty kohdassa %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: â€%s†on oltava merkki" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: â€position†on käytetävä tietylle tasolle kaikissa osissa tai ei yhdessäkään" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "symbolia â€%s†ei ole määritelty" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "symbolilla â€%s†on sama koodaus kuin" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "symboli â€%sâ€" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "â€UNDEFINED†ei ole määritelty" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "liian monta virhettä; luovutetaan" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - msgid "%s: nested conditionals not supported" - msgstr "muunnos merkistöstä â€%s†ei ole tuettu" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: useampi kuin yksi â€elseâ€" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: kaksinkertainen määrittely â€%sâ€" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: kaksinkertainen määrittely osalle â€%sâ€" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: tuntematon merkki vertailusymbolin nimessä" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: tuntematon merkki yhtäläisyysmäärittelyn nimessä" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: tuntematon merkki yhtäläisyysmäärittelyn arvossa" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: tuntematon symboli â€%s†yhtäläisyysmäärittelyssä" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "virhe lisättäessä yhtäläisyysvertailusymbolia" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "kaksinkertainen skriptin â€%s†määrittely" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: tuntematon osan nimi â€%.*sâ€" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: useita järjestysmäärittelyjä osalle â€%sâ€" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: virheellinen määrä lajittelusääntöjä" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: useita järjestysmäärittelyjä nimettömälle osalle" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: avainsana â€order_end†puuttuu" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: vertailusymbolin %.*s järjestystä ei ole vielä määritelty" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: vertailuelementin %.*s järjestystä ei ole vielä määritelty" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: uudelleenjärjestys kohdan %.*s jälkeen ei onnistu: tuntematon symboli" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: avainsana â€reorder-end†puuttuu" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: osaa â€%.*s†ei tunneta" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: virheellinen symboli <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: â€%s†ei voi olla sanankatkaisuvälin loppuna" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: tyhjää kategoriakuvausta ei sallita" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: avainsana â€reorder-sections-end†puuttuu" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Merkistön nimeä ei ole määritelty merkistökartassa" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "merkin L'\\u%0*x' luokassa â€%s†on oltava luokassa â€%sâ€" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "merkki L'\\u%0*x' luokassa â€%s†ei saa olla luokassa â€%sâ€" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "sisäinen virhe tiedostossa %s, rivillä %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "merkin '%s' luokassa â€%s†on oltava luokassa â€%sâ€" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "merkin '%s' luokassa â€%s†ei saa olla luokassa â€%sâ€" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "-merkki ei ole luokassa â€%sâ€" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "-merkki ei saa olla luokassa â€%sâ€" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "merkkiä ei ole määritelty merkistökartassa" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "â€digitâ€-kategorian merkinnät eivät ole kymmenen ryhmissä" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "syötenumeroita ei ole määritelty, eikä merkistökartassa ole standardinimiä" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "kaikki â€outdigitâ€:in merkit eivät ole käytettävissä merkistökartassa" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "kaikki â€outdititâ€:in merkit eivät ole käytettävissä valikoimassa" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "merkkiluokka â€%s†on jo määritelty" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "toteutuksen rajoitus: korkeintaan %Zd merkkiluokkaa sallittu" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "merkistökartta â€%s†on jo määritelty" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "toteutuksen rajoitus: korkeintaan %d merkistökarttaa sallittu" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: kenttä â€%s†ei sisällä tasan kymmentä merkintää" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "välin to-arvo on pienempi kuin from-arvo " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "välin aloitus- ja lopetusmerkkisarjojen on oltava saman pituiset" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "to-arvon merkkisarja on pienempi kuin from-arvon sarja" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "ennenaikainen â€translit_ignoreâ€-määrittelyn loppu" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "syntaksivirhe" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: syntaksivirhe uuden merkkiluokan määrittelyssä" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: syntaksivirhe uuden merkistökartan määrittelyssä" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "sanankatkaisuväliä on merkittävä kahdella saman tyyppisellä operandilla" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "absoluuttista sanankatkaisua â€...†ei saa käyttää symbolisen nimivälin arvojen kanssa" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "UCS-välin arvojen kanssa on käytettävä heksadesimaalista symbolista sanankatkaisua â€..â€" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "merkkikoodivälin arvojen kanssa on käytettävä absoluuttista sanankatkaisua â€...â€" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "kaksinkertainen määrittely kartoitukselle â€%sâ€" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: â€translit_startâ€-osa ei lopu tekstiin â€translit_endâ€" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: kaksinkertainen â€default_missingâ€-määrittely" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "edellinen määrittely oli täällä" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: esitettävissä olevaa â€default_missingâ€-määrittelyä ei löytynyt" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: oletusarvona tarvittavaa merkkiä â€%s†ei ole määritelty" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: merkistökartan merkki â€%s†ei ole esitettävissä yhdellä tavulla" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: oletusarvona tarvittava merkki â€%s†ei ole esitettävissä yhdellä tavulla" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "tulostenumeroita ei ole määritelty, eikä merkistökartassa ole standardinimiä" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: translitterointidata maa-asetustosta â€%s†ei ole käytettävissä" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: taulukko luokalle â€%sâ€: %lu tavua\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: taulukko kartalle â€%sâ€: %lu tavua\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: taulukko leveydelle: %lu tavua\n" -@@ -3804,17 +3795,23 @@ msgstr "" - msgid " (first)" - msgstr " (ensimmäinen)" - --#: nscd/cache.c:285 nscd/connections.c:1000 --#, c-format --msgid "cannot stat() file `%s': %s" -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "tiedoston â€%s†tilaa ei voi lukea: %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3901,155 +3898,217 @@ msgstr "pistoketta ei voi asettaa vastaa - msgid "cannot enable socket to accept connections: %s" - msgstr "pistoketta ei voi asettaa vastaanottamaan yhteyksiä: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Hakemistoa %s ei voi avata" -+ -+#: nscd/connections.c:1022 - #, fuzzy, c-format --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "Karttatietokannassa ei ole enempää tietueita" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, fuzzy, c-format - msgid "provide access to FD %d, for %s" - msgstr "suljetaan %s (fd=%d)" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "vanhaa pyyntöversiota %d ei voi käsitellä; nykyinen versio on %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "tulosta ei voi kirjoittaa: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "virhe kutsujan tunnisteen hakemisessa: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, fuzzy, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "hakemistoon %s ei voi siirtyä" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "vajaa luku luettaessa pyyntöä: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "avaimen pituus pyynnössä liian pitkä: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "vajaa luku luettaessa pyyntöavainta: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, fuzzy, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: pyyntö vastaanotettu (Versio = %d)" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: pyyntö vastaanotettu (Versio = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "failed to remove file watch `%s`: %s" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "jaettua objektia â€%s†ei voitu ladata" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - #, fuzzy - msgid "could not initialize conditional variable" - msgstr "arkistotiedostoa ei voi alustaa" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Ohjelman nscd ajaminen käyttäjän â€%s†oikeuksilla epäonnistui" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - #, fuzzy - msgid "initial getgrouplist failed" - msgstr "getgrouplist epäonnistui" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist epäonnistui" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups epäonnistui" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "vajaa kirjoitus tiedostossa %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "â€%s†ei löytynyt ryhmävälimuistista!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, fuzzy, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "â€%s†ei löytynyt ryhmävälimuistista!" -@@ -4140,7 +4199,7 @@ msgstr "Käytä erillistä välimuistia - msgid "Name Service Cache Daemon." - msgstr "Nimipalvelun välimuistidemoni." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "väärä määrä argumentteja" -@@ -4175,7 +4234,7 @@ msgstr "työhakemistoa ei voi vaihtaa †- msgid "Could not create log file" - msgstr "Lokitiedostoa ei voitu luoda" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "keskeneräinen kirjoitus" -@@ -4190,7 +4249,7 @@ msgstr "ei voida lukea" - msgid "invalidation failed" - msgstr "EI TÄSMÄÄ" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Vain root-käyttäjä voi käyttää tätä valitsinta!" -@@ -4272,35 +4331,35 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "tilastoa ei voi kirjoittaa: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "kyllä" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "ei" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Vain root ja %s voivat käyttää tätä valitsinta!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd ei ole käynnissä!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "tilastodataa ei voi lukea" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4311,27 +4370,27 @@ msgstr "" - "\n" - "%15d palvelimen debug-taso\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, fuzzy, c-format - msgid " %2lus server runtime\n" - msgstr "Pääpalvelin :\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, fuzzy, c-format - msgid "" - "%15d current number of threads\n" -@@ -4347,7 +4406,7 @@ msgstr "" - "%15s paranoiatila käytössä\n" - "%15lu restart internal\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - msgid "" - "\n" -@@ -4403,93 +4462,93 @@ msgstr "â€%s†ei löytynyt salasanavà - msgid "Invalid numeric uid \"%s\"!" - msgstr "Virheellinen numeerinen uid â€%sâ€!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - #, fuzzy - msgid "Failed to set keep-capabilities" - msgstr "PATHin asetus epäonnistui" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) epäonnistui" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init epäonnistui" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - #, fuzzy - msgid "Failed to drop capabilities" - msgstr "EI TÄSMÄÄ" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - msgid "cap_set_proc failed" - msgstr "PATHin asetus epäonnistui" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - #, fuzzy - msgid "Failed to start AVC thread" - msgstr "muunnoksen aloittaminen epäonnistui" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - msgid "Failed to create AVC lock" - msgstr "vastakutsua ei voi luoda" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - #, fuzzy - msgid "Failed to start AVC" - msgstr "muunnoksen aloittaminen epäonnistui" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - msgid "Error getting security class for nscd." - msgstr "virhe kutsujan tunnisteen hakemisessa: %s" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - #, fuzzy - msgid "Error getting context of nscd" - msgstr "virhe kutsujan tunnisteen hakemisessa: %s" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4542,16 +4601,16 @@ msgstr "getent - hae merkintöjä hallin - msgid "Enumeration not supported on %s\n" - msgstr "%s ei tue luettelemista\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Tuntematon tietokannan nimi" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Tuetut tietokannat:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Tuntematon tietokanta: %s\n" -@@ -4824,7 +4883,7 @@ msgstr "Pariton ) tai \\)" - msgid "No previous regular expression" - msgstr "Ei edeltävää säännöllistä lauseketta" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parametri on null tai asettamatta" - -@@ -7208,6 +7267,17 @@ msgstr "liian monta tai liian pitkä aik - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: Hakemistoa %s ei voi luoda: %s\n" - -+#, fuzzy -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "Muistin varaaminen ei onnistu" -+ -+#, fuzzy -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "Objektin nimi : %s\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "sisäisiä kahvoja ei voi luoda" -+ - #~ msgid "time before zero" - #~ msgstr "aika ennen nollaa" - -Index: glibc-2.23/po/fr.po -=================================================================== ---- glibc-2.23.orig/po/fr.po -+++ glibc-2.23/po/fr.po -@@ -1,4 +1,4 @@ --# translation of libc-2.9.90.fr.po to Français -+# translation of libc-2.22-pre1.fr.po to Français - # Messages français pour GNU concernant libc. - # Copyright © 2004, 2008, 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the glibc package. -@@ -7,17 +7,17 @@ - # kerb , 2008, 2009. - msgid "" - msgstr "" --"Project-Id-Version: libc-2.19.90\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" --"PO-Revision-Date: 2014-08-21 11:11+0100\n" --"Last-Translator: kerb \n" -+"Project-Id-Version: libc 2.22-pre1\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"PO-Revision-Date: 2015-09-20 17:00+0100\n" -+"Last-Translator: Kerb \n" - "Language-Team: French \n" - "Language: fr\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=2; plural=(n > 1);\n" --"X-Generator: KBabel 1.11.4\n" -+"X-Generator: Poedit 1.5.4\n" - - #: argp/argp-help.c:227 - #, c-format -@@ -148,10 +148,10 @@ msgstr "" - "[FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -163,7 +163,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -181,7 +181,7 @@ msgstr "" - "COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -436,11 +436,11 @@ msgstr "Échec de la modification des dr - msgid "Renaming of %s to %s failed" - msgstr "Échec du changement de nom de %s vers %s" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "ne peut créer une liste panorama" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "objet partagé non ouvert" - -@@ -513,127 +513,127 @@ msgstr "ne peut créer un tableau des ch - msgid "cannot stat shared object" - msgstr "ne peut évaluer par stat() l'objet partagé" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "ne peut ouvrir le fichier de périphérique rempli de zéros" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "ne peut créer un descripteur d'objet partagé" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "ne peut lire les données du fichier" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "Commande de chargement sur une page ELF qui n'est pas alignée" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "Commande de chargement sur une adresse ELF incorrectement alignée" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "ne peut allouer une structure de données TLS pour un thread initial" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "ne peut traiter les données TLS" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "le fichier objet n'a pas de segment chargeable" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "ne peut dynamiquement charger un exécutable" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "le fichier objet n'a pas de section dynamique" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "l'objet partagé ne peut pas être ouvert via dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "ne peut allouer de la mémoire pour une en-tête de programme" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "appelant invalide" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "ne peut modifier les protections de mémoire" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "ne peut activer une pile exécutable comme l'objet partagé le requiert" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "ne peut pas fermer le descripteur de fichier" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "fichier trop court" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "en-tête ELF invalide" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "l'encodage des données du fichier ELF n'est pas big-endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "l'encodage des données du fichier ELF n'est pas little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "l'identifiant de version du fichier ELF ne concorde pas avec la version courante" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "Système d'exploitation du fichier ELF ABI invalide" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "Version du fichier ELF ABI invalide" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "remplissage sans zéro dans e_ident" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "Erreur interne" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "Version du fichier ELF ne concorde pas avec la version courante" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "Seuls ET_DYN et ET_EXEC peuvent être chargés" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "« Phentize » du fichier ELF ne concorde pas avec la taille prévue" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "mauvaise classe ELF : ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "mauvaise classe ELF : ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "Ne peut ouvrir le fichier d'objet partagé" - -@@ -645,11 +645,11 @@ msgstr "échec d'adressage (mapping) du - msgid "cannot map zero-fill pages" - msgstr "ne peut adresser des pages remplies de zéros" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "erreur de réaffectation" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "erreur de recherche de symbole" - -@@ -657,49 +657,40 @@ msgstr "erreur de recherche de symbole" - msgid "cannot extend global scope" - msgstr "ne peut augmenter l'étendue de la plage globale" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "Le compteur de génération TLS a bouclé ! SVP expédier un rapport avec le script 'glibcbug'." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "ne peut pas charger plus d'objets avec TLS statique" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "mode invalide pour dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "plus d'espace de nommage disponible pour dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "espace de nommage cible invalide dans dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "ne peut allouer de la mémoire dans un bloc statique TLS" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "ne peut rendre le segment inscritible pour une réaffectation" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s : aucun PLTREL trouvé dans l'objet %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s : manque de mémoire pour stocker les résultats de la réaffectation pour %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "ne peut restaurer le segment prot après reloc" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "ne peut appliquer les protections additionnelle de mémoire après la réaffectation" - -@@ -707,7 +698,7 @@ msgstr "ne peut appliquer les protection - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT est utilisé dans du code qui n'est pas chargé dynamiquement" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "ne peut créer les structures de données TLS" - -@@ -851,7 +842,7 @@ msgstr "Aucun lien créé étant donné - msgid "Can't open directory %s" - msgstr "Ne peut ouvrir le dossier %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Fichier d'entrée %s non repéré\n" -@@ -982,7 +973,7 @@ msgstr "arguments de fichier manquants" - msgid "No such file or directory" - msgstr "Aucun fichier ou dossier de ce type" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "n'est pas un fichier régulier" - -@@ -1027,65 +1018,70 @@ msgstr "ne peut lire r_debug" - msgid "cannot read program interpreter" - msgstr "ne peut lire l'interpréteur de programme" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "ne peut lire la carte lien (link map)" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "ne peut lire le nom d'objet" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "ne peut allouer de la mémoire pour une en-tête de programme" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "Liste les objets partagés dynamiques chargés dans le process." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Un paramètre exactement avec le process ID est requis.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "process ID invalide '%s'" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "Ne peut ouvrir %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "Ne peut ouvrir %s/tâche" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "ne peut préparer la lecture %s/tâche" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "ID de fil (thread) invalide '%s'" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "ne peut s'attacher au process %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "ne peut récupérer l'information à propos du process %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "le process %lu n'est pas un programme ELF" -@@ -1120,27 +1116,27 @@ msgstr "%s n'est pas un fichier objet pa - msgid "more than one dynamic segment\n" - msgstr "plus d'un segment dynamique\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Ne peut évaluer par fstat() %s\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Fichier %s est vide, n'a pas été vérifié." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Fichier %s trop petit, n'a pas été vérifié." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Erreur de la procédure mmap sur le fichier %s\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s n'est pas un fichier de type ELF - il a un octet magique au début incorrect.\n" -@@ -1276,10 +1272,10 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "échec de chargement de l'objet partagé « %s »" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "ne peut créer les descripteurs internes" -+msgid "cannot create internal descriptor" -+msgstr "ne peut créer un descripteur interne" - - #: elf/sprof.c:554 - #, c-format -@@ -1346,11 +1342,6 @@ msgstr "Échec de la procédure mmap sur - msgid "error while closing the profiling data file" - msgstr "erreur lors de la fermeture du fichier de données de profilage" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "ne peut créer un descripteur interne" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1598,27 +1589,27 @@ msgstr "socket : échec de protocole da - msgid "rcmd: %s: short read" - msgstr "rcmd : %s : lecture écourtée" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "échec de lstat()" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "ne peut ouvrir" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "échec de fstat()" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "mauvais propriétaire" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "accessible en écriture par d'autres que le propriétaire" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "lien direct rencontré" - -@@ -1738,8 +1729,8 @@ msgid "no symbolic name given for end of - msgstr "pas de nom symbolique fourni pour la fin de l'intervalle" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1767,8 +1758,8 @@ msgid "%s: error in state machine" - msgstr "%s : erreur de l'automate à états finis" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1789,7 +1780,7 @@ msgstr "caractère inconnu « %s »" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "nombre d'octets pour une séquence d'octets de début et de fin de plage n'est pas le même : %d vs %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nom invalide pour un intervalle de caractères" -@@ -1811,8 +1802,8 @@ msgstr "la limite supérieure de l'inter - msgid "resulting bytes for range not representable." - msgstr "les octets résultants pour la plage ne sont pas représentables." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1876,7 +1867,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s : code numérique invalide pour le pays « %d »" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1898,8 +1889,8 @@ msgstr "%s : champ « %s » déclaré p - msgid "%s: unknown character in field `%s'" - msgstr "%s : caractère inconnu dans le champ « %s »" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1908,12 +1899,12 @@ msgstr "%s : caractère inconnu dans le - msgid "%s: incomplete `END' line" - msgstr "%s : ligne « END » incomplète" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1923,476 +1914,476 @@ msgstr "%s : ligne « END » incomplèt - msgid "%s: syntax error" - msgstr "%s : erreur de syntaxe" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "« %.*s » déjà défini dans la table des caractères" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "« %.*s » déjà défini dans le dossier" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "« %.*s » déjà défini comme symbole de classement (collation)" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "« %.*s » déjà défini comme élément de classement (collation)" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s : « forward » et « backward » sont mutuellement exclusifs" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s : « %s » mentionné plus d'une fois dans la définition du poids %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s : trop de règles; la 1ère entrée n'a que %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s : pas assez de règles de tri" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s : chaîne de poids vide non permise" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s : les poids doivent utiliser les mêmes symboles d'ellipse que les noms" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s : trop de valeurs" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "L'ordre de « %.*s » est déjà défini dans %s :%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s : le symbole de départ et de fin d'une plage doit être en caractères" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s : séquences d'octets du 1er et dernier caractère doivent avoir la même longueur" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s : séquence d'octet du 1er caractère d'un intervalle n'est pas plus petit que celle du dernier caractère" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s : plage de l'ellipse symbolique ne doit pas être suivie directement de « order_start »" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s : plage de l'ellipse symbolique ne doit pas être suivie directement de « order_end »" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "« %s » et « %.*s » sont des noms invalides pour un intervalle symbolique" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s : ordre de « %.*s » déjà défini comme %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s : « %s » doit être un caractère" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s : « position » doit être utilisé pour un niveau spécifique dans toutes les sections ou aucune" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "Symbole « %s » n'est pas défini" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "Symbole « %s » a le même encodage que" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "Symbole « %s »" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "Pas de définition de type « UNDEFINED »" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "trop d'erreurs; abandon" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s : conditions imbriquées non supportées" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s : plus d'un 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s : double définition de « %s »" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s : double déclaration de section « %s »" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s : caractère inconnu dans le nom du symbole de collation" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s : caractère inconnu dans la définition équivalent d'un nom" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s : caractère inconnu dans la définition équivalente d'une valeur" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s : symbole inconnu « %s » dans une définition équivalente" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "Erreur lors de l'ajout d'un symbole de collation équivalent" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "Double définitions du script « %s »" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s : nom de section inconnu `% *s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s : définitions d'ordre multiple de la section « %s »" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s : nombre invalide de règles de tri" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s : définitions d'ordre multiple pour une section sans nom" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s : mot clé « order_end » manquant" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s : ordre de fusionnement de symboles %.*s n'est pas encore défini" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s : ordre de fusionnement d'éléments %.*s n'est pas encore défini" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s : ne peut réordonner après %.*s : symbole inconnu" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s : mot clé « reorder-end » manquant" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s : section « %.*s » inconnue" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s : symbole erroné <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s : ne peut avoir « %s » à la fin d'une plage d'ellipse" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s : description de catégorie vide non permise" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s : mot clé « reorder-sections-end » manquant" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s : '%s' sans correspondance 'ifdef' ou 'ifndef'" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s : 'endif' sans 'ifdef' ou 'ifndef' correspondant" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Pas de nom de jeu caractères spéecifié dans la table des caractères" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "Le caractère L'\\u%0*x» de la classe « %s » doit être dans la classe « %s »" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "Le caractère L'\\u%0*x» de la classe « %s » ne doit pas être dans la classe « %s »" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "Erreur interne dans %s, ligne %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "Caractère « %s » de la classe « %s » doit être dans la classe « %s »" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "Caractère « %s » de la classe « %s » ne doit pas être dans la classe « %s »" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "Le caractère n'est pas dans la classe « %s »" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "Le caractère ne doit pas être dans la classe « %s »" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "Caractère non défini dans la table des caractères" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "catégorie « digit » n'a pas d'entrées dans les groupe des dizaines" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "Pas de chiffre défini et aucun des noms standards dans la table des caractères" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "Pas tous les caractères utilisés dans « outdigit » sont disponibles dans la table des caractères" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "Pas tous les caractères utilisés dans « outdigit » sont disponibles dans le dossier" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "Classe de caractères « %s » déjà définie" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "Limite d'implantation : pas plus de %Zd classes de caractères permises" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "Table de caractères « %s » déjà définie" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "Limite d'implantation : pas plus de %d tables de caractères sont permises" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s : champ « %s » ne contient pas exactement 10 entrées" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "Valeur-finale de l'intervalle est plus petite que la valeur-départ " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "Début et fin de l'intervalle de la séquence de caractères doivent avoir la même longueur" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "Valeur finale de la séquence des caractères est plus petite que la valeur de départ" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "Fin prématurée de la définition de « translit_ignore »" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "Erreur de syntaxe" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s : erreur de syntaxe dans la définition d'une nouvelle classe de caractères" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s : erreur de syntaxe dans la définition d'une nouvelle table de caractères" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "Plage de l'ellipse doit être marqué par 2 opérandes du même type" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "Les valeurs d'une plage de noms symboliques d'une ellipse absolue « .... » ne doivent pas être utilisés" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "Les valeurs d'une plage UCS doivent utiliser une ellipse symbolique en hexadécimal « .. »" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "Les valeurs d'une plage de caractères doivent utiliser une ellipse absolu « ... »" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "Double définitions de la table « %s »" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s : la section « transit_start » n'est pas terminée par « translit_end »" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s : double définition de « default_missing »" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "Le définition précédente était ici" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s : aucune définition « default_missing » pour les non représentables" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s : caractère « %s » non défini alors qu'attendu comme valeur par défaut" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s : caractère « %s » dans la table des caractères n'est pas représentable par un seul octet" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s : caractère « %s » nécessaire comme valeur par défaut n'est pas représentable par un seul octet" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "Pas de chiffre défini et aucun des noms standards dans la table des caractères" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s : le particularisme local « %s » ne dispose pas des données de transposition" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s : table pour la classe « %s » : %lu octets\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s : table de caractères « %s » : %lu octets\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s : table de largeur : %lu octets\n" -@@ -3818,17 +3809,22 @@ msgstr "ajoute une nouvelle entrée «  - msgid " (first)" - msgstr " (premier)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, c-format -+msgid "checking for monitored file `%s': %s" -+msgstr "recherche fichier surveillé `%s': %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "Ne peut évaluer par stat() le fichier « %s » : %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "fichier surveillé `%s` modifié (mtime)" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "écourte %s cache; time %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "considérant %s entrée « %s », timeout %" -@@ -3914,153 +3910,213 @@ msgstr "ne peut établir le socket à l' - msgid "cannot enable socket to accept connections: %s" - msgstr "Ne peut activer le socket pour accepter des connexions : %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 - #, c-format --msgid "register trace file %s for database %s" --msgstr "inscrit le fichier de trace %s pour la base de données %s" -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "surveillance basée sur inotify désactivée pour fichier `%s': %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "fichier de surveillance `%s` (%d)" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "surveillance basée sur inotify désactivée pour répertoire `%s': %s" -+ -+#: nscd/connections.c:994 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "répertoire de surveillance `%s` (%d)" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "fichier de surveillance %s pour base de données %s" -+ -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "stat en échec pour fichier `%s'; nouvel essai plus tard: %s" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "fournit l'accès à FD %d, pour %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" --msgstr "Ne peut traiter une requête d'une vieille version %d; la version courante est %d" -+msgstr "Ne peut traiter une vieille version de requête %d; la version courante est %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "la requête de %ld non prise en compte du fait du manque de permission" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "la requête de '%s' [%ld] non prise en compte du fait du manque de permission" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "la requête de %ld " - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "Ne peut écrire les résultats : « %s »" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "erreur lors de la récupération de l'identifiant de l'appelant : %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "ne peut ouvrir /proc/self/cmdline : %s; désactive le mode paranoïa" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "ne peut lire /proc/self/cmdline : %s; désactive le mode paranoïa" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "ne peut réétablir l'ancien UID : %s; désactive le mode paranoïa" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "ne peut réétablir l'ancien GID : %s; désactive le mode paranoïa" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "ne peut réétablir l'ancien dossier de travail : %s; désactive le mode paranoïa" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "re-exec a échoué : %s; désactive le mode paranoïa" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "ne peut établir le dossier de travail courant à « / » : %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "Lecture écourtée lors de la lecture de la requête : « %s »" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "La longueur de la clé de la requête est trop longue : %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "Lecture écourtée lors de la lecture de la clé de requête : %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request : requête reçue (Version = %d) à partir du PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request : requête reçue (Version = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "événement inotify ignoré pour `%s` (fichier existe)" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "fichier surveillé `%s` était %s, suprresion surveillance" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "échec de suppression de surveillance de fichier `%s`: %s" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "fichier surveillé `%s` a été écrit sur" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "le répertoire parent surveillé `%s` était %s, arrêt surveillance sur `%s`" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "fichier surveillé `%s` était %s, ajout surveillance" -+ -+#: nscd/connections.c:2053 - #, c-format --msgid "disabled inotify after read error %d" --msgstr "désactive inotify après erreur de lecture %d" -+msgid "failed to add file watch `%s`: %s" -+msgstr "échec de l'ajout du fichier de surveillance `%s`: %s" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "surveillance basée sur inotify désactivée après erreur de lecture %d" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "n'a pu initialiser une variable conditionnelle" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "n'a pu démarrer le process(thread) de nettoyage ; en train de s'achever" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "n'a pas pu démarrer de process de travail (threads) ; en train de s'achever" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Échec d'exécution de nscd en tant qu'usager « %s »" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "échec du getgrouplist initial" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "échec de getgrouplist" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "échec de setgroups" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "Écriture écourtée dans %s : %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "N'a pas trouvé « %s » dans la cache du groupe !" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Recharge « %s » dans le cache groupe !" -@@ -4148,7 +4204,7 @@ msgstr "Utiliser une cache séparée pou - msgid "Name Service Cache Daemon." - msgstr "« Daemon » du cache du service de noms." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "Mauvais nombre d'arguments" -@@ -4181,7 +4237,7 @@ msgstr "ne peut établir le dossier de t - msgid "Could not create log file" - msgstr "N'a pu créé le fichier journal" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "écriture incomplète" -@@ -4196,7 +4252,7 @@ msgstr "ne peut lire les ACK invalidés" - msgid "invalidation failed" - msgstr "l'invalidation a échoué" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Seul ROOT est autorisé à utiliser cette option !" -@@ -4281,35 +4337,35 @@ msgstr "ne peut obtenir le dossier de tr - msgid "maximum file size for %s database too small" - msgstr "la taille maximale de fichier pour la base de données %s est trop petite" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "Ne peut écrire les statistiques : « %s »" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "oui" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "non" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Seul ROOT ou %s est autorisé à utiliser cette option !" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd n'est pas en exécution !\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "Ne peut lire les données de statistiques" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4320,27 +4376,27 @@ msgstr "" - "\n" - "%15d niveau serveur de déboggage\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus temps d'exécution du serveur\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus temps d'exécution du serveur\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus temps d'exécution du serveur\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus temps d'exécution du serveur\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4357,7 +4413,7 @@ msgstr "" - "%15lu redémarrage interne\n" - "%15u compte de rechargement\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4424,85 +4480,85 @@ msgstr "Recharge « %s » dans le cache - msgid "Invalid numeric uid \"%s\"!" - msgstr "uid numérique invalide « %s » !" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Echec d'ouverture de la connection au sous-système d'audit : %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "A échoué à établir les possibilités de garde(keep-capabilities)" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "échec de prctl(KEEPCAPS)" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "A échoué à initialiser l'abandon de possibilités" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init a échoué" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "A échoué à abandonner les possibilités" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc a échoué" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "A échoué à désactiver les possibilités de garde (keep-capabilities)" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "A échoué à déterminer si le noyau supporte SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "A échoué à démarrer le fil AVC (thread)" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "A échoué à créer un verrou AVC" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "A échoué à démarrer AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Access Vector Cache (AVC) démarré" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "Erreur à l'interrogation de la politique pour les classes ou permissions d'objet indéfini." - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "Erreur à la récupération de la classe de sécurité pour nscd." - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "Erreur à la traduction du nom de la permission \"%s\" pour accéder le bit vecteur." - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Erreur à la récupération du contexte du pair du socket" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Erreur à la récupération du contexte de nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "erreur de récupération du sid depuis le contexte" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4564,16 +4620,16 @@ msgstr "Obtient des entrées de la base - msgid "Enumeration not supported on %s\n" - msgstr "Énumération non supportée sur %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Base de données inconnue" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Base de données supportées :\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Base de données inconnue : « %s »\n" -@@ -4853,7 +4909,7 @@ msgstr "Échec du pairage de ) ou de \\) - msgid "No previous regular expression" - msgstr "Aucune expression régulière précédente" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "paramètre nul ou non initialisé" - -@@ -7230,6 +7286,15 @@ msgstr "trop ou de trop longues abrévia - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s : ne peut créer le dossier %s : %s\n" - -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "ne peut pas charger plus d'objets avec TLS statique" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s : aucun PLTREL trouvé dans l'objet %s\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "ne peut créer les descripteurs internes" -+ - #~ msgid "compile-time support for database policy missing" - #~ msgstr "il manque le support du temps de compilation pour la politique de base de données" - -Index: glibc-2.23/po/gl.po -=================================================================== ---- glibc-2.23.orig/po/gl.po -+++ glibc-2.23/po/gl.po -@@ -5,7 +5,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.3.2\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2003-03-03 20:13+0100\n" - "Last-Translator: Jacobo Tarrio \n" - "Language-Team: Galician \n" -@@ -141,10 +141,10 @@ msgstr "" - "[FICHEIRO-SAÃDA [FICHEIRO-ENTRADA]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -154,7 +154,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -171,7 +171,7 @@ msgstr "" - "garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN DETERMINADO.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -434,11 +434,11 @@ msgstr "O cambio dos dereitos de acceso - msgid "Renaming of %s to %s failed" - msgstr "Fallou o renomeado de %s a %s" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "non se pode crea-la lista de alcance" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "o obxecto compartido non está aberto" - -@@ -515,135 +515,135 @@ msgstr "non se pode crea-lo vector de ru - msgid "cannot stat shared object" - msgstr "non se puido facer stat sobre o obxecto compartido" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "non se pode abrir un dispositivo de recheo de ceros" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "non se pode crear un descriptor de obxecto compartido" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "non se pode le-los datos do ficheiro" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "O comando de carga ELF non está aliñado coa páxina" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "O enderezo/desprazamento do comando de carga ELF non está ben aliñado" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "non se poden crea-las estructuras de datos TLS para o fío inicial" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "non se poden manexa-los datos TLS" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - #, fuzzy - #| msgid "object file has no dynamic section" - msgid "object file has no loadable segments" - msgstr "o ficheiro obxecto non ten unha sección dinámica" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "non se pode cargar dinamicamente o executable" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "o ficheiro obxecto non ten unha sección dinámica" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "non se pode facer dlopen() sobre o obxecto compartido" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "Non se pode reservar memoria para a cabeceira do programa" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - #| msgid "invalid line" - msgid "invalid caller" - msgstr "liña non válida" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "non se poden cambia-las proteccións de memoria" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - #, fuzzy - #| msgid "cannot create shared object descriptor" - msgid "cannot enable executable stack as shared object requires" - msgstr "non se pode crear un descriptor de obxecto compartido" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - #| msgid "cannot create internal descriptor" - msgid "cannot close file descriptor" - msgstr "non se pode crear un descriptor interno" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "ficheiro pequeno de máis" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "cabeceira ELF non válida" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "A codificación dos datos do ficheiro ELF non é \"big-endian\"" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "A codificación dos datos do ficheiro ELF non é \"little-endian\"" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "O identificador da versión do ficheiro ELF non coincide co actual" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ABI do SO do ficheiro ELF non válida" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "Versión do ABI do ficheiro ELF non válida" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "erro interno" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "A versión do ficheiro ELF non coincide coa actual" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "só se pode cargar ET_DYN e ET_EXEC" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "O phentsize do ficheiro ELF non é o tamaño esperado" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "non se pode abrir un ficheiro de obxecto compartido" - -@@ -655,11 +655,11 @@ msgstr "non se puido mapear un segmento - msgid "cannot map zero-fill pages" - msgstr "non se poden mapear páxinas de recheo de ceros" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "erro de cambio de reserva" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -667,58 +667,46 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "non se pode extende-lo alcance global" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - #, fuzzy - #| msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script." - msgid "TLS generation counter wrapped! Please report this." - msgstr "O xerador de TLS deu unha volta completa. Informe co script 'glibcbug'." - --#: elf/dl-open.c:542 --#, fuzzy --#| msgid "cannot load shared object file" --msgid "cannot load any more object with static TLS" --msgstr "non se pode carga-lo ficheiro de obxecto compartido" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "modo incorrecto para dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - #| msgid "invalid mode for dlopen()" - msgid "invalid target namespace in dlmopen()" - msgstr "modo incorrecto para dlopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - #| msgid "Cannot allocate memory" - msgid "cannot allocate memory in static TLS block" - msgstr "Non se pode reservar memoria" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "non se pode face-lo segmento gravable para o movemento" - --#: elf/dl-reloc.c:275 --#, fuzzy, c-format --#| msgid "%s: profiler found no PLTREL in object %s\n" --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: o perfilador non atopou PLTREL no obxecto %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "non se pode restaura-la protección do segmento despois de movelo" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - #, fuzzy - #| msgid "cannot change memory protections" - msgid "cannot apply additional memory protection after relocation" -@@ -728,7 +716,7 @@ msgstr "non se poden cambia-las protecci - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "Úsase RTLD_NEXT en código non cargado dinamicamente" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "non se poden crea-las estructuras de datos TLS" - -@@ -874,7 +862,7 @@ msgstr "Non se creou unha ligazón porqu - msgid "Can't open directory %s" - msgstr "Non se puido abri-lo directorio %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Non se atopou o ficheiro de entrada %s.\n" -@@ -1010,7 +998,7 @@ msgstr "non se pode libera-los parámetr - msgid "No such file or directory" - msgstr "Non hai tal ficheiro ou directorio" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "non é un ficheiro normal" - -@@ -1062,73 +1050,79 @@ msgstr "non se pode le-la cabeceira" - msgid "cannot read program interpreter" - msgstr "non se pode le-la cabeceira do arquivo" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "non se pode le-los datos do ficheiro" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "non se pode le-la cabeceira" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "Non se pode reservar memoria para a cabeceira do programa" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid pointer size" - msgid "invalid process ID '%s'" - msgstr "tamaño de punteiro non válido" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "non se pode abrir `%s'" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "non se pode abrir `%s'" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - #| msgid "cannot create searchlist" - msgid "cannot prepare reading %s/task" - msgstr "non se pode crea-la lista de busca" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "cabeceira ELF non válida" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot find C preprocessor: %s \n" - msgid "cannot attach to process %lu" - msgstr "non podo atopa-lo preprocesador de C: %s \n" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1163,28 +1157,28 @@ msgstr "%s non é un ficheiro de obxecto - msgid "more than one dynamic segment\n" - msgstr "máis dun segmento dinámico\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Non se puido executar fstat sobre o ficheiro %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, fuzzy, c-format - #| msgid "File %s is too small, not checked." - msgid "File %s is empty, not checked." - msgstr "O ficheiro %s é pequeno de máis, non se comproba." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "O ficheiro %s é pequeno de máis, non se comproba." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Non se puido executar mmap sobre o ficheiro %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s non é un ficheiro ELF - non ten os bytes máxicos correctos ao principio.\n" -@@ -1317,10 +1311,10 @@ msgstr "SOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "non se puido carga-lo obxecto compartido `%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "non se poden crear descriptores internos" -+msgid "cannot create internal descriptor" -+msgstr "non se pode crear un descriptor interno" - - #: elf/sprof.c:554 - #, c-format -@@ -1391,11 +1385,6 @@ msgstr "non se puido facer mmap sobre o - msgid "error while closing the profiling data file" - msgstr "erro ao pecha-lo ficheiro de datos de perfís" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "non se pode crear un descriptor interno" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1655,27 +1644,27 @@ msgstr "socket: fallo do protocolo no es - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: lectura curta" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "fallou a chamada a lstat" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "non se pode abrir" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fallou a chamada a fstat" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "propietario incorrecto" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "escribible por alguén distinto do propietario" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "ten un enlace duro nalgún sitio" - -@@ -1797,8 +1786,8 @@ msgid "no symbolic name given for end of - msgstr "non se deu un nome simbólico para a fin do rango" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1824,8 +1813,8 @@ msgid "%s: error in state machine" - msgstr "%s: erro na máquina de estados" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1846,7 +1835,7 @@ msgstr "carácter `%s' descoñecido" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "os números de bytes para as secuencias de bytes do inicio e fin de rango non son os mesmos: %d contra %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nomes non válidos para o rango de caracteres" -@@ -1870,8 +1859,8 @@ msgstr "o límite superior do rango non - msgid "resulting bytes for range not representable." - msgstr "os bytes resultantes do rango non son representables" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1936,7 +1925,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: código numérico de país `%d' non válido" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1958,8 +1947,8 @@ msgstr "%s: o campo `%s' está declarado - msgid "%s: unknown character in field `%s'" - msgstr "%s: carácter descoñecido no campo `%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1968,12 +1957,12 @@ msgstr "%s: carácter descoñecido no ca - msgid "%s: incomplete `END' line" - msgstr "%s: liña `END' incompleta" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1983,481 +1972,481 @@ msgstr "%s: liña `END' incompleta" - msgid "%s: syntax error" - msgstr "%s: erro de sintaxe" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' xa está definido no mapa de caracteres" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' xa está definido no repertorio" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' xa está definido coma un símbolo de ordenación" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' xa está definido coma un elemento de ordenación" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: as direccións de ordenación `forward' e `backward' son mutuamente excluíntes" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: `%s' mencionouse máis dunha vez na definición do peso %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: demasiadas regras; a primeira entrada só tiña %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: non hai regras de ordenación de abondo" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: non se admite unha cadea de peso baleira" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: os pesos deben emprega-lo mesmo signo de puntos suspensivos có nome" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: demasiados valores" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "a orde de `%.*s' xa está definida en %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: os símbolos inicial e final dun rango deben corresponderse con caracteres" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: as secuencias de bytes do primeiro e derradeiro carácter deben te-la mesma lonxitude" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, fuzzy, c-format - #| msgid "%s: byte sequence of first character of sequence is not lower than that of the last character" - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: a secuencia de bytes do primeiro carácter da secuencia non é menor cá do derradeiro carácter" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: os puntos suspensivos do rango simbólico non deben seguir directamente a `order_start'" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: os puntos suspensivos do rango simbólico non deben ir seguidos directamente por `order_end'" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, fuzzy, c-format - #| msgid "`%s' and `%.*s' are no valid names for symbolic range" - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' e `%.*s' non son nomes válidos para o rango simbólico" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: a orde de `%.*s' xa está definida en %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' debe ser un carácter" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `position' débese empregar para un nivel determinado en tódalas seccións ou en ningunha" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "o símbolo `%s' non está definido" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "o símbolo `%s' ten a mesma codificación có" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "símbolo `%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "non hai unha definición de `UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "demasiados erros; ríndome" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - #| msgid "Operation not supported" - msgid "%s: nested conditionals not supported" - msgstr "Operación non soportada" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: More than one -l option specified\n" - msgid "%s: more than one 'else'" - msgstr "%s: Indicouse máis dunha opción -l\n" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: definición de `%s' duplicada" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: definición da sección `%s' duplicada" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: carácter descoñecido no nome do símbolo de ordenación" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: carácter descoñecido no nome da definición de equivalentes" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: erro de sintaxe no valor da definición de equivalentes" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: símbolo `%s' descoñecido na definición de equivalentes" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "erro ao engadir un símbolo de ordenación equivalente" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "definición do script `%s' duplicada" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - #| msgid "%s: unknown section name `%s'" - msgid "%s: unknown section name `%.*s'" - msgstr "%s: nome de sección `%s' descoñecido" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: definicións de orde múltiples na sección `%s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: número non válido de regras de ordenación" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: hai varias definicións de orde para unha sección sen nome" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: falla a palabra clave `order_end'" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: a orde do símbolo de ordenación %.*s non está definida" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: a orde do elemento de ordenación %.*s non está definida" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: non se pode reordenar despois de %.*s: símbolo descoñecido" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: falla a palabra clave `reorder-end'" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: sección `%.*s' descoñecida" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: símbolo <%.*s> incorrecto" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: non se pode ter `%s' coma final dun rango de puntos suspensivos" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: non se admite unha descrición de categoría baleira" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: falla a palabra clave `reorder-sections-end'" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Non se especificou un nome de xogo de caracteres no mapa de caracteres" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "o carácter L'\\u%0*x' na clase `%s' debe estar na clase `%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "o carácter L'\\u%0*x' na clase `%s' non debe estar na clase `%s'" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "erro interno en %s, liña %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "o carácter '%s' na clase `%s' debe estar na clase `%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "o carácter '%s' na clase `%s' non debe estar na clase `%s'" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "O carácter non está na clase `%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "O carácter non debe estar na clase `%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "carácter non definido no mapa de caracteres" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "a categoría `digit' non ten entradas en grupos de dez" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "non se definiron díxitos de entrada e ningún dos nomes estándar do mapa de caracteres" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "non tódolos caracteres empregados en `outdigit' están dispoñibles no mapa de caracteres" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "non tódolos caracteres empregados en `outdigit' están dispoñibles no repertorio" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "clase de caracteres `%s' xa definida" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "límite da implementación: non se admiten máis de %Zd clases de caracteres" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "mapa de caracteres `%s' xa definido" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "límite da implementación: non se admiten máis de %d mapas de caracteres" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: o campo `%s' non contén exactamente dez entradas" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "o valor-a do rango é menor có valor-dende " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "as secuencias de caracteres do inicio e fin do rango deben te-la mesma lonxitude" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "a secuencia de caracteres do valor-a é menor cá secuencia do valor-dende" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "final prematura da definición `translit_ignore'" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "erro de sintaxe" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: erro de sintaxe na definición da nova clase de caracteres" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: erro de sintaxe na definición dun novo mapa de caracteres" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "o rango de puntos suspensivos debe estar marcado por dous operandos do mesmo tipo" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "débense emprega-los puntos suspensivos absolutos `...' cos valores de rangos de nomes simbólicos" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "débense emprega-los puntos suspensivos simbólicos hexadecimais `...' cos valores de rangos UCS" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "débense emprega-los puntos suspensivos absolutos `...' cos valores de rangos de códigos de caracteres" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "definición do mapeado `%s' duplicada" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: a sección `translit_start' non remata con `translit_end'" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: definición de `default_missing' duplicada" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "a definición anterior estaba aquí" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: non se atopou unha definición `default_missing' representable" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: carácter `%s' non definido, cando facía falta por ser valor por omisión" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: o carácter `%s' do mapa de caracteres non se pode representar cun só byte" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: o carácter `%s' que se precisa coma valor por defecto non se pode representar cun só byte" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "non se definiron díxitos de saída e ningún dos nomes estándar do mapa de caracteres" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: os datos de transliteración dende o locale `%s' non están dispoñibles" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: táboa para a clase \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: táboa para o mapa \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: táboa para o ancho: %lu bytes\n" -@@ -3878,17 +3867,23 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "non se pode abri-lo ficheiro de bases de datos `%s': %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "non se pode facer stat() sobre o ficheiro `%s': %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3988,159 +3983,221 @@ msgstr "non se pode facer que o socket a - msgid "cannot enable socket to accept connections: %s" - msgstr "non se pode facer que o socket acepte conexións: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Non se puido abri-lo directorio %s" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "non se pode manexa-la antiga petición versión %d; a versión actual é %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "non se pode escribi-lo resultado: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, fuzzy, c-format - #| msgid "error getting callers id: %s" - msgid "error getting caller's id: %s" - msgstr "erro ao obte-lo identificador do chamante: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "lectura demasiado curta ao le-la petición: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "lonxitude da clave da petición demasiado grande: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "lectura demasiado curta ao le-la clave de petición: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, fuzzy, c-format - #| msgid "handle_request: request received (Version = %d)" - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: petición recibida (Version = %d)" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: petición recibida (Version = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "non se puido carga-lo obxecto compartido `%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - #, fuzzy - #| msgid "cannot initialize archive file" - msgid "could not initialize conditional variable" - msgstr "non se pode inicializa-lo ficheiro de arquivo" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Non se puido executar nscd coma o usuario '%s'" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - #, fuzzy - #| msgid "getgrouplist failed" - msgid "initial getgrouplist failed" - msgstr "fallou a chamada a getgrouplist" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "fallou a chamada a getgrouplist" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "fallou a chamada a setgroups" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "escritura demasiado curta en %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "¡Non atopei \"%s\" na caché de grupos!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, fuzzy, c-format - #| msgid "Haven't found \"%s\" in group cache!" - msgid "Reloading \"%s\" in group cache!" -@@ -4236,7 +4293,7 @@ msgstr "Usar unha caché separada para c - msgid "Name Service Cache Daemon." - msgstr "Demo de Cache de Servicio de Nomes." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "número de parámetros incorrecto" -@@ -4274,7 +4331,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "Non se puido crea-lo ficheiro de rexistro \"%s\"" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "escritura incompleta" -@@ -4291,7 +4348,7 @@ msgstr "non se pode le-los datos do fich - msgid "invalidation failed" - msgstr "Fallo ao modificar" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "¡Só root pode usar esa opción!" -@@ -4377,36 +4434,36 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "non se poden escribi-las estatísticas: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, fuzzy, c-format - #| msgid "Only root is allowed to use this option!" - msgid "Only root or %s is allowed to use this option!" - msgstr "¡Só root pode usar esa opción!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "¡Non se está a executar nscd!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "non se poden le-los datos estatísticos" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4417,27 +4474,27 @@ msgstr "" - "\n" - "%15d nivel de depuración do servidor\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4448,7 +4505,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - #| msgid "" - #| "\n" -@@ -4519,95 +4576,95 @@ msgstr "¡Non atopei \"%s\" na caché de - msgid "Invalid numeric uid \"%s\"!" - msgstr "¡Identificación numérica de usuario \"%s\" non válida!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - #| msgid "lstat failed" - msgid "cap_init failed" - msgstr "fallou a chamada a lstat" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - #| msgid "setgroups failed" - msgid "cap_set_proc failed" - msgstr "fallou a chamada a setgroups" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - #| msgid "Unable to create callback" - msgid "Failed to create AVC lock" - msgstr "Non se pode crea-lo callback" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - #, fuzzy - #| msgid "error getting callers id: %s" - msgid "Error getting context of nscd" - msgstr "erro ao obte-lo identificador do chamante: %s" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - #, fuzzy - #| msgid "Error writing standard output" - msgid "Error getting sid from context" - msgstr "Erro ao escribir na saída estándar" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4662,19 +4719,19 @@ msgstr "getent - obte-las entradas da ba - msgid "Enumeration not supported on %s\n" - msgstr "A enumeración non está soportada en %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - #| msgid "Unknown database: %s\n" - msgid "Unknown database name" - msgstr "Base de datos descoñecida: %s\n" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - #, fuzzy - #| msgid "Supported databases:" - msgid "Supported databases:\n" - msgstr "Bases de datos soportadas:" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Base de datos descoñecida: %s\n" -@@ -4970,7 +5027,7 @@ msgstr ") ou \\) sen parella" - msgid "No previous regular expression" - msgstr "Non hai unha expresión regular precedente" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parámetro nulo ou non estabrecido" - -@@ -7743,6 +7800,9 @@ msgstr "%s: Non se pode crea-lo director - #~ msgid "while allocating hash table entry" - #~ msgstr "ao reservar espacio para a entrada da táboa hash" - -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "non se pode facer stat() sobre o ficheiro `%s': %s" -+ - #~ msgid "Cannot run nscd in secure mode as unprivileged user" - #~ msgstr "Non se pode executar nscd en modo seguro coma usuario non privilexiado" - -@@ -7782,6 +7842,9 @@ msgstr "%s: Non se pode crea-lo director - #~ msgid "shared object cannot be dlopen()ed: static TLS memory too small" - #~ msgstr "non se pode facer dlopen() sobre o obxecto compartido: a memoria TLS estática é pequena de máis" - -+#~ msgid "%s: profiler found no PLTREL in object %s\n" -+#~ msgstr "%s: o perfilador non atopou PLTREL no obxecto %s\n" -+ - #~ msgid "%s: profiler out of memory shadowing PLTREL of %s\n" - #~ msgstr "%s: o perfilador esgotou a memoria sombreando o PLTREL de %s\n" - -@@ -7827,6 +7890,9 @@ msgstr "%s: Non se pode crea-lo director - #~ msgid "XCHS" - #~ msgstr "XCHS" - -+#~ msgid "cannot load shared object file" -+#~ msgstr "non se pode carga-lo ficheiro de obxecto compartido" -+ - #~ msgid "fcntl: F_SETFD" - #~ msgstr "fcntl: F_SETFD" - -Index: glibc-2.23/po/hr.po -=================================================================== ---- glibc-2.23.orig/po/hr.po -+++ glibc-2.23/po/hr.po -@@ -7,7 +7,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.17-pre1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2012-12-20 22:34+0100\n" - "Last-Translator: Tomislav Krznar \n" - "Language-Team: Croatian \n" -@@ -143,10 +143,10 @@ msgstr "" - "[IZLAZNA-DATOTEKA [ULAZNA-DATOTEKA]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -158,7 +158,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -175,7 +175,7 @@ msgstr "" - "Äak ni za TRGOVINSKU PRIKLADNOST ili ODGOVARANJE ODREÄENOJ SVRSI.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -429,11 +429,11 @@ msgstr "Promjena pristupnih dozvola %s u - msgid "Renaming of %s to %s failed" - msgstr "Preimenovanje %s u %s nije uspjelo" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "ne mogu napraviti popis podruÄja" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "dijeljeni objekt nije otvoren" - -@@ -506,127 +506,127 @@ msgstr "ne mogu napraviti polje putanja - msgid "cannot stat shared object" - msgstr "ne mogu izvrÅ¡iti stat na dijeljenom objektu" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "ne mogu otvoriti neispunjeni ureÄ‘aj" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "ne mogu napraviti opisnik dijeljenog objekta" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "ne mogu proÄitati podatke datoteke" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF load naredba nije poravnata sa stranicom" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "Adresa/pomak ELF load naredbe nema pravilno poravnanje" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "ne mogu alocirati TLS podatkovne strukture za poÄetnu dretvu" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "ne mogu raditi s TLS podacima" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "datoteka objekta nema uÄitljive segmente" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "ne mogu dinamiÄki uÄitati izvrÅ¡nu datoteku" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "datoteka objekta nema dinamiÄki odjeljak" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "dijeljeni objekt se ne može otvoriti s dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "ne mogu alocirati memoriju za zaglavlje programa" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "neispravan pozivatelj" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "ne mogu promijeniti zaÅ¡tite memorije" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "ne mogu omogućiti izvrÅ¡ni stog, Å¡to zahtijeva dijeljeni objekt" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "ne mogu zatvoriti opisnik datoteke" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "datoteka je prekratka" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "neispravno ELF zaglavlje" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "Kodiranje podataka ELF datoteke nije „big-endianâ€" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "Kodiranje podataka ELF datoteke nije „little-endianâ€" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "Identifikator inaÄice ELF datoteke ne odgovara trenutnom" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "OS ABI ELF datoteke nije ispravan" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ABI inaÄica ELF datoteke nije ispravna" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "Popunjavanje u e_ident nije nula" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "interna greÅ¡ka" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "InaÄica ELF datoteke ne odgovara trenutnoj" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "samo ET_DYN i ET_EXEC se mogu uÄitati" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "phentsize ELF datoteke nije oÄekivane veliÄine" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "neispravan ELF razred: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "neispravan ELF razred: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "ne mogu otvoriti datoteku dijeljenog objekta" - -@@ -638,11 +638,11 @@ msgstr "nisam uspio pridružiti segment - msgid "cannot map zero-fill pages" - msgstr "ne mogu pridružiti neispunjene stranice" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "greÅ¡ka premjeÅ¡tanja" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "greÅ¡ka traženja simbola" - -@@ -650,49 +650,40 @@ msgstr "greÅ¡ka traženja simbola" - msgid "cannot extend global scope" - msgstr "ne mogu proÅ¡iriti globalno podruÄje" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "Omatanje brojaÄa TLS stvaranja! Molim prijavite ovo." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "ne mogu uÄitati viÅ¡e objekata sa statiÄkim TLS-om" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "neispravan mod za dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "nema viÅ¡e prostora imena dostupnih za dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "neispravan odrediÅ¡ni prostor imena u dlopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "ne mogu alocirati memoriju u statiÄkom TLS bloku" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "ne mogu pretvoriti segment u zapisiv za premjeÅ¡tanje" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: u objektu %s nije naÄ‘en PLTREL\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: nema dovoljno memorije za spremanje rezultata premjeÅ¡tanja za %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "ne mogu obnoviti zaÅ¡titu segmenta nakon premjeÅ¡tanja" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "ne mogu primijeniti dodatnu zaÅ¡titu memorije nakon premjeÅ¡tanja" - -@@ -700,7 +691,7 @@ msgstr "ne mogu primijeniti dodatnu zaÅ¡ - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT koriÅ¡ten u kodu se ne uÄitava dinamiÄki" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "ne mogu napraviti TLS podatkovne strukture" - -@@ -844,7 +835,7 @@ msgstr "Veza nije stvorena jer nije pron - msgid "Can't open directory %s" - msgstr "Ne mogu otvoriti direktorij %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Ulazna datoteka %s nije pronaÄ‘ena.\n" -@@ -975,7 +966,7 @@ msgstr "nedostaju argumenti datoteke" - msgid "No such file or directory" - msgstr "Nema takve datoteke ili direktorija" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "nije obiÄna datoteka" - -@@ -1020,65 +1011,71 @@ msgstr "ne mogu proÄitati r_debug" - msgid "cannot read program interpreter" - msgstr "ne mogu proÄitati interpreter programa" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "ne mogu Äitati mapu veza" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "ne mogu proÄitati ime objekta" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "ne mogu alocirati memoriju za zaglavlje programa" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "IspiÅ¡i dinamiÄke dijeljene objekte uÄitane u proces." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Potreban je toÄno jedan parametar s identifikatorom procesa.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "neispravan identifikator procesa „%sâ€" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "ne mogu otvoriti %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "ne mogu otvoriti %s/task" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "ne mogu pripremiti Äitanje %s/task" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "neispravan identifikator dretve „%sâ€" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "ne mogu pridružiti procesu %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "ne mogu saznati informacije o procesu %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "proces %lu nije ELF program" -@@ -1113,27 +1110,27 @@ msgstr "%s nije datoteka dijeljenog obje - msgid "more than one dynamic segment\n" - msgstr "viÅ¡e od jednog dinamiÄkog segmenta\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Ne mogu izvrÅ¡iti fstat na datoteci %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Datoteka %s je prazna, ne provjeravam." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Datoteka %s je premalena, ne provjeravam." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Ne mogu izvrÅ¡iti mmap na datoteci %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s nije ELF datoteka - ima neispravne bajtove na poÄetku.\n" -@@ -1267,10 +1264,10 @@ msgstr "DIJOBJ [PROFPODACI]" - msgid "failed to load shared object `%s'" - msgstr "nisam uspio uÄitati dijeljeni objekt „%sâ€" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "ne mogu napraviti interne opisnike" -+msgid "cannot create internal descriptor" -+msgstr "ne mogu napraviti interni opisnik" - - #: elf/sprof.c:554 - #, c-format -@@ -1337,11 +1334,6 @@ msgstr "nisam uspio izvrÅ¡iti mmap na da - msgid "error while closing the profiling data file" - msgstr "greÅ¡ka pri zatvaranju datoteke podataka za profiliranje" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "ne mogu napraviti interni opisnik" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1599,27 +1591,27 @@ msgstr "socket: greÅ¡ka protokola u post - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: kratko Äitanje" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat nije uspio" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "ne mogu otvoriti" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat nije uspio" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "nepostojeći vlasnik" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "mogu pisati i nevlasnici" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "negdje je Ävrsto povezan" - -@@ -1739,8 +1731,8 @@ msgid "no symbolic name given for end of - msgstr "nije navedeno simboliÄko ime kraja raspona" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1766,8 +1758,8 @@ msgid "%s: error in state machine" - msgstr "%s: greÅ¡ka u automatu" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1788,7 +1780,7 @@ msgstr "nepoznat znak „%sâ€" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "broj bajtova niza bajtova na poÄetku i kraju raspona nije jednak: %d i %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "neispravna imena raspona znakova" -@@ -1810,8 +1802,8 @@ msgstr "gornja granica u rasponu je manj - msgid "resulting bytes for range not representable." - msgstr "rezultirajući bajtovi raspona se ne mogu prikazati." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1875,7 +1867,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: brojÄani kod zemlje „%d†nije ispravan" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1897,8 +1889,8 @@ msgstr "%s: polje „%s†je deklariran - msgid "%s: unknown character in field `%s'" - msgstr "%s: nepoznat znak u polju „%sâ€" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1907,12 +1899,12 @@ msgstr "%s: nepoznat znak u polju „%sâ - msgid "%s: incomplete `END' line" - msgstr "%s: nepotpuni „END†redak" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1922,477 +1914,477 @@ msgstr "%s: nepotpuni „END†redak" - msgid "%s: syntax error" - msgstr "%s: sintaksna greÅ¡ka" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "„%.*s†je već definiran u skupu znakova" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "„%.*s†je već definiran u repertoaru" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "„%.*s†je već definiran kao simbol razvrstavanja" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "„%.*s†je već definiran kao element razvrstavanja" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: „forward†i „backward†se meÄ‘usobno iskljuÄuju" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: „%s†spomenuto viÅ¡e puta u definiciji težine %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: previÅ¡e pravila, prva stavka je imala samo %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: nema dovoljno pravila razvrstavanja" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: prazan niz znakova nije dozvoljen" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: težine moraju koristiti isti znak trotoÄja kao ime" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: previÅ¡e vrijednosti" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "redoslijed za „%.*s†je već definiran u %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: poÄetni i krajnji simbol raspona moraju predstavljati znakove" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: nizovi bajtova prvog i zadnjeg znaka moraju biti iste duljine" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: niz bajtova prvog znaka raspona nije manji od onoga zadnjeg znaka" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: trotoÄje simboliÄkog raspona ne smije izravno slijediti nakon „order_startâ€" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: trotoÄje simboliÄkog raspona ne smije izravno slijediti „order_endâ€" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "„%s†i „%.*s†nisu ispravna imena simboliÄkog raspona" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: redoslijed za „%.*s†je već definiran u %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: „%s†mora biti znak" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: „position†se mora koristiti za odreÄ‘enu razinu u svim dijelovima ili niti u jednom" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "simbol „%s†nije definiran" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "simbol „%s†ima isto kodiranje kao" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "simbol „%sâ€" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "nema definicije od „UNDEFINEDâ€" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "previÅ¡e greÅ¡aka, odustajem" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: ugniježđeni uvjeti nisu podržani" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: viÅ¡e od jednog „elseâ€" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: dvostruka definicija „%sâ€" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: dvostruka deklaracija dijela „%sâ€" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: nepoznat znak u imenu simbola razvrstavanja" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: nepoznat znak u imenu ekvivalentne definicije" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: nepoznat znak u vrijednosti ekvivalentne definicije" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: nepoznat simbol „%s†u ekvivalentnoj definiciji" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "greÅ¡ka pri dodavanju ekvivalentnog simbola razvrstavanja" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "dvostruka definicija pisma „%sâ€" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: nepoznato ime odjeljka „%.*sâ€" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: viÅ¡estruke definicije redoslijeda za odjeljak „%sâ€" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: neispravan broj pravila razvrstavanja" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: viÅ¡estruke definicije redoslijeda za neimenovani odjeljak" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: nedostaje kljuÄna rijeÄ â€žorder_endâ€" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: redoslijed za simbol razvrstavanja %.*s joÅ¡ nije definiran" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: redoslijed za element razvrstavanja %.*s joÅ¡ nije definiran" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: ne mogu promijeniti raspored poslije %.*s: simbol nije poznat" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: nedostaje kljuÄna rijeÄ â€žreorder-endâ€" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: odjeljak „%.*s†nije poznat" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: neispravan simbol <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: na kraju raspona trotoÄja ne može biti „%sâ€" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: prazan opis kategorije nije dozvoljen" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: nedostaje kljuÄna rijeÄ â€žreorder-sections-endâ€" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: „%s†bez odgovarajućeg „ifdef†ili „ifndefâ€" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: „endif†bez odgovarajućeg „ifdef†ili „ifndefâ€" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Nema imena skupa znakova navedenog u tablici znakova" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "znak L„\\u%0*x†iz razreda „%s†mora biti u razredu „%sâ€" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "znak L„\\u%0*x†iz razreda „%s†ne smije biti u razredu „%sâ€" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "interna greÅ¡ka u %s, redak %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "znak „%s†iz razreda „%s†mora biti u razredu „%sâ€" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "znak „%s†iz razreda „%s†ne smije biti u razredu „%sâ€" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr " znak nije u razredu „%sâ€" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr " znak ne smije biti u razredu „%sâ€" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "znak nije definiran u tablici znakova" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "kategorija „digit†nema stavke u grupama od po deset" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "nema definiranih ulaznih znamenaka i nijednog od standardnih imena iz tablice znakova" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "neki znakovi koriÅ¡teni u „outdigit†nisu dostupni u tablici znakova" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "neki znakovi koriÅ¡teni u „outdigit†nisu dostupni u repertoaru" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "razred znakova „%s†je već definiran" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "ograniÄenje implementacije: nije dozvoljeno viÅ¡e od %Zd razreda znakova" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "tablica znakova „%s†je već definirana" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "ograniÄenje implementacije: nije dozvoljeno viÅ¡e od %d tablica znakova" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: polje „%s†ne sadrži toÄno deset stavki" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "„doâ€-vrijednost raspona je manja od „odâ€-vrijednosti " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "poÄetni i krajnji niz znakova raspona moraju imati istu duljinu" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "„odâ€-vrijednost niza znakova je manja od „doâ€-vrijednosti niza" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "preuranjen kraj definicije „translit_ignoreâ€" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "sintaksna greÅ¡ka" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: sintaksna greÅ¡ka u definiciji novog razreda znakova" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: sintaksna greÅ¡ka u definiciji nove tablice znakova" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "raspon trotoÄja mora biti oznaÄen s dva operanda iste vrste" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "uz simboliÄka imena vrijednosti raspona ne smije se koristiti apsolutno trotoÄje „...â€" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "uz UCS vrijednosti raspona mora se koristiti heksadekadsko simboliÄko trotoÄje „..â€" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "uz kodove znakova vrijednosti raspona mora se koristiti apsolutno trotoÄje „...â€" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "dvostruka definicija pridruživanja „%sâ€" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: „translit_start†odjeljak ne zavÅ¡ava sa „translit_endâ€" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: dvostruka „default_missing†definicija" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "postoji prethodna definicija" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: nema reprezentativne definicije „default_missingâ€" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: znak „%s†nije definiran dok je potreban kao zadana vrijednost" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: znak „%s†u tablici znakova ne može se prikazati jednim bajtom" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: znak „%s†potreban kao zadana vrijednost ne može se prikazati jednim bajtom" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "izlazne znamenke nisu definirane i nemaju standardna imena iz tablice znakova" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: podaci transliteracije iz lokala „%s†nisu dostupni" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tablica razreda „%sâ€: %lu bajtova\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tablica znakovne tablice „%sâ€: %lu bajtova\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tablica za Å¡irinu: %lu bajtova\n" -@@ -3815,17 +3807,23 @@ msgstr "dodaj novu stavku „%s†vrste - msgid " (first)" - msgstr " (prvi)" - --#: nscd/cache.c:285 nscd/connections.c:1000 --#, c-format --msgid "cannot stat() file `%s': %s" -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "ne mogu izvrÅ¡iti stat() na datoteci „%sâ€: %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "Äistim %s spremnik, vrijeme %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "razmatram %s stavku „%sâ€, vremensko ograniÄenje %" -@@ -3911,153 +3909,217 @@ msgstr "ne mogu postaviti utiÄnicu za z - msgid "cannot enable socket to accept connections: %s" - msgstr "ne mogu omogućiti utiÄnicu za prihvaćanje veza: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 - #, c-format --msgid "register trace file %s for database %s" -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Ne mogu otvoriti direktorij %s" -+ -+#: nscd/connections.c:1022 -+#, fuzzy, c-format -+#| msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "registriraj datoteku praćenja %s za bazu podataka %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "omogući pristup u FD %d, za %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "ne mogu obraditi staru inaÄicu zahtjeva %d, trenutna inaÄica je %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "zahtjev od %ld nije obraÄ‘en zbog nedostajućih dozvola" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "zahtjev od „%s†[%ld] nije obraÄ‘en zbog nedostajućih dozvola" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "zahtjev nije obraÄ‘en zbog nedostajućih dozvola" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "ne mogu zapisati rezultat: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "greÅ¡ka pri dohvatu broja pozivatelja: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "ne mogu otvoriti /proc/self/cmdline: %s, onemogućujem paranoiÄni naÄin" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "ne mogu Äitati /proc/self/cmdline: %s, onemogućujem paranoiÄni naÄin" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "ne mogu promijeniti u stari UID: %s, onemogućujem paranoiÄni naÄin" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "ne mogu promijeniti u stari GID: %s, onemogućujem paranoiÄni naÄin" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "ne mogu promijeniti u stari radni direktorij: %s, onemogućujem paranoiÄni naÄin" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "ponovljeno izvrÅ¡avanje nije uspjelo: %s, onemogućujem paranoiÄni naÄin" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "ne mogu promijeniti trenutni radni direktorij u „/â€: %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "kratko Äitanje pri Äitanju zahtjeva: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "duljina kljuÄa u zahtjevu je prevelika: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "kratko Äitanje pri Äitanju kljuÄa zahtjeva: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: primljen zahtjev (InaÄica = %d) od PID-a %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: primljen zahtjev (InaÄica = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "nisam uspio uÄitati dijeljeni objekt „%sâ€" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "onemogućen inotify nakon greÅ¡ke Äitanja %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "ne mogu inicijalizirati varijablu uvjeta" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "ne mogu pokrenuti dretvu Äišćenja, zavrÅ¡avam" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "ne mogu pokrenuti nijednu radnu dretvu, zavrÅ¡avam" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Nisam uspio pokrenuti nscd kao korisnik „%sâ€" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "inicijalni getgrouplist nije uspio" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist nije uspio" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups nije uspio" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "kratko pisanje u %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Nisam pronaÅ¡ao „%s†u spremniku grupa!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Ponovo uÄitavam „%s†u spremnik grupa!" -@@ -4145,7 +4207,7 @@ msgstr "Koristi odvojeni spremnik za sva - msgid "Name Service Cache Daemon." - msgstr "Pozadinski proces spremnika usluga imena." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "neispravan broj argumenata" -@@ -4179,7 +4241,7 @@ msgstr "ne mogu promijeniti trenutni rad - msgid "Could not create log file" - msgstr "Ne mogu napraviti datoteku dnevnika" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "pisanje nedovrÅ¡eno" -@@ -4194,7 +4256,7 @@ msgstr "ne mogu Äitati nevažeći ACK" - msgid "invalidation failed" - msgstr "nisam uspio uÄiniti nevažećim" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Samo root smije koristiti ovu opciju!" -@@ -4283,35 +4345,35 @@ msgstr "ne mogu otkriti trenutni radni d - msgid "maximum file size for %s database too small" - msgstr "najveća veliÄina datoteke za bazu podataka %s je premalena" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "ne mogu pisati statistiku: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "da" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "ne" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Samo root ili %s smiju koristiti ovu opciju!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd nije pokrenut!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "ne mogu Äitati statistiÄke podatke" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4322,27 +4384,27 @@ msgstr "" - "\n" - "%15d debug razina poslužitelja\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus vrijeme rada poslužitelja\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus vrijeme rada poslužitelja\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus vrijeme rada poslužitelja\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus vrijeme rada poslužitelja\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4359,7 +4421,7 @@ msgstr "" - "%15lu ponovo pokreni interno\n" - "%15u broj ponovljenih uÄitavanja\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4425,87 +4487,87 @@ msgstr "Ponovo uÄitavam „%s†u spre - msgid "Invalid numeric uid \"%s\"!" - msgstr "Neispravan numeriÄki uid „%sâ€!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Nisam uspio otvoriti vezu na revizorski podsustav: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Nisam uspio postaviti keep-capabilities" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) nije uspio" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Nisam uspio inicijalizirati ispuÅ¡tanje mogućnosti" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init nije uspio" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Nisam uspio ispustiti mogućnosti" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc nije uspio" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Nisam uspio postaviti keep-capabilities na poÄetnu vrijednost" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Nisam uspio odrediti podržava li jezgra SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Nisam uspio pokrenuti AVC dretvu" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Nisam uspio napraviti AVC zakljuÄavanje" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Nisam uspio pokrenuti AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Pristup spremniku vektora (AVC - Access Vector Cache) je pokrenut" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - #| msgid "Error getting context of nscd" - msgid "Error getting security class for nscd." - msgstr "GreÅ¡ka pri dohvatu konteksta nscd-a" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "GreÅ¡ka pri dohvatu konteksta utiÄnice" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "GreÅ¡ka pri dohvatu konteksta nscd-a" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "GreÅ¡ka pri dohvatu sid-a iz konteksta " - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4569,16 +4631,16 @@ msgstr "Dohvati stavke iz administrativn - msgid "Enumeration not supported on %s\n" - msgstr "Numeriranje nije podržano na %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Nepoznata baza podataka" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Podržane baze podataka:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Nepoznata baza podataka: %s\n" -@@ -4858,7 +4920,7 @@ msgstr "Neuparena ) ili \\)" - msgid "No previous regular expression" - msgstr "Nedostaje prethodni regularni izraz" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parametar prazan ili nije postavljen" - -@@ -7248,6 +7310,15 @@ msgstr "previÅ¡e kratica vremenskih zona - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: Ne mogu napraviti direktorij %s: %s\n" - -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "ne mogu uÄitati viÅ¡e objekata sa statiÄkim TLS-om" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: u objektu %s nije naÄ‘en PLTREL\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "ne mogu napraviti interne opisnike" -+ - #~ msgid "compile-time support for database policy missing" - #~ msgstr "nedostaje podrÅ¡ka za vrijeme kompajliranja police baze podataka" - -Index: glibc-2.23/po/hu.po -=================================================================== ---- glibc-2.23.orig/po/hu.po -+++ glibc-2.23/po/hu.po -@@ -7,7 +7,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.10.1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2009-08-04 02:23+0200\n" - "Last-Translator: Gabor Kelemen \n" - "Language-Team: Hungarian \n" -@@ -144,10 +144,10 @@ msgstr "" - "[KIMENETIFÃJL [BEMENETIFÃJL]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, fuzzy, c-format -@@ -162,7 +162,7 @@ msgstr "" - ".\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -179,7 +179,7 @@ msgstr "" - "garancia, még az ADOTT CÉLRE VALÓ ELADHATÓSÃGRA VAGY MEGFELELÅSÉGRE SEM.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -444,11 +444,11 @@ msgstr "%s hozzáférési jogainak módo - msgid "Renaming of %s to %s failed" - msgstr "%s átnevezése meghiúsult erre: %s" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "Nem hozható létre hatókörlista" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "a megosztott objektum nincs megnyitva" - -@@ -521,127 +521,127 @@ msgstr "nem hozható létre keresésiút - msgid "cannot stat shared object" - msgstr "nem érhetÅ‘ el a megosztott objektum" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "nem nyitható meg a nullával kitöltÅ‘ eszköz" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "nem hozható létre megosztott objektumleíró" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "nem olvashatók a fájladatok" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "az ELF betöltési parancs igazítása nem lapokhoz igazított" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "az ELF betöltési parancs címe/eltolása nincs megfelelÅ‘en igazítva" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "nem foglalhatók TLS adatszerkezetek a kiinduló szálhoz" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "a TLS adatok nem kezelhetÅ‘k" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "az objektumfájlnak nincsenek betölthetÅ‘ szakaszai" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "nem tölthetÅ‘ be dinamikusan a végrehajtható fájl" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "az objektumfájlnak nincs dinamikus szakasza" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "megosztott objektumra nem hívható meg a dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "nem foglalható memória a program fejlécének" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "érvénytelen hívó" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "a memóriavédelem nem módosítható" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "nem engedélyezhetÅ‘ a végrehajtható verem, mint ahogy a megosztott objektum megköveteli" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "nem zárható le a fájlleíró" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "a fájl túl rövid" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "érvénytelen ELF fejléc" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "az ELF fájladatok kódolása nem big endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "az ELF fájladatok kódolása nem little endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "az ELF fájlverzió azonosítója nem felel meg az aktuálisnak" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "az ELF fájl OS ABI-ja érvénytelen" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "az ELF fájl ABI verziója érvénytelen" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "belsÅ‘ hiba" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "az ELF fájlverzió nem felel meg az aktuálisnak" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "csak az ET_DYN és ET_EXEC tölthetÅ‘ be" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "az ELF fájl phentsize értéke nem a várt méretű" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "hibás ELF osztály: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "hibás ELF osztály: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "nem nyitható meg a megosztott objektumfájl" - -@@ -653,11 +653,11 @@ msgstr "a szegmens leképezése meghiús - msgid "cannot map zero-fill pages" - msgstr "nem képezhetÅ‘k le a nullával kitöltött lapok" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "áthelyezési hiba" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "szimbólumkikeresési hiba" - -@@ -665,49 +665,40 @@ msgstr "szimbólumkikeresési hiba" - msgid "cannot extend global scope" - msgstr "a globális hatáskör nem bÅ‘víthetÅ‘" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "" - -@@ -715,7 +706,7 @@ msgstr "" - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "" - -@@ -861,7 +852,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "" -@@ -992,7 +983,7 @@ msgstr "" - msgid "No such file or directory" - msgstr "Nincs ilyen fájl vagy könyvtár" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "" - -@@ -1041,71 +1032,77 @@ msgstr "a fejléc nem olvasható" - msgid "cannot read program interpreter" - msgstr "a fejléc nem olvasható" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "nem olvashatók a fájladatok" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "a fejléc nem olvasható" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "nem foglalható memória a program fejlécének" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid pointer size" - msgid "invalid process ID '%s'" - msgstr "érvénytelen mutatóméret" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "„%s†nem nyitható meg" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "„%s†nem nyitható meg" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "érvénytelen ELF fejléc" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1140,27 +1137,27 @@ msgstr "" - msgid "more than one dynamic segment\n" - msgstr "" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "" -@@ -1286,9 +1283,9 @@ msgstr "" - msgid "failed to load shared object `%s'" - msgstr "" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "" - - #: elf/sprof.c:554 -@@ -1356,11 +1353,6 @@ msgstr "" - msgid "error while closing the profiling data file" - msgstr "" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1604,27 +1596,27 @@ msgstr "" - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "" - -@@ -1744,8 +1736,8 @@ msgid "no symbolic name given for end of - msgstr "" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1771,8 +1763,8 @@ msgid "%s: error in state machine" - msgstr "" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1793,7 +1785,7 @@ msgstr "" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "" -@@ -1815,8 +1807,8 @@ msgstr "" - msgid "resulting bytes for range not representable." - msgstr "" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1880,7 +1872,7 @@ msgid "%s: numeric country code `%d' not - msgstr "" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1902,8 +1894,8 @@ msgstr "" - msgid "%s: unknown character in field `%s'" - msgstr "" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1912,12 +1904,12 @@ msgstr "" - msgid "%s: incomplete `END' line" - msgstr "" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1927,476 +1919,476 @@ msgstr "" - msgid "%s: syntax error" - msgstr "" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "szintaktikai hiba" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -3775,17 +3767,22 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 - #, c-format --msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3871,153 +3868,213 @@ msgstr "" - msgid "cannot enable socket to accept connections: %s" - msgstr "" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "failed to add file watch `%s`: %s" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "" -@@ -4105,7 +4162,7 @@ msgstr "" - msgid "Name Service Cache Daemon." - msgstr "" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "" -@@ -4139,7 +4196,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "" -@@ -4154,7 +4211,7 @@ msgstr "" - msgid "invalidation failed" - msgstr "" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "" -@@ -4235,35 +4292,35 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "igen" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "nem" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4271,27 +4328,27 @@ msgid "" - "%15d server debug level\n" - msgstr "" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4302,7 +4359,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4345,85 +4402,85 @@ msgstr "" - msgid "Invalid numeric uid \"%s\"!" - msgstr "" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4474,16 +4531,16 @@ msgstr "" - msgid "Enumeration not supported on %s\n" - msgstr "" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "" -@@ -4765,7 +4822,7 @@ msgstr "Pár nélküli ) vagy \\)" - msgid "No previous regular expression" - msgstr "Nincs megelÅ‘zÅ‘ szabályos kifejezés" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -Index: glibc-2.23/po/ia.po -=================================================================== ---- glibc-2.23.orig/po/ia.po -+++ glibc-2.23/po/ia.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.17-pre1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2013-04-26 04:10+0400\n" - "Last-Translator: Nik Kalach \n" - "Language-Team: Interlingua \n" -@@ -143,10 +143,10 @@ msgstr "" - "[FILE-OUTPUT [FILE-INPUT]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -158,7 +158,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -175,7 +175,7 @@ msgstr "" - "NULLE garantia; atque pro MERCABILETATE o APTITUDE PRO UN PROPOSITO PARTICULAR.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -430,11 +430,11 @@ msgstr "Insuccesso del modification del - msgid "Renaming of %s to %s failed" - msgstr "Insuccesso del cambiamento de nomine %s a %s" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "impossibile de crear un lista de ambito" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "objecto condivise non aperte" - -@@ -507,127 +507,127 @@ msgstr "impossibile de crear un array de - msgid "cannot stat shared object" - msgstr "impossibile de effectuar stat sur le objecto condivise" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "impossibile de aperir un dispositovo de impletion con zeros" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "impossibile de crear un descriptor de objecto condivise" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "impossibile de leger datos del file" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "Le commando de cargar ELF non es alineate a un pagina" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "Le adresso o displaciamento del commando de cargar ELF non es alineate correctemente" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "impossibile de allocar le structura de datos TLS pro le filo initial" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "impossibile de tractar datos TLS" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "le file de objecto non ha segmentos cargabile" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "impossibile de cargar dynamicamente un executabile" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "le file de objecto non ha un section dynamic" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "le objecto condivise non pote esser aperite via dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "impossibile de allocar le memoria pro un testa de programma" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "appellante invalide" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "impossibile de modificar le protection de memoria" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "impossibile de habilitar un pila executabile como le objecto condivise necessita" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "impossibile de clauder un descriptor de file" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "file troppo curte" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "testa ELF incorrecte" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "le codification de datos del file ELF non es big-endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "le codification de datos del file ELF non es little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "le identificator de version del file ELF non corresponde con le version actual" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ABI de systema operative del file ELF invalide" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "Version de ABI del file ELF invalide" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "impletion con non-zeros in e_ident" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "error interne" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "Le version del file ELF non corresponde con le version actual" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "solo ET_DYN e ET_EXEC pote esser cargate" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "Le valor `phentsize' del file ELF non concorda con le expectation" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "classe ELF incorrecte: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "classe ELF incorrecte: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "impossibile de aperir un file de objecto condivise" - -@@ -639,11 +639,11 @@ msgstr "insuccesso de mmap sur un object - msgid "cannot map zero-fill pages" - msgstr "impossibile de mmap paginas del dispositivo de impletion con zeros" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "error de relocation" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "error de cerca de symbolo" - -@@ -651,49 +651,40 @@ msgstr "error de cerca de symbolo" - msgid "cannot extend global scope" - msgstr "impossibile de extender le ambito global" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "Le contator de generation TLS ha permitite! Reporta iste problema." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "impossibile de cargar necun altere objectos con TLS static" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "modo invalide pro dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "necun altere spatios de nomines disponibile pro dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "spatio de nomines de destination invalide in dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "impossibile de allocar memoria in un bloco TLS static" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "impossibile de render un segmento scribibile pro le relocation" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: necun PLTREL trovate in le objecto %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: memoria exhauste pro immagazinar le resultatos de relocation pro %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "impossibile de restabilir le protection del segmento post le relocation" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "impossibile de applicar le protection de memoria additional post le relocation" - -@@ -701,7 +692,7 @@ msgstr "impossibile de applicar le prote - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT usate in le codice non cargate dynamicamente" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "impossibile de crear structuras de datos TLS" - -@@ -845,7 +836,7 @@ msgstr "Ligamine non create proque il no - msgid "Can't open directory %s" - msgstr "Impossibile de aperir le directorio %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Le file de entrata %s non trovate.\n" -@@ -976,7 +967,7 @@ msgstr "argumentos de file mancante" - msgid "No such file or directory" - msgstr "Necun tal file o directorio" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "le file non es regular" - -@@ -1021,65 +1012,71 @@ msgstr "impossibile de leger r_debug" - msgid "cannot read program interpreter" - msgstr "impossibile de leger le interprete de programma" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "impossibile de leger le mappa de ligamines" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "impossibile de leger le nomine de objecto" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "impossibile de allocar le memoria pro un testa de programma" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "Monstrar objectos condivise dynamic incargate in le processo." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Un parametro exactemente con le identificator de processo es necessari.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "identificator de processo invalide '%s'" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "impossibile de aperir %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "impossibile de aperir %s/task" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "impossibile de preparar a leger %s/task" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "identificator de filo invalide '%s'" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "impossibile de attaccar al processo %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "impossibile de obtener le information super le processo %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "le processo %lu non es un programma ELF" -@@ -1114,27 +1111,27 @@ msgstr "%s non es un file de objectos co - msgid "more than one dynamic segment\n" - msgstr "plus de un segmento dynamic\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Impossibile de effectuar fstat sur le file %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Le file %s es vacue, non controlate." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Le file %s es troppo parve, non controlate." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Impossible de effectuar mmap sur le file %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s non es un file ELF - illo ha le bytes magic incorrecte al testa.\n" -@@ -1268,10 +1265,10 @@ msgstr "OBJCONDIV [DATOSPROF]" - msgid "failed to load shared object `%s'" - msgstr "insuccesso del cargamento del objecto condivise `%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "impossibile de crear descriptores interne" -+msgid "cannot create internal descriptor" -+msgstr "impossibile de crear un descriptor interne" - - #: elf/sprof.c:554 - #, c-format -@@ -1338,11 +1335,6 @@ msgstr "insuccesso de mmap sur le file d - msgid "error while closing the profiling data file" - msgstr "error al clauder le file de datos de profilage" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "impossibile de crear un descriptor interne" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1600,27 +1592,27 @@ msgstr "socket: insuccesso de protocollo - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: lectura curte" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "insuccesso de lstat" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "impossibile de aperir" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "insuccesso de fstat" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "proprietario incorrecte" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "accessibile pro scriber per alteres que le proprietario" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "ha un ligamine dur in alicun parte" - -@@ -1740,8 +1732,8 @@ msgid "no symbolic name given for end of - msgstr "necun nomine symbolic fornite pro le fin del intervallo" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1767,8 +1759,8 @@ msgid "%s: error in state machine" - msgstr "%s: error in le automato de statos finite" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1789,7 +1781,7 @@ msgstr "character incognite `%s'" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "le numero de bytes in le sequentia de initio e de fin del intervallo non es le mesme: %d contra %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nomines invalide pro un intervallo de characteres" -@@ -1811,8 +1803,8 @@ msgstr "le limite alte in le intervallo - msgid "resulting bytes for range not representable." - msgstr "le bytes resultante pro le intervallo non es representabile." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1876,7 +1868,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: le codice numeric de pais `%d' non es valide" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1898,8 +1890,8 @@ msgstr "%s: le campo `%s' es declarate p - msgid "%s: unknown character in field `%s'" - msgstr "%s: character incognite in le campo `%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1908,12 +1900,12 @@ msgstr "%s: character incognite in le ca - msgid "%s: incomplete `END' line" - msgstr "%s: linea `END' incomplete" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1923,477 +1915,477 @@ msgstr "%s: linea `END' incomplete" - msgid "%s: syntax error" - msgstr "%s: error de syntaxe" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' jam definite in le tabula de characteres" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' jam definite in repertoire" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' jam definite como symbolo de collation" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' jam definite como elemento de collation" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: `forward' e `backward' son mutualmente exclusive" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: `%s' mentionate plus de un vice in le definition del peso %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: tro de regulas; le prime entrata habeva solmente %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: il non ha sufficiente regulas a assortir" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: catena de peso vacue non es permittite" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: le pesos debe usar le mesmo symbolo de ellipse que le nomine" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: tro de valores" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "le ordine pro `%.*s' jam es definite in %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: le symbolos de initio e de fin de un intervallo debe representar characteres" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: le sequentias de bytes del prime e del ultime characteres debe haber le mesme longitude" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: le sequentia de bytes del prime character del intervallo non es plus parve que illo del ultime character" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: le ellipse de intervallo symbolic non debe sequer directemente `order_start'" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: le ellipse de intervallo symbolic non debe esser sequite directemente per `order_end'" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' e `%.*s' non es nomines valide pro un intervallo symbolic" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: le ordine pro `%.*s' jam es definite in %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' debe esser un character" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `position' debe utilisar se pro un nivello specific in tote le sectiones o in necun" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "le symbolo `%s' non es definite" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "le symbolo `%s' ha le mesme codification que" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "le symbolo `%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "nulle definition de `UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "tro de errores; abandono" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: le conditionales annidate non es supportate" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: plus de un 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: definition duplicate de `%s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: declaration duplicate del section `%s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: character incognite in le nomine de un symbolo de collation" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: character incognite in le nomine de un definition de equivalente" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: character incognite in le valor de un definition de equivalente" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: symbolo incognite `%s' in un definition de equivalente" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "error durante le addition de un symbolo de collation equivalente" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "definition duplicate del scriptura `%s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: nomine de section incognite `%.*s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: multiple definitiones de ordine pro le section `%s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: le numero de regulas a assortir es incorrecte" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: multiple definitiones de ordine pro un section innominate" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: parola clave `order_end' mancante" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: ordine non ancora definite pro le symbolo de collation %.*s" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: ordine non ancora definite pro le elemento de collation %.*s" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: impossibile de reordinar post %.*s: symbolo incognite" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: parola clave `reorder-end' mancante" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: section `%.*s' incognite" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: symbolo invalide <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: impossibile de haber `%s' como fin de un intervallo de ellipse" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: le description de categoria vacue non es permittite" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: parola clave `reorder-sections-end' mancante" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: '%s' sin correspondente 'ifdef' o 'ifndef'" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'endif' sin correspondente 'ifdef' o 'ifndef'" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Necun nomine de collection de characteres es specificate in le tabula de characteres" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "le character L'\\u%0*x' del classe `%s' debe esser in le classe `%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "le character L'\\u%0*x' del classe `%s' non debe esser in le classe `%s'" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "error interne in %s, linea %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "le character '%s' del classe `%s' debe esser in le classe `%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "le character '%s' del classe `%s' non debe esser in le classe `%s'" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "le character non es in le classe `%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "le character non debe esser in le classe `%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "le character non es definite in le tabula de characteres" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "le categoria `digit' non ha entratas in gruppos de dece" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "necun cifras de entrata definite e necun del nomines standard in le tabula de characteres" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "non tote le characteres usate in `outdigit' es disponibile in le tabula de characteres" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "non tote le characteres usate in `outdigit' es disponibile in le repertoire" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "le classe de characteres `%s' jam ha essite definite" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "limite de implementation: il se non permitte plus de %Zd classes de characteres" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "le mappa de characteres `%s' jam ha essite definite" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "limite de implementation: il se non permitte plus de %d mappas de characteres" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: le campo `%s' non contine exactemente dece entratas" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "le valor final del intervallo es plus parve que le valor initial " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "le sequantias de characteres initial e final del intervallo debe haber le mesme longitude" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "le sequentia de characteres del valor final es plus parve que le sequentia del valor initial" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "le fin prematur del definition de `translit_ignore'" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "error de syntaxe" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: error de syntaxe in le definition de un nove classe de characteres" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: error de syntaxe in le definition de un nove mappa de characteres" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "le intervallo de ellipse debe ser marcate per duo operandos del mesme typo" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "con intervallo definite per nomines symbolic le ellipse absolute `...' non debe ser utilisate" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "con intervallo definite per UCS on debe usar le ellipse symbolic hexadecimal `..'" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "con intervallo definite per codices de characteres on debe usar le ellipse absolute `...'" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "definition duplicate del tabula `%s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: le section `translit_start' non fini con `translit_end'" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: definition duplicate de `default_missing'" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "le definition previe era hic" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: necun definition `default_missing' representabile trovate" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: le character `%s' non es definite quando illo es necesse como valor predefinite" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: le character `%s' in tabula de characteres non es representabile con un byte" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: le character `%s' requirite como valor predefinite non es representabile con un byte" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "necun cifras de output es definite e nihil del nomines standard es in le tabula de characteres" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: le datos de transliteration del localitate `%s' non es disponibile" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabula pro le classe \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabula de characteres \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabula pro le largor: %lu bytes\n" -@@ -3776,17 +3768,22 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 - #, c-format --msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3872,153 +3869,215 @@ msgstr "" - msgid "cannot enable socket to accept connections: %s" - msgstr "" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Impossibile de aperir le directorio %s" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, removing watch" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "insuccesso del cargamento del objecto condivise `%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "" -@@ -4106,7 +4165,7 @@ msgstr "" - msgid "Name Service Cache Daemon." - msgstr "" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "" -@@ -4140,7 +4199,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "" -@@ -4155,7 +4214,7 @@ msgstr "" - msgid "invalidation failed" - msgstr "" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "" -@@ -4241,35 +4300,35 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4277,27 +4336,27 @@ msgid "" - "%15d server debug level\n" - msgstr "" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4308,7 +4367,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4351,85 +4410,85 @@ msgstr "" - msgid "Invalid numeric uid \"%s\"!" - msgstr "" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4482,16 +4541,16 @@ msgstr "" - msgid "Enumeration not supported on %s\n" - msgstr "" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "" -@@ -4761,7 +4820,7 @@ msgstr "" - msgid "No previous regular expression" - msgstr "" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -@@ -7125,3 +7184,12 @@ msgstr "" - #, c-format - msgid "%s: Can't create directory %s: %s\n" - msgstr "" -+ -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "impossibile de cargar necun altere objectos con TLS static" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: necun PLTREL trovate in le objecto %s\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "impossibile de crear descriptores interne" -Index: glibc-2.23/po/id.po -=================================================================== ---- glibc-2.23.orig/po/id.po -+++ glibc-2.23/po/id.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.10.1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2009-06-23 12:30+0700\n" - "Last-Translator: Arif E. Nugroho \n" - "Language-Team: Indonesian \n" -@@ -142,10 +142,10 @@ msgstr "" - "[BERKAS-KELUARAN [BERKAS-MASUKAN]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, fuzzy, c-format -@@ -160,7 +160,7 @@ msgstr "" - ".\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -177,7 +177,7 @@ msgstr "" - "garansi; bahkan untuk PERDAGANGAN atau KECOCOKAN UNTUK SEBUAH TUJUAN TERTENTU.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -442,11 +442,11 @@ msgstr "Mengubah ijin akses dari %s ke % - msgid "Renaming of %s to %s failed" - msgstr "Mengubah nama dari %s ke %s gagal" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "tidak dapat membuat daftar scope" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "shared objek tidak dapat dibuka" - -@@ -519,127 +519,127 @@ msgstr "tidak dapat membuah array jalur - msgid "cannot stat shared object" - msgstr "tidak dapat memperoleh statistik objek terbagi" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "tidak dapat membuka perangkat pengisi nol" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "tidak dapat membuat deskripsi objek terbagi" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "tidak dapat membaca berkas data" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF perintah angkut tidak teralign-halaman" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF perintah angkut alamat/ofset tidak secara benar ter-align" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "tidak dapat mengalokasikan struktur data TLS untuk inisial thread" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "tidak dapat menangani data TLS" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "berkas objek tidak memiliki segmen yang dapat diangkut" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "tidak dapat secara dinamis mengangkut aplikasi" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "berkas objek tidak memiliki bagian dinamis" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "objek terbagi tidak dapat di dlopen()ed" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "tidak dapat mengalokasikan memori untuk aplikasi header" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "pemanggil tidak valid" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "tidak dapat mengubah proteksi memori" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "tidak dapat mengaktifkan stack aplikasi sebagai objek terbagi yang dibutuhkan" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "tidak dapat menutup berkas deskripsi" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "berkas terlalu pendek" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "header ELF tidak valid" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "berkas data enkoding ELF bukan big-endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "berkas data enkoding ELF bukan little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "berkas versi ident ELF tidak cocok dengan yang sekarang" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "berkas OS ABI ELF tidak valid" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "berkas versi ABI ELF tidak valid" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "internal error" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "berkas versi ELF tidak cocok dengan yang sekarang" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "hanya ET_DYN dan ET_EXEC yang dapat diangkut" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "berkas phentsize ELF tidak seperti ukuran yang diduga" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "kelas ELF salah: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "kelas ELF salah: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "tidak dapat membuka berkas objek terbagi" - -@@ -651,11 +651,11 @@ msgstr "gagal untuk memetakan segmen dar - msgid "cannot map zero-fill pages" - msgstr "tidak dapat memetakan halaman pengisian-nol" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "relokasi error" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "simbol lookup error" - -@@ -663,51 +663,40 @@ msgstr "simbol lookup error" - msgid "cannot extend global scope" - msgstr "tidak dapat mengeksten global scope" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "pembuatan TLS penghitung wrapped! Tolong laporkan ini." - --#: elf/dl-open.c:542 --#, fuzzy --#| msgid "cannot allocate memory in static TLS block" --msgid "cannot load any more object with static TLS" --msgstr "tidak dapat mengalokasikan memori dalam blok TLS statis" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "mode untuk dlopen() tidak valid" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "tidak ada lagi ruang-nama yang tersedia untuk dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "target ruang-nama dalam dlmopen() tidak valid" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "tidak dapat mengalokasikan memori dalam blok TLS statis" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "tidak dapat membuat segmen dapat ditulis untuk relokasi" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: tidak ada PLTREL ditemukan dalam objek %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: kehabisan dari memori untuk menyimpan hasil relokasi untuk %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "tidak dapat merestore segmen prot setelah relokasi" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "tidak dapat mengaplikasikan proteksi memori tambahan setelah relokasi" - -@@ -715,7 +704,7 @@ msgstr "tidak dapat mengaplikasikan prot - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT digunakan dalam kode yang tidak secara dinamis diangkut" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "tidak dapat membuat struktur data TLS" - -@@ -861,7 +850,7 @@ msgstr "Tidak ada hubungan yang dibuat k - msgid "Can't open directory %s" - msgstr "Tidak dapat membuka direktori %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Berkas masukan %s tidak ditemukan.\n" -@@ -992,7 +981,7 @@ msgstr "hilang berkas argumen" - msgid "No such file or directory" - msgstr "Tidak ada berkas atau direktori seperti itu" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "bukan sebuah berkas regular" - -@@ -1042,73 +1031,79 @@ msgstr "tidak dapat membaca header" - msgid "cannot read program interpreter" - msgstr "tidak dapat membaca archive header" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "tidak dapat membaca berkas data" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "tidak dapat membaca header" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "tidak dapat mengalokasikan memori untuk aplikasi header" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid pointer size" - msgid "invalid process ID '%s'" - msgstr "ukuran penunjuk tidak valid" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "tidak dapat membuka `%s'" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "tidak dapat membuka `%s'" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - #| msgid "cannot create searchlist" - msgid "cannot prepare reading %s/task" - msgstr "tidak dapat membuat daftar pencarian" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "header ELF tidak valid" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot access '%s'" - msgid "cannot attach to process %lu" - msgstr "tidak dapat mengakses '%s'" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1143,27 +1138,27 @@ msgstr "%s bukan sebuah berkas objek ter - msgid "more than one dynamic segment\n" - msgstr "lebih dari satu segmen dinamis\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Tidak dapat fstat berkas %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Berkas %s kosong, tidak diperiksa." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Berkas %s terlalu kecil, tidak diperiksa." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Tidak dapat mmap berkas %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s bukan sebuah berkas ELF - ini memiliki magis bytes salah di awal.\n" -@@ -1291,9 +1286,9 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "gagal mengangkut objek terbagi `%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "tidak dapat membuat deskripsi internal" - - #: elf/sprof.c:554 -@@ -1361,11 +1356,6 @@ msgstr "gagal untuk memetakan berkas dat - msgid "error while closing the profiling data file" - msgstr "error ketika menutup berkas data profiling" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "tidak dapat membuat deskripsi internal" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1623,27 +1613,27 @@ msgstr "socket: protokol gagal dalam kon - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: pembacaan pendek" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat gagal" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "tidak dapat membuka" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat gagal" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "pemilik buruk" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "dapat ditulis oleh selain dari pemilik" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "hard linked kesuatu tempat" - -@@ -1763,8 +1753,8 @@ msgid "no symbolic name given for end of - msgstr "tidak ada nama simbolis yang diberikan untuk akhir dari jangkauan" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1790,8 +1780,8 @@ msgid "%s: error in state machine" - msgstr "%s: error dalam mesin status" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1812,7 +1802,7 @@ msgstr "karakter `%s' tidak dikenal" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "jumlah dari bytes untuk urutan byte dari awal dan akhir dari jangkauan tidak sama: %d vs %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nama tidak valid untuk jangkauan karakter" -@@ -1834,8 +1824,8 @@ msgstr "batas atas dalam jangkauan adala - msgid "resulting bytes for range not representable." - msgstr "menghasilkan bytes untuk jangkauan tidak dapat direpresentasikan." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1899,7 +1889,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: kode negara numerik `%d' tidak valid" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1921,8 +1911,8 @@ msgstr "%s: daerah `%s' terdeklarasi leb - msgid "%s: unknown character in field `%s'" - msgstr "%s: karakter dalam daerah `%s' tidak dikenal" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1931,12 +1921,12 @@ msgstr "%s: karakter dalam daerah `%s' t - msgid "%s: incomplete `END' line" - msgstr "%s: tidak lengkap `END' baris" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1946,477 +1936,477 @@ msgstr "%s: tidak lengkap `END' baris" - msgid "%s: syntax error" - msgstr "%s: sintaks error" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' telah terdefinisi dalam charmap" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' telah terdefinisi dalam repertoire" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' telah terdefinisi sebagai simbol collating" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' telah terdefinisi sebagai elemen collating" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: `forward' dan `backward' adalah secara muttual excluding satu sama lain" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: `%s' disebutkan lebih dari sekali dalam definisi dari berat %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: terlalu banyak aturan; masukan pertama hanya memiliki %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: tidak cukup aturan pengurutan" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: berat kosong string tidak diijinkan" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: berat seharusnya menggunakan ellipsis sama simbol sebagai nama" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: terlalu banyak nilai" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "perintah untuk `%.*s' telah terdefinisi di %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: awal dan akhir dari simbol dari sebuah jangkauan harus berdiri untuk karakter" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: urutan byte dari karakter awal dan akhir harus memiliki panjang sama" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: urutan byte dari awal karakter dari jangkauan tidak lebih rendah dari karakter terakhir" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: jangkauan simbolis ellipsis tidak boleh secara langsung mengikuti `order_start'" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: jangkauan simbolis ellipsis tidak boleh secara langsung mengikuti `order_end'" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' dan `%.*s' bukan sebuah nama valid untuk jangkauan simbolis" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: urutan untuk `%.*s' telah terdefinisi di %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' harus berupa sebuah karakter" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `posisi' harus digunakan untuk tingkat spesifik dalam seluruh bagian atau kosong" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "simbol `%s' tidak terdefinisi" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "simbol `%s' memiliki pengkodean yang sama seperti" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "simbol `%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "tidak ada definisi dari `UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "terlalu banyak error; menyerah" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: nested kondisional tidak didukung" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: lebih dari satu 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: duplikasi definisi dari `%s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: duplikasi deklarasi dari daerah `%s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: karakter tidak dikenal dalam nama simbol collating" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: karakter tidak dikenal dalam definisi nama yang ekuivalen" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: karakter tidak dikenal dalam nilai definisi yang ekuivalen" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: simbol tidak dikenal `%s' definisi ekuivalen" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "error ketika menambahkan simbol collating ekuivalen" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "duplikasi definisi dari skrip `%s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: nama daerah `%.*s' tidak dikenal" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: multiple tingkat definisi untuk daerah `%s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: nomor tidak valid untuk aturan pengurutan" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: banyak tingkat definisi untuk daerah tidak bernama" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: hilang `order_end' kata-kunci" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: tingkat untuk collaing simbol %.*s belum terdefinisi" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: tingkat untuk collating elemen %.*s belum terdefinisi" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: tidak dapat mengurutkan setelah %.*s: simbol tidak diketahui" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: hilang `reorder-end' kata-kunci" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: bagian `%.*s' tidak dikenal" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: simbol buruk <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: tidak dapat memiliki `%s' sebagai akhir dari jangkauan ellipsis" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: deskripsi kategori kosong tidak diperbolehkan" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: hilang `reorder-section-end' kata-kunci" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: '%s' tanpa pencocokan 'ifdef' atau 'ifndef'" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'endif' tanpa pencocokan 'ifdef' atau 'ifndef'" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Tidak ada nama karakter set yang dispesifikasikan dalam charmap" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "karakter L'\\u%0*x' dalam kelas `%s' harus berada dalam kelas `%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "karakter L'\\u%0*x' dalam kelas `%s' tidak boleh berada dalam kelas `%s'" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "internal error dalam %s, baris %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "karakter '%s' dalam kelas `%s' harus berada dalam kelas `%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "karakter '%s' dalam kelas `%s' tidak boleh berada dalam kelas `%s'" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr " karakter tidak dalam kelas `%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr " karakter tidak boleh berada dalam kelas `%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "karakter tidak terdefinisi dalam peta karakter" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "`digit' kategori tidak memiliki masukan dalam grup dari sepuluh" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "tidak ada masukan digit yang terdefinisi dan kosong dari nama baku dalam charmap" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "tidak semua karakter digunakan dalam `outdigit' tersedia dalam charmap" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "tidak semua karakter yang digunakan dalam `outdigit' tersedia dalam repertoire" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "karakter kelas `%s' telah terdefinisi" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "batas implementasi: tidak lebih dari %Zd karakter kelas diperbolehkan" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "peta karakter `%s' telah terdefinisi" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "batas implementasi: tidak lebih dari %d peta karakter diperbolehkan" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: daerah `%s' tidak berisi tepat sepuluh masukan" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "ke-nilai dari jangkauan adalah lebih kecil dari dari-nilai " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "awal dan akhir urutan karakter dari jangkauan harus memiliki panjang yang sama" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "ke-nilai urutan karakter lebih kecil daripada urutan dari-nilai" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "prematur akhir dari `translit_ignore' definisi" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "sintaks error" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: sintaks error dalam definisi dari kelas karakter baru" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: sintaks error dalam definisi dari peta karakter baru" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "jangkauan ellipsis harus ditandai dengan dua operan dari tipe yang sama" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "dengann nilai jangkauan nama simbol absolut ellipsis `...' tidak boleh digunakan" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "dengan nilai jangkauan UCS salah satu harus menggunakan heksadesimal simbolis ellipsis `..'" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "dengan nilai jangkauan kode karakter salah satu harus menggunakan ellipsis absolut `...'" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "duplikasi definisi untuk pemetaan `%s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: `translit_start' daerah tidak berakhir dengan `translit_end'" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: duplikasi `default_missing' definisi" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "definisi sebelumnya ada disini" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: tidak ada representasi `default_missing' definisi ditemukan" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: karakter `%s' tidak terdefinisi ketika dibutuhkan sebagai nilai default" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: karakter `%s' dalam charmap tidak dapat direpresentasikan dengan satu byte" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: karakter `%s' dibutuhkan sebagai nilai baku tidak dapat direpresentasikan dengan satu byte" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "tidak ada keluaran digital terdefinisi dan tidak ada nama baku dalam charmaps" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: transliteration data dari lokal `%s' tidak tersedia" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabel untuk kelas \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabel untuk peta \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabel untuk lebar: %lu bytes\n" -@@ -3853,17 +3843,23 @@ msgstr "penambahan masukan baru \"%s\" d - msgid " (first)" - msgstr " (pertama)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "tidak dapat membuka berkas basis data `%s': %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "tidak dapat stat() berkas `%s': %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "pruning %s cache; waktu %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "mempertimbangkan %s masukan \"%s\", waktu habis %" -@@ -3949,154 +3945,217 @@ msgstr "tidak dapat menset socket untuk - msgid "cannot enable socket to accept connections: %s" - msgstr "tidak dapat mengaktifkan socket untuk menerima koneksi: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Tidak dapat membuka direktori %s" -+ -+#: nscd/connections.c:1022 - #, fuzzy, c-format - #| msgid "no more memory for database '%s'" --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "tidak ada memori lagi untuk basis data '%s'" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "menyediakan akses ke FD %d, untuk %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "tidak dapat menangani versi permintaan lama %d; versi sekarang adalah %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "permintaan dari %ld tidak dapat ditangani karena tidak ada ijin" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "permintaan dari '%s' [%ld] tidak dapat ditangani karena tidak ada ijin" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "permintaan tidak dapat ditangani karena tidak ada ijin" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "tidak dapat menulis hasil: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "error memperoleh id pemanggil: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "tidak dapat membuka /proc/self/cmdline: %s; menonaktifkan mode paranoia" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "tidak dapat membaca /proc/self/cmdline: %s; menonaktifkan mode paranoia" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "tidak dapat mengubah ke UID lama: %s; menonaktifkan mode paranoia" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "tidak dapat mengubah ke GID lama: %s; menonaktifkan mode paranoia" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "tidak dapat berubah ke direktori kerja lama: %s; menonaktifkan mode paranoia" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "re-exec gagal: %s; menonaktifkan mode paranoia" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "tidak dapat mengubah direktori kerja ke \"/\": %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "pembacaan singkat ketika membaca permintaan: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "panjang kunci dalam permintaan terlalu panjang: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "pembacaan singkat ketika membaca permintaan kunci: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: permintaan diterima (Versi = %d) dari PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: permintaan diterima (Versi = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "gagal mengangkut objek terbagi `%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "menonaktifkan inotify setelah error membaca %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "tidak dapat menginisialisasi variabel kondisional" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "tidak dapat memulai threads pembersihan; mengakhiri" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "tidak dapat memulai threads pekerja apapun; mengakhiri" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Gagal untuk menjalankan nscd sebagai pengguna '%s'" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "inisial getgrouplist gagal" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist gagal" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups gagal" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "penulisan pendek dalam %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Belum ditemukan \"%s\" dalam grup cache!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Reloading \"%s\" dalam grup cache!" -@@ -4188,7 +4247,7 @@ msgstr "Gunakan pemisah cache untuk seti - msgid "Name Service Cache Daemon." - msgstr "Cache Layanan Pengguna Daemon." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "jumlah salah dari argumen" -@@ -4222,7 +4281,7 @@ msgstr "tidak dapat mengubah direktori k - msgid "Could not create log file" - msgstr "Tidak dapat membuat berkas log" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "penulisan tidak lengkap" -@@ -4237,7 +4296,7 @@ msgstr "tidak dapat membaca invalidate A - msgid "invalidation failed" - msgstr "invalidation gagal" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Hanya root yang diperbolehkan untuk menggunakan pilihan ini!" -@@ -4319,35 +4378,35 @@ msgstr "tidak dapat memperoleh direktori - msgid "maximum file size for %s database too small" - msgstr "ukuran berkas maksimal untuk %s basis data terlalu kecil" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "tidak dapat menulis statistik: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "ya" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "tidak" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Hanya root atau %s yang diperbolehkan untuk menggunakan pilihan ini!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd tidak berjalan!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "tidak dapat membaca data statistik" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4358,27 +4417,27 @@ msgstr "" - "\n" - "%15d server tingkat debug\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %u2d %2um %2lus server waktu jalan\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus server waktu jalan\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus server waktu jalan\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus server waktu jalan\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, fuzzy, c-format - #| msgid "" - #| "%15d current number of threads\n" -@@ -4400,7 +4459,7 @@ msgstr "" - "%15s mode paranoia diaktifkan\n" - "%15lu restart internal\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4466,87 +4525,87 @@ msgstr "Reloading \"%s\" dalam cache kat - msgid "Invalid numeric uid \"%s\"!" - msgstr "uid numerik \"%s\" tidak valid !" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Gagal membuka koneksi ke audit subsistem: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Gagal menset keep-kapabiliti" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) gagal" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Gagal menginisialisasi drop dari kapabiliti" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init gagal" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Gagal untuk mendrop kapabiliti" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc gagal" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Gagal untuk menunset keep-kapabiliti" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Gagal untuk menentukan jika kernel mensupport SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Gagal untuk menjalankan thread AVC" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Gagal untuk membuat kunci AVC" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Gagal untuk menjalankan AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Akses Vektor Cache (AVC) berjalan" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - #| msgid "Error getting context of nscd" - msgid "Error getting security class for nscd." - msgstr "Error memperoleh konteks dari nscd" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Error memperoleh konteks dari socket peer" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Error memperoleh konteks dari nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Error memperoleh sid dari konteks" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4610,16 +4669,16 @@ msgstr "Dapatkan masukan dari basis data - msgid "Enumeration not supported on %s\n" - msgstr "Enumerasi tidak didukung di %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Nama basis data tidak dikenal" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Basis data yang didukung:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Basis data tidak dikenal: %s\n" -@@ -4914,7 +4973,7 @@ msgstr "Tidak cocok ) atau \\)" - msgid "No previous regular expression" - msgstr "Tidak ada ekspresi regular sebelumnya" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parameter kosong atau tidak diset" - -@@ -7355,15 +7414,24 @@ msgstr "%s: Tidak dapat membuat direktor - #~ msgid "xtrace: option \\`$1' requires an argument.\\n" - #~ msgstr "xtrace: pilihan \\`$1' membutuhkan sebuah argumen.\\n" - -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: tidak ada PLTREL ditemukan dalam objek %s\n" -+ - #~ msgid "Can't open configuration file %s" - #~ msgstr "Tidak dapat membuka berkas konfigurasi %s" - -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "tidak dapat membuat deskripsi internal" -+ - #~ msgid "Try \\`memusage --help' for more information." - #~ msgstr "Coba \\`memusage --help' untuk informasi lebih lanjut." - - #~ msgid "memusage: option \\`$1' requires an argument" - #~ msgstr "memusage: pilihan \\`$1' membutuhkan sebuah argumen" - -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "tidak dapat stat() berkas `%s': %s" -+ - #~ msgid "invalid value for 'reload-count': %u" - #~ msgstr "nilai tidak valid untuk 'reload-count': %u" - -Index: glibc-2.23/po/it.po -=================================================================== ---- glibc-2.23.orig/po/it.po -+++ glibc-2.23/po/it.po -@@ -9,7 +9,7 @@ msgid "" - msgstr "" - "Project-Id-Version: libc-2.14\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2011-10-17 14:21+0200\n" - "Last-Translator: Sergio Zanchetta \n" - "Language-Team: Italian \n" -@@ -155,10 +155,10 @@ msgstr "" - "[FILE-OUTPUT [FILE-INPUT]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, fuzzy, c-format -@@ -173,7 +173,7 @@ msgstr "" - ".\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -192,7 +192,7 @@ msgstr "" - - # lf - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -476,12 +476,12 @@ msgstr "Rinomina di %s a %s non riuscita - - # lf - # --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "impossibile creare l'elenco di ambito" - - # lf --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "oggetto condiviso non aperto" - -@@ -565,148 +565,148 @@ msgstr "impossibile creare l'array dei p - msgid "cannot stat shared object" - msgstr "impossibile fare stat sull'oggetto condiviso" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "impossibile aprire il device riempito con zeri" - - # lf --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "impossibile creare il descrittore di oggetto condiviso" - - # lf --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "impossibile leggere il file di dati" - - # lf --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "comando di caricamento ELF non allineato alla pagina" - - # lf --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "indirizzo/offset del comando di caricamento ELF non propriamente allineato" - - # lf --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "impossibile allocare strutture dati TLS per il thread iniziale" - - # lf --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "impossibile gestire i dati TLS" - - # lf --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "il file oggetto non presenta segmenti caricabili" - - # lf --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "impossibile caricare dinamicamente l'eseguibile" - - # lf - # --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "il file oggetto non presenta una sezione dinamica" - - # lf --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "impossibile eseguire dlopen() sull'oggetto condiviso" - - # lf --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "impossibile allocare memoria per l'intestazione di programma" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "chiamante non valido" - - # lf --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "impossibile cambiare le protezioni della memoria" - - # lf --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "impossibile abilitare lo stack eseguibile come richiesto dall'oggetto condiviso" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "impossibile chiudere il descrittore di file" - - # lf --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "file troppo corto" - - # lf --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "intestazione ELF non valida" - - # lf --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "la codifica dati del file ELF non è big-endian" - - # lf --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "la codifica dati del file ELF non è little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "l'identificatore di versione del file ELF non corrisponde a quello attuale" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ABI del file ELF del sistema operativo non valido" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "versione ABI del file ELF non valida" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "riempimento con valori diversi da zero in e_ident" - - # lf --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "errore interno" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "La versione del file ELF non corrisponde a quella attuale" - - # lf --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "è possibile caricare solo ET_DYN ed ET_EXEC" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "La phentsize del file ELF non corrisponde a quella attesa" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "classe ELF errata: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "classe ELF errata: ELFCLASS32" - - # lf --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "impossibile aprire il file oggetto condiviso" - -@@ -722,11 +722,11 @@ msgid "cannot map zero-fill pages" - msgstr "impossibile mappare le pagine riempite con zeri" - - # lf --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "errore di rilocazione" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "errore nella ricerca del simbolo" - -@@ -736,53 +736,43 @@ msgstr "errore nella ricerca del simbolo - msgid "cannot extend global scope" - msgstr "impossibile estendere l'ambito globale" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "contatore TLS di generazione azzerato. Segnalare questo problema." - --# lf --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "impossibile caricare altri oggetti con un TLS statico" -- - # ls --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "modo non valido per dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "nessuno spazio dei nomi disponibile per dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "spazio dei nomi di destinazione non valido in dlmopen()" - - # lf --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "impossibile allocare memoria nel blocco statico TLS" - - # lf --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "impossibile rendere il segmento scrivibile per la rilocazione" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: nessun PLTREL trovato nell'oggetto %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: memoria esaurita per memorizzare i risultati della rilocazione per %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "impossibile ripristinare la protezione del segmento dopo la rilocazione" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "impossibile applicare una protezione supplementare della memoria dopo la rilocazione" - -@@ -792,7 +782,7 @@ msgid "RTLD_NEXT used in code not dynami - msgstr "RTLD_NEXT usato in codice caricato non dinamicamente" - - # lf --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "impossibile creare le strutture dati TLS" - -@@ -953,7 +943,7 @@ msgstr "Collegamenti non creati poiché - msgid "Can't open directory %s" - msgstr "Impossibile aprire la directory %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "File di input %s non trovato.\n" -@@ -1090,7 +1080,7 @@ msgstr "argomenti relativi al file manca - msgid "No such file or directory" - msgstr "File o directory non esistente" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "non è un file normale" - -@@ -1146,77 +1136,84 @@ msgid "cannot read program interpreter" - msgstr "impossibile leggere l'intestazione dell'archivio" - - # lf --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "impossibile leggere il file di dati" - - # lf --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "impossibile leggere l'intestazione" - --#: elf/pldd.c:63 -+# lf -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "impossibile allocare memoria per l'intestazione di programma" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - - # lf --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid pointer size" - msgid "invalid process ID '%s'" - msgstr "dimensione puntatore non valida" - - # lf --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "impossibile aprire \"%s\"" - - # lf --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "impossibile aprire \"%s\"" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "" - - # lf --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "intestazione ELF non valida" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot access '%s'" - msgid "cannot attach to process %lu" - msgstr "impossibile accedere a \"%s\"" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1255,27 +1252,27 @@ msgstr "%s non è un file oggetto condiv - msgid "more than one dynamic segment\n" - msgstr "più di un segmento dinamico\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Impossibile fare fstat di %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Il file %s è vuoto, non controllato." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Il file %s è troppo piccolo, non controllato." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Impossibile fare mmap del file %s\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s non è un file ELF - i byte magic iniziali sono sbagliati.\n" -@@ -1428,10 +1425,10 @@ msgid "failed to load shared object `%s' - msgstr "caricamento dell'oggetto condiviso \"%s\" non riuscito" - - # lf --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "impossibile creare descrittori interni" -+msgid "cannot create internal descriptor" -+msgstr "impossibile creare il descrittore interno" - - # lf - #: elf/sprof.c:554 -@@ -1504,12 +1501,6 @@ msgid "error while closing the profiling - msgstr "errore durante la chiusura del file di dati di profiling" - - # lf --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "impossibile creare il descrittore interno" -- --# lf - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1798,27 +1789,27 @@ msgstr "socket: errore del protocollo ne - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: lettura breve" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat non riuscita" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "impossibile aprire" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat non riuscita" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "proprietario errato" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "scrivibile da altri oltre che dal proprietario" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "collegato fisicamente da qualche parte" - -@@ -1952,8 +1943,8 @@ msgid "no symbolic name given for end of - msgstr "nessun nome simbolico fornito per la fine dell'intervallo" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1980,8 +1971,8 @@ msgid "%s: error in state machine" - msgstr "%s: errore nella macchina a stati" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -2004,7 +1995,7 @@ msgid "number of bytes for byte sequence - msgstr "il numero di byte per la sequenza d'inizio e di fine dell'intervallo non sono gli stessi: %d contro %d" - - # lf --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "nomi non validi per l'intervallo di caratteri" -@@ -2027,8 +2018,8 @@ msgid "resulting bytes for range not rep - msgstr "i byte risultanti per l'intervallo non sono rappresentabili." - - # lf --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -2093,7 +2084,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: codice numerico di nazione \"%d\" non valido" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -2116,8 +2107,8 @@ msgstr "%s: campo \"%s\" dichiarato più - msgid "%s: unknown character in field `%s'" - msgstr "%s: carattere sconosciuto nel campo \"%s\"" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -2126,12 +2117,12 @@ msgstr "%s: carattere sconosciuto nel ca - msgid "%s: incomplete `END' line" - msgstr "%s: riga \"END\" incompleta" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -2142,490 +2133,490 @@ msgid "%s: syntax error" - msgstr "%s: errore di sintassi" - - # lf --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "\"%.*s\" già definito nella mappa caratteri" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "\"%.*s\" già definito nel repertorio" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "\"%.*s\" già definito come simbolo di collazione" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "\"%.*s\" già definito come elemento di collazione" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: \"forward\" e \"backward\" sono mutuamente esclusivi" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: \"%s\" menzionato più di una volta nella definizione del peso %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: troppe regole; la prima voce ne aveva solo %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: regole di ordinamento non sufficienti" - - # lf --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: stringa vuota del peso non consentita" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: i pesi devono usare lo stesso simbolo ellissi del nome" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: troppi valori" - - # lf --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "ordine per \"%.*s\" già definito su %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: i simboli iniziale e finale di un intervallo devono rappresentare caratteri" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: la sequenza di byte del primo e dell'ultimo carattere devono avere la stessa lunghezza" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: la sequenza di byte del primo carattere dell'intervallo non è più piccola di quella dell'ultimo carattere" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: l'ellissi dell'intervallo simbolico non deve seguire direttamente \"order_start\"" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: l'ellissi dell'intervallo simbolico non deve essere seguita direttamente da \"order_end\"" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "\"%s\" e \"%.*s\" non sono nomi validi per un intervallo simbolico" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: ordine per \"%.*s\" già definito su %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: \"%s\" deve essere un carattere" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: \"position\" deve essere usato per uno specifico livello o in tutte le sezioni o in nessuna" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "simbolo \"%s\" non definito" - - # lf --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "il simbolo \"%s\" ha la stessa codifica di" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "simbolo \"%s\"" - - # lf --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "nessuna definizione di \"UNDEFINED\"" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "troppi errori; uscita" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: le condizioni nidificate non sono supportate" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: più di un \"else\"" - - # lf --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: definizione duplicata di \"%s\"" - - # lf --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: dichiarazione duplicata della sezione \"%s\"" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: carattere sconosciuto nel nome del simbolo di collazione" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: carattere sconosciuto nel nome della definizione equivalente" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s carattere sconosciuto nel valore della definizione equivalente" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: simbolo sconosciuto \"%s\" nella definizione equivalente" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "errore durante l'aggiunta di un simbolo di collazione equivalente" - - # lf --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "definizione dello script \"%s\" duplicata" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: nome della sezione sconosciuto \"%.*s\"" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: definizioni di ordine multiplo per la sezione \"%s\"" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: numero di regole di ordinamento non valido" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: definizioni multiple di ordinamento per la sezione senza nome" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: parola chiave \"order_end\" mancante" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: ordine non ancora definito per il simbolo di collazione %.*s" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: ordine non ancora definito per l'elemento di collazione %.*s" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: impossibile riordinare dopo %.*s: simbolo sconosciuto" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: parola chiave \"reorder-end\" mancante" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: sezione \"%.*s\" sconosciuta" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: simbolo non valido <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: impossibile avere \"%s\" come fine dell'intervallo con ellissi" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: descrizione vuota della categoria non consentita" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: parola chiave \"reorder-sections-end\" mancante" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: \"%s\" senza il corrispondente \"ifdef\" o \"ifndef\"" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: \"endif\" senza il corrispondente \"ifdef\" o \"ifndef\"" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Nessun nome specificato per il set nella mappa caratteri" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "il carattere L\"\\u%0*x\" nella classe \"%s\" deve stare nella classe \"%s\"" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "il carattere L\"\\u%0*x\" nella classe \"%s\" non deve stare nella classe \"%s\"" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "errore interno in %s, riga %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "il carattere \"%s\" nella classe \"%s\" deve stare nella classe \"%s\"" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "il carattere \"%s\" nella classe \"%s\" non deve stare nella classe \"%s\"" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "Il carattere non è nella classe \"%s\"" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "Il carattere non deve stare nella classe \"%s\"" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "carattere non definito nella mappa caratteri" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "la categoria \"digit\" non contiene voci a gruppi di dieci" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "nessuna cifra di input definita e nessuno dei nomi standard nella mappa caratteri" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "non tutti i caratteri usati in \"outdigit\" sono disponibili nella mappa caratteri" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "non tutti i caratteri usati in \"outdigit\" sono disponibili nel repertorio" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "classe di caratteri \"%s\" già definita" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "limite di implementazione: non sono permesse più di %Zd classi di carattere" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "mappa caratteri \"%s\" già definita" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "limite di implementazione: non sono ammesse più di %d mappe caratteri" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: il campo \"%s\" non contiene esattamente dieci voci" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "Il valore \"fino a\" dell'intervallo è più piccolo del valore \"da\"" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "la sequenza di caratteri iniziale e finale dell'intervallo devono avere la stessa lunghezza" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "Il valore \"fino a\" della sequenza di caratteri è più piccolo del valore \"da\" della sequenza" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "fine prematura della definizione di \"translit_ignore\"" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "errore di sintassi" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: errore di sintassi nella definizione della nuova classe di caratteri" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: errore di sintassi nella definizione della nuova mappa di caratteri" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "l'intervallo con ellissi deve essere marcato da due operandi dello stesso tipo" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "con nomi simbolici come valori dell'intervallo non deve essere usata l'ellissi assoluta \"...\"" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "con valori UCS per l'intervallo, deve essere usata l'ellissi simbolica esadecimale \"..\"" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "con codici carattere come valori dell'intervallo deve essere usata l'ellissi assoluta \"...\"" - - # lf --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "definizione duplicata per la mappatura \"%s\"" - - # lf --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: la sezione \"translit_start\" non termina con \"translit_end\"" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: definizione duplicata di \"default_missing\"" - - # lf --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "la definizione precedente era qui" - - # lf --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: nessuna definizione \"default_missing\" rappresentabile trovata" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: carattere \"%s\" non definito nonostante sia necessario come valore predefinito" - - # lf --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: carattere \"%s\" nella mappa caratteri non rappresentabile con un byte" - - # lf --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: carattere \"%s\" necessario come valore predefinito non rappresentabile con un byte" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "nessuna cifra di output definita e nessun nome standard nella mappa caratteri" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: dati di traslitterazione dalla localizzazione \"%s\" non disponibili" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabella per la classe \"%s\": %lu byte\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabella per la mappa \"%s\": %lu byte\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabella per la larghezza: %lu byte\n" -@@ -4137,18 +4128,23 @@ msgstr "aggiunta della nuova voce \"%s\" - msgid " (first)" - msgstr " (prima)" - --# lf --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "impossibile aprire il file \"%s\" del database: %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "impossibile fare stat() sul file \"%s\": %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "pulizia della cache di %s; tempo %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "considerata la voce di %s \"%s\", timeout %" -@@ -4236,103 +4232,129 @@ msgstr "impossibile impostare il socket - msgid "cannot enable socket to accept connections: %s" - msgstr "impossibile abilitare il socket per accettare le connessioni: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Impossibile aprire la directory %s" -+ -+#: nscd/connections.c:1022 - #, fuzzy, c-format - #| msgid "no more memory for database '%s'" --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "memoria esaurita per il database \"%s\"" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "fornisce l'accesso a %d FD, per %s" - - # lf --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "impossibile gestire vecchie richieste in versione %d: la versione attuale è %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "richiesta da %ld non gestita a causa di permessi mancanti" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "richiesta da \"%s\" [%ld] non gestita a causa di permessi mancanti" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "richiesta non gestita a causa di permessi mancanti" - - # lf --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "impossibile scrivere il risultato: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "errore durante l'acquisizione dell'id del chiamante: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "impossibile aprire /proc/self/cmdline: %s; modalità paranoia disabilitata" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "impossibile leggere /proc/self/cmdline: %s; modalità paranoia disabilitata" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "impossibile ripristinare l'UID precedente: %s; modalità paranoia disabilitata" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "impossibile ripristinare il GID precedente: %s; modalità paranoia disabilitata" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "impossibile ritornare alla directory di lavoro precedente: %s; modalità paranoia disabilitata" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "re-exec non riuscita: %s; modalità paranoia disabilitata" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "impossibile cambiare l'attuale directory di lavoro in \"/\": %s" - - # ls --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "lettura breve nella lettura della richiesta: %s" - - # lf --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "lunghezza troppo lunga della chiave nella richiesta: %d" - - # lf --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "lettura breve nella lettura della chiave richiesta: %s" - - # lf --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: ricevuta richiesta (versione = %d) dal PID %ld" -@@ -4340,63 +4362,101 @@ msgstr "handle_request: ricevuta richies - # lf - # - # credo che version sia una parola chiave... --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: ricevuta richiesta (Version = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+# lf -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "caricamento dell'oggetto condiviso \"%s\" non riuscito" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "inotify disabilitato dopo un errore di lettura %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "impossibile inizializzare la variabile condizionale" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "impossibile avviare il thread di pulizia; arresto" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "impossibile avviare thread di tipo worker; arresto" - - # lf --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Esecuzione di nscd come utente \"%s\" non riuscita" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "getgrouplist iniziale non riuscita" - - # lf --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist non riuscita" - - # lf --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups non riuscita" - - # lf --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "scrittura breve in %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "\"%s\" non trovato nella cache dei gruppi." - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Ricaricamento di \"%s\" nella cache dei gruppi." -@@ -4494,7 +4554,7 @@ msgstr "Usa una cache separata per ciasc - msgid "Name Service Cache Daemon." - msgstr "Demone di cache dei nomi di servizio (NSCD)." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "numero di argomenti errato" -@@ -4529,7 +4589,7 @@ msgstr "Impossibile cambiare l'attuale d - msgid "Could not create log file" - msgstr "Impossibile creare il file di registro" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "scrittura incompleta" -@@ -4544,7 +4604,7 @@ msgstr "impossibile leggere l'ACK invali - msgid "invalidation failed" - msgstr "invalidazione non riuscita" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Solo l'utente root ha il permesso per usare questa opzione." -@@ -4628,35 +4688,35 @@ msgstr "impossibile acquisire l'attuale - msgid "maximum file size for %s database too small" - msgstr "dimensione massima del file per il database %s troppo piccola" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "impossibile scrivere le statistiche: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "sì" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "no" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Solo l'utente root o %s ha il permesso per usare questa opzione." - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd non è in esecuzione.\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "impossibile leggere i dati statistici" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4667,27 +4727,27 @@ msgstr "" - "\n" - "%15d livello di debug del server\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ug %2uo %2um %2lus runtime del server\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uo %2um %2lus runtime del server\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus runtime del server\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus runtime del server\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4704,7 +4764,7 @@ msgstr "" - "%15lu riavvii interni\n" - "%15u totale ricaricamenti\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4771,87 +4831,87 @@ msgstr "Ricaricamento di \"%s\" nella ca - msgid "Invalid numeric uid \"%s\"!" - msgstr "UID numerico \"%s\" non valido." - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Apertura della connessione al sottosistema audit non riuscita: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Impostazione di keep-capabilities non riuscita" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) non riuscita" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Inizializzazione della rimozione delle possibilità non riuscita" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init non riuscita" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Rimozione delle possibilità non riuscita" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc non riuscita" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Rimozione di keep-capabilities non riuscita" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Non si è riusciti a determinare se il kernel supporta SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Avvio del thread AVC non riuscito" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Creazione del lock AVC non riuscita" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Avvio di AVC non riuscito" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Access Vector Cache (AVC) avviato" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - #| msgid "Error getting context of nscd" - msgid "Error getting security class for nscd." - msgstr "Errore nell'ottenere il contesto di nscd" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Errore nell'ottenere il contesto del corrispondente del socket" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Errore nell'ottenere il contesto di nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Errore nell'ottenere il sid dal contesto" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4915,16 +4975,16 @@ msgstr "Ottiene voci da un database ammi - msgid "Enumeration not supported on %s\n" - msgstr "Enumerazione non supportata su %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Nome del database sconosciuto" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Database supportati:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Database sconosciuto: %s\n" -@@ -5230,7 +5290,7 @@ msgid "No previous regular expression" - msgstr "Nessuna espressione regolare precedente" - - # lf --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parametro nullo o non impostato" - -@@ -7842,9 +7902,24 @@ msgstr "%s: impossibile creare la direct - #~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n" - #~ msgstr "Usare \\\"%s --help\" o \"%s --usage\" per ulteriori informazioni.\\n" - -+# lf -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "impossibile caricare altri oggetti con un TLS statico" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: nessun PLTREL trovato nell'oggetto %s\n" -+ - #~ msgid "Can't open configuration file %s" - #~ msgstr "Impossibile aprire il file di configurazione %s" - -+# lf -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "impossibile creare descrittori interni" -+ -+# lf -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "impossibile fare stat() sul file \"%s\": %s" -+ - #~ msgid "invalid value for 'reload-count': %u" - #~ msgstr "valore non valido per \"reload-count\": %u" - -Index: glibc-2.23/po/ja.po -=================================================================== ---- glibc-2.23.orig/po/ja.po -+++ glibc-2.23/po/ja.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.14\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2011-10-08 23:43+0900\n" - "Last-Translator: Yasuaki Taniguchi \n" - "Language-Team: Japanese \n" -@@ -145,10 +145,10 @@ msgstr "" - "[OUTPUT-FILE [INPUT-FILE]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, fuzzy, c-format -@@ -163,7 +163,7 @@ msgstr "" - ".\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -180,7 +180,7 @@ msgstr "" - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -440,11 +440,11 @@ msgstr "%s ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©é™ã‚’ %#o - msgid "Renaming of %s to %s failed" - msgstr "%s ã‹ã‚‰ %s ã¸ã®åå‰å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "スコープリストを作æˆã§ãã¾ã›ã‚“" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "共有オブジェクトãŒé–‹ã‘ã¾ã›ã‚“" - -@@ -517,127 +517,127 @@ msgstr "探索パスé…列を作æˆã§ã - msgid "cannot stat shared object" - msgstr "共有オブジェクトã®çŠ¶æ…‹å–å¾— (stat) ãŒã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "ゼロã§åŸ‹ã‚られãŸãƒ‡ãƒã‚¤ã‚¹ã‚’é–‹ã‘ã¾ã›ã‚“" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "共有オブジェクト記述å­ã‚’作æˆã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "ファイルデータを読ã¿è¾¼ã‚ã¾ã›ã‚“" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF ロードコマンド整列ãŒãƒšãƒ¼ã‚¸ã§æ•´åˆ—ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF ロードコマンドã®ã‚¢ãƒ‰ãƒ¬ã‚¹/オフセットãŒé©åˆ‡ã«æ•´åˆ—ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "åˆæœŸã‚¹ãƒ¬ãƒƒãƒ‰ç”¨ã® TLS データ構造体ãŒé…ç½®ã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "TLS データをå–り扱ãˆã¾ã›ã‚“" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "オブジェクトファイルã¯ãƒ­ãƒ¼ãƒ‰å¯èƒ½ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’æŒã£ã¦ã„ã¾ã›ã‚“" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "実行ファイルを動的ã«ãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "オブジェクトファイルã¯å‹•çš„セクションをæŒã£ã¦ã„ã¾ã›ã‚“" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "共有オブジェクト㯠dlopen() ã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "プログラムヘッダー用ã®ãƒ¡ãƒ¢ãƒªã‚’é…ç½®ã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "無効ãªå‘¼ã³å‡ºã—å…ƒã§ã™" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "メモリä¿è­·ã‚’変更ã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "共有オブジェクトãŒå¿…è¦ã¨ã—ã¦ã„る実行å¯èƒ½ã‚¹ã‚¿ãƒƒã‚¯ã‚’有効ã«ã§ãã¾ã›ã‚“" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "ファイル記述å­ã‚’é–‰ã˜ã‚‰ã‚Œã¾ã›ã‚“" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "ファイルãŒå°ã•ã™ãŽã¾ã™" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "無効㪠ELF ヘッダーã§ã™" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "ELF ファイルデータã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒãƒ“ッグエンディアンã§ã¯ã‚ã‚Šã¾ã›ã‚“" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "ELF ファイルデータã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒãƒªãƒˆãƒ«ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã§ã¯ã‚ã‚Šã¾ã›ã‚“" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF ファイルãƒãƒ¼ã‚¸ãƒ§ãƒ³è­˜åˆ¥å­ãŒç¾åœ¨ã®ã‚‚ã®ã¨ä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF ファイル OS ABI ãŒç„¡åŠ¹ã§ã™" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF ファイル ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒç„¡åŠ¹ã§ã™" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "e_ident 内ã«ã‚¼ãƒ­ã§ãªã„è©°ã‚文字ãŒã‚ã‚Šã¾ã™" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "内部エラー" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELFファイルã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ãŒç¾åœ¨ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "ET_DYN 㨠ET_EXEC ã®ã¿ãƒ­ãƒ¼ãƒ‰å¯èƒ½ã§ã™" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "ELF ファイル㮠phentsize ãŒäºˆæœŸã•ã‚ŒãŸã‚µã‚¤ã‚ºã§ã¯ã‚ã‚Šã¾ã›ã‚“" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "é–“é•ã£ãŸ ELF クラスã§ã™: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "é–“é•ã£ãŸ ELF クラスã§ã™: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "共有オブジェクトファイルを開ã‘ã¾ã›ã‚“" - -@@ -649,11 +649,11 @@ msgstr "共有オブジェクトã®ã‚»ã‚ - msgid "cannot map zero-fill pages" - msgstr "ゼロã§åŸ‹ã‚られãŸãƒšãƒ¼ã‚¸ã‚’マップã§ãã¾ã›ã‚“" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "å†é…置エラーã§ã™" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "シンボル検索エラーã§ã™" - -@@ -661,49 +661,40 @@ msgstr "シンボル検索エラーã§ã - msgid "cannot extend global scope" - msgstr "大域スコープを拡張ã§ãã¾ã›ã‚“" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "TLS 生æˆã‚«ã‚¦ãƒ³ã‚¿ãŒä¸€å‘¨ã—ã¾ã—ãŸ! ã“れを報告ã—ã¦ãã ã•ã„。" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "é™çš„ TLS ブロックã§ã¯ã“れ以上オブジェクトをロードã§ãã¾ã›ã‚“" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "dlopen() 用ã®ç„¡åŠ¹ãªãƒ¢ãƒ¼ãƒ‰ã§ã™" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "dlmopen() 用ã«ã“れ以上åå‰ç©ºé–“を使用出æ¥ã¾ã›ã‚“" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "dlmopen() 内ã§ç„¡åŠ¹ãªã‚¿ãƒ¼ã‚²ãƒƒãƒˆåå‰ç©ºé–“ã§ã™" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "é™çš„ TLS ブロック内ã«ãƒ¡ãƒ¢ãƒªã‚’é…置出æ¥ã¾ã›ã‚“" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "セグメントをå†é…置用ã«æ›¸ãè¾¼ã¿å¯èƒ½ã«å‡ºæ¥ã¾ã›ã‚“" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: PLTREL ãŒã‚ªãƒ–ジェクト %s 内ã«è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: %s 用ã®å†é…ç½®çµæžœã‚’ä¿å­˜ã™ã‚‹ã¨ãã«ãƒ¡ãƒ¢ãƒªãŒè¶³ã‚Šãªããªã‚Šã¾ã—ãŸ\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "å†é…置後ã«ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® prot を復元ã§ãã¾ã›ã‚“" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "å†é…置後ã«è¿½åŠ ã®ãƒ¡ãƒ¢ãƒªä¿è­·ã‚’é©ç”¨ã§ãã¾ã›ã‚“" - -@@ -711,7 +702,7 @@ msgstr "å†é…置後ã«è¿½åŠ ã®ãƒ¡ãƒ¢ãƒ - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "コード内ã§ä½¿ç”¨ã•ã‚Œã¦ã„ã‚‹ RTLD_NEXT ã‚’å‹•çš„ã«ãƒ­ãƒ¼ãƒ‰å‡ºæ¥ã¾ã›ã‚“" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "TLS データ構造体を作æˆã§ãã¾ã›ã‚“" - -@@ -855,7 +846,7 @@ msgstr "%s 用ã®å‹•çš„ライブラリå - msgid "Can't open directory %s" - msgstr "ディレクトリ %s ã‚’é–‹ã‘ã¾ã›ã‚“" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "入力ファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。\n" -@@ -986,7 +977,7 @@ msgstr "ファイル引数ãŒã‚ã‚Šã¾ã - msgid "No such file or directory" - msgstr "ãã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚„ディレクトリã¯ã‚ã‚Šã¾ã›ã‚“" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "通常ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“" - -@@ -1036,73 +1027,79 @@ msgstr "ヘッダーを読ã¿è¾¼ã‚ã¾ã - msgid "cannot read program interpreter" - msgstr "書庫ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "ファイルデータを読ã¿è¾¼ã‚ã¾ã›ã‚“" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "プログラムヘッダー用ã®ãƒ¡ãƒ¢ãƒªã‚’é…ç½®ã§ãã¾ã›ã‚“" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid argument %s for %s" - msgid "invalid process ID '%s'" - msgstr "%2$s ã«å¯¾ã™ã‚‹å¼•æ•° %1$s ãŒé–“é•ã£ã¦ã„ã¾ã™" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "`%s'ã‚’é–‹ã‘ã¾ã›ã‚“" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "`%s'ã‚’é–‹ã‘ã¾ã›ã‚“" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - #| msgid "cannot create searchlist" - msgid "cannot prepare reading %s/task" - msgstr "サーãƒãƒªã‚¹ãƒˆã‚’作æˆã§ãã¾ã›ã‚“" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "無効㪠ELF ヘッダーã§ã™" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot access '%s'" - msgid "cannot attach to process %lu" - msgstr "'%s' ã«ã‚¢ã‚¯ã‚»ã‚¹å‡ºæ¥ã¾ã›ã‚“" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1137,27 +1134,27 @@ msgstr "%s ã¯å…±æœ‰ã‚ªãƒ–ジェクトム- msgid "more than one dynamic segment\n" - msgstr "二ã¤ä»¥ä¸Šã®å‹•çš„セグメントãŒã‚ã‚Šã¾ã™\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "ファイル %s ã®çŠ¶æ…‹å–å¾— (fstat) ãŒã§ãã¾ã›ã‚“。\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "ファイル %s ã¯ç©ºã§ã™ã€‚検査ã•ã‚Œã¾ã›ã‚“。" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "ファイル %s ã¯å°ã•ã™ãŽã¾ã™ã€‚検査ã•ã‚Œã¾ã›ã‚“。" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "ファイル %s ã‚’ mmap ã§ãã¾ã›ã‚“。\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s 㯠ELF ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“ - 先頭ã«èª¤ã£ãŸãƒžã‚¸ãƒƒã‚¯ãƒã‚¤ãƒˆã‚’æŒã£ã¦ã„ã¾ã™ã€‚\n" -@@ -1304,9 +1301,9 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "共有オブジェクト `%s' ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "内部記述å­ã‚’作æˆã§ãã¾ã›ã‚“" - - #: elf/sprof.c:554 -@@ -1374,11 +1371,6 @@ msgstr "プロファイルデータフ゠- msgid "error while closing the profiling data file" - msgstr "プロファイルデータファイルを閉ã˜ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "内部記述å­ã‚’作æˆã§ãã¾ã›ã‚“" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1636,27 +1628,27 @@ msgstr "socket: 回線ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒ - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: 短ã„読込ã¿" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "é–‹ã‘ã¾ã›ã‚“" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "誤ã£ãŸæ‰€æœ‰è€…ã§ã™" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "所有者以外ãŒæ›¸ãè¾¼ã¿ãŒå¯èƒ½ã§ã™" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "ã©ã“ã‹ã§ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã•ã‚Œã¦ã„ã¾ã™" - -@@ -1776,8 +1768,8 @@ msgid "no symbolic name given for end of - msgstr "領域ã®æœ€å¾Œã«ã‚·ãƒ³ãƒœãƒ«åãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1803,8 +1795,8 @@ msgid "%s: error in state machine" - msgstr "%s: 状態マシン内ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1825,7 +1817,7 @@ msgstr "ä¸æ˜Žãªæ–‡å­— `%s' ã§ã™" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®é–‹å§‹ã‹ã‚‰çµ‚了ã¾ã§ã®ãƒã‚¤ãƒˆæ•°ã¨ã€ç¯„囲ã®çµ‚ã‚ã‚Šã¨ãŒä¸€è‡´ã—ã¾ã›ã‚“: %d 㨠%d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "キャラクタ範囲ã¨ã—ã¦ä¸æ­£ãªåå‰ã§ã™" -@@ -1847,8 +1839,8 @@ msgstr "範囲ã®ä¸Šé™ãŒä¸‹é™ã‚ˆã‚Šå° - msgid "resulting bytes for range not representable." - msgstr "範囲ã®çµæžœãƒã‚¤ãƒˆãŒè¡¨ç¤ºå¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“。" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1912,7 +1904,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: æ•°å­—ã®å›½ã‚³ãƒ¼ãƒ‰ `%d' ãŒç„¡åŠ¹ã§ã™" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1934,8 +1926,8 @@ msgstr "%s: フィールド `%s' ãŒäºŒå - msgid "%s: unknown character in field `%s'" - msgstr "%s: フィールド `%s' 内ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1944,12 +1936,12 @@ msgstr "%s: フィールド `%s' 内ã«ä - msgid "%s: incomplete `END' line" - msgstr "%s: ä¸å®Œå…¨ãª `END' è¡Œã§ã™" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1959,477 +1951,477 @@ msgstr "%s: ä¸å®Œå…¨ãª `END' è¡Œã§ã™ - msgid "%s: syntax error" - msgstr "%s: 構文エラー" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' ã¯æ—¢ã«æ–‡å­—マップ内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' ã¯æ—¢ã«ãƒ¬ãƒ‘ートリ内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' ã¯æ—¢ã«ç…§åˆã‚·ãƒ³ãƒœãƒ«ã¨ã—ã¦å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' ã¯æ—¢ã«ç…§åˆè¦ç´ ã¨ã—ã¦å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: `forward' 㨠`backward' ã¯æŽ’ä»–çš„ã§ã™" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: `%s'ã¯é‡ã¿å®šç¾© %d 中ã§è¤‡æ•°å›žä½¿ã‚ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: è¦å‰‡ãŒå¤šã™ãŽã¾ã™; 最åˆã®ã‚¨ãƒ³ãƒˆãƒªã¯ %d ã‚’æŒã£ã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: 並ã³æ›¿ãˆè¦å‰‡ãŒä¸å分ã§ã™" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: 空ã®é‡ã¿æ–‡å­—列ã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: é‡ã¿ã¯ãã®å称ã¨ã—ã¦åŒã˜çœç•¥ã‚·ãƒ³ãƒœãƒ«ã‚’使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: 値ãŒå¤šã™ãŽã¾ã™" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "`%.*s' 用ã®é †åºã¯ %s:%Zu ã§æ—¢ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: 範囲ã®é–‹å§‹ãƒ»çµ‚了シンボルã¯æ–‡å­—ã‚’æ„味ã—ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: 最åˆã¨æœ€å¾Œã®æ–‡å­—ã®ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¯åŒä¸€é•·ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: 範囲ã®æœ€åˆã®æ–‡å­—ã®ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¯æœ€å¾Œã®æ–‡å­—ã®ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚ˆã‚Šå°ã•ãã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: シンボルã®ç¯„囲ã®çœç•¥ã¯`order_start'ã®ã™ã後ã«ç½®ã„ã¦ã¯ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: シンボル範囲çœç•¥è¨˜å·ã¯`order_end'ã®ã™ã後ã«ç¶šã„ã¦ã¯ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' 㨠`%.*s' ã¯ã‚·ãƒ³ãƒœãƒ«ç¯„囲用ã¨ã—ã¦ç„¡åŠ¹ãªåå‰ã§ã™" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: `%.*s' 用ã®é †åºã¯æ—¢ã« %s:%Zu ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' ã¯å˜ä¸€æ–‡å­—ã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `position'ã¯ç‰¹å®šãƒ¬ãƒ™ãƒ«ã«å¯¾ã—ã€å…¨ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã§ä½¿ç”¨ã‹æœªä½¿ç”¨ã‹ã®ã©ã¡ã‚‰ã‹ã§ã™" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "シンボル `%s' ãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "シンボル `%s' ã¯ä»¥ä¸‹ã¨åŒã˜ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’æŒã£ã¦ã„ã¾ã™" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "シンボル `%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "`UNDEFINED' ã®å®šç¾©ãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "エラーãŒå¤šã™ãŽã¾ã™ã€‚処ç†ã‚’ã‚ãらã‚ã¾ã™" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: 入れå­ã«ãªã£ãŸæ¡ä»¶ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: 'else' ãŒäºŒå›žä»¥ä¸Šã‚ã‚Šã¾ã™" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: `%s' ã®é‡è¤‡ã—ãŸå®šç¾©ã§ã™" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: セクション `%s' ã®é‡è¤‡ã—ãŸå®£è¨€ã§ã™" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: ç…§åˆã‚·ãƒ³ãƒœãƒ«å内ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: 等価ãªå®šç¾©å内ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: 等価ãªå®šç¾©å€¤å†…ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: 等価ãªå®šç¾©å†…ã«æœªçŸ¥ã®ã‚·ãƒ³ãƒœãƒ« `%s' ãŒã‚ã‚Šã¾ã™" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "等価ãªç…§åˆã‚·ãƒ³ãƒœãƒ«è¿½åŠ ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "スクリプト `%s' ã®é‡è¤‡ã—ãŸå®šç¾©ã§ã™" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: ä¸æ˜Žãªã‚»ã‚¯ã‚·ãƒ§ãƒ³å `%.*s' ã§ã™" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: セクション `%s' 用ã®é †åºå®šç¾©ãŒè¤‡æ•°ã‚ã‚Šã¾ã™" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: 無効ãªä¸¦ã³æ›¿ãˆè¦å‰‡ã®ç•ªå·ã§ã™" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: åå‰ã®ãªã„セクションã«å¯¾ã™ã‚‹ä¸¦ã³æ›¿ãˆå®šç¾©ãŒè¤‡æ•°ã‚ã‚Šã¾ã™" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: `order_end' キーワードãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: ç…§åˆã‚·ãƒ³ãƒœãƒ« %.*s ã«å¯¾ã™ã‚‹ä¸¦ã¹æ›¿ãˆãŒã¾ã å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: ç…§åˆè¦ç´  %.*s ã«å¯¾ã™ã‚‹ä¸¦ã¹æ›¿ãˆãŒã¾ã å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: %.*sã®å¾Œã§å†ä¸¦ã³æ›¿ãˆãŒã§ãã¾ã›ã‚“: ä¸æ˜Žãªã‚·ãƒ³ãƒœãƒ«ã§ã™" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: `reorder-end' キーワードãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: セクション `%.*s' ã¯ä¸æ˜Žã§ã™" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: é–“é•ã£ãŸã‚·ãƒ³ãƒœãƒ« <%.*s> ã§ã™" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: çœç•¥è¨˜å·ã®ç¯„囲ã®çµ‚ã‚ã‚Šã¨ã—㦠`%s' ã‚’æŒã¤ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: 空ã®ã‚«ãƒ†ã‚´ãƒªè¨˜è¿°ã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: `reorder-sections-end' キーワードãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: '%s' ã«å¯¾å¿œã—ã¦ã„ã‚‹ 'ifdef' ã¾ãŸã¯ 'ifndef' ãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'endif' ã«å¯¾å¿œã—ã¦ã„ã‚‹ 'ifdef' ã¾ãŸã¯ 'ifndef' ãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "文字マップ内ã«æŒ‡å®šã—ãŸæ–‡å­—集åˆåãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "文字 L'\\u%0*x' (クラス `%s' 内) ã¯ã‚¯ãƒ©ã‚¹`%s' 内ã«ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "文字 L'\\u%0*x' (クラス `%s' 内) ã¯ã‚¯ãƒ©ã‚¹ `%s' 内ã«ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "%s 内ã€%u è¡Œã§å†…部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "クラス `%2$s' ã®æ–‡å­— `%1$s' ã¯ã‚¯ãƒ©ã‚¹ `%3$s' ã«ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "クラス `%2$s' 内ã®æ–‡å­— `%1$s' ã¯ã‚¯ãƒ©ã‚¹ `%3$s' ã«ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr " 文字ã¯ã‚¯ãƒ©ã‚¹ `%s' 内ã«ã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr " 文字ã¯ã‚¯ãƒ©ã‚¹ `%s' 内ã«ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "文字 ãŒæ–‡å­—マップ内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "`digit' カテゴリã¯ã‚°ãƒ«ãƒ¼ãƒ—中ã«10個ã®ã‚¨ãƒ³ãƒˆãƒªã‚’æŒã£ã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "入力æ¡ãŒå®šç¾©ã•ã‚Œã¦ã„ãªã„ã‹ã€æ–‡å­—マップ中ã«æ¨™æº–åãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "`outdigit' 内ã§ä½¿ç”¨ã•ã‚Œã¦ã„る文字ã®å…¨ã¦ãŒæ–‡å­—マップ内ã§åˆ©ç”¨å¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "`outdigit'ã§ä½¿ç”¨ä¸­ã®æ–‡å­—ã®ä¸€éƒ¨ã¯ãƒ¬ãƒ‘ートリマップã§åˆ©ç”¨å¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "文字クラス `%s' ã¯æ—¢ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "実装上ã®åˆ¶é™: %Zd より大ãã„文字クラスã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "文字マップ `%s' ã¯æ—¢ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "実装上ã®åˆ¶é™: %d より大ãã„文字マップã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: フィールド `%s' ã¯åŽ³å¯†ã«10項目をå«ã‚“ã§ã„ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "範囲㮠to ã®å€¤ 㯠from ã®å€¤ よりå°ã•ã„ã§ã™" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "範囲ã®é–‹å§‹ã¨çµ‚了文字シーケンスã¯åŒä¸€é•·ã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "to 値ã®æ–‡å­—シーケンス㯠from 値ã®æ–‡å­—シーケンスよりもå°ã•ã™ãŽã¾ã™" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "`translit_ignore' 定義ã®çµ‚端ãŒæ—©ã™ãŽã¾ã™" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "構文エラーã§ã™" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: æ–°ã—ã„文字クラスã®å®šç¾©å†…ã§æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ã§ã™" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: æ–°ã—ã„文字マップã®å®šç¾©å†…ã§æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ã§ã™" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "çœç•¥ã®ç¯„囲ã¯åŒã˜åž‹ã®äºŒå€‹ã®è¢«æ¼”ç®—å­ã«ã‚ˆã‚Šãƒžãƒ¼ã‚¯ã•ã‚Œã¦ã„ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "シンボルåã®å€¤ã®ç¯„囲ã¨ã—ã¦çµ¶å¯¾çœç•¥ `...' ã¯ä½¿ç”¨ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "UCS ã®å€¤ã®ç¯„囲ã¨ã—ã¦16進シンボルçœç•¥ `..' を使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "文字コードã®å€¤ã®ç¯„囲ã¨ã—ã¦çµ¶å¯¾çœç•¥ `...' を使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "é‡è¤‡ã—ãŸãƒžãƒƒãƒ”ング `%s' ã®å®šç¾©ã§ã™" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: `translit_start' セクション㌠`translit_end' ã§çµ‚ã£ã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: é‡è¤‡ã—㟠`default_missing' 定義ã§ã™" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "å‰ã®å®šç¾©ãŒã“ã“ã«ã‚ã‚Šã¾ã—ãŸ" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: 表ç¾å¯èƒ½ãª `default_missing' 定義ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: 文字 `%s' ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¨ã—ã¦å¿…è¦ã§ã™ãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: 文字マップ内ã®æ–‡å­— `%s' ã¯ä¸€ãƒã‚¤ãƒˆã§è¡¨ç¾ã§ãã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: デフォルト値ã¨ã—ã¦å¿…è¦ãªæ–‡å­— `%s' ãŒä¸€ãƒã‚¤ãƒˆã§è¡¨ç¾ã§ãã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "出力æ¡ãŒå®šç¾©ã•ã‚Œã¦ã„ãªã„ã‹ã€æ–‡å­—マップ内ã«æ¨™æº–åãŒã‚ã‚Šã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: ロケール `%s' ã‹ã‚‰ã®ãƒªãƒ†ãƒ©ãƒ«å¤‰æ›ãƒ‡ãƒ¼ã‚¿ãŒä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: クラス \"%s\" 用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: マップ \"%s\" 用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: 幅用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n" -@@ -3851,17 +3843,23 @@ msgstr "" - msgid " (first)" - msgstr " (最åˆ)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "データベースファイル `%s' ã‚’é–‹ã‘ã¾ã›ã‚“: %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "ファイル `%s' ã‚’ stat() ã§ãã¾ã›ã‚“: %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "%s キャッシュを切り詰ã‚ã¦ã„ã¾ã™ã€‚時間 %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3947,154 +3945,218 @@ msgstr "ソケットを実行時ã«é–‰ã - msgid "cannot enable socket to accept connections: %s" - msgstr "接続をå—ã‘付ã‘るソケットを有効ã«ã§ãã¾ã›ã‚“: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "ディレクトリ %s ã‚’é–‹ã‘ã¾ã›ã‚“" -+ -+#: nscd/connections.c:1022 - #, fuzzy, c-format - #| msgid "no more memory for database '%s'" --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "データベース '%s' 用ã®ãƒ¡ãƒ¢ãƒªãŒã“れ以上ã‚ã‚Šã¾ã›ã‚“" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ %d ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’æä¾›ã—ã¾ã™ (%s 用)" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "è¦æ±‚ã•ã‚ŒãŸå¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %d を扱ã†ã“ã¨ãŒã§ãã¾ã›ã‚“。ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ %d ã§ã™" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "%ld ã‹ã‚‰ã®è¦æ±‚ã¯æ¨©é™ãŒç„¡ã„ãŸã‚å–り扱ã‚ã‚Œã¾ã›ã‚“" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "'%s' [%ld] ã‹ã‚‰ã®è¦æ±‚ã¯æ¨©é™ãŒç„¡ã„ãŸã‚å–り扱ã‚ã‚Œã¾ã›ã‚“" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "è¦æ±‚ã¯æ¨©é™ãŒç„¡ã„ãŸã‚å–り扱ã‚ã‚Œã¾ã›ã‚“" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "çµæžœã‚’書ãè¾¼ã‚ã¾ã›ã‚“: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "呼ã³å‡ºã—å…ƒ ID ã®å–得時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "/proc/self/cmdline ã‚’é–‹ã‘ã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "/proc/self/cmdline を読ã¿è¾¼ã‚ã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "å¤ã„ UID ã¸å¤‰æ›´ã§ãã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "å¤ã„ GID ã«å¤‰æ›´ã§ãã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "å¤ã„作業ディレクトリã«ç§»å‹•ã§ãã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "å†å®Ÿè¡Œã«å¤±æ•—ã—ã¾ã—ãŸ: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ \"/\" ã«å¤‰æ›´ã§ãã¾ã›ã‚“: %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "読ã¿è¾¼ã¿è¦æ±‚より短ã„読ã¿è¾¼ã¿ã§ã™: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "è¦æ±‚ã«å«ã¾ã‚Œã‚‹ã‚­ãƒ¼é•·ãŒé•·ã™ãŽã¾ã™: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "è¦æ±‚キーã®èª­ã¿è¾¼ã¿ã‚ˆã‚ŠçŸ­ã„読ã¿è¾¼ã¿ã§ã™: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: è¦æ±‚ã‚’å—ã‘å–ã‚Šã¾ã—㟠(ãƒãƒ¼ã‚¸ãƒ§ãƒ³ = %d) é€ä¿¡PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: è¦æ±‚ã‚’å—ã‘å–ã‚Šã¾ã—㟠(ãƒãƒ¼ã‚¸ãƒ§ãƒ³ = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, fuzzy, c-format -+#| msgid "failed to reopen %s with mode %s" -+msgid "failed to remove file watch `%s`: %s" -+msgstr "%s をモード %s ã§å†åº¦é–‹ãã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "共有オブジェクト `%s' ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ %d ãŒç™ºç”Ÿã—ãŸãŸã‚ inotify を無効ã«ã—ã¾ã—ãŸ" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "æ¡ä»¶å¤‰æ•°ã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "クリーンアップスレッドを開始ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚終了ã—ã¾ã™" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "作業スレッドを全ã開始ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚終了ã—ã¾ã™" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "ユーザー '%s' 㧠nscd を実行ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "getgrouplist åˆæœŸåŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist㫠失敗ã—ã¾ã—ãŸ" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "%s ã§ã®çŸ­ã„書ãè¾¼ã¿: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "グループキャッシュ内㫠\"%s\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "グループキャッシュ内㮠\"%s\" ã‚’å†ãƒ­ãƒ¼ãƒ‰ã—ã¦ã„ã¾ã™!" -@@ -4186,7 +4248,7 @@ msgstr "ユーザã”ã¨ã«ã‚­ãƒ£ãƒƒã‚·ãƒ - msgid "Name Service Cache Daemon." - msgstr "åå‰ã‚µãƒ¼ãƒ“スキャッシュデーモン。" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™" -@@ -4220,7 +4282,7 @@ msgstr "ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒ - msgid "Could not create log file" - msgstr "ログファイルを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "書込ã¿ãŒä¸å®Œå…¨ã§ã™" -@@ -4235,7 +4297,7 @@ msgstr "無効ã«ã—㟠ACK を読ã¿è¾¼ - msgid "invalidation failed" - msgstr "無効化ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "root ã®ã¿ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã“ã¨ã‚’許å¯ã•ã‚Œã¦ã„ã¾ã™!" -@@ -4317,35 +4379,35 @@ msgstr "ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒ - msgid "maximum file size for %s database too small" - msgstr "%s データベース用ã®æœ€å¤§ã‚µã‚¤ã‚ºãŒå°ã•ã™ãŽã¾ã™" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "統計情報を書ãè¾¼ã‚ã¾ã›ã‚“: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "yes" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "no" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "root ã¾ãŸã¯ %s ã ã‘ãŒã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscdã¯èµ·å‹•ã—ã¦ã„ã¾ã›ã‚“!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "統計情報を読ã¿è¾¼ã‚ã¾ã›ã‚“" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4356,27 +4418,27 @@ msgstr "" - "\n" - "%15d サーãƒãƒ¼ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus サーãƒãƒ¼ 実行時間\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus サーãƒãƒ¼ 実行時間\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus サーãƒãƒ¼ 実行時間\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus サーãƒãƒ¼ 実行時間\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4393,7 +4455,7 @@ msgstr "" - "%15lu 内部å†èµ·å‹•\n" - "%15u å†èµ·å‹•å›žæ•°\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4459,87 +4521,87 @@ msgstr "ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚­ãƒ£ãƒƒã‚·ãƒ¥å† - msgid "Invalid numeric uid \"%s\"!" - msgstr "無効㪠uid ã®æ•°å€¤ \"%s\" ã§ã™!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "監査サブシステムã¸ã®æŽ¥ç¶šã‚’é–‹ãã®ã«å¤±æ•—ã—ã¾ã—ãŸ: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "keep-capabilities ã®è¨­å®šã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "権é™ã‚’å–り除ã„ã¦åˆæœŸåŒ–ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "権é™ã‚’å–り除ãã®ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "keep-capabilities ã®è¨­å®šè§£é™¤ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "カーãƒãƒ«ãŒ SELinux をサãƒãƒ¼ãƒˆã™ã‚‹ã‹ã©ã†ã‹ã®åˆ¤å®šã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "AVC スレッドã®é–‹å§‹ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "AVC ロックã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "AVC ã®é–‹å§‹ã«å¤±æ•—ã—ã¾ã—ãŸ" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Access Vector Cache (AVC) ãŒé–‹å§‹ã•ã‚Œã¾ã—ãŸ" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - #| msgid "Error getting context of nscd" - msgid "Error getting security class for nscd." - msgstr "nscd ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "ソケット対å‘ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "nscd ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "コンテキストã‹ã‚‰ sid ã‚’å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4603,16 +4665,16 @@ msgstr "管ç†ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‹ã‚‰ã‚ - msgid "Enumeration not supported on %s\n" - msgstr "エミュレーション㯠%s 上ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "ä¸æ˜Žãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹åã§ã™" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„るデータベース:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "ä¸æ˜Žãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã§ã™: %s\n" -@@ -4904,7 +4966,7 @@ msgstr ") ã¾ãŸã¯ \\) ãŒä¸ä¸€è‡´ã§ã - msgid "No previous regular expression" - msgstr "以å‰ã«æ­£è¦è¡¨ç¾ãŒã‚ã‚Šã¾ã›ã‚“" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "パラメータ㌠NULL ã§ã‚ã‚‹ã‹è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“" - -@@ -7313,9 +7375,21 @@ msgstr "%s: ディレクトリ%sã‚’ä½œæˆ - #~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n" - #~ msgstr "詳細㯠\\`%s --help' ã¾ãŸã¯ `%s --usage' を実行ã—ã¦ãã ã•ã„。\\n" - -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "é™çš„ TLS ブロックã§ã¯ã“れ以上オブジェクトをロードã§ãã¾ã›ã‚“" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: PLTREL ãŒã‚ªãƒ–ジェクト %s 内ã«è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n" -+ - #~ msgid "Can't open configuration file %s" - #~ msgstr "設定ファイル %s ã‚’é–‹ã‘ã¾ã›ã‚“" - -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "内部記述å­ã‚’作æˆã§ãã¾ã›ã‚“" -+ -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "ファイル `%s' ã‚’ stat() ã§ãã¾ã›ã‚“: %s" -+ - #~ msgid "invalid value for 'reload-count': %u" - #~ msgstr "'reload-count' 用ã®ç„¡åŠ¹ãªå€¤ã§ã™: %u" - -@@ -7707,9 +7781,6 @@ msgstr "%s: ディレクトリ%sã‚’ä½œæˆ - #~ msgid "unknown stream" - #~ msgstr "ä¸æ˜Žãªã‚¹ãƒˆãƒªãƒ¼ãƒ " - --#~ msgid "failed to reopen %s with mode %s" --#~ msgstr "%s をモード %s ã§å†åº¦é–‹ãã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" -- - #~ msgid "string comparison failed" - #~ msgstr "文字列ã®æ¯”較ã«å¤±æ•—ã—ã¾ã—ãŸ" - -Index: glibc-2.23/po/lt.po -=================================================================== ---- glibc-2.23.orig/po/lt.po -+++ glibc-2.23/po/lt.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc-2.7\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2009-02-12 05:24+0200\n" - "Last-Translator: Gintautas Miliauskas \n" - "Language-Team: Lithuanian \n" -@@ -141,10 +141,10 @@ msgstr "" - "[IÅ VEDIMO-FAILAS [DUOMENŲ-FAILAS]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -154,7 +154,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -168,7 +168,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -420,12 +420,12 @@ msgstr "%s pervardinimas į %s nesÄ—kmin - msgid "Renaming of %s to %s failed" - msgstr "%s pervadinimas į %s nesÄ—kmingas" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - #, fuzzy - msgid "cannot create scope list" - msgstr "nepavyko sukurti paieÅ¡kos sÄ…raÅ¡o" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "bendrasis objektas neatvertas" - -@@ -505,132 +505,132 @@ msgstr "nepavyko sukurti paieÅ¡kos sÄ…ra - msgid "cannot stat shared object" - msgstr "nepavyko atverti bendrojo objekto failo" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - #, fuzzy - msgid "cannot open zero fill device" - msgstr "nepavyko atverti duomenų failo „%s“" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - #, fuzzy - msgid "cannot create shared object descriptor" - msgstr "nepavyko užverti failo deskriptoriaus" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "nepavyko nuskaityti failo duomenų" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "nepavyko apdoroti TLS duomenų" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "objektiniame faile nÄ—ra įkeliamų segmentų" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - #, fuzzy - msgid "cannot dynamically load executable" - msgstr "\tne dinaminis paleidžiamasis failas" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "objektiniame faile nÄ—ra dinaminÄ—s sekcijos" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "bendrasis objektas negali bÅ«ti atvertas su dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "nepavyko iÅ¡skirti atminties programos antraÅ¡tei" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - msgid "invalid caller" - msgstr "netaisyklingas kvietÄ—jas" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - #, fuzzy - msgid "cannot change memory protections" - msgstr "nepavyko iÅ¡skirti atminties programos antraÅ¡tei" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "nepavyko užverti failo deskriptoriaus" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "failas per trumpas" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "netaisyklinga ELF antraÅ¡tÄ—" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "ELF failo duomenų koduotÄ— ne big-endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "ELF failo duomenų koduotÄ— ne little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF failo versijos identifikatorius neatitinka esamo" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF failo OS ABI netaisyklingas" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF failo ABI versija netaisyklinga" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "vidinÄ— klaida" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF failo versija neatitinka esamos" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "klaidinga ELF klasÄ—: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "klaidinga ELF klasÄ—: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "nepavyko atverti bendrojo objekto failo" - -@@ -642,11 +642,11 @@ msgstr "" - msgid "cannot map zero-fill pages" - msgstr "" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "relokacijos klaida" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "simbolio paieÅ¡kos klaida" - -@@ -654,52 +654,42 @@ msgstr "simbolio paieÅ¡kos klaida" - msgid "cannot extend global scope" - msgstr "" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "TLS kartų skaitiklis persivertÄ—! PraÅ¡ytume apie tai praneÅ¡ti." - --#: elf/dl-open.c:542 --#, fuzzy --msgid "cannot load any more object with static TLS" --msgstr "Nepavyko iÅ¡skirti atminties" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "netaisyklinga veiksena dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - msgid "invalid target namespace in dlmopen()" - msgstr "netaisyklinga veiksena dlopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - msgid "cannot allocate memory in static TLS block" - msgstr "Nepavyko iÅ¡skirti atminties" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: objekte %s nerasta PLTREL\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "" - -@@ -708,7 +698,7 @@ msgstr "" - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_SELF panaudotas ne dinamiÅ¡kai įkeltame kode" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "nepavyko sukurti TLS duomenų struktÅ«rų" - -@@ -855,7 +845,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "Nepavyko atverti aplanko %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Ä®vedimo failas %s nerastas.\n" -@@ -980,7 +970,7 @@ msgstr "trÅ«ksta failo argumento" - msgid "No such file or directory" - msgstr "Toks failas ar aplankas neegzistuoja" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "ne paprastas failas" - -@@ -1029,71 +1019,77 @@ msgstr "nepavyko perskaityti antraÅ¡tÄ—s - msgid "cannot read program interpreter" - msgstr "nepavyko perskaityti antraÅ¡tÄ—s" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "nepavyko nuskaityti failo duomenų" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "nepavyko perskaityti antraÅ¡tÄ—s" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "nepavyko iÅ¡skirti atminties programos antraÅ¡tei" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - msgid "invalid process ID '%s'" - msgstr "netaisyklingas naudotojas" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "nepavyko atverti „%s“" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "nepavyko atverti „%s“" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - #| msgid "cannot create searchlist" - msgid "cannot prepare reading %s/task" - msgstr "nepavyko sukurti paieÅ¡kos sÄ…raÅ¡o" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "netaisyklinga ELF antraÅ¡tÄ—" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - msgid "cannot attach to process %lu" - msgstr "nepavyko atverti bendrojo objekto failo" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1128,27 +1124,27 @@ msgstr "" - msgid "more than one dynamic segment\n" - msgstr "daugiau negu vienas dinaminis segmentas\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, fuzzy, c-format - msgid "Cannot fstat file %s.\n" - msgstr "%s: nepavyko atverti laikinojo failo: %s" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Failas %s tuÅ¡Äias, todÄ—l netikrintas." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Failas %s per mažas, todÄ—l netikrintas." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, fuzzy, c-format - msgid "Cannot mmap file %s.\n" - msgstr "%s: nepavyko atverti laikinojo failo: %s" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s nÄ—ra ELF failas - magiÅ¡kieji baitai failo pradžioje neteisingi.\n" -@@ -1277,9 +1273,9 @@ msgstr "" - msgid "failed to load shared object `%s'" - msgstr "nepavyko atverti bendrojo objekto failo" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, fuzzy, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "nepavyko užverti failo deskriptoriaus" - - #: elf/sprof.c:554 -@@ -1347,11 +1343,6 @@ msgstr "" - msgid "error while closing the profiling data file" - msgstr "klaida užveriant iÅ¡vedimo failÄ…" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, fuzzy, c-format --msgid "cannot create internal descriptor" --msgstr "nepavyko užverti failo deskriptoriaus" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1602,29 +1593,29 @@ msgstr "" - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - #, fuzzy - msgid "cannot open" - msgstr "nepavyko atverti" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - #, fuzzy - msgid "bad owner" - msgstr "blogas jungtukas" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "" - -@@ -1748,8 +1739,8 @@ msgid "no symbolic name given for end of - msgstr "neduotas joks simbolinis vardas" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1775,8 +1766,8 @@ msgid "%s: error in state machine" - msgstr "%s: klaida bÅ«senų automate" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1797,7 +1788,7 @@ msgstr "nežinomas simbolis „%s“" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - #, fuzzy - msgid "invalid names for character range" -@@ -1820,8 +1811,8 @@ msgstr "virÅ¡utinÄ— riba mažesnÄ— už a - msgid "resulting bytes for range not representable." - msgstr "" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1885,7 +1876,7 @@ msgid "%s: numeric country code `%d' not - msgstr "" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1907,8 +1898,8 @@ msgstr "%s: laukas „%s“ apibrėžtas - msgid "%s: unknown character in field `%s'" - msgstr "%s: nežinomas simbolis lauke „%s“" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1917,12 +1908,12 @@ msgstr "%s: nežinomas simbolis lauke †- msgid "%s: incomplete `END' line" - msgstr "%s: nepilna „END“ eilutÄ—" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1932,477 +1923,477 @@ msgstr "%s: nepilna „END“ eilutÄ—" - msgid "%s: syntax error" - msgstr "%s: sintaksÄ—s klaida" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, fuzzy, c-format - msgid "%s: too many values" - msgstr "%s: Per daug argumentų\n" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, fuzzy, c-format - msgid "%s: `%s' must be a character" - msgstr "„%s“: trÅ«ksta formato simbolio" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "simbolis „%s“ neapibrėžtas" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "simbolis „%s“" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "per daug klaidų; pasiduodu" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - msgid "%s: nested conditionals not supported" - msgstr "Operacija nepalaikoma" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - msgid "%s: more than one 'else'" - msgstr "%s: nÄ—ra baigimo specifikacijos" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, fuzzy, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "kartotinis <%s> apibrėžimas" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, fuzzy, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "kartotinis <%s> apibrėžimas" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, fuzzy, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: nežinomas simbolis lauke „%s“" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: nežinomas simbolis lauke „%s“" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: nežinomas simbolis lauke „%s“" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - #, fuzzy - msgid "error while adding equivalent collating symbol" - msgstr "klaida įkeliant bendrÄ…sias bibliotekas" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, fuzzy, c-format - msgid "duplicate definition of script `%s'" - msgstr "kartotinis <%s> apibrėžimas" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "„%s“: nežinomas funkcijos pavadinimas" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, fuzzy, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: netaisyklingas argumentas" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, fuzzy, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: trÅ«ksta dvitaÅ¡kio skirtuko" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, fuzzy, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: trÅ«ksta dvitaÅ¡kio skirtuko" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, fuzzy, c-format - msgid "%s: section `%.*s' not known" - msgstr "Duomenų failas %s nerastas.\n" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, fuzzy, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: laukas „%s“ apibrėžtas daugiau negu vienÄ… kartÄ…" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "sintaksÄ—s klaida" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, fuzzy, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "sintaksÄ—s klaida %s apraÅ¡yme: %s" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, fuzzy, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "kartotinis <%s> apibrėžimas" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, fuzzy, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, fuzzy, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "pakartotinis rinkinio apibrėžimas" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, fuzzy, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: nepavyko atverti %s: %m\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -3820,17 +3811,23 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 - #, fuzzy, c-format --msgid "cannot stat() file `%s': %s" -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "nepavyko atverti duomenų bazÄ—s failo „%s“: %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3921,153 +3918,214 @@ msgstr "nepavyko sukurti laikino failo â - msgid "cannot enable socket to accept connections: %s" - msgstr "" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Nepavyko atverti aplanko %s" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, fuzzy, c-format - msgid "cannot write result: %s" - msgstr "%s:%u: nepavyko perskaityti aplanko %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, fuzzy, c-format - msgid "error getting caller's id: %s" - msgstr "raÅ¡omas %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, fuzzy, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, fuzzy, c-format - msgid "short read while reading request: %s" - msgstr "problemos skaitant „%s“" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "nepavyko atverti bendrojo objekto failo" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, fuzzy, c-format - msgid "short write in %s: %s" - msgstr "%s: Klaida raÅ¡ant %s\n" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "" -@@ -4158,7 +4216,7 @@ msgstr "" - msgid "Name Service Cache Daemon." - msgstr "" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, fuzzy, c-format - msgid "wrong number of arguments" - msgstr "per daug argumentų" -@@ -4192,7 +4250,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "" -@@ -4207,7 +4265,7 @@ msgstr "nepavyko nuskaityti failo duomen - msgid "invalidation failed" - msgstr "netinkamas mÄ—nesio pavadinimas" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "" -@@ -4289,35 +4347,35 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, fuzzy, c-format - msgid "cannot write statistics: %s" - msgstr "nepavyko sukurti paieÅ¡kos sÄ…raÅ¡o" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "taip" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "ne" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, fuzzy, c-format - msgid "cannot read statistics data" - msgstr "nepavyko nuskaityti failo duomenų" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4325,27 +4383,27 @@ msgid "" - "%15d server debug level\n" - msgstr "" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4356,7 +4414,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4399,86 +4457,86 @@ msgstr "" - msgid "Invalid numeric uid \"%s\"!" - msgstr "nekorektiÅ¡ka eilutÄ—" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Nepavyko nustatyti, ar branduolys palaiko SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - #, fuzzy - msgid "Failed to start AVC" - msgstr "failas per trumpas" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4531,16 +4589,16 @@ msgstr "" - msgid "Enumeration not supported on %s\n" - msgstr "Operacija nepalaikoma" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Nežinomas duomenų bazÄ—s vardas" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Palaikomos duomenų bazÄ—s:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Nežinoma duomenų bazÄ—: %s\n" -@@ -4829,7 +4887,7 @@ msgstr "Nesuderintas ) arba \\)" - msgid "No previous regular expression" - msgstr "NÄ—ra ankstesniosios reguliariosios iÅ¡raiÅ¡kos" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parametras tuÅ¡Äias arba nenustatytas" - -@@ -7283,15 +7341,26 @@ msgstr "Nepavyko atverti aplanko %s" - #~ msgid "xtrace: option \\`$1' requires an argument.\\n" - #~ msgstr "memusage: parametrui „$1“ reikia argumento" - -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: objekte %s nerasta PLTREL\n" -+ - #~ msgid "Can't open configuration file %s" - #~ msgstr "Nepavyko atverti konfigÅ«racijos failo %s" - -+#, fuzzy -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "nepavyko užverti failo deskriptoriaus" -+ - #~ msgid "Try \\`memusage --help' for more information." - #~ msgstr "Pabandykite „memusage --help“, jei norite gauti daugiau informacijos." - - #~ msgid "memusage: option \\`$1' requires an argument" - #~ msgstr "memusage: parametrui „$1“ reikia argumento" - -+#, fuzzy -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "nepavyko atverti duomenų bazÄ—s failo „%s“: %s" -+ - #~ msgid "incorrectly formatted file" - #~ msgstr "netaisyklingas failo formatas" - -Index: glibc-2.23/po/nb.po -=================================================================== ---- glibc-2.23.orig/po/nb.po -+++ glibc-2.23/po/nb.po -@@ -7,7 +7,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.3.2\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2003-08-28 09:27+0100\n" - "Last-Translator: Eivind Tagseth \n" - "Language-Team: Norwegian \n" -@@ -144,10 +144,10 @@ msgstr "" - "[UTFIL [INNFIL]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -157,7 +157,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -175,7 +175,7 @@ msgstr "" - "TIL NOEN SPESIELL OPPGAVE.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -442,12 +442,12 @@ msgstr "" - msgid "Renaming of %s to %s failed" - msgstr "mapping av seksjonsoverskrifter feilet" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - #, fuzzy - msgid "cannot create scope list" - msgstr "kan ikke skrive til klient" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - #, fuzzy - msgid "shared object not open" - msgstr "Nanvgitt objekt er ikke søkbart" -@@ -531,140 +531,140 @@ msgstr "kan ikke opprette intern deskrip - msgid "cannot stat shared object" - msgstr "klarte ikke Ã¥ laste delt objekt «%s»" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - #, fuzzy - msgid "cannot open zero fill device" - msgstr "kan ikke Ã¥pne utfil" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - #, fuzzy - msgid "cannot create shared object descriptor" - msgstr "kan ikke opprette intern deskriptor" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - #, fuzzy - msgid "cannot read file data" - msgstr "kan ikke laste inn profileringsdata" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - #, fuzzy - msgid "cannot handle TLS data" - msgstr "kan ikke allokere symboldata" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - #, fuzzy - msgid "cannot allocate memory for program header" - msgstr "Kan ikke tildele minne" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - msgid "invalid caller" - msgstr "ugyldig skuddÃ¥r" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - #, fuzzy - msgid "cannot change memory protections" - msgstr "kan ikke behandle spesifikasjon av rekkefølge" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - #, fuzzy - msgid "cannot enable executable stack as shared object requires" - msgstr "kan ikke opprette intern deskriptor" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - #| msgid "cannot create internal descriptor" - msgid "cannot close file descriptor" - msgstr "kan ikke opprette intern deskriptor" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - #, fuzzy - msgid "file too short" - msgstr "For stor fil" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - #, fuzzy - msgid "invalid ELF header" - msgstr "ugyldig sluttÃ¥r" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - #, fuzzy - msgid "internal error" - msgstr "Intern NIS-feil" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - #, fuzzy - msgid "cannot open shared object file" - msgstr "kan ikke Ã¥pne utfil" -@@ -679,12 +679,12 @@ msgstr "klarte ikke Ã¥ laste delt objekt - msgid "cannot map zero-fill pages" - msgstr "kan ikke laste inn profileringsdata" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - #, fuzzy - msgid "relocation error" - msgstr "Autentiseringsfeil" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -692,53 +692,44 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "ugyldig modus for dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - #| msgid "invalid mode for dlopen()" - msgid "invalid target namespace in dlmopen()" - msgstr "ugyldig modus for dlopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - #| msgid "Cannot allocate memory" - msgid "cannot allocate memory in static TLS block" - msgstr "Kan ikke tildele minne" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - #, fuzzy - msgid "cannot apply additional memory protection after relocation" - msgstr "kan ikke behandle spesifikasjon av rekkefølge" -@@ -747,7 +738,7 @@ msgstr "kan ikke behandle spesifikasjon - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT brukt i kode som ikke er dynamisk lastet" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - #, fuzzy - msgid "cannot create TLS data structures" - msgstr "kan ikke opprette interne deskriptorer" -@@ -897,7 +888,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "%s: Kan ikke opprette filkatalog %s: %s\n" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, fuzzy, c-format - msgid "Input file %s not found.\n" - msgstr "ferdighetskartfilen «%s» ikke funnet" -@@ -1033,7 +1024,7 @@ msgstr "kan ikke frigjøre argumenter" - msgid "No such file or directory" - msgstr "Ingen slik fil eller filkatalog" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "ikke en vanlig fil" - -@@ -1080,68 +1071,73 @@ msgstr "kan ikke lese hode fra «%s»" - msgid "cannot read program interpreter" - msgstr "kan ikke lese hode fra «%s»" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - msgid "cannot read link map" - msgstr "kan ikke laste inn profileringsdata" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - msgid "cannot read object name" - msgstr "kan ikke lese hode fra «%s»" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "Kan ikke tildele minne" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - msgid "invalid process ID '%s'" - msgstr "ugyldig mÃ¥nedsnavn" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "kan ikke Ã¥pne «%s»" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "kan ikke Ã¥pne «%s»" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - msgid "cannot prepare reading %s/task" - msgstr "kan ikke lese fra klient" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - msgid "invalid thread ID '%s'" - msgstr "ugyldig sluttÃ¥r" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot find C preprocessor: %s \n" - msgid "cannot attach to process %lu" - msgstr "kan ikke finn C-preprosessor: %s \n" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1176,27 +1172,27 @@ msgstr "" - msgid "more than one dynamic segment\n" - msgstr "" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, fuzzy, c-format - msgid "Cannot fstat file %s.\n" - msgstr "kan ikke utføre stat() pÃ¥ fil «%s»: %s" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, fuzzy, c-format - msgid "Cannot mmap file %s.\n" - msgstr "kan ikke Ã¥pne innfil «%s»" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "" -@@ -1331,10 +1327,10 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "klarte ikke Ã¥ laste delt objekt «%s»" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "kan ikke opprette interne deskriptorer" -+msgid "cannot create internal descriptor" -+msgstr "kan ikke opprette intern deskriptor" - - #: elf/sprof.c:554 - #, c-format -@@ -1403,11 +1399,6 @@ msgstr "klarte ikke Ã¥ mmap'e filen med - msgid "error while closing the profiling data file" - msgstr "feil ved lukking av datafilen for profilering" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "kan ikke opprette intern deskriptor" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1670,27 +1661,27 @@ msgstr "socket: protokollfeil i oppsetti - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat feilet" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "kan ikke Ã¥pne" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat feilet" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "feil eier" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "skrivbar av andre enn eier" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "hardlinket et eller annet sted" - -@@ -1814,8 +1805,8 @@ msgid "no symbolic name given for end of - msgstr "ikke noe symbolsk navn gitt for slutten pÃ¥ omrÃ¥det" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1841,8 +1832,8 @@ msgid "%s: error in state machine" - msgstr "%s: feil i tilstandsmaskinen" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1863,7 +1854,7 @@ msgstr "ukjent tegn «%s»" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "antall bytes for bytesekvens pÃ¥ begynnelse og slutt av omrÃ¥de er ikke de samme: %d mot %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "ulovlige navn for tegnomrÃ¥de" -@@ -1887,8 +1878,8 @@ msgstr "øvre grense i omrÃ¥de er ikke m - msgid "resulting bytes for range not representable." - msgstr "resulterende bytes for omrÃ¥de kan ikke representerbare" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1953,7 +1944,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: nummerisk landkode «%d» er ugyldig" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1975,8 +1966,8 @@ msgstr "%s: felt «%s» deklarert mer en - msgid "%s: unknown character in field `%s'" - msgstr "%s: ukjent tegn i felt «%s»" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1985,12 +1976,12 @@ msgstr "%s: ukjent tegn i felt «%s»" - msgid "%s: incomplete `END' line" - msgstr "%s: ugyldig «END»-linje" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -2000,483 +1991,483 @@ msgstr "%s: ugyldig «END»-linje" - msgid "%s: syntax error" - msgstr "%s: syntaksfeil" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "«%.*s» er allerede definert i tegnkart" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, fuzzy, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "«%.*s» er allerede definert i innhold" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "«%.*s» er allerede definert som sorteringssymbol" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "«%.*s» er allerede definert som sorteringselement" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: sorteringsrekkefølge «forward» og «backward» utelukker hverandre" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: «%s» er nevnt mer enn en gang i definisjon med vekt %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: for mange regler; første innslag hadde bare %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: ikke nok sorteringsregler" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: tomt vektstreng ikke tillatt" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: vekter mÃ¥ bruke det samme ellipsesymbolet som navnet" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: For mange verdier" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "rekkefølgen for «%.*s» er allerede definert ved %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: startsymbol og slyttsymbol for et omrÃ¥de mÃ¥ stÃ¥ for tegn" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: bytesekvens for første og siste tegn mÃ¥ ha samme lengde" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, fuzzy, c-format - #| msgid "%s: byte sequence of first character of sequence is not lower than that of the last character" - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: bytesekvens for første tegn i en sekvens er ikke lavere enn den for siste tegn" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: symbolsk omrÃ¥de-ellipse mÃ¥ ikke følge direkte etter «order_start»" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: symbolsk omrÃ¥de-ellipse mÃ¥ ikke følges direkte av «order_end»" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, fuzzy, c-format - #| msgid "`%s' and `%.*s' are no valid names for symbolic range" - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "«%s» og «%.*s» er ulovlige navn for symbolsk omrÃ¥de" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: rekkefølge for «%.*s» er allerede definert ved %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: «%s» mÃ¥ være et tegn" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: «position» mÃ¥ bli brukt for et spesielt nivÃ¥ i alle seksjoner eller ingen" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "symbol «%s» ikke definert" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "symbol «%s» har samme koding som" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "symbol «%s»" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "ingen definisjon av «UNDEFINED»" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "for mange feil: gir opp" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - #| msgid "Operation not supported" - msgid "%s: nested conditionals not supported" - msgstr "Operasjonen er ikke støttet" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: More than one -l option specified\n" - msgid "%s: more than one 'else'" - msgstr "%s: Mer enn ett -l-flagg spesifisert\n" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: duplisert definisjon av «%s»" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: duplisert definisjon av seksjon «%s»" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: ukjent tegn i navn pÃ¥ sorteringssymbol" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: ukjent tegn i tilsvarende definisjonsnavn" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: syntaksfeil i definisjon av tegnkonvertering" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, fuzzy, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "ukjent symbol «%.*s»: linje ignorert" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, fuzzy, c-format - msgid "duplicate definition of script `%s'" - msgstr "duplisert definisjon av tegn «%.*s»" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - #| msgid "%s: unknown section name `%s'" - msgid "%s: unknown section name `%.*s'" - msgstr "%s: ukjent seksjonsnavn «%s»" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: flere rekkefølgedefinisjoner for seksjon «%s»" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: ugyldig antall sorteringsregler" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: flere rekkefølgedefinisjoner for ikke navngitt seksjon" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: mangler «order_end»-nøkkelord" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: rekkefølge for sorteringssymbol %.*s ennÃ¥ ikke definert" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: rekkefølge for sorteringselement %.*s ennÃ¥ ikke definert" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, fuzzy, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: kan ikke omsortere etter %.*s: symbolet er ukjent" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: mangler «reorder-end»-nøkkelord" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: seksjon «%.*s» er ukjent" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: ugyldig symbol <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: kan ikke ha «%s» som avslutning av ellipse-omrÃ¥de" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: tom kategori-beskrivelse ikke tillatt" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: mangler «reorder-sections-end»-nøkkelord" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, fuzzy, c-format - msgid "No character set name specified in charmap" - msgstr "tegnet ikke definert i tegnkartet" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, fuzzy, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "tegnet %s'%s' i klassen «%s» mÃ¥ være i klassen «%s»" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, fuzzy, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "tegnet %s'%s' i klassen «%s» kan ikke være i klassen «%s»" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "intern feil i %s, linje %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, fuzzy, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "tegnet %s'%s' i klassen «%s» mÃ¥ være i klassen «%s»" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, fuzzy, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "tegnet %s'%s' i klassen «%s» kan ikke være i klassen «%s»" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "tegnet er ikke i klassen «%s»" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "tegnet kan ikke være i klassen «%s»" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "tegnet ikke definert i tegnkartet" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "tegnklassen «%s» allerede definert" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, fuzzy, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "implementasjonsbegrensning: ikke flere enn %d tegnklasser tillatt" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "tegnkartet «%s» allerede definert" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "implementasjonsbegrensning: ikke flere enn %d tegnkart tillatt" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - #, fuzzy - msgid "premature end of `translit_ignore' definition" - msgstr "For tidlig slutt pÃ¥ regulært uttrykk" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - #, fuzzy - msgid "syntax error" - msgstr "Systemfeil" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, fuzzy, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "syntaksfeil i definisjon av ny tegnklasse" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, fuzzy, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "syntaksfeil i definisjon av nytt tegnkart" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, fuzzy, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "duplisert definisjon av tegn «%.*s»" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, fuzzy, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "duplisert definition av sett" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, fuzzy, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "tegnet «%s» ikke definert, men behøves som standardverdi" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -3907,17 +3898,23 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "kan ikke Ã¥pne databasefil «%s»: %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "kan ikke utføre stat() pÃ¥ fil «%s»: %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -4012,157 +4009,218 @@ msgstr "kan ikke fÃ¥ socket til Ã¥ aksep - msgid "cannot enable socket to accept connections: %s" - msgstr "kan ikke fÃ¥ socket til Ã¥ akseptere forbindelser: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "%s: Kan ikke opprette filkatalog %s: %s\n" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "kan ikke hÃ¥ndtere gammel forespørsel av versjon %d. NÃ¥værende versjon er %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "kan ikke skrive ut resultat: «%s»" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "avkortet lesing ved lesing av forespørsel: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, fuzzy, c-format - msgid "key length in request too long: %d" - msgstr "nøkkellengde i forespørsel for lang: %Zd" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, fuzzy, c-format - msgid "short read while reading request key: %s" - msgstr "avkortet lesing under lesing av forespørsel-nøkkel: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, fuzzy, c-format - #| msgid "handle_request: request received (Version = %d)" - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: forespørsel mottatt (versjon = %d)" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: forespørsel mottatt (versjon = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, removing watch" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "klarte ikke Ã¥ laste delt objekt «%s»" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - #, fuzzy - msgid "initial getgrouplist failed" - msgstr "lstat feilet" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - #, fuzzy - msgid "getgrouplist failed" - msgstr "lstat feilet" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - #, fuzzy - msgid "setgroups failed" - msgstr "fstat feilet" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "avkortet skriving i %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Har ikke funnet «%s» i gruppe-nærbuffer!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, fuzzy, c-format - #| msgid "Haven't found \"%s\" in group cache!" - msgid "Reloading \"%s\" in group cache!" -@@ -4261,7 +4319,7 @@ msgstr "" - msgid "Name Service Cache Daemon." - msgstr "Demon for buffring av navnetjeneste" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "feil antall argumenter" -@@ -4298,7 +4356,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "Kunne ikke opprette loggfil «%s»" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "skriving ufullstendig" -@@ -4314,7 +4372,7 @@ msgstr "kan ikke laste inn profileringsd - msgid "invalidation failed" - msgstr "Endring feilet" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Bare root har lov til Ã¥ bruke dette flagget!" -@@ -4397,36 +4455,36 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "kan ikke skrive ut statistikk: «%s»" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, fuzzy, c-format - #| msgid "Only root is allowed to use this option!" - msgid "Only root or %s is allowed to use this option!" - msgstr "Bare root har lov til Ã¥ bruke dette flagget!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd kjører ikke!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "kan ikke lese statisitkkdata" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4437,27 +4495,27 @@ msgstr "" - "\n" - "%15d debugnivÃ¥ for tjener\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4468,7 +4526,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - #| msgid "" - #| "\n" -@@ -4539,91 +4597,91 @@ msgstr "Har ikke funnet «%s» i passord - msgid "Invalid numeric uid \"%s\"!" - msgstr "" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - #| msgid "lstat failed" - msgid "cap_init failed" - msgstr "lstat feilet" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - msgid "cap_set_proc failed" - msgstr "fstat feilet" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - #| msgid "Unable to create callback" - msgid "Failed to create AVC lock" - msgstr "Ikke i stand til Ã¥ lage tilbakekall" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - #, fuzzy - msgid "Error getting sid from context" - msgstr "%s: Feil ved skriving til standard ut " - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4679,17 +4737,17 @@ msgstr "getent - hent innslag fra admini - msgid "Enumeration not supported on %s\n" - msgstr "Operasjonen er ikke støttet" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - #| msgid "Unknown database: %s\n" - msgid "Unknown database name" - msgstr "Ukjent database: %s\n" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Ukjent database: %s\n" -@@ -4981,7 +5039,7 @@ msgstr "Ubalansert ) eller \\)" - msgid "No previous regular expression" - msgstr "Intet foregÃ¥ende regulært uttrykk" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -@@ -7798,6 +7856,9 @@ msgstr "%s: Kan ikke opprette filkatalog - #~ msgid "while allocating hash table entry" - #~ msgstr "under allokering av hashtabell-innslag" - -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "kan ikke utføre stat() pÃ¥ fil «%s»: %s" -+ - #, fuzzy - #~ msgid "while allocating cache: %s" - #~ msgstr "under allokering av nærbuffer-innslag" -Index: glibc-2.23/po/nl.po -=================================================================== ---- glibc-2.23.orig/po/nl.po -+++ glibc-2.23/po/nl.po -@@ -1,19 +1,21 @@ - # Dutch translations for GNU libc. --# Copyright (C) 2014 Free Software Foundation, Inc. -+# Copyright (C) 2015 Free Software Foundation, Inc. - # This file is distributed under the same license as the glibc package. - # --# "Full persoon kaputt." -+# «Finfine mondo estis ie por vivi, -+# por sin promeni, por trinki teon, -+# kaj estis mi neniam tiel karesema.» - # - # Elros Cyriatan , 2004. - # Erwin Poeze , 2009. - # Benno Schulenberg , 2006, 2007, 2008, 2010. --# Benno Schulenberg , 2011, 2012, 2013, 2014. -+# Benno Schulenberg , 2011, 2012, 2013, 2014, 2015. - msgid "" - msgstr "" --"Project-Id-Version: libc-2.19.90\n" -+"Project-Id-Version: libc-2.22-pre1\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" --"PO-Revision-Date: 2014-08-25 12:10+0200\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"PO-Revision-Date: 2015-08-05 20:03+0200\n" - "Last-Translator: Benno Schulenberg \n" - "Language-Team: Dutch \n" - "Language: nl\n" -@@ -155,10 +157,10 @@ msgstr "" - "[UITVOERBESTAND [INVOERBESTAND...]]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -170,7 +172,7 @@ msgstr "" - " %s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -188,7 +190,7 @@ msgstr "" - "VOOR EEN BEPAALD DOEL.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -443,11 +445,11 @@ msgstr "Wijzigen van toegangsrechten van - msgid "Renaming of %s to %s failed" - msgstr "Naamswijziging van %s naar %s is mislukt" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "kan lijst voor geldigheidsbereik niet aanmaken" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "gedeeld object is niet open" - -@@ -520,127 +522,127 @@ msgstr "kan zoekpad-array niet aanmaken" - msgid "cannot stat shared object" - msgstr "kan gedeeld object niet vinden" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "kan nullenapparaat niet openen" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "kan descriptor voor gedeeld object niet aanmaken" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "kan bestandsgegevens niet lezen" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "uitlijning in ELF-laadopdracht ligt niet op een paginagrens" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "adres/positie in ELF-laadopdracht is niet correct uitgelijnd" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "kan geen geheugen reserveren voor TLS-gegevensstructuren van initiële thread" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "kan TLS-gegevens niet verwerken" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "objectbestand heeft geen laadbare segmenten" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "kan uitvoerbaar bestand niet dynamisch laden" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "objectbestand heeft geen dynamische sectie" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "gedeeld object kan niet met dlopen() geopend worden -- heeft DF_1_NOOPEN-vlag" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "kan geen geheugen reserveren voor programmakop" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "ongeldige aanroeper" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "kan geheugenbeschermingen niet veranderen" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "kan uitvoerbare stack niet aanzetten zoals gedeeld object vereist" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "kan bestandsdescriptor niet sluiten" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "bestand is te kort" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "ongeldige ELF-header" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "gegevenscodering van ELF-bestand is niet big-endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "gegevenscodering van ELF-bestand is niet little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF-bestands-identversie komt niet overeen met huidige" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "OS-ABI van ELF-bestand is ongeldig" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ABI-versie van ELF-bestand is ongeldig" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "opvulling met niet-nullen in e_ident()" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "**interne fout**" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF-bestandsversie komt niet overeen met huidige" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "alleen ET_DYN en ET_EXEC kunnen worden geladen" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "'phentsize' van ELF-bestand heeft niet de verwachte grootte" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "verkeerde ELF-klasse: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "verkeerde ELF-klasse: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "kan gedeeld objectbestand niet openen" - -@@ -652,11 +654,11 @@ msgstr "kan segment van gedeeld object n - msgid "cannot map zero-fill pages" - msgstr "kan nul-gevulde pagina's niet in het geheugen plaatsen" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "verplaatsingsfout" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "opzoekfout voor symbool" - -@@ -664,51 +666,42 @@ msgstr "opzoekfout voor symbool" - msgid "cannot extend global scope" - msgstr "kan globaal geldigheidsbereik niet uitbreiden" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "" - "De TLS-generatieteller is opnieuw bij nul begonnen!\n" - "Dit is een **programmafout**. Graag rapporteren." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "kan geen objecten meer laden met statische TLS" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "ongeldige modus voor dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "geen naamsruimten meer beschikbaar voor dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "ongeldige doelnaamsruimte in dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "kan geen geheugen reserveren binnen statisch TLS-blok" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "kan segment niet schrijfbaar maken voor verplaatsing" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: geen PLTREL in object %s gevonden\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: onvoldoende geheugen om verplaatsingsresultaten van %s op te slaan\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "kan segmentbescherming niet herstellen na verplaatsing" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "kan extra geheugenbescherming niet toepassen na verplaatsing" - -@@ -716,7 +709,7 @@ msgstr "kan extra geheugenbescherming ni - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT is gebruikt in code die niet dynamisch geladen is" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "kan TLS-gegevensstructuren niet aanmaken" - -@@ -864,7 +857,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "Kan map %s niet openen" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Kan invoerbestand %s niet vinden\n" -@@ -998,7 +991,7 @@ msgstr "ontbrekende bestandsargumenten" - msgid "No such file or directory" - msgstr "Bestand of map bestaat niet" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "niet een normaal bestand" - -@@ -1043,65 +1036,70 @@ msgstr "kan 'r_debug' niet lezen" - msgid "cannot read program interpreter" - msgstr "kan programma-interpreter niet lezen" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "kan link-kaart niet lezen" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "kan objectnaam niet lezen" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "kan geen geheugen reserveren voor objectnaambuffer" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "Dynamische gedeelde objecten tonen die in proces geladen zijn." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Precies één argument met proces-ID is vereist.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "ongeldig proces-ID: '%s'" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "kan '%s' niet openen" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "kan '%s/task' niet openen" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "kan lezen van '%s/task' niet voorbereiden" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "ongeldig thread-ID: '%s'" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "kan niet aanhechten aan proces %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "kan geen informatie verkrijgen over proces %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "proces %lu is geen ELF-programma" -@@ -1136,27 +1134,27 @@ msgstr "%s is niet een gedeeld objectbes - msgid "more than one dynamic segment\n" - msgstr "meer dan één dynamisch segment\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Kan status van %s niet opvragen\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Bestand %s is leeg; niet gecontroleerd" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Bestand %s is te klein; niet gecontroleerd" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Kan bestand %s niet geheel in het geheugen plaatsen\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s is geen ELF-bestand -- het heeft de verkeerde magische bytes aan het begin\n" -@@ -1291,11 +1289,11 @@ msgstr "GEDEELD_OBJECT [ANALYSEGEGEVENS] - msgid "failed to load shared object `%s'" - msgstr "laden van gedeeld object '%s' is mislukt" - --# FIXME: doublure (see below) --#: elf/sprof.c:442 -+# FIXME: doublure (see above) -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "kan geen interne descriptors aanmaken" -+msgid "cannot create internal descriptor" -+msgstr "kan interne descriptor niet aanmaken" - - #: elf/sprof.c:554 - #, c-format -@@ -1362,12 +1360,6 @@ msgstr "kan analysegegevensbestand niet - msgid "error while closing the profiling data file" - msgstr "fout bij sluiten van analysegegevensbestand" - --# FIXME: doublure (see above) --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "kan interne descriptor niet aanmaken" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1617,27 +1609,27 @@ msgstr "socket: protocolfout bij opzette - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: te weinig gelezen" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat() is mislukt" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "kan niet openen" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat() is mislukt" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "verkeerde eigenaar" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "schrijfbaar door anderen dan eigenaar" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "ergens hard gekoppeld" - -@@ -1759,8 +1751,8 @@ msgid "no symbolic name given for end of - msgstr "geen symbolische naam gegeven voor einde-van-bereik" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1786,8 +1778,8 @@ msgid "%s: error in state machine" - msgstr "%s: **interne fout** in toestandsmachine" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1808,7 +1800,7 @@ msgstr "onbekend teken '%s'" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "het aantal bytes in de bytereeks is voor begin en einde van het bereik niet hetzelfde: %d tegenover %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "ongeldige namen voor tekenbereik" -@@ -1830,8 +1822,8 @@ msgstr "bovengrens in bereik is kleiner - msgid "resulting bytes for range not representable." - msgstr "resulterende bytes voor bereik zijn niet te representeren" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1895,7 +1887,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: numerieke landcode '%d' is ongeldig" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1917,8 +1909,8 @@ msgstr "%s: het veld '%s' is meerdere ke - msgid "%s: unknown character in field `%s'" - msgstr "%s: onbekend teken in het veld '%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1927,12 +1919,12 @@ msgstr "%s: onbekend teken in het veld ' - msgid "%s: incomplete `END' line" - msgstr "%s: onvolledige 'END'-regel" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1942,479 +1934,479 @@ msgstr "%s: onvolledige 'END'-regel" - msgid "%s: syntax error" - msgstr "%s: syntaxfout" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "'%.*s' is al gedefinieerd in tekensetdefinitie" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "'%.*s' is al gedefinieerd in repertoire" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "'%.*s' is al gedefinieerd als sorteringssymbool" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "'%.*s' is al gedefinieerd als sorteringselement" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: 'forward' en 'backward' sluiten elkaar uit" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: '%s' wordt meerdere keren genoemd in definitie van gewicht %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: te veel voorschriften; het eerste item had er slechts %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: niet genoeg sorteervoorschriften" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: lege gewichtstekenreeks is niet toegestaan" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: gewichten moeten hetzelfde beletselteken gebruiken als de naam" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: te veel waarden" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "sorteervolgorde voor '%.*s' is al gedefinieerd in %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: het begin- en eindsymbool van een bereik moeten enkele tekens aanduiden" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: de bytereeksen van het eerste en laatste bereikteken moeten dezelfde lengte hebben" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: de bytereeks van het eerste bereikteken is niet kleiner dan die van het laatste" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: beletselteken van symbolenbereik mag niet direct na 'order_start' staan" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: beletselteken van symbolenbereik mag niet direct voor 'order_end' staan" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "'%s' en '%.*s' zijn geen geldige namen voor een symbolenbereik" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: sorteervolgorde van '%.*s' is al gedefinieerd in %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: '%s' moet een teken zijn" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: 'position' moet voor een specifiek niveau gebruikt worden ofwel in alle secties ofwel in geen" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "symbool '%s' is niet gedefinieerd" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "symbool '%s' heeft dezelfde codering als" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "symbool '%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "geen definitie van 'UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "te veel fouten -- gestopt" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: geneste voorwaardelijke constructies worden niet ondersteund" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: meer dan één 'else'" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: dubbele definitie van '%s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: dubbele declaratie van sectie '%s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: onbekend teken in naam van sorteringssymbool" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: onbekend teken in naam van equivalentiedefinitie" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: onbekend teken in waarde van equivalentiedefinitie" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: onbekend symbool '%s' in equivalentiedefinitie" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "fout bij toevoegen van equivalent sorteringssymbool" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "dubbele definitie van script '%s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: onbekende sectienaam '%.*s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: meerdere sorteervolgorde-definities voor sectie '%s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: ongeldig aantal sorteervoorschriften" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: meerdere sorteervolgorde-definities voor naamloze sectie" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: ontbrekend sleutelwoord 'order_end'" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: sorteervolgorde voor symbool '%.*s' is nog niet gedefinieerd" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: sorteervolgorde voor element '%.*s' is nog niet gedefinieerd" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: kan niet herordenen na '%.*s': dit symbool is onbekend" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: ontbrekend sleutelwoord 'reorder-end'" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: sectie '%.*s' is onbekend" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: onjuist symbool <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: '%s' kan geen einde van bereik zijn" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: lege categoriebeschrijving is niet toegestaan" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: ontbrekend sleutelwoord 'reorder-sections-end'" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: '%s' zonder bijpassende 'ifdef' of 'ifndef'" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'endif' zonder bijpassende 'ifdef' of 'ifndef'" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Geen tekensetnaam aangegeven in tekensetdefinitie" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "teken L'\\u%0*x' in klasse '%s' moet in klasse '%s' zitten" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "teken L'\\u%0*x' in klasse '%s' mag niet in klasse '%s' zitten" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "**interne fout** in %s, regel %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "teken '%s' in klasse '%s' moet in klasse '%s' zitten" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "teken '%s' in klasse '%s' mag niet in klasse '%s' zitten" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "-teken zit niet in klasse '%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "-teken mag niet in klasse '%s' zitten" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "-teken is niet gedefinieerd in tekensetdefinitie" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "het aantal items in de cijferscategorie is geen veelvoud van tien" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "er zijn geen invoercijfers gedefinieerd en geen van de standaardnamen zit in de tekensetdefinitie" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "niet alle tekens in 'outdigit' zijn beschikbaar in de tekensetdefinitie" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "niet alle tekens gebruikt in 'outdigit' zijn beschikbaar in het repertoire" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "tekenklasse '%s' is al gedefinieerd" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "implementatiegrens: er zijn niet meer dan %Zd tekenklassen toegestaan" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "tekensetdefinitie '%s' is al gedefinieerd" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "implementatiegrens: er zijn niet meer dan %d tekensetdefinities toegestaan" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: het veld '%s' bevat niet precies tien items" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "eindwaarde van bereik is kleiner dan beginwaarde " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "begin- en eindbytereeks van bereik moeten dezelfde lengte hebben" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "eindwaarde is kleiner dan beginwaarde" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "voortijdig einde van definitie van 'translit_ignore'" - - # - # This error message is issued when yacc finds an error at parse time. - # --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "syntaxfout" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: syntaxfout in definitie van nieuwe tekenklasse" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: syntaxfout in nieuwe tekensetdefinitie" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "een bereik met een beletselteken moet twee parameters van dezelfde soort bevatten" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "in een bereik met symbolische namen mag het absolute beletselteken '...' niet gebruikt worden" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "in een bereik met UCS-waarden moet het hexadecimale symbolische beletselsteken '..' gebruikt worden" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "in een bereik met tekencodes moet het absolute beletselteken '...' gebruikt worden" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "dubbele definitie van afbeelding '%s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: sectie 'translit_start' eindigt niet met 'translit_end'" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: dubbele definitie van 'default_missing'" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "de vorige definitie was hier" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: geen representeerbare definitie van 'default_missing' gevonden" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: teken '%s' is niet gedefinieerd maar is nodig als standaardwaarde" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: teken '%s' in de tekensetdefinitie is niet te representeren met één byte" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: teken '%s' is nodig als standaardwaarde maar niet te representeren met één byte" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "er zijn geen uitvoercijfers gedefinieerd en geen van de standaardnamen zit in de tekensetdefinitie" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: transliteratiegegevens van taalregio '%s' zijn niet beschikbaar" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabel voor klasse \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabel voor kaart \"%s\": %lu bytes\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabel voor breedte: %lu bytes\n" -@@ -3844,17 +3836,22 @@ msgstr "toevoegen van nieuw item \"%s\" - msgid " (first)" - msgstr " (eerste)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "kan status van bestand '%s' niet opvragen: %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "controleren van gemonitord bestand '%s': %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "gemonitord bestand '%s' is gewijzigd (mtime)" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "snoeien van cache %s; tijd %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "overwegen van %s-item \"%s\", tijdslimiet %" -@@ -3942,153 +3939,216 @@ msgstr "kan socket niet op sluiten-bij-e - msgid "cannot enable socket to accept connections: %s" - msgstr "kan socket geen verbindingen laten accepteren: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "'inotify'-monitoring van bestand '%s' is uitgeschakeld: %s" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "bestand '%s' wordt gemonitord (%d)" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "'inotify'-monitoring van map '%s' is uitgeschakeld: %s" -+ -+#: nscd/connections.c:994 - #, c-format --msgid "register trace file %s for database %s" --msgstr "trace-bestand '%s' registreren voor gegevensbank '%s'" -+msgid "monitoring directory `%s` (%d)" -+msgstr "map '%s' wordt gemonitord (%d)" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "bestand '%s' wordt gemonitord voor gegevensbank '%s'" -+ -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "opvragen van status van bestand '%s' is mislukt; zal het later opnieuw proberen: %s" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "toegang verleend aan bestandsdescriptor %d, voor %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "kan verzoek voor oude versie %d niet behandelen; huidige versie is %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "verzoek van %ld is niet behandeld omdat er rechten ontbreken" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "verzoek van '%s' [%ld] is niet behandeld omdat er rechten ontbreken" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "verzoek is niet behandeld omdat er rechten ontbreken" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "kan resultaat niet schrijven: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "fout bij opvragen van ID van aanroeper: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "kan '/proc/self/cmdline' niet openen: %s -- paranoia-modus is uitgeschakeld" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "kan '/proc/self/cmdline' niet openen: %s -- paranoia-modus wordt uitgeschakeld" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "kan niet overschakelen naar oude UID: %s -- paranoia-modus is uitgeschakeld" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "kan niet overschakelen naar oude GID: %s -- paranoia-modus is uitgeschakeld" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "kan niet overschakelen naar oude werkmap: %s -- paranoia-modus is uitgeschakeld" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "her-exec() is mislukt: %s -- paranoia-modus is uitgeschakeld" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "kan huidige werkmap niet overschakelen naar '/': %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "te weinig gelezen bij lezen van verzoek: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "sleutellengte in verzoek is te lang: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "te weinig gelezen bij lezen van verzoeksleutel: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request(): verzoek ontvangen (versie = %d) van PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request(): verzoek ontvangen (versie = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "'inotify'-gebeurtenis voor '%s' is genegeerd (bestand bestaat al)" -+ -+# FIXME: missing translatable word in second %s -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "gemonitord bestand '%s' werd «%s»; wachter wordt verwijderd" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "verwijderen van bestandswachter '%s' is mislukt: %s" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "er is geschreven naar gemonitord bestand '%s'" -+ -+# FIXME: untranslatable second %s -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "gemonitorde oudermap '%s' werd «%s»; wachter op '%s' wordt verwijderd`" -+ -+# FIXME: untranslatable second %s -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "gemonitord bestand '%s' werd «%s»; wachter wordt toegevoegd" -+ -+#: nscd/connections.c:2053 -+#, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "toevoegen van bestandswachter '%s' is mislukt: %s" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 - #, c-format --msgid "disabled inotify after read error %d" --msgstr "'inotify' is uitgeschakeld na leesfout %d" -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "'inotify'-monitoring is uitgeschakeld na leesfout %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "kan conditionele variabele niet initialiseren" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "kan opschoon-thread niet starten -- gestopt" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "kan geen enkele werk-thread starten -- gestopt" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "uitvoeren van nscd als gebruiker '%s' is mislukt" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "eerste getgrouplist() is mislukt" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist() is mislukt" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups() is mislukt" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "te weinig geschreven in %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Item \"%s\" niet gevonden in groeps-cache!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Herladen van \"%s\" in groeps-cache!" -@@ -4178,7 +4238,7 @@ msgstr "" - " \n" - "Daemon voor namen-cache." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "Verkeerd aantal argumenten" -@@ -4211,7 +4271,7 @@ msgstr "kan '/' niet de huidige werkmap - msgid "Could not create log file" - msgstr "Kan geen logbestand aanmaken" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "ongeldigmakingsopdracht is onvolledig geschreven" -@@ -4226,7 +4286,7 @@ msgstr "geen ongeldigheidsbevestiging on - msgid "invalidation failed" - msgstr "het ongeldigmaken is mislukt" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Alleen root mag deze optie gebruiken!" -@@ -4311,35 +4371,35 @@ msgstr "Kan huidige werkmap niet bepalen - msgid "maximum file size for %s database too small" - msgstr "Maximum bestandsgrootte voor %s-gegevensbank is te klein" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "Kan statistieken niet schrijven: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "ja" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "nee" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Alleen root of %s mag deze optie gebruiken!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "Er is geen nscd-proces actief!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "Kan statistieken niet lezen" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4350,27 +4410,27 @@ msgstr "" - "\n" - "%15d debugniveau van server\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus looptijd van server\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus looptijd van server\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus looptijd van server\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus looptijd van server\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4387,7 +4447,7 @@ msgstr "" - "%15lu interne herstarts\n" - "%15u aantal herladingen\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4453,85 +4513,85 @@ msgstr "Herladen van \"%s\" in wachtwoor - msgid "Invalid numeric uid \"%s\"!" - msgstr "Ongeldig numeriek UID '%s'!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Kan geen verbinding maken met audit-subsysteem: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Kan 'keep-capabilities' (privilegesbehoud) niet inschakelen" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) is mislukt" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Privilegesvermindering werkt niet" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init() is mislukt" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Verminderen van privileges is mislukt" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc() is mislukt" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Kan 'keep-capabilities' (privilegesbehoud) niet uitschakelen" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Kan niet bepalen of de kernel SELinux ondersteunt" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Kan geen AVC-thread starten" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Kan geen AVC-grendel aanmaken" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Kan AVC niet starten" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "AVC (Access Vector Cache) is gestart" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "Fout bij opvragen van beleid voor ongedefinieerde objectklassen of toegangsrechten." - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "Fout bij verkrijgen van veiligheidsklasse voor nscd." - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "Fout bij vertalen van toegangsrechtennaam \"%s\" naar een toegangsvectorbit." - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Kan geen context voor partnersocket verkrijgen" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Kan geen context voor nscd verkrijgen" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Kan uit de context geen SID verkrijgen" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4593,16 +4653,16 @@ msgstr "Haalt items op uit een administr - msgid "Enumeration not supported on %s\n" - msgstr "Opsomming wordt niet ondersteund op %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Onbekende gegevensbanknaam" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Ondersteunde gegevensbanken:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Onbekende gegevensbank: %s\n" -@@ -4885,7 +4945,7 @@ msgstr "Ongepaarde ) of \\)" - msgid "No previous regular expression" - msgstr "Geen eerdere reguliere expressie" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parameter is null of niet ingesteld" - -@@ -7141,7 +7201,7 @@ msgstr "ongeldig 'Rolling'/'Stationary'- - - #: timezone/zic.c:1246 - msgid "leap second precedes Big Bang" --msgstr "schrikkelseconde valt voor de Big Bang" -+msgstr "schrikkelseconde valt voor de oerknal" - - #: timezone/zic.c:1259 - msgid "wrong number of fields on Link line" -@@ -7273,6 +7333,12 @@ msgstr "te veel of te lange tijdzone-afk - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: Kan map %s niet aanmaken: %s\n" - -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "kan geen objecten meer laden met statische TLS" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: geen PLTREL in object %s gevonden\n" -+ - #~ msgid "compile-time support for database policy missing" - #~ msgstr "ondersteuning voor gegevensbankbeleid is niet meegecompileerd" - -Index: glibc-2.23/po/pt_BR.po -=================================================================== ---- glibc-2.23.orig/po/pt_BR.po -+++ glibc-2.23/po/pt_BR.po -@@ -9,7 +9,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 1999-06-29 18:07-0300\n" - "Last-Translator: Rodrigo Parra Novo \n" - "Language-Team: Brazilian Portuguese \n" -@@ -148,10 +148,10 @@ msgstr "" - "[ARQUIVO-SAÃDA [ARQUIVO-ENTRADA...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -161,7 +161,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -178,7 +178,7 @@ msgstr "" - "garantia; nem para comércio ou adequacão para propóstios particulares.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -466,13 +466,13 @@ msgstr "" - msgid "Renaming of %s to %s failed" - msgstr "mapeamento dos cabeçalhos da seção falhou" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - #, fuzzy - #| msgid "cannot write to client" - msgid "cannot create scope list" - msgstr "não é possível escrever para o cliente" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - #, fuzzy - #| msgid "Named object is not searchable" - msgid "shared object not open" -@@ -565,149 +565,149 @@ msgstr "não é possível criar descrito - msgid "cannot stat shared object" - msgstr "falha no carregamento do objeto compartilhado `%s'" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - #, fuzzy - #| msgid "cannot open output file" - msgid "cannot open zero fill device" - msgstr "não é possível abrir arquivo de saída" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - #, fuzzy - #| msgid "cannot create internal descriptor" - msgid "cannot create shared object descriptor" - msgstr "não é possível criar descritor interno" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - #, fuzzy - #| msgid "cannot load profiling data" - msgid "cannot read file data" - msgstr "impossível carregar perfis de dados" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - #, fuzzy - #| msgid "cannot allocate symbol data" - msgid "cannot handle TLS data" - msgstr "Não foi possível alocar memória" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - #, fuzzy - #| msgid "Cannot allocate memory" - msgid "cannot allocate memory for program header" - msgstr "Não foi possível alocar memória" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - #| msgid "Invalid exchange" - msgid "invalid caller" - msgstr "Troca inválida" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - #, fuzzy - #| msgid "cannot process order specification" - msgid "cannot change memory protections" - msgstr "não é possível processar specificação de ordem" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - #| msgid "cannot create internal descriptor" - msgid "cannot close file descriptor" - msgstr "não é possível criar descritor interno" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - #, fuzzy - #| msgid "File too large" - msgid "file too short" - msgstr "Arquivo muito grande" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - #, fuzzy - #| msgid "invalid ending year" - msgid "invalid ELF header" - msgstr "ano final inválido" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - #, fuzzy - #| msgid "Internal NIS error" - msgid "internal error" - msgstr "Erro NIS interno" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - #, fuzzy - #| msgid "cannot open output file" - msgid "cannot open shared object file" -@@ -725,13 +725,13 @@ msgstr "falha no carregamento do objeto - msgid "cannot map zero-fill pages" - msgstr "impossível carregar perfis de dados" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - #, fuzzy - #| msgid "Authentication error" - msgid "relocation error" - msgstr "Erro de autenticação" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -739,53 +739,44 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "modo inválido para dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - #| msgid "invalid mode for dlopen()" - msgid "invalid target namespace in dlmopen()" - msgstr "modo inválido para dlopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - #| msgid "Cannot allocate memory" - msgid "cannot allocate memory in static TLS block" - msgstr "Não foi possível alocar memória" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "" - -@@ -793,7 +784,7 @@ msgstr "" - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT usado em código não dinamicamente carregado" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - #, fuzzy - #| msgid "cannot create internal descriptors" - msgid "cannot create TLS data structures" -@@ -952,7 +943,7 @@ msgstr "" - msgid "Can't open directory %s" - msgstr "%s: Não é possível criar o diretório %s: %s\n" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, fuzzy, c-format - #| msgid "repertoire map file `%s' not found" - msgid "Input file %s not found.\n" -@@ -1090,7 +1081,7 @@ msgstr "não consegui liberar parâmetro - msgid "No such file or directory" - msgstr "Arquivo ou diretório não encontrado" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "não é arquivo normal" - -@@ -1140,70 +1131,76 @@ msgstr "não é possível ler do cliente - msgid "cannot read program interpreter" - msgstr "não é possível ler do cliente" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read from client" - msgid "cannot read link map" - msgstr "não é possível ler do cliente" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read from client" - msgid "cannot read object name" - msgstr "não é possível ler do cliente" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "unable to allocate buffer for input" -+msgid "cannot allocate buffer for object name" -+msgstr "incapaz de alocar espaço para entrada" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "não é possível abrir `%s'" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "não é possível abrir `%s'" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot find C preprocessor: %s \n" - msgid "cannot attach to process %lu" - msgstr "impossível encontrar pré-processador C: %s\n" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1238,29 +1235,29 @@ msgstr "" - msgid "more than one dynamic segment\n" - msgstr "" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, fuzzy, c-format - #| msgid "cannot stat() file `%s': %s" - msgid "Cannot fstat file %s.\n" - msgstr "não é possível ler atributos do arquivo `%s': %s" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, fuzzy, c-format - #| msgid "cannot open input file `%s'" - msgid "Cannot mmap file %s.\n" - msgstr "não é possível abrir arquivo de entrada `%s'" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "" -@@ -1392,10 +1389,10 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "falha no carregamento do objeto compartilhado `%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "não é possivel criar descritores internos" -+msgid "cannot create internal descriptor" -+msgstr "não é possível criar descritor interno" - - #: elf/sprof.c:554 - #, c-format -@@ -1466,11 +1463,6 @@ msgstr "falha para mapear (mmap) o arqui - msgid "error while closing the profiling data file" - msgstr "erro fechando arquivo de dados de perfil" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "não é possível criar descritor interno" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1747,27 +1739,27 @@ msgstr "socket: falha de protocolo na co - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "falha em lstat" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "impossível abrir" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "falha em fstat" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "dono inválido" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "permissão de escrita para outros" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "vinculo (hard linked) em algúm lugar" - -@@ -1898,8 +1890,8 @@ msgid "no symbolic name given for end of - msgstr "nenhum nome simbólico dado para fim do intervalo" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1926,8 +1918,8 @@ msgid "%s: error in state machine" - msgstr "%s: erro na máquina de estados" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1948,7 +1940,7 @@ msgstr "caracter desconhecido `%s'" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - #, fuzzy - #| msgid "illegal names for character range" -@@ -1975,8 +1967,8 @@ msgstr "o limite inferior do intervalo à - msgid "resulting bytes for range not representable." - msgstr "" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -2045,7 +2037,7 @@ msgid "%s: numeric country code `%d' not - msgstr "" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -2068,8 +2060,8 @@ msgstr "" - msgid "%s: unknown character in field `%s'" - msgstr "caracter desconhecido `%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -2078,12 +2070,12 @@ msgstr "caracter desconhecido `%s'" - msgid "%s: incomplete `END' line" - msgstr "" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -2093,511 +2085,511 @@ msgstr "" - msgid "%s: syntax error" - msgstr "" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, fuzzy, c-format - #| msgid "sorting order `forward' and `backward' are mutually exclusive" - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "as ordens de classificação `forward' e `backward' são mutuamente exclusivas" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, fuzzy, c-format - #| msgid "empty weight name: line ignored" - msgid "%s: empty weight string not allowed" - msgstr "nome do peso vazio: linha ignorada" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, fuzzy, c-format - #| msgid "%s: Too many arguments\n" - msgid "%s: too many values" - msgstr "%s: Muitos parâmetros\n" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, fuzzy, c-format - #| msgid "character map `%s' already defined" - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "mapa de caracteres `%s' já definido" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, fuzzy, c-format - #| msgid "<%s> and <%s> are illegal names for range" - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "<%s> e <%s> são nomes ilegais para faixa de caracteres" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, fuzzy, c-format - #| msgid "character map `%s' already defined" - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "mapa de caracteres `%s' já definido" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, fuzzy, c-format - #| msgid "argument to `%s' must be a single character" - msgid "%s: `%s' must be a character" - msgstr "argumento para `%s' deve ser um caracter simples" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, fuzzy, c-format - #| msgid "unknown symbol `%.*s': line ignored" - msgid "symbol `%s' not defined" - msgstr "símbolo desconhecido `%.*s': linha ignorada" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "não há definição de `UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - #| msgid "Operation not supported" - msgid "%s: nested conditionals not supported" - msgstr "Operação não suportada " - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: More than one -l option specified\n" - msgid "%s: more than one 'else'" - msgstr "%s: Mais que uma opção -l especificada\n" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, fuzzy, c-format - #| msgid "duplicate definition for character `%.*s'" - msgid "%s: duplicate definition of `%s'" - msgstr "definição para caracter duplicada `%.*s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, fuzzy, c-format - #| msgid "duplicate definition for character `%.*s'" - msgid "%s: duplicate declaration of section `%s'" - msgstr "definição para caracter duplicada `%.*s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, fuzzy, c-format - #| msgid "syntax error in character conversion definition" - msgid "%s: unknown character in equivalent definition name" - msgstr "erro de sintaxe na definição de conversão de caracteres" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, fuzzy, c-format - #| msgid "syntax error in character conversion definition" - msgid "%s: unknown character in equivalent definition value" - msgstr "erro de sintaxe na definição de conversão de caracteres" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, fuzzy, c-format - #| msgid "unknown symbol `%.*s': line ignored" - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "símbolo desconhecido `%.*s': linha ignorada" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, fuzzy, c-format - #| msgid "duplicate definition for character `%.*s'" - msgid "duplicate definition of script `%s'" - msgstr "definição para caracter duplicada `%.*s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - #| msgid "unknown set `%s'" - msgid "%s: unknown section name `%.*s'" - msgstr "conjunto desconhecido `%s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, fuzzy, c-format - #| msgid "duplicate definition for character `%.*s'" - msgid "%s: multiple order definitions for section `%s'" - msgstr "definição para caracter duplicada `%.*s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, fuzzy, c-format - #| msgid "specification of sorting weight for collation symbol does not make sense" - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "especificação de peso para símbolo de comparação não faz sentido" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, fuzzy, c-format - #| msgid "symbol for multicharacter collating element `%.*s' duplicates element definition" - msgid "%s: order for collating element %.*s not yet defined" - msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do elemento" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, fuzzy, c-format - #| msgid "character not defined in character map" - msgid "No character set name specified in charmap" - msgstr "caracter não definido no mapa de caracteres" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, fuzzy, c-format - #| msgid "character %s'%s' in class `%s' must be in class `%s'" - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "caracter %s'%s' na classe `%s' deve estar na classe `%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, fuzzy, c-format - #| msgid "character %s'%s' in class `%s' must not be in class `%s'" - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "caracter %s'%s' na classe `%s' não deve estar na classe `%s'" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "erro interno em %s, linha %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, fuzzy, c-format - #| msgid "character %s'%s' in class `%s' must be in class `%s'" - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "caracter %s'%s' na classe `%s' deve estar na classe `%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, fuzzy, c-format - #| msgid "character %s'%s' in class `%s' must not be in class `%s'" - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "caracter %s'%s' na classe `%s' não deve estar na classe `%s'" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr " caracter não está na classe `%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr " caracter não deve estar na classe `%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "caracter não definido no mapa de caracteres" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "classe de caracter `%s' já definida" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, fuzzy, c-format - #| msgid "implementation limit: no more than %d character classes allowed" - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "limite de implementacão: não são permitidas mais que %d classes de caracter" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "mapa de caracteres `%s' já definido" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "limite de implementacão: não são permitidos mais que %d mapas de caracter" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - #, fuzzy - #| msgid "Premature end of regular expression" - msgid "premature end of `translit_ignore' definition" - msgstr "Fim prematuro da expressão regular" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - #, fuzzy - #| msgid "Bus error" - msgid "syntax error" - msgstr "Erro no barramento" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, fuzzy, c-format - #| msgid "syntax error in definition of new character class" - msgid "%s: syntax error in definition of new character class" - msgstr "erro de sintaxe na definição de uma nova classe de caracteres" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, fuzzy, c-format - #| msgid "syntax error in definition of new character map" - msgid "%s: syntax error in definition of new character map" - msgstr "erro de sintaxe na definição de um novo mapa de caracteres" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, fuzzy, c-format - #| msgid "duplicate definition for character `%.*s'" - msgid "duplicated definition for mapping `%s'" - msgstr "definição para caracter duplicada `%.*s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, fuzzy, c-format - #| msgid "duplicate set definition" - msgid "%s: duplicate `default_missing' definition" - msgstr "definição de conjunto duplicada" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, fuzzy, c-format - #| msgid "character `%s' not defined while needed as default value" - msgid "%s: character `%s' not defined while needed as default value" - msgstr "caracter `%s' não definido enquanto necessário como valor default" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -4083,17 +4075,23 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "não é possível abrir arquivo de banco de dados `%s': %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "não é possível ler atributos do arquivo `%s': %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -4188,159 +4186,220 @@ msgstr "impossível habilitar soquete pa - msgid "cannot enable socket to accept connections: %s" - msgstr "impossível habilitar soquete para aceitar conecções: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "impossível lidar com requisições de versões antigas %d; a versão atual é %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "não é possível escrever resultado: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "problems lendo `%s'" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, fuzzy, c-format - #| msgid "key length in request too long: %Zd" - msgid "key length in request too long: %d" - msgstr "tamanho de chave na requisição muito longa: %Zd" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "falha na leitura lendo chave de requisição: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, fuzzy, c-format - #| msgid "handle_request: request received (Version = %d)" - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: requisição recebida (Versão = %d)" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: requisição recebida (Versão = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, removing watch" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "falha no carregamento do objeto compartilhado `%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - #, fuzzy - #| msgid "lstat failed" - msgid "getgrouplist failed" - msgstr "falha em lstat" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - #, fuzzy - #| msgid "fstat failed" - msgid "setgroups failed" - msgstr "falha em fstat" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "Erro escrevendo em %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Não encontrado \"%s\" no cache de grupo!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, fuzzy, c-format - #| msgid "Haven't found \"%s\" in group cache!" - msgid "Reloading \"%s\" in group cache!" -@@ -4440,7 +4499,7 @@ msgstr "" - msgid "Name Service Cache Daemon." - msgstr "Servidor de Cache de Nomes." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "número incorreto de argumentos" -@@ -4477,7 +4536,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "não é possível ler arquivo de registro \"%s\"" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "escrita incompleta" -@@ -4494,7 +4553,7 @@ msgstr "impossível ler dados de estatí - msgid "invalidation failed" - msgstr "Modificação falhou" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Somente o superusuário pode usar esta opção!" -@@ -4577,36 +4636,36 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "não é possível escrever estatisticas: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, fuzzy, c-format - #| msgid "Only root is allowed to use this option!" - msgid "Only root or %s is allowed to use this option!" - msgstr "Somente o superusuário pode usar esta opção!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd não está rodando!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "impossível ler dados de estatística" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4617,27 +4676,27 @@ msgstr "" - "\n" - "%15d nível de debug do servidor\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4648,7 +4707,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - #| msgid "" - #| "\n" -@@ -4716,91 +4775,91 @@ msgstr "Não encontrado \"%s\" no cache - msgid "Invalid numeric uid \"%s\"!" - msgstr "" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - #| msgid "fstat failed" - msgid "cap_init failed" - msgstr "falha em fstat" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - #| msgid "cache_set: victim alloc failed" - msgid "cap_set_proc failed" - msgstr "cache_set: alocação de vítima falhou" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - #| msgid "Unable to create callback" - msgid "Failed to create AVC lock" - msgstr "Impossível criar chamador" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4858,17 +4917,17 @@ msgstr "getent - pega entrada da base de - msgid "Enumeration not supported on %s\n" - msgstr "Operação não suportada " - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - #| msgid "Unknown database: %s\n" - msgid "Unknown database name" - msgstr "Base de dados desconhecida: %s\n" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Base de dados desconhecida: %s\n" -@@ -5167,7 +5226,7 @@ msgstr ") ou \\) descasados" - msgid "No previous regular expression" - msgstr "Não há expressão regular anterior" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -Index: glibc-2.23/po/rw.po -=================================================================== ---- glibc-2.23.orig/po/rw.po -+++ glibc-2.23/po/rw.po -@@ -14,7 +14,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.3\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2005-04-04 10:55-0700\n" - "Last-Translator: Steven Michael Murphy \n" - "Language-Team: Kinyarwanda \n" -@@ -175,10 +175,10 @@ msgid "" - msgstr "-o" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -188,7 +188,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -202,7 +202,7 @@ msgid "" - msgstr "C ni Kigenga i Inkomoko kugirango ni OYA ATARIIGIHARWE kugirango Cyangwa A" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -478,12 +478,12 @@ msgstr "Bya Kuri Byanze" - msgid "Renaming of %s to %s failed" - msgstr "Bya Kuri Byanze" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - #, fuzzy - msgid "cannot create scope list" - msgstr "Kurema Ingano: Urutonde" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - #, fuzzy - msgid "shared object not open" - msgstr "Igikoresho OYA Gufungura" -@@ -571,154 +571,154 @@ msgstr "Kurema Gushaka Inzira Imboneraha - msgid "cannot stat shared object" - msgstr "Igikoresho" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - #, fuzzy - msgid "cannot open zero fill device" - msgstr "Gufungura Zeru Kuzuza APAREYE" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - #, fuzzy - msgid "cannot create shared object descriptor" - msgstr "Kurema Igikoresho" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - #, fuzzy - msgid "cannot read file data" - msgstr "Gusoma IDOSIYE Ibyatanzwe" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - #, fuzzy - msgid "ELF load command alignment not page-aligned" - msgstr "Ibirimo Komandi: Itunganya OYA Ipaji" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - #, fuzzy - msgid "ELF load command address/offset not properly aligned" - msgstr "Ibirimo Komandi: Aderesi Nta- boneza OYA" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - #, fuzzy - msgid "cannot allocate TLS data structures for initial thread" - msgstr "Kurema Ibyatanzwe" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - #, fuzzy - msgid "cannot handle TLS data" - msgstr "Gusoma IDOSIYE Ibyatanzwe" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - #, fuzzy - msgid "object file has no loadable segments" - msgstr "Igikoresho IDOSIYE Oya Icyiciro" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - #, fuzzy - msgid "cannot dynamically load executable" - msgstr "Ibirimo" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - #, fuzzy - msgid "object file has no dynamic section" - msgstr "Igikoresho IDOSIYE Oya Icyiciro" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - #, fuzzy - msgid "shared object cannot be dlopen()ed" - msgstr "Igikoresho" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - #, fuzzy - msgid "cannot allocate memory for program header" - msgstr "Ububiko kugirango Porogaramu Umutwempangano" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - msgid "invalid caller" - msgstr "Sibyo Umurongo" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - #, fuzzy - msgid "cannot change memory protections" - msgstr "Guhindura>> Ububiko" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - #, fuzzy - msgid "cannot enable executable stack as shared object requires" - msgstr "Kurema Igikoresho" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - msgid "cannot close file descriptor" - msgstr "Kurema By'imbere" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - #, fuzzy - msgid "file too short" - msgstr "IDOSIYE" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - #, fuzzy - msgid "invalid ELF header" - msgstr "Sibyo Umutwempangano" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - #, fuzzy - msgid "ELF file data encoding not big-endian" - msgstr "IDOSIYE Ibyatanzwe Imisobekere: OYA" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - #, fuzzy - msgid "ELF file data encoding not little-endian" - msgstr "IDOSIYE Ibyatanzwe Imisobekere: OYA" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - #, fuzzy - msgid "ELF file version ident does not match current one" - msgstr "IDOSIYE Verisiyo OYA BIHUYE KIGEZWEHO" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - #, fuzzy - msgid "ELF file OS ABI invalid" - msgstr "IDOSIYE Sibyo" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - #, fuzzy - msgid "ELF file ABI version invalid" - msgstr "IDOSIYE Verisiyo Sibyo" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - #, fuzzy - msgid "internal error" - msgstr "Ikosa ry'imbere" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - #, fuzzy - msgid "ELF file version does not match current one" - msgstr "IDOSIYE Verisiyo OYA BIHUYE KIGEZWEHO" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - #, fuzzy - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "Na" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - #, fuzzy - msgid "ELF file's phentsize not the expected size" - msgstr "OYA i Ikitezwe: Ingano" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - #, fuzzy - msgid "cannot open shared object file" - msgstr "Gufungura Igikoresho IDOSIYE" -@@ -733,12 +733,12 @@ msgstr "Byanze Kuri Bivuye Igikoresho" - msgid "cannot map zero-fill pages" - msgstr "Zeru Kuzuza Amapaji" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - #, fuzzy - msgid "relocation error" - msgstr "Ikosa" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -747,55 +747,46 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "Ingano:" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - #, fuzzy - msgid "TLS generation counter wrapped! Please report this." - msgstr "Kohereza Icyegeranyo Na: i IYANDIKA" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - #, fuzzy - msgid "invalid mode for dlopen()" - msgstr "Sibyo Ubwoko kugirango" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - msgid "invalid target namespace in dlmopen()" - msgstr "Sibyo Ubwoko kugirango" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - #, fuzzy - msgid "cannot allocate memory in static TLS block" - msgstr "Ububiko" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - #, fuzzy - msgid "cannot make segment writable for relocation" - msgstr "Ubwoko kugirango" - --#: elf/dl-reloc.c:275 --#, fuzzy, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s:Byabonetse Oya in Igikoresho" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - #, fuzzy - msgid "cannot restore segment prot after reloc" - msgstr "Kugarura Nyuma" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - #, fuzzy - msgid "cannot apply additional memory protection after relocation" - msgstr "Guhindura>> Ububiko" -@@ -805,7 +796,7 @@ msgstr "Guhindura>> Ububiko" - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "in ITEGEKONGENGA OYA" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - #, fuzzy - msgid "cannot create TLS data structures" - msgstr "Kurema Ibyatanzwe" -@@ -964,7 +955,7 @@ msgstr "Ihuza Byaremwe guhera OYA Byabon - msgid "Can't open directory %s" - msgstr "Gufungura ububiko ntibishoboka" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, fuzzy, c-format - msgid "Input file %s not found.\n" - msgstr "IDOSIYE OYA Byabonetse" -@@ -1094,7 +1085,7 @@ msgstr "Kuri Kigenga ingingo" - msgid "No such file or directory" - msgstr "IDOSIYE Cyangwa bushyinguro" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - #, fuzzy - msgid "not regular file" - msgstr "OYA Ibisanzwe IDOSIYE" -@@ -1141,65 +1132,70 @@ msgstr "Gusoma Umutwempangano" - msgid "cannot read program interpreter" - msgstr "Gusoma Umutwempangano" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - msgid "cannot read link map" - msgstr "Gusoma IDOSIYE Ibyatanzwe" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - msgid "cannot read object name" - msgstr "Gusoma Umutwempangano" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "Ububiko kugirango Porogaramu Umutwempangano" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - msgid "invalid process ID '%s'" - msgstr "Sibyo Mweretsi Ingano" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - msgid "cannot open %s" - msgstr "Gufungura" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - msgid "cannot open %s/task" - msgstr "Gufungura" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - msgid "cannot prepare reading %s/task" - msgstr "Kurema" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - msgid "invalid thread ID '%s'" - msgstr "Sibyo Umutwempangano" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - msgid "cannot attach to process %lu" - msgstr "Gushaka C" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1234,27 +1230,27 @@ msgstr "%sni OYA a Igikoresho IDOSIYE" - msgid "more than one dynamic segment\n" - msgstr "Birenzeho" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, fuzzy, c-format - msgid "Cannot fstat file %s.\n" - msgstr "IDOSIYE" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, fuzzy, c-format - msgid "File %s is empty, not checked." - msgstr "Idosiye ni Gitoya OYA Ivivuwe" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, fuzzy, c-format - msgid "File %s is too small, not checked." - msgstr "Idosiye ni Gitoya OYA Ivivuwe" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, fuzzy, c-format - msgid "Cannot mmap file %s.\n" - msgstr "IDOSIYE" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, fuzzy, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%sni OYA IDOSIYE i Bayite ku i Gutangira" -@@ -1379,9 +1375,9 @@ msgstr "" - msgid "failed to load shared object `%s'" - msgstr "Byanze Kuri Ibirimo Igikoresho" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, fuzzy, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "Kurema By'imbere" - - #: elf/sprof.c:554 -@@ -1449,11 +1445,6 @@ msgstr "Byanze Kuri i Ibyatanzwe IDOSIYE - msgid "error while closing the profiling data file" - msgstr "Ikosa i Ibyatanzwe IDOSIYE" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, fuzzy, c-format --msgid "cannot create internal descriptor" --msgstr "Kurema By'imbere" -- - #: elf/sprof.c:899 - #, fuzzy, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1714,31 +1705,31 @@ msgstr "Porotokole in" - msgid "rcmd: %s: short read" - msgstr "Gusoma" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - #, fuzzy - msgid "lstat failed" - msgstr "Byanze" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - #, fuzzy - msgid "cannot open" - msgstr "Gufungura" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - #, fuzzy - msgid "fstat failed" - msgstr "Byanze" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - #, fuzzy - msgid "writeable by other than owner" - msgstr "ku Ikindi" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - #, fuzzy - msgid "hard linked somewhere" - msgstr "Ikomeye" -@@ -1869,8 +1860,8 @@ msgid "no symbolic name given for end of - msgstr "Oya Izina: kugirango Impera Bya Urutonde" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1897,8 +1888,8 @@ msgid "%s: error in state machine" - msgstr "%s:Ikosa in Leta" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1919,7 +1910,7 @@ msgstr "Kitazwi Inyuguti" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "Umubare Bya Bayite kugirango Bayite Bya Itangiriro Na Impera Bya Urutonde OYA i" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - #, fuzzy - msgid "invalid names for character range" -@@ -1945,8 +1936,8 @@ msgstr "Nkuru in Urutonde ni OYA Gitoya - msgid "resulting bytes for range not representable." - msgstr "Bayite kugirango Urutonde OYA" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -2010,7 +2001,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s:Bikurikije umubare Igihugu ITEGEKONGENGA OYA Byemewe" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -2032,8 +2023,8 @@ msgstr "%s:Umwanya Birenzeho Rimwe" - msgid "%s: unknown character in field `%s'" - msgstr "%s:Kitazwi Inyuguti in Umwanya" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -2043,12 +2034,12 @@ msgid "%s: incomplete `END' line" - msgstr "%s:Umurongo" - - # sw/source\ui\utlui\initui.src:RID_SW_SHELLRES.STR_CALC_SYNTAX.text --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -2058,7 +2049,7 @@ msgstr "%s:Umurongo" - msgid "%s: syntax error" - msgstr "%s:Ikosa ry'iyandikanteruro**" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, fuzzy, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" -@@ -2071,7 +2062,7 @@ msgstr "" - "X- Generator: KBabel 1. 0\n" - "." - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, fuzzy, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" -@@ -2084,7 +2075,7 @@ msgstr "" - "X- Generator: KBabel 1. 0\n" - "." - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, fuzzy, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" -@@ -2097,7 +2088,7 @@ msgstr "" - "X- Generator: KBabel 1. 0\n" - "." - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, fuzzy, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" -@@ -2110,387 +2101,387 @@ msgstr "" - "X- Generator: KBabel 1. 0\n" - "." - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, fuzzy, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s:`Na Ikindi" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, fuzzy, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s:`%s'Birenzeho Rimwe in Insobanuro Bya Uburemere" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, fuzzy, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s:Itangira Icyinjijwe" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, fuzzy, c-format - msgid "%s: not enough sorting rules" - msgstr "%s:OYA Ishungura" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, fuzzy, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s:ubusa Uburemere Ikurikiranyanyuguti OYA" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, fuzzy, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s:Gukoresha i IKIMENYETSO Nka i Izina:" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, fuzzy, c-format - msgid "%s: too many values" - msgstr "%s:Uduciro" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, fuzzy, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "Itondekanya kugirango ku" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, fuzzy, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s:i Gutangira Na i Impera IKIMENYETSO Bya a Urutonde kugirango Inyuguti" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, fuzzy, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s:Bayite Bya Itangira Na Iheruka Inyuguti i Uburebure" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, fuzzy, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s:Bayite Bya Itangira Inyuguti Bya ni OYA Ntoya Bya i Iheruka Inyuguti" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, fuzzy, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s:Urutonde OYA" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, fuzzy, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s:Urutonde OYA ku" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, fuzzy, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s'Na." - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, fuzzy, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s:Itondekanya kugirango ku" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, fuzzy, c-format - msgid "%s: `%s' must be a character" - msgstr "%s:`%s'a Inyuguti" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, fuzzy, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s:`kugirango a urwego in Byose Ibyatoranyijwe Cyangwa Ntacyo" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, fuzzy, c-format - msgid "symbol `%s' not defined" - msgstr "IKIMENYETSO OYA" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, fuzzy, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "IKIMENYETSO i Imisobekere: Nka" - - # officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Font.CharSet..10.text --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, fuzzy, c-format - msgid "symbol `%s'" - msgstr "IKIMENYETSO" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, fuzzy, c-format - msgid "no definition of `UNDEFINED'" - msgstr "Oya Insobanuro Bya" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, fuzzy, c-format - msgid "too many errors; giving up" - msgstr "Amakosa Hejuru" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - msgid "%s: nested conditionals not supported" - msgstr "OYA" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - msgid "%s: more than one 'else'" - msgstr "%s:L Ihitamo" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, fuzzy, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s:Gusubiramo Insobanuro Bya" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, fuzzy, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s:Gusubiramo Bya Icyiciro" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, fuzzy, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s:Kitazwi Inyuguti in IKIMENYETSO Izina:" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s:Kitazwi Inyuguti in Insobanuro Izina:" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, fuzzy, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s:Kitazwi Inyuguti in Insobanuro Agaciro" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, fuzzy, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s:Kitazwi IKIMENYETSO in Insobanuro" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - #, fuzzy - msgid "error while adding equivalent collating symbol" - msgstr "Ikosa Wongera IKIMENYETSO" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, fuzzy, c-format - msgid "duplicate definition of script `%s'" - msgstr "Gusubiramo Insobanuro Bya IYANDIKA" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s:Kitazwi Icyiciro Izina:" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, fuzzy, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s:Igikubo Itondekanya kugirango Icyiciro" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, fuzzy, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s:Sibyo Umubare Bya Ishungura" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, fuzzy, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s:Igikubo Itondekanya kugirango Kitiswe Icyiciro" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, fuzzy, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s:Ibuze Ijambo- banze" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, fuzzy, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s:Itondekanya kugirango IKIMENYETSO S OYA" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, fuzzy, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s:Itondekanya kugirango Ikigize: S OYA" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, fuzzy, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s:Kwongera gupanga Nyuma S IKIMENYETSO OYA" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, fuzzy, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s:Ibuze Kwongera gupanga Ijambo- banze" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, fuzzy, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s:Icyiciro." - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, fuzzy, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s:IKIMENYETSO S" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, fuzzy, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s:Nka Impera Bya Urutonde" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, fuzzy, c-format - msgid "%s: empty category description not allowed" - msgstr "%s:ubusa Icyiciro Isobanuramiterere OYA" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, fuzzy, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s:Ibuze Kwongera gupanga Ibyatoranyijwe Ijambo- banze" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, fuzzy, c-format - msgid "No character set name specified in charmap" - msgstr "Inyuguti Gushyiraho Izina: in" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, fuzzy, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "Inyuguti in ishuri in ishuri" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, fuzzy, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "Inyuguti in ishuri OYA in ishuri" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, fuzzy, c-format - msgid "internal error in %s, line %u" - msgstr "By'imbere Ikosa in Umurongo" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, fuzzy, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "Inyuguti in ishuri in ishuri" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, fuzzy, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "Inyuguti in ishuri OYA in ishuri" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, fuzzy, c-format - msgid " character not in class `%s'" - msgstr " character must not be in class `%s'" - msgstr " not defined in character map" - msgstr "Inyuguti OYA in Inyuguti" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, fuzzy, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "`Icyiciro OYA Ibyinjijwe in Amatsinda Bya" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, fuzzy, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "Oya Iyinjiza Na Ntacyo Bya i Bisanzwe Amazina in i" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, fuzzy, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "OYA Byose Inyuguti in Bihari in i" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, fuzzy, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "OYA Byose Inyuguti in Bihari in i" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, fuzzy, c-format - msgid "character class `%s' already defined" - msgstr "Inyuguti ishuri" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, fuzzy, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "Oya Birenzeho Inyuguti Inzego" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, fuzzy, c-format - msgid "character map `%s' already defined" - msgstr "Inyuguti" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, fuzzy, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "Oya Birenzeho Inyuguti Amakarita" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, fuzzy, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s:Umwanya OYA Ibyinjijwe" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, fuzzy, c-format - msgid "to-value of range is smaller than from-value " - msgstr "Kuri Agaciro U Bya Urutonde ni Gitoya Bivuye Agaciro U" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - #, fuzzy - msgid "start and end character sequence of range must have the same length" - msgstr "Gutangira Na Impera Inyuguti Bya Urutonde i Uburebure" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - #, fuzzy - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "Kuri Agaciro Inyuguti ni Gitoya Bivuye Agaciro" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - #, fuzzy - msgid "premature end of `translit_ignore' definition" - msgstr "Impera Bya Insobanuro" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "Ikosa mu myandikire" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, fuzzy, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s:Ikosa in Insobanuro Bya Gishya Inyuguti ishuri" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, fuzzy, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s:Ikosa in Insobanuro Bya Gishya Inyuguti" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - #, fuzzy - msgid "ellipsis range must be marked by two operands of same type" - msgstr "Urutonde cy/ byagarajwe ku Bya Ubwoko" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - #, fuzzy - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "Na: Izina: Urutonde Uduciro i OYA" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - #, fuzzy - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" -@@ -2503,81 +2494,81 @@ msgstr "" - "X- Generator: KBabel 1. 0\n" - "." - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - #, fuzzy - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "Na: Inyuguti ITEGEKONGENGA Urutonde Uduciro Gukoresha i" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, fuzzy, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "Insobanuro kugirango Igereranya" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, fuzzy, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s:`Icyiciro OYA Impera Na:" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, fuzzy, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s:Gusubiramo Insobanuro" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - #, fuzzy - msgid "previous definition was here" - msgstr "Ibanjirije Insobanuro" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, fuzzy, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s:Oya Insobanuro Byabonetse" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, fuzzy, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s:Inyuguti OYA Nka Mburabuzi Agaciro" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, fuzzy, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s:Inyuguti in OYA Na: Bayite" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, fuzzy, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s:Inyuguti Nka Mburabuzi Agaciro OYA Na: Bayite" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, fuzzy, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "Oya Ibisohoka Na Ntacyo Bya i Bisanzwe Amazina in i" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, fuzzy, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s:Ibyatanzwe Bivuye Umwanya OYA Bihari" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, fuzzy, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s:imbonerahamwe# kugirango ishuri" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, fuzzy, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s:imbonerahamwe# kugirango" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, fuzzy, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s:imbonerahamwe# kugirango Ubugari" -@@ -4111,17 +4102,22 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 - #, fuzzy, c-format --msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "IDOSIYE" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -4210,157 +4206,218 @@ msgstr "Gushoboza Kuri Kwemera Ukwihuza" - msgid "cannot enable socket to accept connections: %s" - msgstr "Gushoboza Kuri Kwemera Ukwihuza" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+# svtools/source\dialogs\filedlg2.src:STR_FILEDLG_CANTOPENDIR.text -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "Gufungura ububiko ntibishoboka" -+ -+#: nscd/connections.c:1022 - #, c-format --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, fuzzy, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "ki/ bishaje Kubaza... Verisiyo KIGEZWEHO Verisiyo ni" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, fuzzy, c-format - msgid "cannot write result: %s" - msgstr "Kwandika Igisubizo" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, fuzzy, c-format - msgid "error getting caller's id: %s" - msgstr "Ikosa ID" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, fuzzy, c-format - msgid "short read while reading request: %s" - msgstr "Gusoma Kubaza..." - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, fuzzy, c-format - msgid "key length in request too long: %d" - msgstr "Urufunguzo Uburebure in Kubaza..." - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, fuzzy, c-format - msgid "short read while reading request key: %s" - msgstr "Gusoma Kubaza... Urufunguzo" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, fuzzy, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "Kubaza... BYAKIRIWE" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, fuzzy, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "Kubaza... BYAKIRIWE" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "Byanze Kuri Ibirimo Igikoresho" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - #, fuzzy - msgid "could not initialize conditional variable" - msgstr "gutangiza IDOSIYE" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, fuzzy, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Kuri Gukoresha Nka Ukoresha:" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - #, fuzzy - msgid "initial getgrouplist failed" - msgstr "Byanze" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - #, fuzzy - msgid "getgrouplist failed" - msgstr "Byanze" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - #, fuzzy - msgid "setgroups failed" - msgstr "Byanze" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, fuzzy, c-format - msgid "short write in %s: %s" - msgstr "Kwandika in" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, fuzzy, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Byabonetse in Itsinda Ubwihisho" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, fuzzy, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Byabonetse in Itsinda Ubwihisho" -@@ -4458,7 +4515,7 @@ msgstr "Ubwihisho kugirango Ukoresha:" - msgid "Name Service Cache Daemon." - msgstr "" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, fuzzy, c-format - msgid "wrong number of arguments" - msgstr "Umubare Bya ingingo" -@@ -4492,7 +4549,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "OYA Kurema LOG IDOSIYE" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, fuzzy, c-format - msgid "write incomplete" - msgstr "Kwandika" -@@ -4507,7 +4564,7 @@ msgstr "Gusoma IDOSIYE Ibyatanzwe" - msgid "invalidation failed" - msgstr "Byanze" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, fuzzy, c-format - msgid "Only root is allowed to use this option!" - msgstr "Imizi ni Kuri Gukoresha iyi Ihitamo" -@@ -4587,35 +4644,35 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, fuzzy, c-format - msgid "cannot write statistics: %s" - msgstr "Kwandika Sitatisitiki" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, fuzzy, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Imizi ni Kuri Gukoresha iyi Ihitamo" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, fuzzy, c-format - msgid "nscd not running!\n" - msgstr "OYA" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, fuzzy, c-format - msgid "cannot read statistics data" - msgstr "Gusoma Sitatisitiki Ibyatanzwe" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, fuzzy, c-format - msgid "" - "nscd configuration:\n" -@@ -4623,27 +4680,27 @@ msgid "" - "%15d server debug level\n" - msgstr "Iboneza Seriveri Kosora amakosa" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4654,7 +4711,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - msgid "" - "\n" -@@ -4697,90 +4754,90 @@ msgstr "Byabonetse in Ijambobanga... Ubw - msgid "Invalid numeric uid \"%s\"!" - msgstr "Bikurikije umubare UID" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - msgid "cap_init failed" - msgstr "Byanze" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - msgid "cap_set_proc failed" - msgstr "Byanze" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - msgid "Failed to create AVC lock" - msgstr "Kuri Kurema" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - #, fuzzy - msgid "Error getting context of nscd" - msgstr "Ikosa ID" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - #, fuzzy - msgid "Error getting sid from context" - msgstr "Bisanzwe Ibisohoka" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4834,17 +4891,17 @@ msgstr "Kubona Ibyinjijwe Bivuye Ububiko - msgid "Enumeration not supported on %s\n" - msgstr "OYA ku" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - msgid "Unknown database name" - msgstr "Ububikoshingiro" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - #, fuzzy - msgid "Supported databases:\n" - msgstr "Ububikoshingiro" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, fuzzy, c-format - msgid "Unknown database: %s\n" - msgstr "Ububikoshingiro" -@@ -5129,7 +5186,7 @@ msgstr "Cyangwa" - msgid "No previous regular expression" - msgstr "Ibanjirije Ibisanzwe imvugo" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - #, fuzzy - msgid "parameter null or not set" - msgstr "NTAGIHARI Cyangwa OYA Gushyiraho" -@@ -8115,6 +8172,10 @@ msgstr "%s:Kurema bushyinguro" - #~ msgstr "ubusa Ikurikiranyanyuguti" - - #, fuzzy -+#~ msgid "%s: profiler found no PLTREL in object %s\n" -+#~ msgstr "%s:Byabonetse Oya in Igikoresho" -+ -+#, fuzzy - #~ msgid "%s: profiler out of memory shadowing PLTREL of %s\n" - #~ msgstr "%s:Inyuma Bya Ububiko Ishyiraho ry'igicucu Bya" - -Index: glibc-2.23/po/sk.po -=================================================================== ---- glibc-2.23.orig/po/sk.po -+++ glibc-2.23/po/sk.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.3.3\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2004-08-05 22:19+0200\n" - "Last-Translator: Marcel Telka \n" - "Language-Team: Slovak \n" -@@ -141,10 +141,10 @@ msgstr "" - "[VÃSTUPNÃ_SÚBOR [VSTUPNÃ_SÚBOR]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -154,7 +154,7 @@ msgid "" - msgstr "" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -172,7 +172,7 @@ msgstr "" - "NA KONKRÉTNY ÚČEL.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -431,11 +431,11 @@ msgstr "Zmena prístupových práv %s na - msgid "Renaming of %s to %s failed" - msgstr "Premenovanie %s na %s zlyhalo" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "nie je možné vytvoriÅ¥ zoznam pôsobnosti" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "zdieľaný objekt nie je otvorený" - -@@ -512,131 +512,131 @@ msgstr "nie je možné vytvoriÅ¥ pole ci - msgid "cannot stat shared object" - msgstr "nepodarilo sa zistiÅ¥ stav zdieľaného objektu" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "nie je možné otvoriÅ¥ zariadenie pre naplnenie nulami" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "nie je možné vytvoriÅ¥ deskriptor zdieľaného objektu" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "nie je možné naÄítaÅ¥ údaje súboru" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF zarovnanie príkazu nie je zarovnané na stránku" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF zavádzacia adresa/posunutie nie je správne zarovnaná" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "nie je možné prideliÅ¥ dátové Å¡truktúry TLS pre poÄiatoÄné vlákno" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "nie je možné spracovaÅ¥ TLS dáta" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "objektový súbor neobsahuje žiadny nahrateľný segment" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "nie je možné dynamicky naÄítaÅ¥ spustiteľný súbor" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "objektový súbor neobsahuje žiadnu dynamickú sekciu" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "zdieľaný objekt nemôže byÅ¥ otvorený pomocou dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "nie je možné prideliÅ¥ pamäť pre hlaviÄku programu" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - #, fuzzy - #| msgid "invalid line" - msgid "invalid caller" - msgstr "neprípustný riadok" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "nie je možné zmeniÅ¥ ochranu pamäti" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "nie je možné povoliÅ¥ spustiteľný zásobník ako vyžaduje zdieľaný objekt" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - #, fuzzy - #| msgid "cannot create internal descriptor" - msgid "cannot close file descriptor" - msgstr "nie je možné vytvoriÅ¥ interný deskriptor" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "súbor je príliÅ¡ krátky" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "neprípustná ELF hlaviÄka" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "Kódovanie dát v ELF súbore nie je big-endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "Kódovanie dát v ELF súbore nie je little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "Identifikácia verzie ELF súboru sa nezhoduje s aktuálnou" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "Neplatný OS ABI ELF súboru" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "Neplatná verzia ABI ELF súboru" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "interná chyba" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "Verzia súboru ELF sa nezhoduje s aktuálnou" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "iba ET_DYN a ET_EXEC môžu byÅ¥ naÄítané" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "phentsize ELF súboru nie je oÄakávaná" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "nie je možné otvoriÅ¥ súbor zdieľaného objektu" - -@@ -648,11 +648,11 @@ msgstr "nepodarilo sa namapovaÅ¥ segment - msgid "cannot map zero-fill pages" - msgstr "nie je možné namapovaÅ¥ stránky vyplnené nulami" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "chyba relokácie" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "" - -@@ -660,56 +660,44 @@ msgstr "" - msgid "cannot extend global scope" - msgstr "nie je možné rozšíriÅ¥ globálny rozsah" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - #, fuzzy - #| msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script." - msgid "TLS generation counter wrapped! Please report this." - msgstr "PoÄítadlo generovania TLS pretieklo! Prosím poÅ¡lite správu pomocou skriptu 'glibcbug'." - --#: elf/dl-open.c:542 --#, fuzzy --#| msgid "cannot allocate memory in static TLS block" --msgid "cannot load any more object with static TLS" --msgstr "nie je možné prideliÅ¥ pamäť v statickom bloku TLS" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "neprípustný mód pre dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - #, fuzzy - #| msgid "invalid mode for dlopen()" - msgid "invalid target namespace in dlmopen()" - msgstr "neprípustný mód pre dlopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "nie je možné prideliÅ¥ pamäť v statickom bloku TLS" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "nie je možné zmeniÅ¥ segment na zapisovateľný pre relokáciu" - --#: elf/dl-reloc.c:275 --#, fuzzy, c-format --#| msgid "%s: profiler found no PLTREL in object %s\n" --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: profiler nenaÅ¡iel PLTREL v objekte %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "nie je možné obnoviÅ¥ segment prot po reloc" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - #, fuzzy - #| msgid "cannot change memory protections" - msgid "cannot apply additional memory protection after relocation" -@@ -719,7 +707,7 @@ msgstr "nie je možné zmeniÅ¥ ochranu p - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT je použité pre kód, ktorý nie je dynamicky zavedený" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "nie je možné dátové Å¡truktúry TLS" - -@@ -865,7 +853,7 @@ msgstr "Odkaz nebol vytvorený, keÄže - msgid "Can't open directory %s" - msgstr "Nie je možné otvoriÅ¥ adresár %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Vstupný súbor %s nebol nájdený.\n" -@@ -1001,7 +989,7 @@ msgstr "nie je možné uvoľniÅ¥ argumen - msgid "No such file or directory" - msgstr "Adresár alebo súbor neexistuje" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "nie je regulérny súbor" - -@@ -1053,73 +1041,79 @@ msgstr "nie je možné preÄítaÅ¥ hlavi - msgid "cannot read program interpreter" - msgstr "nie je možné preÄítaÅ¥ hlaviÄku archívu" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "nie je možné naÄítaÅ¥ údaje súboru" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "nie je možné preÄítaÅ¥ hlaviÄku" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "nie je možné prideliÅ¥ pamäť pre hlaviÄku programu" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid pointer size" - msgid "invalid process ID '%s'" - msgstr "neprípustná veľkostÅ¥ ukazovateľa" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "nie je možné otvoriÅ¥ `%s'" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "nie je možné otvoriÅ¥ `%s'" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - #| msgid "cannot create searchlist" - msgid "cannot prepare reading %s/task" - msgstr "nie je možné vytvoriÅ¥ vyhľadávací zoznam" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "neprípustná ELF hlaviÄka" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot find C preprocessor: %s \n" - msgid "cannot attach to process %lu" - msgstr "nie je možné nájsÅ¥ preprocesor: %s \n" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1154,28 +1148,28 @@ msgstr "%s nie je zdieľaný objektový - msgid "more than one dynamic segment\n" - msgstr "viac ako jeden dynamický segment\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Nie je možné vykonaÅ¥ fstat() súboru %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, fuzzy, c-format - #| msgid "File %s is too small, not checked." - msgid "File %s is empty, not checked." - msgstr "Súbor %s je príliÅ¡ krátky, neskontrolovaný." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Súbor %s je príliÅ¡ krátky, neskontrolovaný." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Nie je možné mmap-ovaÅ¥ súbor %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s nie je ELF súbor - na zaÄiatku obsahujé chybné magické bajty.\n" -@@ -1308,10 +1302,10 @@ msgstr "ZDIEĽ_OBJEKT [PROF_ÚDAJE]" - msgid "failed to load shared object `%s'" - msgstr "nepodarilo sa naÄítaÅ¥ zdieľaný objekt `%s'" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "nie je možné vytvoriÅ¥ interné deskriptory" -+msgid "cannot create internal descriptor" -+msgstr "nie je možné vytvoriÅ¥ interný deskriptor" - - #: elf/sprof.c:554 - #, c-format -@@ -1382,11 +1376,6 @@ msgstr "nepodarilo sa mmap-ovaÅ¥ súbor - msgid "error while closing the profiling data file" - msgstr "chyba poÄas zatvárania súboru profilovacích údajov" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "nie je možné vytvoriÅ¥ interný deskriptor" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1645,27 +1634,27 @@ msgstr "socket: chyba protokolu pri prí - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: krátke Äítanie" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat zlyhal" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "nie je možné otvoriÅ¥" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat sa nepodaril" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "chybný vlastník" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "zapisovateľný nielen pre vlastníka" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "niekde existuje pevný odkaz" - -@@ -1787,8 +1776,8 @@ msgid "no symbolic name given for end of - msgstr "nebolo zadané žiadne symbolické meno pre koniec rozsahu" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1814,8 +1803,8 @@ msgid "%s: error in state machine" - msgstr "%s: chyba v stavovom automate" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1836,7 +1825,7 @@ msgstr "neznámy znak `%s'" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "poÄet bajtov pre postupnosÅ¥ bajtov zaÄiatku a konca rozsahu nie sú rovnaké: %d a %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "neprípustné mená pre rozsah znakov" -@@ -1860,8 +1849,8 @@ msgstr "horný limit rozsahu je menší - msgid "resulting bytes for range not representable." - msgstr "výsledné bajty rozsahu nie sú zobraziteľné" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1926,7 +1915,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: Äíselný kód krajiny `%d' nie je platný" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1948,8 +1937,8 @@ msgstr "%s: pole `%s' deklarované viac - msgid "%s: unknown character in field `%s'" - msgstr "%s: neznámy znak v poli `%s'" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1958,12 +1947,12 @@ msgstr "%s: neznámy znak v poli `%s'" - msgid "%s: incomplete `END' line" - msgstr "%s: nekompletný riadok `END'" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1973,481 +1962,481 @@ msgstr "%s: nekompletný riadok `END'" - msgid "%s: syntax error" - msgstr "%s: chyba syntaxe" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' bol už definovaný v znakovej mape" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' bol už definovaný v repertoári" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' bol už definovaný ako symbol triedenia" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' bol už definovaný ako element triedenia" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: `forward' a `backward' sa navzájom vyluÄujú" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: `%s' spomenuté viac ako raz v definícii váhy %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: priveľa pravidiel; prvý záznam mal iba %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: nedostatoÄný poÄet pravidiel triedenia" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: prázdny reÅ¥azec váhy nie je povolený" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: váhy musia ako názov použiÅ¥ rovnaký symbol pokraÄovania" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: priveľa hodnôt" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "poradie pre `%.*s' je už definované na %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: poÄiatoÄný a koncový symbol rozsahu musia zastupovaÅ¥ znaky" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: bajtové sekvencie prvého a posledného znaku musia maÅ¥ rovnakú dĺžku" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, fuzzy, c-format - #| msgid "%s: byte sequence of first character of sequence is not lower than that of the last character" - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: poradie bajtu prvého znaku sekvencie nie je menÅ¡ie ako posledného" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: pokraÄovanie symbolického rozsahu nesmie priamo nasledoÅ¥ `order_start'" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: pokraÄovanie symbolického rozsahu nesmie byÅ¥ priamo nasledované `order_end'" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, fuzzy, c-format - #| msgid "`%s' and `%.*s' are no valid names for symbolic range" - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' a `%.*s' sú neprípustné názvy pre symbolický rozsah" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: poradie pre `%.*s' je už definované na %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' musí byÅ¥ znak" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `position' musí byÅ¥ pre danú úroveň použitá vo vÅ¡etkých sekciách, alebo v žiadnej" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "symbol `%s' nie je definovaný" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "symbol `%s' má rovnaké kódovanie ako" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "symbol `%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "neexistuje definícia pre `UNDEFINED'" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "príliÅ¡ veľa chýb; vzdávam to" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - #| msgid "Operation not supported" - msgid "%s: nested conditionals not supported" - msgstr "Operácia nie je podporovaná" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: More than one -l option specified\n" - msgid "%s: more than one 'else'" - msgstr "%s: Voľba -l zadaná viac ako raz\n" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: duplicitná definícia `%s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: duplicitná deklarácia sekcie `%s'" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: neznámy znak v názve symbolu triedenia" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: neznámy znak v názve ekvivalentnej definície" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: neznámy znak v hodnote ekvivalentnej definície" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: neznámy symbol `%s' v ekvivalentnej definícii" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "chyba pri pridávaní ekvivalentného symbolu triedenia" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "duplicitná definícia skriptu `%s'" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - #| msgid "%s: unknown section name `%s'" - msgid "%s: unknown section name `%.*s'" - msgstr "%s: neznámy názov sekcie `%s'" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: viacnásobná definícia poradia pre sekciu `%s'" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: chybný poÄet pravidiel triedenia" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: viacnásobná definícia poradia pre sekciu bez mena" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: chýbajúce kľúÄové slovo `order_end'" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: poradie pre symbol triedenia `%.*s' eÅ¡te nebolo definované" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: poradie pre element triedenia `%.*s' eÅ¡te nebolo definované" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: nie je možné preradiÅ¥ za %.*s: neznámy symbol" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: chýbajúce kľúÄové slovo `reorder-end'" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: neznáma sekcia `%.*s'" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: zlý symbol <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: `%s' nemôže byÅ¥ koncovým znakom rozsahu pokraÄovania" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: prázdny popis kategórie nie je povolený" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: chýbajúce kľúÄové slovo `reorder-sections-end'" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "V znakovej mape nie je zadaný názov znakovej sady" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "znak L'\\u%0*x' v triede `%s' musí byÅ¥ v triede `%s'" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "znak L'\\u%0*x' v triede `%s' nesmie byÅ¥ v triede `%s'" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "vnútorná chyba %s na riadku %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "znak '%s' v triede `%s' musí byÅ¥ v triede `%s'" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "znak '%s' v triede `%s' nesmie byÅ¥ v triede `%s'" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr " znak nie je v triede `%s'" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr " znak nesmie byÅ¥ v triede `%s'" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "znak nie je definovaný v znakovej sade" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "kategória `digit' neobsahuje záznamy v skupinách po desiatich" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "neboli definované žiadne vstupné Äíslice a v znakovej mape nie je žiadne zo Å¡tandardných mien" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "nie vÅ¡etky znaky použité v `outdigit' sú dostupné v znakovej mape" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "nie vÅ¡etky znaky použité v `outdigit' sú dostupné v repertoári" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "trieda znakov `%s' je už definovaná" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "limit implementácie: maximálne množstvo tried znakov je %Zd" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "znaková sada `%s' je už definovaná" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "limit implementácie: maximálne množstvo sád znakov je %d" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: pole `%s' neobsahuje presne desaÅ¥ položiek" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "to-value rozsahu je menÅ¡ia ako from-value " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "úvodná a koncová znaková sekvencia rozsahu musia maÅ¥ rovnakú dĺžku" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "to-value sekvencia znakov je menÅ¡ia ako sekvencia from-value" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "predÄasný koniec definície `translit_ignore'" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "chyba syntaxe" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: chyba syntaxe v definícii novej triedy znakov" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: chyba syntaxe v definícii novej znakovej mapy" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "rozsah pokraÄovania musí byÅ¥ oznaÄený dvomi operandami rovnakého typu" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "v symbolickom rozsahu hodnôt nesmie byÅ¥ použité absolútne pokraÄovanie `...'" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "v rozsahu hodnôt UCS treba použiÅ¥ hexadecimálne symbolické pokraÄovanie `..'" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "v rozsahu hodnôt kódov znakov treba použiÅ¥ absolútne pokraÄovanie `...'" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "duplicitná definícia mapovania `%s'" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: sekcia `translit_start' nekonÄí `translit_end'" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: duplicitná definícia `default_missing'" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "predchádzajúca definícia bola tu" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: nenájdená zobraziteľná definícia `default_missing'" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: znak `%s' nie je definovaný a je potrebný ako implicitná hodnota" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: znak `%s' v znakovej mape nie je vyjadriteľný jedným bajtom" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: znak `%s' je potrebný ako prednastavená hodnota nevyjadriteľná jedným bajtom" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "neboli definované žiadne výstupné Äíslice a v znakovej mape nie je žiadne zo Å¡tandardných mien" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: transliteraÄné údaje prostredia `%s' nie sú dostupné" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabuľka triedy \"%s\": %lu bajtov\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabuľka mapy \"%s\": %lu bajtov\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabuľka šírky: %lu bajtov\n" -@@ -3865,17 +3854,23 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 --#, c-format --msgid "cannot stat() file `%s': %s" -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "nie je možné vykonaÅ¥ stat() súboru `%s': %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3974,158 +3969,220 @@ msgstr "nie je možné povoliÅ¥ socketu - msgid "cannot enable socket to accept connections: %s" - msgstr "nie je možné povoliÅ¥ socketu prijímaÅ¥ spojenia: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 - #, c-format --msgid "register trace file %s for database %s" -+msgid "disabled inotify-based monitoring for file `%s': %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Nie je možné otvoriÅ¥ adresár %s" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "nie je možné spracovaÅ¥ starú verziu žiadosti %d; aktuálna verzia je %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "nie je možné zapísaÅ¥ výsledok: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, fuzzy, c-format - #| msgid "error getting callers id: %s" - msgid "error getting caller's id: %s" - msgstr "chyba pri získaní id volajúceho: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "neúplné Äítanie žiadosti: `%s'" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "dĺžka kľúÄa v žiadosti príliÅ¡ dlhá: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "neúplné Äítanie kľúÄa žiadosti: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: žiadosÅ¥ prijatá (verzia = %d) z PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: žiadosÅ¥ prijatá (verzia = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "nepodarilo sa naÄítaÅ¥ zdieľaný objekt `%s'" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - #, fuzzy - #| msgid "cannot initialize archive file" - msgid "could not initialize conditional variable" - msgstr "nie je možné inicializovaÅ¥ archívny súbor" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Zlyhalo spustenie nscd ako používateľ '%s'" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - #, fuzzy - #| msgid "getgrouplist failed" - msgid "initial getgrouplist failed" - msgstr "getgrouplist zlyhalo" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist zlyhalo" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups zlyhalo" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "neúplný zápis v %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Nenájdené \"%s\" v cache skupín!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, fuzzy, c-format - #| msgid "Haven't found \"%s\" in group cache!" - msgid "Reloading \"%s\" in group cache!" -@@ -4221,7 +4278,7 @@ msgstr "PoužiÅ¥ samostatnú cache pre k - msgid "Name Service Cache Daemon." - msgstr "Démon cache služby názvov." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "chybný poÄet argumentov" -@@ -4259,7 +4316,7 @@ msgstr "" - msgid "Could not create log file" - msgstr "Nie je možné vytvoriÅ¥ žurnálový súbor \"%s\"" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "neúplný zápis" -@@ -4276,7 +4333,7 @@ msgstr "nie je možné naÄítaÅ¥ údaje - msgid "invalidation failed" - msgstr "Modifikácia zlyhala" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Táto voľba je dostupná iba superužívateľovi!" -@@ -4361,35 +4418,35 @@ msgstr "" - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "nie je možné zapísaÅ¥ Å¡tatistiku: `%s'" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Len správca alebo %s má dostupnú túto voľbu!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd nebeží!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "nie je možné naÄítaÅ¥ Å¡tatistické údaje" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4400,27 +4457,27 @@ msgstr "" - "\n" - "%15d ladiaca úroveň servera\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus doba behu servera\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus doba behu servera\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus doba behu servera\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus doba behu servera\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4431,7 +4488,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, fuzzy, c-format - #| msgid "" - #| "\n" -@@ -4512,95 +4569,95 @@ msgstr "Nenájdené \"%s\" v cache hesie - msgid "Invalid numeric uid \"%s\"!" - msgstr "Neplatné Äíselné uid \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - #| msgid "lstat failed" - msgid "cap_init failed" - msgstr "lstat zlyhal" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - #| msgid "setgroups failed" - msgid "cap_set_proc failed" - msgstr "setgroups zlyhalo" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - #| msgid "Unable to create callback" - msgid "Failed to create AVC lock" - msgstr "Nie je možné vytvoriÅ¥ spätné volanie" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - #, fuzzy - #| msgid "error getting callers id: %s" - msgid "Error getting context of nscd" - msgstr "chyba pri získaní id volajúceho: %s" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - #, fuzzy - #| msgid "Error writing standard output" - msgid "Error getting sid from context" - msgstr "Chyba pri zápise na Å¡tandardný výstup" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4655,19 +4712,19 @@ msgstr "getent - získaÅ¥ záznamy z adm - msgid "Enumeration not supported on %s\n" - msgstr "Enumerácia %s nie je podporované\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - #| msgid "Unknown database: %s\n" - msgid "Unknown database name" - msgstr "Neznáma databáza %s\n" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - #, fuzzy - #| msgid "Supported databases:" - msgid "Supported databases:\n" - msgstr "Podporované databázy:" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Neznáma databáza %s\n" -@@ -4967,7 +5024,7 @@ msgstr "Nepárová ) or \\)" - msgid "No previous regular expression" - msgstr "Žiadny predchádzajúci regulérny výraz" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "prázdny alebo nenastavený parameter" - -@@ -7785,6 +7842,9 @@ msgstr "%s: Nie je možné vytvoriÅ¥ adr - #~ msgid "empty dynamics string token substitution" - #~ msgstr "prázdna substitúcia tokenu reÅ¥azca dynamiky" - -+#~ msgid "%s: profiler found no PLTREL in object %s\n" -+#~ msgstr "%s: profiler nenaÅ¡iel PLTREL v objekte %s\n" -+ - #~ msgid "%s: profiler out of memory shadowing PLTREL of %s\n" - #~ msgstr "%s: profiler vyÄerpal pamäť pri vytváraní kópie PLTREL z %s\n" - -Index: glibc-2.23/po/sl.po -=================================================================== ---- glibc-2.23.orig/po/sl.po -+++ glibc-2.23/po/sl.po -@@ -1,14 +1,14 @@ - # -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU libc. --# Copyright (C) 2013, 2014 Free Software Foundation, Inc. -+# Copyright (C) 2013, 2014, 2015, 2016 Free Software Foundation, Inc. - # This file is distributed under the same license as the glibc package. --# Primož Peterlin , 2013, 2014. --# $Id: libc-2.18.90.20140105.sl.po,v 1.1 2014/02/02 15:58:03 peterlin Exp $ -+# Primož Peterlin , 2013, 2014, 2015, 2016. -+# $Id: libc-2.22-pre1.sl.po,v 1.5 2016/01/04 22:59:34 peterlin Exp $ - msgid "" - msgstr "" --"Project-Id-Version: libc 2.18.90.20140105\n" -+"Project-Id-Version: libc 2.22-pre1\n" - "Report-Msgid-Bugs-To: bug-coreutils@gnu.org\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" --"PO-Revision-Date: 2014-02-02 16:58+0100\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"PO-Revision-Date: 2016-01-04 23:59+0100\n" - "Last-Translator: Primož Peterlin \n" - "Language-Team: Slovenian \n" - "Language: sl\n" -@@ -142,10 +142,10 @@ msgstr "" - "[IZHODNA_DATOTEKA [VHODNA_DATOTEKA]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -157,7 +157,7 @@ msgstr "" - "%s.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -175,7 +175,7 @@ msgstr "" - "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA RABO.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -428,11 +428,11 @@ msgstr "Sprememba pravic dostopa za %s n - msgid "Renaming of %s to %s failed" - msgstr "Preimenovanje %s v %s ni uspelo" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "seznama podroÄja ni mogoÄe ustvariti" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "deljeni predmet ni odprt" - -@@ -505,127 +505,127 @@ msgstr "polja iskalnih poti ni mogoÄe u - msgid "cannot stat shared object" - msgstr "statusa deljenega predmeta ni mogoÄe ugotoviti" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "ni mogoÄe odpreti naprave /dev/zero" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "deljenega predmetnega deskriptorja ni mogoÄe ustvariti" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "podatkov datoteke ni mogoÄe prebrati" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "poravnava ukaza ELF za nalaganje ni poravnana s stranjo" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "naslov/odmik ukaza ELF za nalaganje ni primerno poravnan" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "podatkovnih struktur TLS za zaÄetno nit ni mogoÄe dodeliti" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "rokovanje s podatki TLS ni mogoÄe" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "predmetna datoteka nima vÄitljivega segmenta" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "dinamiÄno nalaganje izvedljive datoteke ni mogoÄe" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "predmetna datoteka nima dinamiÄne sekcije" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "dlopen() na deljenih predmetih ni mogoÄ" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "dodelitev pomnilnika za glavo programa ni mogoÄa" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "neveljaven klicatelj" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "sprememba zaÅ¡Äite pomnilnika ni mogoÄa" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "izvedljivega sklada ni mogoÄe omogoÄiti, kot to zahteva deljeni predmet" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "datoteÄnega deskriptorja ni mogoÄe zapreti" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "datoteka je prekratka" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "neveljavna glava ELF" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "kodiranje podatkov datoteke ELF ni »big-endian«" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "kodiranje podatkov datoteke ELF ni »little-endian«" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "identifikator razliÄice datoteke ELF se ne ujema s trenutnim" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "OS ABI datoteke ELF ni veljaven" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "razliÄica ABI datoteke ELF ni veljavna" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "neniÄelno zapolnjenje pri e_ident" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "interna napaka" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "razliÄica datoteke ELF se ne ujema s trenutno" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "samo ET_DYN in ET_EXEC je mogoÄe naložiti" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "phentsize datoteke ELF ni priÄakovane velikosti" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "napaÄen razred ELF: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "napaÄen razred ELF: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "deljene predmetne datoteke ni mogoÄe odpreti" - -@@ -637,11 +637,11 @@ msgstr "preslikava segmenta iz deljenega - msgid "cannot map zero-fill pages" - msgstr "niÄelnih strani ni mogoÄe preslikati" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "napaka pri premikanju" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "napaka pri iskanju simbola" - -@@ -649,49 +649,40 @@ msgstr "napaka pri iskanju simbola" - msgid "cannot extend global scope" - msgstr "ni mogoÄe razÅ¡iriti globalnega podroÄja" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "Zapletanje Å¡tevca generacij TLS! Prosim, javite to napako." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "nobenega predmeta s statiÄnim TLS ni veÄ mogoÄe naložiti" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "neveljavni naÄin za dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "nobenega imenskega prostora za dlmopen() ni veÄ na voljo" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "neveljavni ciljni imenski prostor pri dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "ni mogoÄe dodeliti pomnilnika v statiÄnem bloku TLS" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "segmenta se ne da odÅ¡Äititi za pisanje pred premikom" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: v predmetu %s ni najti PLTREL\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: pomnilnika ni dovolj za shranjevanje rezultatov premikanja %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "zaÅ¡Äite segmenta po premiku ni mogoÄe povrniti" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "dodatne zaÅ¡Äite pomnilnika po premiku ni mogoÄe uporabiti" - -@@ -699,7 +690,7 @@ msgstr "dodatne zaÅ¡Äite pomnilnika po - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT uporabljen v kodi se ni dinamiÄno naložil" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "podatkovnih struktur TLS ni mogoÄe ustvariti" - -@@ -843,7 +834,7 @@ msgstr "Povezava ni bila ustvarjena, ker - msgid "Can't open directory %s" - msgstr "Ni mogoÄe odpreti imenika %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Vhodne datoteke %s ni moÄ najti.\n" -@@ -980,7 +971,7 @@ msgstr "manjkajoÄi argumenti datoteke" - msgid "No such file or directory" - msgstr "Datoteka ali imenik s tem imenom ne obstaja" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "ni navadna datoteka" - -@@ -1025,65 +1016,70 @@ msgstr "branje r_debug ni mogoÄe" - msgid "cannot read program interpreter" - msgstr "programskega tolmaÄa ni mogoÄe prebrati" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "preslikave povezav ni mogoÄe prebrati" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "imena predmeta ni mogoÄe prebrati" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "dodelitev medpomnilnika za ime predmeta ni mogoÄa" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "IzpiÅ¡i seznam dinamiÄnih deljenih predmetov, naloženih v proces." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Zahtevan je natanÄno en parameter z ID procesa.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "neveljavna identifikacijska Å¡tevilka procesa »%s«" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "ni mogoÄe odpreti %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "ni mogoÄe odpreti %s/task" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "ni mogoÄe pripraviti %s/task za branje" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "neveljavna identifikacijska Å¡tevilka niti »%s«" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "pripenjanje k procesu %lu ni mogoÄe" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "informacije o procesu %lu niso na voljo" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "proces %lu ni program ELF" -@@ -1118,27 +1114,27 @@ msgstr "%s ni deljena predmetna datoteka - msgid "more than one dynamic segment\n" - msgstr "veÄ kot en dinamiÄni segment\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "fstat() na datoteki %s ni mogoÄe izvesti.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Datoteka %s je prazna, brez preverjanja." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Datoteka %s je premajhna, brez preverjanja." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "mmap() na datoteki %s ni mogoÄe izvesti.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s ni datoteka ELF - magiÄno zaporedje bajtov na zaÄetku je napaÄno.\n" -@@ -1149,6 +1145,8 @@ msgid "" - "Usage: sln src dest|file\n" - "\n" - msgstr "" -+"Uporaba: sln IZVOR CILJ|DATOTEKA\n" -+"\n" - - #: elf/sln.c:109 - #, c-format -@@ -1178,7 +1176,7 @@ msgstr "%s: neveljaven cilj: %s\n" - #: elf/sln.c:207 elf/sln.c:216 - #, c-format - msgid "Invalid link from \"%s\" to \"%s\": %s\n" --msgstr "" -+msgstr "Neveljavna povezava z »%s« na »%s«: %s\n" - - #: elf/sotruss.sh:32 - #, sh-format -@@ -1196,6 +1194,18 @@ msgid "" - " --usage Give a short usage message\n" - " --version Print program version" - msgstr "" -+"Usage: sotruss [IZBIRA...] [--] PROGRAM [IZBIRA_PROGRAMA...]\n" -+" -F, --from SEZNAM Sledi klicem predmetov s SEZNAMA\n" -+" -T, --to SEZNAM Sledi klicem predmetom s SEZNAMA\n" -+"\n" -+" -e, --exit Prikaži tudi izhode klicev funkcij\n" -+" -f, --follow Sledi procesom naslednikom\n" -+" -o, --output DATOTEKA ZapiÅ¡i izhod na DATOTEKO (ali DATOTEKO.$PID, Äe\n" -+" je uporabljena izbira -f) namesto na standardni izhod\n" -+"\n" -+" -?, --help Prikaži ta seznam pomoÄi\n" -+" --usage Prikaži kratko sporoÄilo o rabi\n" -+" --version IzpiÅ¡i razliÄico programa" - - #: elf/sotruss.sh:46 - msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n" -@@ -1220,6 +1230,10 @@ msgid "" - "\t [--help] [--usage] [--version] [--]\n" - "\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" - msgstr "" -+"Usage: %s [-ef] [-F SEZNAM] [-o DATOTEKA] [-T SEZNAM] [--exit]\n" -+" [--follow] [--from SEZNAM] [--output DATOTEKA] [--to SEZNAM]\n" -+" [-help] [--usage] [--version] [--]\n" -+" PROGRAM [IZBIRA_PROGRAMA...]" - - #: elf/sotruss.sh:134 - msgid "%s: unrecognized option '%c%s'\\n" -@@ -1231,33 +1245,33 @@ msgstr "Izbira izhoda:" - - #: elf/sprof.c:79 - msgid "print list of count paths and their number of use" --msgstr "" -+msgstr "izpiÅ¡i seznam Å¡tetih poti in Å¡tevilo njihovih rab" - - #: elf/sprof.c:81 - msgid "generate flat profile with counts and ticks" --msgstr "" -+msgstr "ustvari enostavni profil s Å¡tevili in takti" - - #: elf/sprof.c:82 - msgid "generate call graph" --msgstr "" -+msgstr "ustvari graf klicev" - - #: elf/sprof.c:89 - msgid "Read and display shared object profiling data." --msgstr "" -+msgstr "Preberi in prikaži profilne podatke za deljeni predmet." - - #: elf/sprof.c:94 - msgid "SHOBJ [PROFDATA]" --msgstr "" -+msgstr "SHOBJ [PROFDATA]" - - #: elf/sprof.c:433 - #, c-format - msgid "failed to load shared object `%s'" - msgstr "nalaganje deljenega predmeta »%s« ni uspelo" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "internih deskriptorjev ni mogoÄe ustvariti" -+msgid "cannot create internal descriptor" -+msgstr "internega deskriptorja ni mogoÄe ustvariti" - - #: elf/sprof.c:554 - #, c-format -@@ -1294,7 +1308,7 @@ msgstr "branje zaglavja ELF ni uspelo" - #: elf/sprof.c:685 - #, c-format - msgid "*** The file `%s' is stripped: no detailed analysis possible\n" --msgstr "" -+msgstr "*** Datoteka »%s« je posneta; podrobna analiza ni mogoÄa\n" - - #: elf/sprof.c:715 - #, c-format -@@ -1304,37 +1318,32 @@ msgstr "nalaganje simbolnih podatkov ni - #: elf/sprof.c:780 - #, c-format - msgid "cannot load profiling data" --msgstr "" -+msgstr "profilnih podatkov ni mogoÄe naložiti" - - #: elf/sprof.c:789 - #, c-format - msgid "while stat'ing profiling data file" --msgstr "" -+msgstr "ob branju statistike datoteke s profilnimi podatki" - - #: elf/sprof.c:797 - #, c-format - msgid "profiling data file `%s' does not match shared object `%s'" --msgstr "" -+msgstr "datoteka s profilimi podatki »%s« ne ustreza deljenemu predmetu »%s«" - - #: elf/sprof.c:808 - #, c-format - msgid "failed to mmap the profiling data file" --msgstr "" -+msgstr "klic mmap() na datoteki s profilnimi podatki ni uspel" - - #: elf/sprof.c:816 - #, c-format - msgid "error while closing the profiling data file" - msgstr "napaka pri zapiranju datoteke s podatki za profiliranje" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "internega deskriptorja ni mogoÄe ustvariti" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" --msgstr "" -+msgstr "»%s« ni prava datoteka s profilnimi podatki za »%s«" - - #: elf/sprof.c:1080 elf/sprof.c:1138 - #, c-format -@@ -1354,7 +1363,7 @@ msgstr "napaka pri zapiranju vhoda »%s - #: iconv/iconv_charmap.c:435 - #, c-format - msgid "illegal input sequence at position %Zd" --msgstr "" -+msgstr "neveljavno vhodno zaporedje na poziciji %Zd" - - #: iconv/iconv_charmap.c:454 iconv/iconv_prog.c:539 - #, c-format -@@ -1465,7 +1474,7 @@ msgstr "pretvorba ustavljena zaradi tež - #: iconv/iconv_prog.c:535 - #, c-format - msgid "illegal input sequence at position %ld" --msgstr "" -+msgstr "neveljavno vhodno zaporedje na poziciji %ld" - - #: iconv/iconv_prog.c:543 - #, c-format -@@ -1486,10 +1495,16 @@ msgid "" - "\n" - " " - msgstr "" -+"SledeÄi seznam vsebuje vse poznane kodirane nabore znakov. To ne pomeni nujno,\n" -+"da je mogoÄe katerokoli kombinacijo uporabiti za izbiro vhodnega in izhodnega\n" -+"kodiranja v ukazni vrstici. Posamezni kodirani nabor znakov je lahko naÅ¡tet\n" -+"pod veÄ sinonimi.\n" -+"\n" -+" " - - #: iconv/iconvconfig.c:109 - msgid "Create fastloading iconv module configuration file." --msgstr "" -+msgstr "Ustvarjam konfiguracijsko datoteko za hitro-naložljiv modul iconv." - - #: iconv/iconvconfig.c:113 - msgid "[DIR...]" -@@ -1501,30 +1516,30 @@ msgstr "POT" - - #: iconv/iconvconfig.c:127 - msgid "Prefix used for all file accesses" --msgstr "" -+msgstr "Predpona za vse dostope do datotek" - - #: iconv/iconvconfig.c:128 - msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)" --msgstr "" -+msgstr "ZapiÅ¡i izhod v DATOTEKO namesto na obiÄajno mesto (--prefix se ne nanaÅ¡a na DATOTEKO)" - - #: iconv/iconvconfig.c:132 - msgid "Do not search standard directories, only those on the command line" --msgstr "" -+msgstr "Ne preiskuj standardnih imenikov, ampak le tiste, navedene v ukazni vrstici" - - #: iconv/iconvconfig.c:299 - #, c-format - msgid "Directory arguments required when using --nostdlib" --msgstr "" -+msgstr "Pri izbiri --nostdlib mora biti podan imenik" - - #: iconv/iconvconfig.c:341 locale/programs/localedef.c:294 - #, c-format - msgid "no output file produced because warnings were issued" --msgstr "" -+msgstr "zaradi opozoril med potekom izhodna datoteka ni bila ustvarjena" - - #: iconv/iconvconfig.c:430 - #, c-format - msgid "while inserting in search tree" --msgstr "" -+msgstr "med vrivanjem v iskalno drevo" - - #: iconv/iconvconfig.c:1239 - #, c-format -@@ -1537,12 +1552,12 @@ msgstr "rcmd: Pomnilnika ni mogoÄe reze - - #: inet/rcmd.c:178 - msgid "rcmd: socket: All ports in use\n" --msgstr "rcmd: vtiÄnica: Vsa vrata so v rabi\n" -+msgstr "rcmd: socket: Vsa vrata so v rabi\n" - - #: inet/rcmd.c:206 - #, c-format - msgid "connect to address %s: " --msgstr "priklapljanje na naslov %s: " -+msgstr "priklop na naslov %s: " - - #: inet/rcmd.c:219 - #, c-format -@@ -1552,49 +1567,49 @@ msgstr "PoskuÅ¡a se %s...\n" - #: inet/rcmd.c:255 - #, c-format - msgid "rcmd: write (setting up stderr): %m\n" --msgstr "" -+msgstr "rcmd: write (nastavljanje stderr): %m\n" - - #: inet/rcmd.c:271 - #, c-format - msgid "rcmd: poll (setting up stderr): %m\n" --msgstr "" -+msgstr "rcmd: poll (nastavljanje stderr): %m\n" - - #: inet/rcmd.c:274 - msgid "poll: protocol failure in circuit setup\n" --msgstr "" -+msgstr "poll: napaka v protokolu pri nastavljanju vezja\n" - - #: inet/rcmd.c:306 - msgid "socket: protocol failure in circuit setup\n" --msgstr "" -+msgstr "socket: napaka v protokolu pri nastavljanju vezja\n" - - #: inet/rcmd.c:330 - #, c-format - msgid "rcmd: %s: short read" --msgstr "" -+msgstr "rcmd: %s: manjkajoÄi podatki pri branju" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat ni uspel" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "ni mogoÄe odpreti" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat ni uspel" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" --msgstr "" -+msgstr "nepravi lastnik" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" --msgstr "" -+msgstr "dovoljenje za pisanje ima ne-lastnik" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" --msgstr "" -+msgstr "obstaja trda povezava" - - #: inet/ruserpass.c:170 inet/ruserpass.c:193 - msgid "out of memory" -@@ -1602,11 +1617,11 @@ msgstr "zmanjkalo pomnilnika" - - #: inet/ruserpass.c:184 - msgid "Error: .netrc file is readable by others." --msgstr "" -+msgstr "Napaka: datoteko .netrc lahko berejo drugi." - - #: inet/ruserpass.c:185 - msgid "Remove password or make file unreadable by others." --msgstr "" -+msgstr "Odstranite geslo ali napravite datoteke neberljivo za druge." - - #: inet/ruserpass.c:277 - #, c-format -@@ -1618,108 +1633,102 @@ msgid "Character out of range for UTF-8" - msgstr "Znak izven obsega UTF-8" - - #: locale/programs/charmap-dir.c:57 --#, fuzzy, c-format -+#, c-format - msgid "cannot read character map directory `%s'" --msgstr "imenika %s ni mogoÄe ustvariti" -+msgstr "imenika »%s« s preslikavami znakov ni mogoÄe prebrati" - - #: locale/programs/charmap.c:138 --#, fuzzy, c-format -+#, c-format - msgid "character map file `%s' not found" --msgstr "Datoteke z vzorcem datuma ni najti" -+msgstr "datoteke »%s« s preslikavami znakov ni najti" - - #: locale/programs/charmap.c:195 --#, fuzzy, c-format -+#, c-format - msgid "default character map file `%s' not found" --msgstr "znakovne enote niso podprte" -+msgstr "privzete datoteke »%s« s preslikavami znakov ni najti" - - #: locale/programs/charmap.c:258 - #, c-format - msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n" --msgstr "" -+msgstr "preslikava znakov »%s« ni združljiva z ASCII, okolje ne ustreza ISO C\n" - - #: locale/programs/charmap.c:337 --#, fuzzy, c-format -+#, c-format - msgid "%s: must be greater than \n" --msgstr "%s: Å¡tevilo vrstice mora biti pozitivno" -+msgstr "%s: mora biti veÄje od \n" - - #: locale/programs/charmap.c:357 locale/programs/charmap.c:374 - #: locale/programs/repertoire.c:174 --#, fuzzy, c-format -+#, c-format - msgid "syntax error in prolog: %s" --msgstr "napaka v %s: %s" -+msgstr "skladenjska napaka v preambuli: %s" - - #: locale/programs/charmap.c:358 --#, fuzzy - msgid "invalid definition" --msgstr "%s:%d: neveljavna definicija niza" -+msgstr "neveljavna definicija" - - #: locale/programs/charmap.c:375 locale/programs/locfile.c:131 - #: locale/programs/locfile.c:158 locale/programs/repertoire.c:175 --#, fuzzy - msgid "bad argument" --msgstr "neveljavni argument %s" -+msgstr "neveljavni argument" - - #: locale/programs/charmap.c:403 --#, fuzzy, c-format -+#, c-format - msgid "duplicate definition of <%s>" --msgstr "podvojena definicija sporoÄila" -+msgstr "podvojena definicija <%s>" - - #: locale/programs/charmap.c:410 - #, c-format - msgid "value for <%s> must be 1 or greater" --msgstr "" -+msgstr "vrednost <%s> mora biti 1 ali veÄ" - - #: locale/programs/charmap.c:422 - #, c-format - msgid "value of <%s> must be greater or equal than the value of <%s>" --msgstr "" -+msgstr "vrednost <%s> mora biti veÄja ali enaka od vrednosti <%s>" - - #: locale/programs/charmap.c:445 locale/programs/repertoire.c:183 --#, fuzzy, c-format -+#, c-format - msgid "argument to <%s> must be a single character" --msgstr "argument %s mora biti eno samo loÄilo" -+msgstr "argument <%s> mora biti en sam znak" - - #: locale/programs/charmap.c:471 --#, fuzzy - msgid "character sets with locking states are not supported" --msgstr "znakovne enote niso podprte" -+msgstr "nabori znakov z zaklepnimi stanji niso podprti" - - #: locale/programs/charmap.c:498 locale/programs/charmap.c:552 - #: locale/programs/charmap.c:584 locale/programs/charmap.c:678 - #: locale/programs/charmap.c:733 locale/programs/charmap.c:774 - #: locale/programs/charmap.c:815 --#, fuzzy, c-format -+#, c-format - msgid "syntax error in %s definition: %s" --msgstr "napaka v %s: %s" -+msgstr "skladenjska napaka v definiciji %s: %s" - - #: locale/programs/charmap.c:499 locale/programs/charmap.c:679 - #: locale/programs/charmap.c:775 locale/programs/repertoire.c:230 --#, fuzzy - msgid "no symbolic name given" --msgstr "Ime arhiva ni podano" -+msgstr "simbolno ime ni podano" - - #: locale/programs/charmap.c:553 --#, fuzzy - msgid "invalid encoding given" --msgstr "neveljavni padajoÄi razpon" -+msgstr "podano je neveljavno kodiranje" - - #: locale/programs/charmap.c:562 - msgid "too few bytes in character encoding" --msgstr "" -+msgstr "premalo bajtov v kodiranju znakov" - - #: locale/programs/charmap.c:564 --#, fuzzy - msgid "too many bytes in character encoding" --msgstr "preveÄ znakov v množici" -+msgstr "preveÄ bajtov v kodiranju znakov" - - #: locale/programs/charmap.c:586 locale/programs/charmap.c:734 - #: locale/programs/charmap.c:817 locale/programs/repertoire.c:296 - msgid "no symbolic name given for end of range" --msgstr "" -+msgstr "simbolno ime za konec razpona ni podano" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1728,78 +1737,77 @@ msgstr "" - #: locale/programs/repertoire.c:313 - #, c-format - msgid "%1$s: definition does not end with `END %1$s'" --msgstr "" -+msgstr "%1$s: definicija se ne zakljuÄi z »END %1$s«" - - #: locale/programs/charmap.c:643 - msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" --msgstr "" -+msgstr "definiciji CHARMAP smejo slediti le definicije WIDTH" - - #: locale/programs/charmap.c:651 locale/programs/charmap.c:714 - #, c-format - msgid "value for %s must be an integer" --msgstr "" -+msgstr "vrednost %s mora biti celo Å¡tevilo" - - #: locale/programs/charmap.c:842 --#, fuzzy, c-format -+#, c-format - msgid "%s: error in state machine" --msgstr "%s: napaka pri krajÅ¡anju" -+msgstr "%s: napaka v stroju stanj" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 - #: locale/programs/ld-numeric.c:342 locale/programs/ld-paper.c:230 - #: locale/programs/ld-telephone.c:294 locale/programs/ld-time.c:959 - #: locale/programs/locfile.c:1000 locale/programs/repertoire.c:324 --#, fuzzy, c-format -+#, c-format - msgid "%s: premature end of file" --msgstr "PredÄasen znak za konec datoteke" -+msgstr "%s: predÄasen konec datoteke" - - #: locale/programs/charmap.c:869 locale/programs/charmap.c:880 - #, c-format - msgid "unknown character `%s'" --msgstr "" -+msgstr "neznani znak »%s«" - - #: locale/programs/charmap.c:888 - #, c-format - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" --msgstr "" -+msgstr "Å¡tevilo bajtov v zaporedju bajtov za zaÄetek in konec razpona ni enako: %d proti %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 --#, fuzzy - msgid "invalid names for character range" --msgstr "neveljavno ime razreda znakov" -+msgstr "neveljavna imena za razpon znakov" - - #: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431 - msgid "hexadecimal range format should use only capital characters" --msgstr "" -+msgstr "v Å¡estnajstiÅ¡kem zapisu razpona so dovoljene le velike Ärke" - - #: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449 - #, c-format - msgid "<%s> and <%s> are invalid names for range" --msgstr "" -+msgstr "<%s> in <%s> sta neveljavni imeni za razpon" - - #: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456 - msgid "upper limit in range is smaller than lower limit" --msgstr "" -+msgstr "zgornja meja v razponu je manjÅ¡a od spodnje meje" - - #: locale/programs/charmap.c:1087 - #, fuzzy - msgid "resulting bytes for range not representable." - msgstr "vrednost %s je tolikÅ¡na, da ni strojno predstavljiva" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 - #: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159 - #, c-format - msgid "No definition for %s category found" --msgstr "" -+msgstr "Za kategorijo %s ni mogoÄe najti definicije" - - #: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184 - #: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231 -@@ -1813,50 +1821,50 @@ msgstr "" - #: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105 - #: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175 - #: locale/programs/ld-time.c:196 --#, fuzzy, c-format -+#, c-format - msgid "%s: field `%s' not defined" --msgstr "tip terminala »%s« ni doloÄen" -+msgstr "%s: polje »%s« ni doloÄeno" - - #: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210 - #: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278 - #: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117 - #, c-format - msgid "%s: field `%s' must not be empty" --msgstr "" -+msgstr "%s: polje »%s« ne sme biti prazno" - - #: locale/programs/ld-address.c:170 - #, c-format - msgid "%s: invalid escape `%%%c' sequence in field `%s'" --msgstr "" -+msgstr "%s: neveljavno ubežno zaporedje »%%%c« v polju »%s«" - - #: locale/programs/ld-address.c:221 --#, fuzzy, c-format -+#, c-format - msgid "%s: terminology language code `%s' not defined" --msgstr "tip terminala »%s« ni doloÄen" -+msgstr "%s: terminoloÅ¡ka koda jezika »%s« ni doloÄena" - - #: locale/programs/ld-address.c:246 --#, fuzzy, c-format -+#, c-format - msgid "%s: field `%s' must not be defined" --msgstr "tip terminala »%s« ni doloÄen" -+msgstr "%s: polje »%s« ne sme biti doloÄeno" - - #: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289 - #, c-format - msgid "%s: language abbreviation `%s' not defined" --msgstr "" -+msgstr "%s: okrajÅ¡ava jezika »%s« ni doloÄena" - - #: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295 - #: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341 --#, fuzzy, c-format -+#, c-format - msgid "%s: `%s' value does not match `%s' value" --msgstr "Del %s ne ustreza %s" -+msgstr "%s: vrednost »%s« ne ustreza vrednosti »%s«" - - #: locale/programs/ld-address.c:314 - #, c-format - msgid "%s: numeric country code `%d' not valid" --msgstr "" -+msgstr "%s: Å¡tevilÄna koda države »%d« ni doloÄena" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1864,9 +1872,9 @@ msgstr "" - #: locale/programs/ld-numeric.c:218 locale/programs/ld-paper.c:197 - #: locale/programs/ld-telephone.c:253 locale/programs/ld-time.c:848 - #: locale/programs/ld-time.c:890 --#, fuzzy, c-format -+#, c-format - msgid "%s: field `%s' declared more than once" --msgstr "izbira --output: polje %s je uporabljeno veÄ kot enkrat" -+msgstr "%s: polje »%s« je deklarirano veÄ kot enkrat" - - #: locale/programs/ld-address.c:440 locale/programs/ld-address.c:478 - #: locale/programs/ld-identification.c:284 locale/programs/ld-messages.c:277 -@@ -1874,507 +1882,507 @@ msgstr "izbira --output: polje %s je upo - #: locale/programs/ld-name.c:241 locale/programs/ld-numeric.c:222 - #: locale/programs/ld-telephone.c:257 locale/programs/ld-time.c:742 - #: locale/programs/ld-time.c:811 locale/programs/ld-time.c:853 --#, fuzzy, c-format -+#, c-format - msgid "%s: unknown character in field `%s'" --msgstr "zablodeli znak v doloÄilu polja" -+msgstr "%s: neznani znak v polju »%s«" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 - #: locale/programs/ld-telephone.c:276 locale/programs/ld-time.c:941 - #, c-format - msgid "%s: incomplete `END' line" --msgstr "" -+msgstr "%s: nepopolna vrstica »END«" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 - #: locale/programs/ld-numeric.c:333 locale/programs/ld-paper.c:221 - #: locale/programs/ld-telephone.c:285 locale/programs/ld-time.c:950 --#, fuzzy, c-format -+#, c-format - msgid "%s: syntax error" --msgstr "napaka v skladnji" -+msgstr "%s: napaka v skladnji" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" --msgstr "" -+msgstr "»%.*s« je že definiran v kodni preslikavi" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" --msgstr "" -+msgstr "»%.*s« je že definiran v naboru" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" --msgstr "" -+msgstr "»%.*s« je že definiran kot sortirni simbol" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" --msgstr "" -+msgstr "»%.*s« je že definiran kot sortirni element" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" --msgstr "" -+msgstr "%s: »forward« in »backward« se vzajemno izkljuÄujeta" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" --msgstr "" -+msgstr "%s: »%s« je omenjeno veÄ kot enkrat v definiciji uteži %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" --msgstr "" -+msgstr "%s: preveÄ pravil; prvi vnos jih je imel %d" - --#: locale/programs/ld-collate.c:624 --#, fuzzy, c-format -+#: locale/programs/ld-collate.c:625 -+#, c-format - msgid "%s: not enough sorting rules" --msgstr "z uporabo %s pravil za urejanje" -+msgstr "%s: pravil za urejanje ni dovolj" - --#: locale/programs/ld-collate.c:789 --#, fuzzy, c-format -+#: locale/programs/ld-collate.c:790 -+#, c-format - msgid "%s: empty weight string not allowed" --msgstr "prazen %s ni dovoljen" -+msgstr "%s: prazen utežni niz ni dovoljen" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" --msgstr "" -+msgstr "%s: uteži morajo uporabljati isti simbol za tripiÄje kot ime" - --#: locale/programs/ld-collate.c:940 --#, fuzzy, c-format -+#: locale/programs/ld-collate.c:941 -+#, c-format - msgid "%s: too many values" --msgstr "%s: PreveÄ argumentov\n" -+msgstr "%s: preveÄ vrednosti" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" --msgstr "" -+msgstr "red za »%.*s« je že definiran pri %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" --msgstr "" -+msgstr "%s: simbola za zaÄetek in konec razpona morata oznaÄevati znaka" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" --msgstr "" -+msgstr "%s: zaporedji bajtov za prvi in zadnji znak morata imeti isto dolžino" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1387 --#, fuzzy, c-format -+#: locale/programs/ld-collate.c:1388 -+#, c-format - msgid "%s: `%s' must be a character" --msgstr "razmejilnik mora biti en sam znak" -+msgstr "%s: »%s« mora biti znak" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1607 --#, fuzzy, c-format -+#: locale/programs/ld-collate.c:1608 -+#, c-format - msgid "symbol `%s' not defined" --msgstr "tip terminala »%s« ni doloÄen" -+msgstr "simbol »%s« ni doloÄen" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" --msgstr "" -+msgstr "simbol »%s« ima isto kodiranje kot" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" --msgstr "" -+msgstr "simbol »%s«" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, fuzzy, c-format - msgid "too many errors; giving up" - msgstr "preveÄ napak, nadaljevanje ni možno" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, fuzzy, c-format - msgid "%s: nested conditionals not supported" - msgstr "ukaz »e« ni podprt" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - msgid "%s: more than one 'else'" - msgstr "nobena izbira za pretvorbo ni podana" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, fuzzy, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "podvojena definicija sporoÄila" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, fuzzy, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: neznano dejanje za kontrolno toÄko" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - #, fuzzy - msgid "error while adding equivalent collating symbol" - msgstr "Napaka pri brisanju %s" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, fuzzy, c-format - msgid "duplicate definition of script `%s'" - msgstr "podvojena definicija sporoÄila" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, fuzzy, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "Neznano ime signala: %s" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, fuzzy, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: neveljavno Å¡tevilo vrstic" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, fuzzy, c-format - msgid "%s: empty category description not allowed" - msgstr "prazen %s ni dovoljen" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, fuzzy, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "Najdeno »~%c« brez ujemajoÄega »~%c«." - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, fuzzy, c-format - msgid "internal error in %s, line %u" - msgstr "interna napaka" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, fuzzy, c-format - msgid " character not in class `%s'" - msgstr "neveljavni razred znakov %s" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, fuzzy, c-format - msgid "character not defined in character map" - msgstr "razmejilni znak je dolg veÄ kot en bajt" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, fuzzy, c-format - msgid "character map `%s' already defined" - msgstr "znakovna enota" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - #, fuzzy - msgid "premature end of `translit_ignore' definition" - msgstr "PredÄasen zakljuÄek regularnega izraza" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "napaka v skladnji" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, fuzzy, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "podvojena definicija sporoÄila" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, fuzzy, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "podvojena definicija sporoÄila" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, fuzzy, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: Zapisanih samo %lu od skupno %lu bajtov" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "" -@@ -3805,17 +3813,22 @@ msgstr "" - msgid " (first)" - msgstr "" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 - #, fuzzy, c-format --msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "ni mogoÄe ugotoviti statistike %s: %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "" -@@ -3905,156 +3918,218 @@ msgstr "ni mogoÄe nastaviti Äasa za » - msgid "cannot enable socket to accept connections: %s" - msgstr "" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Ni mogoÄe odpreti imenika %s" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "" -+ -+#: nscd/connections.c:1032 - #, c-format --msgid "register trace file %s for database %s" -+msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, fuzzy, c-format - msgid "cannot write result: %s" - msgstr "Pisanje na %s ni možno" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, fuzzy, c-format - msgid "error getting caller's id: %s" - msgstr "napaka pri Äakanju na %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, fuzzy, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "imenik %s ni dosegljiv" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, fuzzy, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "korenskega imenika ni mogoÄe prestaviti na %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, fuzzy, c-format - msgid "short read while reading request: %s" - msgstr "napaka pri branju \"%s\"" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was written to" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "nalaganje deljenega predmeta »%s« ni uspelo" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, fuzzy, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "nastavitev novega uporabnika %s ni uspela" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - #, fuzzy - msgid "initial getgrouplist failed" - msgstr "neveljaven seznam skupin %s" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - #, fuzzy - msgid "getgrouplist failed" - msgstr "pisanje ni uspelo" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - #, fuzzy - msgid "setgroups failed" - msgstr "odpiranje ni uspelo" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, fuzzy, c-format - msgid "short write in %s: %s" - msgstr "napaka v %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "" -@@ -4142,7 +4217,7 @@ msgstr "" - msgid "Name Service Cache Daemon." - msgstr "" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "napaÄno Å¡tevilo argumentov" -@@ -4177,7 +4252,7 @@ msgstr "trenutnega imenika ni mogoÄe po - msgid "Could not create log file" - msgstr "%s: Ni mogoÄe ustvariti datoteke" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, fuzzy, c-format - msgid "write incomplete" - msgstr "POZOR: Arhiv nepopoln" -@@ -4192,7 +4267,7 @@ msgstr "ure s stvarnim Äasom ni moÄ pr - msgid "invalidation failed" - msgstr "pretvorba niza ni uspela" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "" -@@ -4276,35 +4351,35 @@ msgstr "trenutnega imenika ni mogoÄe po - msgid "maximum file size for %s database too small" - msgstr "" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, fuzzy, c-format - msgid "cannot write statistics: %s" - msgstr "Pisanje na %s ni možno" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, fuzzy, c-format - msgid "cannot read statistics data" - msgstr "ure s stvarnim Äasom ni moÄ prebrati" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4312,27 +4387,27 @@ msgid "" - "%15d server debug level\n" - msgstr "" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr "" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4343,7 +4418,7 @@ msgid "" - "%15u reload count\n" - msgstr "" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4386,94 +4461,94 @@ msgstr "" - msgid "Invalid numeric uid \"%s\"!" - msgstr "neveljavno Å¡tevilo %s" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - #, fuzzy - msgid "Failed to set keep-capabilities" - msgstr "nastavitev spremenljivke okolja %s ni uspela" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - #, fuzzy - msgid "Failed to initialize drop of capabilities" - msgstr "Inicializacija porazdeljene zgoÅ¡Äevalne tabele ni uspela" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - #, fuzzy - msgid "cap_init failed" - msgstr "poizvedba po statusu ni uspela" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - #, fuzzy - msgid "Failed to drop capabilities" - msgstr "Celotna ovržba privilegijev ni uspela" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - #, fuzzy - msgid "cap_set_proc failed" - msgstr "zapiranje ni uspelo" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - #, fuzzy - msgid "Failed to unset keep-capabilities" - msgstr "ni mogoÄe odnastaviti spremenljivke %s" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - #, fuzzy - msgid "Failed to start AVC thread" - msgstr "branje statistike %s ni uspelo" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - #, fuzzy - msgid "Failed to create AVC lock" - msgstr "ni mogoÄe ustvariti trde povezave %s" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - #, fuzzy - msgid "Failed to start AVC" - msgstr "branje statistike %s ni uspelo" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4524,16 +4599,16 @@ msgstr "" - msgid "Enumeration not supported on %s\n" - msgstr "Operacija ni podprta" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, fuzzy, c-format - msgid "Unknown database name" - msgstr "Neznana format datuma" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, fuzzy, c-format - msgid "Unknown database: %s\n" - msgstr "Neznano ime signala: %s" -@@ -4808,7 +4883,7 @@ msgstr "Zaklepaj ) ali \\) brez para" - msgid "No previous regular expression" - msgstr "ManjkajoÄ prejÅ¡nji regularni izraz" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "" - -@@ -7294,6 +7369,15 @@ msgstr "" - msgid "%s: Can't create directory %s: %s\n" - msgstr "imenika %s ni mogoÄe ustvariti" - -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "nobenega predmeta s statiÄnim TLS ni veÄ mogoÄe naložiti" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: v predmetu %s ni najti PLTREL\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "internih deskriptorjev ni mogoÄe ustvariti" -+ - #, fuzzy - #~ msgid "time before zero" - #~ msgstr "pred -le" -Index: glibc-2.23/po/sv.po -=================================================================== ---- glibc-2.23.orig/po/sv.po -+++ glibc-2.23/po/sv.po -@@ -5,7 +5,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.21-pre1\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2015-01-24 10:35+0100\n" - "Last-Translator: Jan Djärv \n" - "Language-Team: Swedish \n" -@@ -143,10 +143,10 @@ msgstr "" - "[UTFIL [INFIL]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -159,7 +159,7 @@ msgstr "" - "Rapportera fel eller synpunkter pÃ¥ översättningen till .\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -177,7 +177,7 @@ msgstr "" - "ÄNDAMÃ…L.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -433,11 +433,11 @@ msgstr "Misslyckades med att byta Ã¥tkom - msgid "Renaming of %s to %s failed" - msgstr "Namnbyte pÃ¥ %s till %s misslyckades" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "kan inte skapa omfÃ¥ngslista" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "delat objekt är inte öppnat" - -@@ -512,127 +512,127 @@ msgstr "kan inte skapa sökvägslista" - msgid "cannot stat shared object" - msgstr "kan inte ta status pÃ¥ delat objekt" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "kan inte öppna nollfyllnadsenhet" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "kan inte skapa delad objektdeskriptor" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "kan inte läsa fildata" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF-laddkommando är inte pÃ¥ sidgräns" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "Adress/position för ELF-laddkommando är inte pÃ¥ rätt bytegräns" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "kan inte skapa TLS-datastrukturer för första trÃ¥den" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "kan inte hantera TLS-data" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "objektfilen har inga laddbara segment" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "kan inte ladda exekverbar fil dynamiskt" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "objektfilen har ingen dynamisk sektion" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "delat objekt kan inte göras dlopen() pÃ¥" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "kan inte allokera minne för programhuvud" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "ogiltig anropare" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "kan inte ändra minnesskydd" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "kan inte skapa exekverbar stack som delat objekt kräver" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "kan inte stänga filidentifierare" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "fil för kort" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "ogiltigt ELF-huvud" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "Kodning för ELF-fildata är inte rak byteordning" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "Kodning för ELF-fildata är inte omvänd byteordning" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF-filens versionsidentitet stämmer inte med nuvarande" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF-fil har felaktig version pÃ¥ OS-ABI" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF-fil har felaktig version pÃ¥ ABI" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "utfyllnad med annat än nolltecken i e_ident" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "internt fel" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF-filens version stämmer inte med nuvarande" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "bara ET_DYN och ET_EXEC kan laddas" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "ELF-filens värde pÃ¥ \"phentsize\" är inte den förväntade" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "fel ELF-klass: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "fel ELF-klass: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "kan inte öppna delad objektfil" - -@@ -644,11 +644,11 @@ msgstr "misslyckades att mappa segment f - msgid "cannot map zero-fill pages" - msgstr "kan inte mappa nollfyllda sidor" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "fel vid relokering" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "fel vid symboluppslagning" - -@@ -656,49 +656,40 @@ msgstr "fel vid symboluppslagning" - msgid "cannot extend global scope" - msgstr "kan inte utöka globalt omrÃ¥de" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "Generationsräknare för TLS slog runt! Var snäll och rapportera detta." - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "kan inte ladda fler objekt med statiskt TLS" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "ogiltiga flaggor för dlopen()" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "inga fler namnrymder tillgängliga för dlmopen()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "ogiltig mÃ¥lnamnrymd för dlmopen()" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "kan inte allokera minne i statiskt TLS-block" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "kan inte göra segment skrivbart för relokering" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: hittade inga PLTREL i objekt %s\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: slut pÃ¥ minne för att lagra relokeringsresultat för %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "kan inte Ã¥terställa segmenträttigheter efter relokering" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "kan inte applicera extra minnesskydd efter relokering" - -@@ -706,7 +697,7 @@ msgstr "kan inte applicera extra minness - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT används i kod som inte är dynamiskt laddad" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "kan inte skapa datastrukturer för TLS" - -@@ -850,7 +841,7 @@ msgstr "Ingen länk skapad eftersom \"so - msgid "Can't open directory %s" - msgstr "Kan inte öppna katalog %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Hittar inte infil %s.\n" -@@ -981,7 +972,7 @@ msgstr "filargument saknas" - msgid "No such file or directory" - msgstr "Filen eller katalogen finns inte" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "inte en normal fil" - -@@ -1026,65 +1017,71 @@ msgstr "kan inte läsa r_debug" - msgid "cannot read program interpreter" - msgstr "kan inte läsa programtolk" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "kan inte läsa länkmappning" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "kan inte läsa objektnamn" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "kan inte allokera minne för programhuvud" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "Visa dynamiska bibliotek som laddats i processen." - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "PID" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "Exakt en parameter med process-ID krävs.\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "ogiltig process-ID \"%s\"" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "kan inte öppna %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "kan inte öppna %s/task" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "kan inte förbereda läsning av %s/task" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "ogiltig trÃ¥d-ID \"%s\"" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "kan inte binda till process %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "kan inte hämta information om process %lu" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "process %lu är inte ett ELF-program" -@@ -1119,27 +1116,27 @@ msgstr "%s är inte en delad objektfil ( - msgid "more than one dynamic segment\n" - msgstr "fler än ett dynamiskt segment\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "Kan inte ta status (fstat) pÃ¥ fil %s.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "Fil %s är tom, inte kontrollerad." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "Fil %s är för liten, inte kontrollerad." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "Kan inte minnesmappa (mmap) fil %s.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s är inte en ELF-fil, den har inte rätt magiskt tal i början.\n" -@@ -1274,10 +1271,10 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "misslyckades med att ladda delat objekt \"%s\"" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "kan inte skapa interna deskriptorer" -+msgid "cannot create internal descriptor" -+msgstr "kan inte skapa intern deskriptor" - - #: elf/sprof.c:554 - #, c-format -@@ -1344,11 +1341,6 @@ msgstr "misslyckades att mappa (mmap) pr - msgid "error while closing the profiling data file" - msgstr "fel vid stängning av profildatafilen" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "kan inte skapa intern deskriptor" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1596,27 +1588,27 @@ msgstr "uttag (socket): protokollfel i f - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: läsning gav för lite data" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "misslyckades ta status (lstat)" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "kan inte öppna" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "misslyckades ta status (fstat)" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "felaktig ägare" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "skrivbar för andra än ägaren" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "hÃ¥rdlänkad nÃ¥gonstans" - -@@ -1736,8 +1728,8 @@ msgid "no symbolic name given for end of - msgstr "inget symboliskt namn givet för slutet av intervallet" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1763,8 +1755,8 @@ msgid "%s: error in state machine" - msgstr "%s: fel i tillstÃ¥ndsmaskin" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1787,7 +1779,7 @@ msgstr "" - "antal byte för bytesekvens angivet i början respektive slutet av intervallet\n" - "skiljer sig: %d respektive %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "ogiltiga namn för teckenintervall" -@@ -1809,8 +1801,8 @@ msgstr "övre gräns i intervall är min - msgid "resulting bytes for range not representable." - msgstr "resulterande byte för intervall är inte representerbara." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1874,7 +1866,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: numerisk landkod \"%d\" är inte giltig" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1896,8 +1888,8 @@ msgstr "%s: fält \"%s\" är deklarerad - msgid "%s: unknown character in field `%s'" - msgstr "%s: okänt tecken i fält \"%s\"" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1906,12 +1898,12 @@ msgstr "%s: okänt tecken i fält \"%s\" - msgid "%s: incomplete `END' line" - msgstr "%s: ofullständig \"END\"-rad" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1921,476 +1913,476 @@ msgstr "%s: ofullständig \"END\"-rad" - msgid "%s: syntax error" - msgstr "%s: syntaxfel" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "\"%.*s\" redan definierad i teckenuppsättning" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "\"%.*s\" redan definierad i repertoar" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "\"%.*s\" redan definierad som ett kollationssymbol" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "\"%.*s\" redan definierad som ett kollationselement" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: sorteringsordning \"forward\" och \"backward\" är ömsesidigt uteslutande" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: \"%s\" är nämnd fler än en gÃ¥ng i definitionen av vikt %d" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: för mÃ¥nga regler, första delen hade bara %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: inte tillräckligt med sorteringsregler" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: tomt viktnamn är inte tillÃ¥tet" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: vikter mÃ¥ste använda samma intervallsymbol som namn" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: för mÃ¥nga värden" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "ordningsföljd för \"%.*s\" redan definierad vid %s:%Zu" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: start- och slut-symbol i ett intervall mÃ¥ste representera tecken" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: bytesekvens för första och sista tecknet mÃ¥ste ha samma längd" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: bytesekvens för första tecknet i intervallet är inte mindre än den för sista tecknet" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: symboliskt intervall fÃ¥r inte vara omedelbart efter \"order_start\"" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: symboliskt intervall fÃ¥r inte omedelbart följas av \"order_end\"" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "\"%s\" och \"%.*s\" är otillÃ¥tna namn för symboliskt intervall" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: ordningsföljd för \"%.*s\" redan definierad i %s:%Zu" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: \"%s\" mÃ¥ste vara ett enskilt tecken" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: \"position\" mÃ¥ste användas för en given nivÃ¥ i alla sektioner eller inte alls" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "symbol \"%s\" inte definierad" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "symbol \"%s\" har samma värde som" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "symbol \"%s\"" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "ingen definition av \"UNDEFINED\"" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "för mÃ¥nga fel, ger upp" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: nästlade villkor stöds inte" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, c-format - msgid "%s: more than one 'else'" - msgstr "%s: mer än en \"else\"" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: dubbla definitioner av \"%s\"" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: dubbla deklarationer för sektion \"%s\"" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: okänt tecken i namn för kollationssymbol" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: okänt tecken i namnet i ekvivalensdefinitionen" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: okänt tecken i värdet i ekvivalensdefinitionen" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: okänd symbol \"%s\" i ekvivalensdefinition" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "fel när ekvivalent kollationssymbol lades till" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "dubblerad definition för skript \"%s\"" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: okänt sektionsnamn \"%.*s\"" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: dubbla definitioner av ordningsföljd i sektion \"%s\"" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: ogiltigt antal sorteringsregler" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: flera definitioner av ordningsföljd i namnlös sektion" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: nyckelord \"order_end\" saknas" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: ordningsföljd för kollationssymbol %.*s är inte definierad ännu" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: ordningsföljd för kollationselement %.*s är inte definierad ännu" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: kan inte byta ordning efter %.*s: okänd symbol" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: nyckelord \"reorder-end\" saknas" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: sektion \"%.*s\" okänd" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: ogiltig symbol: <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: kan inte ha \"%s\" som ändpunkt pÃ¥ ellips" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: tom kategoribeskrivning är inte tillÃ¥tet" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: nyckelord \"reorder-sections-end\" saknas" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: \"%s\" utan matchande \"ifdef\" eller \"ifndef\"" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: \"endif\" utan matchande \"ifdef\" eller \"ifndef\"" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Inget namn definierat i teckenuppsättning" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "tecken L\"\\u%0*x\" i klass \"%s\" mÃ¥ste vara i klass \"%s\"" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "tecken L\"\\u%0*x\" i klass \"%s\" fÃ¥r inte vara i klass \"%s\"" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "internt fel i %s, rad %u" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "tecken \"%s\" i klass \"%s\" mÃ¥ste vara i klass \"%s\"" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "tecken \"%s\" i klass \"%s\" fÃ¥r inte vara i klass \"%s\"" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "-tecknet är inte i klass \"%s\"" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "-tecknet fÃ¥r inte vara i klass \"%s\"" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "tecken inte definierat i teckenuppsättning" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "\"digit\"-kategori har inte poster i grupper av tio" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "inga siffror för indata definierade och inga standardnamn finns i teckenuppsättningen" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "alla tecken i \"outdigit\" är inte tillgängliga i teckenuppsättningen" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "alla tecken i \"outdigit\" är inte tillgängliga i repertoaren" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "teckenklass \"%s\" redan definierad" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "implementationsbegränsning: inte fler än %Zd teckenklasser tillÃ¥tna" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "teckenuppsättning \"%s\" redan definierad" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "implementationsbegränsning: inte fler än %d teckenuppsättningar tillÃ¥tet" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: fält \"%s\" innehÃ¥ller inte exakt tio poster" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "tillvärdet i intervallet är mindre än frÃ¥nvärdet " - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "start- och slutteckensekvens för intervall mÃ¥ste ha samma längd" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "tillvärdets teckensekvens är mindre än frÃ¥nvärdets sekvens" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "för tidigt slut pÃ¥ definition för \"translit_ignore\"" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "syntaxfel" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: syntaxfel i definition av ny teckenklass" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: syntaxfel i definition av ny teckenuppsättning" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "intervall mÃ¥ste markeras med tvÃ¥ operander av samma typ" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "med symboliska namn som intervallvärden kan inte absoluta intervallet \"...\" användas" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "med UCS som intervallvärden mÃ¥ste man använda symboliska hexadecimala intervallet \"..\"" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "med teckenkoder som intervallvärden mÃ¥ste man använda absoluta intervallet \"...\"" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "dubblerad definition för mappning \"%s\"" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: sektion \"translit_start\" avslutas inte med \"translit_end\"" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: dubbla definitioner av \"default_missing\"" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "här var föregÃ¥ende definition" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: ingen representerbar definition av \"default_missing\" hittades" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: tecken \"%s\" inte definierat men behövs som standardvärde" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: tecken \"%s\" i teckenuppsättning kan inte representeras med en byte" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: tecken \"%s\" som behövs som standardvärde kan inte representeras med en byte" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "inga siffror för utdata definierade och inga standardnamn finns i teckenuppsättningen" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: transkriberingsdata för lokal \"%s\" är inte tillgänglig" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: tabell för klass \"%s\": %lu byte\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: tabell för \"%s\": %lu byte\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: tabell för teckenstorlek: %lu byte\n" -@@ -3809,17 +3801,23 @@ msgstr "lägg till ny post \"%s\" av typ - msgid " (first)" - msgstr " (första)" - --#: nscd/cache.c:285 nscd/connections.c:1000 --#, c-format --msgid "cannot stat() file `%s': %s" -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "kan inte ta status pÃ¥ fil \"%s\": %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "beskär %s cache; tid %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "överväger %s-post \"%s\", tidsgräns %" -@@ -3905,153 +3903,217 @@ msgstr "kan inte sätta uttag (socket) a - msgid "cannot enable socket to accept connections: %s" - msgstr "kan inte fÃ¥ uttag (socket) att acceptera förbindelser: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 - #, c-format --msgid "register trace file %s for database %s" -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "Kan inte öppna katalog %s" -+ -+#: nscd/connections.c:1022 -+#, fuzzy, c-format -+#| msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "registrera spÃ¥rningsfil %s för databas %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "ge Ã¥tkomst till FD %d, för %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "kan inte hantera äldre förfrÃ¥gansversion %d, nuvarande version är %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "begäran frÃ¥n %ld inte hanterad för att rättigheter saknas" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "begäran frÃ¥n \"%s\" [%ld] inte hanterad för att rättigheter saknas" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "begäran inte hanterad för att rättigheter saknas" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "kan inte skriva resultat: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "kunde inte hämta anropandes identitet: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "kan inte öppna /proc/slef/cmdline: %s, kopplar ur paranoialäge" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "kan inte läsa /proc/self/cmdline: %s, kopplar ur paranoialäge" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "kan inte byta till föregÃ¥ende UID: %s; kopplar ur paranoialäge" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "kan inte byta till föregÃ¥ende GID: %s; kopplar ur paranoialäge" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "kan inte byta till föregÃ¥ende arbetskatalog: %s; kopplar ur paranoialäge" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "Ã¥terstart misslyckades: %s; kopplar ur paranoialäge" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "kan inte byta aktuell katalog till \"/\": %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "fattas data vid läsning av begäran: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "nyckellängd i begäran för lÃ¥ng: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "fattas data vid läsning av begäransnyckel: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: begäran mottagen (Version = %d) frÃ¥n PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: begäran mottagen (Version = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "misslyckades med att ladda delat objekt \"%s\"" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "inaktiverade inotify efter läsfel %d" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "kan inte initiera villkorsvariabel" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "kunde inte starta städtrÃ¥d; avslutar" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "kunde inte starta nÃ¥gon arbetstrÃ¥d; avslutar" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "Misslyckades att köra nscd som användare \"%s\"" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "första getgrouplist misslyckades" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist misslyckades" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups misslyckades" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "ofullständig skrivning i %s: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "Hittar inte \"%s\" i gruppcache!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "Omladdar \"%s\" i gruppcache!" -@@ -4139,7 +4201,7 @@ msgstr "Använd separat cache för varje - msgid "Name Service Cache Daemon." - msgstr "Namntjänst cache-demon" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "fel antal argument" -@@ -4172,7 +4234,7 @@ msgstr "kan inte byta aktuell katalog ti - msgid "Could not create log file" - msgstr "Kunde inte skapa loggfil" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "ofullständig skrivning" -@@ -4187,7 +4249,7 @@ msgstr "kan inte läsa ogiltigförklarin - msgid "invalidation failed" - msgstr "ogiltigförklaring misslyckades" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Bara root har tillÃ¥telse att använda denna operation!" -@@ -4272,35 +4334,35 @@ msgstr "kan inte hämta aktuell katalog: - msgid "maximum file size for %s database too small" - msgstr "maximal filstorlek för \"%s\"-databasen är för liten" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "kan inte skriva statistik: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "ja" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "nej" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Bara root eller %s har tillÃ¥telse att använda denna operation!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd kör inte!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "kan inte läsa statistikdata" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4311,27 +4373,27 @@ msgstr "" - "\n" - "%15d servers felsökningsläge\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus servers körtid\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus servers körtid\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus servers körtid\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus servers körtid\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4348,7 +4410,7 @@ msgstr "" - "%15lu omstart internt\n" - "%15u antal omläsningar\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4414,85 +4476,85 @@ msgstr "Omladdar \"%s\" i lösenordscach - msgid "Invalid numeric uid \"%s\"!" - msgstr "Ogiltigt numeriskt användarid (uid) \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "Misslyckades med att öppna en förbindelse till undersystemet för granskning (audit): %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Misslyckades med att sätta \"keep\"-kapabiliteter" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) misslyckades" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "Misslyckades med att initiera borttagning av kapabiliteter" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init misslyckades" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Misslyckades med att ta bort kapabiliteter" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc misslyckades" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Misslyckades med att ta bort \"keep\"-kapabiliteter" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Misslyckades med att ta reda pÃ¥ om kärnan stödjer SELinux" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "Misslyckades med att starta AVC-trÃ¥d" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "Misslyckade med att skapa AVC-lÃ¥s" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "Misslyckades med att starta AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "Access Vector Cache (AVC) startad" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "Fel när policy för odefinierade objektklasser eller rättigheter hämtades" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." - msgstr "Fel när säkerhetsklass för nscd hämtades" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "Fel vid översättning av rättighetsnamn \"%s\" till en accessvektorbit." - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "Kunde inte hämta kontext för uttagsparter (socket peer)" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "Kunde inte hämta kontext för nscd" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "Kunde inte hämta \"sid\" frÃ¥n kontext" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4554,16 +4616,16 @@ msgstr "Hämta poster frÃ¥n den administ - msgid "Enumeration not supported on %s\n" - msgstr "Uppräkning stöds inte pÃ¥ %s\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Okänt databasnamn" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Databaser som stöds:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Okänd databas: %s\n" -@@ -4843,7 +4905,7 @@ msgstr "Obalanserade ) eller \\)" - msgid "No previous regular expression" - msgstr "Inget föregÃ¥ende reguljärt uttryck" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parameter är tom eller inte satt" - -@@ -7214,3 +7276,12 @@ msgstr "för mÃ¥nga eller för lÃ¥nga ti - #, c-format - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: Kan inte skapa katalog %s: %s\n" -+ -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "kan inte ladda fler objekt med statiskt TLS" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: hittade inga PLTREL i objekt %s\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "kan inte skapa interna deskriptorer" -Index: glibc-2.23/po/tr.po -=================================================================== ---- glibc-2.23.orig/po/tr.po -+++ glibc-2.23/po/tr.po -@@ -6,7 +6,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.7\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2007-11-19 11:17+0200\n" - "Last-Translator: Nilgün Belma Bugüner \n" - "Language-Team: Turkish \n" -@@ -145,10 +145,10 @@ msgstr "" - "[ÇIKTI-DOSYASI [GÄ°RDÄ°-DOSYASI]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, fuzzy, c-format -@@ -164,7 +164,7 @@ msgstr "" - "Çeviri hatalarını adresine bildiriniz.\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -182,7 +182,7 @@ msgstr "" - "UYGUNLUÄžU için bile garanti verilmez.\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -465,11 +465,11 @@ msgstr "%s eriÅŸim hakları %#o olarak d - msgid "Renaming of %s to %s failed" - msgstr "%s'in ismi %s olarak deÄŸiÅŸtirilemedi" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "etki alanı listesi oluÅŸturulamıyor" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "paylaşımlı nesne açık deÄŸil" - -@@ -542,127 +542,127 @@ msgstr "dosya arama yolu dizisi oluÅŸtur - msgid "cannot stat shared object" - msgstr "paylaşımlı nesne durumlanamıyor" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "sıfırlar içeren aygıt açılamaz" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "paylaşımlı nesne tanımlayıcı oluÅŸturulamıyor" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "dosya verisi okunamıyor" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF yükleme komutu hizalaması sayfa-hizalamalı deÄŸil" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF yükleme komutu adresi/baÅŸvurusu gereÄŸi gibi hizalanamıyor" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "ilk kanak için TLS veri yapıları oluÅŸturulamıyor" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "TLS verisi alınamıyor" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "nesne dosyasının yüklenebilir segmanı yok" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "çalıştırılabilir dosya dinamik olarak yüklenemiyor" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "nesne dosyasının dinamik bölümü yok" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "paylaşımlı nesne dlopen()'lanamıyor" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "uygulama baÅŸlığı için bellek ayrılamadı" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "çaÄŸrıcı geçersiz" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "bellek korumaları deÄŸiÅŸtirilemiyor" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "paylaşımlı nesnenin gerektirdiÄŸi çalıştırılabilir yığıt etkinleÅŸtirilemiyor" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "dosya tanıtıcı kapatılamıyor" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "dosya çok küçük" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "ELF baÅŸlığı geçersiz" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "ELF dosyası verisinin kodlaması en-kıymetli-bayt-ilk (big-endian) deÄŸil" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "ELF dosyası verisinin kodlaması en-kıymetli-bayt-son (little-endian) deÄŸil" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF dosyası sürüm kimliÄŸi mevcut biriyle eÅŸleÅŸmiyor" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF dosyası OS ABI geçersiz" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF dosyası ABI sürümü geçersiz" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "iç hata" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF dosyası sürümü mevcut biriyle eÅŸleÅŸmiyor" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "sadece ET_DYN ve ET_EXEC yüklü olabilir" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "ELF dosyasının phent uzunluÄŸu beklenen uzunlukta deÄŸil" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "yanlış ELF sınıfı: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "yanlış ELF sınıfı: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "paylaşımlı nesne dosyası açılamıyor" - -@@ -674,11 +674,11 @@ msgstr "parça paylaşımlı nesneden eÅ - msgid "cannot map zero-fill pages" - msgstr "sıfırlar içeren sayfalar eÅŸleÅŸtirilemez" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "yeniden konumlama hatası" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "simge arama hatası" - -@@ -686,51 +686,40 @@ msgstr "simge arama hatası" - msgid "cannot extend global scope" - msgstr "genel kapsam geniÅŸletilemiyor" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "TLS üretecinin sayacı baÅŸa döndü! Bunu lütfen bildirin." - --#: elf/dl-open.c:542 --#, fuzzy --#| msgid "cannot allocate memory in static TLS block" --msgid "cannot load any more object with static TLS" --msgstr "duraÄŸan TLS bloÄŸunda bellek ayrılamıyor" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "dlopen() için kip geçersiz" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "dlmopen() için artık isim alanı kalmadı" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "dlmopen() için hedef isim alanı geçersiz" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "duraÄŸan TLS bloÄŸunda bellek ayrılamıyor" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "yeniden konumlama için parça yazılabilir yapılamıyor" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: %s nesnesinde PLTREL yok\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: %s için yeniden ayırma iÅŸleminin sonuçlarını saklamak için bellek yetersiz\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "reloc iÅŸleminden sonra prot segmanı eski haline getirilemedi" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "yeniden ayırma iÅŸleminden sonra ek bellek koruması uygulanamaz" - -@@ -738,7 +727,7 @@ msgstr "yeniden ayırma iÅŸleminden sonr - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "RTLD_NEXT kullanılan kod dinamik olarak yüklenmedi" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "TLS veri yapıları oluÅŸturulamıyor" - -@@ -884,7 +873,7 @@ msgstr "%s için kitaplık ismi bulunama - msgid "Can't open directory %s" - msgstr "%s dizini açılamıyor" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "Girdi dosyası %s bulunamadı.\n" -@@ -1029,7 +1018,7 @@ msgstr "dosya nitelikleri eksik" - msgid "No such file or directory" - msgstr "Böyle bir dosya ya da dizin yok" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "düzenli dosya deÄŸil" - -@@ -1079,73 +1068,79 @@ msgstr "baÅŸlık okunamıyor" - msgid "cannot read program interpreter" - msgstr "arÅŸiv baÅŸlığı okunamıyor" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, fuzzy, c-format - #| msgid "cannot read file data" - msgid "cannot read link map" - msgstr "dosya verisi okunamıyor" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, fuzzy, c-format - #| msgid "cannot read header" - msgid "cannot read object name" - msgstr "baÅŸlık okunamıyor" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "uygulama baÅŸlığı için bellek ayrılamadı" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, fuzzy, c-format - #| msgid "invalid pointer size" - msgid "invalid process ID '%s'" - msgstr "imleyici uzunluÄŸu geçersiz" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s" - msgstr "`%s' açılamıyor" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, fuzzy, c-format - #| msgid "cannot open `%s'" - msgid "cannot open %s/task" - msgstr "`%s' açılamıyor" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, fuzzy, c-format - #| msgid "cannot create searchlist" - msgid "cannot prepare reading %s/task" - msgstr "arama listesi oluÅŸturulamıyor" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, fuzzy, c-format - #| msgid "invalid ELF header" - msgid "invalid thread ID '%s'" - msgstr "ELF baÅŸlığı geçersiz" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, fuzzy, c-format - #| msgid "cannot find C preprocessor: %s \n" - msgid "cannot attach to process %lu" - msgstr "C ön iÅŸlemci bulunamıyor: %s \n" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "" -@@ -1180,27 +1175,27 @@ msgstr "%s paylaşımlı nesne dosyası - msgid "more than one dynamic segment\n" - msgstr "bir dinamik parçadan fazla\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "%s dosyası fstat yapılamıyor.\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "%s dosyası boÅŸ olduÄŸundan denetlenemiyor." - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "%s dosyası çok küçük, kontrol edilemedi." - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "%s dosyası mmap yapılamıyor.\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s bir ELF dosyası deÄŸil - BaÅŸlangıcındaki dosya tanımı hatalı.\n" -@@ -1331,10 +1326,10 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "paylaşımlı nesne `%s' yüklenemedi" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" --msgstr "iç tanıtıcılar oluÅŸturulamıyor" -+msgid "cannot create internal descriptor" -+msgstr "iç tanıtıcı oluÅŸturulamıyor" - - #: elf/sprof.c:554 - #, c-format -@@ -1401,11 +1396,6 @@ msgstr "ÅŸekillendirme verisi dosyası m - msgid "error while closing the profiling data file" - msgstr "ÅŸekillendirici verisi dosyası kapatılırken hata" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "iç tanıtıcı oluÅŸturulamıyor" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1663,27 +1653,27 @@ msgstr "soket: devre ayarında protokol - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: kısa okuma" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat baÅŸarısız" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "açılamıyor" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat baÅŸarısız" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "Sahip hatalı" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "sahibinden baÅŸkası yazabilir" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "bir yere sabit baÄŸlı" - -@@ -1803,8 +1793,8 @@ msgid "no symbolic name given for end of - msgstr "kapsam sonu için sembolik isim verilmemiÅŸ" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1830,8 +1820,8 @@ msgid "%s: error in state machine" - msgstr "%s: durum motorunda hata" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1852,7 +1842,7 @@ msgstr "`%s' karakteri bilinmiyor" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "aralığın başındaki ve sonundaki bayt dizilerideki baytların sayısı aynı deÄŸil: %d ve %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "karakter kapsamı için geçersiz isimler" -@@ -1874,8 +1864,8 @@ msgstr "aralığın üst sınırı alt s - msgid "resulting bytes for range not representable." - msgstr "sonuçlanan baytlar kapsam için gösterilebilir deÄŸil." - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1939,7 +1929,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: sayısal ülke kodu `%d' geçersiz" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1961,8 +1951,8 @@ msgstr "%s: `%s' alanı bir kereden fazl - msgid "%s: unknown character in field `%s'" - msgstr "%s: `%s' alanında bilinmeyen karakter" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1971,12 +1961,12 @@ msgstr "%s: `%s' alanında bilinmeyen ka - msgid "%s: incomplete `END' line" - msgstr "%s: tamamlanmamış `END' satırı" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1986,477 +1976,477 @@ msgstr "%s: tamamlanmamış `END' satır - msgid "%s: syntax error" - msgstr "%s: sözdizimi hatası" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' karakter eÅŸlem olarak zaten atanmış" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' repertuvar olarak zaten atanmış" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' karşılaÅŸtırma sembolü olarak zaten atanmış" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' karşılaÅŸtırma elemanı olarak zaten atanmış" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: `forward' ve `backward' karşılıklı olarak bir diÄŸerini dışlar" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s:`%s' %d ağırlıklı tanımda bir kereden fazla anıldı" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: çok fazla kural var; sadece ilk girdide kural sayısı %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: sıralama kuralları yetersiz" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: boÅŸ ağırlık dizgesine izin verilmez" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: ağırlıklar isim olarak aynı elips sembolünü kullanmalıdır" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: çok fazla deÄŸer var" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "`%.*s' için sıralama zaten %s:%Zu içinde atanmış" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: bir kapsamın baÅŸlangıç ve bitiÅŸ sembolleri, karakterleri temsil etmelidir" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: ilk ve son karakterin bayt serisi aynı uzunlukta olmalı" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: aralığın ilk karakterinin bayt dizisi son karakterininkinden daha düşük deÄŸil" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: sembolik kapsam elipsleri `order_start' ın hemen ardından gelmemelidir" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: sembolik kapsam elipslerinin hemen ardından `order_end' gelmemelidir" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' ve `%.*s' simgesel aralık için geçerli isimler deÄŸil" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: `%.*s' için abecesel sıra zaten %s:%Zu içinde atanmış" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' bir karakter olmalı" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `position' tüm alt bölümlerde özel bir düzey için kullanılmış olmalı ya da hiç bulunmamalı" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "`%s' sembolü atanmamış" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "`%s' sembolü bununla aynı kodlamaya sahip:" - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "`%s' sembolü" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "`UNDEFINED' tanımı yok" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "çok fazla hata: bırakılıyor" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: iç içe koÅŸullu ifadeler desteklenmiyor" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: birden fazla 'else' belirtilmiÅŸ" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: `%s' tanımı tekrarlanmış" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: `%s' bölüm bildirimi tekrarlanmış" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: karşılaÅŸtırma sembolü isminde bilinmeyen karakter" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: eÅŸdeÄŸer tanımlama isminde bilinmeyen karakter" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: eÅŸdeÄŸer tanımlama deÄŸerinde bilinmeyen karakter" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: eÅŸdeÄŸer tanımlamada bilinmeyen sembol: `%s'" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "eÅŸdeÄŸer karşılaÅŸtırma sembolünü eklerken hata" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "`%s' betiÄŸinin ataması tekrarlanmış" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: bölüm ismi `%.*s' bilinmiyor" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: `%s' alt bölümünde çok sayıda sıralama tanımı" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: sıralama kurallarının sayısı geçersiz" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: isimsiz alt bölümde çok sayıda sıralama tanımı" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: `order_end' anahtar-sözcüğü kayıp" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: karşılaÅŸtırma sembolü %.*s için abecesel sıra henüz atanmamış" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: karşılaÅŸtırma elemanı %.*s için abecesel sıra henüz atanmamış" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: %.*s sembolünden sonra tekrar sıralanamıyor: sembol bilinmiyor" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: `reorder_end' anahtar-sözcüğü kayıp" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: `%.*s' alt bölümü bilinmiyor" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: hatalı sembol <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: `%s' elips kapsamının sonu olamıyor" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: boÅŸ kategori açıklamasına izin verilmez" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: `reorder_section_end' anahtar-sözcüğü kayıp" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'ifdef' veya 'ifndef' ile eÅŸleÅŸmeyen '%s'" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s: 'ifdef' veya 'ifndef' ile eÅŸleÅŸmeyen 'endif'" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "Karakter eÅŸleÅŸme listesinde karakter kümesi ismi belirtilmemiÅŸ" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "L'\\u%0*x' karakteri `%s' sınıfında, `%s' sınıfında olmalı" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "L'\\u%0*x' karakteri `%s' sınıfında, `%s' sınıfında olmamalı" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "%s, %u satırında içsel hata" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "`%s' karakteri `%s' sınıfı yerine `%s' sınıfında olmalı" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "`%s' karakteri `%s' sınıfında ama `%s' sınıfında olmamalı" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr " karakteri `%s' sınıfında deÄŸil" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr " karakteri `%s' sınıfında olmamalı" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr " karakteri karakter eÅŸlemde atanmamış" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "`digit' kategorisi 10 gruptan hiç birinde girdiye sahip deÄŸil" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "karakter eÅŸleÅŸme listesinde standart isimlerin hiç biri ve atanmış girdi rakamları yok" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "`outdigit' içinde kullanılan karakterlerin bir kısmı karakter eÅŸleÅŸme listesinde mevcut" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "`outdigit' içinde kullanılan karakterlerin bir kısmı repertuvarda mevcut" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "`%s' karakter sınıfı zaten atanmış" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "tamamlama sınırı: %Zd karakterden fazla olmayan sınıflara izin verilmedi" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "`%s' karakter eÅŸlem zaten atanmış" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "tamamlama sınırı: %d karakterden fazla olmayan karakter eÅŸleÅŸme listesine izin verilmedi" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: `%s' alanı tamı tamına 10 girdi içeremez" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "kapsamdaki `to' deÄŸeri `from' deÄŸerinden daha küçük" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "kapsamın baÅŸlangıç ve bitiÅŸ karakter zincirleri aynı uzunlukta olmalı" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "karakter dizisindeki `to' deÄŸeri `from' deÄŸerinden daha küçük" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "`translit_ignore' tanımının sonu eksik" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "sözdizimi hatası" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: yeni karakter sınıfının tanımında sözdizimi hatası" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: yeni karakter eÅŸlemleri tanımında sözdizimi hatası" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "elips kapsamı aynı türde iki veri öğesi ile sınırlanmış olmalıdır" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "mutlak elips `...' sembolik isim kapsamındaki deÄŸerlerle kullanılmamalı" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "onaltılık sembolik elips `..' UCS kapsam deÄŸerlerinden biriyle kullanılmalı" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "mutlak elips `...' karakter kod deÄŸerlerinden biriyle kullanılmalı" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "`%s' eÅŸlemi için atama tekrarlanmış" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: `translit_start' bölümü `translit_end' ile bitmiyor" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: `default_missing' tanımı tekrarlanmış" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "önceki tanım burasıydı" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: temsil edilebilir `default_missing' ataması bulunamadı" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: öntanımlı deÄŸer olarak gerekli olmasına raÄŸmen `%s' karakteri atanmamış" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: karakter eÅŸlem listesinde `%s' karakteri bir bayt ile temsil edilemez" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: öntanımlı deÄŸer olarak gerekli olan `%s' karakteri tek bayt ile temsil edilemez" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "karakter eÅŸleÅŸme listesinde standart isimlerin hiç biri ve atanmış çıktı rakamları yok" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: `%s' yerelinden baÅŸka bir dilin alfabesinde yazma verisi yok" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: \"%s\" sınıfının tablosu: %lu bayt\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: \"%s\" eÅŸlemlerinin tablosu: %lu bayt\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: geniÅŸlik için tablo: %lu bayt\n" -@@ -3932,17 +3922,23 @@ msgstr "%3$s için %2$s türündeki yeni - msgid " (first)" - msgstr " (ilk)" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot open database file `%s': %s" -+msgid "checking for monitored file `%s': %s" -+msgstr "`%s' veritabanı dosyası açılamıyor: %s" -+ -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "`%s' dosyası stat() olamıyor: %s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "%s arabelleÄŸi budanıyor; süre %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "girdi \"%2$s\" %1$s olarak ele elınıyor, zamanaşımı %3$" -@@ -4031,160 +4027,222 @@ msgstr "exec üzerinde kapatılacak soke - msgid "cannot enable socket to accept connections: %s" - msgstr "baÄŸlantıları kabul etmek üzere soket etkinleÅŸtirilemiyor: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "%s dizini açılamıyor" -+ -+#: nscd/connections.c:1022 - #, fuzzy, c-format - #| msgid "no more memory for database '%s'" --msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "veritabanı '%s' için bellek kalmadı" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "%2$s için dosya tanıtıcı %1$d'ye eriÅŸim saÄŸlar" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "eski istem sürümü %d elde edilemedi; mevcut sürüm %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "sonuç yazılamıyor: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "çaÄŸrıcı kimliÄŸi alınırken hata: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "/proc/self/cmdline açılamadı: %s; paranoya kipi iptal ediliyor" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "/proc/self/cmdline okunamadı: %s; paranoya kipi iptal ediliyor" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "eski UID'e dönülemedi: %s; paranoya kipi iptal ediliyor" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "eski GID'e dönülemedi: %s; paranoya kipi iptal ediliyor" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "eski çalışma dizinine dönülemiyor: %s; paranoya kipi iptal ediliyor" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "re-exec baÅŸarısız: %s; paranoya kipi iptal ediliyor" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "çalışma dizini \"/\" yapılamadı: %s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "istenen okuma kısa: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "istenen anahtar/tuÅŸ uzunluÄŸu fazla: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "istenen anahtar/tuÅŸ okunurken kısa okuma: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: %2$ld numaralı süreçden istek alındı (Sürüm = %1$d)" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: istek alındı (Sürüm = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, adding watch" - msgstr "" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "paylaşımlı nesne `%s' yüklenemedi" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "" -+ -+#: nscd/connections.c:2543 - #, fuzzy - #| msgid "cannot initialize archive file" - msgid "could not initialize conditional variable" - msgstr "arÅŸiv dosyası ilklendirilemiyor" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - #, fuzzy - #| msgid "could only start %d threads; terminating" - msgid "could not start clean-up thread; terminating" - msgstr "sadece %d evre baÅŸlatılabilir; sonlanıyor" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - #, fuzzy - #| msgid "could only start %d threads; terminating" - msgid "could not start any worker thread; terminating" - msgstr "sadece %d evre baÅŸlatılabilir; sonlanıyor" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "nscd '%s' kullanıcısı olarak çalıştırılamadı" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "ilk getgrouplist baÅŸarısız" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist baÅŸarısız" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups baÅŸarısız" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "%s içinde kısa yazma: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "\"%s\" grup arabelleÄŸinde yok!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "\"%s\" grup arabelleÄŸine yeniden yükleniyor!" -@@ -4278,7 +4336,7 @@ msgstr "Her kullanıcı için ayrı arab - msgid "Name Service Cache Daemon." - msgstr "Name Service Cache Daemon." - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "argüman sayısı hatalı" -@@ -4312,7 +4370,7 @@ msgstr "çalışma dizini \"/\" yapılam - msgid "Could not create log file" - msgstr "Günlük dosyası oluÅŸturulamadı" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "yazma tamamlanamıyor" -@@ -4327,7 +4385,7 @@ msgstr "geçersizleÅŸtirme ACK'sı okuna - msgid "invalidation failed" - msgstr "geçersizleÅŸtirme baÅŸarısız" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "Bu seçenek sadece root tarafından kullanılabilir!" -@@ -4410,35 +4468,35 @@ msgstr "çalışılmakta olan dizin alı - msgid "maximum file size for %s database too small" - msgstr "%s veritabanı için azami dosya boyu çok küçük" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "istatistikler yazılamıyor: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "evet" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "hayır" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "Bu seçenek sadece root veya %s tarafından kullanılabilir!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd çalışmıyor!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "istatistik verileri okunamıyor" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4449,27 +4507,27 @@ msgstr "" - "\n" - "%15d sunucu hata ayıklama seviyesi\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus sunucu çalışma zamanı\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus sunucu çalışma zamanı\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus sunucu çalışma zamanı\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus sunucu çalışma zamanı\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, fuzzy, c-format - #| msgid "" - #| "%15d current number of threads\n" -@@ -4491,7 +4549,7 @@ msgstr "" - "%15s paranoya kipi etkin\n" - "%15lu dahili yeniden baÅŸlatma\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4557,87 +4615,87 @@ msgstr "\"%s\" parola arabelleÄŸine yeri - msgid "Invalid numeric uid \"%s\"!" - msgstr "\"%s\" kullanıcı numarası geçersiz!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "denetim altsistemine baÄŸlantı kurulamadı: %m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "Tutma yetenekleri ayarlanamadı" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) baÅŸarısız" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "yeteneklerin kaldırılması baÅŸlatılamadı" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init baÅŸarısız" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "Yetenekler kaldırılamadı" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc baÅŸarısız" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "Tutma yetenekleri kaldırılamadı" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "Çekirdek SELinux'u destekliyor mu, saptanamadı." - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "EVA evresi baÅŸlatılamadı" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "EVA kilidi oluÅŸturulamadı" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "EVA baÅŸlatılamadı" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "EriÅŸim Vektörleri ArabelleÄŸi (EVA) baÅŸlatıldı" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - #| msgid "Error getting context of nscd" - msgid "Error getting security class for nscd." - msgstr "nscd baÄŸlamı alınırken hata" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "soket çifti baÄŸlamı alınırken hata" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "nscd baÄŸlamı alınırken hata" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "BaÄŸlamdan sid alınırken hata" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4701,16 +4759,16 @@ msgstr "" - msgid "Enumeration not supported on %s\n" - msgstr "Numaralama %s ile desteklenmiyor\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "Bilinmeyen veritabanı ismi" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "Desteklenen veritabanları:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "Bilinmeyen veritabanı: %s\n" -@@ -5006,7 +5064,7 @@ msgstr ") ya da \\) eÅŸleÅŸmiyor" - msgid "No previous regular expression" - msgstr "Önceki düzenli ifade yok" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "parametre ya null ya da verilmemiÅŸ" - -@@ -7454,6 +7512,9 @@ msgstr "%s: %s dizini oluÅŸturulamıyor: - #~ msgid "xtrace: option \\`$1' requires an argument.\\n" - #~ msgstr "xtrace: \\`$1' seçeneÄŸi bir argümanla kullanılır\\n" - -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: %s nesnesinde PLTREL yok\n" -+ - #~ msgid "Can't open configuration file %s" - #~ msgstr "Yapılandırma dosyası %s açılamıyor" - -@@ -7466,6 +7527,9 @@ msgstr "%s: %s dizini oluÅŸturulamıyor: - #~ " adresine bakınız.\n" - #~ "Çeviri hatalarını adresine bildiriniz.\n" - -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "iç tanıtıcılar oluÅŸturulamıyor" -+ - #~ msgid "%s: stopping date is invalid in string %Zd in `era' field" - #~ msgstr "%s: `era' alanındaki %Zd dizgesinde bitiÅŸ tarihi geçersiz" - -@@ -7484,6 +7548,9 @@ msgstr "%s: %s dizini oluÅŸturulamıyor: - #~ msgid "memusage: option \\`$1' requires an argument" - #~ msgstr "memusage: \\`$1' seçeneÄŸi bir argümanla kullanılır" - -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "`%s' dosyası stat() olamıyor: %s" -+ - #~ msgid "invalid value for 'reload-count': %u" - #~ msgstr "'reload-count' için deÄŸer geçersiz: %u" - -Index: glibc-2.23/po/zh_CN.po -=================================================================== ---- glibc-2.23.orig/po/zh_CN.po -+++ glibc-2.23/po/zh_CN.po -@@ -1,19 +1,26 @@ --# SOME DESCRIPTIVE TITLE. --# Copyright (C) 2002, 2007 Free Software Foundation, Inc. --# LI Daobing , 2007. -+# zh_CN translation for GNU libc. -+# Copyright (C) 2000, 2002, 2005, 2007-2008, 2011 Free Software Foundation, Inc. -+# This file is distributed under the same license as the glibc package. -+# Tung-Han Hsieh , 2000. -+# Yuan-Chung Cheng , 2000. - # Wang Li , 2002. -+# Wei-Lun Chao , 2005, 2008, 2011. -+# LI Daobing , 2007. -+# Wei-Lun Chao , 2012, 2013. -+# Mingye Wang , 2015. - # - msgid "" - msgstr "" --"Project-Id-Version: libc 2.7\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" --"PO-Revision-Date: 2007-11-18 12:34+0800\n" --"Last-Translator: LI Daobing \n" -+"Project-Id-Version: libc 2.22-pre1\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"PO-Revision-Date: 2015-09-19 19:13-0400\n" -+"Last-Translator: Mingye Wang \n" - "Language-Team: Chinese (simplified) \n" - "Language: zh_CN\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" -+"X-Generator: Poedit 1.8.4\n" - - #: argp/argp-help.c:227 - #, c-format -@@ -58,7 +65,7 @@ msgstr "将错误报告给 %s。\n" - - #: argp/argp-parse.c:101 - msgid "Give this help list" --msgstr "给出该系统求助列表" -+msgstr "给出此帮助列表" - - #: argp/argp-parse.c:102 - msgid "Give a short usage message" -@@ -76,7 +83,7 @@ msgstr "设定程åºå" - - #: argp/argp-parse.c:105 - msgid "SECS" --msgstr "" -+msgstr "秒数" - - #: argp/argp-parse.c:106 - msgid "Hang for SECS seconds (default 3600)" -@@ -88,7 +95,7 @@ msgstr "打å°ç¨‹åºç‰ˆæœ¬å·" - - #: argp/argp-parse.c:183 - msgid "(PROGRAM ERROR) No version known!?" --msgstr "(程åºé”™è¯¯) ä¸çŸ¥é“版本å·ï¼ï¼Ÿ" -+msgstr "(程åºé”™è¯¯) 版本å·æœªçŸ¥ï¼ï¼Ÿ" - - #: argp/argp-parse.c:623 - #, c-format -@@ -105,12 +112,13 @@ msgid "%s%s%s:%u: %s%sUnexpected error: - msgstr "%s%s%s:%u:%s%sæ„外的错误:%s。\n" - - #: assert/assert.c:101 --#, fuzzy, c-format --#| msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" -+#, c-format - msgid "" - "%s%s%s:%u: %s%sAssertion `%s' failed.\n" - "%n" --msgstr "%s%s%s:%u:%s%s断言“%sâ€å¤±è´¥ã€‚\n" -+msgstr "" -+"%s%s%s:%u:%s%så‡è®¾ ‘%s’ 失败。\n" -+"%n" - - #: catgets/gencat.c:110 - msgid "Create C header file NAME containing symbol definitions" -@@ -129,6 +137,8 @@ msgid "" - "Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" - "is -, output is written to standard output.\n" - msgstr "" -+"äº§ç”Ÿæ¶ˆæ¯ catelog。\\v如果输入文件å是 -, 将从标准输入读å–输入。\n" -+"如果输出文件å是 -, 则输出将写到标准输出去。\n" - - #: catgets/gencat.c:123 - msgid "" -@@ -139,10 +149,10 @@ msgstr "" - "[输出文件 [输入文件]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -150,9 +160,11 @@ msgid "" - "For bug reporting instructions, please see:\n" - "%s.\n" - msgstr "" -+"è¦çŸ¥é“错误报告指令,请å‚看:\n" -+"%s。\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -164,9 +176,12 @@ msgid "" - "This is free software; see the source for copying conditions. There is NO\n" - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" - msgstr "" -+"Copyright (C) %s 自由软件基金会。\n" -+"这是一个自由软件;请è§æºä»£ç çš„授æƒæ¡æ¬¾ã€‚本软件ä¸å«ä»»ä½•æ²¡æœ‰æ‹…ä¿ï¼›ç”šè‡³ä¸ä¿è¯é€‚销性\n" -+"或者适åˆæŸäº›ç‰¹æ®Šç›®çš„。\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -229,7 +244,7 @@ msgstr "无效的行" - - #: catgets/gencat.c:820 - msgid "malformed line ignored" --msgstr "" -+msgstr "忽略格å¼é”™è¯¯çš„è¡Œ" - - #: catgets/gencat.c:984 catgets/gencat.c:1025 - #, c-format -@@ -265,7 +280,7 @@ msgstr "ä¸è¦å¯¹è¾“出进行缓冲" - - #: debug/pcprofiledump.c:58 - msgid "Dump information generated by PC profiling." --msgstr "" -+msgstr "将产生于 PC 测速评估的数æ®å€¾å¸å‡ºæ¥" - - #: debug/pcprofiledump.c:61 - msgid "[FILE]" -@@ -288,20 +303,16 @@ msgstr "无效的指针大å°" - - #: debug/xtrace.sh:26 debug/xtrace.sh:44 - msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" --msgstr "" -+msgstr "用法:xtrace [选项]… ç¨‹åº [PROGRAMOPTION]…\\n" - - #: debug/xtrace.sh:32 elf/sotruss.sh:56 elf/sotruss.sh:67 elf/sotruss.sh:135 - #: malloc/memusage.sh:26 --#, fuzzy --#| msgid "Try `%s --help' or `%s --usage' for more information.\n" - msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n" --msgstr "试用“%s --helpâ€æˆ–“%s --usageâ€ä»¥èŽ·å–更多信æ¯ã€‚\n" -+msgstr "请å°è¯• \\ ‘%s --help’ 或\\ ‘%s --usage’ 以获得更多信æ¯ã€‚\\n" - - #: debug/xtrace.sh:38 --#, fuzzy --#| msgid "%s: option `%s' requires an argument\n" - msgid "%s: option '%s' requires an argument.\\n" --msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" -+msgstr "%s:选项 ‘%s’ 需è¦ä¸€ä¸ªå‚æ•°.\\n" - - #: debug/xtrace.sh:45 - msgid "" -@@ -317,11 +328,22 @@ msgid "" - "short options.\n" - "\n" - msgstr "" -+"ç»ç”±æ‰“å°ç›®å‰è¿è¡Œçš„函数æ¥è¿½è¸ªç¨‹åºçš„è¿è¡Œã€‚\n" -+"\n" -+" --data=文件 无法è¿è¿›ç¨‹åºï¼Œä»…从文件å°å‡ºæ•°æ®ã€‚\n" -+"\n" -+" -?,--help 打å°è¿™ä»½è¯´æ˜Žç„¶åŽç¦»å¼€\n" -+" --usage 给出简短用法消æ¯\n" -+" -V,--version å°å‡ºç‰ˆæœ¬ä¿¡æ¯ç„¶åŽç¦»å¼€\n" -+"\n" -+"对于长选项必è¦çš„å‚æ•°åŒæ ·å¿…è¦äºŽä»»ä½•ç›¸åº”çš„\n" -+"短选项。\n" -+"\n" - - #: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.sh:49 - #: malloc/memusage.sh:64 - msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n" --msgstr "" -+msgstr "è¦çŸ¥é“错误报告指令,请å‚看:\\\\n%s.\\\\n" - - #: debug/xtrace.sh:125 - msgid "xtrace: unrecognized option \\`$1'\\n" -@@ -334,7 +356,7 @@ msgstr "未指定程åºå" - #: debug/xtrace.sh:146 - #, sh-format - msgid "executable \\`$program' not found\\n" --msgstr "" -+msgstr "å¯è¿è¡Œæ–‡ä»¶ “$program†找ä¸åˆ°\\n" - - #: debug/xtrace.sh:150 - #, sh-format -@@ -343,7 +365,7 @@ msgstr "“$programâ€ä¸å¯æ‰§è¡Œ\\n" - - #: dlfcn/dlinfo.c:63 - msgid "RTLD_SELF used in code not dynamically loaded" --msgstr "" -+msgstr "代ç æ‰€ä½¿ç”¨çš„ RTLD_SELF 没有动æ€åŠ è½½" - - #: dlfcn/dlinfo.c:72 - msgid "unsupported dlinfo request" -@@ -414,11 +436,11 @@ msgstr "å°† %s 的访问æƒé™æ”¹å˜ä¸º - msgid "Renaming of %s to %s failed" - msgstr "å°† %s 改å为 %s 失败" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "无法创建范围列表" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "共享库未打开" - -@@ -433,7 +455,7 @@ msgstr "空动æ€å­—符串替æ¢" - #: elf/dl-deps.c:131 - #, c-format - msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" --msgstr "" -+msgstr "由于空的动æ€å­—串字组替æ¢è€Œæ— æ³•åŠ è½½å¤–部的 `%s'\n" - - #: elf/dl-deps.c:467 - msgid "cannot allocate dependency list" -@@ -445,7 +467,7 @@ msgstr "无法分é…符å·æœç´¢åˆ—表" - - #: elf/dl-deps.c:544 - msgid "Filters not supported with LD_TRACE_PRELINKING" --msgstr "" -+msgstr "过滤程åºä¸æ”¯æŒä¸Ž LD_TRACE_PRELINKING 共用" - - #: elf/dl-error.c:77 - msgid "DYNAMIC LINKER BUG!!!" -@@ -491,127 +513,127 @@ msgstr "无法创建æœç´¢è·¯å¾„数组" - msgid "cannot stat shared object" - msgstr "无法对共享目标进行 stat æ“作" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "无法打开零填充设备" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "无法创建共享对象æ述符" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "无法读入文件数æ®" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF 加载命令对é½ä¸æ˜¯æŒ‰é¡µå¯¹é½çš„" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF 装入命令的地å€/å移é‡æ²¡æœ‰æ­£ç¡®åœ°å¯¹é½" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" --msgstr "" -+msgstr "无法é…ç½® TLS æ•°æ®ç»“构用以起始线程" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "æ— æ³•å¤„ç† TLS æ•°æ®" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "目标文件没有å¯åŠ è½½æ®µ" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "无法动æ€è£…å…¥å¯æ‰§è¡Œæ–‡ä»¶" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "目标文件没有动æ€èŠ‚" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "无法用 dlopen() 打开共享库" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "无法为程åºå¤´åˆ†é…内存" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "无效的调用者" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "无法改å˜å†…å­˜ä¿æŠ¤" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "无法å¯ç”¨å…±äº«ç›®æ ‡éœ€è¦çš„执行栈" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "无法关闭文件æ述符" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "文件过短" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "无效的 ELF 头" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "ELF 文件数æ®ç¼–ç ä¸æ˜¯ big-endian" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "ELF 文件数æ®ç¼–ç ä¸æ˜¯ little-endian" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" --msgstr "" -+msgstr "ELF 档版本 ident ä¸ç¬¦åˆç›®å‰æ‰€ä½¿ç”¨çš„" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF 文件 OS ABI 无效" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF 文件 ABI 版本无效" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" --msgstr "" -+msgstr "在 e_ident 中填补éžé›¶å€¼" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "内部错误" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF 文件版本与当å‰ç‰ˆæœ¬ä¸åŒ¹é…" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" --msgstr "" -+msgstr "åªæœ‰ ET_DYN ä»¥åŠ ET_EXEC å¯ä»¥åŠ è½½" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" --msgstr "" -+msgstr "ELF 档的 phentsize 并ä¸æ˜¯é¢„期中的大å°" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "错误 ELF ç±»: ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "错误 ELF ç±»: ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "无法打开共享对象文件" - -@@ -623,11 +645,11 @@ msgstr "æ— æ³•ä»Žå…±äº«ç›®æ ‡ä¸­æ˜ å°„æ® - msgid "cannot map zero-fill pages" - msgstr "无法映射用零填充的页" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "é‡å®šä½é”™è¯¯" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "符å·æŸ¥è¯¢é”™è¯¯" - -@@ -635,67 +657,54 @@ msgstr "符å·æŸ¥è¯¢é”™è¯¯" - msgid "cannot extend global scope" - msgstr "无法扩展全局范围" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." --msgstr "" -- --#: elf/dl-open.c:542 --#, fuzzy --#| msgid "cannot allocate memory in static TLS block" --msgid "cannot load any more object with static TLS" --msgstr "无法在é™æ€ TLS å—中分é…内存" -+msgstr "TLS 产生计数器被转æ¢è¿è¡Œï¼ 请报告这个情况。" - --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "无效的 dlopen() 模å¼" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" --msgstr "" -+msgstr "无更多命å空间å¯è§äºŽ dlmopen ()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "dlmopen() 中无效的目标å字空间" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "无法在é™æ€ TLS å—中分é…内存" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" --msgstr "" -- --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "" -+msgstr "在é‡æ–°å¯»å€ä»¥åŽæ— æ³•å°†èŠ‚设为å¯å†™å…¥çŠ¶æ€" - --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" --msgstr "" -+msgstr "%s: 内存ä¸è¶³ä»¥ä¿å­˜é‡å¯»å€ç»“果用于 %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "é‡å®šä½åŽæ— æ³•æ¢å¤æ®µ prot" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "无法在é‡å®šä½åŽåº”用é¢å¤–的内存ä¿æŠ¤" - - #: elf/dl-sym.c:153 - msgid "RTLD_NEXT used in code not dynamically loaded" --msgstr "" -+msgstr "代ç æ‰€ä½¿ç”¨çš„ RTLD_NEXT 没有动æ€åŠ è½½" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "无法创建 TLS æ•°æ®ç»“æž„" - - #: elf/dl-version.c:166 --#, fuzzy --#| msgid "symbol lookup error" - msgid "version lookup error" --msgstr "符å·æŸ¥è¯¢é”™è¯¯" -+msgstr "版本查找错误" - - #: elf/dl-version.c:296 - msgid "cannot allocate version reference table" -@@ -763,7 +772,7 @@ msgstr "忽略辅助缓存文件" - - #: elf/ldconfig.c:159 - msgid "Configure Dynamic Linker Run Time Bindings." --msgstr "" -+msgstr "设置è¿è¡Œæ—¶æœŸåŠ¨æ€è¿žæŽ¥" - - #: elf/ldconfig.c:346 - #, c-format -@@ -793,7 +802,7 @@ msgstr "%s ä¸æ˜¯ç¬¦å·è¿žæŽ¥\n" - #: elf/ldconfig.c:517 - #, c-format - msgid "Can't unlink %s" --msgstr "" -+msgstr "无法å–消链接 %s" - - #: elf/ldconfig.c:523 - #, c-format -@@ -833,7 +842,7 @@ msgstr "未创建链接,因为 %s æ— æ - msgid "Can't open directory %s" - msgstr "无法打开目录 %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "未找到输入文件 %s。\n" -@@ -866,32 +875,32 @@ msgstr "目录 %3$s 中的 %1$s å’Œ %2$s - #: elf/ldconfig.c:1094 - #, c-format - msgid "Warning: ignoring configuration file that cannot be opened: %s" --msgstr "" -+msgstr "警告:正在忽略无法打开的组æ€æ–‡ä»¶ï¼š%s" - - #: elf/ldconfig.c:1160 - #, c-format - msgid "%s:%u: bad syntax in hwcap line" --msgstr "" -+msgstr "%s:%u: 在 hwcap 行中有ä¸å½“的语法" - - #: elf/ldconfig.c:1166 - #, c-format - msgid "%s:%u: hwcap index %lu above maximum %u" --msgstr "" -+msgstr "%s:%u: hwcap 索引 %lu 以上的最大值 %u" - - #: elf/ldconfig.c:1173 elf/ldconfig.c:1181 - #, c-format - msgid "%s:%u: hwcap index %lu already defined as %s" --msgstr "" -+msgstr "%s:%u: hwcap 索引 %lu å·²ç»è¢«å®šä¹‰ä¸º %s" - - #: elf/ldconfig.c:1184 - #, c-format - msgid "%s:%u: duplicate hwcap %lu %s" --msgstr "" -+msgstr "%s:%u: é‡åˆ¶ hwcap %lu %s" - - #: elf/ldconfig.c:1206 - #, c-format - msgid "need absolute file name for configuration file when using -r" --msgstr "" -+msgstr "需è¦ç»å¯¹æ–‡ä»¶å称用于组æ€æ–‡ä»¶æ—¶æ­£åœ¨ä½¿ç”¨ -r" - - #: elf/ldconfig.c:1213 locale/programs/xmalloc.c:64 malloc/obstack.c:416 - #: malloc/obstack.c:418 posix/getconf.c:441 posix/getconf.c:661 -@@ -907,7 +916,7 @@ msgstr "%s:%u: 无法读å–目录 %s" - #: elf/ldconfig.c:1289 - #, c-format - msgid "relative path `%s' used to build cache" --msgstr "" -+msgstr "用æ¥å»ºç½®ç¼“存的相对路径 `%s'" - - #: elf/ldconfig.c:1319 - #, c-format -@@ -933,6 +942,13 @@ msgid "" - " -u, --unused print unused direct dependencies\n" - " -v, --verbose print all information\n" - msgstr "" -+"用法:ldd [选项]… 文件…\n" -+" --help å°å‡ºè¿™ä»½è¯´æ˜Žç„¶åŽç¦»å¼€\n" -+" --version å°å‡ºç‰ˆæœ¬ä¿¡æ¯ç„¶åŽç¦»å¼€\n" -+" -d, --data-relocs 进程数æ®é‡å¯»å€\n" -+" -r, --function-relocs 进程数æ®å’Œå‡½æ•°é‡å¯»å€\n" -+" -u, --unused å°å‡ºæœªä½¿ç”¨çš„直接ä¾èµ–关系\n" -+" -v, --verbose å°å‡ºæ‰€æœ‰ä¿¡æ¯\n" - - #: elf/ldd.bash.in:80 - msgid "ldd: option \\`$1' is ambiguous" -@@ -957,7 +973,7 @@ msgstr "缺少文件å‚æ•°" - msgid "No such file or directory" - msgstr "没有那个文件或目录" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "ä¸æ˜¯æ™®é€šæ–‡ä»¶" - -@@ -978,105 +994,97 @@ msgid "error: you do not have read permi - msgstr "错误: 你没有读æƒé™ " - - #: elf/pldd-xx.c:105 --#, fuzzy, c-format --#| msgid "cannot read header from `%s'" -+#, c-format - msgid "cannot find program header of process" --msgstr "无法从“%sâ€ä¸­è¯»å…¥å¤´" -+msgstr "找ä¸åˆ°è¿›ç¨‹çš„程åºæ ‡å¤´" - - #: elf/pldd-xx.c:110 --#, fuzzy, c-format --#| msgid "cannot read header" -+#, c-format - msgid "cannot read program header" --msgstr "无法读入头" -+msgstr "无法读å–程åºæ ‡å¤´" - - #: elf/pldd-xx.c:135 --#, fuzzy, c-format --#| msgid "object file has no dynamic section" -+#, c-format - msgid "cannot read dynamic section" --msgstr "目标文件没有动æ€èŠ‚" -+msgstr "无法读å–动æ€èŠ‚" - - #: elf/pldd-xx.c:147 --#, fuzzy, c-format --#| msgid "cannot read header" -+#, c-format - msgid "cannot read r_debug" --msgstr "无法读入头" -+msgstr "æ— æ³•è¯»å– r_debug" - - #: elf/pldd-xx.c:167 --#, fuzzy, c-format --#| msgid "cannot read archive header" -+#, c-format - msgid "cannot read program interpreter" --msgstr "无法读入归档文件头" -+msgstr "无法读å–程åºè§£è¯‘器" - --#: elf/pldd-xx.c:196 --#, fuzzy, c-format --#| msgid "cannot read file data" -+#: elf/pldd-xx.c:197 -+#, c-format - msgid "cannot read link map" --msgstr "无法读入文件数æ®" -+msgstr "无法读å–链结映射" - --#: elf/pldd-xx.c:207 --#, fuzzy, c-format --#| msgid "cannot read header" -+#: elf/pldd-xx.c:209 -+#, c-format - msgid "cannot read object name" --msgstr "无法读入头" -+msgstr "无法读å–对象å称" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "无法为对象å称分é…缓冲区" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." --msgstr "" -+msgstr "列出已加载进程中的动æ€å…±ç”¨å¯¹è±¡ã€‚" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" --msgstr "" -+msgstr "进程识别å·" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" --msgstr "" -+msgstr "需è¦åˆšå¥½ä¸€ä¸ªé™„有进程识别å·çš„å‚数。\n" - --#: elf/pldd.c:111 --#, fuzzy, c-format --#| msgid "invalid pointer size" -+#: elf/pldd.c:112 -+#, c-format - msgid "invalid process ID '%s'" --msgstr "无效的指针大å°" -+msgstr "æ— æ•ˆçš„è¿›ç¨‹è¯†åˆ«å· %s" - --#: elf/pldd.c:119 --#, fuzzy, c-format --#| msgid "cannot open `%s'" -+#: elf/pldd.c:120 -+#, c-format - msgid "cannot open %s" --msgstr "无法打开“%sâ€" -+msgstr "无法打开 %s" - --#: elf/pldd.c:144 --#, fuzzy, c-format --#| msgid "cannot open `%s'" -+#: elf/pldd.c:152 -+#, c-format - msgid "cannot open %s/task" --msgstr "无法打开“%sâ€" -+msgstr "无法打开 %s/任务" - --#: elf/pldd.c:147 --#, fuzzy, c-format --#| msgid "cannot create searchlist" -+#: elf/pldd.c:155 -+#, c-format - msgid "cannot prepare reading %s/task" --msgstr "无法创建æœç´¢åˆ—表" -+msgstr "æ— æ³•å‡†å¤‡è¯»å– %s/任务" - --#: elf/pldd.c:160 --#, fuzzy, c-format --#| msgid "invalid ELF header" -+#: elf/pldd.c:168 -+#, c-format - msgid "invalid thread ID '%s'" --msgstr "无效的 ELF 头" -+msgstr "æ— æ•ˆçš„çº¿ç¨‹è¯†åˆ«å· %s" - --#: elf/pldd.c:171 --#, fuzzy, c-format --#| msgid "cannot find C preprocessor: %s \n" -+#: elf/pldd.c:179 -+#, c-format - msgid "cannot attach to process %lu" --msgstr "无法找到 C 预处ç†å™¨ï¼š%s\n" -+msgstr "无法附加到进程 %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" --msgstr "" -+msgstr "无法获得进程 %lu 的相关信æ¯" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" --msgstr "" -+msgstr "进程 %lu å¹¶éž ELF 程åº" - - #: elf/readelflib.c:34 - #, c-format -@@ -1108,72 +1116,69 @@ msgstr "%s ä¸æ˜¯å…±äº«ç›®æ ‡æ–‡ä»¶ (ç±» - msgid "more than one dynamic segment\n" - msgstr "多于一个动æ€æ®µ\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "无法对文件 %s 进行 fstat æ“作。\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "文件 %s 为空,未检查。" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "文件 %s 过å°ï¼Œæœªæ£€æŸ¥ã€‚" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "无法对文件 %s 进行 mmap æ“作。\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" --msgstr "%s ä¸æ˜¯ ELF 文件 - 它起始的魔数错误。\n" -+msgstr "%s ä¸æ˜¯ ELF 文件 - 起始处的魔数有误。\n" - - #: elf/sln.c:84 --#, fuzzy, c-format --#| msgid "usage: %s infile\n" -+#, c-format - msgid "" - "Usage: sln src dest|file\n" - "\n" --msgstr "用法:%s 输入文件\n" -+msgstr "" -+"用法:sln æºä»£ç  目的|文件\n" -+"\n" - - #: elf/sln.c:109 --#, fuzzy, c-format --#| msgid "%s: unable to open %s: %m\n" -+#, c-format - msgid "%s: file open error: %m\n" --msgstr "%s:无法打开 %s:%m\n" -+msgstr "%s:文件打开错误:%m\n" - - #: elf/sln.c:146 - #, c-format - msgid "No target in line %d\n" --msgstr "" -+msgstr "没有目标于第 %d è¡Œ\n" - - #: elf/sln.c:178 --#, fuzzy, c-format --#| msgid "%s:%u: cannot read directory %s" -+#, c-format - msgid "%s: destination must not be a directory\n" --msgstr "%s:%u: 无法读å–目录 %s" -+msgstr "%s:目的必须ä¸æ˜¯ç›®å½•\n" - - #: elf/sln.c:184 - #, c-format - msgid "%s: failed to remove the old destination\n" --msgstr "" -+msgstr "%s:无法移除旧的目的\n" - - #: elf/sln.c:192 --#, fuzzy, c-format --#| msgid "%s: invalid option -- %c\n" -+#, c-format - msgid "%s: invalid destination: %s\n" --msgstr "%s:无效选项 -- %c\n" -+msgstr "%s:无效的目的:%s\n" - - #: elf/sln.c:207 elf/sln.c:216 --#, fuzzy, c-format --#| msgid "%s: Can't link from %s to %s: %s\n" -+#, c-format - msgid "Invalid link from \"%s\" to \"%s\": %s\n" --msgstr "%s:无法从 %s 连接到 %s:%s\n" -+msgstr "从 “%s†到 “%s†的链结无效:%s\n" - - #: elf/sotruss.sh:32 - #, sh-format -@@ -1191,30 +1196,34 @@ msgid "" - " --usage Give a short usage message\n" - " --version Print program version" - msgstr "" -+"用法:sotruss [选项…] [--] å¯è¿è¡Œæ–‡ä»¶ [EXECUTABLE-OPTION...]\n" -+" -F, --from FROMLIST 追踪æ¥è‡ª FROMLIST 上对象的调用\n" -+" -T, --to TOLIST 追踪æ¥è‡ª TOLIST 上对象的调用\n" -+"\n" -+" -e, --exit 也显示æ¥è‡ªå‡½æ•°çš„离开调用\n" -+" -f, --follow 追踪å­è¿›ç¨‹\n" -+" -o, --output 文件å 将输出写入 FILENAME (当åŒæ—¶ä½¿ç”¨ -f æ—¶\n" -+"\t\t\t 则使用 FILENAME.$PID) 以代替标准错误\n" -+"\n" -+" -?, --help 给出这份说明清å•\n" -+" --usage 给出简短用法消æ¯\n" -+" --version å°å‡ºç¨‹åºç‰ˆæœ¬" - - #: elf/sotruss.sh:46 --#, fuzzy --#| msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." - msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n" --msgstr "长选项的强制或å¯é€‰å‚数对对应的短选项也是强制或å¯é€‰çš„。" -+msgstr "长选项的必è¦å‚æ•°åŒæ ·ä¹Ÿæ˜¯ç›¸å¯¹åº”短选项的必è¦å‚数。" - - #: elf/sotruss.sh:55 --#, fuzzy --#| msgid "%s: option requires an argument -- %c\n" - msgid "%s: option requires an argument -- '%s'\\n" --msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n" -+msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° -- ‘%s’ \\n" - - #: elf/sotruss.sh:61 --#, fuzzy --#| msgid "%s: option `%s' is ambiguous\n" - msgid "%s: option is ambiguous; possibilities:" --msgstr "%s:选项“%sâ€å…·æœ‰äºŒä¹‰æ€§\n" -+msgstr "%s:选项是模糊的;å¯èƒ½æ˜¯ï¼š" - - #: elf/sotruss.sh:79 --#, fuzzy --#| msgid "Written by %s.\n" - msgid "Written by %s.\\n" --msgstr "ç”± %s 编写。\n" -+msgstr "作者 %s。\\n" - - #: elf/sotruss.sh:86 - msgid "" -@@ -1223,12 +1232,14 @@ msgid "" - "\t [--help] [--usage] [--version] [--]\n" - "\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" - msgstr "" -+"用法:%s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n" -+"\t [--follow] [--from FROMLIST] [--output 文件å] [--to TOLIST]\n" -+"\t [--help] [--usage] [--version] [--]\n" -+"\t å¯è¿è¡Œæ–‡ä»¶ [EXECUTABLE-OPTION...]\\n" - - #: elf/sotruss.sh:134 --#, fuzzy --#| msgid "%s: unrecognized option `%c%s'\n" - msgid "%s: unrecognized option '%c%s'\\n" --msgstr "%s:无法识别的选项“%c%sâ€\n" -+msgstr "%s:无法辨识的选项 ‘%c%s’ \\n" - - #: elf/sprof.c:77 - msgid "Output selection:" -@@ -1240,7 +1251,7 @@ msgstr "打å°å½“å‰è·¯å¾„çš„åˆ—è¡¨å’Œä» - - #: elf/sprof.c:81 - msgid "generate flat profile with counts and ticks" --msgstr "" -+msgstr "从è¿è¡Œæ¬¡æ•°ä¸Žç»åŽ†æ—¶é—´çš„æ•°æ®ä¸­äº§ç”Ÿç›´æŽ¥çš„测速结果" - - #: elf/sprof.c:82 - msgid "generate call graph" -@@ -1248,7 +1259,7 @@ msgstr "生æˆè°ƒç”¨å›¾" - - #: elf/sprof.c:89 - msgid "Read and display shared object profiling data." --msgstr "" -+msgstr "读å–和显示共用对象规范数æ®ã€‚" - - #: elf/sprof.c:94 - msgid "SHOBJ [PROFDATA]" -@@ -1259,9 +1270,9 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "装入共享目标文件“%sâ€å¤±è´¥" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "无法创建内部æ述符" - - #: elf/sprof.c:554 -@@ -1317,27 +1328,22 @@ msgstr "å½“åˆ†æž profile æ•°æ®æ–‡ä»¶" - #: elf/sprof.c:797 - #, c-format - msgid "profiling data file `%s' does not match shared object `%s'" --msgstr "" -+msgstr "测试数æ®æ¡£ `%s' 与共用目的档 `%s' ä¸ç¬¦åˆ" - - #: elf/sprof.c:808 - #, c-format - msgid "failed to mmap the profiling data file" --msgstr "" -+msgstr "测试数æ®æ–‡ä»¶ mmap 失败" - - #: elf/sprof.c:816 - #, c-format - msgid "error while closing the profiling data file" --msgstr "" -- --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "无法创建内部æ述符" -+msgstr "正在关闭测试数æ®æ–‡ä»¶æ—¶å‘生错误" - - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" --msgstr "" -+msgstr "`%s' ä¸æ˜¯ `%s' 中正确的测速评估数æ®æ¡£" - - #: elf/sprof.c:1080 elf/sprof.c:1138 - #, c-format -@@ -1407,10 +1413,8 @@ msgstr "ä»Žè¾“å‡ºä¸­å¿½ç•¥æ— æ•ˆçš„å­—ç¬ - #: locale/programs/localedef.c:122 locale/programs/localedef.c:124 - #: locale/programs/localedef.c:126 locale/programs/localedef.c:147 - #: malloc/memusagestat.c:56 --#, fuzzy --#| msgid "[FILE]" - msgid "FILE" --msgstr "[文件]" -+msgstr "文件" - - #: iconv/iconv_prog.c:66 - msgid "output file" -@@ -1491,6 +1495,11 @@ msgid "" - "\n" - " " - msgstr "" -+"以下的列表包å«æ‰€æœ‰å·²çŸ¥çš„ç¼–ç å­—符集,但这ä¸ä»£è¡¨æ‰€æœ‰çš„字符å称组åˆçš†å¯ç”¨äºŽ\n" -+"命令行的 \"æ¥æº\" ä»¥åŠ \"目的\" å‚数。一个编ç å­—符集å¯ä»¥ç”¨å‡ ä¸ªä¸åŒçš„å称\n" -+"æ¥è¡¨ç¤º (å³ \"别å\")。\n" -+"\n" -+" " - - #: iconv/iconvconfig.c:109 - msgid "Create fastloading iconv module configuration file." -@@ -1502,7 +1511,7 @@ msgstr "[目录...]" - - #: iconv/iconvconfig.c:126 locale/programs/localedef.c:133 - msgid "PATH" --msgstr "" -+msgstr "路径" - - #: iconv/iconvconfig.c:127 - msgid "Prefix used for all file accesses" -@@ -1510,16 +1519,16 @@ msgstr "用于所有文件访问的å‰ç¼ - - #: iconv/iconvconfig.c:128 - msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)" --msgstr "" -+msgstr "在 FILE 中置放输出以代替已安装的ä½ç½® (--prefix ä¸å¥—用到 FILE)" - - #: iconv/iconvconfig.c:132 - msgid "Do not search standard directories, only those on the command line" --msgstr "" -+msgstr "ä¸æœç´¢æ ‡å‡†ç›®å½•ï¼Œåªä½¿ç”¨å‘½ä»¤è¡ŒæŒ‡å®šçš„" - - #: iconv/iconvconfig.c:299 - #, c-format - msgid "Directory arguments required when using --nostdlib" --msgstr "" -+msgstr "目录å‚æ•°å¿…è¦é¡¹æ—¶æ­£åœ¨ä½¿ç”¨ --nostdlib" - - #: iconv/iconvconfig.c:341 locale/programs/localedef.c:294 - #, c-format -@@ -1557,47 +1566,47 @@ msgstr "正在å°è¯• %s...\n" - #: inet/rcmd.c:255 - #, c-format - msgid "rcmd: write (setting up stderr): %m\n" --msgstr "" -+msgstr "rcmd: write (正在设置标准错误输出): %m\n" - - #: inet/rcmd.c:271 - #, c-format - msgid "rcmd: poll (setting up stderr): %m\n" --msgstr "" -+msgstr "rcmd: poll (正在设置标准错误输出): %m\n" - - #: inet/rcmd.c:274 - msgid "poll: protocol failure in circuit setup\n" --msgstr "" -+msgstr "poll: 通信å定在设置线路时失效\n" - - #: inet/rcmd.c:306 - msgid "socket: protocol failure in circuit setup\n" --msgstr "" -+msgstr "socket: 通信å定在设置线路时失效\n" - - #: inet/rcmd.c:330 - #, c-format - msgid "rcmd: %s: short read" --msgstr "" -+msgstr "rcmd: %s: 读入数æ®è¿‡çŸ­" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat æ“作失败" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "无法打开" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat 失败" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "错误的拥有者" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "å¯ç”±é™¤æ‰€æœ‰è€…之外的人写入" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "æŸå¤„的硬连接" - -@@ -1640,7 +1649,7 @@ msgstr "找ä¸åˆ°é»˜è®¤å­—ç¬¦æ˜ å°„æ–‡ä» - #: locale/programs/charmap.c:258 - #, c-format - msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n" --msgstr "" -+msgstr "字符对应 `%s' ä¸æ˜¯ ASCII 兼容ç ï¼ŒåŒºåŸŸåŒ–æ•°æ®åº“ä¸ç¬¦åˆ ISO C\n" - - #: locale/programs/charmap.c:337 - #, c-format -@@ -1717,8 +1726,8 @@ msgid "no symbolic name given for end of - msgstr "没有为范围的结æŸç»™å‡ºç¬¦å·åŒ–çš„å称" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1731,7 +1740,7 @@ msgstr "%1$s:定义ä¸ä»¥â€œEND %1$s†- - #: locale/programs/charmap.c:643 - msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" --msgstr "" -+msgstr "åªæœ‰ WIDTH 定义æ‰èƒ½ç›´æŽ¥å†™åœ¨ CHARMAP 定义之åŽ" - - #: locale/programs/charmap.c:651 locale/programs/charmap.c:714 - #, c-format -@@ -1744,8 +1753,8 @@ msgid "%s: error in state machine" - msgstr "%s:状æ€æœºå‡ºé”™" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1764,16 +1773,16 @@ msgstr "未知的字符“%sâ€" - #: locale/programs/charmap.c:888 - #, c-format - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" --msgstr "" -+msgstr "在范围起始与结æŸçš„字节åºåˆ—中,字节的数目并ä¸ä¸€è‡´: %d vs %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" --msgstr "" -+msgstr "无效的字符范围å称" - - #: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431 - msgid "hexadecimal range format should use only capital characters" --msgstr "" -+msgstr "在表示å六进制的范围时åªèƒ½ç”¨å¤§å†™çš„英文本æ¯è¡¨ç¤º" - - #: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449 - #, c-format -@@ -1786,17 +1795,17 @@ msgstr "范围的上é™å°äºŽä¸‹é™" - - #: locale/programs/charmap.c:1087 - msgid "resulting bytes for range not representable." --msgstr "" -+msgstr "用æ¥å®šä¹‰èŒƒå›´çš„字节无法被表述出æ¥" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 - #: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159 - #, c-format - msgid "No definition for %s category found" --msgstr "" -+msgstr "找ä¸åˆ° %s 类别的定义" - - #: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184 - #: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231 -@@ -1829,7 +1838,7 @@ msgstr "%1$s:域“%3$sâ€ä¸­æ— æ•ˆçš„ - #: locale/programs/ld-address.c:221 - #, c-format - msgid "%s: terminology language code `%s' not defined" --msgstr "" -+msgstr "%s: æœ¯è¯­è¯­è¨€ç¼–ç  `%s' 未定义" - - #: locale/programs/ld-address.c:246 - #, c-format -@@ -1853,7 +1862,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s:数值国家编ç â€œ%dâ€æ— æ•ˆ" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1875,8 +1884,8 @@ msgstr "%s:多次声明域“%sâ€" - msgid "%s: unknown character in field `%s'" - msgstr "%s:域“%sâ€ä¸­å«æœ‰æœªçŸ¥å­—符" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1885,12 +1894,12 @@ msgstr "%s:域“%sâ€ä¸­å«æœ‰æœªçŸ¥å - msgid "%s: incomplete `END' line" - msgstr "%s:ä¸å®Œæ•´çš„“ENDâ€è¡Œ" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1900,491 +1909,489 @@ msgstr "%s:ä¸å®Œæ•´çš„“ENDâ€è¡Œ" - msgid "%s: syntax error" - msgstr "%s:语法错误" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "å·²ç»åœ¨å­—符映射表中定义了“%.*sâ€" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "å·²ç»åœ¨æŒ‡ä»¤è¡¨ä¸­å®šä¹‰äº†â€œ%.*sâ€" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" --msgstr "" -+msgstr "`%.*s' 已被定义为对照符å·" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" --msgstr "" -+msgstr "`%.*s' 已被定义为对照元素" - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s:“forwardâ€å’Œâ€œbackwardâ€æ˜¯äº’斥的" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" --msgstr "" -+msgstr "%s: `%s' ä¸åªä¸€æ¬¡åœ°åœ¨æƒé‡ %d 中被æ到" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s:规则过多;第一个æ¡ç›®åªå«æœ‰ %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s:排åºè§„则ä¸è¶³" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s:ä¸å…许空æƒå­—符串" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" --msgstr "" -+msgstr "%s: æƒé‡å¿…须使用与å称相åŒçš„çœç•¥ç¬¦å·" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s:值过多" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" --msgstr "" -+msgstr "`%.*s' 的顺åºå·²ç»åœ¨ %s:%Zu 里é¢å®šä¹‰äº†" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" --msgstr "" -+msgstr "%s: å¯å§‹ä¸Žç»“æŸç¬¦å·èŒƒå›´å¿…须代表字符" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s:字节åºåˆ—的第一个和最åŽä¸€ä¸ªå­—符的长度必须相åŒ" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s:范围的字节åºåˆ—的第一个字符ä¸å°äºŽæœ€åŽä¸€ä¸ªå­—符" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" --msgstr "" -+msgstr "%s: 符å·èŒƒå›´çš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_start' 之åŽ" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" --msgstr "" -+msgstr "%s: 符å·èŒƒå›´çš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_end' 之å‰" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "“%sâ€å’Œâ€œ%.*sâ€æ˜¯æ— æ•ˆçš„符å·èŒƒå›´å" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" --msgstr "" -+msgstr "%s: `%.*s' 的顺åºå·²åœ¨ %s:%Zu 中定义" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s:“%sâ€å¿…须是一个字符" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" --msgstr "" -+msgstr "%s: `position' 必须在所有区å—里特定的等级中使用,å¦åˆ™ä¸èƒ½ä½¿ç”¨" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "符å·â€œ%sâ€æœªå®šä¹‰" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" --msgstr "" -+msgstr "è·Ÿç¬¦å· `%s' 有相åŒçš„ç¼–ç : " - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "符å·â€œ%sâ€" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "没有关于“UNDEFINIEDâ€çš„定义" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "错误过多;放弃" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: ä¸æ”¯æŒåµŒå¥—æ¡ä»¶" - --#: locale/programs/ld-collate.c:2536 --#, fuzzy, c-format --#| msgid "%s: more then one 'else'" -+#: locale/programs/ld-collate.c:2545 -+#, c-format - msgid "%s: more than one 'else'" --msgstr "%s: 多于一个'else'" -+msgstr "%s: 使用多于一个 “elseâ€" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s:é‡å¤å®šä¹‰â€œ%sâ€" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s:é‡å¤å£°æ˜ŽèŠ‚“%sâ€" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" --msgstr "" -+msgstr "%s: 未知的字符在对照符å·å称中" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s:等价定义å中未知的字符" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s:等价定义值中未知的字符" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s:等价定义中未知的符å·â€œ%sâ€" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" --msgstr "" -+msgstr "正在加入åŒä¹‰å¯¹ç…§ç¬¦å·æ—¶å‘生错误" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "é‡å¤å®šä¹‰è„šæœ¬â€œ%sâ€" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s:未知的节å“%.*sâ€" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s:关于“%sâ€èŠ‚出现多个顺åºå®šä¹‰" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s:排åºè§„则的数é‡æ— æ•ˆ" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s:关于未命å节出现多个顺åºå®šä¹‰" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s:é—æ¼å…³é”®å­—“order_endâ€" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" --msgstr "" -+msgstr "%s: å¯¹ç…§ç¬¦å· %.*s 的顺åºå°šæœªå®šä¹‰" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" --msgstr "" -+msgstr "%s: 对照元素 %.*s 的顺åºå°šæœªå®šä¹‰" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" --msgstr "" -+msgstr "%s: 无法é‡æ–°æŽ’列在 %.*s 之åŽ: 未知的符å·" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s:以åŽå…³é”®å­—“reorder-endâ€" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s:未知的节“%.*sâ€" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" --msgstr "" -+msgstr "%s: ä¸å½“çš„ç¬¦å· <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" --msgstr "" -+msgstr "%s: 无法用 `%s' 作为çœç•¥èŠ‚的结尾" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s:ä¸å…许空范畴æè¿°" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s:é—æ¼å…³é”®å­—“reorder-sections-endâ€" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" --msgstr "" -+msgstr "%s: “%s†而ä¸éœ€å»åˆä¸­ “ifdef†或 “ifndef†" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" --msgstr "" -+msgstr "%s: “endif†而ä¸éœ€å»åˆä¸­ “ifdef†或 “ifndef†" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "字符映射表中未给出字符集å称" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" --msgstr "" -+msgstr "character L'\\u%0*x' (放在类别 `%s' 之中) 必须在类别 `%s' 里é¢" - --# msgstr "类“%2$sâ€ä¸­çš„字符 L'\\u%0*x' 必须属于类“%3$sâ€" --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" --msgstr "" -+msgstr "character L'\\u%0*x' (放在类别 `%s' 之中) ä¸èƒ½åœ¨ç±»åˆ« `%s' 里é¢" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "在 %s 的第 %u 行出现内部错误" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "类“%2$sâ€ä¸­çš„字符“%1$sâ€å¿…须属于类“%3$sâ€" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "类“%2$sâ€ä¸­çš„字符“%1$sâ€ä¸å¾—属于类“%3$sâ€" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr "字符 ä¸åœ¨ç±»â€œ%sâ€ä¸­" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr "字符 ä¸èƒ½å±žäºŽç±»â€œ%sâ€" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "字符映射中未定义字符 " - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" --msgstr "" -+msgstr "`digit' 类别在群组 \"å\" 中没有项目" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" --msgstr "" -+msgstr "没有定义输入数字,在字集对照档中也找ä¸åˆ°ç›¸ç¬¦çš„标准å称" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" --msgstr "" -+msgstr "在字集对照表中无法找到æŸäº›åœ¨ `outdigit' 中用到的字符" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" --msgstr "" -+msgstr "在编ç æ˜ å°„档中无法找到æŸäº›åœ¨ `outdigit' 中用到的字符" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "字符类“%sâ€å·²å®šä¹‰" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" --msgstr "" -+msgstr "程åºå®žçŽ°çš„é™åˆ¶: ä¸èƒ½ä½¿ç”¨è¶…过 %Zd 个字集类别" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" --msgstr "" -+msgstr "字集对照档 `%s' å·²ç»å®šä¹‰è¿‡äº†" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "实现é™åˆ¶ï¼šä¸å¾—多于 %d 个字符映射表" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s:域“%sâ€å«æœ‰æ¡ç›®çš„个数ä¸æ˜¯å个" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " --msgstr "" -+msgstr "区域定义的结尾值 比起始值 还è¦å°" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "范围的起始和终止字符åºåˆ—必须具有相åŒçš„长度" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" --msgstr "" -+msgstr "字符åºåˆ—定义的结尾值比起始值还è¦å°" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" --msgstr "" -+msgstr "`translit_ignore' 定义没有按时结æŸ" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "语法错误" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s:在定义新字符集åˆä¸­å‡ºçŽ°è¯­æ³•é”™è¯¯" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s:在新字符映射中出现语法错误" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" --msgstr "" -+msgstr "çœç•¥åŒºåŸŸå¿…须用两个型别相åŒçš„算符标示出æ¥" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" --msgstr "" -+msgstr "用符å·å称æ¥æŒ‡å®šå­—符编ç èŒƒå›´æ—¶ä¸å¯ä»¥ç”¨ç»å¯¹ä½ç½®çš„çœç•¥ç¬¦å· `…'" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" --msgstr "" -+msgstr "用æ¥æŒ‡å®š UCS 值的范围时得用å六进制表示的çœç•¥ç¬¦å· `..'" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" --msgstr "" -+msgstr "用æ¥æŒ‡å®šå­—符编ç å€¼çš„范围时得用ç»å¯¹ä½ç½®çš„çœç•¥ç¬¦å· `…'" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "é‡å¤å®šä¹‰æ˜ å°„“%sâ€" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s:“translit_startâ€èŠ‚ä¸ä»¥â€œtranslit_endâ€ç»“æŸ" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s:é‡å¤å®šä¹‰â€œdefault_missingâ€" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "å‰ä¸€ä¸ªå®šä¹‰åœ¨è¿™é‡Œ" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" --msgstr "" -+msgstr "%s: 找ä¸åˆ°å¯è¡¨ç¤ºä¸º `default_missing' 的定义" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" --msgstr "" -+msgstr "%s: 字符 `%s' 没有定义,但它是必需的默认值" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" --msgstr "" -+msgstr "%s: 字集对照表中的字符 `%s' 无法表示为å•ä¸€å­—节" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s:需è¦ä½œä¸ºé»˜è®¤å€¼çš„字符“%sâ€æ— æ³•ä»¥å•ä¸ªå­—节æ¥è¡¨ç¤º" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" --msgstr "" -+msgstr "没有定义输出数字,在字集对照档中也找ä¸åˆ°ç›¸ç¬¦çš„标准å称" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" --msgstr "" -+msgstr "%s: 语区数æ®`%s' 的音译数æ®ä¸å­˜åœ¨" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" --msgstr "" -+msgstr "%s: 类别 \"%s\" 表格: %lu 字节\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" --msgstr "" -+msgstr "%s: 映射表 \"%s\" 表格: %lu 字节\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" --msgstr "" -+msgstr "%s: 宽度表格: %lu 字节\n" - - #: locale/programs/ld-identification.c:170 - #, c-format - msgid "%s: no identification for category `%s'" --msgstr "" -+msgstr "%s: 类别 `%s' 没有认è¯" - - #: locale/programs/ld-identification.c:351 - #, c-format - msgid "%s: duplicate category version definition" --msgstr "" -+msgstr "%s: é‡å¤çš„类别版本定义" - - #: locale/programs/ld-measurement.c:113 - #, c-format -@@ -2450,62 +2457,62 @@ msgstr "%s:域“%sâ€ä¸­å«æœ‰æ— æ•ˆè - #: locale/programs/ld-time.c:247 - #, c-format - msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'" --msgstr "" -+msgstr "%s: 在 `era' 字段的字串 %Zd 中,方å‘旗标既ä¸æ˜¯ '+' 也ä¸æ˜¯ '-'" - - #: locale/programs/ld-time.c:258 - #, c-format - msgid "%s: direction flag in string %Zd in `era' field is not a single character" --msgstr "" -+msgstr "%s: 在 `era' 字段的字串 %Zd 中,方å‘æ——æ ‡ä¸æ˜¯ä¸€ä¸ªå•ä¸€å­—符" - - #: locale/programs/ld-time.c:271 - #, c-format - msgid "%s: invalid number for offset in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 在 `era' 字段ã€å­—串 %Zd 中的ä½ç§»æ•°å­—ä¸é€‚用" - - #: locale/programs/ld-time.c:279 - #, c-format - msgid "%s: garbage at end of offset value in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 无用的数æ®ï¼Œåœ¨ `era' 字段ã€å­—串 %Zd 中末尾的ä½ç§»å€¼" - - #: locale/programs/ld-time.c:330 - #, c-format - msgid "%s: invalid starting date in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 在 `era' 字段ã€å­—串 %Zd 中的起始日期ä¸é€‚用" - - #: locale/programs/ld-time.c:339 - #, c-format - msgid "%s: garbage at end of starting date in string %Zd in `era' field " --msgstr "" -+msgstr "%s: 无用的数æ®ï¼Œåœ¨ `era' 字段ã€å­—串 %Zd 中末尾的起始日期" - - #: locale/programs/ld-time.c:358 - #, c-format - msgid "%s: starting date is invalid in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 在 `era' 区域的字串 %Zd 中的å¯å§‹æ—¥æœŸæ˜¯ä¸é€‚用的" - - #: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435 - #, c-format - msgid "%s: invalid stopping date in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 在 `era' 字段ã€å­—串 %Zd 中的结æŸæ—¥æœŸä¸é€‚用" - - #: locale/programs/ld-time.c:416 - #, c-format - msgid "%s: garbage at end of stopping date in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 无用的数æ®ï¼Œåœ¨ `era' 区域ã€å­—串 %Zd 中末尾的结æŸæ—¥æœŸ" - - #: locale/programs/ld-time.c:444 - #, c-format - msgid "%s: missing era name in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 缺少 era å称,在 `era' 字段ã€å­—串 %Zd 中" - - #: locale/programs/ld-time.c:456 - #, c-format - msgid "%s: missing era format in string %Zd in `era' field" --msgstr "" -+msgstr "%s: 缺少 era æ ¼å¼ï¼Œåœ¨ `era' 字段ã€å­—串 %Zd 中" - - #: locale/programs/ld-time.c:497 - #, c-format - msgid "%s: third operand for value of field `%s' must not be larger than %d" --msgstr "" -+msgstr "%s: 字段 `%s' 值的第三个算符ä¸å¯ä»¥æ¯” %d 大" - - #: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513 - #: locale/programs/ld-time.c:521 -@@ -2529,15 +2536,15 @@ msgstr "%s:域“%sâ€çš„值过多" - - #: locale/programs/linereader.c:130 - msgid "trailing garbage at end of line" --msgstr "" -+msgstr "行尾出现无用字符" - - #: locale/programs/linereader.c:298 - msgid "garbage at end of number" --msgstr "数字末尾有垃圾" -+msgstr "数字末尾有无用字符" - - #: locale/programs/linereader.c:410 - msgid "garbage at end of character code specification" --msgstr "" -+msgstr "字符编ç è®¾ç½®ç»“æŸä½ç½®çš„无用数æ®" - - #: locale/programs/linereader.c:496 - msgid "unterminated symbolic name" -@@ -2558,18 +2565,17 @@ msgstr "ä¸åº”该使用éžç¬¦å·å­—ç¬¦çš - #: locale/programs/linereader.c:816 - #, c-format - msgid "symbol `%.*s' not in charmap" --msgstr "" -+msgstr "ç¬¦å· `%.*s' 并ä¸åœ¨å­—集对照表中" - - #: locale/programs/linereader.c:837 - #, c-format - msgid "symbol `%.*s' not in repertoire map" --msgstr "" -+msgstr "ç¬¦å· `%.*s' 并ä¸åœ¨ç¼–ç æ˜ å°„档中" - - #: locale/programs/locale-spec.c:130 --#, fuzzy, c-format --#| msgid "unknown set `%s'" -+#, c-format - msgid "unknown name \"%s\"" --msgstr "未知集åˆâ€œ%sâ€" -+msgstr "ä¸æ˜Žå称 “%s†" - - #: locale/programs/locale.c:72 - msgid "System information:" -@@ -2608,26 +2614,28 @@ msgid "" - "NAME\n" - "[-a|-m]" - msgstr "" -+"å称\n" -+"[-a|-m]" - - #: locale/programs/locale.c:192 - #, c-format - msgid "Cannot set LC_CTYPE to default locale" --msgstr "" -+msgstr "无法将 LC_CTYPE 设置为缺çœçš„语区" - - #: locale/programs/locale.c:194 - #, c-format - msgid "Cannot set LC_MESSAGES to default locale" --msgstr "" -+msgstr "无法将 LC_MESSAGES 设置为缺çœçš„语区" - - #: locale/programs/locale.c:207 - #, c-format - msgid "Cannot set LC_COLLATE to default locale" --msgstr "" -+msgstr "无法将 LC_COLLATE 设置为缺çœçš„语区" - - #: locale/programs/locale.c:223 - #, c-format - msgid "Cannot set LC_ALL to default locale" --msgstr "" -+msgstr "无法将 LC_ALL 设置为缺çœçš„语区" - - #: locale/programs/locale.c:519 - #, c-format -@@ -2640,7 +2648,7 @@ msgstr "输入文件:" - - #: locale/programs/localedef.c:123 - msgid "Symbolic character names defined in FILE" --msgstr "" -+msgstr "符å·å­—符的å称定义在文件 FILE 中" - - #: locale/programs/localedef.c:125 - msgid "Source definitions are found in FILE" -@@ -2648,7 +2656,7 @@ msgstr "在 FILE 中找到æºå®šä¹‰" - - #: locale/programs/localedef.c:127 - msgid "FILE contains mapping from symbolic names to UCS4 values" --msgstr "" -+msgstr "文件 FILE 内å«ç¬¦å·å与 UCS4 ç¼–ç ä¹‹é—´çš„映射" - - #: locale/programs/localedef.c:131 - msgid "Create output even if warning messages were issued" -@@ -2663,10 +2671,8 @@ msgid "Optional output file prefix" - msgstr "å¯é€‰çš„输出文件å‰ç¼€" - - #: locale/programs/localedef.c:134 --#, fuzzy --#| msgid "Be strictly POSIX conform" - msgid "Strictly conform to POSIX" --msgstr "严格éµå¾ª POSIX" -+msgstr "严格éµä»Ž POSIX" - - #: locale/programs/localedef.c:136 - msgid "Suppress warnings and information messages" -@@ -2706,11 +2712,11 @@ msgstr "在制作归档文件时å‚考 l - - #: locale/programs/localedef.c:150 - msgid "Generate little-endian output" --msgstr "" -+msgstr "生æˆå°ç«¯åºè¾“出" - - #: locale/programs/localedef.c:152 - msgid "Generate big-endian output" --msgstr "" -+msgstr "生æˆå¤§ç«¯åºè¾“出" - - #: locale/programs/localedef.c:157 - msgid "Compile locale specification" -@@ -2755,6 +2761,10 @@ msgid "" - "\t\t locale path : %s\n" - "%s" - msgstr "" -+"系统的字符对应目录:%s\n" -+"\t\t ç¼–ç å¯¹åº”:%s\n" -+"\t\t 语区路径 :%s\n" -+"%s" - - #: locale/programs/localedef.c:582 - #, c-format -@@ -2767,10 +2777,9 @@ msgid "cannot add already read locale `% - msgstr "无法å†æ¬¡æ·»åŠ å·²ç»è¯»å…¥çš„“%sâ€" - - #: locale/programs/locarchive.c:133 locale/programs/locarchive.c:380 --#, fuzzy, c-format --#| msgid "cannot create temporary file" -+#, c-format - msgid "cannot create temporary file: %s" --msgstr "无法创建临时文件" -+msgstr "无法产生暂时档:%s" - - #: locale/programs/locarchive.c:167 locale/programs/locarchive.c:430 - #, c-format -@@ -2799,10 +2808,9 @@ msgid "cannot change mode of new locale - msgstr "无法改å˜æ–°å½’档文件的模å¼" - - #: locale/programs/locarchive.c:324 --#, fuzzy, c-format --#| msgid "cannot add to locale archive" -+#, c-format - msgid "cannot read data from locale archive" --msgstr "无法添加到区域归档文件" -+msgstr "无法从语区归档读å–æ•°æ®" - - #: locale/programs/locarchive.c:355 - #, c-format -@@ -2926,10 +2934,8 @@ msgid "cannot create output file `%s' fo - msgstr "无法为范畴“%2$sâ€åˆ›å»ºè¾“出文件“%1$sâ€" - - #: locale/programs/locfile.c:956 --#, fuzzy --#| msgid "expect string argument for `copy'" - msgid "expecting string argument for `copy'" --msgstr "“copyâ€éœ€è¦å­—符串å‚æ•°" -+msgstr "`copy' çš„å‚数应该是字串æ‰å¯¹" - - #: locale/programs/locfile.c:960 - msgid "locale name should consist only of portable characters" -@@ -2948,7 +2954,7 @@ msgstr "对“%1$sâ€çš„定义并ä¸ä»¥â - #: locale/programs/repertoire.c:295 - #, c-format - msgid "syntax error in repertoire map definition: %s" --msgstr "" -+msgstr "ç¼–ç æ˜ å°„档中的定义有语法错误: %s" - - #: locale/programs/repertoire.c:271 - msgid "no or value given" -@@ -2962,12 +2968,12 @@ msgstr "无法ä¿å­˜æ–°çš„指令表" - #: locale/programs/repertoire.c:342 - #, c-format - msgid "repertoire map file `%s' not found" --msgstr "" -+msgstr "找ä¸åˆ°ç¼–ç æ˜ å°„æ¡£ `%s'" - - #: login/programs/pt_chown.c:78 - #, c-format - msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n" --msgstr "" -+msgstr "设置与以文件æ述符 %d 指定的主伪终端对应的从属伪终端的所有者ã€ç»„å’Œæƒé™ 。 此辅助程åºç”¨äºŽ “grantpt†函数,并未用于直接从命令行è¿è¡Œã€‚\n" - - #: login/programs/pt_chown.c:92 - #, c-format -@@ -2976,6 +2982,9 @@ msgid "" - "\n" - "%s" - msgstr "" -+"拥有者设置为目å‰ç”¨æˆ·ï¼Œç¾¤ç»„设置为 “%s†,而æƒé™è®¾ç½®ä¸º “%o†。\n" -+"\n" -+"%s" - - #: login/programs/pt_chown.c:198 - #, c-format -@@ -2985,7 +2994,7 @@ msgstr "选项过多" - #: login/programs/pt_chown.c:206 - #, c-format - msgid "needs to be installed setuid `root'" --msgstr "" -+msgstr "需è¦æ˜¯å·²å®‰è£…çš„ setuid “rootâ€" - - #: malloc/mcheck.c:346 - msgid "memory is consistent, library is buggy\n" -@@ -2993,11 +3002,11 @@ msgstr "内存ä¸ä¸€è‡´ï¼Œåº“有错误\n - - #: malloc/mcheck.c:349 - msgid "memory clobbered before allocated block\n" --msgstr "" -+msgstr "内存在分é…之å‰å°±è¢«è¦†å†™äº†\n" - - #: malloc/mcheck.c:352 - msgid "memory clobbered past end of allocated block\n" --msgstr "" -+msgstr "内存覆写超过了ç»è¿‡çš„已分é…的区å—尾部\n" - - #: malloc/mcheck.c:355 - msgid "block freed twice\n" -@@ -3005,13 +3014,11 @@ msgstr "å—释放了两次\n" - - #: malloc/mcheck.c:358 - msgid "bogus mcheck_status, library is buggy\n" --msgstr "" -+msgstr "å†…å­˜æ£€æŸ¥çŠ¶æ€ (mcheck_ststus) 有误,您所用的函数库有问题\n" - - #: malloc/memusage.sh:32 --#, fuzzy --#| msgid "%s: option `%s' requires an argument\n" - msgid "%s: option '%s' requires an argument\\n" --msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" -+msgstr "%s:选项 ‘%s’ 需è¦ä¸€ä¸ªå‚æ•°\\n" - - #: malloc/memusage.sh:38 - msgid "" -@@ -3041,6 +3048,30 @@ msgid "" - "short options.\n" - "\n" - msgstr "" -+"用法:memusage [选项]… ç¨‹åº [PROGRAMOPTION]…\n" -+"剖æžç¨‹åºçš„内存用é‡æƒ…况。\n" -+"\n" -+" -n,--progname=å称 è¦è¢«åˆ†æžçš„的程åºæ–‡ä»¶å称\n" -+" -p,--png=文件 产生 PNG 图形并存为文件\n" -+" -d,--data=文件 产生二进制数æ®å¹¶å­˜ä¸ºæ–‡ä»¶\n" -+" -u,--unbuffered ä¸è¦å°†è¾“出缓冲\n" -+" -b,--buffer=å¤§å° æ”¶é›†<大å°>æ¡é¡¹ç›®åŽå†è¾“出\n" -+" --no-timer ä¸é€šè¿‡è®¡æ—¶å™¨æ”¶é›†é™„加信æ¯\n" -+" -m,--mmap åŒæ—¶è¿½è¸ª mmap 和相关者\n" -+"\n" -+" -?,--help 打å°è¿™ä¸ªè¯´æ˜Žç„¶åŽç¦»å¼€\n" -+" --usage 给出简短用法消æ¯\n" -+" -V,--version 打å°ç‰ˆæœ¬ä¿¡æ¯ç„¶åŽç¦»å¼€\n" -+"\n" -+"下列的选项åªåœ¨äº§ç”Ÿå›¾å½¢è¾“出时有效:\n" -+" -t,--time-based 使图åƒåœ¨æ—¶é—´ä¸Šæ˜¯çº¿æ€§çš„\n" -+" -T,--total åŒæ—¶ç»˜åˆ¶æ€»è®¡å†…存使用é‡å›¾å½¢\n" -+" --title=字串 使用字串作为图形的标题\n" -+" -x,--x-size=å¤§å° å®šåˆ¶å›¾å½¢å¤§å°åƒç´ å®½åº¦\n" -+" -y,--y-size=å¤§å° å®šåˆ¶å›¾å½¢å¤§å°åƒç´ é«˜åº¦\n" -+"\n" -+"长选项的必è¦å‚æ•°åŒæ ·ä¹Ÿæ˜¯ç›¸å¯¹åº”短选项的必è¦å‚数。\n" -+"\n" - - #: malloc/memusage.sh:99 - msgid "" -@@ -3049,6 +3080,10 @@ msgid "" - "\t [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n" - "\t PROGRAM [PROGRAMOPTION]..." - msgstr "" -+"语法:memusage [--data=文件] [--progname=å称] [--png=文件] [--unbuffered]\n" -+"\t [--buffer=大å°] [--no-timer] [--time-based] [--total]\n" -+"\t [--title=字串] [--x-size=大å°] [--y-size=大å°]\n" -+"\t ç¨‹åº [PROGRAMOPTION]…" - - #: malloc/memusage.sh:191 - msgid "memusage: option \\`${1##*=}' is ambiguous" -@@ -3068,7 +3103,7 @@ msgstr "å输出文件" - - #: malloc/memusagestat.c:57 - msgid "STRING" --msgstr "" -+msgstr "字串" - - #: malloc/memusagestat.c:57 - msgid "Title string used in output graphic" -@@ -3076,27 +3111,27 @@ msgstr "ç”¨äºŽè¾“å‡ºå›¾å½¢çš„æ ‡é¢˜å­—ç¬ - - #: malloc/memusagestat.c:58 - msgid "Generate output linear to time (default is linear to number of function calls)" --msgstr "" -+msgstr "产生输出与时间呈线性关系 (缺çœæ˜¯ä¸Žå‡½æ•°è°ƒç”¨æ•°ç›®å‘ˆçº¿æ€§å…³ç³»)" - - #: malloc/memusagestat.c:62 - msgid "Also draw graph for total memory consumption" --msgstr "" -+msgstr "åŒæ—¶å¯¹æ€»å†…存用é‡ä½œå›¾" - - #: malloc/memusagestat.c:63 - msgid "VALUE" --msgstr "" -+msgstr "åƒç´ å€¼" - - #: malloc/memusagestat.c:64 - msgid "Make output graphic VALUE pixels wide" --msgstr "" -+msgstr "定制输出图形的宽度åƒç´ å€¼" - - #: malloc/memusagestat.c:65 - msgid "Make output graphic VALUE pixels high" --msgstr "" -+msgstr "定制输出图形的高度åƒç´ å€¼" - - #: malloc/memusagestat.c:70 - msgid "Generate graphic from memory profiling data" --msgstr "" -+msgstr "从内存性能测试数æ®äº§ç”Ÿå›¾åƒ" - - #: malloc/memusagestat.c:73 - msgid "DATAFILE [OUTFILE]" -@@ -3117,7 +3152,7 @@ msgstr "æˆåŠŸ" - - #: nis/nis_error.h:2 - msgid "Probable success" --msgstr "" -+msgstr "å¯èƒ½æˆåŠŸ" - - #: nis/nis_error.h:3 - msgid "Not found" -@@ -3125,7 +3160,7 @@ msgstr "找ä¸åˆ°" - - #: nis/nis_error.h:4 - msgid "Probably not found" --msgstr "" -+msgstr "å¯èƒ½æ‰¾ä¸åˆ°" - - #: nis/nis_error.h:5 - msgid "Cache expired" -@@ -3145,11 +3180,11 @@ msgstr "æœåŠ¡å™¨å¿™ï¼Œé‡è¯•" - - #: nis/nis_error.h:9 - msgid "Generic system error" --msgstr "通用系统错误" -+msgstr "一般系统错误" - - #: nis/nis_error.h:10 - msgid "First/next chain broken" --msgstr "" -+msgstr "第一个/下一个链å掉了" - - #. TRANS Permission denied; the file permissions do not allow the attempted operation. - #: nis/nis_error.h:11 nis/ypclnt.c:876 sysdeps/gnu/errlist.c:158 -@@ -3162,7 +3197,7 @@ msgstr "ä¸æ˜¯æ‰€æœ‰è€…" - - #: nis/nis_error.h:13 - msgid "Name not served by this server" --msgstr "" -+msgstr "域åæœåŠ¡ä¸æ˜¯ç”±æ­¤æœåŠ¡å™¨æä¾›" - - #: nis/nis_error.h:14 - msgid "Server out of memory" -@@ -3182,7 +3217,7 @@ msgstr "æ“作无效的对象" - - #: nis/nis_error.h:18 - msgid "Malformed name, or illegal name" --msgstr "" -+msgstr "奇怪的å字,或ä¸åˆæ³•çš„åå­—" - - #: nis/nis_error.h:19 - msgid "Unable to create callback" -@@ -3190,7 +3225,7 @@ msgstr "无法创建回调函数" - - #: nis/nis_error.h:20 - msgid "Results sent to callback proc" --msgstr "" -+msgstr "结果å‘é€ç»™è¿”回进程" - - #: nis/nis_error.h:21 - msgid "Not found, no such name" -@@ -3242,7 +3277,7 @@ msgstr "与回调函数交互时出错" - - #: nis/nis_error.h:33 - msgid "Non NIS+ namespace encountered" --msgstr "" -+msgstr "é­é‡è¿å NIS+ 命å规则的å称" - - #: nis/nis_error.h:34 - msgid "Illegal object type for operation" -@@ -3250,7 +3285,7 @@ msgstr "æ“作的éžæ³•å¯¹è±¡ç±»åž‹" - - #: nis/nis_error.h:35 - msgid "Passed object is not the same object on server" --msgstr "" -+msgstr "ç»è¿‡çš„对象与æœåŠ¡å™¨ä¸Šçš„并ä¸ç›¸åŒ" - - #: nis/nis_error.h:36 - msgid "Modify operation failed" -@@ -3282,7 +3317,7 @@ msgstr "NIS+ æœåŠ¡å™¨ä¸å¯ç”¨æˆ–未安 - - #: nis/nis_error.h:43 - msgid "Yes, 42 is the meaning of life" --msgstr "" -+msgstr "是的,42 就是存在的æ„义" - - #: nis/nis_error.h:44 - msgid "Unable to authenticate NIS+ server" -@@ -3302,12 +3337,12 @@ msgstr "无法在æœåŠ¡å™¨ä¸Šåˆ›å»ºè¿›ç¨ - - #: nis/nis_error.h:48 - msgid "Master server busy, full dump rescheduled." --msgstr "" -+msgstr "主è¦æœåŠ¡å™¨å¿™ä¸­ï¼Œå®Œæ•´æ•°æ®è½¬å‚¨å·²è¢«é‡è°ƒåº¦ã€‚" - - #: nis/nis_local_names.c:121 - #, c-format - msgid "LOCAL entry for UID %d in directory %s not unique\n" --msgstr "" -+msgstr "%2$s 目录中 UID 为 %1$d 的项目在 LOCAL 中ä¸æ˜¯å”¯ä¸€çš„\n" - - #: nis/nis_print.c:51 - msgid "UNKNOWN" -@@ -3315,7 +3350,7 @@ msgstr "未知" - - #: nis/nis_print.c:109 - msgid "BOGUS OBJECT\n" --msgstr "" -+msgstr "å‡çš„对象\n" - - #: nis/nis_print.c:112 - msgid "NO OBJECT\n" -@@ -3352,25 +3387,25 @@ msgstr "(未知对象)\n" - #: nis/nis_print.c:167 - #, c-format - msgid "Name : `%s'\n" --msgstr "å称 :“%sâ€\n" -+msgstr "å称:“%sâ€\n" - - #: nis/nis_print.c:168 - #, c-format - msgid "Type : %s\n" --msgstr "类型 : %s\n" -+msgstr "类型:%s\n" - - #: nis/nis_print.c:173 - msgid "Master Server :\n" --msgstr "主æœåŠ¡å™¨ :\n" -+msgstr "主æœåŠ¡å™¨ï¼š\n" - - #: nis/nis_print.c:175 - msgid "Replicate :\n" --msgstr "" -+msgstr "å¤åˆ¶ï¼š\n" - - #: nis/nis_print.c:176 - #, c-format - msgid "\tName : %s\n" --msgstr "\tå称 :%s\n" -+msgstr "\tå称 :%s\n" - - #: nis/nis_print.c:177 - msgid "\tPublic Key : " -@@ -3383,7 +3418,7 @@ msgstr "无。\n" - #: nis/nis_print.c:184 - #, c-format - msgid "Diffie-Hellmann (%d bits)\n" --msgstr "" -+msgstr "Diffie-Hellmann (%d ä½)\n" - - #: nis/nis_print.c:189 - #, c-format -@@ -3392,7 +3427,7 @@ msgstr "RSA (%d ä½)\n" - - #: nis/nis_print.c:192 - msgid "Kerberos.\n" --msgstr "" -+msgstr "Kerberos.\n" - - #: nis/nis_print.c:195 - #, c-format -@@ -3402,7 +3437,7 @@ msgstr "未知 (类型 = %dï¼Œä½ = %d)\ - #: nis/nis_print.c:206 - #, c-format - msgid "\tUniversal addresses (%u)\n" --msgstr "" -+msgstr "\tç»å¯¹åœ°å€ (%u)\n" - - #: nis/nis_print.c:228 - msgid "Time to live : " -@@ -3455,7 +3490,7 @@ msgstr "æœç´¢è·¯å¾„ :%s\n" - - #: nis/nis_print.c:273 - msgid "Columns :\n" --msgstr "" -+msgstr "列数 :\n" - - #: nis/nis_print.c:276 - #, c-format -@@ -3482,7 +3517,7 @@ msgstr "连接到 :%s\n" - #: nis/nis_print.c:302 - #, c-format - msgid "\tEntry data of type %s\n" --msgstr "" -+msgstr "\t型别为 %s 的项目数æ®\n" - - #: nis/nis_print.c:305 - #, c-format -@@ -3567,7 +3602,7 @@ msgstr "对象 #%d:\n" - #: nis/nis_print_group_entry.c:116 - #, c-format - msgid "Group entry for \"%s.%s\" group:\n" --msgstr "" -+msgstr "群组 \"%s.%s\" 群组项目:\n" - - #: nis/nis_print_group_entry.c:124 - msgid " Explicit members:\n" -@@ -3595,19 +3630,19 @@ msgstr " 无递归æˆå‘˜\n" - - #: nis/nis_print_group_entry.c:148 - msgid " Explicit nonmembers:\n" --msgstr "" -+msgstr " 明确的éžæˆå‘˜:\n" - - #: nis/nis_print_group_entry.c:153 - msgid " No explicit nonmembers\n" --msgstr "" -+msgstr " 没有明确的éžæˆå‘˜\n" - - #: nis/nis_print_group_entry.c:156 - msgid " Implicit nonmembers:\n" --msgstr "" -+msgstr " ä¸æ˜Žç¡®çš„éžæˆå‘˜:\n" - - #: nis/nis_print_group_entry.c:161 - msgid " No implicit nonmembers\n" --msgstr "" -+msgstr " 没有ä¸æ˜Žç¡®çš„éžæˆå‘˜\n" - - #: nis/nis_print_group_entry.c:164 - msgid " Recursive nonmembers:\n" -@@ -3615,18 +3650,18 @@ msgstr " 递归éžæˆå‘˜ï¼š\n" - - #: nis/nis_print_group_entry.c:169 - msgid " No recursive nonmembers\n" --msgstr "" -+msgstr " 没有递归的éžæˆå‘˜\n" - - #: nis/nss_nisplus/nisplus-publickey.c:100 - #: nis/nss_nisplus/nisplus-publickey.c:182 - #, c-format - msgid "DES entry for netname %s not unique\n" --msgstr "" -+msgstr "netname %s çš„ DES 项目并ä¸å”¯ä¸€\n" - - #: nis/nss_nisplus/nisplus-publickey.c:219 - #, c-format - msgid "netname2user: missing group id list in `%s'" --msgstr "" -+msgstr "netname2user:在 “%s†中缺少群组识别å·æ¸…å•" - - #: nis/nss_nisplus/nisplus-publickey.c:301 - #: nis/nss_nisplus/nisplus-publickey.c:307 -@@ -3634,12 +3669,12 @@ msgstr "" - #: nis/nss_nisplus/nisplus-publickey.c:381 - #, c-format - msgid "netname2user: (nis+ lookup): %s\n" --msgstr "" -+msgstr "netname2user: (nis+ æœç´¢): %s\n" - - #: nis/nss_nisplus/nisplus-publickey.c:320 - #, c-format - msgid "netname2user: DES entry for %s in directory %s not unique" --msgstr "" -+msgstr "netname2user: %s çš„ DES 项目在 %s 目录下并ä¸æ˜¯å”¯ä¸€çš„" - - #: nis/nss_nisplus/nisplus-publickey.c:338 - #, c-format -@@ -3649,7 +3684,7 @@ msgstr "netname2user:基本å称“%s - #: nis/nss_nisplus/nisplus-publickey.c:394 - #, c-format - msgid "netname2user: LOCAL entry for %s in directory %s not unique" --msgstr "" -+msgstr "netname2user: %s 的本地端项目在 %s 目录下并ä¸æ˜¯å”¯ä¸€çš„" - - #: nis/nss_nisplus/nisplus-publickey.c:401 - msgid "netname2user: should not have uid 0" -@@ -3661,7 +3696,7 @@ msgstr "请求å‚数错误" - - #: nis/ypclnt.c:837 - msgid "RPC failure on NIS operation" --msgstr "" -+msgstr "NIS è¿ä½œ RPC 失败" - - #: nis/ypclnt.c:840 - msgid "Can't bind to server which serves this domain" -@@ -3669,11 +3704,11 @@ msgstr "无法于为此域æœåŠ¡çš„æœåŠ - - #: nis/ypclnt.c:843 - msgid "No such map in server's domain" --msgstr "" -+msgstr "在æœåŠ¡å™¨çš„领域数æ®ä¸­æ‰¾ä¸åˆ°æ­¤ä¸€æ˜ å°„表" - - #: nis/ypclnt.c:846 - msgid "No such key in map" --msgstr "" -+msgstr "在映射表中没有此一键值" - - #: nis/ypclnt.c:849 - msgid "Internal NIS error" -@@ -3685,7 +3720,7 @@ msgstr "本地资æºåˆ†é…失败" - - #: nis/ypclnt.c:855 - msgid "No more records in map database" --msgstr "" -+msgstr "在映射表数æ®åº“中没有其他纪录了" - - #: nis/ypclnt.c:858 - msgid "Can't communicate with portmapper" -@@ -3756,41 +3791,44 @@ msgstr "在主机缓冲区中é‡æ–°åŠ è½ - #: nscd/cache.c:151 - #, c-format - msgid "add new entry \"%s\" of type %s for %s to cache%s" --msgstr "" -+msgstr "加入新的项目 “%sâ€ çš„åž‹æ€ %s 用于 %s 到 cache%s" - - #: nscd/cache.c:153 - msgid " (first)" --msgstr "" -+msgstr " (首先)" -+ -+#: nscd/cache.c:288 -+#, c-format -+msgid "checking for monitored file `%s': %s" -+msgstr "检查监视的文件 '%s': %s" - --#: nscd/cache.c:285 nscd/connections.c:1000 -+#: nscd/cache.c:298 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "无法对文件“%sâ€è¿›è¡Œ stat() æ“作:%s" -+msgid "monitored file `%s` changed (mtime)" -+msgstr "监视的文件 '%s' å˜äº† (mtime)" - --#: nscd/cache.c:331 -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" --msgstr "" -+msgstr "pruning %s 缓存;时间 %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" --msgstr "" -+msgstr "认为中 %s 项目 “%s†,逾时 %" - - #: nscd/connections.c:553 - #, c-format - msgid "invalid persistent database file \"%s\": %s" --msgstr "" -+msgstr "无效的永久性的数æ®åº“文件 “%s†:%s" - - #: nscd/connections.c:561 --#, fuzzy --#| msgid "invalid ELF header" - msgid "uninitialized header" --msgstr "无效的 ELF 头" -+msgstr "未起始的标头" - - #: nscd/connections.c:566 - msgid "header size does not match" --msgstr "" -+msgstr "标头大å°ä¸å»åˆ" - - #: nscd/connections.c:576 - msgid "file size does not match" -@@ -3803,7 +3841,7 @@ msgstr "验è¯å¤±è´¥" - #: nscd/connections.c:607 - #, c-format - msgid "suggested size of table for database %s larger than the persistent database's table" --msgstr "" -+msgstr "用于数æ®åº“ %s 的建议表格大å°å¤§äºŽæ°¸ä¹…性的数æ®åº“表格" - - #: nscd/connections.c:618 nscd/connections.c:702 - #, c-format -@@ -3811,15 +3849,14 @@ msgid "cannot create read-only descripto - msgstr "无法为“%sâ€åˆ›å»ºåªè¯»æ述符;没有 mmap" - - #: nscd/connections.c:634 --#, fuzzy, c-format --#| msgid "cannot open `%s'" -+#, c-format - msgid "cannot access '%s'" --msgstr "无法打开“%sâ€" -+msgstr "无法访问 ‘%s’" - - #: nscd/connections.c:682 - #, c-format - msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart" --msgstr "" -+msgstr "æ•°æ®åº“用于 %s å·²æŸå或被åŒæ­¥åœ°ä½¿ç”¨ï¼›è‹¥å¿…è¦ï¼Œæ‰‹åŠ¨ç§»é™¤ %s 并é‡å¯" - - #: nscd/connections.c:688 - #, c-format -@@ -3839,7 +3876,7 @@ msgstr "无法写入数æ®åº“文件 %s: - #: nscd/connections.c:801 - #, c-format - msgid "cannot set socket to close on exec: %s; disabling paranoia mode" --msgstr "" -+msgstr "无法设置通信端到关闭于 exec:%s; åœç”¨ paranoia 模å¼" - - #: nscd/connections.c:850 - #, c-format -@@ -3861,155 +3898,213 @@ msgstr "无法设定套接字为 exec æ— - msgid "cannot enable socket to accept connections: %s" - msgstr "无法å¯ç”¨å¥—接字以接å—连接:%s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 - #, c-format --msgid "register trace file %s for database %s" --msgstr "" -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "为 `%s' ç¦ç”¨åŸºäºŽ inotify 的监控: %s" -+ -+#: nscd/connections.c:977 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "监控文件 `%s' (%d)" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "为目录 `%s' ç¦ç”¨åŸºäºŽ inotify 的监控: %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:994 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "监视目录 `%s` (%d)" -+ -+#: nscd/connections.c:1022 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "监视文件 %s, 用于数æ®åº“ %s" -+ -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "stat 文件 `%s' 失败;将ç¨åŽå†è¯•: %s" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" --msgstr "" -+msgstr "æ供访问到 FD %d, 用于 %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "无法处ç†æ—§è¯·æ±‚版本 %d;当å‰ç‰ˆæœ¬ä¸º %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" --msgstr "" -+msgstr "由于缺少æƒé™è€Œæ— æ³•å¤„ç†æ¥è‡ª %ld çš„è¦æ±‚" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" --msgstr "" -+msgstr "由于缺少æƒé™è€Œæ— æ³•å¤„ç†æ¥è‡ª '%s' [%ld] çš„è¦æ±‚" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" --msgstr "" -+msgstr "è¦æ±‚无法控柄的由于缺少æƒé™" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "无法写入结果:“%sâ€" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" --msgstr "" -+msgstr "å–得调用程åºè¯†åˆ«ç æ—¶å‘生错误: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" --msgstr "" -+msgstr "无法打开/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" --msgstr "" -+msgstr "无法读å–/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" --msgstr "" -+msgstr "无法å˜æ›´ä¸ºæ—§çš„ UID:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" --msgstr "" -+msgstr "无法å˜æ›´ä¸ºæ—§çš„ GID:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" --msgstr "" -+msgstr "无法å˜æ›´ä¸ºæ—§çš„工作目录:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" --msgstr "" -+msgstr "re-exec 失败:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" --msgstr "" -+msgstr "无法å˜æ›´ç›®å‰çš„工作目录到 “/†:%s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "读å–请求时没有读入足够的数æ®ï¼š%s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "请求中的键过长:%d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "读入请求键的时候没有读入足够的数æ®ï¼š%s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "处ç†è¯·æ±‚:已从进程ID %2$ld 收到请求 (版本 = %1$d)" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "处ç†è¯·æ±‚:已收到请求 (版本 = %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 - #, c-format --msgid "disabled inotify after read error %d" --msgstr "" -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "为 `%s` 忽略 inotify 事件(文件存在)" - --#: nscd/connections.c:2375 --#, fuzzy --#| msgid "cannot initialize archive file" -+#: nscd/connections.c:1968 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "监视文件 `%s' 原为 %s,移除监视" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "移除文件监视 `%s' 失败: %s" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "监视的文件 '%s' 被写入" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "监视父目录 `%s' 原为 %s,移除 `%s' 上的监视" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "监视文件 `%s' 原为 %s,添加监视" -+ -+#: nscd/connections.c:2053 -+#, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "添加文件监视 `%s' 失败: %s" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "åœç”¨åŸºäºŽ inotify 的监控,在读å–错误 %d å‘生åŽ" -+ -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" --msgstr "无法åˆå§‹åŒ–归档文件" -+msgstr "无法åˆå§‹åŒ–æ¡ä»¶å˜é‡" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" --msgstr "" -+msgstr "无法开始清ç†çº¿ç¨‹ï¼›ç»ˆæ­¢ä¸­" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" --msgstr "" -+msgstr "无法开始任何背景工作线程;终止中" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" --msgstr "" -+msgstr "以用户 '%s' 的身分è¿è¡Œ nscd 失败" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "åˆå§‹åŒ– getgrouplist 失败" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist 失败" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups 失败" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" --msgstr "" -+msgstr "写入 %s çš„æ•°æ®è¿‡çŸ­: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "无法在组缓冲区中找到“%sâ€ï¼" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "在组缓冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼" -@@ -4017,41 +4112,37 @@ msgstr "在组缓冲区中é‡æ–°åŠ è½½â€ - #: nscd/grpcache.c:531 - #, c-format - msgid "Invalid numeric gid \"%s\"!" --msgstr "" -+msgstr "无效的 gid 数值 \"%s\"!" - - #: nscd/mem.c:425 - #, c-format - msgid "freed %zu bytes in %s cache" --msgstr "" -+msgstr "在 %2$s 缓存中 %1$zu 字节å¯ç”¨" - - #: nscd/mem.c:568 - #, c-format - msgid "no more memory for database '%s'" --msgstr "" -+msgstr "无内存å¯ç”¨äºŽæ•°æ®åº“ “%s†" - - #: nscd/netgroupcache.c:121 --#, fuzzy, c-format --#| msgid "Haven't found \"%s\" in group cache!" -+#, c-format - msgid "Haven't found \"%s\" in netgroup cache!" --msgstr "无法在组缓冲区中找到“%sâ€ï¼" -+msgstr "尚未在网络群组缓存中找到 “%s†ï¼" - - #: nscd/netgroupcache.c:123 --#, fuzzy, c-format --#| msgid "Reloading \"%s\" in group cache!" -+#, c-format - msgid "Reloading \"%s\" in netgroup cache!" --msgstr "在组缓冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼" -+msgstr "é‡æ–°åœ¨ç½‘络群组缓存中加载 “%s†ï¼" - - #: nscd/netgroupcache.c:495 --#, fuzzy, c-format --#| msgid "Haven't found \"%s\" in group cache!" -+#, c-format - msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!" --msgstr "无法在组缓冲区中找到“%sâ€ï¼" -+msgstr "尚未在网络群组缓存中找到 “%s (%s,%s,%s)†ï¼" - - #: nscd/netgroupcache.c:498 --#, fuzzy, c-format --#| msgid "Reloading \"%s\" in group cache!" -+#, c-format - msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!" --msgstr "在组缓冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼" -+msgstr "é‡æ–°åœ¨ç½‘络群组缓存中加载 “%s (%s,%s,%s)†ï¼" - - #: nscd/nscd.c:106 - msgid "Read configuration data from NAME" -@@ -4059,15 +4150,15 @@ msgstr "从 NAME 中读å–é…置数æ®" - - #: nscd/nscd.c:108 - msgid "Do not fork and display messages on the current tty" --msgstr "" -+msgstr "ä¸åœ¨ç›®å‰çš„ tty 产生å­è¿›ç¨‹ (fork) 以åŠæ˜¾ç¤ºæ¶ˆæ¯" - - #: nscd/nscd.c:110 - msgid "Do not fork, but otherwise behave like a daemon" --msgstr "" -+msgstr "ä¸è¡ç”Ÿï¼Œä½†æ˜¯å¦åˆ™ behave 如åŒå®ˆæŠ¤ç¨‹åº" - - #: nscd/nscd.c:111 - msgid "NUMBER" --msgstr "" -+msgstr "å·ç " - - #: nscd/nscd.c:111 - msgid "Start NUMBER threads" -@@ -4078,22 +4169,20 @@ msgid "Shut the server down" - msgstr "关闭æœåŠ¡å™¨" - - #: nscd/nscd.c:113 --#, fuzzy --#| msgid "Print current configuration statistic" - msgid "Print current configuration statistics" --msgstr "打å°å½“å‰é…置统计" -+msgstr "å°å‡ºç›®å‰ç»„æ€ç»Ÿè®¡" - - #: nscd/nscd.c:114 - msgid "TABLE" --msgstr "" -+msgstr "表格" - - #: nscd/nscd.c:115 - msgid "Invalidate the specified cache" --msgstr "" -+msgstr "使选定的缓存无效" - - #: nscd/nscd.c:116 - msgid "TABLE,yes" --msgstr "" -+msgstr "è¦åˆ¶ä½œè¡¨æ ¼" - - #: nscd/nscd.c:117 - msgid "Use separate cache for each user" -@@ -4101,9 +4190,9 @@ msgstr "为æ¯ä¸ªç”¨æˆ·ä½¿ç”¨åˆ†ç¦»çš„ç¼ - - #: nscd/nscd.c:122 - msgid "Name Service Cache Daemon." --msgstr "" -+msgstr "网域å称缓存精çµ" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "å‚数个数错误" -@@ -4119,10 +4208,9 @@ msgid "already running" - msgstr "å·²ç»åœ¨è¿è¡Œ" - - #: nscd/nscd.c:194 --#, fuzzy, c-format --#| msgid "cannot create directory for output files" -+#, c-format - msgid "cannot create a pipe to talk to the child" --msgstr "无法为输出文件创建目录" -+msgstr "无法为åŒå­è¿›ç¨‹äº¤æµåˆ›å»ºç®¡é“" - - #: nscd/nscd.c:198 - #, c-format -@@ -4131,13 +4219,13 @@ msgstr "无法 fork" - - #: nscd/nscd.c:268 - msgid "cannot change current working directory to \"/\"" --msgstr "" -+msgstr "无法å˜æ›´ç›®å‰çš„工作目录到 “/†" - - #: nscd/nscd.c:276 - msgid "Could not create log file" - msgstr "无法创建日志文件" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "写入ä¸å®Œæ•´" -@@ -4152,21 +4240,20 @@ msgstr "无法读入 invalidate ACK" - msgid "invalidation failed" - msgstr "无效化失败" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "åªæœ‰æ ¹ç”¨æˆ·å…许使用本选项ï¼" - - #: nscd/nscd.c:437 --#, fuzzy, c-format --#| msgid "%s is not a known library type" -+#, c-format - msgid "'%s' is not a known database" --msgstr "%s ä¸æ˜¯å·²çŸ¥ç±»åž‹çš„库" -+msgstr " ‘%s’ 并éžä¸€å·²çŸ¥æ•°æ®åº“" - - #: nscd/nscd.c:452 - #, c-format - msgid "secure services not implemented anymore" --msgstr "" -+msgstr "安全æœåŠ¡ä¸å†å®žçŽ°" - - #: nscd/nscd.c:485 - #, c-format -@@ -4177,23 +4264,26 @@ msgid "" - "For bug reporting instructions, please see:\n" - "%s.\n" - msgstr "" -+"支æŒçš„表:\n" -+"%s\n" -+"\n" -+"è¦èŽ·å¾— bug 报告指示,请è§ï¼š\n" -+"%s。\n" - - #: nscd/nscd.c:635 --#, fuzzy, c-format --#| msgid "lstat failed" -+#, c-format - msgid "'wait' failed\n" --msgstr "lstat æ“作失败" -+msgstr "'wait' 失败\n" - - #: nscd/nscd.c:642 - #, c-format - msgid "child exited with status %d\n" --msgstr "" -+msgstr "å­è¿›ç¨‹ä»¥çŠ¶æ€ %d 退出\n" - - #: nscd/nscd.c:647 --#, fuzzy, c-format --#| msgid "Interrupted by a signal" -+#, c-format - msgid "child terminated by signal %d\n" --msgstr "被信å·ä¸­æ–­" -+msgstr "å­è¿›ç¨‹è¢«ä¿¡å· %d 中断\n" - - #: nscd/nscd_conf.c:54 - #, c-format -@@ -4208,17 +4298,17 @@ msgstr "解æžé”™è¯¯ï¼š%s" - #: nscd/nscd_conf.c:191 - #, c-format - msgid "Must specify user name for server-user option" --msgstr "" -+msgstr "必须为æœåŠ¡å™¨ç”¨æˆ·é€‰é¡¹æŒ‡å®šç”¨æˆ·å" - - #: nscd/nscd_conf.c:198 - #, c-format - msgid "Must specify user name for stat-user option" --msgstr "" -+msgstr "必须为 stat 用户选项指定用户å" - - #: nscd/nscd_conf.c:255 - #, c-format - msgid "Must specify value for restart-interval option" --msgstr "" -+msgstr "必须指定用于 restart-interval 选项的值" - - #: nscd/nscd_conf.c:269 - #, c-format -@@ -4228,42 +4318,42 @@ msgstr "未知的选项:%s %s %s" - #: nscd/nscd_conf.c:282 - #, c-format - msgid "cannot get current working directory: %s; disabling paranoia mode" --msgstr "" -+msgstr "无法å–å¾—ç›®å‰çš„工作目录:%s; åœç”¨ paranoia 模å¼" - - #: nscd/nscd_conf.c:302 - #, c-format - msgid "maximum file size for %s database too small" --msgstr "" -+msgstr "最大值文件大å°ç”¨äºŽ %s æ•°æ®åº“太å°" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "无法写入统计:%s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" --msgstr "" -+msgstr "是" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" --msgstr "" -+msgstr "æ— " - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "åªæœ‰æ ¹ç”¨æˆ·æˆ– %s å…许使用本选项ï¼" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd 未è¿è¡Œï¼\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "无法读入统计数æ®" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4274,27 +4364,27 @@ msgstr "" - "\n" - "%15d æœåŠ¡å™¨è°ƒè¯•çº§åˆ«\n" - --#: nscd/nscd_stat.c:231 --#, c-format -+#: nscd/nscd_stat.c:233 -+#, fuzzy, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" --msgstr "" -+msgstr "%3ud %2uh %2um %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶\n" - --#: nscd/nscd_stat.c:234 --#, c-format -+#: nscd/nscd_stat.c:236 -+#, fuzzy, c-format - msgid " %2uh %2um %2lus server runtime\n" --msgstr "" -+msgstr " %2uh %2um %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶\n" - --#: nscd/nscd_stat.c:236 --#, c-format -+#: nscd/nscd_stat.c:238 -+#, fuzzy, c-format - msgid " %2um %2lus server runtime\n" --msgstr "" -+msgstr " %2um %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶æœŸ\n" - --#: nscd/nscd_stat.c:238 --#, c-format -+#: nscd/nscd_stat.c:240 -+#, fuzzy, c-format - msgid " %2lus server runtime\n" --msgstr "" -+msgstr " %2lus æœåŠ¡å™¨ è¿è¡Œæ—¶æœŸ\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4304,8 +4394,14 @@ msgid "" - "%15lu restart internal\n" - "%15u reload count\n" - msgstr "" -+"%15d ç›®å‰çº¿ç¨‹æ•°é‡\n" -+"%15d 最大线程数é‡\n" -+"%15lu 客户端必须等待的次数\n" -+"%15s paranoia 模å¼å·²å¯ç”¨\n" -+"%15lu 内部é‡æ–°å¯åŠ¨\n" -+"%15u é‡æ–°åŠ è½½è®¡æ•°\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4332,6 +4428,29 @@ msgid "" - "%15 memory allocations failed\n" - "%15s check /etc/%s for changes\n" - msgstr "" -+"\n" -+"%s 缓存:\n" -+"\n" -+"%15s 缓存已å¯ç”¨\n" -+"%15s 缓存为æŒç»­çš„\n" -+"%15s 缓存为共享\n" -+"%15zu 建议的大å°\n" -+"%15zu 总计数æ®ä¿å­˜æ± å¤§å°\n" -+"%15zu 使用的数æ®ä¿å­˜æ± å¤§å°\n" -+"%15lu 正项目的存在时间(秒)\n" -+"%15lu 负项目的存在时间(秒)\n" -+"%15 正项目中找到缓存数\n" -+"%15 负项目中找到缓存数\n" -+"%15 正项目中é—æ¼çš„缓存数\n" -+"%15 负项目中é—æ¼çš„缓存数\n" -+"%15lu%% 缓存找到的比例\n" -+"%15zu ç›®å‰ç¼“存的数é‡å€¼\n" -+"%15zu 最大值缓存数é‡å€¼\n" -+"%15zu å·²æœç´¢æœ€å¤§å€¼é“¾æŽ¥é•¿åº¦\n" -+"%15 rdlock 延迟数é‡\n" -+"%15 wrlock 延迟数é‡\n" -+"%15 内存é…置失败\n" -+"%15s 检查 /etc/%s çš„å˜æ›´\n" - - #: nscd/pwdcache.c:428 - #, c-format -@@ -4346,89 +4465,87 @@ msgstr "在å£ä»¤ç¼“冲区中é‡æ–°åŠ è½ - #: nscd/pwdcache.c:511 - #, c-format - msgid "Invalid numeric uid \"%s\"!" --msgstr "" -+msgstr "无效的 uid 数值 \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" --msgstr "" -+msgstr "失败的打开连接到审核å­ç³»ç»Ÿï¼š%m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" --msgstr "" -+msgstr "设置功能ä¿æŒæ—¶å¤±è´¥" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" --msgstr "" -+msgstr "prctl(KEEPCAPS) 失败" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" --msgstr "" -+msgstr "åˆå§‹åŒ–功能放弃时失败" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init 失败" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" --msgstr "" -+msgstr "放弃功能时失败" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc 失败" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" --msgstr "" -+msgstr "解除设置功能ä¿æŒæ—¶å¤±è´¥" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" --msgstr "" -+msgstr "å†³å®šå¦‚æžœå†…æ ¸æ”¯æŒ SELinux 时失败" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" --msgstr "" -+msgstr "开始 AVC 线程时失败" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "无法创建 AVC é”" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "无法å¯åŠ¨ AVC" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" --msgstr "" -+msgstr "访问矢é‡ç¼“å­˜ (AVC) 开始" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." --msgstr "" -+msgstr "为未定义的对象类型或æƒé™è¯·æ±‚策略时出错。" - --#: nscd/selinux.c:376 --#, fuzzy --#| msgid "Error getting sid from context" -+#: nscd/selinux.c:375 - msgid "Error getting security class for nscd." --msgstr "æ— æ³•ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– sid" -+msgstr "å–å¾— nscd 的安全类时å‘生错误" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." --msgstr "" -+msgstr "å°†æƒé™å \"%s\" 翻译到访问矢é‡ä½æ—¶å‡ºé”™ã€‚" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" --msgstr "" -+msgstr "å–得对等通信端的状æ€ç»„åˆæ—¶å‘生错误" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" --msgstr "" -+msgstr "å–å¾— nscd 的状æ€ç»„åˆæ—¶å‘生错误" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "æ— æ³•ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– sid" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4443,6 +4560,17 @@ msgid "" - "%15u CAV probes\n" - "%15u CAV misses\n" - msgstr "" -+"\n" -+"SELinux AVC 统计:\n" -+"\n" -+"%15u 项目查找\n" -+"%15u 项目符åˆé¡¹ç›®\n" -+"%15u 项目缺少\n" -+"%15u 项目èˆå¼ƒ\n" -+"%15u CAV 查找\n" -+"%15u CAV 符åˆé¡¹ç›®\n" -+"%15u CAV 探查\n" -+"%15u CAV 缺少\n" - - #: nscd/servicescache.c:387 - #, c-format -@@ -4459,10 +4587,8 @@ msgid "database [key ...]" - msgstr "æ•°æ®åº“ [é”® ...]" - - #: nss/getent.c:58 --#, fuzzy --#| msgid "CONF" - msgid "CONFIG" --msgstr "CONF" -+msgstr "组æ€" - - #: nss/getent.c:58 - msgid "Service configuration to be used" -@@ -4470,56 +4596,54 @@ msgstr "è¦ä½¿ç”¨çš„æœåŠ¡é…ç½®" - - #: nss/getent.c:59 - msgid "disable IDN encoding" --msgstr "" -+msgstr "åœç”¨ IDN ç¼–ç " - - #: nss/getent.c:64 --#, fuzzy --#| msgid "getent - get entries from administrative database." - msgid "Get entries from administrative database." --msgstr "getent - é‡ç®¡ç†æ•°æ®åº“获å–æ¡ç›®ã€‚" -+msgstr "从管ç†æ•°æ®åº“å–å¾—æ¡ç›®ã€‚" - - #: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522 - #, c-format - msgid "Enumeration not supported on %s\n" - msgstr "%s ä¸æ”¯æŒæžšä¸¾\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "未知的数æ®åº“å" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "支æŒçš„æ•°æ®åº“:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "未知的数æ®åº“:%s\n" - - #: nss/makedb.c:119 - msgid "Convert key to lower case" --msgstr "" -+msgstr "转æ¢é”®è½¬æ¢ä¸ºå°å†™" - - #: nss/makedb.c:122 - msgid "Do not print messages while building database" --msgstr "" -+msgstr "ä¸å°å‡ºæ¶ˆæ¯å½“创建数æ®åº“" - - #: nss/makedb.c:124 - msgid "Print content of database file, one entry a line" --msgstr "" -+msgstr "å°å‡ºå†…容的数æ®åº“文件,æ¯é¡¹ä¸€è¡Œ" - - #: nss/makedb.c:125 - msgid "CHAR" --msgstr "" -+msgstr "字符" - - #: nss/makedb.c:126 - msgid "Generated line not part of iteration" --msgstr "" -+msgstr "产生的行ä¸æ˜¯è¿­ä»£çš„一部分" - - #: nss/makedb.c:131 - msgid "Create simple database from textual input." --msgstr "" -+msgstr "从文本输入创建简å•çš„æ•°æ®åº“。" - - #: nss/makedb.c:134 - msgid "" -@@ -4532,21 +4656,19 @@ msgstr "" - "-u 输入文件" - - #: nss/makedb.c:227 --#, fuzzy, c-format --#| msgid "cannot open database file `%s': %s" -+#, c-format - msgid "cannot open database file `%s'" --msgstr "无法打开数æ®åº“文件“%sâ€: %s" -+msgstr "无法打开数æ®åº“文件 %s" - - #: nss/makedb.c:272 - #, c-format - msgid "no entries to be processed" --msgstr "" -+msgstr "没有æ¡ç›®å¯ä¾›å¤„ç†" - - #: nss/makedb.c:282 --#, fuzzy, c-format --#| msgid "cannot create temporary file" -+#, c-format - msgid "cannot create temporary file name" --msgstr "无法创建临时文件" -+msgstr "无法创建暂存文件å称" - - #: nss/makedb.c:288 - #, c-format -@@ -4554,26 +4676,23 @@ msgid "cannot create temporary file" - msgstr "无法创建临时文件" - - #: nss/makedb.c:304 --#, fuzzy, c-format --#| msgid "cannot map locale archive file" -+#, c-format - msgid "cannot stat newly created file" --msgstr "无法映射区域归档文件" -+msgstr "无法å–得新创建文件的状æ€" - - #: nss/makedb.c:315 --#, fuzzy, c-format --#| msgid "cannot create temporary file" -+#, c-format - msgid "cannot rename temporary file" --msgstr "无法创建临时文件" -+msgstr "无法é‡å‘½å暂存文件" - - #: nss/makedb.c:531 nss/makedb.c:554 --#, fuzzy, c-format --#| msgid "cannot create searchlist" -+#, c-format - msgid "cannot create search tree" --msgstr "无法创建æœç´¢åˆ—表" -+msgstr "无法创建æœç´¢æ ‘" - - #: nss/makedb.c:560 - msgid "duplicate key" --msgstr "" -+msgstr "é‡å¤é”®å€¼" - - #: nss/makedb.c:572 - #, c-format -@@ -4581,34 +4700,29 @@ msgid "problems while reading `%s'" - msgstr "读å–“%sâ€æ—¶å‡ºé”™" - - #: nss/makedb.c:799 --#, fuzzy, c-format --#| msgid "while writing database file" -+#, c-format - msgid "failed to write new database file" --msgstr "当写数æ®åº“文件" -+msgstr "写入新数æ®åº“文件时失败" - - #: nss/makedb.c:812 --#, fuzzy, c-format --#| msgid "cannot write to database file %s: %s" -+#, c-format - msgid "cannot stat database file" --msgstr "无法写入数æ®åº“文件 %s: %s" -+msgstr "无法å–å¾—æ•°æ®åº“文件的状æ€" - - #: nss/makedb.c:817 --#, fuzzy, c-format --#| msgid "cannot open database file `%s': %s" -+#, c-format - msgid "cannot map database file" --msgstr "无法打开数æ®åº“文件“%sâ€: %s" -+msgstr "无法映射数æ®åº“文件" - - #: nss/makedb.c:820 --#, fuzzy, c-format --#| msgid "while writing database file" -+#, c-format - msgid "file not a database file" --msgstr "当写数æ®åº“文件" -+msgstr "文件ä¸æ˜¯æ•°æ®åº“文件" - - #: nss/makedb.c:871 --#, fuzzy, c-format --#| msgid "cannot open output file `%s' for category `%s'" -+#, c-format - msgid "cannot set file creation context for `%s'" --msgstr "无法为范畴“%2$sâ€æ‰“开输出文件“%1$sâ€" -+msgstr "无法为 %s 设置文件创建语境" - - #: posix/getconf.c:400 - #, c-format -@@ -4618,7 +4732,7 @@ msgstr "用法:%s [-v 规范] å˜é‡å - #: posix/getconf.c:403 - #, c-format - msgid " %s -a [pathname]\n" --msgstr "" -+msgstr " %s -a [路径å称]\n" - - #: posix/getconf.c:479 - #, c-format -@@ -4631,6 +4745,13 @@ msgid "" - "environment SPEC.\n" - "\n" - msgstr "" -+"用法:getconf [-v SPEC] VAR\n" -+" 或: getconf [-v SPEC] PATH_VAR 路径\n" -+"\n" -+"å–å¾—å˜é‡ VAR 的组æ€å€¼ï¼Œæˆ–是å˜é‡ PATH_VAR\n" -+"用于路径 PATH。 如果已æä¾› SPEC,就给出用于编译的\n" -+"环境 SPEC 值。\n" -+"\n" - - #: posix/getconf.c:537 - #, c-format -@@ -4640,7 +4761,7 @@ msgstr "未知的规范“%sâ€" - #: posix/getconf.c:589 - #, c-format - msgid "Couldn't execute %s" --msgstr "" -+msgstr "无法è¿è¡Œ %s" - - #: posix/getconf.c:633 posix/getconf.c:649 - msgid "undefined" -@@ -4652,71 +4773,60 @@ msgid "Unrecognized variable `%s'" - msgstr "ä¸å¯è¯†åˆ«çš„å˜é‡â€œ%sâ€" - - #: posix/getopt.c:592 posix/getopt.c:621 --#, fuzzy, c-format --#| msgid "%s: option `%s' is ambiguous\n" -+#, c-format - msgid "%s: option '%s' is ambiguous; possibilities:" --msgstr "%s:选项“%sâ€å…·æœ‰äºŒä¹‰æ€§\n" -+msgstr "%s:选项 ‘%s’ 是模棱两å¯çš„ï¼›å¯èƒ½æ˜¯ï¼š" - - #: posix/getopt.c:662 posix/getopt.c:666 --#, fuzzy, c-format --#| msgid "%s: option `--%s' doesn't allow an argument\n" -+#, c-format - msgid "%s: option '--%s' doesn't allow an argument\n" --msgstr "%s:选项“--%sâ€ä¸æŽ¥å—任何å‚æ•°\n" -+msgstr "%s: 选项 `--%s' ä¸å…许附加å‚æ•°\n" - - #: posix/getopt.c:675 posix/getopt.c:680 --#, fuzzy, c-format --#| msgid "%s: option `%c%s' doesn't allow an argument\n" -+#, c-format - msgid "%s: option '%c%s' doesn't allow an argument\n" --msgstr "%s:选项“%c%sâ€ä¸æŽ¥å—å‚æ•°\n" -+msgstr "%s: 选项 `%c%s' ä¸å…许附加å‚æ•°\n" - - #: posix/getopt.c:723 posix/getopt.c:742 --#, fuzzy, c-format --#| msgid "%s: option `%s' requires an argument\n" -+#, c-format - msgid "%s: option '--%s' requires an argument\n" --msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" -+msgstr "%s:选项 ‘--%s’ 需è¦ä¸€ä¸ªå‚æ•°\n" - - #: posix/getopt.c:780 posix/getopt.c:783 --#, fuzzy, c-format --#| msgid "%s: unrecognized option `--%s'\n" -+#, c-format - msgid "%s: unrecognized option '--%s'\n" --msgstr "%s:无法识别的选项“--%sâ€\n" -+msgstr "%s: 未知的选项 `--%s'\n" - - #: posix/getopt.c:791 posix/getopt.c:794 --#, fuzzy, c-format --#| msgid "%s: unrecognized option `%c%s'\n" -+#, c-format - msgid "%s: unrecognized option '%c%s'\n" --msgstr "%s:无法识别的选项“%c%sâ€\n" -+msgstr "%s: 未知的选项 `%c%s'\n" - - #: posix/getopt.c:843 posix/getopt.c:846 --#, fuzzy, c-format --#| msgid "%s: invalid option -- %c\n" -+#, c-format - msgid "%s: invalid option -- '%c'\n" --msgstr "%s:无效选项 -- %c\n" -+msgstr "%s: ä¸é€‚用的选项 -- %c\n" - - #: posix/getopt.c:899 posix/getopt.c:916 posix/getopt.c:1126 - #: posix/getopt.c:1144 --#, fuzzy, c-format --#| msgid "%s: option requires an argument -- %c\n" -+#, c-format - msgid "%s: option requires an argument -- '%c'\n" --msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n" -+msgstr "%s: 选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n" - - #: posix/getopt.c:972 posix/getopt.c:988 --#, fuzzy, c-format --#| msgid "%s: option `-W %s' is ambiguous\n" -+#, c-format - msgid "%s: option '-W %s' is ambiguous\n" --msgstr "%s:选项“-W %sâ€å…·æœ‰äºŒä¹‰æ€§\n" -+msgstr "%s: 选项 `-W %s' å«ä¹‰ä¸æ¸…\n" - - #: posix/getopt.c:1012 posix/getopt.c:1030 --#, fuzzy, c-format --#| msgid "%s: option `-W %s' doesn't allow an argument\n" -+#, c-format - msgid "%s: option '-W %s' doesn't allow an argument\n" --msgstr "%s:选项“-W %sâ€ä¸æŽ¥å—å‚æ•°\n" -+msgstr "%s: 选项 `-W %s' ä¸å…许附加å‚æ•°\n" - - #: posix/getopt.c:1051 posix/getopt.c:1069 --#, fuzzy, c-format --#| msgid "%s: option `%s' requires an argument\n" -+#, c-format - msgid "%s: option '-W %s' requires an argument\n" --msgstr "%s:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\n" -+msgstr "%s:选项 ‘-W %s’ 需è¦ä¸€ä¸ªå‚æ•°\n" - - #: posix/regcomp.c:140 - msgid "No match" -@@ -4728,7 +4838,7 @@ msgstr "无效的常规表达å¼" - - #: posix/regcomp.c:146 - msgid "Invalid collation character" --msgstr "" -+msgstr "ä¸é€‚用的对照字符" - - #: posix/regcomp.c:149 - msgid "Invalid character class name" -@@ -4736,7 +4846,7 @@ msgstr "无效的字符类å" - - #: posix/regcomp.c:152 - msgid "Trailing backslash" --msgstr "" -+msgstr "尾端的å斜线" - - #: posix/regcomp.c:155 - msgid "Invalid back reference" -@@ -4760,7 +4870,7 @@ msgstr "无效的 \\{\\} 的内容" - - #: posix/regcomp.c:170 - msgid "Invalid range end" --msgstr "" -+msgstr "ä¸é€‚用的范围结æŸ" - - #: posix/regcomp.c:173 - msgid "Memory exhausted" -@@ -4786,7 +4896,7 @@ msgstr "ä¸åŒ¹é…çš„ ) 或 \\)" - msgid "No previous regular expression" - msgstr "没有å‰ä¸€ä¸ªå¸¸è§„表达å¼" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "å‚数为 null 或未设置" - -@@ -4841,227 +4951,188 @@ msgstr "%s:行 %d:错误命令“%sâ - #: resolv/res_hconf.c:283 - #, c-format - msgid "%s: line %d: ignoring trailing garbage `%s'\n" --msgstr "" -+msgstr "%s: è¡Œ %d: æ­£åœ¨å¿½ç•¥å°¾ç«¯çš„æ— ç”¨æ•°æ® `%s'\n" - - #: stdio-common/psiginfo-data.h:2 --#, fuzzy --#| msgid "Illegal seek" - msgid "Illegal opcode" --msgstr "éžæ³• seek æ“作" -+msgstr "ä¸åˆæ³•çš„ opcode" - - #: stdio-common/psiginfo-data.h:3 --#, fuzzy --#| msgid "Illegal seek" - msgid "Illegal operand" --msgstr "éžæ³• seek æ“作" -+msgstr "ä¸åˆæ³•çš„算符" - - #: stdio-common/psiginfo-data.h:4 - msgid "Illegal addressing mode" --msgstr "" -+msgstr "ä¸åˆæ³•çš„寻å€æ¨¡å¼" - - #: stdio-common/psiginfo-data.h:5 --#, fuzzy --#| msgid "Illegal seek" - msgid "Illegal trap" --msgstr "éžæ³• seek æ“作" -+msgstr "ä¸åˆæ³•çš„陷阱" - - #: stdio-common/psiginfo-data.h:6 - msgid "Privileged opcode" --msgstr "" -+msgstr "需è¦æƒé™çš„ opcode" - - #: stdio-common/psiginfo-data.h:7 - msgid "Privileged register" --msgstr "" -+msgstr "需è¦æƒé™çš„暂存器" - - #: stdio-common/psiginfo-data.h:8 --#, fuzzy --#| msgid "preprocessor error" - msgid "Coprocessor error" --msgstr "预处ç†é”™è¯¯" -+msgstr "辅助处ç†å™¨é”™è¯¯" - - #: stdio-common/psiginfo-data.h:9 --#, fuzzy --#| msgid "Internal NIS error" - msgid "Internal stack error" --msgstr "内部 NIS 错误" -+msgstr "内部堆栈错误" - - #: stdio-common/psiginfo-data.h:12 - msgid "Integer divide by zero" --msgstr "" -+msgstr "整数被零除" - - #: stdio-common/psiginfo-data.h:13 --#, fuzzy --#| msgid "time overflow" - msgid "Integer overflow" --msgstr "时间溢出" -+msgstr "整数溢出" - - #: stdio-common/psiginfo-data.h:14 --#, fuzzy --#| msgid "Floating point exception" - msgid "Floating-point divide by zero" --msgstr "浮点数例外" -+msgstr "浮点数被零除" - - #: stdio-common/psiginfo-data.h:15 --#, fuzzy --#| msgid "Floating point exception" - msgid "Floating-point overflow" --msgstr "浮点数例外" -+msgstr "浮点数溢出" - - #: stdio-common/psiginfo-data.h:16 --#, fuzzy --#| msgid "Floating point exception" - msgid "Floating-point underflow" --msgstr "浮点数例外" -+msgstr "浮点数下é™æº¢å‡º" - - #: stdio-common/psiginfo-data.h:17 --#, fuzzy --#| msgid "Floating point exception" - msgid "Floating-poing inexact result" --msgstr "浮点数例外" -+msgstr "ä¸ç²¾ç¡®çš„浮点数结果" - - #: stdio-common/psiginfo-data.h:18 --#, fuzzy --#| msgid "Invalid object for operation" - msgid "Invalid floating-point operation" --msgstr "æ“作无效的对象" -+msgstr "无效的浮点数æ“作" - - #: stdio-common/psiginfo-data.h:19 --#, fuzzy --#| msgid "Link number out of range" - msgid "Subscript out of range" --msgstr "连接数超出范围" -+msgstr "注标超出范围" - - #: stdio-common/psiginfo-data.h:22 - msgid "Address not mapped to object" --msgstr "" -+msgstr "地å€æ²¡æœ‰æ˜ å°„到对象" - - #: stdio-common/psiginfo-data.h:23 - msgid "Invalid permissions for mapped object" --msgstr "" -+msgstr "对于映射对象的æƒé™æ— æ•ˆ" - - #: stdio-common/psiginfo-data.h:26 --#, fuzzy --#| msgid "Invalid argument" - msgid "Invalid address alignment" --msgstr "无效的å‚æ•°" -+msgstr "无效的地å€å¯¹é½" - - #: stdio-common/psiginfo-data.h:27 - msgid "Nonexisting physical address" --msgstr "" -+msgstr "ä¸å­˜åœ¨çš„实体地å€" - - #: stdio-common/psiginfo-data.h:28 - msgid "Object-specific hardware error" --msgstr "" -+msgstr "对象特定的硬件错误" - - #: stdio-common/psiginfo-data.h:31 - msgid "Process breakpoint" --msgstr "" -+msgstr "进程中断点" - - #: stdio-common/psiginfo-data.h:32 - msgid "Process trace trap" --msgstr "" -+msgstr "进程追踪陷阱" - - #: stdio-common/psiginfo-data.h:35 --#, fuzzy --#| msgid "Child exited" - msgid "Child has exited" --msgstr "å­è¿›ç¨‹å·²é€€å‡º" -+msgstr "å­è¿›ç¨‹å·²ç»“æŸ" - - #: stdio-common/psiginfo-data.h:36 - msgid "Child has terminated abnormally and did not create a core file" --msgstr "" -+msgstr "å­è¿›ç¨‹å·²å¼‚常终止且未创建内存文件" - - #: stdio-common/psiginfo-data.h:37 - msgid "Child has terminated abnormally and created a core file" --msgstr "" -+msgstr "å­è¿›ç¨‹å¼‚常终止,创建了内存转储文件" - - #: stdio-common/psiginfo-data.h:38 - msgid "Traced child has trapped" --msgstr "" -+msgstr "追踪的å­è¿›ç¨‹å·²è½å…¥é™·é˜±" - - #: stdio-common/psiginfo-data.h:39 --#, fuzzy --#| msgid "Child exited" - msgid "Child has stopped" --msgstr "å­è¿›ç¨‹å·²é€€å‡º" -+msgstr "å­è¿›ç¨‹å·²åœæ­¢" - - #: stdio-common/psiginfo-data.h:40 - msgid "Stopped child has continued" --msgstr "" -+msgstr "åœæ­¢çš„å­è¿›ç¨‹å·²ç»§ç»­" - - #: stdio-common/psiginfo-data.h:43 --#, fuzzy --#| msgid "No data available" - msgid "Data input available" --msgstr "没有å¯ç”¨çš„æ•°æ®" -+msgstr "æ•°æ®è¾“å…¥å¯ç”¨" - - #: stdio-common/psiginfo-data.h:44 --#, fuzzy --#| msgid "No buffer space available" - msgid "Output buffers available" --msgstr "没有å¯ç”¨çš„缓冲区空间" -+msgstr "输出缓冲区å¯ç”¨" - - #: stdio-common/psiginfo-data.h:45 --#, fuzzy --#| msgid "No buffer space available" - msgid "Input message available" --msgstr "没有å¯ç”¨çš„缓冲区空间" -+msgstr "输入消æ¯å¯ç”¨" - - #: stdio-common/psiginfo-data.h:46 - msgid "I/O error" - msgstr "I/O 错误" - - #: stdio-common/psiginfo-data.h:47 --#, fuzzy --#| msgid "RPC program not available" - msgid "High priority input available" --msgstr "RPC 程åºä¸å¯ç”¨" -+msgstr "高优先æƒè¾“å…¥å¯ç”¨" - - #: stdio-common/psiginfo-data.h:48 - msgid "Device disconnected" --msgstr "" -+msgstr "设备已ç»ç»“æŸè¿žæŽ¥" - - #: stdio-common/psiginfo.c:139 - msgid "Signal sent by kill()" --msgstr "" -+msgstr "kill() å·²å‘é€ä¿¡å·" - - #: stdio-common/psiginfo.c:142 - msgid "Signal sent by sigqueue()" --msgstr "" -+msgstr "sigqueue() å·²å‘é€ä¿¡å·" - - #: stdio-common/psiginfo.c:145 - msgid "Signal generated by the expiration of a timer" --msgstr "" -+msgstr "计时器的逾期已产生信å·" - - #: stdio-common/psiginfo.c:148 - msgid "Signal generated by the completion of an asynchronous I/O request" --msgstr "" -+msgstr "异步 I/O è¦æ±‚的完æˆå·²äº§ç”Ÿä¿¡å·" - - #: stdio-common/psiginfo.c:152 - msgid "Signal generated by the arrival of a message on an empty message queue" --msgstr "" -+msgstr "空消æ¯é˜Ÿåˆ—中到达的消æ¯å·²äº§ç”Ÿä¿¡å·" - - #: stdio-common/psiginfo.c:157 - msgid "Signal sent by tkill()" --msgstr "" -+msgstr "tkill() å·²å‘é€ä¿¡å·" - - #: stdio-common/psiginfo.c:162 - msgid "Signal generated by the completion of an asynchronous name lookup request" --msgstr "" -+msgstr "异步å称查找è¦æ±‚的完æˆå·²äº§ç”Ÿä¿¡å·" - - #: stdio-common/psiginfo.c:168 - msgid "Signal generated by the completion of an I/O request" --msgstr "" -+msgstr "I/O è¦æ±‚的完æˆå·²äº§ç”Ÿä¿¡å·" - - #: stdio-common/psiginfo.c:174 - msgid "Signal sent by the kernel" --msgstr "" -+msgstr "内核已å‘é€ä¿¡å·" - - #: stdio-common/psiginfo.c:198 --#, fuzzy, c-format --#| msgid "Unknown signal %d" -+#, c-format - msgid "Unknown signal %d\n" --msgstr "æœªçŸ¥ä¿¡å· %d" -+msgstr "ä¸æ˜Žä¿¡å· %d\n" - - #: stdio-common/psignal.c:43 - #, c-format -@@ -5095,30 +5166,27 @@ msgstr "æœªçŸ¥ä¿¡å· %d" - #: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 - #: sunrpc/xdr.c:631 sunrpc/xdr.c:793 sunrpc/xdr_array.c:97 - #: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:76 --#, fuzzy --#| msgid "out of memory" - msgid "out of memory\n" --msgstr "内存ä¸è¶³" -+msgstr "内存ä¸è¶³\n" - - #: sunrpc/auth_unix.c:349 - msgid "auth_unix.c: Fatal marshalling problem" --msgstr "" -+msgstr "auth_unix.c: 严é‡çš„编组问题" - - #: sunrpc/clnt_perr.c:95 sunrpc/clnt_perr.c:111 - #, c-format - msgid "%s: %s; low version = %lu, high version = %lu" --msgstr "" -+msgstr "%s: %s; 低版本 = %lu,高版本 = %lu" - - #: sunrpc/clnt_perr.c:102 - #, c-format - msgid "%s: %s; why = %s\n" --msgstr "" -+msgstr "%s: %s; 原因 = %s\n" - - #: sunrpc/clnt_perr.c:104 --#, fuzzy, c-format --#| msgid "(unknown authentication error - %d)" -+#, c-format - msgid "%s: %s; why = (unknown authentication error - %d)\n" --msgstr "(未知的认è¯é”™è¯¯ - %d)" -+msgstr "%s: %s; 原因 = (ä¸æ˜Žçš„认è¯é”™è¯¯ - %d)\n" - - #: sunrpc/clnt_perr.c:153 - msgid "RPC: Success" -@@ -5162,7 +5230,7 @@ msgstr "RPC:程åº/版本ä¸åŒ¹é…" - - #: sunrpc/clnt_perr.c:192 - msgid "RPC: Procedure unavailable" --msgstr "" -+msgstr "RPC: 无法å–得进程" - - #: sunrpc/clnt_perr.c:196 - msgid "RPC: Server can't decode arguments" -@@ -5182,7 +5250,7 @@ msgstr "RPC:未知åè®®" - - #: sunrpc/clnt_perr.c:212 - msgid "RPC: Port mapper failure" --msgstr "" -+msgstr "RPC: 通信阜映射错误" - - #: sunrpc/clnt_perr.c:216 - msgid "RPC: Program not registered" -@@ -5234,7 +5302,7 @@ msgstr "clnt_raw.c: 致命的头编åºé” - - #: sunrpc/pm_getmaps.c:77 - msgid "pmap_getmaps.c: rpc problem" --msgstr "" -+msgstr "pmap_getmaps.c: 远程进程调用问题" - - #: sunrpc/pmap_clnt.c:127 - msgid "Cannot register service" -@@ -5254,7 +5322,7 @@ msgstr "无法å‘é€å¹¿æ’­åŒ…" - - #: sunrpc/pmap_rmt.c:327 - msgid "Broadcast poll problem" --msgstr "" -+msgstr "Broadcast 调查有问题" - - #: sunrpc/pmap_rmt.c:340 - msgid "Cannot receive reply to broadcast" -@@ -5276,10 +5344,9 @@ msgid "%s: while writing output %s: %m" - msgstr "%s:写入输出 %s 时:%m" - - #: sunrpc/rpc_main.c:336 sunrpc/rpc_main.c:375 --#, fuzzy, c-format --#| msgid "cannot find C preprocessor: %s \n" -+#, c-format - msgid "cannot find C preprocessor: %s\n" --msgstr "无法找到 C 预处ç†å™¨ï¼š%s\n" -+msgstr "找ä¸åˆ° C å‰ç½®å¤„ç†å™¨ï¼š%s\n" - - #: sunrpc/rpc_main.c:411 - #, c-format -@@ -5304,7 +5371,7 @@ msgstr "rpcgen:定义过多\n" - #: sunrpc/rpc_main.c:1101 - #, c-format - msgid "rpcgen: arglist coding error\n" --msgstr "" -+msgstr "rpcgen: arglist ç¼–ç é”™è¯¯\n" - - #. TRANS: the file will not be removed; this is an - #. TRANS: informative message. -@@ -5321,7 +5388,7 @@ msgstr "æ— æ³•æŒ‡å®šå¤šä¸ªè¾“å…¥æ–‡ä»¶ï¼ - #: sunrpc/rpc_main.c:1349 - #, c-format - msgid "This implementation doesn't support newstyle or MT-safe code!\n" --msgstr "" -+msgstr "此实现方å¼ä¸æ”¯æŒæ–°å¼ (newstyle) 或多线程安全 (MT-Safe) 的程åº!\n" - - #: sunrpc/rpc_main.c:1358 - #, c-format -@@ -5336,7 +5403,7 @@ msgstr "无法在未使用 TIRPC çš„æ—¶å - #: sunrpc/rpc_main.c:1374 - #, c-format - msgid "Cannot use table flags with newstyle!\n" --msgstr "无法以新风格使用表格标志ï¼\n" -+msgstr "无法以新风格 (newstyle) 使用表格标志ï¼\n" - - #: sunrpc/rpc_main.c:1393 - #, c-format -@@ -5376,141 +5443,137 @@ msgstr "\t%s [-n 网络 id]* [-o 输出æ - #: sunrpc/rpc_main.c:1421 - #, c-format - msgid "options:\n" --msgstr "" -+msgstr "选项:\n" - - #: sunrpc/rpc_main.c:1422 - #, c-format - msgid "-a\t\tgenerate all files, including samples\n" --msgstr "" -+msgstr "-a\t\t产生所有文件,包å«æ ·æœ¬\n" - - #: sunrpc/rpc_main.c:1423 - #, c-format - msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n" --msgstr "" -+msgstr "-b\t\tå‘åŽå…¼å®¹æ¨¡å¼ (产生用于 SunOS 4.1 çš„ç¼–ç )\n" - - #: sunrpc/rpc_main.c:1424 - #, c-format - msgid "-c\t\tgenerate XDR routines\n" --msgstr "" -+msgstr "-c\t\t产生 XDR 例程\n" - - #: sunrpc/rpc_main.c:1425 - #, c-format - msgid "-C\t\tANSI C mode\n" --msgstr "" -+msgstr "-C\t\tANSI C 模å¼\n" - - #: sunrpc/rpc_main.c:1426 - #, c-format - msgid "-Dname[=value]\tdefine a symbol (same as #define)\n" --msgstr "" -+msgstr "-Då称[=值]\tå®šä¹‰ä¸€ä¸ªç¬¦å· (å¦‚åŒ #define)\n" - - #: sunrpc/rpc_main.c:1427 - #, c-format - msgid "-h\t\tgenerate header file\n" --msgstr "" -+msgstr "-h\t\t产生标头档\n" - - #: sunrpc/rpc_main.c:1428 - #, c-format - msgid "-i size\t\tsize at which to start generating inline code\n" --msgstr "" -+msgstr "-i 大å°\t\tå¯å§‹äº§ç”Ÿå†…è”ç¼–ç çš„大å°\n" - - #: sunrpc/rpc_main.c:1429 - #, c-format - msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n" --msgstr "" -+msgstr "-I\t\t产生在æœåŠ¡å™¨ä¸­æ”¯æŒçš„ inetd ç¼–ç  (用于 SunOS 4.1)\n" - - #: sunrpc/rpc_main.c:1430 - #, c-format - msgid "-K seconds\tserver exits after K seconds of inactivity\n" --msgstr "" -+msgstr "-K 秒\tä¸ä½œç”¨ K 秒之åŽç¦»å¼€æœåŠ¡å™¨\n" - - #: sunrpc/rpc_main.c:1431 - #, c-format - msgid "-l\t\tgenerate client side stubs\n" --msgstr "" -+msgstr "-l\t\t产生客户端残余\n" - - #: sunrpc/rpc_main.c:1432 - #, c-format - msgid "-L\t\tserver errors will be printed to syslog\n" --msgstr "" -+msgstr "-L\t\tæœåŠ¡å™¨é”™è¯¯å°†è¢«æ‰“å°åˆ° syslog\n" - - #: sunrpc/rpc_main.c:1433 - #, c-format - msgid "-m\t\tgenerate server side stubs\n" --msgstr "" -+msgstr "-m\t\t产生æœåŠ¡å™¨ç«¯æ®‹ä½™\n" - - #: sunrpc/rpc_main.c:1434 - #, c-format - msgid "-M\t\tgenerate MT-safe code\n" --msgstr "" -+msgstr "-M\t\t产生多线程安全代ç \n" - - #: sunrpc/rpc_main.c:1435 - #, c-format - msgid "-n netid\tgenerate server code that supports named netid\n" --msgstr "" -+msgstr "-n netid\t产生支æŒå…·å netid çš„æœåŠ¡å™¨ç¼–ç \n" - - #: sunrpc/rpc_main.c:1436 - #, c-format - msgid "-N\t\tsupports multiple arguments and call-by-value\n" --msgstr "" -+msgstr "-N\t\t支æŒå¤šé‡å‚数和传值调用\n" - - #: sunrpc/rpc_main.c:1437 --#, fuzzy, c-format --#| msgid "cannot generate output file" -+#, c-format - msgid "-o outfile\tname of the output file\n" --msgstr "无法生æˆè¾“出文件" -+msgstr "-o 输出档\t输出文件的å称\n" - - #: sunrpc/rpc_main.c:1438 - #, c-format - msgid "-s nettype\tgenerate server code that supports named nettype\n" --msgstr "" -+msgstr "-s nettype\t产生支æŒå…·å nettype çš„æœåŠ¡å™¨ç¼–ç \n" - - #: sunrpc/rpc_main.c:1439 - #, c-format - msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n" --msgstr "" -+msgstr "-Sc\t\t产生使用远程进程的范例客户端编ç \n" - - #: sunrpc/rpc_main.c:1440 - #, c-format - msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n" --msgstr "" -+msgstr "-Ss\t\t产生定义远程进程的范例æœåŠ¡å™¨ç¼–ç \n" - - #: sunrpc/rpc_main.c:1441 - #, c-format - msgid "-Sm \t\tgenerate makefile template \n" --msgstr "" -+msgstr "-Sm\t\t产生 makefile 模æ¿\n" - - #: sunrpc/rpc_main.c:1442 - #, c-format - msgid "-t\t\tgenerate RPC dispatch table\n" --msgstr "" -+msgstr "-t\t\t产生 RPC æ´¾é€è¡¨\n" - - #: sunrpc/rpc_main.c:1443 - #, c-format - msgid "-T\t\tgenerate code to support RPC dispatch tables\n" --msgstr "" -+msgstr "-T\t\täº§ç”Ÿæ”¯æŒ RPC æ´¾é€è¡¨çš„ç¼–ç \n" - - #: sunrpc/rpc_main.c:1444 --#, fuzzy, c-format --#| msgid "cannot find any C preprocessor (cpp)\n" -+#, c-format - msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n" --msgstr "无法找到任何 C 预处ç†å™¨ (cpp)\n" -+msgstr "-Y 路径\t\tè¦å¯»æ‰¾ C å‰ç½®å¤„ç†å™¨ (cpp) 的目录å称\n" - - #: sunrpc/rpc_main.c:1445 - #, c-format - msgid "-5\t\tSysVr4 compatibility mode\n" --msgstr "" -+msgstr "-5\t\tSysVr4 兼容模å¼\n" - - #: sunrpc/rpc_main.c:1446 --#, fuzzy, c-format --#| msgid "Give this help list" -+#, c-format - msgid "--help\t\tgive this help list\n" --msgstr "给出该系统求助列表" -+msgstr "--help\t\t给出这个使用方å¼åˆ—表\n" - - #: sunrpc/rpc_main.c:1447 --#, fuzzy, c-format --#| msgid "Print program version" -+#, c-format - msgid "--version\tprint program version\n" --msgstr "打å°ç¨‹åºç‰ˆæœ¬å·" -+msgstr "--version\t打å°ç¨‹åºç‰ˆæœ¬\n" - - #: sunrpc/rpc_main.c:1449 - #, c-format -@@ -5519,6 +5582,9 @@ msgid "" - "For bug reporting instructions, please see:\n" - "%s.\n" - msgstr "" -+"\n" -+"è¦çŸ¥é“错误报告指令,请å‚看:\n" -+"%s。\n" - - #: sunrpc/rpc_scan.c:112 - msgid "constant or identifier expected" -@@ -5534,7 +5600,7 @@ msgstr "未终止的字符串常é‡" - - #: sunrpc/rpc_scan.c:379 - msgid "empty char string" --msgstr "" -+msgstr "空的字符字串" - - #: sunrpc/rpc_scan.c:521 sunrpc/rpc_scan.c:531 - msgid "preprocessor error" -@@ -5580,7 +5646,7 @@ msgstr "rpcinfo:广播失败:%s\n" - - #: sunrpc/rpcinfo.c:667 - msgid "Sorry. You are not root\n" --msgstr "抱歉。您ä¸æ˜¯æ ¹ç”¨æˆ·\n" -+msgstr "抱歉。您ä¸æ˜¯ root 用户\n" - - #: sunrpc/rpcinfo.c:674 - #, c-format -@@ -5623,7 +5689,7 @@ msgstr "svc_run: - 内存ä¸è¶³" - - #: sunrpc/svc_run.c:91 - msgid "svc_run: - poll failed" --msgstr "" -+msgstr "svc_run: - poll 失败" - - #: sunrpc/svc_simple.c:80 - #, c-format -@@ -5646,7 +5712,7 @@ msgstr "registerrpc:内存ä¸è¶³\n" - #: sunrpc/svc_simple.c:169 - #, c-format - msgid "trouble replying to prog %d\n" --msgstr "" -+msgstr "å›žåº”ç¨‹åº %d æ—¶å‘生困难\n" - - #: sunrpc/svc_simple.c:178 - #, c-format -@@ -5687,7 +5753,7 @@ msgstr "enablecache:无法分é…缓冲 - - #: sunrpc/svc_udp.c:518 - msgid "enablecache: could not allocate cache fifo" --msgstr "" -+msgstr "enablecache: 无法é…置缓存 fifo 管线" - - #: sunrpc/svc_udp.c:554 - msgid "cache_set: victim not found" -@@ -5727,7 +5793,7 @@ msgstr "éžæ³•æŒ‡ä»¤" - - #: sysdeps/generic/siglist.h:32 - msgid "Trace/breakpoint trap" --msgstr "" -+msgstr "追踪与中断点陷阱" - - #: sysdeps/generic/siglist.h:33 - msgid "Aborted" -@@ -5768,7 +5834,7 @@ msgstr "已终止" - - #: sysdeps/generic/siglist.h:41 - msgid "Urgent I/O condition" --msgstr "" -+msgstr "紧急的输出入状æ€" - - #: sysdeps/generic/siglist.h:42 - msgid "Stopped (signal)" -@@ -5796,7 +5862,7 @@ msgstr "åœæ­¢ (tty 输出)" - - #: sysdeps/generic/siglist.h:48 - msgid "I/O possible" --msgstr "" -+msgstr "I/O å¯è¡Œ" - - #: sysdeps/generic/siglist.h:49 - msgid "CPU time limit exceeded" -@@ -5812,7 +5878,7 @@ msgstr "虚拟计时器超时" - - #: sysdeps/generic/siglist.h:52 - msgid "Profiling timer expired" --msgstr "" -+msgstr "测速评估用的计时器已过时å–消了" - - #: sysdeps/generic/siglist.h:53 - msgid "User defined signal 1" -@@ -5824,7 +5890,7 @@ msgstr "ç”¨æˆ·å®šä¹‰ä¿¡å· 2" - - #: sysdeps/generic/siglist.h:58 - msgid "EMT trap" --msgstr "" -+msgstr "EMT 陷阱" - - #: sysdeps/generic/siglist.h:61 - msgid "Bad system call" -@@ -5848,7 +5914,7 @@ msgstr "资æºä¸¢å¤±" - - #: sysdeps/generic/siglist.h:75 - msgid "Window changed" --msgstr "" -+msgstr "范围改å˜äº†" - - #. TRANS Operation not permitted; only the owner of the file (or other resource) - #. TRANS or processes with special privileges can perform the operation. -@@ -6210,7 +6276,7 @@ msgstr "由软件导致的连接断开" - #. TRANS protocol violation. - #: sysdeps/gnu/errlist.c:615 - msgid "Connection reset by peer" --msgstr "" -+msgstr "连接被对方é‡è®¾" - - #. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this - #. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the -@@ -6316,7 +6382,7 @@ msgstr "超出ç£ç›˜é™é¢" - #. TRANS and remounting the file system. - #: sysdeps/gnu/errlist.c:789 - msgid "Stale file handle" --msgstr "" -+msgstr "过旧的文件控柄" - - #. TRANS An attempt was made to NFS-mount a remote file system with a file name that - #. TRANS already specifies an NFS-mounted file. -@@ -6349,7 +6415,7 @@ msgstr "RPC 程åºç‰ˆæœ¬é”™è¯¯" - #. TRANS ??? - #: sysdeps/gnu/errlist.c:846 - msgid "RPC bad procedure for program" --msgstr "" -+msgstr "程åºçš„ RPC 进程错误" - - #. TRANS No locks available. This is used by the file locking facilities; see - #. TRANS @ref{File Locks}. This error is never generated by @gnuhurdsystems{}, but -@@ -6424,7 +6490,7 @@ msgstr "对åŽå°è¿›ç¨‹çš„ä¸é€‚当æ“ä½ - #. TRANS up, before it has connected to the file. - #: sysdeps/gnu/errlist.c:957 - msgid "Translator died" --msgstr "" -+msgstr "中介程åºå·²ç»ç»“æŸ" - - #. TRANS The experienced user will know what is wrong. - #. TRANS @c This error code is a joke. Its perror text is part of the joke. -@@ -6436,17 +6502,49 @@ msgstr "?" - #. TRANS You did @strong{what}? - #: sysdeps/gnu/errlist.c:977 - msgid "You really blew it this time" --msgstr "" -+msgstr "这次真的被您打败了" - -+# This is error EIEIO, errno 104 -+# -+# - Macro: int EIEIO -+# Go home and have a glass of warm, dairy-fresh milk. -+# -+# The following messages were copied & pasted -+# from es.po by Santiago Vila Doncel . -+# -+# -+# 稣u diablos es esto?, esperemos a tener las fuentes -+# estupendo, este error parece mostrarse en dos ocasiones -+# - Macro: int EIEIO -+# Go home and have a glass of warm, dairy-fresh milk. -+# Jochen tambien lo traduce as. em -+# -+# Okay. Since you are dying to know, I'll tell you. -+# This is a joke, obviously. There is a children's song which begins, -+# "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real) -+# errno macro EIO, I think about that song. Probably most of my -+# compatriots who program on Unix do, too. One of them must have stayed -+# up a little too late one night and decided to add it to Hurd or Glibc. -+# Whoever did it should be castigated, but it made me laugh. -+# --jtobey@channel1.com -+# -+# "bought the farm" means "died". -jtobey -+# -+# Bueno, pues despu廥 de pensarlo mucho, he seguido el ejemplo de la -+# traduccié® francesa (traduccié® libre). sv -+# -+# -+# 简å•çš„说,儿歌 "å”è€å…ˆç”Ÿæœ‰å—地...",然åŽå‘¢?? ;-p -+# - #. TRANS Go home and have a glass of warm, dairy-fresh milk. - #: sysdeps/gnu/errlist.c:986 - msgid "Computer bought the farm" --msgstr "" -+msgstr "è¿™å°ç”µè„‘买了一å—地啰" - - #. TRANS This error code has no purpose. - #: sysdeps/gnu/errlist.c:995 - msgid "Gratuitous error" --msgstr "" -+msgstr "无故的错误" - - #: sysdeps/gnu/errlist.c:1003 - msgid "Bad message" -@@ -6458,7 +6556,7 @@ msgstr "标识符已删除" - - #: sysdeps/gnu/errlist.c:1019 - msgid "Multihop attempted" --msgstr "" -+msgstr "å°è¯• Multihop" - - #: sysdeps/gnu/errlist.c:1027 - msgid "No data available" -@@ -6466,11 +6564,11 @@ msgstr "没有å¯ç”¨çš„æ•°æ®" - - #: sysdeps/gnu/errlist.c:1035 - msgid "Link has been severed" --msgstr "" -+msgstr "链接已有æœåŠ¡" - - #: sysdeps/gnu/errlist.c:1043 - msgid "No message of desired type" --msgstr "" -+msgstr "没有符åˆéœ€æ±‚æ ¼å¼çš„消æ¯" - - #: sysdeps/gnu/errlist.c:1051 - msgid "Out of streams resources" -@@ -6558,7 +6656,7 @@ msgstr "无效的请求ç " - - #: sysdeps/gnu/errlist.c:1215 - msgid "Invalid slot" --msgstr "" -+msgstr "ä¸é€‚用的 slot" - - #: sysdeps/gnu/errlist.c:1223 - msgid "File locking deadlock error" -@@ -6578,11 +6676,11 @@ msgstr "包未安装" - - #: sysdeps/gnu/errlist.c:1255 - msgid "Advertise error" --msgstr "" -+msgstr "通知错误" - - #: sysdeps/gnu/errlist.c:1263 - msgid "Srmount error" --msgstr "" -+msgstr "Srmount 错误" - - #: sysdeps/gnu/errlist.c:1271 - msgid "Communication error on send" -@@ -6590,11 +6688,11 @@ msgstr "å‘é€æ—¶å‡ºçŽ°é€šè®¯é”™è¯¯" - - #: sysdeps/gnu/errlist.c:1279 - msgid "RFS specific error" --msgstr "" -+msgstr "RFS 特定错误" - - #: sysdeps/gnu/errlist.c:1287 - msgid "Name not unique on network" --msgstr "" -+msgstr "网络上的å称ä¸æ˜¯å”¯ä¸€çš„" - - #: sysdeps/gnu/errlist.c:1295 - msgid "File descriptor in bad state" -@@ -6666,29 +6764,27 @@ msgstr "关键字已过期" - - #: sysdeps/gnu/errlist.c:1431 - msgid "Key has been revoked" --msgstr "" -+msgstr "键值已å–消" - - #: sysdeps/gnu/errlist.c:1439 - msgid "Key was rejected by service" --msgstr "" -+msgstr "键值被æœåŠ¡æ‰€æ‹’ç»" - - #: sysdeps/gnu/errlist.c:1447 - msgid "Owner died" --msgstr "" -+msgstr "拥有者已消é€" - - #: sysdeps/gnu/errlist.c:1455 - msgid "State not recoverable" --msgstr "" -+msgstr "状æ€æ— æ³•å›žå¤" - - #: sysdeps/gnu/errlist.c:1463 --#, fuzzy --#| msgid "Operation not applicable" - msgid "Operation not possible due to RF-kill" --msgstr "ä¸å¯åº”用的æ“作" -+msgstr "由于 RF-kill 而无法æ“作" - - #: sysdeps/gnu/errlist.c:1471 - msgid "Memory page has hardware error" --msgstr "" -+msgstr "内存分页有硬件错误" - - #: sysdeps/mach/_strerror.c:56 - msgid "Error in unknown error system: " -@@ -6728,7 +6824,7 @@ msgstr "未知的å称或æœåŠ¡" - - #: sysdeps/posix/gai_strerror-strs.h:9 - msgid "Servname not supported for ai_socktype" --msgstr "" -+msgstr "ä¸æ”¯æŒ ai_socktype 的伺æœå称" - - #: sysdeps/posix/gai_strerror-strs.h:10 - msgid "ai_socktype not supported" -@@ -6740,7 +6836,7 @@ msgstr "系统错误" - - #: sysdeps/posix/gai_strerror-strs.h:12 - msgid "Processing request in progress" --msgstr "" -+msgstr "此项请求已ç»åœ¨å¤„ç†å½“中" - - #: sysdeps/posix/gai_strerror-strs.h:13 - msgid "Request canceled" -@@ -6760,7 +6856,7 @@ msgstr "被信å·ä¸­æ–­" - - #: sysdeps/posix/gai_strerror-strs.h:17 - msgid "Parameter string not correctly encoded" --msgstr "" -+msgstr "å‚数字串无法正确编ç " - - #: sysdeps/unix/sysv/linux/i386/readelflib.c:65 - #, c-format -@@ -6778,6 +6874,8 @@ msgid "" - "Usage: lddlibc4 FILE\n" - "\n" - msgstr "" -+"用法:lddlibc4 文件\n" -+"\n" - - #: sysdeps/unix/sysv/linux/lddlibc4.c:81 - #, c-format -@@ -6791,33 +6889,35 @@ msgstr "无法从“%sâ€ä¸­è¯»å…¥å¤´" - - #: timezone/zdump.c:282 - msgid "lacks alphabetic at start" --msgstr "" -+msgstr "lacks å­—æ¯é¡ºåºäºŽå¼€å§‹" - - #: timezone/zdump.c:284 - msgid "has fewer than 3 alphabetics" --msgstr "" -+msgstr "有更少的比 3 å­—æ¯é¡ºåº" - - #: timezone/zdump.c:286 - msgid "has more than 6 alphabetics" --msgstr "" -+msgstr "有超过 6 å­—æ¯é¡ºåº" - - #: timezone/zdump.c:294 - msgid "differs from POSIX standard" --msgstr "" -+msgstr "differs 从 POSIX 标准" - - #: timezone/zdump.c:300 - #, c-format - msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" --msgstr "" -+msgstr "%s: 警告:区域 “%s†缩写 “%s†%s\n" - - #: timezone/zdump.c:309 --#, fuzzy, c-format --#| msgid "%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n" -+#, c-format - msgid "" - "%s: usage: %s [--version] [--help] [-{vV}] [-{ct} [lo,]hi] zonename ...\n" - "\n" - "Report bugs to %s.\n" --msgstr "%s:用法为 %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] 区域å ...\n" -+msgstr "" -+"%s:用法: %s [--version] [--help] [-v] [-c [低年分,]高年分 ] 区域å称 ...\n" -+"\n" -+"将错误通报给 %s。\n" - - #: timezone/zdump.c:386 - #, c-format -@@ -6825,10 +6925,9 @@ msgid "%s: wild -c argument %s\n" - msgstr "%s: 怪异的 -c 选项 %s\n" - - #: timezone/zdump.c:419 --#, fuzzy, c-format --#| msgid "%s: wild -c argument %s\n" -+#, c-format - msgid "%s: wild -t argument %s\n" --msgstr "%s: 怪异的 -c 选项 %s\n" -+msgstr "%s: wild -c å‚æ•° %s\n" - - #: timezone/zdump.c:508 - msgid "Error writing to standard output" -@@ -6840,15 +6939,14 @@ msgid "%s: Memory exhausted: %s\n" - msgstr "%s:内存耗尽:%s\n" - - #: timezone/zic.c:438 --#, fuzzy, c-format --#| msgid "\"%s\", line %d: %s" -+#, c-format - msgid "\"%s\", line %d: " --msgstr "“%sâ€ï¼Œè¡Œ %d:%s" -+msgstr "\"%s\", 第 %d è¡Œ: " - - #: timezone/zic.c:441 - #, c-format - msgid " (rule from \"%s\", line %d)" --msgstr "" -+msgstr " (规则æ¥è‡ª \"%s\", 第 %d è¡Œ)" - - #: timezone/zic.c:460 - #, c-format -@@ -6856,22 +6954,21 @@ msgid "warning: " - msgstr "警告:" - - #: timezone/zic.c:470 --#, fuzzy, c-format --#| msgid "" --#| "%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" --#| "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" -+#, c-format - msgid "" - "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" - "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" - "\n" - "Report bugs to %s.\n" - msgstr "" --"%s:用法为 %s [ --version ] [ -v ] [ -l 本地时间 ] [ -p posix 规则 ] \\\n" --"\t[ -d 目录 ] [ -L leapseconds ] [ -y yearistype ] [ 文件å ... ]\n" -+"%s:用法为 %s [ --version ] [ --help ] [ -v ] [ -l 本地时间 ] [ -p POSIX规则 ] \\\n" -+"\t[ -d 目录 ] [ -L 跳跃秒数 ] [ -y 年分类型 ] [ 文件å ... ]\n" -+"\n" -+"将错误通报给 %s。\n" - - #: timezone/zic.c:505 - msgid "wild compilation-time specification of zic_t" --msgstr "" -+msgstr "zic_t 的万用编译时间规格" - - #: timezone/zic.c:524 - #, c-format -@@ -6907,10 +7004,9 @@ msgid "hard link failed, symbolic link u - msgstr "硬连接失败,使用符å·è¿žæŽ¥" - - #: timezone/zic.c:688 --#, fuzzy, c-format --#| msgid "%s: Can't create %s: %s\n" -+#, c-format - msgid "%s: Can't read %s: %s\n" --msgstr "%s:无法创建 %s:%s\n" -+msgstr "%s: æ— æ³•è¯»å– %s: %s\n" - - #: timezone/zic.c:696 timezone/zic.c:1595 - #, c-format -@@ -6928,10 +7024,8 @@ msgid "%s: Error writing %s\n" - msgstr "%s:写 %s 错误\n" - - #: timezone/zic.c:714 --#, fuzzy --#| msgid "hard link failed, symbolic link used" - msgid "link failed, copy used" --msgstr "硬连接失败,使用符å·è¿žæŽ¥" -+msgstr "链接失败,使用å¤åˆ¶ä»£æ›¿" - - #: timezone/zic.c:802 timezone/zic.c:804 - msgid "same rule name in multiple files" -@@ -6939,12 +7033,12 @@ msgstr "多个文件中的相åŒè§„则å - - #: timezone/zic.c:845 - msgid "unruly zone" --msgstr "" -+msgstr "没有规则的时区" - - #: timezone/zic.c:852 - #, c-format - msgid "%s in ruleless zone" --msgstr "" -+msgstr "%s 在没有规则的节" - - #: timezone/zic.c:872 - msgid "standard input" -@@ -6966,12 +7060,12 @@ msgstr "未知类型的输入行" - #: timezone/zic.c:924 - #, c-format - msgid "%s: Leap line in non leap seconds file %s\n" --msgstr "" -+msgstr "%s: 闰时设置行出现在ä¸å«é—°ç§’的设置档 %s 中\n" - - #: timezone/zic.c:931 timezone/zic.c:1339 timezone/zic.c:1361 - #, c-format - msgid "%s: panic: Invalid l_value %d\n" --msgstr "" -+msgstr "%s: 严é‡é”™è¯¯: 错误的 l_value %d\n" - - #: timezone/zic.c:946 - #, c-format -@@ -6988,7 +7082,7 @@ msgstr "时间溢出" - - #: timezone/zic.c:997 - msgid "values over 24 hours not handled by pre-2007 versions of zic" --msgstr "" -+msgstr "24 å°æ—¶ä»¥ä¸Šçš„值无法由早于 2007 çš„ zic 版本所处ç†" - - #: timezone/zic.c:1008 - msgid "wrong number of fields on Rule line" -@@ -6999,8 +7093,9 @@ msgid "nameless rule" - msgstr "æ— å规则" - - #: timezone/zic.c:1017 -+#, fuzzy - msgid "invalid saved time" --msgstr "" -+msgstr "无效的节约时间" - - #: timezone/zic.c:1034 - msgid "wrong number of fields on Zone line" -@@ -7009,12 +7104,12 @@ msgstr "区域行中域的个数错误" - #: timezone/zic.c:1039 - #, c-format - msgid "\"Zone %s\" line and -l option are mutually exclusive" --msgstr "" -+msgstr "\"Zone %s\" 行和 -l 选项是互斥的" - - #: timezone/zic.c:1045 - #, c-format - msgid "\"Zone %s\" line and -p option are mutually exclusive" --msgstr "" -+msgstr "\"Zone %s\" 行和 -p 选项是互斥的" - - #: timezone/zic.c:1053 - #, c-format -@@ -7023,13 +7118,11 @@ msgstr "é‡å¤çš„区域å %s (文件“ - - #: timezone/zic.c:1066 - msgid "wrong number of fields on Zone continuation line" --msgstr "" -+msgstr "时区接续行的字段数目ä¸å¯¹" - - #: timezone/zic.c:1103 --#, fuzzy --#| msgid "invalid UTC offset" - msgid "invalid UT offset" --msgstr "无效的 UTC å移é‡" -+msgstr "无效的 UT å移é‡" - - #: timezone/zic.c:1106 - msgid "invalid abbreviation format" -@@ -7037,11 +7130,11 @@ msgstr "无效的缩略格å¼" - - #: timezone/zic.c:1135 - msgid "Zone continuation line end time is not after end time of previous line" --msgstr "" -+msgstr "时区接续行的结æŸæ—¶é—´ä¸åœ¨ä¸Šä¸€è¡Œçš„结æŸæ—¶é—´ä¹‹åŽ" - - #: timezone/zic.c:1161 - msgid "wrong number of fields on Leap line" --msgstr "" -+msgstr "闰时设置行的字段数目错误" - - #: timezone/zic.c:1170 - msgid "invalid leaping year" -@@ -7057,7 +7150,7 @@ msgstr "无效的日" - - #: timezone/zic.c:1208 - msgid "time too small" --msgstr "" -+msgstr "时间太å°" - - #: timezone/zic.c:1212 - msgid "time too large" -@@ -7069,15 +7162,15 @@ msgstr "无效的时间" - - #: timezone/zic.c:1235 - msgid "illegal CORRECTION field on Leap line" --msgstr "" -+msgstr "在闰时设置行中有ä¸åˆæ³•çš„ CORRECTION 字段" - - #: timezone/zic.c:1240 - msgid "illegal Rolling/Stationary field on Leap line" --msgstr "" -+msgstr "在闰时设置行中有ä¸åˆæ³•çš„ Rolling/Stationary 字段" - - #: timezone/zic.c:1246 - msgid "leap second precedes Big Bang" --msgstr "" -+msgstr "闰秒出现在大爆炸之å‰" - - #: timezone/zic.c:1259 - msgid "wrong number of fields on Link line" -@@ -7105,7 +7198,7 @@ msgstr "起始年份大于终止年份" - - #: timezone/zic.c:1376 - msgid "typed single year" --msgstr "" -+msgstr "输入的年分是åŒä¸€å¹´" - - #: timezone/zic.c:1411 - msgid "invalid weekday name" -@@ -7113,7 +7206,7 @@ msgstr "无效的星期å" - - #: timezone/zic.c:1530 - msgid "pre-2014 clients may mishandle more than 1200 transition times" --msgstr "" -+msgstr "2014 之å‰çš„客户端å¯èƒ½ä¼šé”™è¯¯å¤„ç†è¶…过 1200 次的改å˜æ¬¡æ•°" - - #: timezone/zic.c:1585 - #, c-format -@@ -7122,16 +7215,16 @@ msgstr "%s:无法删除 %s:%s\n" - - #: timezone/zic.c:2143 - msgid "no POSIX environment variable for zone" --msgstr "" -+msgstr "æ—  POSIX 环境å˜é‡ç”¨äºŽåŒº" - - #: timezone/zic.c:2149 - #, c-format - msgid "%s: pre-%d clients may mishandle distant timestamps" --msgstr "" -+msgstr "%s: %d 之å‰çš„客户端å¯èƒ½ä¼šé”™è¯¯å¤„ç†ä¹…远的时间戳" - - #: timezone/zic.c:2329 - msgid "can't determine time zone abbreviation to use just after until time" --msgstr "" -+msgstr "无法决定在结æŸæ—¶é—´ä»¥åŽè¯¥ä½¿ç”¨çš„时区简写" - - #: timezone/zic.c:2375 timezone/zic.c:2450 - msgid "too many local time types" -@@ -7150,22 +7243,20 @@ msgid "internal error - addtype called w - msgstr "内部错误 - 以错误的 ttisgmt 调用 addtype" - - #: timezone/zic.c:2454 --#, fuzzy --#| msgid "UTC offset out of range" - msgid "UT offset out of range" --msgstr "UTC å移值超出范围" -+msgstr "UTC å移超出范围" - - #: timezone/zic.c:2478 - msgid "too many leap seconds" --msgstr "" -+msgstr "太多闰秒" - - #: timezone/zic.c:2484 - msgid "repeated leap second moment" --msgstr "" -+msgstr "é‡å¤çš„闰秒设置" - - #: timezone/zic.c:2534 - msgid "Wild result from command execution" --msgstr "" -+msgstr "命令è¿è¡Œå¯¼è‡´å¥‡æ€ªçš„结果" - - #: timezone/zic.c:2535 - #, c-format -@@ -7178,27 +7269,27 @@ msgstr "奇数个引å·" - - #: timezone/zic.c:2703 - msgid "use of 2/29 in non leap-year" --msgstr "" -+msgstr "在éžé—°å¹´æ—¶ç”¨åˆ° 2/29 æ—¥" - - #: timezone/zic.c:2738 - msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic" --msgstr "" -+msgstr "规则超过开始/结æŸæœˆåˆ†--将无法适用早于 2004 çš„ zic 版本" - - #: timezone/zic.c:2769 - msgid "time zone abbreviation lacks alphabetic at start" --msgstr "" -+msgstr "时区缩写开头缺少字æ¯" - - #: timezone/zic.c:2771 - msgid "time zone abbreviation has fewer than 3 alphabetics" --msgstr "" -+msgstr "时间区缩写少于 3 个字æ¯" - - #: timezone/zic.c:2773 - msgid "time zone abbreviation has too many alphabetics" --msgstr "" -+msgstr "时区缩写太多字æ¯" - - #: timezone/zic.c:2783 - msgid "time zone abbreviation differs from POSIX standard" --msgstr "" -+msgstr "时区缩写与 POSIX 标准ä¸åŒ" - - #: timezone/zic.c:2789 - msgid "too many, or too long, time zone abbreviations" -@@ -7218,12 +7309,18 @@ msgstr "%s:无法创建目录 %s:%s\ - #~ msgid "Can't open configuration file %s" - #~ msgstr "无法打开é…置文件 %s" - -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "无法创建内部æ述符" -+ - #~ msgid "Try \\`memusage --help' for more information." - #~ msgstr "试用“memusage --helpâ€ä»¥èŽ·å–更多信æ¯ã€‚" - - #~ msgid "memusage: option \\`$1' requires an argument" - #~ msgstr "memusage:选项“$1â€éœ€è¦ä¸€ä¸ªå‚æ•°" - -+#~ msgid "cannot stat() file `%s': %s" -+#~ msgstr "无法对文件“%sâ€è¿›è¡Œ stat() æ“作:%s" -+ - #~ msgid "invalid value for 'reload-count': %u" - #~ msgstr "“reload-countâ€çš„值无效: %u" - -Index: glibc-2.23/po/zh_TW.po -=================================================================== ---- glibc-2.23.orig/po/zh_TW.po -+++ glibc-2.23/po/zh_TW.po -@@ -9,7 +9,7 @@ - msgid "" - msgstr "" - "Project-Id-Version: libc 2.17.90.20130724\n" --"POT-Creation-Date: 2015-01-20 22:14-0500\n" -+"POT-Creation-Date: 2015-07-31 00:10-0400\n" - "PO-Revision-Date: 2013-09-03 13:39+0800\n" - "Last-Translator: Wei-Lun Chao \n" - "Language-Team: Chinese (traditional) \n" -@@ -146,10 +146,10 @@ msgstr "" - "[輸出檔案å稱 [輸入檔案å稱]...]" - - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 --#: elf/pldd.c:244 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 -+#: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 - #: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:969 nss/makedb.c:369 -+#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 - #: posix/getconf.c:486 sunrpc/rpcinfo.c:691 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format -@@ -161,7 +161,7 @@ msgstr "" - "%s。\n" - - #: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 --#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:260 elf/sotruss.sh:75 -+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 - #: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -@@ -178,7 +178,7 @@ msgstr "" - "售或者é©åˆæŸäº›ç‰¹æ®Šç›®çš„。\n" - - #: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 --#: elf/ldconfig.c:328 elf/pldd.c:265 elf/sprof.c:395 iconv/iconv_prog.c:430 -+#: elf/ldconfig.c:328 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:430 - #: iconv/iconvconfig.c:401 locale/programs/locale.c:299 - #: locale/programs/localedef.c:407 malloc/memusage.sh:75 - #: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 -@@ -433,11 +433,11 @@ msgstr "更改 %s çš„å­˜å–權é™ç‚º %#o - msgid "Renaming of %s to %s failed" - msgstr "å°‡ %s 改å為 %s 失敗" - --#: elf/dl-close.c:385 elf/dl-open.c:470 -+#: elf/dl-close.c:396 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "無法建立作用域列表" - --#: elf/dl-close.c:770 -+#: elf/dl-close.c:816 - msgid "shared object not open" - msgstr "共用目的檔案沒有開啟" - -@@ -510,127 +510,127 @@ msgstr "無法建立æœå°‹è·¯å¾‘陣列" - msgid "cannot stat shared object" - msgstr "無法 stat 共用目的檔" - --#: elf/dl-load.c:963 -+#: elf/dl-load.c:962 - msgid "cannot open zero fill device" - msgstr "無法開啟以零填滿的è£ç½®" - --#: elf/dl-load.c:1010 elf/dl-load.c:2165 -+#: elf/dl-load.c:1009 elf/dl-load.c:2159 - msgid "cannot create shared object descriptor" - msgstr "無法建立共用目的檔敘述項" - --#: elf/dl-load.c:1029 elf/dl-load.c:1570 elf/dl-load.c:1682 -+#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 - msgid "cannot read file data" - msgstr "無法讀å–檔案資料" - --#: elf/dl-load.c:1069 -+#: elf/dl-load.c:1068 - msgid "ELF load command alignment not page-aligned" - msgstr "ELF 載入命令å°é½Šä¸¦æ²’æœ‰æŒ‰ç…§è¨˜æ†¶é«”åˆ†é  (page) å°é½Š" - --#: elf/dl-load.c:1076 -+#: elf/dl-load.c:1075 - msgid "ELF load command address/offset not properly aligned" - msgstr "ELF 載入命令ä½å€/ä½ç§»ä¸¦æ²’有é©ç•¶åœ°å°é½Š" - --#: elf/dl-load.c:1160 -+#: elf/dl-load.c:1159 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "無法é…ç½® TLS 資料çµæ§‹ç”¨ä»¥èµ·å§‹åŸ·è¡Œç·’" - --#: elf/dl-load.c:1183 -+#: elf/dl-load.c:1182 - msgid "cannot handle TLS data" - msgstr "ç„¡æ³•è™•ç† TLS 資料" - --#: elf/dl-load.c:1202 -+#: elf/dl-load.c:1201 - msgid "object file has no loadable segments" - msgstr "目的檔中沒有å¯è¼‰å…¥çš„å€æ®µ" - --#: elf/dl-load.c:1211 elf/dl-load.c:1662 -+#: elf/dl-load.c:1210 elf/dl-load.c:1660 - msgid "cannot dynamically load executable" - msgstr "無法動態載入執行檔" - --#: elf/dl-load.c:1232 -+#: elf/dl-load.c:1231 - msgid "object file has no dynamic section" - msgstr "共用目的檔中沒有動態å€æ®µ" - --#: elf/dl-load.c:1255 -+#: elf/dl-load.c:1254 - msgid "shared object cannot be dlopen()ed" - msgstr "共用目的檔無法被 dlopen()" - --#: elf/dl-load.c:1268 -+#: elf/dl-load.c:1267 - msgid "cannot allocate memory for program header" - msgstr "無法é…置記憶體給程å¼æ¨™é ­å€ä½¿ç”¨" - --#: elf/dl-load.c:1284 elf/dl-open.c:195 -+#: elf/dl-load.c:1283 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "無效的呼å«è€…" - --#: elf/dl-load.c:1307 elf/dl-load.h:130 -+#: elf/dl-load.c:1306 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "無法改變記憶體ä¿è­·ç‹€æ…‹" - --#: elf/dl-load.c:1327 -+#: elf/dl-load.c:1326 - msgid "cannot enable executable stack as shared object requires" - msgstr "無法開啟å¯åŸ·è¡Œå †ç–Šåšç‚ºå…±ç”¨ç›®çš„檔" - --#: elf/dl-load.c:1340 -+#: elf/dl-load.c:1339 - msgid "cannot close file descriptor" - msgstr "無法關閉檔案æ述符號" - --#: elf/dl-load.c:1570 -+#: elf/dl-load.c:1568 - msgid "file too short" - msgstr "檔案太å°" - --#: elf/dl-load.c:1605 -+#: elf/dl-load.c:1603 - msgid "invalid ELF header" - msgstr "無效的 ELF 標頭" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1615 - msgid "ELF file data encoding not big-endian" - msgstr "ELF 檔資料編碼並éžå¤§å°¾åº" - --#: elf/dl-load.c:1619 -+#: elf/dl-load.c:1617 - msgid "ELF file data encoding not little-endian" - msgstr "ELF 檔資料編碼並éžå°å°¾åº" - --#: elf/dl-load.c:1623 -+#: elf/dl-load.c:1621 - msgid "ELF file version ident does not match current one" - msgstr "ELF 檔版本 ident ä¸ç¬¦åˆç›®å‰æ‰€ä½¿ç”¨çš„" - --#: elf/dl-load.c:1627 -+#: elf/dl-load.c:1625 - msgid "ELF file OS ABI invalid" - msgstr "ELF 檔 OS ABI 版本ä¸é©ç”¨" - --#: elf/dl-load.c:1630 -+#: elf/dl-load.c:1628 - msgid "ELF file ABI version invalid" - msgstr "ELF 檔 ABI 版本ä¸é©ç”¨" - --#: elf/dl-load.c:1633 -+#: elf/dl-load.c:1631 - msgid "nonzero padding in e_ident" - msgstr "在 e_ident 中填補éžé›¶å€¼" - --#: elf/dl-load.c:1636 -+#: elf/dl-load.c:1634 - msgid "internal error" - msgstr "內部錯誤" - --#: elf/dl-load.c:1643 -+#: elf/dl-load.c:1641 - msgid "ELF file version does not match current one" - msgstr "ELF 檔版本ä¸ç¬¦åˆç›®å‰çš„版本" - --#: elf/dl-load.c:1651 -+#: elf/dl-load.c:1649 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "åªæœ‰ ET_DYN ä»¥åŠ ET_EXEC å¯ä»¥è¼‰å…¥" - --#: elf/dl-load.c:1667 -+#: elf/dl-load.c:1665 - msgid "ELF file's phentsize not the expected size" - msgstr "ELF 檔的 phentsize 並ä¸æ˜¯é æœŸä¸­çš„大å°" - --#: elf/dl-load.c:2184 -+#: elf/dl-load.c:2178 - msgid "wrong ELF class: ELFCLASS64" - msgstr "錯誤 ELF 類別:ELFCLASS64" - --#: elf/dl-load.c:2185 -+#: elf/dl-load.c:2179 - msgid "wrong ELF class: ELFCLASS32" - msgstr "錯誤 ELF 類別:ELFCLASS32" - --#: elf/dl-load.c:2188 -+#: elf/dl-load.c:2182 - msgid "cannot open shared object file" - msgstr "無法開啟共用目的檔" - -@@ -642,11 +642,11 @@ msgstr "從共用目的檔中å°æ˜ å€æ® - msgid "cannot map zero-fill pages" - msgstr "無法å°æ‡‰ä»¥é›¶å¡«æ»¿çš„分é å€" - --#: elf/dl-lookup.c:791 -+#: elf/dl-lookup.c:845 - msgid "relocation error" - msgstr "é‡å®šå€éŒ¯èª¤" - --#: elf/dl-lookup.c:818 -+#: elf/dl-lookup.c:872 - msgid "symbol lookup error" - msgstr "符號查找錯誤" - -@@ -654,49 +654,40 @@ msgstr "符號查找錯誤" - msgid "cannot extend global scope" - msgstr "無法延展全域變數的作用域" - --#: elf/dl-open.c:520 -+#: elf/dl-open.c:528 - msgid "TLS generation counter wrapped! Please report this." - msgstr "TLS 產生計數器被轉æ›åŸ·è¡Œï¼ 請報告這個情æ³ã€‚" - --#: elf/dl-open.c:542 --msgid "cannot load any more object with static TLS" --msgstr "無法以éœæ…‹ TLS å†è¼‰å…¥ä»»ä½•ç‰©ä»¶" -- --#: elf/dl-open.c:599 -+#: elf/dl-open.c:592 - msgid "invalid mode for dlopen()" - msgstr "無效的 dlopen() 模å¼" - --#: elf/dl-open.c:616 -+#: elf/dl-open.c:609 - msgid "no more namespaces available for dlmopen()" - msgstr "無更多命å空間å¯è¦‹æ–¼ dlmopen ()" - --#: elf/dl-open.c:634 -+#: elf/dl-open.c:633 - msgid "invalid target namespace in dlmopen()" - msgstr "dlmopen() 中的無效目標命å空間" - --#: elf/dl-reloc.c:120 -+#: elf/dl-reloc.c:121 - msgid "cannot allocate memory in static TLS block" - msgstr "無法在éœæ…‹ TLS å€å¡Šä¸­é…置記憶體" - --#: elf/dl-reloc.c:212 -+#: elf/dl-reloc.c:206 - msgid "cannot make segment writable for relocation" - msgstr "在é‡æ–°å®šå€ä»¥å¾Œç„¡æ³•å°‡å€æ®µè¨­ç‚ºå¯å¯«å…¥ç‹€æ…‹" - --#: elf/dl-reloc.c:275 --#, c-format --msgid "%s: no PLTREL found in object %s\n" --msgstr "%s: 在目的檔 %s 中沒有找到 PLTREL\n" -- --#: elf/dl-reloc.c:290 -+#: elf/dl-reloc.c:276 - #, c-format - msgid "%s: out of memory to store relocation results for %s\n" - msgstr "%s: 記憶體ä¸è¶³ä»¥å„²å­˜é‡å®šå€çµæžœç”¨æ–¼ %s\n" - --#: elf/dl-reloc.c:306 -+#: elf/dl-reloc.c:292 - msgid "cannot restore segment prot after reloc" - msgstr "在 reloc 之後無法復原 segment prot" - --#: elf/dl-reloc.c:335 -+#: elf/dl-reloc.c:323 - msgid "cannot apply additional memory protection after relocation" - msgstr "é‡å®šå€ä¹‹å¾Œç„¡æ³•å¥—用é¡å¤–記憶體ä¿è­·" - -@@ -704,7 +695,7 @@ msgstr "é‡å®šå€ä¹‹å¾Œç„¡æ³•å¥—用é¡å¤ - msgid "RTLD_NEXT used in code not dynamically loaded" - msgstr "程å¼ç¢¼æ‰€ä½¿ç”¨çš„ RTLD_NEXT 沒有動態載入" - --#: elf/dl-tls.c:933 -+#: elf/dl-tls.c:934 - msgid "cannot create TLS data structures" - msgstr "無法建立 TLS 資料çµæ§‹" - -@@ -848,7 +839,7 @@ msgstr "由於找ä¸åˆ° %s 的共用目ç - msgid "Can't open directory %s" - msgstr "無法開啟目錄 %s" - --#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90 -+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:97 - #, c-format - msgid "Input file %s not found.\n" - msgstr "輸入檔 %s 找ä¸åˆ°ã€‚\n" -@@ -979,7 +970,7 @@ msgstr "缺少檔案引數" - msgid "No such file or directory" - msgstr "沒有此一檔案或目錄" - --#: elf/ldd.bash.in:150 inet/rcmd.c:488 -+#: elf/ldd.bash.in:150 inet/rcmd.c:492 - msgid "not regular file" - msgstr "並éžæ­£å¸¸çš„檔案" - -@@ -1024,65 +1015,71 @@ msgstr "ç„¡æ³•è®€å– r_debug" - msgid "cannot read program interpreter" - msgstr "無法讀å–程å¼è§£è­¯å™¨" - --#: elf/pldd-xx.c:196 -+#: elf/pldd-xx.c:197 - #, c-format - msgid "cannot read link map" - msgstr "無法讀å–éˆçµæ˜ å°„" - --#: elf/pldd-xx.c:207 -+#: elf/pldd-xx.c:209 - #, c-format - msgid "cannot read object name" - msgstr "無法讀å–物件å稱" - --#: elf/pldd.c:63 -+#: elf/pldd-xx.c:219 -+#, fuzzy, c-format -+#| msgid "cannot allocate memory for program header" -+msgid "cannot allocate buffer for object name" -+msgstr "無法é…置記憶體給程å¼æ¨™é ­å€ä½¿ç”¨" -+ -+#: elf/pldd.c:64 - msgid "List dynamic shared objects loaded into process." - msgstr "列出已載入行程中的動態共用物件。" - --#: elf/pldd.c:67 -+#: elf/pldd.c:68 - msgid "PID" - msgstr "行程識別號" - --#: elf/pldd.c:99 -+#: elf/pldd.c:100 - #, c-format - msgid "Exactly one parameter with process ID required.\n" - msgstr "需è¦å‰›å¥½ä¸€å€‹é™„有行程識別號的åƒæ•¸ã€‚\n" - --#: elf/pldd.c:111 -+#: elf/pldd.c:112 - #, c-format - msgid "invalid process ID '%s'" - msgstr "無效的行程識別號 %s" - --#: elf/pldd.c:119 -+#: elf/pldd.c:120 - #, c-format - msgid "cannot open %s" - msgstr "無法開啟 %s" - --#: elf/pldd.c:144 -+#: elf/pldd.c:152 - #, c-format - msgid "cannot open %s/task" - msgstr "無法開啟 %s/任務" - --#: elf/pldd.c:147 -+#: elf/pldd.c:155 - #, c-format - msgid "cannot prepare reading %s/task" - msgstr "ç„¡æ³•æº–å‚™è®€å– %s/任務" - --#: elf/pldd.c:160 -+#: elf/pldd.c:168 - #, c-format - msgid "invalid thread ID '%s'" - msgstr "無效的執行緒識別號 %s" - --#: elf/pldd.c:171 -+#: elf/pldd.c:179 - #, c-format - msgid "cannot attach to process %lu" - msgstr "無法附加到行程 %lu" - --#: elf/pldd.c:286 -+#: elf/pldd.c:294 - #, c-format - msgid "cannot get information about process %lu" - msgstr "無法ç²å¾—行程 %lu 的相關資訊" - --#: elf/pldd.c:299 -+#: elf/pldd.c:307 - #, c-format - msgid "process %lu is no ELF program" - msgstr "行程 %lu ä¸¦éž ELF 程å¼" -@@ -1117,27 +1114,27 @@ msgstr "%s ä¸æ˜¯ä¸€å€‹å…±ç”¨ç›®çš„檔 ( - msgid "more than one dynamic segment\n" - msgstr "超éŽä¸€å€‹çš„å‹•æ…‹å€æ®µ\n" - --#: elf/readlib.c:96 -+#: elf/readlib.c:103 - #, c-format - msgid "Cannot fstat file %s.\n" - msgstr "無法 fstat 檔案 %s。\n" - --#: elf/readlib.c:107 -+#: elf/readlib.c:114 - #, c-format - msgid "File %s is empty, not checked." - msgstr "檔案 %s 為空,ä¸åšæª¢æŸ¥ã€‚" - --#: elf/readlib.c:113 -+#: elf/readlib.c:120 - #, c-format - msgid "File %s is too small, not checked." - msgstr "檔案 %s 太å°ï¼Œä¸åšæª¢æŸ¥ã€‚" - --#: elf/readlib.c:123 -+#: elf/readlib.c:130 - #, c-format - msgid "Cannot mmap file %s.\n" - msgstr "無法 mmap 檔案 %s。\n" - --#: elf/readlib.c:161 -+#: elf/readlib.c:169 - #, c-format - msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" - msgstr "%s ä¸æ˜¯ä¸€å€‹ ELF 檔 - 其開頭的魔術ä½å…ƒçµ„是錯的。\n" -@@ -1271,9 +1268,9 @@ msgstr "SHOBJ [PROFDATA]" - msgid "failed to load shared object `%s'" - msgstr "開啟共用目的檔 `%s' 失敗" - --#: elf/sprof.c:442 -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 - #, c-format --msgid "cannot create internal descriptors" -+msgid "cannot create internal descriptor" - msgstr "無法建立內部敘述項" - - #: elf/sprof.c:554 -@@ -1341,11 +1338,6 @@ msgstr "測試資料檔案 mmap 失敗" - msgid "error while closing the profiling data file" - msgstr "正在關閉測試資料檔案時發生錯誤" - --#: elf/sprof.c:825 elf/sprof.c:923 --#, c-format --msgid "cannot create internal descriptor" --msgstr "無法建立內部敘述項" -- - #: elf/sprof.c:899 - #, c-format - msgid "`%s' is no correct profile data file for `%s'" -@@ -1600,27 +1592,27 @@ msgstr "socket: 通訊å”定在設定線 - msgid "rcmd: %s: short read" - msgstr "rcmd: %s: 讀入資料éŽçŸ­" - --#: inet/rcmd.c:486 -+#: inet/rcmd.c:490 - msgid "lstat failed" - msgstr "lstat 失敗" - --#: inet/rcmd.c:493 -+#: inet/rcmd.c:497 - msgid "cannot open" - msgstr "無法開啟" - --#: inet/rcmd.c:495 -+#: inet/rcmd.c:499 - msgid "fstat failed" - msgstr "fstat 失敗" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:501 - msgid "bad owner" - msgstr "錯誤的æ“有者" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:503 - msgid "writeable by other than owner" - msgstr "使用者以外的人亦å¯å¯«å…¥" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:505 - msgid "hard linked somewhere" - msgstr "被實體連çµåˆ°æŸè™•" - -@@ -1740,8 +1732,8 @@ msgid "no symbolic name given for end of - msgstr "沒有給此å€çš„最後一個字元符號å稱" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 --#: locale/programs/ld-ctype.c:2162 locale/programs/ld-ctype.c:2913 -+#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 - #: locale/programs/ld-monetary.c:740 locale/programs/ld-name.c:264 -@@ -1767,8 +1759,8 @@ msgid "%s: error in state machine" - msgstr "%s: 狀態機錯誤" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 --#: locale/programs/ld-ctype.c:2159 locale/programs/ld-ctype.c:2930 -+#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 - #: locale/programs/ld-monetary.c:756 locale/programs/ld-name.c:280 -@@ -1789,7 +1781,7 @@ msgstr "ä¸æ˜Žçš„å­—å…ƒ `%s'" - msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" - msgstr "在範åœèµ·å§‹èˆ‡çµæŸçš„ä½å…ƒçµ„åºåˆ—中,ä½å…ƒçµ„的數目並ä¸ä¸€è‡´: %d vs %d" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "無效的字元範åœå稱" -@@ -1811,8 +1803,8 @@ msgstr "範åœä¸­ä¸Šé™å°æ–¼ä¸‹é™" - msgid "resulting bytes for range not representable." - msgstr "用來定義範åœçš„ä½å…ƒçµ„無法被表述出來" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 --#: locale/programs/ld-ctype.c:465 locale/programs/ld-identification.c:133 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 - #: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 -@@ -1876,7 +1868,7 @@ msgid "%s: numeric country code `%d' not - msgstr "%s: 國家數字代碼 `%d' 錯誤" - - #: locale/programs/ld-address.c:436 locale/programs/ld-address.c:473 --#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2537 -+#: locale/programs/ld-address.c:511 locale/programs/ld-ctype.c:2489 - #: locale/programs/ld-identification.c:280 - #: locale/programs/ld-measurement.c:198 locale/programs/ld-messages.c:267 - #: locale/programs/ld-monetary.c:495 locale/programs/ld-monetary.c:530 -@@ -1898,8 +1890,8 @@ msgstr "%s: `%s' 欄ä½ä¸åªä¸€æ¬¡åœ°å® - msgid "%s: unknown character in field `%s'" - msgstr "%s: æœªçŸ¥çš„å­—å…ƒåœ¨æ¬„ä½ `%s' 中" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 --#: locale/programs/ld-ctype.c:2910 locale/programs/ld-identification.c:365 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 - #: locale/programs/ld-numeric.c:324 locale/programs/ld-paper.c:212 -@@ -1908,12 +1900,12 @@ msgstr "%s: æœªçŸ¥çš„å­—å…ƒåœ¨æ¬„ä½ `%s - msgid "%s: incomplete `END' line" - msgstr "%s: ä¸å®Œæ•´çš„ `END' 列" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 --#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 --#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 --#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 --#: locale/programs/ld-ctype.c:1891 locale/programs/ld-ctype.c:2149 --#: locale/programs/ld-ctype.c:2735 locale/programs/ld-ctype.c:2921 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 -+#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 -+#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 -+#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 -+#: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 - #: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:305 - #: locale/programs/ld-monetary.c:747 locale/programs/ld-name.c:271 -@@ -1923,477 +1915,477 @@ msgstr "%s: ä¸å®Œæ•´çš„ `END' 列" - msgid "%s: syntax error" - msgstr "%s: 語法錯誤" - --#: locale/programs/ld-collate.c:426 -+#: locale/programs/ld-collate.c:427 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "`%.*s' 在字集å°ç…§è¡¨ä¸­å·²ç¶“定義éŽäº†" - --#: locale/programs/ld-collate.c:435 -+#: locale/programs/ld-collate.c:436 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "`%.*s' 在編碼å°æ˜ æª”中已經被定義éŽäº†" - --#: locale/programs/ld-collate.c:442 -+#: locale/programs/ld-collate.c:443 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "`%.*s' 已被定義為å°ç…§ç¬¦è™Ÿ" - --#: locale/programs/ld-collate.c:449 -+#: locale/programs/ld-collate.c:450 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "`%.*s' 已被定義為å°ç…§å…ƒç´ " - --#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 -+#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "%s: `forward' ä»¥åŠ `backward' 彼此互相排斥" - --#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 --#: locale/programs/ld-collate.c:532 -+#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 -+#: locale/programs/ld-collate.c:533 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "%s: `%s' ä¸åªä¸€æ¬¡åœ°åœ¨æ¬Šé‡ %d 中被æ到" - --#: locale/programs/ld-collate.c:588 -+#: locale/programs/ld-collate.c:589 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "%s: 太多è¦å‰‡ï¼›ç¬¬ä¸€å€‹é …ç›®åªåŒ…å« %d" - --#: locale/programs/ld-collate.c:624 -+#: locale/programs/ld-collate.c:625 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "%s: 排åºè¦å‰‡ä¸è¶³" - --#: locale/programs/ld-collate.c:789 -+#: locale/programs/ld-collate.c:790 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "%s: 空白的權é‡å­—串是ä¸å…許的" - --#: locale/programs/ld-collate.c:884 -+#: locale/programs/ld-collate.c:885 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "%s: 權é‡å¿…須使用與å稱相åŒçš„çœç•¥ç¬¦è™Ÿ" - --#: locale/programs/ld-collate.c:940 -+#: locale/programs/ld-collate.c:941 - #, c-format - msgid "%s: too many values" - msgstr "%s: 太多變數值" - --#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 -+#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "`%.*s' çš„é †åºå·²ç¶“在 %s:%Zu 裡é¢å®šç¾©äº†" - --#: locale/programs/ld-collate.c:1110 -+#: locale/programs/ld-collate.c:1111 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "%s: 啟始與çµæŸç¬¦è™Ÿç¯„åœå¿…須代表字元" - --#: locale/programs/ld-collate.c:1137 -+#: locale/programs/ld-collate.c:1138 - #, c-format - msgid "%s: byte sequences of first and last character must have the same length" - msgstr "%s: 第一個與最後一個字元的ä½å…ƒçµ„åºåˆ—必須有相åŒçš„長度" - --#: locale/programs/ld-collate.c:1179 -+#: locale/programs/ld-collate.c:1180 - #, c-format - msgid "%s: byte sequence of first character of range is not lower than that of the last character" - msgstr "%s: 範åœé¦–字元的ä½å…ƒçµ„åºåˆ—沒有低於末字元的ä½å…ƒçµ„åºåˆ—" - --#: locale/programs/ld-collate.c:1304 -+#: locale/programs/ld-collate.c:1305 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "%s: 符號範åœçš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_start' 之後" - --#: locale/programs/ld-collate.c:1308 -+#: locale/programs/ld-collate.c:1309 - #, c-format - msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "%s: 符號範åœçš„çœç•¥ä¸å¯ä»¥ç›´æŽ¥åœ¨ `order_end' 之å‰" - --#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1408 -+#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "`%s' å’Œ `%.*s' 皆éžç¬¦è™Ÿç¯„åœä¸­é©ç”¨çš„å稱" - --#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 -+#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "%s: `%.*s' çš„é †åºå·²åœ¨ %s:%Zu 中定義" - --#: locale/programs/ld-collate.c:1387 -+#: locale/programs/ld-collate.c:1388 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "%s: `%s' 必須是一個字元" - --#: locale/programs/ld-collate.c:1582 -+#: locale/programs/ld-collate.c:1583 - #, c-format - msgid "%s: `position' must be used for a specific level in all sections or none" - msgstr "%s: `position' 必須在所有å€å¡Šè£¡ç‰¹å®šçš„等級中使用,å¦å‰‡ä¸èƒ½ä½¿ç”¨" - --#: locale/programs/ld-collate.c:1607 -+#: locale/programs/ld-collate.c:1608 - #, c-format - msgid "symbol `%s' not defined" - msgstr "並未定義 `%s' 符號" - --#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "跟符號 `%s' 有相åŒçš„編碼: " - --#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 -+#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 - #, c-format - msgid "symbol `%s'" - msgstr "符號 `%s'" - --#: locale/programs/ld-collate.c:1833 -+#: locale/programs/ld-collate.c:1834 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "沒有找到 `UNDEFINED' 的定義" - --#: locale/programs/ld-collate.c:1862 -+#: locale/programs/ld-collate.c:1863 - #, c-format - msgid "too many errors; giving up" - msgstr "發生太多錯誤;放棄中" - --#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 -+#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "%s: ä¸æ”¯æ´å·¢ç‹€æ¢ä»¶" - --#: locale/programs/ld-collate.c:2536 -+#: locale/programs/ld-collate.c:2545 - #, fuzzy, c-format - #| msgid "%s: more then one 'else'" - msgid "%s: more than one 'else'" - msgstr "%s: 使用多於一個「elseã€" - --#: locale/programs/ld-collate.c:2711 -+#: locale/programs/ld-collate.c:2720 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "%s: é‡è¤‡çš„定義 `%s'" - --#: locale/programs/ld-collate.c:2747 -+#: locale/programs/ld-collate.c:2756 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "%s: é‡è¤‡çš„ `%s' å€å¡Šå®£å‘Š" - --#: locale/programs/ld-collate.c:2883 -+#: locale/programs/ld-collate.c:2892 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "%s: 未知的字元在å°ç…§ç¬¦è™Ÿå稱中" - --#: locale/programs/ld-collate.c:3012 -+#: locale/programs/ld-collate.c:3021 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "%s: 未知的字元在åŒç¾©å®šç¾©å稱中" - --#: locale/programs/ld-collate.c:3023 -+#: locale/programs/ld-collate.c:3032 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "%s: 未知的字元在åŒç¾©å®šç¾©å€¼ä¸­" - --#: locale/programs/ld-collate.c:3033 -+#: locale/programs/ld-collate.c:3042 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "%s: 未知的符號 `%s' 在åŒç¾©å®šç¾©ä¸­" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3051 - msgid "error while adding equivalent collating symbol" - msgstr "正在加入åŒç¾©å°ç…§ç¬¦è™Ÿæ™‚發生錯誤" - --#: locale/programs/ld-collate.c:3080 -+#: locale/programs/ld-collate.c:3089 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "敘述 `%s' 的定義é‡è¤‡äº†" - --#: locale/programs/ld-collate.c:3128 -+#: locale/programs/ld-collate.c:3137 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "%s: ä¸æ˜Žçš„節段å稱「%.*sã€" - --#: locale/programs/ld-collate.c:3157 -+#: locale/programs/ld-collate.c:3166 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "%s: `%s' å€å¡Šä¸­æœ‰å¤šå€‹é †åºå®šç¾©" - --#: locale/programs/ld-collate.c:3185 -+#: locale/programs/ld-collate.c:3194 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "%s: ä¸é©ç”¨çš„排åºè¦å‰‡æ•¸ç›®" - --#: locale/programs/ld-collate.c:3212 -+#: locale/programs/ld-collate.c:3221 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "%s: 未命åçš„å€å¡Šä¸­æœ‰å¤šå€‹é †åºå®šç¾©" - --#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 --#: locale/programs/ld-collate.c:3760 -+#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 -+#: locale/programs/ld-collate.c:3769 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "%s: 缺少 `order_end' é—œéµå­—" - --#: locale/programs/ld-collate.c:3330 -+#: locale/programs/ld-collate.c:3339 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "%s: å°ç…§ç¬¦è™Ÿ %.*s çš„é †åºå°šæœªå®šç¾©" - --#: locale/programs/ld-collate.c:3348 -+#: locale/programs/ld-collate.c:3357 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "%s: å°ç…§å…ƒç´  %.*s çš„é †åºå°šæœªå®šç¾©" - --#: locale/programs/ld-collate.c:3359 -+#: locale/programs/ld-collate.c:3368 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "%s: 無法é‡æ–°æŽ’列在 %.*s 之後: 未知的符號" - --#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 -+#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "%s: 缺少 `reorder-end' é—œéµå­—" - --#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 -+#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "%s: 未知的å€å¡Š `%.*s'" - --#: locale/programs/ld-collate.c:3510 -+#: locale/programs/ld-collate.c:3519 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "%s: ä¸ç•¶çš„符號 <%.*s>" - --#: locale/programs/ld-collate.c:3706 -+#: locale/programs/ld-collate.c:3715 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "%s: 無法用 `%s' åšç‚ºçœç•¥å€æ®µçš„çµå°¾" - --#: locale/programs/ld-collate.c:3756 -+#: locale/programs/ld-collate.c:3765 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "%s: 空白的類別æ述是ä¸å…許的" - --#: locale/programs/ld-collate.c:3775 -+#: locale/programs/ld-collate.c:3784 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "%s: 缺少 `reorder-sections-end' é—œéµå­—" - --#: locale/programs/ld-collate.c:3939 -+#: locale/programs/ld-collate.c:3948 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "%s:「%sã€è€Œä¸éœ€å»åˆä¸­ã€Œifdefã€æˆ–「ifndefã€" - --#: locale/programs/ld-collate.c:3957 -+#: locale/programs/ld-collate.c:3966 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "%s:「endifã€è€Œä¸éœ€å»åˆä¸­ã€Œifdefã€æˆ–「ifndefã€" - --#: locale/programs/ld-ctype.c:484 -+#: locale/programs/ld-ctype.c:450 - #, c-format - msgid "No character set name specified in charmap" - msgstr "在字元å°æ‡‰ (charmap) 中沒有設定字集å稱" - --#: locale/programs/ld-ctype.c:513 -+#: locale/programs/ld-ctype.c:479 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" - msgstr "character L'\\u%0*x' (放在類別 `%s' 之中) 必須在類別 `%s' 裡é¢" - --#: locale/programs/ld-ctype.c:528 -+#: locale/programs/ld-ctype.c:494 - #, c-format - msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" - msgstr "character L'\\u%0*x' (放在類別 `%s' 之中) ä¸èƒ½åœ¨é¡žåˆ¥ `%s' 裡é¢" - --#: locale/programs/ld-ctype.c:542 locale/programs/ld-ctype.c:600 -+#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566 - #, c-format - msgid "internal error in %s, line %u" - msgstr "%s 的第 %u 列發生內部錯誤" - --#: locale/programs/ld-ctype.c:571 -+#: locale/programs/ld-ctype.c:537 - #, c-format - msgid "character '%s' in class `%s' must be in class `%s'" - msgstr "å­—å…ƒ '%s' (放在類別 `%s' 之中) 必須在類別 `%s' 裡é¢" - --#: locale/programs/ld-ctype.c:587 -+#: locale/programs/ld-ctype.c:553 - #, c-format - msgid "character '%s' in class `%s' must not be in class `%s'" - msgstr "å­—å…ƒ '%s' (放在類別 `%s' 之中) ä¸èƒ½åœ¨é¡žåˆ¥ `%s' 裡é¢" - --#: locale/programs/ld-ctype.c:617 locale/programs/ld-ctype.c:655 -+#: locale/programs/ld-ctype.c:583 locale/programs/ld-ctype.c:621 - #, c-format - msgid " character not in class `%s'" - msgstr " å­—å…ƒä¸åœ¨é¡žåˆ¥ `%s' 中" - --#: locale/programs/ld-ctype.c:629 locale/programs/ld-ctype.c:666 -+#: locale/programs/ld-ctype.c:595 locale/programs/ld-ctype.c:632 - #, c-format - msgid " character must not be in class `%s'" - msgstr " å­—å…ƒä¸å¯ä»¥åœ¨é¡žåˆ¥ `%s' 中" - --#: locale/programs/ld-ctype.c:644 -+#: locale/programs/ld-ctype.c:610 - #, c-format - msgid "character not defined in character map" - msgstr "å­—å…ƒ 在字集å°ç…§æª”中沒有定義" - --#: locale/programs/ld-ctype.c:780 -+#: locale/programs/ld-ctype.c:746 - #, c-format - msgid "`digit' category has not entries in groups of ten" - msgstr "`digit' 類別在群組 \"å\" 中沒有項目" - --#: locale/programs/ld-ctype.c:829 -+#: locale/programs/ld-ctype.c:795 - #, c-format - msgid "no input digits defined and none of the standard names in the charmap" - msgstr "沒有定義輸入數字,在字集å°ç…§æª”中也找ä¸åˆ°ç›¸ç¬¦çš„標準å稱" - --#: locale/programs/ld-ctype.c:894 -+#: locale/programs/ld-ctype.c:860 - #, c-format - msgid "not all characters used in `outdigit' are available in the charmap" - msgstr "在字集å°ç…§è¡¨ä¸­ç„¡æ³•æ‰¾åˆ°æŸäº›åœ¨ `outdigit' 中用到的字元" - --#: locale/programs/ld-ctype.c:911 -+#: locale/programs/ld-ctype.c:877 - #, c-format - msgid "not all characters used in `outdigit' are available in the repertoire" - msgstr "在編碼å°æ˜ æª”中無法找到æŸäº›åœ¨ `outdigit' 中用到的字元" - --#: locale/programs/ld-ctype.c:1176 -+#: locale/programs/ld-ctype.c:1142 - #, c-format - msgid "character class `%s' already defined" - msgstr "字元類別 `%s' 已經定義éŽäº†" - --#: locale/programs/ld-ctype.c:1182 -+#: locale/programs/ld-ctype.c:1148 - #, c-format - msgid "implementation limit: no more than %Zd character classes allowed" - msgstr "程å¼å¯¦ä½œçš„é™åˆ¶: ä¸èƒ½ä½¿ç”¨è¶…éŽ %Zd 個字集類別" - --#: locale/programs/ld-ctype.c:1208 -+#: locale/programs/ld-ctype.c:1174 - #, c-format - msgid "character map `%s' already defined" - msgstr "字集å°ç…§æª” `%s' 已經定義éŽäº†" - --#: locale/programs/ld-ctype.c:1214 -+#: locale/programs/ld-ctype.c:1180 - #, c-format - msgid "implementation limit: no more than %d character maps allowed" - msgstr "程å¼å¯¦ä½œçš„é™åˆ¶: ä¸èƒ½ä½¿ç”¨è¶…éŽ %d 個字集å°ç…§æª”" - --#: locale/programs/ld-ctype.c:1479 locale/programs/ld-ctype.c:1604 --#: locale/programs/ld-ctype.c:1710 locale/programs/ld-ctype.c:2400 --#: locale/programs/ld-ctype.c:3397 -+#: locale/programs/ld-ctype.c:1445 locale/programs/ld-ctype.c:1570 -+#: locale/programs/ld-ctype.c:1676 locale/programs/ld-ctype.c:2352 -+#: locale/programs/ld-ctype.c:3324 - #, c-format - msgid "%s: field `%s' does not contain exactly ten entries" - msgstr "%s: `%s' 欄ä½æ²’有精確包å«å個項目" - --#: locale/programs/ld-ctype.c:1507 locale/programs/ld-ctype.c:2081 -+#: locale/programs/ld-ctype.c:1473 locale/programs/ld-ctype.c:2047 - #, c-format - msgid "to-value of range is smaller than from-value " - msgstr "å€åŸŸå®šç¾©çš„çµå°¾å€¼ 比起始值 é‚„è¦å°" - --#: locale/programs/ld-ctype.c:1634 -+#: locale/programs/ld-ctype.c:1600 - msgid "start and end character sequence of range must have the same length" - msgstr "從起始到çµæŸä¹‹é–“çš„å­—å…ƒåºåˆ—長度跟編碼範åœå¿…須相åŒ" - --#: locale/programs/ld-ctype.c:1641 -+#: locale/programs/ld-ctype.c:1607 - msgid "to-value character sequence is smaller than from-value sequence" - msgstr "å­—å…ƒåºåˆ—定義的çµå°¾å€¼æ¯”起始值還è¦å°" - --#: locale/programs/ld-ctype.c:2001 locale/programs/ld-ctype.c:2052 -+#: locale/programs/ld-ctype.c:1967 locale/programs/ld-ctype.c:2018 - msgid "premature end of `translit_ignore' definition" - msgstr "`translit_ignore' 定義沒有按時çµæŸ" - --#: locale/programs/ld-ctype.c:2007 locale/programs/ld-ctype.c:2058 --#: locale/programs/ld-ctype.c:2100 -+#: locale/programs/ld-ctype.c:1973 locale/programs/ld-ctype.c:2024 -+#: locale/programs/ld-ctype.c:2066 - msgid "syntax error" - msgstr "語法錯誤" - --#: locale/programs/ld-ctype.c:2233 -+#: locale/programs/ld-ctype.c:2199 - #, c-format - msgid "%s: syntax error in definition of new character class" - msgstr "%s: 在定義新字元類別時語法錯誤" - --#: locale/programs/ld-ctype.c:2248 -+#: locale/programs/ld-ctype.c:2214 - #, c-format - msgid "%s: syntax error in definition of new character map" - msgstr "%s: 在定義新字元å°æ‡‰æ™‚語法錯誤" - --#: locale/programs/ld-ctype.c:2422 -+#: locale/programs/ld-ctype.c:2374 - msgid "ellipsis range must be marked by two operands of same type" - msgstr "çœç•¥å€åŸŸå¿…須用兩個型別相åŒçš„é‹ç®—元標示出來" - --#: locale/programs/ld-ctype.c:2431 -+#: locale/programs/ld-ctype.c:2383 - msgid "with symbolic name range values the absolute ellipsis `...' must not be used" - msgstr "用符號å稱來指定字元編碼範åœæ™‚ä¸å¯ä»¥ç”¨çµ•å°ä½ç½®çš„çœç•¥ç¬¦è™Ÿ `…'" - --#: locale/programs/ld-ctype.c:2446 -+#: locale/programs/ld-ctype.c:2398 - msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" - msgstr "用來指定 UCS 值的範åœæ™‚得用å六進ä½è¡¨ç¤ºçš„çœç•¥ç¬¦è™Ÿ `..'" - --#: locale/programs/ld-ctype.c:2460 -+#: locale/programs/ld-ctype.c:2412 - msgid "with character code range values one must use the absolute ellipsis `...'" - msgstr "用來指定字元編碼值的範åœæ™‚得用絕å°ä½ç½®çš„çœç•¥ç¬¦è™Ÿ `…'" - --#: locale/programs/ld-ctype.c:2611 -+#: locale/programs/ld-ctype.c:2563 - #, c-format - msgid "duplicated definition for mapping `%s'" - msgstr "å°æ˜  `%s' 的定義é‡è¤‡äº†" - --#: locale/programs/ld-ctype.c:2697 locale/programs/ld-ctype.c:2841 -+#: locale/programs/ld-ctype.c:2649 locale/programs/ld-ctype.c:2793 - #, c-format - msgid "%s: `translit_start' section does not end with `translit_end'" - msgstr "%s: `translit_start' å°ç¯€ä¸¦æ²’有以 `translit_end' åšç‚ºçµæŸ" - --#: locale/programs/ld-ctype.c:2792 -+#: locale/programs/ld-ctype.c:2744 - #, c-format - msgid "%s: duplicate `default_missing' definition" - msgstr "%s: é‡è¤‡çš„ `default_missing' 定義" - --#: locale/programs/ld-ctype.c:2797 -+#: locale/programs/ld-ctype.c:2749 - msgid "previous definition was here" - msgstr "å…ˆå‰çš„設定在此" - --#: locale/programs/ld-ctype.c:2819 -+#: locale/programs/ld-ctype.c:2771 - #, c-format - msgid "%s: no representable `default_missing' definition found" - msgstr "%s: 找ä¸åˆ°å¯è¡¨ç¤ºç‚º `default_missing' 的定義" - --#: locale/programs/ld-ctype.c:2962 locale/programs/ld-ctype.c:3059 --#: locale/programs/ld-ctype.c:3079 locale/programs/ld-ctype.c:3100 --#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3142 --#: locale/programs/ld-ctype.c:3163 locale/programs/ld-ctype.c:3203 --#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3289 --#: locale/programs/ld-ctype.c:3331 locale/programs/ld-ctype.c:3356 -+#: locale/programs/ld-ctype.c:2889 locale/programs/ld-ctype.c:2986 -+#: locale/programs/ld-ctype.c:3006 locale/programs/ld-ctype.c:3027 -+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3069 -+#: locale/programs/ld-ctype.c:3090 locale/programs/ld-ctype.c:3130 -+#: locale/programs/ld-ctype.c:3151 locale/programs/ld-ctype.c:3216 -+#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3283 - #, c-format - msgid "%s: character `%s' not defined while needed as default value" - msgstr "%s: å­—å…ƒ `%s' 沒有定義,但它是必需的é è¨­å€¼" - --#: locale/programs/ld-ctype.c:2967 locale/programs/ld-ctype.c:3064 --#: locale/programs/ld-ctype.c:3084 locale/programs/ld-ctype.c:3105 --#: locale/programs/ld-ctype.c:3126 locale/programs/ld-ctype.c:3147 --#: locale/programs/ld-ctype.c:3168 locale/programs/ld-ctype.c:3208 --#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3294 -+#: locale/programs/ld-ctype.c:2894 locale/programs/ld-ctype.c:2991 -+#: locale/programs/ld-ctype.c:3011 locale/programs/ld-ctype.c:3032 -+#: locale/programs/ld-ctype.c:3053 locale/programs/ld-ctype.c:3074 -+#: locale/programs/ld-ctype.c:3095 locale/programs/ld-ctype.c:3135 -+#: locale/programs/ld-ctype.c:3156 locale/programs/ld-ctype.c:3221 - #, c-format - msgid "%s: character `%s' in charmap not representable with one byte" - msgstr "%s: 字集å°ç…§è¡¨ä¸­çš„å­—å…ƒ `%s' 無法表示為單一ä½å…ƒçµ„" - --#: locale/programs/ld-ctype.c:3338 locale/programs/ld-ctype.c:3363 -+#: locale/programs/ld-ctype.c:3265 locale/programs/ld-ctype.c:3290 - #, c-format - msgid "%s: character `%s' needed as default value not representable with one byte" - msgstr "%s: åšç‚ºé è¨­å€¼æ‰€éœ€çš„å­—å…ƒ `%s' 無法表示為單一ä½å…ƒçµ„" - --#: locale/programs/ld-ctype.c:3419 -+#: locale/programs/ld-ctype.c:3346 - #, c-format - msgid "no output digits defined and none of the standard names in the charmap" - msgstr "沒有定義輸出數字,在字集å°ç…§æª”中也找ä¸åˆ°ç›¸ç¬¦çš„標準å稱" - --#: locale/programs/ld-ctype.c:3668 -+#: locale/programs/ld-ctype.c:3595 - #, c-format - msgid "%s: transliteration data from locale `%s' not available" - msgstr "%s: 語å€è³‡æ–™`%s' 的音譯資料ä¸å­˜åœ¨" - --#: locale/programs/ld-ctype.c:3768 -+#: locale/programs/ld-ctype.c:3695 - #, c-format - msgid "%s: table for class \"%s\": %lu bytes\n" - msgstr "%s: 類別 \"%s\" 表格: %lu ä½å…ƒçµ„\n" - --#: locale/programs/ld-ctype.c:3833 -+#: locale/programs/ld-ctype.c:3760 - #, c-format - msgid "%s: table for map \"%s\": %lu bytes\n" - msgstr "%s: å°æ˜ è¡¨ \"%s\" 表格: %lu ä½å…ƒçµ„\n" - --#: locale/programs/ld-ctype.c:3958 -+#: locale/programs/ld-ctype.c:3885 - #, c-format - msgid "%s: table for width: %lu bytes\n" - msgstr "%s: 寬度表格: %lu ä½å…ƒçµ„\n" -@@ -3812,17 +3804,23 @@ msgstr "加入新的項目「%sã€çš„åž‹ - msgid " (first)" - msgstr " (å…ˆ)" - --#: nscd/cache.c:285 nscd/connections.c:1000 --#, c-format --msgid "cannot stat() file `%s': %s" -+#: nscd/cache.c:288 -+#, fuzzy, c-format -+#| msgid "cannot stat() file `%s': %s" -+msgid "checking for monitored file `%s': %s" - msgstr "無法 stat() 檔案 `%s': %s" - --#: nscd/cache.c:331 -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "" -+ -+#: nscd/cache.c:341 - #, c-format - msgid "pruning %s cache; time %ld" - msgstr "pruning %s å¿«å–;時間 %ld" - --#: nscd/cache.c:360 -+#: nscd/cache.c:370 - #, c-format - msgid "considering %s entry \"%s\", timeout %" - msgstr "èªç‚ºä¸­ %s 項目「%sã€ï¼Œé€¾æ™‚ %" -@@ -3908,153 +3906,217 @@ msgstr "無法設定通訊端於 exec: - msgid "cannot enable socket to accept connections: %s" - msgstr "無法開啟 socket 來接å—連線: %s" - --#: nscd/connections.c:984 -+#: nscd/connections.c:973 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:977 - #, c-format --msgid "register trace file %s for database %s" -+msgid "monitoring file `%s` (%d)" -+msgstr "" -+ -+#: nscd/connections.c:990 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "" -+ -+#: nscd/connections.c:994 -+#, fuzzy, c-format -+#| msgid "Can't open directory %s" -+msgid "monitoring directory `%s` (%d)" -+msgstr "無法開啟目錄 %s" -+ -+#: nscd/connections.c:1022 -+#, fuzzy, c-format -+#| msgid "register trace file %s for database %s" -+msgid "monitoring file %s for database %s" - msgstr "註冊追蹤檔案 %s 用於資料庫 %s" - --#: nscd/connections.c:1114 -+#: nscd/connections.c:1032 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "" -+ -+#: nscd/connections.c:1151 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "æ供存å–到 FD %d, 用於 %s" - --#: nscd/connections.c:1126 -+#: nscd/connections.c:1163 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "ä¸èƒ½è™•ç†èˆŠ %d 版的請求;目å‰ä½¿ç”¨çš„版本是 %d" - --#: nscd/connections.c:1148 -+#: nscd/connections.c:1185 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "由於缺少權é™è€Œç„¡æ³•è™•ç†ä¾†è‡ª %ld çš„è¦æ±‚" - --#: nscd/connections.c:1153 -+#: nscd/connections.c:1190 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "由於缺少權é™è€Œç„¡æ³•è™•ç†ä¾†è‡ª '%s' [%ld] çš„è¦æ±‚" - --#: nscd/connections.c:1158 -+#: nscd/connections.c:1195 - msgid "request not handled due to missing permission" - msgstr "è¦æ±‚無法控柄的由於缺少權é™" - --#: nscd/connections.c:1196 nscd/connections.c:1249 -+#: nscd/connections.c:1233 nscd/connections.c:1286 - #, c-format - msgid "cannot write result: %s" - msgstr "無法寫入çµæžœ: %s" - --#: nscd/connections.c:1340 -+#: nscd/connections.c:1377 - #, c-format - msgid "error getting caller's id: %s" - msgstr "å–得呼å«ç¨‹å¼è­˜åˆ¥ç¢¼æ™‚發生錯誤: %s" - --#: nscd/connections.c:1400 -+#: nscd/connections.c:1437 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "無法開啟/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1414 -+#: nscd/connections.c:1451 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "無法讀å–/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1454 -+#: nscd/connections.c:1491 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "無法變更為舊的 UID:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1464 -+#: nscd/connections.c:1501 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "無法變更為舊的 GID:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1477 -+#: nscd/connections.c:1514 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "無法變更為舊的工作目錄:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1523 -+#: nscd/connections.c:1560 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "re-exec 失敗:%s; åœç”¨ paranoia 模å¼" - --#: nscd/connections.c:1532 -+#: nscd/connections.c:1569 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "無法變更目å‰çš„工作目錄到「/ã€ï¼š%s" - --#: nscd/connections.c:1725 -+#: nscd/connections.c:1762 - #, c-format - msgid "short read while reading request: %s" - msgstr "讀å–請求時發ç¾è¼¸å…¥å€¼éŽçŸ­: %s" - --#: nscd/connections.c:1758 -+#: nscd/connections.c:1795 - #, c-format - msgid "key length in request too long: %d" - msgstr "在此請求中使用的éµå€¼å¤ªé•·äº†: %d" - --#: nscd/connections.c:1771 -+#: nscd/connections.c:1808 - #, c-format - msgid "short read while reading request key: %s" - msgstr "讀å–請求的éµå€¼æ™‚發ç¾è¼¸å…¥å€¼éŽçŸ­: %s" - --#: nscd/connections.c:1781 -+#: nscd/connections.c:1818 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "handle_request: è«‹æ±‚å·²è¢«æŽ¥å— (版本為 %d) 來自於 PID %ld" - --#: nscd/connections.c:1786 -+#: nscd/connections.c:1823 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "handle_request: è«‹æ±‚å·²è¢«æŽ¥å— (版本為 %d)" - --#: nscd/connections.c:2050 nscd/connections.c:2252 -+#: nscd/connections.c:1963 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "" -+ -+#: nscd/connections.c:1968 - #, c-format --msgid "disabled inotify after read error %d" -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "" -+ -+#: nscd/connections.c:1976 nscd/connections.c:2018 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "" -+ -+#: nscd/connections.c:1991 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "" -+ -+#: nscd/connections.c:2015 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "" -+ -+#: nscd/connections.c:2041 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "" -+ -+#: nscd/connections.c:2053 -+#, fuzzy, c-format -+#| msgid "failed to load shared object `%s'" -+msgid "failed to add file watch `%s`: %s" -+msgstr "開啟共用目的檔 `%s' 失敗" -+ -+#: nscd/connections.c:2247 nscd/connections.c:2428 -+#, fuzzy, c-format -+#| msgid "disabled inotify after read error %d" -+msgid "disabled inotify-based monitoring after read error %d" - msgstr "è®€å– %d 錯誤之後已åœç”¨ inotify" - --#: nscd/connections.c:2375 -+#: nscd/connections.c:2543 - msgid "could not initialize conditional variable" - msgstr "無法åˆå§‹åŒ–æ¢ä»¶è®Šæ•¸" - --#: nscd/connections.c:2383 -+#: nscd/connections.c:2551 - msgid "could not start clean-up thread; terminating" - msgstr "無法開始清ç†åŸ·è¡Œç·’;終止中" - --#: nscd/connections.c:2397 -+#: nscd/connections.c:2565 - msgid "could not start any worker thread; terminating" - msgstr "無法開始任何背景工作執行緒;終止中" - --#: nscd/connections.c:2452 nscd/connections.c:2454 nscd/connections.c:2470 --#: nscd/connections.c:2480 nscd/connections.c:2498 nscd/connections.c:2509 --#: nscd/connections.c:2519 -+#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 -+#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 -+#: nscd/connections.c:2687 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "以使用者 '%s' 的身分執行 nscd 失敗" - --#: nscd/connections.c:2472 -+#: nscd/connections.c:2640 - msgid "initial getgrouplist failed" - msgstr "åˆå§‹ getgrouplist 失敗" - --#: nscd/connections.c:2481 -+#: nscd/connections.c:2649 - msgid "getgrouplist failed" - msgstr "getgrouplist 失敗" - --#: nscd/connections.c:2499 -+#: nscd/connections.c:2667 - msgid "setgroups failed" - msgstr "setgroups 失敗" - --#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:410 -+#: nscd/grpcache.c:405 nscd/hstcache.c:432 nscd/initgrcache.c:411 - #: nscd/pwdcache.c:383 nscd/servicescache.c:338 - #, c-format - msgid "short write in %s: %s" - msgstr "寫入 %s 的資料éŽçŸ­: %s" - --#: nscd/grpcache.c:450 nscd/initgrcache.c:77 -+#: nscd/grpcache.c:450 nscd/initgrcache.c:78 - #, c-format - msgid "Haven't found \"%s\" in group cache!" - msgstr "尚未在群組快å–中找到 \"%s\"!" - --#: nscd/grpcache.c:452 nscd/initgrcache.c:79 -+#: nscd/grpcache.c:452 nscd/initgrcache.c:80 - #, c-format - msgid "Reloading \"%s\" in group cache!" - msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼ç¾¤çµ„å¿«å–ï¼" -@@ -4142,7 +4204,7 @@ msgstr "å°ä¸åŒä½¿ç”¨è€…使用ä¸åŒçš - msgid "Name Service Cache Daemon." - msgstr "網域å稱快å–ç²¾éˆ" - --#: nscd/nscd.c:155 nss/getent.c:1003 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "åƒæ•¸æ•¸ç›®ä¸å°" -@@ -4176,7 +4238,7 @@ msgstr "無法變更目å‰çš„å·¥ä½œç›®éŒ - msgid "Could not create log file" - msgstr "無法建立記錄檔" - --#: nscd/nscd.c:355 nscd/nscd_stat.c:192 -+#: nscd/nscd.c:355 nscd/nscd_stat.c:194 - #, c-format - msgid "write incomplete" - msgstr "寫入ä¸å®Œå…¨" -@@ -4191,7 +4253,7 @@ msgstr "無法讀å–設為無效的 ACK" - msgid "invalidation failed" - msgstr "無效化失敗" - --#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:173 -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:175 - #, c-format - msgid "Only root is allowed to use this option!" - msgstr "åªæœ‰ root æ‰å¯ä»¥ä½¿ç”¨æ­¤ä¸€é¸é …!" -@@ -4280,35 +4342,35 @@ msgstr "無法å–å¾—ç›®å‰çš„å·¥ä½œç›®éŒ - msgid "maximum file size for %s database too small" - msgstr "最大值檔案大å°ç”¨æ–¼ %s 資料庫太å°" - --#: nscd/nscd_stat.c:142 -+#: nscd/nscd_stat.c:144 - #, c-format - msgid "cannot write statistics: %s" - msgstr "無法寫入統計資料: %s" - --#: nscd/nscd_stat.c:157 -+#: nscd/nscd_stat.c:159 - msgid "yes" - msgstr "是" - --#: nscd/nscd_stat.c:158 -+#: nscd/nscd_stat.c:160 - msgid "no" - msgstr "ç„¡" - --#: nscd/nscd_stat.c:169 -+#: nscd/nscd_stat.c:171 - #, c-format - msgid "Only root or %s is allowed to use this option!" - msgstr "åªæœ‰ root 或 %s æ‰å…許使用此一é¸é …!" - --#: nscd/nscd_stat.c:180 -+#: nscd/nscd_stat.c:182 - #, c-format - msgid "nscd not running!\n" - msgstr "nscd 並沒有在執行!\n" - --#: nscd/nscd_stat.c:204 -+#: nscd/nscd_stat.c:206 - #, c-format - msgid "cannot read statistics data" - msgstr "無法讀å–統計資料" - --#: nscd/nscd_stat.c:207 -+#: nscd/nscd_stat.c:209 - #, c-format - msgid "" - "nscd configuration:\n" -@@ -4319,27 +4381,27 @@ msgstr "" - "\n" - "%15d 伺æœç¨‹å¼éŒ¯èª¤è¨Šæ¯å ±å‘Šç­‰ç´š\n" - --#: nscd/nscd_stat.c:231 -+#: nscd/nscd_stat.c:233 - #, c-format - msgid "%3ud %2uh %2um %2lus server runtime\n" - msgstr "%3ud %2uh %2um %2lus 伺æœå™¨ 執行時期\n" - --#: nscd/nscd_stat.c:234 -+#: nscd/nscd_stat.c:236 - #, c-format - msgid " %2uh %2um %2lus server runtime\n" - msgstr " %2uh %2um %2lus 伺æœå™¨ 執行時期\n" - --#: nscd/nscd_stat.c:236 -+#: nscd/nscd_stat.c:238 - #, c-format - msgid " %2um %2lus server runtime\n" - msgstr " %2um %2lus 伺æœå™¨ 執行時期\n" - --#: nscd/nscd_stat.c:238 -+#: nscd/nscd_stat.c:240 - #, c-format - msgid " %2lus server runtime\n" - msgstr " %2lus 伺æœå™¨ 執行時期\n" - --#: nscd/nscd_stat.c:240 -+#: nscd/nscd_stat.c:242 - #, c-format - msgid "" - "%15d current number of threads\n" -@@ -4356,7 +4418,7 @@ msgstr "" - "%15lu 內部é‡æ–°å•Ÿå‹•\n" - "%15u é‡æ–°è¼‰å…¥è¨ˆæ•¸\n" - --#: nscd/nscd_stat.c:275 -+#: nscd/nscd_stat.c:277 - #, c-format - msgid "" - "\n" -@@ -4422,87 +4484,87 @@ msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼å¯†ç¢¼å¿« - msgid "Invalid numeric uid \"%s\"!" - msgstr "無效的 uid 數值 \"%s\"!" - --#: nscd/selinux.c:155 -+#: nscd/selinux.c:154 - #, c-format - msgid "Failed opening connection to the audit subsystem: %m" - msgstr "失敗的開啟連線到稽核å­ç³»çµ±ï¼š%m" - --#: nscd/selinux.c:176 -+#: nscd/selinux.c:175 - msgid "Failed to set keep-capabilities" - msgstr "設定功能ä¿æŒæ™‚失敗" - --#: nscd/selinux.c:177 nscd/selinux.c:240 -+#: nscd/selinux.c:176 nscd/selinux.c:239 - msgid "prctl(KEEPCAPS) failed" - msgstr "prctl(KEEPCAPS) 失敗" - --#: nscd/selinux.c:191 -+#: nscd/selinux.c:190 - msgid "Failed to initialize drop of capabilities" - msgstr "åˆå§‹åŒ–功能放棄時失敗" - --#: nscd/selinux.c:192 -+#: nscd/selinux.c:191 - msgid "cap_init failed" - msgstr "cap_init 失敗" - --#: nscd/selinux.c:213 nscd/selinux.c:230 -+#: nscd/selinux.c:212 nscd/selinux.c:229 - msgid "Failed to drop capabilities" - msgstr "放棄功能時失敗" - --#: nscd/selinux.c:214 nscd/selinux.c:231 -+#: nscd/selinux.c:213 nscd/selinux.c:230 - msgid "cap_set_proc failed" - msgstr "cap_set_proc 失敗" - --#: nscd/selinux.c:239 -+#: nscd/selinux.c:238 - msgid "Failed to unset keep-capabilities" - msgstr "解除設定功能ä¿æŒæ™‚失敗" - --#: nscd/selinux.c:255 -+#: nscd/selinux.c:254 - msgid "Failed to determine if kernel supports SELinux" - msgstr "æ±ºå®šå¦‚æžœå…§æ ¸æ”¯æ´ SELinux 時失敗" - --#: nscd/selinux.c:270 -+#: nscd/selinux.c:269 - msgid "Failed to start AVC thread" - msgstr "開始 AVC 執行緒時失敗" - --#: nscd/selinux.c:292 -+#: nscd/selinux.c:291 - msgid "Failed to create AVC lock" - msgstr "建立 AVC 鎖定時失敗" - --#: nscd/selinux.c:332 -+#: nscd/selinux.c:331 - msgid "Failed to start AVC" - msgstr "啟始 AVC 時失敗" - --#: nscd/selinux.c:334 -+#: nscd/selinux.c:333 - msgid "Access Vector Cache (AVC) started" - msgstr "å­˜å–å‘é‡å¿«å– (AVC) 開始" - --#: nscd/selinux.c:369 -+#: nscd/selinux.c:368 - msgid "Error querying policy for undefined object classes or permissions." - msgstr "" - --#: nscd/selinux.c:376 -+#: nscd/selinux.c:375 - #, fuzzy - #| msgid "Error getting context of nscd" - msgid "Error getting security class for nscd." - msgstr "å–å¾— nscd 的狀態組åˆæ™‚發生錯誤" - --#: nscd/selinux.c:381 -+#: nscd/selinux.c:380 - #, c-format - msgid "Error translating permission name \"%s\" to access vector bit." - msgstr "" - --#: nscd/selinux.c:391 -+#: nscd/selinux.c:390 - msgid "Error getting context of socket peer" - msgstr "å–å¾—å°ç­‰é€šè¨Šç«¯çš„狀態組åˆæ™‚發生錯誤" - --#: nscd/selinux.c:396 -+#: nscd/selinux.c:395 - msgid "Error getting context of nscd" - msgstr "å–å¾— nscd 的狀態組åˆæ™‚發生錯誤" - --#: nscd/selinux.c:402 -+#: nscd/selinux.c:401 - msgid "Error getting sid from context" - msgstr "從狀態組åˆå–å¾— sid 時發生錯誤" - --#: nscd/selinux.c:440 -+#: nscd/selinux.c:439 - #, c-format - msgid "" - "\n" -@@ -4564,16 +4626,16 @@ msgstr "從管ç†è³‡æ–™åº«å–å¾—æ¢ç›®ã€ - msgid "Enumeration not supported on %s\n" - msgstr "此項目在 %s 中ä¸è¢«æ”¯æ´\n" - --#: nss/getent.c:917 -+#: nss/getent.c:921 - #, c-format - msgid "Unknown database name" - msgstr "ä¸æ˜Žçš„資料庫å稱" - --#: nss/getent.c:947 -+#: nss/getent.c:951 - msgid "Supported databases:\n" - msgstr "支æ´çš„資料庫:\n" - --#: nss/getent.c:1013 -+#: nss/getent.c:1017 - #, c-format - msgid "Unknown database: %s\n" - msgstr "未知的資料庫: %s\n" -@@ -4853,7 +4915,7 @@ msgstr ") 或 \\) ä¸èƒ½åŒ¹é…" - msgid "No previous regular expression" - msgstr "å…ˆå‰ä¸¦æœªä½¿ç”¨éŽå¸¸è¦è¡¨ç¤ºå¼" - --#: posix/wordexp.c:1844 -+#: posix/wordexp.c:1851 - msgid "parameter null or not set" - msgstr "åƒæ•¸ç‚ºç©ºå­—元或是未設置" - -@@ -7273,6 +7335,15 @@ msgstr "時å€ç¸®å¯«å¤ªå¤šæˆ–者太長" - msgid "%s: Can't create directory %s: %s\n" - msgstr "%s: 無法建立目錄 %s: %s\n" - -+#~ msgid "cannot load any more object with static TLS" -+#~ msgstr "無法以éœæ…‹ TLS å†è¼‰å…¥ä»»ä½•ç‰©ä»¶" -+ -+#~ msgid "%s: no PLTREL found in object %s\n" -+#~ msgstr "%s: 在目的檔 %s 中沒有找到 PLTREL\n" -+ -+#~ msgid "cannot create internal descriptors" -+#~ msgstr "無法建立內部敘述項" -+ - #~ msgid "compile-time support for database policy missing" - #~ msgstr "compile-time 支æ´ç”¨æ–¼è³‡æ–™åº«ç­–略缺少" - diff --git a/0002-Regenerate-libc.pot-for-2.23.patch b/0002-Regenerate-libc.pot-for-2.23.patch deleted file mode 100644 index e1212a8..0000000 --- a/0002-Regenerate-libc.pot-for-2.23.patch +++ /dev/null @@ -1,2313 +0,0 @@ -2016-02-18 Adhemerval Zanella - - * po/libc.pot: Regenerated. - -Index: glibc-2.23/po/libc.pot -=================================================================== ---- glibc-2.23.orig/po/libc.pot -+++ glibc-2.23/po/libc.pot -@@ -5,8 +5,8 @@ - #, fuzzy - msgid "" - msgstr "" --"Project-Id-Version: libc 2.21.90\n" --"POT-Creation-Date: 2015-07-31 00:10-0400\n" -+"Project-Id-Version: libc 2.23.90\n" -+"POT-Creation-Date: 2016-02-18 17:26-0200\n" - "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" - "Last-Translator: FULL NAME \n" - "Language-Team: LANGUAGE \n" -@@ -140,9 +140,9 @@ msgstr "" - #: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307 - #: elf/pldd.c:252 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408 - #: iconv/iconvconfig.c:379 locale/programs/locale.c:277 --#: locale/programs/localedef.c:376 login/programs/pt_chown.c:88 --#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369 --#: posix/getconf.c:486 sunrpc/rpcinfo.c:691 -+#: locale/programs/localedef.c:376 login/programs/pt_chown.c:89 -+#: malloc/memusagestat.c:563 nss/getent.c:913 nss/makedb.c:369 -+#: posix/getconf.c:486 sunrpc/rpcinfo.c:676 - #: sysdeps/unix/sysv/linux/lddlibc4.c:61 - #, c-format - msgid "" -@@ -154,7 +154,7 @@ msgstr "" - #: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 - #: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396 - #: locale/programs/locale.c:294 locale/programs/localedef.c:402 --#: login/programs/pt_chown.c:62 malloc/memusage.sh:71 -+#: login/programs/pt_chown.c:63 malloc/memusage.sh:71 - #: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:86 nss/makedb.c:385 - #: posix/getconf.c:468 sysdeps/unix/sysv/linux/lddlibc4.c:68 - #, c-format -@@ -411,11 +411,11 @@ msgstr "" - msgid "Renaming of %s to %s failed" - msgstr "" - --#: elf/dl-close.c:396 elf/dl-open.c:478 -+#: elf/dl-close.c:397 elf/dl-open.c:478 - msgid "cannot create scope list" - msgstr "" - --#: elf/dl-close.c:816 -+#: elf/dl-close.c:817 - msgid "shared object not open" - msgstr "" - -@@ -470,147 +470,147 @@ msgstr "" - msgid "cannot create capability list" - msgstr "" - --#: elf/dl-load.c:410 -+#: elf/dl-load.c:412 - msgid "cannot allocate name record" - msgstr "" - --#: elf/dl-load.c:495 elf/dl-load.c:611 elf/dl-load.c:694 elf/dl-load.c:813 -+#: elf/dl-load.c:497 elf/dl-load.c:613 elf/dl-load.c:696 elf/dl-load.c:815 - msgid "cannot create cache for search path" - msgstr "" - --#: elf/dl-load.c:586 -+#: elf/dl-load.c:588 - msgid "cannot create RUNPATH/RPATH copy" - msgstr "" - --#: elf/dl-load.c:680 -+#: elf/dl-load.c:682 - msgid "cannot create search path array" - msgstr "" - --#: elf/dl-load.c:885 -+#: elf/dl-load.c:888 - msgid "cannot stat shared object" - msgstr "" - --#: elf/dl-load.c:962 -+#: elf/dl-load.c:965 - msgid "cannot open zero fill device" - msgstr "" - --#: elf/dl-load.c:1009 elf/dl-load.c:2159 -+#: elf/dl-load.c:1012 elf/dl-load.c:2212 - msgid "cannot create shared object descriptor" - msgstr "" - --#: elf/dl-load.c:1028 elf/dl-load.c:1568 elf/dl-load.c:1680 -+#: elf/dl-load.c:1031 elf/dl-load.c:1596 elf/dl-load.c:1708 - msgid "cannot read file data" - msgstr "" - --#: elf/dl-load.c:1068 -+#: elf/dl-load.c:1071 - msgid "ELF load command alignment not page-aligned" - msgstr "" - --#: elf/dl-load.c:1075 -+#: elf/dl-load.c:1078 - msgid "ELF load command address/offset not properly aligned" - msgstr "" - --#: elf/dl-load.c:1159 -+#: elf/dl-load.c:1161 - msgid "cannot allocate TLS data structures for initial thread" - msgstr "" - --#: elf/dl-load.c:1182 -+#: elf/dl-load.c:1184 - msgid "cannot handle TLS data" - msgstr "" - --#: elf/dl-load.c:1201 -+#: elf/dl-load.c:1203 - msgid "object file has no loadable segments" - msgstr "" - --#: elf/dl-load.c:1210 elf/dl-load.c:1660 -+#: elf/dl-load.c:1212 elf/dl-load.c:1688 - msgid "cannot dynamically load executable" - msgstr "" - --#: elf/dl-load.c:1231 -+#: elf/dl-load.c:1233 - msgid "object file has no dynamic section" - msgstr "" - --#: elf/dl-load.c:1254 -+#: elf/dl-load.c:1256 - msgid "shared object cannot be dlopen()ed" - msgstr "" - --#: elf/dl-load.c:1267 -+#: elf/dl-load.c:1269 - msgid "cannot allocate memory for program header" - msgstr "" - --#: elf/dl-load.c:1283 elf/dl-open.c:195 -+#: elf/dl-load.c:1285 elf/dl-open.c:195 - msgid "invalid caller" - msgstr "" - --#: elf/dl-load.c:1306 elf/dl-load.h:130 -+#: elf/dl-load.c:1308 elf/dl-load.h:130 - msgid "cannot change memory protections" - msgstr "" - --#: elf/dl-load.c:1326 -+#: elf/dl-load.c:1328 - msgid "cannot enable executable stack as shared object requires" - msgstr "" - --#: elf/dl-load.c:1339 -+#: elf/dl-load.c:1341 - msgid "cannot close file descriptor" - msgstr "" - --#: elf/dl-load.c:1568 -+#: elf/dl-load.c:1596 - msgid "file too short" - msgstr "" - --#: elf/dl-load.c:1603 -+#: elf/dl-load.c:1631 - msgid "invalid ELF header" - msgstr "" - --#: elf/dl-load.c:1615 -+#: elf/dl-load.c:1643 - msgid "ELF file data encoding not big-endian" - msgstr "" - --#: elf/dl-load.c:1617 -+#: elf/dl-load.c:1645 - msgid "ELF file data encoding not little-endian" - msgstr "" - --#: elf/dl-load.c:1621 -+#: elf/dl-load.c:1649 - msgid "ELF file version ident does not match current one" - msgstr "" - --#: elf/dl-load.c:1625 -+#: elf/dl-load.c:1653 - msgid "ELF file OS ABI invalid" - msgstr "" - --#: elf/dl-load.c:1628 -+#: elf/dl-load.c:1656 - msgid "ELF file ABI version invalid" - msgstr "" - --#: elf/dl-load.c:1631 -+#: elf/dl-load.c:1659 - msgid "nonzero padding in e_ident" - msgstr "" - --#: elf/dl-load.c:1634 -+#: elf/dl-load.c:1662 - msgid "internal error" - msgstr "" - --#: elf/dl-load.c:1641 -+#: elf/dl-load.c:1669 - msgid "ELF file version does not match current one" - msgstr "" - --#: elf/dl-load.c:1649 -+#: elf/dl-load.c:1677 - msgid "only ET_DYN and ET_EXEC can be loaded" - msgstr "" - --#: elf/dl-load.c:1665 -+#: elf/dl-load.c:1693 - msgid "ELF file's phentsize not the expected size" - msgstr "" - --#: elf/dl-load.c:2178 -+#: elf/dl-load.c:2231 - msgid "wrong ELF class: ELFCLASS64" - msgstr "" - --#: elf/dl-load.c:2179 -+#: elf/dl-load.c:2232 - msgid "wrong ELF class: ELFCLASS32" - msgstr "" - --#: elf/dl-load.c:2182 -+#: elf/dl-load.c:2235 - msgid "cannot open shared object file" - msgstr "" - -@@ -881,7 +881,7 @@ msgstr "" - msgid "need absolute file name for configuration file when using -r" - msgstr "" - --#: elf/ldconfig.c:1213 locale/programs/xmalloc.c:64 malloc/obstack.c:416 -+#: elf/ldconfig.c:1213 locale/programs/xmalloc.c:63 malloc/obstack.c:416 - #: malloc/obstack.c:418 posix/getconf.c:441 posix/getconf.c:661 - #, c-format - msgid "memory exhausted" -@@ -945,7 +945,7 @@ msgstr "" - msgid "No such file or directory" - msgstr "" - --#: elf/ldd.bash.in:150 inet/rcmd.c:492 -+#: elf/ldd.bash.in:150 inet/rcmd.c:479 - msgid "not regular file" - msgstr "" - -@@ -1120,32 +1120,32 @@ msgid "" - "\n" - msgstr "" - --#: elf/sln.c:109 -+#: elf/sln.c:108 - #, c-format - msgid "%s: file open error: %m\n" - msgstr "" - --#: elf/sln.c:146 -+#: elf/sln.c:145 - #, c-format - msgid "No target in line %d\n" - msgstr "" - --#: elf/sln.c:178 -+#: elf/sln.c:175 - #, c-format - msgid "%s: destination must not be a directory\n" - msgstr "" - --#: elf/sln.c:184 -+#: elf/sln.c:181 - #, c-format - msgid "%s: failed to remove the old destination\n" - msgstr "" - --#: elf/sln.c:192 -+#: elf/sln.c:189 - #, c-format - msgid "%s: invalid destination: %s\n" - msgstr "" - --#: elf/sln.c:207 elf/sln.c:216 -+#: elf/sln.c:204 elf/sln.c:213 - #, c-format - msgid "Invalid link from \"%s\" to \"%s\": %s\n" - msgstr "" -@@ -1499,84 +1499,84 @@ msgstr "" - msgid "cannot generate output file" - msgstr "" - --#: inet/rcmd.c:163 -+#: inet/rcmd.c:159 - msgid "rcmd: Cannot allocate memory\n" - msgstr "" - --#: inet/rcmd.c:178 -+#: inet/rcmd.c:174 - msgid "rcmd: socket: All ports in use\n" - msgstr "" - --#: inet/rcmd.c:206 -+#: inet/rcmd.c:202 - #, c-format - msgid "connect to address %s: " - msgstr "" - --#: inet/rcmd.c:219 -+#: inet/rcmd.c:215 - #, c-format - msgid "Trying %s...\n" - msgstr "" - --#: inet/rcmd.c:255 -+#: inet/rcmd.c:251 - #, c-format - msgid "rcmd: write (setting up stderr): %m\n" - msgstr "" - --#: inet/rcmd.c:271 -+#: inet/rcmd.c:267 - #, c-format - msgid "rcmd: poll (setting up stderr): %m\n" - msgstr "" - --#: inet/rcmd.c:274 -+#: inet/rcmd.c:270 - msgid "poll: protocol failure in circuit setup\n" - msgstr "" - --#: inet/rcmd.c:306 -+#: inet/rcmd.c:302 - msgid "socket: protocol failure in circuit setup\n" - msgstr "" - --#: inet/rcmd.c:330 -+#: inet/rcmd.c:326 - #, c-format - msgid "rcmd: %s: short read" - msgstr "" - --#: inet/rcmd.c:490 -+#: inet/rcmd.c:477 - msgid "lstat failed" - msgstr "" - --#: inet/rcmd.c:497 -+#: inet/rcmd.c:484 - msgid "cannot open" - msgstr "" - --#: inet/rcmd.c:499 -+#: inet/rcmd.c:486 - msgid "fstat failed" - msgstr "" - --#: inet/rcmd.c:501 -+#: inet/rcmd.c:488 - msgid "bad owner" - msgstr "" - --#: inet/rcmd.c:503 -+#: inet/rcmd.c:490 - msgid "writeable by other than owner" - msgstr "" - --#: inet/rcmd.c:505 -+#: inet/rcmd.c:492 - msgid "hard linked somewhere" - msgstr "" - --#: inet/ruserpass.c:170 inet/ruserpass.c:193 -+#: inet/ruserpass.c:169 inet/ruserpass.c:192 - msgid "out of memory" - msgstr "" - --#: inet/ruserpass.c:184 -+#: inet/ruserpass.c:183 - msgid "Error: .netrc file is readable by others." - msgstr "" - --#: inet/ruserpass.c:185 -+#: inet/ruserpass.c:184 - msgid "Remove password or make file unreadable by others." - msgstr "" - --#: inet/ruserpass.c:277 -+#: inet/ruserpass.c:276 - #, c-format - msgid "Unknown .netrc keyword %s" - msgstr "" -@@ -1681,7 +1681,7 @@ msgid "no symbolic name given for end of - msgstr "" - - #: locale/programs/charmap.c:610 locale/programs/ld-address.c:528 --#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793 -+#: locale/programs/ld-collate.c:2626 locale/programs/ld-collate.c:3784 - #: locale/programs/ld-ctype.c:2128 locale/programs/ld-ctype.c:2840 - #: locale/programs/ld-identification.c:368 - #: locale/programs/ld-measurement.c:215 locale/programs/ld-messages.c:298 -@@ -1708,7 +1708,7 @@ msgid "%s: error in state machine" - msgstr "" - - #: locale/programs/charmap.c:850 locale/programs/ld-address.c:544 --#: locale/programs/ld-collate.c:2632 locale/programs/ld-collate.c:3986 -+#: locale/programs/ld-collate.c:2623 locale/programs/ld-collate.c:3977 - #: locale/programs/ld-ctype.c:2125 locale/programs/ld-ctype.c:2857 - #: locale/programs/ld-identification.c:384 - #: locale/programs/ld-measurement.c:231 locale/programs/ld-messages.c:314 -@@ -1732,7 +1732,7 @@ msgid "" - "same: %d vs %d" - msgstr "" - --#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2912 -+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2903 - #: locale/programs/repertoire.c:419 - msgid "invalid names for character range" - msgstr "" -@@ -1754,7 +1754,7 @@ msgstr "" - msgid "resulting bytes for range not representable." - msgstr "" - --#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1566 -+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1565 - #: locale/programs/ld-ctype.c:431 locale/programs/ld-identification.c:133 - #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 - #: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94 -@@ -1841,7 +1841,7 @@ msgstr "" - msgid "%s: unknown character in field `%s'" - msgstr "" - --#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3791 -+#: locale/programs/ld-address.c:525 locale/programs/ld-collate.c:3782 - #: locale/programs/ld-ctype.c:2837 locale/programs/ld-identification.c:365 - #: locale/programs/ld-measurement.c:212 locale/programs/ld-messages.c:296 - #: locale/programs/ld-monetary.c:738 locale/programs/ld-name.c:262 -@@ -1851,10 +1851,10 @@ msgstr "" - msgid "%s: incomplete `END' line" - msgstr "" - --#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:552 --#: locale/programs/ld-collate.c:604 locale/programs/ld-collate.c:900 --#: locale/programs/ld-collate.c:913 locale/programs/ld-collate.c:2601 --#: locale/programs/ld-collate.c:2622 locale/programs/ld-collate.c:3976 -+#: locale/programs/ld-address.c:535 locale/programs/ld-collate.c:551 -+#: locale/programs/ld-collate.c:603 locale/programs/ld-collate.c:899 -+#: locale/programs/ld-collate.c:912 locale/programs/ld-collate.c:2592 -+#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 - #: locale/programs/ld-ctype.c:1857 locale/programs/ld-ctype.c:2115 - #: locale/programs/ld-ctype.c:2687 locale/programs/ld-ctype.c:2848 - #: locale/programs/ld-identification.c:375 -@@ -1866,268 +1866,268 @@ msgstr "" - msgid "%s: syntax error" - msgstr "" - --#: locale/programs/ld-collate.c:427 -+#: locale/programs/ld-collate.c:426 - #, c-format - msgid "`%.*s' already defined in charmap" - msgstr "" - --#: locale/programs/ld-collate.c:436 -+#: locale/programs/ld-collate.c:435 - #, c-format - msgid "`%.*s' already defined in repertoire" - msgstr "" - --#: locale/programs/ld-collate.c:443 -+#: locale/programs/ld-collate.c:442 - #, c-format - msgid "`%.*s' already defined as collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:450 -+#: locale/programs/ld-collate.c:449 - #, c-format - msgid "`%.*s' already defined as collating element" - msgstr "" - --#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 -+#: locale/programs/ld-collate.c:480 locale/programs/ld-collate.c:506 - #, c-format - msgid "%s: `forward' and `backward' are mutually excluding each other" - msgstr "" - --#: locale/programs/ld-collate.c:491 locale/programs/ld-collate.c:517 --#: locale/programs/ld-collate.c:533 -+#: locale/programs/ld-collate.c:490 locale/programs/ld-collate.c:516 -+#: locale/programs/ld-collate.c:532 - #, c-format - msgid "%s: `%s' mentioned more than once in definition of weight %d" - msgstr "" - --#: locale/programs/ld-collate.c:589 -+#: locale/programs/ld-collate.c:588 - #, c-format - msgid "%s: too many rules; first entry only had %d" - msgstr "" - --#: locale/programs/ld-collate.c:625 -+#: locale/programs/ld-collate.c:624 - #, c-format - msgid "%s: not enough sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:790 -+#: locale/programs/ld-collate.c:789 - #, c-format - msgid "%s: empty weight string not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:885 -+#: locale/programs/ld-collate.c:884 - #, c-format - msgid "%s: weights must use the same ellipsis symbol as the name" - msgstr "" - --#: locale/programs/ld-collate.c:941 -+#: locale/programs/ld-collate.c:940 - #, c-format - msgid "%s: too many values" - msgstr "" - --#: locale/programs/ld-collate.c:1061 locale/programs/ld-collate.c:1236 -+#: locale/programs/ld-collate.c:1060 locale/programs/ld-collate.c:1235 - #, c-format - msgid "order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1111 -+#: locale/programs/ld-collate.c:1110 - #, c-format - msgid "%s: the start and the end symbol of a range must stand for characters" - msgstr "" - --#: locale/programs/ld-collate.c:1138 -+#: locale/programs/ld-collate.c:1137 - #, c-format - msgid "" - "%s: byte sequences of first and last character must have the same length" - msgstr "" - --#: locale/programs/ld-collate.c:1180 -+#: locale/programs/ld-collate.c:1179 - #, c-format - msgid "" - "%s: byte sequence of first character of range is not lower than that of the " - "last character" - msgstr "" - --#: locale/programs/ld-collate.c:1305 -+#: locale/programs/ld-collate.c:1304 - #, c-format - msgid "%s: symbolic range ellipsis must not directly follow `order_start'" - msgstr "" - --#: locale/programs/ld-collate.c:1309 -+#: locale/programs/ld-collate.c:1308 - #, c-format - msgid "" - "%s: symbolic range ellipsis must not be directly followed by `order_end'" - msgstr "" - --#: locale/programs/ld-collate.c:1329 locale/programs/ld-ctype.c:1374 -+#: locale/programs/ld-collate.c:1328 locale/programs/ld-ctype.c:1374 - #, c-format - msgid "`%s' and `%.*s' are not valid names for symbolic range" - msgstr "" - --#: locale/programs/ld-collate.c:1379 locale/programs/ld-collate.c:3727 -+#: locale/programs/ld-collate.c:1378 locale/programs/ld-collate.c:3718 - #, c-format - msgid "%s: order for `%.*s' already defined at %s:%Zu" - msgstr "" - --#: locale/programs/ld-collate.c:1388 -+#: locale/programs/ld-collate.c:1387 - #, c-format - msgid "%s: `%s' must be a character" - msgstr "" - --#: locale/programs/ld-collate.c:1583 -+#: locale/programs/ld-collate.c:1582 - #, c-format - msgid "" - "%s: `position' must be used for a specific level in all sections or none" - msgstr "" - --#: locale/programs/ld-collate.c:1608 -+#: locale/programs/ld-collate.c:1607 - #, c-format - msgid "symbol `%s' not defined" - msgstr "" - --#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1790 -+#: locale/programs/ld-collate.c:1683 locale/programs/ld-collate.c:1789 - #, c-format - msgid "symbol `%s' has the same encoding as" - msgstr "" - --#: locale/programs/ld-collate.c:1688 locale/programs/ld-collate.c:1794 -+#: locale/programs/ld-collate.c:1687 locale/programs/ld-collate.c:1793 - #, c-format - msgid "symbol `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:1834 -+#: locale/programs/ld-collate.c:1833 - #, c-format - msgid "no definition of `UNDEFINED'" - msgstr "" - --#: locale/programs/ld-collate.c:1863 -+#: locale/programs/ld-collate.c:1862 - #, c-format - msgid "too many errors; giving up" - msgstr "" - --#: locale/programs/ld-collate.c:2527 locale/programs/ld-collate.c:3915 -+#: locale/programs/ld-collate.c:2518 locale/programs/ld-collate.c:3906 - #, c-format - msgid "%s: nested conditionals not supported" - msgstr "" - --#: locale/programs/ld-collate.c:2545 -+#: locale/programs/ld-collate.c:2536 - #, c-format - msgid "%s: more than one 'else'" - msgstr "" - --#: locale/programs/ld-collate.c:2720 -+#: locale/programs/ld-collate.c:2711 - #, c-format - msgid "%s: duplicate definition of `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2756 -+#: locale/programs/ld-collate.c:2747 - #, c-format - msgid "%s: duplicate declaration of section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:2892 -+#: locale/programs/ld-collate.c:2883 - #, c-format - msgid "%s: unknown character in collating symbol name" - msgstr "" - --#: locale/programs/ld-collate.c:3021 -+#: locale/programs/ld-collate.c:3012 - #, c-format - msgid "%s: unknown character in equivalent definition name" - msgstr "" - --#: locale/programs/ld-collate.c:3032 -+#: locale/programs/ld-collate.c:3023 - #, c-format - msgid "%s: unknown character in equivalent definition value" - msgstr "" - --#: locale/programs/ld-collate.c:3042 -+#: locale/programs/ld-collate.c:3033 - #, c-format - msgid "%s: unknown symbol `%s' in equivalent definition" - msgstr "" - --#: locale/programs/ld-collate.c:3051 -+#: locale/programs/ld-collate.c:3042 - msgid "error while adding equivalent collating symbol" - msgstr "" - --#: locale/programs/ld-collate.c:3089 -+#: locale/programs/ld-collate.c:3080 - #, c-format - msgid "duplicate definition of script `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3137 -+#: locale/programs/ld-collate.c:3128 - #, c-format - msgid "%s: unknown section name `%.*s'" - msgstr "" - --#: locale/programs/ld-collate.c:3166 -+#: locale/programs/ld-collate.c:3157 - #, c-format - msgid "%s: multiple order definitions for section `%s'" - msgstr "" - --#: locale/programs/ld-collate.c:3194 -+#: locale/programs/ld-collate.c:3185 - #, c-format - msgid "%s: invalid number of sorting rules" - msgstr "" - --#: locale/programs/ld-collate.c:3221 -+#: locale/programs/ld-collate.c:3212 - #, c-format - msgid "%s: multiple order definitions for unnamed section" - msgstr "" - --#: locale/programs/ld-collate.c:3276 locale/programs/ld-collate.c:3406 --#: locale/programs/ld-collate.c:3769 -+#: locale/programs/ld-collate.c:3267 locale/programs/ld-collate.c:3397 -+#: locale/programs/ld-collate.c:3760 - #, c-format - msgid "%s: missing `order_end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3339 -+#: locale/programs/ld-collate.c:3330 - #, c-format - msgid "%s: order for collating symbol %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3357 -+#: locale/programs/ld-collate.c:3348 - #, c-format - msgid "%s: order for collating element %.*s not yet defined" - msgstr "" - --#: locale/programs/ld-collate.c:3368 -+#: locale/programs/ld-collate.c:3359 - #, c-format - msgid "%s: cannot reorder after %.*s: symbol not known" - msgstr "" - --#: locale/programs/ld-collate.c:3420 locale/programs/ld-collate.c:3781 -+#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3772 - #, c-format - msgid "%s: missing `reorder-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3454 locale/programs/ld-collate.c:3652 -+#: locale/programs/ld-collate.c:3445 locale/programs/ld-collate.c:3643 - #, c-format - msgid "%s: section `%.*s' not known" - msgstr "" - --#: locale/programs/ld-collate.c:3519 -+#: locale/programs/ld-collate.c:3510 - #, c-format - msgid "%s: bad symbol <%.*s>" - msgstr "" - --#: locale/programs/ld-collate.c:3715 -+#: locale/programs/ld-collate.c:3706 - #, c-format - msgid "%s: cannot have `%s' as end of ellipsis range" - msgstr "" - --#: locale/programs/ld-collate.c:3765 -+#: locale/programs/ld-collate.c:3756 - #, c-format - msgid "%s: empty category description not allowed" - msgstr "" - --#: locale/programs/ld-collate.c:3784 -+#: locale/programs/ld-collate.c:3775 - #, c-format - msgid "%s: missing `reorder-sections-end' keyword" - msgstr "" - --#: locale/programs/ld-collate.c:3948 -+#: locale/programs/ld-collate.c:3939 - #, c-format - msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" - msgstr "" - --#: locale/programs/ld-collate.c:3966 -+#: locale/programs/ld-collate.c:3957 - #, c-format - msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" - msgstr "" -@@ -2604,7 +2604,7 @@ msgstr "" - msgid "Cannot set LC_ALL to default locale" - msgstr "" - --#: locale/programs/locale.c:519 -+#: locale/programs/locale.c:525 - #, c-format - msgid "while preparing output" - msgstr "" -@@ -2707,7 +2707,7 @@ msgid "FATAL: system does not define `_P - msgstr "" - - #: locale/programs/localedef.c:260 locale/programs/localedef.c:276 --#: locale/programs/localedef.c:614 locale/programs/localedef.c:634 -+#: locale/programs/localedef.c:612 locale/programs/localedef.c:632 - #, c-format - msgid "cannot open locale definition file `%s'" - msgstr "" -@@ -2726,12 +2726,12 @@ msgid "" - "%s" - msgstr "" - --#: locale/programs/localedef.c:582 -+#: locale/programs/localedef.c:580 - #, c-format - msgid "circular dependencies between locale definitions" - msgstr "" - --#: locale/programs/localedef.c:588 -+#: locale/programs/localedef.c:586 - #, c-format - msgid "cannot add already read locale `%s' a second time" - msgstr "" -@@ -2829,42 +2829,42 @@ msgstr "" - msgid "cannot add to locale archive" - msgstr "" - --#: locale/programs/locarchive.c:1206 -+#: locale/programs/locarchive.c:1203 - #, c-format - msgid "locale alias file `%s' not found" - msgstr "" - --#: locale/programs/locarchive.c:1357 -+#: locale/programs/locarchive.c:1351 - #, c-format - msgid "Adding %s\n" - msgstr "" - --#: locale/programs/locarchive.c:1363 -+#: locale/programs/locarchive.c:1357 - #, c-format - msgid "stat of \"%s\" failed: %s: ignored" - msgstr "" - --#: locale/programs/locarchive.c:1369 -+#: locale/programs/locarchive.c:1363 - #, c-format - msgid "\"%s\" is no directory; ignored" - msgstr "" - --#: locale/programs/locarchive.c:1376 -+#: locale/programs/locarchive.c:1370 - #, c-format - msgid "cannot open directory \"%s\": %s: ignored" - msgstr "" - --#: locale/programs/locarchive.c:1448 -+#: locale/programs/locarchive.c:1442 - #, c-format - msgid "incomplete set of locale files in \"%s\"" - msgstr "" - --#: locale/programs/locarchive.c:1512 -+#: locale/programs/locarchive.c:1506 - #, c-format - msgid "cannot read all files in \"%s\": ignored" - msgstr "" - --#: locale/programs/locarchive.c:1584 -+#: locale/programs/locarchive.c:1576 - #, c-format - msgid "locale \"%s\" not in archive" - msgstr "" -@@ -2930,7 +2930,7 @@ msgstr "" - msgid "repertoire map file `%s' not found" - msgstr "" - --#: login/programs/pt_chown.c:78 -+#: login/programs/pt_chown.c:79 - #, c-format - msgid "" - "Set the owner, group and access permission of the slave pseudo terminal " -@@ -2939,7 +2939,7 @@ msgid "" - "to be run directly from the command line.\n" - msgstr "" - --#: login/programs/pt_chown.c:92 -+#: login/programs/pt_chown.c:93 - #, c-format - msgid "" - "The owner is set to the current user, the group is set to `%s', and the " -@@ -2948,33 +2948,33 @@ msgid "" - "%s" - msgstr "" - --#: login/programs/pt_chown.c:198 -+#: login/programs/pt_chown.c:204 - #, c-format - msgid "too many arguments" - msgstr "" - --#: login/programs/pt_chown.c:206 -+#: login/programs/pt_chown.c:212 - #, c-format - msgid "needs to be installed setuid `root'" - msgstr "" - --#: malloc/mcheck.c:346 -+#: malloc/mcheck.c:344 - msgid "memory is consistent, library is buggy\n" - msgstr "" - --#: malloc/mcheck.c:349 -+#: malloc/mcheck.c:347 - msgid "memory clobbered before allocated block\n" - msgstr "" - --#: malloc/mcheck.c:352 -+#: malloc/mcheck.c:350 - msgid "memory clobbered past end of allocated block\n" - msgstr "" - --#: malloc/mcheck.c:355 -+#: malloc/mcheck.c:353 - msgid "block freed twice\n" - msgstr "" - --#: malloc/mcheck.c:358 -+#: malloc/mcheck.c:356 - msgid "bogus mcheck_status, library is buggy\n" - msgstr "" - -@@ -3084,7 +3084,7 @@ msgstr "" - msgid "unable to free arguments" - msgstr "" - --#: nis/nis_error.h:1 nis/ypclnt.c:831 nis/ypclnt.c:919 posix/regcomp.c:137 -+#: nis/nis_error.h:1 nis/ypclnt.c:817 nis/ypclnt.c:905 posix/regcomp.c:137 - #: sysdeps/gnu/errlist.c:21 - msgid "Success" - msgstr "" -@@ -3126,7 +3126,7 @@ msgid "First/next chain broken" - msgstr "" - - #. TRANS Permission denied; the file permissions do not allow the attempted operation. --#: nis/nis_error.h:11 nis/ypclnt.c:876 sysdeps/gnu/errlist.c:158 -+#: nis/nis_error.h:11 nis/ypclnt.c:862 sysdeps/gnu/errlist.c:158 - msgid "Permission denied" - msgstr "" - -@@ -3625,91 +3625,91 @@ msgstr "" - msgid "netname2user: should not have uid 0" - msgstr "" - --#: nis/ypclnt.c:834 -+#: nis/ypclnt.c:820 - msgid "Request arguments bad" - msgstr "" - --#: nis/ypclnt.c:837 -+#: nis/ypclnt.c:823 - msgid "RPC failure on NIS operation" - msgstr "" - --#: nis/ypclnt.c:840 -+#: nis/ypclnt.c:826 - msgid "Can't bind to server which serves this domain" - msgstr "" - --#: nis/ypclnt.c:843 -+#: nis/ypclnt.c:829 - msgid "No such map in server's domain" - msgstr "" - --#: nis/ypclnt.c:846 -+#: nis/ypclnt.c:832 - msgid "No such key in map" - msgstr "" - --#: nis/ypclnt.c:849 -+#: nis/ypclnt.c:835 - msgid "Internal NIS error" - msgstr "" - --#: nis/ypclnt.c:852 -+#: nis/ypclnt.c:838 - msgid "Local resource allocation failure" - msgstr "" - --#: nis/ypclnt.c:855 -+#: nis/ypclnt.c:841 - msgid "No more records in map database" - msgstr "" - --#: nis/ypclnt.c:858 -+#: nis/ypclnt.c:844 - msgid "Can't communicate with portmapper" - msgstr "" - --#: nis/ypclnt.c:861 -+#: nis/ypclnt.c:847 - msgid "Can't communicate with ypbind" - msgstr "" - --#: nis/ypclnt.c:864 -+#: nis/ypclnt.c:850 - msgid "Can't communicate with ypserv" - msgstr "" - --#: nis/ypclnt.c:867 -+#: nis/ypclnt.c:853 - msgid "Local domain name not set" - msgstr "" - --#: nis/ypclnt.c:870 -+#: nis/ypclnt.c:856 - msgid "NIS map database is bad" - msgstr "" - --#: nis/ypclnt.c:873 -+#: nis/ypclnt.c:859 - msgid "NIS client/server version mismatch - can't supply service" - msgstr "" - --#: nis/ypclnt.c:879 -+#: nis/ypclnt.c:865 - msgid "Database is busy" - msgstr "" - --#: nis/ypclnt.c:882 -+#: nis/ypclnt.c:868 - msgid "Unknown NIS error code" - msgstr "" - --#: nis/ypclnt.c:922 -+#: nis/ypclnt.c:908 - msgid "Internal ypbind error" - msgstr "" - --#: nis/ypclnt.c:925 -+#: nis/ypclnt.c:911 - msgid "Domain not bound" - msgstr "" - --#: nis/ypclnt.c:928 -+#: nis/ypclnt.c:914 - msgid "System resource allocation failure" - msgstr "" - --#: nis/ypclnt.c:931 -+#: nis/ypclnt.c:917 - msgid "Unknown ypbind error" - msgstr "" - --#: nis/ypclnt.c:972 -+#: nis/ypclnt.c:958 - msgid "yp_update: cannot convert host to netname\n" - msgstr "" - --#: nis/ypclnt.c:990 -+#: nis/ypclnt.c:976 - msgid "yp_update: cannot get server address\n" - msgstr "" - -@@ -3752,283 +3752,273 @@ msgstr "" - msgid "considering %s entry \"%s\", timeout %" - msgstr "" - --#: nscd/connections.c:553 -+#: nscd/connections.c:548 - #, c-format - msgid "invalid persistent database file \"%s\": %s" - msgstr "" - --#: nscd/connections.c:561 -+#: nscd/connections.c:556 - msgid "uninitialized header" - msgstr "" - --#: nscd/connections.c:566 -+#: nscd/connections.c:561 - msgid "header size does not match" - msgstr "" - --#: nscd/connections.c:576 -+#: nscd/connections.c:571 - msgid "file size does not match" - msgstr "" - --#: nscd/connections.c:593 -+#: nscd/connections.c:588 - msgid "verification failed" - msgstr "" - --#: nscd/connections.c:607 -+#: nscd/connections.c:602 - #, c-format - msgid "" - "suggested size of table for database %s larger than the persistent " - "database's table" - msgstr "" - --#: nscd/connections.c:618 nscd/connections.c:702 -+#: nscd/connections.c:613 nscd/connections.c:697 - #, c-format - msgid "cannot create read-only descriptor for \"%s\"; no mmap" - msgstr "" - --#: nscd/connections.c:634 -+#: nscd/connections.c:629 - #, c-format - msgid "cannot access '%s'" - msgstr "" - --#: nscd/connections.c:682 -+#: nscd/connections.c:677 - #, c-format - msgid "" - "database for %s corrupted or simultaneously used; remove %s manually if " - "necessary and restart" - msgstr "" - --#: nscd/connections.c:688 -+#: nscd/connections.c:683 - #, c-format - msgid "cannot create %s; no persistent database used" - msgstr "" - --#: nscd/connections.c:691 -+#: nscd/connections.c:686 - #, c-format - msgid "cannot create %s; no sharing possible" - msgstr "" - --#: nscd/connections.c:762 -+#: nscd/connections.c:757 - #, c-format - msgid "cannot write to database file %s: %s" - msgstr "" - --#: nscd/connections.c:801 -+#: nscd/connections.c:796 - #, c-format - msgid "cannot set socket to close on exec: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:850 -+#: nscd/connections.c:831 - #, c-format - msgid "cannot open socket: %s" - msgstr "" - --#: nscd/connections.c:870 nscd/connections.c:934 --#, c-format --msgid "cannot change socket to nonblocking mode: %s" --msgstr "" -- --#: nscd/connections.c:878 nscd/connections.c:944 --#, c-format --msgid "cannot set socket to close on exec: %s" --msgstr "" -- --#: nscd/connections.c:891 -+#: nscd/connections.c:850 - #, c-format - msgid "cannot enable socket to accept connections: %s" - msgstr "" - --#: nscd/connections.c:973 -+#: nscd/connections.c:907 - #, c-format - msgid "disabled inotify-based monitoring for file `%s': %s" - msgstr "" - --#: nscd/connections.c:977 -+#: nscd/connections.c:911 - #, c-format - msgid "monitoring file `%s` (%d)" - msgstr "" - --#: nscd/connections.c:990 -+#: nscd/connections.c:924 - #, c-format - msgid "disabled inotify-based monitoring for directory `%s': %s" - msgstr "" - --#: nscd/connections.c:994 -+#: nscd/connections.c:928 - #, c-format - msgid "monitoring directory `%s` (%d)" - msgstr "" - --#: nscd/connections.c:1022 -+#: nscd/connections.c:956 - #, c-format - msgid "monitoring file %s for database %s" - msgstr "" - --#: nscd/connections.c:1032 -+#: nscd/connections.c:966 - #, c-format - msgid "stat failed for file `%s'; will try again later: %s" - msgstr "" - --#: nscd/connections.c:1151 -+#: nscd/connections.c:1085 - #, c-format - msgid "provide access to FD %d, for %s" - msgstr "" - --#: nscd/connections.c:1163 -+#: nscd/connections.c:1097 - #, c-format - msgid "cannot handle old request version %d; current version is %d" - msgstr "" - --#: nscd/connections.c:1185 -+#: nscd/connections.c:1119 - #, c-format - msgid "request from %ld not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1190 -+#: nscd/connections.c:1124 - #, c-format - msgid "request from '%s' [%ld] not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1195 -+#: nscd/connections.c:1129 - msgid "request not handled due to missing permission" - msgstr "" - --#: nscd/connections.c:1233 nscd/connections.c:1286 -+#: nscd/connections.c:1167 nscd/connections.c:1220 - #, c-format - msgid "cannot write result: %s" - msgstr "" - --#: nscd/connections.c:1377 -+#: nscd/connections.c:1311 - #, c-format - msgid "error getting caller's id: %s" - msgstr "" - --#: nscd/connections.c:1437 -+#: nscd/connections.c:1371 - #, c-format - msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1451 -+#: nscd/connections.c:1385 - #, c-format - msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1491 -+#: nscd/connections.c:1425 - #, c-format - msgid "cannot change to old UID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1501 -+#: nscd/connections.c:1435 - #, c-format - msgid "cannot change to old GID: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1514 -+#: nscd/connections.c:1448 - #, c-format - msgid "cannot change to old working directory: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1560 -+#: nscd/connections.c:1494 - #, c-format - msgid "re-exec failed: %s; disabling paranoia mode" - msgstr "" - --#: nscd/connections.c:1569 -+#: nscd/connections.c:1503 - #, c-format - msgid "cannot change current working directory to \"/\": %s" - msgstr "" - --#: nscd/connections.c:1762 -+#: nscd/connections.c:1696 - #, c-format - msgid "short read while reading request: %s" - msgstr "" - --#: nscd/connections.c:1795 -+#: nscd/connections.c:1729 - #, c-format - msgid "key length in request too long: %d" - msgstr "" - --#: nscd/connections.c:1808 -+#: nscd/connections.c:1742 - #, c-format - msgid "short read while reading request key: %s" - msgstr "" - --#: nscd/connections.c:1818 -+#: nscd/connections.c:1752 - #, c-format - msgid "handle_request: request received (Version = %d) from PID %ld" - msgstr "" - --#: nscd/connections.c:1823 -+#: nscd/connections.c:1757 - #, c-format - msgid "handle_request: request received (Version = %d)" - msgstr "" - --#: nscd/connections.c:1963 -+#: nscd/connections.c:1897 - #, c-format - msgid "ignored inotify event for `%s` (file exists)" - msgstr "" - --#: nscd/connections.c:1968 -+#: nscd/connections.c:1902 - #, c-format - msgid "monitored file `%s` was %s, removing watch" - msgstr "" - --#: nscd/connections.c:1976 nscd/connections.c:2018 -+#: nscd/connections.c:1910 nscd/connections.c:1952 - #, c-format - msgid "failed to remove file watch `%s`: %s" - msgstr "" - --#: nscd/connections.c:1991 -+#: nscd/connections.c:1925 - #, c-format - msgid "monitored file `%s` was written to" - msgstr "" - --#: nscd/connections.c:2015 -+#: nscd/connections.c:1949 - #, c-format - msgid "monitored parent directory `%s` was %s, removing watch on `%s`" - msgstr "" - --#: nscd/connections.c:2041 -+#: nscd/connections.c:1975 - #, c-format - msgid "monitored file `%s` was %s, adding watch" - msgstr "" - --#: nscd/connections.c:2053 -+#: nscd/connections.c:1987 - #, c-format - msgid "failed to add file watch `%s`: %s" - msgstr "" - --#: nscd/connections.c:2247 nscd/connections.c:2428 -+#: nscd/connections.c:2181 nscd/connections.c:2362 - #, c-format - msgid "disabled inotify-based monitoring after read error %d" - msgstr "" - --#: nscd/connections.c:2543 -+#: nscd/connections.c:2477 - msgid "could not initialize conditional variable" - msgstr "" - --#: nscd/connections.c:2551 -+#: nscd/connections.c:2485 - msgid "could not start clean-up thread; terminating" - msgstr "" - --#: nscd/connections.c:2565 -+#: nscd/connections.c:2499 - msgid "could not start any worker thread; terminating" - msgstr "" - --#: nscd/connections.c:2620 nscd/connections.c:2622 nscd/connections.c:2638 --#: nscd/connections.c:2648 nscd/connections.c:2666 nscd/connections.c:2677 --#: nscd/connections.c:2687 -+#: nscd/connections.c:2554 nscd/connections.c:2556 nscd/connections.c:2572 -+#: nscd/connections.c:2582 nscd/connections.c:2600 nscd/connections.c:2611 -+#: nscd/connections.c:2621 - #, c-format - msgid "Failed to run nscd as user '%s'" - msgstr "" - --#: nscd/connections.c:2640 -+#: nscd/connections.c:2574 - msgid "initial getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2649 -+#: nscd/connections.c:2583 - msgid "getgrouplist failed" - msgstr "" - --#: nscd/connections.c:2667 -+#: nscd/connections.c:2601 - msgid "setgroups failed" - msgstr "" - -@@ -4131,7 +4121,7 @@ msgstr "" - msgid "Name Service Cache Daemon." - msgstr "" - --#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206 -+#: nscd/nscd.c:155 nss/getent.c:947 nss/makedb.c:206 - #, c-format - msgid "wrong number of arguments" - msgstr "" -@@ -4493,21 +4483,21 @@ msgstr "" - msgid "Get entries from administrative database." - msgstr "" - --#: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522 -+#: nss/getent.c:148 nss/getent.c:441 nss/getent.c:486 - #, c-format - msgid "Enumeration not supported on %s\n" - msgstr "" - --#: nss/getent.c:921 -+#: nss/getent.c:861 - #, c-format - msgid "Unknown database name" - msgstr "" - --#: nss/getent.c:951 -+#: nss/getent.c:891 - msgid "Supported databases:\n" - msgstr "" - --#: nss/getent.c:1017 -+#: nss/getent.c:957 - #, c-format - msgid "Unknown database: %s\n" - msgstr "" -@@ -4573,41 +4563,41 @@ msgstr "" - msgid "cannot rename temporary file" - msgstr "" - --#: nss/makedb.c:531 nss/makedb.c:554 -+#: nss/makedb.c:527 nss/makedb.c:550 - #, c-format - msgid "cannot create search tree" - msgstr "" - --#: nss/makedb.c:560 -+#: nss/makedb.c:556 - msgid "duplicate key" - msgstr "" - --#: nss/makedb.c:572 -+#: nss/makedb.c:568 - #, c-format - msgid "problems while reading `%s'" - msgstr "" - --#: nss/makedb.c:799 -+#: nss/makedb.c:795 - #, c-format - msgid "failed to write new database file" - msgstr "" - --#: nss/makedb.c:812 -+#: nss/makedb.c:808 - #, c-format - msgid "cannot stat database file" - msgstr "" - --#: nss/makedb.c:817 -+#: nss/makedb.c:813 - #, c-format - msgid "cannot map database file" - msgstr "" - --#: nss/makedb.c:820 -+#: nss/makedb.c:816 - #, c-format - msgid "file not a database file" - msgstr "" - --#: nss/makedb.c:871 -+#: nss/makedb.c:867 - #, c-format - msgid "cannot set file creation context for `%s'" - msgstr "" -@@ -4773,11 +4763,11 @@ msgstr "" - msgid "Unmatched ) or \\)" - msgstr "" - --#: posix/regcomp.c:685 -+#: posix/regcomp.c:673 - msgid "No previous regular expression" - msgstr "" - --#: posix/wordexp.c:1851 -+#: posix/wordexp.c:1852 - msgid "parameter null or not set" - msgstr "" - -@@ -4809,27 +4799,27 @@ msgstr "" - msgid "Unknown resolver error" - msgstr "" - --#: resolv/res_hconf.c:125 -+#: resolv/res_hconf.c:126 - #, c-format - msgid "%s: line %d: cannot specify more than %d trim domains" - msgstr "" - --#: resolv/res_hconf.c:146 -+#: resolv/res_hconf.c:147 - #, c-format - msgid "%s: line %d: list delimiter not followed by domain" - msgstr "" - --#: resolv/res_hconf.c:205 -+#: resolv/res_hconf.c:206 - #, c-format - msgid "%s: line %d: expected `on' or `off', found `%s'\n" - msgstr "" - --#: resolv/res_hconf.c:248 -+#: resolv/res_hconf.c:249 - #, c-format - msgid "%s: line %d: bad command `%s'\n" - msgstr "" - --#: resolv/res_hconf.c:283 -+#: resolv/res_hconf.c:284 - #, c-format - msgid "%s: line %d: ignoring trailing garbage `%s'\n" - msgstr "" -@@ -4962,7 +4952,7 @@ msgstr "" - msgid "Input message available" - msgstr "" - --#: stdio-common/psiginfo-data.h:46 -+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:541 timezone/zic.c:483 - msgid "I/O error" - msgstr "" - -@@ -5029,7 +5019,7 @@ msgstr "" - msgid "Unknown error " - msgstr "" - --#: string/strerror.c:42 -+#: string/strerror.c:41 - msgid "Unknown error" - msgstr "" - -@@ -5045,9 +5035,9 @@ msgstr "" - - #: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:135 - #: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233 --#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 --#: sunrpc/xdr.c:631 sunrpc/xdr.c:793 sunrpc/xdr_array.c:97 --#: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:76 -+#: sunrpc/svc_udp.c:160 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 -+#: sunrpc/xdr.c:627 sunrpc/xdr.c:787 sunrpc/xdr_array.c:101 -+#: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:78 - msgid "out of memory\n" - msgstr "" - -@@ -5190,23 +5180,23 @@ msgstr "" - msgid "Cannot register service" - msgstr "" - --#: sunrpc/pmap_rmt.c:243 -+#: sunrpc/pmap_rmt.c:244 - msgid "Cannot create socket for broadcast rpc" - msgstr "" - --#: sunrpc/pmap_rmt.c:250 -+#: sunrpc/pmap_rmt.c:251 - msgid "Cannot set socket option SO_BROADCAST" - msgstr "" - --#: sunrpc/pmap_rmt.c:302 -+#: sunrpc/pmap_rmt.c:303 - msgid "Cannot send broadcast packet" - msgstr "" - --#: sunrpc/pmap_rmt.c:327 -+#: sunrpc/pmap_rmt.c:328 - msgid "Broadcast poll problem" - msgstr "" - --#: sunrpc/pmap_rmt.c:340 -+#: sunrpc/pmap_rmt.c:341 - msgid "Cannot receive reply to broadcast" - msgstr "" - -@@ -5487,79 +5477,79 @@ msgstr "" - msgid "preprocessor error" - msgstr "" - --#: sunrpc/rpcinfo.c:246 sunrpc/rpcinfo.c:392 -+#: sunrpc/rpcinfo.c:243 sunrpc/rpcinfo.c:386 - #, c-format - msgid "program %lu is not available\n" - msgstr "" - --#: sunrpc/rpcinfo.c:273 sunrpc/rpcinfo.c:319 sunrpc/rpcinfo.c:342 --#: sunrpc/rpcinfo.c:416 sunrpc/rpcinfo.c:462 sunrpc/rpcinfo.c:485 --#: sunrpc/rpcinfo.c:519 -+#: sunrpc/rpcinfo.c:270 sunrpc/rpcinfo.c:316 sunrpc/rpcinfo.c:339 -+#: sunrpc/rpcinfo.c:410 sunrpc/rpcinfo.c:456 sunrpc/rpcinfo.c:479 -+#: sunrpc/rpcinfo.c:510 - #, c-format - msgid "program %lu version %lu is not available\n" - msgstr "" - --#: sunrpc/rpcinfo.c:524 -+#: sunrpc/rpcinfo.c:515 - #, c-format - msgid "program %lu version %lu ready and waiting\n" - msgstr "" - --#: sunrpc/rpcinfo.c:565 sunrpc/rpcinfo.c:572 -+#: sunrpc/rpcinfo.c:554 sunrpc/rpcinfo.c:561 - msgid "rpcinfo: can't contact portmapper" - msgstr "" - --#: sunrpc/rpcinfo.c:579 -+#: sunrpc/rpcinfo.c:568 - msgid "No remote programs registered.\n" - msgstr "" - --#: sunrpc/rpcinfo.c:583 -+#: sunrpc/rpcinfo.c:572 - msgid " program vers proto port\n" - msgstr "" - --#: sunrpc/rpcinfo.c:622 -+#: sunrpc/rpcinfo.c:611 - msgid "(unknown)" - msgstr "" - --#: sunrpc/rpcinfo.c:646 -+#: sunrpc/rpcinfo.c:633 - #, c-format - msgid "rpcinfo: broadcast failed: %s\n" - msgstr "" - --#: sunrpc/rpcinfo.c:667 -+#: sunrpc/rpcinfo.c:652 - msgid "Sorry. You are not root\n" - msgstr "" - --#: sunrpc/rpcinfo.c:674 -+#: sunrpc/rpcinfo.c:659 - #, c-format - msgid "rpcinfo: Could not delete registration for prog %s version %s\n" - msgstr "" - --#: sunrpc/rpcinfo.c:683 -+#: sunrpc/rpcinfo.c:668 - msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n" - msgstr "" - --#: sunrpc/rpcinfo.c:685 -+#: sunrpc/rpcinfo.c:670 - msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n" - msgstr "" - --#: sunrpc/rpcinfo.c:687 -+#: sunrpc/rpcinfo.c:672 - msgid " rpcinfo -p [ host ]\n" - msgstr "" - --#: sunrpc/rpcinfo.c:688 -+#: sunrpc/rpcinfo.c:673 - msgid " rpcinfo -b prognum versnum\n" - msgstr "" - --#: sunrpc/rpcinfo.c:689 -+#: sunrpc/rpcinfo.c:674 - msgid " rpcinfo -d prognum versnum\n" - msgstr "" - --#: sunrpc/rpcinfo.c:714 -+#: sunrpc/rpcinfo.c:698 - #, c-format - msgid "rpcinfo: %s is unknown service\n" - msgstr "" - --#: sunrpc/rpcinfo.c:751 -+#: sunrpc/rpcinfo.c:732 - #, c-format - msgid "rpcinfo: %s is unknown host\n" - msgstr "" -@@ -5608,43 +5598,43 @@ msgstr "" - msgid "svc_tcp.c - cannot getsockname or listen" - msgstr "" - --#: sunrpc/svc_udp.c:137 -+#: sunrpc/svc_udp.c:135 - msgid "svcudp_create: socket creation problem" - msgstr "" - --#: sunrpc/svc_udp.c:151 -+#: sunrpc/svc_udp.c:149 - msgid "svcudp_create - cannot getsockname" - msgstr "" - --#: sunrpc/svc_udp.c:183 -+#: sunrpc/svc_udp.c:181 - msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n" - msgstr "" - --#: sunrpc/svc_udp.c:495 -+#: sunrpc/svc_udp.c:480 - msgid "enablecache: cache already enabled" - msgstr "" - --#: sunrpc/svc_udp.c:501 -+#: sunrpc/svc_udp.c:486 - msgid "enablecache: could not allocate cache" - msgstr "" - --#: sunrpc/svc_udp.c:510 -+#: sunrpc/svc_udp.c:495 - msgid "enablecache: could not allocate cache data" - msgstr "" - --#: sunrpc/svc_udp.c:518 -+#: sunrpc/svc_udp.c:503 - msgid "enablecache: could not allocate cache fifo" - msgstr "" - --#: sunrpc/svc_udp.c:554 -+#: sunrpc/svc_udp.c:539 - msgid "cache_set: victim not found" - msgstr "" - --#: sunrpc/svc_udp.c:565 -+#: sunrpc/svc_udp.c:550 - msgid "cache_set: victim alloc failed" - msgstr "" - --#: sunrpc/svc_udp.c:572 -+#: sunrpc/svc_udp.c:557 - msgid "cache_set: could not allocate new rpc_buffer" - msgstr "" - -@@ -6734,28 +6724,24 @@ msgstr "" - msgid "cannot read header from `%s'" - msgstr "" - --#: timezone/zdump.c:282 --msgid "lacks alphabetic at start" --msgstr "" -- --#: timezone/zdump.c:284 --msgid "has fewer than 3 alphabetics" -+#: timezone/zdump.c:494 -+msgid "has fewer than 3 characters" - msgstr "" - --#: timezone/zdump.c:286 --msgid "has more than 6 alphabetics" -+#: timezone/zdump.c:496 -+msgid "has more than 6 characters" - msgstr "" - --#: timezone/zdump.c:294 --msgid "differs from POSIX standard" -+#: timezone/zdump.c:498 -+msgid "has characters other than ASCII alphanumerics, '-' or '+'" - msgstr "" - --#: timezone/zdump.c:300 -+#: timezone/zdump.c:503 - #, c-format - msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" - msgstr "" - --#: timezone/zdump.c:309 -+#: timezone/zdump.c:553 - #, c-format - msgid "" - "%s: usage: %s [--version] [--help] [-{vV}] [-{ct} [lo,]hi] zonename ...\n" -@@ -6763,381 +6749,411 @@ msgid "" - "Report bugs to %s.\n" - msgstr "" - --#: timezone/zdump.c:386 -+#: timezone/zdump.c:635 - #, c-format - msgid "%s: wild -c argument %s\n" - msgstr "" - --#: timezone/zdump.c:419 -+#: timezone/zdump.c:668 - #, c-format - msgid "%s: wild -t argument %s\n" - msgstr "" - --#: timezone/zdump.c:508 --msgid "Error writing to standard output" --msgstr "" -- --#: timezone/zic.c:371 -+#: timezone/zic.c:361 - #, c-format - msgid "%s: Memory exhausted: %s\n" - msgstr "" - --#: timezone/zic.c:438 -+#: timezone/zic.c:369 -+msgid "size overflow" -+msgstr "" -+ -+#: timezone/zic.c:416 -+msgid "int overflow" -+msgstr "" -+ -+#: timezone/zic.c:451 - #, c-format - msgid "\"%s\", line %d: " - msgstr "" - --#: timezone/zic.c:441 -+#: timezone/zic.c:454 - #, c-format - msgid " (rule from \"%s\", line %d)" - msgstr "" - --#: timezone/zic.c:460 -+#: timezone/zic.c:473 - #, c-format - msgid "warning: " - msgstr "" - --#: timezone/zic.c:470 -+#: timezone/zic.c:498 - #, c-format - msgid "" --"%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p " --"posixrules ] \\\n" --"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" -+"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n" -+"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n" -+"\t[ -L leapseconds ] [ filename ... ]\n" - "\n" - "Report bugs to %s.\n" - msgstr "" - --#: timezone/zic.c:505 -+#: timezone/zic.c:534 - msgid "wild compilation-time specification of zic_t" - msgstr "" - --#: timezone/zic.c:524 -+#: timezone/zic.c:554 - #, c-format - msgid "%s: More than one -d option specified\n" - msgstr "" - --#: timezone/zic.c:534 -+#: timezone/zic.c:564 - #, c-format - msgid "%s: More than one -l option specified\n" - msgstr "" - --#: timezone/zic.c:544 -+#: timezone/zic.c:574 - #, c-format - msgid "%s: More than one -p option specified\n" - msgstr "" - --#: timezone/zic.c:554 -+#: timezone/zic.c:584 - #, c-format - msgid "%s: More than one -y option specified\n" - msgstr "" - --#: timezone/zic.c:564 -+#: timezone/zic.c:594 - #, c-format - msgid "%s: More than one -L option specified\n" - msgstr "" - --#: timezone/zic.c:611 -+#: timezone/zic.c:603 -+msgid "-s ignored" -+msgstr "" -+ -+#: timezone/zic.c:641 - msgid "link to link" - msgstr "" - --#: timezone/zic.c:678 --msgid "hard link failed, symbolic link used" -+#: timezone/zic.c:644 timezone/zic.c:648 -+msgid "command line" - msgstr "" - --#: timezone/zic.c:688 -+#: timezone/zic.c:664 -+msgid "empty file name" -+msgstr "" -+ -+#: timezone/zic.c:667 - #, c-format --msgid "%s: Can't read %s: %s\n" -+msgid "file name '%s' begins with '/'" - msgstr "" - --#: timezone/zic.c:696 timezone/zic.c:1595 -+#: timezone/zic.c:676 - #, c-format --msgid "%s: Can't create %s: %s\n" -+msgid "file name '%s' contains '%.*s' component" -+msgstr "" -+ -+#: timezone/zic.c:682 -+#, c-format -+msgid "file name '%s' component contains leading '-'" - msgstr "" - --#: timezone/zic.c:704 timezone/zic.c:939 -+#: timezone/zic.c:685 - #, c-format --msgid "%s: Error reading %s\n" -+msgid "file name '%s' contains overlength component '%.*s...'" - msgstr "" - --#: timezone/zic.c:710 timezone/zic.c:1792 -+#: timezone/zic.c:713 - #, c-format --msgid "%s: Error writing %s\n" -+msgid "file name '%s' contains byte '%c'" - msgstr "" - - #: timezone/zic.c:714 -+#, c-format -+msgid "file name '%s' contains byte '\\%o'" -+msgstr "" -+ -+#: timezone/zic.c:757 -+#, c-format -+msgid "%s: link from %s failed: %s" -+msgstr "" -+ -+#: timezone/zic.c:792 -+msgid "hard link failed, symbolic link used" -+msgstr "" -+ -+#: timezone/zic.c:802 -+#, c-format -+msgid "%s: Can't read %s: %s\n" -+msgstr "" -+ -+#: timezone/zic.c:810 timezone/zic.c:1701 -+#, c-format -+msgid "%s: Can't create %s: %s\n" -+msgstr "" -+ -+#: timezone/zic.c:818 - msgid "link failed, copy used" - msgstr "" - --#: timezone/zic.c:802 timezone/zic.c:804 -+#: timezone/zic.c:913 timezone/zic.c:915 - msgid "same rule name in multiple files" - msgstr "" - --#: timezone/zic.c:845 -+#: timezone/zic.c:956 - msgid "unruly zone" - msgstr "" - --#: timezone/zic.c:852 -+#: timezone/zic.c:963 - #, c-format - msgid "%s in ruleless zone" - msgstr "" - --#: timezone/zic.c:872 -+#: timezone/zic.c:983 - msgid "standard input" - msgstr "" - --#: timezone/zic.c:877 -+#: timezone/zic.c:988 - #, c-format - msgid "%s: Can't open %s: %s\n" - msgstr "" - --#: timezone/zic.c:888 -+#: timezone/zic.c:999 - msgid "line too long" - msgstr "" - --#: timezone/zic.c:908 -+#: timezone/zic.c:1019 - msgid "input line of unknown type" - msgstr "" - --#: timezone/zic.c:924 -+#: timezone/zic.c:1034 - #, c-format --msgid "%s: Leap line in non leap seconds file %s\n" -+msgid "%s: Leap line in non leap seconds file %s" - msgstr "" - --#: timezone/zic.c:931 timezone/zic.c:1339 timezone/zic.c:1361 -+#: timezone/zic.c:1042 timezone/zic.c:1447 timezone/zic.c:1469 - #, c-format - msgid "%s: panic: Invalid l_value %d\n" - msgstr "" - --#: timezone/zic.c:946 --#, c-format --msgid "%s: Error closing %s: %s\n" --msgstr "" -- --#: timezone/zic.c:951 -+#: timezone/zic.c:1051 - msgid "expected continuation line not found" - msgstr "" - --#: timezone/zic.c:992 timezone/zic.c:2644 timezone/zic.c:2658 -+#: timezone/zic.c:1093 timezone/zic.c:2826 - msgid "time overflow" - msgstr "" - --#: timezone/zic.c:997 -+#: timezone/zic.c:1098 - msgid "values over 24 hours not handled by pre-2007 versions of zic" - msgstr "" - --#: timezone/zic.c:1008 -+#: timezone/zic.c:1109 - msgid "wrong number of fields on Rule line" - msgstr "" - --#: timezone/zic.c:1012 -+#: timezone/zic.c:1113 - msgid "nameless rule" - msgstr "" - --#: timezone/zic.c:1017 -+#: timezone/zic.c:1118 - msgid "invalid saved time" - msgstr "" - --#: timezone/zic.c:1034 -+#: timezone/zic.c:1135 - msgid "wrong number of fields on Zone line" - msgstr "" - --#: timezone/zic.c:1039 -+#: timezone/zic.c:1140 - #, c-format - msgid "\"Zone %s\" line and -l option are mutually exclusive" - msgstr "" - --#: timezone/zic.c:1045 -+#: timezone/zic.c:1146 - #, c-format - msgid "\"Zone %s\" line and -p option are mutually exclusive" - msgstr "" - --#: timezone/zic.c:1053 -+#: timezone/zic.c:1154 - #, c-format - msgid "duplicate zone name %s (file \"%s\", line %d)" - msgstr "" - --#: timezone/zic.c:1066 -+#: timezone/zic.c:1167 - msgid "wrong number of fields on Zone continuation line" - msgstr "" - --#: timezone/zic.c:1103 -+#: timezone/zic.c:1207 - msgid "invalid UT offset" - msgstr "" - --#: timezone/zic.c:1106 -+#: timezone/zic.c:1211 - msgid "invalid abbreviation format" - msgstr "" - --#: timezone/zic.c:1135 -+#: timezone/zic.c:1220 -+#, c-format -+msgid "format '%s' not handled by pre-2015 versions of zic" -+msgstr "" -+ -+#: timezone/zic.c:1247 - msgid "Zone continuation line end time is not after end time of previous line" - msgstr "" - --#: timezone/zic.c:1161 -+#: timezone/zic.c:1274 - msgid "wrong number of fields on Leap line" - msgstr "" - --#: timezone/zic.c:1170 -+#: timezone/zic.c:1283 - msgid "invalid leaping year" - msgstr "" - --#: timezone/zic.c:1190 timezone/zic.c:1293 -+#: timezone/zic.c:1303 timezone/zic.c:1401 - msgid "invalid month name" - msgstr "" - --#: timezone/zic.c:1203 timezone/zic.c:1406 timezone/zic.c:1420 -+#: timezone/zic.c:1316 timezone/zic.c:1514 timezone/zic.c:1528 - msgid "invalid day of month" - msgstr "" - --#: timezone/zic.c:1208 -+#: timezone/zic.c:1321 - msgid "time too small" - msgstr "" - --#: timezone/zic.c:1212 -+#: timezone/zic.c:1325 - msgid "time too large" - msgstr "" - --#: timezone/zic.c:1216 timezone/zic.c:1322 -+#: timezone/zic.c:1329 timezone/zic.c:1430 - msgid "invalid time of day" - msgstr "" - --#: timezone/zic.c:1235 -+#: timezone/zic.c:1348 - msgid "illegal CORRECTION field on Leap line" - msgstr "" - --#: timezone/zic.c:1240 -+#: timezone/zic.c:1353 - msgid "illegal Rolling/Stationary field on Leap line" - msgstr "" - --#: timezone/zic.c:1246 -+#: timezone/zic.c:1359 - msgid "leap second precedes Big Bang" - msgstr "" - --#: timezone/zic.c:1259 -+#: timezone/zic.c:1372 - msgid "wrong number of fields on Link line" - msgstr "" - --#: timezone/zic.c:1263 -+#: timezone/zic.c:1376 - msgid "blank FROM field on Link line" - msgstr "" - --#: timezone/zic.c:1267 --msgid "blank TO field on Link line" --msgstr "" -- --#: timezone/zic.c:1343 -+#: timezone/zic.c:1451 - msgid "invalid starting year" - msgstr "" - --#: timezone/zic.c:1365 -+#: timezone/zic.c:1473 - msgid "invalid ending year" - msgstr "" - --#: timezone/zic.c:1369 -+#: timezone/zic.c:1477 - msgid "starting year greater than ending year" - msgstr "" - --#: timezone/zic.c:1376 -+#: timezone/zic.c:1484 - msgid "typed single year" - msgstr "" - --#: timezone/zic.c:1411 -+#: timezone/zic.c:1519 - msgid "invalid weekday name" - msgstr "" - --#: timezone/zic.c:1530 -+#: timezone/zic.c:1638 - msgid "pre-2014 clients may mishandle more than 1200 transition times" - msgstr "" - --#: timezone/zic.c:1585 -+#: timezone/zic.c:1691 - #, c-format - msgid "%s: Can't remove %s: %s\n" - msgstr "" - --#: timezone/zic.c:2143 --msgid "no POSIX environment variable for zone" --msgstr "" -- --#: timezone/zic.c:2149 -+#: timezone/zic.c:1918 - #, c-format --msgid "%s: pre-%d clients may mishandle distant timestamps" -+msgid "%%z UTC offset magnitude exceeds 99:59:59" - msgstr "" - --#: timezone/zic.c:2329 --msgid "can't determine time zone abbreviation to use just after until time" -+#: timezone/zic.c:2291 -+msgid "no POSIX environment variable for zone" - msgstr "" - --#: timezone/zic.c:2375 timezone/zic.c:2450 --msgid "too many local time types" -+#: timezone/zic.c:2297 -+#, c-format -+msgid "%s: pre-%d clients may mishandle distant timestamps" - msgstr "" - --#: timezone/zic.c:2423 --msgid "internal error - addtype called with bad isdst" -+#: timezone/zic.c:2428 -+msgid "two rules for same instant" - msgstr "" - --#: timezone/zic.c:2427 --msgid "internal error - addtype called with bad ttisstd" -+#: timezone/zic.c:2485 -+msgid "can't determine time zone abbreviation to use just after until time" - msgstr "" - --#: timezone/zic.c:2431 --msgid "internal error - addtype called with bad ttisgmt" -+#: timezone/zic.c:2531 timezone/zic.c:2593 -+msgid "too many local time types" - msgstr "" - --#: timezone/zic.c:2454 -+#: timezone/zic.c:2597 - msgid "UT offset out of range" - msgstr "" - --#: timezone/zic.c:2478 -+#: timezone/zic.c:2621 - msgid "too many leap seconds" - msgstr "" - --#: timezone/zic.c:2484 -+#: timezone/zic.c:2627 - msgid "repeated leap second moment" - msgstr "" - --#: timezone/zic.c:2534 -+#: timezone/zic.c:2677 - msgid "Wild result from command execution" - msgstr "" - --#: timezone/zic.c:2535 -+#: timezone/zic.c:2678 - #, c-format - msgid "%s: command was '%s', result was %d\n" - msgstr "" - --#: timezone/zic.c:2626 -+#: timezone/zic.c:2810 - msgid "Odd number of quotation marks" - msgstr "" - --#: timezone/zic.c:2703 -+#: timezone/zic.c:2896 - msgid "use of 2/29 in non leap-year" - msgstr "" - --#: timezone/zic.c:2738 -+#: timezone/zic.c:2931 - msgid "" --"rule goes past start/end of month--will not work with pre-2004 versions of " -+"rule goes past start/end of month; will not work with pre-2004 versions of " - "zic" - msgstr "" - --#: timezone/zic.c:2769 --msgid "time zone abbreviation lacks alphabetic at start" --msgstr "" -- --#: timezone/zic.c:2771 --msgid "time zone abbreviation has fewer than 3 alphabetics" -+#: timezone/zic.c:2958 -+msgid "time zone abbreviation has fewer than 3 characters" - msgstr "" - --#: timezone/zic.c:2773 --msgid "time zone abbreviation has too many alphabetics" -+#: timezone/zic.c:2960 -+msgid "time zone abbreviation has too many characters" - msgstr "" - --#: timezone/zic.c:2783 -+#: timezone/zic.c:2962 - msgid "time zone abbreviation differs from POSIX standard" - msgstr "" - --#: timezone/zic.c:2789 -+#: timezone/zic.c:2968 - msgid "too many, or too long, time zone abbreviations" - msgstr "" - --#: timezone/zic.c:2829 -+#: timezone/zic.c:3004 - #, c-format --msgid "%s: Can't create directory %s: %s\n" -+msgid "%s: Can't create directory %s: %s" - msgstr "" diff --git a/0003-Regenerated-configure-scripts.patch b/0003-Regenerated-configure-scripts.patch deleted file mode 100644 index b094467..0000000 --- a/0003-Regenerated-configure-scripts.patch +++ /dev/null @@ -1,17 +0,0 @@ -2016-02-18 Adhemerval Zanella - - * configure: Regenerated. - -Index: glibc-2.23/configure -=================================================================== ---- glibc-2.23.orig/configure -+++ glibc-2.23/configure -@@ -3864,7 +3864,7 @@ if test -z "$enable_hacker_mode" && test - *** The GNU C library is currently unavailable for this platform. - *** If you are interested in seeing glibc on this platform visit - *** the \"How to submit a new port\" in the wiki: --*** https://sourceware.org/glibc/wiki/HomePage#Development -+*** https://sourceware.org/glibc/wiki/#Development - *** and join the community!" "$LINENO" 5 - ;; - esac diff --git a/0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch b/0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch deleted file mode 100644 index 97faae1..0000000 --- a/0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch +++ /dev/null @@ -1,101 +0,0 @@ -2016-02-22 H.J. Lu - - [BZ #19679] - * sysdeps/x86_64/dl-trampoline.S (DL_RUNIME_UNALIGNED_VEC_SIZE): - Renamed to ... - (DL_RUNTIME_UNALIGNED_VEC_SIZE): This. Set to 8. - (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ... - (DL_RUNTIME_RESOLVE_REALIGN_STACK): This. Updated. - (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ... - (DL_RUNTIME_RESOLVE_REALIGN_STACK): This. - * sysdeps/x86_64/dl-trampoline.h - (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ... - (DL_RUNTIME_RESOLVE_REALIGN_STACK): This. - -Index: glibc-2.23/sysdeps/x86_64/dl-trampoline.S -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/dl-trampoline.S -+++ glibc-2.23/sysdeps/x86_64/dl-trampoline.S -@@ -33,15 +33,19 @@ - # define DL_STACK_ALIGNMENT 8 - #endif - --#ifndef DL_RUNIME_UNALIGNED_VEC_SIZE --/* The maximum size of unaligned vector load and store. */ --# define DL_RUNIME_UNALIGNED_VEC_SIZE 16 -+#ifndef DL_RUNTIME_UNALIGNED_VEC_SIZE -+/* The maximum size in bytes of unaligned vector load and store in the -+ dynamic linker. Since SSE optimized memory/string functions with -+ aligned SSE register load and store are used in the dynamic linker, -+ we must set this to 8 so that _dl_runtime_resolve_sse will align the -+ stack before calling _dl_fixup. */ -+# define DL_RUNTIME_UNALIGNED_VEC_SIZE 8 - #endif - - /* True if _dl_runtime_resolve should align stack to VEC_SIZE bytes. */ --#define DL_RUNIME_RESOLVE_REALIGN_STACK \ -+#define DL_RUNTIME_RESOLVE_REALIGN_STACK \ - (VEC_SIZE > DL_STACK_ALIGNMENT \ -- && VEC_SIZE > DL_RUNIME_UNALIGNED_VEC_SIZE) -+ && VEC_SIZE > DL_RUNTIME_UNALIGNED_VEC_SIZE) - - /* Align vector register save area to 16 bytes. */ - #define REGISTER_SAVE_VEC_OFF 0 -@@ -76,7 +80,7 @@ - #ifdef HAVE_AVX512_ASM_SUPPORT - # define VEC_SIZE 64 - # define VMOVA vmovdqa64 --# if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT -+# if DL_RUNTIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT - # define VMOV vmovdqa64 - # else - # define VMOV vmovdqu64 -@@ -100,7 +104,7 @@ strong_alias (_dl_runtime_profile_avx, _ - - #define VEC_SIZE 32 - #define VMOVA vmovdqa --#if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT -+#if DL_RUNTIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT - # define VMOV vmovdqa - #else - # define VMOV vmovdqu -@@ -119,7 +123,7 @@ strong_alias (_dl_runtime_profile_avx, _ - /* movaps/movups is 1-byte shorter. */ - #define VEC_SIZE 16 - #define VMOVA movaps --#if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT -+#if DL_RUNTIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT - # define VMOV movaps - #else - # define VMOV movups -Index: glibc-2.23/sysdeps/x86_64/dl-trampoline.h -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/dl-trampoline.h -+++ glibc-2.23/sysdeps/x86_64/dl-trampoline.h -@@ -30,7 +30,7 @@ - #undef REGISTER_SAVE_AREA - #undef LOCAL_STORAGE_AREA - #undef BASE --#if DL_RUNIME_RESOLVE_REALIGN_STACK -+#if DL_RUNTIME_RESOLVE_REALIGN_STACK - # define REGISTER_SAVE_AREA (REGISTER_SAVE_AREA_RAW + 8) - /* Local stack area before jumping to function address: RBX. */ - # define LOCAL_STORAGE_AREA 8 -@@ -57,7 +57,7 @@ - cfi_startproc - _dl_runtime_resolve: - cfi_adjust_cfa_offset(16) # Incorporate PLT --#if DL_RUNIME_RESOLVE_REALIGN_STACK -+#if DL_RUNTIME_RESOLVE_REALIGN_STACK - # if LOCAL_STORAGE_AREA != 8 - # error LOCAL_STORAGE_AREA must be 8 - # endif -@@ -146,7 +146,7 @@ _dl_runtime_resolve: - VMOV (REGISTER_SAVE_VEC_OFF + VEC_SIZE * 5)(%rsp), %VEC(5) - VMOV (REGISTER_SAVE_VEC_OFF + VEC_SIZE * 6)(%rsp), %VEC(6) - VMOV (REGISTER_SAVE_VEC_OFF + VEC_SIZE * 7)(%rsp), %VEC(7) --#if DL_RUNIME_RESOLVE_REALIGN_STACK -+#if DL_RUNTIME_RESOLVE_REALIGN_STACK - mov %RBX_LP, %RSP_LP - cfi_def_cfa_register(%rsp) - movq (%rsp), %rbx diff --git a/0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch b/0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch deleted file mode 100644 index d04cc62..0000000 --- a/0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch +++ /dev/null @@ -1,19 +0,0 @@ -2016-02-22 Roland McGrath - - * sysdeps/arm/nacl/libc.abilist (GLIBC_2.23): Add GLIBC_2.23, - fts64_children, fts64_close, fts64_open, fts64_read and fts64_set. - -Index: glibc-2.23/sysdeps/arm/nacl/libc.abilist -=================================================================== ---- glibc-2.23.orig/sysdeps/arm/nacl/libc.abilist -+++ glibc-2.23/sysdeps/arm/nacl/libc.abilist -@@ -1834,3 +1834,9 @@ GLIBC_2.22 wprintf F - GLIBC_2.22 write F - GLIBC_2.22 writev F - GLIBC_2.22 wscanf F -+GLIBC_2.23 GLIBC_2.23 A -+GLIBC_2.23 fts64_children F -+GLIBC_2.23 fts64_close F -+GLIBC_2.23 fts64_open F -+GLIBC_2.23 fts64_read F -+GLIBC_2.23 fts64_set F diff --git a/0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch b/0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch deleted file mode 100644 index 3f92cfa..0000000 --- a/0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch +++ /dev/null @@ -1,28 +0,0 @@ -2016-02-24 Andreas Schwab - - * math/test-math-isinff.cc (do_test): Only call isinfl and isnanl - if !NO_LONG_DOUBLE. - -Index: glibc-2.23/math/test-math-isinff.cc -=================================================================== ---- glibc-2.23.orig/math/test-math-isinff.cc -+++ glibc-2.23/math/test-math-isinff.cc -@@ -30,12 +30,17 @@ do_test (void) - header fix this test will not compile. */ - if (isinff (1.0f) - || !isinff (INFINITY) -+#ifndef NO_LONG_DOUBLE - || isinfl (1.0L) - || !isinfl (INFINITY) -+#endif - || isnanf (2.0f) - || !isnanf (NAN) -+#ifndef NO_LONG_DOUBLE - || isnanl (2.0L) -- || !isnanl (NAN)) -+ || !isnanl (NAN) -+#endif -+ ) - { - printf ("FAIL: Failed to call is* functions.\n"); - exit (1); diff --git a/0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch b/0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch deleted file mode 100644 index e325c0a..0000000 --- a/0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch +++ /dev/null @@ -1,17 +0,0 @@ -2016-02-24 Marko Myllynen - - * NEWS (2.23): Fix typo in bug 19048 text. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -38,7 +38,7 @@ Version 2.23 - unnecessary serialization of memory allocation requests across threads. - The defect is now corrected. Users should see a substantial increase in - the concurent throughput of allocation requests for applications which -- trigger this bug. Affected applications typically create create and -+ trigger this bug. Affected applications typically create and - destroy threads frequently. (Bug 19048 was reported and analyzed by - Ericsson.) - diff --git a/0008-Update-NEWS.patch b/0008-Update-NEWS.patch deleted file mode 100644 index 1ab59d6..0000000 --- a/0008-Update-NEWS.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -5,6 +5,17 @@ See the end for copying conditions. - Please send GNU C library bug reports via - using `glibc' in the "product" field. - -+Version 2.23.1 -+ -+Security related changes: -+ -+ [Add security related changes here] -+ -+The following bugs are resolved with this release: -+ -+ [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack -+ -+ - Version 2.23 - - * Unicode 8.0.0 Support: Character encoding, character type info, and diff --git a/0009-sln-use-stat64.patch b/0009-sln-use-stat64.patch deleted file mode 100644 index c84deb7..0000000 --- a/0009-sln-use-stat64.patch +++ /dev/null @@ -1,23 +0,0 @@ -2016-03-07 Hongjiu Zhang - - * elf/sln.c (makesymlink): Change struct stat to stat64, and lstat - to lstat64. - -Index: glibc-2.23/elf/sln.c -=================================================================== ---- glibc-2.23.orig/elf/sln.c -+++ glibc-2.23/elf/sln.c -@@ -164,11 +164,11 @@ makesymlinks (const char *file) - static int - makesymlink (const char *src, const char *dest) - { -- struct stat stats; -+ struct stat64 stats; - const char *error; - - /* Destination must not be a directory. */ -- if (lstat (dest, &stats) == 0) -+ if (lstat64 (dest, &stats) == 0) - { - if (S_ISDIR (stats.st_mode)) - { diff --git a/0010-Add-sys-auxv.h-wrapper-to-include-sys.patch b/0010-Add-sys-auxv.h-wrapper-to-include-sys.patch deleted file mode 100644 index 3f185b3..0000000 --- a/0010-Add-sys-auxv.h-wrapper-to-include-sys.patch +++ /dev/null @@ -1,10 +0,0 @@ -2016-03-08 Aurelien Jarno - - * include/sys/auxv.h: New file. - -Index: glibc-2.23/include/sys/auxv.h -=================================================================== ---- /dev/null -+++ glibc-2.23/include/sys/auxv.h -@@ -0,0 +1 @@ -+#include diff --git a/0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch b/0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch deleted file mode 100644 index dde2850..0000000 --- a/0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch +++ /dev/null @@ -1,43 +0,0 @@ -2016-03-09 Aurelien Jarno - - [BZ #19792] - * sysdeps/unix/sysv/linux/mips/makecontext.S (__makecontext): - Terminate FDE before return label. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -14,6 +14,7 @@ Security related changes: - The following bugs are resolved with this release: - - [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack -+ [19792] MIPS: backtrace yields infinite backtrace with makecontext - - - Version 2.23 -Index: glibc-2.23/sysdeps/unix/sysv/linux/mips/makecontext.S -=================================================================== ---- glibc-2.23.orig/sysdeps/unix/sysv/linux/mips/makecontext.S -+++ glibc-2.23/sysdeps/unix/sysv/linux/mips/makecontext.S -@@ -153,6 +153,11 @@ NESTED (__makecontext, FRAMESZ, ra) - #endif - jr ra - -+ /* We need to terminate the FDE to stop unwinding if backtrace was -+ called within a context created by makecontext. */ -+ cfi_endproc -+ nop -+ - 99: - #ifdef __PIC__ - move gp, s1 -@@ -186,6 +191,8 @@ NESTED (__makecontext, FRAMESZ, ra) - 1: - lb zero, (zero) - b 1b -+ -+ cfi_startproc - PSEUDO_END (__makecontext) - - weak_alias (__makecontext, makecontext) diff --git a/0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch b/0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch deleted file mode 100644 index 0893646..0000000 --- a/0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch +++ /dev/null @@ -1,135 +0,0 @@ -2016-03-10 H.J. Lu - - [BZ #19762] - * sysdeps/i386/i686/multiarch/bcopy.S (bcopy): Use - HAS_ARCH_FEATURE with Fast_Rep_String. - * sysdeps/i386/i686/multiarch/bzero.S (__bzero): Likewise. - * sysdeps/i386/i686/multiarch/memcpy.S (memcpy): Likewise. - * sysdeps/i386/i686/multiarch/memcpy_chk.S (__memcpy_chk): - Likewise. - * sysdeps/i386/i686/multiarch/memmove_chk.S (__memmove_chk): - Likewise. - * sysdeps/i386/i686/multiarch/mempcpy.S (__mempcpy): Likewise. - * sysdeps/i386/i686/multiarch/mempcpy_chk.S (__mempcpy_chk): - Likewise. - * sysdeps/i386/i686/multiarch/memset.S (memset): Likewise. - * sysdeps/i386/i686/multiarch/memset_chk.S (__memset_chk): - Likewise. - -Index: glibc-2.23/sysdeps/i386/i686/multiarch/bcopy.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/bcopy.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/bcopy.S -@@ -36,7 +36,7 @@ ENTRY(bcopy) - HAS_CPU_FEATURE (SSSE3) - jz 2f - LOAD_FUNC_GOT_EAX (__bcopy_ssse3) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__bcopy_ssse3_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/bzero.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/bzero.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/bzero.S -@@ -31,7 +31,7 @@ ENTRY(__bzero) - HAS_CPU_FEATURE (SSE2) - jz 2f - LOAD_FUNC_GOT_EAX ( __bzero_sse2) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__bzero_sse2_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/memcpy.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memcpy.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/memcpy.S -@@ -38,7 +38,7 @@ ENTRY(memcpy) - HAS_CPU_FEATURE (SSSE3) - jz 2f - LOAD_FUNC_GOT_EAX (__memcpy_ssse3) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__memcpy_ssse3_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/memcpy_chk.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memcpy_chk.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/memcpy_chk.S -@@ -39,7 +39,7 @@ ENTRY(__memcpy_chk) - HAS_CPU_FEATURE (SSSE3) - jz 2f - LOAD_FUNC_GOT_EAX (__memcpy_chk_ssse3) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__memcpy_chk_ssse3_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/memmove_chk.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memmove_chk.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/memmove_chk.S -@@ -36,7 +36,7 @@ ENTRY(__memmove_chk) - HAS_CPU_FEATURE (SSSE3) - jz 2f - LOAD_FUNC_GOT_EAX (__memmove_chk_ssse3) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__memmove_chk_ssse3_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/mempcpy.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy.S -@@ -38,7 +38,7 @@ ENTRY(__mempcpy) - HAS_CPU_FEATURE (SSSE3) - jz 2f - LOAD_FUNC_GOT_EAX (__mempcpy_ssse3) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__mempcpy_ssse3_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy_chk.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/mempcpy_chk.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/mempcpy_chk.S -@@ -39,7 +39,7 @@ ENTRY(__mempcpy_chk) - HAS_CPU_FEATURE (SSSE3) - jz 2f - LOAD_FUNC_GOT_EAX (__mempcpy_chk_ssse3) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__mempcpy_chk_ssse3_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/memset.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memset.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/memset.S -@@ -31,7 +31,7 @@ ENTRY(memset) - HAS_CPU_FEATURE (SSE2) - jz 2f - LOAD_FUNC_GOT_EAX (__memset_sse2) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__memset_sse2_rep) - 2: ret -Index: glibc-2.23/sysdeps/i386/i686/multiarch/memset_chk.S -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/i686/multiarch/memset_chk.S -+++ glibc-2.23/sysdeps/i386/i686/multiarch/memset_chk.S -@@ -31,7 +31,7 @@ ENTRY(__memset_chk) - HAS_CPU_FEATURE (SSE2) - jz 2f - LOAD_FUNC_GOT_EAX (__memset_chk_sse2) -- HAS_CPU_FEATURE (Fast_Rep_String) -+ HAS_ARCH_FEATURE (Fast_Rep_String) - jz 2f - LOAD_FUNC_GOT_EAX (__memset_chk_sse2_rep) - 2: ret diff --git a/0013-Mention-BZ-19762-in-NEWS.patch b/0013-Mention-BZ-19762-in-NEWS.patch deleted file mode 100644 index 067906f..0000000 --- a/0013-Mention-BZ-19762-in-NEWS.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -14,6 +14,7 @@ Security related changes: - The following bugs are resolved with this release: - - [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack -+ [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String - [19792] MIPS: backtrace yields infinite backtrace with makecontext - - diff --git a/0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch b/0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch deleted file mode 100644 index 7271518..0000000 --- a/0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch +++ /dev/null @@ -1,31 +0,0 @@ -2016-03-11 H.J. Lu - - [BZ #19759] - * sysdeps/x86/bits/string.h (_HAVE_STRING_ARCH_mempcpy): New. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -14,6 +14,7 @@ Security related changes: - The following bugs are resolved with this release: - - [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack -+ [19759] Don't inline mempcpy for x86 - [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String - [19792] MIPS: backtrace yields infinite backtrace with makecontext - -Index: glibc-2.23/sysdeps/x86/bits/string.h -=================================================================== ---- glibc-2.23.orig/sysdeps/x86/bits/string.h -+++ glibc-2.23/sysdeps/x86/bits/string.h -@@ -23,6 +23,9 @@ - /* Use the unaligned string inline ABI. */ - #define _STRING_INLINE_unaligned 1 - -+/* Don't inline mempcpy into memcpy as x86 has an optimized mempcpy. */ -+#define _HAVE_STRING_ARCH_mempcpy 1 -+ - /* Enable inline functions only for i486 or better when compiling for - ia32. */ - #if !defined __x86_64__ && (defined __i486__ || defined __pentium__ \ diff --git a/0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch b/0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch deleted file mode 100644 index c101b6b..0000000 --- a/0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch +++ /dev/null @@ -1,31 +0,0 @@ -2016-03-11 H.J. Lu - - [BZ #19758] - * sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h - (EXTRA_LD_ENVVARS): Or bit_Prefer_MAP_32BIT_EXEC. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -14,6 +14,7 @@ Security related changes: - The following bugs are resolved with this release: - - [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack -+ [19758] Or bit_Prefer_MAP_32BIT_EXEC in EXTRA_LD_ENVVARS - [19759] Don't inline mempcpy for x86 - [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String - [19792] MIPS: backtrace yields infinite backtrace with makecontext -Index: glibc-2.23/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h -=================================================================== ---- glibc-2.23.orig/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h -+++ glibc-2.23/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h -@@ -33,7 +33,7 @@ - case 21: \ - if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ - GLRO(dl_x86_cpu_features).feature[index_Prefer_MAP_32BIT_EXEC] \ -- = bit_Prefer_MAP_32BIT_EXEC; \ -+ |= bit_Prefer_MAP_32BIT_EXEC; \ - break; - - /* Extra unsecure variables. The names are all stuffed in a single diff --git a/0016-Fix-resource-leak-in-resolver-bug-19257.patch b/0016-Fix-resource-leak-in-resolver-bug-19257.patch deleted file mode 100644 index 56ff81d..0000000 --- a/0016-Fix-resource-leak-in-resolver-bug-19257.patch +++ /dev/null @@ -1,19 +0,0 @@ -2016-03-15 Andreas Schwab - - [BZ #19257] - * resolv/res_init.c (__res_iclose): Use statp->nscount instead of - statp->_u._ext.nscount as loop count. - -Index: glibc-2.23/resolv/res_init.c -=================================================================== ---- glibc-2.23.orig/resolv/res_init.c -+++ glibc-2.23/resolv/res_init.c -@@ -594,7 +594,7 @@ __res_iclose(res_state statp, bool free_ - statp->_vcsock = -1; - statp->_flags &= ~(RES_F_VC | RES_F_CONN); - } -- for (ns = 0; ns < statp->_u._ext.nscount; ns++) -+ for (ns = 0; ns < statp->nscount; ns++) - if (statp->_u._ext.nsaddrs[ns]) { - if (statp->_u._ext.nssocks[ns] != -1) { - close_not_cancel_no_status(statp->_u._ext.nssocks[ns]); diff --git a/0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch b/0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch deleted file mode 100644 index 0819d55..0000000 --- a/0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch +++ /dev/null @@ -1,32 +0,0 @@ -2016-03-21 Dylan Alex Simon - - [BZ #19822] - * math/Makefile ($(inst_libdir)/libm.so): Write output to $@.tmp and - move it to the final $@ location. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -18,6 +18,7 @@ The following bugs are resolved with thi - [19759] Don't inline mempcpy for x86 - [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String - [19792] MIPS: backtrace yields infinite backtrace with makecontext -+ [19822] libm.so install clobbers old version - - - Version 2.23 -Index: glibc-2.23/math/Makefile -=================================================================== ---- glibc-2.23.orig/math/Makefile -+++ glibc-2.23/math/Makefile -@@ -100,7 +100,8 @@ $(inst_libdir)/libm.so: $(common-objpfx) - cat $<; \ - echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \ - 'AS_NEEDED ( $(libdir)/libmvec_nonshared.a $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \ -- ) > $@ -+ ) > $@.new -+ mv -f $@.new $@ - endif - - # Rules for the test suite. diff --git a/0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch b/0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch deleted file mode 100644 index a512c58..0000000 --- a/0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch +++ /dev/null @@ -1,187 +0,0 @@ -2016-03-25 Florian Weimer - - [BZ #19791] - * resolv/res_send.c (close_and_return_error): New function. - (send_dg): Initialize *resplen2 after reopen failure. Call - close_and_return_error for error returns. On error paths without - __res_iclose, initialze *resplen2 explicitly. Update comment for - successful return. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -17,6 +17,7 @@ The following bugs are resolved with thi - [19758] Or bit_Prefer_MAP_32BIT_EXEC in EXTRA_LD_ENVVARS - [19759] Don't inline mempcpy for x86 - [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String -+ [19791] Assertion failure in res_query.c with un-connectable name server addresses - [19792] MIPS: backtrace yields infinite backtrace with makecontext - [19822] libm.so install clobbers old version - -Index: glibc-2.23/resolv/res_send.c -=================================================================== ---- glibc-2.23.orig/resolv/res_send.c -+++ glibc-2.23/resolv/res_send.c -@@ -649,6 +649,18 @@ get_nsaddr (res_state statp, int n) - return (struct sockaddr *) (void *) &statp->nsaddr_list[n]; - } - -+/* Close the resolver structure, assign zero to *RESPLEN2 if RESPLEN2 -+ is not NULL, and return zero. */ -+static int -+__attribute__ ((warn_unused_result)) -+close_and_return_error (res_state statp, int *resplen2) -+{ -+ __res_iclose(statp, false); -+ if (resplen2 != NULL) -+ *resplen2 = 0; -+ return 0; -+} -+ - /* The send_vc function is responsible for sending a DNS query over TCP - to the nameserver numbered NS from the res_state STATP i.e. - EXT(statp).nssocks[ns]. The function supports sending both IPv4 and -@@ -1114,7 +1126,11 @@ send_dg(res_state statp, - retry_reopen: - retval = reopen (statp, terrno, ns); - if (retval <= 0) -- return retval; -+ { -+ if (resplen2 != NULL) -+ *resplen2 = 0; -+ return retval; -+ } - retry: - evNowTime(&now); - evConsTime(&timeout, seconds, 0); -@@ -1127,8 +1143,6 @@ send_dg(res_state statp, - int recvresp2 = buf2 == NULL; - pfd[0].fd = EXT(statp).nssocks[ns]; - pfd[0].events = POLLOUT; -- if (resplen2 != NULL) -- *resplen2 = 0; - wait: - if (need_recompute) { - recompute_resend: -@@ -1136,9 +1150,7 @@ send_dg(res_state statp, - if (evCmpTime(finish, now) <= 0) { - poll_err_out: - Perror(statp, stderr, "poll", errno); -- err_out: -- __res_iclose(statp, false); -- return (0); -+ return close_and_return_error (statp, resplen2); - } - evSubTime(&timeout, &finish, &now); - need_recompute = 0; -@@ -1185,7 +1197,9 @@ send_dg(res_state statp, - } - - *gotsomewhere = 1; -- return (0); -+ if (resplen2 != NULL) -+ *resplen2 = 0; -+ return 0; - } - if (n < 0) { - if (errno == EINTR) -@@ -1253,7 +1267,7 @@ send_dg(res_state statp, - - fail_sendmmsg: - Perror(statp, stderr, "sendmmsg", errno); -- goto err_out; -+ return close_and_return_error (statp, resplen2); - } - } - else -@@ -1271,7 +1285,7 @@ send_dg(res_state statp, - if (errno == EINTR || errno == EAGAIN) - goto recompute_resend; - Perror(statp, stderr, "send", errno); -- goto err_out; -+ return close_and_return_error (statp, resplen2); - } - just_one: - if (nwritten != 0 || buf2 == NULL || single_request) -@@ -1349,7 +1363,7 @@ send_dg(res_state statp, - goto wait; - } - Perror(statp, stderr, "recvfrom", errno); -- goto err_out; -+ return close_and_return_error (statp, resplen2); - } - *gotsomewhere = 1; - if (__glibc_unlikely (*thisresplenp < HFIXEDSZ)) { -@@ -1360,7 +1374,7 @@ send_dg(res_state statp, - (stdout, ";; undersized: %d\n", - *thisresplenp)); - *terrno = EMSGSIZE; -- goto err_out; -+ return close_and_return_error (statp, resplen2); - } - if ((recvresp1 || hp->id != anhp->id) - && (recvresp2 || hp2->id != anhp->id)) { -@@ -1409,7 +1423,7 @@ send_dg(res_state statp, - ? *thisanssizp : *thisresplenp); - /* record the error */ - statp->_flags |= RES_F_EDNS0ERR; -- goto err_out; -+ return close_and_return_error (statp, resplen2); - } - #endif - if (!(statp->options & RES_INSECURE2) -@@ -1461,10 +1475,10 @@ send_dg(res_state statp, - goto wait; - } - -- __res_iclose(statp, false); - /* don't retry if called from dig */ - if (!statp->pfcode) -- return (0); -+ return close_and_return_error (statp, resplen2); -+ __res_iclose(statp, false); - } - if (anhp->rcode == NOERROR && anhp->ancount == 0 - && anhp->aa == 0 && anhp->ra == 0 && anhp->arcount == 0) { -@@ -1486,6 +1500,8 @@ send_dg(res_state statp, - __res_iclose(statp, false); - // XXX if we have received one reply we could - // XXX use it and not repeat it over TCP... -+ if (resplen2 != NULL) -+ *resplen2 = 0; - return (1); - } - /* Mark which reply we received. */ -@@ -1501,21 +1517,22 @@ send_dg(res_state statp, - __res_iclose (statp, false); - retval = reopen (statp, terrno, ns); - if (retval <= 0) -- return retval; -+ { -+ if (resplen2 != NULL) -+ *resplen2 = 0; -+ return retval; -+ } - pfd[0].fd = EXT(statp).nssocks[ns]; - } - } - goto wait; - } -- /* -- * All is well, or the error is fatal. Signal that the -- * next nameserver ought not be tried. -- */ -+ /* All is well. We have received both responses (if -+ two responses were requested). */ - return (resplen); -- } else if (pfd[0].revents & (POLLERR | POLLHUP | POLLNVAL)) { -- /* Something went wrong. We can stop trying. */ -- goto err_out; -- } -+ } else if (pfd[0].revents & (POLLERR | POLLHUP | POLLNVAL)) -+ /* Something went wrong. We can stop trying. */ -+ return close_and_return_error (statp, resplen2); - else { - /* poll should not have returned > 0 in this case. */ - abort (); diff --git a/0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch b/0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch deleted file mode 100644 index 12b92e6..0000000 --- a/0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch +++ /dev/null @@ -1,857 +0,0 @@ -2016-04-01 Stefan Liebler - - * sysdeps/s390/s390-32/dl-trampoline.S: Include dl-trampoline.h twice - to create a non-vector/vector version for _dl_runtime_resolve and - _dl_runtime_profile. Move implementation to ... - * sysdeps/s390/s390-32/dl-trampoline.h: ... here. - (_dl_runtime_resolve) Save and restore fpr/vrs. - (_dl_runtime_profile) Save and restore vrs and fix some issues - if _dl_call_pltexit is called. - * sysdeps/s390/s390-32/dl-machine.h (elf_machine_runtime_setup): - Choose the correct resolver function if running on a machine with vx. - * sysdeps/s390/s390-64/dl-trampoline.S: Include dl-trampoline.h twice - to create a non-vector/vector version for _dl_runtime_resolve and - _dl_runtime_profile. Move implementation to ... - * sysdeps/s390/s390-64/dl-trampoline.h: ... here. - (_dl_runtime_resolve) Save and restore fpr/vrs. - (_dl_runtime_profile) Save and restore vrs and fix some issues - * sysdeps/s390/s390-64/dl-machine.h: (elf_machine_runtime_setup): - Choose the correct resolver function if running on a machine with vx. - -Index: glibc-2.23/sysdeps/s390/s390-32/dl-machine.h -=================================================================== ---- glibc-2.23.orig/sysdeps/s390/s390-32/dl-machine.h -+++ glibc-2.23/sysdeps/s390/s390-32/dl-machine.h -@@ -89,6 +89,11 @@ elf_machine_runtime_setup (struct link_m - { - extern void _dl_runtime_resolve (Elf32_Word); - extern void _dl_runtime_profile (Elf32_Word); -+#if defined HAVE_S390_VX_ASM_SUPPORT -+ extern void _dl_runtime_resolve_vx (Elf32_Word); -+ extern void _dl_runtime_profile_vx (Elf32_Word); -+#endif -+ - - if (l->l_info[DT_JMPREL] && lazy) - { -@@ -116,7 +121,14 @@ elf_machine_runtime_setup (struct link_m - end in this function. */ - if (__glibc_unlikely (profile)) - { -+#if defined HAVE_S390_VX_ASM_SUPPORT -+ if (GLRO(dl_hwcap) & HWCAP_S390_VX) -+ got[2] = (Elf32_Addr) &_dl_runtime_profile_vx; -+ else -+ got[2] = (Elf32_Addr) &_dl_runtime_profile; -+#else - got[2] = (Elf32_Addr) &_dl_runtime_profile; -+#endif - - if (GLRO(dl_profile) != NULL - && _dl_name_match_p (GLRO(dl_profile), l)) -@@ -125,9 +137,18 @@ elf_machine_runtime_setup (struct link_m - GL(dl_profile_map) = l; - } - else -- /* This function will get called to fix up the GOT entry indicated by -- the offset on the stack, and then jump to the resolved address. */ -- got[2] = (Elf32_Addr) &_dl_runtime_resolve; -+ { -+ /* This function will get called to fix up the GOT entry indicated by -+ the offset on the stack, and then jump to the resolved address. */ -+#if defined HAVE_S390_VX_ASM_SUPPORT -+ if (GLRO(dl_hwcap) & HWCAP_S390_VX) -+ got[2] = (Elf32_Addr) &_dl_runtime_resolve_vx; -+ else -+ got[2] = (Elf32_Addr) &_dl_runtime_resolve; -+#else -+ got[2] = (Elf32_Addr) &_dl_runtime_resolve; -+#endif -+ } - } - - return lazy; -Index: glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.S -=================================================================== ---- glibc-2.23.orig/sysdeps/s390/s390-32/dl-trampoline.S -+++ glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.S -@@ -16,130 +16,18 @@ - License along with the GNU C Library; if not, see - . */ - --/* This code is used in dl-runtime.c to call the `fixup' function -- and then redirect to the address it returns. */ -- --/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile -- * with the following linkage: -- * r2 - r6 : parameter registers -- * f0, f2 : floating point parameter registers -- * 24(r15), 28(r15) : PLT arguments PLT1, PLT2 -- * 96(r15) : additional stack parameters -- * The normal clobber rules for function calls apply: -- * r0 - r5 : call clobbered -- * r6 - r13 : call saved -- * r14 : return address (call clobbered) -- * r15 : stack pointer (call saved) -- * f4, f6 : call saved -- * f0 - f3, f5, f7 - f15 : call clobbered -- */ -- - #include - - .text -- .globl _dl_runtime_resolve -- .type _dl_runtime_resolve, @function -- cfi_startproc -- .align 16 --_dl_runtime_resolve: -- stm %r2,%r5,32(%r15) # save registers -- st %r14,8(%r15) -- cfi_offset (r14, -88) -- lr %r0,%r15 # create stack frame -- ahi %r15,-96 -- cfi_adjust_cfa_offset (96) -- st 0,0(%r15) -- lm %r2,%r3,120(%r15) # load args saved by PLT -- basr %r1,0 --0: l %r14,1f-0b(%r1) -- bas %r14,0(%r14,%r1) # call resolver -- lr %r1,%r2 # function addr returned in r2 -- ahi %r15,96 # remove stack frame -- cfi_adjust_cfa_offset (-96) -- l %r14,8(15) # restore registers -- lm %r2,%r5,32(%r15) -- br %r1 --1: .long _dl_fixup - 0b -- cfi_endproc -- .size _dl_runtime_resolve, .-_dl_runtime_resolve -- -- --#ifndef PROF -- .globl _dl_runtime_profile -- .type _dl_runtime_profile, @function -- cfi_startproc -- .align 16 --_dl_runtime_profile: -- stm %r2,%r6,32(%r15) # save registers -- std %f0,56(%r15) -- std %f2,64(%r15) -- st %r6,8(%r15) -- st %r12,12(%r15) -- st %r14,16(%r15) -- cfi_offset (r6, -64) -- cfi_offset (f0, -40) -- cfi_offset (f2, -32) -- cfi_offset (r12, -84) -- cfi_offset (r14, -80) -- lr %r12,%r15 # create stack frame -- cfi_def_cfa_register (12) -- ahi %r15,-96 -- st %r12,0(%r15) -- lm %r2,%r3,24(%r12) # load arguments saved by PLT -- lr %r4,%r14 # return address as third parameter -- basr %r1,0 --0: l %r14,6f-0b(%r1) -- la %r5,32(%r12) # pointer to struct La_s390_32_regs -- la %r6,20(%r12) # long int * framesize -- bas %r14,0(%r14,%r1) # call resolver -- lr %r1,%r2 # function addr returned in r2 -- icm %r0,15,20(%r12) # load & test framesize -- jnm 2f -- -- lm %r2,%r6,32(%r12) -- ld %f0,56(%r12) -- ld %f2,64(%r12) -- lr %r15,%r12 # remove stack frame -- cfi_def_cfa_register (15) -- l %r14,16(%r15) # restore registers -- l %r12,12(%r15) -- br %r1 # tail-call to the resolved function -- -- cfi_def_cfa_register (12) --2: jz 4f # framesize == 0 ? -- ahi %r0,7 # align framesize to 8 -- lhi %r2,-8 -- nr %r0,%r2 -- slr %r15,%r0 # make room for framesize bytes -- st %r12,0(%r15) -- la %r2,96(%r15) -- la %r3,96(%r12) -- srl %r0,3 --3: mvc 0(8,%r2),0(%r3) # copy additional parameters -- la %r2,8(%r2) -- la %r3,8(%r3) -- brct %r0,3b --4: lm %r2,%r6,32(%r12) # load register parameters -- ld %f0,56(%r12) -- ld %f2,64(%r12) -- basr %r14,%r1 # call resolved function -- stm %r2,%r3,72(%r12) -- std %f0,80(%r12) -- lm %r2,%r3,24(%r12) # load arguments saved by PLT -- basr %r1,0 --5: l %r14,7f-5b(%r1) -- la %r4,32(%r12) # pointer to struct La_s390_32_regs -- la %r5,72(%r12) # pointer to struct La_s390_32_retval -- basr %r14,%r1 # call _dl_call_pltexit -- -- lr %r15,%r12 # remove stack frame -- cfi_def_cfa_register (15) -- l %r14,16(%r15) # restore registers -- l %r12,12(%r15) -- br %r14 -- --6: .long _dl_profile_fixup - 0b --7: .long _dl_call_pltexit - 5b -- cfi_endproc -- .size _dl_runtime_profile, .-_dl_runtime_profile -+/* Create variant of _dl_runtime_resolve/profile for machines before z13. -+ No vector registers are saved/restored. */ -+#include -+ -+#if defined HAVE_S390_VX_ASM_SUPPORT -+/* Create variant of _dl_runtime_resolve/profile for z13 and newer. -+ The vector registers are saved/restored, too.*/ -+# define _dl_runtime_resolve _dl_runtime_resolve_vx -+# define _dl_runtime_profile _dl_runtime_profile_vx -+# define RESTORE_VRS -+# include - #endif -Index: glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h -=================================================================== ---- /dev/null -+++ glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h -@@ -0,0 +1,215 @@ -+/* PLT trampolines. s390 version. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+/* This code is used in dl-runtime.c to call the `fixup' function -+ and then redirect to the address it returns. */ -+ -+/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile -+ * with the following linkage: -+ * r2 - r6 : parameter registers -+ * f0, f2 : floating point parameter registers -+ * v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers -+ * 24(r15), 28(r15) : PLT arguments PLT1, PLT2 -+ * 96(r15) : additional stack parameters -+ * The normal clobber rules for function calls apply: -+ * r0 - r5 : call clobbered -+ * r6 - r13 : call saved -+ * r14 : return address (call clobbered) -+ * r15 : stack pointer (call saved) -+ * f4, f6 : call saved -+ * f0 - f3, f5, f7 - f15 : call clobbered -+ * v0 - v3, v5, v7 - v15 : bytes 0-7 overlap with fprs: call clobbered -+ bytes 8-15: call clobbered -+ * v4, v6 : bytes 0-7 overlap with f4, f6: call saved -+ bytes 8-15: call clobbered -+ * v16 - v31 : call clobbered -+ */ -+ -+ -+ .globl _dl_runtime_resolve -+ .type _dl_runtime_resolve, @function -+ cfi_startproc -+ .align 16 -+_dl_runtime_resolve: -+ stm %r2,%r5,32(%r15) # save registers -+ cfi_offset (r2, -64) -+ cfi_offset (r3, -60) -+ cfi_offset (r4, -56) -+ cfi_offset (r5, -52) -+ std %f0,56(%r15) -+ cfi_offset (f0, -40) -+ std %f2,64(%r15) -+ cfi_offset (f2, -32) -+ st %r14,8(%r15) -+ cfi_offset (r14, -88) -+ lr %r0,%r15 -+ lm %r2,%r3,24(%r15) # load args saved by PLT -+#ifdef RESTORE_VRS -+ ahi %r15,-224 # create stack frame -+ cfi_adjust_cfa_offset (224) -+ .machine push -+ .machine "z13" -+ .machinemode "zarch_nohighgprs" -+ vstm %v24,%v31,96(%r15) # store call-clobbered vr arguments -+ cfi_offset (v24, -224) -+ cfi_offset (v25, -208) -+ cfi_offset (v26, -192) -+ cfi_offset (v27, -176) -+ cfi_offset (v28, -160) -+ cfi_offset (v29, -144) -+ cfi_offset (v30, -128) -+ cfi_offset (v31, -112) -+ .machine pop -+#else -+ ahi %r15,-96 # create stack frame -+ cfi_adjust_cfa_offset (96) -+#endif -+ st %r0,0(%r15) # write backchain -+ basr %r1,0 -+0: l %r14,1f-0b(%r1) -+ bas %r14,0(%r14,%r1) # call _dl_fixup -+ lr %r1,%r2 # function addr returned in r2 -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ .machinemode "zarch_nohighgprs" -+ vlm %v24,%v31,96(%r15) # restore vector registers -+ .machine pop -+ ahi %r15,224 # remove stack frame -+ cfi_adjust_cfa_offset (-224) -+#else -+ ahi %r15,96 # remove stack frame -+ cfi_adjust_cfa_offset (-96) -+#endif -+ l %r14,8(15) # restore registers -+ ld %f0,56(%r15) -+ ld %f2,64(%r15) -+ lm %r2,%r5,32(%r15) -+ br %r1 -+1: .long _dl_fixup - 0b -+ cfi_endproc -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve -+ -+ -+#ifndef PROF -+ .globl _dl_runtime_profile -+ .type _dl_runtime_profile, @function -+ cfi_startproc -+ .align 16 -+_dl_runtime_profile: -+ stm %r2,%r6,32(%r15) # save registers -+ cfi_offset (r2, -64) # + r6 needed as arg for -+ cfi_offset (r3, -60) # _dl_profile_fixup -+ cfi_offset (r4, -56) -+ cfi_offset (r5, -52) -+ cfi_offset (r6, -48) -+ std %f0,56(%r15) -+ cfi_offset (f0, -40) -+ std %f2,64(%r15) -+ cfi_offset (f2, -32) -+ st %r12,12(%r15) # r12 is used as backup of r15 -+ cfi_offset (r12, -84) -+ st %r14,16(%r15) -+ cfi_offset (r14, -80) -+ lr %r12,%r15 # backup stack pointer -+ cfi_def_cfa_register (12) -+#ifdef RESTORE_VRS -+ ahi %r15,-224 # create stack frame -+ .machine push -+ .machine "z13" -+ .machinemode "zarch_nohighgprs" -+ vstm %v24,%v31,96(%r15) # store call-clobbered vr arguments -+ cfi_offset (v24, -224) -+ cfi_offset (v25, -208) -+ cfi_offset (v26, -192) -+ cfi_offset (v27, -176) -+ cfi_offset (v28, -160) -+ cfi_offset (v29, -144) -+ cfi_offset (v30, -128) -+ cfi_offset (v31, -112) -+ .machine pop -+#else -+ ahi %r15,-96 # create stack frame -+#endif -+ st %r12,0(%r15) # save backchain -+ lm %r2,%r3,24(%r12) # load arguments saved by PLT -+ lr %r4,%r14 # return address as third parameter -+ basr %r1,0 -+0: l %r14,6f-0b(%r1) -+ la %r5,32(%r12) # pointer to struct La_s390_32_regs -+ la %r6,20(%r12) # long int * framesize -+ bas %r14,0(%r14,%r1) # call resolver -+ lr %r1,%r2 # function addr returned in r2 -+ ld %f0,56(%r12) # restore call-clobbered arg fprs -+ ld %f2,64(%r12) -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ .machinemode "zarch_nohighgprs" -+ vlm %v24,%v31,96(%r15) # restore call-clobbered arg vrs -+ .machine pop -+#endif -+ icm %r0,15,20(%r12) # load & test framesize -+ jnm 2f -+ -+ lm %r2,%r6,32(%r12) -+ lr %r15,%r12 # remove stack frame -+ cfi_def_cfa_register (15) -+ l %r14,16(%r15) # restore registers -+ l %r12,12(%r15) -+ br %r1 # tail-call to the resolved function -+ -+ cfi_def_cfa_register (12) -+2: jz 4f # framesize == 0 ? -+ ahi %r0,7 # align framesize to 8 -+ lhi %r2,-8 -+ nr %r0,%r2 -+ slr %r15,%r0 # make room for framesize bytes -+ st %r12,0(%r15) # save backchain -+ la %r2,96(%r15) -+ la %r3,96(%r12) -+ srl %r0,3 -+3: mvc 0(8,%r2),0(%r3) # copy additional parameters -+ la %r2,8(%r2) -+ la %r3,8(%r3) -+ brct %r0,3b -+4: lm %r2,%r6,32(%r12) # load register parameters -+ basr %r14,%r1 # call resolved function -+ stm %r2,%r3,72(%r12) # store return values r2, r3, f0 -+ std %f0,80(%r12) # to struct La_s390_32_retval -+ lm %r2,%r3,24(%r12) # load arguments saved by PLT -+ basr %r1,0 -+5: l %r14,7f-5b(%r1) -+ la %r4,32(%r12) # pointer to struct La_s390_32_regs -+ la %r5,72(%r12) # pointer to struct La_s390_32_retval -+ bas %r14,0(%r14,%r1) # call _dl_call_pltexit -+ -+ lr %r15,%r12 # remove stack frame -+ cfi_def_cfa_register (15) -+ l %r14,16(%r15) # restore registers -+ l %r12,12(%r15) -+ l %r2,72(%r15) # restore return values -+ l %r3,76(%r15) -+ ld %f0,80(%r15) -+ br %r14 -+ -+6: .long _dl_profile_fixup - 0b -+7: .long _dl_call_pltexit - 5b -+ cfi_endproc -+ .size _dl_runtime_profile, .-_dl_runtime_profile -+#endif -Index: glibc-2.23/sysdeps/s390/s390-64/dl-machine.h -=================================================================== ---- glibc-2.23.orig/sysdeps/s390/s390-64/dl-machine.h -+++ glibc-2.23/sysdeps/s390/s390-64/dl-machine.h -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - - #define ELF_MACHINE_IRELATIVE R_390_IRELATIVE -@@ -78,6 +79,10 @@ elf_machine_runtime_setup (struct link_m - { - extern void _dl_runtime_resolve (Elf64_Word); - extern void _dl_runtime_profile (Elf64_Word); -+#if defined HAVE_S390_VX_ASM_SUPPORT -+ extern void _dl_runtime_resolve_vx (Elf64_Word); -+ extern void _dl_runtime_profile_vx (Elf64_Word); -+#endif - - if (l->l_info[DT_JMPREL] && lazy) - { -@@ -105,7 +110,14 @@ elf_machine_runtime_setup (struct link_m - end in this function. */ - if (__glibc_unlikely (profile)) - { -+#if defined HAVE_S390_VX_ASM_SUPPORT -+ if (GLRO(dl_hwcap) & HWCAP_S390_VX) -+ got[2] = (Elf64_Addr) &_dl_runtime_profile_vx; -+ else -+ got[2] = (Elf64_Addr) &_dl_runtime_profile; -+#else - got[2] = (Elf64_Addr) &_dl_runtime_profile; -+#endif - - if (GLRO(dl_profile) != NULL - && _dl_name_match_p (GLRO(dl_profile), l)) -@@ -114,9 +126,18 @@ elf_machine_runtime_setup (struct link_m - GL(dl_profile_map) = l; - } - else -- /* This function will get called to fix up the GOT entry indicated by -- the offset on the stack, and then jump to the resolved address. */ -- got[2] = (Elf64_Addr) &_dl_runtime_resolve; -+ { -+ /* This function will get called to fix up the GOT entry indicated by -+ the offset on the stack, and then jump to the resolved address. */ -+#if defined HAVE_S390_VX_ASM_SUPPORT -+ if (GLRO(dl_hwcap) & HWCAP_S390_VX) -+ got[2] = (Elf64_Addr) &_dl_runtime_resolve_vx; -+ else -+ got[2] = (Elf64_Addr) &_dl_runtime_resolve; -+#else -+ got[2] = (Elf64_Addr) &_dl_runtime_resolve; -+#endif -+ } - } - - return lazy; -Index: glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.S -=================================================================== ---- glibc-2.23.orig/sysdeps/s390/s390-64/dl-trampoline.S -+++ glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.S -@@ -16,126 +16,18 @@ - License along with the GNU C Library; if not, see - . */ - --/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile -- * with the following linkage: -- * r2 - r6 : parameter registers -- * f0, f2, f4, f6 : floating point parameter registers -- * 48(r15), 56(r15) : PLT arguments PLT1, PLT2 -- * 160(r15) : additional stack parameters -- * The normal clobber rules for function calls apply: -- * r0 - r5 : call clobbered -- * r6 - r13 : call saved -- * r14 : return address (call clobbered) -- * r15 : stack pointer (call saved) -- * f1, f3, f5, f7 : call saved -- * f0 - f3, f5, f7 - f15 : call clobbered -- */ -- - #include - - .text -- .globl _dl_runtime_resolve -- .type _dl_runtime_resolve, @function -- cfi_startproc -- .align 16 --_dl_runtime_resolve: -- stmg %r2,%r5,64(15) # save call-clobbered argument registers -- stg %r14,96(15) -- cfi_offset (r14, -64) -- lgr %r0,%r15 -- aghi %r15,-160 # create stack frame -- cfi_adjust_cfa_offset (160) -- stg %r0,0(%r15) # write backchain -- lmg %r2,%r3,208(%r15)# load args saved by PLT -- brasl %r14,_dl_fixup # call fixup -- lgr %r1,%r2 # function addr returned in r2 -- aghi %r15,160 # remove stack frame -- cfi_adjust_cfa_offset (-160) -- lg %r14,96(15) # restore registers -- lmg %r2,%r5,64(15) -- br %r1 -- cfi_endproc -- .size _dl_runtime_resolve, .-_dl_runtime_resolve -- -- --#ifndef PROF -- .globl _dl_runtime_profile -- .type _dl_runtime_profile, @function -- cfi_startproc -- .align 16 --_dl_runtime_profile: -- stmg %r2,%r6,64(%r15) # save call-clobbered arg regs -- std %f0,104(%r15) # + r6 needed as arg for -- std %f2,112(%r15) # _dl_profile_fixup -- std %f4,120(%r15) -- std %f6,128(%r15) -- stg %r12,24(%r15) # r12 is used as backup of r15 -- stg %r14,32(%r15) -- cfi_offset (r6, -96) -- cfi_offset (f0, -56) -- cfi_offset (f2, -48) -- cfi_offset (f4, -40) -- cfi_offset (f6, -32) -- cfi_offset (r12, -136) -- cfi_offset (r14, -128) -- lgr %r12,%r15 # backup stack pointer -- cfi_def_cfa_register (12) -- aghi %r15,-160 # create stack frame -- stg %r12,0(%r15) # save backchain -- lmg %r2,%r3,48(%r12) # load arguments saved by PLT -- lgr %r4,%r14 # return address as third parameter -- la %r5,64(%r12) # pointer to struct La_s390_32_regs -- la %r6,40(%r12) # long int * framesize -- brasl %r14,_dl_profile_fixup # call resolver -- lgr %r1,%r2 # function addr returned in r2 -- lg %r0,40(%r12) # load framesize -- ltgr %r0,%r0 -- jnm 1f -- -- lmg %r2,%r6,64(%r12) # framesize < 0 means no pltexit call -- ld %f0,104(%r12) # so we can do a tail call without -- ld %f2,112(%r12) # copying the arg overflow area -- ld %f4,120(%r12) -- ld %f6,128(%r12) -- -- lgr %r15,%r12 # remove stack frame -- cfi_def_cfa_register (15) -- lg %r14,32(%r15) # restore registers -- lg %r12,24(%r15) -- br %r1 # tail-call to resolved function -- -- cfi_def_cfa_register (12) --1: jz 4f # framesize == 0 ? -- aghi %r0,7 # align framesize to 8 -- nill %r0,0xfff8 -- slgr %r15,%r0 # make room for framesize bytes -- stg %r12,0(%r15) -- la %r2,160(%r15) -- la %r3,160(%r12) -- srlg %r0,%r0,3 --3: mvc 0(8,%r2),0(%r3) # copy additional parameters -- la %r2,8(%r2) -- la %r3,8(%r3) -- brctg %r0,3b --4: lmg %r2,%r6,64(%r12) # load register parameters -- ld %f0,104(%r12) # restore call-clobbered arg regs -- ld %f2,112(%r12) -- ld %f4,120(%r12) -- ld %f6,128(%r12) -- basr %r14,%r1 # call resolved function -- stg %r2,136(%r12) -- std %f0,144(%r12) -- lmg %r2,%r3,48(%r12) # load arguments saved by PLT -- la %r4,32(%r12) # pointer to struct La_s390_32_regs -- la %r5,72(%r12) # pointer to struct La_s390_32_retval -- brasl %r14,_dl_call_pltexit -- -- lgr %r15,%r12 # remove stack frame -- cfi_def_cfa_register (15) -- lg %r14,32(%r15) # restore registers -- lg %r12,24(%r15) -- br %r14 -- -- cfi_endproc -- .size _dl_runtime_profile, .-_dl_runtime_profile -+/* Create variant of _dl_runtime_resolve/profile for machines before z13. -+ No vector registers are saved/restored. */ -+#include -+ -+#if defined HAVE_S390_VX_ASM_SUPPORT -+/* Create variant of _dl_runtime_resolve/profile for z13 and newer. -+ The vector registers are saved/restored, too.*/ -+# define _dl_runtime_resolve _dl_runtime_resolve_vx -+# define _dl_runtime_profile _dl_runtime_profile_vx -+# define RESTORE_VRS -+# include - #endif -Index: glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h -=================================================================== ---- /dev/null -+++ glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h -@@ -0,0 +1,211 @@ -+/* PLT trampolines. s390x version. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile -+ * with the following linkage: -+ * r2 - r6 : parameter registers -+ * f0, f2, f4, f6 : floating point parameter registers -+ * v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers -+ * 48(r15), 56(r15) : PLT arguments PLT1, PLT2 -+ * 160(r15) : additional stack parameters -+ * The normal clobber rules for function calls apply: -+ * r0 - r5 : call clobbered -+ * r6 - r13 : call saved -+ * r14 : return address (call clobbered) -+ * r15 : stack pointer (call saved) -+ * f0 - f7 : call clobbered -+ * f8 - f15 : call saved -+ * v0 - v7 : bytes 0-7 overlap with f0-f7: call clobbered -+ bytes 8-15: call clobbered -+ * v8 - v15 : bytes 0-7 overlap with f8-f15: call saved -+ bytes 8-15: call clobbered -+ * v16 - v31 : call clobbered -+ */ -+ -+ .globl _dl_runtime_resolve -+ .type _dl_runtime_resolve, @function -+ cfi_startproc -+ .align 16 -+_dl_runtime_resolve: -+ stmg %r2,%r5,64(%r15) # save call-clobbered argument registers -+ cfi_offset (r2, -96) -+ cfi_offset (r3, -88) -+ cfi_offset (r4, -80) -+ cfi_offset (r5, -72) -+ std %f0,104(%r15) -+ cfi_offset (f0, -56) -+ std %f2,112(%r15) -+ cfi_offset (f2, -48) -+ std %f4,120(%r15) -+ cfi_offset (f4, -40) -+ std %f6,128(%r15) -+ cfi_offset (f6, -32) -+ stg %r14,96(15) -+ cfi_offset (r14, -64) -+ lmg %r2,%r3,48(%r15) # load args for fixup saved by PLT -+ lgr %r0,%r15 -+#ifdef RESTORE_VRS -+ aghi %r15,-288 # create stack frame -+ cfi_adjust_cfa_offset (288) -+ .machine push -+ .machine "z13" -+ vstm %v24,%v31,160(%r15)# store call-clobbered vector argument registers -+ cfi_offset (v24, -288) -+ cfi_offset (v25, -272) -+ cfi_offset (v26, -256) -+ cfi_offset (v27, -240) -+ cfi_offset (v28, -224) -+ cfi_offset (v29, -208) -+ cfi_offset (v30, -192) -+ cfi_offset (v31, -176) -+ .machine pop -+#else -+ aghi %r15,-160 # create stack frame -+ cfi_adjust_cfa_offset (160) -+#endif -+ stg %r0,0(%r15) # write backchain -+ brasl %r14,_dl_fixup # call _dl_fixup -+ lgr %r1,%r2 # function addr returned in r2 -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ vlm %v24,%v31,160(%r15)# restore vector registers -+ .machine pop -+ aghi %r15,288 # remove stack frame -+ cfi_adjust_cfa_offset (-288) -+#else -+ aghi %r15,160 # remove stack frame -+ cfi_adjust_cfa_offset (-160) -+#endif -+ lg %r14,96(%r15) # restore registers -+ ld %f0,104(%r15) -+ ld %f2,112(%r15) -+ ld %f4,120(%r15) -+ ld %f6,128(%r15) -+ lmg %r2,%r5,64(%r15) -+ br %r1 -+ cfi_endproc -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve -+ -+ -+#ifndef PROF -+ .globl _dl_runtime_profile -+ .type _dl_runtime_profile, @function -+ cfi_startproc -+ .align 16 -+_dl_runtime_profile: -+ stmg %r2,%r6,64(%r15) # save call-clobbered arg regs -+ cfi_offset (r2, -96) # + r6 needed as arg for -+ cfi_offset (r3, -88) # _dl_profile_fixup -+ cfi_offset (r4, -80) -+ cfi_offset (r5, -72) -+ cfi_offset (r6, -64) -+ std %f0,104(%r15) -+ cfi_offset (f0, -56) -+ std %f2,112(%r15) -+ cfi_offset (f2, -48) -+ std %f4,120(%r15) -+ cfi_offset (f4, -40) -+ std %f6,128(%r15) -+ cfi_offset (f6, -32) -+ stg %r12,24(%r15) # r12 is used as backup of r15 -+ cfi_offset (r12, -136) -+ stg %r14,32(%r15) -+ cfi_offset (r14, -128) -+ lgr %r12,%r15 # backup stack pointer -+ cfi_def_cfa_register (12) -+#ifdef RESTORE_VRS -+ aghi %r15,-288 # create stack frame -+ .machine push -+ .machine "z13" -+ vstm %v24,%v31,160(%r15)# store call-clobbered vector argument registers -+ cfi_offset (v24, -288) -+ cfi_offset (v25, -272) -+ cfi_offset (v26, -256) -+ cfi_offset (v27, -240) -+ cfi_offset (v28, -224) -+ cfi_offset (v29, -208) -+ cfi_offset (v30, -192) -+ cfi_offset (v31, -176) -+ .machine pop -+#else -+ aghi %r15,-160 # create stack frame -+#endif -+ stg %r12,0(%r15) # save backchain -+ lmg %r2,%r3,48(%r12) # load arguments saved by PLT -+ lgr %r4,%r14 # return address as third parameter -+ la %r5,64(%r12) # pointer to struct La_s390_64_regs -+ la %r6,40(%r12) # long int * framesize -+ brasl %r14,_dl_profile_fixup # call resolver -+ lgr %r1,%r2 # function addr returned in r2 -+ ld %f0,104(%r12) # restore call-clobbered arg fprs -+ ld %f2,112(%r12) -+ ld %f4,120(%r12) -+ ld %f6,128(%r12) -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ vlm %v24,%v31,160(%r15) # restore call-clobbered arg vrs -+ .machine pop -+#endif -+ lg %r0,40(%r12) # load framesize -+ ltgr %r0,%r0 -+ jnm 1f -+ -+ lmg %r2,%r6,64(%r12) # framesize < 0 means no pltexit call -+ # so we can do a tail call without -+ # copying the arg overflow area -+ lgr %r15,%r12 # remove stack frame -+ cfi_def_cfa_register (15) -+ lg %r14,32(%r15) # restore registers -+ lg %r12,24(%r15) -+ br %r1 # tail-call to resolved function -+ -+ cfi_def_cfa_register (12) -+1: jz 4f # framesize == 0 ? -+ aghi %r0,7 # align framesize to 8 -+ nill %r0,0xfff8 -+ slgr %r15,%r0 # make room for framesize bytes -+ stg %r12,0(%r15) # save backchain -+ la %r2,160(%r15) -+ la %r3,160(%r12) -+ srlg %r0,%r0,3 -+3: mvc 0(8,%r2),0(%r3) # copy additional parameters -+ la %r2,8(%r2) # depending on framesize -+ la %r3,8(%r3) -+ brctg %r0,3b -+4: lmg %r2,%r6,64(%r12) # restore call-clobbered arg gprs -+ basr %r14,%r1 # call resolved function -+ stg %r2,136(%r12) # store return values r2, f0 -+ std %f0,144(%r12) # to struct La_s390_64_retval -+ lmg %r2,%r3,48(%r12) # load arguments saved by PLT -+ la %r4,64(%r12) # pointer to struct La_s390_64_regs -+ la %r5,136(%r12) # pointer to struct La_s390_64_retval -+ brasl %r14,_dl_call_pltexit -+ -+ lgr %r15,%r12 # remove stack frame -+ cfi_def_cfa_register (15) -+ lg %r14,32(%r15) # restore registers -+ lg %r12,24(%r15) -+ lg %r2,136(%r15) # restore return values -+ ld %f0,144(%r15) -+ br %r14 # Jump back to caller -+ -+ cfi_endproc -+ .size _dl_runtime_profile, .-_dl_runtime_profile -+#endif diff --git a/0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch b/0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch deleted file mode 100644 index 879ce76..0000000 --- a/0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch +++ /dev/null @@ -1,371 +0,0 @@ -2016-04-01 Stefan Liebler - - * sysdeps/s390/bits/link.h: (La_s390_vr) New typedef. - (La_s390_32_regs): Append vector register lr_v24-lr_v31. - (La_s390_64_regs): Likewise. - (La_s390_32_retval): Append vector register lrv_v24. - (La_s390_64_retval): Likeweise. - * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_profile): - Handle extended structs La_s390_32_regs and La_s390_32_retval. - * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_profile): - Handle extended structs La_s390_64_regs and La_s390_64_retval. - -Index: glibc-2.23/sysdeps/s390/bits/link.h -=================================================================== ---- glibc-2.23.orig/sysdeps/s390/bits/link.h -+++ glibc-2.23/sysdeps/s390/bits/link.h -@@ -19,6 +19,9 @@ - # error "Never include directly; use instead." - #endif - -+#if defined HAVE_S390_VX_ASM_SUPPORT -+typedef char La_s390_vr[16]; -+#endif - - #if __ELF_NATIVE_CLASS == 32 - -@@ -32,6 +35,16 @@ typedef struct La_s390_32_regs - uint32_t lr_r6; - double lr_fp0; - double lr_fp2; -+# if defined HAVE_S390_VX_ASM_SUPPORT -+ La_s390_vr lr_v24; -+ La_s390_vr lr_v25; -+ La_s390_vr lr_v26; -+ La_s390_vr lr_v27; -+ La_s390_vr lr_v28; -+ La_s390_vr lr_v29; -+ La_s390_vr lr_v30; -+ La_s390_vr lr_v31; -+# endif - } La_s390_32_regs; - - /* Return values for calls from PLT on s390-32. */ -@@ -40,6 +53,9 @@ typedef struct La_s390_32_retval - uint32_t lrv_r2; - uint32_t lrv_r3; - double lrv_fp0; -+# if defined HAVE_S390_VX_ASM_SUPPORT -+ La_s390_vr lrv_v24; -+# endif - } La_s390_32_retval; - - -@@ -77,6 +93,16 @@ typedef struct La_s390_64_regs - double lr_fp2; - double lr_fp4; - double lr_fp6; -+# if defined HAVE_S390_VX_ASM_SUPPORT -+ La_s390_vr lr_v24; -+ La_s390_vr lr_v25; -+ La_s390_vr lr_v26; -+ La_s390_vr lr_v27; -+ La_s390_vr lr_v28; -+ La_s390_vr lr_v29; -+ La_s390_vr lr_v30; -+ La_s390_vr lr_v31; -+# endif - } La_s390_64_regs; - - /* Return values for calls from PLT on s390-64. */ -@@ -84,6 +110,9 @@ typedef struct La_s390_64_retval - { - uint64_t lrv_r2; - double lrv_fp0; -+# if defined HAVE_S390_VX_ASM_SUPPORT -+ La_s390_vr lrv_v24; -+# endif - } La_s390_64_retval; - - -Index: glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h -=================================================================== ---- glibc-2.23.orig/sysdeps/s390/s390-32/dl-trampoline.h -+++ glibc-2.23/sysdeps/s390/s390-32/dl-trampoline.h -@@ -112,28 +112,31 @@ _dl_runtime_resolve: - cfi_startproc - .align 16 - _dl_runtime_profile: -- stm %r2,%r6,32(%r15) # save registers -- cfi_offset (r2, -64) # + r6 needed as arg for -- cfi_offset (r3, -60) # _dl_profile_fixup -- cfi_offset (r4, -56) -- cfi_offset (r5, -52) -- cfi_offset (r6, -48) -- std %f0,56(%r15) -- cfi_offset (f0, -40) -- std %f2,64(%r15) -- cfi_offset (f2, -32) - st %r12,12(%r15) # r12 is used as backup of r15 - cfi_offset (r12, -84) - st %r14,16(%r15) - cfi_offset (r14, -80) - lr %r12,%r15 # backup stack pointer - cfi_def_cfa_register (12) -+ ahi %r15,-264 # create stack frame: -+ # 96 + sizeof(La_s390_32_regs) -+ st %r12,0(%r15) # save backchain -+ -+ stm %r2,%r6,96(%r15) # save registers -+ cfi_offset (r2, -264) # + r6 needed as arg for -+ cfi_offset (r3, -260) # _dl_profile_fixup -+ cfi_offset (r4, -256) -+ cfi_offset (r5, -252) -+ cfi_offset (r6, -248) -+ std %f0,120(%r15) -+ cfi_offset (f0, -240) -+ std %f2,128(%r15) -+ cfi_offset (f2, -232) - #ifdef RESTORE_VRS -- ahi %r15,-224 # create stack frame - .machine push - .machine "z13" - .machinemode "zarch_nohighgprs" -- vstm %v24,%v31,96(%r15) # store call-clobbered vr arguments -+ vstm %v24,%v31,136(%r15) # store call-clobbered vr arguments - cfi_offset (v24, -224) - cfi_offset (v25, -208) - cfi_offset (v26, -192) -@@ -143,31 +146,31 @@ _dl_runtime_profile: - cfi_offset (v30, -128) - cfi_offset (v31, -112) - .machine pop --#else -- ahi %r15,-96 # create stack frame - #endif -- st %r12,0(%r15) # save backchain -+ - lm %r2,%r3,24(%r12) # load arguments saved by PLT - lr %r4,%r14 # return address as third parameter - basr %r1,0 - 0: l %r14,6f-0b(%r1) -- la %r5,32(%r12) # pointer to struct La_s390_32_regs -+ la %r5,96(%r15) # pointer to struct La_s390_32_regs - la %r6,20(%r12) # long int * framesize - bas %r14,0(%r14,%r1) # call resolver - lr %r1,%r2 # function addr returned in r2 -- ld %f0,56(%r12) # restore call-clobbered arg fprs -- ld %f2,64(%r12) -+ ld %f0,120(%r15) # restore call-clobbered arg fprs -+ ld %f2,128(%r15) - #ifdef RESTORE_VRS - .machine push - .machine "z13" - .machinemode "zarch_nohighgprs" -- vlm %v24,%v31,96(%r15) # restore call-clobbered arg vrs -+ vlm %v24,%v31,136(%r15) # restore call-clobbered arg vrs - .machine pop - #endif - icm %r0,15,20(%r12) # load & test framesize - jnm 2f - -- lm %r2,%r6,32(%r12) -+ lm %r2,%r6,96(%r15) # framesize < 0 means no pltexit call -+ # so we can do a tail call without -+ # copying the arg overflow area - lr %r15,%r12 # remove stack frame - cfi_def_cfa_register (15) - l %r14,16(%r15) # restore registers -@@ -175,7 +178,9 @@ _dl_runtime_profile: - br %r1 # tail-call to the resolved function - - cfi_def_cfa_register (12) --2: jz 4f # framesize == 0 ? -+2: la %r4,96(%r15) # pointer to struct La_s390_32_regs -+ st %r4,32(%r12) -+ jz 4f # framesize == 0 ? - ahi %r0,7 # align framesize to 8 - lhi %r2,-8 - nr %r0,%r2 -@@ -188,24 +193,35 @@ _dl_runtime_profile: - la %r2,8(%r2) - la %r3,8(%r3) - brct %r0,3b --4: lm %r2,%r6,32(%r12) # load register parameters -+4: lm %r2,%r6,0(%r4) # load register parameters - basr %r14,%r1 # call resolved function -- stm %r2,%r3,72(%r12) # store return values r2, r3, f0 -- std %f0,80(%r12) # to struct La_s390_32_retval -- lm %r2,%r3,24(%r12) # load arguments saved by PLT -+ stm %r2,%r3,40(%r12) # store return values r2, r3, f0 -+ std %f0,48(%r12) # to struct La_s390_32_retval -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ vst %v24,56(%r12) # store return value v24 -+ .machine pop -+#endif -+ lm %r2,%r4,24(%r12) # r2, r3: load arguments saved by PLT -+ # r4: pointer to struct La_s390_32_regs - basr %r1,0 - 5: l %r14,7f-5b(%r1) -- la %r4,32(%r12) # pointer to struct La_s390_32_regs -- la %r5,72(%r12) # pointer to struct La_s390_32_retval -+ la %r5,40(%r12) # pointer to struct La_s390_32_retval - bas %r14,0(%r14,%r1) # call _dl_call_pltexit - - lr %r15,%r12 # remove stack frame - cfi_def_cfa_register (15) - l %r14,16(%r15) # restore registers - l %r12,12(%r15) -- l %r2,72(%r15) # restore return values -- l %r3,76(%r15) -- ld %f0,80(%r15) -+ lm %r2,%r3,40(%r15) # restore return values -+ ld %f0,48(%r15) -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ vl %v24,56(%r15) # restore return value v24 -+ .machine pop -+#endif - br %r14 - - 6: .long _dl_profile_fixup - 0b -Index: glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h -=================================================================== ---- glibc-2.23.orig/sysdeps/s390/s390-64/dl-trampoline.h -+++ glibc-2.23/sysdeps/s390/s390-64/dl-trampoline.h -@@ -109,31 +109,34 @@ _dl_runtime_resolve: - cfi_startproc - .align 16 - _dl_runtime_profile: -- stmg %r2,%r6,64(%r15) # save call-clobbered arg regs -- cfi_offset (r2, -96) # + r6 needed as arg for -- cfi_offset (r3, -88) # _dl_profile_fixup -- cfi_offset (r4, -80) -- cfi_offset (r5, -72) -- cfi_offset (r6, -64) -- std %f0,104(%r15) -- cfi_offset (f0, -56) -- std %f2,112(%r15) -- cfi_offset (f2, -48) -- std %f4,120(%r15) -- cfi_offset (f4, -40) -- std %f6,128(%r15) -- cfi_offset (f6, -32) - stg %r12,24(%r15) # r12 is used as backup of r15 - cfi_offset (r12, -136) - stg %r14,32(%r15) - cfi_offset (r14, -128) - lgr %r12,%r15 # backup stack pointer - cfi_def_cfa_register (12) -+ aghi %r15,-360 # create stack frame: -+ # 160 + sizeof(La_s390_64_regs) -+ stg %r12,0(%r15) # save backchain -+ -+ stmg %r2,%r6,160(%r15) # save call-clobbered arg regs -+ cfi_offset (r2, -360) # + r6 needed as arg for -+ cfi_offset (r3, -352) # _dl_profile_fixup -+ cfi_offset (r4, -344) -+ cfi_offset (r5, -336) -+ cfi_offset (r6, -328) -+ std %f0,200(%r15) -+ cfi_offset (f0, -320) -+ std %f2,208(%r15) -+ cfi_offset (f2, -312) -+ std %f4,216(%r15) -+ cfi_offset (f4, -304) -+ std %f6,224(%r15) -+ cfi_offset (f6, -296) - #ifdef RESTORE_VRS -- aghi %r15,-288 # create stack frame - .machine push - .machine "z13" -- vstm %v24,%v31,160(%r15)# store call-clobbered vector argument registers -+ vstm %v24,%v31,232(%r15) # store call-clobbered vector arguments - cfi_offset (v24, -288) - cfi_offset (v25, -272) - cfi_offset (v26, -256) -@@ -143,31 +146,28 @@ _dl_runtime_profile: - cfi_offset (v30, -192) - cfi_offset (v31, -176) - .machine pop --#else -- aghi %r15,-160 # create stack frame - #endif -- stg %r12,0(%r15) # save backchain - lmg %r2,%r3,48(%r12) # load arguments saved by PLT - lgr %r4,%r14 # return address as third parameter -- la %r5,64(%r12) # pointer to struct La_s390_64_regs -+ la %r5,160(%r15) # pointer to struct La_s390_64_regs - la %r6,40(%r12) # long int * framesize - brasl %r14,_dl_profile_fixup # call resolver - lgr %r1,%r2 # function addr returned in r2 -- ld %f0,104(%r12) # restore call-clobbered arg fprs -- ld %f2,112(%r12) -- ld %f4,120(%r12) -- ld %f6,128(%r12) -+ ld %f0,200(%r15) # restore call-clobbered arg fprs -+ ld %f2,208(%r15) -+ ld %f4,216(%r15) -+ ld %f6,224(%r15) - #ifdef RESTORE_VRS - .machine push - .machine "z13" -- vlm %v24,%v31,160(%r15) # restore call-clobbered arg vrs -+ vlm %v24,%v31,232(%r15) # restore call-clobbered arg vrs - .machine pop - #endif - lg %r0,40(%r12) # load framesize - ltgr %r0,%r0 - jnm 1f - -- lmg %r2,%r6,64(%r12) # framesize < 0 means no pltexit call -+ lmg %r2,%r6,160(%r15) # framesize < 0 means no pltexit call - # so we can do a tail call without - # copying the arg overflow area - lgr %r15,%r12 # remove stack frame -@@ -177,7 +177,9 @@ _dl_runtime_profile: - br %r1 # tail-call to resolved function - - cfi_def_cfa_register (12) --1: jz 4f # framesize == 0 ? -+1: la %r4,160(%r15) # pointer to struct La_s390_64_regs -+ stg %r4,64(%r12) -+ jz 4f # framesize == 0 ? - aghi %r0,7 # align framesize to 8 - nill %r0,0xfff8 - slgr %r15,%r0 # make room for framesize bytes -@@ -189,21 +191,33 @@ _dl_runtime_profile: - la %r2,8(%r2) # depending on framesize - la %r3,8(%r3) - brctg %r0,3b --4: lmg %r2,%r6,64(%r12) # restore call-clobbered arg gprs -+4: lmg %r2,%r6,0(%r4) # restore call-clobbered arg gprs - basr %r14,%r1 # call resolved function -- stg %r2,136(%r12) # store return values r2, f0 -- std %f0,144(%r12) # to struct La_s390_64_retval -- lmg %r2,%r3,48(%r12) # load arguments saved by PLT -- la %r4,64(%r12) # pointer to struct La_s390_64_regs -- la %r5,136(%r12) # pointer to struct La_s390_64_retval -+ stg %r2,72(%r12) # store return values r2, f0 -+ std %f0,80(%r12) # to struct La_s390_64_retval -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ vst %v24,88(%r12) # store return value v24 -+ .machine pop -+#endif -+ lmg %r2,%r4,48(%r12) # r2, r3: load arguments saved by PLT -+ # r4: pointer to struct La_s390_64_regs -+ la %r5,72(%r12) # pointer to struct La_s390_64_retval - brasl %r14,_dl_call_pltexit - - lgr %r15,%r12 # remove stack frame - cfi_def_cfa_register (15) - lg %r14,32(%r15) # restore registers - lg %r12,24(%r15) -- lg %r2,136(%r15) # restore return values -- ld %f0,144(%r15) -+ lg %r2,72(%r15) # restore return values -+ ld %f0,80(%r15) -+#ifdef RESTORE_VRS -+ .machine push -+ .machine "z13" -+ vl %v24,88(%r15) # restore return value v24 -+ .machine pop -+#endif - br %r14 # Jump back to caller - - cfi_endproc diff --git a/0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch b/0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch deleted file mode 100644 index f7ab7c7..0000000 --- a/0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch +++ /dev/null @@ -1,60 +0,0 @@ -2016-04-01 Florian Weimer - - [BZ #19879] - CVE-2016-3075 - * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Do not - copy name. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -9,7 +9,10 @@ Version 2.23.1 - - Security related changes: - -- [Add security related changes here] -+* The getnetbyname implementation in nss_dns had a potentially unbounded -+ alloca call (in the form of a call to strdupa), leading to a stack -+ overflow (stack exhaustion) and a crash if getnetbyname is invoked -+ on a very long name. (CVE-2016-3075) - - The following bugs are resolved with this release: - -@@ -17,9 +20,12 @@ The following bugs are resolved with thi - [19758] Or bit_Prefer_MAP_32BIT_EXEC in EXTRA_LD_ENVVARS - [19759] Don't inline mempcpy for x86 - [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String -- [19791] Assertion failure in res_query.c with un-connectable name server addresses -+ [19791] Assertion failure in res_query.c with un-connectable name server -+ addresses - [19792] MIPS: backtrace yields infinite backtrace with makecontext - [19822] libm.so install clobbers old version -+ [19879] network: nss_dns: Stack overflow in getnetbyname implementation -+ (CVE-2016-3075) - - - Version 2.23 -Index: glibc-2.23/resolv/nss_dns/dns-network.c -=================================================================== ---- glibc-2.23.orig/resolv/nss_dns/dns-network.c -+++ glibc-2.23/resolv/nss_dns/dns-network.c -@@ -118,17 +118,14 @@ _nss_dns_getnetbyname_r (const char *nam - } net_buffer; - querybuf *orig_net_buffer; - int anslen; -- char *qbuf; - enum nss_status status; - - if (__res_maybe_init (&_res, 0) == -1) - return NSS_STATUS_UNAVAIL; - -- qbuf = strdupa (name); -- - net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); - -- anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, -+ anslen = __libc_res_nsearch (&_res, name, C_IN, T_PTR, net_buffer.buf->buf, - 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); - if (anslen < 0) - { diff --git a/0022-configure-fix-test-usage.patch b/0022-configure-fix-test-usage.patch deleted file mode 100644 index dcde656..0000000 --- a/0022-configure-fix-test-usage.patch +++ /dev/null @@ -1,77 +0,0 @@ -2016-04-09 Mike Frysinger - - * sysdeps/i386/configure.ac: Change == to = when calling test. - * sysdeps/x86_64/configure.ac: Likewise. - * sysdeps/i386/configure: Regenerated. - * sysdeps/x86_64/configure: Likewise. - -Index: glibc-2.23/sysdeps/i386/configure -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/configure -+++ glibc-2.23/sysdeps/i386/configure -@@ -72,7 +72,7 @@ rm -f conftest* - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_mpx" >&5 - $as_echo "$libc_cv_asm_mpx" >&6; } --if test $libc_cv_asm_mpx == yes; then -+if test $libc_cv_asm_mpx = yes; then - $as_echo "#define HAVE_MPX_SUPPORT 1" >>confdefs.h - - fi -Index: glibc-2.23/sysdeps/i386/configure.ac -=================================================================== ---- glibc-2.23.orig/sysdeps/i386/configure.ac -+++ glibc-2.23/sysdeps/i386/configure.ac -@@ -41,7 +41,7 @@ else - libc_cv_asm_mpx=no - fi - rm -f conftest*]) --if test $libc_cv_asm_mpx == yes; then -+if test $libc_cv_asm_mpx = yes; then - AC_DEFINE(HAVE_MPX_SUPPORT) - fi - -Index: glibc-2.23/sysdeps/x86_64/configure -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/configure -+++ glibc-2.23/sysdeps/x86_64/configure -@@ -24,7 +24,7 @@ rm -f conftest* - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_avx512" >&5 - $as_echo "$libc_cv_asm_avx512" >&6; } --if test $libc_cv_asm_avx512 == yes; then -+if test $libc_cv_asm_avx512 = yes; then - $as_echo "#define HAVE_AVX512_ASM_SUPPORT 1" >>confdefs.h - - fi -@@ -77,7 +77,7 @@ rm -f conftest* - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_mpx" >&5 - $as_echo "$libc_cv_asm_mpx" >&6; } --if test $libc_cv_asm_mpx == yes; then -+if test $libc_cv_asm_mpx = yes; then - $as_echo "#define HAVE_MPX_SUPPORT 1" >>confdefs.h - - fi -Index: glibc-2.23/sysdeps/x86_64/configure.ac -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/configure.ac -+++ glibc-2.23/sysdeps/x86_64/configure.ac -@@ -13,7 +13,7 @@ else - libc_cv_asm_avx512=no - fi - rm -f conftest*]) --if test $libc_cv_asm_avx512 == yes; then -+if test $libc_cv_asm_avx512 = yes; then - AC_DEFINE(HAVE_AVX512_ASM_SUPPORT) - fi - -@@ -37,7 +37,7 @@ else - libc_cv_asm_mpx=no - fi - rm -f conftest*]) --if test $libc_cv_asm_mpx == yes; then -+if test $libc_cv_asm_mpx = yes; then - AC_DEFINE(HAVE_MPX_SUPPORT) - fi - diff --git a/0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch b/0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch deleted file mode 100644 index ebba8d2..0000000 --- a/0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch +++ /dev/null @@ -1,73 +0,0 @@ -2016-04-20 Yvan Roux - - * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'. - * nis/nis_call.c (nis_server_cache_add): Likewise. - -Index: glibc-2.23/nis/nis_call.c -=================================================================== ---- glibc-2.23.orig/nis/nis_call.c -+++ glibc-2.23/nis/nis_call.c -@@ -680,16 +680,18 @@ nis_server_cache_add (const_nis_name nam - /* Choose which entry should be evicted from the cache. */ - loc = &nis_server_cache[0]; - if (*loc != NULL) -- for (i = 1; i < 16; ++i) -- if (nis_server_cache[i] == NULL) -- { -+ { -+ for (i = 1; i < 16; ++i) -+ if (nis_server_cache[i] == NULL) -+ { -+ loc = &nis_server_cache[i]; -+ break; -+ } -+ else if ((*loc)->uses > nis_server_cache[i]->uses -+ || ((*loc)->uses == nis_server_cache[i]->uses -+ && (*loc)->expires > nis_server_cache[i]->expires)) - loc = &nis_server_cache[i]; -- break; -- } -- else if ((*loc)->uses > nis_server_cache[i]->uses -- || ((*loc)->uses == nis_server_cache[i]->uses -- && (*loc)->expires > nis_server_cache[i]->expires)) -- loc = &nis_server_cache[i]; -+ } - old = *loc; - *loc = new; - -Index: glibc-2.23/stdlib/setenv.c -=================================================================== ---- glibc-2.23.orig/stdlib/setenv.c -+++ glibc-2.23/stdlib/setenv.c -@@ -278,18 +278,20 @@ unsetenv (const char *name) - ep = __environ; - if (ep != NULL) - while (*ep != NULL) -- if (!strncmp (*ep, name, len) && (*ep)[len] == '=') -- { -- /* Found it. Remove this pointer by moving later ones back. */ -- char **dp = ep; -+ { -+ if (!strncmp (*ep, name, len) && (*ep)[len] == '=') -+ { -+ /* Found it. Remove this pointer by moving later ones back. */ -+ char **dp = ep; - -- do -- dp[0] = dp[1]; -- while (*dp++); -- /* Continue the loop in case NAME appears again. */ -- } -- else -- ++ep; -+ do -+ dp[0] = dp[1]; -+ while (*dp++); -+ /* Continue the loop in case NAME appears again. */ -+ } -+ else -+ ++ep; -+ } - - UNLOCK; - diff --git a/0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch b/0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch deleted file mode 100644 index b4b7a9c..0000000 --- a/0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch +++ /dev/null @@ -1,21 +0,0 @@ -2016-03-29 Florian Weimer - - [BZ #19837] - * nss/nss_db/db-XXX.c (_nss_db_getENTNAME_r): Propagate ERANGE - error if parse_line fails. - -Index: glibc-2.23/nss/nss_db/db-XXX.c -=================================================================== ---- glibc-2.23.orig/nss/nss_db/db-XXX.c -+++ glibc-2.23/nss/nss_db/db-XXX.c -@@ -288,8 +288,8 @@ CONCAT(_nss_db_get,ENTNAME_r) (struct ST - } - if (err < 0) - { -- H_ERRNO_SET (HOST_NOT_FOUND); -- status = NSS_STATUS_NOTFOUND; -+ H_ERRNO_SET (NETDB_INTERNAL); -+ status = NSS_STATUS_TRYAGAIN; - break; - } - diff --git a/0025-getnameinfo-Do-not-preserve-errno.patch b/0025-getnameinfo-Do-not-preserve-errno.patch deleted file mode 100644 index 7bebd96..0000000 --- a/0025-getnameinfo-Do-not-preserve-errno.patch +++ /dev/null @@ -1,48 +0,0 @@ -2016-04-28 Florian Weimer - - * inet/getnameinfo.c (getnameinfo): Do not preserve errno. - -Index: glibc-2.23/inet/getnameinfo.c -=================================================================== ---- glibc-2.23.orig/inet/getnameinfo.c -+++ glibc-2.23/inet/getnameinfo.c -@@ -175,7 +175,6 @@ getnameinfo (const struct sockaddr *sa, - socklen_t hostlen, char *serv, socklen_t servlen, - int flags) - { -- int serrno = errno; - int herrno; - struct hostent th; - int ok = 0; -@@ -326,10 +325,7 @@ getnameinfo (const struct sockaddr *sa, - if (!ok) - { - if (flags & NI_NAMEREQD) -- { -- __set_errno (serrno); -- return EAI_NONAME; -- } -+ return EAI_NONAME; - else - { - const char *c; -@@ -406,10 +402,7 @@ getnameinfo (const struct sockaddr *sa, - }; - - if (flags & NI_NAMEREQD) -- { -- __set_errno (serrno); -- return EAI_NONAME; -- } -+ return EAI_NONAME; - - strncpy (host, "localhost", hostlen); - break; -@@ -463,7 +456,6 @@ getnameinfo (const struct sockaddr *sa, - host[hostlen-1] = 0; - if (serv && (servlen > 0)) - serv[servlen-1] = 0; -- errno = serrno; - return 0; - } - libc_hidden_def (getnameinfo) diff --git a/0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch b/0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch deleted file mode 100644 index 0d83128..0000000 --- a/0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch +++ /dev/null @@ -1,635 +0,0 @@ -2016-04-29 Florian Weimer - - [BZ #19642] - * inet/getnameinfo.c (gni_host_inet_name, gni_host_inet_numeric) - (gni_host_inet, gni_host_local, gni_host, gni_serv_inet) - (gni_serv_local, gni_serv): New functions extracted from - getnameinfo. - (getnameinfo): Call gni_host and gni_serv to perform the - processing. Always free scratch buffer. - -Index: glibc-2.23/inet/getnameinfo.c -=================================================================== ---- glibc-2.23.orig/inet/getnameinfo.c -+++ glibc-2.23/inet/getnameinfo.c -@@ -1,3 +1,21 @@ -+/* Convert socket address to string using Name Service Switch modules. -+ Copyright (C) 1997-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ - /* The Inner Net License, Version 2.00 - - The author(s) grant permission for redistribution and use in source and -@@ -169,19 +187,323 @@ nrl_domainname (void) - return domain; - }; - -+/* Convert host name, AF_INET/AF_INET6 case, name only. */ -+static int -+gni_host_inet_name (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *host, socklen_t hostlen, int flags) -+{ -+ int herrno; -+ struct hostent th; -+ struct hostent *h = NULL; -+ if (sa->sa_family == AF_INET6) -+ { -+ while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in6 *) sa)->sin6_addr), -+ sizeof(struct in6_addr), -+ AF_INET6, &th, -+ tmpbuf->data, tmpbuf->length, -+ &h, &herrno)) -+ if (herrno == NETDB_INTERNAL && errno == ERANGE) -+ { -+ if (!scratch_buffer_grow (tmpbuf)) -+ { -+ __set_h_errno (herrno); -+ return EAI_MEMORY; -+ } -+ } -+ else -+ break; -+ } -+ else -+ { -+ while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in *)sa)->sin_addr), -+ sizeof(struct in_addr), -+ AF_INET, &th, -+ tmpbuf->data, tmpbuf->length, -+ &h, &herrno)) -+ if (herrno == NETDB_INTERNAL && errno == ERANGE) -+ { -+ if (!scratch_buffer_grow (tmpbuf)) -+ { -+ __set_h_errno (herrno); -+ return EAI_MEMORY; -+ } -+ } -+ else -+ break; -+ } -+ -+ if (h == NULL) -+ { -+ if (herrno == NETDB_INTERNAL) -+ { -+ __set_h_errno (herrno); -+ return EAI_SYSTEM; -+ } -+ if (herrno == TRY_AGAIN) -+ { -+ __set_h_errno (herrno); -+ return EAI_AGAIN; -+ } -+ } -+ -+ if (h) -+ { -+ char *c; -+ if ((flags & NI_NOFQDN) -+ && (c = nrl_domainname ()) -+ && (c = strstr (h->h_name, c)) -+ && (c != h->h_name) && (*(--c) == '.')) -+ /* Terminate the string after the prefix. */ -+ *c = '\0'; -+ -+#ifdef HAVE_LIBIDN -+ /* If requested, convert from the IDN format. */ -+ if (flags & NI_IDN) -+ { -+ int idn_flags = 0; -+ if (flags & NI_IDN_ALLOW_UNASSIGNED) -+ idn_flags |= IDNA_ALLOW_UNASSIGNED; -+ if (flags & NI_IDN_USE_STD3_ASCII_RULES) -+ idn_flags |= IDNA_USE_STD3_ASCII_RULES; -+ -+ char *out; -+ int rc = __idna_to_unicode_lzlz (h->h_name, &out, -+ idn_flags); -+ if (rc != IDNA_SUCCESS) -+ { -+ if (rc == IDNA_MALLOC_ERROR) -+ return EAI_MEMORY; -+ if (rc == IDNA_DLOPEN_ERROR) -+ return EAI_SYSTEM; -+ return EAI_IDN_ENCODE; -+ } -+ -+ if (out != h->h_name) -+ { -+ h->h_name = strdupa (out); -+ free (out); -+ } -+ } -+#endif -+ -+ size_t len = strlen (h->h_name) + 1; -+ if (len > hostlen) -+ return EAI_OVERFLOW; -+ -+ memcpy (host, h->h_name, len); -+ -+ return 0; -+ } -+ -+ return EAI_NONAME; -+} -+ -+/* Convert host name, AF_INET/AF_INET6 case, numeric conversion. */ -+static int -+gni_host_inet_numeric (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *host, socklen_t hostlen, int flags) -+{ -+ const char *c; -+ if (sa->sa_family == AF_INET6) -+ { -+ const struct sockaddr_in6 *sin6p; -+ uint32_t scopeid; -+ -+ sin6p = (const struct sockaddr_in6 *) sa; -+ -+ c = inet_ntop (AF_INET6, -+ (const void *) &sin6p->sin6_addr, host, hostlen); -+ scopeid = sin6p->sin6_scope_id; -+ if (scopeid != 0) -+ { -+ /* Buffer is >= IFNAMSIZ+1. */ -+ char scopebuf[IFNAMSIZ + 1]; -+ char *scopeptr; -+ int ni_numericscope = 0; -+ size_t real_hostlen = __strnlen (host, hostlen); -+ size_t scopelen = 0; -+ -+ scopebuf[0] = SCOPE_DELIMITER; -+ scopebuf[1] = '\0'; -+ scopeptr = &scopebuf[1]; -+ -+ if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr) -+ || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr)) -+ { -+ if (if_indextoname (scopeid, scopeptr) == NULL) -+ ++ni_numericscope; -+ else -+ scopelen = strlen (scopebuf); -+ } -+ else -+ ++ni_numericscope; -+ -+ if (ni_numericscope) -+ scopelen = 1 + __snprintf (scopeptr, -+ (scopebuf -+ + sizeof scopebuf -+ - scopeptr), -+ "%u", scopeid); -+ -+ if (real_hostlen + scopelen + 1 > hostlen) -+ /* Signal the buffer is too small. This is -+ what inet_ntop does. */ -+ c = NULL; -+ else -+ memcpy (host + real_hostlen, scopebuf, scopelen + 1); -+ } -+ } -+ else -+ c = inet_ntop (AF_INET, -+ (const void *) &(((const struct sockaddr_in *) sa)->sin_addr), -+ host, hostlen); -+ if (c == NULL) -+ return EAI_OVERFLOW; -+ return 0; -+} -+ -+static int -+gni_host_inet (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *host, socklen_t hostlen, int flags) -+{ -+ if (!(flags & NI_NUMERICHOST)) -+ { -+ int result = gni_host_inet_name -+ (tmpbuf, sa, addrlen, host, hostlen, flags); -+ if (result != EAI_NONAME) -+ return result; -+ } -+ -+ if (flags & NI_NAMEREQD) -+ return EAI_NONAME; -+ else -+ return gni_host_inet_numeric -+ (tmpbuf, sa, addrlen, host, hostlen, flags); -+} -+ -+static int -+gni_host_local (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *host, socklen_t hostlen, int flags) -+{ -+ -+ if (!(flags & NI_NUMERICHOST)) -+ { -+ struct utsname utsname; -+ -+ if (!uname (&utsname)) -+ { -+ strncpy (host, utsname.nodename, hostlen); -+ return 0; -+ } -+ } -+ -+ if (flags & NI_NAMEREQD) -+ return EAI_NONAME; -+ -+ strncpy (host, "localhost", hostlen); -+ return 0; -+} -+ -+static int -+gni_host (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *host, socklen_t hostlen, int flags) -+{ -+ switch (sa->sa_family) -+ { -+ case AF_INET: -+ case AF_INET6: -+ return gni_host_inet (tmpbuf, sa, addrlen, host, hostlen, flags); -+ -+ case AF_LOCAL: -+ return gni_host_local (tmpbuf, sa, addrlen, host, hostlen, flags); -+ -+ default: -+ return EAI_FAMILY; -+ } -+} -+ -+/* Convert service to string, AF_INET and AF_INET6 variant. */ -+static int -+gni_serv_inet (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *serv, socklen_t servlen, int flags) -+{ -+ _Static_assert -+ (offsetof (struct sockaddr_in, sin_port) -+ == offsetof (struct sockaddr_in6, sin6_port) -+ && sizeof (((struct sockaddr_in) {}).sin_port) == sizeof (in_port_t) -+ && sizeof (((struct sockaddr_in6) {}).sin6_port) == sizeof (in_port_t), -+ "AF_INET and AF_INET6 port consistency"); -+ if (!(flags & NI_NUMERICSERV)) -+ { -+ struct servent *s, ts; -+ int e; -+ while ((e = __getservbyport_r (((const struct sockaddr_in *) sa)->sin_port, -+ ((flags & NI_DGRAM) -+ ? "udp" : "tcp"), &ts, -+ tmpbuf->data, tmpbuf->length, &s))) -+ { -+ if (e == ERANGE) -+ { -+ if (!scratch_buffer_grow (tmpbuf)) -+ return EAI_MEMORY; -+ } -+ else -+ break; -+ } -+ if (s) -+ { -+ strncpy (serv, s->s_name, servlen); -+ return 0; -+ } -+ /* Fall through to numeric conversion. */ -+ } -+ if (__snprintf (serv, servlen, "%d", -+ ntohs (((const struct sockaddr_in *) sa)->sin_port)) -+ + 1 > servlen) -+ return EAI_OVERFLOW; -+ return 0; -+} -+ -+/* Convert service to string, AF_LOCAL variant. */ -+static int -+gni_serv_local (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *serv, socklen_t servlen, int flags) -+{ -+ strncpy (serv, ((const struct sockaddr_un *) sa)->sun_path, servlen); -+ return 0; -+} -+ -+/* Convert service to string, dispatching to the implementations -+ above. */ -+static int -+gni_serv (struct scratch_buffer *tmpbuf, -+ const struct sockaddr *sa, socklen_t addrlen, -+ char *serv, socklen_t servlen, int flags) -+{ -+ switch (sa->sa_family) -+ { -+ case AF_INET: -+ case AF_INET6: -+ return gni_serv_inet (tmpbuf, sa, addrlen, serv, servlen, flags); -+ case AF_LOCAL: -+ return gni_serv_local (tmpbuf, sa, addrlen, serv, servlen, flags); -+ default: -+ return EAI_FAMILY; -+ } -+} - - int - getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, - socklen_t hostlen, char *serv, socklen_t servlen, - int flags) - { -- int herrno; -- struct hostent th; -- int ok = 0; -- struct scratch_buffer tmpbuf; -- -- scratch_buffer_init (&tmpbuf); -- - if (flags & ~(NI_NUMERICHOST|NI_NUMERICSERV|NI_NOFQDN|NI_NAMEREQD|NI_DGRAM - #ifdef HAVE_LIBIDN - |NI_IDN|NI_IDN_ALLOW_UNASSIGNED|NI_IDN_USE_STD3_ASCII_RULES -@@ -213,249 +535,34 @@ getnameinfo (const struct sockaddr *sa, - return EAI_FAMILY; - } - -- if (host != NULL && hostlen > 0) -- switch (sa->sa_family) -- { -- case AF_INET: -- case AF_INET6: -- if (!(flags & NI_NUMERICHOST)) -- { -- struct hostent *h = NULL; -- if (sa->sa_family == AF_INET6) -- { -- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in6 *) sa)->sin6_addr), -- sizeof(struct in6_addr), -- AF_INET6, &th, -- tmpbuf.data, tmpbuf.length, -- &h, &herrno)) -- if (herrno == NETDB_INTERNAL && errno == ERANGE) -- { -- if (!scratch_buffer_grow (&tmpbuf)) -- { -- __set_h_errno (herrno); -- return EAI_MEMORY; -- } -- } -- else -- break; -- } -- else -- { -- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in *)sa)->sin_addr), -- sizeof(struct in_addr), -- AF_INET, &th, -- tmpbuf.data, tmpbuf.length, -- &h, &herrno)) -- if (herrno == NETDB_INTERNAL && errno == ERANGE) -- { -- if (!scratch_buffer_grow (&tmpbuf)) -- { -- __set_h_errno (herrno); -- return EAI_MEMORY; -- } -- } -- else -- break; -- } -- -- if (h == NULL) -- { -- if (herrno == NETDB_INTERNAL) -- { -- __set_h_errno (herrno); -- return EAI_SYSTEM; -- } -- if (herrno == TRY_AGAIN) -- { -- __set_h_errno (herrno); -- return EAI_AGAIN; -- } -- } -- -- if (h) -- { -- char *c; -- if ((flags & NI_NOFQDN) -- && (c = nrl_domainname ()) -- && (c = strstr (h->h_name, c)) -- && (c != h->h_name) && (*(--c) == '.')) -- /* Terminate the string after the prefix. */ -- *c = '\0'; -- --#ifdef HAVE_LIBIDN -- /* If requested, convert from the IDN format. */ -- if (flags & NI_IDN) -- { -- int idn_flags = 0; -- if (flags & NI_IDN_ALLOW_UNASSIGNED) -- idn_flags |= IDNA_ALLOW_UNASSIGNED; -- if (flags & NI_IDN_USE_STD3_ASCII_RULES) -- idn_flags |= IDNA_USE_STD3_ASCII_RULES; -- -- char *out; -- int rc = __idna_to_unicode_lzlz (h->h_name, &out, -- idn_flags); -- if (rc != IDNA_SUCCESS) -- { -- if (rc == IDNA_MALLOC_ERROR) -- return EAI_MEMORY; -- if (rc == IDNA_DLOPEN_ERROR) -- return EAI_SYSTEM; -- return EAI_IDN_ENCODE; -- } -- -- if (out != h->h_name) -- { -- h->h_name = strdupa (out); -- free (out); -- } -- } --#endif -- -- size_t len = strlen (h->h_name) + 1; -- if (len > hostlen) -- return EAI_OVERFLOW; -- -- memcpy (host, h->h_name, len); -- -- ok = 1; -- } -- } -- -- if (!ok) -- { -- if (flags & NI_NAMEREQD) -- return EAI_NONAME; -- else -- { -- const char *c; -- if (sa->sa_family == AF_INET6) -- { -- const struct sockaddr_in6 *sin6p; -- uint32_t scopeid; -- -- sin6p = (const struct sockaddr_in6 *) sa; -- -- c = inet_ntop (AF_INET6, -- (const void *) &sin6p->sin6_addr, host, hostlen); -- scopeid = sin6p->sin6_scope_id; -- if (scopeid != 0) -- { -- /* Buffer is >= IFNAMSIZ+1. */ -- char scopebuf[IFNAMSIZ + 1]; -- char *scopeptr; -- int ni_numericscope = 0; -- size_t real_hostlen = __strnlen (host, hostlen); -- size_t scopelen = 0; -- -- scopebuf[0] = SCOPE_DELIMITER; -- scopebuf[1] = '\0'; -- scopeptr = &scopebuf[1]; -- -- if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr) -- || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr)) -- { -- if (if_indextoname (scopeid, scopeptr) == NULL) -- ++ni_numericscope; -- else -- scopelen = strlen (scopebuf); -- } -- else -- ++ni_numericscope; -- -- if (ni_numericscope) -- scopelen = 1 + __snprintf (scopeptr, -- (scopebuf -- + sizeof scopebuf -- - scopeptr), -- "%u", scopeid); -- -- if (real_hostlen + scopelen + 1 > hostlen) -- /* Signal the buffer is too small. This is -- what inet_ntop does. */ -- c = NULL; -- else -- memcpy (host + real_hostlen, scopebuf, scopelen + 1); -- } -- } -- else -- c = inet_ntop (AF_INET, -- (const void *) &(((const struct sockaddr_in *) sa)->sin_addr), -- host, hostlen); -- if (c == NULL) -- return EAI_OVERFLOW; -- } -- ok = 1; -- } -- break; -- -- case AF_LOCAL: -- if (!(flags & NI_NUMERICHOST)) -- { -- struct utsname utsname; -- -- if (!uname (&utsname)) -- { -- strncpy (host, utsname.nodename, hostlen); -- break; -- }; -- }; -- -- if (flags & NI_NAMEREQD) -- return EAI_NONAME; -- -- strncpy (host, "localhost", hostlen); -- break; -+ struct scratch_buffer tmpbuf; -+ scratch_buffer_init (&tmpbuf); - -- default: -- return EAI_FAMILY; -+ if (host != NULL && hostlen > 0) -+ { -+ int result = gni_host (&tmpbuf, sa, addrlen, host, hostlen, flags); -+ if (result != 0) -+ { -+ scratch_buffer_free (&tmpbuf); -+ return result; -+ } - } - - if (serv && (servlen > 0)) -- switch (sa->sa_family) -- { -- case AF_INET: -- case AF_INET6: -- if (!(flags & NI_NUMERICSERV)) -- { -- struct servent *s, ts; -- int e; -- while ((e = __getservbyport_r (((const struct sockaddr_in *) sa)->sin_port, -- ((flags & NI_DGRAM) -- ? "udp" : "tcp"), &ts, -- tmpbuf.data, tmpbuf.length, &s))) -- { -- if (e == ERANGE) -- { -- if (!scratch_buffer_grow (&tmpbuf)) -- return EAI_MEMORY; -- } -- else -- break; -- } -- if (s) -- { -- strncpy (serv, s->s_name, servlen); -- break; -- } -- } -- -- if (__snprintf (serv, servlen, "%d", -- ntohs (((const struct sockaddr_in *) sa)->sin_port)) -- + 1 > servlen) -- return EAI_OVERFLOW; -- -- break; -- -- case AF_LOCAL: -- strncpy (serv, ((const struct sockaddr_un *) sa)->sun_path, servlen); -- break; -+ { -+ int result = gni_serv (&tmpbuf, sa, addrlen, serv, servlen, flags); -+ if (result != 0) -+ { -+ scratch_buffer_free (&tmpbuf); -+ return result; -+ } - } - - if (host && (hostlen > 0)) - host[hostlen-1] = 0; - if (serv && (servlen > 0)) - serv[servlen-1] = 0; -+ scratch_buffer_free (&tmpbuf); - return 0; - } - libc_hidden_def (getnameinfo) diff --git a/0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch b/0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch deleted file mode 100644 index 73de233..0000000 --- a/0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch +++ /dev/null @@ -1,119 +0,0 @@ -2016-05-04 Florian Weimer - - * inet/getnameinfo.c (gni_host_inet_name): Use temporaries to - avoid long lines. - (gni_host_inet_numeric): Likewise. Reduce scope of local - variables. - (gni_host_inet, gni_host_local): Add comment. - (gni_host): Add comment. Use temporary to avoid long lines. - -Index: glibc-2.23/inet/getnameinfo.c -=================================================================== ---- glibc-2.23.orig/inet/getnameinfo.c -+++ glibc-2.23/inet/getnameinfo.c -@@ -198,10 +198,9 @@ gni_host_inet_name (struct scratch_buffe - struct hostent *h = NULL; - if (sa->sa_family == AF_INET6) - { -- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in6 *) sa)->sin6_addr), -- sizeof(struct in6_addr), -- AF_INET6, &th, -- tmpbuf->data, tmpbuf->length, -+ const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; -+ while (__gethostbyaddr_r (&sin6p->sin6_addr, sizeof(struct in6_addr), -+ AF_INET6, &th, tmpbuf->data, tmpbuf->length, - &h, &herrno)) - if (herrno == NETDB_INTERNAL && errno == ERANGE) - { -@@ -216,10 +215,9 @@ gni_host_inet_name (struct scratch_buffe - } - else - { -- while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in *)sa)->sin_addr), -- sizeof(struct in_addr), -- AF_INET, &th, -- tmpbuf->data, tmpbuf->length, -+ const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; -+ while (__gethostbyaddr_r (&sinp->sin_addr, sizeof(struct in_addr), -+ AF_INET, &th, tmpbuf->data, tmpbuf->length, - &h, &herrno)) - if (herrno == NETDB_INTERNAL && errno == ERANGE) - { -@@ -308,14 +306,10 @@ gni_host_inet_numeric (struct scratch_bu - const char *c; - if (sa->sa_family == AF_INET6) - { -- const struct sockaddr_in6 *sin6p; -- uint32_t scopeid; -- -- sin6p = (const struct sockaddr_in6 *) sa; -- -+ const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; - c = inet_ntop (AF_INET6, - (const void *) &sin6p->sin6_addr, host, hostlen); -- scopeid = sin6p->sin6_scope_id; -+ uint32_t scopeid = sin6p->sin6_scope_id; - if (scopeid != 0) - { - /* Buffer is >= IFNAMSIZ+1. */ -@@ -356,14 +350,16 @@ gni_host_inet_numeric (struct scratch_bu - } - } - else -- c = inet_ntop (AF_INET, -- (const void *) &(((const struct sockaddr_in *) sa)->sin_addr), -- host, hostlen); -+ { -+ const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; -+ c = inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen); -+ } - if (c == NULL) - return EAI_OVERFLOW; - return 0; - } - -+/* Convert AF_INET or AF_INET6 socket address, host part. */ - static int - gni_host_inet (struct scratch_buffer *tmpbuf, - const struct sockaddr *sa, socklen_t addrlen, -@@ -384,6 +380,7 @@ gni_host_inet (struct scratch_buffer *tm - (tmpbuf, sa, addrlen, host, hostlen, flags); - } - -+/* Convert AF_LOCAL socket address, host part. */ - static int - gni_host_local (struct scratch_buffer *tmpbuf, - const struct sockaddr *sa, socklen_t addrlen, -@@ -408,6 +405,7 @@ gni_host_local (struct scratch_buffer *t - return 0; - } - -+/* Convert the host part of an AF_LOCAK socket address. */ - static int - gni_host (struct scratch_buffer *tmpbuf, - const struct sockaddr *sa, socklen_t addrlen, -@@ -439,11 +437,12 @@ gni_serv_inet (struct scratch_buffer *tm - && sizeof (((struct sockaddr_in) {}).sin_port) == sizeof (in_port_t) - && sizeof (((struct sockaddr_in6) {}).sin6_port) == sizeof (in_port_t), - "AF_INET and AF_INET6 port consistency"); -+ const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; - if (!(flags & NI_NUMERICSERV)) - { - struct servent *s, ts; - int e; -- while ((e = __getservbyport_r (((const struct sockaddr_in *) sa)->sin_port, -+ while ((e = __getservbyport_r (sinp->sin_port, - ((flags & NI_DGRAM) - ? "udp" : "tcp"), &ts, - tmpbuf->data, tmpbuf->length, &s))) -@@ -463,9 +462,7 @@ gni_serv_inet (struct scratch_buffer *tm - } - /* Fall through to numeric conversion. */ - } -- if (__snprintf (serv, servlen, "%d", -- ntohs (((const struct sockaddr_in *) sa)->sin_port)) -- + 1 > servlen) -+ if (__snprintf (serv, servlen, "%d", ntohs (sinp->sin_port)) + 1 > servlen) - return EAI_OVERFLOW; - return 0; - } diff --git a/0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch b/0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch deleted file mode 100644 index 6aef3f3..0000000 --- a/0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch +++ /dev/null @@ -1,47 +0,0 @@ -2016-05-04 Florian Weimer - - * inet/getnameinfo.c (gni_host_inet_numeric): Return EAI_OVERFLOW - in case of inet_ntop failure. - -Index: glibc-2.23/inet/getnameinfo.c -=================================================================== ---- glibc-2.23.orig/inet/getnameinfo.c -+++ glibc-2.23/inet/getnameinfo.c -@@ -303,12 +303,12 @@ gni_host_inet_numeric (struct scratch_bu - const struct sockaddr *sa, socklen_t addrlen, - char *host, socklen_t hostlen, int flags) - { -- const char *c; - if (sa->sa_family == AF_INET6) - { - const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; -- c = inet_ntop (AF_INET6, -- (const void *) &sin6p->sin6_addr, host, hostlen); -+ if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) -+ return EAI_OVERFLOW; -+ - uint32_t scopeid = sin6p->sin6_scope_id; - if (scopeid != 0) - { -@@ -344,7 +344,7 @@ gni_host_inet_numeric (struct scratch_bu - if (real_hostlen + scopelen + 1 > hostlen) - /* Signal the buffer is too small. This is - what inet_ntop does. */ -- c = NULL; -+ return EAI_OVERFLOW; - else - memcpy (host + real_hostlen, scopebuf, scopelen + 1); - } -@@ -352,10 +352,9 @@ gni_host_inet_numeric (struct scratch_bu - else - { - const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; -- c = inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen); -+ if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) -+ return EAI_OVERFLOW; - } -- if (c == NULL) -- return EAI_OVERFLOW; - return 0; - } - diff --git a/0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch b/0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch deleted file mode 100644 index a08d7b3..0000000 --- a/0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch +++ /dev/null @@ -1,176 +0,0 @@ -2016-05-04 Florian Weimer - - [BZ #19787] - * inet/getnameinfo.c (check_sprintf_result): New function. - (CHECKED_SNPRINTF): New macro. - (gni_host_inet_numeric): Use CHECKED_SNPRINTF to write the scope - to the host buffer. - (gni_host_local): Use checked_copy to copy the host name. - (gni_serv_inet): Use CHECKED_SNPRINTF to write the service name. - (gni_serv_local): Use checked_copy to copy the service name. - (getnameinfo): Remove unnecessary truncation of result buffers. - -Index: glibc-2.23/inet/getnameinfo.c -=================================================================== ---- glibc-2.23.orig/inet/getnameinfo.c -+++ glibc-2.23/inet/getnameinfo.c -@@ -187,6 +187,39 @@ nrl_domainname (void) - return domain; - }; - -+/* Copy a string to a destination buffer with length checking. Return -+ EAI_OVERFLOW if the buffer is not large enough, and 0 on -+ success. */ -+static int -+checked_copy (char *dest, size_t destlen, const char *source) -+{ -+ size_t source_length = strlen (source); -+ if (source_length + 1 > destlen) -+ return EAI_OVERFLOW; -+ memcpy (dest, source, source_length + 1); -+ return 0; -+} -+ -+/* Helper function for CHECKED_SNPRINTF below. */ -+static int -+check_sprintf_result (int result, size_t destlen) -+{ -+ if (result < 0) -+ return EAI_SYSTEM; -+ if ((size_t) result >= destlen) -+ /* If ret == destlen, there was no room for the terminating NUL -+ character. */ -+ return EAI_OVERFLOW; -+ return 0; -+} -+ -+/* Format a string in the destination buffer. Return 0 on success, -+ EAI_OVERFLOW in case the buffer is too small, or EAI_SYSTEM on any -+ other error. */ -+#define CHECKED_SNPRINTF(dest, destlen, format, ...) \ -+ check_sprintf_result \ -+ (__snprintf (dest, destlen, format, __VA_ARGS__), destlen) -+ - /* Convert host name, AF_INET/AF_INET6 case, name only. */ - static int - gni_host_inet_name (struct scratch_buffer *tmpbuf, -@@ -312,41 +345,22 @@ gni_host_inet_numeric (struct scratch_bu - uint32_t scopeid = sin6p->sin6_scope_id; - if (scopeid != 0) - { -- /* Buffer is >= IFNAMSIZ+1. */ -- char scopebuf[IFNAMSIZ + 1]; -- char *scopeptr; -- int ni_numericscope = 0; -- size_t real_hostlen = __strnlen (host, hostlen); -- size_t scopelen = 0; -- -- scopebuf[0] = SCOPE_DELIMITER; -- scopebuf[1] = '\0'; -- scopeptr = &scopebuf[1]; -+ size_t used_hostlen = __strnlen (host, hostlen); -+ /* Location of the scope string in the host buffer. */ -+ char *scope_start = host + used_hostlen; -+ size_t scope_length = hostlen - used_hostlen; - - if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr) - || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr)) - { -- if (if_indextoname (scopeid, scopeptr) == NULL) -- ++ni_numericscope; -- else -- scopelen = strlen (scopebuf); -+ char scopebuf[IFNAMSIZ]; -+ if (if_indextoname (scopeid, scopebuf) != NULL) -+ return CHECKED_SNPRINTF -+ (scope_start, scope_length, -+ "%c%s", SCOPE_DELIMITER, scopebuf); - } -- else -- ++ni_numericscope; -- -- if (ni_numericscope) -- scopelen = 1 + __snprintf (scopeptr, -- (scopebuf -- + sizeof scopebuf -- - scopeptr), -- "%u", scopeid); -- -- if (real_hostlen + scopelen + 1 > hostlen) -- /* Signal the buffer is too small. This is -- what inet_ntop does. */ -- return EAI_OVERFLOW; -- else -- memcpy (host + real_hostlen, scopebuf, scopelen + 1); -+ return CHECKED_SNPRINTF -+ (scope_start, scope_length, "%c%u", SCOPE_DELIMITER, scopeid); - } - } - else -@@ -385,23 +399,17 @@ gni_host_local (struct scratch_buffer *t - const struct sockaddr *sa, socklen_t addrlen, - char *host, socklen_t hostlen, int flags) - { -- - if (!(flags & NI_NUMERICHOST)) - { - struct utsname utsname; -- -- if (!uname (&utsname)) -- { -- strncpy (host, utsname.nodename, hostlen); -- return 0; -- } -+ if (uname (&utsname) == 0) -+ return checked_copy (host, hostlen, utsname.nodename); - } - - if (flags & NI_NAMEREQD) - return EAI_NONAME; - -- strncpy (host, "localhost", hostlen); -- return 0; -+ return checked_copy (host, hostlen, "localhost"); - } - - /* Convert the host part of an AF_LOCAK socket address. */ -@@ -455,15 +463,10 @@ gni_serv_inet (struct scratch_buffer *tm - break; - } - if (s) -- { -- strncpy (serv, s->s_name, servlen); -- return 0; -- } -+ return checked_copy (serv, servlen, s->s_name); - /* Fall through to numeric conversion. */ - } -- if (__snprintf (serv, servlen, "%d", ntohs (sinp->sin_port)) + 1 > servlen) -- return EAI_OVERFLOW; -- return 0; -+ return CHECKED_SNPRINTF (serv, servlen, "%d", ntohs (sinp->sin_port)); - } - - /* Convert service to string, AF_LOCAL variant. */ -@@ -472,8 +475,8 @@ gni_serv_local (struct scratch_buffer *t - const struct sockaddr *sa, socklen_t addrlen, - char *serv, socklen_t servlen, int flags) - { -- strncpy (serv, ((const struct sockaddr_un *) sa)->sun_path, servlen); -- return 0; -+ return checked_copy -+ (serv, servlen, ((const struct sockaddr_un *) sa)->sun_path); - } - - /* Convert service to string, dispatching to the implementations -@@ -554,10 +557,6 @@ getnameinfo (const struct sockaddr *sa, - } - } - -- if (host && (hostlen > 0)) -- host[hostlen-1] = 0; -- if (serv && (servlen > 0)) -- serv[servlen-1] = 0; - scratch_buffer_free (&tmpbuf); - return 0; - } diff --git a/0030-hesiod-Remove-RCS-keywords.patch b/0030-hesiod-Remove-RCS-keywords.patch deleted file mode 100644 index 5f3e7cc..0000000 --- a/0030-hesiod-Remove-RCS-keywords.patch +++ /dev/null @@ -1,48 +0,0 @@ -2016-05-02 Florian Weimer - - * hesiod/hesiod.h: Remove RCS keyword. - * hesiod/hesiod_p.h: Likewise. - * hesiod/hesiod.c: Likewise. - -Index: glibc-2.23/hesiod/hesiod.c -=================================================================== ---- glibc-2.23.orig/hesiod/hesiod.c -+++ glibc-2.23/hesiod/hesiod.c -@@ -1,7 +1,3 @@ --#if defined(LIBC_SCCS) && !defined(lint) --static const char rcsid[] = "$BINDId: hesiod.c,v 1.21 2000/02/28 14:51:08 vixie Exp $"; --#endif -- - /* - * Copyright (c) 1996,1999 by Internet Software Consortium. - * -Index: glibc-2.23/hesiod/hesiod.h -=================================================================== ---- glibc-2.23.orig/hesiod/hesiod.h -+++ glibc-2.23/hesiod/hesiod.h -@@ -19,10 +19,6 @@ - * This file is primarily maintained by and . - */ - --/* -- * $BINDId: hesiod.h,v 1.7 1999/01/08 19:22:45 vixie Exp $ -- */ -- - #ifndef _HESIOD_H_INCLUDED - #define _HESIOD_H_INCLUDED - -Index: glibc-2.23/hesiod/hesiod_p.h -=================================================================== ---- glibc-2.23.orig/hesiod/hesiod_p.h -+++ glibc-2.23/hesiod/hesiod_p.h -@@ -20,10 +20,6 @@ - */ - - /* -- * $BINDId: hesiod_p.h,v 1.9 1999/01/08 19:24:39 vixie Exp $ -- */ -- --/* - * hesiod_p.h -- private definitions for the hesiod library - */ - diff --git a/0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch b/0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch deleted file mode 100644 index 7266c57..0000000 --- a/0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch +++ /dev/null @@ -1,440 +0,0 @@ -2016-05-02 Florian Weimer - - [BZ #19573] - * hesiod/Makefile (libnss_hesiod-routines): Remove hesiod-init. - * hesiod/nss_hesiod/hesiod-init.c: Remove file. - * hesiod/nss_hesiod/nss_hesiod.h: Likewise. - * hesiod/hesiod.h (__hesiod_res_get, __hesiod_res_set): Remove. - (hesiod_init, hesiod_end, hesiod_to_bind, hesiod_resolve) - (hesiod_free_list): Mark as hidden. - * hesiod/hesiod_p (struct hesiod_p): Remove res, free_res, - res_set, res_get. - * hesiod/hesiod.c: Remove unnecessary forward declarations. - (init, __hesiod_res_get, __hesiod_res_set): Remove. - (hesiod_init): Remove obsolete res_ninit call. - (hesiod_end): Do not free resolver state. Do not invoke callback. - (hesiod_bind): Do not call init. - (get_txt_records): Use res_mkquery, res_send instead of - res_nmkquery, res_nsend. - * hesiod/nss_hesiod/hesiod-grp.c (lookup): Call hesiod_init - instead of _nss_hesiod_init. - (_nss_hesiod_initgroups_dyn): Likewise. - * hesiod/nss_hesiod/hesiod-proto.c (lookup): Likewise. - * hesiod/nss_hesiod/hesiod-pwd.c (lookup): Likewise. - * hesiod/nss_hesiod/hesiod-service.c (lookup): Likewise. - -Index: glibc-2.23/hesiod/Makefile -=================================================================== ---- glibc-2.23.orig/hesiod/Makefile -+++ glibc-2.23/hesiod/Makefile -@@ -28,7 +28,7 @@ extra-libs-others = $(extra-libs) - subdir-dirs = nss_hesiod - vpath %.c nss_hesiod - --libnss_hesiod-routines := hesiod hesiod-grp hesiod-init hesiod-proto \ -+libnss_hesiod-routines := hesiod hesiod-grp hesiod-proto \ - hesiod-pwd hesiod-service - # Build only shared library - libnss_hesiod-inhibit-o = $(filter-out .os,$(object-suffixes)) -Index: glibc-2.23/hesiod/hesiod.c -=================================================================== ---- glibc-2.23.orig/hesiod/hesiod.c -+++ glibc-2.23/hesiod/hesiod.c -@@ -1,3 +1,20 @@ -+/* Copyright (C) 1997-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ - /* - * Copyright (c) 1996,1999 by Internet Software Consortium. - * -@@ -48,18 +65,9 @@ - - /* Forward */ - --int hesiod_init(void **context); --void hesiod_end(void *context); --char * hesiod_to_bind(void *context, const char *name, -- const char *type); --char ** hesiod_resolve(void *context, const char *name, -- const char *type); --void hesiod_free_list(void *context, char **list); -- - static int parse_config_file(struct hesiod_p *ctx, const char *filename); - static char ** get_txt_records(struct hesiod_p *ctx, int class, - const char *name); --static int init(struct hesiod_p *ctx); - - /* Public */ - -@@ -78,7 +86,6 @@ hesiod_init(void **context) { - - ctx->LHS = NULL; - ctx->RHS = NULL; -- ctx->res = NULL; - /* Set default query classes. */ - ctx->classes[0] = C_IN; - ctx->classes[1] = C_HS; -@@ -127,11 +134,6 @@ hesiod_init(void **context) { - goto cleanup; - } - --#if 0 -- if (res_ninit(ctx->res) < 0) -- goto cleanup; --#endif -- - *context = ctx; - return (0); - -@@ -148,12 +150,8 @@ hesiod_end(void *context) { - struct hesiod_p *ctx = (struct hesiod_p *) context; - int save_errno = errno; - -- if (ctx->res) -- res_nclose(ctx->res); - free(ctx->RHS); - free(ctx->LHS); -- if (ctx->res && ctx->free_res) -- (*ctx->free_res)(ctx->res); - free(ctx); - __set_errno(save_errno); - } -@@ -228,10 +226,6 @@ hesiod_resolve(void *context, const char - - if (bindname == NULL) - return (NULL); -- if (init(ctx) == -1) { -- free(bindname); -- return (NULL); -- } - - retvec = get_txt_records(ctx, ctx->classes[0], bindname); - -@@ -361,13 +355,13 @@ get_txt_records(struct hesiod_p *ctx, in - /* - * Construct the query and send it. - */ -- n = res_nmkquery(ctx->res, QUERY, name, class, T_TXT, NULL, 0, -+ n = res_mkquery(QUERY, name, class, T_TXT, NULL, 0, - NULL, qbuf, MAX_HESRESP); - if (n < 0) { - __set_errno(EMSGSIZE); - return (NULL); - } -- n = res_nsend(ctx->res, qbuf, n, abuf, MAX_HESRESP); -+ n = res_send(qbuf, n, abuf, MAX_HESRESP); - if (n < 0) { - __set_errno(ECONNREFUSED); - return (NULL); -@@ -460,44 +454,3 @@ get_txt_records(struct hesiod_p *ctx, in - free(list); - return (NULL); - } -- --struct __res_state * --__hesiod_res_get(void *context) { -- struct hesiod_p *ctx = context; -- -- if (!ctx->res) { -- struct __res_state *res; -- res = (struct __res_state *)calloc(1, sizeof *res); -- if (res == NULL) -- return (NULL); -- __hesiod_res_set(ctx, res, free); -- } -- -- return (ctx->res); --} -- --void --__hesiod_res_set(void *context, struct __res_state *res, -- void (*free_res)(void *)) { -- struct hesiod_p *ctx = context; -- -- if (ctx->res && ctx->free_res) { -- res_nclose(ctx->res); -- (*ctx->free_res)(ctx->res); -- } -- -- ctx->res = res; -- ctx->free_res = free_res; --} -- --static int --init(struct hesiod_p *ctx) { -- -- if (!ctx->res && !__hesiod_res_get(ctx)) -- return (-1); -- -- if (__res_maybe_init (ctx->res, 0) == -1) -- return (-1); -- -- return (0); --} -Index: glibc-2.23/hesiod/hesiod.h -=================================================================== ---- glibc-2.23.orig/hesiod/hesiod.h -+++ glibc-2.23/hesiod/hesiod.h -@@ -1,3 +1,20 @@ -+/* Copyright (C) 1997-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ - /* - * Copyright (c) 1996,1999 by Internet Software Consortium. - * -@@ -22,15 +39,12 @@ - #ifndef _HESIOD_H_INCLUDED - #define _HESIOD_H_INCLUDED - --int hesiod_init (void **context); --void hesiod_end (void *context); -+int hesiod_init (void **context) attribute_hidden; -+void hesiod_end (void *context) attribute_hidden; - char * hesiod_to_bind (void *context, const char *name, -- const char *type); -+ const char *type) attribute_hidden; - char ** hesiod_resolve (void *context, const char *name, -- const char *type); --void hesiod_free_list (void *context, char **list); --struct __res_state * __hesiod_res_get (void *context); --void __hesiod_res_set (void *context, struct __res_state *, -- void (*)(void *)); -+ const char *type) attribute_hidden; -+void hesiod_free_list (void *context, char **list) attribute_hidden; - - #endif /*_HESIOD_H_INCLUDED*/ -Index: glibc-2.23/hesiod/hesiod_p.h -=================================================================== ---- glibc-2.23.orig/hesiod/hesiod_p.h -+++ glibc-2.23/hesiod/hesiod_p.h -@@ -1,3 +1,20 @@ -+/* Copyright (C) 1997-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ - /* - * Copyright (c) 1996,1999 by Internet Software Consortium. - * -@@ -32,11 +49,6 @@ - struct hesiod_p { - char * LHS; /* normally ".ns" */ - char * RHS; /* AKA the default hesiod domain */ -- struct __res_state * res; /* resolver context */ -- void (*free_res)(void *); -- void (*res_set)(struct hesiod_p *, struct __res_state *, -- void (*)(void *)); -- struct __res_state * (*res_get)(struct hesiod_p *); - int classes[2]; /* The class search order. */ - }; - -Index: glibc-2.23/hesiod/nss_hesiod/hesiod-grp.c -=================================================================== ---- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-grp.c -+++ glibc-2.23/hesiod/nss_hesiod/hesiod-grp.c -@@ -26,8 +26,6 @@ - #include - #include - --#include "nss_hesiod.h" -- - /* Get the declaration of the parser function. */ - #define ENTNAME grent - #define STRUCTURE group -@@ -58,8 +56,7 @@ lookup (const char *name, const char *ty - size_t len; - int olderr = errno; - -- context = _nss_hesiod_init (); -- if (context == NULL) -+ if (hesiod_init (&context) < 0) - return NSS_STATUS_UNAVAIL; - - list = hesiod_resolve (context, name, type); -@@ -179,8 +176,7 @@ _nss_hesiod_initgroups_dyn (const char * - gid_t *groups = *groupsp; - int save_errno; - -- context = _nss_hesiod_init (); -- if (context == NULL) -+ if (hesiod_init (&context) < 0) - return NSS_STATUS_UNAVAIL; - - list = hesiod_resolve (context, user, "grplist"); -Index: glibc-2.23/hesiod/nss_hesiod/hesiod-init.c -=================================================================== ---- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-init.c -+++ /dev/null -@@ -1,38 +0,0 @@ --/* Copyright (C) 2000-2016 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Mark Kettenis , 2000. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include /* Needs to come before . */ --#include --#include --#include -- --#include "nss_hesiod.h" -- --void * --_nss_hesiod_init (void) --{ -- void *context; -- -- if (hesiod_init (&context) == -1) -- return NULL; -- -- /* Use the default (per-thread) resolver state. */ -- __hesiod_res_set (context, &_res, NULL); -- -- return context; --} -Index: glibc-2.23/hesiod/nss_hesiod/hesiod-proto.c -=================================================================== ---- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-proto.c -+++ glibc-2.23/hesiod/nss_hesiod/hesiod-proto.c -@@ -25,8 +25,6 @@ - #include - #include - --#include "nss_hesiod.h" -- - /* Declare a parser for Hesiod protocol entries. Although the format - of the entries is identical to those in /etc/protocols, here is no - predefined parser for us to use. */ -@@ -68,8 +66,7 @@ lookup (const char *name, const char *ty - int found; - int olderr = errno; - -- context = _nss_hesiod_init (); -- if (context == NULL) -+ if (hesiod_init (&context) < 0) - return NSS_STATUS_UNAVAIL; - - list = hesiod_resolve (context, name, type); -Index: glibc-2.23/hesiod/nss_hesiod/hesiod-pwd.c -=================================================================== ---- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-pwd.c -+++ glibc-2.23/hesiod/nss_hesiod/hesiod-pwd.c -@@ -24,8 +24,6 @@ - #include - #include - --#include "nss_hesiod.h" -- - /* Get the declaration of the parser function. */ - #define ENTNAME pwent - #define STRUCTURE passwd -@@ -56,8 +54,7 @@ lookup (const char *name, const char *ty - size_t len; - int olderr = errno; - -- context = _nss_hesiod_init (); -- if (context == NULL) -+ if (hesiod_init (&context) < 0) - return NSS_STATUS_UNAVAIL; - - list = hesiod_resolve (context, name, type); -Index: glibc-2.23/hesiod/nss_hesiod/hesiod-service.c -=================================================================== ---- glibc-2.23.orig/hesiod/nss_hesiod/hesiod-service.c -+++ glibc-2.23/hesiod/nss_hesiod/hesiod-service.c -@@ -25,8 +25,6 @@ - #include - #include - --#include "nss_hesiod.h" -- - /* Hesiod uses a format for service entries that differs from the - traditional format. We therefore declare our own parser. */ - -@@ -69,8 +67,7 @@ lookup (const char *name, const char *ty - int found; - int olderr = errno; - -- context = _nss_hesiod_init (); -- if (context == NULL) -+ if (hesiod_init (&context) < 0) - return NSS_STATUS_UNAVAIL; - - list = hesiod_resolve (context, name, type); -Index: glibc-2.23/hesiod/nss_hesiod/nss_hesiod.h -=================================================================== ---- glibc-2.23.orig/hesiod/nss_hesiod/nss_hesiod.h -+++ /dev/null -@@ -1,20 +0,0 @@ --/* Copyright (C) 2000-2016 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Mark Kettenis , 2000. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --/* Initialize a Hesiod context. */ --extern void *_nss_hesiod_init (void); diff --git a/0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch b/0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch deleted file mode 100644 index 9f99ef8..0000000 --- a/0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch +++ /dev/null @@ -1,19 +0,0 @@ -2016-05-02 Florian Weimer - - [BZ #20031] - * hesiod/hesiod.c (get_txt_records): Return error if TXT record is - completely empty. - -Index: glibc-2.23/hesiod/hesiod.c -=================================================================== ---- glibc-2.23.orig/hesiod/hesiod.c -+++ glibc-2.23/hesiod/hesiod.c -@@ -411,7 +411,7 @@ get_txt_records(struct hesiod_p *ctx, in - cp += INT16SZ + INT32SZ; /* skip the ttl, too */ - rr.dlen = ns_get16(cp); - cp += INT16SZ; -- if (cp + rr.dlen > eom) { -+ if (rr.dlen == 0 || cp + rr.dlen > eom) { - __set_errno(EMSGSIZE); - goto cleanup; - } diff --git a/0033-malloc-Remove-NO_THREADS.patch b/0033-malloc-Remove-NO_THREADS.patch deleted file mode 100644 index 3d15822..0000000 --- a/0033-malloc-Remove-NO_THREADS.patch +++ /dev/null @@ -1,73 +0,0 @@ -2016-02-19 Florian Weimer - - * sysdeps/generic/malloc-machine.h: Assume mutex_init is always - available. Do not define NO_THREADS. - * malloc/malloc.c: Do not check NO_THREADS. - * malloc/arena.c: Likewise. - -Index: glibc-2.23/malloc/arena.c -=================================================================== ---- glibc-2.23.orig/malloc/arena.c -+++ glibc-2.23/malloc/arena.c -@@ -130,8 +130,6 @@ int __malloc_initialized = -1; - - /**************************************************************************/ - --#ifndef NO_THREADS -- - /* atfork support. */ - - static void *(*save_malloc_hook)(size_t __size, const void *); -@@ -330,7 +328,6 @@ ptmalloc_unlock_all2 (void) - - # define ptmalloc_unlock_all2 ptmalloc_unlock_all - # endif --#endif /* !NO_THREADS */ - - /* Initialization routine. */ - #include -Index: glibc-2.23/malloc/malloc.c -=================================================================== ---- glibc-2.23.orig/malloc/malloc.c -+++ glibc-2.23/malloc/malloc.c -@@ -1074,10 +1074,8 @@ static void* realloc_check(void* oldme - const void *caller); - static void* memalign_check(size_t alignment, size_t bytes, - const void *caller); --#ifndef NO_THREADS - static void* malloc_atfork(size_t sz, const void *caller); - static void free_atfork(void* mem, const void *caller); --#endif - - /* ------------------ MMAP support ------------------ */ - -Index: glibc-2.23/sysdeps/generic/malloc-machine.h -=================================================================== ---- glibc-2.23.orig/sysdeps/generic/malloc-machine.h -+++ glibc-2.23/sysdeps/generic/malloc-machine.h -@@ -22,25 +22,6 @@ - - #include - --#ifndef mutex_init /* No threads, provide dummy macros */ -- --# define NO_THREADS -- --/* The mutex functions used to do absolutely nothing, i.e. lock, -- trylock and unlock would always just return 0. However, even -- without any concurrently active threads, a mutex can be used -- legitimately as an `in use' flag. To make the code that is -- protected by a mutex async-signal safe, these macros would have to -- be based on atomic test-and-set operations, for example. */ --typedef int mutex_t; -- --# define mutex_init(m) (*(m) = 0) --# define mutex_lock(m) ({ *(m) = 1; 0; }) --# define mutex_trylock(m) (*(m) ? 1 : ((*(m) = 1), 0)) --# define mutex_unlock(m) (*(m) = 0) -- --#endif /* !defined mutex_init */ -- - #ifndef atomic_full_barrier - # define atomic_full_barrier() __asm ("" ::: "memory") - #endif diff --git a/0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch b/0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch deleted file mode 100644 index 0cf4861..0000000 --- a/0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch +++ /dev/null @@ -1,26 +0,0 @@ -2016-03-22 Samuel Thibault - - * malloc/Makefile ($(objpfx)tst-malloc-backtrace, - $(objpfx)tst-malloc-thread-exit, $(objpfx)tst-malloc-thread-fail): Use - $(shared-thread-library) instead of hardcoding the path to libpthread. - -Index: glibc-2.23/malloc/Makefile -=================================================================== ---- glibc-2.23.orig/malloc/Makefile -+++ glibc-2.23/malloc/Makefile -@@ -46,12 +46,9 @@ extra-libs-others = $(extra-libs) - libmemusage-routines = memusage - libmemusage-inhibit-o = $(filter-out .os,$(object-suffixes)) - --$(objpfx)tst-malloc-backtrace: $(common-objpfx)nptl/libpthread.so \ -- $(common-objpfx)nptl/libpthread_nonshared.a --$(objpfx)tst-malloc-thread-exit: $(common-objpfx)nptl/libpthread.so \ -- $(common-objpfx)nptl/libpthread_nonshared.a --$(objpfx)tst-malloc-thread-fail: $(common-objpfx)nptl/libpthread.so \ -- $(common-objpfx)nptl/libpthread_nonshared.a -+$(objpfx)tst-malloc-backtrace: $(shared-thread-library) -+$(objpfx)tst-malloc-thread-exit: $(shared-thread-library) -+$(objpfx)tst-malloc-thread-fail: $(shared-thread-library) - - # These should be removed by `make clean'. - extra-objs = mcheck-init.o libmcheck.a diff --git a/0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch b/0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch deleted file mode 100644 index 4663e79..0000000 --- a/0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch +++ /dev/null @@ -1,568 +0,0 @@ -2016-04-14 Florian Weimer - - [BZ #19431] - Run the malloc fork handler as late as possible to avoid deadlocks. - * malloc/malloc-internal.h: New file. - * malloc/malloc.c: Include it. - * malloc/arena.c (ATFORK_MEM): Remove. - (__malloc_fork_lock_parent): Rename from ptmalloc_lock_all. - Update comment. - (__malloc_fork_unlock_parent): Rename from ptmalloc_unlock_all. - (__malloc_fork_unlock_child): Rename from ptmalloc_unlock_all2. - Remove outdated comment. - (ptmalloc_init): Do not call thread_atfork. Remove - thread_atfork_static. - * malloc/tst-malloc-fork-deadlock.c: New file. - * Makefile (tests): Add tst-malloc-fork-deadlock. - (tst-malloc-fork-deadlock): Link against libpthread. - * manual/memory.texi (Aligned Memory Blocks): Update safety - annotation comments. - * sysdeps/nptl/fork.c (__libc_fork): Call - __malloc_fork_lock_parent, __malloc_fork_unlock_parent, - __malloc_fork_unlock_child. - * sysdeps/mach/hurd/fork.c (__fork): Likewise. - -Index: glibc-2.23/malloc/Makefile -=================================================================== ---- glibc-2.23.orig/malloc/Makefile -+++ glibc-2.23/malloc/Makefile -@@ -29,7 +29,7 @@ tests := mallocbug tst-malloc tst-valloc - tst-malloc-usable tst-realloc tst-posix_memalign \ - tst-pvalloc tst-memalign tst-mallopt tst-scratch_buffer \ - tst-malloc-backtrace tst-malloc-thread-exit \ -- tst-malloc-thread-fail -+ tst-malloc-thread-fail tst-malloc-fork-deadlock - test-srcs = tst-mtrace - - routines = malloc morecore mcheck mtrace obstack \ -@@ -49,6 +49,7 @@ libmemusage-inhibit-o = $(filter-out .os - $(objpfx)tst-malloc-backtrace: $(shared-thread-library) - $(objpfx)tst-malloc-thread-exit: $(shared-thread-library) - $(objpfx)tst-malloc-thread-fail: $(shared-thread-library) -+$(objpfx)tst-malloc-fork-deadlock: $(shared-thread-library) - - # These should be removed by `make clean'. - extra-objs = mcheck-init.o libmcheck.a -Index: glibc-2.23/malloc/arena.c -=================================================================== ---- glibc-2.23.orig/malloc/arena.c -+++ glibc-2.23/malloc/arena.c -@@ -136,10 +136,6 @@ static void *(*save_malloc_hook)(size_t - static void (*save_free_hook) (void *__ptr, const void *); - static void *save_arena; - --# ifdef ATFORK_MEM --ATFORK_MEM; --# endif -- - /* Magic value for the thread-specific arena pointer when - malloc_atfork() is in use. */ - -@@ -205,14 +201,14 @@ free_atfork (void *mem, const void *call - /* Counter for number of times the list is locked by the same thread. */ - static unsigned int atfork_recursive_cntr; - --/* The following two functions are registered via thread_atfork() to -- make sure that the mutexes remain in a consistent state in the -- fork()ed version of a thread. Also adapt the malloc and free hooks -- temporarily, because the `atfork' handler mechanism may use -- malloc/free internally (e.g. in LinuxThreads). */ -+/* The following three functions are called around fork from a -+ multi-threaded process. We do not use the general fork handler -+ mechanism to make sure that our handlers are the last ones being -+ called, so that other fork handlers can use the malloc -+ subsystem. */ - --static void --ptmalloc_lock_all (void) -+void -+__malloc_fork_lock_parent (void) - { - mstate ar_ptr; - -@@ -220,7 +216,7 @@ ptmalloc_lock_all (void) - return; - - /* We do not acquire free_list_lock here because we completely -- reconstruct free_list in ptmalloc_unlock_all2. */ -+ reconstruct free_list in __malloc_fork_unlock_child. */ - - if (mutex_trylock (&list_lock)) - { -@@ -245,7 +241,7 @@ ptmalloc_lock_all (void) - __free_hook = free_atfork; - /* Only the current thread may perform malloc/free calls now. - save_arena will be reattached to the current thread, in -- ptmalloc_lock_all, so save_arena->attached_threads is not -+ __malloc_fork_lock_parent, so save_arena->attached_threads is not - updated. */ - save_arena = thread_arena; - thread_arena = ATFORK_ARENA_PTR; -@@ -253,8 +249,8 @@ out: - ++atfork_recursive_cntr; - } - --static void --ptmalloc_unlock_all (void) -+void -+__malloc_fork_unlock_parent (void) - { - mstate ar_ptr; - -@@ -265,8 +261,8 @@ ptmalloc_unlock_all (void) - return; - - /* Replace ATFORK_ARENA_PTR with save_arena. -- save_arena->attached_threads was not changed in ptmalloc_lock_all -- and is still correct. */ -+ save_arena->attached_threads was not changed in -+ __malloc_fork_lock_parent and is still correct. */ - thread_arena = save_arena; - __malloc_hook = save_malloc_hook; - __free_hook = save_free_hook; -@@ -280,15 +276,8 @@ ptmalloc_unlock_all (void) - (void) mutex_unlock (&list_lock); - } - --# ifdef __linux__ -- --/* In NPTL, unlocking a mutex in the child process after a -- fork() is currently unsafe, whereas re-initializing it is safe and -- does not leak resources. Therefore, a special atfork handler is -- installed for the child. */ -- --static void --ptmalloc_unlock_all2 (void) -+void -+__malloc_fork_unlock_child (void) - { - mstate ar_ptr; - -@@ -324,11 +313,6 @@ ptmalloc_unlock_all2 (void) - atfork_recursive_cntr = 0; - } - --# else -- --# define ptmalloc_unlock_all2 ptmalloc_unlock_all --# endif -- - /* Initialization routine. */ - #include - extern char **_environ; -@@ -397,7 +381,6 @@ ptmalloc_init (void) - #endif - - thread_arena = &main_arena; -- thread_atfork (ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2); - const char *s = NULL; - if (__glibc_likely (_environ != NULL)) - { -@@ -472,14 +455,6 @@ ptmalloc_init (void) - __malloc_initialized = 1; - } - --/* There are platforms (e.g. Hurd) with a link-time hook mechanism. */ --#ifdef thread_atfork_static --thread_atfork_static (ptmalloc_lock_all, ptmalloc_unlock_all, \ -- ptmalloc_unlock_all2) --#endif -- -- -- - /* Managing heaps and arenas (for concurrent threads) */ - - #if MALLOC_DEBUG > 1 -@@ -828,7 +803,8 @@ _int_new_arena (size_t size) - limit is reached). At this point, some arena has to be attached - to two threads. We could acquire the arena lock before list_lock - to make it less likely that reused_arena picks this new arena, -- but this could result in a deadlock with ptmalloc_lock_all. */ -+ but this could result in a deadlock with -+ __malloc_fork_lock_parent. */ - - (void) mutex_lock (&a->mutex); - -Index: glibc-2.23/malloc/malloc-internal.h -=================================================================== ---- /dev/null -+++ glibc-2.23/malloc/malloc-internal.h -@@ -0,0 +1,32 @@ -+/* Internal declarations for malloc, for use within libc. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public License as -+ published by the Free Software Foundation; either version 2.1 of the -+ License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; see the file COPYING.LIB. If -+ not, see . */ -+ -+#ifndef _MALLOC_PRIVATE_H -+#define _MALLOC_PRIVATE_H -+ -+/* Called in the parent process before a fork. */ -+void __malloc_fork_lock_parent (void) internal_function attribute_hidden; -+ -+/* Called in the parent process after a fork. */ -+void __malloc_fork_unlock_parent (void) internal_function attribute_hidden; -+ -+/* Called in the child process after a fork. */ -+void __malloc_fork_unlock_child (void) internal_function attribute_hidden; -+ -+ -+#endif /* _MALLOC_PRIVATE_H */ -Index: glibc-2.23/malloc/malloc.c -=================================================================== ---- glibc-2.23.orig/malloc/malloc.c -+++ glibc-2.23/malloc/malloc.c -@@ -244,6 +244,7 @@ - /* For ALIGN_UP et. al. */ - #include - -+#include - - /* - Debugging: -Index: glibc-2.23/malloc/tst-malloc-fork-deadlock.c -=================================================================== ---- /dev/null -+++ glibc-2.23/malloc/tst-malloc-fork-deadlock.c -@@ -0,0 +1,220 @@ -+/* Test concurrent fork, getline, and fflush (NULL). -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public License as -+ published by the Free Software Foundation; either version 2.1 of the -+ License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; see the file COPYING.LIB. If -+ not, see . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int do_test (void); -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -+ -+enum { -+ /* Number of threads which call fork. */ -+ fork_thread_count = 4, -+ /* Number of threads which call getline (and, indirectly, -+ malloc). */ -+ read_thread_count = 8, -+}; -+ -+static bool termination_requested; -+ -+static void * -+fork_thread_function (void *closure) -+{ -+ while (!__atomic_load_n (&termination_requested, __ATOMIC_RELAXED)) -+ { -+ pid_t pid = fork (); -+ if (pid < 0) -+ { -+ printf ("error: fork: %m\n"); -+ abort (); -+ } -+ else if (pid == 0) -+ _exit (17); -+ -+ int status; -+ if (waitpid (pid, &status, 0) < 0) -+ { -+ printf ("error: waitpid: %m\n"); -+ abort (); -+ } -+ if (!WIFEXITED (status) || WEXITSTATUS (status) != 17) -+ { -+ printf ("error: waitpid returned invalid status: %d\n", status); -+ abort (); -+ } -+ } -+ return NULL; -+} -+ -+static char *file_to_read; -+ -+static void * -+read_thread_function (void *closure) -+{ -+ FILE *f = fopen (file_to_read, "r"); -+ if (f == NULL) -+ { -+ printf ("error: fopen (%s): %m\n", file_to_read); -+ abort (); -+ } -+ -+ while (!__atomic_load_n (&termination_requested, __ATOMIC_RELAXED)) -+ { -+ rewind (f); -+ char *line = NULL; -+ size_t line_allocated = 0; -+ ssize_t ret = getline (&line, &line_allocated, f); -+ if (ret < 0) -+ { -+ printf ("error: getline: %m\n"); -+ abort (); -+ } -+ free (line); -+ } -+ fclose (f); -+ -+ return NULL; -+} -+ -+static void * -+flushall_thread_function (void *closure) -+{ -+ while (!__atomic_load_n (&termination_requested, __ATOMIC_RELAXED)) -+ if (fflush (NULL) != 0) -+ { -+ printf ("error: fflush (NULL): %m\n"); -+ abort (); -+ } -+ return NULL; -+} -+ -+static void -+create_threads (pthread_t *threads, size_t count, void *(*func) (void *)) -+{ -+ for (size_t i = 0; i < count; ++i) -+ { -+ int ret = pthread_create (threads + i, NULL, func, NULL); -+ if (ret != 0) -+ { -+ errno = ret; -+ printf ("error: pthread_create: %m\n"); -+ abort (); -+ } -+ } -+} -+ -+static void -+join_threads (pthread_t *threads, size_t count) -+{ -+ for (size_t i = 0; i < count; ++i) -+ { -+ int ret = pthread_join (threads[i], NULL); -+ if (ret != 0) -+ { -+ errno = ret; -+ printf ("error: pthread_join: %m\n"); -+ abort (); -+ } -+ } -+} -+ -+/* Create a file which consists of a single long line, and assigns -+ file_to_read. The hope is that this triggers an allocation in -+ getline which needs a lock. */ -+static void -+create_file_with_large_line (void) -+{ -+ int fd = create_temp_file ("bug19431-large-line", &file_to_read); -+ if (fd < 0) -+ { -+ printf ("error: create_temp_file: %m\n"); -+ abort (); -+ } -+ FILE *f = fdopen (fd, "w+"); -+ if (f == NULL) -+ { -+ printf ("error: fdopen: %m\n"); -+ abort (); -+ } -+ for (int i = 0; i < 50000; ++i) -+ fputc ('x', f); -+ fputc ('\n', f); -+ if (ferror (f)) -+ { -+ printf ("error: fputc: %m\n"); -+ abort (); -+ } -+ if (fclose (f) != 0) -+ { -+ printf ("error: fclose: %m\n"); -+ abort (); -+ } -+} -+ -+static int -+do_test (void) -+{ -+ /* Make sure that we do not exceed the arena limit with the number -+ of threads we configured. */ -+ if (mallopt (M_ARENA_MAX, 400) == 0) -+ { -+ printf ("error: mallopt (M_ARENA_MAX) failed\n"); -+ return 1; -+ } -+ -+ /* Leave some room for shutting down all threads gracefully. */ -+ int timeout = 3; -+ if (timeout > TIMEOUT) -+ timeout = TIMEOUT - 1; -+ -+ create_file_with_large_line (); -+ -+ pthread_t fork_threads[fork_thread_count]; -+ create_threads (fork_threads, fork_thread_count, fork_thread_function); -+ pthread_t read_threads[read_thread_count]; -+ create_threads (read_threads, read_thread_count, read_thread_function); -+ pthread_t flushall_threads[1]; -+ create_threads (flushall_threads, 1, flushall_thread_function); -+ -+ struct timespec ts = {timeout, 0}; -+ if (nanosleep (&ts, NULL)) -+ { -+ printf ("error: error: nanosleep: %m\n"); -+ abort (); -+ } -+ -+ __atomic_store_n (&termination_requested, true, __ATOMIC_RELAXED); -+ -+ join_threads (flushall_threads, 1); -+ join_threads (read_threads, read_thread_count); -+ join_threads (fork_threads, fork_thread_count); -+ -+ free (file_to_read); -+ -+ return 0; -+} -Index: glibc-2.23/manual/memory.texi -=================================================================== ---- glibc-2.23.orig/manual/memory.texi -+++ glibc-2.23/manual/memory.texi -@@ -1051,14 +1051,6 @@ systems that do not support @w{ISO C11}. - @c _dl_addr_inside_object ok - @c determine_info ok - @c __rtld_lock_unlock_recursive (dl_load_lock) @aculock --@c thread_atfork @asulock @aculock @acsfd @acsmem --@c __register_atfork @asulock @aculock @acsfd @acsmem --@c lll_lock (__fork_lock) @asulock @aculock --@c fork_handler_alloc @asulock @aculock @acsfd @acsmem --@c calloc dup @asulock @aculock @acsfd @acsmem --@c __linkin_atfork ok --@c catomic_compare_and_exchange_bool_acq ok --@c lll_unlock (__fork_lock) @aculock - @c *_environ @mtsenv - @c next_env_entry ok - @c strcspn dup ok -Index: glibc-2.23/sysdeps/mach/hurd/fork.c -=================================================================== ---- glibc-2.23.orig/sysdeps/mach/hurd/fork.c -+++ glibc-2.23/sysdeps/mach/hurd/fork.c -@@ -26,6 +26,7 @@ - #include - #include "hurdmalloc.h" /* XXX */ - #include -+#include - - #undef __fork - -@@ -107,6 +108,12 @@ __fork (void) - /* Run things that prepare for forking before we create the task. */ - RUN_HOOK (_hurd_fork_prepare_hook, ()); - -+ /* Acquire malloc locks. This needs to come last because fork -+ handlers may use malloc, and the libio list lock has an -+ indirect malloc dependency as well (via the getdelim -+ function). */ -+ __malloc_fork_lock_parent (); -+ - /* Lock things that want to be locked before we fork. */ - { - void *const *p; -@@ -604,6 +611,9 @@ __fork (void) - nthreads * sizeof (*threads)); - } - -+ /* Release malloc locks. */ -+ __malloc_fork_unlock_parent (); -+ - /* Run things that want to run in the parent to restore it to - normality. Usually prepare hooks and parent hooks are - symmetrical: the prepare hook arrests state in some way for the -@@ -655,6 +665,9 @@ __fork (void) - /* Forking clears the trace flag. */ - __sigemptyset (&_hurdsig_traced); - -+ /* Release malloc locks. */ -+ __malloc_fork_unlock_child (); -+ - /* Run things that want to run in the child task to set up. */ - RUN_HOOK (_hurd_fork_child_hook, ()); - -Index: glibc-2.23/sysdeps/nptl/fork.c -=================================================================== ---- glibc-2.23.orig/sysdeps/nptl/fork.c -+++ glibc-2.23/sysdeps/nptl/fork.c -@@ -31,7 +31,7 @@ - #include - #include - #include -- -+#include - - static void - fresetlockfiles (void) -@@ -111,6 +111,11 @@ __libc_fork (void) - - _IO_list_lock (); - -+ /* Acquire malloc locks. This needs to come last because fork -+ handlers may use malloc, and the libio list lock has an indirect -+ malloc dependency as well (via the getdelim function). */ -+ __malloc_fork_lock_parent (); -+ - #ifndef NDEBUG - pid_t ppid = THREAD_GETMEM (THREAD_SELF, tid); - #endif -@@ -168,6 +173,9 @@ __libc_fork (void) - # endif - #endif - -+ /* Release malloc locks. */ -+ __malloc_fork_unlock_child (); -+ - /* Reset the file list. These are recursive mutexes. */ - fresetlockfiles (); - -@@ -209,6 +217,9 @@ __libc_fork (void) - /* Restore the PID value. */ - THREAD_SETMEM (THREAD_SELF, pid, parentpid); - -+ /* Release malloc locks, parent process variant. */ -+ __malloc_fork_unlock_parent (); -+ - /* We execute this even if the 'fork' call failed. */ - _IO_list_unlock (); - diff --git a/0036-malloc-Remove-malloc-hooks-from-fork-handler.patch b/0036-malloc-Remove-malloc-hooks-from-fork-handler.patch deleted file mode 100644 index 7909a39..0000000 --- a/0036-malloc-Remove-malloc-hooks-from-fork-handler.patch +++ /dev/null @@ -1,216 +0,0 @@ -2016-04-14 Florian Weimer - - Remove malloc hooks from fork handler. They are no longer needed - because malloc runs right before fork, and no malloc calls from - other fork handlers are not possible anymore. - * malloc/malloc.c (malloc_atfork, free_atfork): Remove - declarations. - * malloc/arena.c (save_malloc_hook, save_free_hook, save_arena) - (ATFORK_ARENA_PTR, malloc_atfork, free_atfork) - (atfork_recursive_cntr): Remove. - (__malloc_fork_lock_parent): Do not override malloc hooks and - thread_arena. - (__malloc_fork_unlock_parent): Do not restore malloc hooks and - thread_arena. - (__malloc_fork_unlock_child): Do not restore malloc hooks. Use - thread_arena instead of save_arena. - -Index: glibc-2.23/malloc/arena.c -=================================================================== ---- glibc-2.23.orig/malloc/arena.c -+++ glibc-2.23/malloc/arena.c -@@ -132,75 +132,6 @@ int __malloc_initialized = -1; - - /* atfork support. */ - --static void *(*save_malloc_hook)(size_t __size, const void *); --static void (*save_free_hook) (void *__ptr, const void *); --static void *save_arena; -- --/* Magic value for the thread-specific arena pointer when -- malloc_atfork() is in use. */ -- --# define ATFORK_ARENA_PTR ((void *) -1) -- --/* The following hooks are used while the `atfork' handling mechanism -- is active. */ -- --static void * --malloc_atfork (size_t sz, const void *caller) --{ -- void *victim; -- -- if (thread_arena == ATFORK_ARENA_PTR) -- { -- /* We are the only thread that may allocate at all. */ -- if (save_malloc_hook != malloc_check) -- { -- return _int_malloc (&main_arena, sz); -- } -- else -- { -- if (top_check () < 0) -- return 0; -- -- victim = _int_malloc (&main_arena, sz + 1); -- return mem2mem_check (victim, sz); -- } -- } -- else -- { -- /* Suspend the thread until the `atfork' handlers have completed. -- By that time, the hooks will have been reset as well, so that -- mALLOc() can be used again. */ -- (void) mutex_lock (&list_lock); -- (void) mutex_unlock (&list_lock); -- return __libc_malloc (sz); -- } --} -- --static void --free_atfork (void *mem, const void *caller) --{ -- mstate ar_ptr; -- mchunkptr p; /* chunk corresponding to mem */ -- -- if (mem == 0) /* free(0) has no effect */ -- return; -- -- p = mem2chunk (mem); /* do not bother to replicate free_check here */ -- -- if (chunk_is_mmapped (p)) /* release mmapped memory. */ -- { -- munmap_chunk (p); -- return; -- } -- -- ar_ptr = arena_for_chunk (p); -- _int_free (ar_ptr, p, thread_arena == ATFORK_ARENA_PTR); --} -- -- --/* Counter for number of times the list is locked by the same thread. */ --static unsigned int atfork_recursive_cntr; -- - /* The following three functions are called around fork from a - multi-threaded process. We do not use the general fork handler - mechanism to make sure that our handlers are the last ones being -@@ -210,63 +141,30 @@ static unsigned int atfork_recursive_cnt - void - __malloc_fork_lock_parent (void) - { -- mstate ar_ptr; -- - if (__malloc_initialized < 1) - return; - - /* We do not acquire free_list_lock here because we completely - reconstruct free_list in __malloc_fork_unlock_child. */ - -- if (mutex_trylock (&list_lock)) -- { -- if (thread_arena == ATFORK_ARENA_PTR) -- /* This is the same thread which already locks the global list. -- Just bump the counter. */ -- goto out; -+ (void) mutex_lock (&list_lock); - -- /* This thread has to wait its turn. */ -- (void) mutex_lock (&list_lock); -- } -- for (ar_ptr = &main_arena;; ) -+ for (mstate ar_ptr = &main_arena;; ) - { - (void) mutex_lock (&ar_ptr->mutex); - ar_ptr = ar_ptr->next; - if (ar_ptr == &main_arena) - break; - } -- save_malloc_hook = __malloc_hook; -- save_free_hook = __free_hook; -- __malloc_hook = malloc_atfork; -- __free_hook = free_atfork; -- /* Only the current thread may perform malloc/free calls now. -- save_arena will be reattached to the current thread, in -- __malloc_fork_lock_parent, so save_arena->attached_threads is not -- updated. */ -- save_arena = thread_arena; -- thread_arena = ATFORK_ARENA_PTR; --out: -- ++atfork_recursive_cntr; - } - - void - __malloc_fork_unlock_parent (void) - { -- mstate ar_ptr; -- - if (__malloc_initialized < 1) - return; - -- if (--atfork_recursive_cntr != 0) -- return; -- -- /* Replace ATFORK_ARENA_PTR with save_arena. -- save_arena->attached_threads was not changed in -- __malloc_fork_lock_parent and is still correct. */ -- thread_arena = save_arena; -- __malloc_hook = save_malloc_hook; -- __free_hook = save_free_hook; -- for (ar_ptr = &main_arena;; ) -+ for (mstate ar_ptr = &main_arena;; ) - { - (void) mutex_unlock (&ar_ptr->mutex); - ar_ptr = ar_ptr->next; -@@ -279,25 +177,19 @@ __malloc_fork_unlock_parent (void) - void - __malloc_fork_unlock_child (void) - { -- mstate ar_ptr; -- - if (__malloc_initialized < 1) - return; - -- thread_arena = save_arena; -- __malloc_hook = save_malloc_hook; -- __free_hook = save_free_hook; -- -- /* Push all arenas to the free list, except save_arena, which is -+ /* Push all arenas to the free list, except thread_arena, which is - attached to the current thread. */ - mutex_init (&free_list_lock); -- if (save_arena != NULL) -- ((mstate) save_arena)->attached_threads = 1; -+ if (thread_arena != NULL) -+ thread_arena->attached_threads = 1; - free_list = NULL; -- for (ar_ptr = &main_arena;; ) -+ for (mstate ar_ptr = &main_arena;; ) - { - mutex_init (&ar_ptr->mutex); -- if (ar_ptr != save_arena) -+ if (ar_ptr != thread_arena) - { - /* This arena is no longer attached to any thread. */ - ar_ptr->attached_threads = 0; -@@ -310,7 +202,6 @@ __malloc_fork_unlock_child (void) - } - - mutex_init (&list_lock); -- atfork_recursive_cntr = 0; - } - - /* Initialization routine. */ -Index: glibc-2.23/malloc/malloc.c -=================================================================== ---- glibc-2.23.orig/malloc/malloc.c -+++ glibc-2.23/malloc/malloc.c -@@ -1075,8 +1075,6 @@ static void* realloc_check(void* oldme - const void *caller); - static void* memalign_check(size_t alignment, size_t bytes, - const void *caller); --static void* malloc_atfork(size_t sz, const void *caller); --static void free_atfork(void* mem, const void *caller); - - /* ------------------ MMAP support ------------------ */ - diff --git a/0037-malloc-Add-missing-internal_function-attributes-on-f.patch b/0037-malloc-Add-missing-internal_function-attributes-on-f.patch deleted file mode 100644 index a63f941..0000000 --- a/0037-malloc-Add-missing-internal_function-attributes-on-f.patch +++ /dev/null @@ -1,34 +0,0 @@ -2016-04-14 Florian Weimer - - * malloc/arena.c (__malloc_fork_lock_parent) - (__malloc_fork_unlock_parent, __malloc_fork_unlock_child): Add - internal_function attribute. - -Index: glibc-2.23/malloc/arena.c -=================================================================== ---- glibc-2.23.orig/malloc/arena.c -+++ glibc-2.23/malloc/arena.c -@@ -139,6 +139,7 @@ int __malloc_initialized = -1; - subsystem. */ - - void -+internal_function - __malloc_fork_lock_parent (void) - { - if (__malloc_initialized < 1) -@@ -159,6 +160,7 @@ __malloc_fork_lock_parent (void) - } - - void -+internal_function - __malloc_fork_unlock_parent (void) - { - if (__malloc_initialized < 1) -@@ -175,6 +177,7 @@ __malloc_fork_unlock_parent (void) - } - - void -+internal_function - __malloc_fork_unlock_child (void) - { - if (__malloc_initialized < 1) diff --git a/0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch b/0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch deleted file mode 100644 index 0e835ba..0000000 --- a/0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch +++ /dev/null @@ -1,24 +0,0 @@ -2016-04-11 Florian Weimer - - [BZ #19865] - * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Restore - original buffer before retry. - -Index: glibc-2.23/resolv/nss_dns/dns-canon.c -=================================================================== ---- glibc-2.23.orig/resolv/nss_dns/dns-canon.c -+++ glibc-2.23/resolv/nss_dns/dns-canon.c -@@ -144,6 +144,13 @@ _nss_dns_getcanonname_r (const char *nam - ptr += sizeof (uint16_t) + __ns_get16 (ptr); - } - } -+ -+ /* Restore original buffer before retry. */ -+ if (ansp.ptr != buf) -+ { -+ free (ansp.ptr); -+ ansp.ptr = buf; -+ } - } - - out: diff --git a/0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch b/0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch deleted file mode 100644 index 5b620d4..0000000 --- a/0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch +++ /dev/null @@ -1,77 +0,0 @@ -2016-04-27 Florian Weimer - - [BZ #19830] - * resolv/nss_dns/dns-host.c (getanswer_r): Check RDATA length. - (gaih_getanswer_slice): Likewise. - * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Likewise. - Also check for availability of RR metadata. - -Index: glibc-2.23/resolv/nss_dns/dns-canon.c -=================================================================== ---- glibc-2.23.orig/resolv/nss_dns/dns-canon.c -+++ glibc-2.23/resolv/nss_dns/dns-canon.c -@@ -103,6 +103,11 @@ _nss_dns_getcanonname_r (const char *nam - - ptr += s; - -+ /* Check that there are enough bytes for the RR -+ metadata. */ -+ if (endptr - ptr < 10) -+ goto unavail; -+ - /* Check whether type and class match. */ - uint_fast16_t type; - NS_GET16 (type, ptr); -@@ -137,11 +142,16 @@ _nss_dns_getcanonname_r (const char *nam - if (__ns_get16 (ptr) != ns_c_in) - goto unavail; - -- /* Also skip over the TTL. */ -+ /* Also skip over class and TTL. */ - ptr += sizeof (uint16_t) + sizeof (uint32_t); - -- /* Skip over the data length and data. */ -- ptr += sizeof (uint16_t) + __ns_get16 (ptr); -+ /* Skip over RDATA length and RDATA itself. */ -+ uint16_t rdatalen = __ns_get16 (ptr); -+ ptr += sizeof (uint16_t); -+ /* Not enough room for RDATA. */ -+ if (endptr - ptr < rdatalen) -+ goto unavail; -+ ptr += rdatalen; - } - } - -Index: glibc-2.23/resolv/nss_dns/dns-host.c -=================================================================== ---- glibc-2.23.orig/resolv/nss_dns/dns-host.c -+++ glibc-2.23/resolv/nss_dns/dns-host.c -@@ -751,6 +751,14 @@ getanswer_r (const querybuf *answer, int - cp += INT32SZ; /* TTL */ - n = __ns_get16 (cp); - cp += INT16SZ; /* len */ -+ -+ if (end_of_message - cp < n) -+ { -+ /* RDATA extends beyond the end of the packet. */ -+ ++had_error; -+ continue; -+ } -+ - if (__glibc_unlikely (class != C_IN)) - { - /* XXX - debug? syslog? */ -@@ -1077,6 +1085,13 @@ gaih_getanswer_slice (const querybuf *an - n = __ns_get16 (cp); - cp += INT16SZ; /* len */ - -+ if (end_of_message - cp < n) -+ { -+ /* RDATA extends beyond the end of the packet. */ -+ ++had_error; -+ continue; -+ } -+ - if (class != C_IN) - { - cp += n; diff --git a/0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch b/0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch deleted file mode 100644 index 960a37a..0000000 --- a/0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch +++ /dev/null @@ -1,150 +0,0 @@ -2016-04-27 Florian Weimer - - [BZ #19862] - * resolv/nss_dns/dns-host.c (AskedForGot): Remove. - (getanswer_r): Do not call syslog. - (gaih_getanswer_slice): Likewise. - * resolv/gethnamaddr.c (AskedForGot): Remove. - (getanswer): Do not call syslog. - (gethostbyaddr): Likewise. - -Index: glibc-2.23/resolv/gethnamaddr.c -=================================================================== ---- glibc-2.23.orig/resolv/gethnamaddr.c -+++ glibc-2.23/resolv/gethnamaddr.c -@@ -70,7 +70,6 @@ static char sccsid[] = "@(#)gethostnamad - #include - #include - #include --#include - - #define RESOLVSORT - -@@ -100,9 +99,6 @@ static char sccsid[] = "@(#)gethostnamad - #define MAXALIASES 35 - #define MAXADDRS 35 - --static const char AskedForGot[] = -- "gethostby*.getanswer: asked for \"%s\", got \"%s\""; -- - static char *h_addr_ptrs[MAXADDRS + 1]; - - static struct hostent host; -@@ -335,20 +331,12 @@ getanswer (const querybuf *answer, int a - * uses many different types in responses that do not - * match QTYPE. - */ -- if ((_res.options & RES_USE_DNSSEC) == 0) { -- syslog(LOG_NOTICE|LOG_AUTH, -- "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"", -- qname, p_class(C_IN), p_type(qtype), -- p_type(type)); -- } - cp += n; - continue; /* XXX - had_error++ ? */ - } - switch (type) { - case T_PTR: - if (strcasecmp(tname, bp) != 0) { -- syslog(LOG_NOTICE|LOG_AUTH, -- AskedForGot, qname, bp); - cp += n; - continue; /* XXX - had_error++ ? */ - } -@@ -397,8 +385,6 @@ getanswer (const querybuf *answer, int a - case T_A: - case T_AAAA: - if (strcasecmp(host.h_name, bp) != 0) { -- syslog(LOG_NOTICE|LOG_AUTH, -- AskedForGot, host.h_name, bp); - cp += n; - continue; /* XXX - had_error++ ? */ - } -@@ -740,9 +726,6 @@ gethostbyaddr (const void *addr, socklen - _res.options &= ~RES_DNSRCH; - _res.options |= RES_DEFNAMES; - if (!(rhp = gethostbyname(hname2))) { -- syslog(LOG_NOTICE|LOG_AUTH, -- "gethostbyaddr: No A record for %s (verifying [%s])", -- hname2, inet_ntoa(*((struct in_addr *)addr))); - _res.options = old_options; - __set_h_errno (HOST_NOT_FOUND); - return (NULL); -@@ -752,9 +735,6 @@ gethostbyaddr (const void *addr, socklen - if (!memcmp(*haddr, addr, INADDRSZ)) - break; - if (!*haddr) { -- syslog(LOG_NOTICE|LOG_AUTH, -- "gethostbyaddr: A record of %s != PTR record [%s]", -- hname2, inet_ntoa(*((struct in_addr *)addr))); - __set_h_errno (HOST_NOT_FOUND); - return (NULL); - } -Index: glibc-2.23/resolv/nss_dns/dns-host.c -=================================================================== ---- glibc-2.23.orig/resolv/nss_dns/dns-host.c -+++ glibc-2.23/resolv/nss_dns/dns-host.c -@@ -78,7 +78,6 @@ - #include - #include - #include --#include - - #include "nsswitch.h" - -@@ -99,10 +98,6 @@ - #endif - #define MAXHOSTNAMELEN 256 - --static const char AskedForGot[] = "\ --gethostby*.getanswer: asked for \"%s\", got \"%s\""; -- -- - /* We need this time later. */ - typedef union querybuf - { -@@ -838,14 +833,6 @@ getanswer_r (const querybuf *answer, int - have_to_map = 1; - else if (__glibc_unlikely (type != qtype)) - { -- /* Log a low priority message if we get an unexpected record, but -- skip it if we are using DNSSEC since it uses many different types -- in responses that do not match QTYPE. */ -- if ((_res.options & RES_USE_DNSSEC) == 0) -- syslog (LOG_NOTICE | LOG_AUTH, -- "gethostby*.getanswer: asked for \"%s %s %s\", " -- "got type \"%s\"", -- qname, p_class (C_IN), p_type (qtype), p_type (type)); - cp += n; - continue; /* XXX - had_error++ ? */ - } -@@ -855,7 +842,6 @@ getanswer_r (const querybuf *answer, int - case T_PTR: - if (__glibc_unlikely (strcasecmp (tname, bp) != 0)) - { -- syslog (LOG_NOTICE | LOG_AUTH, AskedForGot, qname, bp); - cp += n; - continue; /* XXX - had_error++ ? */ - } -@@ -899,7 +885,6 @@ getanswer_r (const querybuf *answer, int - case T_AAAA: - if (__builtin_expect (strcasecmp (result->h_name, bp), 0) != 0) - { -- syslog (LOG_NOTICE | LOG_AUTH, AskedForGot, result->h_name, bp); - cp += n; - continue; /* XXX - had_error++ ? */ - } -@@ -1152,13 +1137,6 @@ gaih_getanswer_slice (const querybuf *an - || __builtin_expect (type == T_DNAME, 0)) - #endif - { -- /* We don't support DNSSEC yet. For now, ignore the record -- and send a low priority message to syslog. -- -- We also don't expect T_PTR or T_DNAME messages. */ -- syslog (LOG_DEBUG | LOG_AUTH, -- "getaddrinfo*.gaih_getanswer: got type \"%s\"", -- p_type (type)); - cp += n; - continue; - } diff --git a/0041-nss_dns-Check-address-length-before-creating-addrinf.patch b/0041-nss_dns-Check-address-length-before-creating-addrinf.patch deleted file mode 100644 index 8a537fc..0000000 --- a/0041-nss_dns-Check-address-length-before-creating-addrinf.patch +++ /dev/null @@ -1,104 +0,0 @@ -2016-04-27 Florian Weimer - - [BZ #19831] - * resolv/nss_dns/dns-host.c (rrtype_to_rdata_length): New - function. - (getanswer_r): Check RDATA length against RRTYPE and QTYPE. - (gaih_getanswer_slice): Check RDATA length against RRTYPE. - -Index: glibc-2.23/resolv/nss_dns/dns-host.c -=================================================================== ---- glibc-2.23.orig/resolv/nss_dns/dns-host.c -+++ glibc-2.23/resolv/nss_dns/dns-host.c -@@ -134,6 +134,22 @@ extern enum nss_status _nss_dns_gethostb - char **canonp); - hidden_proto (_nss_dns_gethostbyname3_r) - -+/* Return the expected RDATA length for an address record type (A or -+ AAAA). */ -+static int -+rrtype_to_rdata_length (int type) -+{ -+ switch (type) -+ { -+ case T_A: -+ return INADDRSZ; -+ case T_AAAA: -+ return IN6ADDRSZ; -+ default: -+ return -1; -+ } -+} -+ - enum nss_status - _nss_dns_gethostbyname3_r (const char *name, int af, struct hostent *result, - char *buffer, size_t buflen, int *errnop, -@@ -888,6 +904,15 @@ getanswer_r (const querybuf *answer, int - cp += n; - continue; /* XXX - had_error++ ? */ - } -+ -+ /* Stop parsing at a record whose length is incorrect. */ -+ if (n != rrtype_to_rdata_length (type)) -+ { -+ ++had_error; -+ break; -+ } -+ -+ /* Skip records of the wrong type. */ - if (n != result->h_length) - { - cp += n; -@@ -1124,25 +1149,25 @@ gaih_getanswer_slice (const querybuf *an - } - continue; - } --#if 1 -- // We should not see any types other than those explicitly listed -- // below. Some types sent by server seem missing, though. Just -- // collect the data for now. -- if (__glibc_unlikely (type != T_A && type != T_AAAA)) --#else -- if (__builtin_expect (type == T_SIG, 0) -- || __builtin_expect (type == T_KEY, 0) -- || __builtin_expect (type == T_NXT, 0) -- || __builtin_expect (type == T_PTR, 0) -- || __builtin_expect (type == T_DNAME, 0)) --#endif -+ -+ /* Stop parsing if we encounter a record with incorrect RDATA -+ length. */ -+ if (type == T_A || type == T_AAAA) - { -+ if (n != rrtype_to_rdata_length (type)) -+ { -+ ++had_error; -+ continue; -+ } -+ } -+ else -+ { -+ /* Skip unknown records. */ - cp += n; - continue; - } -- if (type != T_A && type != T_AAAA) -- abort (); - -+ assert (type == T_A || type == T_AAAA); - if (*pat == NULL) - { - uintptr_t pad = (-(uintptr_t) buffer -@@ -1176,12 +1201,6 @@ gaih_getanswer_slice (const querybuf *an - } - - (*pat)->family = type == T_A ? AF_INET : AF_INET6; -- if (__builtin_expect ((type == T_A && n != INADDRSZ) -- || (type == T_AAAA && n != IN6ADDRSZ), 0)) -- { -- ++had_error; -- continue; -- } - memcpy ((*pat)->addr, cp, n); - cp += n; - (*pat)->scopeid = 0; diff --git a/0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch b/0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch deleted file mode 100644 index af28b03..0000000 --- a/0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch +++ /dev/null @@ -1,55 +0,0 @@ -2016-03-25 Florian Weimer - - [BZ #19868] - * resolv/nss_dns/dns-network.c (getanswer_r): Implement additional - DNS packet syntax checks (which were not needed before). Skip - over non-PTR records. - -Index: glibc-2.23/resolv/nss_dns/dns-network.c -=================================================================== ---- glibc-2.23.orig/resolv/nss_dns/dns-network.c -+++ glibc-2.23/resolv/nss_dns/dns-network.c -@@ -345,10 +345,23 @@ getanswer_r (const querybuf *answer, int - if (n < 0 || res_dnok (bp) == 0) - break; - cp += n; -+ -+ if (end_of_message - cp < 10) -+ { -+ __set_h_errno (NO_RECOVERY); -+ return NSS_STATUS_UNAVAIL; -+ } -+ - GETSHORT (type, cp); - GETSHORT (class, cp); - cp += INT32SZ; /* TTL */ -- GETSHORT (n, cp); -+ uint16_t rdatalen; -+ GETSHORT (rdatalen, cp); -+ if (end_of_message - cp < rdatalen) -+ { -+ __set_h_errno (NO_RECOVERY); -+ return NSS_STATUS_UNAVAIL; -+ } - - if (class == C_IN && type == T_PTR) - { -@@ -370,7 +383,7 @@ getanswer_r (const querybuf *answer, int - cp += n; - return NSS_STATUS_UNAVAIL; - } -- cp += n; -+ cp += rdatalen; - if (alias_pointer + 2 < &net_data->aliases[MAX_NR_ALIASES]) - { - *alias_pointer++ = bp; -@@ -381,6 +394,9 @@ getanswer_r (const querybuf *answer, int - ++have_answer; - } - } -+ else -+ /* Skip over unknown record data. */ -+ cp += rdatalen; - } - - if (have_answer) diff --git a/0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch b/0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch deleted file mode 100644 index 6a0be9f..0000000 --- a/0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch +++ /dev/null @@ -1,113 +0,0 @@ -2016-04-27 Florian Weimer - - [BZ #19825] - * resolv/res_send.c (send_vc): Remove early *resplen2 - initialization. Set *resplen2 on socket error. Call - close_and_return_error for other errors. - -Index: glibc-2.23/resolv/res_send.c -=================================================================== ---- glibc-2.23.orig/resolv/res_send.c -+++ glibc-2.23/resolv/res_send.c -@@ -762,8 +762,6 @@ send_vc(res_state statp, - u_short len2; - u_char *cp; - -- if (resplen2 != NULL) -- *resplen2 = 0; - connreset = 0; - same_ns: - truncating = 0; -@@ -789,6 +787,8 @@ send_vc(res_state statp, - if (statp->_vcsock < 0) { - *terrno = errno; - Perror(statp, stderr, "socket(vc)", errno); -+ if (resplen2 != NULL) -+ *resplen2 = 0; - return (-1); - } - __set_errno (0); -@@ -798,8 +798,7 @@ send_vc(res_state statp, - : sizeof (struct sockaddr_in6)) < 0) { - *terrno = errno; - Aerror(statp, stderr, "connect/vc", errno, nsap); -- __res_iclose(statp, false); -- return (0); -+ return close_and_return_error (statp, resplen2); - } - statp->_flags |= RES_F_VC; - } -@@ -822,8 +821,7 @@ send_vc(res_state statp, - if (TEMP_FAILURE_RETRY (writev(statp->_vcsock, iov, niov)) != explen) { - *terrno = errno; - Perror(statp, stderr, "write failed", errno); -- __res_iclose(statp, false); -- return (0); -+ return close_and_return_error (statp, resplen2); - } - /* - * Receive length & response -@@ -845,7 +843,6 @@ send_vc(res_state statp, - if (n <= 0) { - *terrno = errno; - Perror(statp, stderr, "read failed", errno); -- __res_iclose(statp, false); - /* - * A long running process might get its TCP - * connection reset if the remote server was -@@ -855,11 +852,13 @@ send_vc(res_state statp, - * instead of failing. We only allow one reset - * per query to prevent looping. - */ -- if (*terrno == ECONNRESET && !connreset) { -- connreset = 1; -- goto same_ns; -- } -- return (0); -+ if (*terrno == ECONNRESET && !connreset) -+ { -+ __res_iclose (statp, false); -+ connreset = 1; -+ goto same_ns; -+ } -+ return close_and_return_error (statp, resplen2); - } - int rlen = ntohs (rlen16); - -@@ -891,11 +890,11 @@ send_vc(res_state statp, - /* Always allocate MAXPACKET, callers expect - this specific size. */ - u_char *newp = malloc (MAXPACKET); -- if (newp == NULL) { -- *terrno = ENOMEM; -- __res_iclose(statp, false); -- return (0); -- } -+ if (newp == NULL) -+ { -+ *terrno = ENOMEM; -+ return close_and_return_error (statp, resplen2); -+ } - *thisanssizp = MAXPACKET; - *thisansp = newp; - if (thisansp == ansp2) -@@ -922,8 +921,7 @@ send_vc(res_state statp, - Dprint(statp->options & RES_DEBUG, - (stdout, ";; undersized: %d\n", len)); - *terrno = EMSGSIZE; -- __res_iclose(statp, false); -- return (0); -+ return close_and_return_error (statp, resplen2); - } - - cp = *thisansp; -@@ -934,8 +932,7 @@ send_vc(res_state statp, - if (__glibc_unlikely (n <= 0)) { - *terrno = errno; - Perror(statp, stderr, "read(vc)", errno); -- __res_iclose(statp, false); -- return (0); -+ return close_and_return_error (statp, resplen2); - } - if (__glibc_unlikely (truncating)) { - /* diff --git a/0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch b/0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch deleted file mode 100644 index 4dd4632..0000000 --- a/0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch +++ /dev/null @@ -1,274 +0,0 @@ -2016-03-07 Florian Weimer - - [BZ #19269] - * sysdeps/x86_64/Makefile (tst-audit4): Depend on - tst-audit4-aux.o. - (tst-audit10): Depend on tst-audit10-aux.o. - (CFLAGS-tst-audit4-aux.c): Compile with AVX enabled. - (CFLAGS-tst-audit10-aux.c): Compile with AVX512 enabled. - * sysdeps/x86_64/tst-audit4.c (do_test): Call tst_audit4_aux - instead of inline AVX code. - * sysdeps/x86_64/tst-audit10.c (do_test): Call tst_audit10_aux - instead of inline AVX512 code. - * sysdeps/x86_64/tst-audit4-aux.c: New file - * sysdeps/x86_64/tst-audit10-aux.c: New file - -Index: glibc-2.23/sysdeps/x86_64/Makefile -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/Makefile -+++ glibc-2.23/sysdeps/x86_64/Makefile -@@ -60,7 +60,7 @@ $(objpfx)tst-audit3: $(objpfx)tst-auditm - $(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so - tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so - --$(objpfx)tst-audit4: $(objpfx)tst-auditmod4a.so -+$(objpfx)tst-audit4: $(objpfx)tst-audit4-aux.o $(objpfx)tst-auditmod4a.so - $(objpfx)tst-audit4.out: $(objpfx)tst-auditmod4b.so - tst-audit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod4b.so - -@@ -77,12 +77,12 @@ $(objpfx)tst-audit7: $(objpfx)tst-auditm - $(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so - tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so - --$(objpfx)tst-audit10: $(objpfx)tst-auditmod10a.so -+$(objpfx)tst-audit10: $(objpfx)tst-audit10-aux.o $(objpfx)tst-auditmod10a.so - $(objpfx)tst-audit10.out: $(objpfx)tst-auditmod10b.so - tst-audit10-ENV = LD_AUDIT=$(objpfx)tst-auditmod10b.so - - AVX-CFLAGS=-mavx -mno-vzeroupper --CFLAGS-tst-audit4.c += $(AVX-CFLAGS) -+CFLAGS-tst-audit4-aux.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod4a.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod4b.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) -@@ -90,7 +90,7 @@ CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) - ifeq (yes,$(config-cflags-avx512)) - AVX512-CFLAGS = -mavx512f --CFLAGS-tst-audit10.c += $(AVX512-CFLAGS) -+CFLAGS-tst-audit10-aux.c += $(AVX512-CFLAGS) - CFLAGS-tst-auditmod10a.c += $(AVX512-CFLAGS) - CFLAGS-tst-auditmod10b.c += $(AVX512-CFLAGS) - endif -Index: glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c -=================================================================== ---- /dev/null -+++ glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c -@@ -0,0 +1,41 @@ -+/* Test case for preserved AVX512 registers in dynamic linker, -mavx512f part. -+ Copyright (C) 2012-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, -+ __m512i, __m512i, __m512i, __m512i); -+ -+int -+tst_audit10_aux (void) -+{ -+#ifdef __AVX512F__ -+ __m512i zmm = _mm512_setzero_si512 (); -+ __m512i ret = audit_test (zmm, zmm, zmm, zmm, zmm, zmm, zmm, zmm); -+ -+ zmm = _mm512_set1_epi64 (0x12349876); -+ -+ if (memcmp (&zmm, &ret, sizeof (ret))) -+ abort (); -+ return 0; -+#else /* __AVX512F__ */ -+ return 77; -+#endif /* __AVX512F__ */ -+} -Index: glibc-2.23/sysdeps/x86_64/tst-audit10.c -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/tst-audit10.c -+++ glibc-2.23/sysdeps/x86_64/tst-audit10.c -@@ -1,4 +1,5 @@ --/* Copyright (C) 2012-2016 Free Software Foundation, Inc. -+/* Test case for preserved AVX512 registers in dynamic linker. -+ Copyright (C) 2012-2016 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 -@@ -15,13 +16,9 @@ - License along with the GNU C Library; if not, see - . */ - --/* Test case for x86-64 preserved registers in dynamic linker. */ -- --#ifdef __AVX512F__ --#include --#include - #include --#include -+ -+int tst_audit10_aux (void); - - static int - avx512_enabled (void) -@@ -42,32 +39,15 @@ avx512_enabled (void) - return (eax & 0xe6) == 0xe6; - } - -- --extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, -- __m512i, __m512i, __m512i, __m512i); - static int - do_test (void) - { - /* Run AVX512 test only if AVX512 is supported. */ - if (avx512_enabled ()) -- { -- __m512i zmm = _mm512_setzero_si512 (); -- __m512i ret = audit_test (zmm, zmm, zmm, zmm, zmm, zmm, zmm, zmm); -- -- zmm = _mm512_set1_epi64 (0x12349876); -- -- if (memcmp (&zmm, &ret, sizeof (ret))) -- abort (); -- } -- return 0; --} --#else --static int --do_test (void) --{ -- return 0; -+ return tst_audit10_aux (); -+ else -+ return 77; - } --#endif - - #define TEST_FUNCTION do_test () - #include "../../test-skeleton.c" -Index: glibc-2.23/sysdeps/x86_64/tst-audit4-aux.c -=================================================================== ---- /dev/null -+++ glibc-2.23/sysdeps/x86_64/tst-audit4-aux.c -@@ -0,0 +1,39 @@ -+/* Test case for preserved AVX registers in dynamic linker, -mavx part. -+ Copyright (C) 2009-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+ -+extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i, -+ __m256i, __m256i, __m256i, __m256i); -+ -+int -+tst_audit4_aux (void) -+{ -+#ifdef __AVX__ -+ __m256i ymm = _mm256_setzero_si256 (); -+ __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm); -+ ymm = _mm256_set1_epi32 (0x12349876); -+ if (memcmp (&ymm, &ret, sizeof (ret))) -+ abort (); -+ return 0; -+#else /* __AVX__ */ -+ return 77; -+#endif /* __AVX__ */ -+} -Index: glibc-2.23/sysdeps/x86_64/tst-audit4.c -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/tst-audit4.c -+++ glibc-2.23/sysdeps/x86_64/tst-audit4.c -@@ -1,11 +1,24 @@ --/* Test case for x86-64 preserved registers in dynamic linker. */ -+/* Test case for preserved AVX registers in dynamic linker. -+ Copyright (C) 2009-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ - --#ifdef __AVX__ --#include --#include - #include --#include - -+int tst_audit4_aux (void); - - static int - avx_enabled (void) -@@ -22,31 +35,15 @@ avx_enabled (void) - return (eax & 6) == 6; - } - -- --extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i, -- __m256i, __m256i, __m256i, __m256i); - static int - do_test (void) - { - /* Run AVX test only if AVX is supported. */ - if (avx_enabled ()) -- { -- __m256i ymm = _mm256_setzero_si256 (); -- __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm); -- -- ymm = _mm256_set1_epi32 (0x12349876); -- if (memcmp (&ymm, &ret, sizeof (ret))) -- abort (); -- } -- return 0; --} --#else --static int --do_test (void) --{ -- return 0; -+ return tst_audit4_aux (); -+ else -+ return 77; - } --#endif - - #define TEST_FUNCTION do_test () - #include "../../test-skeleton.c" diff --git a/0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch b/0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch deleted file mode 100644 index 25d9ec6..0000000 --- a/0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch +++ /dev/null @@ -1,39 +0,0 @@ -2016-03-08 Roland McGrath - - * sysdeps/x86_64/tst-audit10.c: #include . - * sysdeps/x86_64/tst-audit10-aux.c: Move audit_test extern decl ... - (tst_audit10_aux) [__AVX512F__]: ... here. - -Index: glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/tst-audit10-aux.c -+++ glibc-2.23/sysdeps/x86_64/tst-audit10-aux.c -@@ -20,13 +20,13 @@ - #include - #include - --extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, -- __m512i, __m512i, __m512i, __m512i); -- - int - tst_audit10_aux (void) - { - #ifdef __AVX512F__ -+ extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, -+ __m512i, __m512i, __m512i, __m512i); -+ - __m512i zmm = _mm512_setzero_si512 (); - __m512i ret = audit_test (zmm, zmm, zmm, zmm, zmm, zmm, zmm, zmm); - -Index: glibc-2.23/sysdeps/x86_64/tst-audit10.c -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/tst-audit10.c -+++ glibc-2.23/sysdeps/x86_64/tst-audit10.c -@@ -17,6 +17,7 @@ - . */ - - #include -+#include - - int tst_audit10_aux (void); - diff --git a/0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch b/0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch deleted file mode 100644 index 3289638..0000000 --- a/0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch +++ /dev/null @@ -1,35 +0,0 @@ -2016-03-25 Florian Weimer - - [BZ# 19860] - * sysdeps/x86_64/tst-audit10.c (avx512_enabled): Always return - zero if the compiler does not provide the AVX512F bit. - -Index: glibc-2.23/sysdeps/x86_64/tst-audit10.c -=================================================================== ---- glibc-2.23.orig/sysdeps/x86_64/tst-audit10.c -+++ glibc-2.23/sysdeps/x86_64/tst-audit10.c -@@ -17,13 +17,13 @@ - . */ - - #include --#include - - int tst_audit10_aux (void); - - static int - avx512_enabled (void) - { -+#ifdef bit_AVX512F - unsigned int eax, ebx, ecx, edx; - - if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0 -@@ -38,6 +38,9 @@ avx512_enabled (void) - - /* Verify that ZMM, YMM and XMM states are enabled. */ - return (eax & 0xe6) == 0xe6; -+#else -+ return 0; -+#endif - } - - static int diff --git a/0047-strfmon_l-Use-specified-locale-for-number-formatting.patch b/0047-strfmon_l-Use-specified-locale-for-number-formatting.patch deleted file mode 100644 index b71eeca..0000000 --- a/0047-strfmon_l-Use-specified-locale-for-number-formatting.patch +++ /dev/null @@ -1,465 +0,0 @@ -2016-04-04 Florian Weimer - - [BZ #19633] - Use specified locale for number formatting in strfmon_l. - * locale/localeinfo.h (__nl_lookup, _nl_lookup_wstr) - (__nl_lookup_word): New inline functions. - * include/printf.h (__print_fp_l): Declare. - * stdio-common/printf_fp.c (___printf_fp_l): Renamed from - ___printf_fp. Add locale argument. Replace _NL_CURRENT with - _nl_lookup and _NL_CURRENT_WORD with _nl_lookup_word. - (___printf_fp): New function. - * stdlib/strfmon_l.c (__printf_fp): Remove declaration. - (__vstrfmon_l): Call __printf_fp_l instead of printf_fp. - * stdlib/tst-strfmon_l.c (do_test): New test. - * stdlib/Makefile (tests): Add kt. - (LOCALES): Build additional locales. - (tst-strfmon_l.out): Require locales. - -Index: glibc-2.23/include/printf.h -=================================================================== ---- glibc-2.23.orig/include/printf.h -+++ glibc-2.23/include/printf.h -@@ -1,6 +1,7 @@ - #ifndef _PRINTF_H - - #include -+#include - - /* Now define the internal interfaces. */ - extern int __printf_fphex (FILE *, const struct printf_info *, -@@ -8,5 +9,8 @@ extern int __printf_fphex (FILE *, const - extern int __printf_fp (FILE *, const struct printf_info *, - const void *const *); - libc_hidden_proto (__printf_fp) -+extern int __printf_fp_l (FILE *, locale_t, const struct printf_info *, -+ const void *const *); -+libc_hidden_proto (__printf_fp_l) - - #endif -Index: glibc-2.23/locale/localeinfo.h -=================================================================== ---- glibc-2.23.orig/locale/localeinfo.h -+++ glibc-2.23/locale/localeinfo.h -@@ -299,6 +299,27 @@ extern __thread struct __locale_data *co - - #endif - -+/* Extract CATEGORY locale's string for ITEM. */ -+static inline const char * -+_nl_lookup (locale_t l, int category, int item) -+{ -+ return l->__locales[category]->values[_NL_ITEM_INDEX (item)].string; -+} -+ -+/* Extract CATEGORY locale's wide string for ITEM. */ -+static inline const wchar_t * -+_nl_lookup_wstr (locale_t l, int category, int item) -+{ -+ return (wchar_t *) l->__locales[category] -+ ->values[_NL_ITEM_INDEX (item)].wstr; -+} -+ -+/* Extract the CATEGORY locale's word for ITEM. */ -+static inline uint32_t -+_nl_lookup_word (locale_t l, int category, int item) -+{ -+ return l->__locales[category]->values[_NL_ITEM_INDEX (item)].word; -+} - - /* Default search path if no LOCPATH environment variable. */ - extern const char _nl_default_locale_path[] attribute_hidden; -Index: glibc-2.23/stdio-common/printf_fp.c -=================================================================== ---- glibc-2.23.orig/stdio-common/printf_fp.c -+++ glibc-2.23/stdio-common/printf_fp.c -@@ -209,9 +209,9 @@ hack_digit (struct hack_digit_param *p) - } - - int --___printf_fp (FILE *fp, -- const struct printf_info *info, -- const void *const *args) -+___printf_fp_l (FILE *fp, locale_t loc, -+ const struct printf_info *info, -+ const void *const *args) - { - /* The floating-point value to output. */ - union -@@ -263,18 +263,19 @@ ___printf_fp (FILE *fp, - /* Figure out the decimal point character. */ - if (info->extra == 0) - { -- decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); -- decimalwc = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC); -+ decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT); -+ decimalwc = _nl_lookup_word -+ (loc, LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC); - } - else - { -- decimal = _NL_CURRENT (LC_MONETARY, MON_DECIMAL_POINT); -+ decimal = _nl_lookup (loc, LC_MONETARY, MON_DECIMAL_POINT); - if (*decimal == '\0') -- decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); -- decimalwc = _NL_CURRENT_WORD (LC_MONETARY, -+ decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT); -+ decimalwc = _nl_lookup_word (loc, LC_MONETARY, - _NL_MONETARY_DECIMAL_POINT_WC); - if (decimalwc == L'\0') -- decimalwc = _NL_CURRENT_WORD (LC_NUMERIC, -+ decimalwc = _nl_lookup_word (loc, LC_NUMERIC, - _NL_NUMERIC_DECIMAL_POINT_WC); - } - /* The decimal point character must not be zero. */ -@@ -284,9 +285,9 @@ ___printf_fp (FILE *fp, - if (info->group) - { - if (info->extra == 0) -- grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); -+ grouping = _nl_lookup (loc, LC_NUMERIC, GROUPING); - else -- grouping = _NL_CURRENT (LC_MONETARY, MON_GROUPING); -+ grouping = _nl_lookup (loc, LC_MONETARY, MON_GROUPING); - - if (*grouping <= 0 || *grouping == CHAR_MAX) - grouping = NULL; -@@ -296,19 +297,20 @@ ___printf_fp (FILE *fp, - if (wide) - { - if (info->extra == 0) -- thousands_sepwc = -- _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC); -+ thousands_sepwc = _nl_lookup_word -+ (loc, LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC); - else - thousands_sepwc = -- _NL_CURRENT_WORD (LC_MONETARY, -+ _nl_lookup_word (loc, LC_MONETARY, - _NL_MONETARY_THOUSANDS_SEP_WC); - } - else - { - if (info->extra == 0) -- thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP); -+ thousands_sep = _nl_lookup (loc, LC_NUMERIC, THOUSANDS_SEP); - else -- thousands_sep = _NL_CURRENT (LC_MONETARY, MON_THOUSANDS_SEP); -+ thousands_sep = _nl_lookup -+ (loc, LC_MONETARY, MON_THOUSANDS_SEP); - } - - if ((wide && thousands_sepwc == L'\0') -@@ -1171,9 +1173,11 @@ ___printf_fp (FILE *fp, - size_t decimal_len; - size_t thousands_sep_len; - wchar_t *copywc; -- size_t factor = (info->i18n -- ? _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX) -- : 1); -+ size_t factor; -+ if (info->i18n) -+ factor = _nl_lookup_word (loc, LC_CTYPE, _NL_CTYPE_MB_CUR_MAX); -+ else -+ factor = 1; - - decimal_len = strlen (decimal); - -@@ -1244,8 +1248,18 @@ ___printf_fp (FILE *fp, - } - return done; - } -+ldbl_hidden_def (___printf_fp_l, __printf_fp_l) -+ldbl_strong_alias (___printf_fp_l, __printf_fp_l) -+ -+int -+___printf_fp (FILE *fp, const struct printf_info *info, -+ const void *const *args) -+{ -+ return ___printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args); -+} - ldbl_hidden_def (___printf_fp, __printf_fp) - ldbl_strong_alias (___printf_fp, __printf_fp) -+ - - /* Return the number of extra grouping characters that will be inserted - into a number with INTDIG_MAX integer digits. */ -Index: glibc-2.23/stdlib/Makefile -=================================================================== ---- glibc-2.23.orig/stdlib/Makefile -+++ glibc-2.23/stdlib/Makefile -@@ -76,7 +76,7 @@ tests := tst-strtol tst-strtod testmb t - tst-secure-getenv tst-strtod-overflow tst-strtod-round \ - tst-tininess tst-strtod-underflow tst-tls-atexit \ - tst-setcontext3 tst-tls-atexit-nodelete \ -- tst-strtol-locale tst-strtod-nan-locale -+ tst-strtol-locale tst-strtod-nan-locale tst-strfmon_l - tests-static := tst-secure-getenv - - modules-names = tst-tls-atexit-lib -@@ -126,7 +126,8 @@ include ../Rules - - ifeq ($(run-built-tests),yes) - LOCALES := cs_CZ.UTF-8 de_DE.UTF-8 en_US.ISO-8859-1 tr_TR.UTF-8 \ -- tr_TR.ISO-8859-9 -+ tr_TR.ISO-8859-9 tg_TJ.UTF-8 te_IN.UTF-8 bn_IN.UTF-8 \ -+ el_GR.UTF-8 - include ../gen-locales.mk - - $(objpfx)bug-strtod2.out: $(gen-locales) -@@ -137,6 +138,7 @@ $(objpfx)tst-strtod4.out: $(gen-locales) - $(objpfx)tst-strtod5.out: $(gen-locales) - $(objpfx)tst-strtol-locale.out: $(gen-locales) - $(objpfx)tst-strtod-nan-locale.out: $(gen-locales) -+$(objpfx)tst-strfmon_l.out: $(gen-locales) - endif - - # Testdir has to be named stdlib and needs to be writable -Index: glibc-2.23/stdlib/strfmon_l.c -=================================================================== ---- glibc-2.23.orig/stdlib/strfmon_l.c -+++ glibc-2.23/stdlib/strfmon_l.c -@@ -68,9 +68,6 @@ - #define _NL_CURRENT(category, item) \ - (current->values[_NL_ITEM_INDEX (item)].string) - --extern int __printf_fp (FILE *, const struct printf_info *, -- const void *const *); --libc_hidden_proto (__printf_fp) - /* This function determines the number of digit groups in the output. - The definition is in printf_fp.c. */ - extern unsigned int __guess_grouping (unsigned int intdig_max, -@@ -532,7 +529,7 @@ __vstrfmon_l (char *s, size_t maxsize, _ - info.extra = 1; /* This means use values from LC_MONETARY. */ - - ptr = &fpnum; -- done = __printf_fp (&f._sbf._f, &info, &ptr); -+ done = __printf_fp_l (&f._sbf._f, loc, &info, &ptr); - if (done < 0) - return -1; - -Index: glibc-2.23/stdlib/tst-strfmon_l.c -=================================================================== ---- /dev/null -+++ glibc-2.23/stdlib/tst-strfmon_l.c -@@ -0,0 +1,220 @@ -+/* Test locale dependence of strfmon_l. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static const char *const en_us_name = "en_US.ISO-8859-1"; -+ -+/* Locale value to be used by tests. */ -+static locale_t loc; -+static const char *loc_name; -+ -+/* Set the global locale to GLOBAL_NAME, and the locale referenced by -+ the loc variable above to LOCAL_NAME. */ -+static void -+init_loc (const char *global_name, const char *local_name) -+{ -+ loc = newlocale (LC_ALL_MASK, local_name, 0); -+ if (loc == 0) -+ { -+ printf ("error: newlocale (%s): %m\n", local_name); -+ abort (); -+ } -+ loc_name = local_name; -+ -+ if (setlocale (LC_ALL, global_name) == NULL) -+ { -+ printf ("error: setlocale (%s): %m\n", global_name); -+ abort (); -+ } -+} -+ -+/* Expected strings for a positive or negative value. */ -+struct testcase -+{ -+ const char *i; /* %i */ -+ const char *n; /* %n */ -+ const char *i_ungrouped; /* %^i */ -+ const char *n_ungrouped; /* %^n */ -+}; -+ -+/* Collected expected strings for both positive and negative -+ values. */ -+struct testcase_pair -+{ -+ struct testcase positive; /* 1234567.89 */ -+ struct testcase negative; /* -1234567.89 */ -+}; -+ -+static bool errors; -+ -+/* Test one value using the locale loc. */ -+static void -+test_one (const char *format, double value, const char *expected) -+{ -+ static char actual[64]; -+ int result = strfmon_l (actual, sizeof (actual), loc, format, value); -+ if (result < 0) -+ { -+ printf ("error: locale %s, format \"%s\", value %g: strfmon_l: %m\n", -+ loc_name, format, value); -+ errors = true; -+ } -+ else if (strcmp (actual, expected) != 0) -+ { -+ printf ("error: locale %s, format \"%s\", value %g: mismatch\n", -+ loc_name, format, value); -+ printf ("error: expected: \"%s\"\n", expected); -+ printf ("error: actual: \"%s\"\n", actual); -+ errors = true; -+ } -+} -+ -+static void -+test_pair (const struct testcase_pair *pair) -+{ -+ double positive = 1234567.89; -+ test_one ("%i", positive, pair->positive.i); -+ test_one ("%n", positive, pair->positive.n); -+ test_one ("%^i", positive, pair->positive.i_ungrouped); -+ test_one ("%^n", positive, pair->positive.n_ungrouped); -+ double negative = -1234567.89; -+ test_one ("%i", negative, pair->negative.i); -+ test_one ("%n", negative, pair->negative.n); -+ test_one ("%^i", negative, pair->negative.i_ungrouped); -+ test_one ("%^n", negative, pair->negative.n_ungrouped); -+} -+ -+static const struct testcase_pair en_us = -+ { -+ { -+ "USD 1,234,567.89", "$1,234,567.89", -+ "USD 1234567.89", "$1234567.89" -+ }, -+ { -+ "-USD 1,234,567.89", "-$1,234,567.89", -+ "-USD 1234567.89", "-$1234567.89" -+ } -+ }; -+ -+static void -+test_en_us (const char *other_name) -+{ -+ init_loc (other_name, en_us_name); -+ test_pair (&en_us); -+ freelocale (loc); -+} -+ -+struct locale_pair -+{ -+ const char *locale_name; -+ struct testcase_pair pair; -+}; -+ -+static const struct locale_pair tests[] = -+ { -+ { -+ "de_DE.UTF-8", -+ { -+ { -+ "1.234.567,89 EUR", "1.234.567,89 \u20ac", -+ "1234567,89 EUR", "1234567,89 \u20ac" -+ }, -+ { -+ "-1.234.567,89 EUR", "-1.234.567,89 \u20ac", -+ "-1234567,89 EUR", "-1234567,89 \u20ac" -+ } -+ }, -+ }, -+ { -+ "tg_TJ.UTF-8", -+ { -+ { -+ "1 234 567.89 TJS", "1 234 567.89 \u0440\u0443\u0431", -+ "1234567.89 TJS", "1234567.89 \u0440\u0443\u0431" -+ }, -+ { -+ "-1 234 567.89 TJS", "-1 234 567.89 \u0440\u0443\u0431", -+ "-1234567.89 TJS", "-1234567.89 \u0440\u0443\u0431" -+ } -+ } -+ }, -+ { -+ "te_IN.UTF-8", -+ { -+ { -+ "INR12,34,567.89", "\u20b912,34,567.89", -+ "INR1234567.89", "\u20b91234567.89" -+ }, -+ { -+ "-INR12,34,567.89", "-\u20b912,34,567.89", -+ "-INR1234567.89", "-\u20b91234567.89" -+ } -+ } -+ }, -+ { -+ "bn_IN.UTF-8", -+ { -+ { -+ "INR 12,345,67.89", "\u20b9 12,345,67.89", -+ "INR 1234567.89", "\u20b9 1234567.89" -+ }, -+ { -+ "-INR 12,345,67.89", "-\u20b9 12,345,67.89", -+ "-INR 1234567.89", "-\u20b9 1234567.89" -+ } -+ } -+ }, -+ { -+ "el_GR.UTF-8", -+ { -+ { -+ "1.234.567,89EUR", "1.234.567,89\u20ac", -+ "1234567,89EUR", "1234567,89\u20ac" -+ }, -+ { -+ "-EUR1.234.567,89", "-\u20ac1.234.567,89", -+ "-EUR1234567,89", "-\u20ac1234567,89", -+ } -+ } -+ }, -+ {} -+ }; -+ -+static int -+do_test (void) -+{ -+ for (const struct locale_pair *test = tests; -+ test->locale_name != NULL; ++test) -+ { -+ init_loc (en_us_name, test->locale_name); -+ test_pair (&test->pair); -+ freelocale (loc); -+ test_en_us (test->locale_name); -+ } -+ -+ return errors; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch b/0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch deleted file mode 100644 index 57a1a1f..0000000 --- a/0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch +++ /dev/null @@ -1,212 +0,0 @@ -2016-04-29 Florian Weimer - - glob: Simplify and document the interface for the GLOB_ALTDIRFUNC - callback function gl_readdir. - * posix/glob.c (NAMELEN, CONVERT_D_NAMLEN): Remove. - (CONVERT_DIRENT_DIRENT64): Use strcpy instead of memcpy. - (glob_in_dir): Remove len. Use strdup instead of malloc and - memcpy to copy the name. - * manual/pattern.texi (Calling Glob): Document requirements for - implementations of the gl_readdir callback function. - * manual/examples/mkdirent.c: New example. - * posix/bug-glob2.c (my_readdir): Set d_ino to 1 unconditionally, - per the manual guidance. - * posix/tst-gnuglob.c (my_readdir): Likewise. - -Index: glibc-2.23/manual/examples/mkdirent.c -=================================================================== ---- /dev/null -+++ glibc-2.23/manual/examples/mkdirent.c -@@ -0,0 +1,42 @@ -+/* Example for creating a struct dirent object for use with glob. -+ Copyright (C) 2016 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of the GNU General Public License -+ as published by the Free Software Foundation; either version 2 -+ of the License, or (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, if not, see . -+*/ -+ -+#include -+#include -+#include -+#include -+#include -+ -+struct dirent * -+mkdirent (const char *name) -+{ -+ size_t dirent_size = offsetof (struct dirent, d_name) + 1; -+ size_t name_length = strlen (name); -+ size_t total_size = dirent_size + name_length; -+ if (total_size < dirent_size) -+ { -+ errno = ENOMEM; -+ return NULL; -+ } -+ struct dirent *result = malloc (total_size); -+ if (result == NULL) -+ return NULL; -+ result->d_type = DT_UNKNOWN; -+ result->d_ino = 1; /* Do not skip this entry. */ -+ memcpy (result->d_name, name, name_length + 1); -+ return result; -+} -Index: glibc-2.23/manual/pattern.texi -=================================================================== ---- glibc-2.23.orig/manual/pattern.texi -+++ glibc-2.23/manual/pattern.texi -@@ -237,7 +237,44 @@ function used to read the contents of a - @code{GLOB_ALTDIRFUNC} bit is set in the flag parameter. The type of - this field is @w{@code{struct dirent *(*) (void *)}}. - --This is a GNU extension. -+An implementation of @code{gl_readdir} needs to initialize the following -+members of the @code{struct dirent} object: -+ -+@table @code -+@item d_type -+This member should be set to the file type of the entry if it is known. -+Otherwise, the value @code{DT_UNKNOWN} can be used. The @code{glob} -+function may use the specified file type to avoid callbacks in cases -+where the file type indicates that the data is not required. -+ -+@item d_ino -+This member needs to be non-zero, otherwise @code{glob} may skip the -+current entry and call the @code{gl_readdir} callback function again to -+retrieve another entry. -+ -+@item d_name -+This member must be set to the name of the entry. It must be -+null-terminated. -+@end table -+ -+The example below shows how to allocate a @code{struct dirent} object -+containing a given name. -+ -+@smallexample -+@include mkdirent.c.texi -+@end smallexample -+ -+The @code{glob} function reads the @code{struct dirent} members listed -+above and makes a copy of the file name in the @code{d_name} member -+immediately after the @code{gl_readdir} callback function returns. -+Future invocations of any of the callback functions may dealloacte or -+reuse the buffer. It is the responsibility of the caller of the -+@code{glob} function to allocate and deallocate the buffer, around the -+call to @code{glob} or using the callback functions. For example, an -+application could allocate the buffer in the @code{gl_readdir} callback -+function, and deallocate it in the @code{gl_closedir} callback function. -+ -+The @code{gl_readdir} member is a GNU extension. - - @item gl_opendir - The address of an alternative implementation of the @code{opendir} -Index: glibc-2.23/posix/bug-glob2.c -=================================================================== ---- glibc-2.23.orig/posix/bug-glob2.c -+++ glibc-2.23/posix/bug-glob2.c -@@ -193,7 +193,7 @@ my_readdir (void *gdir) - return NULL; - } - -- dir->d.d_ino = dir->idx; -+ dir->d.d_ino = 1; /* glob should not skip this entry. */ - - #ifdef _DIRENT_HAVE_D_TYPE - dir->d.d_type = filesystem[dir->idx].type; -Index: glibc-2.23/posix/glob.c -=================================================================== ---- glibc-2.23.orig/posix/glob.c -+++ glibc-2.23/posix/glob.c -@@ -57,10 +57,8 @@ - - #if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__ - # include --# define NAMLEN(dirent) strlen((dirent)->d_name) - #else - # define dirent direct --# define NAMLEN(dirent) (dirent)->d_namlen - # ifdef HAVE_SYS_NDIR_H - # include - # endif -@@ -76,12 +74,6 @@ - #endif - - --/* In GNU systems, defines this macro for us. */ --#ifdef _D_NAMLEN --# undef NAMLEN --# define NAMLEN(d) _D_NAMLEN(d) --#endif -- - /* When used in the GNU libc the symbol _DIRENT_HAVE_D_TYPE is available - if the `d_type' member for `struct dirent' is available. - HAVE_STRUCT_DIRENT_D_TYPE plays the same role in GNULIB. */ -@@ -105,12 +97,6 @@ - - /* If the system has the `struct dirent64' type we use it internally. */ - #if defined _LIBC && !defined COMPILE_GLOB64 --# if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__ --# define CONVERT_D_NAMLEN(d64, d32) --# else --# define CONVERT_D_NAMLEN(d64, d32) \ -- (d64)->d_namlen = (d32)->d_namlen; --# endif - - # if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ - # define CONVERT_D_INO(d64, d32) -@@ -127,8 +113,7 @@ - # endif - - # define CONVERT_DIRENT_DIRENT64(d64, d32) \ -- memcpy ((d64)->d_name, (d32)->d_name, NAMLEN (d32) + 1); \ -- CONVERT_D_NAMLEN (d64, d32) \ -+ strcpy ((d64)->d_name, (d32)->d_name); \ - CONVERT_D_INO (d64, d32) \ - CONVERT_D_TYPE (d64, d32) - #endif -@@ -1554,7 +1539,6 @@ glob_in_dir (const char *pattern, const - while (1) - { - const char *name; -- size_t len; - #if defined _LIBC && !defined COMPILE_GLOB64 - struct dirent64 *d; - union -@@ -1622,12 +1606,10 @@ glob_in_dir (const char *pattern, const - names = newnames; - cur = 0; - } -- len = NAMLEN (d); -- names->name[cur] = (char *) malloc (len + 1); -+ names->name[cur] = strdup (d->d_name); - if (names->name[cur] == NULL) - goto memory_error; -- *((char *) mempcpy (names->name[cur++], name, len)) -- = '\0'; -+ ++cur; - ++nfound; - } - } -Index: glibc-2.23/posix/tst-gnuglob.c -=================================================================== ---- glibc-2.23.orig/posix/tst-gnuglob.c -+++ glibc-2.23/posix/tst-gnuglob.c -@@ -211,7 +211,7 @@ my_readdir (void *gdir) - return NULL; - } - -- dir->d.d_ino = dir->idx; -+ dir->d.d_ino = 1; /* glob should not skip this entry. */ - - #ifdef _DIRENT_HAVE_D_TYPE - dir->d.d_type = filesystem[dir->idx].type; diff --git a/0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch b/0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch deleted file mode 100644 index 030e2ca..0000000 --- a/0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch +++ /dev/null @@ -1,396 +0,0 @@ -2016-05-04 Florian Weimer - - [BZ #19779] - CVE-2016-1234 - Avoid copying names of directory entries. - * posix/glob.c (DIRENT_MUST_BE, DIRENT_MIGHT_BE_SYMLINK) - (DIRENT_MIGHT_BE_DIR, CONVERT_D_INO, CONVERT_D_TYPE) - (CONVERT_DIRENT_DIRENT64, REAL_DIR_ENTRY): Remove macros. - (struct readdir_result): New type. - (D_TYPE_TO_RESULT, D_INO_TO_RESULT, READDIR_RESULT_INITIALIZER) - (GL_READDIR): New macros. - (readdir_result_might_be_symlink, readdir_result_might_be_dir) - (convert_dirent, convert_dirent64): New functions. - (glob_in_dir): Use struct readdir_result. Call convert_dirent or - convert_dirent64. Adjust references to the readdir result. - * sysdeps/unix/sysv/linux/i386/glob64.c: - (convert_dirent, GL_READDIR): Redefine for second file inclusion. - * posix/bug-glob2.c (LONG_NAME): Define. - (filesystem): Add LONG_NAME. - (my_DIR): Increase the size of room_for_dirent. - -Index: glibc-2.23/NEWS -=================================================================== ---- glibc-2.23.orig/NEWS -+++ glibc-2.23/NEWS -@@ -14,6 +14,10 @@ Security related changes: - overflow (stack exhaustion) and a crash if getnetbyname is invoked - on a very long name. (CVE-2016-3075) - -+* The glob function suffered from a stack-based buffer overflow when it was -+ called with the GLOB_ALTDIRFUNC flag and encountered a long file name. -+ Reported by Alexander Cherepanov. (CVE-2016-1234) -+ - The following bugs are resolved with this release: - - [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack -Index: glibc-2.23/posix/bug-glob2.c -=================================================================== ---- glibc-2.23.orig/posix/bug-glob2.c -+++ glibc-2.23/posix/bug-glob2.c -@@ -40,6 +40,17 @@ - # define PRINTF(fmt, args...) - #endif - -+#define LONG_NAME \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - - static struct - { -@@ -58,6 +69,7 @@ static struct - { ".", 3, DT_DIR, 0755 }, - { "..", 3, DT_DIR, 0755 }, - { "a", 3, DT_REG, 0644 }, -+ { LONG_NAME, 3, DT_REG, 0644 }, - { "unreadable", 2, DT_DIR, 0111 }, - { ".", 3, DT_DIR, 0111 }, - { "..", 3, DT_DIR, 0755 }, -@@ -75,7 +87,7 @@ typedef struct - int level; - int idx; - struct dirent d; -- char room_for_dirent[NAME_MAX]; -+ char room_for_dirent[sizeof (LONG_NAME)]; - } my_DIR; - - -Index: glibc-2.23/posix/glob.c -=================================================================== ---- glibc-2.23.orig/posix/glob.c -+++ glibc-2.23/posix/glob.c -@@ -24,7 +24,9 @@ - #include - #include - #include -+#include - #include -+#include - - /* Outcomment the following line for production quality code. */ - /* #define NDEBUG 1 */ -@@ -73,69 +75,8 @@ - # endif /* HAVE_VMSDIR_H */ - #endif - -- --/* When used in the GNU libc the symbol _DIRENT_HAVE_D_TYPE is available -- if the `d_type' member for `struct dirent' is available. -- HAVE_STRUCT_DIRENT_D_TYPE plays the same role in GNULIB. */ --#if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE --/* True if the directory entry D must be of type T. */ --# define DIRENT_MUST_BE(d, t) ((d)->d_type == (t)) -- --/* True if the directory entry D might be a symbolic link. */ --# define DIRENT_MIGHT_BE_SYMLINK(d) \ -- ((d)->d_type == DT_UNKNOWN || (d)->d_type == DT_LNK) -- --/* True if the directory entry D might be a directory. */ --# define DIRENT_MIGHT_BE_DIR(d) \ -- ((d)->d_type == DT_DIR || DIRENT_MIGHT_BE_SYMLINK (d)) -- --#else /* !HAVE_D_TYPE */ --# define DIRENT_MUST_BE(d, t) false --# define DIRENT_MIGHT_BE_SYMLINK(d) true --# define DIRENT_MIGHT_BE_DIR(d) true --#endif /* HAVE_D_TYPE */ -- --/* If the system has the `struct dirent64' type we use it internally. */ --#if defined _LIBC && !defined COMPILE_GLOB64 -- --# if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ --# define CONVERT_D_INO(d64, d32) --# else --# define CONVERT_D_INO(d64, d32) \ -- (d64)->d_ino = (d32)->d_ino; --# endif -- --# ifdef _DIRENT_HAVE_D_TYPE --# define CONVERT_D_TYPE(d64, d32) \ -- (d64)->d_type = (d32)->d_type; --# else --# define CONVERT_D_TYPE(d64, d32) --# endif -- --# define CONVERT_DIRENT_DIRENT64(d64, d32) \ -- strcpy ((d64)->d_name, (d32)->d_name); \ -- CONVERT_D_INO (d64, d32) \ -- CONVERT_D_TYPE (d64, d32) --#endif -- -- --#if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ --/* Posix does not require that the d_ino field be present, and some -- systems do not provide it. */ --# define REAL_DIR_ENTRY(dp) 1 --#else --# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) --#endif /* POSIX */ -- - #include - #include -- --/* NAME_MAX is usually defined in or . */ --#include --#ifndef NAME_MAX --# define NAME_MAX (sizeof (((struct dirent *) 0)->d_name)) --#endif -- - #include - - #ifdef _LIBC -@@ -180,8 +121,111 @@ - - static const char *next_brace_sub (const char *begin, int flags) __THROWNL; - -+/* A representation of a directory entry which does not depend on the -+ layout of struct dirent, or the size of ino_t. */ -+struct readdir_result -+{ -+ const char *name; -+# if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE -+ uint8_t type; -+# endif -+ bool skip_entry; -+}; -+ -+# if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE -+/* Initializer based on the d_type member of struct dirent. */ -+# define D_TYPE_TO_RESULT(source) (source)->d_type, -+ -+/* True if the directory entry D might be a symbolic link. */ -+static bool -+readdir_result_might_be_symlink (struct readdir_result d) -+{ -+ return d.type == DT_UNKNOWN || d.type == DT_LNK; -+} -+ -+/* True if the directory entry D might be a directory. */ -+static bool -+readdir_result_might_be_dir (struct readdir_result d) -+{ -+ return d.type == DT_DIR || readdir_result_might_be_symlink (d); -+} -+# else /* defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE */ -+# define D_TYPE_TO_RESULT(source) -+ -+/* If we do not have type information, symbolic links and directories -+ are always a possibility. */ -+ -+static bool -+readdir_result_might_be_symlink (struct readdir_result d) -+{ -+ return true; -+} -+ -+static bool -+readdir_result_might_be_dir (struct readdir_result d) -+{ -+ return true; -+} -+ -+# endif /* defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE */ -+ -+# if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ -+/* Initializer for skip_entry. POSIX does not require that the d_ino -+ field be present, and some systems do not provide it. */ -+# define D_INO_TO_RESULT(source) false, -+# else -+# define D_INO_TO_RESULT(source) (source)->d_ino == 0, -+# endif -+ -+/* Construct an initializer for a struct readdir_result object from a -+ struct dirent *. No copy of the name is made. */ -+#define READDIR_RESULT_INITIALIZER(source) \ -+ { \ -+ source->d_name, \ -+ D_TYPE_TO_RESULT (source) \ -+ D_INO_TO_RESULT (source) \ -+ } -+ - #endif /* !defined _LIBC || !defined GLOB_ONLY_P */ - -+/* Call gl_readdir on STREAM. This macro can be overridden to reduce -+ type safety if an old interface version needs to be supported. */ -+#ifndef GL_READDIR -+# define GL_READDIR(pglob, stream) ((pglob)->gl_readdir (stream)) -+#endif -+ -+/* Extract name and type from directory entry. No copy of the name is -+ made. If SOURCE is NULL, result name is NULL. Keep in sync with -+ convert_dirent64 below. */ -+static struct readdir_result -+convert_dirent (const struct dirent *source) -+{ -+ if (source == NULL) -+ { -+ struct readdir_result result = { NULL, }; -+ return result; -+ } -+ struct readdir_result result = READDIR_RESULT_INITIALIZER (source); -+ return result; -+} -+ -+#ifndef COMPILE_GLOB64 -+/* Like convert_dirent, but works on struct dirent64 instead. Keep in -+ sync with convert_dirent above. */ -+static struct readdir_result -+convert_dirent64 (const struct dirent64 *source) -+{ -+ if (source == NULL) -+ { -+ struct readdir_result result = { NULL, }; -+ return result; -+ } -+ struct readdir_result result = READDIR_RESULT_INITIALIZER (source); -+ return result; -+} -+#endif -+ -+ - #ifndef attribute_hidden - # define attribute_hidden - #endif -@@ -1538,55 +1582,36 @@ glob_in_dir (const char *pattern, const - - while (1) - { -- const char *name; --#if defined _LIBC && !defined COMPILE_GLOB64 -- struct dirent64 *d; -- union -- { -- struct dirent64 d64; -- char room [offsetof (struct dirent64, d_name[0]) -- + NAME_MAX + 1]; -- } -- d64buf; -- -- if (__glibc_unlikely (flags & GLOB_ALTDIRFUNC)) -- { -- struct dirent *d32 = (*pglob->gl_readdir) (stream); -- if (d32 != NULL) -- { -- CONVERT_DIRENT_DIRENT64 (&d64buf.d64, d32); -- d = &d64buf.d64; -- } -- else -- d = NULL; -- } -- else -- d = __readdir64 (stream); -+ struct readdir_result d; -+ { -+ if (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)) -+ d = convert_dirent (GL_READDIR (pglob, stream)); -+ else -+ { -+#ifdef COMPILE_GLOB64 -+ d = convert_dirent (__readdir (stream)); - #else -- struct dirent *d = (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) -- ? ((struct dirent *) -- (*pglob->gl_readdir) (stream)) -- : __readdir (stream)); -+ d = convert_dirent64 (__readdir64 (stream)); - #endif -- if (d == NULL) -+ } -+ } -+ if (d.name == NULL) - break; -- if (! REAL_DIR_ENTRY (d)) -+ if (d.skip_entry) - continue; - - /* If we shall match only directories use the information - provided by the dirent call if possible. */ -- if ((flags & GLOB_ONLYDIR) && !DIRENT_MIGHT_BE_DIR (d)) -+ if ((flags & GLOB_ONLYDIR) && !readdir_result_might_be_dir (d)) - continue; - -- name = d->d_name; -- -- if (fnmatch (pattern, name, fnm_flags) == 0) -+ if (fnmatch (pattern, d.name, fnm_flags) == 0) - { - /* If the file we found is a symlink we have to - make sure the target file exists. */ -- if (!DIRENT_MIGHT_BE_SYMLINK (d) -- || link_exists_p (dfd, directory, dirlen, name, pglob, -- flags)) -+ if (!readdir_result_might_be_symlink (d) -+ || link_exists_p (dfd, directory, dirlen, d.name, -+ pglob, flags)) - { - if (cur == names->count) - { -@@ -1606,7 +1631,7 @@ glob_in_dir (const char *pattern, const - names = newnames; - cur = 0; - } -- names->name[cur] = strdup (d->d_name); -+ names->name[cur] = strdup (d.name); - if (names->name[cur] == NULL) - goto memory_error; - ++cur; -Index: glibc-2.23/sysdeps/unix/sysv/linux/i386/glob64.c -=================================================================== ---- glibc-2.23.orig/sysdeps/unix/sysv/linux/i386/glob64.c -+++ glibc-2.23/sysdeps/unix/sysv/linux/i386/glob64.c -@@ -1,3 +1,21 @@ -+/* Two glob variants with 64-bit support, for dirent64 and __olddirent64. -+ Copyright (C) 1998-2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ - #include - #include - #include -@@ -38,11 +56,15 @@ int __old_glob64 (const char *__pattern, - - #undef dirent - #define dirent __old_dirent64 -+#undef GL_READDIR -+# define GL_READDIR(pglob, stream) \ -+ ((struct __old_dirent64 *) (pglob)->gl_readdir (stream)) - #undef __readdir - #define __readdir(dirp) __old_readdir64 (dirp) - #undef glob - #define glob(pattern, flags, errfunc, pglob) \ - __old_glob64 (pattern, flags, errfunc, pglob) -+#define convert_dirent __old_convert_dirent - #define glob_in_dir __old_glob_in_dir - #define GLOB_ATTRIBUTE attribute_compat_text_section - diff --git a/0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch b/0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch deleted file mode 100644 index ab490fd..0000000 --- a/0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch +++ /dev/null @@ -1,132 +0,0 @@ -2016-03-07 Florian Weimer - - [BZ #19610] - * elf/ldconfig.c (opt_link): Update comment. - (options): Update help string for option -X. - (search_dir): Unlink stale symbolic link only if updating symbolic - links. - * elf/tst-ldconfig-X.sh: New file. - * elf/Makefile (tests-special): Add tst-ldconfig-X.out. - (tst-ldconfig-X.out): New rule to run tst-ldconfig-X.sh. - -Index: glibc-2.23/elf/Makefile -=================================================================== ---- glibc-2.23.orig/elf/Makefile -+++ glibc-2.23/elf/Makefile -@@ -163,7 +163,8 @@ endif - endif - ifeq ($(run-built-tests),yes) - tests-special += $(objpfx)tst-leaks1-mem.out \ -- $(objpfx)tst-leaks1-static-mem.out $(objpfx)noload-mem.out -+ $(objpfx)tst-leaks1-static-mem.out $(objpfx)noload-mem.out \ -+ $(objpfx)tst-ldconfig-X.out - endif - tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -@@ -1252,3 +1253,7 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin - $(objpfx)tst-prelink-conflict.out - cmp $^ > $@; \ - $(evaluate-test) -+ -+$(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig -+ $(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \ -+ $(evaluate-test) -Index: glibc-2.23/elf/ldconfig.c -=================================================================== ---- glibc-2.23.orig/elf/ldconfig.c -+++ glibc-2.23/elf/ldconfig.c -@@ -100,7 +100,8 @@ int opt_format = 1; - /* Build cache. */ - static int opt_build_cache = 1; - --/* Generate links. */ -+/* Enable symbolic link processing. If set, create or update symbolic -+ links, and remove stale symbolic links. */ - static int opt_link = 1; - - /* Only process directories specified on the command line. */ -@@ -141,7 +142,7 @@ static const struct argp_option options[ - { "print-cache", 'p', NULL, 0, N_("Print cache"), 0}, - { "verbose", 'v', NULL, 0, N_("Generate verbose messages"), 0}, - { NULL, 'N', NULL, 0, N_("Don't build cache"), 0}, -- { NULL, 'X', NULL, 0, N_("Don't generate links"), 0}, -+ { NULL, 'X', NULL, 0, N_("Don't update symbolic links"), 0}, - { NULL, 'r', N_("ROOT"), 0, N_("Change to and use ROOT as root directory"), 0}, - { NULL, 'C', N_("CACHE"), 0, N_("Use CACHE as cache file"), 0}, - { NULL, 'f', N_("CONF"), 0, N_("Use CONF as configuration file"), 0}, -@@ -800,7 +801,7 @@ search_dir (const struct dir_entry *entr - error (0, errno, _("Cannot stat %s"), file_name); - - /* Remove stale symlinks. */ -- if (strstr (direntry->d_name, ".so.")) -+ if (opt_link && strstr (direntry->d_name, ".so.")) - unlink (real_file_name); - continue; - } -Index: glibc-2.23/elf/tst-ldconfig-X.sh -=================================================================== ---- /dev/null -+++ glibc-2.23/elf/tst-ldconfig-X.sh -@@ -0,0 +1,62 @@ -+#!/bin/sh -+# Test that ldconfig -X does not remove stale symbolic links. -+# Copyright (C) 2000-2016 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 -+# modify it under the terms of the GNU Lesser General Public -+# License as published by the Free Software Foundation; either -+# version 2.1 of the License, or (at your option) any later version. -+ -+# The GNU C Library is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# Lesser General Public License for more details. -+ -+# You should have received a copy of the GNU Lesser General Public -+# License along with the GNU C Library; if not, see -+# . -+ -+set -ex -+ -+common_objpfx=$1 -+test_wrapper_env=$2 -+run_program_env=$3 -+ -+testroot="${common_objpfx}elf/bug19610-test-directory" -+cleanup () { -+ rm -rf "$testroot" -+} -+trap cleanup 0 -+ -+rm -rf "$testroot" -+mkdir -p $testroot/lib $testroot/etc -+ -+# Relative symbolic link target. -+ln -s libdoesnotexist.so.1.1 $testroot/lib/libdoesnotexist.so.1 -+ -+# Absolute symbolic link target. -+ln -s $testroot/opt/sw/lib/libdoesnotexist2.so.1.1 $testroot/lib/ -+ -+errors=0 -+check_files () { -+ for name in libdoesnotexist.so.1 libdoesnotexist2.so.1.1 ; do -+ path="$testroot/lib/$name" -+ if test ! -h $path ; then -+ echo "error: missing file: $path" -+ errors=1 -+ fi -+ done -+} -+ -+check_files -+ -+${test_wrapper_env} \ -+${run_program_env} \ -+${common_objpfx}elf/ldconfig -X -f /dev/null \ -+ -C $testroot/etc/ld.so.cache \ -+ $testroot/lib -+ -+check_files -+ -+exit $errors diff --git a/0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch b/0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch deleted file mode 100644 index 8851a4e..0000000 --- a/0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch +++ /dev/null @@ -1,158 +0,0 @@ -2016-03-31 Florian Weimer - - [BZ #19509] - * elf/dl-lookup.c (_dl_lookup_symbol_x): Report error even if - skip_map != NULL. - * elf/tst-dlsym-error.c: New file. - * elf/Makefile (tests): Add tst-dlsym-error. - (tst-dlsym-error): Link against libdl. - -Index: glibc-2.23/elf/Makefile -=================================================================== ---- glibc-2.23.orig/elf/Makefile -+++ glibc-2.23/elf/Makefile -@@ -149,7 +149,7 @@ tests += loadtest restest1 preloadtest l - tst-nodelete) \ - tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \ - tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ -- tst-nodelete2 tst-audit11 tst-audit12 -+ tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error - # reldep9 - ifeq ($(build-hardcoded-path-in-tests),yes) - tests += tst-dlopen-aout -@@ -1257,3 +1257,5 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin - $(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig - $(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \ - $(evaluate-test) -+ -+$(objpfx)tst-dlsym-error: $(libdl) -Index: glibc-2.23/elf/dl-lookup.c -=================================================================== ---- glibc-2.23.orig/elf/dl-lookup.c -+++ glibc-2.23/elf/dl-lookup.c -@@ -858,7 +858,6 @@ _dl_lookup_symbol_x (const char *undef_n - if (__glibc_unlikely (current_value.s == NULL)) - { - if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) -- && skip_map == NULL - && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) - { - /* We could find no value for a strong reference. */ -Index: glibc-2.23/elf/tst-dlsym-error.c -=================================================================== ---- /dev/null -+++ glibc-2.23/elf/tst-dlsym-error.c -@@ -0,0 +1,113 @@ -+/* Test error reporting for dlsym, dlvsym failures. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+ -+/* Used to disambiguate symbol names. */ -+static int counter; -+ -+static void -+test_one (void *handle, const char *name, void *(func) (void *, const char *), -+ const char *suffix) -+{ -+ ++counter; -+ char symbol[32]; -+ snprintf (symbol, sizeof (symbol), "no_such_symbol_%d", counter); -+ char *expected_message; -+ if (asprintf (&expected_message, ": undefined symbol: %s%s", -+ symbol, suffix) < 0) -+ { -+ printf ("error: asprintf: %m\n"); -+ abort (); -+ } -+ -+ void *addr = func (handle, symbol); -+ if (addr != NULL) -+ { -+ printf ("error: %s: found symbol \"no_such_symbol\"\n", name); -+ abort (); -+ } -+ const char *message = dlerror (); -+ if (message == NULL) -+ { -+ printf ("error: %s: missing error message\n", name); -+ abort (); -+ } -+ const char *message_without_path = strchrnul (message, ':'); -+ if (strcmp (message_without_path, expected_message) != 0) -+ { -+ printf ("error: %s: unexpected error message: %s\n", name, message); -+ abort (); -+ } -+ free (expected_message); -+ -+ message = dlerror (); -+ if (message != NULL) -+ { -+ printf ("error: %s: unexpected error message: %s\n", name, message); -+ abort (); -+ } -+} -+ -+static void -+test_handles (const char *name, void *(func) (void *, const char *), -+ const char *suffix) -+{ -+ test_one (RTLD_DEFAULT, name, func, suffix); -+ test_one (RTLD_NEXT, name, func, suffix); -+ -+ void *handle = dlopen (LIBC_SO, RTLD_LAZY); -+ if (handle == NULL) -+ { -+ printf ("error: cannot dlopen %s: %s\n", LIBC_SO, dlerror ()); -+ abort (); -+ } -+ test_one (handle, name, func, suffix); -+ dlclose (handle); -+} -+ -+static void * -+dlvsym_no_such_version (void *handle, const char *name) -+{ -+ return dlvsym (handle, name, "NO_SUCH_VERSION"); -+} -+ -+static void * -+dlvsym_glibc_private (void *handle, const char *name) -+{ -+ return dlvsym (handle, name, "GLIBC_PRIVATE"); -+} -+ -+static int -+do_test (void) -+{ -+ test_handles ("dlsym", dlsym, ""); -+ test_handles ("dlvsym", dlvsym_no_such_version, -+ ", version NO_SUCH_VERSION"); -+ test_handles ("dlvsym", dlvsym_glibc_private, -+ ", version GLIBC_PRIVATE"); -+ -+ return 0; -+} -+ -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/0052-Fix-tst-dlsym-error-build.patch b/0052-Fix-tst-dlsym-error-build.patch deleted file mode 100644 index 5a0bed9..0000000 --- a/0052-Fix-tst-dlsym-error-build.patch +++ /dev/null @@ -1,16 +0,0 @@ -2016-03-31 Adhemerval Zanella - - * elf/tst-dlsym-error.c: Include for strchrnul. - -Index: glibc-2.23/elf/tst-dlsym-error.c -=================================================================== ---- glibc-2.23.orig/elf/tst-dlsym-error.c -+++ glibc-2.23/elf/tst-dlsym-error.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - /* Used to disambiguate symbol names. */ - static int counter; diff --git a/0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch b/0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch deleted file mode 100644 index 95ac610..0000000 --- a/0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch +++ /dev/null @@ -1,46 +0,0 @@ -2016-02-19 Florian Weimer - - [BZ #19581] - * locales/sr_ME (date_fmt): Remove newline. - * locales/sr_RS (date_fmt): Likewise. - * locales/sr_RS@latin (date_fmt): Likewise. - -Index: glibc-2.23/localedata/locales/sr_ME -=================================================================== ---- glibc-2.23.orig/localedata/locales/sr_ME -+++ glibc-2.23/localedata/locales/sr_ME -@@ -119,7 +119,7 @@ am_pm "";"" - t_fmt_ampm "" - date_fmt "/ - / --" -+" - week 7;19971130;4 - first_weekday 2 - first_workday 2 -Index: glibc-2.23/localedata/locales/sr_RS -=================================================================== ---- glibc-2.23.orig/localedata/locales/sr_RS -+++ glibc-2.23/localedata/locales/sr_RS -@@ -300,7 +300,7 @@ am_pm "";"" - t_fmt_ampm "" - date_fmt "/ - / --" -+" - week 7;19971130;4 - first_weekday 2 - first_workday 2 -Index: glibc-2.23/localedata/locales/sr_RS@latin -=================================================================== ---- glibc-2.23.orig/localedata/locales/sr_RS@latin -+++ glibc-2.23/localedata/locales/sr_RS@latin -@@ -120,7 +120,7 @@ am_pm "";"" - t_fmt_ampm "" - date_fmt "/ - / --" -+" - week 7;19971130;4 - first_weekday 2 - first_workday 2 diff --git a/0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch b/0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch deleted file mode 100644 index 12bde6f..0000000 --- a/0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch +++ /dev/null @@ -1,150 +0,0 @@ -Index: glibc-2.23/elf/Makefile -=================================================================== ---- glibc-2.23.orig/elf/Makefile -+++ glibc-2.23/elf/Makefile -@@ -149,7 +149,7 @@ tests += loadtest restest1 preloadtest l - tst-nodelete) \ - tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \ - tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ -- tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error -+ tst-nodelete2 tst-audit11 tst-audit12 - # reldep9 - ifeq ($(build-hardcoded-path-in-tests),yes) - tests += tst-dlopen-aout -@@ -1257,5 +1257,3 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin - $(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig - $(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \ - $(evaluate-test) -- --$(objpfx)tst-dlsym-error: $(libdl) -Index: glibc-2.23/elf/dl-lookup.c -=================================================================== ---- glibc-2.23.orig/elf/dl-lookup.c -+++ glibc-2.23/elf/dl-lookup.c -@@ -858,6 +858,7 @@ _dl_lookup_symbol_x (const char *undef_n - if (__glibc_unlikely (current_value.s == NULL)) - { - if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) -+ && skip_map == NULL - && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) - { - /* We could find no value for a strong reference. */ -Index: glibc-2.23/elf/tst-dlsym-error.c -=================================================================== ---- glibc-2.23.orig/elf/tst-dlsym-error.c -+++ /dev/null -@@ -1,114 +0,0 @@ --/* Test error reporting for dlsym, dlvsym failures. -- Copyright (C) 2016 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 -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#include --#include --#include --#include -- --/* Used to disambiguate symbol names. */ --static int counter; -- --static void --test_one (void *handle, const char *name, void *(func) (void *, const char *), -- const char *suffix) --{ -- ++counter; -- char symbol[32]; -- snprintf (symbol, sizeof (symbol), "no_such_symbol_%d", counter); -- char *expected_message; -- if (asprintf (&expected_message, ": undefined symbol: %s%s", -- symbol, suffix) < 0) -- { -- printf ("error: asprintf: %m\n"); -- abort (); -- } -- -- void *addr = func (handle, symbol); -- if (addr != NULL) -- { -- printf ("error: %s: found symbol \"no_such_symbol\"\n", name); -- abort (); -- } -- const char *message = dlerror (); -- if (message == NULL) -- { -- printf ("error: %s: missing error message\n", name); -- abort (); -- } -- const char *message_without_path = strchrnul (message, ':'); -- if (strcmp (message_without_path, expected_message) != 0) -- { -- printf ("error: %s: unexpected error message: %s\n", name, message); -- abort (); -- } -- free (expected_message); -- -- message = dlerror (); -- if (message != NULL) -- { -- printf ("error: %s: unexpected error message: %s\n", name, message); -- abort (); -- } --} -- --static void --test_handles (const char *name, void *(func) (void *, const char *), -- const char *suffix) --{ -- test_one (RTLD_DEFAULT, name, func, suffix); -- test_one (RTLD_NEXT, name, func, suffix); -- -- void *handle = dlopen (LIBC_SO, RTLD_LAZY); -- if (handle == NULL) -- { -- printf ("error: cannot dlopen %s: %s\n", LIBC_SO, dlerror ()); -- abort (); -- } -- test_one (handle, name, func, suffix); -- dlclose (handle); --} -- --static void * --dlvsym_no_such_version (void *handle, const char *name) --{ -- return dlvsym (handle, name, "NO_SUCH_VERSION"); --} -- --static void * --dlvsym_glibc_private (void *handle, const char *name) --{ -- return dlvsym (handle, name, "GLIBC_PRIVATE"); --} -- --static int --do_test (void) --{ -- test_handles ("dlsym", dlsym, ""); -- test_handles ("dlvsym", dlvsym_no_such_version, -- ", version NO_SUCH_VERSION"); -- test_handles ("dlvsym", dlvsym_glibc_private, -- ", version GLIBC_PRIVATE"); -- -- return 0; --} -- -- --#define TEST_FUNCTION do_test () --#include "../test-skeleton.c" diff --git a/0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch b/0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch deleted file mode 100644 index 856d198..0000000 --- a/0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch +++ /dev/null @@ -1,175 +0,0 @@ -2016-04-29 Florian Weimer - - [BZ #20010] - CVE-2016-3706 - * sysdeps/posix/getaddrinfo.c - (convert_hostent_to_gaih_addrtuple): New function. - (gethosts): Call convert_hostent_to_gaih_addrtuple. - (gaih_inet): Use convert_hostent_to_gaih_addrtuple to convert - AF_INET data. - -Index: glibc-2.23/sysdeps/posix/getaddrinfo.c -=================================================================== ---- glibc-2.23.orig/sysdeps/posix/getaddrinfo.c -+++ glibc-2.23/sysdeps/posix/getaddrinfo.c -@@ -168,9 +168,58 @@ gaih_inet_serv (const char *servicename, - return 0; - } - -+/* Convert struct hostent to a list of struct gaih_addrtuple objects. -+ h_name is not copied, and the struct hostent object must not be -+ deallocated prematurely. *RESULT must be NULL or a pointer to an -+ object allocated using malloc, which is freed. */ -+static bool -+convert_hostent_to_gaih_addrtuple (const struct addrinfo *req, -+ int family, -+ struct hostent *h, -+ struct gaih_addrtuple **result) -+{ -+ free (*result); -+ *result = NULL; -+ -+ /* Count the number of addresses in h->h_addr_list. */ -+ size_t count = 0; -+ for (char **p = h->h_addr_list; *p != NULL; ++p) -+ ++count; -+ -+ /* Report no data if no addresses are available, or if the incoming -+ address size is larger than what we can store. */ -+ if (count == 0 || h->h_length > sizeof (((struct gaih_addrtuple) {}).addr)) -+ return true; -+ -+ struct gaih_addrtuple *array = calloc (count, sizeof (*array)); -+ if (array == NULL) -+ return false; -+ -+ for (size_t i = 0; i < count; ++i) -+ { -+ if (family == AF_INET && req->ai_family == AF_INET6) -+ { -+ /* Perform address mapping. */ -+ array[i].family = AF_INET6; -+ memcpy(array[i].addr + 3, h->h_addr_list[i], sizeof (uint32_t)); -+ array[i].addr[2] = htonl (0xffff); -+ } -+ else -+ { -+ array[i].family = family; -+ memcpy (array[i].addr, h->h_addr_list[i], h->h_length); -+ } -+ array[i].next = array + i + 1; -+ } -+ array[0].name = h->h_name; -+ array[count - 1].next = NULL; -+ -+ *result = array; -+ return true; -+} -+ - #define gethosts(_family, _type) \ - { \ -- int i; \ - int herrno; \ - struct hostent th; \ - struct hostent *h; \ -@@ -219,36 +268,23 @@ gaih_inet_serv (const char *servicename, - } \ - else if (h != NULL) \ - { \ -- for (i = 0; h->h_addr_list[i]; i++) \ -+ /* Make sure that addrmem can be freed. */ \ -+ if (!malloc_addrmem) \ -+ addrmem = NULL; \ -+ if (!convert_hostent_to_gaih_addrtuple (req, _family,h, &addrmem)) \ - { \ -- if (*pat == NULL) \ -- { \ -- *pat = __alloca (sizeof (struct gaih_addrtuple)); \ -- (*pat)->scopeid = 0; \ -- } \ -- uint32_t *addr = (*pat)->addr; \ -- (*pat)->next = NULL; \ -- (*pat)->name = i == 0 ? strdupa (h->h_name) : NULL; \ -- if (_family == AF_INET && req->ai_family == AF_INET6) \ -- { \ -- (*pat)->family = AF_INET6; \ -- addr[3] = *(uint32_t *) h->h_addr_list[i]; \ -- addr[2] = htonl (0xffff); \ -- addr[1] = 0; \ -- addr[0] = 0; \ -- } \ -- else \ -- { \ -- (*pat)->family = _family; \ -- memcpy (addr, h->h_addr_list[i], sizeof(_type)); \ -- } \ -- pat = &((*pat)->next); \ -+ _res.options |= old_res_options & RES_USE_INET6; \ -+ result = -EAI_SYSTEM; \ -+ goto free_and_return; \ - } \ -+ *pat = addrmem; \ -+ /* The conversion uses malloc unconditionally. */ \ -+ malloc_addrmem = true; \ - \ - if (localcanon != NULL && canon == NULL) \ - canon = strdupa (localcanon); \ - \ -- if (_family == AF_INET6 && i > 0) \ -+ if (_family == AF_INET6 && *pat != NULL) \ - got_ipv6 = true; \ - } \ - } -@@ -612,44 +648,16 @@ gaih_inet (const char *name, const struc - { - if (h != NULL) - { -- int i; -- /* We found data, count the number of addresses. */ -- for (i = 0; h->h_addr_list[i]; ++i) -- ; -- if (i > 0 && *pat != NULL) -- --i; -- -- if (__libc_use_alloca (alloca_used -- + i * sizeof (struct gaih_addrtuple))) -- addrmem = alloca_account (i * sizeof (struct gaih_addrtuple), -- alloca_used); -- else -+ /* We found data, convert it. */ -+ if (!convert_hostent_to_gaih_addrtuple -+ (req, AF_INET, h, &addrmem)) - { -- addrmem = malloc (i -- * sizeof (struct gaih_addrtuple)); -- if (addrmem == NULL) -- { -- result = -EAI_MEMORY; -- goto free_and_return; -- } -- malloc_addrmem = true; -- } -- -- /* Now convert it into the list. */ -- struct gaih_addrtuple *addrfree = addrmem; -- for (i = 0; h->h_addr_list[i]; ++i) -- { -- if (*pat == NULL) -- { -- *pat = addrfree++; -- (*pat)->scopeid = 0; -- } -- (*pat)->next = NULL; -- (*pat)->family = AF_INET; -- memcpy ((*pat)->addr, h->h_addr_list[i], -- h->h_length); -- pat = &((*pat)->next); -+ result = -EAI_MEMORY; -+ goto free_and_return; - } -+ *pat = addrmem; -+ /* The conversion uses malloc unconditionally. */ -+ malloc_addrmem = true; - } - } - else diff --git a/0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch b/0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch deleted file mode 100644 index 29897aa..0000000 --- a/0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch +++ /dev/null @@ -1,41 +0,0 @@ -2016-04-14 Stefan Liebler - - * stdio-common/printf_fp.c (__printf_fp_l): - Rename ___printf_fp_l to __printf_fp_l and - remove strong alias. Use libc_hidden_def instead - of ldbl_hidden_def macro. - -Index: glibc-2.23/stdio-common/printf_fp.c -=================================================================== ---- glibc-2.23.orig/stdio-common/printf_fp.c -+++ glibc-2.23/stdio-common/printf_fp.c -@@ -209,9 +209,9 @@ hack_digit (struct hack_digit_param *p) - } - - int --___printf_fp_l (FILE *fp, locale_t loc, -- const struct printf_info *info, -- const void *const *args) -+__printf_fp_l (FILE *fp, locale_t loc, -+ const struct printf_info *info, -+ const void *const *args) - { - /* The floating-point value to output. */ - union -@@ -1248,14 +1248,13 @@ ___printf_fp_l (FILE *fp, locale_t loc, - } - return done; - } --ldbl_hidden_def (___printf_fp_l, __printf_fp_l) --ldbl_strong_alias (___printf_fp_l, __printf_fp_l) -+libc_hidden_def (__printf_fp_l) - - int - ___printf_fp (FILE *fp, const struct printf_info *info, - const void *const *args) - { -- return ___printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args); -+ return __printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args); - } - ldbl_hidden_def (___printf_fp, __printf_fp) - ldbl_strong_alias (___printf_fp, __printf_fp) diff --git a/_service b/_service index 1aa053b..afda933 100644 --- a/_service +++ b/_service @@ -1,6 +1,6 @@ - 2.23.90.%cd.g%h + 2.24.90.%cd.g%h git://sourceware.org/git/glibc git diff --git a/clntudp-call-alloca.patch b/clntudp-call-alloca.patch deleted file mode 100644 index c848131..0000000 --- a/clntudp-call-alloca.patch +++ /dev/null @@ -1,41 +0,0 @@ -2016-05-23 Florian Weimer - - CVE-2016-4429 - [BZ #20112] - * sunrpc/clnt_udp.c (clntudp_call): Use malloc/free for the error - payload. - -Index: glibc-2.23/sunrpc/clnt_udp.c -=================================================================== ---- glibc-2.23.orig/sunrpc/clnt_udp.c -+++ glibc-2.23/sunrpc/clnt_udp.c -@@ -391,9 +391,15 @@ send_again: - struct sock_extended_err *e; - struct sockaddr_in err_addr; - struct iovec iov; -- char *cbuf = (char *) alloca (outlen + 256); -+ char *cbuf = malloc (outlen + 256); - int ret; - -+ if (cbuf == NULL) -+ { -+ cu->cu_error.re_errno = errno; -+ return (cu->cu_error.re_status = RPC_CANTRECV); -+ } -+ - iov.iov_base = cbuf + 256; - iov.iov_len = outlen; - msg.msg_name = (void *) &err_addr; -@@ -418,10 +424,12 @@ send_again: - cmsg = CMSG_NXTHDR (&msg, cmsg)) - if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR) - { -+ free (cbuf); - e = (struct sock_extended_err *) CMSG_DATA(cmsg); - cu->cu_error.re_errno = e->ee_errno; - return (cu->cu_error.re_status = RPC_CANTRECV); - } -+ free (cbuf); - } - #endif - do diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch index 3000d7e..3546638 100644 --- a/fnmatch-collating-elements.patch +++ b/fnmatch-collating-elements.patch @@ -29,16 +29,14 @@ Index: glibc-2.22/posix/Makefile =================================================================== --- glibc-2.22.orig/posix/Makefile +++ glibc-2.22/posix/Makefile -@@ -87,7 +87,8 @@ tests := tstgetopt testfnm runtests run - bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ +@@ -87,6 +87,7 @@ tests := tstgetopt testfnm runtests run bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \ tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ -- tst-fnmatch3 bug-regex36 tst-getaddrinfo5 -+ tst-fnmatch3 bug-regex36 tst-fnmatch4 tst-fnmatch5 \ -+ tst-getaddrinfo5 + tst-fnmatch3 bug-regex36 tst-getaddrinfo5 \ ++ tst-fnmatch4 tst-fnmatch5 \ + tst-posix_spawn-fd xtests := bug-ga2 ifeq (yes,$(build-shared)) - test-srcs := globtest Index: glibc-2.22/posix/fnmatch.c =================================================================== --- glibc-2.22.orig/posix/fnmatch.c diff --git a/glibc-2.23.tar.xz b/glibc-2.23.tar.xz deleted file mode 100644 index 549667e..0000000 --- a/glibc-2.23.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 -size 13455260 diff --git a/glibc-2.23.tar.xz.sig b/glibc-2.23.tar.xz.sig deleted file mode 100644 index 377ae1e..0000000 --- a/glibc-2.23.tar.xz.sig +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQEcBAABAgAGBQJWxqmXAAoJECXvCkNsKkr/RAcIALXtkYD/eJ2DM+PBWv+/8UD6 -iT2PAjaEhWWbSOu+u9DonCm9FjVjwXZSxOhtNt5x4l4SQfNVMnYc+/m6O30JKhrq -5spaVhL3v0aqxWaIqLapAlG3JuQFc2ItOW+W191MYSPANB366pUW0Z28//ccCifq -8q/hLiB6KXBdHkDX7odtYNkUQY5Ql+Ikkjcxt5tS8JOmBHX6ZJ9aACFeX7AuxxfE -l9DFnYLDzpNdxXJpOEZRprSDJizV84JiaN9XvuWjQHd1W2IeRYiwTxI0EmOO8cOD -ldHkzmkABkfOfswcYlp294IYXp3a+Rvn+wNHQFLwxdnIbeUZ/bd4t49UWDgBp1w= -=DBf0 ------END PGP SIGNATURE----- diff --git a/glibc-2.24.tar.xz b/glibc-2.24.tar.xz new file mode 100644 index 0000000..5c42f1e --- /dev/null +++ b/glibc-2.24.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 +size 13554048 diff --git a/glibc-2.24.tar.xz.sig b/glibc-2.24.tar.xz.sig new file mode 100644 index 0000000..6e4e2aa --- /dev/null +++ b/glibc-2.24.tar.xz.sig @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJXo1gPAAoJEBZ5K06iU0D4XQcP/3979bgeQZFIzdhhW9qDGf8y +3Zkij6WyytpSM0xm80bZCTD/4fkVYkiDOhgzfghrI0T3BQWitrQIUS4q94VtbeRk +i0QbPdYZ6xmnS56OcyxK+hdqr8XpGxRwfCZH+hCEbXjGblYiViXY54VSL2oWj6q9 +Lolyi7LoZZg3nM7Hf7/yEqa38eKq0N6654MXaVZi9wz31YHweJHsI1rdUkYEpWxp +YIc6eCmhZpyj09Vk7s4qriNqBXmBLZbAcqOAL7hzc1H4aRVGLWdR6JQAClOQtQ6b +SrW4/MO4re5coz1EYWJLpzkDOnH/pkhA0gPeM7PDm+3t2DJa/6k01Jljxjswfujf +EflmRw/FRG08/QADaBrtmu8s79/07xJUjf/qLhg0YIJL2aBqaVNkxSZhE+aOIOXD +FrqX+fVhG4FX2YlQ5twDSU+7Uc370Gh7b8QIEOVvd5Tllg52i200aMB2wlVO+Rl5 +oKN21dhbMzzQvJM9IxrBcWoymEE3kQXid+IBZxShg6JOEv9ZKpHKJGRtueJ1EM3R +V44rfJ5hVYn+U872lEgf2jf0w1A0aSMCVAX8N/8BO9NAZ9waM6IBgc3v1ng6uWdn +o4CdOHK6WP+GrbJ8Rbva8co16UHd9Ae1Vcwe5tDU7TxfFFkJ0RPVzVgTdl65+arX +VU1J1Kp1fBvbgwEacwxC +=yUZV +-----END PGP SIGNATURE----- diff --git a/glibc-2.4-china.diff b/glibc-2.4-china.diff index 4a47dc1..e6361d3 100644 --- a/glibc-2.4-china.diff +++ b/glibc-2.4-china.diff @@ -2,16 +2,16 @@ Index: glibc-2.17.90/localedata/locales/zh_TW =================================================================== --- glibc-2.17.90.orig/localedata/locales/zh_TW +++ glibc-2.17.90/localedata/locales/zh_TW -@@ -1,7 +1,7 @@ - comment_char % - escape_char / - % +@@ -8,7 +8,7 @@ + % exempt you from the conditions of the license if your use would + % otherwise be governed by that license. + -% Chinese language locale for Taiwan R.O.C. +% Chinese language locale for Taiwan % charmap: BIG5-CP950 % % Original Author: -@@ -17,7 +17,7 @@ escape_char / +@@ -24,7 +24,7 @@ escape_char / % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf LC_IDENTIFICATION @@ -20,12 +20,3 @@ Index: glibc-2.17.90/localedata/locales/zh_TW source "" address "" contact "" -@@ -25,7 +25,7 @@ email "bug-glibc-locales@gnu.org" - tel "" - fax "" - language "Chinese" --territory "Taiwan R.O.C." -+territory "Taiwan" - revision "0.2" - date "2000-08-02" - % diff --git a/glibc-memset-nontemporal.diff b/glibc-memset-nontemporal.diff deleted file mode 100644 index d6a3489..0000000 --- a/glibc-memset-nontemporal.diff +++ /dev/null @@ -1,40 +0,0 @@ -Fix for bnc #868622, slow memset for large block sizes. - -diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S -index db4fb84..9c42018 100644 ---- a/sysdeps/x86_64/memset.S -+++ b/sysdeps/x86_64/memset.S -@@ -84,6 +84,9 @@ L(loop_start): - movdqu %xmm0, -48(%rdi,%rdx) - movdqu %xmm0, 48(%rdi) - movdqu %xmm0, -64(%rdi,%rdx) -+ mov __x86_shared_cache_size(%rip),%r9d # The largest cache size -+ cmp %r9,%rdx -+ ja L(nt_move) - addq %rdi, %rdx - andq $-64, %rdx - cmpq %rdx, %rcx -@@ -99,6 +102,23 @@ L(loop): - jne L(loop) - rep - ret -+L(nt_move): -+ addq %rdi, %rdx -+ andq $-64, %rdx -+ cmpq %rdx, %rcx -+ je L(return) -+ .p2align 4 -+L(nt_loop): -+ movntdq %xmm0, (%rcx) -+ movntdq %xmm0, 16(%rcx) -+ movntdq %xmm0, 32(%rcx) -+ movntdq %xmm0, 48(%rcx) -+ addq $64, %rcx -+ cmpq %rcx, %rdx -+ jne L(nt_loop) -+ sfence -+ rep -+ ret - L(less_16_bytes): - movq %xmm0, %rcx - testb $24, %dl diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff index e1cbbf1..86a36bf 100644 --- a/glibc-resolv-reload.diff +++ b/glibc-resolv-reload.diff @@ -76,15 +76,14 @@ Index: glibc-2.17.90/resolv/res_libc.c =================================================================== --- glibc-2.17.90.orig/resolv/res_libc.c +++ glibc-2.17.90/resolv/res_libc.c -@@ -22,7 +22,7 @@ +@@ -22,6 +22,7 @@ #include #include #include -- +#include - /* The following bit is copied from res_data.c (where it is #ifdef'ed - out) since res_init() should go into libc.so but the rest of that + extern unsigned long long int __res_initstamp attribute_hidden; + /* We have atomic increment operations on 64-bit platforms. */ @@ -89,12 +89,34 @@ res_init(void) { return (__res_vinit(&_res, 1)); } diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 2ff2ee7..25ae15d 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,99 @@ +------------------------------------------------------------------- +Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de + +- Update to glibc 2.24 + * The minimum Linux kernel version that this version of the GNU C Library + can be used with is 3.2 + * The pap_AN locale has been deleted + * The readdir_r and readdir64_r functions have been deprecated + * The type `union wait' has been removed + * A new NSS action is added to facilitate large distributed system + administration + * The deprecated __malloc_initialize_hook variable has been removed from + the API + * The long unused localedef --old-style option has been removed + * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added + to libm + * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed + (CVE-2016-3075) + * Previously, getaddrinfo copied large amounts of address data to the + stack, even after the fix for CVE-2013-4458 has been applied, + potentially resulting in a stack overflow. getaddrinfo now uses a + heap allocation instead (CVE-2016-3706) + * The glob function suffered from a stack-based buffer overflow when it + was called with the GLOB_ALTDIRFUNC flag and encountered a long file + name (CVE-2016-1234) + * The Sun RPC UDP client could exhaust all available stack space when + flooded with crafted ICMP and UDP messages (CVE-2016-4429) + * The IPv6 name server management code in libresolv could result in a + memory leak for each thread which is created, performs a failing + naming lookup, and exits (CVE-2016-5417) +- startcontext-cantunwind.patch: mark __startcontext as .cantunwind + (bsc#974800, BZ #20435) +- Removed patches: + * 0001-Updated-translations-for-2.23.patch + * 0002-Regenerate-libc.pot-for-2.23.patch + * 0003-Regenerated-configure-scripts.patch + * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch + * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch + * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch + * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch + * 0008-Update-NEWS.patch + * 0009-sln-use-stat64.patch + * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch + * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch + * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch + * 0013-Mention-BZ-19762-in-NEWS.patch + * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch + * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch + * 0016-Fix-resource-leak-in-resolver-bug-19257.patch + * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch + * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch + * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch + * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch + * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch + * 0022-configure-fix-test-usage.patch + * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch + * 0025-getnameinfo-Do-not-preserve-errno.patch + * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch + * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch + * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch + * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch + * 0030-hesiod-Remove-RCS-keywords.patch + * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch + * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch + * 0033-malloc-Remove-NO_THREADS.patch + * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch + * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch + * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch + * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch + * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch + * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch + * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch + * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch + * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch + * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch + * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch + * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch + * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch + * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch + * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch + * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch + * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch + * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch + * 0052-Fix-tst-dlsym-error-build.patch + * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch + * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch + * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch + * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch + * clntudp-call-alloca.patch + * glibc-memset-nontemporal.diff + * nis-initgroups-status.patch + * nscd-gc-crash.patch + * robust-mutex-deadlock.patch + * strncat-avoid-array-bounds-warning.patch + ------------------------------------------------------------------- Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index fd0c742..7eab6fa 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -105,10 +105,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.23 +Version: 2.24 Release: 0 %if !%{build_snapshot} -%define git_id 10ed3a0ffbb4 +%define git_id beb0f59498c3 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -249,73 +249,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Patches from 2.23 branch -Patch1000: 0001-Updated-translations-for-2.23.patch -Patch1001: 0002-Regenerate-libc.pot-for-2.23.patch -Patch1002: 0003-Regenerated-configure-scripts.patch -Patch1003: 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch -Patch1004: 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch -Patch1005: 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch -Patch1006: 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch -Patch1007: 0008-Update-NEWS.patch -Patch1008: 0009-sln-use-stat64.patch -Patch1009: 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch -Patch1010: 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch -Patch1011: 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch -Patch1012: 0013-Mention-BZ-19762-in-NEWS.patch -Patch1013: 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch -Patch1014: 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch -Patch1015: 0016-Fix-resource-leak-in-resolver-bug-19257.patch -Patch1016: 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch -Patch1017: 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch -Patch1018: 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch -Patch1019: 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch -Patch1020: 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch -Patch1021: 0022-configure-fix-test-usage.patch -Patch1022: 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch -Patch1023: 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch -Patch1024: 0025-getnameinfo-Do-not-preserve-errno.patch -Patch1025: 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch -Patch1026: 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch -Patch1027: 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch -Patch1028: 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch -Patch1029: 0030-hesiod-Remove-RCS-keywords.patch -Patch1030: 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch -Patch1031: 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch -Patch1032: 0033-malloc-Remove-NO_THREADS.patch -Patch1033: 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch -Patch1034: 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch -Patch1035: 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch -Patch1036: 0037-malloc-Add-missing-internal_function-attributes-on-f.patch -Patch1037: 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch -Patch1038: 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch -Patch1039: 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch -Patch1040: 0041-nss_dns-Check-address-length-before-creating-addrinf.patch -Patch1041: 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch -Patch1042: 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch -Patch1043: 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch -Patch1044: 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch -Patch1045: 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch -Patch1046: 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch -Patch1047: 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch -Patch1048: 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch -Patch1049: 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch -Patch1050: 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch -Patch1051: 0052-Fix-tst-dlsym-error-build.patch -Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch -Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch -Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch -Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch -# PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) -Patch1056: clntudp-call-alloca.patch -# PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) -Patch1057: nscd-gc-crash.patch -# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) -Patch1058: nis-initgroups-status.patch -# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) -Patch1059: robust-mutex-deadlock.patch -# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) -Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -326,8 +259,6 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2001: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2002: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) -Patch2003: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) Patch2004: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) @@ -336,6 +267,8 @@ Patch2005: nss-files-long-lines-2.patch Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch +# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) +Patch2009: startcontext-cantunwind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -538,76 +471,14 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 -%patch1021 -p1 -%patch1022 -p1 -%patch1023 -p1 -%patch1024 -p1 -%patch1025 -p1 -%patch1026 -p1 -%patch1027 -p1 -%patch1028 -p1 -%patch1029 -p1 -%patch1030 -p1 -%patch1031 -p1 -%patch1032 -p1 -%patch1033 -p1 -%patch1034 -p1 -%patch1035 -p1 -%patch1036 -p1 -%patch1037 -p1 -%patch1038 -p1 -%patch1039 -p1 -%patch1040 -p1 -%patch1041 -p1 -%patch1042 -p1 -%patch1043 -p1 -%patch1044 -p1 -%patch1045 -p1 -%patch1046 -p1 -%patch1047 -p1 -%patch1048 -p1 -%patch1049 -p1 -%patch1050 -p1 -%patch1051 -p1 -%patch1052 -p1 -%patch1053 -p1 -%patch1054 -p1 -%patch1055 -p1 -%patch1056 -p1 -%patch1057 -p1 -%patch1058 -p1 -%patch1059 -p1 -%patch1060 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 -%patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 2ff2ee7..25ae15d 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,99 @@ +------------------------------------------------------------------- +Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de + +- Update to glibc 2.24 + * The minimum Linux kernel version that this version of the GNU C Library + can be used with is 3.2 + * The pap_AN locale has been deleted + * The readdir_r and readdir64_r functions have been deprecated + * The type `union wait' has been removed + * A new NSS action is added to facilitate large distributed system + administration + * The deprecated __malloc_initialize_hook variable has been removed from + the API + * The long unused localedef --old-style option has been removed + * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added + to libm + * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed + (CVE-2016-3075) + * Previously, getaddrinfo copied large amounts of address data to the + stack, even after the fix for CVE-2013-4458 has been applied, + potentially resulting in a stack overflow. getaddrinfo now uses a + heap allocation instead (CVE-2016-3706) + * The glob function suffered from a stack-based buffer overflow when it + was called with the GLOB_ALTDIRFUNC flag and encountered a long file + name (CVE-2016-1234) + * The Sun RPC UDP client could exhaust all available stack space when + flooded with crafted ICMP and UDP messages (CVE-2016-4429) + * The IPv6 name server management code in libresolv could result in a + memory leak for each thread which is created, performs a failing + naming lookup, and exits (CVE-2016-5417) +- startcontext-cantunwind.patch: mark __startcontext as .cantunwind + (bsc#974800, BZ #20435) +- Removed patches: + * 0001-Updated-translations-for-2.23.patch + * 0002-Regenerate-libc.pot-for-2.23.patch + * 0003-Regenerated-configure-scripts.patch + * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch + * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch + * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch + * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch + * 0008-Update-NEWS.patch + * 0009-sln-use-stat64.patch + * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch + * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch + * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch + * 0013-Mention-BZ-19762-in-NEWS.patch + * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch + * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch + * 0016-Fix-resource-leak-in-resolver-bug-19257.patch + * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch + * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch + * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch + * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch + * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch + * 0022-configure-fix-test-usage.patch + * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch + * 0025-getnameinfo-Do-not-preserve-errno.patch + * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch + * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch + * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch + * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch + * 0030-hesiod-Remove-RCS-keywords.patch + * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch + * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch + * 0033-malloc-Remove-NO_THREADS.patch + * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch + * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch + * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch + * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch + * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch + * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch + * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch + * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch + * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch + * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch + * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch + * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch + * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch + * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch + * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch + * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch + * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch + * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch + * 0052-Fix-tst-dlsym-error-build.patch + * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch + * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch + * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch + * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch + * clntudp-call-alloca.patch + * glibc-memset-nontemporal.diff + * nis-initgroups-status.patch + * nscd-gc-crash.patch + * robust-mutex-deadlock.patch + * strncat-avoid-array-bounds-warning.patch + ------------------------------------------------------------------- Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 1412c89..3577b3b 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -104,10 +104,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.23 +Version: 2.24 Release: 0 %if !%{build_snapshot} -%define git_id 10ed3a0ffbb4 +%define git_id beb0f59498c3 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -248,73 +248,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Patches from 2.23 branch -Patch1000: 0001-Updated-translations-for-2.23.patch -Patch1001: 0002-Regenerate-libc.pot-for-2.23.patch -Patch1002: 0003-Regenerated-configure-scripts.patch -Patch1003: 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch -Patch1004: 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch -Patch1005: 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch -Patch1006: 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch -Patch1007: 0008-Update-NEWS.patch -Patch1008: 0009-sln-use-stat64.patch -Patch1009: 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch -Patch1010: 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch -Patch1011: 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch -Patch1012: 0013-Mention-BZ-19762-in-NEWS.patch -Patch1013: 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch -Patch1014: 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch -Patch1015: 0016-Fix-resource-leak-in-resolver-bug-19257.patch -Patch1016: 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch -Patch1017: 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch -Patch1018: 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch -Patch1019: 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch -Patch1020: 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch -Patch1021: 0022-configure-fix-test-usage.patch -Patch1022: 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch -Patch1023: 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch -Patch1024: 0025-getnameinfo-Do-not-preserve-errno.patch -Patch1025: 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch -Patch1026: 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch -Patch1027: 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch -Patch1028: 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch -Patch1029: 0030-hesiod-Remove-RCS-keywords.patch -Patch1030: 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch -Patch1031: 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch -Patch1032: 0033-malloc-Remove-NO_THREADS.patch -Patch1033: 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch -Patch1034: 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch -Patch1035: 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch -Patch1036: 0037-malloc-Add-missing-internal_function-attributes-on-f.patch -Patch1037: 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch -Patch1038: 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch -Patch1039: 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch -Patch1040: 0041-nss_dns-Check-address-length-before-creating-addrinf.patch -Patch1041: 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch -Patch1042: 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch -Patch1043: 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch -Patch1044: 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch -Patch1045: 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch -Patch1046: 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch -Patch1047: 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch -Patch1048: 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch -Patch1049: 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch -Patch1050: 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch -Patch1051: 0052-Fix-tst-dlsym-error-build.patch -Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch -Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch -Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch -Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch -# PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) -Patch1056: clntudp-call-alloca.patch -# PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) -Patch1057: nscd-gc-crash.patch -# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) -Patch1058: nis-initgroups-status.patch -# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) -Patch1059: robust-mutex-deadlock.patch -# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) -Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -325,8 +258,6 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2001: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2002: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) -Patch2003: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) Patch2004: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) @@ -335,6 +266,8 @@ Patch2005: nss-files-long-lines-2.patch Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch +# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) +Patch2009: startcontext-cantunwind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -538,76 +471,14 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 -%patch1021 -p1 -%patch1022 -p1 -%patch1023 -p1 -%patch1024 -p1 -%patch1025 -p1 -%patch1026 -p1 -%patch1027 -p1 -%patch1028 -p1 -%patch1029 -p1 -%patch1030 -p1 -%patch1031 -p1 -%patch1032 -p1 -%patch1033 -p1 -%patch1034 -p1 -%patch1035 -p1 -%patch1036 -p1 -%patch1037 -p1 -%patch1038 -p1 -%patch1039 -p1 -%patch1040 -p1 -%patch1041 -p1 -%patch1042 -p1 -%patch1043 -p1 -%patch1044 -p1 -%patch1045 -p1 -%patch1046 -p1 -%patch1047 -p1 -%patch1048 -p1 -%patch1049 -p1 -%patch1050 -p1 -%patch1051 -p1 -%patch1052 -p1 -%patch1053 -p1 -%patch1054 -p1 -%patch1055 -p1 -%patch1056 -p1 -%patch1057 -p1 -%patch1058 -p1 -%patch1059 -p1 -%patch1060 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 -%patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 2ff2ee7..25ae15d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,99 @@ +------------------------------------------------------------------- +Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de + +- Update to glibc 2.24 + * The minimum Linux kernel version that this version of the GNU C Library + can be used with is 3.2 + * The pap_AN locale has been deleted + * The readdir_r and readdir64_r functions have been deprecated + * The type `union wait' has been removed + * A new NSS action is added to facilitate large distributed system + administration + * The deprecated __malloc_initialize_hook variable has been removed from + the API + * The long unused localedef --old-style option has been removed + * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added + to libm + * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed + (CVE-2016-3075) + * Previously, getaddrinfo copied large amounts of address data to the + stack, even after the fix for CVE-2013-4458 has been applied, + potentially resulting in a stack overflow. getaddrinfo now uses a + heap allocation instead (CVE-2016-3706) + * The glob function suffered from a stack-based buffer overflow when it + was called with the GLOB_ALTDIRFUNC flag and encountered a long file + name (CVE-2016-1234) + * The Sun RPC UDP client could exhaust all available stack space when + flooded with crafted ICMP and UDP messages (CVE-2016-4429) + * The IPv6 name server management code in libresolv could result in a + memory leak for each thread which is created, performs a failing + naming lookup, and exits (CVE-2016-5417) +- startcontext-cantunwind.patch: mark __startcontext as .cantunwind + (bsc#974800, BZ #20435) +- Removed patches: + * 0001-Updated-translations-for-2.23.patch + * 0002-Regenerate-libc.pot-for-2.23.patch + * 0003-Regenerated-configure-scripts.patch + * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch + * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch + * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch + * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch + * 0008-Update-NEWS.patch + * 0009-sln-use-stat64.patch + * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch + * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch + * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch + * 0013-Mention-BZ-19762-in-NEWS.patch + * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch + * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch + * 0016-Fix-resource-leak-in-resolver-bug-19257.patch + * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch + * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch + * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch + * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch + * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch + * 0022-configure-fix-test-usage.patch + * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch + * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch + * 0025-getnameinfo-Do-not-preserve-errno.patch + * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch + * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch + * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch + * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch + * 0030-hesiod-Remove-RCS-keywords.patch + * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch + * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch + * 0033-malloc-Remove-NO_THREADS.patch + * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch + * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch + * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch + * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch + * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch + * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch + * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch + * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch + * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch + * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch + * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch + * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch + * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch + * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch + * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch + * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch + * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch + * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch + * 0052-Fix-tst-dlsym-error-build.patch + * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch + * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch + * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch + * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch + * clntudp-call-alloca.patch + * glibc-memset-nontemporal.diff + * nis-initgroups-status.patch + * nscd-gc-crash.patch + * robust-mutex-deadlock.patch + * strncat-avoid-array-bounds-warning.patch + ------------------------------------------------------------------- Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring index e070aa84aee0a70c7e718dca3ed735dd6edd77fb8864f1bda0ea9cd6a1bd9522..afbce5a6c5045a00ac212eb1ab0232043fb9b9fa7ca86637a915faefdfbb8fbc 100644 GIT binary patch delta 3394 zcmZ|RXEfW7!oYEYkQgy*ud3QwwM&Tcw`x_*RyAtxz3I;?V$}T8*sBDs8nKDmTg@6Z zVzx>tl}2kl&%O8D^PK0Ld*6Ove_nj+f0CxY1l3t_0w7v)i=u4~QhJj2LN>;C2W>aU z^td}uYbP&k`U(d3i`QE`(aNEP&^~H#=qJN3+_2jI4vhNAj9&$Wje$2|`bndu*GmQi z?M_`U8OvOe^R#TMYr`U5Cq6?>etF$=@@r^aY34cheJA7j&+KO)dNHdj#~np~=mV>t zqTmx4@KidsIFM)(BxmY^G~=GkOqt>&MA0vt?Ts8Cs28PLcBI*-3OVTF1bj(p+BiKo z&D3@ECbI}$}PF87t^glHd2`^Wt97s*fYH=&|^I{>S39 zB^XzY&YtuX8+NbzCEF5HL-$@T_sZp~W-kpb;6C7Kc1(aj9I@!X6~m^WQiexJ4!S4! z3?zPKZy15l$)?|S7u&B=a)-BIVtfn1&=Nn*wX8YFdVP1&u! z{PzRXq167GWsh4O^m=2Wk3TRX@da9J{(s^iUp|~?MrcK#;6KmxV#zCAwPW>@_k!U= z0Cwao(~~Zl9!ewGFj7djihj5yxHj=@pRfi$U0r*|b&UGW@=+}0M)UDBLe>ytbNkuR zSrCfiW6XqFT_Z#+F!CxqH-%%OznhyYIShO+XZB30{G0UOYD+veL{a)XZbaeVLL+I0_`<&C67NR{E!a3e?BuUaK7^3{pd#K6{MvYnOZwN@(vtnyJrm+vhi}H zz-0eqtF-6YGAySlidpDO3T~5J=2Ui{A*C2MQq5h`mC)=$%rjxzfUUgdfbV4fb)<5; z#Jyq?@cjf@v`=1k+_2&$dsa%O>gEF9Z)xUx&o1d{9Le2f>R56bf;<7&W6n6H690FO zSKNfg*-idwqO92gjghroUD>fjJpF(^;jt5xEOUl3q;b&b6^ER&@a#6-D+Y*LL20eQ z*NSjW|3VDm89L){z%SxOOtsTd2B1Y@6F*`b6Q`b7%1>Mp4^c?s<6esjXz2+^Q&o6{ zx~m+E0hY&GPa_bq3IX)TQHMn5=Grwo{h+28VhxkJas&h)^!O|Xr5VUuIj?`-QYY3Jpkg8F~3e*9-xYdf$@#^b<;razgK>I8n*YG+^%5f6)l7EhKvIJCm+Ov+ZqDrOk6)hKB}99z|B)U7taTff=WaT{eRjxBIRp22 zdE%KV?j<)N`h#B`tL1|6H`rAm_>4?O`W!bj)1vx9b#6h9wwVI~NhbDPNBp%3R<-O4 zX;h-2$2j%7o2}OhNTbdy0|~0BY=l~}zQ@OSFHXBq7dVBK`3`*lzJqIiH|Nq@+t^;? z#7bP5Qw#|JS`^4pv!$r59wrwPiSrSY9Xn~2Y314dd`r)i7-p*o*^tboftvZ1ywBE? zy-_c1^q?D{dCq_72H$6!rf9Ru;Tv}mY4lMrTtf0I~4z!)>~fK6`c5lH?c6B+h>MH z$dF>ure2^NXd7R;9lpL}bYU)CbL_QR6>A$FXx)5F9j>*fe>+}Qk2MS3 z$fTz~u>UpE>Q2_BR70EyAg}b|M2Z0Qu6%cXX27H06Mr}iQrpEJNk1Y#k)A18Xgw1? zL+_pR3u3m^%sZ(P!)u9sGo4OvrFb3!SWaU^jf_u9xL#xop*1inGA=@1&&n{)3viBTV())YUbX~ z71P|Za!Xsw4e&%s!ZH;}*4JTFq>Xdmja3{hLbDF}T=6O60KLmt$`3Llj=v&2mZBV* zaaI~wiS;)P6}q9?`a~AdI)<&VmJ-jgnr7DnPG^P1U!;v=O7|01oiogcoN7Vx+nIO1 zWpwRx5*}p<^+Danyqpj>pUwlF(X)!SSTIqz!&-*HD}TT3|DLC2_O>=oP56VMJ7Eqq z`uEX{j-KfUobmmT24@b>ODx9+gl9V?6Lp-b7rM^|?pB`g998ZCKEe#lu^I0{IQRHWLVs2=G*4+N< z=;PMYZ`y`n{e;}Ef}Y+%#4l5Iy~y!8wnCDqr5CaePSYwsz7}=wK%)4J_~T>z-o)<@ z$wmt;qSr>iTX(f65V~n-{(_j2(5It9~4;7d4{3+Rjwtv9r;Y=MBqlIS0YL-n|%}isYxI$rP53tCX zmVj4+H-grQ-mTMpSt7<0i<>!p9VWeefG-V8DX02Na-1R($hl2;9~^}w^*NCps6^C! zUg6{MI$sz+vet;2rY^|ZFj%Li6dfc^OPLOV7lB`v)@TP)88XKTlDV@!!uNYTwcfF> zTfoi84{}Mnzt|bNG^P2kC_s~|`Kl1i#gi&bu`OPXn66<7XF(BV^}NFP-sqoN@BCfrlPB}z;@m|p7l~DPpas^sGL5)wVpnNx%x?<; zv}6VC*O?jygRyc(`crPRohKMqUS!6}^%;~`{*pk#KuSW20tu3{{qOX^{yjZ3|C$~W zD1`ps&(om>yVg>?yFVN#eQC=sPPUEH)%M1<3Gl2>KADmDTyLZMs8E%vojlL;XGCMI zYoiOK-=dwZ7}&b{o+bXNdK|wSFvm8E!{58L9?}wb)?(!|o%1F<;eyqbQB*ijX;+w( zi<;6mdKV|xvefpaU$_1{A{@0oTy9WI3CMps*LbO2_JW}{()^mPFhCU7j@dj&=CfC} zls=s==Lv9jX3|J#Kj?%s)mkly)%x`%6)Z<2?>5t$0B6-iv7p!2asn;h8kXZ;pT?1j zxmhEf1suwvrK#N`l@zWm;+Bve?vf1!B-hfsx#i6wJrQgo#0MyR3v%6AK7aOwQeQKj z+VENTT7>Uh`IxsEay*2D3G0cD(Ujuw05Q4-p6^FHw9sk!7zf5 zk6twjD0=x}U39PQsw^ozJfMzi^u`c+b|Wf;Cr6OUU>OQw~2nuo@i zRrB+?v-!k!3EO2blbj*pt3z!i^+(qEAAsLxtb6WT_VE)<_*e%3 delta 1183 zcmV;Q1YrA*g#xkj0kByce*p~yP93CG0SExuXHOrTP@i7Tj+P%QXLLUKj{mJQKIxOj zydyv>4#4Z-{jbKurZE87Q%96NM#k51^EFIL05OK2nb@|7*wq*MjUdl~q4@eyOAot) zCDi1#4;vL;a!@V%CP$M%#1yL(SDGBCTzTXeKDe@asm^sWn955=B$ z9boFkRFiiHt{X3bK5W|w6%e*tmXF~aTja7*{(+(K_5WAd-lw6F#eBLFp7g_=SF>Gj;bAf3WSP@5|9J&lu5if zw)D(;e2w3C*DP>a4A=rdTTFIiIzMmuHF@FI(1QP)Q044cKLVU>AS4 zvwyy1XJ^URfP2LY<5dft&HhXt&TquPwoTxHqDE-t54lmE$^XNvOdA;wb!KxoZ!Uim z%r25kpfV4v?n4gkN-WF!NBszmCu0Mraaer)p zWbW{E4VwK7e<1#E6g-&{+jMu4fZ+x{b${y{g;43Tlq5Qxl=@m_m0kR^8z6_wrNPqn zuj!V&TyCypetQj7BA+^EU0p{NwJ%9nbWlSa!9tHi!u>GX()K08iu4gvLCGys5i&nQ!Jjvv`XJXpj^R97BBm}37oPP0Pceh#mm_uJ@#6pv z;?Xr5k%SXi1Z*-{lW;xz&^P8;O!`85S1fp5)BD5k3gsW%4BQglJ5Eag5di=J zi2)@97y$wR4+R2F9i&wP8w>>r31$I+0162ZCGQGDY${6s8l4CKa&pMsGJlMKZ=53j z2xLo`!NRI!$dO$gl}<3GPR0*9Y?g0CcRl7&r?b60XD6wi5R#&uuj+m)J7TYH#_ad;JY1P4m&%FHi&OdL(1* znJ<__xxE$w?v}D~39T~Enu{`ne5edIJtoP54+Ubc%^A?+Tudd;LSfvkMkg`JnccI- xz}3{ce{Y19(5koE+HI4*k?g3ALHXgwC)QnQM0Q-U9qOD|)X$j#4YTVgq*)#qBIW=9 diff --git a/glibc.spec b/glibc.spec index b383069..ccc1836 100644 --- a/glibc.spec +++ b/glibc.spec @@ -105,10 +105,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.23 +Version: 2.24 Release: 0 %if !%{build_snapshot} -%define git_id 10ed3a0ffbb4 +%define git_id beb0f59498c3 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -249,73 +249,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Patches from 2.23 branch -Patch1000: 0001-Updated-translations-for-2.23.patch -Patch1001: 0002-Regenerate-libc.pot-for-2.23.patch -Patch1002: 0003-Regenerated-configure-scripts.patch -Patch1003: 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch -Patch1004: 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch -Patch1005: 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch -Patch1006: 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch -Patch1007: 0008-Update-NEWS.patch -Patch1008: 0009-sln-use-stat64.patch -Patch1009: 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch -Patch1010: 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch -Patch1011: 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch -Patch1012: 0013-Mention-BZ-19762-in-NEWS.patch -Patch1013: 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch -Patch1014: 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch -Patch1015: 0016-Fix-resource-leak-in-resolver-bug-19257.patch -Patch1016: 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch -Patch1017: 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch -Patch1018: 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch -Patch1019: 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch -Patch1020: 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch -Patch1021: 0022-configure-fix-test-usage.patch -Patch1022: 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch -Patch1023: 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch -Patch1024: 0025-getnameinfo-Do-not-preserve-errno.patch -Patch1025: 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch -Patch1026: 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch -Patch1027: 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch -Patch1028: 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch -Patch1029: 0030-hesiod-Remove-RCS-keywords.patch -Patch1030: 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch -Patch1031: 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch -Patch1032: 0033-malloc-Remove-NO_THREADS.patch -Patch1033: 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch -Patch1034: 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch -Patch1035: 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch -Patch1036: 0037-malloc-Add-missing-internal_function-attributes-on-f.patch -Patch1037: 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch -Patch1038: 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch -Patch1039: 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch -Patch1040: 0041-nss_dns-Check-address-length-before-creating-addrinf.patch -Patch1041: 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch -Patch1042: 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch -Patch1043: 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch -Patch1044: 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch -Patch1045: 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch -Patch1046: 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch -Patch1047: 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch -Patch1048: 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch -Patch1049: 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch -Patch1050: 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch -Patch1051: 0052-Fix-tst-dlsym-error-build.patch -Patch1052: 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch -Patch1053: 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch -Patch1054: 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch -Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch -# PATCH-FIX-UPSTREAM sunrpc: Do not use alloca in clntudp_call (CVE-2016-4429, BZ #20112) -Patch1056: clntudp-call-alloca.patch -# PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) -Patch1057: nscd-gc-crash.patch -# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) -Patch1058: nis-initgroups-status.patch -# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) -Patch1059: robust-mutex-deadlock.patch -# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) -Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -326,8 +259,6 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2001: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2002: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) -Patch2003: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) Patch2004: fnmatch-collating-elements.patch # PATCH-FIX-UPSTREAM Properly reread entry after failure in nss_files getent function (BZ #18991) @@ -336,6 +267,8 @@ Patch2005: nss-files-long-lines-2.patch Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch +# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) +Patch2009: startcontext-cantunwind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -538,76 +471,14 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 -%patch1021 -p1 -%patch1022 -p1 -%patch1023 -p1 -%patch1024 -p1 -%patch1025 -p1 -%patch1026 -p1 -%patch1027 -p1 -%patch1028 -p1 -%patch1029 -p1 -%patch1030 -p1 -%patch1031 -p1 -%patch1032 -p1 -%patch1033 -p1 -%patch1034 -p1 -%patch1035 -p1 -%patch1036 -p1 -%patch1037 -p1 -%patch1038 -p1 -%patch1039 -p1 -%patch1040 -p1 -%patch1041 -p1 -%patch1042 -p1 -%patch1043 -p1 -%patch1044 -p1 -%patch1045 -p1 -%patch1046 -p1 -%patch1047 -p1 -%patch1048 -p1 -%patch1049 -p1 -%patch1050 -p1 -%patch1051 -p1 -%patch1052 -p1 -%patch1053 -p1 -%patch1054 -p1 -%patch1055 -p1 -%patch1056 -p1 -%patch1057 -p1 -%patch1058 -p1 -%patch1059 -p1 -%patch1060 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 -%patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2008 -p1 +%patch2009 -p1 %patch3000 diff --git a/iconv-reset-input-buffer.patch b/iconv-reset-input-buffer.patch index a0f8321..27abf73 100644 --- a/iconv-reset-input-buffer.patch +++ b/iconv-reset-input-buffer.patch @@ -10,19 +10,20 @@ Fix iconv buffer handling with IGNORE error handler (bug #18830) (internal_ucs4le_loop_unaligned, internal_ucs4le_loop_single) (ucs4le_internal_loop, ucs4le_internal_loop_unaligned) (ucs4le_internal_loop_single): Add const to outend. - * iconv/Makefile (tests): Add tst-iconv6. - * iconv/tst-iconv6.c: New file. + * iconv/Makefile (tests): Add tst-iconv7. + * iconv/tst-iconv7.c: New file. Index: glibc-2.22/iconv/Makefile =================================================================== --- glibc-2.22.orig/iconv/Makefile +++ glibc-2.22/iconv/Makefile -@@ -42,7 +42,7 @@ CFLAGS-charmap.c = -DCHARMAP_PATH='"$(i1 +@@ -42,7 +42,8 @@ CFLAGS-charmap.c = -DCHARMAP_PATH='"$(i1 CFLAGS-linereader.c = -DNO_TRANSLITERATION CFLAGS-simple-hash.c = -I../locale --tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 -+tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 +-tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 ++tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 \ ++ tst-iconv7 others = iconv_prog iconvconfig install-others-programs = $(inst_bindir)/iconv @@ -126,7 +127,7 @@ Index: glibc-2.22/iconv/gconv_simple.c size_t *irreversible) { int flags = step_data->__flags; -@@ -669,7 +675,8 @@ ucs4le_internal_loop_unaligned (struct _ +@@ -671,7 +677,8 @@ ucs4le_internal_loop_unaligned (struct _ struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, @@ -136,7 +137,7 @@ Index: glibc-2.22/iconv/gconv_simple.c size_t *irreversible) { int flags = step_data->__flags; -@@ -743,7 +750,8 @@ ucs4le_internal_loop_single (struct __gc +@@ -745,7 +752,8 @@ ucs4le_internal_loop_single (struct __gc struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, @@ -223,10 +224,10 @@ Index: glibc-2.22/iconv/skeleton.c /* Change the status. */ status = result; } -Index: glibc-2.22/iconv/tst-iconv6.c +Index: glibc-2.22/iconv/tst-iconv7.c =================================================================== --- /dev/null -+++ glibc-2.22/iconv/tst-iconv6.c ++++ glibc-2.22/iconv/tst-iconv7.c @@ -0,0 +1,68 @@ +/* Test iconv buffer handling with the IGNORE error handler. + Copyright (C) 2015 Free Software Foundation, Inc. @@ -296,3 +297,34 @@ Index: glibc-2.22/iconv/tst-iconv6.c + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" +Index: glibc-2.23.90/sysdeps/s390/multiarch/gconv_simple.c +=================================================================== +--- glibc-2.23.90.orig/sysdeps/s390/multiarch/gconv_simple.c ++++ glibc-2.23.90/sysdeps/s390/multiarch/gconv_simple.c +@@ -403,7 +403,7 @@ ICONV_VX_NAME (internal_ucs4le_loop) (st + const unsigned char **inptrp, + const unsigned char *inend, + unsigned char **outptrp, +- unsigned char *outend, ++ const unsigned char *outend, + size_t *irreversible) + { + const unsigned char *inptr = *inptrp; +@@ -503,7 +503,7 @@ ICONV_VX_NAME (ucs4_internal_loop) (stru + const unsigned char **inptrp, + const unsigned char *inend, + unsigned char **outptrp, +- unsigned char *outend, ++ const unsigned char *outend, + size_t *irreversible) + { + int flags = step_data->__flags; +@@ -630,7 +630,7 @@ ICONV_VX_NAME (ucs4le_internal_loop) (st + const unsigned char **inptrp, + const unsigned char *inend, + unsigned char **outptrp, +- unsigned char *outend, ++ const unsigned char *outend, + size_t *irreversible) + { + int flags = step_data->__flags; diff --git a/nis-initgroups-status.patch b/nis-initgroups-status.patch deleted file mode 100644 index 786c4e6..0000000 --- a/nis-initgroups-status.patch +++ /dev/null @@ -1,53 +0,0 @@ - [BZ #20262] - * nis/nss_nis/nis-initgroups.c (_nss_nis_initgroups_dyn): Return - NSS_STATUS_SUCCESS when done. Return NSS_STATUS_TRYAGAIN when out - of memory. - -Index: glibc-2.23/nis/nss_nis/nis-initgroups.c -=================================================================== ---- glibc-2.23.orig/nis/nss_nis/nis-initgroups.c -+++ glibc-2.23/nis/nss_nis/nis-initgroups.c -@@ -266,7 +266,7 @@ _nss_nis_initgroups_dyn (const char *use - - tmpbuf = __alloca (buflen); - -- do -+ while (1) - { - while ((status = - internal_getgrent_r (&grpbuf, tmpbuf, buflen, errnop, -@@ -275,8 +275,11 @@ _nss_nis_initgroups_dyn (const char *use - tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); - - if (status != NSS_STATUS_SUCCESS) -- goto done; -- -+ { -+ if (status == NSS_STATUS_NOTFOUND) -+ status = NSS_STATUS_SUCCESS; -+ goto done; -+ } - - g = &grpbuf; - if (g->gr_gid != group) -@@ -304,7 +307,11 @@ _nss_nis_initgroups_dyn (const char *use - - newgroups = realloc (groups, newsize * sizeof (*groups)); - if (newgroups == NULL) -- goto done; -+ { -+ status = NSS_STATUS_TRYAGAIN; -+ *errnop = errno; -+ goto done; -+ } - *groupsp = groups = newgroups; - *size = newsize; - } -@@ -316,7 +323,6 @@ _nss_nis_initgroups_dyn (const char *use - } - } - } -- while (status == NSS_STATUS_SUCCESS); - - done: - while (intern.start != NULL) diff --git a/nscd-gc-crash.patch b/nscd-gc-crash.patch deleted file mode 100644 index cc842bc..0000000 --- a/nscd-gc-crash.patch +++ /dev/null @@ -1,73 +0,0 @@ - [BZ #19755] - * nscd/pwdcache.c (cache_addpw): Lock prune_run_lock while adding - new entries in auto-propagate mode. - * nscd/grpcache.c (cache_addgr): Likewise. - -Index: glibc-2.23/nscd/grpcache.c -=================================================================== ---- glibc-2.23.orig/nscd/grpcache.c -+++ glibc-2.23/nscd/grpcache.c -@@ -205,10 +205,19 @@ cache_addgr (struct database_dyn *db, in - dataset = NULL; - - if (he == NULL) -- dataset = (struct dataset *) mempool_alloc (db, total + n, 1); -+ { -+ /* Prevent an INVALIDATE request from pruning the data between -+ the two calls to cache_add. */ -+ if (db->propagate) -+ pthread_mutex_lock (&db->prune_run_lock); -+ dataset = (struct dataset *) mempool_alloc (db, total + n, 1); -+ } - - if (dataset == NULL) - { -+ if (he == NULL && db->propagate) -+ pthread_mutex_unlock (&db->prune_run_lock); -+ - /* We cannot permanently add the result in the moment. But - we can provide the result as is. Store the data in some - temporary memory. */ -@@ -396,6 +405,8 @@ cache_addgr (struct database_dyn *db, in - - out: - pthread_rwlock_unlock (&db->lock); -+ if (he == NULL && db->propagate) -+ pthread_mutex_unlock (&db->prune_run_lock); - } - } - -Index: glibc-2.23/nscd/pwdcache.c -=================================================================== ---- glibc-2.23.orig/nscd/pwdcache.c -+++ glibc-2.23/nscd/pwdcache.c -@@ -198,10 +198,19 @@ cache_addpw (struct database_dyn *db, in - dataset = NULL; - - if (he == NULL) -- dataset = (struct dataset *) mempool_alloc (db, total + n, 1); -+ { -+ /* Prevent an INVALIDATE request from pruning the data between -+ the two calls to cache_add. */ -+ if (db->propagate) -+ pthread_mutex_lock (&db->prune_run_lock); -+ dataset = (struct dataset *) mempool_alloc (db, total + n, 1); -+ } - - if (dataset == NULL) - { -+ if (he == NULL && db->propagate) -+ pthread_mutex_unlock (&db->prune_run_lock); -+ - /* We cannot permanently add the result in the moment. But - we can provide the result as is. Store the data in some - temporary memory. */ -@@ -374,6 +383,8 @@ cache_addpw (struct database_dyn *db, in - - out: - pthread_rwlock_unlock (&db->lock); -+ if (he == NULL && db->propagate) -+ pthread_mutex_unlock (&db->prune_run_lock); - } - } - diff --git a/reinitialize-dl_load_write_lock.patch b/reinitialize-dl_load_write_lock.patch index b224fbb..ace3ede 100644 --- a/reinitialize-dl_load_write_lock.patch +++ b/reinitialize-dl_load_write_lock.patch @@ -3,8 +3,8 @@ Index: glibc-2.22/sysdeps/nptl/fork.c --- glibc-2.22.orig/sysdeps/nptl/fork.c +++ glibc-2.22/sysdeps/nptl/fork.c @@ -174,8 +174,9 @@ __libc_fork (void) - /* Reset locks in the I/O code. */ - _IO_list_resetlock (); + _IO_list_resetlock (); + } - /* Reset the lock the dynamic loader uses to protect its data. */ + /* Reset the locks the dynamic loader uses to protect its data. */ diff --git a/robust-mutex-deadlock.patch b/robust-mutex-deadlock.patch deleted file mode 100644 index a7edfc2..0000000 --- a/robust-mutex-deadlock.patch +++ /dev/null @@ -1,152 +0,0 @@ - [BZ #20263] - * nptl/lowlevelrobustlock.c (__lll_robust_timedlock_wait) - [__ASSUME_FUTEX_CLOCK_REALTIME]: Check for timeout from - lll_futex_timed_wait_bitset. - * nptl/tst-robust10.c: New test. - * nptl/Makefile (tests): Add tst-robust10. - -Index: glibc-2.23/nptl/Makefile -=================================================================== ---- glibc-2.23.orig/nptl/Makefile -+++ glibc-2.23/nptl/Makefile -@@ -288,7 +288,7 @@ tests = tst-typesizes \ - tst-initializers1 $(addprefix tst-initializers1-,\ - c89 gnu89 c99 gnu99 c11 gnu11) \ - tst-bad-schedattr \ -- tst-thread_local1 tst-mutex-errorcheck -+ tst-thread_local1 tst-mutex-errorcheck tst-robust10 - xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \ - tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 - test-srcs = tst-oddstacklimit -Index: glibc-2.23/nptl/lowlevelrobustlock.c -=================================================================== ---- glibc-2.23.orig/nptl/lowlevelrobustlock.c -+++ glibc-2.23/nptl/lowlevelrobustlock.c -@@ -118,8 +118,10 @@ __lll_robust_timedlock_wait (int *futex, - || !defined lll_futex_timed_wait_bitset) - lll_futex_timed_wait (futex, newval, &rt, private); - #else -- lll_futex_timed_wait_bitset (futex, newval, abstime, -- FUTEX_CLOCK_REALTIME, private); -+ int err = lll_futex_timed_wait_bitset (futex, newval, abstime, -+ FUTEX_CLOCK_REALTIME, private); -+ if (err == -ETIMEDOUT) -+ return -err; - #endif - - try: -Index: glibc-2.23/nptl/tst-robust10.c -=================================================================== ---- /dev/null -+++ glibc-2.23/nptl/tst-robust10.c -@@ -0,0 +1,110 @@ -+/* Test that pthread_mutex_timedlock properly times out. -+ Copyright (C) 2016 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+pthread_mutex_t mutex; -+ -+static void * -+thr (void *arg) -+{ -+ struct timespec abstime; -+ clock_gettime (CLOCK_REALTIME, &abstime); -+ abstime.tv_sec += 1; -+ int ret = pthread_mutex_timedlock (&mutex, &abstime); -+ if (ret == 0) -+ { -+ puts ("mutex_timedlock didn't fail"); -+ exit (1); -+ } -+ if (ret != ETIMEDOUT) -+ { -+ printf ("mutex_timedlock failed: %s\n", strerror (ret)); -+ exit (1); -+ } -+ -+ return 0; -+} -+ -+static int -+do_test (void) -+{ -+ pthread_t pt; -+ pthread_mutexattr_t ma; -+ -+ if (pthread_mutexattr_init (&ma) != 0) -+ { -+ puts ("mutexattr_init failed"); -+ return 0; -+ } -+ if (pthread_mutexattr_setrobust_np (&ma, PTHREAD_MUTEX_ROBUST_NP) != 0) -+ { -+ puts ("mutexattr_setrobust failed"); -+ return 1; -+ } -+ if (pthread_mutex_init (&mutex, &ma)) -+ { -+ puts ("mutex_init failed"); -+ return 1; -+ } -+ -+ if (pthread_mutexattr_destroy (&ma)) -+ { -+ puts ("mutexattr_destroy failed"); -+ return 1; -+ } -+ -+ if (pthread_mutex_lock (&mutex)) -+ { -+ puts ("mutex_lock failed"); -+ return 1; -+ } -+ -+ if (pthread_create (&pt, NULL, thr, NULL)) -+ { -+ puts ("pthread_create failed"); -+ return 1; -+ } -+ -+ if (pthread_join (pt, NULL)) -+ { -+ puts ("pthread_join failed"); -+ return 1; -+ } -+ -+ if (pthread_mutex_unlock (&mutex)) -+ { -+ puts ("mutex_unlock failed"); -+ return 1; -+ } -+ -+ if (pthread_mutex_destroy (&mutex)) -+ { -+ puts ("mutex_destroy failed"); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" diff --git a/startcontext-cantunwind.patch b/startcontext-cantunwind.patch new file mode 100644 index 0000000..4d36591 --- /dev/null +++ b/startcontext-cantunwind.patch @@ -0,0 +1,42 @@ +From 1061d6fe364ddac7458a872839ea9efe8f7600f0 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Mon, 8 Aug 2016 09:29:18 +0200 +Subject: [PATCH] arm: mark __startcontext as .cantunwind + +__startcontext marks the bottom of the call stack of the contexts created +by makecontext. + + [BZ #20435] + * sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark + as .cantunwind. +--- + sysdeps/unix/sysv/linux/arm/setcontext.S | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S +index 603e508..d1f168f 100644 +--- a/sysdeps/unix/sysv/linux/arm/setcontext.S ++++ b/sysdeps/unix/sysv/linux/arm/setcontext.S +@@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext) + + /* Called when a makecontext() context returns. Start the + context in R4 or fall through to exit(). */ ++ /* Unwind descriptors are looked up based on PC - 2, so we have to ++ make sure to mark the instruction preceding the __startcontext ++ label as .cantunwind. */ ++ .fnstart ++ .cantunwind ++ nop + ENTRY(__startcontext) + movs r0, r4 + bne PLTJMP(__setcontext) + + @ New context was 0 - exit + b PLTJMP(HIDDEN_JUMPTARGET(exit)) ++ .fnend + END(__startcontext) + + #ifdef PIC +-- +2.9.2 + diff --git a/strncat-avoid-array-bounds-warning.patch b/strncat-avoid-array-bounds-warning.patch deleted file mode 100644 index f196c34..0000000 --- a/strncat-avoid-array-bounds-warning.patch +++ /dev/null @@ -1,31 +0,0 @@ -Subject: [PATCH] Avoid array-bounds warning for strncat on i586 - - [BZ #20260] - * sysdeps/x86/bits/string.h (__strncat_g) [!__i686__]: Compute the - address before the beginning of the string as an integer to avoid - array-bounds warning. - -diff --git a/sysdeps/x86/bits/string.h b/sysdeps/x86/bits/string.h -index 8dfce05..805d33f 100644 ---- a/sysdeps/x86/bits/string.h -+++ b/sysdeps/x86/bits/string.h -@@ -1089,7 +1089,6 @@ __strncat_g (char *__dest, const char __src[], size_t __n) - : "g" (__n), "0" (0), "1" (__tmp), "2" (__src), "3" (0xffffffff) - : "memory", "cc"); - # else -- --__tmp; - __asm__ __volatile__ - ("1:\n\t" - "cmpb $0,1(%1)\n\t" -@@ -1108,7 +1107,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n) - "3:\n\t" - "movb $0,(%1)" - : "=&q" (__dummy), "=&r" (__tmp), "=&r" (__src), "=&r" (__n) -- : "1" (__tmp), "2" (__src), "3" (__n) -+ : "1" ((unsigned long) __tmp - 1), "2" (__src), "3" (__n) - : "memory", "cc"); - #endif - return __dest; --- -2.9.0 - From 575b39391d5220aee2e0960ef023a1061a7480a332a200413895f8e942706d52 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 20 Oct 2016 21:04:46 +0000 Subject: [PATCH 198/204] Accepting request 434699 from Base:System - cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647) - glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to /var/lib/nscd - glibc-2.3.90-langpackdir.diff: simplify (forwarded request 434696 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/434699 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=207 --- cpuid-assertion.patch | 21 +++++++++++++++++++++ glibc-2.3.3-nscd-db-path.diff | 14 +++++--------- glibc-2.3.90-langpackdir.diff | 25 ++++++++++--------------- glibc-testsuite.changes | 12 ++++++++++++ glibc-testsuite.spec | 34 +++++++++++++++++++--------------- glibc-utils.changes | 12 ++++++++++++ glibc-utils.spec | 34 +++++++++++++++++++--------------- glibc.changes | 12 ++++++++++++ glibc.spec | 34 +++++++++++++++++++--------------- pre_checkin.sh | 2 +- 10 files changed, 130 insertions(+), 70 deletions(-) create mode 100644 cpuid-assertion.patch diff --git a/cpuid-assertion.patch b/cpuid-assertion.patch new file mode 100644 index 0000000..f426ad5 --- /dev/null +++ b/cpuid-assertion.patch @@ -0,0 +1,21 @@ +2016-10-12 H.J. Lu + + [BZ #20647] + * sysdeps/x86/cacheinfo.c (handle_intel): Return -1 if the + maximum CPUID level is less than 2. + +Index: glibc-2.24/sysdeps/x86/cacheinfo.c +=================================================================== +--- glibc-2.24.orig/sysdeps/x86/cacheinfo.c ++++ glibc-2.24/sysdeps/x86/cacheinfo.c +@@ -259,7 +259,9 @@ intel_check_word (int name, unsigned int + static long int __attribute__ ((noinline)) + handle_intel (int name, unsigned int maxidx) + { +- assert (maxidx >= 2); ++ /* Return -1 for older CPUs. */ ++ if (maxidx < 2) ++ return -1; + + /* OK, we can use the CPUID instruction to get all info about the + caches. */ diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index 45031e4..14242a5 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -1,7 +1,3 @@ -2004-12-09 Thorsten Kukuk - - * nscd/nscd.h: Move persistent storage back to /var/run/nscd - Index: glibc-2.17.90/nscd/nscd.h =================================================================== --- glibc-2.17.90.orig/nscd/nscd.h @@ -15,11 +11,11 @@ Index: glibc-2.17.90/nscd/nscd.h -#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts" -#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services" -#define _PATH_NSCD_NETGROUP_DB "/var/db/nscd/netgroup" -+#define _PATH_NSCD_PASSWD_DB "/var/run/nscd/passwd" -+#define _PATH_NSCD_GROUP_DB "/var/run/nscd/group" -+#define _PATH_NSCD_HOSTS_DB "/var/run/nscd/hosts" -+#define _PATH_NSCD_SERVICES_DB "/var/run/nscd/services" -+#define _PATH_NSCD_NETGROUP_DB "/var/run/nscd/netgroup" ++#define _PATH_NSCD_PASSWD_DB "/var/lib/nscd/passwd" ++#define _PATH_NSCD_GROUP_DB "/var/lib/nscd/group" ++#define _PATH_NSCD_HOSTS_DB "/var/lib/nscd/hosts" ++#define _PATH_NSCD_SERVICES_DB "/var/lib/nscd/services" ++#define _PATH_NSCD_NETGROUP_DB "/var/lib/nscd/netgroup" /* Path used when not using persistent storage. */ #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index 73f35b7..e2da5c0 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -1,8 +1,8 @@ -Index: glibc-2.17.90/intl/loadmsgcat.c +Index: glibc-2.24/intl/loadmsgcat.c =================================================================== ---- glibc-2.17.90.orig/intl/loadmsgcat.c -+++ glibc-2.17.90/intl/loadmsgcat.c -@@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind +--- glibc-2.24.orig/intl/loadmsgcat.c ++++ glibc-2.24/intl/loadmsgcat.c +@@ -829,8 +829,47 @@ _nl_load_domain (struct loaded_l10nfile if (domain_file->filename == NULL) goto out; @@ -11,25 +11,21 @@ Index: glibc-2.17.90/intl/loadmsgcat.c + /* Replace /locale/ with /usr/share/locale-langpack/ */ + const char *langpackdir = "/usr/share/locale-langpack/"; + char *filename_langpack = malloc (strlen (domain_file->filename) + -+ strlen (langpackdir)); ++ strlen (langpackdir)); + if (filename_langpack != NULL) + { + char *p = strstr (domain_file->filename, "/locale/"); + if (p != NULL) + { + strcpy (filename_langpack, langpackdir); -+ strcpy (&filename_langpack[strlen (langpackdir)], -+ (p+8)); -+ if ((fd = open (filename_langpack, O_RDONLY | O_BINARY)) == -1) -+ fd = open (domain_file->filename, O_RDONLY | O_BINARY); ++ strcpy (&filename_langpack[strlen (langpackdir)], p + 8); ++ fd = open (filename_langpack, O_RDONLY | O_BINARY); + } -+ else -+ /* Try to open the addressed file. */ -+ fd = open (domain_file->filename, O_RDONLY | O_BINARY); + + free (filename_langpack); + } -+ else ++ ++ if (fd == -1) + /* Try to open the addressed file. */ + fd = open (domain_file->filename, O_RDONLY | O_BINARY); + @@ -45,8 +41,7 @@ Index: glibc-2.17.90/intl/loadmsgcat.c + if (p != NULL) + { + strcpy (filename_bundle, bundle_dir); -+ strcpy (&filename_bundle[strlen (bundle_dir)], -+ (p+8)); ++ strcpy (&filename_bundle[strlen (bundle_dir)], p + 8); + fd = open (filename_bundle, O_RDONLY | O_BINARY); + } + diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 25ae15d..12c7b52 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de + +- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647) + +------------------------------------------------------------------- +Wed Oct 5 15:01:46 UTC 2016 - schwab@suse.de + +- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to + /var/lib/nscd +- glibc-2.3.90-langpackdir.diff: simplify + ------------------------------------------------------------------- Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 7eab6fa..d61bc08 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -36,7 +36,6 @@ Name: glibc-testsuite Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries -# UTILS-SUMMARY-END BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -249,6 +248,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) +Patch1000: startcontext-cantunwind.patch +# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) +Patch1001: cpuid-assertion.patch ### # Patches awaiting upstream approval @@ -267,8 +270,6 @@ Patch2005: nss-files-long-lines-2.patch Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch2009: startcontext-cantunwind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -471,6 +472,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -478,7 +482,6 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2008 -p1 -%patch2009 -p1 %patch3000 @@ -908,12 +911,13 @@ popd # nscd tools: +%ifnarch i686 cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/run/nscd -touch %{buildroot}/run/nscd/{passwd,group,hosts,services,netgroup} -touch %{buildroot}/run/nscd/{socket,nscd.pid} +mkdir -p %{buildroot}/var/lib/nscd +%endif # # Create ld.so.conf @@ -958,10 +962,12 @@ for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshar objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done +%ifnarch i686 mkdir -p %{buildroot}/usr/lib/tmpfiles.d/ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ mkdir -p %{buildroot}/usr/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system +%endif %ifarch armv6hl armv7hl # Provide compatibility link @@ -987,10 +993,7 @@ rm -rf %{buildroot}%{_libdir}/audit # Remove files from glibc-{extra,info,i18ndata} and nscd rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile -rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* -rm -rf %{buildroot}/usr/lib/systemd -rm -rf %{buildroot}/usr/lib/tmpfiles.d -rm -rf %{buildroot}/run/nscd +rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 # LSB @@ -1325,11 +1328,12 @@ exit 0 %dir %attr(0755,root,root) %ghost /run/nscd %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid %attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/netgroup +%dir %attr(0755,root,root) /var/lib/nscd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/glibc-utils.changes b/glibc-utils.changes index 25ae15d..12c7b52 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de + +- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647) + +------------------------------------------------------------------- +Wed Oct 5 15:01:46 UTC 2016 - schwab@suse.de + +- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to + /var/lib/nscd +- glibc-2.3.90-langpackdir.diff: simplify + ------------------------------------------------------------------- Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 3577b3b..6fddc0d 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -35,7 +35,6 @@ Name: glibc-utils Summary: Development utilities from GNU C library License: LGPL-2.1+ Group: Development/Languages/C and C++ -# UTILS-SUMMARY-END BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -248,6 +247,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) +Patch1000: startcontext-cantunwind.patch +# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) +Patch1001: cpuid-assertion.patch ### # Patches awaiting upstream approval @@ -266,8 +269,6 @@ Patch2005: nss-files-long-lines-2.patch Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch2009: startcontext-cantunwind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -471,6 +472,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -478,7 +482,6 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2008 -p1 -%patch2009 -p1 %patch3000 @@ -908,12 +911,13 @@ popd # nscd tools: +%ifnarch i686 cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/run/nscd -touch %{buildroot}/run/nscd/{passwd,group,hosts,services,netgroup} -touch %{buildroot}/run/nscd/{socket,nscd.pid} +mkdir -p %{buildroot}/var/lib/nscd +%endif # # Create ld.so.conf @@ -958,10 +962,12 @@ for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshar objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done +%ifnarch i686 mkdir -p %{buildroot}/usr/lib/tmpfiles.d/ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ mkdir -p %{buildroot}/usr/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system +%endif %ifarch armv6hl armv7hl # Provide compatibility link @@ -987,10 +993,7 @@ rm -rf %{buildroot}%{_libdir}/audit # Remove files from glibc-{extra,info,i18ndata} and nscd rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile -rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* -rm -rf %{buildroot}/usr/lib/systemd -rm -rf %{buildroot}/usr/lib/tmpfiles.d -rm -rf %{buildroot}/run/nscd +rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 # LSB @@ -1325,11 +1328,12 @@ exit 0 %dir %attr(0755,root,root) %ghost /run/nscd %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid %attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/netgroup +%dir %attr(0755,root,root) /var/lib/nscd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/glibc.changes b/glibc.changes index 25ae15d..12c7b52 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de + +- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647) + +------------------------------------------------------------------- +Wed Oct 5 15:01:46 UTC 2016 - schwab@suse.de + +- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to + /var/lib/nscd +- glibc-2.3.90-langpackdir.diff: simplify + ------------------------------------------------------------------- Tue Aug 2 13:55:44 UTC 2016 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index ccc1836..e04ab78 100644 --- a/glibc.spec +++ b/glibc.spec @@ -36,7 +36,6 @@ Name: glibc Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries -# UTILS-SUMMARY-END BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -249,6 +248,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) +Patch1000: startcontext-cantunwind.patch +# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) +Patch1001: cpuid-assertion.patch ### # Patches awaiting upstream approval @@ -267,8 +270,6 @@ Patch2005: nss-files-long-lines-2.patch Patch2006: iconv-reset-input-buffer.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch2009: startcontext-cantunwind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -471,6 +472,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -478,7 +482,6 @@ rm nscd/s-stamp %patch2005 -p1 %patch2006 -p1 %patch2008 -p1 -%patch2009 -p1 %patch3000 @@ -908,12 +911,13 @@ popd # nscd tools: +%ifnarch i686 cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/run/nscd -touch %{buildroot}/run/nscd/{passwd,group,hosts,services,netgroup} -touch %{buildroot}/run/nscd/{socket,nscd.pid} +mkdir -p %{buildroot}/var/lib/nscd +%endif # # Create ld.so.conf @@ -958,10 +962,12 @@ for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshar objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done +%ifnarch i686 mkdir -p %{buildroot}/usr/lib/tmpfiles.d/ install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/ mkdir -p %{buildroot}/usr/lib/systemd/system install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system +%endif %ifarch armv6hl armv7hl # Provide compatibility link @@ -987,10 +993,7 @@ rm -rf %{buildroot}%{_libdir}/audit # Remove files from glibc-{extra,info,i18ndata} and nscd rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile -rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd* -rm -rf %{buildroot}/usr/lib/systemd -rm -rf %{buildroot}/usr/lib/tmpfiles.d -rm -rf %{buildroot}/run/nscd +rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 # LSB @@ -1325,11 +1328,12 @@ exit 0 %dir %attr(0755,root,root) %ghost /run/nscd %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/nscd.pid %attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/socket -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/passwd -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/group -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/hosts -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/services -%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /run/nscd/netgroup +%dir %attr(0755,root,root) /var/lib/nscd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/passwd +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/group +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/hosts +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/services +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/nscd/netgroup %endif # !i686 %if %{build_profile} diff --git a/pre_checkin.sh b/pre_checkin.sh index a4924b6..3f14c9b 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -10,7 +10,7 @@ Summary: Development utilities from GNU C library\n\ License: LGPL-2.1+\n\ Group: Development/Languages/C and C++" } -/UTILS-SUMMARY-END/ { ignore = 0 } +/^BuildRequires/ { ignore = 0 } /^%description$/ { ignore = 1 print "\ From 7114935db34d6eb93c10653038c87a2a7e39e4c8ba43ab0fb99ae8deaa12db25 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 9 Mar 2017 00:26:17 +0000 Subject: [PATCH 199/204] Accepting request 455481 from Base:System - tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ #21109) (forwarded request 455480 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/455481 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=208 --- _service | 2 +- cpuid-assertion.patch | 21 --- fnmatch-collating-elements.patch | 19 +-- glibc-2.14-crypt.diff | 276 +++---------------------------- glibc-2.24.tar.xz | 3 - glibc-2.24.tar.xz.sig | 17 -- glibc-2.25.tar.xz | 3 + glibc-2.25.tar.xz.sig | 10 ++ glibc-testsuite.changes | 108 ++++++++++++ glibc-testsuite.spec | 33 ++-- glibc-utils.changes | 108 ++++++++++++ glibc-utils.spec | 32 ++-- glibc-version.diff | 2 +- glibc.changes | 108 ++++++++++++ glibc.keyring | Bin 33423 -> 39186 bytes glibc.spec | 33 ++-- pre_checkin.sh | 2 +- startcontext-cantunwind.patch | 42 ----- tunables-bigendian.patch | 73 ++++++++ 19 files changed, 498 insertions(+), 394 deletions(-) delete mode 100644 cpuid-assertion.patch delete mode 100644 glibc-2.24.tar.xz delete mode 100644 glibc-2.24.tar.xz.sig create mode 100644 glibc-2.25.tar.xz create mode 100644 glibc-2.25.tar.xz.sig delete mode 100644 startcontext-cantunwind.patch create mode 100644 tunables-bigendian.patch diff --git a/_service b/_service index afda933..3f7f18c 100644 --- a/_service +++ b/_service @@ -1,6 +1,6 @@ - 2.24.90.%cd.g%h + 2.25.90.%cd.g%h git://sourceware.org/git/glibc git diff --git a/cpuid-assertion.patch b/cpuid-assertion.patch deleted file mode 100644 index f426ad5..0000000 --- a/cpuid-assertion.patch +++ /dev/null @@ -1,21 +0,0 @@ -2016-10-12 H.J. Lu - - [BZ #20647] - * sysdeps/x86/cacheinfo.c (handle_intel): Return -1 if the - maximum CPUID level is less than 2. - -Index: glibc-2.24/sysdeps/x86/cacheinfo.c -=================================================================== ---- glibc-2.24.orig/sysdeps/x86/cacheinfo.c -+++ glibc-2.24/sysdeps/x86/cacheinfo.c -@@ -259,7 +259,9 @@ intel_check_word (int name, unsigned int - static long int __attribute__ ((noinline)) - handle_intel (int name, unsigned int maxidx) - { -- assert (maxidx >= 2); -+ /* Return -1 for older CPUs. */ -+ if (maxidx < 2) -+ return -1; - - /* OK, we can use the CPUID instruction to get all info about the - caches. */ diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch index 3546638..801c381 100644 --- a/fnmatch-collating-elements.patch +++ b/fnmatch-collating-elements.patch @@ -10,21 +10,6 @@ Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) * posix/tst-fnmatch4.c: New file. * posix/tst-fnmatch5.c: New file. - * Makefile (LOCALES): Add es_US.UTF-8 and es_US.ISO-8859-1. - -Index: glibc-2.22/localedata/Makefile -=================================================================== ---- glibc-2.22.orig/localedata/Makefile -+++ glibc-2.22/localedata/Makefile -@@ -106,7 +106,7 @@ LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 - hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \ - nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 tr_TR.UTF-8 cs_CZ.UTF-8 \ - zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 si_LK.UTF-8 \ -- tr_TR.ISO-8859-9 en_GB.UTF-8 uk_UA.UTF-8 -+ tr_TR.ISO-8859-9 en_GB.UTF-8 uk_UA.UTF-8 es_US.UTF-8 es_US.ISO-8859-1 - include ../gen-locales.mk - endif - Index: glibc-2.22/posix/Makefile =================================================================== --- glibc-2.22.orig/posix/Makefile @@ -34,9 +19,9 @@ Index: glibc-2.22/posix/Makefile tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ tst-fnmatch3 bug-regex36 tst-getaddrinfo5 \ + tst-fnmatch4 tst-fnmatch5 \ - tst-posix_spawn-fd + tst-posix_spawn-fd \ + tst-posix_fadvise tst-posix_fadvise64 xtests := bug-ga2 - ifeq (yes,$(build-shared)) Index: glibc-2.22/posix/fnmatch.c =================================================================== --- glibc-2.22.orig/posix/fnmatch.c diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 767ea1f..5afebd2 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,7 +1,7 @@ -Index: glibc-2.20/crypt/Makefile +Index: glibc-2.25/crypt/Makefile =================================================================== ---- glibc-2.20.orig/crypt/Makefile -+++ glibc-2.20/crypt/Makefile +--- glibc-2.25.orig/crypt/Makefile ++++ glibc-2.25/crypt/Makefile @@ -23,14 +23,18 @@ subdir := crypt include ../Makeconfig @@ -23,10 +23,10 @@ Index: glibc-2.20/crypt/Makefile ifeq ($(crypt-in-libc),yes) routines += $(libcrypt-routines) -Index: glibc-2.20/crypt/Versions +Index: glibc-2.25/crypt/Versions =================================================================== ---- glibc-2.20.orig/crypt/Versions -+++ glibc-2.20/crypt/Versions +--- glibc-2.25.orig/crypt/Versions ++++ glibc-2.25/crypt/Versions @@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } @@ -36,10 +36,10 @@ Index: glibc-2.20/crypt/Versions + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } +} -Index: glibc-2.20/crypt/crypt-entry.c +Index: glibc-2.25/crypt/crypt-entry.c =================================================================== ---- glibc-2.20.orig/crypt/crypt-entry.c -+++ glibc-2.20/crypt/crypt-entry.c +--- glibc-2.25.orig/crypt/crypt-entry.c ++++ glibc-2.25/crypt/crypt-entry.c @@ -71,7 +71,7 @@ extern struct crypt_data _ufc_foobar; */ @@ -49,23 +49,23 @@ Index: glibc-2.20/crypt/crypt-entry.c struct crypt_data * __restrict data) { ufc_long res[4]; -@@ -145,6 +145,7 @@ __crypt_r (key, salt, data) - _ufc_output_conversion_r (res[0], res[1], salt, data); +@@ -152,6 +152,7 @@ __crypt_r (const char *key, const char * + return data->crypt_3_buf; } +#if 0 weak_alias (__crypt_r, crypt_r) char * -@@ -187,3 +188,4 @@ __fcrypt (key, salt) +@@ -190,3 +191,4 @@ __fcrypt (const char *key, const char *s return crypt (key, salt); } #endif +#endif -Index: glibc-2.20/crypt/crypt-private.h +Index: glibc-2.25/crypt/crypt-private.h =================================================================== ---- glibc-2.20.orig/crypt/crypt-private.h -+++ glibc-2.20/crypt/crypt-private.h +--- glibc-2.25.orig/crypt/crypt-private.h ++++ glibc-2.25/crypt/crypt-private.h @@ -65,7 +65,7 @@ extern void __encrypt_r (char * __restri struct crypt_data * __restrict __data); @@ -75,11 +75,11 @@ Index: glibc-2.20/crypt/crypt-private.h struct crypt_data * __restrict __data); extern char *fcrypt (const char *key, const char *salt); -Index: glibc-2.20/shlib-versions +Index: glibc-2.25/shlib-versions =================================================================== ---- glibc-2.20.orig/shlib-versions -+++ glibc-2.20/shlib-versions -@@ -88,6 +88,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ +--- glibc-2.25.orig/shlib-versions ++++ glibc-2.25/shlib-versions +@@ -58,6 +58,7 @@ libnsl=1 # This defines the shared library version numbers we will install. libcrypt=1 @@ -87,244 +87,10 @@ Index: glibc-2.20/shlib-versions # The gross patch for programs assuming broken locale implementations. libBrokenLocale=1 -Index: glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist +Index: glibc-2.25/sysdeps/unix/sysv/linux/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist ++++ glibc-2.25/sysdeps/unix/sysv/linux/libowcrypt.abilist @@ -0,0 +1,4 @@ +OW_CRYPT_1.0 OW_CRYPT_1.0 A +OW_CRYPT_1.0 crypt_gensalt F diff --git a/glibc-2.24.tar.xz b/glibc-2.24.tar.xz deleted file mode 100644 index 5c42f1e..0000000 --- a/glibc-2.24.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 -size 13554048 diff --git a/glibc-2.24.tar.xz.sig b/glibc-2.24.tar.xz.sig deleted file mode 100644 index 6e4e2aa..0000000 --- a/glibc-2.24.tar.xz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJXo1gPAAoJEBZ5K06iU0D4XQcP/3979bgeQZFIzdhhW9qDGf8y -3Zkij6WyytpSM0xm80bZCTD/4fkVYkiDOhgzfghrI0T3BQWitrQIUS4q94VtbeRk -i0QbPdYZ6xmnS56OcyxK+hdqr8XpGxRwfCZH+hCEbXjGblYiViXY54VSL2oWj6q9 -Lolyi7LoZZg3nM7Hf7/yEqa38eKq0N6654MXaVZi9wz31YHweJHsI1rdUkYEpWxp -YIc6eCmhZpyj09Vk7s4qriNqBXmBLZbAcqOAL7hzc1H4aRVGLWdR6JQAClOQtQ6b -SrW4/MO4re5coz1EYWJLpzkDOnH/pkhA0gPeM7PDm+3t2DJa/6k01Jljxjswfujf -EflmRw/FRG08/QADaBrtmu8s79/07xJUjf/qLhg0YIJL2aBqaVNkxSZhE+aOIOXD -FrqX+fVhG4FX2YlQ5twDSU+7Uc370Gh7b8QIEOVvd5Tllg52i200aMB2wlVO+Rl5 -oKN21dhbMzzQvJM9IxrBcWoymEE3kQXid+IBZxShg6JOEv9ZKpHKJGRtueJ1EM3R -V44rfJ5hVYn+U872lEgf2jf0w1A0aSMCVAX8N/8BO9NAZ9waM6IBgc3v1ng6uWdn -o4CdOHK6WP+GrbJ8Rbva8co16UHd9Ae1Vcwe5tDU7TxfFFkJ0RPVzVgTdl65+arX -VU1J1Kp1fBvbgwEacwxC -=yUZV ------END PGP SIGNATURE----- diff --git a/glibc-2.25.tar.xz b/glibc-2.25.tar.xz new file mode 100644 index 0000000..714c058 --- /dev/null +++ b/glibc-2.25.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0 +size 13873900 diff --git a/glibc-2.25.tar.xz.sig b/glibc-2.25.tar.xz.sig new file mode 100644 index 0000000..25a8824 --- /dev/null +++ b/glibc-2.25.tar.xz.sig @@ -0,0 +1,10 @@ +-----BEGIN PGP SIGNATURE----- + +iQEcBAABAgAGBQJYl08CAAoJEHnEPfvxzyGHhWcH/2eIspxugXwMnM0YZm3fkzji +yJpu19zpYvfap+tTXJGiY/P6UrJSqHUCSssxWyWJQAbOov40IT/ySSg3DyWhyxra +6HTTOwjIGz/9KQwVdzm79LA+YhsOauowvdiYCS6XnTQbPMc7zBDsOIEAzp+vXNdl +KIzIe7XzUJnK9kl6oqBzXuzdA4jjjzZ2jqyMOwRypipkAXu7OgXO7TiEdN149eSs +2Owodmw9epP1omEK1KLo0N9QsG/+ioaHNfldtWzWNvxuRigAnwaaJTy5zVG7xJ45 +xVfsXaZQKFt4KPep1GF5jaZ30TWTvt5gyjOBiZa/+UfvEOXOt0ox/BB8ydlV/eg= +=HMRX +-----END PGP SIGNATURE----- diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 12c7b52..20dc6fd 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,111 @@ +------------------------------------------------------------------- +Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de + +- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ + #21109) + +------------------------------------------------------------------- +Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de + +- Update to glibc 2.25 + * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR + 24731-2:2010, is supported to enable declarations of functions from that + TR. + * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS + 18661-1:2014, is supported to enable declarations of functions and macros + from that TS. + * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS + 18661-4:2015, is supported to enable declarations of functions and macros + from that TS. + * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are + now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. + * The inclusion of by is deprecated. + * New features from TS 18661-1:2014 are added to libm: the + fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the + femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. + * Integer width macros from TS 18661-1:2014 are added to : + CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, + UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to + : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, + INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, + UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, + INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, + UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, + UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, + UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, + UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, + WINT_WIDTH. + * New features are added from TS 18661-1:2014: + - Signaling NaN macros: SNANF, SNAN, SNANL. + - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, + fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, + fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. + - llogb functions: the llogb, llogbf and llogbl functions, and the + FP_LLOGB0 and FP_LLOGBNAN macros. + - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, + fminmagf, fminmagl. + - Comparison macros: iseqsig. + - Classification macros: iscanonical, issubnormal, iszero. + - Total order functions: totalorder, totalorderf, totalorderl, + totalordermag, totalordermagf, totalordermagl. + - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. + - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, + setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. + * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, + are added to libc. + * Most of glibc can now be built with the stack smashing protector enabled. + * The function explicit_bzero, from OpenBSD, has been added to libc. + * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined + to float instead of double. + * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the + float_t and double_t types are now defined to long double instead of float + and double. + * The getentropy and getrandom functions, and the header file + have been added. + * The buffer size for byte-oriented stdio streams is now limited to 8192 + bytes by default. + * The header now includes the header. + * The malloc_get_state and malloc_set_state functions have been removed. + * The “ip6-dotint†and “no-ip6-dotint†resolver options, and the + corresponding RES_NOIP6DOTINT flag from have been removed. + * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING + flag from have been removed. + * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, + RES_BLAST defined in the header file have been deprecated. + * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for + _res.flags are deprecated. + * DNSSEC-related declarations and definitions have been removed from the + header file, and libresolv will no longer attempt to + decode the data part of DNSSEC record types. + * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, + ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the + header file because the distinction between RR types and + meta-RR types is not officially standardized, subject to revision, and + thus not suitable for encoding in a macro. + * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook + and rhook members of the res_state type in have been removed. + * For multi-arch support it is recommended to use a GCC which has + been built with support for GNU indirect functions. + * GDB pretty printers have been added for mutex and condition variable + structures in POSIX Threads. + * Tunables feature added to allow tweaking of the runtime for an application + program. + * A new version of condition variables functions have been implemented in + the NPTL implementation of POSIX Threads to provide stronger ordering + guarantees. + * A new version of pthread_rwlock functions have been implemented to use a more + scalable algorithm primarily through not using a critical section anymore to + make state changes. + * On ARM EABI (32-bit), generating a backtrace for execution contexts which + have been created with makecontext could fail to terminate due to a + missing .cantunwind annotation. (CVE-2016-6323) + * The DNS stub resolver functions would crash due to a NULL pointer + dereference when processing a query with a valid DNS question type which + was used internally in the implementation. (CVE-2015-5180) +- Enable stack protector if part of %optflags +- startcontext-cantunwind.patch: Removed +- cpuid-assertion.patch: Removed + ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index d61bc08..9c60f57 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -36,6 +36,7 @@ Name: glibc-testsuite Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries +# UTILS-SUMMARY-END BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -104,10 +105,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.24 +Version: 2.25 Release: 0 %if !%{build_snapshot} -%define git_id beb0f59498c3 +%define git_id db0242e30234 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -248,10 +249,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch1000: startcontext-cantunwind.patch -# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) -Patch1001: cpuid-assertion.patch +# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) +Patch1000: tunables-bigendian.patch ### # Patches awaiting upstream approval @@ -473,7 +472,6 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 -%patch1001 -p1 %patch2000 -p1 %patch2001 -p1 @@ -539,6 +537,14 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +enable_stack_protector= +for opt in $BuildFlags; do + case $opt in + -fstack-protector-strong) enable_stack_protector=strong ;; + -fstack-protector-all) enable_stack_protector=all ;; + -fstack-protector) enable_stack_protector=yes ;; + esac +done BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" @@ -621,9 +627,6 @@ configure_and_build_glibc() { --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -634,6 +637,11 @@ configure_and_build_glibc() { %ifarch ppc64p7 --with-cpu=power7 \ %endif +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ + --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc \ @@ -746,7 +754,7 @@ make -C cc-base -k check || { cd cc-base o=$- set +x - for sum in */*.sum; do + for sum in subdir-tests.sum */subdir-tests.sum; do while read s t; do case $s in XPASS:|PASS:) @@ -1292,6 +1300,7 @@ exit 0 %{_libdir}/libdl.a %{_libdir}/libm.a %ifarch x86_64 +%{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif %{_libdir}/libnsl.a diff --git a/glibc-utils.changes b/glibc-utils.changes index 12c7b52..20dc6fd 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,111 @@ +------------------------------------------------------------------- +Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de + +- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ + #21109) + +------------------------------------------------------------------- +Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de + +- Update to glibc 2.25 + * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR + 24731-2:2010, is supported to enable declarations of functions from that + TR. + * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS + 18661-1:2014, is supported to enable declarations of functions and macros + from that TS. + * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS + 18661-4:2015, is supported to enable declarations of functions and macros + from that TS. + * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are + now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. + * The inclusion of by is deprecated. + * New features from TS 18661-1:2014 are added to libm: the + fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the + femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. + * Integer width macros from TS 18661-1:2014 are added to : + CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, + UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to + : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, + INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, + UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, + INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, + UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, + UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, + UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, + UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, + WINT_WIDTH. + * New features are added from TS 18661-1:2014: + - Signaling NaN macros: SNANF, SNAN, SNANL. + - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, + fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, + fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. + - llogb functions: the llogb, llogbf and llogbl functions, and the + FP_LLOGB0 and FP_LLOGBNAN macros. + - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, + fminmagf, fminmagl. + - Comparison macros: iseqsig. + - Classification macros: iscanonical, issubnormal, iszero. + - Total order functions: totalorder, totalorderf, totalorderl, + totalordermag, totalordermagf, totalordermagl. + - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. + - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, + setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. + * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, + are added to libc. + * Most of glibc can now be built with the stack smashing protector enabled. + * The function explicit_bzero, from OpenBSD, has been added to libc. + * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined + to float instead of double. + * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the + float_t and double_t types are now defined to long double instead of float + and double. + * The getentropy and getrandom functions, and the header file + have been added. + * The buffer size for byte-oriented stdio streams is now limited to 8192 + bytes by default. + * The header now includes the header. + * The malloc_get_state and malloc_set_state functions have been removed. + * The “ip6-dotint†and “no-ip6-dotint†resolver options, and the + corresponding RES_NOIP6DOTINT flag from have been removed. + * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING + flag from have been removed. + * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, + RES_BLAST defined in the header file have been deprecated. + * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for + _res.flags are deprecated. + * DNSSEC-related declarations and definitions have been removed from the + header file, and libresolv will no longer attempt to + decode the data part of DNSSEC record types. + * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, + ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the + header file because the distinction between RR types and + meta-RR types is not officially standardized, subject to revision, and + thus not suitable for encoding in a macro. + * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook + and rhook members of the res_state type in have been removed. + * For multi-arch support it is recommended to use a GCC which has + been built with support for GNU indirect functions. + * GDB pretty printers have been added for mutex and condition variable + structures in POSIX Threads. + * Tunables feature added to allow tweaking of the runtime for an application + program. + * A new version of condition variables functions have been implemented in + the NPTL implementation of POSIX Threads to provide stronger ordering + guarantees. + * A new version of pthread_rwlock functions have been implemented to use a more + scalable algorithm primarily through not using a critical section anymore to + make state changes. + * On ARM EABI (32-bit), generating a backtrace for execution contexts which + have been created with makecontext could fail to terminate due to a + missing .cantunwind annotation. (CVE-2016-6323) + * The DNS stub resolver functions would crash due to a NULL pointer + dereference when processing a query with a valid DNS question type which + was used internally in the implementation. (CVE-2015-5180) +- Enable stack protector if part of %optflags +- startcontext-cantunwind.patch: Removed +- cpuid-assertion.patch: Removed + ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 6fddc0d..16c5515 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -103,10 +103,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.24 +Version: 2.25 Release: 0 %if !%{build_snapshot} -%define git_id beb0f59498c3 +%define git_id db0242e30234 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -247,10 +247,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch1000: startcontext-cantunwind.patch -# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) -Patch1001: cpuid-assertion.patch +# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) +Patch1000: tunables-bigendian.patch ### # Patches awaiting upstream approval @@ -473,7 +471,6 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 -%patch1001 -p1 %patch2000 -p1 %patch2001 -p1 @@ -539,6 +536,14 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +enable_stack_protector= +for opt in $BuildFlags; do + case $opt in + -fstack-protector-strong) enable_stack_protector=strong ;; + -fstack-protector-all) enable_stack_protector=all ;; + -fstack-protector) enable_stack_protector=yes ;; + esac +done BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" @@ -621,9 +626,6 @@ configure_and_build_glibc() { --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -634,6 +636,11 @@ configure_and_build_glibc() { %ifarch ppc64p7 --with-cpu=power7 \ %endif +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ + --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc \ @@ -746,7 +753,7 @@ make -C cc-base -k check || { cd cc-base o=$- set +x - for sum in */*.sum; do + for sum in subdir-tests.sum */subdir-tests.sum; do while read s t; do case $s in XPASS:|PASS:) @@ -1292,6 +1299,7 @@ exit 0 %{_libdir}/libdl.a %{_libdir}/libm.a %ifarch x86_64 +%{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif %{_libdir}/libnsl.a diff --git a/glibc-version.diff b/glibc-version.diff index 0cc1703..8381c25 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -8,7 +8,7 @@ Index: glibc-2.17.90/csu/version.c static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2016 Free Software Foundation, Inc.\n\ + Copyright (C) 2017 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index 12c7b52..20dc6fd 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,111 @@ +------------------------------------------------------------------- +Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de + +- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ + #21109) + +------------------------------------------------------------------- +Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de + +- Update to glibc 2.25 + * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR + 24731-2:2010, is supported to enable declarations of functions from that + TR. + * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS + 18661-1:2014, is supported to enable declarations of functions and macros + from that TS. + * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS + 18661-4:2015, is supported to enable declarations of functions and macros + from that TS. + * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are + now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. + * The inclusion of by is deprecated. + * New features from TS 18661-1:2014 are added to libm: the + fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the + femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. + * Integer width macros from TS 18661-1:2014 are added to : + CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, + UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to + : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, + INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, + UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, + INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, + UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, + UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, + UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, + UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, + WINT_WIDTH. + * New features are added from TS 18661-1:2014: + - Signaling NaN macros: SNANF, SNAN, SNANL. + - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, + fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, + fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. + - llogb functions: the llogb, llogbf and llogbl functions, and the + FP_LLOGB0 and FP_LLOGBNAN macros. + - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, + fminmagf, fminmagl. + - Comparison macros: iseqsig. + - Classification macros: iscanonical, issubnormal, iszero. + - Total order functions: totalorder, totalorderf, totalorderl, + totalordermag, totalordermagf, totalordermagl. + - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. + - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, + setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. + * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, + are added to libc. + * Most of glibc can now be built with the stack smashing protector enabled. + * The function explicit_bzero, from OpenBSD, has been added to libc. + * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined + to float instead of double. + * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the + float_t and double_t types are now defined to long double instead of float + and double. + * The getentropy and getrandom functions, and the header file + have been added. + * The buffer size for byte-oriented stdio streams is now limited to 8192 + bytes by default. + * The header now includes the header. + * The malloc_get_state and malloc_set_state functions have been removed. + * The “ip6-dotint†and “no-ip6-dotint†resolver options, and the + corresponding RES_NOIP6DOTINT flag from have been removed. + * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING + flag from have been removed. + * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, + RES_BLAST defined in the header file have been deprecated. + * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for + _res.flags are deprecated. + * DNSSEC-related declarations and definitions have been removed from the + header file, and libresolv will no longer attempt to + decode the data part of DNSSEC record types. + * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, + ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the + header file because the distinction between RR types and + meta-RR types is not officially standardized, subject to revision, and + thus not suitable for encoding in a macro. + * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook + and rhook members of the res_state type in have been removed. + * For multi-arch support it is recommended to use a GCC which has + been built with support for GNU indirect functions. + * GDB pretty printers have been added for mutex and condition variable + structures in POSIX Threads. + * Tunables feature added to allow tweaking of the runtime for an application + program. + * A new version of condition variables functions have been implemented in + the NPTL implementation of POSIX Threads to provide stronger ordering + guarantees. + * A new version of pthread_rwlock functions have been implemented to use a more + scalable algorithm primarily through not using a critical section anymore to + make state changes. + * On ARM EABI (32-bit), generating a backtrace for execution contexts which + have been created with makecontext could fail to terminate due to a + missing .cantunwind annotation. (CVE-2016-6323) + * The DNS stub resolver functions would crash due to a NULL pointer + dereference when processing a query with a valid DNS question type which + was used internally in the implementation. (CVE-2015-5180) +- Enable stack protector if part of %optflags +- startcontext-cantunwind.patch: Removed +- cpuid-assertion.patch: Removed + ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring index afbce5a6c5045a00ac212eb1ab0232043fb9b9fa7ca86637a915faefdfbb8fbc..3f66b81ac313efb0b001edfe9e5504c118165f5938c07eb46570b905850b9b96 100644 GIT binary patch delta 5630 zcmai&bx@RT+lP0TSQc0s6p*ErkY=Sj1%#!$yOE_qmu^@DB&1WiK~P#cq$Lyyl?IiP z=Ee7Yp7+ylo^QVYu9>y`Qstr>v#7CrNib<&FVErnWsOgM=4H3(snvfQ^MV=PCmzMU(#8Om^eT%we% zs+^?%Nb^*Cfv8HMd2s0s-uYp#^k@9w?lB_qR84fJS>+5OW0^9zE3?fA%rqP~8nZF@9z;7=*VxCq2YJggq_=3)epMuvOtK?^ZDJ_{h=BlL1B<4; zm6e?}(vA+{>TB+9?P%^!CyI3Y&soyl+RDz{gVWO0Sv(3Tj!6mx0a&m=ngHh`5H$uC z1VpHp^pOaL^6e2j|1m}%k<<>p5`|S_{P>ulgeNjeng8G^qT67`Q+m{R|PPGBzrza@ahpT)@s3fw#+*mzp>Gtq zR*c! z7_#zRmCsn|y&!n>0hUNW7Oc-M!d}*~CqLPX2~K&^=d5eB9R(Epcj62;Stl(LQKGOw zT3dB~zb^bcaJ;ABYvm}s+r4*W$g8k{%W`-woMx9|m`S{4Mah?q+dg?axcw9jgwjlE z?nCb&+Ok?S8R|QC7Zq{tJo42b4(m$%87I2((3}+{^`=#GrJzl(wl`~u`Jw2?zyU1H zZ}Rn0B4)?lh`fQ2E&h9`7~0w@COwV9x?EK~9F}HZnpR`+{fai?`Vg6OQRfS5o`_)2 zVErJ8>A^fRp|9GRixw{(!AoI8Hb2KHzxRJhT>Qer1m(KJZ^iKoe!cb<-XGdcT+}*5Z9T|@R1oa^jY_zsN)W^L6HsT+Y3eD zc29}AfWw$36kjE&{!(7ZGXbajlKyCjur{@?m(!79^T$)@XtE7%yo#8~bO?n%dVACk zxUg>G^)zDnFxg@J_6q;{#Rc=}bEq2AkIB{b`RX_Q-Bn7(K95TZKIeoi72>Bt463u- zwKD5YJF`<+4J`D&EiSBH(v!-Oa}aLC|Gb*Zw(?SGMK$sh2#ik5=uYV%`@b<_2rF&V zmQyRnU@uhLH<+zA*IO4P`^t0`&^XHcyviBhQnWRd8DWNtJ3)l8qRcHAqz9a;STQc! z-w-YRw5Zlgt**iMyBD@on6XZ!TcOXYE}>Q~!!lpA0A`q8yt>~tHQ95E!vKS2*F~j3 zzeM|s7V0+F_{A6F!EycWWv-5g?56-t-Go*ZSvcPK_6k6 zDPClsv4|oJ7Nh2=7Xs;A9rT8YSW5jdVqD2M;t0bgoHI=z`lOS|2(3xrhY|=@e^H4? z^2}7XS>@Ht3qUO1@-TC-RfCBew~OwJoN|ii_fY3RfwNkF9)Ua;tMn~iH+fYeJ1k-4 z?C)qUmGakh9scom*Z9{#hjVjMzM8ab2AHxiSQ1t(*wpeQ>;K@~U+nvna}xiqI@VvD zvzq#wa{w@2(l+SMe^EE`6MXgH8|I=cv0#H+@fT9F+LLjmsil_-XocY;iS_}J>198f zi7I~zO@6_3nR$CW|2qt2a^N=JlJI?|ya4l8DCl;D&5_Ce5PG(?=N+A^%;L9V*C7`q zZ73#lDGA3%IZ7^qcLK^z*cWwlU8RnpsEbwc0!NfCz&N1RW%ooCPlJ(Kl!$xW>ESa7 z8IHIMBUJ{=wnOO}-85WP!aWS#t%Gle)aD{u?~N9I*Z=UU4s4Xsg2r_|WF)%dA{Hru zdyM7db#hT&fez<=%UU~cliFe>iJyosX_+D8F-ez}f9q~FgBF+kb!GpfbrGNDai`CX zN*bmkv4zcF#0NeoeppC>-2MY~bHAf5l>(4sG_PZIS~N`hmR%C({mic66jhuFAQO_j zamR>B-julq5J1A7lVD2S5*h`(X|*>M%$Otvr1=NVnQr0$VjOt=)IZb?}$N$CwC_2`8-6M2K)|IMc%;;tQ}N#DaY@*hF`Q{f7qXVd|S|M zWOVt673XzveMqTG%_Gf&CkllST!b~z^>OqQa~)Rutl_&st+ObytCw~ySKp`6gHLtj zdEtafk=j+#+0O+bnS8@ZLoeYqB=<7C6FR%i#z<(R6eyX(RnH8$r0B10yt0-8xleH| zdf$;s!}u$ACOm_en4i7EVgY%M*3!5*zQGF(m@(_gybxT+<;}XVfY@_{=7*YCQk>U;(H0=ySp%}m~L@`-t8r1Sa8c&i6&E4Iy%G99q(F1ue`txDh(9(L%R6y&p zT&RaeLcqG%V9V=}_vA%x5hzw{1m>HOGCIroF0Y`fK8mJKdO1dHw{*tJNk^jtzimA; z+&mTw^<0bdF_tkaS%QJ;UxE%UG!fT*VfsVN1y9l&@FI6fP){5Yj*7GJWQ19~)`4J5 z_ME?t(r)oLjbXc2z62srS1+`?x~v0P1wJXYwJYfrzW#`P@f6ZcVb85hwlUzU3;$`M zcpBt1{Je7Qh(b|8G2cO{$)YD#)IdK|w3}`Z|D^0}man< zZLElWzeEV^LTmd24D?vs@1yD1R7b|4qkCYQY*5i(90+x|!B zC}M05_+&$@>A~w9z%ZBC96au_d)FJc9?p=NE3+bo3iyPfHbmFGjLzN)B(hOYKa0UW zJ2CM|$t}NiN?Niv7xJbhY5{AEV~mG6{HPrFJ~0KIWCvR%*$5|jgXll_91FtQ9qH;~ z?!(W_zgVuCZd144<4KB*FlJ_?7 zUB`p35BHs-N^M`G1Cm7FbnwO^$6HAXS#$Zqj6mCoyC<><7)zlx<#RqN%oYi3YmjKx z+-vE(MFZ#yGUfZBR5j4a1G2XmN<5EsHW?#1ofj=!Z;5+#Y$J&u^V4LIe<(w7)=y%r z!(z@wz94MgF4Qk`Vep&rl@q@VrCv@{-0us*#xfi7Bu2%w|7OEl45ABvcZol2SgRWc zkQs{Ak^<0Ta+6Mh9p{;I7hUg>6V<!;AF{?;e{Ct2vAM5nf2$RL+RCO zBlA)e7l!BpbqxnIpI7FKlLn}j7p3O;pFPgO=s%g3RgLhqG@C(^A7To6a3+M4HzGCq zMm|&FaLux%Q2z)*Q8-aN)vQrsNaC}xegUWC}ls z3vlGQ_$j7gwVh5WX$hrR9(*~$0crTzS*)=0u0m((;xw+{Rkl0wUSN<+`6IlQ5q4H%q z{u!d9lv7ltNSE;=ijmO`17^eoCTGWgC~cvp9vUUkyX9b?t^hlVNisBbjS}N-F_!~X z-mQ6i#onsOu}(7mvb9B1UhQbF;EoUUUU-%o4m<0u$w`i_ja;7(S#>qI#qGI*fo@sK6 za58T{R6{FnXyiRjM|zUi2)?lh*4+Ao*Ha$@<Iv5aqr<)C<)UBNk`Z*4A1M956G&aTjg$#P<|4=wuldkRybNjW?qzMoVPXIG6e@5-C>#Ji7D&6(%IjC%;X!b~AZ&6R z2reE7lLCZ+0)k*b(5=AVp(Q>BzIH=GYF3QmoO@5^aF{Xf0Y)0*@=Lo0;3?<#e?;AW z@S}a1n*?O!@>*#VVhGCB1rgA9lGgJr$5@k2$S4YiQbVOLZO*kLncq)8;nL>{X)`)X zq=`_nloLPj92+b$NVY`t9%d{+R8hlL>atwHM2t@$g;3{xyPrCyX@de?1%@Okevftq z+j5Xzp$cPe=VesKn&u1d48Lt$Yf|Nh$<a_*fsgv{s zkC}q~Jsha=+tgFNujJO>s5ChIKN4)~>fz?(!RhL5do%3+HF{!!bQ^|M{xg8m{8xT8 zaBu(_%Dfl-abye^g2H)>WZdTpdqH=DeFYC}rI)+nQjfbE<@~iZ01Yy}Dvteqk7QX$ z9nfgRnT@6I^@C``lo^Uyx%l>PPU%adya-PCLv&M^W>rPbb%gIX(lv0v-gum;{}2f* zXw=FZz^*d~<;PX-6GuHl+Lo$~Hn$YkXX&{OU^d;5i_zPR7Z=ji)7{eA`(~x`E79LNujHR!{>*yl=l{<7r5*T6%uc^yVNyC8 z>)p=6dwGISbpi;rs@#M9IrGZ+PeGqh6@d`eO6N(Pq9$MaThE@a>$!Ks^$nGSq~5tx z?G&v(7s*cn5EzklewHUC9LHVhXEpA&0$CgU4 zaVhh5SP!FV82g;34PX4&MCsM@)`KQe3I7&jH(DAVDsoO!lNm4N-1Xs0BJyhqtsd`s zdBHiTNgL4xl5K$TB*Gg*DDB8Qu~Z>M|B3$?DwkOIVczOWwy4r7iDh@o|7`B^@DxLf z?kyaAnhp}3XC11*5q~OinczY+i3kXb)DID>ZmYl|o)2azs`)guM-b}xW>{U1YyE3v zrYfPH7FDTi2JhNb{D7@pAdW9Hf7PIy997jEtwK82U5A>d>Jf;OVL~nGdle{J&Z;2O z?`i%KyYXeCv8*!p9oeu3A>^-cyzihpd4%q=msI7rF(jQ6SCm z+5(~$apJ?ja4g7QR^1b6TEzjpm=n*ar`EXi`?TA!qmutBR<)vuI)6J>RQz1>OJv diff --git a/glibc.spec b/glibc.spec index e04ab78..1b50e49 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -36,6 +36,7 @@ Name: glibc Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries +# UTILS-SUMMARY-END BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -104,10 +105,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.24 +Version: 2.25 Release: 0 %if !%{build_snapshot} -%define git_id beb0f59498c3 +%define git_id db0242e30234 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -248,10 +249,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch1000: startcontext-cantunwind.patch -# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) -Patch1001: cpuid-assertion.patch +# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) +Patch1000: tunables-bigendian.patch ### # Patches awaiting upstream approval @@ -473,7 +472,6 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 -%patch1001 -p1 %patch2000 -p1 %patch2001 -p1 @@ -539,6 +537,14 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +enable_stack_protector= +for opt in $BuildFlags; do + case $opt in + -fstack-protector-strong) enable_stack_protector=strong ;; + -fstack-protector-all) enable_stack_protector=all ;; + -fstack-protector) enable_stack_protector=yes ;; + esac +done BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" @@ -621,9 +627,6 @@ configure_and_build_glibc() { --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -634,6 +637,11 @@ configure_and_build_glibc() { %ifarch ppc64p7 --with-cpu=power7 \ %endif +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ + --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc \ @@ -746,7 +754,7 @@ make -C cc-base -k check || { cd cc-base o=$- set +x - for sum in */*.sum; do + for sum in subdir-tests.sum */subdir-tests.sum; do while read s t; do case $s in XPASS:|PASS:) @@ -1292,6 +1300,7 @@ exit 0 %{_libdir}/libdl.a %{_libdir}/libm.a %ifarch x86_64 +%{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif %{_libdir}/libnsl.a diff --git a/pre_checkin.sh b/pre_checkin.sh index 3f14c9b..121f4b1 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -10,7 +10,7 @@ Summary: Development utilities from GNU C library\n\ License: LGPL-2.1+\n\ Group: Development/Languages/C and C++" } -/^BuildRequires/ { ignore = 0 } +/UTILS-SUMMARY-END/ { ignore = 0; next } /^%description$/ { ignore = 1 print "\ diff --git a/startcontext-cantunwind.patch b/startcontext-cantunwind.patch deleted file mode 100644 index 4d36591..0000000 --- a/startcontext-cantunwind.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1061d6fe364ddac7458a872839ea9efe8f7600f0 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Mon, 8 Aug 2016 09:29:18 +0200 -Subject: [PATCH] arm: mark __startcontext as .cantunwind - -__startcontext marks the bottom of the call stack of the contexts created -by makecontext. - - [BZ #20435] - * sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark - as .cantunwind. ---- - sysdeps/unix/sysv/linux/arm/setcontext.S | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S -index 603e508..d1f168f 100644 ---- a/sysdeps/unix/sysv/linux/arm/setcontext.S -+++ b/sysdeps/unix/sysv/linux/arm/setcontext.S -@@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext) - - /* Called when a makecontext() context returns. Start the - context in R4 or fall through to exit(). */ -+ /* Unwind descriptors are looked up based on PC - 2, so we have to -+ make sure to mark the instruction preceding the __startcontext -+ label as .cantunwind. */ -+ .fnstart -+ .cantunwind -+ nop - ENTRY(__startcontext) - movs r0, r4 - bne PLTJMP(__setcontext) - - @ New context was 0 - exit - b PLTJMP(HIDDEN_JUMPTARGET(exit)) -+ .fnend - END(__startcontext) - - #ifdef PIC --- -2.9.2 - diff --git a/tunables-bigendian.patch b/tunables-bigendian.patch new file mode 100644 index 0000000..f679c20 --- /dev/null +++ b/tunables-bigendian.patch @@ -0,0 +1,73 @@ +2017-02-08 Siddhesh Poyarekar + + [BZ #21109] + * elf/dl-tunable-types.h (tunable_callback_t): Accept + tunable_val_t as argument. + * elf/dl-tunables.c (__tunable_set_val): Add comment. + * malloc/arena.c (set_mallopt_check): Take tunable_val_t as + argument. + (DL_TUNABLE_CALLBACK_FNDECL): Likewise. + +Index: glibc-2.25/elf/dl-tunable-types.h +=================================================================== +--- glibc-2.25.orig/elf/dl-tunable-types.h ++++ glibc-2.25/elf/dl-tunable-types.h +@@ -21,8 +21,6 @@ + # define _TUNABLE_TYPES_H_ + #include + +-typedef void (*tunable_callback_t) (void *); +- + typedef enum + { + TUNABLE_TYPE_INT_32, +@@ -43,6 +41,8 @@ typedef union + const char *strval; + } tunable_val_t; + ++typedef void (*tunable_callback_t) (tunable_val_t *); ++ + /* Security level for tunables. This decides what to do with individual + tunables for AT_SECURE binaries. */ + typedef enum +Index: glibc-2.25/elf/dl-tunables.c +=================================================================== +--- glibc-2.25.orig/elf/dl-tunables.c ++++ glibc-2.25/elf/dl-tunables.c +@@ -455,6 +455,8 @@ __tunable_set_val (tunable_id_t id, void + if (cur->strval == NULL) + return; + ++ /* Caller does not need the value, just call the callback with our tunable ++ value. */ + if (valp == NULL) + goto cb; + +Index: glibc-2.25/malloc/arena.c +=================================================================== +--- glibc-2.25.orig/malloc/arena.c ++++ glibc-2.25/malloc/arena.c +@@ -212,9 +212,9 @@ __malloc_fork_unlock_child (void) + #if HAVE_TUNABLES + static inline int do_set_mallopt_check (int32_t value); + void +-DL_TUNABLE_CALLBACK (set_mallopt_check) (void *valp) ++DL_TUNABLE_CALLBACK (set_mallopt_check) (tunable_val_t *valp) + { +- int32_t value = *(int32_t *) valp; ++ int32_t value = (int32_t) valp->numval; + do_set_mallopt_check (value); + if (check_action != 0) + __malloc_check_init (); +@@ -223,9 +223,9 @@ DL_TUNABLE_CALLBACK (set_mallopt_check) + # define DL_TUNABLE_CALLBACK_FNDECL(__name, __type) \ + static inline int do_ ## __name (__type value); \ + void \ +-DL_TUNABLE_CALLBACK (__name) (void *valp) \ ++DL_TUNABLE_CALLBACK (__name) (tunable_val_t *valp) \ + { \ +- __type value = *(__type *) valp; \ ++ __type value = (__type) (valp)->numval; \ + do_ ## __name (value); \ + } + From 0aeaace725dcf4258202753a25f2ca7785abd085d1dc08c90654b9576aa18455 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 25 Apr 2017 06:53:44 +0000 Subject: [PATCH 200/204] Accepting request 483846 from Base:System - i686-memchr-sse.patch: Fix i686 memchr overflow calculation (bsc#1031021, BZ #21182) - sunrpc-use-after-free.patch: Avoid use-after-free read access in clntudp_call (BZ #21115) - Build testsuite with gdb and python-pexpect to enable more tests (forwarded request 483845 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/483846 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=209 --- glibc-testsuite.changes | 9 +++ glibc-testsuite.spec | 8 +++ glibc-utils.changes | 9 +++ glibc-utils.spec | 8 +++ glibc.changes | 9 +++ glibc.spec | 8 +++ i686-memchr-sse.patch | 45 +++++++++++++++ sunrpc-use-after-free.patch | 111 ++++++++++++++++++++++++++++++++++++ 8 files changed, 207 insertions(+) create mode 100644 i686-memchr-sse.patch create mode 100644 sunrpc-use-after-free.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 20dc6fd..36fc946 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de + +- i686-memchr-sse.patch: Fix i686 memchr overflow calculation + (bsc#1031021, BZ #21182) +- sunrpc-use-after-free.patch: Avoid use-after-free read access in + clntudp_call (BZ #21115) +- Build testsuite with gdb and python-pexpect to enable more tests + ------------------------------------------------------------------- Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 9c60f57..e36a20f 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -47,8 +47,10 @@ BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} BuildRequires: gcc-c++ +BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel +BuildRequires: python-pexpect %endif %if %{utils_build} BuildRequires: gd-devel @@ -251,6 +253,10 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) Patch1000: tunables-bigendian.patch +# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) +Patch1001: i686-memchr-sse.patch +# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) +Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -472,6 +478,8 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 20dc6fd..36fc946 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de + +- i686-memchr-sse.patch: Fix i686 memchr overflow calculation + (bsc#1031021, BZ #21182) +- sunrpc-use-after-free.patch: Avoid use-after-free read access in + clntudp_call (BZ #21115) +- Build testsuite with gdb and python-pexpect to enable more tests + ------------------------------------------------------------------- Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 16c5515..e04201f 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -45,8 +45,10 @@ BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} BuildRequires: gcc-c++ +BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel +BuildRequires: python-pexpect %endif %if %{utils_build} BuildRequires: gd-devel @@ -249,6 +251,10 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) Patch1000: tunables-bigendian.patch +# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) +Patch1001: i686-memchr-sse.patch +# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) +Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -471,6 +477,8 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc.changes b/glibc.changes index 20dc6fd..36fc946 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de + +- i686-memchr-sse.patch: Fix i686 memchr overflow calculation + (bsc#1031021, BZ #21182) +- sunrpc-use-after-free.patch: Avoid use-after-free read access in + clntudp_call (BZ #21115) +- Build testsuite with gdb and python-pexpect to enable more tests + ------------------------------------------------------------------- Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 1b50e49..60003f1 100644 --- a/glibc.spec +++ b/glibc.spec @@ -47,8 +47,10 @@ BuildRequires: systemd-rpm-macros BuildRequires: xz %if %{testsuite_build} BuildRequires: gcc-c++ +BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel +BuildRequires: python-pexpect %endif %if %{utils_build} BuildRequires: gd-devel @@ -251,6 +253,10 @@ Patch306: glibc-fix-double-loopback.diff ### # PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) Patch1000: tunables-bigendian.patch +# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) +Patch1001: i686-memchr-sse.patch +# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) +Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -472,6 +478,8 @@ rm nscd/s-stamp %patch306 -p1 %patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/i686-memchr-sse.patch b/i686-memchr-sse.patch new file mode 100644 index 0000000..a201f51 --- /dev/null +++ b/i686-memchr-sse.patch @@ -0,0 +1,45 @@ +2017-03-29 Adhemerval Zanella + + [BZ# 21182] + * string/test-memchr.c (do_test): Add BZ#21182 checks for address + near end of a page. + * sysdeps/i386/i686/multiarch/memchr-sse2.S (__memchr): Fix + overflow calculation. + +Index: glibc-2.25/string/test-memchr.c +=================================================================== +--- glibc-2.25.orig/string/test-memchr.c ++++ glibc-2.25/string/test-memchr.c +@@ -208,6 +208,12 @@ test_main (void) + do_test (0, i, i + 1, i + 1, 0); + } + ++ /* BZ#21182 - wrong overflow calculation for i686 implementation ++ with address near end of the page. */ ++ for (i = 2; i < 16; ++i) ++ /* page_size is in fact getpagesize() * 2. */ ++ do_test (page_size / 2 - i, i, i, 1, 0x9B); ++ + do_random_tests (); + return ret; + } +Index: glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S +=================================================================== +--- glibc-2.25.orig/sysdeps/i386/i686/multiarch/memchr-sse2.S ++++ glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S +@@ -117,7 +117,6 @@ L(crosscache): + + # ifndef USE_AS_RAWMEMCHR + jnz L(match_case2_prolog1) +- lea -16(%edx), %edx + /* Calculate the last acceptable address and check for possible + addition overflow by using satured math: + edx = ecx + edx +@@ -125,6 +124,7 @@ L(crosscache): + add %ecx, %edx + sbb %eax, %eax + or %eax, %edx ++ sub $16, %edx + jbe L(return_null) + lea 16(%edi), %edi + # else diff --git a/sunrpc-use-after-free.patch b/sunrpc-use-after-free.patch new file mode 100644 index 0000000..b1ddd22 --- /dev/null +++ b/sunrpc-use-after-free.patch @@ -0,0 +1,111 @@ +2017-02-27 Florian Weimer + + [BZ #21115] + * sunrpc/clnt_udp.c (clntudp_call): Free ancillary data later. + * sunrpc/Makefile (tests): Add tst-udp-error. + (tst-udp-error): Link against libc.so explicitly. + * sunrpc/tst-udp-error: New file. + +Index: glibc-2.25/sunrpc/Makefile +=================================================================== +--- glibc-2.25.orig/sunrpc/Makefile ++++ glibc-2.25/sunrpc/Makefile +@@ -93,7 +93,7 @@ rpcgen-objs = rpc_main.o rpc_hout.o rpc_ + extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs)) + others += rpcgen + +-tests = tst-xdrmem tst-xdrmem2 test-rpcent ++tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error + xtests := tst-getmyaddr + + ifeq ($(have-thread-library),yes) +@@ -155,6 +155,7 @@ BUILD_CPPFLAGS += $(sunrpc-CPPFLAGS) + $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so + $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so + $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so ++$(objpfx)tst-udp-error: $(common-objpfx)linkobj/libc.so + + $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) + +Index: glibc-2.25/sunrpc/clnt_udp.c +=================================================================== +--- glibc-2.25.orig/sunrpc/clnt_udp.c ++++ glibc-2.25/sunrpc/clnt_udp.c +@@ -424,9 +424,9 @@ send_again: + cmsg = CMSG_NXTHDR (&msg, cmsg)) + if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR) + { +- free (cbuf); + e = (struct sock_extended_err *) CMSG_DATA(cmsg); + cu->cu_error.re_errno = e->ee_errno; ++ free (cbuf); + return (cu->cu_error.re_status = RPC_CANTRECV); + } + free (cbuf); +Index: glibc-2.25/sunrpc/tst-udp-error.c +=================================================================== +--- /dev/null ++++ glibc-2.25/sunrpc/tst-udp-error.c +@@ -0,0 +1,62 @@ ++/* Check for use-after-free in clntudp_call (bug 21115). ++ Copyright (C) 2017 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ support_become_root (); ++ support_enter_network_namespace (); ++ ++ /* Obtain a likely-unused port number. */ ++ struct sockaddr_in sin = ++ { ++ .sin_family = AF_INET, ++ .sin_addr.s_addr = htonl (INADDR_LOOPBACK), ++ }; ++ { ++ int fd = xsocket (AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); ++ xbind (fd, (struct sockaddr *) &sin, sizeof (sin)); ++ socklen_t sinlen = sizeof (sin); ++ xgetsockname (fd, (struct sockaddr *) &sin, &sinlen); ++ /* Close the socket, so that we will receive an error below. */ ++ close (fd); ++ } ++ ++ int sock = RPC_ANYSOCK; ++ CLIENT *clnt = clntudp_create ++ (&sin, 1, 2, (struct timeval) { 1, 0 }, &sock); ++ TEST_VERIFY_EXIT (clnt != NULL); ++ TEST_VERIFY (clnt_call (clnt, 3, ++ (xdrproc_t) xdr_void, NULL, ++ (xdrproc_t) xdr_void, NULL, ++ ((struct timeval) { 3, 0 })) ++ == RPC_CANTRECV); ++ clnt_destroy (clnt); ++ ++ return 0; ++} ++ ++#include From 77cf323acedf9a68bd0ea00584e98f6a732f00925063021f994d1ffbe2e2701c Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 24 Aug 2017 15:38:39 +0000 Subject: [PATCH 201/204] Accepting request 514073 from Base:System - Update to glibc 2.26 (forwarded request 514072 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/514073 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=210 --- _service | 15 --- abort-no-flush.patch | 2 +- add-locales.patch | 29 ++++++ check-build.sh | 32 ------- fnmatch-collating-elements.patch | 6 +- glibc-2.2-sunrpc.diff | 82 ---------------- glibc-2.25.tar.xz | 3 - glibc-2.25.tar.xz.sig | 10 -- glibc-2.26.tar.xz | 3 + glibc-2.26.tar.xz.sig | 10 ++ glibc-2.3.locales.diff.bz2 | 3 - glibc-cpusetsize.diff | 26 ----- glibc-resolv-reload.diff | 121 ----------------------- glibc-testsuite.changes | 107 +++++++++++++++++++++ glibc-testsuite.patch | 15 --- glibc-testsuite.spec | 159 +++++++++++++++++-------------- glibc-testsuite.spec.in | 6 ++ glibc-utils.changes | 107 +++++++++++++++++++++ glibc-utils.spec | 156 ++++++++++++++++-------------- glibc-utils.spec.in | 6 ++ glibc.changes | 107 +++++++++++++++++++++ glibc.keyring | Bin 39186 -> 55371 bytes glibc.rpmlintrc | 31 +++--- glibc.spec | 159 +++++++++++++++++-------------- i686-memchr-sse.patch | 45 --------- pre_checkin.sh | 37 ++----- s390-elision-enable-envvar.patch | 31 ++++++ sunrpc-use-after-free.patch | 111 --------------------- tunables-bigendian.patch | 73 -------------- 29 files changed, 688 insertions(+), 804 deletions(-) delete mode 100644 _service create mode 100644 add-locales.patch delete mode 100644 check-build.sh delete mode 100644 glibc-2.2-sunrpc.diff delete mode 100644 glibc-2.25.tar.xz delete mode 100644 glibc-2.25.tar.xz.sig create mode 100644 glibc-2.26.tar.xz create mode 100644 glibc-2.26.tar.xz.sig delete mode 100644 glibc-2.3.locales.diff.bz2 delete mode 100644 glibc-cpusetsize.diff delete mode 100644 glibc-resolv-reload.diff delete mode 100644 glibc-testsuite.patch create mode 100644 glibc-testsuite.spec.in create mode 100644 glibc-utils.spec.in delete mode 100644 i686-memchr-sse.patch create mode 100644 s390-elision-enable-envvar.patch delete mode 100644 sunrpc-use-after-free.patch delete mode 100644 tunables-bigendian.patch diff --git a/_service b/_service deleted file mode 100644 index 3f7f18c..0000000 --- a/_service +++ /dev/null @@ -1,15 +0,0 @@ - - - 2.25.90.%cd.g%h - git://sourceware.org/git/glibc - git - - - - xz - *.tar - - - glibc - - diff --git a/abort-no-flush.patch b/abort-no-flush.patch index e7bc31a..a32b6fe 100644 --- a/abort-no-flush.patch +++ b/abort-no-flush.patch @@ -18,7 +18,7 @@ Index: glibc-2.19/stdlib/abort.c struct abort_msg_s *__abort_msg __attribute__ ((nocommon)); libc_hidden_def (__abort_msg) @@ -66,16 +63,8 @@ abort (void) - __sigprocmask (SIG_UNBLOCK, &sigs, (sigset_t *) NULL); + __sigprocmask (SIG_UNBLOCK, &sigs, 0); } - /* Flush all streams. We cannot close them now because the user diff --git a/add-locales.patch b/add-locales.patch new file mode 100644 index 0000000..7a18cd1 --- /dev/null +++ b/add-locales.patch @@ -0,0 +1,29 @@ +Index: glibc-2.25/localedata/SUPPORTED +=================================================================== +--- glibc-2.25.orig/localedata/SUPPORTED ++++ glibc-2.25/localedata/SUPPORTED +@@ -129,6 +129,7 @@ en_CA.UTF-8/UTF-8 \ + en_CA/ISO-8859-1 \ + en_DK.UTF-8/UTF-8 \ + en_DK/ISO-8859-1 \ ++en_GB.ISO-8859-15/ISO-8859-15 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ + en_HK.UTF-8/UTF-8 \ +@@ -145,6 +146,7 @@ en_PH.UTF-8/UTF-8 \ + en_PH/ISO-8859-1 \ + en_SG.UTF-8/UTF-8 \ + en_SG/ISO-8859-1 \ ++en_US.ISO-8859-15/ISO-8859-15 \ + en_US.UTF-8/UTF-8 \ + en_US/ISO-8859-1 \ + en_ZA.UTF-8/UTF-8 \ +@@ -269,6 +271,8 @@ it_IT/ISO-8859-1 \ + it_IT@euro/ISO-8859-15 \ + iu_CA/UTF-8 \ + ja_JP.EUC-JP/EUC-JP \ ++ja_JP.SHIFT_JISX0213/SHIFT_JISX0213 \ ++ja_JP.SJIS/SHIFT_JIS \ + ja_JP.UTF-8/UTF-8 \ + ka_GE.UTF-8/UTF-8 \ + ka_GE/GEORGIAN-PS \ diff --git a/check-build.sh b/check-build.sh deleted file mode 100644 index 3f33595..0000000 --- a/check-build.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# Copyright (c) 2003, 2004, 2011,2012 SUSE Linux Products GmbH, Germany. All rights reserved. -# -# Authors: Thorsten Kukuk -# - - - -if [ `nice` -gt '9' ] ; then - echo "Don't modify nice for building glibc!" - exit 1 -fi - -# get kernel version -OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" -ARCH=(`uname -m`) - -if test ${version[0]} -gt 2 ; then - : # okay -elif test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then - echo "FATAL: kernel too old, need kernel >= 2.6.16 for this package" 1>&2 - exit 1 -elif $ARCH -eq 'x86_64' ; then - if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 32 ; then - echo "FATAL: kernel too old, need kernel >= 2.6.32 for this package" 1>&2 - exit 1 - fi -fi - - -exit 0 - diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch index 801c381..f660b31 100644 --- a/fnmatch-collating-elements.patch +++ b/fnmatch-collating-elements.patch @@ -19,9 +19,9 @@ Index: glibc-2.22/posix/Makefile tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ tst-fnmatch3 bug-regex36 tst-getaddrinfo5 \ + tst-fnmatch4 tst-fnmatch5 \ - tst-posix_spawn-fd \ - tst-posix_fadvise tst-posix_fadvise64 - xtests := bug-ga2 + tst-posix_spawn-fd tst-posix_spawn-setsid \ + tst-posix_fadvise tst-posix_fadvise64 \ + tst-sysconf-empty-chroot Index: glibc-2.22/posix/fnmatch.c =================================================================== --- glibc-2.22.orig/posix/fnmatch.c diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff deleted file mode 100644 index 2efdd81..0000000 --- a/glibc-2.2-sunrpc.diff +++ /dev/null @@ -1,82 +0,0 @@ -For details see: -http://sourceware.org/bugzilla/show_bug.cgi?id=5379 - - -Index: glibc-2.20/sunrpc/clnt_udp.c -=================================================================== ---- glibc-2.20.orig/sunrpc/clnt_udp.c -+++ glibc-2.20/sunrpc/clnt_udp.c -@@ -308,6 +308,7 @@ clntudp_call (cl, proc, xargs, argsp, xr - XDR *xdrs; - int outlen = 0; - int inlen; -+ int pollresult; - socklen_t fromlen; - struct pollfd fd; - int milliseconds = (cu->cu_wait.tv_sec * 1000) + -@@ -378,37 +379,39 @@ send_again: - anyup = 0; - for (;;) - { -- switch (__poll (&fd, 1, milliseconds)) -+ switch (pollresult = __poll (&fd, 1, milliseconds)) - { -- - case 0: -- if (anyup == 0) -+ case -1: -+ if (pollresult == 0 || errno == EINTR) - { -- anyup = is_network_up (cu->cu_sock); -- if (!anyup) -- return (cu->cu_error.re_status = RPC_CANTRECV); -+ if (anyup == 0) -+ { -+ anyup = is_network_up (cu->cu_sock); -+ if (!anyup) -+ return (cu->cu_error.re_status = RPC_CANTRECV); -+ } -+ -+ time_waited.tv_sec += cu->cu_wait.tv_sec; -+ time_waited.tv_usec += cu->cu_wait.tv_usec; -+ while (time_waited.tv_usec >= 1000000) -+ { -+ time_waited.tv_sec++; -+ time_waited.tv_usec -= 1000000; -+ } -+ if ((time_waited.tv_sec < timeout.tv_sec) || -+ ((time_waited.tv_sec == timeout.tv_sec) && -+ (time_waited.tv_usec < timeout.tv_usec))) -+ { -+ if (pollresult == 0) -+ goto send_again; -+ else -+ continue; -+ } -+ return (cu->cu_error.re_status = RPC_TIMEDOUT); - } - -- time_waited.tv_sec += cu->cu_wait.tv_sec; -- time_waited.tv_usec += cu->cu_wait.tv_usec; -- while (time_waited.tv_usec >= 1000000) -- { -- time_waited.tv_sec++; -- time_waited.tv_usec -= 1000000; -- } -- if ((time_waited.tv_sec < timeout.tv_sec) || -- ((time_waited.tv_sec == timeout.tv_sec) && -- (time_waited.tv_usec < timeout.tv_usec))) -- goto send_again; -- return (cu->cu_error.re_status = RPC_TIMEDOUT); -- -- /* -- * buggy in other cases because time_waited is not being -- * updated. -- */ -- case -1: -- if (errno == EINTR) -- continue; -+ /* errno != EINTR */ - cu->cu_error.re_errno = errno; - return (cu->cu_error.re_status = RPC_CANTRECV); - } diff --git a/glibc-2.25.tar.xz b/glibc-2.25.tar.xz deleted file mode 100644 index 714c058..0000000 --- a/glibc-2.25.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0 -size 13873900 diff --git a/glibc-2.25.tar.xz.sig b/glibc-2.25.tar.xz.sig deleted file mode 100644 index 25a8824..0000000 --- a/glibc-2.25.tar.xz.sig +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQEcBAABAgAGBQJYl08CAAoJEHnEPfvxzyGHhWcH/2eIspxugXwMnM0YZm3fkzji -yJpu19zpYvfap+tTXJGiY/P6UrJSqHUCSssxWyWJQAbOov40IT/ySSg3DyWhyxra -6HTTOwjIGz/9KQwVdzm79LA+YhsOauowvdiYCS6XnTQbPMc7zBDsOIEAzp+vXNdl -KIzIe7XzUJnK9kl6oqBzXuzdA4jjjzZ2jqyMOwRypipkAXu7OgXO7TiEdN149eSs -2Owodmw9epP1omEK1KLo0N9QsG/+ioaHNfldtWzWNvxuRigAnwaaJTy5zVG7xJ45 -xVfsXaZQKFt4KPep1GF5jaZ30TWTvt5gyjOBiZa/+UfvEOXOt0ox/BB8ydlV/eg= -=HMRX ------END PGP SIGNATURE----- diff --git a/glibc-2.26.tar.xz b/glibc-2.26.tar.xz new file mode 100644 index 0000000..3a2b030 --- /dev/null +++ b/glibc-2.26.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd +size 14682748 diff --git a/glibc-2.26.tar.xz.sig b/glibc-2.26.tar.xz.sig new file mode 100644 index 0000000..21adc1c --- /dev/null +++ b/glibc-2.26.tar.xz.sig @@ -0,0 +1,10 @@ +-----BEGIN PGP SIGNATURE----- + +iQEcBAABAgAGBQJZgduLAAoJEHnEPfvxzyGHDesH/itf17ZUWSWNIRp2cC0RK1et +jtR7ufFMpSHfMFJQXkli162s+iFMAxuOus52rma/h3PP8BXVbEKB7M3N0dvqPbmC +AIC6YtAYU/I4M3V+6T1pi4ras19i2VgNY+iag0xw5o0ah4yZmZwB5eFR2xIz10ZD +SGffJyCD/8EFwn/SPx38JS55ENwGj5PT1m2TsEnlLeHg7sCH7ksb5Pqq/ZEwIw0v +E56a4hSliDUhurc0gUQmFxm/FhFSdTzns0vShfgou4D2tNSYaUjrf/17ebj0ehUF +XkNH5jvwHoxiKzEVnD7dS9NLbvOPAG4AlFnWejgqvX0JB/M5TknOcmJYpzZYiGE= +=XObH +-----END PGP SIGNATURE----- diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 deleted file mode 100644 index 4d5120f..0000000 --- a/glibc-2.3.locales.diff.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:88419776f97fb76adac25cec0540b5be19c90d7a745cd56512f79bb523b7da37 -size 328722 diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff deleted file mode 100644 index 7d34630..0000000 --- a/glibc-cpusetsize.diff +++ /dev/null @@ -1,26 +0,0 @@ -Index: glibc-2.17.90/bits/sched.h -=================================================================== ---- glibc-2.17.90.orig/bits/sched.h -+++ glibc-2.17.90/bits/sched.h -@@ -52,7 +52,7 @@ struct __sched_param - #if defined _SCHED_H && !defined __cpu_set_t_defined - # define __cpu_set_t_defined - /* Size definition for CPU sets. */ --# define __CPU_SETSIZE 1024 -+# define __CPU_SETSIZE 4096 - # define __NCPUBITS (8 * sizeof (__cpu_mask)) - - /* Type for array elements in 'cpu_set_t'. */ -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h -=================================================================== ---- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/bits/sched.h -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h -@@ -111,7 +111,7 @@ struct __sched_param - #if defined _SCHED_H && !defined __cpu_set_t_defined - # define __cpu_set_t_defined - /* Size definition for CPU sets. */ --# define __CPU_SETSIZE 1024 -+# define __CPU_SETSIZE 4096 - # define __NCPUBITS (8 * sizeof (__cpu_mask)) - - /* Type for array elements in 'cpu_set_t'. */ diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff deleted file mode 100644 index 86a36bf..0000000 --- a/glibc-resolv-reload.diff +++ /dev/null @@ -1,121 +0,0 @@ -From libc-alpha-return-22754-pasky=ucw.cz@sourceware.org Tue Mar 16 00:47:00 2010 -Return-Path: -X-Original-To: pasky@pasky.or.cz -Delivered-To: pasky@pasky.or.cz -Received: from nikam.ms.mff.cuni.cz (nikam-dmz.ms.mff.cuni.cz [195.113.20.16]) - by machine.or.cz (Postfix) with ESMTPS id C1B8586202A - for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET) -Received: by nikam.ms.mff.cuni.cz (Postfix) - id 9CDEC9AC7A4; Tue, 16 Mar 2010 00:47:00 +0100 (CET) -Delivered-To: pasky@kam.mff.cuni.cz -Received: from jabberwock.ucw.cz (jabberwock.ucw.cz [89.250.246.4]) - by nikam.ms.mff.cuni.cz (Postfix) with ESMTP id 99F0E9AC77B - for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET) -Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) - by jabberwock.ucw.cz (Postfix) with SMTP id 14E1ACF040 - for ; Tue, 16 Mar 2010 00:46:59 +0100 (CET) -Received: (qmail 18956 invoked by alias); 15 Mar 2010 23:46:58 -0000 -Delivered-To: moderator for libc-alpha@sourceware.org -Received: (qmail 15843 invoked by uid 22791); 15 Mar 2010 17:23:15 -0000 -X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 - tests=BAYES_00 -X-Spam-Check-By: sourceware.org -Message-ID: <4B9E6CFA.7020002@riot.org> -Date: Mon, 15 Mar 2010 18:23:06 +0100 -From: Sebastian Kienzl -User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) -MIME-Version: 1.0 -To: libc-alpha@sourceware.org -Subject: Reloading of /etc/resolv.conf -Content-Type: multipart/mixed; - boundary="------------060407080409020101000002" -Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm -Precedence: bulk -List-Id: -List-Unsubscribe: -List-Subscribe: -List-Archive: -List-Post: -List-Help: , -Sender: libc-alpha-owner@sourceware.org -Delivered-To: mailing list libc-alpha@sourceware.org - -This is a multi-part message in MIME format. ---------------060407080409020101000002 -Content-Type: text/plain; charset=ISO-8859-15; format=flowed -Content-Transfer-Encoding: 7bit - -Hello! - -There's a patch in the wild against the resolver which makes it reload -/etc/resolv.conf on change, see -http://sources.redhat.com/ml/libc-alpha/2004-09/msg00130.html - -However, this patch actually doesn't work properly for multi-threaded -programs, as only one thread will notice the change and refresh its -resolver state. I've attached a proper patch. It's for 2.5 but it should -work with current versions, too. - -Even though the patch may not be interesting for upstream, I decided to -let you know about this problem, since the mentioned patch seems to be -used by at least Debian and Ubuntu. - -Regards, -Seb. - - - ---------------060407080409020101000002 -Content-Type: text/plain; - name="glibc-2.5-resolvconf.patch" -Content-Transfer-Encoding: 7bit -Content-Disposition: inline; - filename="glibc-2.5-resolvconf.patch" - -Index: glibc-2.17.90/resolv/res_libc.c -=================================================================== ---- glibc-2.17.90.orig/resolv/res_libc.c -+++ glibc-2.17.90/resolv/res_libc.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - extern unsigned long long int __res_initstamp attribute_hidden; - /* We have atomic increment operations on 64-bit platforms. */ -@@ -89,12 +89,34 @@ res_init(void) { - return (__res_vinit(&_res, 1)); - } - -+static time_t resconf_mtime; -+__libc_lock_define_initialized (static, resconf_mtime_lock); -+ -+/* Check if the modification time of resolv.conf has changed. -+ If so, have all threads re-initialize their resolver states */ -+static void -+__res_check_resconf (void) -+{ -+ struct stat statbuf; -+ if (stat (_PATH_RESCONF, &statbuf) == 0) { -+ __libc_lock_lock (resconf_mtime_lock); -+ if (statbuf.st_mtime != resconf_mtime) { -+ resconf_mtime = statbuf.st_mtime; -+ atomicinclock (lock); -+ atomicinc (__res_initstamp); -+ atomicincunlock (lock); -+ } -+ __libc_lock_unlock (resconf_mtime_lock); -+ } -+} -+ - /* Initialize resp if RES_INIT is not yet set or if res_init in some other - thread requested re-initializing. */ - int - __res_maybe_init (res_state resp, int preinit) - { - if (resp->options & RES_INIT) { -+ __res_check_resconf (); - if (__res_initstamp != resp->_u._ext.initstamp) { - if (resp->nscount > 0) - __res_iclose (resp, true); diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 36fc946..0a38171 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de + +- Update to glibc 2.26 + * A per-thread cache has been added to malloc + * Unicode 10.0.0 Support + * Improvements to the DNS stub resolver + * New function reallocarray, which resizes an allocated block (like + realloc) to the product of two sizes, with a guaranteed clean failure + upon integer overflow in the multiplication + * New wrappers for the Linux-specific system calls preadv2 and pwritev2 + * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to + create a new session ID for the spawned process + * errno.h is now safe to use from C-preprocessed assembly language on all + supported operating systems + * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements + 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE + 754-2008) and ISO/IEC TS 18661-3:2015 + * The synchronization that pthread_spin_unlock performs has been changed to + now be equivalent to a C11 atomic store with release memory order to the + spin lock's memory location + * The DNS stub resolver no longer performs EDNS fallback + * res_mkquery and res_nmkquery no longer support the IQUERY opcode + * The _res_opcodes variable has been removed from libresolv + * no longer includes inline versions of any string functions, + as this kind of optimization is better done by the compiler + * The nonstandard header has been removed + * The obsolete header has been removed + * The obsolete signal constant SIGUNUSED is no longer defined by + * The obsolete function cfree has been removed + * The stack_t type no longer has the name struct sigaltstack + * The ucontext_t type no longer has the name struct ucontext + * On S/390 GNU/Linux, the constants defined by have been + synced with the kernel + * Linux kernel 3.2 or later is required at runtime, on all architectures + supported by that kernel + * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, + to avoid fragmentation-based spoofing attacks (CVE-2017-12132) + * LD_LIBRARY_PATH is now ignored in binaries running in privileged + AT_SECURE mode to guard against local privilege escalation attacks + (CVE-2017-1000366) + * Avoid printing a backtrace from the __stack_chk_fail function since it + is called on a corrupt stack and a backtrace is unreliable on a + corrupt stack (CVE-2010-3192) + * A use-after-free vulnerability in clntudp_call in the Sun RPC system + has been fixed (CVE-2017-12133) + * fate#322258, fate#321513, fate#322453 +- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, + i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, + sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, + tunables-bigendian.patch: Removed + +------------------------------------------------------------------- +Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de + +- Fix RPM group + +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + +------------------------------------------------------------------- +Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de + +- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE + programs (BZ #21209) +- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for + AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) + +------------------------------------------------------------------- +Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de + +- Remove glibc-cpusetsize.diff, no longer useful + +------------------------------------------------------------------- +Wed May 31 10:35:31 UTC 2017 - schwab@suse.de + +- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, + BZ #21289) + +------------------------------------------------------------------- +Mon May 29 18:10:31 UTC 2017 - schwab@suse.de + +- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h + aliasing + +------------------------------------------------------------------- +Mon May 29 10:24:22 UTC 2017 - schwab@suse.de + +- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE + locales (bsc#1039502) + +------------------------------------------------------------------- +Tue May 23 09:54:08 UTC 2017 - schwab@suse.de + +- Remove glibc-testsuite.patch, no longer relevant + +------------------------------------------------------------------- +Mon May 22 10:04:59 UTC 2017 - schwab@suse.de + +- Use multibuild feature +- Remove obsolete check-build.sh +- glibc.rpmlintrc: remove obsolete entries +- Use %tmpfiles_create in nscd postin + ------------------------------------------------------------------- Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch deleted file mode 100644 index bb60587..0000000 --- a/glibc-testsuite.patch +++ /dev/null @@ -1,15 +0,0 @@ -test-lfs runs for ever on ReiserFS. Let's disable it completely. - -Index: glibc-2.17.90/io/Makefile -=================================================================== ---- glibc-2.17.90.orig/io/Makefile -+++ glibc-2.17.90/io/Makefile -@@ -63,7 +63,7 @@ static-only-routines = stat fstat lstat - - others := pwd - test-srcs := ftwtest --tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ -+tests := test-utime test-stat test-stat2 tst-getcwd \ - tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ - tst-openat tst-unlinkat tst-fstatat tst-futimesat \ - tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index e36a20f..fe38b5a 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -16,27 +16,35 @@ # -%define build_snapshot 0 - -# PLEASE run pre_checkin.sh in this directory before submitting -# this package. Otherwise the .spec and .changes for glibc-testsuite -# and glibc-utils aren't updated. - # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc %bcond_with fast_build %define crypt_bf_version 1.3 +%define build_snapshot 0 + +%define flavor testsuite Name: glibc-testsuite -%define normal_build ("%{name}" == "glibc") -%define utils_build ("%{name}" == "glibc-utils") -%define testsuite_build ("%{name}" == "glibc-testsuite") -# UTILS-SUMMARY-BEGIN -Summary: Standard Shared Libraries (from the GNU C Library) -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: System/Libraries -# UTILS-SUMMARY-END +Summary: Testsuite results from the GNU C Library +License: LGPL-2.1+ +Group: Development/Libraries/C and C++ + +%bcond_with all +%define build_main 1 +%define build_utils %{with all} +%define build_testsuite %{with all} +%if "%flavor" == "utils" +%define build_main 0 +%define build_utils 1 +%define build_testsuite 0 +%endif +%if "%flavor" == "testsuite" +%define build_main 0 +%define build_utils 0 +%define build_testsuite 1 +%endif + BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -45,16 +53,21 @@ BuildRequires: makeinfo BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz -%if %{testsuite_build} +%if %{build_testsuite} BuildRequires: gcc-c++ BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel BuildRequires: python-pexpect %endif -%if %{utils_build} +%if %{build_utils} BuildRequires: gd-devel %endif +%if "%flavor" == "i686" +ExclusiveArch: i586 i686 +BuildArch: i686 +%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic +%endif %define __filter_GLIBC_PRIVATE 1 %ifarch i686 @@ -64,7 +77,7 @@ BuildRequires: gd-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} || %{utils_build} +%if %{with fast_build} || %{build_utils} && %{without all} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -76,7 +89,7 @@ BuildRequires: gd-devel %endif %endif -%define build_variants %{normal_build} +%define build_variants %{build_main} %define disable_assert 0 %define enable_stackguard_randomization 1 @@ -103,14 +116,23 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -# 3.0 is the SLES 11 SP3 kernel -# 3.1 is the openSUSE 12.1 kernel -%define enablekernel 3.0 +# glibc requires at least kernel 3.2 +%define enablekernel 3.2 +# some architectures need a newer kernel +%ifarch ppc64le +%define enablekernel 3.10 +%endif +%ifarch aarch64 +%define enablekernel 3.7 +%endif +%ifarch ia64 +%define enablekernel 3.2.18 +%endif -Version: 2.25 +Version: 2.26 Release: 0 %if !%{build_snapshot} -%define git_id db0242e30234 +%define git_id 1c9a5c270d8b %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -118,9 +140,11 @@ Release: 0 %endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%else +Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 @@ -138,7 +162,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version} # The sign key uses MD5 which is no longer accepted by gpg #Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign -%if %{normal_build} +%if %{build_main} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -160,8 +184,8 @@ Provides: ld-linux.so.3(GLIBC_2.4) Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) -%endif # %{normal_build} -%if %{utils_build} +%endif +%if %{build_utils} Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -207,8 +231,6 @@ Patch8: glibc-nscd.conf.patch Patch9: glibc-nodate.patch # PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch11: glibc-testsuite.patch # PATCH-FIX-OPENSUSE handle old glibc binaries Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de @@ -217,16 +239,16 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) -Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales -Patch100: glibc-2.3.locales.diff.bz2 +Patch100: add-locales.patch # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -239,10 +261,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: ### Network related patches -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch300: glibc-resolv-reload.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch301: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -251,12 +269,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) -Patch1000: tunables-bigendian.patch -# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) -Patch1001: i686-memchr-sse.patch -# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) -Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -281,10 +293,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch Patch3000: manpages.patch %description +%if %build_main The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math library, and the POSIX thread library. A system is not functional without these libraries. +%endif +%if %build_utils +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. + +If you are unsure if you need this, do not install this package. +%endif +%if %build_testsuite +This package contains the testsuite results from the GNU C Library. +%endif %package info Summary: Info Files for the GNU C Library @@ -408,7 +432,7 @@ which is highly discouraged. %package extra Summary: Extra binaries from GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: glibc = %{version} %description extra @@ -457,14 +481,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch18 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 @@ -472,15 +495,9 @@ rm nscd/s-stamp %patch104 -p1 %patch105 -p1 -%patch300 -p1 -%patch301 -p1 %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -636,7 +653,7 @@ configure_and_build_glibc() { $profile $elision \ "$@" \ --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -652,7 +669,8 @@ configure_and_build_glibc() { --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc \ + --enable-bind-now \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -751,7 +769,7 @@ popd ####################################################################### %check -%if %{testsuite_build} +%if %{build_testsuite} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 # Increase timeout @@ -793,7 +811,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if %{normal_build} +%if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -994,6 +1012,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf +%if !%{build_utils} # Remove unwanted files (packaged in glibc-utils) rm -f %{buildroot}/%{_lib}/libmemusage* rm -f %{buildroot}/%{_lib}/libpcprofile* @@ -1011,6 +1030,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 +%endif # !utils # LSB %ifarch %ix86 @@ -1032,9 +1052,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 %endif -%endif # %{normal_build} +%else # !main -%if %{utils_build} +%if %{build_utils} make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ subdirs='malloc debug elf' @@ -1047,7 +1067,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} -%endif # %{utils_build} +%endif # utils + +%endif # !main ####################################################################### ### @@ -1055,13 +1077,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ### ####################################################################### -%if %{normal_build} %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig -%endif # %{normal_build} - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -1086,7 +1104,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /run/nscd +%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1098,14 +1116,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%if %{normal_build} %files -####################################################################### -### -### FILES -### -####################################################################### - +%if %{build_main} # glibc %defattr(-,root,root) %doc LICENSES @@ -1381,10 +1393,9 @@ exit 0 /var/lib/misc/Makefile %endif # !i686 -%endif # %{normal_build} +%endif # main -%if %{utils_build} -%files +%if %{build_utils} %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so @@ -1397,6 +1408,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%endif # %{utils_build} +%endif # utils %changelog diff --git a/glibc-testsuite.spec.in b/glibc-testsuite.spec.in new file mode 100644 index 0000000..c43f8d5 --- /dev/null +++ b/glibc-testsuite.spec.in @@ -0,0 +1,6 @@ +%define flavor testsuite + +Name: glibc-testsuite +Summary: Testsuite results from the GNU C Library +License: LGPL-2.1+ +Group: Development/Libraries/C and C++ diff --git a/glibc-utils.changes b/glibc-utils.changes index 36fc946..0a38171 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de + +- Update to glibc 2.26 + * A per-thread cache has been added to malloc + * Unicode 10.0.0 Support + * Improvements to the DNS stub resolver + * New function reallocarray, which resizes an allocated block (like + realloc) to the product of two sizes, with a guaranteed clean failure + upon integer overflow in the multiplication + * New wrappers for the Linux-specific system calls preadv2 and pwritev2 + * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to + create a new session ID for the spawned process + * errno.h is now safe to use from C-preprocessed assembly language on all + supported operating systems + * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements + 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE + 754-2008) and ISO/IEC TS 18661-3:2015 + * The synchronization that pthread_spin_unlock performs has been changed to + now be equivalent to a C11 atomic store with release memory order to the + spin lock's memory location + * The DNS stub resolver no longer performs EDNS fallback + * res_mkquery and res_nmkquery no longer support the IQUERY opcode + * The _res_opcodes variable has been removed from libresolv + * no longer includes inline versions of any string functions, + as this kind of optimization is better done by the compiler + * The nonstandard header has been removed + * The obsolete header has been removed + * The obsolete signal constant SIGUNUSED is no longer defined by + * The obsolete function cfree has been removed + * The stack_t type no longer has the name struct sigaltstack + * The ucontext_t type no longer has the name struct ucontext + * On S/390 GNU/Linux, the constants defined by have been + synced with the kernel + * Linux kernel 3.2 or later is required at runtime, on all architectures + supported by that kernel + * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, + to avoid fragmentation-based spoofing attacks (CVE-2017-12132) + * LD_LIBRARY_PATH is now ignored in binaries running in privileged + AT_SECURE mode to guard against local privilege escalation attacks + (CVE-2017-1000366) + * Avoid printing a backtrace from the __stack_chk_fail function since it + is called on a corrupt stack and a backtrace is unreliable on a + corrupt stack (CVE-2010-3192) + * A use-after-free vulnerability in clntudp_call in the Sun RPC system + has been fixed (CVE-2017-12133) + * fate#322258, fate#321513, fate#322453 +- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, + i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, + sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, + tunables-bigendian.patch: Removed + +------------------------------------------------------------------- +Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de + +- Fix RPM group + +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + +------------------------------------------------------------------- +Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de + +- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE + programs (BZ #21209) +- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for + AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) + +------------------------------------------------------------------- +Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de + +- Remove glibc-cpusetsize.diff, no longer useful + +------------------------------------------------------------------- +Wed May 31 10:35:31 UTC 2017 - schwab@suse.de + +- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, + BZ #21289) + +------------------------------------------------------------------- +Mon May 29 18:10:31 UTC 2017 - schwab@suse.de + +- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h + aliasing + +------------------------------------------------------------------- +Mon May 29 10:24:22 UTC 2017 - schwab@suse.de + +- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE + locales (bsc#1039502) + +------------------------------------------------------------------- +Tue May 23 09:54:08 UTC 2017 - schwab@suse.de + +- Remove glibc-testsuite.patch, no longer relevant + +------------------------------------------------------------------- +Mon May 22 10:04:59 UTC 2017 - schwab@suse.de + +- Use multibuild feature +- Remove obsolete check-build.sh +- glibc.rpmlintrc: remove obsolete entries +- Use %tmpfiles_create in nscd postin + ------------------------------------------------------------------- Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index e04201f..cc72262 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -16,25 +16,35 @@ # -%define build_snapshot 0 - -# PLEASE run pre_checkin.sh in this directory before submitting -# this package. Otherwise the .spec and .changes for glibc-testsuite -# and glibc-utils aren't updated. - # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc %bcond_with fast_build %define crypt_bf_version 1.3 +%define build_snapshot 0 + +%define flavor utils Name: glibc-utils -%define normal_build ("%{name}" == "glibc") -%define utils_build ("%{name}" == "glibc-utils") -%define testsuite_build ("%{name}" == "glibc-testsuite") -Summary: Development utilities from GNU C library +Summary: Development utilities from the GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ + +%bcond_with all +%define build_main 1 +%define build_utils %{with all} +%define build_testsuite %{with all} +%if "%flavor" == "utils" +%define build_main 0 +%define build_utils 1 +%define build_testsuite 0 +%endif +%if "%flavor" == "testsuite" +%define build_main 0 +%define build_utils 0 +%define build_testsuite 1 +%endif + BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -43,16 +53,21 @@ BuildRequires: makeinfo BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz -%if %{testsuite_build} +%if %{build_testsuite} BuildRequires: gcc-c++ BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel BuildRequires: python-pexpect %endif -%if %{utils_build} +%if %{build_utils} BuildRequires: gd-devel %endif +%if "%flavor" == "i686" +ExclusiveArch: i586 i686 +BuildArch: i686 +%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic +%endif %define __filter_GLIBC_PRIVATE 1 %ifarch i686 @@ -62,7 +77,7 @@ BuildRequires: gd-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} || %{utils_build} +%if %{with fast_build} || %{build_utils} && %{without all} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -74,7 +89,7 @@ BuildRequires: gd-devel %endif %endif -%define build_variants %{normal_build} +%define build_variants %{build_main} %define disable_assert 0 %define enable_stackguard_randomization 1 @@ -101,14 +116,23 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -# 3.0 is the SLES 11 SP3 kernel -# 3.1 is the openSUSE 12.1 kernel -%define enablekernel 3.0 +# glibc requires at least kernel 3.2 +%define enablekernel 3.2 +# some architectures need a newer kernel +%ifarch ppc64le +%define enablekernel 3.10 +%endif +%ifarch aarch64 +%define enablekernel 3.7 +%endif +%ifarch ia64 +%define enablekernel 3.2.18 +%endif -Version: 2.25 +Version: 2.26 Release: 0 %if !%{build_snapshot} -%define git_id db0242e30234 +%define git_id 1c9a5c270d8b %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -116,9 +140,11 @@ Release: 0 %endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%else +Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 @@ -136,7 +162,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version} # The sign key uses MD5 which is no longer accepted by gpg #Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign -%if %{normal_build} +%if %{build_main} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -158,8 +184,8 @@ Provides: ld-linux.so.3(GLIBC_2.4) Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) -%endif # %{normal_build} -%if %{utils_build} +%endif +%if %{build_utils} Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -205,8 +231,6 @@ Patch8: glibc-nscd.conf.patch Patch9: glibc-nodate.patch # PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch11: glibc-testsuite.patch # PATCH-FIX-OPENSUSE handle old glibc binaries Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de @@ -215,16 +239,16 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) -Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales -Patch100: glibc-2.3.locales.diff.bz2 +Patch100: add-locales.patch # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -237,10 +261,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: ### Network related patches -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch300: glibc-resolv-reload.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch301: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -249,12 +269,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) -Patch1000: tunables-bigendian.patch -# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) -Patch1001: i686-memchr-sse.patch -# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) -Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -279,11 +293,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch Patch3000: manpages.patch %description +%if %build_main +The GNU C Library provides the most important standard libraries used +by nearly all programs: the standard C library, the standard math +library, and the POSIX thread library. A system is not functional +without these libraries. +%endif +%if %build_utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program debugging. -If you are unsure if you need this, don't install this package. +If you are unsure if you need this, do not install this package. +%endif +%if %build_testsuite +This package contains the testsuite results from the GNU C Library. +%endif %package info Summary: Info Files for the GNU C Library @@ -407,7 +432,7 @@ which is highly discouraged. %package extra Summary: Extra binaries from GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: glibc = %{version} %description extra @@ -456,14 +481,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch18 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 @@ -471,15 +495,9 @@ rm nscd/s-stamp %patch104 -p1 %patch105 -p1 -%patch300 -p1 -%patch301 -p1 %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -635,7 +653,7 @@ configure_and_build_glibc() { $profile $elision \ "$@" \ --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -651,7 +669,8 @@ configure_and_build_glibc() { --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc \ + --enable-bind-now \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -750,7 +769,7 @@ popd ####################################################################### %check -%if %{testsuite_build} +%if %{build_testsuite} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 # Increase timeout @@ -792,7 +811,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if %{normal_build} +%if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -993,6 +1012,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf +%if !%{build_utils} # Remove unwanted files (packaged in glibc-utils) rm -f %{buildroot}/%{_lib}/libmemusage* rm -f %{buildroot}/%{_lib}/libpcprofile* @@ -1010,6 +1030,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 +%endif # !utils # LSB %ifarch %ix86 @@ -1031,9 +1052,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 %endif -%endif # %{normal_build} +%else # !main -%if %{utils_build} +%if %{build_utils} make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ subdirs='malloc debug elf' @@ -1046,7 +1067,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} -%endif # %{utils_build} +%endif # utils + +%endif # !main ####################################################################### ### @@ -1054,13 +1077,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ### ####################################################################### -%if %{normal_build} %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig -%endif # %{normal_build} - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -1085,7 +1104,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /run/nscd +%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1097,14 +1116,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%if %{normal_build} %files -####################################################################### -### -### FILES -### -####################################################################### - +%if %{build_main} # glibc %defattr(-,root,root) %doc LICENSES @@ -1380,10 +1393,9 @@ exit 0 /var/lib/misc/Makefile %endif # !i686 -%endif # %{normal_build} +%endif # main -%if %{utils_build} -%files +%if %{build_utils} %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so @@ -1396,6 +1408,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%endif # %{utils_build} +%endif # utils %changelog diff --git a/glibc-utils.spec.in b/glibc-utils.spec.in new file mode 100644 index 0000000..7dd5b57 --- /dev/null +++ b/glibc-utils.spec.in @@ -0,0 +1,6 @@ +%define flavor utils + +Name: glibc-utils +Summary: Development utilities from the GNU C Library +License: LGPL-2.1+ +Group: Development/Libraries/C and C++ diff --git a/glibc.changes b/glibc.changes index 36fc946..0a38171 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de + +- Update to glibc 2.26 + * A per-thread cache has been added to malloc + * Unicode 10.0.0 Support + * Improvements to the DNS stub resolver + * New function reallocarray, which resizes an allocated block (like + realloc) to the product of two sizes, with a guaranteed clean failure + upon integer overflow in the multiplication + * New wrappers for the Linux-specific system calls preadv2 and pwritev2 + * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to + create a new session ID for the spawned process + * errno.h is now safe to use from C-preprocessed assembly language on all + supported operating systems + * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements + 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE + 754-2008) and ISO/IEC TS 18661-3:2015 + * The synchronization that pthread_spin_unlock performs has been changed to + now be equivalent to a C11 atomic store with release memory order to the + spin lock's memory location + * The DNS stub resolver no longer performs EDNS fallback + * res_mkquery and res_nmkquery no longer support the IQUERY opcode + * The _res_opcodes variable has been removed from libresolv + * no longer includes inline versions of any string functions, + as this kind of optimization is better done by the compiler + * The nonstandard header has been removed + * The obsolete header has been removed + * The obsolete signal constant SIGUNUSED is no longer defined by + * The obsolete function cfree has been removed + * The stack_t type no longer has the name struct sigaltstack + * The ucontext_t type no longer has the name struct ucontext + * On S/390 GNU/Linux, the constants defined by have been + synced with the kernel + * Linux kernel 3.2 or later is required at runtime, on all architectures + supported by that kernel + * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, + to avoid fragmentation-based spoofing attacks (CVE-2017-12132) + * LD_LIBRARY_PATH is now ignored in binaries running in privileged + AT_SECURE mode to guard against local privilege escalation attacks + (CVE-2017-1000366) + * Avoid printing a backtrace from the __stack_chk_fail function since it + is called on a corrupt stack and a backtrace is unreliable on a + corrupt stack (CVE-2010-3192) + * A use-after-free vulnerability in clntudp_call in the Sun RPC system + has been fixed (CVE-2017-12133) + * fate#322258, fate#321513, fate#322453 +- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, + i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, + sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, + tunables-bigendian.patch: Removed + +------------------------------------------------------------------- +Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de + +- Fix RPM group + +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + +------------------------------------------------------------------- +Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de + +- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE + programs (BZ #21209) +- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for + AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) + +------------------------------------------------------------------- +Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de + +- Remove glibc-cpusetsize.diff, no longer useful + +------------------------------------------------------------------- +Wed May 31 10:35:31 UTC 2017 - schwab@suse.de + +- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, + BZ #21289) + +------------------------------------------------------------------- +Mon May 29 18:10:31 UTC 2017 - schwab@suse.de + +- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h + aliasing + +------------------------------------------------------------------- +Mon May 29 10:24:22 UTC 2017 - schwab@suse.de + +- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE + locales (bsc#1039502) + +------------------------------------------------------------------- +Tue May 23 09:54:08 UTC 2017 - schwab@suse.de + +- Remove glibc-testsuite.patch, no longer relevant + +------------------------------------------------------------------- +Mon May 22 10:04:59 UTC 2017 - schwab@suse.de + +- Use multibuild feature +- Remove obsolete check-build.sh +- glibc.rpmlintrc: remove obsolete entries +- Use %tmpfiles_create in nscd postin + ------------------------------------------------------------------- Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring index 3f66b81ac313efb0b001edfe9e5504c118165f5938c07eb46570b905850b9b96..f1e08d5ebfdb46cf13cad6be9535f07c1bbaa0277a51bc7c4c00d09d04d0d8c6 100644 GIT binary patch literal 55371 zcmcG$$I|0imL|A&Gk=F%_84pmT8&vRptaW6L6Fb@AxMCD`nkVHW_ET@Raf<5!ptK) zJpQ1OxaXepsl#9Y_s?Ivq-gfvT*dvH8}X(l{LPTEzwxFc7=Qlr?_cp_+q-4{fBvS- zZ&&%-2mAf&_piy5Y+e@9_oeXyCpLO#NPR>Piqab|#(3E80-+rzE@~q*sG5E&tLSv^ zX|n8oH^}+-ue{~bt;2D$NggrEs$_9ni@0FnGS`WNgd1|SOWhc2b z(-KQYef|EWzF(7`UC^iZP$l&%mM@ogj8EqyS-Zv05Bh#4i|qzJ-&~Z9`c$w|MrT%! zc0b5Y{r!u#p497&mG5Vp1WAqriBaP?oeUPj5tK?B^_*R?mqpRjI@I_z$@53S-gCQ< zt@Xa_-@oo_wS_L`G~Ri~wUbGO+EC+quo-7;bo6{GcxSDCXKj8PLUPLw9RAgUUiV&a zsBFC7zrJff4vuHn)T1-)d4N~+>_-QYYEiR9&G8b?aSEbI@;g`cF-xr`!tABS z&Qz+Zkvu`G(b@f^2Q>2g z7yco(Fp_H3oHoeC(Xxo!uT^1`;F&&hjMwh->}Me?F-#OmOCHp$*>R`)Z{J-Rv;dzX zVd+-o0y8D5J&92z_H6HSzU5ZLTpCN>VcglSm^lvKZ=SgBgC~ow1r=7vqS>`;N&d!KG-%`NTLn>9boq{=z?KP5=JoU(o*f zkjPaQ{@QX5%$;ydv@j7N5^m<;CS2M+1R*GdRVz0ASw6-ggs<#;k#5#1peA|F2aj6$ z>%<_F;}%_#!dQ#mLOswi`P{k1s)PNyU@p*3cxkeM=T6~(?#(3( z+;dveS;7tbp=yufwRul3A%|*;+v>}Qf7OlFxT@V3YTbgDx_|$wQ+qTge{`3DcRVlT zJdM-NNQm@dayhN!&dLo@hc`KC!7`rHW?nxFo7f4d>AdKI(B_V+Ig-X`)^Rt=d<%_u&@=dB-A zhd*~VcWK&**w`nB2=tBfX?1-LTMU20tF5Kqb{}?7QGq8Hb?_vjDIb&rf852hUZr<3 zKc-G<*X*#Q5wmB;TvtnGl$1k*S$6M@e@#YD-Cxk7=uD=b?;zt4PztzkfMi($_*(n*~#C$9Rm{79;*dnw#&& zsS>$nAJg1)k@Rbp>y*~B{b3H~Wm8!5T(0T&FI4g(seK=A&9(z>*X{LGGechE|Ga5}q__@p*9^EsBN zB`rF5;hMA!=lgRCP5;o#B=ed{o@8*dLe2D_mSlFCv0)g=d59G04_ay@jdKEL{!}Ni z&m7Nf%>&t$ERgZ+1w~nTcEl`!dSD)PJ9$P9lMJ=kt?`X{i8>@UfO5DS3IZw-L1M5_ zB(w=s-1Q2WoID21j-Q{coj{MmxaE=1FQ{D!h)-Y*7d9s?F|jBMWNFMmcy{yF&!t(~ zy;TW^x!y8?t>fEs1eKWa-@npaf}ghfP9>WmS2cVnhnHW*PSnK>vqi&dZI9-M2#oji|RL$p17y~{?*b0)W*oumTB49zivV>8f+|vA~}+h)?mJP0_N^Ksvjnr zY|&HEN&1i+R*K9>g|FYg5N-QvciST^66Ci@=4XFS8x=QD{yChD8#-Q{b(g6FGj_o{ z@*fB%c@oEgi>aPo25uHOTfzG|+n?vJl_K|Zy5fLpeJ{RO5@ol9hj+C_HYINH_tsfT zVBD@)eeXFoL9Z@u!>aM}i)SAgUR`3sQcYC?ZyDfLf1=X9h~v>G9?SXyHHCe-}iLJFfI#-&0 zfWN!;0aMSe9ngQRa=1O_E)rgb>6ZA0Y$3}{#&I6hOqZ+^3Y`Y~?fNHNs;XGe*NQj3 zKi4AYlLsWpp)(<~K?|3Eo*!@#BW)fcl2U`yYV6U9Z<*gNeT*ONR(%~k>2*^fEi!YG z{O2@v99%#|-#WFNIJ_y}M{yKBdCnhJozmm+y7A3!#<|bsm-U`Pt#FKhp~4>2!hc_! z7F_T@AW5>t{~dz*>xcf2ffo92$iLBl`)~H+-~;jh`U`a_9WN4({!{rpC)($8!8vo@ znAP$;&TsfzwMcbW3SOC&#MNX6WwbVK`}N_3d|&_mbs{$FQ!>}X9qyEm&^>jIx0Rm7 zCTyK+f_=St?&vn%ubF71_V#1?%wk)4CFs(mB)@-AQB8}`JAji*TRb&Qj1h~Ej}EY- zROieL=TvZ2>f4f@p$K8Gimq1Y%3TF?m2q{cpOd3_nJgl!w2>0-dlt`CHLygu^De1V zX>0n#t}5o4%?b)QgYm3Hh&S4-T&eTg*WbTh*R>r6>1@St+BH@2B{Ms*fr!3laq}cp-8kO3%Z42|i*Yop!hcID3d0Ll>s)I`2v7cy=rsMz&=YP89;s=|MXK zCy|tc*}I8f_?y~lX;4=yk`q4>FVGVKc$;}nm=f>F$zm%{=-b%sfcdy_bFbor*mU@N?83{xF@VptNBxy|h>nk7|!G~MDX{C4_O z9_{lU(syCr^ai~^dAo)`3;;tj7(>AJn0L)weO$M4449oLn{~{Tc|SJuONRa1anD{0 zFLkmTzVw=CV)qOn08K)BfLCz6t(6AMfBjP`09{J_R84GWPWGn^DJ|vxnkFjenfz%9 z+!XX;|i{!#hHdhF5_rvd( zrn73tvaE{x{cHB!p!Ik1+zUN=D9**L{`rQW7W9!$WJKQQAoXQXIqVY;htrf-<#Vsd z1vuy6eR2E!tLsncoWC}s%Vcld@;Z-2ehMXTP&zG`JEJbMc?>--^IuXo%CRwYPLKZn z$`0rzuR(`OpV5pGAnj!2IhaK&J6n!;-ddvVD};*F>l+mNdRzw9)L2V$EG6BfoFOB! zgBjUfI_)2ygJ6-hRo8_wJ5}zDV|sLntvRHMT9$I9Z~e)O*jucq>G|Hy@4@uQ2V=o$ z3J+dhw`%Z7J1oh!j{HCS-mIF6Y00&i`Np|Knt1+UJB? zwJ1KRm+@kl$l=@J_b(GkdyC_48Pd4P`T{;^)Z*7pr^Sj;I7nebe!H=wxu+#dpqCB1 zJ+o>{5L{D?mjos~p&;C%U8UUDoDSdsJvcGB$x8x5JX>E6aPE$lG;mXKoRi5$(}euU zWDfn7GGiG)MUCFyUz;%|Zzd1*Y+k!3@wrHdFmCf<&*43}_1I+7s#pf2_BxJn6eu3* zr@I3)@;f_?bPw&Pc;I=4PZN$45Io{0E8w}UTb}*#>m*)5%kfs0xGMH6G&mTs#=<*kg2827H`!C_cO8(QYO0`4J|zh}MUFo~kNR^b z@kmfkOAgFAGEFh9_g%6EP@c#G6&2jd6FkX>+BX8frjlp6E0_Tj z)uK6do!|PMo>ZQ_NSvPK$!&vY5@%Xrauo)G{2wL`?n zh3AAk1!1~4Pu?=m1x18@XmQhq5T}uswa}|3m~H(86NldDd`2S zu>cPS&u6jMH%osvTw17i5ZE|V9f03HFNs%M87K!A+>3FH!VCJ@qH5c+uZFXe6TXOV zUzuka(E2LxwsD1u6h-FC#FfkkxJiHjjVn}^rYMOCI;bixW3^3NBwSTGsKl9IUV?=NLqQobGtOMb zqt(U`j`hiLo#8<3sBn*hc`?jAYxvvVJSA56%5h>x$xEeKH{?A9dM^>NejV0v-}+kJ zY{@s@p1l`Tw20}_;RjF(aurQsoOHtnb{%K#eGkP?(6_1ckLlNWy2kYiHnYXNpP zczPshHy))&7MLXjW>%cK`ZK6DmLP}JU{D6J6wtogl|7}(C%>=AMpf`hP#p?&uLh$l z<>CiP`3KPgxcZ zaJva+;g8tUf|Nnv0;~5agg~Eon2jn?UHb?a6RXN^BVOXXn-`9q-hT(^J1~1tj{m=+ zZ{puj9{KrWe`b?%^YTq?8QvbBbkPrY<3tyQdJj> zD%K@t2IynPgME^4uV0`3s=*xgelWUq?w|Al zCkD<)_YPRVMH5|EtQyYAD%Fi#E3PkVuHk79q`;OBni4w)%?;1m*kX!ZaA%+Hq-()i zw+)Yio;*tRi4(i;JgJzO@)Nn9YY3XDL{MfWKc4rF3}r(oj{jsny#l%#dJNwHr5NY$`o6?mM+GcS-@V}I@wH;Z z`1@DSTdWjj??_o|n&cA9OgHnSAnUE|s?23v<8L%%RHxYR-1BT*K1*?84uVb{CsP2o z7@Vy65KNiOHSA+dxGFt_@EDzjzH-U2oAWlIXKgHyNCk_)`2M9EJ5%6${M3kp0(fcO zy!)e<{7f}h-3V{8!&n{lglrSC&pKk!R|Z%asuz}p(cVcz(BT=J>d_M@jUM+in*`p= z(sZ_78RNkG}jLsmpZ!e2J5>K6~H){YyDvNb3JD|0qjk1;M03Gvl z(_n#qa*sv6J@SZ~xSNBvaEE+B)X)X931u!y6Q!E#9L8D~^!q}DL!EBL5_A$-2xV)Y z{kTyL41ItqW0dXq*l!z4U;5{DT0mp+8s#&?V-cFsn{idP@RM+-S6$By!{AC{zp{$O zZh{87A z0_~=_;4!}lI}2rXXOFk;eLznh*d`ZiHyH8q1rcxCu`2FD6XiYuOBG&cTzvkU_SDUmj3o@GKp zid0nPU}b*ts}-Z5N4@Uw<5t8Pd)+Kd+91g<2ERv0A)i98>v%$UpIex-g)myfe93_P z(8~}SK4vEP4^FtHgs99Qad3vVLIW3W(YeU=L4oJTqWL?w;2sXWIyA*%1v)T3aD=)N zOr)mSRcWBhL3YgyFn&^_{9X*?+#I?4p1pZN$a^FEX(}HTuc#Gz)h#D0fAHMTeaL}k z#~B4c;1tb-?DB_7~DsHCA$!Pa)H)5$xoa>aw+eba|erwhOQF3Xo5n>FLKumZ*E38@bnEM5g zsK$wvItyTDpE^-|_aAS1O^1ZtaR1CO?oRjN1s~jl;C*95^QruF*j&yY^>|4FfdRba zmlwjLQrnlBmy^1x3>eY5A#K)tGuzVwxO>*$r#%jqCz2tO)ptA4IuuE80L^>B17}bh-v?UrM)7WY|e^~3cPiWq_`!`cg$ph&d*)HLm?PYC_ox$S4}f@ zDH=ga??!i;M+E_eUz!*~lMB{s)$gz06PK zNb^K?1V5I_U zfUL-HW$S7!0IDzoLQA`&$6U);b8 zPNpyE$9syTiH|ElYN4=#PZ8bO)vEBJx20IC+p4NGMfZhRgggp`#rT3T&N9v_wVk>f zM&&9eHCCuh8L5UbH-LinH*4pTMtsdtz2Dt%w0hFq5dO*ASozxH0jajO$du5FCbmp( zvXWN97gdWOywx4R?H*|dc|{)^okD_#0<=UJ-*~MP{CpxPDdDtg$MCDuKKghmTy`^V z@O&!*j~=a+ts|J5P2JWk%ojj|EEOeFIVvLHki6FjdQ#wOp~231Icf#QXr7OO*FuPZ zE7Mn2LG9-l=nN~V!XZ`A2RXSzc?X+g1`F|e_mCDYcAtGSP2`ii9XXUOK28B`pQxYI zL&SI4rYkUclVebpjw#<)xiDmryKUMjEA{WNv`?uh+eIDE2kbh(U z4Lr)9XvL4nkIbyt0Fhr96;o*C_tV*_b2r>G`;@(W2dHV=`9p^HCsbobR6U_?B`&2v zfIOaGGo4-Nqmsf(U(H&a@J|#ua9G$(uWqa)I(sH0Aj$3F9_TPR45@mhxSW#|iDmvN&u^=41XKb>MBS*SOzD1OK*ylw7Cslcx&<>k>{833VIlj~QWkf2Td2#2mRwk3GmMG}u7 zAo6#yaQM4eH~{(nPsRPaG9maB|FHArhKxp+Fdp+9EEPASywQ7IK6&5wny@dM0&wd6 z9&Y-W0mc8uarpUYIS{vv>3AN&w@fOpe~SV;Y`*-j@ABt88cK`Q;Od)S76-!U8&Huw zOZ^X^A3$=ce*Ody5Ob1IBjA`HF}p_iIZrNNVK8qX)ZO)$9CI~#XKD05Nuk`p72sY( z)_*RA{>vvM-V!(a2Od=^<(Q*)@;~jsBZAC8bdj~c_$`YKiqwm&G0KBUN&70tdQy_AH5mMB+>W zohs*X2*6?PaQn2w05n_0aK5T(e#MZ-?D{bVwX@r=c8Ndr{X}KX96#nMaaIBtW}RVY zeJ_Xxq<5j6+!+R^NiD6fUue05SLDf|yy$^Kr|=O0rl5yv2cn-}!} zv%C=iv=*;abGH2Z6Dc~%V-GVQj<>xw*qxh^af>Fn&yD2!F{l_71P%|+^!qVEfBf%t zkOHRlpAUxr>Qwk?`#*^~i_2{bB41e;$bpFm|3C zZPfvX1^??$z`p~Kx##63EMe+LF1^;>zbApG6it4Lr#Nq=kfY(0)AA ze=i~R&xWeblKcEz_g7H|ngIIr`Pe)c@Eu&|4dMQz*{kNwM0z&sd~ccMh)>AS7;b;{ zy$Mwe%s1N2kM;4vy-zSr%|STb1Y-cUK)_*t2It}jt2${!Oc+V(4E#7-s5__+X~s%D z*jFxmr=bSy3;$!WJY@qz9HauJ8+?j8ye!u2(_r>*>Ebpz(1ZxUJLq<*Asj#ccR%*U z(JPXJQP@6uW|s^L3hBdcfZPEvRXlP1UXJHF?zq^LoNuPn&_Qh43*(+_QzS>whe3hg z!P*cJ(18HAX{y82OU88fn> zfd~XA;l($Q?2Q;GniU>_0t{PXmbr>K&;S(BnP zhymj%DSR;Lu5Olo@TW3}OD>8)M+H5qj<+rH#c?A*X$D~6zEuNirCj48E8X7lT5=)k zvEmdFWg#TvrlaA&5U)W2O0EYw4AnJMQ+eq_spwR#O~+ext_8j+$Ta*J8lyK_o%d&G zsIP@i31FJi1)l;|t0@G4rXzq>WHy9feqt+A%E@HGS7v&Qtm)Q#i)8Lc?bLjX`6}fb7ALGOi;s zu-pX*q}hVtLvpg6g4m@6Sc@3FtV3%-R7T(fN`jXqRw=juAr_vh#yN`!;BU9+R(JJK zVhaZVRf)Z_@5L=^x{DpgL}rG#Kn^%&na~rEZW(1hLK?MPxk0|DWU2KqMi{->o^(7l z0su1tB$|4r4~I;GenFE5g7&E>`18cKO)1gzV;VjCU@nVjO2n;cD*t>zvREZNNiT-L ztS?y!80YS5v*bz!=pmiRugP0_!guGc_7X8Z3b6Zv0iijqn7q?<9Ap z@q4)dM;QpGp+|ZotX1?e0a77TMDbUpOZii;JnqSB+f4FLg`T8;-8J~fjsd8Lf7vql zcU&OwUcz;smp`5MQF$x`tFD&SPYO)u4qHG~KSs6O?-z#Vk7{5QZ#x53I2cCOdm0J9 zob8{iP<;a0HggO2m}74#2GZ!ekBdBcftyA9v!`Q_0-K0}!DdkT4N+OQO}NoZFxP1( zoL9N=02%)zBRyRh`B8FVtea5~z8GJiM^*dOly@q-)LfV|#MpuRP07UXHB=-WEiOo5 zeno_kpZAw^jn|!=Kn1M8Fyqci{K3^Nr2E$}08yMuzAUdj*{Ocv&qfqUVKU{rwSkNk z9JDQ?&B1{9MkO1Zj^3qIm(v><-2&k=D9AC+?n&U3uplQ$GuZPgHWHe?x;|hfBEZEo zJJ`ix=DdQb2pF@2x1b)=jNml)jZ+?E5iV8bxN%Q7z{dlrzTn5l`^k#OLIk+&4-(=Y zQ-3_$NDz-t!iX^OE!+_JjBOORA7B6gD~5<)2%GxA(~eKnea&1v@fe(^thvmcotad= zU<;|vU`Eh*>wFX?_AYAKUoHf;vVXjS?jwcs}7n=Hzz~loncc1`B znT2{C7#qtrZOJ##VV0JR#bUZ6vf@4tFaIc~gL=8_V+cZ>L;UUEr2GqzRJsZZP5!-NID2w|rxfq}0ua$%*7 zXG1S+b}Bs}ZFLS3Jd?vKkUq6@-^(;IV(!kIkCu*y?RdS};EQ$m!y{-hVX+?9eP3Ck zjXOgHi-D{p!Gx7m*XwoIcO^aFmGP2}^ajbW3wnuE2BJ+0MBx+b=bDdnT`{a!wg;9g zzw%kU!IRV+!h(#ALT`sS-3P~fW3LEKO03`W8LWgWj;_)>DguIvDBD=RLX}Ud&830p z?(_*N>I({jp-*%P_~8N$%8CehRqRg=a@X(#k$BdT(M9P23GK`p1iC%Xffi&_{k?vS@F-~SF5yR|leR9?g zo&!iPqWu#W=(IBSJL+Zwq?<#O!5iECcA`LN(1Til@H;9wwCoD>X&(>0Xx8gVN>mSI z1WW_5zick}iaG9E8rx5@3Ek<-9nXEf>mgfUgQ)bF=$~_~X(ELsvs51o?1$@VLhAva z8-%R@Zxx20O_+Z&Lf}pQVT6D9;K0viBEL%EpW9W$&vq4Hte{!_>3PjR_NxA)=?89^ zvwrLI58wFb6a+U5FE1WAf()^d2@oh>u4|a`p4E9=OkwiS>1_wlnq9lY{v;OZCucw3 z1&FwjnboYIs{0JMEFr22C*Fg||ILaT{%s702b*~X<&xivz9w~io!+cw9x^H!>~s4V z*2L0sw*=VYd}w9sJ@rUQUg%dYKKir`i~t8l9Gxyvzl>U&p=^Lt^L;r`Me zuuV|00+^f9>b(}xkyFmxhBr?5Iwyj^Pb=FJp%8b2uuWiky%v`h^flFb_>6+@S5h|4 zMm`o`2j^)U7SJ}Rz|qVJud|6s-MN4%-0~~n)J|7gt~2xASxqD_%7pIE5CK?^ZEnNe zK0sm?wfir^D+yiKn7!cnCT_lS)d@F}$jx;jHi0(%4eLeuy(VWtX{Xy>*z6H@PSq+}YJl_$qM2~_f(79ab} z1{)4fPjXc6J!n~cq;_!acMsAOP4hv&YofpkFHdLk9Gx@hjL-r$nAy>*eRPLAqYwL; zZnpVdzjjqC?;9+OVAl|%KWMO~zjF(qaiTVkrpnJ%UFv6e7oUr0;B`93M)GAk>wA3# z>x+_@%K2^kl325e6gz+&$P!2k7MA9B3?d)iW3Tvqe0ARH#fU{h!c%Xo`GvgH&xZ#l zS~*$=KESKCr&bPfZ{TLZ(P*mlRdt?L@jS?^{7iEtVahyJI4C50nu9IS?!x#Y ztLB}G-s{$14CvL4_xzST3KMAt#su-?Y)1J`l(k1RJjt7<1DN2kn0Q4$!zMjmApJ(! zCkQ+uLM}Edz||U`+ZRrVdQLQ9ybM66E&a*0Dg#q@i3DnEa@|ZnQX%5>;UkBi@lnC_ z5qw6>Hvqq&>RejcZyGOs+tI#_LF|@4m$X^SyGzST)5)C!PZ?z;qHq{TV~i2kW~3NJ&<^IhSUQX%SHF) zeW(HSNmu%g@z<@iuYGbCS%FQ_*f=lUn{+qI0^MfPwV0;dzd&f8w96EObTITuu=*-& zL2-h+3D$T%Qge`(8NKK)86i1X3!-{eZET$=>hNqf!+!=yhl4F!p1?@#yL0RGSvdj` zPSEXbMXi&z4C9y@C4^pabJkmxiVwm74)K^rB?>^0=9|;9etnS6*&Yue52l&Sq_aJM zQ%Q?Lu^3lZKEGhkj1omKb3XVBB$9jPlEB6sDazNqcF0IRF;~Ad?*>2Zn3%7Pmqr3R z28KO2%ddxg!ol)1q-YH6?+((QS zxPGACkwk1FdnIhY`#NRV;@0NO^;Q^lzHc%AV2gA459+f)J^GGR4s=}B$1mqcO{#J( z2Rp2AuAv0h>GBA0cc@Z8J#m4|K88i&1En#(3y{hx@e!c?c+1j1JDM-Bp8;kTP%Fo3 z24E{4;*1&#PT=7E<_QL>9{40&s{PeV+JxvX~hyN`ryJ;6t zgtI!QlZd}|S)~NVH6!<}xZ6zZWu3v@{EA5eeebLD8;mJwu=%M8sX|e~d(e~9XyQ|I zw2BMC`c~6nQHVrf2}1KqF)~@O>lOnXC8PQ(v#86ti`0MtsJ)luTB{wrH~YfV6R8# z^)-()`IE=$JiVg)H=Wuzs0VeUvE$Xt5oK6w^D$AP8A{W_jq4pIVvp&X4*sX5ST@uj z@h9Xz9&~8>>mjs%P8xiQ|LCm$u1kY_|EE^@y%zp%+j-I-tP)rs|Yr` z|5F6=zs@gB1M>^qtl&18i$Egna}v%f^|C0^K1A{QqLYqm&)!?)`}~QWTP#1&IN(fQ zd_>oFF}dvv4S15p0=bda_JSb zlMfa)M-(V~=3>X+#%F|QXn^%ZGIuO&P2CjnH^hIl%Z4G>cxS4GeYzLep;kRxKI_?+ zl!mus1e_)xZd$Mv>Chm)R4MfXUcveE8u^k+=|R1Ya=Vc}elwy(=NW8RPm~_^_TX0Q z2%`+l?)jY%@0v)CoGXM^fbAtS9#Z@t-s-He+_wP3C>u10J zpFKh1?-Gx{85ZL|820bmJpZaV|Cr9>1NnZcKicy@G@1XZ3-Q7lz_UP3eo4x(KnBC$ zD|*L{ToDiIYoolot>VobZM$Xkqp3-F(>UEI&;uEZ@tDV#Oe)}ZlV}T~a&ev@Z{Dj& zV9S3;;uX=$E91oRj84Z^q!adpx2kHNW^pzss_F!P|+Hz9TlKlR)>0oI?9(iw#KWXyJ zF1P<+!kUWjp7j{lOgIPoo+WLSh~<9rN3cEOkLzF(SbccMD42Tcg*3vy z%!ifu6n4=N#E)zR1a$3mLp)fu*010aEy(vdd5_jWTJ;GVBz&If$6a_i4GOg*a)Jro zT97fuUpv$%KOiU2Wemv-v|!ZP?Z%IQckSWzT~E!O34kBqoPSHU?me|cOEQZE4QJ=kPil-9chceCHyxd0m`k03&}eLQ`CePcY> zaRrd0*m$t0U3-wVyRoFr8_&GAMSe1ROScf_tUCr&6eF_s;=9OSZ-@`TuvL)jw!&dD zsO~-ETsJrdqyzWByD)EkLQk{LNHE~~ayiSIQNX>xd7>qT$SofcNb1=QbyY_Ey<*q; zGHP)@3-KHy_1Pk{fkbiw;%)Df{ouz~bYOYa1T_h4jfw}RXUMJ1P74%OeUIyeyp4jP zw^}fk1<^Rge!L;U$ZgFnyzXNNk{xdwb^ z$Nxv4gD;T>P^y`Ap7{!%~G{o>91C##i+&hr+bIaCwa@V5<;q2Myn=b3ZE; zdUnzp+iQ(aFkPGb3O)s|C74cA4_i2uJnKbv0~M-FH+ZWbWaTGmbT|+^ZowD@n<$8; zl3-ulMYoX8AAPt0Op8wnEO-LBwneVJ6#ioU=Na8(Qlo@jY$cR^;Vf+LCec#1Iv`HM zJ%LStFRX3xPg*+%VH@lSM$YdM1%O#cnV!h;m5=8|r5n!2(qnrS5G;eQ4e0}^XySb} zGegrKFgvh0PLx`|LTUZp{2sUm_C{h3-({k z@6TRbMQ-PvyjyWY&|q4J(<3rDqo;b=ZjcV)R<&`%!Di6yqq{@GF*{iO>wJU)XOSOe z4)S3zcQwSGy8?Q={vnOEgOs8c0vJ;F&JDPYf%qSlh%Y2 zjgG$F^8w^%1~X@woVdFwB}1c=1NwN=b4Pf!`b^j;T#?%nw!LAF7_1u;XuvV2h=Y6H znfrR*3Tm>CgFZgcWi8vo3fC{DQ0CT)ds;t-8)zFLxHjKK16Jmo-?UwLK-tTl?MSGs z@{!kx_MRbY36i9syVGymkiTTGjSKeb%5EPGyViXE?%wsr_8;i3Z;Svn85%aO19JB* zs;3U+R@5TE7VVBBuko$Ocwp{LL`)PgI_UTJ6 zZ$F#5nI7~!hY_%riB(NFc&&|0ppbc&F?PcUAvypw)T9|Qe{wCiB~KEhlt)Auj-2@} z3e&K)MFb6iVnKc95%|u6Sgoj^=2~+l3l^SGxPN`0>JIiO-NbwYofPP>(FAFLM~LQ7 zmTx`whS9iRAzCt^^98#qe1F0MvcHOA)Vn6B5Xl_HUlL{%wpjGWTX z4;8}!{xGR^%1fv0K3WNK9)Mbv4{<%IkNw)9;?YVcSa2+@_#Ho0)Qwd=X1t*RHSVrp zbwi+)Qfsd(+ZLrXb-^P5=;$%hf|gZq;532d=nbC(aC zNiXcBw$j(4(uTe05J)eOZokFl^n~Vo@B8!+4=j%!)`;)ulY-NS`wVM*1jbP|lXAsu z55K@b{Dre4YDv2sKu8*H@y<)#hC%t=v~&Y6IC%aRy}#L)$<(TL(R^>D2;5vRXSu<| z$<>j@jh6dtybm&BtGR91p}FQ@Y)`zVL2`*0$A+-Mx4%S$WE zJyOLj{$-hF6ah5bOWbP0Z!G~~aV(V+B=BrN<*rYK@b@FNkvu_{EV;lxy?2T0^FJ1A zz?k~`YE4YSgYp-J(|ICv{;P{MprYns3s*h#+y+oF7=Cg$6KfUlwY(=ZmccqatP@w+ znz@>Tn;~hr#HtdcyMxIIkC_Le8LR0=Z?ejDt{;K-jJ|AMLpQqAdaemLMyUHn3cF|;*}HG`6S)v z`u)VV>;I+g&6XY2vM$XhsCUSFnf;;_QkvBTAOr#-L@U7^y+EQB2*K0W(B3EFM0n(1 zm3dKa9*rG8?l|3It~tl}hRpa*bF+uw&7hp$MHh!D6l=G5!0dc3kS9&eS{m-3{lU4Q z_cJy7$L^@4_}e)Q6P~NQAy%eQ-Z2|wsRAYBgKpaTBPHsl*?DLZwBC~4Hv6v1-j8}G z3*JVVuk!wmLb)jvnzBC_3B7V9*$7FLVWXS`{MtBfRDC~7ow5#>Q%OK8gr=QqZhd9k zQ3cfxZ0RT|nXl7cB97b4tn-BInJ4qay-4n>nshtm^3+y>?WgP4(GXNoYwn-{jI5nv z);J%seZo+!y*t2%F+I4!U@kEx6ybNQn!Jt#KFQ4)C2~3Y? zz(V&Z?QLf~y*r9-W9ztlxzTula8UTfCDn(RxVlRG6va=p1irO*FAU%0xCO?0GseZ3 z^ZlW|tk|9uVpyExvYW?VA0>&i`58-KCMPh zF`8a{Q?X-0vc$77b=pxsD1?tMj#QIO`T-E*LbFS#oIeNlBLT!R1QQez(&q7M*jnaQ zlPekiaXEA96dcNeEnQ40gLv9{^`V`77-H#2GK7E`_tuxUm4;r>{Osc1jYGJ8^>fb8xfx#_|> zNEGjSBYj>6%`Sgc2Mzj<3%*9tezOG4M0#QXG2JtLjO-a@rnZDf781m`1 zy_oLD8(~{o+Gp6#Yk5~exZ(Sb=pMWJ4ewPBi6$i)H}fhT`mP64@YUXHsXxb9boMr* zjNo5Lt-GU#yJ6P%Q`>w+6Hjkx!qwF--RsLa2li^bLswF+rY<}A*fg#`^sKh|227LsS=~z_u4Ab8)-xhMJt0$-Qo6~9g`}Su_4b(E~6MPZg;Wc-J9ln z54ba4m!3@`bhj#DyF$xhZ@9$D`rMsQA`X{hxtgCso{1hOJi$Xr8Mq8ok1B`w8spT( zokVB~FMY}*@qD0e#Fj!``@_8N7tNhp%}-y?*gaRn=1m?7JUhw$OaSG}vG@|O2d-!XhqTF@n zXQ1*c0r-C#r|{R*9`Lv`J%~5v&{n!eMxuwkUwtk)s zA-Sh7+jwMLty6Y@AsD@anE&7}-TLsR!%FgRAL@3BJ|g{*H||v37f(B|cJTU~F^#$P z8;loDEK2rBleOCxB0GcTW<7JYSWAc1`hHd(i*R3YNB*HyjImwZ$(i+?b|SF>4Gr6P(hbvKR7-ZY=C9*Og^ zTE+vW#iKa8Ij&@SLLWoGdLQbS>fUY2GgG|a@t3@YIl2n>UfHG#vBnw1w(gx;78~;8 z-a2=8M|__@7zS3I@wmzdAJe>Ze?LNcz+r4Cu$Gq+yJ>AP|&v}a3Uaa15>?Qp1Nqg_($uX`nA-v;eBqu_;uHp@c zaiVGAZ7@+!!eY&LJH4_vR?u`fbT2oTe|7Nl!OH%0`1h0FRCFd6zA2nPxzI&0qQ@9h z1$s+b3X3`_7a(RJyKR zh;3wHlN!9ObuB?a$!7RSylgEq)Y$0x=lGr>FLwL-`s;3gr9cA+pxaOln z!=Fbhu7(zlx-n#M&8*9N55U3tDf$xXTUp6z5C1Tkm#C=v>|^!X7jdR4F59J&33x2eW?{;hJEc`(<$50B16Om zo+!=x7PQ)J!fYbMD}zc`269sEpG?d$9rlwJ-aEwTD3d z+`KCQXRNntF2{^H@GmZ@_gl5Qe4;KaazEv%9edbc_k>quF_4sly*oug1yM^>JkUsc zj(|Bn*|ofRG+ZmV^j;K&TY3MS_u2bW6>;z)wwHwqoiGFzim?e_#_kO)T8fmN4XVKx zJF}_llj_yUB<>`qCzEoB#SC`_9JKdNp+s=Z){J=H((BCq2Y^ugN9zpE2{h0Cu{-%T z&wlHuAMw!7YW}m9p9W#S#{S6J_p{#G!;_{-z{c%tPHpEfKuW7+b2LxMMcZjYx^ zm)ql*+fnpB?_L`goyUjzIiwp|+n4K+a!=>5Ta0~`BwrBX++*leI9VE{^6HcX7+~Mp z+k9LLpnMihQ!VdG&()f)$r;9I%>nMh%NM044@XKpEhUt@CBLE? zhNJyJ+=(Y_D=cf1l$&_%owaL{PPLq_-8y!=4*RTNg-ye@+eGyY{q_YG$!E7xX7e0# zyLVRd(^62=hzW)2rz>%?3~@yVB3QnMq++WEGXJo-ALYr9eS4?LhJE1ojK8Oo4_Dn^ z=`OCJIb3<}ZF5~pMz>6Ot~CkjyWvGQ(UZs99mpd)oMWAmeBXmAy*p^E53J4I+eFuw zOk7P2?qe?{A$iftP&=J>7gg6kH&tF8c2A7Bhl+QmP1kcf>6&(@{BkyH?b<+>xjREc zAX}n)O76BX5tYfdz;Np39i-^w;@&masxU^2w_llqwbzfPcu7C}Eyr4!|KHzsSi-RB z|DWx!|6=}&{ZG~m96{3hmOUYi%CTGCz{C97w%xvCR9$4s<$Q5% z*l)SA34=1mM_3nKw_D^*x6i`z%IH*K9apZs-Zu+u8LvBFw+~I#&OQ_L2MEU8SD~Et ziunM(w=Yr7Jo&hfGj2Ies;z0aQ^mj0>xLR!Z3iiLWAurV8y07tWpjjz(%B`e+w`5f|2qQ(OT~Y~*cLtkQIva7 zAE=L+XKRN9g?u+fdd)DSf9&SVw{60q4Nz@vUEL6zsH@5rA9IHjiv%=a+9UTj&JeBc z@hoGS!G|RYz>#1T*KXh0B>0MRTfS4hxd<*E2&@rRp-qprkU?(BPr*(lwZd%mDc>gG z3znv3kM&{P1kbg}D0}BP4EIpcB1OXcw2d|n|5>mK9nE zxQ8_KJ4iJAOT5f=Bi%`Ja4B;}8-O|9ppnf(P>%S0$YJ!yDcyaURWKMFMP6S|i(sjG z1`P*=NuXAUMs^&92Zm&ay7_~#eZkCx`k6DRbZ^1JoT5h3GO!DC;|y?ndt6SoE3OZH zX$P~%hz9q;Vgr9r7j`GFh=}(Nwq19%bz3C{esYS0=xhA6E+oxnUp2?M~wfUFV@nrlbcr%QIC7q4!xbSU*CKHwz6kI^lZPr#xk&8)rNEEl4!wk zIEfvq>H-bdRUEYLG&GNi-aVlLcPP68Ht%}nrr>gfZ{&uVAnCl@#!H)h+Q|N{srf|J zC1FCZ7v-(q;CVP&RS9R_o*oa>K67cac5HvxFnsh<>AdzPp8) z+19MEWFChJomlV(cQ1M@3Rx^dn$d~b(l<;xO*{Zn4zFQT#T*P^oS<&@-{(XOgxfn- zc-+mfvM9mrhZRAtwnZ0@w~Z&&^zPLw(m2RDz}&I8;szZbD`-M4Zr0Ak+re~atvo(0 zmhC6dw_lFYzfO^`9sRxjm?r()T|T}hmVrby8iUC3hVaWf zxeXDE_n5Fly&SLngVCOyVX6*Mz-Il>uO8;cW`idEV|g~GhuB%K4ch0s{?rKApdLUh zzpyH_i+0n!u?ji5oSM?>Mx>iZS-<8aAM!`)pPkKYuy+7#Q2}XhY~l-2Q#ow{n07IT zF;dLqcFmK==NW*ztJ+`DDg(RDrZWyOKC^f}v3B3L3MR#8MpwS>EUs$O=iQ`l>dG}- zM|rOzXepp!Z?dSru{L|U#UKo>+tofipW9UlcIUUfCash@w3U8M zJcwfFeyWU$nffG(X)rB?Ic}>{6#8{d*sYsTLzCj$ty4LyH9ImtF`uUh3-&HJv`xd{!7y3LL1Ix1{&d@j-|q=|Fq z_Qgx@sQyWiyU~IEZ0~V-c8GBy^pcJyZT(vD=NQXG5PO!UNa0>K30~ctgwEHdF1nM6 z_0Ihu&ZKMtW6hmpOh4A^VZrPDk#?%%b8B}PSzb4sD-R_l^!P;ptCIUZ%+LF-UDd{! zh}7rHlU1%9!;p`H6kU{Wb(#%)PWI|kdoI`QE>W}vh3o(`SN(XN!HXZuOmXa|0j8($ zfvo&iH13HKOY10LM$2QjlAou|LYyNvtH3L|!LI^Ys=1*g29nZD1qXpjApft^mU}y$ zB(W~}a!x(*d1b_<8?e{N+qwa&`Zyij;fc?TcpV61#gY-T+q}jtF2ZsYVG&}tk4@ye z%YIEP_&9C4(j2sa#}pttL)Q6{`@TKsYvs(&(-mE?4Y|4mm2rVI0@NEdY};w)d8#^M zxo~!#gU|s0aGo8FvW+pd{9p|(n*?>{x78+_n)Zv$&(`w0Nf-EMyK05*Oxnr4|E#W& z*_zkSGyMXQ(e=V&E$v?6Ex1F915EOh@?GH-qX`sV^)Gjz^{K-Ui);~>o1^z*FFo>y z{BM*lJ{W&Pli^Cw##w&-*j@mClx~^E9xvAssN|fvR@)P(4&_lSx0fx|H>t&N0y+sA z4M6JgE}XaGxsXR|y=zN;$S3CBgqpry|CoI4|M0zYM#vFANBD=y2Q@YXHbX9^7iSx4 zv#aBX+%vI)&(RItyCqE)P&*X&hK=@oJ7GegA$fz*F#N2yBzAvTq`pR?FJAV?ThCc% z^6_&FE4`W^u|)&B5~wd0c;ANVWppka86R3^%I8yD6(Wa{G{MN=`0h7I3)m5w9h~GN z`{|P5rL;gmEPoyWbE=;s7;1aH=qmO*jU6U0n3ep)4cJ4H2>j}J!HAEX)$Zv)Q#--E zUsBoiuG9z^8K7}aD-hJo+OjIA$CU7oW7u8>hBe|&hV3SjVYIt%{S>(J%)bIjd2p82 z*L@5t=^;3MI%kKso9!9Cnj$4+?1!qkgWiuR3m!%;Kl(eh7XP>xcD4N8?c=>XDh-Qw z6M$)M4V%B=XY(aJZmGjIdxY?mtV~_lrGW{VR1E+gJ+-RQzWH@jcAILmZScGS+lU_B zA7=q+i2idHr(&T}I=!~}a9!bE$Wq)fhhBULa}lG-Q$6!E3>}mph0-8OMBuDoE^3!G zsI{$08+tlhcbsw9{c!|Wnzuhkuw8)2cHg)Yb3I&ESh4C!ehxH0yXEWn6uT+kK3|9B zFaq*|d%^WaP6uy&Wz|sJQWK@2Q+Pp3*Zb=%{(fq`()#PYIKA3LB!hORakuX?`-pm{ zR}vU$`oquzxi$xigw#f1JfNFn-N%QEpsr zqln&APA6H2ckh#80(MOza(yM1W_M!NPk1t&b)e%2`u;8)yUmztZw?%Yt|h14F^$#! zfD+`-V+_XcyQf~H)nygx;8+KAF6Kkaog{OVR`E(UG)^@V0ULL^#r9w{v8Ou*{B*D~ z`bi}xqBN!Hx_-@O>zp5d9KkWRIh`tXzBKm$){t-T z4(gRJoI&7U-*}rnyajvygJ`553#%)hSDgAAxgpr+BT^FjN4`tR>f8G==)rdnE9f!A z*{;EClTOD9_=Qbc;~jzaG-eKa_a?*vGo-Msf$nVHw?y!R%(efC%zd$#GroUKLVrUE z(q!RPrZIyJopye%xVnF-(5}B7R=~#-AG{;_rnQhG(2LJ+m(NyHEl@7m9cq?c$Fjz*nZ1*7`+fnvvN}HNW-`9v z0P%);Sj;Vr)(O3?fA06c+zTUr{T^XFT>>s)!%8F$2q?hz%P@Gzk1=OdMpoI@V|Bk` zvngn+w<%`kqkrkPQ0aA{(X01fH){){L z$K4JdFw^`>G)JD>So-SnFwOp!Z% z4dRNab1!KsOg~v``#boj_W72nhDrIhedI%l{Efw7CFA%(eK+GxOSrF{<<_T&kV;1Wgrjp zgAqSTan|INx7E}2Do||l1!5oLMA z`0N^hly7o#^YLae#|Iew2UPZFz=}fRNE}|l?GDs|1^K&h`Kh(R`tq-Tt=)gjpz+N* z07~!^c(DD--Tx6^_l+d^50;r=0%to2ho6SP;Yi#MUlYk_?@8>zQ2COF5>Vlxj)>%r zXXtJpfpAD+I(^^?vz8r9;Z(ODPlOJX+Vb3^SWiT}-Q@8u!=Cn6Y};|QRO9;h7}qOp zF72CgcPwaFHI{nfr8hy-SgM;(>iBv--~NE<|t(6E9#w{Xdn;wUnn_GIii=H1pH{O-4Ox30 z6_w`hcG5Pjgmn=rXyI{v(~`Vy`aL17#k%3rD%zlqs{Xv+8*%tO2J_n01O4p4b5^mF z(g%M^kdUwt6kt`^h9!m`1UM)F%c;e?7(>KpXgMu`v}z62Ss*g)rozAoDb~MTCsNRV z+o00(&^j4vT4#g^YSlV}%Og_-a_YgR+6^MRjPJX54PCqM-?3!Z-L(QzZ34PY zS^3@{Zyv<{_3zzw;8`ozow(9b zIQC_8oV}I3aqfrd_~P(xRzGL)_m!fceg8QIfWIm+3+3v}b0>5d^!%AICtHa;t-qSL z*DVinLBJ?z{b}~N-xRq6W30V(8@p%2_5DfhEVk-l?EK@+gBb1iUMSwm%dBs0|2fvx zHx}|Zp1E67L)9YJY$HEUmw~eDhZgb|9N{CbEKpT}_D zzb1i$BI~ojW^s~THrTDH&i-Um_hS}STanP*9OxbC3*3F*ojabWKqD+&Oq0^k-EA!x zJN=!qp2Y6H>yjdSO6vq@#?YS6v14Oe0+T?n=+_6%h zhoLn1SA;h&vz!luC?D6N2F^_7V%oSW5;U;FWPjXmhB1DRamL6d{**AmhLkm7jUq|2 zj1OJR#!N$X{AMq1kf?!*RM)<1R8^D1_EJM&9&MX)$241n3B^eO7Q9*gYX|FJ`d4?T zny}wYsskV0gc3T+U!#QF!e=kHF|UwtgR7Z8VT2>BQO{C5}YmVm98 zzr(OC&&5C=Ss~3q(O3tmG`}Effim@(F+jFdGGD3 zl?DpCYM%dfm-{`7Zx`#g$Mkm>YdfP)mILCUvl{Fq4|lb{ikH}{Kdj>9CXchAgL}kv z`1%vw>IG)xr(tfqu5hBZQTl&9#`g$+cCi}Uf3yGx?5`>s_s{K-o1e|(q?KKj=q{G5f2zT?ks{qHVTpq{W}^NxMEykYq; z_pkfbaW>jj>dm(+n>Y(93W}A4vxxNB1@R^wG9us6k0Xd{+8_7gKe|}xVQm}pdluga zHT5OJ`!YNZ44iP##xE|0er8^X12mg$8BvLD>xdle0MO#kC7{uf=W_Zk%B zyx%y7&2h>lW6Y^D*TT#G+)z|YuJMJ^V+mRW^gs^wQ6cL|yT!egb<#b#NB?#V+zVG) z{GaRek1iH^Sbm63ocj1+ki+GH=3J$y&sIFfuMQo#YOQ_W#WAQDg>(;U%O@d2y`z4> z+yi+v<-cC1pL>BW)^GpE{bv{J*oD}!1vdWfmypaxgTD>-In!##y_>hSZ1R<)Ng|qmNE>=#Xt&1MOsh+WGb_F%Wc$)3sR*{MFwgfo! zqoH#`&DL^yI_*k!DCYntlA2L;c%&@z_iq2y+xwk8!v zD)^5s7J698jJ-}{e=D(Gg=c3_<$?QT2MQSwKEWiEj-F-JBTy=Jkqt@RLHq6>tlEGz zG`*jwlYBz>5_P`uEEsP7`;W`oU$1yxl3Lkzzj3MP$V)kI^TkQjV@1qq&7LORF^RK)U`>a> zS?J|7>Wex5{`nGILk}H)k`H}_uNP8$bdIxL{`dd+{t5s6um0oL)=264qB);DFjSKS z?Ify42-W#)jrswhb~r;x!ms@M^}tnv-~v`d^B`W<692_5^AhM=(m_CavdBZ1j34+D z@Jk55lLT14r9%3co}@^#dXF8j>L6|g@lSkN7<3Vq?Y|W3P#SiFosLUuGxOKq0pl#_ z4sgxUdiu8?urK0IHly{2=U+dey@=Tp5S$?7h{ycv$M{FKh5hwfq%dPH%X$YGLpKD{Gai-u0c+*WJp zE}#L4?IDuBmxfcqO?WRr8E-C`osQ?l+PRVd`9c;tFnHV-?d_gJwqNP-=`I6Dor@xz zoE>{RaE(eE$y+^%HX@Ju?Qon}b?eof4$32hAhLLy>_Kr~NB0w|Tl@M6v=yLHwKvH9 z&bms%(7(M19=Fk&YZ&k9xD8qa&(TnEjxpYDVB0r0`&83}S!U%NFZ{~aL~_t~wG6ow2+}=#2~t zTNi1#&l|m=;FTv)4el7mw)8MPzs|;|L>j>9F)RlC_QOw!S$OJjvcxT)i|STO*V;k! zlG5q>jjQG>eWI}Metwc6ndhq5QynHj8twWa-4Qinkt33@zM(e-Wh6EuH@>i%JDFK( zKUw+fZmfaI!SkSy+9N8qhJ-CPf=ev&=|r1Z>l>CmYRJ~il#|Q_uvJxJzPoIBfD>O< z_%5RGG_vp*W2Y7|xBWD9s0yy-gNdoN6i@tsfJaAiu&OWE)?+-9+}C9B#a&Am6XaDYbiL?H0t`6sT`tIOa z9u%ry1ZH|*GUYfiF*$*3o_6TcQHYw=(=oZMCji6C)7$2Cq+X2F_&~*VAqP;3WgU3*DGl9iZ0#!lb@22F z{mH{YXX53h`S0Kv!Be~FXQL%nY`cx!N3f+p_MWfEXn}yDU1QcZvGIWX$fYU058$8h zDBbwMIJ6)-jeWHy$RiMH*9#Z!ImI1>69_dIYqj6GVslay%&t{JNy8Q8rz9&dck2aL&ZD0o>S^lC`3M&*gAvqQh$`7@2uM6~qjW zM}|kkw%F{reJ-_O*i2p6`NxdNSDokeskQDODB;+Q^1$+)$j_~K4p?2YGnF*BlJb7p z^rs=&2HghvPu{CZnX@2F2z_rsQAke?p0d4FbSDI%!wH*TG7g?mZe0tGzQL8WWP&4} zE%k1F!~%?-YJO(va)Qc0y1Nyuo#E@&E22MnudSNVWM+G~hpWAwULOJf#Rcu(vVf0* z5!?r7TtDcmch+}<%h0D$md%L?X?Yn11|;4(d2flnb6Is@XynDwGIjliaT(gpmB2hM zFYuz5&++rTRY_Xu7M+b|w?*`BA_uoYA9W+tS=s2`)-y}d%~V}sN$%(_4(rq93?d4> z?>E_bG$^9tYR??ndIGX(3k_+Lz8_6{O*p5XNiOIZjf#0w+!NWZ?lHB8ms7nWF;>-Q zLf|&_oU9Y$QYcfh=9*JyrrCQ?ZVaFZa?Q}ILw|!_F5cSlD_A+}>f4utfkr?Dx{nfj z)@42NC!GVORqT-@+CX(-dwO2p{TtF5cp{oTV<%bq0%bqZAF6o3Q!N9tb7w~W;srr~ z;qfX1`_m)h z3m@$D*$M;aI{0i94{yxHgN?_@euwzu^IH(0D%w%0GK+;;Pq+AgZ%{hgWkLmb&$~7r2C% zFd+f!s&vqs5 zsmmQj;WkfRhYt!2H=4O{p6isVd?WV>9)P-55FV(M@Jv3T`gUI&@}(jaCHqxa__W+Q z(#F2RdwP7IRTscjl1c8{fR$K&N(K0fu5|DA3|rvq|IxfFY;~x?T=$cbOVS@t)+i^d z!#$;#JHd3jfxWhnhokMTUXU3`r^5Ym>ze+vx7YA;a#bqDW!D(}z#)e%>)7K1GlEt=^0| z)1OIf;VB4{MIQqD8=!qWguqA(oP8a`I4>V2lq9=-)=!rQa7G)F7WbF{xkI;aODl+Hj%0EvRbMF`P4FIWh`0XE0DBk@{q8 zv*)e7Xd5nyXYKgTo*yc{glULrb#Z;ZAGG6*i>s%Tk&+)kzQpH0^q%Vs>Rco zoBB3>K)?mx9YalT);ffmfc@rA!Hl}E??NPH-@G$9z)|t++T(r0bMGc+q3!=Z5c_xN z47=!d^OlWKC)!*iGNDEV!dS!p{)R|l?Pz4CpPDky900KV_(^XN?bG>?RVmFY)vLOAII9(A4|GOtp)?^6S)M;d*1j%o$!~MdK}{)?a!HVC#+|Yshu%RL-Oov{bF{*0~BYR`311?i{Cd`(EW!IjGP_G_)4&P`RPH>-%7L^3?sSju2qt;3NKee-KMR68hmnLp9D3tbXi=2y*{Nu&?*0 z{l<{3orgWn2W4t5?Mc<1$srJI^Gvk?D}Qvw!-|=?U|`dm?sO(#-!j*nb*&edvMG9{ zRyQ}kx6m#Y7e?Wz$I6WLtT59wygoY(g4-6jSUXHj?sQ}*)K~b*iR_^4?x)QI3@e-5 zSBTQY^Kh*a1b1=@p)786=&tYAOq5}L&Kyd9;6?H?7yw2(UQ5o~v?2eKF^&_^+`630 zz0BafaLaQ8Tb?jwo+JUOxE{{J4p_(6-kyLHYdGJbZEHC3ABs3uta6b($ty0FJ}>G7 zaxSVMKKY13b$#S@nJ6de!zr-AFQ%Ef2jRAA$4~7X(Agd?PDPRB{b3U$J7(wlRWrUT z;yNH#=1#SoNzBxCqOZr;+B2%KI(+Cg|HSN~E9$z{?z@XS&E{g&drbSDeN{JRDn70% zR@!42op+q+YqM2_S8`avk|uKzW0fQ|tQlA7)=K3nI;jLc%8I1tEEiZ0ZyL)5;Yp|l zlMR?WlW95DEm%iq&6V634(82^f?3mMbBZ2WZe`-rU?CD#_xEvUZiLZPvG=j~JJv}} zl5KuYJDw_X6UGv$0sKcl?nOZ)l-SJ6wA<||=X!w6c=U8*JEdHA<;Cl9XJ#7(tDGn2 zBo&2XK^**`(-*x9N3;k|;Fyi)W*<*JdLZDWs_3okon}%F3;?w9UOH|bN4>zGfL0X* zaz_M)jk7 zHrvm-@N3QM@T|Gjqd5;mvHF%;%E>Mn-;4{*v z6G$BEOK}T``g+}DNl+%>!=4J8lA+n!?#`Y|28v9B9^|uIbB%y>A9a+oS*vk+Q!-ki zGGy40HOOrmjjbXHRcZk`-Z&TUAWXckR;3$P$XNlg)(4%6)|M~QY*@DW_}-^vvp(-9 zK${)rW!T5hm6nhrG?d8@8DJ~tJ~Z(^x9em2hM?^8{DbopF;f%Km9+Q{z2^dhBE|5N z8~~o>h3%GH_xO-cf@BtC!JWB-kHq)IUZ*wriH^!_&+Hy-kjt*6mXg0H_mS?T7L(MH zckh4oF!6}UYV?F#$IQR=taSKZWm&{LDlD!)pF>nZKNtSzzXf#4bsIVA=(jd9fZ-FL zd-#37KZW(0^6!8{|4g>yuQrB!YVec(a47zl8qR;lko>LRyeV(Y=ckz1s4e!_wz25bP9yJ9?y>*4ebn!`+*d7LFlRqHMjmD+v>JFNCIy*qDL z`{DVUB}m6M9sFboKE?a39ax)Sss*t1tEW^*3klYz0>7_7#D_j4C`RyJP{@iX>U;62 zwl=#mkV(EiIz2V-Gf7h!<3Q?T;i2=u^YKx-@UNr!23qF5jL!)@YQ93Gn5yaEmZ70mmfi{Gw)x+mS*zNx!Zh^u!_M=Pp#v}ZBgMryh54*Kr4Nu1AsE^9ww;pE>NRD&f$ z;JavKK{Y9wB*9E531a*7M!+BSz?UT^zZ6fPlA?q)OQI7$=68NJAxLNQZh)r-u zeF!3ieD<18FAb|Lt#Wy1FPLGir{sXf45=ItLVT{!bqC5vUQQlrZT@SH$^sW3vi~h} z)bGFbe@@wht(YYK-5w=2Rh8Dm|NI}9F?ts9|9BvRHXQ!PeHhyRxn8$v(>~Mx>eJ*N z4*wN52!@QF;UoR)fBp-TxqoKVVstWDIviGFwc`&xcf*6y9!@uAiXlB)Ro9LCIq+7< zaOvbhV7SdcJzKv-&cUAZ^=Lqws-N*?98a>bc1^u1jjeJQl^4v&k6>oUoq2|Wc2%4E zN$k;+nv*7^d^y*wlsD?i~dbSx<{c@gZC~wU7t_=$=Sx;`h7O9an%73F*6HgH}+|eoX@DklnXu zIk$T40fxwfMB@MzfP<{fZsnc9l&Rn2yg$6&hwRm$+q?2FqHS7 zZ5t&|$N6SmU#LnC;K1$m$7w$R$_+tx>jx zs^xIcSi1omWELh;I@Xb5{-xw-%zi&9#FE6)v4Mz=Z)5p-}U+}c~5Cjo#^N+`|GV6<$z#6 zW2c0=agMd;WkVdNs$%^lcH3JPKQ@{}?9RBq=&XrN|KyOQ7bv{$&Y;SH!1f^DVYwd* zd3USy?fm>8+iFg~Tzuy<9*Qmb*q!vQe9i|mLw9e!7#YGRc9FftAhK#+t7C=m?$0(2 zfR%l?88dh_+)$DU@2R*85EwwZndS+Rou;1Jq7;R|g5(QFb_&;JreFwC9kFMl1F206-uK+WM z_v z@7@FZ_MkBZ`8`HU)=Wn~4)dWeL>!g6tlGqpK?WDEZJcTFyoBX8siqlb!3gfR=VoC`ej{W;}pAyqPz|a zViZT_vAb_2RYAcq2jRKK!X%VG_^* z(1&p1u6|=UHlS)pmrvm(ue((=BY%xohX_f&XyJxqasVN0K}rMNJi))y>=%)8S14&bDS0avUqaR8~=L`KlA##s;&-*3N#?LGF-@wL&T2j&i*?U|s z0-A67m{5ku-E6MmUhh8bz1kN=OJL?QuS)IwR>-}2@#zBKGadmN`!)5Y;N()Uv5fZR zhp|dw8nl^dnrFA-Yr2{Ob(!yrsun=iY+J|#_}o2o$K6dw9l*C3?C(~i5!sXOYNVpf@rn8*cRxSH6(SCS6?+^xQ@)@tI4XHp$(H=K~}N*I;=SFQ;enw zSPhP0`6m1@y&u{(r1yECHlOFvSOjNnyAib2V{dWS`ii)>yiebYq|=z1ug=Gt|GFF* z@*1@qG$oelL<7QjH9?i;I|5d0k}s?KB&YZ4QPuhBcJ6>Ulv?C67`GMP&AMc)m7IK@ zN+#CAfpDOkFakkKkL#o`bK4&0_=M&9_*l~AyuaLUWZfDl$y_ep5!hppGnwW6bKCm~ zNw7feU%j=JizMrGW%>x8ix5paPV8#@VwOTDd<1jDMGbu%Y*hJJA2Qwrc;>MRED33= z(m9B!`bF*r0K2>tWG|f#Nwm*vQ_`bl_U!Yt2+rHa)M!lxo`hXWpjpSyI}}JEi0oK5 zhFtLBC~nnRd`i1*zw?#d;mSy@Wo(bx)+hP(^4nUa{mPcOS>q#)mz3 zK{S{ordJAvXT?Tx)17(G#)t7j0#uyDv%jM@#MZ1P9`B}LA}pvgS8$naa%=t3ABdu} zrV}8+Ac)F`juF6YaMOGXjO6fPJBUPuf?RQwV2%xgyLmxvbs*JgUvj8jR`F>)5b~N# zrtM}MAM>;9j$*Ibq*K}+DT66K+y+lPvFCB?0k4eRK|^KL$~b&(8nq!=WSTek=x}#s z7(E~pJLKsQpM;=7LqQ2S?nbq5h$!atvr4b>5q=Kr-v6J*zN2kXt=sko*^nTLjoVNV zNs@C>%^U8u@sK(fWw#nuR4?=GijCyLhrXSZ-|4D_+z?U=S1SVcNP>2O5(%&Wl` z(*bh%!PRs3OrDkFD@Ez=i(|2phu-_$*q}iL(pmhQ4KgbG?tyK@@^{MRBREwvEoPl6 z+mM~rG9|X-3aslHk;9lI^=25{Q@N2_g)6D&Qjm&_pN{6J#&7HLn;!FZb+qX$*4|LW%l|G)L^S z0N36%f4*T&4jr1fQj%Vo+m66=HIudfW~!WXjj3ERs=kt( z)0OCZ7|~a>hlFCJ(XEDx87QDwbgY}sm)DP+pZAv26&JDkgds!}w>!^XNtrHwq29lS zrhM^s^MxH9_l)8TCUq%inQ!CIYd(;nxvA$cySinv4_qY3&VVk|AsybII8FL6e&-`k za0#B<=fqeB2#1Rk;q* zG@xHMH>KD=zWZrj!&!zs?fr2O^NXelc62cbNJTR_{;RlDel!qUU5d7Oovcjhg`EW1 z7^C^84=CK&<<5IP=4tcE&F^A@vvnwcz`dW`$+@?;+i#1O6ZiEk=hzNpAr7&J=nG`t z6>b@r!3{_&!&M|LUxfGhwTsNn8cwp@Rxb2WmaD&6zk}`T-B=(VFtxu9I;Q}qLy`I0H-{BXmKlzp&lil}9)4y9W z`Ffn7Ly1eLpxc6%oG`l_kIRvoozVITI>b)FbnVfeA(>()e5m0yAJY!YKC5(8wK!of zu?hU)Kljl8*ACje9f6Vlb*=S39eV#6Rf%2Bauv?Z)vE;v|BqK&9IpS+zyGthB`-yd zKIfnP?Z3O*8|c0l84kF$`^0CkKkpwAavGD~kv(^4Nus|Wb!CBgHJ4Ti%XwlIDSBh> zUMuy|+#6q3DktUV06r*SFdQhv!`84wBp`vyjRX5Lt`9(-Hb?DQ81{6M&K{=xO@?^^ zpD2@=j^_Rl-kWeAqqeQl9q8+Cw7(?1*lTrjZpO=3uWnO*rd8zUt#Vm2_umIfC3sgK z1+gYS_5Jm#LN)`TL&FY3p)rM<*FLYZXKzjkvyz#W*zRd{S-pS-J;J-qX246rUzyL4}A8lF5%e(!}mc=wGf>QU|xDE(hL=)ZZ=KYM5w zJ@mgjX!rl!K_h@F`3ndCL*6;CozZb^P56h_2>%CM=HE(P>@BtVA3fOzH7)ba&iBnj znIKVm2rsdc@kcd2_b91N9UyBueo>4nk|IA`xh zxnOxO4%E?c^g0h=3b~ePHZGu4dC$|O*n7+x-R>_N_MPcKy)6#w;qXM6dQe2+tzh87 zeYZ~juEdz^$W}rr^Qto892Orfo8KYJzP8vgpVE`PCfoyw(g~)6Mw}dhdr3>2#zQke zthl!a)>$m?(HEqPUYL`QXney9waaD92^F_073R1RYBGp_E;9krqt9LJzJ-Kf#-IbY z8O&)~xc^J#_8%zL^iLg~p>sp=CJOToRQHDZ;e)Ddto*GqdSbPI^$D`TH@y0$m+AuR zU`uzNyT{<4_0`lKcSWb3uPepxcbbS{+6TxU=4XEjg?|&^|MfdsDr1kOeO0Wwfr<>% z9TN#kP%)s>$1#Fl{hLFx@Ml}deSzrZ1oQ@kB|=Zie_4od>!)yqISx1W*udWMMrwi}*@WPhN8NG#25uBwH^E-UPKUcE6I=+H)WN*b@`(>vJ zPBci>krSQNcw})_`=H+Yo`evG{kaUzmY2jWDcw@9^{-7NqSss0-Ppa(k+65R40r#1 zWnD!t_OB8CnbP0CR_Q(w|K7$jGm5a4+8eQ+RN0^Q&&|YX^8#DEhp=zKr$J&JF!O%jSxc`I(FqnRL%7|tmomZz zC;DybH`ADaJ1@BLFSC6h$SkFqE+ev&czW;Nz0R+=o3l$hYP~&D@P;N9?m;WsXE`PMyM z+mW^L?k)fDRnyq&ro~%K|Bcq`<+LIuw1GTClaYeHg>Ms) zI5)AjHibuU%0)tGEN}l#r2cY$sKvDt{V1ZX{psv=qY84TmJTZV8`bp0o=25{ zzfknAiAW}uh7t(o-F;^gHBx`0#|V}cc%tetC7XX6EK*w_tgpP{xe2yZ2?<04iO}jH-NMV6z(@mf=wlYk8J;fHX3J zUIZd!)YtW7Choy{*i^WPs(DI)?4{{8;r@e zr+7J4gcFo)LIuZqATy~1l*v?E1wJ9mtBS=kX)HN4(&(17eYleAQrcNO8wYR<7n8TR0x2uT;(>vlY|@BIat&Zm#b zU=yqMx)W!lh&x-M)GzTF5E_BAE7i;yDZ?V1)?4UT6>s2xoZP>2I$q}FP=E%dLVrIT z_@7_EiMj)4?X;x70c_OqbYEjQPMEve*a=zn-7BvYl7Jts8#qd5S9u!d$-YcG`~FGc zLJm%it`1Ui_lfvep@!+Hdf&Yt>xWH266M`fi?AWKl2ZM+T}ZT3qV-2RW=_AJLYhNg zY23Z0OyVVaLgz)e4!U(fAAPCo_ooq}3MTN^Fj7soM-ue4u8l;fR?GR4yY>jONYoXc zeK%L*igZJsv}C-3Z^#MR);o*h)Kh)VY3_EEsus%I0aQfZkL9a=gzKxuOPzL$RRaO9 zs^|-pahVmp!7g{>&--iQPw$+Cnd>v*pUrjv_FJT9{ZDc~G?pWL-MfA6?p%fiN4cR^ z`khoOLZ066bdPSU)XyQr-7Sn~+-5Q#bBr5jFJ_1%a^9!hnSQ>?IYI_cmx=!AOe&B& z2n}|*;)GgG9d*e*lPR2Chu^19-Y0#=pwBvSCLiJ}nh997^rd)8;CbKZ`WaH}R#nw} z0kf(H)rR_SGm^p0;akuiqK0@(TsXGrSJ(d$C=t(YdEO%iGLmkf0Nc7D2EC0{d=_9eYpW2G$Gd0IQGsv##SJ{Pq`%OmF1g|%RQ4;xZe?U)N9Ijn1XziY<(rwFw%1Ch~i z;*_xi#LnC41!AWEn&)J$9dyhQ2&YIO14lQ_;HM?C#+c(ST^W+pf%L<%DSXr5qAXC&gIhr4QixYyu zy&_59aTTc@Hi&4P2(DR!sgkVqT8A2xJ!YQ-$gtWyo|%%Wk@3@IWXQ%Ha*h8mu~n~M z2qw*kjx}XRGO&#qyoi~0LBEJEmB-6{x9O9GlJ%p8B;^d{1Q?gYo zcW~+J_b@rHeJ2dBG97Qy~<>&*~O2}7b9Cx!eVDz7R&S4QFgG#Gs37DB{^ z9hcpC0+iaosEcPAj}ou-jYhh~RxC{FrZ7_((HN~X2ZQNGxz`wxAO09Eap;xa$1IP< zF}=;zc#Ni7<&1qr;aUwWv+NbPADwS)HSXf<*;uE?QPlmawvJPtZ@8Pp*f$EWp0_rg zbEVl7lAYculPP2KMVz9*>**Ba1XV^ub|dDN;oI3f1WP+!A=VDCS04j!qg|NhN!iy* zaaQZy;N0H*jq2;Ud{0`M5G5)gqLqDu?_@uZ+=c$_jx||;BaOQWU-umt7@g`TXGlJt zpf(vqN1MSDmn@098^foHQhmU3$GOo5!v4HkDiM)7IyJcC0mHn$#dkaP;z^;! zV<5i{>UW2+Ut0&%YkwG~`@spm7G@^E7pBvrU9AAgYq@TNw>L`86oy~zzDXCobgoV& zD`#c6-kyppwvAff6niyASk`Eg5%q^g_k%ct`9Fc>nc%v70RWbe$EtZ+_|3 z)8!K*AtcfUu3wCVq3y-it_(|hb<~9~+wa5v_Ms;)IQ_X;b{F7^k&DbLzxp5y+2+1L z-V}wGt*h-neoWDa=Ga=3{>rZLuk{t*Yep#rC+GB*lNcz9qr~}wVrh#`8bXHs?YQfG z>nn26{a|Q!lg~DvI>>5scAGZms7Cl&lbk%cr*D|40ThKu;q_ppiu}C7VA5LVRz+5H z-86&Lh!k#H9%VKgup-^ zzhx7imla0lV;`noo<#-KyVhj1*k-T9HNm|%(W$AW&(O4>5<-5O>2k&;86){BoRl=) z_2PXitEneV#T5EmoqoC(k^FXc?1eOKVFLv|nNLhVNe(&rO!*v%9u^Mpa2;kUY5O8H zw8!ymOPXH$?Y|#tkKMW@ zPX)n;XaAic$9<@ZxhWs~!~4Ykxvu#ZIPEOvMM3HW3%ilVL5p`0*!p+Rg`0FD^Uq1? zZL6tzrSOJsEIEx(bvSEWBVysh3c5<{)oWVdOr~j#{}Cz)ro|n2HGJ@}5hJ3hc^)E!f$hEZ&G1<}XHtOvA5-hKZut3l{CZ%` z{)7Z{-m;d!xmca4da=-8w7S@Tm^BvVuxw;H{c(_8$U1XE80+Oi@8|rHgT#UT)BcLh z&H^>6uR^jfnsTTDOku(#Mp%+}_AzqNNeEh<6Jou_{^fMT50jxeV47WAm7|h92~UAbZuH6CYc_sucADCca?0uy1kvsjV=;B2YNlY#&YmMf|etJAF z8dlMa>#*7SM&AzsR6R&o{SstIyX?3ewTA{;8u*OJs$KLajno$w-ca&27G3>?>|V=W zb+x5Y!#Eb4dfVI3*YT_)e@zX8YtNe1`P9c^Lo7quAxAks0A+RRiDK5C-kOtfGU>p*h zda=U}aG|A(6Vl9-JL9M?g2$x8b~fi7et=wChIKy+&pi)Kq;X+Yt_5rT1wSPY5d;j@ zhE_0w%z!t1ZKRZT}Rh0N<0{%O_j zM~O~_Xe^%Jdq{g_L6dfK``XBwiK*MmoBQht586_-Z2@ufr9|RN^0N;yH5n1&g)x2j z$)J=Tj-S(6n6Kx*m?HS}w#5t~L6@m-M!xLZtzrsKmM(|t3x(C~HT`lX7sO9#p=%!W zR{`68A=y1_nt!f`>r)rM>~+7~h9|6Hb5`hWa|-n%0Z{cC-t#WD*422VuD*wNEEHBj zia>`17Qt{l&RI7M9&_FLXMlI-Sw+`?RX9Yn_Mi(2$i)4P6Vy!7Kq13#dwHWOZol<+ zhz|RjQ3+Gw{UE^{`n4kQ8WpG zCBLfQjq}bUgp-7KDx@TN`j|@kZooHB3ODcOtl*(f0+!h)Hy&%TRln)SV%gd|mJ3=5@Ph*?H5v15FgG`UpYyPm0m~ zvo18a6y?f}OEejBG04q^jVoRIO33IUb79sAP?nZhQo8?I)J*xG566T5@fe~#1-i!u(peF+e@WH4SpT@7rDx@ZEZ0q3D2 zCgHa7anPBi1H`sKOQ1(yEWyZw@sngCMmidW6Ixj+*^S{<#M57Xn_W3H5=e4=bCSEV2PkCK?vfKQqZVzH_8niS8=hXp@U zo{%!wq+1vM9(D$q-F>P5EdTt+$({WJb%=a;xXn*$jv4jOPh1awnH3;kd#0}5;(EP# z@w010ITjugACcGn?N_?3YbZTR``2a4?s2zL&~#sj(>cR>c-A4YA_)|U3Iuw3SgM|0 zz@CL6ehQiZa9cn6NXJRHn`^-kNLWX?oW#O={9w6^W}^ugAP z`+`+8TkI=4-UF&|M%qR4&=2`LWli*{S31uAc6P%%p3VMeREZnvCLw*aUZ#jw@4?+v zdm3Ko<$}lfqzWs%5>2Bz{|HZ4Rc32=B`z*P534cElK!62uZC&e0@4^`K$u6U-&KOSi^4b@nAw6!owe;zET^x5UA|4jCb zS3NPEJ-z&7ve=s6Lz3_z=0Mui`7D&o9@-kzFdN+uzE#2rg%Gwv`!;k$hqAxF#xGje zuj+*ISmv%wf38DRnPcxe^0j)9j;#r2!9X3=7(+zax*~m%cYme*7}+Uwo0tdap@Sdj zBC}CFUm@^mE)oRk=uN^Rn|0{dfNa~;5zVfDf7T4m z9{m#D{xTB#@*dj%UH{M!bROwg50<8fQ0SUAiCmb_`nsp`4we$f3QAGk0shReU z<2K8{;VkFsG^Ir21 zYoVW7Ex8fTEqWCkFJ>3i54Kuf<8ZN$WgjE)fjc@S?@w3bOOy_4tn{)to#*X&HeI&* zQ|;c+o9PbXqm6AgGl4mN+X(!Y)*($ zx~Dm-9a5pN-X@)`J`hgsdz;J{0KOgIC9lv-_i+!0JIr$r$ZK>$L^9eU?bNc7-4|R|nDdbyIZ?!|%N>j%*vt6@>mN ze5PaCMbPfvZEYVNt3M((;5*tGq#$OdM((4^>m;AAyBbC1Qy*5QFa|JGvcqVc5m`11 z3wT@o1r`m>3vmn>34pwZ%8Txa<2$?c(jDO zJs5$|92soCVnT`#vURlTxILC%4=^Qs7rxOE$pDDpeIdabIY%8_L}sAf>poROjds1T zxxG$1Mba}3`$MG_$S5?VEkMK%t+TrlST5axFT#9kxaF`vf1OkWU`GH?Pl>*X&t-($ zxKXU;1FII5*aBWLA`}@pO2$g~?qEOTj0Fh^67_jJRq^r%0DEQ6l?G03WGIQeD6SiT zSKnzf)U>gFdNj*6#!Jg7C}{6A9%0sLks#e zS5=0yn~`Q(L&ekcL9Hv3xd6GOIg1DhH=kj6U$S}9=z}1a7qhyKI7g+I$@N=leZ+Kn z;z|~W8r|?ha`RKlGz7v%Y8Gss^gX^$ES!CAvxE3uyzT2B zHkkc<*b*(-kFs5ZH){60jWj%huLoSAbMP}5RXgM-huagj59|G58sNpjw|uO$1A|u} z)Pa64O=OH7FskGlvgO-8pPz`Efp7@Mr*4;xzck1{fAjhyU;<-|rgb5|mn7EoVHg{M}0#?l0{`Xkua(MAyI7RHLzp6MJ zM8v$o7ZE{JTkwl6QbpdusXQJ_{*GCW_C&nZ;c9;m>6uY*7Z)T=ynZ_a;{WcC^|v?b zsi=7$Q*wUeVE!pw_3QHpOBPXUHXlqPuC5h_9&>Z$;`J;jQzJ49a!Z)z6rx*Pf7@mM zI4H|E%1_D;rdsp^sxO+#`}d`Pgj1>q@#nBVs6z`tz_|&-VKLzg}{m-yaj`F z{5ttWV^HBee}QPGCWZ0NI&r^+k)DR4pTf9r&oD`X$y_M5o(En9Jmk_luH^88d}`~f zE2VCyuSfarGu9d3Xc<$TRIQ$>%+#a$9x za1jI{ZBD^~fq7iufFyqi_al9@Q@Ce$v^1=A4~jmTwaF6$Jl&&d@CQQ29H;saAE!W{ zg9Y=9<4^%9wZ2;o2K1YI%o70PpS|G)PG3}r5chVQ;Thm za(PHH{w1#8HRo+AAK$n!H^f>Ck8aYl^NoiH;jO&>CWGm0ddcgjzBywLuyJE>Ztp8>_=ud(J2yoDCX?`K<})= zz)X1X5s>Y$-?|=G#5==EQTXfiY7;Dix~`>IZj-FKz4`ZL*jP*o zBwG_z4+4T?0;`I{5}1c!yI=kHG$uq{Gsrh*dhBv5eq{X&hTs>^bgS!T8SccTMs0B; za#VZ5UWVWFmYZe9QF z0KrFsMd%U9DYorz*I?L%weoW2amMHNqaV71yY1Kxtn7Ugg|H^ek3h11rgA}C>Wi}x ztFqrm&m{#WMZEB%Oj>X8iV9SZXP%(5o- zhv6FA4rBZnzZw^^bVAdN*UB>%)$wp=0KW_h?FQ8b3W^b^t|$ zCp|WdH-r5jjC{psMhq88p*Y95~r?G|{ z&A0X5FSNIXVK{#;`j&$1CC9hu%AB(s1s8)ve+tRtN8KCa_S<>eJ%hyfKA2b!9&aKP zyf(=?IOrE-QLI$zx4#Gbdf&c#y~=&Qv}@%56@}!V`rVC`I!Mk-_uTkmNTPl?8+(k= z5V!cB`OJ@}`3)Yv{*0B+#m;K5;pu$;I1{HY*;8Kwr;tLYcbxl}<5-Tui*m6T@2Eai z7RC;vedSwl;~3_)OCJn94cAb+Zh?;sy%#rI_nPx~JFtYq={@0FSVztcWCAEqGdtH( zI9H5uf#gz5aY(cu;bq6=rzn)4uzdNW>X`c_FslOB3Y;drjVw{|BG^-)wa-gZ)X7Z6xpvP6jD( zbOTX<$+X}5OJ*iD>d*+C979ZIoZj7=#Alc-IT~SQ`3Wc8kPFHIuclArcUGVhmKlc&6g(pZ_T;EC&FQDUkEemx z!(oSrXqcXA$p@^5p>>Mvcn_a|bpCke7y5O1No^lC_0GPzXA=Wupvnj9xAcw5BCd4_ zLBN>W(AD1qIK+>KPoC9`9ASP7{22YFHFrp;>V0ExbT;QW@v=`M`;ojbh_djlPFi$q za;=&orO2*OYAunKmftV8>=^qG>6Lm+>{)IGUT8ps3O^Jjj+&}d*G>QrKYyo_!Zsqz YT<2ewhv$cpW8&~X1dgo#Km7^*CwV-9s{jB1 literal 39186 zcmb4rWmsHmvUStAYjC$9!QI{6CAho06WlepySux)I|L_4AV9F-@R6KzX3pF@bMO6r zHPFxV_GVS}s#R5M?^FbVmkofdb++2WQ z^`N%B-|&x3$Rd5Zm|3u#w64*QTD1>)_shZqHJUrNGy~)$ko1Q0oy7{uj!GizkF1(g zLcoR}icZs8?^GpBoFoh~w|tgjCjoo8kCdw`gUXl+ViOI{<|!KIIF`l1(fW+vWu~#C zV959hQL9wuQ;>7Fk2NcA{9vjZ3B0U#84C;;8}#LN^db1!MgsH6U~KMNkVY3`i^Hy( zWh1U(S1sTXWsS10aI{KpF@IY>XU?^&JV749#5i4G6g%f4}lOIy)NE z8roX(hJkQ^p@IMbB;debzyWbUAz`7RAVGm35bvOX&@ixI=s-{qAU+5X!w&!hjr4UP zbPwUUb$J#S3Xqf-?BkP+>kOWL93HxIKt_AL`9dutfQQ>!e)oK1U8p}Y%z8u$D<)+; zG$8Qvft{Xt2~!Z=vvh<-JxuhgT=}FXk*#N-9SV&PZmqF1mNLBH6D>N@PrlBiRu%*1 zA1myqdzFCWI$?0Q3xuSyTGbc|Dhz)tpF&RJxcfOmPvrbrEs9NT(a*-Z%3)h~iX3oOFwMl~PT%jr+s`RMa)4_iHesSK*6$Jct7Iy{f0Y&d# z^>PE0N4R;q8CI;v^#viOe+k8mMWQEty2I7b z0_26=j-5xq!l#~{7+FbGX9q!rIK_1pM%s91qB%CMo>~MC!4ME zdiBCvp^QW#g0QGM{xPg^q}gX$gRg5!X;I-o1aiNE zfRSSLX&PkuA&ST=w@wOM0z}jK{hgwT5%$LBWbsCcR8r=*JQVDdhF-Fj)hF7rNQ~ZO zP~~E@rxS?O@R*8A(YV8jP}m-T#S zFqR)$!*fvYIKcCr$nj{ZajRCXKZh^QVztsX$f?*TaX(}rJvxa9fC2ew^Kv2SIZZdce=L30nl76fsyBY3li#|K}t)L_=oiXFhJq-nbWIZ?YGH3A7!G=eA@VMVUMXo+E}ty}*|EnlOv zZs~VNd%$3}J*6P@iChh`6ZJcYckMwg4)s%ksju0bIV+N*^1{cnJW>a~;i4_~oj}yd z1jJ9|9AFHEbXW(gtSoBhRal=^VDLY-`2<(-g4>R)Q%z}i2ADTB?=Ovy?YQsn}Vne_hJCj_AJZq`g!zZm$cy z&6Mn9)s^L2s_Y2^*lCScYX1Fz= z&6C?9dls(q+izlty(Xs+=lJk9b#wigX&66D@aH6EVXwpCC1llfcY9S?G`Pva?6}Y^I>62S9p& zu0_j&ICZL+xVC$)9fn`MD0f2^brpix3Vg>@H0RI`i)PpN&|@w5K2FvH?*p9Qs{ovEydFUXt4? zdID`KBQ|?M$2a!TRFFI{Ui|1=WH7*F?*kj4_2e=ii62Z4l40VjCxjVtF_z&7+Nl@u zJN@Y5Xlcxiej#tMT>hB5W{&0rJ|I8XZ2qlzQ< z7>a(qrFQZ^}V9wd^pR?izd(Y^_<`GXz9h<4R(B*IdIZ62s z5S#uONr?>gPPTV@w=QCMB%m*(3@Aj8jFyYscB^_@f>_6n$&jFTD7pG=ZT&b@#kiIY zRkD?(^emeh;N9;z6q^vZqg9Z5o%J6Ww0z(Q=ZXbX;lxe_W8-Evh>7R#Le9ygUmsbP z3=dCqBes;}=i$r_QC+}eAEx;<1h8`As1fNdwPwFiSLh?A`lpAB*nqtU0~BdM_Mowg zq<;*rS?K6^$atTlbKkV{n4Z9CeLd;shbv}qSbpDhf0vS2H|kQrtS3e#k*NZhw+)M^ zax+)7hkSQLoO29P4d!7i^}d$(%BRn>g4S{H~CpTE7Vd z7Yz2TDuTWPf`Xz0|15|=ED&(uTZr#|rT*G23ye?u5*a%eAOqH`!RW(%0NQIcTU>M~ zF~fW${V*UCbuI{pqi-loVJCV3Ca&+iE2wQcln)dfi5EY<&Gg#MZ5s+Z85#H)5s-5V zj&u^v4c6xs^&`$bvSP5zUDFhh4ptTRo%s6?kN32zBw+FmU*pr0fMI~ozfVXAC=&Fs zCV-->1pzS^0DX0~TcT*xI0*?gbd*gbz>T*Us~o7zaW!)X-3*+LQ=ilRK=nc56vwtX z#;FYXI6rR}SADF>G*5jF;j6bay_H%^axbD~fMaQPTL)wF$aS}^DfG5TSu?3vf|9j! zo<}?m^eM9vzK=%JsLW#N2c_ElA>zJ@EsUElJS#+e zhJO45*k2IFXulP;e}nMff%OyyWa3WwYpjtCPouG88qtaD(F2$;b^$39!I62Hh$L!h z0cgwD$xpd9JW7Az+W${nx2*v=kss07_({W}&xAf7)S7*K^}kuy0pv^(neqAe066?5 zKY{fo4$^YQzir>L?&f&lZ!mw`S;x%Q}}BZr!9Ictnt&&fYNQn1jke z)LGnY9CeWHefN0pN;lJNG$+mfW!Bl)VugLCe3QX(9h>B*TguF)3K+<@i@sMe@-m*{ zSIYS9#ac-G`;Xs|sQhHLt-Gz4UG4g#dqPcN{jXLNFL&BQc zIR63bpZWS5R_Fg6)?*ex2136*xM7?HViw%_q<-&rK}=$o=8o zqVsTx#+dsTt`q;nb-EmolV0L%T46W(CAq&yy|6*umC&Nc6p)ig%_v>!$Fd&rI!F?q z5$30W;gbIkTxb4?tEE2ZGd`Z}cg~SGp2xWainBZ*Eru>++hgu^fkQzsPY=}t9K5AT zR1UZEqMUw$vDsJWuyhM6DfR;SEw+gEdWMt^XB#0;sn89!5PzW{?hk4oY$U}eAY8a5 zd(X$}H}zQEg(d?xkIhD%UU?7$^d+X(`MNJ}xsN`l1oV%*ag83Z3$56Q|ml0{|tfu*Yvx2lPe#Mgv_(`}3mwzr|3JlBf3 zLJ3m@jW+%kD^LP<*V;b!`MfIdf}+d5Lb7CT5;0(y@R~~jP=s(Ampw(!RA09YrSScp zq`#mu4o-t_e``##jTvOgORMxJ;ypaWXFcKzs7b}Rs&I@^QxHFAhi-QE@zwQg04O-* z3y)>I+cPEhcmE3>SRxhmMf3unXC8WaoRboz@H(#fn3lAR>80KPisz{)A*Qg}_qSC> z-fFKtax&)#i-E{$xI3A&f)gI7<=)4_N1d;w9k|d$#l_6^<^Dw~X;siADH%_n77gyp z?bMkrq!aP#%GE&BT2E1-cw&}wH0I9jyv?B#dIOF2 ze;nO{9pdsY?X1f@a_Y0s=hM`tk#CyqQGYCJ;Mk7)!Me$yUB2XJ{mgzZS0bc5T>GXQ zG5^qwzp~=*JQOJm$QD84(%KsXX;g-i@MV6k%&aqdDF z&aijV<00pDlFyt*44#u0hrgU#of|6NYjxMA2dAZJIV>iY)G@j2OT$;lY+gJ7z?$e3 zrz!_yJPRn^7WYrSFa$~zz0!_b`y&c0;tic~4IoGcu~P20T4Ok;Ao8gDZ*C9E_O!!z zMj&jm-XFo!lTko>QTnY;)=WZ!1llCAx&IXJxYZ%qQRUx6e-I}c-+Qn)i>dfTWYCn= zTD1(n^pl20C)=qaMP??tc(x>_XYH_qbmBv&Yqxsk6Dk+ya2K&mS?D^5*fAx4AZIC~ zt8dysp!lrydCo4EswDr|vxTu-yxSJ9fw*L`z8{`YqL|%Q1Tx3V=Svg2d5mMZ{4vz% z2s^dxsYy~B1PBg{r!IyjiD&DCKe{0+gN%!gS42l0iNhs_0@z(99fTiKwU#o5o|3%*=s=EKMn z?H0%}_#}e0D!4%=g(k14*^JY)uP(!p-+&WT^pCNUWhy6_*@Fo~;QLI9ZHsLm4$EW2 zm#$d^$`)gfiOE$DiLMN|RVauq-+gn&h4%j8n*vqYsbkV4Ns1ht-3fKajUW%yvm>Q| z*_qujEFoYO8HaX}6Skv3OG$LFBY!oJ8s!a zm5DPbLt_QZue|o}Y;<85B{pn!yXlJ!qG1B_zP*#^JPSjm#Ebaor7s_E_>{IffyHXiSc>%t zTW!wHy>&5{80A_X=K`}TCH!eJA54;Pza$J^^NRBL4{9nIw%qU>*Bm~VIiBhp#zWM`SQs{{T%^MZQh_L{4#_lL3|pop^!kxzMlWNvq&@>Ph8sRf2njLq zT7P{fq0UDM7jR(1nR286M^pYzw`UHzRl1`C-tGKJ3U?Rcy?#lX1Wd8Ki2m31&li4S z5N`SPUw8XE?U&w@XIF@lL<_e8W&IC%D>_OIU{s1Dop7U-uEzXD{0auV#{vc@?nI(M zXV_`bc;J2CM~AJ=L0;F(oaXj*#G-n9lcXwn6oYVOcN+m2)5}h*ba5-*SPf>#rr@zp zs#ix)srxuTl-hobzI_nthvd5$@CrBJ<(F}%TLs6++Zu*EC}4hTRgk(Ogrv?g#`-~N zBv`3hlYn}s+^2qzji$3LS9pC&9q*%Z_6A|kd5yHFz0*6mz{eUUwQgy!O~!btG*4!R z#$0C%y3;OkU2iJx_Cq@y0YY+uN>5)xnLZTNP6)yWV>;fHV9qc2^|KiAQTtL6*Yu(> zI8j@PQY;Dtja6~-8VX0tG_qVLf3)gAvfr&b;$MUU_XnZ;Dr$f6Mma9x3pG7VC$~Z% zqO|(l1qrdIRC?HQ$p<+PU{qQ!g+38Qf3R*q117>}cF9Yw24pC5><|wIaqA~S=t++c z&^q8ekQ}5}pCPO+@V?szJu7G7lG1BNv_%(!$`GDsFA=e@iOv*GGj(CZez#mrqhB~J z3UbT!Hwc*F=ACIm%oM5+5{$+`Ue@+M5N&AWNLVjL{eWN5ORVEcGNhIfba9Vh6*W0KaVJe;uxnA1DovlbRV`_Wh6YRzYcONb7(hA7*lVC&@kX!}xkE@LFfKGG^S zbyU!Vq8h;0+?k?+Lt@;#GfC|40Yg8&7FM<2OSOYE%oL4Oa?hDu-%uzuxny()`L)qj z4w)*g==t_~IgahSqsmK4Xh*6&CIr)u>+BXi|D_dagHjX!746#}npXNBF-;&r3)!D} z9ZTi1PmnJcsR06+(&D93z288H_*$O(X0dZZqMe<}<6h;8+M82j;yUIkcIWcLZDMv& zb5>SHKY@ZSYQhVNPD$lO@a^o z3Ymw$BoTcTH)Ayb5)en)fScXc7~U*1mRJaSJN9bIDXfEqG}zw!Do;!3)R~qAwcl=( zwa!~pM!~h{Zldad{axnn$94Kcd-{bUHLIOOs~oxVXL``V5dB7OiLihbuusj=0Oq!Y>fpNQ9%d%s7eE`QD z6tjsfeZAqCP6-aow#B5?p)@f=qgxQ?m|H5;fFq%AL#SqM zZ1Zbs!Tr`uyYibG8yo-8`)T}csjkKFfCKrljfMVmcly^w?(P6GaaEx z5O6_h(DHwr0kXATv-w!5Sr9}S;z!`KR|7nYSqOd&Y2W^HZX__kNPzav(Pf}B8$rtL z{Ev?s#H5TZ(-ZR)rE#}OIZ!KnI~VqP13%SEEry~b^IoVB6orR0@gQ9kKbFW7v`K1k z#z%4FNj=Y4Mw`cUN9hoM&I(LhtA(iq&0VZ_?GKtV<2@nN-2`Ay+63mdtTh9Ppu61; z8s5>|x_hWF*~xYt0>I$G09`Dp{aFo^EW|XEJqvRs2GJu9<0H(yE6X~c-^F0jj zn0yuiwA#{v02qw;1(sNQ*NUXqV1khVO>Yn=LJH)4Q`CF%bCZ)1Jx z%^1`z07?0PZ<+D9gSPHeZ4laU-seLaIKoS~Xxa3Q44`FLdVoGRf+iZw)pha7IM7ZY z+WXx2iHkS`pw41QEk<23A`0(;)l=;UFQEQ)78xjfOVhQntl)8P!*MtmYeWvEQF&ro znRz=EjoRHlP#UJtH?DbadoZS_XnE9_1JJf5p=54kWM=GWMksIVuJ2%MsqgT%TeJJ)XMP7`BQt%cKlf|@5c5g^>zm(V9*C&^ zKZ|+y0iMT;X`+yXF31;d{7TS^^;k(*u4RK{0UCXRPo-Ct0SNG~;UqmDirB~Rr}-d& zOb}|;-A;6p<~hv)dFjt3_d+<{A1FkqLQ$z2{sp^r`w%V0_WJ7@H5pFz)r|ZXtlmU#?p7pL3NcJMup zTS=3%Ze758+$(vL&lQfJKi-Fsp4w%W1{@?+(a0%7`@+g^73>g3t0SG=)JUpnTAu1V za}cM}B?R#CFUnQ@Ua~>`TCypDye|DpVU?r}xNqIYJSk~_Z0Vsdv%R3gqP>-IlteDj zutZ*lj(|-3A+r#3VatKML>E#Pth*s=HKUU-5cc0)74cgL{$nQv4pcs_^Z4~4e}w?n z2l7=a3>I?`SLj_81jx1stPQQ+GY?n-V_9M1bK{9y?su4B^aeyhQaOjQDQFd8WxRBS z@8lceP`EPgipW8|@wZXjI}-YoK!NrSrJejv_1eMAEiwu2b-xjCrE}4G0WQ6tuJXAf z0msbmBM54%NYxb!>T+b&p(tA1@jA45FDp8c>jQ)yxvig!8A3ief70;hTNusN`Z4@9e&Z_xDLfq#mhb6>CuBvRH6%y@La-3xZU*wAWu>rCQWp;` zbA{iR5b7ggBR@0-k2BSx9yw(m1Y>sVoTQ{WXIVM+B7t;xW#nTDPX7T6H&ZSxS1Asd zFd!}%%G;{vEe6VDjHJKd!B6AT4dM@I^4CIqA+&)>R5RZXLmk2Dw5!G1w_qzD%}Sn| zcEWVhdmN3a6#0SosShiR3%O1Qj|okic*uCj7bogE3mDq)c(PUq+2zbv=XD*?#8io@ zv6UMT$7c0`-!lf9Qw7J}#p>o`%lbY1WTFX7v^0;-LIApF%*mt~$l9Tfi%-b*b)v-# z<_`1W(-YbKXLvc%i@Dvy)#~=)zADKgH~W(Oz3hOk0=Q&o&FV}C<&3)fo~&d_O#}7w zjkVopB2Avhw=XMMMlRAFjm!vale3Fz^Qw-+=Omz;BUV+EpwC_HNL#lC)#}OBHEt8TY~x?prjVtA+3GYub4nXj6UN>sCXoIl&kRYTnt>t&q#7X+XF`m(cB1I#aZ(s zw6#zlN1`b81dXsoqlrQcnzhc*f!08sOO#ih1Nl+{4L)30;*_{J-=|mkvX};lgxww| z`()IhV@GeJmX=+P{`vhQ2-`!gCj(oqjZx|`qn)TMk{LLsRMw9eI_dJZx^B;C@&o2W z;PuLifV&a_l_r=lK7ImtEu^mDU1r0-C&NDp@?Xi2@Ar4`O&a~GCjTJA|Jicz*H>}k z7V?Gl9Be}vnZ3cT=qsvT?cI#z{8sT=jM(@MU)KoN!nOzAY?UXv5;Oau(5gACCoXZB z2xKQ?N$@3Uu9tqZFZ@Y`$&JqCSj=+Az!aga(8hU@?U;=tK_D1eDGJTH2o@c}6q}S4 z#8Vw%Z>eRV@6#@CzNH#K+pE^*^iCF5kpzbuiGIdPA`Ti2ir0n&JDuXhqV#}pfkl?j zAt{lms`t>)n22d;zVRY%U9l!FXCU;lAtmF zg$-B!&W6e8Z<1(L)#$!(9JQaCA8Kjw^y55slnx*RI`Ifsi&RvXYyjYeLY*C}i_;qT z58KCE4E{6v|D6tXzd->aEEqi$zSMKNEGB0p%*IxOg}`iaqoq8~a{IC1@<5NzeVnt5*<{L~5Y<#Ns*lihA&a{Go7s;#I#pwy;DM(N61tNg_uzvRZ&J3#Dq|lD#5JJ?9drZ;|XKMEHxf*>(YfNdS+hF=7rd=YjDv!( z1zH6hDvq%&>IM0w?9CS3tavc$!$-vH|0CJS!|w&wZz^ zF!e0N8972bJYJiia$|&j+c8h_oyXjD*^4TVQb*iG}8=Z z!8heFACS=r`Maqq(I#l$HE{nMZAc++?BHl?qi^-r8ae*SjI@8sMSTZ;Q)_*5t3UPP z|5c{A{#~ZHTtGf!U4`GPgANv4jeYot>HJwUl_l$a+jk7P&N6D5PD2h6E0S#1$owvK zMwpbS7-{AD#>=W)?WAQKfM!<1>FiXDPM7uCNqeoI)DzR%y|_gFC2+^LX-Lsh+P9ecZJpuD#>84`i&%% z)_TLh7K7KN`@|91o*6Iw-Ip?7+WI-rL;Q$GuCMYY{cH8xpv-zq<;cZ>INR~!mqY## z;Cf@u$i5L>VIcpI+RDV-YyYS&|55Gz9YEziC_qLacxw_snbb}&3IAuVK7HZq**m2A zb`dzvpL3}PAQn)W!f3ETnj>u3vz>awc`<=Ra9TG=JBF>$(0u- z=XyTaXM+ykEeOkoxEty%I=;IGV|SvB4Sv_?s5msShYdxyOqGOl;g4>G?xR#ANu0oB zVn$1Q%(_y^>#f6bbHdzFHnNO|{rx0#vNldz-+uEl3$1!zf1BNZ&?ooE`TEM@$t~ca zs81bCSZ5`g(PGzY0N!3>VnG;wOBGou3r*|-IUh=tjv0LczqZFJDJ8ZP+=(gslUE8{ zRwgC>V{d^qPU5(0!b51SBbGEG$g_kLL5J4A5*yy%i7o#G@znzyw__O|#*sW5mILzA z3eR`Pg_MAo0I&ryW)oQ}`hRNG!@Gk^ za`R^~iyfn~#)@I+Yr^m4*i%ay<|9cixaMTuG`(GHoPKPi-d{!O{`>Zlp!_$)_KVHlB%Y(OgNv~dje+@J zT`$|4(1QXHfdf@~j9h+w6@M+SfN#62H%lq-zj#Xj5_r7Rkgs-*&^0?+QPzWZD^O&h z?*S8yQF*1kBP>aeA1=Z$SueV_=}~}MHf@sMpg#h0)PM*?J*f3e+Y!d7vqIwRfjIDj z&nAy5p=3)7-gFvt0i9Ym@pvJUh9bOI&eNlXnu&%njMwRF(6Zx33c_@skVw3t3*fCU z&2Ck7Q%2c(^FN{_dB~iycV;`f1d2`DJ(gkrRMKCY`gnfys)U^vBvOmR2+9DKz(rS> z7m6uD80n7~;KY*SG~~)cil^I`d?IqKbWO74QJST5e>z(m2Gsh7)2_9#f#3DBDP>S8 zFR~1Fd^wcVs-BG+CqbS4C+R0oCkyPnPK9LG7m>qu=?07cMNFI8I@wt{{hsyxqoD-{ zsx^#DzhV4;B05DVC_uUtm>Bs76GQh`*6@!>i|ETD(Ou_Osaunb^0X`xF-<{ARTbH z2asN8Gf}#pV<`CklSZxpYSk5ZW*Dgb-NL;rZ*y^HH$RZMc?wJ z)mESlP#FXBg1#OzS7|lcV=Z-Dp2fZvJvXbiW=Lj*WU|~X7*@ms73p1_MKS|n(Z&Pk z9Fc5Fj)zA^?#=XkXi)kgeh`O)d{)}nb~VRh^MirQIA)CD*)x8`8kkQbBMOtX-_p8? z-WZDwlh{<-P1YdtZ!-D!NYn9crs-(w>|ki@`Zm@1h4bGEHvhlA^JdHavsV9#z}W5o zH3G$EZ|({+jfS;3!Eo@Y?`un<2%B|m@^V!92o4yr((3F+dbE<_+?&cVA zpAXd?`dBnRO8E;+z0Ix*cRzFGB>@n$(0cYnQ4wcgc7}=XC^+ktW+02APH&n(F!OZ@ zX0|pesZ}Mu5)#Oa2+0A`K9U|W9A6Ex$8i#mf=!E0_sUz9^x#Ow{mCv(P+l~N_0s9@TuFj&1 zRLz%v*Z5Mg01a=?=^SJ=iQL_tEN;nN z6vMt>gW5j_in*}jfranat~M9^xmPL2Dxi3M_?}~JkmlsQf!x!Q54o} zj-4R{TDFfXsM8(phi1qksw-oc3a2w3%tw!yn)yMwlQCC~+KFIStq_Q%(ve%#_$Y+P z-;EwTzwCcP637_|>7+!Gym6%^K}jK zDwSp*YkoeTelE%4U>u&|!3Fn9k%q~suW9=>Q8|nlTV4Iq;?hAsAPf(OiX=@RHp&(v z?$Z$}SgZZ7ZdxD?+^?>ye(UezY$Z zH8ZcHH#3$BA9Ox;i>2yPE>4fTj@L2_j}tuoqv()wg9my{{>x*_q3#2SRnLXh5D;c+=}~6rVjdPrJWM=QT&lRy5({okVhBINvjA z)+7w})#XHis=7FSUy7{_*-7?)#=fvfZy=DH2Oc7NZPwtoey<}>Kcv4qE{WH1T{ZQj)1NtX zlC#xplgjOp1=9};;jtuph=*7;&|V^VIp7hM%4yL12EZn^SAkFhpa;F2g8rB>PDdvSYm9X zAHqLz-7Gz+(7vuabw=CG;$Wd;nTWp_gRx;p(99{qxH6D#a$D9G+)F7B#|)IOS(COS zNsd!#_Mqr(XNqDvJp@A^_BIL_t90CeaK=7bC zS0)zOZ~yE%q1OQYf)XjDKMLCn(!WgUN;Sac-96ab2od8sSdxbl`v02S1 z=D#9DBSTwe=2giY6?q9eWtH6MrpAAE^!5oTGd+*@6$RG`8PyL677WiLx?TO?&K^OC zx9RWP-0K|6#~vL<&mCCeyEf5s?ad#^?u>Nde|BruRJCa+?b;Y{TaGHo?G3%{s(F_j zChS5`yeJvMtJnojj{nk!02Ujbhb%jErs#prH=@?>8dWMaYsacZdN$v}GfASI%kI+0 z?3bHvFkn8`1m$}yIOrN?9lCFC{;`it_R_>CijIm?MgMti>VgFjljlbfW9YzBZkdTF z?@9*s;p1cyGQ7|oFcbs_wEFmvxD7y!?)Y-hDPVVg;lNqfR>v=XHYwURoQDM#)7)lP zQqkIx%4fV@G@+BK{7z2qyB4AazgxcPX>0dLDjRZ>@lgZSf6X-tHCqSEH)-%^%Kd%e z^DoKvdr|I=b$Q6hPseEQJ9F!Yn{)&tY9mPFm!0|U!{17y7#>htg0k`N2 zfi#G1bSz%z?f3)~q-4uf)D^+yvb4-(F%{z*Jy7aX@ee7A4Se~BApYU9))TOm#4WGv zdU73!GBi*#N&Etl($>=Rz-8ici`hk7&;l*9~rU3xp3Q4kn zK6q8x2pBbGust=)_+<-o3;w|uQc2}oPkj#P9ojTF7!}9d>Lf`P^janjsgvAF#JxwD zY?=sFsVCRzLHPUOYlE@va)&Xwb(8lzGKXg0x~~n~y=85pn(=3w0u7Z%nOP&aN*30) zv6cM7+yqO&F(`wKW)mxTyR@yfpi&5UKQJZEf3*+d)`poMiTPd#0okWkW9-4TxqCxG zrk&q7m{CmEcP#^h3&Ic?MHZWB?v=gLOn5R;$XHN>U#Et~YU$CfV1WB%7S7r<$0_QG zn5EcAImJ}#8!D@1ZO=C|WJ4oD(fid6<{6<#Vo+i!Rjpk<-^)d-=>pbE^qVw!2#X{}Vro6Ar1ap)k)H-# z;xj{CFr_aWm(L}`4UAoJ<>Q?UzI1QM*$7bJVEdd&3G9+-E_b=*j^Zx$+vNaR$)12} z2UNIM)ouS=hiL@^zCr_zJb&>;*IBX4DHOIDFeTs>!19SFk~d194R-XiAVX7#hRKZT zRA-)9jcn;)qI5zk^l+mj&4&i(*nGZxT*AaPGz4$jlA+SGne~^c9bW{lPov^cZtaR- z*hF#ph-uhuk(_h^O-CtuBM?6?v#>;Nw#FG44m}Sb)`a0H?)A9?{_0@ME zCUZmApa6+SBVm3zX8q_JU5MVoHF^dd+9-oa=HpR6K;^JSyscOLjhnhOgc@kJ3hRm_ zJjA4L-%-^d?|C-o+KiVsS$xMaV_*3RQa{ec8MuX2kc;L7$jf$liI^91KcDe-+j zjODnkDL=9HV#lX>4*dp*TZ(oqW@OuplV4`RKXq04Jh@nx07Z|i)y)EM?DP4YxTJDV zmpo^>>rhxA2pc9yX-&UC5Bx;}i}!k8+c z$SjE@f@{~w-KMOK;kYd0`l7+w7K<+1>ll{)BQwApwqsAt%EupWd&eZjM6i z(ThR`gP9MrJ%j}2ldms}do-2Ev$l(ekxCGJO(eg{WA>$Ba2yA+4XV*>Y@_Ckqv)fG z5Tycis^jXLa=YuAsz*ZgcU}1GjGN zT4wtbDdi_uc9Z+t75fN%9pK*O;RptSb#dtVCX?S(yZP&Z*k7^?7W0>XStrD|eO#V6 z*Anudh0RRdk=cTUq#C-NWl$c5Sox{0m1?Za3~EvYSh(xIIc3DJvI|UUhG^33VU0NW ziG|!L%tZ784xHM^;DauC`dC_$qrc618z-dB^DgX`MbcC8x@k4tm(qq3CTTkkLdO@U zl;SK_d7b_fxZBRa%vQ&Jo_#v=kEcg-)-=5ab}3N^@fT(9=SD2vmimlVcTpBHqb=0B zA-4urIq4b8`HssH3j)3P%hx*?0=DOy|7sTeLoB_S1%HX9U;W5mny6g>@l}+A{$#|3 z=~*A^1L)T-2{F5_RucTJsgH9sUutzEl(P7s+Q8CnuDt83Eb7gn2h`dybM{_N6F)4K zO>7@HFJO*!Z8MT?xi<&jHEY<zT{m1)~o<|Gza~CYwnTY4(S+QcnZ_|s+g_)kvL!LM9?Ip{?vV(fIsJ^vcK90pC z!W)lC8y(T7?zvqfyxp}C8wt;#ot|2vQbt5*g=rtyNnsd|2DsDX z*%)rktv%Pu=<&T*!T4siw>=<#QV4@YeB3m7WFrq{WZBxV47VbRsTM?5qS$JfiV>uf zuG!n5fe0}=sI%OqPQ@DjVM~s*pFu0G3uD!$Ne{KZto(cy-6Lx zFd3{1T6Die>_OTk;Q*1lMJA89qykp5WAC6(fe?KlkmozU4lD}QFH4ZzvXAcDlrK9w zt7FdeV}$n?V8B7$ULF-}p3wC1iy=`$Zhp&T2gc9b;?5ZB+*Cd@+atbynUFA5)m5Ht zU|g-dXO|b?$P8tgvV^mRw5KJ8Nlt+%g`nlgJY_wlCsDCt=s0J~f~AGYERJL!<%yHY z^}Heo-YYgwk|i3eLIGS`iWs+MSWxaHt>rcmlG^^|iVmnqQ8=Cgd-d?x6*24n?CB{( zUQy3EbOci-sl8_6qkwJ94o~5Sj(4FH;j*+DZbQoMFWjIidRbPp7$n8H?YlMEE32Y> z=ThaI2>{rp)=JBlj)2mVGBYRP{S3`lWl9N0kWqCpV?`Mq4UQfFY0E&`<@%!^A(DD) zKL`bl9UR;Vx!?RiR&Tcu8XKE9ygBuZ9RKUY?iX@zwfcXY*g>K@h11WfRMrYYzRD>l zQLp1L`mnctq8fRc13?%_FFekQ;)3cE`$2y%SCi+8F}$HIq+9<*OIYA9Rt+HbzEUZ);0n5}(0U1?HeSYFfta7V@Q@6pdvldsuv znMaydG@<>FHPS~?pJ87=UP_qefd861{h77*;@S(F$Ui-Dy%=Y7b_0mf){>?a7*UhQ4~NdS7bFV3aru@F zKZ*IMH&my+YVPma(;kTJ%!jor*N7@V0e@x{xhNwo2oW{*X$a99Fx25FtUWT0J#1E&&DWlqqf5$J7eY#uZ8{vGu~TjX!dQ0+JGudJTeREos3U#qjzyVv%pV6W7En`V^rvIkIMn;pcH9>k z5v+3A=%6vKHVw6-aUw;e<4&^)u2 zSVaw2Zm~bFYa?ey0I##{rH07J^QEWy`yHqjje4rRvLvo(02VypeO_!af^G7lLm*Rzz(S5O2QJ>-aK&=+#G*hV@GO8uYN#q1k6~W`B^82_da#_%n&Zs8B=L3T`h}IGsIqQZLGPIv6m%4Qb!4siGBP@&Q3 zkSyfOn)KG@(YKdtdrwZe;SN9(rV*%jSaZ%UDUbT@MXk z^On1PNY_@vIZk7Gw)wiAx#g~9(Yz^k7npYNvho30p`5J zQQluN^$s`r_C!(m_GE|Gp{|hn2`r2Bv&7!x;L0!)jRr~qD`PkPU(Y%rl(RB-(I@1# z{q@3c5d|7wl~2eO@wSpH%bMdm>5%T~ghDlS0I zj(Nw2AN`Sj`9EG+t3u-TYBZ@`0Xd-pY&}t-mT|9ZhQJm2U2JTM>DM=gLizK4!70nm zU+4VgQv@^tvUvEgsmb6p_u4-%Xbc2lE20Vaq5!gO&UXl-wAus*Dr3$+mEep%EfCAU zo%84ODtKqvG=7~UvL9=9kJFs(zw&nfGp8o$V*+2N7J3$a0P%VnVY~GvASdGF*bd}Y zFy5#(^bk9Htf0@|gGsBw* zdArJNP2|JSL~FO@%@mOcK_`V&&aJzwAPbS$>qkRf~=K(@Xu^ON#b;s2xT zE5qViwr!i>?gV$Y;7)=Q+zIaP?w;W8?(XjH?(XhRLLk9jlXLdH?0w(4?|aP;zK^Cy z&zeB&cGYq9iAm^g6KT#**!SO#bkj5Kn6|iCX5(YYS&ZK$%$24&Y^NE zjPjd!X0vKvap-A(x;rNnz$)JZ(lJG;x72!~aC2;DeN$BMP4jw#+yGf!?!sv~>C)1x zKSEH;uUIiv7z0Y);LM?Zc*PMD&SzhA7krTU1<1+-$#1k_lIMnsqptcoZ1JAaN{bNnLr7(0g1v2l5hk!eqO2nIZ77UJFajZZiwYGABPMlOaj}r4HnYUyi!~11I&c3o`c%NcYv&dZqH5=9?IOu8O~oQ3%!Q4we^mGOgBX9WFoY4N67 zTiPU10MgN9cOEA`dVaIRugU)@>k&^c7ZOrO{vW8qK>zPN@$aJ)z`95OH>w!^Gg1CU z73W5PtY~g`6)N7 z0Et8ee~a^Xs?cEpWH4oj2xpA?(dn}_{19*uP15dTCIDnb>3ogN?Wq=Ixt79VadyK} zG1rHCgEONH_8QM$RIy?K$aID5#GQ%d`xQ45ZUlaOmR9PXp#Ut%a8X@h#Qzl>ra+wG zHw8WNK5G8poBaHPD!{z~ndb5aM_uQ%_T_n^ z{u|bJ&d;`Q;`s+v@QVRbAwTc>C|r5rUx?ng7x?RA$f9(#12P4~&lm}fm|Q|OPkR}T zC!CWSpyA)(%%QTqw(Bpdh`It~DqxUt;}K348BxNBaP{{DOp${r1JaQ{uuJ@ov*ut_ z)-{6H^1bPaDSzAV^WlH&HGffs2^%1TdO``hlr+Ffb$wkS{yO zbiro-u6a5MRTep32<1&Y|DcK(aX_Y0R{;*L2RPIsyFnu}Vp=Snh;<|&gUbFr2QH2R zQ~(|*ca1{IUd42+Et9) zUp=d_IHoA zXyj%F9@OFt=C{=T52}#-2uR1^d?-2hQc&8GVC{KNl&5L4hT#Rs^vu)r?{2mA5X*Rg ze_v>*mTXcp1B~atsRHS>zy6|%M&M*H`|P#)0SsMi9z}F-{DK4>3_S=~7$l(t)F6H! z+X-hY7z(P|6s=dh!KjYpe^7<)zhuRm_5L93Kl3#K@NVv3RnmY(Vg5!Kz&ac)Q^K!N z{KXa>5P(ce;RtZO2B#lR7!r19K^V&$zwZqInR1hxKSRyFHnqd~H-C@g;82|^n*+Ay zKd}V}AX7wSrkBzv1exqJ1NkXg!cRKzuVsKtFW4~`&2}aU_wvk+M;;i`?z*mTJP?U`yU))8w2en{? z_h2eEMhtuWP3X9cyyE;NP|!XCGF@;!zC8Dt5K}LL;lgm_bn2H>0w-XSII77280njG zRX+IujWw7C9j&f6@%)2zl#>COs^^9TAf}i0tltFflD}UV1(Ujd0AA(4*j=Ln6Bk)i zLZM&)`t`1RctUUTJd^sT;KN@6rFapK=dsvj80pK z=aAkhnVyV@jpUBnlsECrW|hCT>o0+_l>x{aRq0+M66IyHx6wXLrz?B7$Kas?WUZAy zO;E%4fn`TG=<`qCB$5|Q52m~7@F3n z2kfw^F*)pvi|!1IH?`Fs-n8ovUtWq~uJ70(U2uTjsuMf*z*H#Lmu-6sGp6_%=(z%We@JN@4MpOYJz{TDN_URDmMw+%j3`!{s^xV zX{&m@=di^G3&?cRwQeb!sVu9Wsm}H9V({vr$v%CP-RZw;FVZ|f8oZu!Vh{I-8iUl< z4>!|Nnuw3Ylz>cq?jeyuRhid+6h?@2nzgiXJak8P zYFWJa6Uaqi@QgC(#E=UfFq$LNUfD!W7{hOH{=tGOCV&ibNyiHaaVcG#@)w_GKh*Vl z=rrK$r=FbZdn+q%3bN3&^7FL*vw+iZ?wfY~g9WKg0hxw$;b%YVy>@-H=E6OSXXVk} zKNIqzxs+YP!RxH|)VIrCY-^B9|?G-5vECA$DCySzHZRc9?L(hY#ExeGa zuMnuYqsN*R3b$jI8Ku~2v{#*imeF4G{NL>Lx7)NLAK=nu0(wD!j4GpPk)i$f;zea- z$RJNZ)(_hTn#c+-f#eIbjeS=c=LK$df5UXiHnGd0N;2A_ze63 zysQEQ0ZaNXz*~buy9x?sEBBI*aY}^*tocar1TVo#Iz*1xRmTv zv;W005WhZ7Z42!f(&?v z3<8P_^3n&u1pq+6K>yYZ5KsuncVOU9z<2q8O#}r60S5;Mg8~PCZ7K-h9Vi$$G6V_{ zBflIZDzUCDlYnn@HWZp)HTruJA$h&-X$ydhUiIA!Or3- z%V*`8cgj6vPkjq-p7PAtvyCIu?L!!WZPu)zbwpvG-WJm%rgTv``nfm8L)mLgTS^X- z>`HukuF9X$Bojp)L;P3SQ@XlH<(x7Sj(NNCOqF}|h?Dn>GnG-=vb)Fp&qLNm#1>8B z!%ZO)FP^k9#3V{OOXk&z_zun}4Lq`p;?-(-!5oSa{@!bV-*|}0VQ@@8i9z_TX{Ej| z0v@+VdJU*oTz74E!77z!~ zi>k(%VZ75^&TRcb8=p&Wr|LvVa5cj`WldtWyL4`?HQldV8^L3`)J&t~lm}g>y&PHG z^B{b1j_x?Y>^oOPK(cEkN~jd<@qvdt9B(1GV_)CE_SQzMgp?()CY=(^^iz%*9=h!2 zbiLsZg9CA@o1^qa(Dje{1ZeolQ=SE?j`JLb+#RR(`u22i6*z*$rgy0a>=8PIDOrD7 z4rZ-pE@2c@-Lh-rG#4>ydYs~6-nzxHLE8Gc}Qohuy$=B1?o$){hr}A#a&*>5gU2#etwl zc*lE0ShEz4ga~Qe)oa`?SUCW&j}Nu29k}d9m7JPJ*Joy#Ef15ArsraPAmzUfVo!cq zW39+eIo8-&cwpc|P=|9}oBkC$mK8~eWHH6g8g>I#lnGrK=f8-VZ3STZgv*H-(tA~) zRd!o9h%2(!-7?RU9_wQ=v9pUm8w=-aE}w>ipTpOTLTVPNbO~z_ zmU%>elp8hdV|`a(!%F!r`d)Ap3JhUZaZ*?bU5TYKz(tDyH;ltx1A!m11X2B`>I$6O zq09?l4uk3PGbr^gPD9J*>8U3KQ6bbh;3!Y#c3MPeHv=i8%pV7@e*rWsbLVAdcIP@5 z+rjvQOyW*iiJF(iy(6N7OdYa5DCVSrKboZ({J?&|ebN~>CE$Iy0r z=(S8}dypYGAy^kW2#7zT`)K?S`DCpiE41Fj*7n=b&?1(8jhCG3S5RiHgZd%e)eH}4 zSJ327rM1Qsg+b(>MzrV(3{7&9+hb=`q08}ATba!8T{MqRbK@k)rbZM zKdYfCj7vWy=h`DC?bL+|-P>y=Q>aiiWc=yya(iEQ0Hqn4!Haf6WYUt3_ow+PukbY|^Cj z{iNpHdBE({-9&i=e`|`rXCbfU3A?j);z6&%_OV(;u_a)kJX4(vDS1& zx&jXbqDc~aH~bE9D%FkIOgeX?3Yg_CBq&~jpKkLaEyJn>C!}L_kR64?o9i6+f!&)A zSuIhn59fGZ^cmBIyWalgjt1kCD0Ty0GQYC2r=Y;_u;Cl!hq}Wo!{9ErJ7H?~KSuUT zkxBY-sA!W!fQsBGUJ40~ouJUsU>MWUny2sJ(*tf*4HK61?eqPGO|qGT$+OU{2kt)O zZudsv_ziqu+@9so^H$&*^_m|E*+l2oF{ojaA85ofIdFZPQ!`{O*H2h$xEAxwh(9x; z#>F3RLy~5kbaL_V3rfC94$2(!+BPxddn)G^OdjF#jBVX2XQm8U)DWm$Xc+93!wC)j znTEZnk2SK0-p=`bMqfTqL#$!#Fh3HJfv47VU0{Kt1yj;#Ra%!cMh3;MtQg3;sQ9DS zgECH`CMEVibyBoj#%J|p5MBTRYF@xXm4U8=H;@+ZQSHt}ZqCbU($5QYjxeVX9~z?g zqkxyb!km}{H@W}n2W!w@MM-OB3aEJr-Cv;EW)u|?S+|!wjH5Y0A${>n5;p2-c9TN; z@|DeXvggpz`p@m1YG6gS)9+QZR)ZXNDlPZTgf*p%>tfgI+BYCj7fV8};XjOB7=N?l zJUM6|R1mJY@7YCes%Uk?d~MwXyoREZ}^MUSW@mKcjY#=EsTjb!xK`bkFZ=%VNi|b6Jx_ zdP{O9bM5>fCF|?#1$lJffi7u}O%Ma3%Ykq+NroaYFnueNa!bmJ!g*-|4?Z!mJxT)? zA8v(*Si!^w{cAseqxnO!D*oHJifou zI%x|rVIL=;S|hVT(^6>V<8if|X%T6H$ZlI&tnVV|@91vHG0{Bb#H541DmB6^WP@`l zTxt9D`N60g7@Dzj^+{_ec9VKq1G-StR=ZComTFxd~5bzaVaj-vP1QIm5AFNbnU7K|WI>?-2Vk`o3m11L%?$M^U%}eQ+r=rzzEQI)O zf6y4w^q@M})H>E-zLgcu9W-N+0Ab=XGbYcL?v!`B*vU#DKW@_{g@nX53j2IpZI(%% z27e9Pyfm4%oE|J;f8vOXGJ+`m(5}dxuW3@r6OP^{v;_?AdYH#cB9|b%sxwa5BYuq2{#JwWDsjlg0e{{S~L$ySfJid)17;sY@`(tGO zJ8TXIfwVfQZhxc+S!qOr!%F#zn#lWL)Agz=`|u2KQbdGc_DGU50#i=+dzp&Tp11SI*s_H*}t~*Tfn5_yd zoC$!uPVwFs_Ah`{=V7pih6nZX_QFMp8g)De+qv4E^+fOHd~gTg|C}%X2*~OfBWYYI zF&LV3Ij~^xqR^pSYGf(YMHW@M3w=^ITk3);^x-U{f7Wx3-ed6FE}U%`I+CJQlIMr(xV z<4Hqzi2ip8+Gb)Gf9EoHFnv(tnR!xf3af+)sipmzM^D6Y2L^?^c1HKvSg4AH+7TB`PPe#qpKMl?IR%PvThqsa>l1Tq6D9()jZ~w=^F2o z6Xk|X4@m9_+Vg%v!g-P6yXNN?Rg^@eBw&$e2-Xbkn%bv%_`#-%{zUm5wURC&djRUU zqGoLUC_OmkF=wHc&@omQUOeu}8xS?Lru&^`=#roEp-i_44qq(myFQ#1K%Uv8 zd(F4|RtR~z`gxZB7CNtrr7F{g^8DMK7>)!eULCQOD376#GRZVE?Ql;GJO`vL6jnkE z^sa+l-(dA>sKylkEjYM$aVysB`)%5~9|x-{+tGCN2Z!Ss!}q#;#g34=D;ZO>bZxzk zLAFTuqy+wh-d%A^yc}1SQl1zdu#)uIj3C)Gskbcp6PDBOccXgOFq(-KemJhST zI1TqAyiSeJX!w6LYgzUxXoN8cYQ)}4zuK7k=ip)WtxipvV)vRt>+ z8vmT9*I9LMzT9IT7UD}0#DpJ-I>Lz}XSx)ElBML20i`GbHOUg#`HJGp;L`&Ng;a;v zM;Lz6j%cuehEUL~fbbo%wOHq!N~ElJ_L`yz>vDr%D8GtPE;Ca>MUJxs%efVs&sujR z`IDGDxd|9N7Xz*q7h(5Tq=-Dip)@c6Ce%A5OyG5i$*22H7hJvcL7}u^leA8yNI$Oo zgFUaMpvKYCv!w~<1cyNecRZa-sRb|Z&6pWS^1>5K5w~K8JdcEP!|eR@CA}vJ0bChq z@Uku8Z>w9?#iFu_{MFQB)ne)2-wAf~yk_d?*xhjUYjDC_vTJ9?m=+sPp!P%=8ePNZ zum;xBGC)9wz}^AEvP>F{L8JKKAErT2UO5>A2?-ZUsJL_9|KU-}A;v7kSgq7JMWoRq znVz)Kw6#H$Sj4u~Zj_v(^CQ{vjAO#_ooe`kM_*ISlGz#aq?D4BDz4=K_X6iN;v?w* ztW4#w?f#&*?N3ic!3Bqwr1Aq|PxZz7%s`2nke_Ofn!*t<6~ALz-b*jtAUf0Vay5P; zY`NN4h#W_RJi+@&%Sp_rZu@EGRNrY~0<=p<_ucDF4LU)O%2JVbwFCe37;sqciK&N-M(XZPcI{slJQ$wB5BW5(}@Y9OZ1Op;IPGga{ z4#1>K9{rVjfS8yG`w*l^Kp-%FStu|FX#OZOvY0=_1pL!G5P&ZO4BTfZWF#a?ETNh% zsJ}i&@Ur~hCGb8j$Oi$JIsdl6`QMM)`D=mG_7ad)WiK6^XKyg!j=ZRqt?A!<@Zehj z$jTpJsM7~fmk)p#pf3HkCP!(LJPH#2uZ5-6Znf8i(!aK6rdj|=YspL<59@m$0cg;p zR?jp0gEd|Z0JwyL zT~*&ctm!Yx!cw964eS~4vWWR6-Rz3(ZjpL4biEQ-Z zndmenq0u%1m_OJ9S1`Z;acq@AM}r~O)ZuMiwa7P5*(ih^9q_9UX0y~PJ{X7 zVPk--A|tGrA%+6Xd6R)^x`*-M3z!(-Utb`FcggB;l_nXME7)s9#_FYVw_bf@{C(Z1 zKp$Db4-oTn+o+$>653(7%_d&SR&jl@$mS6n-3m79LyVQlXRvjBHR7bDt?pzWGxTUkBx)9I88zg+4}Y^_-wJUynsHT zDypM|6ps(w)N7eH>CJwbDQQVuNU@^1H>UT-uSr{k%_A%HCVeI!$wxn(*o7y*j0xw{ z>abGHL*A%-5{5V4zM9SwsmX&e-&mIVIY?nc?~M1~w4RAMHJ0*L(Touz4iFe6g1x%yAY|v z7q&CiCls*IH8%v-=GJ@t{r0p?kinmei}b(tCjLADL}GBz>`#3IP;hh@Xee0l*GFdk zG0cDWtHAo<58@+|49H5GVkeHh-iBgZ6^R@_+TEVm8OH!#*x5E2osg9X5lO++Fg?)( zmKKVx!63L`NI+jTu-=-);ArpbHC&i&E>1=vXx7OM`66{OW00mIph2`K{*+4C$01KD zL(=?iwS797J$mRgMZc=Gm zkda_2+8n!9V&zTHL>I)ehOipArkb9<6wj&A?f>Ft8H^_3C7afts zq8R%qI2?kE$cCJdCWuP)(Nw-cnuX@7(tI9!2hdT+@}`q0UrpA8_SQxYuLt%CZS1U# z?Q|_I4efx3^9=R$IQjHk9qEC)OCN)D|8yPEe|6n!atCey_kQd11!Ou_-m7AoZm-PR zb&Eml2&Vd??0NuQ1Z9sFUzcbWt|S8_W)m^nACYSBfNS6X-dhrLWp{b)w&Mja>J5H7 zj3z&z_3G1!rlijG7+JCHjh_KV?)7rjC?HdsAC`iVVBI6vFqeoQl4*kLF{t#<8v4Jw z-&Ny}+4*T^qimLWG`m6>kQMP;^pdn93SI8QCm5sUzB!wk6@OsKL+X2K671&jdeehVD z&J;Zn-`e5XsVqL$XPV4RzP<7jjWYt@TcuaG zjS5?TD6VI_Pn;VreGr#M_h(A%Btf_hctODUKKX?D+$UqRvnGq_ptb?CliC!!O+7@(uaG6$7NsMEA@$c3+xJNt5fsWDHND^9N-lCEkpQ-;K|}qPid7% zgqj}2_#=Ajeuqb&*`Y8I|MxzNyBy`QjGnAA2}@ z9bviF1hT`t;X4Ktz$bcuz8LRJ$*!#jI-^hSc`36`(dfE&yObxMex9t`N#tr3w#eSdFXMJj9vCF^=ZPAKe@Yxk z_~pKULqm76D83zkHNag-!yX?it}llS!U0fiL3D7rnxQyHz`e>&%XhTdzY;l0ZNv@9 z250%sHT0T+C3YqJvN4d50HwNlG4Z~H1}TgQE6B5T9wjHBQ6bakrVEfMgypB-k;WhI zXWr}e4(%$X7Pdmkp`luBr2fbfL#1@1oU4DwncZcaog!A~Q$Jo}sD+XuWU>D&?s6}> zojxG931cHX&9UZjz)!XF$%&LujHbq>#!o1i*_~PNBl>MdY-V6TxBWWmBAvEhvqyQL z<7|A8s-d?Cpnjh#*G(jU4CCsqsw7id+4JJ)Td?c6$bL|$yt>@52RNgo>PJIlGC?_b z!|}peZObN7B{v9sW~X|LAPPP~oJlfycDQcoAFYC!w}x`C26>+ce)`T~sEhR?Gyqg$ znoKDO^HDcxZhfE7t-$h8+lXE;=MWcoDN(=kqWEVh;3=Ts`{>PV-4<`E`xV?3R@8$n zQe^8-&uv?5ho*M_=sqJMXZ;huX(js;_4>vhB*a+maUlv6RVUYa{? zgxr*Kg!2Vm&^eyMDoWZo*Vzlb9JWDi3WAWZ36k}fygh{v(@||fabr%se(3IEnOkRy?XLa8eHDBwwZaZRi2Fk3f zA2~*U%-v%r7ac#+u!LBs&47#GrO>+zm-=XT&*OjX64qLCEd@|O z(0N_z$hJhl^7d1`m$yOq_*42*+J^@RoF~oRi8h-ccq|FOvb=g}miRd%MYH*HMdDv< zm*{nN?zzSX_uIA_W|9X&zn80Zk*72ZF6b=($V!IL}gY*#Mpe-`|hXQrtBwI4vD z12}B2HbCaFzIL{?GX?nc9s z*(IwQEj02}qT!Z`;CyG&iuxF^fggZ9#|6&2IMd>~@*P_DED+D7SflUSRX-o;@Y?yO zH{vFg({Rrc^bxvgtL_F$+*p!H=$vnhl%pR`)m3%7U~p;> zfyV^BaZ+kA@>x08AItNvzQPFUe76AUu`fCeY-bu-Cx~n(l@qm`l1X>nA45Bhr--{% z)3k8Zn<_8^geG4Xd8jr2!0Uv|VDXeAG2~=m6T46^oyM)myu~1fa=j(58W&|nL;)^j zLNlnZyhDsA8j`7UD5*#y=bb12HFh#4L#v`S<%~A8wFBX&bN54`00}Z808_j}2=f!j zT>AF-*Alm8Jr|bzu5CH!0(Aglf&-~++H!TBoB0A``fvxFe_sTiSm`h>_&~^ zfJ48oAJE+)x9dS-e+UNnM8a2A0Mg7`YMH?WWQ}VSm>MhP9Ln6EQ-)zNtTEA!AIiP?*4!Kh z>-AVP!SQ4jq~~`O9A(Z%ax2p94HH2kHUiL!%2V@L zUEF>Syh5!hv($u7palN8W*e=Are4>ZVcY*Y-S+2!*ZYHh0&vczP0kU~t+jf>H=7WeD&yfx` zqFw?Z;v-jgQu6?3_SLkk8$YVUg!*{*L&3%La@Ir<&TJN_D&q^#G7%G#$__41P!)hGjX$$woU83`Fp=VdO_y}z7yj&6nr>CN9zaS{v%~L_3 zClLJrZ6`@sRu<%$72Ytb0+RUq{B5AC4JD<$|eqIVucQS5jdcNYUd0=3% z2R*kFdL{*3nM5J-wTFPLxhbklb8{0W zLs=8Ca=989EL!s9zYAlLS7EI1moS$7kHR<@em6F7J3Tl=APR3&-9D=*Ub z&2oLl{9MEsym;0=qo`ET6?p5~9}VG3DUG%AGaV^=yLjt^Um%8^&lOVDNQ}*(1nz@s zP-+K$__e1VHoVvI()Ym{OBQURN)Q_obn`?!-bOA|WT^H=^$NAKXX}~DzDr>R>OduA zUBcj_v{4=S4xfx?zI>9P3b#>#wK6Xc&E|@q33F**SPuG+%P#Jd>H4w%bHBmp09x86{~EMLyBb!hgIjaPaWRh{!}JC`7{a6!gOX->*Mj7oex)3KWF+zr8LvKz|AN z->fL0K*I^pivkHWqkIBdU4Tv$&{wC+I|$H!TV0UBP>8@8`B91GbZsHfm;{*R_3V73 zW2#9=1+%*q>>*kFrmwDr6knY#K<4vZYOqVkjIq&Y0>*cIF$8K3+1>HUvJ~q&TS%)f}nwx z$;YZ>Mn7X^yAoqSa{Re2v#5|$A^brVF(XfT_uaZBcIxg{V8Od5CNtgNy-`xk6vOQ& z*0%DdZ(baBaYx`ES#WU4MgKuVZhG$c`eRk>5%xSxmQHo!rF+Zn| znwrgCtrt2>*yL6T3R!%xcT{5UD~V%?ZK*UEWh9M}VDS4AArjkQ3hIl%h7|i%eg3N3~hvuPL8%-;|@@Gc@;hUAwz`gijd#_|o0a;*-bD4!O0@mMX|5eewqw&WU( z7ZLQ+2^DZ7c>4vjr3Gu+%eCSuI;u)a(JGusRXTL7ghvV|;kMijzW~;pFTQbtN#;K8 zt$ND=6T3v~l1Orrp3^8LaLxs1+Y)1xdX#St9h!;*n_dN*wu6=4){67H19aTPRwKn& z7yr_k>!`N6+Tyrc@EGy_%Wm&YhGXW%WXuNtEw5}rq+p#-<6c1a+zMz897oHLjbWX2 z(S51urviJ%+(8pBzPSrs-!DT$4i`0`YMd+%YFM(Ims|}m0P3)*fLH?-7f0cIWid{C z+*m@=7&kKXq?u1qDh73E#Tt*TOukzpXl1*i8Ku0|ZgKaUwzIQN&bkG!{%h zit2=3$mpyQaS?OopPG%)`z%;QNuN*#urN`vh>Y@zMbbL@FI~}79_t}}@&@lO&p@QZ zhDd`iw%c8p^xu?jzp$!MRCo^#A+aI?eOp&)h{;A)Of2Ba5gTX5hJ zwF(=L<9T6jnQrwo)xKVs(;V|DC2>%_(~)x96hpZn1pkb_H%MY#bGoZ^A|x%dwjz{8 z?u-;vSAUqldpgvH$RvOoS8C5RylsSIw>4|zM^B7|`v#31OJRg6DyS1_svU$-b5lMr00%JQ-eO*g{87^9Arh_Di=7B&$7pTzKDrg2r2h*81j{i&O1wN1>0q{YOFpd-w_!E2(;OGIJVcAU8|jtBnvtDyl_B!j zhZwl?St1x(mVJqjxhY<2=?!S>W%_O9+$nuqwI`wcG}`j}v6@u!q=;Y(x$YP7GkUlj z_VTT_g5cyW$2w+vmhm4pKefm;HRhz9QBZ4lcsqO(`kiH8zY@Z%k6`*kU|MX|0{0k( z;mqV-`8{5G(=vVZz;PUfzGUhDomR8Q1bmiCe_UHC+1+KWt=>gseD}N z=yL!H%<2&@(afCv>QmDkS`6xdGS6KS%DSsnA!B0myIy+7k z3g@Pdv~1|<DZ1LF9Ze4=2EbvNr@da>VE-7|`YL?eR zbtav?DTj(kXUy9sua@N~Gm}20nNy!VaEuzY zPFZx6)Aj;bNqm3ZjO`{%5c9)WA-(4NrWv0xzH51r*T|YzBH0CO?`~#|>HFo&`-#CG5sL(Y`vd( zTUyS13A4&L%m`X=y5Mj4E5*NT=A_8!iuHEnJiH4y1{aYkqpswga2Ed&4w=cSEMls= zmrxw?E!SO1yZTEWWVc*A83%Z7_Fm~{T6Dvm5V$ygF@5F(>?DEV=(@v9@U{b${P=_( zyk+0kv_za`rc}Qx%2aZ9R_qFO`i^1)8(eact?wdy>^JIG(Dd4h2`2AWOv``~~L$e+i{*zZ{U%J%*#qamD$L4$Xv5hz(-(6iNEWoaAwK;-0g z7c-gH9p@Up09jYv$V5Iy93N@jUmRakfTs+(9B39NGJDWE#6R^O@+=R6o~(J(R$@wp zyVa$l4TjbrO8Bf${de}j2<3UHA`G9}x9AlrcTwhFOZ>l%GgrzJ&gQ9&l^lFsbig9{f)9RHGQ?MxfUWFt4yspspu@gZNAAoU zFQ_qbOi%vXczB%>Y-40@ey60Rg=#rh{3|%^1O=9rgPUtgeo?ok9NB=uFO~h?Z4B?8 z@J@D1qs1l%_(&t(K}Idw*q~Kr3zs*@QF4C z_!ePv?;pOTk{@c=<&k_9wLYOymIZ*eAUIL9?QjuKIYz-aRqw_{JStuo`E3(Ax_l#j zPr^*H{XCV(0x|H5C3cEFy%RBJpSJ|Th#{f4B0eS3uaN*XKAM?8Hc`QmO$Ot>Qa!>< zi0Qcg0}}99vx(&{W7Yh68PP`*soH#i6Ba_;s_Njr^RTzX=)>BA?Q@2q1XB#o$XZ;=0QPs8YDwu z!vj=?K})&G&>QSY!+4MVp!w!Kw}NPpq(K~a%PF`hQCPoCWPOML=lq#M1ACjDeqc$2 zt%aRRh`h5iLn!Wz^kJ)%34s0i2+rrRSL#N-%hgN7Dz=1;wFFDAf^|-JU^fumQ(fMf zTVZ?r<398QwJVqTI7M8uH<^}c=r~eZ{5z)`nH(-Y$8C}ATYf&9d>(f5?dqrb_jVc$ zPNuuUJ9*w4RO|+M=*-X8((5BiQiP3-b2Nf6#Uwsas@b}DF$_2M-YnocV4U1#-Z`Ec zMFoj28$Q+djqs5{UABf*gL2jTE#<*Iz9YkdP26l%>=G@qqR`P^%mM|(Jy zd6f!*pURv9N$q~Ek*gQP77p9n*__QLFAv%>{kqkPWWM#Hp`gM1d`jY|Cic{{L3H+b z#oiF|Wo(9fgYY+{j?J=Uf$GQr8zqFr=Ry1&y&611%lWS<8BaJ@@-0n|#d7i315#)*ZiLr0^j()BVu=Z6gQD?n}o z<(>(hy}t|5aOmOF?Ea`Od-1S~($i-`sv-5Aw4ZIkMFuHfH>5Z%(C8n!S&RjkP z!dZTz;S+ZbY?A$)-7MKyhtMr5#uJ+!LMz20BV;XXe$}Jd+jUh{APk0&bm}K^&xzlt z@ypG0=PdAk#&aiXnI-pr2C+_I(@!ni1d;pO4n$mvC3+DSa>PcUBmMAr@HkEmyMwZY ze;I_nqh6q=e4Hf8VE*coXnaeSyVpo%glV?Z3n0{O+McD!+FZuy^oE8>j>U>Aw^O)@ zKph>jy23QO<@_Z7=5R0SQ!3>zfBDa#L02aYeQs-82Oy$3q%LKL*_i77_PZ!+Y}H#B z5d?@J&(}1j*5Ycq)>0=Dr zX(D)=nsv+#Y|GQfnO&S}%LCHNrT7QG&?qw`L0_aoGn8k1iXsj%>BsOQ!mOS+s!tAe zY}|^xkOH+qx0;C#7z*aS_`HDatY$T6f&<@^AC2xH=ElF}lLv+Y1apyq;{ z&Az$uHxA*j9WTA?VK)LUsnsHm;-bJg9`!Y5*_m^&IeKHDVpdn zLxqbe{aYfnWTwATpOsfTh_i=}c6Y`C4q`9S_E6ZC1r!v-v{j1hhpCGYT`{O4qzR%p z2WIc{7LkcIuSCro)I#V|bSDrm3dRaiW&Fo)WgL<(8X^^Q>YdQZ@rWxE=E_!zPAw)u z2Nu5o%hQ=OyVT>wwln~yMN=ltBPE1Ukyf?hh-J*x0?5rdT_dbSHkH|QXo*rg$8tWqIU~URDMPCuHv`Fow2mjjv^ylRom~<_PEvUD!3L`-Ks&Tp98XE46>vN2I<*k5wQP#za&g>Dgr#qK zubKIWC3ho~)kb_me|dvHiyDs3MS{Gk=8!P*<~sO5k6xXN5;J4`Se<{(3n1Jc_oKiB z3FJopEKkfWzMvitaBy3HCs^lZmyO;W6T1tMqIOh?mAU4X^Q|dm-nA7$5EP(f%W;}M ziJy{`GPzYz22t9#lqfwV4y2T5#!~bY)sU;js<1R&dgZ zf8tj@jh5=D+zsCgK<#K|e`u(+9fRH*DdzL2Td68$?C?7H2&zq@le12ICwOBc$CgAR zcOEIBYw0qk5xYgP!7v0fs}u?FsSOKpzn7OuLP%g&EbtaAa0NGvk+%B|wb`4kc6Ut= zSkb1E(d4<5r>)7LG1bK92M5lU4v}cf)(+tv*r4q!+}{yZh%`<*7RcPmZfkH!CT-H{ zw>wPlgtMUXoy4%S&(TX>6i>pXxaSp3{G5J24k+Ttk3zCt%I5g(1!KiC6%0HYi1Wac zl)iP<(wM$T_!N=95NM_^6IB0EZg9H5(Eylh9cQ`Ze&rQCTp))7c zsXsd29dmqDo094M9DDWX-0|aBNxS!Y^(H3hIrAxrlSdFeC52l|Lkbdafw_vQsV>~3 zyDYpF2DWshf6&A&EE&{|7^ z!d-1Ny38+iB9S$jL7#x6aRypVwOO;!ffj)n$j@Kh(Rq%mGXsUs5>fBg2zU9TPPvgx4yvL<_auM%w^?|Pn#sqiIF#Dg1t42)mS*GMO9xMRy5A4j0=;rBs*R5pr&g~$0z?! zBlrEzhN6IRJhdga2(@aIiqUGTh#7M1idEVQLR&?R8Z}OY22CinN+edzULjhvsZk}A zYV4Xp4x#oq_Np3nIOjaixzBU&Z})F_fBb%)_u45y^$*6V7FyWNPI_}TUT4=Zc@#NK z@9e^CkwY4f6tc&k_%HK$r?o+LH7aZB4zK3j^!mux8A`1ZS%gd4Uf0y*I#PCTc{-oz zQl%PrAXI46iRK5?zG_dB9Br1TTHfwDDs3ZS-UwSNLaq*?K2S zQozn*o1e=bz+XEzF+IT7Zdku@+w#Uom5e;e(K@#pkfOCYpY&04edV>rymq;5qjtyy zN5uP2=4Zf!UdbVbFPLt~ZZNK2q3EuYLXXzRD&Qi-M)Vc`buIPnvxx}e& zj|^6%eFTk2&L(~oN9c~_k^c{z)`+?8A=*Z6lDO7yK-@kb43Vmm^C*_lGa|_C+-kHP zO3TnX?r9Dy57SeN*d+UFtx8**0{EvX5m~(io>V)^!3Hf}HCKWiHNZUJyrPYnv{?E| z6?eSXKR1VGxlniKYsJ|e0RVoPgyJ)X+9EUvsYBBxlZ0X;8j&VD1zHuhzu$VB9`(4z zGd!yn(4mJr?gKV+xvo*mn%8^K*D)+$DH~br!%$X0$}iKjMISwq0BYSDmby{VE6o(p zktJ{XUbg{Z%&w03YIGP5YuIB+r&Y0Ep zleyh?HaSC`%yMBFsk!N(nre?)tpS~vTwWP=CgZ_F~5ck zx&r|v2w<+vvoU_a;_~w9!;;^Q&!ij+1nz!jd8Z&p$UD+{UBbsmK<9H=w+;}65*-P__A-VAjF>CT8rKrfoBtm_p@PWa65aV z_M`an+b*?vxMC8;Fok%B_$64=Sn&WakWVPA>v)a+~R(heZUo0~joj;^+p4E zLU96}?6mBvZXw`sZP8cBwhm<1Gmy+q;nl+gU^uLThJZNbEr~-I)*z%4J4%m%Pz?t6 zvf+4f(!7wEUrxvVr#OyE{h!4#oW*_WE=dI!!-1c6TLmga7&l3~3*KvuEIVSiWa0ys z32e70-@oseWC}tXgx|47$X6}wbE%CBd8xs|?4#=Fj1Sa`08nLE>( zgl=78)y&==LrT3c{C+xllKVF)`-dg86Iwz&qEq*oDTqIz-oli+ODscfnyBSmPV7 z(p~bebk+x0iN*ea-vsolNwKs~9&v^%%od4R^f+(v7Y!Nz90kTc9)?YE$Ng~_WWIIj z>NAeTk~lD&1wW(*2s|KkJL5m4fmfZ_Tc%No+@HhGROKbc?KK^41YNmJqFTrMK7j{Dm&)zro z&_aboBja<&y=)po=9@ pu+Q%#q*G1mdTB+uo{q~Z=S}_er}M`xcI*x&B&wsh^sgVl{{$hJhe!Yb diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index 3c55cb4..daca217 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -1,25 +1,20 @@ -addFilter(".*glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") -addFilter(".*glibc.* incorrect-fsf-address") -# False positive - glibc implements gethostbyname -addFilter(".*binary-or-shlib-calls-gethostbyname") +# glibc-profile is a devel package +addFilter("glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") +# glibc is not a devel package +addFilter("glibc\\..* non-devel-file-in-devel-package") +# getent deliberately uses gethostbyname +addFilter("binary-or-shlib-calls-gethostbyname /usr/bin/getent") # We do need to keep the symtab (see comments in glibc.spec), so this is intented: -addFilter(".*unstripped-binary-or-object.*") -# The duplication is intented: -addFilter(".*files-duplicate /usr/lib64/libbsd-compat.a /usr/lib.*/libg.a") +addFilter("unstripped-binary-or-object") # ld.so is special: -addFilter(".*shared-lib-without-dependency-information /lib.*/ld-2.*.so") +addFilter("shared-lib-without-dependency-information /lib.*/ld-2.*\\.so") # Handled via glibc_post_upgrade: -addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post") -# Do not require permissions, this will lead to a cycle (bnc#700925): -addFilter("glibc\..*: permissions-missing-requires") +addFilter("postin-without-ldconfig") # We will not rename glibc to follow the shlib policy addFilter("shlib-policy-missing-suffix") -# The dynamic linker and libnsl call exit - this is fine -addFilter(".*shared-lib-calls-exit.*") +# libpthread and libnsl call exit - this is fine +addFilter("shared-lib-calls-exit") # The man-pages package contains a number of man pages for programs that come # with glibc, therefore do not warn about them -addFilter(".*glibc.*no-manual-page-for-binary getent") -addFilter(".*glibc.*no-manual-page-for-binary iconv") -addFilter(".*glibc.*no-manual-page-for-binary ldd") -addFilter(".*glibc.*no-manual-page-for-binary ldconfig") -addFilter(".*nscd.*no-manual-page-for-binary nscd") +addFilter("glibc.*no-manual-page-for-binary (getent|iconv|ldd|ldconfig|locale)") +addFilter("nscd.*no-manual-page-for-binary nscd") diff --git a/glibc.spec b/glibc.spec index 60003f1..4421561 100644 --- a/glibc.spec +++ b/glibc.spec @@ -16,27 +16,41 @@ # -%define build_snapshot 0 - -# PLEASE run pre_checkin.sh in this directory before submitting -# this package. Otherwise the .spec and .changes for glibc-testsuite -# and glibc-utils aren't updated. - # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc %bcond_with fast_build %define crypt_bf_version 1.3 +%define build_snapshot 0 + +# INCLUDE glibc$flavor.spec.in +%ifarch i686 +%define flavor i686 +%else +%define flavor %nil +%endif Name: glibc -%define normal_build ("%{name}" == "glibc") -%define utils_build ("%{name}" == "glibc-utils") -%define testsuite_build ("%{name}" == "glibc-testsuite") -# UTILS-SUMMARY-BEGIN Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries -# UTILS-SUMMARY-END +# END INCLUDE glibc$flavor.spec.in + +%bcond_with all +%define build_main 1 +%define build_utils %{with all} +%define build_testsuite %{with all} +%if "%flavor" == "utils" +%define build_main 0 +%define build_utils 1 +%define build_testsuite 0 +%endif +%if "%flavor" == "testsuite" +%define build_main 0 +%define build_utils 0 +%define build_testsuite 1 +%endif + BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -45,16 +59,21 @@ BuildRequires: makeinfo BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz -%if %{testsuite_build} +%if %{build_testsuite} BuildRequires: gcc-c++ BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel BuildRequires: python-pexpect %endif -%if %{utils_build} +%if %{build_utils} BuildRequires: gd-devel %endif +%if "%flavor" == "i686" +ExclusiveArch: i586 i686 +BuildArch: i686 +%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic +%endif %define __filter_GLIBC_PRIVATE 1 %ifarch i686 @@ -64,7 +83,7 @@ BuildRequires: gd-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} || %{utils_build} +%if %{with fast_build} || %{build_utils} && %{without all} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -76,7 +95,7 @@ BuildRequires: gd-devel %endif %endif -%define build_variants %{normal_build} +%define build_variants %{build_main} %define disable_assert 0 %define enable_stackguard_randomization 1 @@ -103,14 +122,23 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -# 3.0 is the SLES 11 SP3 kernel -# 3.1 is the openSUSE 12.1 kernel -%define enablekernel 3.0 +# glibc requires at least kernel 3.2 +%define enablekernel 3.2 +# some architectures need a newer kernel +%ifarch ppc64le +%define enablekernel 3.10 +%endif +%ifarch aarch64 +%define enablekernel 3.7 +%endif +%ifarch ia64 +%define enablekernel 3.2.18 +%endif -Version: 2.25 +Version: 2.26 Release: 0 %if !%{build_snapshot} -%define git_id db0242e30234 +%define git_id 1c9a5c270d8b %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -118,9 +146,11 @@ Release: 0 %endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%else +Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 @@ -138,7 +168,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version} # The sign key uses MD5 which is no longer accepted by gpg #Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign -%if %{normal_build} +%if %{build_main} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -160,8 +190,8 @@ Provides: ld-linux.so.3(GLIBC_2.4) Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) -%endif # %{normal_build} -%if %{utils_build} +%endif +%if %{build_utils} Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -207,8 +237,6 @@ Patch8: glibc-nscd.conf.patch Patch9: glibc-nodate.patch # PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch11: glibc-testsuite.patch # PATCH-FIX-OPENSUSE handle old glibc binaries Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de @@ -217,16 +245,16 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) -Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales -Patch100: glibc-2.3.locales.diff.bz2 +Patch100: add-locales.patch # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -239,10 +267,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: ### Network related patches -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch300: glibc-resolv-reload.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch301: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -251,12 +275,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) -Patch1000: tunables-bigendian.patch -# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) -Patch1001: i686-memchr-sse.patch -# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) -Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -281,10 +299,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch Patch3000: manpages.patch %description +%if %build_main The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math library, and the POSIX thread library. A system is not functional without these libraries. +%endif +%if %build_utils +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. + +If you are unsure if you need this, do not install this package. +%endif +%if %build_testsuite +This package contains the testsuite results from the GNU C Library. +%endif %package info Summary: Info Files for the GNU C Library @@ -408,7 +438,7 @@ which is highly discouraged. %package extra Summary: Extra binaries from GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: glibc = %{version} %description extra @@ -457,14 +487,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch18 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 @@ -472,15 +501,9 @@ rm nscd/s-stamp %patch104 -p1 %patch105 -p1 -%patch300 -p1 -%patch301 -p1 %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -636,7 +659,7 @@ configure_and_build_glibc() { $profile $elision \ "$@" \ --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -652,7 +675,8 @@ configure_and_build_glibc() { --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc \ + --enable-bind-now \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -751,7 +775,7 @@ popd ####################################################################### %check -%if %{testsuite_build} +%if %{build_testsuite} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 # Increase timeout @@ -793,7 +817,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if %{normal_build} +%if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -994,6 +1018,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf +%if !%{build_utils} # Remove unwanted files (packaged in glibc-utils) rm -f %{buildroot}/%{_lib}/libmemusage* rm -f %{buildroot}/%{_lib}/libpcprofile* @@ -1011,6 +1036,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 +%endif # !utils # LSB %ifarch %ix86 @@ -1032,9 +1058,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 %endif -%endif # %{normal_build} +%else # !main -%if %{utils_build} +%if %{build_utils} make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ subdirs='malloc debug elf' @@ -1047,7 +1073,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} -%endif # %{utils_build} +%endif # utils + +%endif # !main ####################################################################### ### @@ -1055,13 +1083,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ### ####################################################################### -%if %{normal_build} %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig -%endif # %{normal_build} - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -1086,7 +1110,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /run/nscd +%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1098,14 +1122,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%if %{normal_build} %files -####################################################################### -### -### FILES -### -####################################################################### - +%if %{build_main} # glibc %defattr(-,root,root) %doc LICENSES @@ -1381,10 +1399,9 @@ exit 0 /var/lib/misc/Makefile %endif # !i686 -%endif # %{normal_build} +%endif # main -%if %{utils_build} -%files +%if %{build_utils} %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so @@ -1397,6 +1414,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%endif # %{utils_build} +%endif # utils %changelog diff --git a/i686-memchr-sse.patch b/i686-memchr-sse.patch deleted file mode 100644 index a201f51..0000000 --- a/i686-memchr-sse.patch +++ /dev/null @@ -1,45 +0,0 @@ -2017-03-29 Adhemerval Zanella - - [BZ# 21182] - * string/test-memchr.c (do_test): Add BZ#21182 checks for address - near end of a page. - * sysdeps/i386/i686/multiarch/memchr-sse2.S (__memchr): Fix - overflow calculation. - -Index: glibc-2.25/string/test-memchr.c -=================================================================== ---- glibc-2.25.orig/string/test-memchr.c -+++ glibc-2.25/string/test-memchr.c -@@ -208,6 +208,12 @@ test_main (void) - do_test (0, i, i + 1, i + 1, 0); - } - -+ /* BZ#21182 - wrong overflow calculation for i686 implementation -+ with address near end of the page. */ -+ for (i = 2; i < 16; ++i) -+ /* page_size is in fact getpagesize() * 2. */ -+ do_test (page_size / 2 - i, i, i, 1, 0x9B); -+ - do_random_tests (); - return ret; - } -Index: glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S -=================================================================== ---- glibc-2.25.orig/sysdeps/i386/i686/multiarch/memchr-sse2.S -+++ glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S -@@ -117,7 +117,6 @@ L(crosscache): - - # ifndef USE_AS_RAWMEMCHR - jnz L(match_case2_prolog1) -- lea -16(%edx), %edx - /* Calculate the last acceptable address and check for possible - addition overflow by using satured math: - edx = ecx + edx -@@ -125,6 +124,7 @@ L(crosscache): - add %ecx, %edx - sbb %eax, %eax - or %eax, %edx -+ sub $16, %edx - jbe L(return_null) - lea 16(%edi), %edi - # else diff --git a/pre_checkin.sh b/pre_checkin.sh index 121f4b1..4dc225c 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -1,29 +1,8 @@ -#!/bin/bash -# This script is called automatically during autobuild checkin. -sed -e 's/^Name:.*glibc/&-testsuite/' glibc.spec > glibc-testsuite.spec -cp glibc.changes glibc-testsuite.changes -awk '/^Name:/{ $0 = $0 "-utils" } -/UTILS-SUMMARY-BEGIN/ { - ignore = 1 - print "\ -Summary: Development utilities from GNU C library\n\ -License: LGPL-2.1+\n\ -Group: Development/Languages/C and C++" -} -/UTILS-SUMMARY-END/ { ignore = 0; next } -/^%description$/ { - ignore = 1 - print "\ -%description\n\ -The glibc-utils package contains mtrace, a memory leak tracer and\n\ -xtrace, a function call tracer which can be helpful during program\n\ -debugging.\n\ -\n\ -If you are unsure if you need this, don'\''t install this package.\n" -} -/^%package/ { ignore = 0} -!ignore { print }' glibc.spec > glibc-utils.spec -cp glibc.changes glibc-utils.changes - -osc service localrun format_spec_file - +#!/bin/sh +for flavor in utils testsuite; do + sed -e "/^# INCLUDE /r glibc-$flavor.spec.in" \ + -e "/^# INCLUDE /,/^# END INCLUDE /d" \ + glibc.spec > glibc-$flavor.spec + cp glibc.changes glibc-$flavor.changes +done +osc service lr format_spec_file diff --git a/s390-elision-enable-envvar.patch b/s390-elision-enable-envvar.patch new file mode 100644 index 0000000..e83b280 --- /dev/null +++ b/s390-elision-enable-envvar.patch @@ -0,0 +1,31 @@ +Index: glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c +=================================================================== +--- glibc-2.25.orig/sysdeps/unix/sysv/linux/s390/elision-conf.c ++++ glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + /* Reasonable initial tuning values, may be revised in the future. + This is a conservative initial value. */ +@@ -64,7 +65,17 @@ elision_init (int argc __attribute__ ((u + When false elision is never attempted. */ + int elision_available = (GLRO (dl_hwcap) & HWCAP_S390_TE) ? 1 : 0; + +- __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; ++ /* Scan the environment and conditionally enable TLE. */ ++ if (elision_available != 0 && __libc_enable_secure == 0) ++ { ++ for ( ; *environ != NULL; environ++) ++ if (**environ == 'G' ++ && strcmp (*environ, "GLIBC_ELISION_ENABLE=yes") == 0) ++ { ++ __pthread_force_elision = elision_available; ++ break; ++ } ++ } + } + + #ifdef SHARED diff --git a/sunrpc-use-after-free.patch b/sunrpc-use-after-free.patch deleted file mode 100644 index b1ddd22..0000000 --- a/sunrpc-use-after-free.patch +++ /dev/null @@ -1,111 +0,0 @@ -2017-02-27 Florian Weimer - - [BZ #21115] - * sunrpc/clnt_udp.c (clntudp_call): Free ancillary data later. - * sunrpc/Makefile (tests): Add tst-udp-error. - (tst-udp-error): Link against libc.so explicitly. - * sunrpc/tst-udp-error: New file. - -Index: glibc-2.25/sunrpc/Makefile -=================================================================== ---- glibc-2.25.orig/sunrpc/Makefile -+++ glibc-2.25/sunrpc/Makefile -@@ -93,7 +93,7 @@ rpcgen-objs = rpc_main.o rpc_hout.o rpc_ - extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs)) - others += rpcgen - --tests = tst-xdrmem tst-xdrmem2 test-rpcent -+tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error - xtests := tst-getmyaddr - - ifeq ($(have-thread-library),yes) -@@ -155,6 +155,7 @@ BUILD_CPPFLAGS += $(sunrpc-CPPFLAGS) - $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so -+$(objpfx)tst-udp-error: $(common-objpfx)linkobj/libc.so - - $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) - -Index: glibc-2.25/sunrpc/clnt_udp.c -=================================================================== ---- glibc-2.25.orig/sunrpc/clnt_udp.c -+++ glibc-2.25/sunrpc/clnt_udp.c -@@ -424,9 +424,9 @@ send_again: - cmsg = CMSG_NXTHDR (&msg, cmsg)) - if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR) - { -- free (cbuf); - e = (struct sock_extended_err *) CMSG_DATA(cmsg); - cu->cu_error.re_errno = e->ee_errno; -+ free (cbuf); - return (cu->cu_error.re_status = RPC_CANTRECV); - } - free (cbuf); -Index: glibc-2.25/sunrpc/tst-udp-error.c -=================================================================== ---- /dev/null -+++ glibc-2.25/sunrpc/tst-udp-error.c -@@ -0,0 +1,62 @@ -+/* Check for use-after-free in clntudp_call (bug 21115). -+ Copyright (C) 2017 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ support_become_root (); -+ support_enter_network_namespace (); -+ -+ /* Obtain a likely-unused port number. */ -+ struct sockaddr_in sin = -+ { -+ .sin_family = AF_INET, -+ .sin_addr.s_addr = htonl (INADDR_LOOPBACK), -+ }; -+ { -+ int fd = xsocket (AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); -+ xbind (fd, (struct sockaddr *) &sin, sizeof (sin)); -+ socklen_t sinlen = sizeof (sin); -+ xgetsockname (fd, (struct sockaddr *) &sin, &sinlen); -+ /* Close the socket, so that we will receive an error below. */ -+ close (fd); -+ } -+ -+ int sock = RPC_ANYSOCK; -+ CLIENT *clnt = clntudp_create -+ (&sin, 1, 2, (struct timeval) { 1, 0 }, &sock); -+ TEST_VERIFY_EXIT (clnt != NULL); -+ TEST_VERIFY (clnt_call (clnt, 3, -+ (xdrproc_t) xdr_void, NULL, -+ (xdrproc_t) xdr_void, NULL, -+ ((struct timeval) { 3, 0 })) -+ == RPC_CANTRECV); -+ clnt_destroy (clnt); -+ -+ return 0; -+} -+ -+#include diff --git a/tunables-bigendian.patch b/tunables-bigendian.patch deleted file mode 100644 index f679c20..0000000 --- a/tunables-bigendian.patch +++ /dev/null @@ -1,73 +0,0 @@ -2017-02-08 Siddhesh Poyarekar - - [BZ #21109] - * elf/dl-tunable-types.h (tunable_callback_t): Accept - tunable_val_t as argument. - * elf/dl-tunables.c (__tunable_set_val): Add comment. - * malloc/arena.c (set_mallopt_check): Take tunable_val_t as - argument. - (DL_TUNABLE_CALLBACK_FNDECL): Likewise. - -Index: glibc-2.25/elf/dl-tunable-types.h -=================================================================== ---- glibc-2.25.orig/elf/dl-tunable-types.h -+++ glibc-2.25/elf/dl-tunable-types.h -@@ -21,8 +21,6 @@ - # define _TUNABLE_TYPES_H_ - #include - --typedef void (*tunable_callback_t) (void *); -- - typedef enum - { - TUNABLE_TYPE_INT_32, -@@ -43,6 +41,8 @@ typedef union - const char *strval; - } tunable_val_t; - -+typedef void (*tunable_callback_t) (tunable_val_t *); -+ - /* Security level for tunables. This decides what to do with individual - tunables for AT_SECURE binaries. */ - typedef enum -Index: glibc-2.25/elf/dl-tunables.c -=================================================================== ---- glibc-2.25.orig/elf/dl-tunables.c -+++ glibc-2.25/elf/dl-tunables.c -@@ -455,6 +455,8 @@ __tunable_set_val (tunable_id_t id, void - if (cur->strval == NULL) - return; - -+ /* Caller does not need the value, just call the callback with our tunable -+ value. */ - if (valp == NULL) - goto cb; - -Index: glibc-2.25/malloc/arena.c -=================================================================== ---- glibc-2.25.orig/malloc/arena.c -+++ glibc-2.25/malloc/arena.c -@@ -212,9 +212,9 @@ __malloc_fork_unlock_child (void) - #if HAVE_TUNABLES - static inline int do_set_mallopt_check (int32_t value); - void --DL_TUNABLE_CALLBACK (set_mallopt_check) (void *valp) -+DL_TUNABLE_CALLBACK (set_mallopt_check) (tunable_val_t *valp) - { -- int32_t value = *(int32_t *) valp; -+ int32_t value = (int32_t) valp->numval; - do_set_mallopt_check (value); - if (check_action != 0) - __malloc_check_init (); -@@ -223,9 +223,9 @@ DL_TUNABLE_CALLBACK (set_mallopt_check) - # define DL_TUNABLE_CALLBACK_FNDECL(__name, __type) \ - static inline int do_ ## __name (__type value); \ - void \ --DL_TUNABLE_CALLBACK (__name) (void *valp) \ -+DL_TUNABLE_CALLBACK (__name) (tunable_val_t *valp) \ - { \ -- __type value = *(__type *) valp; \ -+ __type value = (__type) (valp)->numval; \ - do_ ## __name (value); \ - } - From a69cd3114c6f81dd08112241c2a51cc4cab14524b61f778015c29e6aa716f0b9 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 4 Sep 2017 10:16:06 +0000 Subject: [PATCH 202/204] Accepting request 519282 from Base:System - math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) - Add iconvconfig to baselibs.conf (bsc#1051042) - resolv-context-leak.patch: Fix leaks of resolver contexts - dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) - libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041) (forwarded request 519281 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/519282 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=211 --- baselibs.conf | 1 + dl-runtime-resolve-opt-avx512f.patch | 26 ++++++ glibc-testsuite.changes | 24 ++++- glibc-testsuite.spec | 34 ++++---- glibc-utils.changes | 24 ++++- glibc-utils.spec | 34 ++++---- glibc.changes | 24 ++++- glibc.spec | 34 ++++---- libpthread-compat-wrappers.patch | 120 +++++++++++++++++++++++++ math-c++-compat.patch | 126 +++++++++++++++++++++++++++ resolv-context-leak.patch | 53 +++++++++++ 11 files changed, 437 insertions(+), 63 deletions(-) create mode 100644 dl-runtime-resolve-opt-avx512f.patch create mode 100644 libpthread-compat-wrappers.patch create mode 100644 math-c++-compat.patch create mode 100644 resolv-context-leak.patch diff --git a/baselibs.conf b/baselibs.conf index b89df19..0af8f27 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -7,6 +7,7 @@ glibc targettype ia32 "/lib/ld-linux.so.2 -> /lib/ld-linux.so.2" prereq -glibc-x86 +/usr/lib/getconf/[^g] + +/usr/sbin/iconvconfig -> /usr/sbin/iconvconfig- glibc-locale arch i586 block! +/usr/lib(64)?/gconv/gconv-modules diff --git a/dl-runtime-resolve-opt-avx512f.patch b/dl-runtime-resolve-opt-avx512f.patch new file mode 100644 index 0000000..d3bc303 --- /dev/null +++ b/dl-runtime-resolve-opt-avx512f.patch @@ -0,0 +1,26 @@ +2017-08-06 H.J. Lu + + [BZ #21871] + * sysdeps/x86/cpu-features.c (init_cpu_features): Set + bit_arch_Use_dl_runtime_resolve_opt only with AVX512F. + +Index: glibc-2.26/sysdeps/x86/cpu-features.c +=================================================================== +--- glibc-2.26.orig/sysdeps/x86/cpu-features.c ++++ glibc-2.26/sysdeps/x86/cpu-features.c +@@ -244,10 +244,13 @@ init_cpu_features (struct cpu_features * + |= bit_arch_Prefer_No_AVX512; + + /* To avoid SSE transition penalty, use _dl_runtime_resolve_slow. +- If XGETBV suports ECX == 1, use _dl_runtime_resolve_opt. */ ++ If XGETBV suports ECX == 1, use _dl_runtime_resolve_opt. ++ Use _dl_runtime_resolve_opt only with AVX512F since it is ++ slower than _dl_runtime_resolve_slow with AVX. */ + cpu_features->feature[index_arch_Use_dl_runtime_resolve_slow] + |= bit_arch_Use_dl_runtime_resolve_slow; +- if (cpu_features->max_cpuid >= 0xd) ++ if (CPU_FEATURES_ARCH_P (cpu_features, AVX512F_Usable) ++ && cpu_features->max_cpuid >= 0xd) + { + unsigned int eax; + diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 0a38171..f8c1b5d 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de + +- math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ + mode (BZ #21930) + +------------------------------------------------------------------- +Thu Aug 17 12:46:46 UTC 2017 - schwab@suse.de + +- Add iconvconfig to baselibs.conf (bsc#1051042) + +------------------------------------------------------------------- +Thu Aug 10 08:05:15 UTC 2017 - schwab@suse.de + +- resolv-context-leak.patch: Fix leaks of resolver contexts +- dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only + with AVX512F (BZ #21871) +- libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp + or system in libpthread (BZ #21041) + ------------------------------------------------------------------- Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de @@ -760,7 +780,7 @@ Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed - * CVE-2015-1472 CVE-2015-1473 CVE-2104-7817 CVE-2012-3406 CVE-2014-9402 + * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch @@ -995,7 +1015,7 @@ Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de - resolv-dont-ignore-second-answer.patch: don't ignore second answer from nameserver if the first one was empty (bnc#767266, BZ #13651) - ldd-system-interp.patch: Never try to execute the file in ldd - (bnc#677787, BZ #16750) + (CVE-2009-5064, bnc#677787, BZ #16750) ------------------------------------------------------------------- Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index fe38b5a..54d1bef 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -269,6 +269,14 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix leaks of resolver contexts +Patch1000: resolv-context-leak.patch +# PATCH-FIX-UPSTREAM Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) +Patch1001: dl-runtime-resolve-opt-avx512f.patch +# PATCH-FIX-UPSTREAM Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041) +Patch1002: libpthread-compat-wrappers.patch +# PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) +Patch1003: math-c++-compat.patch ### # Patches awaiting upstream approval @@ -498,6 +506,11 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -528,12 +541,6 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch -####################################################################### -### -### BUILD -### -####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -804,12 +811,6 @@ make -C cc-base -k check || { make %{?_smp_mflags} -C cc-base check-abi %endif -####################################################################### -### -### INSTALL -### -####################################################################### - %install %if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, @@ -1071,12 +1072,6 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} %endif # !main -####################################################################### -### -### ... -### -####################################################################### - %post -p %{_sbindir}/glibc_post_upgrade %postun -p /sbin/ldconfig @@ -1116,8 +1111,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%files %if %{build_main} +%files # glibc %defattr(-,root,root) %doc LICENSES @@ -1396,6 +1391,7 @@ exit 0 %endif # main %if %{build_utils} +%files %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so diff --git a/glibc-utils.changes b/glibc-utils.changes index 0a38171..f8c1b5d 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de + +- math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ + mode (BZ #21930) + +------------------------------------------------------------------- +Thu Aug 17 12:46:46 UTC 2017 - schwab@suse.de + +- Add iconvconfig to baselibs.conf (bsc#1051042) + +------------------------------------------------------------------- +Thu Aug 10 08:05:15 UTC 2017 - schwab@suse.de + +- resolv-context-leak.patch: Fix leaks of resolver contexts +- dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only + with AVX512F (BZ #21871) +- libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp + or system in libpthread (BZ #21041) + ------------------------------------------------------------------- Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de @@ -760,7 +780,7 @@ Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed - * CVE-2015-1472 CVE-2015-1473 CVE-2104-7817 CVE-2012-3406 CVE-2014-9402 + * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch @@ -995,7 +1015,7 @@ Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de - resolv-dont-ignore-second-answer.patch: don't ignore second answer from nameserver if the first one was empty (bnc#767266, BZ #13651) - ldd-system-interp.patch: Never try to execute the file in ldd - (bnc#677787, BZ #16750) + (CVE-2009-5064, bnc#677787, BZ #16750) ------------------------------------------------------------------- Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index cc72262..a01e197 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -269,6 +269,14 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix leaks of resolver contexts +Patch1000: resolv-context-leak.patch +# PATCH-FIX-UPSTREAM Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) +Patch1001: dl-runtime-resolve-opt-avx512f.patch +# PATCH-FIX-UPSTREAM Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041) +Patch1002: libpthread-compat-wrappers.patch +# PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) +Patch1003: math-c++-compat.patch ### # Patches awaiting upstream approval @@ -498,6 +506,11 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -528,12 +541,6 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch -####################################################################### -### -### BUILD -### -####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -804,12 +811,6 @@ make -C cc-base -k check || { make %{?_smp_mflags} -C cc-base check-abi %endif -####################################################################### -### -### INSTALL -### -####################################################################### - %install %if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, @@ -1071,12 +1072,6 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} %endif # !main -####################################################################### -### -### ... -### -####################################################################### - %post -p %{_sbindir}/glibc_post_upgrade %postun -p /sbin/ldconfig @@ -1116,8 +1111,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%files %if %{build_main} +%files # glibc %defattr(-,root,root) %doc LICENSES @@ -1396,6 +1391,7 @@ exit 0 %endif # main %if %{build_utils} +%files %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so diff --git a/glibc.changes b/glibc.changes index 0a38171..f8c1b5d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de + +- math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ + mode (BZ #21930) + +------------------------------------------------------------------- +Thu Aug 17 12:46:46 UTC 2017 - schwab@suse.de + +- Add iconvconfig to baselibs.conf (bsc#1051042) + +------------------------------------------------------------------- +Thu Aug 10 08:05:15 UTC 2017 - schwab@suse.de + +- resolv-context-leak.patch: Fix leaks of resolver contexts +- dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only + with AVX512F (BZ #21871) +- libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp + or system in libpthread (BZ #21041) + ------------------------------------------------------------------- Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de @@ -760,7 +780,7 @@ Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed - * CVE-2015-1472 CVE-2015-1473 CVE-2104-7817 CVE-2012-3406 CVE-2014-9402 + * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch @@ -995,7 +1015,7 @@ Tue Mar 25 09:26:44 UTC 2014 - schwab@suse.de - resolv-dont-ignore-second-answer.patch: don't ignore second answer from nameserver if the first one was empty (bnc#767266, BZ #13651) - ldd-system-interp.patch: Never try to execute the file in ldd - (bnc#677787, BZ #16750) + (CVE-2009-5064, bnc#677787, BZ #16750) ------------------------------------------------------------------- Mon Mar 24 12:26:50 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 4421561..b0dbb5d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -275,6 +275,14 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix leaks of resolver contexts +Patch1000: resolv-context-leak.patch +# PATCH-FIX-UPSTREAM Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) +Patch1001: dl-runtime-resolve-opt-avx512f.patch +# PATCH-FIX-UPSTREAM Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041) +Patch1002: libpthread-compat-wrappers.patch +# PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) +Patch1003: math-c++-compat.patch ### # Patches awaiting upstream approval @@ -504,6 +512,11 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -534,12 +547,6 @@ rm nscd/s-stamp rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h find . -name configure | xargs touch -####################################################################### -### -### BUILD -### -####################################################################### - %build if [ -x /bin/uname.bin ]; then /bin/uname.bin -a @@ -810,12 +817,6 @@ make -C cc-base -k check || { make %{?_smp_mflags} -C cc-base check-abi %endif -####################################################################### -### -### INSTALL -### -####################################################################### - %install %if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, @@ -1077,12 +1078,6 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} %endif # !main -####################################################################### -### -### ... -### -####################################################################### - %post -p %{_sbindir}/glibc_post_upgrade %postun -p /sbin/ldconfig @@ -1122,8 +1117,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%files %if %{build_main} +%files # glibc %defattr(-,root,root) %doc LICENSES @@ -1402,6 +1397,7 @@ exit 0 %endif # main %if %{build_utils} +%files %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so diff --git a/libpthread-compat-wrappers.patch b/libpthread-compat-wrappers.patch new file mode 100644 index 0000000..7203100 --- /dev/null +++ b/libpthread-compat-wrappers.patch @@ -0,0 +1,120 @@ +2017-08-09 Andreas Schwab + + [BZ #21041] + * sysdeps/unix/sysv/linux/s390/pt-longjmp.c: Update reference to + renamed alias. + +2017-08-08 Andreas Schwab + + [BZ #21041] + * nptl/pt-longjmp.c (longjmp, siglongjmp): Don't use IFUNC resolver. + * nptl/pt-system.c (system): Likewise. + +Index: glibc-2.26/nptl/pt-longjmp.c +=================================================================== +--- glibc-2.26.orig/nptl/pt-longjmp.c ++++ glibc-2.26/nptl/pt-longjmp.c +@@ -25,21 +25,14 @@ + symbol in libpthread, but the historical ABI requires it. For static + linking, there is no need to provide anything here--the libc version + will be linked in. For shared library ABI compatibility, there must be +- longjmp and siglongjmp symbols in libpthread.so; so we define them using +- IFUNC to redirect to the libc function. */ ++ longjmp and siglongjmp symbols in libpthread.so. + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) +- +-# if HAVE_IFUNC +- +-# undef INIT_ARCH +-# define INIT_ARCH() +-# define DEFINE_LONGJMP(name) libc_ifunc (name, &__libc_longjmp) +- +-extern __typeof(longjmp) longjmp_ifunc; +-extern __typeof(siglongjmp) siglongjmp_ifunc; ++ With an IFUNC resolver, it would be possible to avoid the indirection, ++ but the IFUNC resolver might run before the __libc_longjmp symbol has ++ been relocated, in which case the IFUNC resolver would not be able to ++ provide the correct address. */ + +-# else /* !HAVE_IFUNC */ ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) + + static void __attribute__ ((noreturn, used)) + longjmp_compat (jmp_buf env, int val) +@@ -47,14 +40,10 @@ longjmp_compat (jmp_buf env, int val) + __libc_longjmp (env, val); + } + +-# define DEFINE_LONGJMP(name) strong_alias (longjmp_compat, name) +- +-# endif /* HAVE_IFUNC */ +- +-DEFINE_LONGJMP (longjmp_ifunc) +-compat_symbol (libpthread, longjmp_ifunc, longjmp, GLIBC_2_0); ++strong_alias (longjmp_compat, longjmp_alias) ++compat_symbol (libpthread, longjmp_alias, longjmp, GLIBC_2_0); + +-strong_alias (longjmp_ifunc, siglongjmp_ifunc) +-compat_symbol (libpthread, siglongjmp_ifunc, siglongjmp, GLIBC_2_0); ++strong_alias (longjmp_alias, siglongjmp_alias) ++compat_symbol (libpthread, siglongjmp_alias, siglongjmp, GLIBC_2_0); + + #endif +Index: glibc-2.26/nptl/pt-system.c +=================================================================== +--- glibc-2.26.orig/nptl/pt-system.c ++++ glibc-2.26/nptl/pt-system.c +@@ -25,29 +25,21 @@ + libpthread, but the historical ABI requires it. For static linking, + there is no need to provide anything here--the libc version will be + linked in. For shared library ABI compatibility, there must be a +- 'system' symbol in libpthread.so; so we define it using IFUNC to +- redirect to the libc function. */ ++ 'system' symbol in libpthread.so. + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) +- +-# if HAVE_IFUNC +- +-extern __typeof(system) system_ifunc; +-# undef INIT_ARCH +-# define INIT_ARCH() +-libc_ifunc (system_ifunc, &__libc_system) ++ With an IFUNC resolver, it would be possible to avoid the indirection, ++ but the IFUNC resolver might run before the __libc_system symbol has ++ been relocated, in which case the IFUNC resolver would not be able to ++ provide the correct address. */ + +-# else /* !HAVE_IFUNC */ ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) + + static int __attribute__ ((used)) + system_compat (const char *line) + { + return __libc_system (line); + } +-strong_alias (system_compat, system_ifunc) +- +-# endif /* HAVE_IFUNC */ +- +-compat_symbol (libpthread, system_ifunc, system, GLIBC_2_0); ++strong_alias (system_compat, system_alias) ++compat_symbol (libpthread, system_alias, system, GLIBC_2_0); + + #endif +Index: glibc-2.26/sysdeps/unix/sysv/linux/s390/pt-longjmp.c +=================================================================== +--- glibc-2.26.orig/sysdeps/unix/sysv/linux/s390/pt-longjmp.c ++++ glibc-2.26/sysdeps/unix/sysv/linux/s390/pt-longjmp.c +@@ -26,8 +26,8 @@ + /* In glibc release 2.19 new versions of longjmp-functions were introduced, + but were reverted before 2.20. Thus both versions are the same function. */ + +-strong_alias (longjmp_ifunc, __v2longjmp) ++strong_alias (longjmp_alias, __v2longjmp) + compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19); +-strong_alias (siglongjmp_ifunc, __v2siglongjmp) ++strong_alias (siglongjmp_alias, __v2siglongjmp) + compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19); + #endif /* SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */ diff --git a/math-c++-compat.patch b/math-c++-compat.patch new file mode 100644 index 0000000..4717366 --- /dev/null +++ b/math-c++-compat.patch @@ -0,0 +1,126 @@ +2017-08-28 Gabriel F. T. Gomes + + [BZ #21930] + * math/math.h [defined __cplusplus && defined __SUPPORT_SNAN__] + (iszero): New C++ implementation that does not use + fpclassify/__MATH_TG/__builtin_types_compatible_p, when + signaling nans are enabled, since __builtin_types_compatible_p + is a C-only feature. + +2017-08-24 Gabriel F. T. Gomes + + * math/math.h [defined __cplusplus] (issignaling): In the long + double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH + is not defined. Call __issignaling, otherwise. + +2017-08-22 Gabriel F. T. Gomes + + * math/math.h [defined __cplusplus] (issignaling): Provide a C++ + definition for issignaling that does not rely on __MATH_TG, + since __MATH_TG uses __builtin_types_compatible_p, which is only + available in C mode. + +2017-08-18 Gabriel F. T. Gomes + + [BZ #21930] + * math/math.h (isinf): Check if in C or C++ mode before using + __builtin_types_compatible_p, since this is a C mode feature. + +Index: glibc-2.26/math/math.h +=================================================================== +--- glibc-2.26.orig/math/math.h ++++ glibc-2.26/math/math.h +@@ -442,8 +442,12 @@ enum + + /* Return nonzero value if X is positive or negative infinity. */ + # if __HAVE_DISTINCT_FLOAT128 && !__GNUC_PREREQ (7,0) \ +- && !defined __SUPPORT_SNAN__ +- /* __builtin_isinf_sign is broken for float128 only before GCC 7.0. */ ++ && !defined __SUPPORT_SNAN__ && !defined __cplusplus ++ /* Since __builtin_isinf_sign is broken for float128 before GCC 7.0, ++ use the helper function, __isinff128, with older compilers. This is ++ only provided for C mode, because in C++ mode, GCC has no support ++ for __builtin_types_compatible_p (and when in C++ mode, this macro is ++ not used anyway, because libstdc++ headers undefine it). */ + # define isinf(x) \ + (__builtin_types_compatible_p (__typeof (x), _Float128) \ + ? __isinff128 (x) : __builtin_isinf_sign (x)) +@@ -470,7 +474,32 @@ enum + # include + + /* Return nonzero value if X is a signaling NaN. */ +-# define issignaling(x) __MATH_TG ((x), __issignaling, (x)) ++# ifndef __cplusplus ++# define issignaling(x) __MATH_TG ((x), __issignaling, (x)) ++# else ++ /* In C++ mode, __MATH_TG cannot be used, because it relies on ++ __builtin_types_compatible_p, which is a C-only builtin. On the ++ other hand, overloading provides the means to distinguish between ++ the floating-point types. The overloading resolution will match ++ the correct parameter (regardless of type qualifiers (i.e.: const ++ and volatile). */ ++extern "C++" { ++inline int issignaling (float __val) { return __issignalingf (__val); } ++inline int issignaling (double __val) { return __issignaling (__val); } ++inline int ++issignaling (long double __val) ++{ ++# ifdef __NO_LONG_DOUBLE_MATH ++ return __issignaling (__val); ++# else ++ return __issignalingl (__val); ++# endif ++} ++# if __HAVE_DISTINCT_FLOAT128 ++inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } ++# endif ++} /* extern C++ */ ++# endif + + /* Return nonzero value if X is subnormal. */ + # define issubnormal(x) (fpclassify (x) == FP_SUBNORMAL) +@@ -484,15 +513,40 @@ enum + # endif + # else /* __cplusplus */ + extern "C++" { ++# ifdef __SUPPORT_SNAN__ ++inline int ++iszero (float __val) ++{ ++ return __fpclassifyf (__val) == FP_ZERO; ++} ++inline int ++iszero (double __val) ++{ ++ return __fpclassify (__val) == FP_ZERO; ++} ++inline int ++iszero (long double __val) ++{ ++# ifdef __NO_LONG_DOUBLE_MATH ++ return __fpclassify (__val) == FP_ZERO; ++# else ++ return __fpclassifyl (__val) == FP_ZERO; ++# endif ++} ++# if __HAVE_DISTINCT_FLOAT128 ++inline int ++iszero (_Float128 __val) ++{ ++ return __fpclassifyf128 (__val) == FP_ZERO; ++} ++# endif ++# else + template inline bool + iszero (__T __val) + { +-# ifdef __SUPPORT_SNAN__ +- return fpclassify (__val) == FP_ZERO; +-# else + return __val == 0; +-# endif + } ++# endif + } /* extern C++ */ + # endif /* __cplusplus */ + #endif /* Use IEC_60559_BFP_EXT. */ diff --git a/resolv-context-leak.patch b/resolv-context-leak.patch new file mode 100644 index 0000000..352e7c8 --- /dev/null +++ b/resolv-context-leak.patch @@ -0,0 +1,53 @@ +2017-08-09 Florian Weimer + + [BZ #21932] + * nss/getXXbyYY_r.c (REENTRANT_NAME): Call __resolv_context_put + before early return. + +2017-08-03 Florian Weimer + + [BZ #21885] + * sysdeps/posix/getaddrinfo.c (gethosts): Release resolver context + on memory allocation failure. + +Index: glibc-2.26/nss/getXXbyYY_r.c +=================================================================== +--- glibc-2.26.orig/nss/getXXbyYY_r.c ++++ glibc-2.26/nss/getXXbyYY_r.c +@@ -234,6 +234,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L + H_ERRNO_VAR_P)) + { + case -1: ++# ifdef NEED__RES ++ __resolv_context_put (res_ctx); ++# endif + return errno; + case 1: + #ifdef NEED_H_ERRNO +@@ -253,7 +256,12 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L + nscd_status = NSCD_NAME (ADD_VARIABLES, resbuf, buffer, buflen, result + H_ERRNO_VAR); + if (nscd_status >= 0) +- return nscd_status; ++ { ++# ifdef NEED__RES ++ __resolv_context_put (res_ctx); ++# endif ++ return nscd_status; ++ } + } + #endif + +Index: glibc-2.26/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.26.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.26/sysdeps/posix/getaddrinfo.c +@@ -255,6 +255,8 @@ convert_hostent_to_gaih_addrtuple (const + break; \ + if (!scratch_buffer_grow (tmpbuf)) \ + { \ ++ __resolv_context_enable_inet6 (res_ctx, res_enable_inet6); \ ++ __resolv_context_put (res_ctx); \ + result = -EAI_MEMORY; \ + goto free_and_return; \ + } \ From 214122806244069920b2c5d22560847229f9448139338733c502df92eaafeb87 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 14 Sep 2017 19:09:49 +0000 Subject: [PATCH 203/204] Accepting request 523624 from Base:System - Remove rpcsvc/yppasswd.* from glibc-devel - ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) - eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) (forwarded request 523623 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/523624 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=212 --- eh-frame-zero-terminator.patch | 31 +++++ glibc-testsuite.changes | 19 +++ glibc-testsuite.spec | 30 ++--- glibc-utils.changes | 19 +++ glibc-utils.spec | 30 ++--- glibc.changes | 19 +++ glibc.spec | 30 ++--- ld-so-hwcap-x86-64.patch | 190 ++++++++++++++++++++++++++++++ nsswitch.conf | 15 +-- remove-nss-nis-compat.patch | 207 +++++++++++++++++++++++++++++++++ 10 files changed, 535 insertions(+), 55 deletions(-) create mode 100644 eh-frame-zero-terminator.patch create mode 100644 ld-so-hwcap-x86-64.patch create mode 100644 remove-nss-nis-compat.patch diff --git a/eh-frame-zero-terminator.patch b/eh-frame-zero-terminator.patch new file mode 100644 index 0000000..28a4c16 --- /dev/null +++ b/eh-frame-zero-terminator.patch @@ -0,0 +1,31 @@ +2017-08-31 H.J. Lu + + [BZ #22051] + * Makerules (build-module-helper-objlist): Filter out + $(elf-objpfx)sofini.os. + (build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is + needed. + +Index: glibc-2.26/Makerules +=================================================================== +--- glibc-2.26.orig/Makerules ++++ glibc-2.26/Makerules +@@ -686,14 +686,17 @@ $(build-module-helper) -o $@ $(shlib-lds + $(call after-link,$@) + endef + ++# sofini.os must be placed last since it terminates .eh_frame section. + build-module-helper-objlist = \ + $(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\ + $(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \ ++ $(elf-objpfx)sofini.os \ + $(link-libc-deps),$^)) + + build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so) + build-shlib-objlist = $(build-module-helper-objlist) \ +- $(LDLIBS-$(@F:lib%.so=%).so) ++ $(LDLIBS-$(@F:lib%.so=%).so) \ ++ $(filter $(elf-objpfx)sofini.os,$^) + + # Don't try to use -lc when making libc.so itself. + # Also omits crti.o and crtn.o, which we do not want diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index f8c1b5d..aaeae73 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de + +- Remove rpcsvc/yppasswd.* from glibc-devel +- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) + +------------------------------------------------------------------- +Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de + +- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) + +------------------------------------------------------------------- +Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de + +- Disable obsolete libnsl and NIS support +- remove-nss-nis-compat.patch: remove nis and compat from default NSS + configs +- nsswitch.conf: Likewise + ------------------------------------------------------------------- Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 54d1bef..8bf4b0d 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -277,6 +277,12 @@ Patch1001: dl-runtime-resolve-opt-avx512f.patch Patch1002: libpthread-compat-wrappers.patch # PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) Patch1003: math-c++-compat.patch +# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs +Patch1004: remove-nss-nis-compat.patch +# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) +Patch1005: eh-frame-zero-terminator.patch +# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) +Patch1006: ld-so-hwcap-x86-64.patch ### # Patches awaiting upstream approval @@ -510,6 +516,9 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 %patch2000 -p1 %patch2001 -p1 @@ -677,7 +686,7 @@ configure_and_build_glibc() { --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now \ - --enable-obsolete-rpc --enable-obsolete-nsl \ + --enable-obsolete-rpc \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -769,12 +778,6 @@ pushd crypt_blowfish-%{crypt_bf_version} make man popd -####################################################################### -### -### CHECK -### -####################################################################### - %check %if %{build_testsuite} # The testsuite will fail if asneeded is used @@ -916,6 +919,11 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif +# remove nsl compat library +rm -f %{buildroot}%{_libdir}/libnsl* +# part of libnsl-devel +rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* + # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -1192,8 +1200,6 @@ exit 0 %endif /%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{libversion}.so -/%{_lib}/libnss_compat.so.2 /%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{libversion}.so @@ -1202,10 +1208,6 @@ exit 0 /%{_lib}/libnss_files.so.2 /%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{libversion}.so -/%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{libversion}.so -/%{_lib}/libnss_nisplus.so.2 /%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 /%{_lib}/libresolv-%{libversion}.so @@ -1318,7 +1320,6 @@ exit 0 %{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif -%{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a %{_libdir}/librt.a @@ -1374,7 +1375,6 @@ exit 0 %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a -%{_libdir}/libnsl_p.a %{_libdir}/librt_p.a %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a diff --git a/glibc-utils.changes b/glibc-utils.changes index f8c1b5d..aaeae73 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de + +- Remove rpcsvc/yppasswd.* from glibc-devel +- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) + +------------------------------------------------------------------- +Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de + +- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) + +------------------------------------------------------------------- +Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de + +- Disable obsolete libnsl and NIS support +- remove-nss-nis-compat.patch: remove nis and compat from default NSS + configs +- nsswitch.conf: Likewise + ------------------------------------------------------------------- Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index a01e197..865f2a1 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -277,6 +277,12 @@ Patch1001: dl-runtime-resolve-opt-avx512f.patch Patch1002: libpthread-compat-wrappers.patch # PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) Patch1003: math-c++-compat.patch +# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs +Patch1004: remove-nss-nis-compat.patch +# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) +Patch1005: eh-frame-zero-terminator.patch +# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) +Patch1006: ld-so-hwcap-x86-64.patch ### # Patches awaiting upstream approval @@ -510,6 +516,9 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 %patch2000 -p1 %patch2001 -p1 @@ -677,7 +686,7 @@ configure_and_build_glibc() { --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now \ - --enable-obsolete-rpc --enable-obsolete-nsl \ + --enable-obsolete-rpc \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -769,12 +778,6 @@ pushd crypt_blowfish-%{crypt_bf_version} make man popd -####################################################################### -### -### CHECK -### -####################################################################### - %check %if %{build_testsuite} # The testsuite will fail if asneeded is used @@ -916,6 +919,11 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif +# remove nsl compat library +rm -f %{buildroot}%{_libdir}/libnsl* +# part of libnsl-devel +rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* + # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -1192,8 +1200,6 @@ exit 0 %endif /%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{libversion}.so -/%{_lib}/libnss_compat.so.2 /%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{libversion}.so @@ -1202,10 +1208,6 @@ exit 0 /%{_lib}/libnss_files.so.2 /%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{libversion}.so -/%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{libversion}.so -/%{_lib}/libnss_nisplus.so.2 /%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 /%{_lib}/libresolv-%{libversion}.so @@ -1318,7 +1320,6 @@ exit 0 %{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif -%{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a %{_libdir}/librt.a @@ -1374,7 +1375,6 @@ exit 0 %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a -%{_libdir}/libnsl_p.a %{_libdir}/librt_p.a %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a diff --git a/glibc.changes b/glibc.changes index f8c1b5d..aaeae73 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de + +- Remove rpcsvc/yppasswd.* from glibc-devel +- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) + +------------------------------------------------------------------- +Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de + +- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) + +------------------------------------------------------------------- +Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de + +- Disable obsolete libnsl and NIS support +- remove-nss-nis-compat.patch: remove nis and compat from default NSS + configs +- nsswitch.conf: Likewise + ------------------------------------------------------------------- Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index b0dbb5d..1ab4931 100644 --- a/glibc.spec +++ b/glibc.spec @@ -283,6 +283,12 @@ Patch1001: dl-runtime-resolve-opt-avx512f.patch Patch1002: libpthread-compat-wrappers.patch # PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) Patch1003: math-c++-compat.patch +# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs +Patch1004: remove-nss-nis-compat.patch +# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) +Patch1005: eh-frame-zero-terminator.patch +# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) +Patch1006: ld-so-hwcap-x86-64.patch ### # Patches awaiting upstream approval @@ -516,6 +522,9 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 %patch2000 -p1 %patch2001 -p1 @@ -683,7 +692,7 @@ configure_and_build_glibc() { --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now \ - --enable-obsolete-rpc --enable-obsolete-nsl \ + --enable-obsolete-rpc \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -775,12 +784,6 @@ pushd crypt_blowfish-%{crypt_bf_version} make man popd -####################################################################### -### -### CHECK -### -####################################################################### - %check %if %{build_testsuite} # The testsuite will fail if asneeded is used @@ -922,6 +925,11 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif +# remove nsl compat library +rm -f %{buildroot}%{_libdir}/libnsl* +# part of libnsl-devel +rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* + # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -1198,8 +1206,6 @@ exit 0 %endif /%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{libversion}.so -/%{_lib}/libnss_compat.so.2 /%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{libversion}.so @@ -1208,10 +1214,6 @@ exit 0 /%{_lib}/libnss_files.so.2 /%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{libversion}.so -/%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{libversion}.so -/%{_lib}/libnss_nisplus.so.2 /%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 /%{_lib}/libresolv-%{libversion}.so @@ -1324,7 +1326,6 @@ exit 0 %{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif -%{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a %{_libdir}/librt.a @@ -1380,7 +1381,6 @@ exit 0 %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a -%{_libdir}/libnsl_p.a %{_libdir}/librt_p.a %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a diff --git a/ld-so-hwcap-x86-64.patch b/ld-so-hwcap-x86-64.patch new file mode 100644 index 0000000..b99547a --- /dev/null +++ b/ld-so-hwcap-x86-64.patch @@ -0,0 +1,190 @@ +2017-09-11 H.J. Lu + + [BZ #22093] + * sysdeps/x86/cpu-features.c (init_cpu_features): Initialize + GLRO(dl_hwcap) to HWCAP_X86_64 for x86-64. + * sysdeps/x86/dl-hwcap.h (HWCAP_COUNT): Updated. + (HWCAP_IMPORTANT): Likewise. + (HWCAP_X86_64): New enum. + (HWCAP_X86_AVX512_1): Updated. + * sysdeps/x86/dl-procinfo.c (_dl_x86_hwcap_flags): Add "x86_64". + * sysdeps/x86_64/Makefile (tests): Add tst-x86_64-1. + (modules-names): Add x86_64/tst-x86_64mod-1. + (LDFLAGS-tst-x86_64mod-1.so): New. + ($(objpfx)tst-x86_64-1): Likewise. + ($(objpfx)x86_64/tst-x86_64mod-1.os): Likewise. + (tst-x86_64-1-clean): Likewise. + * sysdeps/x86_64/tst-x86_64-1.c: New file. + * sysdeps/x86_64/tst-x86_64mod-1.c: Likewise. + +Index: glibc-2.26/sysdeps/x86/cpu-features.c +=================================================================== +--- glibc-2.26.orig/sysdeps/x86/cpu-features.c ++++ glibc-2.26/sysdeps/x86/cpu-features.c +@@ -336,7 +336,6 @@ no_cpuid: + + /* Reuse dl_platform, dl_hwcap and dl_hwcap_mask for x86. */ + GLRO(dl_platform) = NULL; +- GLRO(dl_hwcap) = 0; + #if !HAVE_TUNABLES && defined SHARED + /* The glibc.tune.hwcap_mask tunable is initialized already, so no need to do + this. */ +@@ -344,6 +343,7 @@ no_cpuid: + #endif + + #ifdef __x86_64__ ++ GLRO(dl_hwcap) = HWCAP_X86_64; + if (cpu_features->kind == arch_kind_intel) + { + if (CPU_FEATURES_ARCH_P (cpu_features, AVX512F_Usable) +@@ -374,6 +374,7 @@ no_cpuid: + GLRO(dl_platform) = "haswell"; + } + #else ++ GLRO(dl_hwcap) = 0; + if (CPU_FEATURES_CPU_P (cpu_features, SSE2)) + GLRO(dl_hwcap) |= HWCAP_X86_SSE2; + +Index: glibc-2.26/sysdeps/x86/dl-hwcap.h +=================================================================== +--- glibc-2.26.orig/sysdeps/x86/dl-hwcap.h ++++ glibc-2.26/sysdeps/x86/dl-hwcap.h +@@ -24,15 +24,16 @@ + # define HWCAP_PLATFORMS_START 0 + # define HWCAP_PLATFORMS_COUNT 4 + # define HWCAP_START 0 +-# define HWCAP_COUNT 2 +-# define HWCAP_IMPORTANT (HWCAP_X86_SSE2 | HWCAP_X86_AVX512_1) ++# define HWCAP_COUNT 3 ++# define HWCAP_IMPORTANT \ ++ (HWCAP_X86_SSE2 | HWCAP_X86_64 | HWCAP_X86_AVX512_1) + #elif defined __x86_64__ + /* For 64 bit, only cover x86-64 platforms and capabilities. */ + # define HWCAP_PLATFORMS_START 2 + # define HWCAP_PLATFORMS_COUNT 4 + # define HWCAP_START 1 +-# define HWCAP_COUNT 2 +-# define HWCAP_IMPORTANT (HWCAP_X86_AVX512_1) ++# define HWCAP_COUNT 3 ++# define HWCAP_IMPORTANT (HWCAP_X86_64 | HWCAP_X86_AVX512_1) + #else + /* For 32 bit, only cover i586, i686 and SSE2. */ + # define HWCAP_PLATFORMS_START 0 +@@ -45,7 +46,8 @@ + enum + { + HWCAP_X86_SSE2 = 1 << 0, +- HWCAP_X86_AVX512_1 = 1 << 1 ++ HWCAP_X86_64 = 1 << 1, ++ HWCAP_X86_AVX512_1 = 1 << 2 + }; + + static inline const char * +Index: glibc-2.26/sysdeps/x86/dl-procinfo.c +=================================================================== +--- glibc-2.26.orig/sysdeps/x86/dl-procinfo.c ++++ glibc-2.26/sysdeps/x86/dl-procinfo.c +@@ -58,11 +58,11 @@ PROCINFO_CLASS struct cpu_features _dl_x + #if !defined PROCINFO_DECL && defined SHARED + ._dl_x86_hwcap_flags + #else +-PROCINFO_CLASS const char _dl_x86_hwcap_flags[2][9] ++PROCINFO_CLASS const char _dl_x86_hwcap_flags[3][9] + #endif + #ifndef PROCINFO_DECL + = { +- "sse2", "avx512_1" ++ "sse2", "x86_64", "avx512_1" + } + #endif + #if !defined SHARED || defined PROCINFO_DECL +Index: glibc-2.26/sysdeps/x86_64/Makefile +=================================================================== +--- glibc-2.26.orig/sysdeps/x86_64/Makefile ++++ glibc-2.26/sysdeps/x86_64/Makefile +@@ -52,6 +52,12 @@ $(objpfx)tst-quad2pie: $(objpfx)tst-quad + CFLAGS-tst-quad1pie.c = $(PIE-ccflag) + CFLAGS-tst-quad2pie.c = $(PIE-ccflag) + ++tests += tst-x86_64-1 ++modules-names += x86_64/tst-x86_64mod-1 ++LDFLAGS-tst-x86_64mod-1.so = -Wl,-soname,tst-x86_64mod-1.so ++ ++$(objpfx)tst-x86_64-1: $(objpfx)x86_64/tst-x86_64mod-1.so ++ + tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7 \ + tst-audit10 tst-sse tst-avx tst-avx512 + test-extras += tst-audit4-aux tst-audit10-aux \ +@@ -122,3 +128,14 @@ endif + ifeq ($(subdir),csu) + gen-as-const-headers += tlsdesc.sym rtld-offsets.sym + endif ++ ++$(objpfx)x86_64/tst-x86_64mod-1.os: $(objpfx)tst-x86_64mod-1.os ++ $(make-target-directory) ++ rm -f $@ ++ ln $< $@ ++ ++do-tests-clean common-mostlyclean: tst-x86_64-1-clean ++ ++.PHONY: tst-x86_64-1-clean ++tst-x86_64-1-clean: ++ -rm -rf $(objpfx)x86_64 +Index: glibc-2.26/sysdeps/x86_64/tst-x86_64-1.c +=================================================================== +--- /dev/null ++++ glibc-2.26/sysdeps/x86_64/tst-x86_64-1.c +@@ -0,0 +1,26 @@ ++/* Test searching the "x86_64" directory for shared libraries. ++ Copyright (C) 2017 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++extern void foo (void); ++ ++int ++main (void) ++{ ++ foo (); ++ return 0; ++} +Index: glibc-2.26/sysdeps/x86_64/tst-x86_64mod-1.c +=================================================================== +--- /dev/null ++++ glibc-2.26/sysdeps/x86_64/tst-x86_64mod-1.c +@@ -0,0 +1,22 @@ ++/* Test searching the "x86_64" directory for shared libraries. ++ Copyright (C) 2017 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 ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++void ++foo (void) ++{ ++} diff --git a/nsswitch.conf b/nsswitch.conf index fbd63fd..fcf5e1a 100644 --- a/nsswitch.conf +++ b/nsswitch.conf @@ -22,12 +22,9 @@ # For more information, please read the nsswitch.conf.5 manual page. # -# passwd: files nis -# shadow: files nis -# group: files nis - -passwd: compat [NOTFOUND=return] files -group: compat [NOTFOUND=return] files +passwd: files +group: files +shadow: files hosts: files dns networks: files dns @@ -37,11 +34,9 @@ protocols: files rpc: files ethers: files netmasks: files -netgroup: files nis +netgroup: files publickey: files bootparams: files -automount: files nis +automount: files aliases: files - - diff --git a/remove-nss-nis-compat.patch b/remove-nss-nis-compat.patch new file mode 100644 index 0000000..4a78c5c --- /dev/null +++ b/remove-nss-nis-compat.patch @@ -0,0 +1,207 @@ +2017-08-29 Steve Ellcey + + * grp/initgroups.c: Include config.h. + (DEFAULT_CONFIG): New macro. + (internal_getgrouplist): Use DEFAULT_CONFIG. + * nscd/initgrcache.c (addinitgroupsX): Likewise. + * nss/nsswitch.c (__nss_disable_nscd): Likewise. + (DEFAULT_DEFCONFIG): New macro. + (__nss_database_lookup): Use DEFAULT_DEFCONFIG. + * nss/grp-lookup.c: Include config.h + (DEFAULT_CONFIG): Set definition based on LINK_OBSOLETE_NSL. + * nss/pwd-lookup.c (DEFAULT_CONFIG): Likewise. + * nss/spwd-lookup.c (DEFAULT_CONFIG): Likewise. + * manual/nss.texi: Update default values section. + + +Index: glibc-2.26/grp/initgroups.c +=================================================================== +--- glibc-2.26.orig/grp/initgroups.c ++++ glibc-2.26/grp/initgroups.c +@@ -26,10 +26,16 @@ + #include + #include + #include ++#include + + #include "../nscd/nscd-client.h" + #include "../nscd/nscd_proto.h" + ++#ifdef LINK_OBSOLETE_NSL ++# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#else ++# define DEFAULT_CONFIG "files" ++#endif + + /* Type of the lookup function. */ + typedef enum nss_status (*initgroups_dyn_function) (const char *, gid_t, +@@ -84,7 +90,7 @@ internal_getgrouplist (const char *user, + &__nss_initgroups_database) < 0) + { + if (__nss_group_database == NULL) +- no_more = __nss_database_lookup ("group", NULL, "compat files", ++ no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG, + &__nss_group_database); + + __nss_initgroups_database = __nss_group_database; +Index: glibc-2.26/manual/nss.texi +=================================================================== +--- glibc-2.26.orig/manual/nss.texi ++++ glibc-2.26/manual/nss.texi +@@ -318,13 +318,17 @@ The @code{passwd}, @code{group}, and @co + traditionally handled in a special way. The appropriate files in the + @file{/etc} directory are read but if an entry with a name starting + with a @code{+} character is found NIS is used. This kind of lookup +-remains possible by using the special lookup service @code{compat} +-and the default value for the three databases above is +-@code{compat [NOTFOUND=return] files}. ++remains possible if @theglibc{} was configured with the ++@code{--enable-obsolete-nsl} option and the special lookup service ++@code{compat} is used. If @theglibc{} was configured with the ++@code{--enable-obsolete-nsl} option the default value for the three ++databases above is @code{compat [NOTFOUND=return] files}. If the ++@code{--enable-obsolete-nsl} option was not used the default value ++for the services is @code{files}. + +-For all other databases the default value is +-@code{nis [NOTFOUND=return] files}. This solution gives the best +-chance to be correct since NIS and file based lookups are used. ++For all other databases the default value is @code{files} unless ++@theglibc{} was configured with @code{--enable-obsolete-rpc} option, in ++which case it the default value is @code{nis [NOTFOUND=return] files}. + + @cindex optimizing NSS + A second point is that the user should try to optimize the lookup +Index: glibc-2.26/nscd/initgrcache.c +=================================================================== +--- glibc-2.26.orig/nscd/initgrcache.c ++++ glibc-2.26/nscd/initgrcache.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + #include "dbg_log.h" + #include "nscd.h" +@@ -34,6 +35,11 @@ + + #include "../nss/nsswitch.h" + ++#ifdef LINK_OBSOLETE_NSL ++# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#else ++# define DEFAULT_CONFIG "files" ++#endif + + /* Type of the lookup function. */ + typedef enum nss_status (*initgroups_dyn_function) (const char *, gid_t, +@@ -85,8 +91,7 @@ addinitgroupsX (struct database_dyn *db, + int no_more; + + if (group_database == NULL) +- no_more = __nss_database_lookup ("group", NULL, +- "compat [NOTFOUND=return] files", ++ no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG, + &group_database); + else + no_more = 0; +Index: glibc-2.26/nss/grp-lookup.c +=================================================================== +--- glibc-2.26.orig/nss/grp-lookup.c ++++ glibc-2.26/nss/grp-lookup.c +@@ -16,7 +16,13 @@ + License along with the GNU C Library; if not, see + . */ + ++#include ++ + #define DATABASE_NAME group +-#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#ifdef LINK_OBSOLETE_NSL ++# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#else ++# define DEFAULT_CONFIG "files" ++#endif + + #include "XXX-lookup.c" +Index: glibc-2.26/nss/nsswitch.c +=================================================================== +--- glibc-2.26.orig/nss/nsswitch.c ++++ glibc-2.26/nss/nsswitch.c +@@ -40,6 +40,15 @@ + #include "nsswitch.h" + #include "../nscd/nscd_proto.h" + #include ++#include ++ ++#ifdef LINK_OBSOLETE_NSL ++# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++# define DEFAULT_DEFCONFIG "nis [NOTFOUND=return] files" ++#else ++# define DEFAULT_CONFIG "files" ++# define DEFAULT_DEFCONFIG "files" ++#endif + + /* Prototypes for the local functions. */ + static name_database *nss_parse_file (const char *fname) internal_function; +@@ -151,8 +160,7 @@ __nss_database_lookup (const char *datab + or null to use the most common default. */ + if (*ni == NULL) + { +- *ni = nss_parse_service_list (defconfig +- ?: "nis [NOTFOUND=return] files"); ++ *ni = nss_parse_service_list (defconfig ?: DEFAULT_DEFCONFIG); + if (*ni != NULL) + { + /* Record the memory we've just allocated in defconfig_entries list, +@@ -848,8 +856,8 @@ __nss_disable_nscd (void (*cb) (size_t, + is_nscd = true; + + /* Find all the relevant modules so that the init functions are called. */ +- nss_load_all_libraries ("passwd", "compat [NOTFOUND=return] files"); +- nss_load_all_libraries ("group", "compat [NOTFOUND=return] files"); ++ nss_load_all_libraries ("passwd", DEFAULT_CONFIG); ++ nss_load_all_libraries ("group", DEFAULT_CONFIG); + nss_load_all_libraries ("hosts", "dns [!UNAVAIL=return] files"); + nss_load_all_libraries ("services", NULL); + +Index: glibc-2.26/nss/pwd-lookup.c +=================================================================== +--- glibc-2.26.orig/nss/pwd-lookup.c ++++ glibc-2.26/nss/pwd-lookup.c +@@ -16,7 +16,13 @@ + License along with the GNU C Library; if not, see + . */ + ++#include ++ + #define DATABASE_NAME passwd +-#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#ifdef LINK_OBSOLETE_NSL ++# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#else ++# define DEFAULT_CONFIG "files" ++#endif + + #include "XXX-lookup.c" +Index: glibc-2.26/nss/spwd-lookup.c +=================================================================== +--- glibc-2.26.orig/nss/spwd-lookup.c ++++ glibc-2.26/nss/spwd-lookup.c +@@ -16,8 +16,14 @@ + License along with the GNU C Library; if not, see + . */ + ++#include ++ + #define DATABASE_NAME shadow + #define ALTERNATE_NAME passwd +-#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#ifdef LINK_OBSOLETE_NSL ++# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" ++#else ++# define DEFAULT_CONFIG "files" ++#endif + + #include "XXX-lookup.c" From b45f1c2513f38f013df88e61414496785c74400ca553770ea3a938d6b9d1bdbe Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 24 Sep 2017 09:32:32 +0000 Subject: [PATCH 204/204] Accepting request 528498 from openSUSE:Factory Revert to pre-NIS deprecation - 10 days is really enough OBS-URL: https://build.opensuse.org/request/show/528498 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=213 --- eh-frame-zero-terminator.patch | 31 ----- glibc-testsuite.changes | 19 --- glibc-testsuite.spec | 30 ++--- glibc-utils.changes | 19 --- glibc-utils.spec | 30 ++--- glibc.changes | 19 --- glibc.spec | 30 ++--- ld-so-hwcap-x86-64.patch | 190 ------------------------------ nsswitch.conf | 15 ++- remove-nss-nis-compat.patch | 207 --------------------------------- 10 files changed, 55 insertions(+), 535 deletions(-) delete mode 100644 eh-frame-zero-terminator.patch delete mode 100644 ld-so-hwcap-x86-64.patch delete mode 100644 remove-nss-nis-compat.patch diff --git a/eh-frame-zero-terminator.patch b/eh-frame-zero-terminator.patch deleted file mode 100644 index 28a4c16..0000000 --- a/eh-frame-zero-terminator.patch +++ /dev/null @@ -1,31 +0,0 @@ -2017-08-31 H.J. Lu - - [BZ #22051] - * Makerules (build-module-helper-objlist): Filter out - $(elf-objpfx)sofini.os. - (build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is - needed. - -Index: glibc-2.26/Makerules -=================================================================== ---- glibc-2.26.orig/Makerules -+++ glibc-2.26/Makerules -@@ -686,14 +686,17 @@ $(build-module-helper) -o $@ $(shlib-lds - $(call after-link,$@) - endef - -+# sofini.os must be placed last since it terminates .eh_frame section. - build-module-helper-objlist = \ - $(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\ - $(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \ -+ $(elf-objpfx)sofini.os \ - $(link-libc-deps),$^)) - - build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so) - build-shlib-objlist = $(build-module-helper-objlist) \ -- $(LDLIBS-$(@F:lib%.so=%).so) -+ $(LDLIBS-$(@F:lib%.so=%).so) \ -+ $(filter $(elf-objpfx)sofini.os,$^) - - # Don't try to use -lc when making libc.so itself. - # Also omits crti.o and crtn.o, which we do not want diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index aaeae73..f8c1b5d 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,22 +1,3 @@ -------------------------------------------------------------------- -Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de - -- Remove rpcsvc/yppasswd.* from glibc-devel -- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) - -------------------------------------------------------------------- -Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de - -- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) - -------------------------------------------------------------------- -Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de - -- Disable obsolete libnsl and NIS support -- remove-nss-nis-compat.patch: remove nis and compat from default NSS - configs -- nsswitch.conf: Likewise - ------------------------------------------------------------------- Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 8bf4b0d..54d1bef 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -277,12 +277,6 @@ Patch1001: dl-runtime-resolve-opt-avx512f.patch Patch1002: libpthread-compat-wrappers.patch # PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) Patch1003: math-c++-compat.patch -# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs -Patch1004: remove-nss-nis-compat.patch -# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) -Patch1005: eh-frame-zero-terminator.patch -# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) -Patch1006: ld-so-hwcap-x86-64.patch ### # Patches awaiting upstream approval @@ -516,9 +510,6 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 %patch2000 -p1 %patch2001 -p1 @@ -686,7 +677,7 @@ configure_and_build_glibc() { --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now \ - --enable-obsolete-rpc \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -778,6 +769,12 @@ pushd crypt_blowfish-%{crypt_bf_version} make man popd +####################################################################### +### +### CHECK +### +####################################################################### + %check %if %{build_testsuite} # The testsuite will fail if asneeded is used @@ -919,11 +916,6 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif -# remove nsl compat library -rm -f %{buildroot}%{_libdir}/libnsl* -# part of libnsl-devel -rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -1200,6 +1192,8 @@ exit 0 %endif /%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 +/%{_lib}/libnss_compat-%{libversion}.so +/%{_lib}/libnss_compat.so.2 /%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{libversion}.so @@ -1208,6 +1202,10 @@ exit 0 /%{_lib}/libnss_files.so.2 /%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 +/%{_lib}/libnss_nis-%{libversion}.so +/%{_lib}/libnss_nis.so.2 +/%{_lib}/libnss_nisplus-%{libversion}.so +/%{_lib}/libnss_nisplus.so.2 /%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 /%{_lib}/libresolv-%{libversion}.so @@ -1320,6 +1318,7 @@ exit 0 %{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif +%{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a %{_libdir}/librt.a @@ -1375,6 +1374,7 @@ exit 0 %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a +%{_libdir}/libnsl_p.a %{_libdir}/librt_p.a %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a diff --git a/glibc-utils.changes b/glibc-utils.changes index aaeae73..f8c1b5d 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,22 +1,3 @@ -------------------------------------------------------------------- -Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de - -- Remove rpcsvc/yppasswd.* from glibc-devel -- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) - -------------------------------------------------------------------- -Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de - -- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) - -------------------------------------------------------------------- -Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de - -- Disable obsolete libnsl and NIS support -- remove-nss-nis-compat.patch: remove nis and compat from default NSS - configs -- nsswitch.conf: Likewise - ------------------------------------------------------------------- Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 865f2a1..a01e197 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -277,12 +277,6 @@ Patch1001: dl-runtime-resolve-opt-avx512f.patch Patch1002: libpthread-compat-wrappers.patch # PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) Patch1003: math-c++-compat.patch -# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs -Patch1004: remove-nss-nis-compat.patch -# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) -Patch1005: eh-frame-zero-terminator.patch -# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) -Patch1006: ld-so-hwcap-x86-64.patch ### # Patches awaiting upstream approval @@ -516,9 +510,6 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 %patch2000 -p1 %patch2001 -p1 @@ -686,7 +677,7 @@ configure_and_build_glibc() { --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now \ - --enable-obsolete-rpc \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -778,6 +769,12 @@ pushd crypt_blowfish-%{crypt_bf_version} make man popd +####################################################################### +### +### CHECK +### +####################################################################### + %check %if %{build_testsuite} # The testsuite will fail if asneeded is used @@ -919,11 +916,6 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif -# remove nsl compat library -rm -f %{buildroot}%{_libdir}/libnsl* -# part of libnsl-devel -rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -1200,6 +1192,8 @@ exit 0 %endif /%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 +/%{_lib}/libnss_compat-%{libversion}.so +/%{_lib}/libnss_compat.so.2 /%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{libversion}.so @@ -1208,6 +1202,10 @@ exit 0 /%{_lib}/libnss_files.so.2 /%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 +/%{_lib}/libnss_nis-%{libversion}.so +/%{_lib}/libnss_nis.so.2 +/%{_lib}/libnss_nisplus-%{libversion}.so +/%{_lib}/libnss_nisplus.so.2 /%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 /%{_lib}/libresolv-%{libversion}.so @@ -1320,6 +1318,7 @@ exit 0 %{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif +%{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a %{_libdir}/librt.a @@ -1375,6 +1374,7 @@ exit 0 %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a +%{_libdir}/libnsl_p.a %{_libdir}/librt_p.a %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a diff --git a/glibc.changes b/glibc.changes index aaeae73..f8c1b5d 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,22 +1,3 @@ -------------------------------------------------------------------- -Tue Sep 12 06:37:36 UTC 2017 - schwab@suse.de - -- Remove rpcsvc/yppasswd.* from glibc-devel -- ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (BZ #22093, bsc#1056606) - -------------------------------------------------------------------- -Thu Aug 31 13:43:07 UTC 2017 - schwab@suse.de - -- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051) - -------------------------------------------------------------------- -Thu Aug 31 07:06:20 UTC 2017 - schwab@suse.de - -- Disable obsolete libnsl and NIS support -- remove-nss-nis-compat.patch: remove nis and compat from default NSS - configs -- nsswitch.conf: Likewise - ------------------------------------------------------------------- Tue Aug 29 07:13:42 UTC 2017 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 1ab4931..b0dbb5d 100644 --- a/glibc.spec +++ b/glibc.spec @@ -283,12 +283,6 @@ Patch1001: dl-runtime-resolve-opt-avx512f.patch Patch1002: libpthread-compat-wrappers.patch # PATCH-FIX-UPSTREAM Do not use __builtin_types_compatible_p in C++ mode (BZ #21930) Patch1003: math-c++-compat.patch -# PATCH-FIX-UPSTREAM Remove nis and compat from default NSS configs -Patch1004: remove-nss-nis-compat.patch -# PATCH-FIX-UPSTREAM Properly terminate .eh_frame (BZ #22051) -Patch1005: eh-frame-zero-terminator.patch -# PATCH-FIX-UPSTREAM x86: Add x86_64 to x86-64 HWCAP (BZ #22093) -Patch1006: ld-so-hwcap-x86-64.patch ### # Patches awaiting upstream approval @@ -522,9 +516,6 @@ rm nscd/s-stamp %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 %patch2000 -p1 %patch2001 -p1 @@ -692,7 +683,7 @@ configure_and_build_glibc() { --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now \ - --enable-obsolete-rpc \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -784,6 +775,12 @@ pushd crypt_blowfish-%{crypt_bf_version} make man popd +####################################################################### +### +### CHECK +### +####################################################################### + %check %if %{build_testsuite} # The testsuite will fail if asneeded is used @@ -925,11 +922,6 @@ export RPM_BUILD_ROOT mkdir -p %{buildroot}/%{_lib}/obsolete %endif -# remove nsl compat library -rm -f %{buildroot}%{_libdir}/libnsl* -# part of libnsl-devel -rm -f %{buildroot}%{_includedir}/rpcsvc/yppasswd.* - # Miscelanna: install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} @@ -1206,6 +1198,8 @@ exit 0 %endif /%{_lib}/libnsl-%{libversion}.so /%{_lib}/libnsl.so.1 +/%{_lib}/libnss_compat-%{libversion}.so +/%{_lib}/libnss_compat.so.2 /%{_lib}/libnss_db-%{libversion}.so /%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{libversion}.so @@ -1214,6 +1208,10 @@ exit 0 /%{_lib}/libnss_files.so.2 /%{_lib}/libnss_hesiod-%{libversion}.so /%{_lib}/libnss_hesiod.so.2 +/%{_lib}/libnss_nis-%{libversion}.so +/%{_lib}/libnss_nis.so.2 +/%{_lib}/libnss_nisplus-%{libversion}.so +/%{_lib}/libnss_nisplus.so.2 /%{_lib}/libpthread-%{libversion}.so /%{_lib}/libpthread.so.0 /%{_lib}/libresolv-%{libversion}.so @@ -1326,6 +1324,7 @@ exit 0 %{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif +%{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a %{_libdir}/librt.a @@ -1381,6 +1380,7 @@ exit 0 %{_libdir}/libowcrypt_p.a %{_libdir}/libpthread_p.a %{_libdir}/libresolv_p.a +%{_libdir}/libnsl_p.a %{_libdir}/librt_p.a %{_libdir}/librpcsvc_p.a %{_libdir}/libutil_p.a diff --git a/ld-so-hwcap-x86-64.patch b/ld-so-hwcap-x86-64.patch deleted file mode 100644 index b99547a..0000000 --- a/ld-so-hwcap-x86-64.patch +++ /dev/null @@ -1,190 +0,0 @@ -2017-09-11 H.J. Lu - - [BZ #22093] - * sysdeps/x86/cpu-features.c (init_cpu_features): Initialize - GLRO(dl_hwcap) to HWCAP_X86_64 for x86-64. - * sysdeps/x86/dl-hwcap.h (HWCAP_COUNT): Updated. - (HWCAP_IMPORTANT): Likewise. - (HWCAP_X86_64): New enum. - (HWCAP_X86_AVX512_1): Updated. - * sysdeps/x86/dl-procinfo.c (_dl_x86_hwcap_flags): Add "x86_64". - * sysdeps/x86_64/Makefile (tests): Add tst-x86_64-1. - (modules-names): Add x86_64/tst-x86_64mod-1. - (LDFLAGS-tst-x86_64mod-1.so): New. - ($(objpfx)tst-x86_64-1): Likewise. - ($(objpfx)x86_64/tst-x86_64mod-1.os): Likewise. - (tst-x86_64-1-clean): Likewise. - * sysdeps/x86_64/tst-x86_64-1.c: New file. - * sysdeps/x86_64/tst-x86_64mod-1.c: Likewise. - -Index: glibc-2.26/sysdeps/x86/cpu-features.c -=================================================================== ---- glibc-2.26.orig/sysdeps/x86/cpu-features.c -+++ glibc-2.26/sysdeps/x86/cpu-features.c -@@ -336,7 +336,6 @@ no_cpuid: - - /* Reuse dl_platform, dl_hwcap and dl_hwcap_mask for x86. */ - GLRO(dl_platform) = NULL; -- GLRO(dl_hwcap) = 0; - #if !HAVE_TUNABLES && defined SHARED - /* The glibc.tune.hwcap_mask tunable is initialized already, so no need to do - this. */ -@@ -344,6 +343,7 @@ no_cpuid: - #endif - - #ifdef __x86_64__ -+ GLRO(dl_hwcap) = HWCAP_X86_64; - if (cpu_features->kind == arch_kind_intel) - { - if (CPU_FEATURES_ARCH_P (cpu_features, AVX512F_Usable) -@@ -374,6 +374,7 @@ no_cpuid: - GLRO(dl_platform) = "haswell"; - } - #else -+ GLRO(dl_hwcap) = 0; - if (CPU_FEATURES_CPU_P (cpu_features, SSE2)) - GLRO(dl_hwcap) |= HWCAP_X86_SSE2; - -Index: glibc-2.26/sysdeps/x86/dl-hwcap.h -=================================================================== ---- glibc-2.26.orig/sysdeps/x86/dl-hwcap.h -+++ glibc-2.26/sysdeps/x86/dl-hwcap.h -@@ -24,15 +24,16 @@ - # define HWCAP_PLATFORMS_START 0 - # define HWCAP_PLATFORMS_COUNT 4 - # define HWCAP_START 0 --# define HWCAP_COUNT 2 --# define HWCAP_IMPORTANT (HWCAP_X86_SSE2 | HWCAP_X86_AVX512_1) -+# define HWCAP_COUNT 3 -+# define HWCAP_IMPORTANT \ -+ (HWCAP_X86_SSE2 | HWCAP_X86_64 | HWCAP_X86_AVX512_1) - #elif defined __x86_64__ - /* For 64 bit, only cover x86-64 platforms and capabilities. */ - # define HWCAP_PLATFORMS_START 2 - # define HWCAP_PLATFORMS_COUNT 4 - # define HWCAP_START 1 --# define HWCAP_COUNT 2 --# define HWCAP_IMPORTANT (HWCAP_X86_AVX512_1) -+# define HWCAP_COUNT 3 -+# define HWCAP_IMPORTANT (HWCAP_X86_64 | HWCAP_X86_AVX512_1) - #else - /* For 32 bit, only cover i586, i686 and SSE2. */ - # define HWCAP_PLATFORMS_START 0 -@@ -45,7 +46,8 @@ - enum - { - HWCAP_X86_SSE2 = 1 << 0, -- HWCAP_X86_AVX512_1 = 1 << 1 -+ HWCAP_X86_64 = 1 << 1, -+ HWCAP_X86_AVX512_1 = 1 << 2 - }; - - static inline const char * -Index: glibc-2.26/sysdeps/x86/dl-procinfo.c -=================================================================== ---- glibc-2.26.orig/sysdeps/x86/dl-procinfo.c -+++ glibc-2.26/sysdeps/x86/dl-procinfo.c -@@ -58,11 +58,11 @@ PROCINFO_CLASS struct cpu_features _dl_x - #if !defined PROCINFO_DECL && defined SHARED - ._dl_x86_hwcap_flags - #else --PROCINFO_CLASS const char _dl_x86_hwcap_flags[2][9] -+PROCINFO_CLASS const char _dl_x86_hwcap_flags[3][9] - #endif - #ifndef PROCINFO_DECL - = { -- "sse2", "avx512_1" -+ "sse2", "x86_64", "avx512_1" - } - #endif - #if !defined SHARED || defined PROCINFO_DECL -Index: glibc-2.26/sysdeps/x86_64/Makefile -=================================================================== ---- glibc-2.26.orig/sysdeps/x86_64/Makefile -+++ glibc-2.26/sysdeps/x86_64/Makefile -@@ -52,6 +52,12 @@ $(objpfx)tst-quad2pie: $(objpfx)tst-quad - CFLAGS-tst-quad1pie.c = $(PIE-ccflag) - CFLAGS-tst-quad2pie.c = $(PIE-ccflag) - -+tests += tst-x86_64-1 -+modules-names += x86_64/tst-x86_64mod-1 -+LDFLAGS-tst-x86_64mod-1.so = -Wl,-soname,tst-x86_64mod-1.so -+ -+$(objpfx)tst-x86_64-1: $(objpfx)x86_64/tst-x86_64mod-1.so -+ - tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7 \ - tst-audit10 tst-sse tst-avx tst-avx512 - test-extras += tst-audit4-aux tst-audit10-aux \ -@@ -122,3 +128,14 @@ endif - ifeq ($(subdir),csu) - gen-as-const-headers += tlsdesc.sym rtld-offsets.sym - endif -+ -+$(objpfx)x86_64/tst-x86_64mod-1.os: $(objpfx)tst-x86_64mod-1.os -+ $(make-target-directory) -+ rm -f $@ -+ ln $< $@ -+ -+do-tests-clean common-mostlyclean: tst-x86_64-1-clean -+ -+.PHONY: tst-x86_64-1-clean -+tst-x86_64-1-clean: -+ -rm -rf $(objpfx)x86_64 -Index: glibc-2.26/sysdeps/x86_64/tst-x86_64-1.c -=================================================================== ---- /dev/null -+++ glibc-2.26/sysdeps/x86_64/tst-x86_64-1.c -@@ -0,0 +1,26 @@ -+/* Test searching the "x86_64" directory for shared libraries. -+ Copyright (C) 2017 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+extern void foo (void); -+ -+int -+main (void) -+{ -+ foo (); -+ return 0; -+} -Index: glibc-2.26/sysdeps/x86_64/tst-x86_64mod-1.c -=================================================================== ---- /dev/null -+++ glibc-2.26/sysdeps/x86_64/tst-x86_64mod-1.c -@@ -0,0 +1,22 @@ -+/* Test searching the "x86_64" directory for shared libraries. -+ Copyright (C) 2017 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+void -+foo (void) -+{ -+} diff --git a/nsswitch.conf b/nsswitch.conf index fcf5e1a..fbd63fd 100644 --- a/nsswitch.conf +++ b/nsswitch.conf @@ -22,9 +22,12 @@ # For more information, please read the nsswitch.conf.5 manual page. # -passwd: files -group: files -shadow: files +# passwd: files nis +# shadow: files nis +# group: files nis + +passwd: compat [NOTFOUND=return] files +group: compat [NOTFOUND=return] files hosts: files dns networks: files dns @@ -34,9 +37,11 @@ protocols: files rpc: files ethers: files netmasks: files -netgroup: files +netgroup: files nis publickey: files bootparams: files -automount: files +automount: files nis aliases: files + + diff --git a/remove-nss-nis-compat.patch b/remove-nss-nis-compat.patch deleted file mode 100644 index 4a78c5c..0000000 --- a/remove-nss-nis-compat.patch +++ /dev/null @@ -1,207 +0,0 @@ -2017-08-29 Steve Ellcey - - * grp/initgroups.c: Include config.h. - (DEFAULT_CONFIG): New macro. - (internal_getgrouplist): Use DEFAULT_CONFIG. - * nscd/initgrcache.c (addinitgroupsX): Likewise. - * nss/nsswitch.c (__nss_disable_nscd): Likewise. - (DEFAULT_DEFCONFIG): New macro. - (__nss_database_lookup): Use DEFAULT_DEFCONFIG. - * nss/grp-lookup.c: Include config.h - (DEFAULT_CONFIG): Set definition based on LINK_OBSOLETE_NSL. - * nss/pwd-lookup.c (DEFAULT_CONFIG): Likewise. - * nss/spwd-lookup.c (DEFAULT_CONFIG): Likewise. - * manual/nss.texi: Update default values section. - - -Index: glibc-2.26/grp/initgroups.c -=================================================================== ---- glibc-2.26.orig/grp/initgroups.c -+++ glibc-2.26/grp/initgroups.c -@@ -26,10 +26,16 @@ - #include - #include - #include -+#include - - #include "../nscd/nscd-client.h" - #include "../nscd/nscd_proto.h" - -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - /* Type of the lookup function. */ - typedef enum nss_status (*initgroups_dyn_function) (const char *, gid_t, -@@ -84,7 +90,7 @@ internal_getgrouplist (const char *user, - &__nss_initgroups_database) < 0) - { - if (__nss_group_database == NULL) -- no_more = __nss_database_lookup ("group", NULL, "compat files", -+ no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG, - &__nss_group_database); - - __nss_initgroups_database = __nss_group_database; -Index: glibc-2.26/manual/nss.texi -=================================================================== ---- glibc-2.26.orig/manual/nss.texi -+++ glibc-2.26/manual/nss.texi -@@ -318,13 +318,17 @@ The @code{passwd}, @code{group}, and @co - traditionally handled in a special way. The appropriate files in the - @file{/etc} directory are read but if an entry with a name starting - with a @code{+} character is found NIS is used. This kind of lookup --remains possible by using the special lookup service @code{compat} --and the default value for the three databases above is --@code{compat [NOTFOUND=return] files}. -+remains possible if @theglibc{} was configured with the -+@code{--enable-obsolete-nsl} option and the special lookup service -+@code{compat} is used. If @theglibc{} was configured with the -+@code{--enable-obsolete-nsl} option the default value for the three -+databases above is @code{compat [NOTFOUND=return] files}. If the -+@code{--enable-obsolete-nsl} option was not used the default value -+for the services is @code{files}. - --For all other databases the default value is --@code{nis [NOTFOUND=return] files}. This solution gives the best --chance to be correct since NIS and file based lookups are used. -+For all other databases the default value is @code{files} unless -+@theglibc{} was configured with @code{--enable-obsolete-rpc} option, in -+which case it the default value is @code{nis [NOTFOUND=return] files}. - - @cindex optimizing NSS - A second point is that the user should try to optimize the lookup -Index: glibc-2.26/nscd/initgrcache.c -=================================================================== ---- glibc-2.26.orig/nscd/initgrcache.c -+++ glibc-2.26/nscd/initgrcache.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #include "dbg_log.h" - #include "nscd.h" -@@ -34,6 +35,11 @@ - - #include "../nss/nsswitch.h" - -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - /* Type of the lookup function. */ - typedef enum nss_status (*initgroups_dyn_function) (const char *, gid_t, -@@ -85,8 +91,7 @@ addinitgroupsX (struct database_dyn *db, - int no_more; - - if (group_database == NULL) -- no_more = __nss_database_lookup ("group", NULL, -- "compat [NOTFOUND=return] files", -+ no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG, - &group_database); - else - no_more = 0; -Index: glibc-2.26/nss/grp-lookup.c -=================================================================== ---- glibc-2.26.orig/nss/grp-lookup.c -+++ glibc-2.26/nss/grp-lookup.c -@@ -16,7 +16,13 @@ - License along with the GNU C Library; if not, see - . */ - -+#include -+ - #define DATABASE_NAME group --#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - #include "XXX-lookup.c" -Index: glibc-2.26/nss/nsswitch.c -=================================================================== ---- glibc-2.26.orig/nss/nsswitch.c -+++ glibc-2.26/nss/nsswitch.c -@@ -40,6 +40,15 @@ - #include "nsswitch.h" - #include "../nscd/nscd_proto.h" - #include -+#include -+ -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+# define DEFAULT_DEFCONFIG "nis [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+# define DEFAULT_DEFCONFIG "files" -+#endif - - /* Prototypes for the local functions. */ - static name_database *nss_parse_file (const char *fname) internal_function; -@@ -151,8 +160,7 @@ __nss_database_lookup (const char *datab - or null to use the most common default. */ - if (*ni == NULL) - { -- *ni = nss_parse_service_list (defconfig -- ?: "nis [NOTFOUND=return] files"); -+ *ni = nss_parse_service_list (defconfig ?: DEFAULT_DEFCONFIG); - if (*ni != NULL) - { - /* Record the memory we've just allocated in defconfig_entries list, -@@ -848,8 +856,8 @@ __nss_disable_nscd (void (*cb) (size_t, - is_nscd = true; - - /* Find all the relevant modules so that the init functions are called. */ -- nss_load_all_libraries ("passwd", "compat [NOTFOUND=return] files"); -- nss_load_all_libraries ("group", "compat [NOTFOUND=return] files"); -+ nss_load_all_libraries ("passwd", DEFAULT_CONFIG); -+ nss_load_all_libraries ("group", DEFAULT_CONFIG); - nss_load_all_libraries ("hosts", "dns [!UNAVAIL=return] files"); - nss_load_all_libraries ("services", NULL); - -Index: glibc-2.26/nss/pwd-lookup.c -=================================================================== ---- glibc-2.26.orig/nss/pwd-lookup.c -+++ glibc-2.26/nss/pwd-lookup.c -@@ -16,7 +16,13 @@ - License along with the GNU C Library; if not, see - . */ - -+#include -+ - #define DATABASE_NAME passwd --#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - #include "XXX-lookup.c" -Index: glibc-2.26/nss/spwd-lookup.c -=================================================================== ---- glibc-2.26.orig/nss/spwd-lookup.c -+++ glibc-2.26/nss/spwd-lookup.c -@@ -16,8 +16,14 @@ - License along with the GNU C Library; if not, see - . */ - -+#include -+ - #define DATABASE_NAME shadow - #define ALTERNATE_NAME passwd --#define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#ifdef LINK_OBSOLETE_NSL -+# define DEFAULT_CONFIG "compat [NOTFOUND=return] files" -+#else -+# define DEFAULT_CONFIG "files" -+#endif - - #include "XXX-lookup.c"